forked from protonphoton/LJ
15326 lines
1.6 MiB
15326 lines
1.6 MiB
(function (global, factory) {
|
||
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
|
||
typeof define === 'function' && define.amd ? define(factory) :
|
||
(global.clm = factory());
|
||
}(this, (function () { 'use strict';
|
||
|
||
var commonjsGlobal = typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};
|
||
|
||
|
||
|
||
|
||
|
||
function createCommonjsModule(fn, module) {
|
||
return module = { exports: {} }, fn(module, module.exports), module.exports;
|
||
}
|
||
|
||
var numeric1_2_6 = createCommonjsModule(function (module, exports) {
|
||
"use strict";
|
||
|
||
var numeric = exports;
|
||
if(typeof commonjsGlobal !== "undefined") { commonjsGlobal.numeric = numeric; }
|
||
|
||
numeric.version = "1.2.6";
|
||
|
||
// 1. Utility functions
|
||
numeric.bench = function bench (f,interval) {
|
||
var t1,t2,n,i;
|
||
if(typeof interval === "undefined") { interval = 15; }
|
||
n = 0.5;
|
||
t1 = new Date();
|
||
while(1) {
|
||
n*=2;
|
||
for(i=n;i>3;i-=4) { f(); f(); f(); f(); }
|
||
while(i>0) { f(); i--; }
|
||
t2 = new Date();
|
||
if(t2-t1 > interval) break;
|
||
}
|
||
for(i=n;i>3;i-=4) { f(); f(); f(); f(); }
|
||
while(i>0) { f(); i--; }
|
||
t2 = new Date();
|
||
return 1000*(3*n-1)/(t2-t1);
|
||
};
|
||
|
||
numeric._myIndexOf = (function _myIndexOf(w) {
|
||
var n = this.length,k;
|
||
for(k=0;k<n;++k) if(this[k]===w) return k;
|
||
return -1;
|
||
});
|
||
numeric.myIndexOf = (Array.prototype.indexOf)?Array.prototype.indexOf:numeric._myIndexOf;
|
||
|
||
numeric.Function = Function;
|
||
numeric.precision = 4;
|
||
numeric.largeArray = 50;
|
||
|
||
numeric.prettyPrint = function prettyPrint(x) {
|
||
function fmtnum(x) {
|
||
if(x === 0) { return '0'; }
|
||
if(isNaN(x)) { return 'NaN'; }
|
||
if(x<0) { return '-'+fmtnum(-x); }
|
||
if(isFinite(x)) {
|
||
var scale = Math.floor(Math.log(x) / Math.log(10));
|
||
var normalized = x / Math.pow(10,scale);
|
||
var basic = normalized.toPrecision(numeric.precision);
|
||
if(parseFloat(basic) === 10) { scale++; normalized = 1; basic = normalized.toPrecision(numeric.precision); }
|
||
return parseFloat(basic).toString()+'e'+scale.toString();
|
||
}
|
||
return 'Infinity';
|
||
}
|
||
var ret = [];
|
||
function foo(x) {
|
||
var k;
|
||
if(typeof x === "undefined") { ret.push(Array(numeric.precision+8).join(' ')); return false; }
|
||
if(typeof x === "string") { ret.push('"'+x+'"'); return false; }
|
||
if(typeof x === "boolean") { ret.push(x.toString()); return false; }
|
||
if(typeof x === "number") {
|
||
var a = fmtnum(x);
|
||
var b = x.toPrecision(numeric.precision);
|
||
var c = parseFloat(x.toString()).toString();
|
||
var d = [a,b,c,parseFloat(b).toString(),parseFloat(c).toString()];
|
||
for(k=1;k<d.length;k++) { if(d[k].length < a.length) a = d[k]; }
|
||
ret.push(Array(numeric.precision+8-a.length).join(' ')+a);
|
||
return false;
|
||
}
|
||
if(x === null) { ret.push("null"); return false; }
|
||
if(typeof x === "function") {
|
||
ret.push(x.toString());
|
||
var flag = false;
|
||
for(k in x) { if(x.hasOwnProperty(k)) {
|
||
if(flag) ret.push(',\n');
|
||
else ret.push('\n{');
|
||
flag = true;
|
||
ret.push(k);
|
||
ret.push(': \n');
|
||
foo(x[k]);
|
||
} }
|
||
if(flag) ret.push('}\n');
|
||
return true;
|
||
}
|
||
if(x instanceof Array) {
|
||
if(x.length > numeric.largeArray) { ret.push('...Large Array...'); return true; }
|
||
var flag = false;
|
||
ret.push('[');
|
||
for(k=0;k<x.length;k++) { if(k>0) { ret.push(','); if(flag) ret.push('\n '); } flag = foo(x[k]); }
|
||
ret.push(']');
|
||
return true;
|
||
}
|
||
ret.push('{');
|
||
var flag = false;
|
||
for(k in x) { if(x.hasOwnProperty(k)) { if(flag) ret.push(',\n'); flag = true; ret.push(k); ret.push(': \n'); foo(x[k]); } }
|
||
ret.push('}');
|
||
return true;
|
||
}
|
||
foo(x);
|
||
return ret.join('');
|
||
};
|
||
|
||
numeric.parseDate = function parseDate(d) {
|
||
function foo(d) {
|
||
if(typeof d === 'string') { return Date.parse(d.replace(/-/g,'/')); }
|
||
if(!(d instanceof Array)) { throw new Error("parseDate: parameter must be arrays of strings"); }
|
||
var ret = [],k;
|
||
for(k=0;k<d.length;k++) { ret[k] = foo(d[k]); }
|
||
return ret;
|
||
}
|
||
return foo(d);
|
||
};
|
||
|
||
numeric.parseFloat = function parseFloat_(d) {
|
||
function foo(d) {
|
||
if(typeof d === 'string') { return parseFloat(d); }
|
||
if(!(d instanceof Array)) { throw new Error("parseFloat: parameter must be arrays of strings"); }
|
||
var ret = [],k;
|
||
for(k=0;k<d.length;k++) { ret[k] = foo(d[k]); }
|
||
return ret;
|
||
}
|
||
return foo(d);
|
||
};
|
||
|
||
numeric.parseCSV = function parseCSV(t) {
|
||
var foo = t.split('\n');
|
||
var j,k;
|
||
var ret = [];
|
||
var pat = /(([^'",]*)|('[^']*')|("[^"]*")),/g;
|
||
var patnum = /^\s*(([+-]?[0-9]+(\.[0-9]*)?(e[+-]?[0-9]+)?)|([+-]?[0-9]*(\.[0-9]+)?(e[+-]?[0-9]+)?))\s*$/;
|
||
var stripper = function(n) { return n.substr(0,n.length-1); };
|
||
var count = 0;
|
||
for(k=0;k<foo.length;k++) {
|
||
var bar = (foo[k]+",").match(pat),baz;
|
||
if(bar.length>0) {
|
||
ret[count] = [];
|
||
for(j=0;j<bar.length;j++) {
|
||
baz = stripper(bar[j]);
|
||
if(patnum.test(baz)) { ret[count][j] = parseFloat(baz); }
|
||
else ret[count][j] = baz;
|
||
}
|
||
count++;
|
||
}
|
||
}
|
||
return ret;
|
||
};
|
||
|
||
numeric.toCSV = function toCSV(A) {
|
||
var s = numeric.dim(A);
|
||
var i,j,m,n,row,ret;
|
||
m = s[0];
|
||
n = s[1];
|
||
ret = [];
|
||
for(i=0;i<m;i++) {
|
||
row = [];
|
||
for(j=0;j<m;j++) { row[j] = A[i][j].toString(); }
|
||
ret[i] = row.join(', ');
|
||
}
|
||
return ret.join('\n')+'\n';
|
||
};
|
||
|
||
numeric.getURL = function getURL(url) {
|
||
var client = new XMLHttpRequest();
|
||
client.open("GET",url,false);
|
||
client.send();
|
||
return client;
|
||
};
|
||
|
||
numeric.imageURL = function imageURL(img) {
|
||
function base64(A) {
|
||
var n = A.length, i,x,y,z,p,q,r,s;
|
||
var key = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
|
||
var ret = "";
|
||
for(i=0;i<n;i+=3) {
|
||
x = A[i];
|
||
y = A[i+1];
|
||
z = A[i+2];
|
||
p = x >> 2;
|
||
q = ((x & 3) << 4) + (y >> 4);
|
||
r = ((y & 15) << 2) + (z >> 6);
|
||
s = z & 63;
|
||
if(i+1>=n) { r = s = 64; }
|
||
else if(i+2>=n) { s = 64; }
|
||
ret += key.charAt(p) + key.charAt(q) + key.charAt(r) + key.charAt(s);
|
||
}
|
||
return ret;
|
||
}
|
||
function crc32Array (a,from,to) {
|
||
if(typeof from === "undefined") { from = 0; }
|
||
if(typeof to === "undefined") { to = a.length; }
|
||
var table = [0x00000000, 0x77073096, 0xEE0E612C, 0x990951BA, 0x076DC419, 0x706AF48F, 0xE963A535, 0x9E6495A3,
|
||
0x0EDB8832, 0x79DCB8A4, 0xE0D5E91E, 0x97D2D988, 0x09B64C2B, 0x7EB17CBD, 0xE7B82D07, 0x90BF1D91,
|
||
0x1DB71064, 0x6AB020F2, 0xF3B97148, 0x84BE41DE, 0x1ADAD47D, 0x6DDDE4EB, 0xF4D4B551, 0x83D385C7,
|
||
0x136C9856, 0x646BA8C0, 0xFD62F97A, 0x8A65C9EC, 0x14015C4F, 0x63066CD9, 0xFA0F3D63, 0x8D080DF5,
|
||
0x3B6E20C8, 0x4C69105E, 0xD56041E4, 0xA2677172, 0x3C03E4D1, 0x4B04D447, 0xD20D85FD, 0xA50AB56B,
|
||
0x35B5A8FA, 0x42B2986C, 0xDBBBC9D6, 0xACBCF940, 0x32D86CE3, 0x45DF5C75, 0xDCD60DCF, 0xABD13D59,
|
||
0x26D930AC, 0x51DE003A, 0xC8D75180, 0xBFD06116, 0x21B4F4B5, 0x56B3C423, 0xCFBA9599, 0xB8BDA50F,
|
||
0x2802B89E, 0x5F058808, 0xC60CD9B2, 0xB10BE924, 0x2F6F7C87, 0x58684C11, 0xC1611DAB, 0xB6662D3D,
|
||
0x76DC4190, 0x01DB7106, 0x98D220BC, 0xEFD5102A, 0x71B18589, 0x06B6B51F, 0x9FBFE4A5, 0xE8B8D433,
|
||
0x7807C9A2, 0x0F00F934, 0x9609A88E, 0xE10E9818, 0x7F6A0DBB, 0x086D3D2D, 0x91646C97, 0xE6635C01,
|
||
0x6B6B51F4, 0x1C6C6162, 0x856530D8, 0xF262004E, 0x6C0695ED, 0x1B01A57B, 0x8208F4C1, 0xF50FC457,
|
||
0x65B0D9C6, 0x12B7E950, 0x8BBEB8EA, 0xFCB9887C, 0x62DD1DDF, 0x15DA2D49, 0x8CD37CF3, 0xFBD44C65,
|
||
0x4DB26158, 0x3AB551CE, 0xA3BC0074, 0xD4BB30E2, 0x4ADFA541, 0x3DD895D7, 0xA4D1C46D, 0xD3D6F4FB,
|
||
0x4369E96A, 0x346ED9FC, 0xAD678846, 0xDA60B8D0, 0x44042D73, 0x33031DE5, 0xAA0A4C5F, 0xDD0D7CC9,
|
||
0x5005713C, 0x270241AA, 0xBE0B1010, 0xC90C2086, 0x5768B525, 0x206F85B3, 0xB966D409, 0xCE61E49F,
|
||
0x5EDEF90E, 0x29D9C998, 0xB0D09822, 0xC7D7A8B4, 0x59B33D17, 0x2EB40D81, 0xB7BD5C3B, 0xC0BA6CAD,
|
||
0xEDB88320, 0x9ABFB3B6, 0x03B6E20C, 0x74B1D29A, 0xEAD54739, 0x9DD277AF, 0x04DB2615, 0x73DC1683,
|
||
0xE3630B12, 0x94643B84, 0x0D6D6A3E, 0x7A6A5AA8, 0xE40ECF0B, 0x9309FF9D, 0x0A00AE27, 0x7D079EB1,
|
||
0xF00F9344, 0x8708A3D2, 0x1E01F268, 0x6906C2FE, 0xF762575D, 0x806567CB, 0x196C3671, 0x6E6B06E7,
|
||
0xFED41B76, 0x89D32BE0, 0x10DA7A5A, 0x67DD4ACC, 0xF9B9DF6F, 0x8EBEEFF9, 0x17B7BE43, 0x60B08ED5,
|
||
0xD6D6A3E8, 0xA1D1937E, 0x38D8C2C4, 0x4FDFF252, 0xD1BB67F1, 0xA6BC5767, 0x3FB506DD, 0x48B2364B,
|
||
0xD80D2BDA, 0xAF0A1B4C, 0x36034AF6, 0x41047A60, 0xDF60EFC3, 0xA867DF55, 0x316E8EEF, 0x4669BE79,
|
||
0xCB61B38C, 0xBC66831A, 0x256FD2A0, 0x5268E236, 0xCC0C7795, 0xBB0B4703, 0x220216B9, 0x5505262F,
|
||
0xC5BA3BBE, 0xB2BD0B28, 0x2BB45A92, 0x5CB36A04, 0xC2D7FFA7, 0xB5D0CF31, 0x2CD99E8B, 0x5BDEAE1D,
|
||
0x9B64C2B0, 0xEC63F226, 0x756AA39C, 0x026D930A, 0x9C0906A9, 0xEB0E363F, 0x72076785, 0x05005713,
|
||
0x95BF4A82, 0xE2B87A14, 0x7BB12BAE, 0x0CB61B38, 0x92D28E9B, 0xE5D5BE0D, 0x7CDCEFB7, 0x0BDBDF21,
|
||
0x86D3D2D4, 0xF1D4E242, 0x68DDB3F8, 0x1FDA836E, 0x81BE16CD, 0xF6B9265B, 0x6FB077E1, 0x18B74777,
|
||
0x88085AE6, 0xFF0F6A70, 0x66063BCA, 0x11010B5C, 0x8F659EFF, 0xF862AE69, 0x616BFFD3, 0x166CCF45,
|
||
0xA00AE278, 0xD70DD2EE, 0x4E048354, 0x3903B3C2, 0xA7672661, 0xD06016F7, 0x4969474D, 0x3E6E77DB,
|
||
0xAED16A4A, 0xD9D65ADC, 0x40DF0B66, 0x37D83BF0, 0xA9BCAE53, 0xDEBB9EC5, 0x47B2CF7F, 0x30B5FFE9,
|
||
0xBDBDF21C, 0xCABAC28A, 0x53B39330, 0x24B4A3A6, 0xBAD03605, 0xCDD70693, 0x54DE5729, 0x23D967BF,
|
||
0xB3667A2E, 0xC4614AB8, 0x5D681B02, 0x2A6F2B94, 0xB40BBE37, 0xC30C8EA1, 0x5A05DF1B, 0x2D02EF8D];
|
||
|
||
var crc = -1, y = 0, n = a.length,i;
|
||
|
||
for (i = from; i < to; i++) {
|
||
y = (crc ^ a[i]) & 0xFF;
|
||
crc = (crc >>> 8) ^ table[y];
|
||
}
|
||
|
||
return crc ^ (-1);
|
||
}
|
||
|
||
var h = img[0].length, w = img[0][0].length, s1, s2, next,k,length,a,b,i,j,adler32,crc32;
|
||
var stream = [
|
||
137, 80, 78, 71, 13, 10, 26, 10, // 0: PNG signature
|
||
0,0,0,13, // 8: IHDR Chunk length
|
||
73, 72, 68, 82, // 12: "IHDR"
|
||
(w >> 24) & 255, (w >> 16) & 255, (w >> 8) & 255, w&255, // 16: Width
|
||
(h >> 24) & 255, (h >> 16) & 255, (h >> 8) & 255, h&255, // 20: Height
|
||
8, // 24: bit depth
|
||
2, // 25: RGB
|
||
0, // 26: deflate
|
||
0, // 27: no filter
|
||
0, // 28: no interlace
|
||
-1,-2,-3,-4, // 29: CRC
|
||
-5,-6,-7,-8, // 33: IDAT Chunk length
|
||
73, 68, 65, 84, // 37: "IDAT"
|
||
// RFC 1950 header starts here
|
||
8, // 41: RFC1950 CMF
|
||
29 // 42: RFC1950 FLG
|
||
];
|
||
crc32 = crc32Array(stream,12,29);
|
||
stream[29] = (crc32>>24)&255;
|
||
stream[30] = (crc32>>16)&255;
|
||
stream[31] = (crc32>>8)&255;
|
||
stream[32] = (crc32)&255;
|
||
s1 = 1;
|
||
s2 = 0;
|
||
for(i=0;i<h;i++) {
|
||
if(i<h-1) { stream.push(0); }
|
||
else { stream.push(1); }
|
||
a = (3*w+1+(i===0))&255; b = ((3*w+1+(i===0))>>8)&255;
|
||
stream.push(a); stream.push(b);
|
||
stream.push((~a)&255); stream.push((~b)&255);
|
||
if(i===0) stream.push(0);
|
||
for(j=0;j<w;j++) {
|
||
for(k=0;k<3;k++) {
|
||
a = img[k][i][j];
|
||
if(a>255) a = 255;
|
||
else if(a<0) a=0;
|
||
else a = Math.round(a);
|
||
s1 = (s1 + a )%65521;
|
||
s2 = (s2 + s1)%65521;
|
||
stream.push(a);
|
||
}
|
||
}
|
||
stream.push(0);
|
||
}
|
||
adler32 = (s2<<16)+s1;
|
||
stream.push((adler32>>24)&255);
|
||
stream.push((adler32>>16)&255);
|
||
stream.push((adler32>>8)&255);
|
||
stream.push((adler32)&255);
|
||
length = stream.length - 41;
|
||
stream[33] = (length>>24)&255;
|
||
stream[34] = (length>>16)&255;
|
||
stream[35] = (length>>8)&255;
|
||
stream[36] = (length)&255;
|
||
crc32 = crc32Array(stream,37);
|
||
stream.push((crc32>>24)&255);
|
||
stream.push((crc32>>16)&255);
|
||
stream.push((crc32>>8)&255);
|
||
stream.push((crc32)&255);
|
||
stream.push(0);
|
||
stream.push(0);
|
||
stream.push(0);
|
||
stream.push(0);
|
||
// a = stream.length;
|
||
stream.push(73); // I
|
||
stream.push(69); // E
|
||
stream.push(78); // N
|
||
stream.push(68); // D
|
||
stream.push(174); // CRC1
|
||
stream.push(66); // CRC2
|
||
stream.push(96); // CRC3
|
||
stream.push(130); // CRC4
|
||
return 'data:image/png;base64,'+base64(stream);
|
||
};
|
||
|
||
// 2. Linear algebra with Arrays.
|
||
numeric._dim = function _dim(x) {
|
||
var ret = [];
|
||
while(typeof x === "object") { ret.push(x.length); x = x[0]; }
|
||
return ret;
|
||
};
|
||
|
||
numeric.dim = function dim(x) {
|
||
var y,z;
|
||
if(typeof x === "object") {
|
||
y = x[0];
|
||
if(typeof y === "object") {
|
||
z = y[0];
|
||
if(typeof z === "object") {
|
||
return numeric._dim(x);
|
||
}
|
||
return [x.length,y.length];
|
||
}
|
||
return [x.length];
|
||
}
|
||
return [];
|
||
};
|
||
|
||
numeric.mapreduce = function mapreduce(body,init) {
|
||
return Function('x','accum','_s','_k',
|
||
'if(typeof accum === "undefined") accum = '+init+';\n'+
|
||
'if(typeof x === "number") { var xi = x; '+body+'; return accum; }\n'+
|
||
'if(typeof _s === "undefined") _s = numeric.dim(x);\n'+
|
||
'if(typeof _k === "undefined") _k = 0;\n'+
|
||
'var _n = _s[_k];\n'+
|
||
'var i,xi;\n'+
|
||
'if(_k < _s.length-1) {\n'+
|
||
' for(i=_n-1;i>=0;i--) {\n'+
|
||
' accum = arguments.callee(x[i],accum,_s,_k+1);\n'+
|
||
' }'+
|
||
' return accum;\n'+
|
||
'}\n'+
|
||
'for(i=_n-1;i>=1;i-=2) { \n'+
|
||
' xi = x[i];\n'+
|
||
' '+body+';\n'+
|
||
' xi = x[i-1];\n'+
|
||
' '+body+';\n'+
|
||
'}\n'+
|
||
'if(i === 0) {\n'+
|
||
' xi = x[i];\n'+
|
||
' '+body+'\n'+
|
||
'}\n'+
|
||
'return accum;'
|
||
);
|
||
};
|
||
numeric.mapreduce2 = function mapreduce2(body,setup) {
|
||
return Function('x',
|
||
'var n = x.length;\n'+
|
||
'var i,xi;\n'+setup+';\n'+
|
||
'for(i=n-1;i!==-1;--i) { \n'+
|
||
' xi = x[i];\n'+
|
||
' '+body+';\n'+
|
||
'}\n'+
|
||
'return accum;'
|
||
);
|
||
};
|
||
|
||
|
||
numeric.same = function same(x,y) {
|
||
var i,n;
|
||
if(!(x instanceof Array) || !(y instanceof Array)) { return false; }
|
||
n = x.length;
|
||
if(n !== y.length) { return false; }
|
||
for(i=0;i<n;i++) {
|
||
if(x[i] === y[i]) { continue; }
|
||
if(typeof x[i] === "object") { if(!same(x[i],y[i])) return false; }
|
||
else { return false; }
|
||
}
|
||
return true;
|
||
};
|
||
|
||
numeric.rep = function rep(s,v,k) {
|
||
if(typeof k === "undefined") { k=0; }
|
||
var n = s[k], ret = Array(n), i;
|
||
if(k === s.length-1) {
|
||
for(i=n-2;i>=0;i-=2) { ret[i+1] = v; ret[i] = v; }
|
||
if(i===-1) { ret[0] = v; }
|
||
return ret;
|
||
}
|
||
for(i=n-1;i>=0;i--) { ret[i] = numeric.rep(s,v,k+1); }
|
||
return ret;
|
||
};
|
||
|
||
|
||
numeric.dotMMsmall = function dotMMsmall(x,y) {
|
||
var i,j,k,p,q,r,ret,foo,bar,woo,i0,k0,p0,r0;
|
||
p = x.length; q = y.length; r = y[0].length;
|
||
ret = Array(p);
|
||
for(i=p-1;i>=0;i--) {
|
||
foo = Array(r);
|
||
bar = x[i];
|
||
for(k=r-1;k>=0;k--) {
|
||
woo = bar[q-1]*y[q-1][k];
|
||
for(j=q-2;j>=1;j-=2) {
|
||
i0 = j-1;
|
||
woo += bar[j]*y[j][k] + bar[i0]*y[i0][k];
|
||
}
|
||
if(j===0) { woo += bar[0]*y[0][k]; }
|
||
foo[k] = woo;
|
||
}
|
||
ret[i] = foo;
|
||
}
|
||
return ret;
|
||
};
|
||
numeric._getCol = function _getCol(A,j,x) {
|
||
var n = A.length, i;
|
||
for(i=n-1;i>0;--i) {
|
||
x[i] = A[i][j];
|
||
--i;
|
||
x[i] = A[i][j];
|
||
}
|
||
if(i===0) x[0] = A[0][j];
|
||
};
|
||
numeric.dotMMbig = function dotMMbig(x,y){
|
||
var gc = numeric._getCol, p = y.length, v = Array(p);
|
||
var m = x.length, n = y[0].length, A = new Array(m), xj;
|
||
var VV = numeric.dotVV;
|
||
var i,j,k,z;
|
||
--p;
|
||
--m;
|
||
for(i=m;i!==-1;--i) A[i] = Array(n);
|
||
--n;
|
||
for(i=n;i!==-1;--i) {
|
||
gc(y,i,v);
|
||
for(j=m;j!==-1;--j) {
|
||
z=0;
|
||
xj = x[j];
|
||
A[j][i] = VV(xj,v);
|
||
}
|
||
}
|
||
return A;
|
||
};
|
||
|
||
numeric.dotMV = function dotMV(x,y) {
|
||
var p = x.length, q = y.length,i;
|
||
var ret = Array(p), dotVV = numeric.dotVV;
|
||
for(i=p-1;i>=0;i--) { ret[i] = dotVV(x[i],y); }
|
||
return ret;
|
||
};
|
||
|
||
numeric.dotVM = function dotVM(x,y) {
|
||
var i,j,k,p,q,r,ret,foo,bar,woo,i0,k0,p0,r0,s1,s2,s3,baz,accum;
|
||
p = x.length; q = y[0].length;
|
||
ret = Array(q);
|
||
for(k=q-1;k>=0;k--) {
|
||
woo = x[p-1]*y[p-1][k];
|
||
for(j=p-2;j>=1;j-=2) {
|
||
i0 = j-1;
|
||
woo += x[j]*y[j][k] + x[i0]*y[i0][k];
|
||
}
|
||
if(j===0) { woo += x[0]*y[0][k]; }
|
||
ret[k] = woo;
|
||
}
|
||
return ret;
|
||
};
|
||
|
||
numeric.dotVV = function dotVV(x,y) {
|
||
var i,n=x.length,i1,ret = x[n-1]*y[n-1];
|
||
for(i=n-2;i>=1;i-=2) {
|
||
i1 = i-1;
|
||
ret += x[i]*y[i] + x[i1]*y[i1];
|
||
}
|
||
if(i===0) { ret += x[0]*y[0]; }
|
||
return ret;
|
||
};
|
||
|
||
numeric.dot = function dot(x,y) {
|
||
var d = numeric.dim;
|
||
switch(d(x).length*1000+d(y).length) {
|
||
case 2002:
|
||
if(y.length < 10) return numeric.dotMMsmall(x,y);
|
||
else return numeric.dotMMbig(x,y);
|
||
case 2001: return numeric.dotMV(x,y);
|
||
case 1002: return numeric.dotVM(x,y);
|
||
case 1001: return numeric.dotVV(x,y);
|
||
case 1000: return numeric.mulVS(x,y);
|
||
case 1: return numeric.mulSV(x,y);
|
||
case 0: return x*y;
|
||
default: throw new Error('numeric.dot only works on vectors and matrices');
|
||
}
|
||
};
|
||
|
||
numeric.diag = function diag(d) {
|
||
var i,i1,j,n = d.length, A = Array(n), Ai;
|
||
for(i=n-1;i>=0;i--) {
|
||
Ai = Array(n);
|
||
i1 = i+2;
|
||
for(j=n-1;j>=i1;j-=2) {
|
||
Ai[j] = 0;
|
||
Ai[j-1] = 0;
|
||
}
|
||
if(j>i) { Ai[j] = 0; }
|
||
Ai[i] = d[i];
|
||
for(j=i-1;j>=1;j-=2) {
|
||
Ai[j] = 0;
|
||
Ai[j-1] = 0;
|
||
}
|
||
if(j===0) { Ai[0] = 0; }
|
||
A[i] = Ai;
|
||
}
|
||
return A;
|
||
};
|
||
numeric.getDiag = function(A) {
|
||
var n = Math.min(A.length,A[0].length),i,ret = Array(n);
|
||
for(i=n-1;i>=1;--i) {
|
||
ret[i] = A[i][i];
|
||
--i;
|
||
ret[i] = A[i][i];
|
||
}
|
||
if(i===0) {
|
||
ret[0] = A[0][0];
|
||
}
|
||
return ret;
|
||
};
|
||
|
||
numeric.identity = function identity(n) { return numeric.diag(numeric.rep([n],1)); };
|
||
numeric.pointwise = function pointwise(params,body,setup) {
|
||
if(typeof setup === "undefined") { setup = ""; }
|
||
var fun = [];
|
||
var k;
|
||
var avec = /\[i\]$/,p,thevec = '';
|
||
var haveret = false;
|
||
for(k=0;k<params.length;k++) {
|
||
if(avec.test(params[k])) {
|
||
p = params[k].substring(0,params[k].length-3);
|
||
thevec = p;
|
||
} else { p = params[k]; }
|
||
if(p==='ret') haveret = true;
|
||
fun.push(p);
|
||
}
|
||
fun[params.length] = '_s';
|
||
fun[params.length+1] = '_k';
|
||
fun[params.length+2] = (
|
||
'if(typeof _s === "undefined") _s = numeric.dim('+thevec+');\n'+
|
||
'if(typeof _k === "undefined") _k = 0;\n'+
|
||
'var _n = _s[_k];\n'+
|
||
'var i'+(haveret?'':', ret = Array(_n)')+';\n'+
|
||
'if(_k < _s.length-1) {\n'+
|
||
' for(i=_n-1;i>=0;i--) ret[i] = arguments.callee('+params.join(',')+',_s,_k+1);\n'+
|
||
' return ret;\n'+
|
||
'}\n'+
|
||
setup+'\n'+
|
||
'for(i=_n-1;i!==-1;--i) {\n'+
|
||
' '+body+'\n'+
|
||
'}\n'+
|
||
'return ret;'
|
||
);
|
||
return Function.apply(null,fun);
|
||
};
|
||
numeric.pointwise2 = function pointwise2(params,body,setup) {
|
||
if(typeof setup === "undefined") { setup = ""; }
|
||
var fun = [];
|
||
var k;
|
||
var avec = /\[i\]$/,p,thevec = '';
|
||
var haveret = false;
|
||
for(k=0;k<params.length;k++) {
|
||
if(avec.test(params[k])) {
|
||
p = params[k].substring(0,params[k].length-3);
|
||
thevec = p;
|
||
} else { p = params[k]; }
|
||
if(p==='ret') haveret = true;
|
||
fun.push(p);
|
||
}
|
||
fun[params.length] = (
|
||
'var _n = '+thevec+'.length;\n'+
|
||
'var i'+(haveret?'':', ret = Array(_n)')+';\n'+
|
||
setup+'\n'+
|
||
'for(i=_n-1;i!==-1;--i) {\n'+
|
||
body+'\n'+
|
||
'}\n'+
|
||
'return ret;'
|
||
);
|
||
return Function.apply(null,fun);
|
||
};
|
||
numeric._biforeach = (function _biforeach(x,y,s,k,f) {
|
||
if(k === s.length-1) { f(x,y); return; }
|
||
var i,n=s[k];
|
||
for(i=n-1;i>=0;i--) { _biforeach(typeof x==="object"?x[i]:x,typeof y==="object"?y[i]:y,s,k+1,f); }
|
||
});
|
||
numeric._biforeach2 = (function _biforeach2(x,y,s,k,f) {
|
||
if(k === s.length-1) { return f(x,y); }
|
||
var i,n=s[k],ret = Array(n);
|
||
for(i=n-1;i>=0;--i) { ret[i] = _biforeach2(typeof x==="object"?x[i]:x,typeof y==="object"?y[i]:y,s,k+1,f); }
|
||
return ret;
|
||
});
|
||
numeric._foreach = (function _foreach(x,s,k,f) {
|
||
if(k === s.length-1) { f(x); return; }
|
||
var i,n=s[k];
|
||
for(i=n-1;i>=0;i--) { _foreach(x[i],s,k+1,f); }
|
||
});
|
||
numeric._foreach2 = (function _foreach2(x,s,k,f) {
|
||
if(k === s.length-1) { return f(x); }
|
||
var i,n=s[k], ret = Array(n);
|
||
for(i=n-1;i>=0;i--) { ret[i] = _foreach2(x[i],s,k+1,f); }
|
||
return ret;
|
||
});
|
||
|
||
/*numeric.anyV = numeric.mapreduce('if(xi) return true;','false');
|
||
numeric.allV = numeric.mapreduce('if(!xi) return false;','true');
|
||
numeric.any = function(x) { if(typeof x.length === "undefined") return x; return numeric.anyV(x); }
|
||
numeric.all = function(x) { if(typeof x.length === "undefined") return x; return numeric.allV(x); }*/
|
||
|
||
numeric.ops2 = {
|
||
add: '+',
|
||
sub: '-',
|
||
mul: '*',
|
||
div: '/',
|
||
mod: '%',
|
||
and: '&&',
|
||
or: '||',
|
||
eq: '===',
|
||
neq: '!==',
|
||
lt: '<',
|
||
gt: '>',
|
||
leq: '<=',
|
||
geq: '>=',
|
||
band: '&',
|
||
bor: '|',
|
||
bxor: '^',
|
||
lshift: '<<',
|
||
rshift: '>>',
|
||
rrshift: '>>>'
|
||
};
|
||
numeric.opseq = {
|
||
addeq: '+=',
|
||
subeq: '-=',
|
||
muleq: '*=',
|
||
diveq: '/=',
|
||
modeq: '%=',
|
||
lshifteq: '<<=',
|
||
rshifteq: '>>=',
|
||
rrshifteq: '>>>=',
|
||
bandeq: '&=',
|
||
boreq: '|=',
|
||
bxoreq: '^='
|
||
};
|
||
numeric.mathfuns = ['abs','acos','asin','atan','ceil','cos',
|
||
'exp','floor','log','round','sin','sqrt','tan',
|
||
'isNaN','isFinite'];
|
||
numeric.mathfuns2 = ['atan2','pow','max','min'];
|
||
numeric.ops1 = {
|
||
neg: '-',
|
||
not: '!',
|
||
bnot: '~',
|
||
clone: ''
|
||
};
|
||
numeric.mapreducers = {
|
||
any: ['if(xi) return true;','var accum = false;'],
|
||
all: ['if(!xi) return false;','var accum = true;'],
|
||
sum: ['accum += xi;','var accum = 0;'],
|
||
prod: ['accum *= xi;','var accum = 1;'],
|
||
norm2Squared: ['accum += xi*xi;','var accum = 0;'],
|
||
norminf: ['accum = max(accum,abs(xi));','var accum = 0, max = Math.max, abs = Math.abs;'],
|
||
norm1: ['accum += abs(xi)','var accum = 0, abs = Math.abs;'],
|
||
sup: ['accum = max(accum,xi);','var accum = -Infinity, max = Math.max;'],
|
||
inf: ['accum = min(accum,xi);','var accum = Infinity, min = Math.min;']
|
||
};
|
||
|
||
(function () {
|
||
var i,o;
|
||
for(i=0;i<numeric.mathfuns2.length;++i) {
|
||
o = numeric.mathfuns2[i];
|
||
numeric.ops2[o] = o;
|
||
}
|
||
for(i in numeric.ops2) {
|
||
if(numeric.ops2.hasOwnProperty(i)) {
|
||
o = numeric.ops2[i];
|
||
var code, codeeq, setup = '';
|
||
if(numeric.myIndexOf.call(numeric.mathfuns2,i)!==-1) {
|
||
setup = 'var '+o+' = Math.'+o+';\n';
|
||
code = function(r,x,y) { return r+' = '+o+'('+x+','+y+')'; };
|
||
codeeq = function(x,y) { return x+' = '+o+'('+x+','+y+')'; };
|
||
} else {
|
||
code = function(r,x,y) { return r+' = '+x+' '+o+' '+y; };
|
||
if(numeric.opseq.hasOwnProperty(i+'eq')) {
|
||
codeeq = function(x,y) { return x+' '+o+'= '+y; };
|
||
} else {
|
||
codeeq = function(x,y) { return x+' = '+x+' '+o+' '+y; };
|
||
}
|
||
}
|
||
numeric[i+'VV'] = numeric.pointwise2(['x[i]','y[i]'],code('ret[i]','x[i]','y[i]'),setup);
|
||
numeric[i+'SV'] = numeric.pointwise2(['x','y[i]'],code('ret[i]','x','y[i]'),setup);
|
||
numeric[i+'VS'] = numeric.pointwise2(['x[i]','y'],code('ret[i]','x[i]','y'),setup);
|
||
numeric[i] = Function(
|
||
'var n = arguments.length, i, x = arguments[0], y;\n'+
|
||
'var VV = numeric.'+i+'VV, VS = numeric.'+i+'VS, SV = numeric.'+i+'SV;\n'+
|
||
'var dim = numeric.dim;\n'+
|
||
'for(i=1;i!==n;++i) { \n'+
|
||
' y = arguments[i];\n'+
|
||
' if(typeof x === "object") {\n'+
|
||
' if(typeof y === "object") x = numeric._biforeach2(x,y,dim(x),0,VV);\n'+
|
||
' else x = numeric._biforeach2(x,y,dim(x),0,VS);\n'+
|
||
' } else if(typeof y === "object") x = numeric._biforeach2(x,y,dim(y),0,SV);\n'+
|
||
' else '+codeeq('x','y')+'\n'+
|
||
'}\nreturn x;\n');
|
||
numeric[o] = numeric[i];
|
||
numeric[i+'eqV'] = numeric.pointwise2(['ret[i]','x[i]'], codeeq('ret[i]','x[i]'),setup);
|
||
numeric[i+'eqS'] = numeric.pointwise2(['ret[i]','x'], codeeq('ret[i]','x'),setup);
|
||
numeric[i+'eq'] = Function(
|
||
'var n = arguments.length, i, x = arguments[0], y;\n'+
|
||
'var V = numeric.'+i+'eqV, S = numeric.'+i+'eqS\n'+
|
||
'var s = numeric.dim(x);\n'+
|
||
'for(i=1;i!==n;++i) { \n'+
|
||
' y = arguments[i];\n'+
|
||
' if(typeof y === "object") numeric._biforeach(x,y,s,0,V);\n'+
|
||
' else numeric._biforeach(x,y,s,0,S);\n'+
|
||
'}\nreturn x;\n');
|
||
}
|
||
}
|
||
for(i=0;i<numeric.mathfuns2.length;++i) {
|
||
o = numeric.mathfuns2[i];
|
||
delete numeric.ops2[o];
|
||
}
|
||
for(i=0;i<numeric.mathfuns.length;++i) {
|
||
o = numeric.mathfuns[i];
|
||
numeric.ops1[o] = o;
|
||
}
|
||
for(i in numeric.ops1) {
|
||
if(numeric.ops1.hasOwnProperty(i)) {
|
||
setup = '';
|
||
o = numeric.ops1[i];
|
||
if(numeric.myIndexOf.call(numeric.mathfuns,i)!==-1) {
|
||
if(Math.hasOwnProperty(o)) setup = 'var '+o+' = Math.'+o+';\n';
|
||
}
|
||
numeric[i+'eqV'] = numeric.pointwise2(['ret[i]'],'ret[i] = '+o+'(ret[i]);',setup);
|
||
numeric[i+'eq'] = Function('x',
|
||
'if(typeof x !== "object") return '+o+'x\n'+
|
||
'var i;\n'+
|
||
'var V = numeric.'+i+'eqV;\n'+
|
||
'var s = numeric.dim(x);\n'+
|
||
'numeric._foreach(x,s,0,V);\n'+
|
||
'return x;\n');
|
||
numeric[i+'V'] = numeric.pointwise2(['x[i]'],'ret[i] = '+o+'(x[i]);',setup);
|
||
numeric[i] = Function('x',
|
||
'if(typeof x !== "object") return '+o+'(x)\n'+
|
||
'var i;\n'+
|
||
'var V = numeric.'+i+'V;\n'+
|
||
'var s = numeric.dim(x);\n'+
|
||
'return numeric._foreach2(x,s,0,V);\n');
|
||
}
|
||
}
|
||
for(i=0;i<numeric.mathfuns.length;++i) {
|
||
o = numeric.mathfuns[i];
|
||
delete numeric.ops1[o];
|
||
}
|
||
for(i in numeric.mapreducers) {
|
||
if(numeric.mapreducers.hasOwnProperty(i)) {
|
||
o = numeric.mapreducers[i];
|
||
numeric[i+'V'] = numeric.mapreduce2(o[0],o[1]);
|
||
numeric[i] = Function('x','s','k',
|
||
o[1]+
|
||
'if(typeof x !== "object") {'+
|
||
' xi = x;\n'+
|
||
o[0]+';\n'+
|
||
' return accum;\n'+
|
||
'}'+
|
||
'if(typeof s === "undefined") s = numeric.dim(x);\n'+
|
||
'if(typeof k === "undefined") k = 0;\n'+
|
||
'if(k === s.length-1) return numeric.'+i+'V(x);\n'+
|
||
'var xi;\n'+
|
||
'var n = x.length, i;\n'+
|
||
'for(i=n-1;i!==-1;--i) {\n'+
|
||
' xi = arguments.callee(x[i]);\n'+
|
||
o[0]+';\n'+
|
||
'}\n'+
|
||
'return accum;\n');
|
||
}
|
||
}
|
||
}());
|
||
|
||
numeric.truncVV = numeric.pointwise(['x[i]','y[i]'],'ret[i] = round(x[i]/y[i])*y[i];','var round = Math.round;');
|
||
numeric.truncVS = numeric.pointwise(['x[i]','y'],'ret[i] = round(x[i]/y)*y;','var round = Math.round;');
|
||
numeric.truncSV = numeric.pointwise(['x','y[i]'],'ret[i] = round(x/y[i])*y[i];','var round = Math.round;');
|
||
numeric.trunc = function trunc(x,y) {
|
||
if(typeof x === "object") {
|
||
if(typeof y === "object") return numeric.truncVV(x,y);
|
||
return numeric.truncVS(x,y);
|
||
}
|
||
if (typeof y === "object") return numeric.truncSV(x,y);
|
||
return Math.round(x/y)*y;
|
||
};
|
||
|
||
numeric.inv = function inv(x) {
|
||
var s = numeric.dim(x), abs = Math.abs, m = s[0], n = s[1];
|
||
var A = numeric.clone(x), Ai, Aj;
|
||
var I = numeric.identity(m), Ii, Ij;
|
||
var i,j,k,x;
|
||
for(j=0;j<n;++j) {
|
||
var i0 = -1;
|
||
var v0 = -1;
|
||
for(i=j;i!==m;++i) { k = abs(A[i][j]); if(k>v0) { i0 = i; v0 = k; } }
|
||
Aj = A[i0]; A[i0] = A[j]; A[j] = Aj;
|
||
Ij = I[i0]; I[i0] = I[j]; I[j] = Ij;
|
||
x = Aj[j];
|
||
for(k=j;k!==n;++k) Aj[k] /= x;
|
||
for(k=n-1;k!==-1;--k) Ij[k] /= x;
|
||
for(i=m-1;i!==-1;--i) {
|
||
if(i!==j) {
|
||
Ai = A[i];
|
||
Ii = I[i];
|
||
x = Ai[j];
|
||
for(k=j+1;k!==n;++k) Ai[k] -= Aj[k]*x;
|
||
for(k=n-1;k>0;--k) { Ii[k] -= Ij[k]*x; --k; Ii[k] -= Ij[k]*x; }
|
||
if(k===0) Ii[0] -= Ij[0]*x;
|
||
}
|
||
}
|
||
}
|
||
return I;
|
||
};
|
||
|
||
numeric.det = function det(x) {
|
||
var s = numeric.dim(x);
|
||
if(s.length !== 2 || s[0] !== s[1]) { throw new Error('numeric: det() only works on square matrices'); }
|
||
var n = s[0], ret = 1,i,j,k,A = numeric.clone(x),Aj,Ai,alpha,temp,k1,k2,k3;
|
||
for(j=0;j<n-1;j++) {
|
||
k=j;
|
||
for(i=j+1;i<n;i++) { if(Math.abs(A[i][j]) > Math.abs(A[k][j])) { k = i; } }
|
||
if(k !== j) {
|
||
temp = A[k]; A[k] = A[j]; A[j] = temp;
|
||
ret *= -1;
|
||
}
|
||
Aj = A[j];
|
||
for(i=j+1;i<n;i++) {
|
||
Ai = A[i];
|
||
alpha = Ai[j]/Aj[j];
|
||
for(k=j+1;k<n-1;k+=2) {
|
||
k1 = k+1;
|
||
Ai[k] -= Aj[k]*alpha;
|
||
Ai[k1] -= Aj[k1]*alpha;
|
||
}
|
||
if(k!==n) { Ai[k] -= Aj[k]*alpha; }
|
||
}
|
||
if(Aj[j] === 0) { return 0; }
|
||
ret *= Aj[j];
|
||
}
|
||
return ret*A[j][j];
|
||
};
|
||
|
||
numeric.transpose = function transpose(x) {
|
||
var i,j,m = x.length,n = x[0].length, ret=Array(n),A0,A1,Bj;
|
||
for(j=0;j<n;j++) ret[j] = Array(m);
|
||
for(i=m-1;i>=1;i-=2) {
|
||
A1 = x[i];
|
||
A0 = x[i-1];
|
||
for(j=n-1;j>=1;--j) {
|
||
Bj = ret[j]; Bj[i] = A1[j]; Bj[i-1] = A0[j];
|
||
--j;
|
||
Bj = ret[j]; Bj[i] = A1[j]; Bj[i-1] = A0[j];
|
||
}
|
||
if(j===0) {
|
||
Bj = ret[0]; Bj[i] = A1[0]; Bj[i-1] = A0[0];
|
||
}
|
||
}
|
||
if(i===0) {
|
||
A0 = x[0];
|
||
for(j=n-1;j>=1;--j) {
|
||
ret[j][0] = A0[j];
|
||
--j;
|
||
ret[j][0] = A0[j];
|
||
}
|
||
if(j===0) { ret[0][0] = A0[0]; }
|
||
}
|
||
return ret;
|
||
};
|
||
numeric.negtranspose = function negtranspose(x) {
|
||
var i,j,m = x.length,n = x[0].length, ret=Array(n),A0,A1,Bj;
|
||
for(j=0;j<n;j++) ret[j] = Array(m);
|
||
for(i=m-1;i>=1;i-=2) {
|
||
A1 = x[i];
|
||
A0 = x[i-1];
|
||
for(j=n-1;j>=1;--j) {
|
||
Bj = ret[j]; Bj[i] = -A1[j]; Bj[i-1] = -A0[j];
|
||
--j;
|
||
Bj = ret[j]; Bj[i] = -A1[j]; Bj[i-1] = -A0[j];
|
||
}
|
||
if(j===0) {
|
||
Bj = ret[0]; Bj[i] = -A1[0]; Bj[i-1] = -A0[0];
|
||
}
|
||
}
|
||
if(i===0) {
|
||
A0 = x[0];
|
||
for(j=n-1;j>=1;--j) {
|
||
ret[j][0] = -A0[j];
|
||
--j;
|
||
ret[j][0] = -A0[j];
|
||
}
|
||
if(j===0) { ret[0][0] = -A0[0]; }
|
||
}
|
||
return ret;
|
||
};
|
||
|
||
numeric._random = function _random(s,k) {
|
||
var i,n=s[k],ret=Array(n), rnd;
|
||
if(k === s.length-1) {
|
||
rnd = Math.random;
|
||
for(i=n-1;i>=1;i-=2) {
|
||
ret[i] = rnd();
|
||
ret[i-1] = rnd();
|
||
}
|
||
if(i===0) { ret[0] = rnd(); }
|
||
return ret;
|
||
}
|
||
for(i=n-1;i>=0;i--) ret[i] = _random(s,k+1);
|
||
return ret;
|
||
};
|
||
numeric.random = function random(s) { return numeric._random(s,0); };
|
||
|
||
numeric.norm2 = function norm2(x) { return Math.sqrt(numeric.norm2Squared(x)); };
|
||
|
||
numeric.linspace = function linspace(a,b,n) {
|
||
if(typeof n === "undefined") n = Math.max(Math.round(b-a)+1,1);
|
||
if(n<2) { return n===1?[a]:[]; }
|
||
var i,ret = Array(n);
|
||
n--;
|
||
for(i=n;i>=0;i--) { ret[i] = (i*b+(n-i)*a)/n; }
|
||
return ret;
|
||
};
|
||
|
||
numeric.getBlock = function getBlock(x,from,to) {
|
||
var s = numeric.dim(x);
|
||
function foo(x,k) {
|
||
var i,a = from[k], n = to[k]-a, ret = Array(n);
|
||
if(k === s.length-1) {
|
||
for(i=n;i>=0;i--) { ret[i] = x[i+a]; }
|
||
return ret;
|
||
}
|
||
for(i=n;i>=0;i--) { ret[i] = foo(x[i+a],k+1); }
|
||
return ret;
|
||
}
|
||
return foo(x,0);
|
||
};
|
||
|
||
numeric.setBlock = function setBlock(x,from,to,B) {
|
||
var s = numeric.dim(x);
|
||
function foo(x,y,k) {
|
||
var i,a = from[k], n = to[k]-a;
|
||
if(k === s.length-1) { for(i=n;i>=0;i--) { x[i+a] = y[i]; } }
|
||
for(i=n;i>=0;i--) { foo(x[i+a],y[i],k+1); }
|
||
}
|
||
foo(x,B,0);
|
||
return x;
|
||
};
|
||
|
||
numeric.getRange = function getRange(A,I,J) {
|
||
var m = I.length, n = J.length;
|
||
var i,j;
|
||
var B = Array(m), Bi, AI;
|
||
for(i=m-1;i!==-1;--i) {
|
||
B[i] = Array(n);
|
||
Bi = B[i];
|
||
AI = A[I[i]];
|
||
for(j=n-1;j!==-1;--j) Bi[j] = AI[J[j]];
|
||
}
|
||
return B;
|
||
};
|
||
|
||
numeric.blockMatrix = function blockMatrix(X) {
|
||
var s = numeric.dim(X);
|
||
if(s.length<4) return numeric.blockMatrix([X]);
|
||
var m=s[0],n=s[1],M,N,i,j,Xij;
|
||
M = 0; N = 0;
|
||
for(i=0;i<m;++i) M+=X[i][0].length;
|
||
for(j=0;j<n;++j) N+=X[0][j][0].length;
|
||
var Z = Array(M);
|
||
for(i=0;i<M;++i) Z[i] = Array(N);
|
||
var I=0,J,ZI,k,l,Xijk;
|
||
for(i=0;i<m;++i) {
|
||
J=N;
|
||
for(j=n-1;j!==-1;--j) {
|
||
Xij = X[i][j];
|
||
J -= Xij[0].length;
|
||
for(k=Xij.length-1;k!==-1;--k) {
|
||
Xijk = Xij[k];
|
||
ZI = Z[I+k];
|
||
for(l = Xijk.length-1;l!==-1;--l) ZI[J+l] = Xijk[l];
|
||
}
|
||
}
|
||
I += X[i][0].length;
|
||
}
|
||
return Z;
|
||
};
|
||
|
||
numeric.tensor = function tensor(x,y) {
|
||
if(typeof x === "number" || typeof y === "number") return numeric.mul(x,y);
|
||
var s1 = numeric.dim(x), s2 = numeric.dim(y);
|
||
if(s1.length !== 1 || s2.length !== 1) {
|
||
throw new Error('numeric: tensor product is only defined for vectors');
|
||
}
|
||
var m = s1[0], n = s2[0], A = Array(m), Ai, i,j,xi;
|
||
for(i=m-1;i>=0;i--) {
|
||
Ai = Array(n);
|
||
xi = x[i];
|
||
for(j=n-1;j>=3;--j) {
|
||
Ai[j] = xi * y[j];
|
||
--j;
|
||
Ai[j] = xi * y[j];
|
||
--j;
|
||
Ai[j] = xi * y[j];
|
||
--j;
|
||
Ai[j] = xi * y[j];
|
||
}
|
||
while(j>=0) { Ai[j] = xi * y[j]; --j; }
|
||
A[i] = Ai;
|
||
}
|
||
return A;
|
||
};
|
||
|
||
// 3. The Tensor type T
|
||
numeric.T = function T(x,y) { this.x = x; this.y = y; };
|
||
numeric.t = function t(x,y) { return new numeric.T(x,y); };
|
||
|
||
numeric.Tbinop = function Tbinop(rr,rc,cr,cc,setup) {
|
||
var io = numeric.indexOf;
|
||
if(typeof setup !== "string") {
|
||
var k;
|
||
setup = '';
|
||
for(k in numeric) {
|
||
if(numeric.hasOwnProperty(k) && (rr.indexOf(k)>=0 || rc.indexOf(k)>=0 || cr.indexOf(k)>=0 || cc.indexOf(k)>=0) && k.length>1) {
|
||
setup += 'var '+k+' = numeric.'+k+';\n';
|
||
}
|
||
}
|
||
}
|
||
return Function(['y'],
|
||
'var x = this;\n'+
|
||
'if(!(y instanceof numeric.T)) { y = new numeric.T(y); }\n'+
|
||
setup+'\n'+
|
||
'if(x.y) {'+
|
||
' if(y.y) {'+
|
||
' return new numeric.T('+cc+');\n'+
|
||
' }\n'+
|
||
' return new numeric.T('+cr+');\n'+
|
||
'}\n'+
|
||
'if(y.y) {\n'+
|
||
' return new numeric.T('+rc+');\n'+
|
||
'}\n'+
|
||
'return new numeric.T('+rr+');\n'
|
||
);
|
||
};
|
||
|
||
numeric.T.prototype.add = numeric.Tbinop(
|
||
'add(x.x,y.x)',
|
||
'add(x.x,y.x),y.y',
|
||
'add(x.x,y.x),x.y',
|
||
'add(x.x,y.x),add(x.y,y.y)');
|
||
numeric.T.prototype.sub = numeric.Tbinop(
|
||
'sub(x.x,y.x)',
|
||
'sub(x.x,y.x),neg(y.y)',
|
||
'sub(x.x,y.x),x.y',
|
||
'sub(x.x,y.x),sub(x.y,y.y)');
|
||
numeric.T.prototype.mul = numeric.Tbinop(
|
||
'mul(x.x,y.x)',
|
||
'mul(x.x,y.x),mul(x.x,y.y)',
|
||
'mul(x.x,y.x),mul(x.y,y.x)',
|
||
'sub(mul(x.x,y.x),mul(x.y,y.y)),add(mul(x.x,y.y),mul(x.y,y.x))');
|
||
|
||
numeric.T.prototype.reciprocal = function reciprocal() {
|
||
var mul = numeric.mul, div = numeric.div;
|
||
if(this.y) {
|
||
var d = numeric.add(mul(this.x,this.x),mul(this.y,this.y));
|
||
return new numeric.T(div(this.x,d),div(numeric.neg(this.y),d));
|
||
}
|
||
return new T(div(1,this.x));
|
||
};
|
||
numeric.T.prototype.div = function div(y) {
|
||
if(!(y instanceof numeric.T)) y = new numeric.T(y);
|
||
if(y.y) { return this.mul(y.reciprocal()); }
|
||
var div = numeric.div;
|
||
if(this.y) { return new numeric.T(div(this.x,y.x),div(this.y,y.x)); }
|
||
return new numeric.T(div(this.x,y.x));
|
||
};
|
||
numeric.T.prototype.dot = numeric.Tbinop(
|
||
'dot(x.x,y.x)',
|
||
'dot(x.x,y.x),dot(x.x,y.y)',
|
||
'dot(x.x,y.x),dot(x.y,y.x)',
|
||
'sub(dot(x.x,y.x),dot(x.y,y.y)),add(dot(x.x,y.y),dot(x.y,y.x))'
|
||
);
|
||
numeric.T.prototype.transpose = function transpose() {
|
||
var t = numeric.transpose, x = this.x, y = this.y;
|
||
if(y) { return new numeric.T(t(x),t(y)); }
|
||
return new numeric.T(t(x));
|
||
};
|
||
numeric.T.prototype.transjugate = function transjugate() {
|
||
var t = numeric.transpose, x = this.x, y = this.y;
|
||
if(y) { return new numeric.T(t(x),numeric.negtranspose(y)); }
|
||
return new numeric.T(t(x));
|
||
};
|
||
numeric.Tunop = function Tunop(r,c,s) {
|
||
if(typeof s !== "string") { s = ''; }
|
||
return Function(
|
||
'var x = this;\n'+
|
||
s+'\n'+
|
||
'if(x.y) {'+
|
||
' '+c+';\n'+
|
||
'}\n'+
|
||
r+';\n'
|
||
);
|
||
};
|
||
|
||
numeric.T.prototype.exp = numeric.Tunop(
|
||
'return new numeric.T(ex)',
|
||
'return new numeric.T(mul(cos(x.y),ex),mul(sin(x.y),ex))',
|
||
'var ex = numeric.exp(x.x), cos = numeric.cos, sin = numeric.sin, mul = numeric.mul;');
|
||
numeric.T.prototype.conj = numeric.Tunop(
|
||
'return new numeric.T(x.x);',
|
||
'return new numeric.T(x.x,numeric.neg(x.y));');
|
||
numeric.T.prototype.neg = numeric.Tunop(
|
||
'return new numeric.T(neg(x.x));',
|
||
'return new numeric.T(neg(x.x),neg(x.y));',
|
||
'var neg = numeric.neg;');
|
||
numeric.T.prototype.sin = numeric.Tunop(
|
||
'return new numeric.T(numeric.sin(x.x))',
|
||
'return x.exp().sub(x.neg().exp()).div(new numeric.T(0,2));');
|
||
numeric.T.prototype.cos = numeric.Tunop(
|
||
'return new numeric.T(numeric.cos(x.x))',
|
||
'return x.exp().add(x.neg().exp()).div(2);');
|
||
numeric.T.prototype.abs = numeric.Tunop(
|
||
'return new numeric.T(numeric.abs(x.x));',
|
||
'return new numeric.T(numeric.sqrt(numeric.add(mul(x.x,x.x),mul(x.y,x.y))));',
|
||
'var mul = numeric.mul;');
|
||
numeric.T.prototype.log = numeric.Tunop(
|
||
'return new numeric.T(numeric.log(x.x));',
|
||
'var theta = new numeric.T(numeric.atan2(x.y,x.x)), r = x.abs();\n'+
|
||
'return new numeric.T(numeric.log(r.x),theta.x);');
|
||
numeric.T.prototype.norm2 = numeric.Tunop(
|
||
'return numeric.norm2(x.x);',
|
||
'var f = numeric.norm2Squared;\n'+
|
||
'return Math.sqrt(f(x.x)+f(x.y));');
|
||
numeric.T.prototype.inv = function inv() {
|
||
var A = this;
|
||
if(typeof A.y === "undefined") { return new numeric.T(numeric.inv(A.x)); }
|
||
var n = A.x.length, i, j, k;
|
||
var Rx = numeric.identity(n),Ry = numeric.rep([n,n],0);
|
||
var Ax = numeric.clone(A.x), Ay = numeric.clone(A.y);
|
||
var Aix, Aiy, Ajx, Ajy, Rix, Riy, Rjx, Rjy;
|
||
var i,j,k,d,d1,ax,ay,bx,by,temp;
|
||
for(i=0;i<n;i++) {
|
||
ax = Ax[i][i]; ay = Ay[i][i];
|
||
d = ax*ax+ay*ay;
|
||
k = i;
|
||
for(j=i+1;j<n;j++) {
|
||
ax = Ax[j][i]; ay = Ay[j][i];
|
||
d1 = ax*ax+ay*ay;
|
||
if(d1 > d) { k=j; d = d1; }
|
||
}
|
||
if(k!==i) {
|
||
temp = Ax[i]; Ax[i] = Ax[k]; Ax[k] = temp;
|
||
temp = Ay[i]; Ay[i] = Ay[k]; Ay[k] = temp;
|
||
temp = Rx[i]; Rx[i] = Rx[k]; Rx[k] = temp;
|
||
temp = Ry[i]; Ry[i] = Ry[k]; Ry[k] = temp;
|
||
}
|
||
Aix = Ax[i]; Aiy = Ay[i];
|
||
Rix = Rx[i]; Riy = Ry[i];
|
||
ax = Aix[i]; ay = Aiy[i];
|
||
for(j=i+1;j<n;j++) {
|
||
bx = Aix[j]; by = Aiy[j];
|
||
Aix[j] = (bx*ax+by*ay)/d;
|
||
Aiy[j] = (by*ax-bx*ay)/d;
|
||
}
|
||
for(j=0;j<n;j++) {
|
||
bx = Rix[j]; by = Riy[j];
|
||
Rix[j] = (bx*ax+by*ay)/d;
|
||
Riy[j] = (by*ax-bx*ay)/d;
|
||
}
|
||
for(j=i+1;j<n;j++) {
|
||
Ajx = Ax[j]; Ajy = Ay[j];
|
||
Rjx = Rx[j]; Rjy = Ry[j];
|
||
ax = Ajx[i]; ay = Ajy[i];
|
||
for(k=i+1;k<n;k++) {
|
||
bx = Aix[k]; by = Aiy[k];
|
||
Ajx[k] -= bx*ax-by*ay;
|
||
Ajy[k] -= by*ax+bx*ay;
|
||
}
|
||
for(k=0;k<n;k++) {
|
||
bx = Rix[k]; by = Riy[k];
|
||
Rjx[k] -= bx*ax-by*ay;
|
||
Rjy[k] -= by*ax+bx*ay;
|
||
}
|
||
}
|
||
}
|
||
for(i=n-1;i>0;i--) {
|
||
Rix = Rx[i]; Riy = Ry[i];
|
||
for(j=i-1;j>=0;j--) {
|
||
Rjx = Rx[j]; Rjy = Ry[j];
|
||
ax = Ax[j][i]; ay = Ay[j][i];
|
||
for(k=n-1;k>=0;k--) {
|
||
bx = Rix[k]; by = Riy[k];
|
||
Rjx[k] -= ax*bx - ay*by;
|
||
Rjy[k] -= ax*by + ay*bx;
|
||
}
|
||
}
|
||
}
|
||
return new numeric.T(Rx,Ry);
|
||
};
|
||
numeric.T.prototype.get = function get(i) {
|
||
var x = this.x, y = this.y, k = 0, ik, n = i.length;
|
||
if(y) {
|
||
while(k<n) {
|
||
ik = i[k];
|
||
x = x[ik];
|
||
y = y[ik];
|
||
k++;
|
||
}
|
||
return new numeric.T(x,y);
|
||
}
|
||
while(k<n) {
|
||
ik = i[k];
|
||
x = x[ik];
|
||
k++;
|
||
}
|
||
return new numeric.T(x);
|
||
};
|
||
numeric.T.prototype.set = function set(i,v) {
|
||
var x = this.x, y = this.y, k = 0, ik, n = i.length, vx = v.x, vy = v.y;
|
||
if(n===0) {
|
||
if(vy) { this.y = vy; }
|
||
else if(y) { this.y = undefined; }
|
||
this.x = x;
|
||
return this;
|
||
}
|
||
if(vy) {
|
||
if(y) { /* ok */ }
|
||
else {
|
||
y = numeric.rep(numeric.dim(x),0);
|
||
this.y = y;
|
||
}
|
||
while(k<n-1) {
|
||
ik = i[k];
|
||
x = x[ik];
|
||
y = y[ik];
|
||
k++;
|
||
}
|
||
ik = i[k];
|
||
x[ik] = vx;
|
||
y[ik] = vy;
|
||
return this;
|
||
}
|
||
if(y) {
|
||
while(k<n-1) {
|
||
ik = i[k];
|
||
x = x[ik];
|
||
y = y[ik];
|
||
k++;
|
||
}
|
||
ik = i[k];
|
||
x[ik] = vx;
|
||
if(vx instanceof Array) y[ik] = numeric.rep(numeric.dim(vx),0);
|
||
else y[ik] = 0;
|
||
return this;
|
||
}
|
||
while(k<n-1) {
|
||
ik = i[k];
|
||
x = x[ik];
|
||
k++;
|
||
}
|
||
ik = i[k];
|
||
x[ik] = vx;
|
||
return this;
|
||
};
|
||
numeric.T.prototype.getRows = function getRows(i0,i1) {
|
||
var n = i1-i0+1, j;
|
||
var rx = Array(n), ry, x = this.x, y = this.y;
|
||
for(j=i0;j<=i1;j++) { rx[j-i0] = x[j]; }
|
||
if(y) {
|
||
ry = Array(n);
|
||
for(j=i0;j<=i1;j++) { ry[j-i0] = y[j]; }
|
||
return new numeric.T(rx,ry);
|
||
}
|
||
return new numeric.T(rx);
|
||
};
|
||
numeric.T.prototype.setRows = function setRows(i0,i1,A) {
|
||
var j;
|
||
var rx = this.x, ry = this.y, x = A.x, y = A.y;
|
||
for(j=i0;j<=i1;j++) { rx[j] = x[j-i0]; }
|
||
if(y) {
|
||
if(!ry) { ry = numeric.rep(numeric.dim(rx),0); this.y = ry; }
|
||
for(j=i0;j<=i1;j++) { ry[j] = y[j-i0]; }
|
||
} else if(ry) {
|
||
for(j=i0;j<=i1;j++) { ry[j] = numeric.rep([x[j-i0].length],0); }
|
||
}
|
||
return this;
|
||
};
|
||
numeric.T.prototype.getRow = function getRow(k) {
|
||
var x = this.x, y = this.y;
|
||
if(y) { return new numeric.T(x[k],y[k]); }
|
||
return new numeric.T(x[k]);
|
||
};
|
||
numeric.T.prototype.setRow = function setRow(i,v) {
|
||
var rx = this.x, ry = this.y, x = v.x, y = v.y;
|
||
rx[i] = x;
|
||
if(y) {
|
||
if(!ry) { ry = numeric.rep(numeric.dim(rx),0); this.y = ry; }
|
||
ry[i] = y;
|
||
} else if(ry) {
|
||
ry = numeric.rep([x.length],0);
|
||
}
|
||
return this;
|
||
};
|
||
|
||
numeric.T.prototype.getBlock = function getBlock(from,to) {
|
||
var x = this.x, y = this.y, b = numeric.getBlock;
|
||
if(y) { return new numeric.T(b(x,from,to),b(y,from,to)); }
|
||
return new numeric.T(b(x,from,to));
|
||
};
|
||
numeric.T.prototype.setBlock = function setBlock(from,to,A) {
|
||
if(!(A instanceof numeric.T)) A = new numeric.T(A);
|
||
var x = this.x, y = this.y, b = numeric.setBlock, Ax = A.x, Ay = A.y;
|
||
if(Ay) {
|
||
if(!y) { this.y = numeric.rep(numeric.dim(this),0); y = this.y; }
|
||
b(x,from,to,Ax);
|
||
b(y,from,to,Ay);
|
||
return this;
|
||
}
|
||
b(x,from,to,Ax);
|
||
if(y) b(y,from,to,numeric.rep(numeric.dim(Ax),0));
|
||
};
|
||
numeric.T.rep = function rep(s,v) {
|
||
var T = numeric.T;
|
||
if(!(v instanceof T)) v = new T(v);
|
||
var x = v.x, y = v.y, r = numeric.rep;
|
||
if(y) return new T(r(s,x),r(s,y));
|
||
return new T(r(s,x));
|
||
};
|
||
numeric.T.diag = function diag(d) {
|
||
if(!(d instanceof numeric.T)) d = new numeric.T(d);
|
||
var x = d.x, y = d.y, diag = numeric.diag;
|
||
if(y) return new numeric.T(diag(x),diag(y));
|
||
return new numeric.T(diag(x));
|
||
};
|
||
numeric.T.eig = function eig() {
|
||
if(this.y) { throw new Error('eig: not implemented for complex matrices.'); }
|
||
return numeric.eig(this.x);
|
||
};
|
||
numeric.T.identity = function identity(n) { return new numeric.T(numeric.identity(n)); };
|
||
numeric.T.prototype.getDiag = function getDiag() {
|
||
var n = numeric;
|
||
var x = this.x, y = this.y;
|
||
if(y) { return new n.T(n.getDiag(x),n.getDiag(y)); }
|
||
return new n.T(n.getDiag(x));
|
||
};
|
||
|
||
// 4. Eigenvalues of real matrices
|
||
|
||
numeric.house = function house(x) {
|
||
var v = numeric.clone(x);
|
||
var s = x[0] >= 0 ? 1 : -1;
|
||
var alpha = s*numeric.norm2(x);
|
||
v[0] += alpha;
|
||
var foo = numeric.norm2(v);
|
||
if(foo === 0) { /* this should not happen */ throw new Error('eig: internal error'); }
|
||
return numeric.div(v,foo);
|
||
};
|
||
|
||
numeric.toUpperHessenberg = function toUpperHessenberg(me) {
|
||
var s = numeric.dim(me);
|
||
if(s.length !== 2 || s[0] !== s[1]) { throw new Error('numeric: toUpperHessenberg() only works on square matrices'); }
|
||
var m = s[0], i,j,k,x,v,A = numeric.clone(me),B,C,Ai,Ci,Q = numeric.identity(m),Qi;
|
||
for(j=0;j<m-2;j++) {
|
||
x = Array(m-j-1);
|
||
for(i=j+1;i<m;i++) { x[i-j-1] = A[i][j]; }
|
||
if(numeric.norm2(x)>0) {
|
||
v = numeric.house(x);
|
||
B = numeric.getBlock(A,[j+1,j],[m-1,m-1]);
|
||
C = numeric.tensor(v,numeric.dot(v,B));
|
||
for(i=j+1;i<m;i++) { Ai = A[i]; Ci = C[i-j-1]; for(k=j;k<m;k++) Ai[k] -= 2*Ci[k-j]; }
|
||
B = numeric.getBlock(A,[0,j+1],[m-1,m-1]);
|
||
C = numeric.tensor(numeric.dot(B,v),v);
|
||
for(i=0;i<m;i++) { Ai = A[i]; Ci = C[i]; for(k=j+1;k<m;k++) Ai[k] -= 2*Ci[k-j-1]; }
|
||
B = Array(m-j-1);
|
||
for(i=j+1;i<m;i++) B[i-j-1] = Q[i];
|
||
C = numeric.tensor(v,numeric.dot(v,B));
|
||
for(i=j+1;i<m;i++) { Qi = Q[i]; Ci = C[i-j-1]; for(k=0;k<m;k++) Qi[k] -= 2*Ci[k]; }
|
||
}
|
||
}
|
||
return {H:A, Q:Q};
|
||
};
|
||
|
||
numeric.epsilon = 2.220446049250313e-16;
|
||
|
||
numeric.QRFrancis = function(H,maxiter) {
|
||
if(typeof maxiter === "undefined") { maxiter = 10000; }
|
||
H = numeric.clone(H);
|
||
var H0 = numeric.clone(H);
|
||
var s = numeric.dim(H),m=s[0],x,v,a,b,c,d,det,tr, Hloc, Q = numeric.identity(m), Qi, Hi, B, C, Ci,i,j,k,iter;
|
||
if(m<3) { return {Q:Q, B:[ [0,m-1] ]}; }
|
||
var epsilon = numeric.epsilon;
|
||
for(iter=0;iter<maxiter;iter++) {
|
||
for(j=0;j<m-1;j++) {
|
||
if(Math.abs(H[j+1][j]) < epsilon*(Math.abs(H[j][j])+Math.abs(H[j+1][j+1]))) {
|
||
var QH1 = numeric.QRFrancis(numeric.getBlock(H,[0,0],[j,j]),maxiter);
|
||
var QH2 = numeric.QRFrancis(numeric.getBlock(H,[j+1,j+1],[m-1,m-1]),maxiter);
|
||
B = Array(j+1);
|
||
for(i=0;i<=j;i++) { B[i] = Q[i]; }
|
||
C = numeric.dot(QH1.Q,B);
|
||
for(i=0;i<=j;i++) { Q[i] = C[i]; }
|
||
B = Array(m-j-1);
|
||
for(i=j+1;i<m;i++) { B[i-j-1] = Q[i]; }
|
||
C = numeric.dot(QH2.Q,B);
|
||
for(i=j+1;i<m;i++) { Q[i] = C[i-j-1]; }
|
||
return {Q:Q,B:QH1.B.concat(numeric.add(QH2.B,j+1))};
|
||
}
|
||
}
|
||
a = H[m-2][m-2]; b = H[m-2][m-1];
|
||
c = H[m-1][m-2]; d = H[m-1][m-1];
|
||
tr = a+d;
|
||
det = (a*d-b*c);
|
||
Hloc = numeric.getBlock(H, [0,0], [2,2]);
|
||
if(tr*tr>=4*det) {
|
||
var s1,s2;
|
||
s1 = 0.5*(tr+Math.sqrt(tr*tr-4*det));
|
||
s2 = 0.5*(tr-Math.sqrt(tr*tr-4*det));
|
||
Hloc = numeric.add(numeric.sub(numeric.dot(Hloc,Hloc),
|
||
numeric.mul(Hloc,s1+s2)),
|
||
numeric.diag(numeric.rep([3],s1*s2)));
|
||
} else {
|
||
Hloc = numeric.add(numeric.sub(numeric.dot(Hloc,Hloc),
|
||
numeric.mul(Hloc,tr)),
|
||
numeric.diag(numeric.rep([3],det)));
|
||
}
|
||
x = [Hloc[0][0],Hloc[1][0],Hloc[2][0]];
|
||
v = numeric.house(x);
|
||
B = [H[0],H[1],H[2]];
|
||
C = numeric.tensor(v,numeric.dot(v,B));
|
||
for(i=0;i<3;i++) { Hi = H[i]; Ci = C[i]; for(k=0;k<m;k++) Hi[k] -= 2*Ci[k]; }
|
||
B = numeric.getBlock(H, [0,0],[m-1,2]);
|
||
C = numeric.tensor(numeric.dot(B,v),v);
|
||
for(i=0;i<m;i++) { Hi = H[i]; Ci = C[i]; for(k=0;k<3;k++) Hi[k] -= 2*Ci[k]; }
|
||
B = [Q[0],Q[1],Q[2]];
|
||
C = numeric.tensor(v,numeric.dot(v,B));
|
||
for(i=0;i<3;i++) { Qi = Q[i]; Ci = C[i]; for(k=0;k<m;k++) Qi[k] -= 2*Ci[k]; }
|
||
var J;
|
||
for(j=0;j<m-2;j++) {
|
||
for(k=j;k<=j+1;k++) {
|
||
if(Math.abs(H[k+1][k]) < epsilon*(Math.abs(H[k][k])+Math.abs(H[k+1][k+1]))) {
|
||
var QH1 = numeric.QRFrancis(numeric.getBlock(H,[0,0],[k,k]),maxiter);
|
||
var QH2 = numeric.QRFrancis(numeric.getBlock(H,[k+1,k+1],[m-1,m-1]),maxiter);
|
||
B = Array(k+1);
|
||
for(i=0;i<=k;i++) { B[i] = Q[i]; }
|
||
C = numeric.dot(QH1.Q,B);
|
||
for(i=0;i<=k;i++) { Q[i] = C[i]; }
|
||
B = Array(m-k-1);
|
||
for(i=k+1;i<m;i++) { B[i-k-1] = Q[i]; }
|
||
C = numeric.dot(QH2.Q,B);
|
||
for(i=k+1;i<m;i++) { Q[i] = C[i-k-1]; }
|
||
return {Q:Q,B:QH1.B.concat(numeric.add(QH2.B,k+1))};
|
||
}
|
||
}
|
||
J = Math.min(m-1,j+3);
|
||
x = Array(J-j);
|
||
for(i=j+1;i<=J;i++) { x[i-j-1] = H[i][j]; }
|
||
v = numeric.house(x);
|
||
B = numeric.getBlock(H, [j+1,j],[J,m-1]);
|
||
C = numeric.tensor(v,numeric.dot(v,B));
|
||
for(i=j+1;i<=J;i++) { Hi = H[i]; Ci = C[i-j-1]; for(k=j;k<m;k++) Hi[k] -= 2*Ci[k-j]; }
|
||
B = numeric.getBlock(H, [0,j+1],[m-1,J]);
|
||
C = numeric.tensor(numeric.dot(B,v),v);
|
||
for(i=0;i<m;i++) { Hi = H[i]; Ci = C[i]; for(k=j+1;k<=J;k++) Hi[k] -= 2*Ci[k-j-1]; }
|
||
B = Array(J-j);
|
||
for(i=j+1;i<=J;i++) B[i-j-1] = Q[i];
|
||
C = numeric.tensor(v,numeric.dot(v,B));
|
||
for(i=j+1;i<=J;i++) { Qi = Q[i]; Ci = C[i-j-1]; for(k=0;k<m;k++) Qi[k] -= 2*Ci[k]; }
|
||
}
|
||
}
|
||
throw new Error('numeric: eigenvalue iteration does not converge -- increase maxiter?');
|
||
};
|
||
|
||
numeric.eig = function eig(A,maxiter) {
|
||
var QH = numeric.toUpperHessenberg(A);
|
||
var QB = numeric.QRFrancis(QH.H,maxiter);
|
||
var T = numeric.T;
|
||
var n = A.length,i,k,flag = false,B = QB.B,H = numeric.dot(QB.Q,numeric.dot(QH.H,numeric.transpose(QB.Q)));
|
||
var Q = new T(numeric.dot(QB.Q,QH.Q)),Q0;
|
||
var m = B.length,j;
|
||
var a,b,c,d,p1,p2,disc,x,y,p,q,n1,n2;
|
||
var sqrt = Math.sqrt;
|
||
for(k=0;k<m;k++) {
|
||
i = B[k][0];
|
||
if(i === B[k][1]) {
|
||
// nothing
|
||
} else {
|
||
j = i+1;
|
||
a = H[i][i];
|
||
b = H[i][j];
|
||
c = H[j][i];
|
||
d = H[j][j];
|
||
if(b === 0 && c === 0) continue;
|
||
p1 = -a-d;
|
||
p2 = a*d-b*c;
|
||
disc = p1*p1-4*p2;
|
||
if(disc>=0) {
|
||
if(p1<0) x = -0.5*(p1-sqrt(disc));
|
||
else x = -0.5*(p1+sqrt(disc));
|
||
n1 = (a-x)*(a-x)+b*b;
|
||
n2 = c*c+(d-x)*(d-x);
|
||
if(n1>n2) {
|
||
n1 = sqrt(n1);
|
||
p = (a-x)/n1;
|
||
q = b/n1;
|
||
} else {
|
||
n2 = sqrt(n2);
|
||
p = c/n2;
|
||
q = (d-x)/n2;
|
||
}
|
||
Q0 = new T([[q,-p],[p,q]]);
|
||
Q.setRows(i,j,Q0.dot(Q.getRows(i,j)));
|
||
} else {
|
||
x = -0.5*p1;
|
||
y = 0.5*sqrt(-disc);
|
||
n1 = (a-x)*(a-x)+b*b;
|
||
n2 = c*c+(d-x)*(d-x);
|
||
if(n1>n2) {
|
||
n1 = sqrt(n1+y*y);
|
||
p = (a-x)/n1;
|
||
q = b/n1;
|
||
x = 0;
|
||
y /= n1;
|
||
} else {
|
||
n2 = sqrt(n2+y*y);
|
||
p = c/n2;
|
||
q = (d-x)/n2;
|
||
x = y/n2;
|
||
y = 0;
|
||
}
|
||
Q0 = new T([[q,-p],[p,q]],[[x,y],[y,-x]]);
|
||
Q.setRows(i,j,Q0.dot(Q.getRows(i,j)));
|
||
}
|
||
}
|
||
}
|
||
var R = Q.dot(A).dot(Q.transjugate()), n = A.length, E = numeric.T.identity(n);
|
||
for(j=0;j<n;j++) {
|
||
if(j>0) {
|
||
for(k=j-1;k>=0;k--) {
|
||
var Rk = R.get([k,k]), Rj = R.get([j,j]);
|
||
if(numeric.neq(Rk.x,Rj.x) || numeric.neq(Rk.y,Rj.y)) {
|
||
x = R.getRow(k).getBlock([k],[j-1]);
|
||
y = E.getRow(j).getBlock([k],[j-1]);
|
||
E.set([j,k],(R.get([k,j]).neg().sub(x.dot(y))).div(Rk.sub(Rj)));
|
||
} else {
|
||
E.setRow(j,E.getRow(k));
|
||
continue;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
for(j=0;j<n;j++) {
|
||
x = E.getRow(j);
|
||
E.setRow(j,x.div(x.norm2()));
|
||
}
|
||
E = E.transpose();
|
||
E = Q.transjugate().dot(E);
|
||
return { lambda:R.getDiag(), E:E };
|
||
};
|
||
|
||
// 5. Compressed Column Storage matrices
|
||
numeric.ccsSparse = function ccsSparse(A) {
|
||
var m = A.length,n,foo, i,j, counts = [];
|
||
for(i=m-1;i!==-1;--i) {
|
||
foo = A[i];
|
||
for(j in foo) {
|
||
j = parseInt(j);
|
||
while(j>=counts.length) counts[counts.length] = 0;
|
||
if(foo[j]!==0) counts[j]++;
|
||
}
|
||
}
|
||
var n = counts.length;
|
||
var Ai = Array(n+1);
|
||
Ai[0] = 0;
|
||
for(i=0;i<n;++i) Ai[i+1] = Ai[i] + counts[i];
|
||
var Aj = Array(Ai[n]), Av = Array(Ai[n]);
|
||
for(i=m-1;i!==-1;--i) {
|
||
foo = A[i];
|
||
for(j in foo) {
|
||
if(foo[j]!==0) {
|
||
counts[j]--;
|
||
Aj[Ai[j]+counts[j]] = i;
|
||
Av[Ai[j]+counts[j]] = foo[j];
|
||
}
|
||
}
|
||
}
|
||
return [Ai,Aj,Av];
|
||
};
|
||
numeric.ccsFull = function ccsFull(A) {
|
||
var Ai = A[0], Aj = A[1], Av = A[2], s = numeric.ccsDim(A), m = s[0], n = s[1], i,j,j0,j1,k;
|
||
var B = numeric.rep([m,n],0);
|
||
for(i=0;i<n;i++) {
|
||
j0 = Ai[i];
|
||
j1 = Ai[i+1];
|
||
for(j=j0;j<j1;++j) { B[Aj[j]][i] = Av[j]; }
|
||
}
|
||
return B;
|
||
};
|
||
numeric.ccsTSolve = function ccsTSolve(A,b,x,bj,xj) {
|
||
var Ai = A[0], Aj = A[1], Av = A[2],m = Ai.length-1, max = Math.max,n=0;
|
||
if(typeof bj === "undefined") x = numeric.rep([m],0);
|
||
if(typeof bj === "undefined") bj = numeric.linspace(0,x.length-1);
|
||
if(typeof xj === "undefined") xj = [];
|
||
function dfs(j) {
|
||
var k;
|
||
if(x[j] !== 0) return;
|
||
x[j] = 1;
|
||
for(k=Ai[j];k<Ai[j+1];++k) dfs(Aj[k]);
|
||
xj[n] = j;
|
||
++n;
|
||
}
|
||
var i,j,j0,j1,k,l,l0,l1,a;
|
||
for(i=bj.length-1;i!==-1;--i) { dfs(bj[i]); }
|
||
xj.length = n;
|
||
for(i=xj.length-1;i!==-1;--i) { x[xj[i]] = 0; }
|
||
for(i=bj.length-1;i!==-1;--i) { j = bj[i]; x[j] = b[j]; }
|
||
for(i=xj.length-1;i!==-1;--i) {
|
||
j = xj[i];
|
||
j0 = Ai[j];
|
||
j1 = max(Ai[j+1],j0);
|
||
for(k=j0;k!==j1;++k) { if(Aj[k] === j) { x[j] /= Av[k]; break; } }
|
||
a = x[j];
|
||
for(k=j0;k!==j1;++k) {
|
||
l = Aj[k];
|
||
if(l !== j) x[l] -= a*Av[k];
|
||
}
|
||
}
|
||
return x;
|
||
};
|
||
numeric.ccsDFS = function ccsDFS(n) {
|
||
this.k = Array(n);
|
||
this.k1 = Array(n);
|
||
this.j = Array(n);
|
||
};
|
||
numeric.ccsDFS.prototype.dfs = function dfs(J,Ai,Aj,x,xj,Pinv) {
|
||
var m = 0,foo,n=xj.length;
|
||
var k = this.k, k1 = this.k1, j = this.j,km,k11;
|
||
if(x[J]!==0) return;
|
||
x[J] = 1;
|
||
j[0] = J;
|
||
k[0] = km = Ai[J];
|
||
k1[0] = k11 = Ai[J+1];
|
||
while(1) {
|
||
if(km >= k11) {
|
||
xj[n] = j[m];
|
||
if(m===0) return;
|
||
++n;
|
||
--m;
|
||
km = k[m];
|
||
k11 = k1[m];
|
||
} else {
|
||
foo = Pinv[Aj[km]];
|
||
if(x[foo] === 0) {
|
||
x[foo] = 1;
|
||
k[m] = km;
|
||
++m;
|
||
j[m] = foo;
|
||
km = Ai[foo];
|
||
k1[m] = k11 = Ai[foo+1];
|
||
} else ++km;
|
||
}
|
||
}
|
||
};
|
||
numeric.ccsLPSolve = function ccsLPSolve(A,B,x,xj,I,Pinv,dfs) {
|
||
var Ai = A[0], Aj = A[1], Av = A[2],m = Ai.length-1, n=0;
|
||
var Bi = B[0], Bj = B[1], Bv = B[2];
|
||
|
||
var i,i0,i1,j,J,j0,j1,k,l,l0,l1,a;
|
||
i0 = Bi[I];
|
||
i1 = Bi[I+1];
|
||
xj.length = 0;
|
||
for(i=i0;i<i1;++i) { dfs.dfs(Pinv[Bj[i]],Ai,Aj,x,xj,Pinv); }
|
||
for(i=xj.length-1;i!==-1;--i) { x[xj[i]] = 0; }
|
||
for(i=i0;i!==i1;++i) { j = Pinv[Bj[i]]; x[j] = Bv[i]; }
|
||
for(i=xj.length-1;i!==-1;--i) {
|
||
j = xj[i];
|
||
j0 = Ai[j];
|
||
j1 = Ai[j+1];
|
||
for(k=j0;k<j1;++k) { if(Pinv[Aj[k]] === j) { x[j] /= Av[k]; break; } }
|
||
a = x[j];
|
||
for(k=j0;k<j1;++k) {
|
||
l = Pinv[Aj[k]];
|
||
if(l !== j) x[l] -= a*Av[k];
|
||
}
|
||
}
|
||
return x;
|
||
};
|
||
numeric.ccsLUP1 = function ccsLUP1(A,threshold) {
|
||
var m = A[0].length-1;
|
||
var L = [numeric.rep([m+1],0),[],[]], U = [numeric.rep([m+1], 0),[],[]];
|
||
var Li = L[0], Lj = L[1], Lv = L[2], Ui = U[0], Uj = U[1], Uv = U[2];
|
||
var x = numeric.rep([m],0), xj = numeric.rep([m],0);
|
||
var i,j,k,j0,j1,a,e,c,d,K;
|
||
var sol = numeric.ccsLPSolve, max = Math.max, abs = Math.abs;
|
||
var P = numeric.linspace(0,m-1),Pinv = numeric.linspace(0,m-1);
|
||
var dfs = new numeric.ccsDFS(m);
|
||
if(typeof threshold === "undefined") { threshold = 1; }
|
||
for(i=0;i<m;++i) {
|
||
sol(L,A,x,xj,i,Pinv,dfs);
|
||
a = -1;
|
||
e = -1;
|
||
for(j=xj.length-1;j!==-1;--j) {
|
||
k = xj[j];
|
||
if(k <= i) continue;
|
||
c = abs(x[k]);
|
||
if(c > a) { e = k; a = c; }
|
||
}
|
||
if(abs(x[i])<threshold*a) {
|
||
j = P[i];
|
||
a = P[e];
|
||
P[i] = a; Pinv[a] = i;
|
||
P[e] = j; Pinv[j] = e;
|
||
a = x[i]; x[i] = x[e]; x[e] = a;
|
||
}
|
||
a = Li[i];
|
||
e = Ui[i];
|
||
d = x[i];
|
||
Lj[a] = P[i];
|
||
Lv[a] = 1;
|
||
++a;
|
||
for(j=xj.length-1;j!==-1;--j) {
|
||
k = xj[j];
|
||
c = x[k];
|
||
xj[j] = 0;
|
||
x[k] = 0;
|
||
if(k<=i) { Uj[e] = k; Uv[e] = c; ++e; }
|
||
else { Lj[a] = P[k]; Lv[a] = c/d; ++a; }
|
||
}
|
||
Li[i+1] = a;
|
||
Ui[i+1] = e;
|
||
}
|
||
for(j=Lj.length-1;j!==-1;--j) { Lj[j] = Pinv[Lj[j]]; }
|
||
return {L:L, U:U, P:P, Pinv:Pinv};
|
||
};
|
||
numeric.ccsDFS0 = function ccsDFS0(n) {
|
||
this.k = Array(n);
|
||
this.k1 = Array(n);
|
||
this.j = Array(n);
|
||
};
|
||
numeric.ccsDFS0.prototype.dfs = function dfs(J,Ai,Aj,x,xj,Pinv,P) {
|
||
var m = 0,foo,n=xj.length;
|
||
var k = this.k, k1 = this.k1, j = this.j,km,k11;
|
||
if(x[J]!==0) return;
|
||
x[J] = 1;
|
||
j[0] = J;
|
||
k[0] = km = Ai[Pinv[J]];
|
||
k1[0] = k11 = Ai[Pinv[J]+1];
|
||
while(1) {
|
||
if(isNaN(km)) throw new Error("Ow!");
|
||
if(km >= k11) {
|
||
xj[n] = Pinv[j[m]];
|
||
if(m===0) return;
|
||
++n;
|
||
--m;
|
||
km = k[m];
|
||
k11 = k1[m];
|
||
} else {
|
||
foo = Aj[km];
|
||
if(x[foo] === 0) {
|
||
x[foo] = 1;
|
||
k[m] = km;
|
||
++m;
|
||
j[m] = foo;
|
||
foo = Pinv[foo];
|
||
km = Ai[foo];
|
||
k1[m] = k11 = Ai[foo+1];
|
||
} else ++km;
|
||
}
|
||
}
|
||
};
|
||
numeric.ccsLPSolve0 = function ccsLPSolve0(A,B,y,xj,I,Pinv,P,dfs) {
|
||
var Ai = A[0], Aj = A[1], Av = A[2],m = Ai.length-1, n=0;
|
||
var Bi = B[0], Bj = B[1], Bv = B[2];
|
||
|
||
var i,i0,i1,j,J,j0,j1,k,l,l0,l1,a;
|
||
i0 = Bi[I];
|
||
i1 = Bi[I+1];
|
||
xj.length = 0;
|
||
for(i=i0;i<i1;++i) { dfs.dfs(Bj[i],Ai,Aj,y,xj,Pinv,P); }
|
||
for(i=xj.length-1;i!==-1;--i) { j = xj[i]; y[P[j]] = 0; }
|
||
for(i=i0;i!==i1;++i) { j = Bj[i]; y[j] = Bv[i]; }
|
||
for(i=xj.length-1;i!==-1;--i) {
|
||
j = xj[i];
|
||
l = P[j];
|
||
j0 = Ai[j];
|
||
j1 = Ai[j+1];
|
||
for(k=j0;k<j1;++k) { if(Aj[k] === l) { y[l] /= Av[k]; break; } }
|
||
a = y[l];
|
||
for(k=j0;k<j1;++k) y[Aj[k]] -= a*Av[k];
|
||
y[l] = a;
|
||
}
|
||
};
|
||
numeric.ccsLUP0 = function ccsLUP0(A,threshold) {
|
||
var m = A[0].length-1;
|
||
var L = [numeric.rep([m+1],0),[],[]], U = [numeric.rep([m+1], 0),[],[]];
|
||
var Li = L[0], Lj = L[1], Lv = L[2], Ui = U[0], Uj = U[1], Uv = U[2];
|
||
var y = numeric.rep([m],0), xj = numeric.rep([m],0);
|
||
var i,j,k,j0,j1,a,e,c,d,K;
|
||
var sol = numeric.ccsLPSolve0, max = Math.max, abs = Math.abs;
|
||
var P = numeric.linspace(0,m-1),Pinv = numeric.linspace(0,m-1);
|
||
var dfs = new numeric.ccsDFS0(m);
|
||
if(typeof threshold === "undefined") { threshold = 1; }
|
||
for(i=0;i<m;++i) {
|
||
sol(L,A,y,xj,i,Pinv,P,dfs);
|
||
a = -1;
|
||
e = -1;
|
||
for(j=xj.length-1;j!==-1;--j) {
|
||
k = xj[j];
|
||
if(k <= i) continue;
|
||
c = abs(y[P[k]]);
|
||
if(c > a) { e = k; a = c; }
|
||
}
|
||
if(abs(y[P[i]])<threshold*a) {
|
||
j = P[i];
|
||
a = P[e];
|
||
P[i] = a; Pinv[a] = i;
|
||
P[e] = j; Pinv[j] = e;
|
||
}
|
||
a = Li[i];
|
||
e = Ui[i];
|
||
d = y[P[i]];
|
||
Lj[a] = P[i];
|
||
Lv[a] = 1;
|
||
++a;
|
||
for(j=xj.length-1;j!==-1;--j) {
|
||
k = xj[j];
|
||
c = y[P[k]];
|
||
xj[j] = 0;
|
||
y[P[k]] = 0;
|
||
if(k<=i) { Uj[e] = k; Uv[e] = c; ++e; }
|
||
else { Lj[a] = P[k]; Lv[a] = c/d; ++a; }
|
||
}
|
||
Li[i+1] = a;
|
||
Ui[i+1] = e;
|
||
}
|
||
for(j=Lj.length-1;j!==-1;--j) { Lj[j] = Pinv[Lj[j]]; }
|
||
return {L:L, U:U, P:P, Pinv:Pinv};
|
||
};
|
||
numeric.ccsLUP = numeric.ccsLUP0;
|
||
|
||
numeric.ccsDim = function ccsDim(A) { return [numeric.sup(A[1])+1,A[0].length-1]; };
|
||
numeric.ccsGetBlock = function ccsGetBlock(A,i,j) {
|
||
var s = numeric.ccsDim(A),m=s[0],n=s[1];
|
||
if(typeof i === "undefined") { i = numeric.linspace(0,m-1); }
|
||
else if(typeof i === "number") { i = [i]; }
|
||
if(typeof j === "undefined") { j = numeric.linspace(0,n-1); }
|
||
else if(typeof j === "number") { j = [j]; }
|
||
var p,p0,p1,P = i.length,q,Q = j.length,r,jq,ip;
|
||
var Bi = numeric.rep([n],0), Bj=[], Bv=[], B = [Bi,Bj,Bv];
|
||
var Ai = A[0], Aj = A[1], Av = A[2];
|
||
var x = numeric.rep([m],0),count=0,flags = numeric.rep([m],0);
|
||
for(q=0;q<Q;++q) {
|
||
jq = j[q];
|
||
var q0 = Ai[jq];
|
||
var q1 = Ai[jq+1];
|
||
for(p=q0;p<q1;++p) {
|
||
r = Aj[p];
|
||
flags[r] = 1;
|
||
x[r] = Av[p];
|
||
}
|
||
for(p=0;p<P;++p) {
|
||
ip = i[p];
|
||
if(flags[ip]) {
|
||
Bj[count] = p;
|
||
Bv[count] = x[i[p]];
|
||
++count;
|
||
}
|
||
}
|
||
for(p=q0;p<q1;++p) {
|
||
r = Aj[p];
|
||
flags[r] = 0;
|
||
}
|
||
Bi[q+1] = count;
|
||
}
|
||
return B;
|
||
};
|
||
|
||
numeric.ccsDot = function ccsDot(A,B) {
|
||
var Ai = A[0], Aj = A[1], Av = A[2];
|
||
var Bi = B[0], Bj = B[1], Bv = B[2];
|
||
var sA = numeric.ccsDim(A), sB = numeric.ccsDim(B);
|
||
var m = sA[0], n = sA[1], o = sB[1];
|
||
var x = numeric.rep([m],0), flags = numeric.rep([m],0), xj = Array(m);
|
||
var Ci = numeric.rep([o],0), Cj = [], Cv = [], C = [Ci,Cj,Cv];
|
||
var i,j,k,j0,j1,i0,i1,l,p,a,b;
|
||
for(k=0;k!==o;++k) {
|
||
j0 = Bi[k];
|
||
j1 = Bi[k+1];
|
||
p = 0;
|
||
for(j=j0;j<j1;++j) {
|
||
a = Bj[j];
|
||
b = Bv[j];
|
||
i0 = Ai[a];
|
||
i1 = Ai[a+1];
|
||
for(i=i0;i<i1;++i) {
|
||
l = Aj[i];
|
||
if(flags[l]===0) {
|
||
xj[p] = l;
|
||
flags[l] = 1;
|
||
p = p+1;
|
||
}
|
||
x[l] = x[l] + Av[i]*b;
|
||
}
|
||
}
|
||
j0 = Ci[k];
|
||
j1 = j0+p;
|
||
Ci[k+1] = j1;
|
||
for(j=p-1;j!==-1;--j) {
|
||
b = j0+j;
|
||
i = xj[j];
|
||
Cj[b] = i;
|
||
Cv[b] = x[i];
|
||
flags[i] = 0;
|
||
x[i] = 0;
|
||
}
|
||
Ci[k+1] = Ci[k]+p;
|
||
}
|
||
return C;
|
||
};
|
||
|
||
numeric.ccsLUPSolve = function ccsLUPSolve(LUP,B) {
|
||
var L = LUP.L, U = LUP.U, P = LUP.P;
|
||
var Bi = B[0];
|
||
var flag = false;
|
||
if(typeof Bi !== "object") { B = [[0,B.length],numeric.linspace(0,B.length-1),B]; Bi = B[0]; flag = true; }
|
||
var Bj = B[1], Bv = B[2];
|
||
var n = L[0].length-1, m = Bi.length-1;
|
||
var x = numeric.rep([n],0), xj = Array(n);
|
||
var b = numeric.rep([n],0), bj = Array(n);
|
||
var Xi = numeric.rep([m+1],0), Xj = [], Xv = [];
|
||
var sol = numeric.ccsTSolve;
|
||
var i,j,j0,j1,k,J,N=0;
|
||
for(i=0;i<m;++i) {
|
||
k = 0;
|
||
j0 = Bi[i];
|
||
j1 = Bi[i+1];
|
||
for(j=j0;j<j1;++j) {
|
||
J = LUP.Pinv[Bj[j]];
|
||
bj[k] = J;
|
||
b[J] = Bv[j];
|
||
++k;
|
||
}
|
||
bj.length = k;
|
||
sol(L,b,x,bj,xj);
|
||
for(j=bj.length-1;j!==-1;--j) b[bj[j]] = 0;
|
||
sol(U,x,b,xj,bj);
|
||
if(flag) return b;
|
||
for(j=xj.length-1;j!==-1;--j) x[xj[j]] = 0;
|
||
for(j=bj.length-1;j!==-1;--j) {
|
||
J = bj[j];
|
||
Xj[N] = J;
|
||
Xv[N] = b[J];
|
||
b[J] = 0;
|
||
++N;
|
||
}
|
||
Xi[i+1] = N;
|
||
}
|
||
return [Xi,Xj,Xv];
|
||
};
|
||
|
||
numeric.ccsbinop = function ccsbinop(body,setup) {
|
||
if(typeof setup === "undefined") setup='';
|
||
return Function('X','Y',
|
||
'var Xi = X[0], Xj = X[1], Xv = X[2];\n'+
|
||
'var Yi = Y[0], Yj = Y[1], Yv = Y[2];\n'+
|
||
'var n = Xi.length-1,m = Math.max(numeric.sup(Xj),numeric.sup(Yj))+1;\n'+
|
||
'var Zi = numeric.rep([n+1],0), Zj = [], Zv = [];\n'+
|
||
'var x = numeric.rep([m],0),y = numeric.rep([m],0);\n'+
|
||
'var xk,yk,zk;\n'+
|
||
'var i,j,j0,j1,k,p=0;\n'+
|
||
setup+
|
||
'for(i=0;i<n;++i) {\n'+
|
||
' j0 = Xi[i]; j1 = Xi[i+1];\n'+
|
||
' for(j=j0;j!==j1;++j) {\n'+
|
||
' k = Xj[j];\n'+
|
||
' x[k] = 1;\n'+
|
||
' Zj[p] = k;\n'+
|
||
' ++p;\n'+
|
||
' }\n'+
|
||
' j0 = Yi[i]; j1 = Yi[i+1];\n'+
|
||
' for(j=j0;j!==j1;++j) {\n'+
|
||
' k = Yj[j];\n'+
|
||
' y[k] = Yv[j];\n'+
|
||
' if(x[k] === 0) {\n'+
|
||
' Zj[p] = k;\n'+
|
||
' ++p;\n'+
|
||
' }\n'+
|
||
' }\n'+
|
||
' Zi[i+1] = p;\n'+
|
||
' j0 = Xi[i]; j1 = Xi[i+1];\n'+
|
||
' for(j=j0;j!==j1;++j) x[Xj[j]] = Xv[j];\n'+
|
||
' j0 = Zi[i]; j1 = Zi[i+1];\n'+
|
||
' for(j=j0;j!==j1;++j) {\n'+
|
||
' k = Zj[j];\n'+
|
||
' xk = x[k];\n'+
|
||
' yk = y[k];\n'+
|
||
body+'\n'+
|
||
' Zv[j] = zk;\n'+
|
||
' }\n'+
|
||
' j0 = Xi[i]; j1 = Xi[i+1];\n'+
|
||
' for(j=j0;j!==j1;++j) x[Xj[j]] = 0;\n'+
|
||
' j0 = Yi[i]; j1 = Yi[i+1];\n'+
|
||
' for(j=j0;j!==j1;++j) y[Yj[j]] = 0;\n'+
|
||
'}\n'+
|
||
'return [Zi,Zj,Zv];'
|
||
);
|
||
};
|
||
|
||
(function() {
|
||
var k,A,B,C;
|
||
for(k in numeric.ops2) {
|
||
if(isFinite(eval('1'+numeric.ops2[k]+'0'))) A = '[Y[0],Y[1],numeric.'+k+'(X,Y[2])]';
|
||
else A = 'NaN';
|
||
if(isFinite(eval('0'+numeric.ops2[k]+'1'))) B = '[X[0],X[1],numeric.'+k+'(X[2],Y)]';
|
||
else B = 'NaN';
|
||
if(isFinite(eval('1'+numeric.ops2[k]+'0')) && isFinite(eval('0'+numeric.ops2[k]+'1'))) C = 'numeric.ccs'+k+'MM(X,Y)';
|
||
else C = 'NaN';
|
||
numeric['ccs'+k+'MM'] = numeric.ccsbinop('zk = xk '+numeric.ops2[k]+'yk;');
|
||
numeric['ccs'+k] = Function('X','Y',
|
||
'if(typeof X === "number") return '+A+';\n'+
|
||
'if(typeof Y === "number") return '+B+';\n'+
|
||
'return '+C+';\n'
|
||
);
|
||
}
|
||
}());
|
||
|
||
numeric.ccsScatter = function ccsScatter(A) {
|
||
var Ai = A[0], Aj = A[1], Av = A[2];
|
||
var n = numeric.sup(Aj)+1,m=Ai.length;
|
||
var Ri = numeric.rep([n],0),Rj=Array(m), Rv = Array(m);
|
||
var counts = numeric.rep([n],0),i;
|
||
for(i=0;i<m;++i) counts[Aj[i]]++;
|
||
for(i=0;i<n;++i) Ri[i+1] = Ri[i] + counts[i];
|
||
var ptr = Ri.slice(0),k,Aii;
|
||
for(i=0;i<m;++i) {
|
||
Aii = Aj[i];
|
||
k = ptr[Aii];
|
||
Rj[k] = Ai[i];
|
||
Rv[k] = Av[i];
|
||
ptr[Aii]=ptr[Aii]+1;
|
||
}
|
||
return [Ri,Rj,Rv];
|
||
};
|
||
|
||
numeric.ccsGather = function ccsGather(A) {
|
||
var Ai = A[0], Aj = A[1], Av = A[2];
|
||
var n = Ai.length-1,m = Aj.length;
|
||
var Ri = Array(m), Rj = Array(m), Rv = Array(m);
|
||
var i,j,j0,j1,p;
|
||
p=0;
|
||
for(i=0;i<n;++i) {
|
||
j0 = Ai[i];
|
||
j1 = Ai[i+1];
|
||
for(j=j0;j!==j1;++j) {
|
||
Rj[p] = i;
|
||
Ri[p] = Aj[j];
|
||
Rv[p] = Av[j];
|
||
++p;
|
||
}
|
||
}
|
||
return [Ri,Rj,Rv];
|
||
};
|
||
|
||
// The following sparse linear algebra routines are deprecated.
|
||
|
||
numeric.sdim = function dim(A,ret,k) {
|
||
if(typeof ret === "undefined") { ret = []; }
|
||
if(typeof A !== "object") return ret;
|
||
if(typeof k === "undefined") { k=0; }
|
||
if(!(k in ret)) { ret[k] = 0; }
|
||
if(A.length > ret[k]) ret[k] = A.length;
|
||
var i;
|
||
for(i in A) {
|
||
if(A.hasOwnProperty(i)) dim(A[i],ret,k+1);
|
||
}
|
||
return ret;
|
||
};
|
||
|
||
numeric.sclone = function clone(A,k,n) {
|
||
if(typeof k === "undefined") { k=0; }
|
||
if(typeof n === "undefined") { n = numeric.sdim(A).length; }
|
||
var i,ret = Array(A.length);
|
||
if(k === n-1) {
|
||
for(i in A) { if(A.hasOwnProperty(i)) ret[i] = A[i]; }
|
||
return ret;
|
||
}
|
||
for(i in A) {
|
||
if(A.hasOwnProperty(i)) ret[i] = clone(A[i],k+1,n);
|
||
}
|
||
return ret;
|
||
};
|
||
|
||
numeric.sdiag = function diag(d) {
|
||
var n = d.length,i,ret = Array(n),i1,i2,i3;
|
||
for(i=n-1;i>=1;i-=2) {
|
||
i1 = i-1;
|
||
ret[i] = []; ret[i][i] = d[i];
|
||
ret[i1] = []; ret[i1][i1] = d[i1];
|
||
}
|
||
if(i===0) { ret[0] = []; ret[0][0] = d[i]; }
|
||
return ret;
|
||
};
|
||
|
||
numeric.sidentity = function identity(n) { return numeric.sdiag(numeric.rep([n],1)); };
|
||
|
||
numeric.stranspose = function transpose(A) {
|
||
var ret = [], n = A.length, i,j,Ai;
|
||
for(i in A) {
|
||
if(!(A.hasOwnProperty(i))) continue;
|
||
Ai = A[i];
|
||
for(j in Ai) {
|
||
if(!(Ai.hasOwnProperty(j))) continue;
|
||
if(typeof ret[j] !== "object") { ret[j] = []; }
|
||
ret[j][i] = Ai[j];
|
||
}
|
||
}
|
||
return ret;
|
||
};
|
||
|
||
numeric.sLUP = function LUP(A,tol) {
|
||
throw new Error("The function numeric.sLUP had a bug in it and has been removed. Please use the new numeric.ccsLUP function instead.");
|
||
};
|
||
|
||
numeric.sdotMM = function dotMM(A,B) {
|
||
var p = A.length, q = B.length, BT = numeric.stranspose(B), r = BT.length, Ai, BTk;
|
||
var i,j,k,accum;
|
||
var ret = Array(p),reti;
|
||
for(i=p-1;i>=0;i--) {
|
||
reti = [];
|
||
Ai = A[i];
|
||
for(k=r-1;k>=0;k--) {
|
||
accum = 0;
|
||
BTk = BT[k];
|
||
for(j in Ai) {
|
||
if(!(Ai.hasOwnProperty(j))) continue;
|
||
if(j in BTk) { accum += Ai[j]*BTk[j]; }
|
||
}
|
||
if(accum) reti[k] = accum;
|
||
}
|
||
ret[i] = reti;
|
||
}
|
||
return ret;
|
||
};
|
||
|
||
numeric.sdotMV = function dotMV(A,x) {
|
||
var p = A.length, Ai, i,j;
|
||
var ret = Array(p), accum;
|
||
for(i=p-1;i>=0;i--) {
|
||
Ai = A[i];
|
||
accum = 0;
|
||
for(j in Ai) {
|
||
if(!(Ai.hasOwnProperty(j))) continue;
|
||
if(x[j]) accum += Ai[j]*x[j];
|
||
}
|
||
if(accum) ret[i] = accum;
|
||
}
|
||
return ret;
|
||
};
|
||
|
||
numeric.sdotVM = function dotMV(x,A) {
|
||
var i,j,Ai,alpha;
|
||
var ret = [], accum;
|
||
for(i in x) {
|
||
if(!x.hasOwnProperty(i)) continue;
|
||
Ai = A[i];
|
||
alpha = x[i];
|
||
for(j in Ai) {
|
||
if(!Ai.hasOwnProperty(j)) continue;
|
||
if(!ret[j]) { ret[j] = 0; }
|
||
ret[j] += alpha*Ai[j];
|
||
}
|
||
}
|
||
return ret;
|
||
};
|
||
|
||
numeric.sdotVV = function dotVV(x,y) {
|
||
var i,ret=0;
|
||
for(i in x) { if(x[i] && y[i]) ret+= x[i]*y[i]; }
|
||
return ret;
|
||
};
|
||
|
||
numeric.sdot = function dot(A,B) {
|
||
var m = numeric.sdim(A).length, n = numeric.sdim(B).length;
|
||
var k = m*1000+n;
|
||
switch(k) {
|
||
case 0: return A*B;
|
||
case 1001: return numeric.sdotVV(A,B);
|
||
case 2001: return numeric.sdotMV(A,B);
|
||
case 1002: return numeric.sdotVM(A,B);
|
||
case 2002: return numeric.sdotMM(A,B);
|
||
default: throw new Error('numeric.sdot not implemented for tensors of order '+m+' and '+n);
|
||
}
|
||
};
|
||
|
||
numeric.sscatter = function scatter(V) {
|
||
var n = V[0].length, Vij, i, j, m = V.length, A = [], Aj;
|
||
for(i=n-1;i>=0;--i) {
|
||
if(!V[m-1][i]) continue;
|
||
Aj = A;
|
||
for(j=0;j<m-2;j++) {
|
||
Vij = V[j][i];
|
||
if(!Aj[Vij]) Aj[Vij] = [];
|
||
Aj = Aj[Vij];
|
||
}
|
||
Aj[V[j][i]] = V[j+1][i];
|
||
}
|
||
return A;
|
||
};
|
||
|
||
numeric.sgather = function gather(A,ret,k) {
|
||
if(typeof ret === "undefined") ret = [];
|
||
if(typeof k === "undefined") k = [];
|
||
var n,i,Ai;
|
||
n = k.length;
|
||
for(i in A) {
|
||
if(A.hasOwnProperty(i)) {
|
||
k[n] = parseInt(i);
|
||
Ai = A[i];
|
||
if(typeof Ai === "number") {
|
||
if(Ai) {
|
||
if(ret.length === 0) {
|
||
for(i=n+1;i>=0;--i) ret[i] = [];
|
||
}
|
||
for(i=n;i>=0;--i) ret[i].push(k[i]);
|
||
ret[n+1].push(Ai);
|
||
}
|
||
} else gather(Ai,ret,k);
|
||
}
|
||
}
|
||
if(k.length>n) k.pop();
|
||
return ret;
|
||
};
|
||
|
||
// 6. Coordinate matrices
|
||
numeric.cLU = function LU(A) {
|
||
var I = A[0], J = A[1], V = A[2];
|
||
var p = I.length, m=0, i,j,k,a,b,c;
|
||
for(i=0;i<p;i++) if(I[i]>m) m=I[i];
|
||
m++;
|
||
var L = Array(m), U = Array(m), left = numeric.rep([m],Infinity), right = numeric.rep([m],-Infinity);
|
||
var Ui, Uj,alpha;
|
||
for(k=0;k<p;k++) {
|
||
i = I[k];
|
||
j = J[k];
|
||
if(j<left[i]) left[i] = j;
|
||
if(j>right[i]) right[i] = j;
|
||
}
|
||
for(i=0;i<m-1;i++) { if(right[i] > right[i+1]) right[i+1] = right[i]; }
|
||
for(i=m-1;i>=1;i--) { if(left[i]<left[i-1]) left[i-1] = left[i]; }
|
||
var countL = 0, countU = 0;
|
||
for(i=0;i<m;i++) {
|
||
U[i] = numeric.rep([right[i]-left[i]+1],0);
|
||
L[i] = numeric.rep([i-left[i]],0);
|
||
countL += i-left[i]+1;
|
||
countU += right[i]-i+1;
|
||
}
|
||
for(k=0;k<p;k++) { i = I[k]; U[i][J[k]-left[i]] = V[k]; }
|
||
for(i=0;i<m-1;i++) {
|
||
a = i-left[i];
|
||
Ui = U[i];
|
||
for(j=i+1;left[j]<=i && j<m;j++) {
|
||
b = i-left[j];
|
||
c = right[i]-i;
|
||
Uj = U[j];
|
||
alpha = Uj[b]/Ui[a];
|
||
if(alpha) {
|
||
for(k=1;k<=c;k++) { Uj[k+b] -= alpha*Ui[k+a]; }
|
||
L[j][i-left[j]] = alpha;
|
||
}
|
||
}
|
||
}
|
||
var Ui = [], Uj = [], Uv = [], Li = [], Lj = [], Lv = [];
|
||
var p,q,foo;
|
||
p=0; q=0;
|
||
for(i=0;i<m;i++) {
|
||
a = left[i];
|
||
b = right[i];
|
||
foo = U[i];
|
||
for(j=i;j<=b;j++) {
|
||
if(foo[j-a]) {
|
||
Ui[p] = i;
|
||
Uj[p] = j;
|
||
Uv[p] = foo[j-a];
|
||
p++;
|
||
}
|
||
}
|
||
foo = L[i];
|
||
for(j=a;j<i;j++) {
|
||
if(foo[j-a]) {
|
||
Li[q] = i;
|
||
Lj[q] = j;
|
||
Lv[q] = foo[j-a];
|
||
q++;
|
||
}
|
||
}
|
||
Li[q] = i;
|
||
Lj[q] = i;
|
||
Lv[q] = 1;
|
||
q++;
|
||
}
|
||
return {U:[Ui,Uj,Uv], L:[Li,Lj,Lv]};
|
||
};
|
||
|
||
numeric.cLUsolve = function LUsolve(lu,b) {
|
||
var L = lu.L, U = lu.U, ret = numeric.clone(b);
|
||
var Li = L[0], Lj = L[1], Lv = L[2];
|
||
var Ui = U[0], Uj = U[1], Uv = U[2];
|
||
var p = Ui.length, q = Li.length;
|
||
var m = ret.length,i,j,k;
|
||
k = 0;
|
||
for(i=0;i<m;i++) {
|
||
while(Lj[k] < i) {
|
||
ret[i] -= Lv[k]*ret[Lj[k]];
|
||
k++;
|
||
}
|
||
k++;
|
||
}
|
||
k = p-1;
|
||
for(i=m-1;i>=0;i--) {
|
||
while(Uj[k] > i) {
|
||
ret[i] -= Uv[k]*ret[Uj[k]];
|
||
k--;
|
||
}
|
||
ret[i] /= Uv[k];
|
||
k--;
|
||
}
|
||
return ret;
|
||
};
|
||
|
||
numeric.cgrid = function grid(n,shape) {
|
||
if(typeof n === "number") n = [n,n];
|
||
var ret = numeric.rep(n,-1);
|
||
var i,j,count;
|
||
if(typeof shape !== "function") {
|
||
switch(shape) {
|
||
case 'L':
|
||
shape = function(i,j) { return (i>=n[0]/2 || j<n[1]/2); };
|
||
break;
|
||
default:
|
||
shape = function(i,j) { return true; };
|
||
break;
|
||
}
|
||
}
|
||
count=0;
|
||
for(i=1;i<n[0]-1;i++) for(j=1;j<n[1]-1;j++)
|
||
if(shape(i,j)) {
|
||
ret[i][j] = count;
|
||
count++;
|
||
}
|
||
return ret;
|
||
};
|
||
|
||
numeric.cdelsq = function delsq(g) {
|
||
var dir = [[-1,0],[0,-1],[0,1],[1,0]];
|
||
var s = numeric.dim(g), m = s[0], n = s[1], i,j,k,p,q;
|
||
var Li = [], Lj = [], Lv = [];
|
||
for(i=1;i<m-1;i++) for(j=1;j<n-1;j++) {
|
||
if(g[i][j]<0) continue;
|
||
for(k=0;k<4;k++) {
|
||
p = i+dir[k][0];
|
||
q = j+dir[k][1];
|
||
if(g[p][q]<0) continue;
|
||
Li.push(g[i][j]);
|
||
Lj.push(g[p][q]);
|
||
Lv.push(-1);
|
||
}
|
||
Li.push(g[i][j]);
|
||
Lj.push(g[i][j]);
|
||
Lv.push(4);
|
||
}
|
||
return [Li,Lj,Lv];
|
||
};
|
||
|
||
numeric.cdotMV = function dotMV(A,x) {
|
||
var ret, Ai = A[0], Aj = A[1], Av = A[2],k,p=Ai.length,N;
|
||
N=0;
|
||
for(k=0;k<p;k++) { if(Ai[k]>N) N = Ai[k]; }
|
||
N++;
|
||
ret = numeric.rep([N],0);
|
||
for(k=0;k<p;k++) { ret[Ai[k]]+=Av[k]*x[Aj[k]]; }
|
||
return ret;
|
||
};
|
||
|
||
// 7. Splines
|
||
|
||
numeric.Spline = function Spline(x,yl,yr,kl,kr) { this.x = x; this.yl = yl; this.yr = yr; this.kl = kl; this.kr = kr; };
|
||
numeric.Spline.prototype._at = function _at(x1,p) {
|
||
var x = this.x;
|
||
var yl = this.yl;
|
||
var yr = this.yr;
|
||
var kl = this.kl;
|
||
var kr = this.kr;
|
||
var x1,a,b,t;
|
||
var add = numeric.add, sub = numeric.sub, mul = numeric.mul;
|
||
a = sub(mul(kl[p],x[p+1]-x[p]),sub(yr[p+1],yl[p]));
|
||
b = add(mul(kr[p+1],x[p]-x[p+1]),sub(yr[p+1],yl[p]));
|
||
t = (x1-x[p])/(x[p+1]-x[p]);
|
||
var s = t*(1-t);
|
||
return add(add(add(mul(1-t,yl[p]),mul(t,yr[p+1])),mul(a,s*(1-t))),mul(b,s*t));
|
||
};
|
||
numeric.Spline.prototype.at = function at(x0) {
|
||
if(typeof x0 === "number") {
|
||
var x = this.x;
|
||
var n = x.length;
|
||
var p,q,mid,floor = Math.floor,a,b,t;
|
||
p = 0;
|
||
q = n-1;
|
||
while(q-p>1) {
|
||
mid = floor((p+q)/2);
|
||
if(x[mid] <= x0) p = mid;
|
||
else q = mid;
|
||
}
|
||
return this._at(x0,p);
|
||
}
|
||
var n = x0.length, i, ret = Array(n);
|
||
for(i=n-1;i!==-1;--i) ret[i] = this.at(x0[i]);
|
||
return ret;
|
||
};
|
||
numeric.Spline.prototype.diff = function diff() {
|
||
var x = this.x;
|
||
var yl = this.yl;
|
||
var yr = this.yr;
|
||
var kl = this.kl;
|
||
var kr = this.kr;
|
||
var n = yl.length;
|
||
var i,dx,dy;
|
||
var zl = kl, zr = kr, pl = Array(n), pr = Array(n);
|
||
var add = numeric.add, mul = numeric.mul, div = numeric.div, sub = numeric.sub;
|
||
for(i=n-1;i!==-1;--i) {
|
||
dx = x[i+1]-x[i];
|
||
dy = sub(yr[i+1],yl[i]);
|
||
pl[i] = div(add(mul(dy, 6),mul(kl[i],-4*dx),mul(kr[i+1],-2*dx)),dx*dx);
|
||
pr[i+1] = div(add(mul(dy,-6),mul(kl[i], 2*dx),mul(kr[i+1], 4*dx)),dx*dx);
|
||
}
|
||
return new numeric.Spline(x,zl,zr,pl,pr);
|
||
};
|
||
numeric.Spline.prototype.roots = function roots() {
|
||
function sqr(x) { return x*x; }
|
||
var ret = [];
|
||
var x = this.x, yl = this.yl, yr = this.yr, kl = this.kl, kr = this.kr;
|
||
if(typeof yl[0] === "number") {
|
||
yl = [yl];
|
||
yr = [yr];
|
||
kl = [kl];
|
||
kr = [kr];
|
||
}
|
||
var m = yl.length,n=x.length-1,i,j,k,y,s,t;
|
||
var ai,bi,ci,di, ret = Array(m),ri,k0,k1,y0,y1,A,B,D,dx,cx,stops,z0,z1,zm,t0,t1,tm;
|
||
var sqrt = Math.sqrt;
|
||
for(i=0;i!==m;++i) {
|
||
ai = yl[i];
|
||
bi = yr[i];
|
||
ci = kl[i];
|
||
di = kr[i];
|
||
ri = [];
|
||
for(j=0;j!==n;j++) {
|
||
if(j>0 && bi[j]*ai[j]<0) ri.push(x[j]);
|
||
dx = (x[j+1]-x[j]);
|
||
cx = x[j];
|
||
y0 = ai[j];
|
||
y1 = bi[j+1];
|
||
k0 = ci[j]/dx;
|
||
k1 = di[j+1]/dx;
|
||
D = sqr(k0-k1+3*(y0-y1)) + 12*k1*y0;
|
||
A = k1+3*y0+2*k0-3*y1;
|
||
B = 3*(k1+k0+2*(y0-y1));
|
||
if(D<=0) {
|
||
z0 = A/B;
|
||
if(z0>x[j] && z0<x[j+1]) stops = [x[j],z0,x[j+1]];
|
||
else stops = [x[j],x[j+1]];
|
||
} else {
|
||
z0 = (A-sqrt(D))/B;
|
||
z1 = (A+sqrt(D))/B;
|
||
stops = [x[j]];
|
||
if(z0>x[j] && z0<x[j+1]) stops.push(z0);
|
||
if(z1>x[j] && z1<x[j+1]) stops.push(z1);
|
||
stops.push(x[j+1]);
|
||
}
|
||
t0 = stops[0];
|
||
z0 = this._at(t0,j);
|
||
for(k=0;k<stops.length-1;k++) {
|
||
t1 = stops[k+1];
|
||
z1 = this._at(t1,j);
|
||
if(z0 === 0) {
|
||
ri.push(t0);
|
||
t0 = t1;
|
||
z0 = z1;
|
||
continue;
|
||
}
|
||
if(z1 === 0 || z0*z1>0) {
|
||
t0 = t1;
|
||
z0 = z1;
|
||
continue;
|
||
}
|
||
var side = 0;
|
||
while(1) {
|
||
tm = (z0*t1-z1*t0)/(z0-z1);
|
||
if(tm <= t0 || tm >= t1) { break; }
|
||
zm = this._at(tm,j);
|
||
if(zm*z1>0) {
|
||
t1 = tm;
|
||
z1 = zm;
|
||
if(side === -1) z0*=0.5;
|
||
side = -1;
|
||
} else if(zm*z0>0) {
|
||
t0 = tm;
|
||
z0 = zm;
|
||
if(side === 1) z1*=0.5;
|
||
side = 1;
|
||
} else break;
|
||
}
|
||
ri.push(tm);
|
||
t0 = stops[k+1];
|
||
z0 = this._at(t0, j);
|
||
}
|
||
if(z1 === 0) ri.push(t1);
|
||
}
|
||
ret[i] = ri;
|
||
}
|
||
if(typeof this.yl[0] === "number") return ret[0];
|
||
return ret;
|
||
};
|
||
numeric.spline = function spline(x,y,k1,kn) {
|
||
var n = x.length, b = [], dx = [], dy = [];
|
||
var i;
|
||
var sub = numeric.sub,mul = numeric.mul,add = numeric.add;
|
||
for(i=n-2;i>=0;i--) { dx[i] = x[i+1]-x[i]; dy[i] = sub(y[i+1],y[i]); }
|
||
if(typeof k1 === "string" || typeof kn === "string") {
|
||
k1 = kn = "periodic";
|
||
}
|
||
// Build sparse tridiagonal system
|
||
var T = [[],[],[]];
|
||
switch(typeof k1) {
|
||
case "undefined":
|
||
b[0] = mul(3/(dx[0]*dx[0]),dy[0]);
|
||
T[0].push(0,0);
|
||
T[1].push(0,1);
|
||
T[2].push(2/dx[0],1/dx[0]);
|
||
break;
|
||
case "string":
|
||
b[0] = add(mul(3/(dx[n-2]*dx[n-2]),dy[n-2]),mul(3/(dx[0]*dx[0]),dy[0]));
|
||
T[0].push(0,0,0);
|
||
T[1].push(n-2,0,1);
|
||
T[2].push(1/dx[n-2],2/dx[n-2]+2/dx[0],1/dx[0]);
|
||
break;
|
||
default:
|
||
b[0] = k1;
|
||
T[0].push(0);
|
||
T[1].push(0);
|
||
T[2].push(1);
|
||
break;
|
||
}
|
||
for(i=1;i<n-1;i++) {
|
||
b[i] = add(mul(3/(dx[i-1]*dx[i-1]),dy[i-1]),mul(3/(dx[i]*dx[i]),dy[i]));
|
||
T[0].push(i,i,i);
|
||
T[1].push(i-1,i,i+1);
|
||
T[2].push(1/dx[i-1],2/dx[i-1]+2/dx[i],1/dx[i]);
|
||
}
|
||
switch(typeof kn) {
|
||
case "undefined":
|
||
b[n-1] = mul(3/(dx[n-2]*dx[n-2]),dy[n-2]);
|
||
T[0].push(n-1,n-1);
|
||
T[1].push(n-2,n-1);
|
||
T[2].push(1/dx[n-2],2/dx[n-2]);
|
||
break;
|
||
case "string":
|
||
T[1][T[1].length-1] = 0;
|
||
break;
|
||
default:
|
||
b[n-1] = kn;
|
||
T[0].push(n-1);
|
||
T[1].push(n-1);
|
||
T[2].push(1);
|
||
break;
|
||
}
|
||
if(typeof b[0] !== "number") b = numeric.transpose(b);
|
||
else b = [b];
|
||
var k = Array(b.length);
|
||
if(typeof k1 === "string") {
|
||
for(i=k.length-1;i!==-1;--i) {
|
||
k[i] = numeric.ccsLUPSolve(numeric.ccsLUP(numeric.ccsScatter(T)),b[i]);
|
||
k[i][n-1] = k[i][0];
|
||
}
|
||
} else {
|
||
for(i=k.length-1;i!==-1;--i) {
|
||
k[i] = numeric.cLUsolve(numeric.cLU(T),b[i]);
|
||
}
|
||
}
|
||
if(typeof y[0] === "number") k = k[0];
|
||
else k = numeric.transpose(k);
|
||
return new numeric.Spline(x,y,y,k,k);
|
||
};
|
||
|
||
// 8. FFT
|
||
numeric.fftpow2 = function fftpow2(x,y) {
|
||
var n = x.length;
|
||
if(n === 1) return;
|
||
var cos = Math.cos, sin = Math.sin, i,j;
|
||
var xe = Array(n/2), ye = Array(n/2), xo = Array(n/2), yo = Array(n/2);
|
||
j = n/2;
|
||
for(i=n-1;i!==-1;--i) {
|
||
--j;
|
||
xo[j] = x[i];
|
||
yo[j] = y[i];
|
||
--i;
|
||
xe[j] = x[i];
|
||
ye[j] = y[i];
|
||
}
|
||
fftpow2(xe,ye);
|
||
fftpow2(xo,yo);
|
||
j = n/2;
|
||
var t,k = (-6.2831853071795864769252867665590057683943387987502116419/n),ci,si;
|
||
for(i=n-1;i!==-1;--i) {
|
||
--j;
|
||
if(j === -1) j = n/2-1;
|
||
t = k*i;
|
||
ci = cos(t);
|
||
si = sin(t);
|
||
x[i] = xe[j] + ci*xo[j] - si*yo[j];
|
||
y[i] = ye[j] + ci*yo[j] + si*xo[j];
|
||
}
|
||
};
|
||
numeric._ifftpow2 = function _ifftpow2(x,y) {
|
||
var n = x.length;
|
||
if(n === 1) return;
|
||
var cos = Math.cos, sin = Math.sin, i,j;
|
||
var xe = Array(n/2), ye = Array(n/2), xo = Array(n/2), yo = Array(n/2);
|
||
j = n/2;
|
||
for(i=n-1;i!==-1;--i) {
|
||
--j;
|
||
xo[j] = x[i];
|
||
yo[j] = y[i];
|
||
--i;
|
||
xe[j] = x[i];
|
||
ye[j] = y[i];
|
||
}
|
||
_ifftpow2(xe,ye);
|
||
_ifftpow2(xo,yo);
|
||
j = n/2;
|
||
var t,k = (6.2831853071795864769252867665590057683943387987502116419/n),ci,si;
|
||
for(i=n-1;i!==-1;--i) {
|
||
--j;
|
||
if(j === -1) j = n/2-1;
|
||
t = k*i;
|
||
ci = cos(t);
|
||
si = sin(t);
|
||
x[i] = xe[j] + ci*xo[j] - si*yo[j];
|
||
y[i] = ye[j] + ci*yo[j] + si*xo[j];
|
||
}
|
||
};
|
||
numeric.ifftpow2 = function ifftpow2(x,y) {
|
||
numeric._ifftpow2(x,y);
|
||
numeric.diveq(x,x.length);
|
||
numeric.diveq(y,y.length);
|
||
};
|
||
numeric.convpow2 = function convpow2(ax,ay,bx,by) {
|
||
numeric.fftpow2(ax,ay);
|
||
numeric.fftpow2(bx,by);
|
||
var i,n = ax.length,axi,bxi,ayi,byi;
|
||
for(i=n-1;i!==-1;--i) {
|
||
axi = ax[i]; ayi = ay[i]; bxi = bx[i]; byi = by[i];
|
||
ax[i] = axi*bxi-ayi*byi;
|
||
ay[i] = axi*byi+ayi*bxi;
|
||
}
|
||
numeric.ifftpow2(ax,ay);
|
||
};
|
||
numeric.T.prototype.fft = function fft() {
|
||
var x = this.x, y = this.y;
|
||
var n = x.length, log = Math.log, log2 = log(2),
|
||
p = Math.ceil(log(2*n-1)/log2), m = Math.pow(2,p);
|
||
var cx = numeric.rep([m],0), cy = numeric.rep([m],0), cos = Math.cos, sin = Math.sin;
|
||
var k, c = (-3.141592653589793238462643383279502884197169399375105820/n),t;
|
||
var a = numeric.rep([m],0), b = numeric.rep([m],0),nhalf = Math.floor(n/2);
|
||
for(k=0;k<n;k++) a[k] = x[k];
|
||
if(typeof y !== "undefined") for(k=0;k<n;k++) b[k] = y[k];
|
||
cx[0] = 1;
|
||
for(k=1;k<=m/2;k++) {
|
||
t = c*k*k;
|
||
cx[k] = cos(t);
|
||
cy[k] = sin(t);
|
||
cx[m-k] = cos(t);
|
||
cy[m-k] = sin(t);
|
||
}
|
||
var X = new numeric.T(a,b), Y = new numeric.T(cx,cy);
|
||
X = X.mul(Y);
|
||
numeric.convpow2(X.x,X.y,numeric.clone(Y.x),numeric.neg(Y.y));
|
||
X = X.mul(Y);
|
||
X.x.length = n;
|
||
X.y.length = n;
|
||
return X;
|
||
};
|
||
numeric.T.prototype.ifft = function ifft() {
|
||
var x = this.x, y = this.y;
|
||
var n = x.length, log = Math.log, log2 = log(2),
|
||
p = Math.ceil(log(2*n-1)/log2), m = Math.pow(2,p);
|
||
var cx = numeric.rep([m],0), cy = numeric.rep([m],0), cos = Math.cos, sin = Math.sin;
|
||
var k, c = (3.141592653589793238462643383279502884197169399375105820/n),t;
|
||
var a = numeric.rep([m],0), b = numeric.rep([m],0),nhalf = Math.floor(n/2);
|
||
for(k=0;k<n;k++) a[k] = x[k];
|
||
if(typeof y !== "undefined") for(k=0;k<n;k++) b[k] = y[k];
|
||
cx[0] = 1;
|
||
for(k=1;k<=m/2;k++) {
|
||
t = c*k*k;
|
||
cx[k] = cos(t);
|
||
cy[k] = sin(t);
|
||
cx[m-k] = cos(t);
|
||
cy[m-k] = sin(t);
|
||
}
|
||
var X = new numeric.T(a,b), Y = new numeric.T(cx,cy);
|
||
X = X.mul(Y);
|
||
numeric.convpow2(X.x,X.y,numeric.clone(Y.x),numeric.neg(Y.y));
|
||
X = X.mul(Y);
|
||
X.x.length = n;
|
||
X.y.length = n;
|
||
return X.div(n);
|
||
};
|
||
|
||
//9. Unconstrained optimization
|
||
numeric.gradient = function gradient(f,x) {
|
||
var n = x.length;
|
||
var f0 = f(x);
|
||
if(isNaN(f0)) throw new Error('gradient: f(x) is a NaN!');
|
||
var max = Math.max;
|
||
var i,x0 = numeric.clone(x),f1,f2, J = Array(n);
|
||
var div = numeric.div, sub = numeric.sub,errest,roundoff,max = Math.max,eps = 1e-3,abs = Math.abs, min = Math.min;
|
||
var t0,t1,t2,it=0,d1,d2,N;
|
||
for(i=0;i<n;i++) {
|
||
var h = max(1e-6*f0,1e-8);
|
||
while(1) {
|
||
++it;
|
||
if(it>20) { throw new Error("Numerical gradient fails"); }
|
||
x0[i] = x[i]+h;
|
||
f1 = f(x0);
|
||
x0[i] = x[i]-h;
|
||
f2 = f(x0);
|
||
x0[i] = x[i];
|
||
if(isNaN(f1) || isNaN(f2)) { h/=16; continue; }
|
||
J[i] = (f1-f2)/(2*h);
|
||
t0 = x[i]-h;
|
||
t1 = x[i];
|
||
t2 = x[i]+h;
|
||
d1 = (f1-f0)/h;
|
||
d2 = (f0-f2)/h;
|
||
N = max(abs(J[i]),abs(f0),abs(f1),abs(f2),abs(t0),abs(t1),abs(t2),1e-8);
|
||
errest = min(max(abs(d1-J[i]),abs(d2-J[i]),abs(d1-d2))/N,h/N);
|
||
if(errest>eps) { h/=16; }
|
||
else break;
|
||
}
|
||
}
|
||
return J;
|
||
};
|
||
|
||
numeric.uncmin = function uncmin(f,x0,tol,gradient,maxit,callback,options) {
|
||
var grad = numeric.gradient;
|
||
if(typeof options === "undefined") { options = {}; }
|
||
if(typeof tol === "undefined") { tol = 1e-8; }
|
||
if(typeof gradient === "undefined") { gradient = function(x) { return grad(f,x); }; }
|
||
if(typeof maxit === "undefined") maxit = 1000;
|
||
x0 = numeric.clone(x0);
|
||
var n = x0.length;
|
||
var f0 = f(x0),f1,df0;
|
||
if(isNaN(f0)) throw new Error('uncmin: f(x0) is a NaN!');
|
||
var max = Math.max, norm2 = numeric.norm2;
|
||
tol = max(tol,numeric.epsilon);
|
||
var step,g0,g1,H1 = options.Hinv || numeric.identity(n);
|
||
var dot = numeric.dot, inv = numeric.inv, sub = numeric.sub, add = numeric.add, ten = numeric.tensor, div = numeric.div, mul = numeric.mul;
|
||
var all = numeric.all, isfinite = numeric.isFinite, neg = numeric.neg;
|
||
var it=0,i,s,x1,y,Hy,Hs,ys,i0,t,nstep,t1,t2;
|
||
var msg = "";
|
||
g0 = gradient(x0);
|
||
while(it<maxit) {
|
||
if(typeof callback === "function") { if(callback(it,x0,f0,g0,H1)) { msg = "Callback returned true"; break; } }
|
||
if(!all(isfinite(g0))) { msg = "Gradient has Infinity or NaN"; break; }
|
||
step = neg(dot(H1,g0));
|
||
if(!all(isfinite(step))) { msg = "Search direction has Infinity or NaN"; break; }
|
||
nstep = norm2(step);
|
||
if(nstep < tol) { msg="Newton step smaller than tol"; break; }
|
||
t = 1;
|
||
df0 = dot(g0,step);
|
||
// line search
|
||
x1 = x0;
|
||
while(it < maxit) {
|
||
if(t*nstep < tol) { break; }
|
||
s = mul(step,t);
|
||
x1 = add(x0,s);
|
||
f1 = f(x1);
|
||
if(f1-f0 >= 0.1*t*df0 || isNaN(f1)) {
|
||
t *= 0.5;
|
||
++it;
|
||
continue;
|
||
}
|
||
break;
|
||
}
|
||
if(t*nstep < tol) { msg = "Line search step size smaller than tol"; break; }
|
||
if(it === maxit) { msg = "maxit reached during line search"; break; }
|
||
g1 = gradient(x1);
|
||
y = sub(g1,g0);
|
||
ys = dot(y,s);
|
||
Hy = dot(H1,y);
|
||
H1 = sub(add(H1,
|
||
mul(
|
||
(ys+dot(y,Hy))/(ys*ys),
|
||
ten(s,s) )),
|
||
div(add(ten(Hy,s),ten(s,Hy)),ys));
|
||
x0 = x1;
|
||
f0 = f1;
|
||
g0 = g1;
|
||
++it;
|
||
}
|
||
return {solution: x0, f: f0, gradient: g0, invHessian: H1, iterations:it, message: msg};
|
||
};
|
||
|
||
// 10. Ode solver (Dormand-Prince)
|
||
numeric.Dopri = function Dopri(x,y,f,ymid,iterations,msg,events) {
|
||
this.x = x;
|
||
this.y = y;
|
||
this.f = f;
|
||
this.ymid = ymid;
|
||
this.iterations = iterations;
|
||
this.events = events;
|
||
this.message = msg;
|
||
};
|
||
numeric.Dopri.prototype._at = function _at(xi,j) {
|
||
function sqr(x) { return x*x; }
|
||
var sol = this;
|
||
var xs = sol.x;
|
||
var ys = sol.y;
|
||
var k1 = sol.f;
|
||
var ymid = sol.ymid;
|
||
var n = xs.length;
|
||
var x0,x1,xh,y0,y1,yh,xi;
|
||
var floor = Math.floor,h;
|
||
var c = 0.5;
|
||
var add = numeric.add, mul = numeric.mul,sub = numeric.sub, p,q,w;
|
||
x0 = xs[j];
|
||
x1 = xs[j+1];
|
||
y0 = ys[j];
|
||
y1 = ys[j+1];
|
||
h = x1-x0;
|
||
xh = x0+c*h;
|
||
yh = ymid[j];
|
||
p = sub(k1[j ],mul(y0,1/(x0-xh)+2/(x0-x1)));
|
||
q = sub(k1[j+1],mul(y1,1/(x1-xh)+2/(x1-x0)));
|
||
w = [sqr(xi - x1) * (xi - xh) / sqr(x0 - x1) / (x0 - xh),
|
||
sqr(xi - x0) * sqr(xi - x1) / sqr(x0 - xh) / sqr(x1 - xh),
|
||
sqr(xi - x0) * (xi - xh) / sqr(x1 - x0) / (x1 - xh),
|
||
(xi - x0) * sqr(xi - x1) * (xi - xh) / sqr(x0-x1) / (x0 - xh),
|
||
(xi - x1) * sqr(xi - x0) * (xi - xh) / sqr(x0-x1) / (x1 - xh)];
|
||
return add(add(add(add(mul(y0,w[0]),
|
||
mul(yh,w[1])),
|
||
mul(y1,w[2])),
|
||
mul( p,w[3])),
|
||
mul( q,w[4]));
|
||
};
|
||
numeric.Dopri.prototype.at = function at(x) {
|
||
var i,j,k,floor = Math.floor;
|
||
if(typeof x !== "number") {
|
||
var n = x.length, ret = Array(n);
|
||
for(i=n-1;i!==-1;--i) {
|
||
ret[i] = this.at(x[i]);
|
||
}
|
||
return ret;
|
||
}
|
||
var x0 = this.x;
|
||
i = 0; j = x0.length-1;
|
||
while(j-i>1) {
|
||
k = floor(0.5*(i+j));
|
||
if(x0[k] <= x) i = k;
|
||
else j = k;
|
||
}
|
||
return this._at(x,i);
|
||
};
|
||
|
||
numeric.dopri = function dopri(x0,x1,y0,f,tol,maxit,event) {
|
||
if(typeof tol === "undefined") { tol = 1e-6; }
|
||
if(typeof maxit === "undefined") { maxit = 1000; }
|
||
var xs = [x0], ys = [y0], k1 = [f(x0,y0)], k2,k3,k4,k5,k6,k7, ymid = [];
|
||
var A2 = 1/5;
|
||
var A3 = [3/40,9/40];
|
||
var A4 = [44/45,-56/15,32/9];
|
||
var A5 = [19372/6561,-25360/2187,64448/6561,-212/729];
|
||
var A6 = [9017/3168,-355/33,46732/5247,49/176,-5103/18656];
|
||
var b = [35/384,0,500/1113,125/192,-2187/6784,11/84];
|
||
var bm = [0.5*6025192743/30085553152,
|
||
0,
|
||
0.5*51252292925/65400821598,
|
||
0.5*-2691868925/45128329728,
|
||
0.5*187940372067/1594534317056,
|
||
0.5*-1776094331/19743644256,
|
||
0.5*11237099/235043384];
|
||
var c = [1/5,3/10,4/5,8/9,1,1];
|
||
var e = [-71/57600,0,71/16695,-71/1920,17253/339200,-22/525,1/40];
|
||
var i = 0,er,j;
|
||
var h = (x1-x0)/10;
|
||
var it = 0;
|
||
var add = numeric.add, mul = numeric.mul, y1,erinf;
|
||
var max = Math.max, min = Math.min, abs = Math.abs, norminf = numeric.norminf,pow = Math.pow;
|
||
var any = numeric.any, lt = numeric.lt, and = numeric.and, sub = numeric.sub;
|
||
var e0, e1, ev;
|
||
var ret = new numeric.Dopri(xs,ys,k1,ymid,-1,"");
|
||
if(typeof event === "function") e0 = event(x0,y0);
|
||
while(x0<x1 && it<maxit) {
|
||
++it;
|
||
if(x0+h>x1) h = x1-x0;
|
||
k2 = f(x0+c[0]*h, add(y0,mul( A2*h,k1[i])));
|
||
k3 = f(x0+c[1]*h, add(add(y0,mul(A3[0]*h,k1[i])),mul(A3[1]*h,k2)));
|
||
k4 = f(x0+c[2]*h, add(add(add(y0,mul(A4[0]*h,k1[i])),mul(A4[1]*h,k2)),mul(A4[2]*h,k3)));
|
||
k5 = f(x0+c[3]*h, add(add(add(add(y0,mul(A5[0]*h,k1[i])),mul(A5[1]*h,k2)),mul(A5[2]*h,k3)),mul(A5[3]*h,k4)));
|
||
k6 = f(x0+c[4]*h,add(add(add(add(add(y0,mul(A6[0]*h,k1[i])),mul(A6[1]*h,k2)),mul(A6[2]*h,k3)),mul(A6[3]*h,k4)),mul(A6[4]*h,k5)));
|
||
y1 = add(add(add(add(add(y0,mul(k1[i],h*b[0])),mul(k3,h*b[2])),mul(k4,h*b[3])),mul(k5,h*b[4])),mul(k6,h*b[5]));
|
||
k7 = f(x0+h,y1);
|
||
er = add(add(add(add(add(mul(k1[i],h*e[0]),mul(k3,h*e[2])),mul(k4,h*e[3])),mul(k5,h*e[4])),mul(k6,h*e[5])),mul(k7,h*e[6]));
|
||
if(typeof er === "number") erinf = abs(er);
|
||
else erinf = norminf(er);
|
||
if(erinf > tol) { // reject
|
||
h = 0.2*h*pow(tol/erinf,0.25);
|
||
if(x0+h === x0) {
|
||
ret.msg = "Step size became too small";
|
||
break;
|
||
}
|
||
continue;
|
||
}
|
||
ymid[i] = add(add(add(add(add(add(y0,
|
||
mul(k1[i],h*bm[0])),
|
||
mul(k3 ,h*bm[2])),
|
||
mul(k4 ,h*bm[3])),
|
||
mul(k5 ,h*bm[4])),
|
||
mul(k6 ,h*bm[5])),
|
||
mul(k7 ,h*bm[6]));
|
||
++i;
|
||
xs[i] = x0+h;
|
||
ys[i] = y1;
|
||
k1[i] = k7;
|
||
if(typeof event === "function") {
|
||
var yi,xl = x0,xr = x0+0.5*h,xi;
|
||
e1 = event(xr,ymid[i-1]);
|
||
ev = and(lt(e0,0),lt(0,e1));
|
||
if(!any(ev)) { xl = xr; xr = x0+h; e0 = e1; e1 = event(xr,y1); ev = and(lt(e0,0),lt(0,e1)); }
|
||
if(any(ev)) {
|
||
var xc, yc, en,ei;
|
||
var side=0, sl = 1.0, sr = 1.0;
|
||
while(1) {
|
||
if(typeof e0 === "number") xi = (sr*e1*xl-sl*e0*xr)/(sr*e1-sl*e0);
|
||
else {
|
||
xi = xr;
|
||
for(j=e0.length-1;j!==-1;--j) {
|
||
if(e0[j]<0 && e1[j]>0) xi = min(xi,(sr*e1[j]*xl-sl*e0[j]*xr)/(sr*e1[j]-sl*e0[j]));
|
||
}
|
||
}
|
||
if(xi <= xl || xi >= xr) break;
|
||
yi = ret._at(xi, i-1);
|
||
ei = event(xi,yi);
|
||
en = and(lt(e0,0),lt(0,ei));
|
||
if(any(en)) {
|
||
xr = xi;
|
||
e1 = ei;
|
||
ev = en;
|
||
sr = 1.0;
|
||
if(side === -1) sl *= 0.5;
|
||
else sl = 1.0;
|
||
side = -1;
|
||
} else {
|
||
xl = xi;
|
||
e0 = ei;
|
||
sl = 1.0;
|
||
if(side === 1) sr *= 0.5;
|
||
else sr = 1.0;
|
||
side = 1;
|
||
}
|
||
}
|
||
y1 = ret._at(0.5*(x0+xi),i-1);
|
||
ret.f[i] = f(xi,yi);
|
||
ret.x[i] = xi;
|
||
ret.y[i] = yi;
|
||
ret.ymid[i-1] = y1;
|
||
ret.events = ev;
|
||
ret.iterations = it;
|
||
return ret;
|
||
}
|
||
}
|
||
x0 += h;
|
||
y0 = y1;
|
||
e0 = e1;
|
||
h = min(0.8*h*pow(tol/erinf,0.25),4*h);
|
||
}
|
||
ret.iterations = it;
|
||
return ret;
|
||
};
|
||
|
||
// 11. Ax = b
|
||
numeric.LU = function(A, fast) {
|
||
fast = fast || false;
|
||
|
||
var abs = Math.abs;
|
||
var i, j, k, absAjk, Akk, Ak, Pk, Ai;
|
||
var max;
|
||
var n = A.length, n1 = n-1;
|
||
var P = new Array(n);
|
||
if(!fast) A = numeric.clone(A);
|
||
|
||
for (k = 0; k < n; ++k) {
|
||
Pk = k;
|
||
Ak = A[k];
|
||
max = abs(Ak[k]);
|
||
for (j = k + 1; j < n; ++j) {
|
||
absAjk = abs(A[j][k]);
|
||
if (max < absAjk) {
|
||
max = absAjk;
|
||
Pk = j;
|
||
}
|
||
}
|
||
P[k] = Pk;
|
||
|
||
if (Pk != k) {
|
||
A[k] = A[Pk];
|
||
A[Pk] = Ak;
|
||
Ak = A[k];
|
||
}
|
||
|
||
Akk = Ak[k];
|
||
|
||
for (i = k + 1; i < n; ++i) {
|
||
A[i][k] /= Akk;
|
||
}
|
||
|
||
for (i = k + 1; i < n; ++i) {
|
||
Ai = A[i];
|
||
for (j = k + 1; j < n1; ++j) {
|
||
Ai[j] -= Ai[k] * Ak[j];
|
||
++j;
|
||
Ai[j] -= Ai[k] * Ak[j];
|
||
}
|
||
if(j===n1) Ai[j] -= Ai[k] * Ak[j];
|
||
}
|
||
}
|
||
|
||
return {
|
||
LU: A,
|
||
P: P
|
||
};
|
||
};
|
||
|
||
numeric.LUsolve = function LUsolve(LUP, b) {
|
||
var i, j;
|
||
var LU = LUP.LU;
|
||
var n = LU.length;
|
||
var x = numeric.clone(b);
|
||
var P = LUP.P;
|
||
var Pi, LUi, LUii, tmp;
|
||
|
||
for (i=n-1;i!==-1;--i) x[i] = b[i];
|
||
for (i = 0; i < n; ++i) {
|
||
Pi = P[i];
|
||
if (P[i] !== i) {
|
||
tmp = x[i];
|
||
x[i] = x[Pi];
|
||
x[Pi] = tmp;
|
||
}
|
||
|
||
LUi = LU[i];
|
||
for (j = 0; j < i; ++j) {
|
||
x[i] -= x[j] * LUi[j];
|
||
}
|
||
}
|
||
|
||
for (i = n - 1; i >= 0; --i) {
|
||
LUi = LU[i];
|
||
for (j = i + 1; j < n; ++j) {
|
||
x[i] -= x[j] * LUi[j];
|
||
}
|
||
|
||
x[i] /= LUi[i];
|
||
}
|
||
|
||
return x;
|
||
};
|
||
|
||
numeric.solve = function solve(A,b,fast) { return numeric.LUsolve(numeric.LU(A,fast), b); };
|
||
|
||
// 12. Linear programming
|
||
numeric.echelonize = function echelonize(A) {
|
||
var s = numeric.dim(A), m = s[0], n = s[1];
|
||
var I = numeric.identity(m);
|
||
var P = Array(m);
|
||
var i,j,k,l,Ai,Ii,Z,a;
|
||
var abs = Math.abs;
|
||
var diveq = numeric.diveq;
|
||
A = numeric.clone(A);
|
||
for(i=0;i<m;++i) {
|
||
k = 0;
|
||
Ai = A[i];
|
||
Ii = I[i];
|
||
for(j=1;j<n;++j) if(abs(Ai[k])<abs(Ai[j])) k=j;
|
||
P[i] = k;
|
||
diveq(Ii,Ai[k]);
|
||
diveq(Ai,Ai[k]);
|
||
for(j=0;j<m;++j) if(j!==i) {
|
||
Z = A[j]; a = Z[k];
|
||
for(l=n-1;l!==-1;--l) Z[l] -= Ai[l]*a;
|
||
Z = I[j];
|
||
for(l=m-1;l!==-1;--l) Z[l] -= Ii[l]*a;
|
||
}
|
||
}
|
||
return {I:I, A:A, P:P};
|
||
};
|
||
|
||
numeric.__solveLP = function __solveLP(c,A,b,tol,maxit,x,flag) {
|
||
var sum = numeric.sum, log = numeric.log, mul = numeric.mul, sub = numeric.sub, dot = numeric.dot, div = numeric.div, add = numeric.add;
|
||
var m = c.length, n = b.length,y;
|
||
var unbounded = false, cb,i0=0;
|
||
var alpha = 1.0;
|
||
var f0,df0,AT = numeric.transpose(A), svd = numeric.svd,transpose = numeric.transpose,leq = numeric.leq, sqrt = Math.sqrt, abs = Math.abs;
|
||
var muleq = numeric.muleq;
|
||
var norm = numeric.norminf, any = numeric.any,min = Math.min;
|
||
var all = numeric.all, gt = numeric.gt;
|
||
var p = Array(m), A0 = Array(n),e=numeric.rep([n],1), H;
|
||
var solve = numeric.solve, z = sub(b,dot(A,x)),count;
|
||
var dotcc = dot(c,c);
|
||
var g;
|
||
for(count=i0;count<maxit;++count) {
|
||
var i,j,d;
|
||
for(i=n-1;i!==-1;--i) A0[i] = div(A[i],z[i]);
|
||
var A1 = transpose(A0);
|
||
for(i=m-1;i!==-1;--i) p[i] = (/*x[i]+*/sum(A1[i]));
|
||
alpha = 0.25*abs(dotcc/dot(c,p));
|
||
var a1 = 100*sqrt(dotcc/dot(p,p));
|
||
if(!isFinite(alpha) || alpha>a1) alpha = a1;
|
||
g = add(c,mul(alpha,p));
|
||
H = dot(A1,A0);
|
||
for(i=m-1;i!==-1;--i) H[i][i] += 1;
|
||
d = solve(H,div(g,alpha),true);
|
||
var t0 = div(z,dot(A,d));
|
||
var t = 1.0;
|
||
for(i=n-1;i!==-1;--i) if(t0[i]<0) t = min(t,-0.999*t0[i]);
|
||
y = sub(x,mul(d,t));
|
||
z = sub(b,dot(A,y));
|
||
if(!all(gt(z,0))) return { solution: x, message: "", iterations: count };
|
||
x = y;
|
||
if(alpha<tol) return { solution: y, message: "", iterations: count };
|
||
if(flag) {
|
||
var s = dot(c,g), Ag = dot(A,g);
|
||
unbounded = true;
|
||
for(i=n-1;i!==-1;--i) if(s*Ag[i]<0) { unbounded = false; break; }
|
||
} else {
|
||
if(x[m-1]>=0) unbounded = false;
|
||
else unbounded = true;
|
||
}
|
||
if(unbounded) return { solution: y, message: "Unbounded", iterations: count };
|
||
}
|
||
return { solution: x, message: "maximum iteration count exceeded", iterations:count };
|
||
};
|
||
|
||
numeric._solveLP = function _solveLP(c,A,b,tol,maxit) {
|
||
var m = c.length, n = b.length,y;
|
||
var sum = numeric.sum, log = numeric.log, mul = numeric.mul, sub = numeric.sub, dot = numeric.dot, div = numeric.div, add = numeric.add;
|
||
var c0 = numeric.rep([m],0).concat([1]);
|
||
var J = numeric.rep([n,1],-1);
|
||
var A0 = numeric.blockMatrix([[A , J ]]);
|
||
var b0 = b;
|
||
var y = numeric.rep([m],0).concat(Math.max(0,numeric.sup(numeric.neg(b)))+1);
|
||
var x0 = numeric.__solveLP(c0,A0,b0,tol,maxit,y,false);
|
||
var x = numeric.clone(x0.solution);
|
||
x.length = m;
|
||
var foo = numeric.inf(sub(b,dot(A,x)));
|
||
if(foo<0) { return { solution: NaN, message: "Infeasible", iterations: x0.iterations }; }
|
||
var ret = numeric.__solveLP(c, A, b, tol, maxit-x0.iterations, x, true);
|
||
ret.iterations += x0.iterations;
|
||
return ret;
|
||
};
|
||
|
||
numeric.solveLP = function solveLP(c,A,b,Aeq,beq,tol,maxit) {
|
||
if(typeof maxit === "undefined") maxit = 1000;
|
||
if(typeof tol === "undefined") tol = numeric.epsilon;
|
||
if(typeof Aeq === "undefined") return numeric._solveLP(c,A,b,tol,maxit);
|
||
var m = Aeq.length, n = Aeq[0].length, o = A.length;
|
||
var B = numeric.echelonize(Aeq);
|
||
var flags = numeric.rep([n],0);
|
||
var P = B.P;
|
||
var Q = [];
|
||
var i;
|
||
for(i=P.length-1;i!==-1;--i) flags[P[i]] = 1;
|
||
for(i=n-1;i!==-1;--i) if(flags[i]===0) Q.push(i);
|
||
var g = numeric.getRange;
|
||
var I = numeric.linspace(0,m-1), J = numeric.linspace(0,o-1);
|
||
var Aeq2 = g(Aeq,I,Q), A1 = g(A,J,P), A2 = g(A,J,Q), dot = numeric.dot, sub = numeric.sub;
|
||
var A3 = dot(A1,B.I);
|
||
var A4 = sub(A2,dot(A3,Aeq2)), b4 = sub(b,dot(A3,beq));
|
||
var c1 = Array(P.length), c2 = Array(Q.length);
|
||
for(i=P.length-1;i!==-1;--i) c1[i] = c[P[i]];
|
||
for(i=Q.length-1;i!==-1;--i) c2[i] = c[Q[i]];
|
||
var c4 = sub(c2,dot(c1,dot(B.I,Aeq2)));
|
||
var S = numeric._solveLP(c4,A4,b4,tol,maxit);
|
||
var x2 = S.solution;
|
||
if(x2!==x2) return S;
|
||
var x1 = dot(B.I,sub(beq,dot(Aeq2,x2)));
|
||
var x = Array(c.length);
|
||
for(i=P.length-1;i!==-1;--i) x[P[i]] = x1[i];
|
||
for(i=Q.length-1;i!==-1;--i) x[Q[i]] = x2[i];
|
||
return { solution: x, message:S.message, iterations: S.iterations };
|
||
};
|
||
|
||
numeric.MPStoLP = function MPStoLP(MPS) {
|
||
if(MPS instanceof String) { MPS.split('\n'); }
|
||
var state = 0;
|
||
var states = ['Initial state','NAME','ROWS','COLUMNS','RHS','BOUNDS','ENDATA'];
|
||
var n = MPS.length;
|
||
var i,j,z,N=0,rows = {}, sign = [], rl = 0, vars = {}, nv = 0;
|
||
var name;
|
||
var c = [], A = [], b = [];
|
||
function err(e) { throw new Error('MPStoLP: '+e+'\nLine '+i+': '+MPS[i]+'\nCurrent state: '+states[state]+'\n'); }
|
||
for(i=0;i<n;++i) {
|
||
z = MPS[i];
|
||
var w0 = z.match(/\S*/g);
|
||
var w = [];
|
||
for(j=0;j<w0.length;++j) if(w0[j]!=="") w.push(w0[j]);
|
||
if(w.length === 0) continue;
|
||
for(j=0;j<states.length;++j) if(z.substr(0,states[j].length) === states[j]) break;
|
||
if(j<states.length) {
|
||
state = j;
|
||
if(j===1) { name = w[1]; }
|
||
if(j===6) return { name:name, c:c, A:numeric.transpose(A), b:b, rows:rows, vars:vars };
|
||
continue;
|
||
}
|
||
switch(state) {
|
||
case 0: case 1: err('Unexpected line');
|
||
case 2:
|
||
switch(w[0]) {
|
||
case 'N': if(N===0) N = w[1]; else err('Two or more N rows'); break;
|
||
case 'L': rows[w[1]] = rl; sign[rl] = 1; b[rl] = 0; ++rl; break;
|
||
case 'G': rows[w[1]] = rl; sign[rl] = -1;b[rl] = 0; ++rl; break;
|
||
case 'E': rows[w[1]] = rl; sign[rl] = 0;b[rl] = 0; ++rl; break;
|
||
default: err('Parse error '+numeric.prettyPrint(w));
|
||
}
|
||
break;
|
||
case 3:
|
||
if(!vars.hasOwnProperty(w[0])) { vars[w[0]] = nv; c[nv] = 0; A[nv] = numeric.rep([rl],0); ++nv; }
|
||
var p = vars[w[0]];
|
||
for(j=1;j<w.length;j+=2) {
|
||
if(w[j] === N) { c[p] = parseFloat(w[j+1]); continue; }
|
||
var q = rows[w[j]];
|
||
A[p][q] = (sign[q]<0?-1:1)*parseFloat(w[j+1]);
|
||
}
|
||
break;
|
||
case 4:
|
||
for(j=1;j<w.length;j+=2) b[rows[w[j]]] = (sign[rows[w[j]]]<0?-1:1)*parseFloat(w[j+1]);
|
||
break;
|
||
case 5: /*FIXME*/ break;
|
||
case 6: err('Internal error');
|
||
}
|
||
}
|
||
err('Reached end of file without ENDATA');
|
||
};
|
||
// seedrandom.js version 2.0.
|
||
// Author: David Bau 4/2/2011
|
||
//
|
||
// Defines a method Math.seedrandom() that, when called, substitutes
|
||
// an explicitly seeded RC4-based algorithm for Math.random(). Also
|
||
// supports automatic seeding from local or network sources of entropy.
|
||
//
|
||
// Usage:
|
||
//
|
||
// <script src=http://davidbau.com/encode/seedrandom-min.js></script>
|
||
//
|
||
// Math.seedrandom('yipee'); Sets Math.random to a function that is
|
||
// initialized using the given explicit seed.
|
||
//
|
||
// Math.seedrandom(); Sets Math.random to a function that is
|
||
// seeded using the current time, dom state,
|
||
// and other accumulated local entropy.
|
||
// The generated seed string is returned.
|
||
//
|
||
// Math.seedrandom('yowza', true);
|
||
// Seeds using the given explicit seed mixed
|
||
// together with accumulated entropy.
|
||
//
|
||
// <script src="http://bit.ly/srandom-512"></script>
|
||
// Seeds using physical random bits downloaded
|
||
// from random.org.
|
||
//
|
||
// <script src="https://jsonlib.appspot.com/urandom?callback=Math.seedrandom">
|
||
// </script> Seeds using urandom bits from call.jsonlib.com,
|
||
// which is faster than random.org.
|
||
//
|
||
// Examples:
|
||
//
|
||
// Math.seedrandom("hello"); // Use "hello" as the seed.
|
||
// document.write(Math.random()); // Always 0.5463663768140734
|
||
// document.write(Math.random()); // Always 0.43973793770592234
|
||
// var rng1 = Math.random; // Remember the current prng.
|
||
//
|
||
// var autoseed = Math.seedrandom(); // New prng with an automatic seed.
|
||
// document.write(Math.random()); // Pretty much unpredictable.
|
||
//
|
||
// Math.random = rng1; // Continue "hello" prng sequence.
|
||
// document.write(Math.random()); // Always 0.554769432473455
|
||
//
|
||
// Math.seedrandom(autoseed); // Restart at the previous seed.
|
||
// document.write(Math.random()); // Repeat the 'unpredictable' value.
|
||
//
|
||
// Notes:
|
||
//
|
||
// Each time seedrandom('arg') is called, entropy from the passed seed
|
||
// is accumulated in a pool to help generate future seeds for the
|
||
// zero-argument form of Math.seedrandom, so entropy can be injected over
|
||
// time by calling seedrandom with explicit data repeatedly.
|
||
//
|
||
// On speed - This javascript implementation of Math.random() is about
|
||
// 3-10x slower than the built-in Math.random() because it is not native
|
||
// code, but this is typically fast enough anyway. Seeding is more expensive,
|
||
// especially if you use auto-seeding. Some details (timings on Chrome 4):
|
||
//
|
||
// Our Math.random() - avg less than 0.002 milliseconds per call
|
||
// seedrandom('explicit') - avg less than 0.5 milliseconds per call
|
||
// seedrandom('explicit', true) - avg less than 2 milliseconds per call
|
||
// seedrandom() - avg about 38 milliseconds per call
|
||
//
|
||
// LICENSE (BSD):
|
||
//
|
||
// Copyright 2010 David Bau, all rights reserved.
|
||
//
|
||
// Redistribution and use in source and binary forms, with or without
|
||
// modification, are permitted provided that the following conditions are met:
|
||
//
|
||
// 1. Redistributions of source code must retain the above copyright
|
||
// notice, this list of conditions and the following disclaimer.
|
||
//
|
||
// 2. Redistributions in binary form must reproduce the above copyright
|
||
// notice, this list of conditions and the following disclaimer in the
|
||
// documentation and/or other materials provided with the distribution.
|
||
//
|
||
// 3. Neither the name of this module nor the names of its contributors may
|
||
// be used to endorse or promote products derived from this software
|
||
// without specific prior written permission.
|
||
//
|
||
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||
//
|
||
/**
|
||
* All code is in an anonymous closure to keep the global namespace clean.
|
||
*
|
||
* @param {number=} overflow
|
||
* @param {number=} startdenom
|
||
*/
|
||
|
||
// Patched by Seb so that seedrandom.js does not pollute the Math object.
|
||
// My tests suggest that doing Math.trouble = 1 makes Math lookups about 5%
|
||
// slower.
|
||
numeric.seedrandom = { pow:Math.pow, random:Math.random };
|
||
|
||
(function (pool, math, width, chunks, significance, overflow, startdenom) {
|
||
|
||
|
||
//
|
||
// seedrandom()
|
||
// This is the seedrandom function described above.
|
||
//
|
||
math['seedrandom'] = function seedrandom(seed, use_entropy) {
|
||
var key = [];
|
||
var arc4;
|
||
|
||
// Flatten the seed string or build one from local entropy if needed.
|
||
seed = mixkey(flatten(
|
||
use_entropy ? [seed, pool] :
|
||
arguments.length ? seed :
|
||
[new Date().getTime(), pool, window], 3), key);
|
||
|
||
// Use the seed to initialize an ARC4 generator.
|
||
arc4 = new ARC4(key);
|
||
|
||
// Mix the randomness into accumulated entropy.
|
||
mixkey(arc4.S, pool);
|
||
|
||
// Override Math.random
|
||
|
||
// This function returns a random double in [0, 1) that contains
|
||
// randomness in every bit of the mantissa of the IEEE 754 value.
|
||
|
||
math['random'] = function random() { // Closure to return a random double:
|
||
var n = arc4.g(chunks); // Start with a numerator n < 2 ^ 48
|
||
var d = startdenom; // and denominator d = 2 ^ 48.
|
||
var x = 0; // and no 'extra last byte'.
|
||
while (n < significance) { // Fill up all significant digits by
|
||
n = (n + x) * width; // shifting numerator and
|
||
d *= width; // denominator and generating a
|
||
x = arc4.g(1); // new least-significant-byte.
|
||
}
|
||
while (n >= overflow) { // To avoid rounding up, before adding
|
||
n /= 2; // last byte, shift everything
|
||
d /= 2; // right using integer math until
|
||
x >>>= 1; // we have exactly the desired bits.
|
||
}
|
||
return (n + x) / d; // Form the number within [0, 1).
|
||
};
|
||
|
||
// Return the seed that was used
|
||
return seed;
|
||
};
|
||
|
||
//
|
||
// ARC4
|
||
//
|
||
// An ARC4 implementation. The constructor takes a key in the form of
|
||
// an array of at most (width) integers that should be 0 <= x < (width).
|
||
//
|
||
// The g(count) method returns a pseudorandom integer that concatenates
|
||
// the next (count) outputs from ARC4. Its return value is a number x
|
||
// that is in the range 0 <= x < (width ^ count).
|
||
//
|
||
/** @constructor */
|
||
function ARC4(key) {
|
||
var t, u, me = this, keylen = key.length;
|
||
var i = 0, j = me.i = me.j = me.m = 0;
|
||
me.S = [];
|
||
me.c = [];
|
||
|
||
// The empty key [] is treated as [0].
|
||
if (!keylen) { key = [keylen++]; }
|
||
|
||
// Set up S using the standard key scheduling algorithm.
|
||
while (i < width) { me.S[i] = i++; }
|
||
for (i = 0; i < width; i++) {
|
||
t = me.S[i];
|
||
j = lowbits(j + t + key[i % keylen]);
|
||
u = me.S[j];
|
||
me.S[i] = u;
|
||
me.S[j] = t;
|
||
}
|
||
|
||
// The "g" method returns the next (count) outputs as one number.
|
||
me.g = function getnext(count) {
|
||
var s = me.S;
|
||
var i = lowbits(me.i + 1); var t = s[i];
|
||
var j = lowbits(me.j + t); var u = s[j];
|
||
s[i] = u;
|
||
s[j] = t;
|
||
var r = s[lowbits(t + u)];
|
||
while (--count) {
|
||
i = lowbits(i + 1); t = s[i];
|
||
j = lowbits(j + t); u = s[j];
|
||
s[i] = u;
|
||
s[j] = t;
|
||
r = r * width + s[lowbits(t + u)];
|
||
}
|
||
me.i = i;
|
||
me.j = j;
|
||
return r;
|
||
};
|
||
// For robust unpredictability discard an initial batch of values.
|
||
// See http://www.rsa.com/rsalabs/node.asp?id=2009
|
||
me.g(width);
|
||
}
|
||
|
||
//
|
||
// flatten()
|
||
// Converts an object tree to nested arrays of strings.
|
||
//
|
||
/** @param {Object=} result
|
||
* @param {string=} prop
|
||
* @param {string=} typ */
|
||
function flatten(obj, depth, result, prop, typ) {
|
||
result = [];
|
||
typ = typeof(obj);
|
||
if (depth && typ == 'object') {
|
||
for (prop in obj) {
|
||
if (prop.indexOf('S') < 5) { // Avoid FF3 bug (local/sessionStorage)
|
||
try { result.push(flatten(obj[prop], depth - 1)); } catch (e) {}
|
||
}
|
||
}
|
||
}
|
||
return (result.length ? result : obj + (typ != 'string' ? '\0' : ''));
|
||
}
|
||
|
||
//
|
||
// mixkey()
|
||
// Mixes a string seed into a key that is an array of integers, and
|
||
// returns a shortened string seed that is equivalent to the result key.
|
||
//
|
||
/** @param {number=} smear
|
||
* @param {number=} j */
|
||
function mixkey(seed, key, smear, j) {
|
||
seed += ''; // Ensure the seed is a string
|
||
smear = 0;
|
||
for (j = 0; j < seed.length; j++) {
|
||
key[lowbits(j)] =
|
||
lowbits((smear ^= key[lowbits(j)] * 19) + seed.charCodeAt(j));
|
||
}
|
||
seed = '';
|
||
for (j in key) { seed += String.fromCharCode(key[j]); }
|
||
return seed;
|
||
}
|
||
|
||
//
|
||
// lowbits()
|
||
// A quick "n mod width" for width a power of 2.
|
||
//
|
||
function lowbits(n) { return n & (width - 1); }
|
||
|
||
//
|
||
// The following constants are related to IEEE 754 limits.
|
||
//
|
||
startdenom = math.pow(width, chunks);
|
||
significance = math.pow(2, significance);
|
||
overflow = significance * 2;
|
||
|
||
//
|
||
// When seedrandom.js is loaded, we immediately mix a few bits
|
||
// from the built-in RNG into the entropy pool. Because we do
|
||
// not want to intefere with determinstic PRNG state later,
|
||
// seedrandom will not call math.random on its own again after
|
||
// initialization.
|
||
//
|
||
mixkey(math.random(), pool);
|
||
|
||
// End anonymous scope, and pass initial values.
|
||
}(
|
||
[], // pool: entropy pool starts empty
|
||
numeric.seedrandom, // math: package containing random, pow, and seedrandom
|
||
256, // width: each RC4 output is 0 <= x < 256
|
||
6, // chunks: at least six RC4 outputs for each double
|
||
52 // significance: there are 52 significant digits in a double
|
||
));
|
||
/* This file is a slightly modified version of quadprog.js from Alberto Santini.
|
||
* It has been slightly modified by Sébastien Loisel to make sure that it handles
|
||
* 0-based Arrays instead of 1-based Arrays.
|
||
* License is in resources/LICENSE.quadprog */
|
||
(function(exports) {
|
||
|
||
function base0to1(A) {
|
||
if(typeof A !== "object") { return A; }
|
||
var ret = [], i,n=A.length;
|
||
for(i=0;i<n;i++) ret[i+1] = base0to1(A[i]);
|
||
return ret;
|
||
}
|
||
function base1to0(A) {
|
||
if(typeof A !== "object") { return A; }
|
||
var ret = [], i,n=A.length;
|
||
for(i=1;i<n;i++) ret[i-1] = base1to0(A[i]);
|
||
return ret;
|
||
}
|
||
|
||
function dpori(a, lda, n) {
|
||
var i, j, k, kp1, t;
|
||
|
||
for (k = 1; k <= n; k = k + 1) {
|
||
a[k][k] = 1 / a[k][k];
|
||
t = -a[k][k];
|
||
//~ dscal(k - 1, t, a[1][k], 1);
|
||
for (i = 1; i < k; i = i + 1) {
|
||
a[i][k] = t * a[i][k];
|
||
}
|
||
|
||
kp1 = k + 1;
|
||
if (n < kp1) {
|
||
break;
|
||
}
|
||
for (j = kp1; j <= n; j = j + 1) {
|
||
t = a[k][j];
|
||
a[k][j] = 0;
|
||
//~ daxpy(k, t, a[1][k], 1, a[1][j], 1);
|
||
for (i = 1; i <= k; i = i + 1) {
|
||
a[i][j] = a[i][j] + (t * a[i][k]);
|
||
}
|
||
}
|
||
}
|
||
|
||
}
|
||
|
||
function dposl(a, lda, n, b) {
|
||
var i, k, kb, t;
|
||
|
||
for (k = 1; k <= n; k = k + 1) {
|
||
//~ t = ddot(k - 1, a[1][k], 1, b[1], 1);
|
||
t = 0;
|
||
for (i = 1; i < k; i = i + 1) {
|
||
t = t + (a[i][k] * b[i]);
|
||
}
|
||
|
||
b[k] = (b[k] - t) / a[k][k];
|
||
}
|
||
|
||
for (kb = 1; kb <= n; kb = kb + 1) {
|
||
k = n + 1 - kb;
|
||
b[k] = b[k] / a[k][k];
|
||
t = -b[k];
|
||
//~ daxpy(k - 1, t, a[1][k], 1, b[1], 1);
|
||
for (i = 1; i < k; i = i + 1) {
|
||
b[i] = b[i] + (t * a[i][k]);
|
||
}
|
||
}
|
||
}
|
||
|
||
function dpofa(a, lda, n, info) {
|
||
var i, j, jm1, k, t, s;
|
||
|
||
for (j = 1; j <= n; j = j + 1) {
|
||
info[1] = j;
|
||
s = 0;
|
||
jm1 = j - 1;
|
||
if (jm1 < 1) {
|
||
s = a[j][j] - s;
|
||
if (s <= 0) {
|
||
break;
|
||
}
|
||
a[j][j] = Math.sqrt(s);
|
||
} else {
|
||
for (k = 1; k <= jm1; k = k + 1) {
|
||
//~ t = a[k][j] - ddot(k - 1, a[1][k], 1, a[1][j], 1);
|
||
t = a[k][j];
|
||
for (i = 1; i < k; i = i + 1) {
|
||
t = t - (a[i][j] * a[i][k]);
|
||
}
|
||
t = t / a[k][k];
|
||
a[k][j] = t;
|
||
s = s + t * t;
|
||
}
|
||
s = a[j][j] - s;
|
||
if (s <= 0) {
|
||
break;
|
||
}
|
||
a[j][j] = Math.sqrt(s);
|
||
}
|
||
info[1] = 0;
|
||
}
|
||
}
|
||
|
||
function qpgen2(dmat, dvec, fddmat, n, sol, crval, amat,
|
||
bvec, fdamat, q, meq, iact, nact, iter, work, ierr) {
|
||
|
||
var i, j, l, l1, info, it1, iwzv, iwrv, iwrm, iwsv, iwuv, nvl, r, iwnbv,
|
||
temp, sum, t1, tt, gc, gs, nu,
|
||
t1inf, t2min,
|
||
vsmall, tmpa, tmpb,
|
||
go;
|
||
|
||
r = Math.min(n, q);
|
||
l = 2 * n + (r * (r + 5)) / 2 + 2 * q + 1;
|
||
|
||
vsmall = 1.0e-60;
|
||
do {
|
||
vsmall = vsmall + vsmall;
|
||
tmpa = 1 + 0.1 * vsmall;
|
||
tmpb = 1 + 0.2 * vsmall;
|
||
} while (tmpa <= 1 || tmpb <= 1);
|
||
|
||
for (i = 1; i <= n; i = i + 1) {
|
||
work[i] = dvec[i];
|
||
}
|
||
for (i = n + 1; i <= l; i = i + 1) {
|
||
work[i] = 0;
|
||
}
|
||
for (i = 1; i <= q; i = i + 1) {
|
||
iact[i] = 0;
|
||
}
|
||
|
||
info = [];
|
||
|
||
if (ierr[1] === 0) {
|
||
dpofa(dmat, fddmat, n, info);
|
||
if (info[1] !== 0) {
|
||
ierr[1] = 2;
|
||
return;
|
||
}
|
||
dposl(dmat, fddmat, n, dvec);
|
||
dpori(dmat, fddmat, n);
|
||
} else {
|
||
for (j = 1; j <= n; j = j + 1) {
|
||
sol[j] = 0;
|
||
for (i = 1; i <= j; i = i + 1) {
|
||
sol[j] = sol[j] + dmat[i][j] * dvec[i];
|
||
}
|
||
}
|
||
for (j = 1; j <= n; j = j + 1) {
|
||
dvec[j] = 0;
|
||
for (i = j; i <= n; i = i + 1) {
|
||
dvec[j] = dvec[j] + dmat[j][i] * sol[i];
|
||
}
|
||
}
|
||
}
|
||
|
||
crval[1] = 0;
|
||
for (j = 1; j <= n; j = j + 1) {
|
||
sol[j] = dvec[j];
|
||
crval[1] = crval[1] + work[j] * sol[j];
|
||
work[j] = 0;
|
||
for (i = j + 1; i <= n; i = i + 1) {
|
||
dmat[i][j] = 0;
|
||
}
|
||
}
|
||
crval[1] = -crval[1] / 2;
|
||
ierr[1] = 0;
|
||
|
||
iwzv = n;
|
||
iwrv = iwzv + n;
|
||
iwuv = iwrv + r;
|
||
iwrm = iwuv + r + 1;
|
||
iwsv = iwrm + (r * (r + 1)) / 2;
|
||
iwnbv = iwsv + q;
|
||
|
||
for (i = 1; i <= q; i = i + 1) {
|
||
sum = 0;
|
||
for (j = 1; j <= n; j = j + 1) {
|
||
sum = sum + amat[j][i] * amat[j][i];
|
||
}
|
||
work[iwnbv + i] = Math.sqrt(sum);
|
||
}
|
||
nact = 0;
|
||
iter[1] = 0;
|
||
iter[2] = 0;
|
||
|
||
function fn_goto_50() {
|
||
iter[1] = iter[1] + 1;
|
||
|
||
l = iwsv;
|
||
for (i = 1; i <= q; i = i + 1) {
|
||
l = l + 1;
|
||
sum = -bvec[i];
|
||
for (j = 1; j <= n; j = j + 1) {
|
||
sum = sum + amat[j][i] * sol[j];
|
||
}
|
||
if (Math.abs(sum) < vsmall) {
|
||
sum = 0;
|
||
}
|
||
if (i > meq) {
|
||
work[l] = sum;
|
||
} else {
|
||
work[l] = -Math.abs(sum);
|
||
if (sum > 0) {
|
||
for (j = 1; j <= n; j = j + 1) {
|
||
amat[j][i] = -amat[j][i];
|
||
}
|
||
bvec[i] = -bvec[i];
|
||
}
|
||
}
|
||
}
|
||
|
||
for (i = 1; i <= nact; i = i + 1) {
|
||
work[iwsv + iact[i]] = 0;
|
||
}
|
||
|
||
nvl = 0;
|
||
temp = 0;
|
||
for (i = 1; i <= q; i = i + 1) {
|
||
if (work[iwsv + i] < temp * work[iwnbv + i]) {
|
||
nvl = i;
|
||
temp = work[iwsv + i] / work[iwnbv + i];
|
||
}
|
||
}
|
||
if (nvl === 0) {
|
||
return 999;
|
||
}
|
||
|
||
return 0;
|
||
}
|
||
|
||
function fn_goto_55() {
|
||
for (i = 1; i <= n; i = i + 1) {
|
||
sum = 0;
|
||
for (j = 1; j <= n; j = j + 1) {
|
||
sum = sum + dmat[j][i] * amat[j][nvl];
|
||
}
|
||
work[i] = sum;
|
||
}
|
||
|
||
l1 = iwzv;
|
||
for (i = 1; i <= n; i = i + 1) {
|
||
work[l1 + i] = 0;
|
||
}
|
||
for (j = nact + 1; j <= n; j = j + 1) {
|
||
for (i = 1; i <= n; i = i + 1) {
|
||
work[l1 + i] = work[l1 + i] + dmat[i][j] * work[j];
|
||
}
|
||
}
|
||
|
||
t1inf = true;
|
||
for (i = nact; i >= 1; i = i - 1) {
|
||
sum = work[i];
|
||
l = iwrm + (i * (i + 3)) / 2;
|
||
l1 = l - i;
|
||
for (j = i + 1; j <= nact; j = j + 1) {
|
||
sum = sum - work[l] * work[iwrv + j];
|
||
l = l + j;
|
||
}
|
||
sum = sum / work[l1];
|
||
work[iwrv + i] = sum;
|
||
if (iact[i] < meq) {
|
||
// continue;
|
||
break;
|
||
}
|
||
if (sum < 0) {
|
||
// continue;
|
||
break;
|
||
}
|
||
t1inf = false;
|
||
it1 = i;
|
||
}
|
||
|
||
if (!t1inf) {
|
||
t1 = work[iwuv + it1] / work[iwrv + it1];
|
||
for (i = 1; i <= nact; i = i + 1) {
|
||
if (iact[i] < meq) {
|
||
// continue;
|
||
break;
|
||
}
|
||
if (work[iwrv + i] < 0) {
|
||
// continue;
|
||
break;
|
||
}
|
||
temp = work[iwuv + i] / work[iwrv + i];
|
||
if (temp < t1) {
|
||
t1 = temp;
|
||
it1 = i;
|
||
}
|
||
}
|
||
}
|
||
|
||
sum = 0;
|
||
for (i = iwzv + 1; i <= iwzv + n; i = i + 1) {
|
||
sum = sum + work[i] * work[i];
|
||
}
|
||
if (Math.abs(sum) <= vsmall) {
|
||
if (t1inf) {
|
||
ierr[1] = 1;
|
||
// GOTO 999
|
||
return 999;
|
||
} else {
|
||
for (i = 1; i <= nact; i = i + 1) {
|
||
work[iwuv + i] = work[iwuv + i] - t1 * work[iwrv + i];
|
||
}
|
||
work[iwuv + nact + 1] = work[iwuv + nact + 1] + t1;
|
||
// GOTO 700
|
||
return 700;
|
||
}
|
||
} else {
|
||
sum = 0;
|
||
for (i = 1; i <= n; i = i + 1) {
|
||
sum = sum + work[iwzv + i] * amat[i][nvl];
|
||
}
|
||
tt = -work[iwsv + nvl] / sum;
|
||
t2min = true;
|
||
if (!t1inf) {
|
||
if (t1 < tt) {
|
||
tt = t1;
|
||
t2min = false;
|
||
}
|
||
}
|
||
|
||
for (i = 1; i <= n; i = i + 1) {
|
||
sol[i] = sol[i] + tt * work[iwzv + i];
|
||
if (Math.abs(sol[i]) < vsmall) {
|
||
sol[i] = 0;
|
||
}
|
||
}
|
||
|
||
crval[1] = crval[1] + tt * sum * (tt / 2 + work[iwuv + nact + 1]);
|
||
for (i = 1; i <= nact; i = i + 1) {
|
||
work[iwuv + i] = work[iwuv + i] - tt * work[iwrv + i];
|
||
}
|
||
work[iwuv + nact + 1] = work[iwuv + nact + 1] + tt;
|
||
|
||
if (t2min) {
|
||
nact = nact + 1;
|
||
iact[nact] = nvl;
|
||
|
||
l = iwrm + ((nact - 1) * nact) / 2 + 1;
|
||
for (i = 1; i <= nact - 1; i = i + 1) {
|
||
work[l] = work[i];
|
||
l = l + 1;
|
||
}
|
||
|
||
if (nact === n) {
|
||
work[l] = work[n];
|
||
} else {
|
||
for (i = n; i >= nact + 1; i = i - 1) {
|
||
if (work[i] === 0) {
|
||
// continue;
|
||
break;
|
||
}
|
||
gc = Math.max(Math.abs(work[i - 1]), Math.abs(work[i]));
|
||
gs = Math.min(Math.abs(work[i - 1]), Math.abs(work[i]));
|
||
if (work[i - 1] >= 0) {
|
||
temp = Math.abs(gc * Math.sqrt(1 + gs * gs / (gc * gc)));
|
||
} else {
|
||
temp = -Math.abs(gc * Math.sqrt(1 + gs * gs / (gc * gc)));
|
||
}
|
||
gc = work[i - 1] / temp;
|
||
gs = work[i] / temp;
|
||
|
||
if (gc === 1) {
|
||
// continue;
|
||
break;
|
||
}
|
||
if (gc === 0) {
|
||
work[i - 1] = gs * temp;
|
||
for (j = 1; j <= n; j = j + 1) {
|
||
temp = dmat[j][i - 1];
|
||
dmat[j][i - 1] = dmat[j][i];
|
||
dmat[j][i] = temp;
|
||
}
|
||
} else {
|
||
work[i - 1] = temp;
|
||
nu = gs / (1 + gc);
|
||
for (j = 1; j <= n; j = j + 1) {
|
||
temp = gc * dmat[j][i - 1] + gs * dmat[j][i];
|
||
dmat[j][i] = nu * (dmat[j][i - 1] + temp) - dmat[j][i];
|
||
dmat[j][i - 1] = temp;
|
||
|
||
}
|
||
}
|
||
}
|
||
work[l] = work[nact];
|
||
}
|
||
} else {
|
||
sum = -bvec[nvl];
|
||
for (j = 1; j <= n; j = j + 1) {
|
||
sum = sum + sol[j] * amat[j][nvl];
|
||
}
|
||
if (nvl > meq) {
|
||
work[iwsv + nvl] = sum;
|
||
} else {
|
||
work[iwsv + nvl] = -Math.abs(sum);
|
||
if (sum > 0) {
|
||
for (j = 1; j <= n; j = j + 1) {
|
||
amat[j][nvl] = -amat[j][nvl];
|
||
}
|
||
bvec[nvl] = -bvec[nvl];
|
||
}
|
||
}
|
||
// GOTO 700
|
||
return 700;
|
||
}
|
||
}
|
||
|
||
return 0;
|
||
}
|
||
|
||
function fn_goto_797() {
|
||
l = iwrm + (it1 * (it1 + 1)) / 2 + 1;
|
||
l1 = l + it1;
|
||
if (work[l1] === 0) {
|
||
// GOTO 798
|
||
return 798;
|
||
}
|
||
gc = Math.max(Math.abs(work[l1 - 1]), Math.abs(work[l1]));
|
||
gs = Math.min(Math.abs(work[l1 - 1]), Math.abs(work[l1]));
|
||
if (work[l1 - 1] >= 0) {
|
||
temp = Math.abs(gc * Math.sqrt(1 + gs * gs / (gc * gc)));
|
||
} else {
|
||
temp = -Math.abs(gc * Math.sqrt(1 + gs * gs / (gc * gc)));
|
||
}
|
||
gc = work[l1 - 1] / temp;
|
||
gs = work[l1] / temp;
|
||
|
||
if (gc === 1) {
|
||
// GOTO 798
|
||
return 798;
|
||
}
|
||
if (gc === 0) {
|
||
for (i = it1 + 1; i <= nact; i = i + 1) {
|
||
temp = work[l1 - 1];
|
||
work[l1 - 1] = work[l1];
|
||
work[l1] = temp;
|
||
l1 = l1 + i;
|
||
}
|
||
for (i = 1; i <= n; i = i + 1) {
|
||
temp = dmat[i][it1];
|
||
dmat[i][it1] = dmat[i][it1 + 1];
|
||
dmat[i][it1 + 1] = temp;
|
||
}
|
||
} else {
|
||
nu = gs / (1 + gc);
|
||
for (i = it1 + 1; i <= nact; i = i + 1) {
|
||
temp = gc * work[l1 - 1] + gs * work[l1];
|
||
work[l1] = nu * (work[l1 - 1] + temp) - work[l1];
|
||
work[l1 - 1] = temp;
|
||
l1 = l1 + i;
|
||
}
|
||
for (i = 1; i <= n; i = i + 1) {
|
||
temp = gc * dmat[i][it1] + gs * dmat[i][it1 + 1];
|
||
dmat[i][it1 + 1] = nu * (dmat[i][it1] + temp) - dmat[i][it1 + 1];
|
||
dmat[i][it1] = temp;
|
||
}
|
||
}
|
||
|
||
return 0;
|
||
}
|
||
|
||
function fn_goto_798() {
|
||
l1 = l - it1;
|
||
for (i = 1; i <= it1; i = i + 1) {
|
||
work[l1] = work[l];
|
||
l = l + 1;
|
||
l1 = l1 + 1;
|
||
}
|
||
|
||
work[iwuv + it1] = work[iwuv + it1 + 1];
|
||
iact[it1] = iact[it1 + 1];
|
||
it1 = it1 + 1;
|
||
if (it1 < nact) {
|
||
// GOTO 797
|
||
return 797;
|
||
}
|
||
|
||
return 0;
|
||
}
|
||
|
||
function fn_goto_799() {
|
||
work[iwuv + nact] = work[iwuv + nact + 1];
|
||
work[iwuv + nact + 1] = 0;
|
||
iact[nact] = 0;
|
||
nact = nact - 1;
|
||
iter[2] = iter[2] + 1;
|
||
|
||
return 0;
|
||
}
|
||
|
||
go = 0;
|
||
while (true) {
|
||
go = fn_goto_50();
|
||
if (go === 999) {
|
||
return;
|
||
}
|
||
while (true) {
|
||
go = fn_goto_55();
|
||
if (go === 0) {
|
||
break;
|
||
}
|
||
if (go === 999) {
|
||
return;
|
||
}
|
||
if (go === 700) {
|
||
if (it1 === nact) {
|
||
fn_goto_799();
|
||
} else {
|
||
while (true) {
|
||
fn_goto_797();
|
||
go = fn_goto_798();
|
||
if (go !== 797) {
|
||
break;
|
||
}
|
||
}
|
||
fn_goto_799();
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
}
|
||
|
||
function solveQP(Dmat, dvec, Amat, bvec, meq, factorized) {
|
||
Dmat = base0to1(Dmat);
|
||
dvec = base0to1(dvec);
|
||
Amat = base0to1(Amat);
|
||
var i, n, q,
|
||
nact, r,
|
||
crval = [], iact = [], sol = [], work = [], iter = [],
|
||
message;
|
||
|
||
meq = meq || 0;
|
||
factorized = factorized ? base0to1(factorized) : [undefined, 0];
|
||
bvec = bvec ? base0to1(bvec) : [];
|
||
|
||
// In Fortran the array index starts from 1
|
||
n = Dmat.length - 1;
|
||
q = Amat[1].length - 1;
|
||
|
||
if (!bvec) {
|
||
for (i = 1; i <= q; i = i + 1) {
|
||
bvec[i] = 0;
|
||
}
|
||
}
|
||
for (i = 1; i <= q; i = i + 1) {
|
||
iact[i] = 0;
|
||
}
|
||
nact = 0;
|
||
r = Math.min(n, q);
|
||
for (i = 1; i <= n; i = i + 1) {
|
||
sol[i] = 0;
|
||
}
|
||
crval[1] = 0;
|
||
for (i = 1; i <= (2 * n + (r * (r + 5)) / 2 + 2 * q + 1); i = i + 1) {
|
||
work[i] = 0;
|
||
}
|
||
for (i = 1; i <= 2; i = i + 1) {
|
||
iter[i] = 0;
|
||
}
|
||
|
||
qpgen2(Dmat, dvec, n, n, sol, crval, Amat,
|
||
bvec, n, q, meq, iact, nact, iter, work, factorized);
|
||
|
||
message = "";
|
||
if (factorized[1] === 1) {
|
||
message = "constraints are inconsistent, no solution!";
|
||
}
|
||
if (factorized[1] === 2) {
|
||
message = "matrix D in quadratic function is not positive definite!";
|
||
}
|
||
|
||
return {
|
||
solution: base1to0(sol),
|
||
value: base1to0(crval),
|
||
unconstrained_solution: base1to0(dvec),
|
||
iterations: base1to0(iter),
|
||
iact: base1to0(iact),
|
||
message: message
|
||
};
|
||
}
|
||
exports.solveQP = solveQP;
|
||
}(numeric));
|
||
/*
|
||
Shanti Rao sent me this routine by private email. I had to modify it
|
||
slightly to work on Arrays instead of using a Matrix object.
|
||
It is apparently translated from http://stitchpanorama.sourceforge.net/Python/svd.py
|
||
*/
|
||
|
||
numeric.svd= function svd(A) {
|
||
var temp;
|
||
//Compute the thin SVD from G. H. Golub and C. Reinsch, Numer. Math. 14, 403-420 (1970)
|
||
var prec= numeric.epsilon; //Math.pow(2,-52) // assumes double prec
|
||
var tolerance= 1.e-64/prec;
|
||
var itmax= 50;
|
||
var c=0;
|
||
var i=0;
|
||
var j=0;
|
||
var k=0;
|
||
var l=0;
|
||
|
||
var u= numeric.clone(A);
|
||
var m= u.length;
|
||
|
||
var n= u[0].length;
|
||
|
||
if (m < n) throw "Need more rows than columns"
|
||
|
||
var e = new Array(n);
|
||
var q = new Array(n);
|
||
for (i=0; i<n; i++) e[i] = q[i] = 0.0;
|
||
var v = numeric.rep([n,n],0);
|
||
// v.zero();
|
||
|
||
function pythag(a,b)
|
||
{
|
||
a = Math.abs(a);
|
||
b = Math.abs(b);
|
||
if (a > b)
|
||
return a*Math.sqrt(1.0+(b*b/a/a))
|
||
else if (b == 0.0)
|
||
return a
|
||
return b*Math.sqrt(1.0+(a*a/b/b))
|
||
}
|
||
|
||
//Householder's reduction to bidiagonal form
|
||
|
||
var f= 0.0;
|
||
var g= 0.0;
|
||
var h= 0.0;
|
||
var x= 0.0;
|
||
var y= 0.0;
|
||
var z= 0.0;
|
||
var s= 0.0;
|
||
|
||
for (i=0; i < n; i++)
|
||
{
|
||
e[i]= g;
|
||
s= 0.0;
|
||
l= i+1;
|
||
for (j=i; j < m; j++)
|
||
s += (u[j][i]*u[j][i]);
|
||
if (s <= tolerance)
|
||
g= 0.0;
|
||
else
|
||
{
|
||
f= u[i][i];
|
||
g= Math.sqrt(s);
|
||
if (f >= 0.0) g= -g;
|
||
h= f*g-s;
|
||
u[i][i]=f-g;
|
||
for (j=l; j < n; j++)
|
||
{
|
||
s= 0.0;
|
||
for (k=i; k < m; k++)
|
||
s += u[k][i]*u[k][j];
|
||
f= s/h;
|
||
for (k=i; k < m; k++)
|
||
u[k][j]+=f*u[k][i];
|
||
}
|
||
}
|
||
q[i]= g;
|
||
s= 0.0;
|
||
for (j=l; j < n; j++)
|
||
s= s + u[i][j]*u[i][j];
|
||
if (s <= tolerance)
|
||
g= 0.0;
|
||
else
|
||
{
|
||
f= u[i][i+1];
|
||
g= Math.sqrt(s);
|
||
if (f >= 0.0) g= -g;
|
||
h= f*g - s;
|
||
u[i][i+1] = f-g;
|
||
for (j=l; j < n; j++) e[j]= u[i][j]/h;
|
||
for (j=l; j < m; j++)
|
||
{
|
||
s=0.0;
|
||
for (k=l; k < n; k++)
|
||
s += (u[j][k]*u[i][k]);
|
||
for (k=l; k < n; k++)
|
||
u[j][k]+=s*e[k];
|
||
}
|
||
}
|
||
y= Math.abs(q[i])+Math.abs(e[i]);
|
||
if (y>x)
|
||
x=y;
|
||
}
|
||
|
||
// accumulation of right hand gtransformations
|
||
for (i=n-1; i != -1; i+= -1)
|
||
{
|
||
if (g != 0.0)
|
||
{
|
||
h= g*u[i][i+1];
|
||
for (j=l; j < n; j++)
|
||
v[j][i]=u[i][j]/h;
|
||
for (j=l; j < n; j++)
|
||
{
|
||
s=0.0;
|
||
for (k=l; k < n; k++)
|
||
s += u[i][k]*v[k][j];
|
||
for (k=l; k < n; k++)
|
||
v[k][j]+=(s*v[k][i]);
|
||
}
|
||
}
|
||
for (j=l; j < n; j++)
|
||
{
|
||
v[i][j] = 0;
|
||
v[j][i] = 0;
|
||
}
|
||
v[i][i] = 1;
|
||
g= e[i];
|
||
l= i;
|
||
}
|
||
|
||
// accumulation of left hand transformations
|
||
for (i=n-1; i != -1; i+= -1)
|
||
{
|
||
l= i+1;
|
||
g= q[i];
|
||
for (j=l; j < n; j++)
|
||
u[i][j] = 0;
|
||
if (g != 0.0)
|
||
{
|
||
h= u[i][i]*g;
|
||
for (j=l; j < n; j++)
|
||
{
|
||
s=0.0;
|
||
for (k=l; k < m; k++) s += u[k][i]*u[k][j];
|
||
f= s/h;
|
||
for (k=i; k < m; k++) u[k][j]+=f*u[k][i];
|
||
}
|
||
for (j=i; j < m; j++) u[j][i] = u[j][i]/g;
|
||
}
|
||
else
|
||
for (j=i; j < m; j++) u[j][i] = 0;
|
||
u[i][i] += 1;
|
||
}
|
||
|
||
// diagonalization of the bidiagonal form
|
||
prec= prec*x;
|
||
for (k=n-1; k != -1; k+= -1)
|
||
{
|
||
for (var iteration=0; iteration < itmax; iteration++)
|
||
{ // test f splitting
|
||
var test_convergence = false;
|
||
for (l=k; l != -1; l+= -1)
|
||
{
|
||
if (Math.abs(e[l]) <= prec)
|
||
{ test_convergence= true;
|
||
break
|
||
}
|
||
if (Math.abs(q[l-1]) <= prec)
|
||
break
|
||
}
|
||
if (!test_convergence)
|
||
{ // cancellation of e[l] if l>0
|
||
c= 0.0;
|
||
s= 1.0;
|
||
var l1= l-1;
|
||
for (i =l; i<k+1; i++)
|
||
{
|
||
f= s*e[i];
|
||
e[i]= c*e[i];
|
||
if (Math.abs(f) <= prec)
|
||
break
|
||
g= q[i];
|
||
h= pythag(f,g);
|
||
q[i]= h;
|
||
c= g/h;
|
||
s= -f/h;
|
||
for (j=0; j < m; j++)
|
||
{
|
||
y= u[j][l1];
|
||
z= u[j][i];
|
||
u[j][l1] = y*c+(z*s);
|
||
u[j][i] = -y*s+(z*c);
|
||
}
|
||
}
|
||
}
|
||
// test f convergence
|
||
z= q[k];
|
||
if (l== k)
|
||
{ //convergence
|
||
if (z<0.0)
|
||
{ //q[k] is made non-negative
|
||
q[k]= -z;
|
||
for (j=0; j < n; j++)
|
||
v[j][k] = -v[j][k];
|
||
}
|
||
break //break out of iteration loop and move on to next k value
|
||
}
|
||
if (iteration >= itmax-1)
|
||
throw 'Error: no convergence.'
|
||
// shift from bottom 2x2 minor
|
||
x= q[l];
|
||
y= q[k-1];
|
||
g= e[k-1];
|
||
h= e[k];
|
||
f= ((y-z)*(y+z)+(g-h)*(g+h))/(2.0*h*y);
|
||
g= pythag(f,1.0);
|
||
if (f < 0.0)
|
||
f= ((x-z)*(x+z)+h*(y/(f-g)-h))/x;
|
||
else
|
||
f= ((x-z)*(x+z)+h*(y/(f+g)-h))/x;
|
||
// next QR transformation
|
||
c= 1.0;
|
||
s= 1.0;
|
||
for (i=l+1; i< k+1; i++)
|
||
{
|
||
g= e[i];
|
||
y= q[i];
|
||
h= s*g;
|
||
g= c*g;
|
||
z= pythag(f,h);
|
||
e[i-1]= z;
|
||
c= f/z;
|
||
s= h/z;
|
||
f= x*c+g*s;
|
||
g= -x*s+g*c;
|
||
h= y*s;
|
||
y= y*c;
|
||
for (j=0; j < n; j++)
|
||
{
|
||
x= v[j][i-1];
|
||
z= v[j][i];
|
||
v[j][i-1] = x*c+z*s;
|
||
v[j][i] = -x*s+z*c;
|
||
}
|
||
z= pythag(f,h);
|
||
q[i-1]= z;
|
||
c= f/z;
|
||
s= h/z;
|
||
f= c*g+s*y;
|
||
x= -s*g+c*y;
|
||
for (j=0; j < m; j++)
|
||
{
|
||
y= u[j][i-1];
|
||
z= u[j][i];
|
||
u[j][i-1] = y*c+z*s;
|
||
u[j][i] = -y*s+z*c;
|
||
}
|
||
}
|
||
e[l]= 0.0;
|
||
e[k]= f;
|
||
q[k]= x;
|
||
}
|
||
}
|
||
|
||
//vt= transpose(v)
|
||
//return (u,q,vt)
|
||
for (i=0;i<q.length; i++)
|
||
if (q[i] < prec) q[i] = 0;
|
||
|
||
//sort eigenvalues
|
||
for (i=0; i< n; i++)
|
||
{
|
||
//writeln(q)
|
||
for (j=i-1; j >= 0; j--)
|
||
{
|
||
if (q[j] < q[i])
|
||
{
|
||
// writeln(i,'-',j)
|
||
c = q[j];
|
||
q[j] = q[i];
|
||
q[i] = c;
|
||
for(k=0;k<u.length;k++) { temp = u[k][i]; u[k][i] = u[k][j]; u[k][j] = temp; }
|
||
for(k=0;k<v.length;k++) { temp = v[k][i]; v[k][i] = v[k][j]; v[k][j] = temp; }
|
||
// u.swapCols(i,j)
|
||
// v.swapCols(i,j)
|
||
i = j;
|
||
}
|
||
}
|
||
}
|
||
|
||
return {U:u,S:q,V:v}
|
||
};
|
||
});
|
||
|
||
var performanceNow = createCommonjsModule(function (module) {
|
||
// Generated by CoffeeScript 1.12.2
|
||
(function() {
|
||
var getNanoSeconds, hrtime, loadTime, moduleLoadTime, nodeLoadTime, upTime;
|
||
|
||
if ((typeof performance !== "undefined" && performance !== null) && performance.now) {
|
||
module.exports = function() {
|
||
return performance.now();
|
||
};
|
||
} else if ((typeof process !== "undefined" && process !== null) && process.hrtime) {
|
||
module.exports = function() {
|
||
return (getNanoSeconds() - nodeLoadTime) / 1e6;
|
||
};
|
||
hrtime = process.hrtime;
|
||
getNanoSeconds = function() {
|
||
var hr;
|
||
hr = hrtime();
|
||
return hr[0] * 1e9 + hr[1];
|
||
};
|
||
moduleLoadTime = getNanoSeconds();
|
||
upTime = process.uptime() * 1e9;
|
||
nodeLoadTime = moduleLoadTime - upTime;
|
||
} else if (Date.now) {
|
||
module.exports = function() {
|
||
return Date.now() - loadTime;
|
||
};
|
||
loadTime = Date.now();
|
||
} else {
|
||
module.exports = function() {
|
||
return new Date().getTime() - loadTime;
|
||
};
|
||
loadTime = new Date().getTime();
|
||
}
|
||
|
||
}).call(commonjsGlobal);
|
||
|
||
|
||
});
|
||
|
||
var root = typeof window === 'undefined' ? commonjsGlobal : window;
|
||
var vendors = ['moz', 'webkit'];
|
||
var suffix = 'AnimationFrame';
|
||
var raf = root['request' + suffix];
|
||
var caf = root['cancel' + suffix] || root['cancelRequest' + suffix];
|
||
|
||
for(var i = 0; !raf && i < vendors.length; i++) {
|
||
raf = root[vendors[i] + 'Request' + suffix];
|
||
caf = root[vendors[i] + 'Cancel' + suffix]
|
||
|| root[vendors[i] + 'CancelRequest' + suffix];
|
||
}
|
||
|
||
// Some versions of FF have rAF but not cAF
|
||
if(!raf || !caf) {
|
||
var last = 0
|
||
, id = 0
|
||
, queue = []
|
||
, frameDuration = 1000 / 60;
|
||
|
||
raf = function(callback) {
|
||
if(queue.length === 0) {
|
||
var _now = performanceNow()
|
||
, next = Math.max(0, frameDuration - (_now - last));
|
||
last = next + _now;
|
||
setTimeout(function() {
|
||
var cp = queue.slice(0);
|
||
// Clear queue here to prevent
|
||
// callbacks from appending listeners
|
||
// to the current frame's queue
|
||
queue.length = 0;
|
||
for(var i = 0; i < cp.length; i++) {
|
||
if(!cp[i].cancelled) {
|
||
try{
|
||
cp[i].callback(last);
|
||
} catch(e) {
|
||
setTimeout(function() { throw e }, 0);
|
||
}
|
||
}
|
||
}
|
||
}, Math.round(next));
|
||
}
|
||
queue.push({
|
||
handle: ++id,
|
||
callback: callback,
|
||
cancelled: false
|
||
});
|
||
return id
|
||
};
|
||
|
||
caf = function(handle) {
|
||
for(var i = 0; i < queue.length; i++) {
|
||
if(queue[i].handle === handle) {
|
||
queue[i].cancelled = true;
|
||
}
|
||
}
|
||
};
|
||
}
|
||
|
||
var raf_1 = function(fn) {
|
||
// Wrap in a new function to prevent
|
||
// `cancel` potentially being assigned
|
||
// to the native rAF function
|
||
return raf.call(root, fn)
|
||
};
|
||
var cancel = function() {
|
||
caf.apply(root, arguments);
|
||
};
|
||
var polyfill = function(object) {
|
||
if (!object) {
|
||
object = root;
|
||
}
|
||
object.requestAnimationFrame = raf;
|
||
object.cancelAnimationFrame = caf;
|
||
};
|
||
|
||
raf_1.cancel = cancel;
|
||
raf_1.polyfill = polyfill;
|
||
|
||
var promise = createCommonjsModule(function (module) {
|
||
(function (root) {
|
||
|
||
// Store setTimeout reference so promise-polyfill will be unaffected by
|
||
// other code modifying setTimeout (like sinon.useFakeTimers())
|
||
var setTimeoutFunc = setTimeout;
|
||
|
||
function noop() {}
|
||
|
||
// Polyfill for Function.prototype.bind
|
||
function bind(fn, thisArg) {
|
||
return function () {
|
||
fn.apply(thisArg, arguments);
|
||
};
|
||
}
|
||
|
||
function Promise(fn) {
|
||
if (!(this instanceof Promise)) throw new TypeError('Promises must be constructed via new');
|
||
if (typeof fn !== 'function') throw new TypeError('not a function');
|
||
this._state = 0;
|
||
this._handled = false;
|
||
this._value = undefined;
|
||
this._deferreds = [];
|
||
|
||
doResolve(fn, this);
|
||
}
|
||
|
||
function handle(self, deferred) {
|
||
while (self._state === 3) {
|
||
self = self._value;
|
||
}
|
||
if (self._state === 0) {
|
||
self._deferreds.push(deferred);
|
||
return;
|
||
}
|
||
self._handled = true;
|
||
Promise._immediateFn(function () {
|
||
var cb = self._state === 1 ? deferred.onFulfilled : deferred.onRejected;
|
||
if (cb === null) {
|
||
(self._state === 1 ? resolve : reject)(deferred.promise, self._value);
|
||
return;
|
||
}
|
||
var ret;
|
||
try {
|
||
ret = cb(self._value);
|
||
} catch (e) {
|
||
reject(deferred.promise, e);
|
||
return;
|
||
}
|
||
resolve(deferred.promise, ret);
|
||
});
|
||
}
|
||
|
||
function resolve(self, newValue) {
|
||
try {
|
||
// Promise Resolution Procedure: https://github.com/promises-aplus/promises-spec#the-promise-resolution-procedure
|
||
if (newValue === self) throw new TypeError('A promise cannot be resolved with itself.');
|
||
if (newValue && (typeof newValue === 'object' || typeof newValue === 'function')) {
|
||
var then = newValue.then;
|
||
if (newValue instanceof Promise) {
|
||
self._state = 3;
|
||
self._value = newValue;
|
||
finale(self);
|
||
return;
|
||
} else if (typeof then === 'function') {
|
||
doResolve(bind(then, newValue), self);
|
||
return;
|
||
}
|
||
}
|
||
self._state = 1;
|
||
self._value = newValue;
|
||
finale(self);
|
||
} catch (e) {
|
||
reject(self, e);
|
||
}
|
||
}
|
||
|
||
function reject(self, newValue) {
|
||
self._state = 2;
|
||
self._value = newValue;
|
||
finale(self);
|
||
}
|
||
|
||
function finale(self) {
|
||
if (self._state === 2 && self._deferreds.length === 0) {
|
||
Promise._immediateFn(function() {
|
||
if (!self._handled) {
|
||
Promise._unhandledRejectionFn(self._value);
|
||
}
|
||
});
|
||
}
|
||
|
||
for (var i = 0, len = self._deferreds.length; i < len; i++) {
|
||
handle(self, self._deferreds[i]);
|
||
}
|
||
self._deferreds = null;
|
||
}
|
||
|
||
function Handler(onFulfilled, onRejected, promise) {
|
||
this.onFulfilled = typeof onFulfilled === 'function' ? onFulfilled : null;
|
||
this.onRejected = typeof onRejected === 'function' ? onRejected : null;
|
||
this.promise = promise;
|
||
}
|
||
|
||
/**
|
||
* Take a potentially misbehaving resolver function and make sure
|
||
* onFulfilled and onRejected are only called once.
|
||
*
|
||
* Makes no guarantees about asynchrony.
|
||
*/
|
||
function doResolve(fn, self) {
|
||
var done = false;
|
||
try {
|
||
fn(function (value) {
|
||
if (done) return;
|
||
done = true;
|
||
resolve(self, value);
|
||
}, function (reason) {
|
||
if (done) return;
|
||
done = true;
|
||
reject(self, reason);
|
||
});
|
||
} catch (ex) {
|
||
if (done) return;
|
||
done = true;
|
||
reject(self, ex);
|
||
}
|
||
}
|
||
|
||
Promise.prototype['catch'] = function (onRejected) {
|
||
return this.then(null, onRejected);
|
||
};
|
||
|
||
Promise.prototype.then = function (onFulfilled, onRejected) {
|
||
var prom = new (this.constructor)(noop);
|
||
|
||
handle(this, new Handler(onFulfilled, onRejected, prom));
|
||
return prom;
|
||
};
|
||
|
||
Promise.all = function (arr) {
|
||
return new Promise(function (resolve, reject) {
|
||
if (!arr || typeof arr.length === 'undefined') throw new TypeError('Promise.all accepts an array');
|
||
var args = Array.prototype.slice.call(arr);
|
||
if (args.length === 0) return resolve([]);
|
||
var remaining = args.length;
|
||
|
||
function res(i, val) {
|
||
try {
|
||
if (val && (typeof val === 'object' || typeof val === 'function')) {
|
||
var then = val.then;
|
||
if (typeof then === 'function') {
|
||
then.call(val, function (val) {
|
||
res(i, val);
|
||
}, reject);
|
||
return;
|
||
}
|
||
}
|
||
args[i] = val;
|
||
if (--remaining === 0) {
|
||
resolve(args);
|
||
}
|
||
} catch (ex) {
|
||
reject(ex);
|
||
}
|
||
}
|
||
|
||
for (var i = 0; i < args.length; i++) {
|
||
res(i, args[i]);
|
||
}
|
||
});
|
||
};
|
||
|
||
Promise.resolve = function (value) {
|
||
if (value && typeof value === 'object' && value.constructor === Promise) {
|
||
return value;
|
||
}
|
||
|
||
return new Promise(function (resolve) {
|
||
resolve(value);
|
||
});
|
||
};
|
||
|
||
Promise.reject = function (value) {
|
||
return new Promise(function (resolve, reject) {
|
||
reject(value);
|
||
});
|
||
};
|
||
|
||
Promise.race = function (values) {
|
||
return new Promise(function (resolve, reject) {
|
||
for (var i = 0, len = values.length; i < len; i++) {
|
||
values[i].then(resolve, reject);
|
||
}
|
||
});
|
||
};
|
||
|
||
// Use polyfill for setImmediate for performance gains
|
||
Promise._immediateFn = (typeof setImmediate === 'function' && function (fn) { setImmediate(fn); }) ||
|
||
function (fn) {
|
||
setTimeoutFunc(fn, 0);
|
||
};
|
||
|
||
Promise._unhandledRejectionFn = function _unhandledRejectionFn(err) {
|
||
if (typeof console !== 'undefined' && console) {
|
||
console.warn('Possible Unhandled Promise Rejection:', err); // eslint-disable-line no-console
|
||
}
|
||
};
|
||
|
||
/**
|
||
* Set the immediate function to execute callbacks
|
||
* @param fn {function} Function to execute
|
||
* @deprecated
|
||
*/
|
||
Promise._setImmediateFn = function _setImmediateFn(fn) {
|
||
Promise._immediateFn = fn;
|
||
};
|
||
|
||
/**
|
||
* Change the function to execute on unhandled rejection
|
||
* @param {function} fn Function to execute on unhandled rejection
|
||
* @deprecated
|
||
*/
|
||
Promise._setUnhandledRejectionFn = function _setUnhandledRejectionFn(fn) {
|
||
Promise._unhandledRejectionFn = fn;
|
||
};
|
||
|
||
if ('object' !== 'undefined' && module.exports) {
|
||
module.exports = Promise;
|
||
} else if (!root.Promise) {
|
||
root.Promise = Promise;
|
||
}
|
||
|
||
})(commonjsGlobal);
|
||
});
|
||
|
||
// IE polyfill from MDN
|
||
(function () {
|
||
if (typeof window.CustomEvent === 'function') return false;
|
||
|
||
function CustomEvent (event, params) {
|
||
params = params || {bubbles : false, cancelable : false, detail: undefined};
|
||
var evt = document.createEvent('CustomEvent');
|
||
evt.initCustomEvent(event, params.bubbles, params.cancelable, params.detail);
|
||
return evt;
|
||
}
|
||
|
||
CustomEvent.prototype = window.Event.prototype;
|
||
|
||
window.CustomEvent = CustomEvent;
|
||
})();
|
||
|
||
function emitEvent(eventName, dispatcher=document) {
|
||
var evt = new CustomEvent(eventName, {'bubbles': true, 'cancelable': true});
|
||
dispatcher.dispatchEvent(evt);
|
||
}
|
||
|
||
/**
|
||
* Fast Fourier Transform
|
||
* 1D-FFT/IFFT, 2D-FFT/IFFT (radix-2)
|
||
*
|
||
* @author ryo / github.com/wellflat
|
||
* Based on https://github.com/wellflat/jslib with some tiny optimizations
|
||
*/
|
||
|
||
function FFT() {
|
||
|
||
var _n = 0, // order
|
||
_bitrev = null, // bit reversal table
|
||
_cstb = null; // sin/cos table
|
||
var _tre, _tim;
|
||
|
||
this.init = function (n) {
|
||
if(n !== 0 && (n & (n - 1)) === 0) {
|
||
_n = n;
|
||
_setVariables();
|
||
_makeBitReversal();
|
||
_makeCosSinTable();
|
||
} else {
|
||
throw new Error("init: radix-2 required");
|
||
}
|
||
};
|
||
|
||
// 1D-FFT
|
||
this.fft1d = function (re, im) {
|
||
fft(re, im, 1);
|
||
};
|
||
|
||
// 1D-IFFT
|
||
this.ifft1d = function (re, im) {
|
||
var n = 1/_n;
|
||
fft(re, im, -1);
|
||
for(var i=0; i<_n; i++) {
|
||
re[i] *= n;
|
||
im[i] *= n;
|
||
}
|
||
};
|
||
|
||
// 2D-FFT
|
||
this.fft2d = function (re, im) {
|
||
var i = 0;
|
||
// x-axis
|
||
for(var y=0; y<_n; y++) {
|
||
i = y*_n;
|
||
for(var x1=0; x1<_n; x1++) {
|
||
_tre[x1] = re[x1 + i];
|
||
_tim[x1] = im[x1 + i];
|
||
}
|
||
this.fft1d(_tre, _tim);
|
||
for(var x2=0; x2<_n; x2++) {
|
||
re[x2 + i] = _tre[x2];
|
||
im[x2 + i] = _tim[x2];
|
||
}
|
||
}
|
||
// y-axis
|
||
for(var x=0; x<_n; x++) {
|
||
for(var y1=0; y1<_n; y1++) {
|
||
i = x + y1*_n;
|
||
_tre[y1] = re[i];
|
||
_tim[y1] = im[i];
|
||
}
|
||
this.fft1d(_tre, _tim);
|
||
for(var y2=0; y2<_n; y2++) {
|
||
i = x + y2*_n;
|
||
re[i] = _tre[y2];
|
||
im[i] = _tim[y2];
|
||
}
|
||
}
|
||
};
|
||
|
||
// 2D-IFFT
|
||
this.ifft2d = function (re, im) {
|
||
var i = 0;
|
||
// x-axis
|
||
for(var y=0; y<_n; y++) {
|
||
i = y*_n;
|
||
for(var x1=0; x1<_n; x1++) {
|
||
_tre[x1] = re[x1 + i];
|
||
_tim[x1] = im[x1 + i];
|
||
}
|
||
this.ifft1d(_tre, _tim);
|
||
for(var x2=0; x2<_n; x2++) {
|
||
re[x2 + i] = _tre[x2];
|
||
im[x2 + i] = _tim[x2];
|
||
}
|
||
}
|
||
// y-axis
|
||
for(var x=0; x<_n; x++) {
|
||
for(var y1=0; y1<_n; y1++) {
|
||
i = x + y1*_n;
|
||
_tre[y1] = re[i];
|
||
_tim[y1] = im[i];
|
||
}
|
||
this.ifft1d(_tre, _tim);
|
||
for(var y2=0; y2<_n; y2++) {
|
||
i = x + y2*_n;
|
||
re[i] = _tre[y2];
|
||
im[i] = _tim[y2];
|
||
}
|
||
}
|
||
};
|
||
|
||
// core operation of FFT
|
||
function fft(re, im, inv) {
|
||
var d, h, ik, m, tmp, wr, wi, xr, xi,
|
||
n4 = _n >> 2;
|
||
// bit reversal
|
||
for(var l=0; l<_n; l++) {
|
||
m = _bitrev[l];
|
||
if(l < m) {
|
||
tmp = re[l];
|
||
re[l] = re[m];
|
||
re[m] = tmp;
|
||
tmp = im[l];
|
||
im[l] = im[m];
|
||
im[m] = tmp;
|
||
}
|
||
}
|
||
// butterfly operation
|
||
for(var k=1; k<_n; k<<=1) {
|
||
h = 0;
|
||
d = _n/(k << 1);
|
||
for(var j=0; j<k; j++) {
|
||
wr = _cstb[h + n4];
|
||
wi = inv*_cstb[h];
|
||
for(var i=j; i<_n; i+=(k<<1)) {
|
||
ik = i + k;
|
||
xr = wr*re[ik] + wi*im[ik];
|
||
xi = wr*im[ik] - wi*re[ik];
|
||
re[ik] = re[i] - xr;
|
||
re[i] += xr;
|
||
im[ik] = im[i] - xi;
|
||
im[i] += xi;
|
||
}
|
||
h += d;
|
||
}
|
||
}
|
||
}
|
||
|
||
// set variables
|
||
function _setVariables() {
|
||
if(typeof Uint8Array !== 'undefined') {
|
||
_bitrev = new Uint8Array(_n);
|
||
} else {
|
||
_bitrev = new Array(_n);
|
||
}
|
||
if(typeof Float64Array !== 'undefined') {
|
||
_cstb = new Float64Array(_n*1.25);
|
||
_tre = new Float64Array(_n*_n);
|
||
_tim = new Float64Array(_n*_n);
|
||
} else {
|
||
_cstb = new Array(_n*1.25);
|
||
_tre = new Array(_n*_n);
|
||
_tim = new Array(_n*_n);
|
||
}
|
||
}
|
||
|
||
// make bit reversal table
|
||
function _makeBitReversal() {
|
||
var i = 0,
|
||
j = 0,
|
||
k = 0;
|
||
_bitrev[0] = 0;
|
||
while(++i < _n) {
|
||
k = _n >> 1;
|
||
while(k <= j) {
|
||
j -= k;
|
||
k >>= 1;
|
||
}
|
||
j += k;
|
||
_bitrev[i] = j;
|
||
}
|
||
}
|
||
|
||
// make trigonometric function table
|
||
function _makeCosSinTable() {
|
||
var n2 = _n >> 1,
|
||
n4 = _n >> 2,
|
||
n8 = _n >> 3,
|
||
n2p4 = n2 + n4,
|
||
t = Math.sin(Math.PI/_n),
|
||
dc = 2*t*t,
|
||
ds = Math.sqrt(dc*(2 - dc)),
|
||
c = _cstb[n4] = 1,
|
||
s = _cstb[0] = 0;
|
||
t = 2*dc;
|
||
for(var i=1; i<n8; i++) {
|
||
c -= dc;
|
||
dc += t*c;
|
||
s += ds;
|
||
ds -= t*s;
|
||
_cstb[i] = s;
|
||
_cstb[n4 - i] = c;
|
||
}
|
||
if(n8 !== 0) {
|
||
_cstb[n8] = Math.sqrt(0.5);
|
||
}
|
||
for(var j=0; j<n4; j++) {
|
||
_cstb[n2 - j] = _cstb[j];
|
||
}
|
||
for(var k=0; k<n2p4; k++) {
|
||
_cstb[k + n2] = -_cstb[k];
|
||
}
|
||
}
|
||
}
|
||
|
||
var left_eye_filter = {"real": [1.5419219943717721, 0.40010880110578706, -0.79043641265342957, -1.2685464969238938, 0.39878117336167285, -1.0673489992245377, -0.079880838229404019, -0.45374680224191505, -0.043474097938900787, -0.31125662385352687, 0.17092430376098702, -0.29613086164846153, 0.5616469648110296, -1.559786848789493, 0.64513037997492662, -1.2899747976234162, 1.1761667998175334, -1.2899747976233551, 0.64513037997490474, -1.5597868487894897, 0.56164696481102505, -0.29613086164845964, 0.17092430376099094, -0.31125662385352959, -0.043474097938900787, -0.45374680224191177, -0.079880838229404658, -1.0673489992245357, 0.39878117336167307, -1.2685464969238942, -0.79043641265343012, 0.40010880110578717, -1.3820969331049027, 0.069560471269205768, -1.9786339579213206, -1.9807415717551982, -0.78667274410450883, -1.2217002325587256, -0.19150029104902774, -0.35131617290773243, -0.17646388464205803, -0.16672095020503441, -0.092298612924566523, -0.028899376452253527, -0.1314555696102146, -0.32892265898101813, -0.40987148655061206, 0.11741827111366547, -0.67254330182605138, -0.46007833291519956, -0.67215259521101001, -0.44871907432473013, -0.034749316729184583, 0.0055639281302433969, -0.17675902360981591, -0.26196208085032191, -0.36301254306387037, -0.33546767337818123, -0.6458889740799838, -1.1981932989987978, 0.12372650763830917, -1.4996172161865935, -2.4084298023013888, -2.0505291279591722, -1.7249706159518585, -2.277646289702639, -3.1259631743419591, -2.9656385065342015, -2.8480835086962011, -1.4260964500310189, -0.61792590829173544, -0.2611655301498782, -0.38519889843539723, -0.17511899827006483, -0.32808050503227176, 0.0076800871037463036, -0.18710828510427668, 0.1976534820339281, -0.55444453100465052, 0.14583567590328381, -0.69844971117515287, -0.90188577233526623, -0.53500016384583371, -0.044420751861669799, 0.014727914354086128, -0.28084584584371913, -0.29890408748685848, -0.39431380149336548, -0.39569215798819307, -0.74351999988258299, -0.82502198370631752, -1.851491897104155, -0.74302378668934244, 0.21156442062863762, -3.3061472495599986, -1.7990472945779568, -2.2193764251732282, -2.3438802466919251, -3.3615971067123311, -3.5383249085863708, -2.2639673745086588, -2.0271757806780748, -0.75242583405872232, -0.30143411016839378, -0.3625272253546275, -0.25489431004647689, -0.18928491561467081, -0.1179891518538482, 0.027920290231533224, -0.035472107498143821, -0.29008721857562259, -0.3604588674139817, -0.39156143807433802, -0.82222257402876564, -0.44979914971695928, -0.098136330355476253, 0.065628582466229365, -0.33607304327303128, -0.32161201323497779, -0.41856090178723965, -0.64028425429629054, -0.7766428172010218, -1.3946448661671447, -2.2603422126144683, -0.38769722219534525, -0.95341593939478653, -1.412952994959813, -2.3602336858020432, -1.2756392437278019, -2.0983496132652038, -2.5682454610054268, -2.8791053946930378, -2.1809972632688095, -0.84281293847776861, -0.75998936793718697, -0.18584599820380068, -0.30105748355308259, -0.16098142942852958, -0.13792125740417191, -0.089790022871128708, -0.12321821342876504, -0.1128661923016878, -0.3924098378001975, -0.5780902167586397, -0.48685989567066695, -0.53565359443296234, -0.051036689850526382, -0.0068547033925117689, -0.18963405157839419, -0.22514761090777807, -0.35555823460888908, -0.46670603976585517, -0.56179541485257889, -0.7495095888115163, -1.4772075422260349, -1.5836466114968029, -2.3846549454186694, -1.4884613952536236, -1.8237453905245253, -1.6712324532934877, -1.5169157844507295, -1.6930052820597281, -2.1023566589276004, -2.2062031109308458, -1.7945281756942255, -0.26457398838912649, 0.22038139379151148, -0.43479836723775234, -0.19830827357221226, -0.18018565146479498, -0.097060879184795737, -0.10088329756370379, -0.063069709957272527, -0.17970932516041177, -0.1943040732581543, -0.37970560392277619, -0.47302301606251812, -0.30366967948052181, -0.064732391018915397, -0.08902516330269715, -0.082000200083027344, -0.22965854401457736, -0.32035624605031326, -0.31836783196552437, -0.40132058236311119, -0.65601747033470859, -0.59040483751417483, -1.8503084663080034, -1.8694842425148914, -1.9326778896298584, -1.6301578422923519, -1.4332006785118301, -1.305707665299106, -1.364200787821644, -1.5357935460809622, -1.6161992336951241, -0.74003518668370516, -0.29423824173210689, 0.025934598230976654, -0.043349004411304674, -0.25408021803022468, -0.066965686484977499, -0.075717498698635255, 0.007057189465364498, -0.042171356658338113, -0.036938315661768008, -0.34221561581756049, -0.20400167508805764, -0.37417116097079772, -0.25039909487805356, -0.070874531394524931, -0.0569972852039487, -0.067238206950403182, -0.17397285212300442, -0.20428337307808273, -0.23651154356493315, -0.33356498933276568, -0.07339749754226077, -0.70367959806681601, -0.82403680021595049, -1.6058616381755235, -1.6192427030685497, -1.5705638815427956, -1.4659201063980019, -0.95504179549951018, -0.97237526162739873, -1.0460191987834688, -0.91465668941265721, -0.60548232361398524, 0.01898438364933451, -0.19419044456729498, -0.039627851124307223, 0.0012357796666701798, -0.078110822445325079, 0.0048626364920250518, -0.040449089662379589, -0.0035054269587873454, -0.13387544724730729, -0.10031131456276647, -0.25968674675684189, -0.20555329767005767, -0.26509289948725284, -0.038788452621647145, -0.076999891872251258, -0.071661433038976499, -0.14182240789719938, -0.1654673053291095, -0.19859450279267193, -0.053382326365810369, -0.2156585383674445, -0.045097357284793499, -0.62449818579949512, -0.92624906744917224, -1.0411254782363617, -1.122035196738675, -1.0607692164246043, -0.57723811773534028, -0.63187735896388075, -0.54813311204421922, -0.55320252101738743, -0.30197299587482401, -0.047213249757838388, 0.082808930467383288, -0.067715134483222431, -0.01022881748368659, 0.042038311258956552, -0.063371767399980669, 0.029161890169972702, -0.091396316586836127, -0.0034600735070754811, -0.12424052925006424, -0.24432996418012101, -0.26521664175359499, -0.22745980283820413, -0.14361316535317664, -0.00075904203100577935, -0.020936168457862139, -0.14205665196423617, -0.19024248288823023, -0.079686122362245204, -0.15016133237735926, 0.049598910651295514, -0.11760486834511712, -0.1837522251545049, -0.38594205494114608, -0.53542516436999843, -0.57340991730807989, -0.52753621424018138, -0.23151163972118355, -0.22295096919949259, -0.33704349161770436, -0.26165852514054583, -0.13898866968588663, 0.034596483191139484, -0.012631210076789067, 0.047371310076345617, -0.038651839330751551, -0.0019970761454430018, 0.063048845258375494, -0.1124891762554399, 0.08556992539656616, -0.21043659051868199, -0.19223333969456, -0.39082994830035861, -0.19294368007162721, -0.41025595439938572, -0.17178084419175166, -0.010933041190555012, -0.089512936152074493, -0.21569610281495066, -0.09144756671688016, -0.19525258909505316, -0.029753598134641936, -0.021307245660079924, 0.029087127940551009, 0.037511290653097842, -0.20600990120705839, -0.26967580750352926, -0.21000923681194664, -0.28209018858285628, -0.11925518789339556, -0.24869348141289982, -0.21025892926356746, -0.15567029136726124, -0.040546729108395907, -0.0050266153100547101, 0.030710887069787196, -0.0061104340245858278, 0.0369376092260571, -0.054862661367900321, 0.013297880203253048, 0.19659447375886394, -0.2499491329142558, -0.062959699002865757, -0.53055029095956008, -0.38784811281629444, -0.53891285075962392, -0.41886712861154285, -0.099230097260325875, -0.16474199810952628, -0.28693665642627014, -0.0095667980850221105, -0.32619954993450928, -0.08627491478166284, -0.073253161755714766, 0.015634174038690329, 0.082440536547531792, 0.025411878261881942, -0.11318909242737961, -0.1270560226842935, -0.21657212936164139, -0.13993873549611191, -0.37510275237622831, -0.26472923111076219, -0.24460131567533192, -0.14127652303494026, -0.050428686591045178, 0.041347840374190772, -0.0061780445153000636, 0.0073990345210250153, -0.014062739037014381, 0.14348925152561878, -0.015321787554403667, 0.0017746672356015968, 0.25165135427361052, -0.626463828190993, -0.48167134330805639, -1.045863293770664, -0.69512591788493194, -0.44532127384388254, -0.28479724025368391, -0.39470955087317983, 0.20227228344720469, -0.53909912073488953, -0.12025629051789474, -0.1899243750597305, -0.048474806721595133, 0.060764771353227762, 0.090648151782516159, 0.091608208912697275, 0.0036582478916540977, -0.22492530005263131, -0.27295314658024766, -0.35559738025257359, -0.62902925014412947, -0.57166411974881004, -0.37258895173129181, -0.22157638610464933, 0.022494427132080854, 0.014769425415166171, 0.003526808789406817, -0.011346909674078769, 0.050921170848348289, 0.090308541799219627, 0.37260817254533324, -0.25909871392159911, -0.42379280974334355, -0.095380647808568128, -1.1906083748893519, -0.78599914414892469, -0.95277914352730275, -0.63659778359422337, -0.98026015008952749, 0.48173198285916102, -0.60092009018055192, -0.10265418316164113, -0.39913639006279306, -0.17310908908773887, -0.0194191171632387, 0.054047965289179878, 0.1388529643463832, 0.15661099050145999, -0.10898263774416243, -0.33291231456737602, -0.59569027865888713, -0.69353081584948972, -1.0999707493347484, -0.74392084753736687, -0.49074781214158159, -0.065190556733852961, 0.012289768389229717, 0.024577513704595676, 0.0040302804696096322, 0.036047756292976456, 0.058236765637246286, 0.13893846256790621, 0.036944676036934632, 0.41686279554239464, -0.85232286388185818, -1.2988315127624981, -0.47352779677305168, -0.81763632541546793, -0.77384457803621831, -1.4256240004519281, 0.52588993532360684, -0.89821724022902683, 0.1591911967653899, -0.55046596772346867, -0.30980016041271019, -0.16709614007114884, -0.046029700131955266, 0.044793268150423983, 0.1689242242845459, 0.14412365934528507, -0.0088250071313367359, -0.36778545124666312, -0.79393844517732104, -1.1610479066529615, -0.76523210008850662, -0.63009858032048405, -0.13947023057344932, -0.017173105577524262, 0.039030007688455846, 0.014491273083805401, 0.039792542943837252, 0.054072846696920814, 0.11729310469925348, 0.053609281522667675, 0.0081549498718087084, -0.30910813452845548, 0.25944224899607843, -1.3584842180322938, -1.5885570490138659, -0.65759582794618221, -1.139869490652734, 0.70928264080594694, -1.9674198903133462, 0.37712664425406606, -0.84336038390578949, -0.47788074719428036, -0.18342000086663721, -0.18811394573901796, -0.055050027645985648, 0.045043056834335606, 0.11486303559854361, 0.22023958716404868, 0.14735402009444676, -0.27894427087197998, -0.73080536953129638, -0.76794305693297227, -0.37355919765840223, 0.12353986794322802, 0.090505348376311842, 0.14069908672094206, 0.087373214380278855, 0.023353946735568523, 0.031400559920396587, 0.079550230446202241, 0.084927161382185437, 0.040777158255349423, -0.16274954314482293, -0.41184413435479567, -0.71871288822574875, 0.55302907456342854, -1.5309493464500674, -2.9026104205694736, 0.42043303599508353, -1.7138106264793671, 0.29513888249127102, -1.2517216433630918, -0.66769942176516839, -0.28576739334390183, -0.24127777006787937, -0.10778095858902549, -0.036092425009198861, 0.021519213385077923, 0.13414694961717147, 0.16917378957839613, 0.17307922682581758, 0.076246758829015673, -0.047904835134272621, -0.27544262702406924, 0.61826249566563185, 0.26987423123693399, 0.2085883517320696, 0.26073426210721973, 0.12070625812911842, 0.062945582093309679, 0.083649573916505432, 0.049688095345785867, 0.019564357607843069, -0.046035817476596949, -0.13409074070830324, -0.49027201814294552, -0.47756457321420159, -0.74403675135427549, -0.3080068432033089, -0.043712438842705037, -4.735594317158907, -0.043712438842706695, -0.30800684320330962, -0.74403675135427572, -0.47756457321420304, -0.49027201814294813, -0.13409074070830412, -0.046035817476598156, 0.019564357607843069, 0.049688095345786006, 0.083649573916506056, 0.062945582093310845, 0.12070625812911921, 0.26073426210722073, 0.20858835173207019, 0.26987423123693399, -0.37355919765836759, -0.27544262702403433, -0.047904835134273127, 0.076246758829012523, 0.17307922682581853, 0.16917378957839499, 0.13414694961716844, 0.02151921338507657, -0.036092425009199861, -0.1077809585890261, -0.24127777006787943, -0.2857673933439015, -0.66769942176516905, -1.2517216433630949, 0.29513888249127429, -1.7138106264793713, 0.42043303599507681, -2.902610420569474, -1.5309493464500692, 0.55302907456342232, -0.71871288822575019, -0.41184413435479833, -0.16274954314482265, 0.04077715825534866, 0.08492716138218645, 0.079550230446203143, 0.031400559920398419, 0.023353946735571576, 0.08737321438028138, 0.14069908672095732, 0.090505348376334033, 0.1235398679432393, -0.76523210008847808, -0.76794305693296139, -0.73080536953128505, -0.27894427087197604, 0.1473540200944477, 0.22023958716404682, 0.11486303559854165, 0.045043056834333829, -0.055050027645986453, -0.18811394573901843, -0.18342000086663854, -0.47788074719428042, -0.84336038390579149, 0.37712664425406617, -1.9674198903133469, 0.70928264080593695, -1.1398694906527307, -0.65759582794619398, -1.588557049013867, -1.3584842180322987, 0.25944224899607732, -0.30910813452845781, 0.0081549498718086911, 0.053609281522667279, 0.11729310469925426, 0.054072846696921202, 0.039792542943838709, 0.014491273083807311, 0.039030007688458185, -0.017173105577517028, -0.13947023057343994, -0.63009858032045107, -1.0999707493347308, -1.1610479066529467, -0.79393844517731305, -0.3677854512466584, -0.0088250071313340107, 0.14412365934528559, 0.16892422428454401, 0.044793268150420118, -0.046029700131956147, -0.16709614007115095, -0.30980016041271097, -0.55046596772347045, 0.15919119676539073, -0.8982172402290286, 0.52588993532360329, -1.4256240004519327, -0.77384457803621687, -0.8176363254154656, -0.47352779677305679, -1.2988315127625027, -0.85232286388185829, 0.41686279554239525, 0.036944676036935756, 0.13893846256790574, 0.058236765637246675, 0.036047756292977066, 0.0040302804696111128, 0.02457751370459911, 0.012289768389232913, -0.065190556733844662, -0.49074781214156804, -0.74392084753735632, -0.62902925014412903, -0.69353081584948562, -0.59569027865888302, -0.33291231456737491, -0.10898263774416028, 0.15661099050145985, 0.13885296434638142, 0.054047965289177706, -0.019419117163239467, -0.17310908908773912, -0.39913639006279433, -0.10265418316163986, -0.60092009018055315, 0.48173198285915786, -0.98026015008952594, -0.63659778359422126, -0.9527791435273002, -0.78599914414892458, -1.190608374889349, -0.095380647808570002, -0.42379280974334488, -0.25909871392159683, 0.37260817254533357, 0.09030854179921953, 0.050921170848348372, -0.011346909674079158, 0.0035268087894081549, 0.014769425415168456, 0.022494427132082863, -0.22157638610464575, -0.37258895173129003, -0.5716641197488066, -0.37510275237622537, -0.35559738025257059, -0.27295314658024672, -0.22492530005262792, 0.0036582478916564426, 0.091608208912696387, 0.090648151782514966, 0.060764771353224882, -0.048474806721595647, -0.18992437505973167, -0.12025629051789351, -0.53909912073488875, 0.20227228344720258, -0.39470955087317799, -0.28479724025368247, -0.44532127384387832, -0.69512591788493272, -1.04586329377066, -0.48167134330805861, -0.62646382819099156, 0.25165135427361029, 0.0017746672356018336, -0.0153217875544032, 0.14348925152561842, -0.01406273903701487, 0.0073990345210243587, -0.0061780445152985596, 0.04134784037419488, -0.050428686591041855, -0.1412765230349349, -0.2446013156753272, -0.26472923111076024, -0.11925518789339257, -0.13993873549610955, -0.21657212936163839, -0.1270560226842922, -0.11318909242737903, 0.025411878261882927, 0.082440536547530169, 0.015634174038688685, -0.073253161755715501, -0.086274914781661965, -0.326199549934509, -0.0095667980850238903, -0.28693665642627003, -0.16474199810952764, -0.099230097260324029, -0.41886712861154318, -0.53891285075962314, -0.38784811281629461, -0.53055029095956219, -0.062959699002866631, -0.24994913291425488, 0.1965944737588636, 0.013297880203252755, -0.054862661367901897, 0.036937609226056677, -0.0061104340245862225, 0.030710887069788338, -0.005026615310052167, -0.040546729108393256, -0.15567029136725916, -0.21025892926356554, -0.24869348141289621, -0.23151163972117689, -0.28209018858284918, -0.21000923681193823, -0.26967580750352416, -0.20600990120705304, 0.037511290653099091, 0.029087127940549885, -0.02130724566008323, -0.029753598134642099, -0.19525258909505444, -0.091447566716882075, -0.21569610281495041, -0.089512936152075853, -0.010933041190555782, -0.17178084419175305, -0.41025595439938806, -0.19294368007162768, -0.39082994830036216, -0.19223333969456258, -0.21043659051868269, 0.085569925396567076, -0.11248917625543933, 0.063048845258374231, -0.0019970761454456269, -0.038651839330752197, 0.047371310076345617, -0.012631210076786959, 0.034596483191142599, -0.13898866968588444, -0.26165852514053983, -0.33704349161769737, -0.22295096919948695, -0.57723811773534028, -0.52753621424018138, -0.57340991730807944, -0.53542516436999865, -0.38594205494114614, -0.1837522251545064, -0.11760486834511884, 0.049598910651293758, -0.15016133237735926, -0.07968612236224891, -0.1902424828882312, -0.14205665196423831, -0.020936168457862579, -0.00075904203100844866, -0.14361316535317845, -0.2274598028382093, -0.26521664175359499, -0.24432996418012529, -0.12424052925006639, -0.0034600735070760831, -0.09139631658683596, 0.029161890169972428, -0.063371767399980516, 0.042038311258955005, -0.01022881748368659, -0.067715134483221959, 0.082808930467383746, -0.047213249757837236, -0.3019729958748239, -0.55320252101738743, -0.548133112044219, -0.63187735896388053, -0.95504179549950285, -1.060769216424599, -1.1220351967386673, -1.0411254782363524, -0.92624906744916458, -0.62449818579949246, -0.045097357284792555, -0.21565853836744897, -0.053382326365811708, -0.19859450279267432, -0.16546730532911214, -0.14182240789720132, -0.07166143303897729, -0.076999891872253062, -0.038788452621649434, -0.2650928994872585, -0.20555329767005678, -0.25968674675684078, -0.10031131456276626, -0.13387544724730568, -0.0035054269587865765, -0.040449089662379971, 0.0048626364920241281, -0.078110822445325467, 0.0012357796666695618, -0.039627851124306598, -0.19419044456729473, 0.018984383649339364, -0.60548232361397991, -0.91465668941264988, -1.0460191987834631, -0.97237526162739263, -1.3057076652991049, -1.4659201063979992, -1.5705638815427927, -1.6192427030685486, -1.6058616381755215, -0.82403680021595249, -0.70367959806681868, -0.073397497542269388, -0.33356498933276529, -0.23651154356493967, -0.2042833730780847, -0.17397285212300875, -0.067238206950403417, -0.056997285203952995, -0.070874531394526111, -0.25039909487805306, -0.37417116097079761, -0.20400167508805389, -0.34221561581755761, -0.036938315661763657, -0.042171356658337315, 0.0070571894653653896, -0.075717498698634964, -0.066965686484977194, -0.25408021803022474, -0.043349004411301621, 0.025934598230977574, -0.29423824173210122, -0.74003518668370272, -1.6161992336951192, -1.5357935460809593, -1.3642007878216427, -1.5169157844507262, -1.4332006785118279, -1.6301578422923491, -1.932677889629856, -1.8694842425148879, -1.8503084663080056, -0.59040483751417916, -0.65601747033471336, -0.40132058236311047, -0.31836783196552787, -0.32035624605031593, -0.22965854401457814, -0.082000200083028219, -0.089025163302698024, -0.064732391018913552, -0.30366967948051288, -0.4730230160625184, -0.37970560392275871, -0.19430407325814622, -0.1797093251603995, -0.063069709957271444, -0.10088329756370083, -0.097060879184794432, -0.18018565146479387, -0.19830827357221226, -0.43479836723774673, 0.22038139379151372, -0.26457398838911428, -1.79452817569422, -2.2062031109308391, -2.102356658927595, -1.6930052820597257, -1.2756392437278008, -1.6712324532934884, -1.8237453905245253, -1.4884613952536252, -2.384654945418673, -1.5836466114968115, -1.4772075422260404, -0.74950958881152596, -0.561795414852579, -0.46670603976586306, -0.35555823460889052, -0.22514761090777982, -0.18963405157839525, -0.0068547033925124142, -0.051036689850529192, -0.53565359443295624, -0.48685989567066656, -0.57809021675862349, -0.39240983780018618, -0.11286619230167973, -0.12321821342876334, -0.089790022871127112, -0.13792125740417074, -0.16098142942852883, -0.30105748355308298, -0.18584599820379807, -0.75998936793718352, -0.8428129384777584, -2.1809972632688073, -2.8791053946930352, -2.5682454610054237, -2.0983496132652038, -2.219376425173226, -2.3602336858020396, -1.4129529949598048, -0.95341593939478875, -0.38769722219534936, -2.2603422126144772, -1.394644866167148, -0.77664281720103345, -0.64028425429629032, -0.41856090178724664, -0.3216120132349809, -0.33607304327303461, 0.065628582466230781, -0.098136330355478765, -0.44979914971695495, -0.82222257402878096, -0.39156143807433802, -0.36045886741397631, -0.29008721857562392, -0.035472107498135542, 0.027920290231535812, -0.117989151853845, -0.1892849156146684, -0.25489431004647656, -0.3625272253546275, -0.30143411016838906, -0.75242583405872021, -2.0271757806780628, -2.2639673745086539, -3.5383249085863659, -3.361597106712324, -2.3438802466919229, -1.7249706159518579, -1.7990472945779559, -3.3061472495599995, 0.21156442062862166, -0.74302378668934399, -1.8514918971041745, -0.82502198370632651, -0.74351999988260331, -0.39569215798819279, -0.3943138014933833, -0.29890408748686254, -0.28084584584372846, 0.01472791435408881, -0.04442075186168376, -0.53500016384583715, -0.90188577233528688, -0.69844971117515353, 0.14583567590324595, -0.5544445310046473, 0.1976534820339324, -0.18710828510427244, 0.0076800871037496377, -0.32808050503226982, -0.17511899827005836, -0.38519889843539723, -0.26116553014987143, -0.61792590829173255, -1.4260964500310052, -2.8480835086962002, -2.9656385065341997, -3.1259631743419583, -2.2776462897026373, -1.3820969331049018, -2.0505291279591713, -2.4084298023013879, -1.4996172161865962, 0.12372650763830863, -1.1981932989988076, -0.64588897407998824, -0.33546767337818667, -0.36301254306387043, -0.26196208085033179, -0.17675902360982099, 0.0055639281302357606, -0.034749316729180774, -0.44871907432473696, -0.67215259521100923, -0.46007833291523831, -0.67254330182605182, 0.11741827111366224, -0.409871486550618, -0.32892265898101625, -0.13145556961021479, -0.028899376452251727, -0.092298612924564649, -0.16672095020503341, -0.17646388464205828, -0.35131617290772521, -0.19150029104902661, -1.2217002325587201, -0.7866727441045076, -1.9807415717551959, -1.978633957921319, 0.069560471269209931], "bottom": {"real": [4103.3252596935745, 31959.928439656338, 10854.934870050551, 5174.7646941682715, 2670.3793024702013, 1512.8812431609856, 751.72119813508266, 487.34157279751093, 286.27976884850017, 202.21445228809756, 139.363320073941, 96.326676625874271, 67.416513392704019, 55.036039361563731, 42.617455049491909, 37.327841235406673, 35.198800209060273, 37.327841235406588, 42.617455049491802, 55.036039361563766, 67.416513392704019, 96.326676625874285, 139.36332007394108, 202.21445228809804, 286.27976884850017, 487.34157279751093, 751.72119813508289, 1512.8812431609856, 2670.3793024702018, 5174.7646941682751, 10854.934870050551, 31959.928439656363, 12454.694619943468, 7821.5833902765553, 5473.1790170642225, 2925.2286142376206, 1403.2127508507554, 917.05530556073552, 556.73350878905819, 335.58154911349368, 222.7562369115075, 161.71079893305554, 119.4497628246793, 75.609007514321249, 55.496087080936569, 43.998829489125107, 34.725029965122339, 29.983374804996487, 29.187336608781969, 30.714909872552553, 33.135728528562289, 38.780040560556557, 50.11926248444739, 62.426609296740132, 93.916765363567279, 123.96413175241418, 177.16967383039952, 250.50030243800805, 399.94920918463373, 596.1485322845399, 914.24633406931139, 1871.6210271277439, 4518.4223121248042, 13565.815861293135, 16084.742683461694, 10028.519769850123, 2736.2851033168113, 1377.4551350842332, 614.08174831750455, 382.39730464420114, 237.0105878631189, 156.24359018004319, 129.95938769710136, 95.53783206710068, 72.004092864891931, 47.804301653843083, 38.41781199466849, 32.452048622414502, 26.753427300507923, 23.772936248165699, 23.138404805980134, 23.598476471031617, 24.755859033283485, 28.713323989162731, 33.395537201677122, 40.850586549891439, 58.649881806718739, 74.872968711973769, 93.465129226367807, 123.19419955144703, 174.75706127058839, 262.71291650117263, 321.82068054258934, 657.05253635266399, 2163.5932265202309, 10212.960963472207, 3792.0213246064613, 2759.3366542985627, 1627.1011647050395, 788.44977202016776, 362.8509317865861, 253.90720770691448, 163.04342130809295, 117.95146004773997, 90.766106703902594, 66.207745096840526, 48.204553381452804, 35.429206551568903, 28.049881805648454, 23.25027473117818, 20.778936642061399, 19.004228801577, 17.585642163629327, 17.698181326434501, 18.806836162280465, 20.329571180523736, 23.456998427374465, 27.472702254518477, 37.193120035742723, 49.117252584083957, 59.574829012615233, 73.59994664128709, 112.97176733843995, 181.91972084309376, 284.0343016488693, 486.29648203694052, 857.05287855361007, 2037.977143592303, 2057.7285052573056, 2152.5952706253152, 1395.1090523951752, 736.25297680000074, 343.98700964912916, 189.68478304615005, 127.37774106216496, 91.12789293157843, 73.667255133763959, 55.964360327653644, 39.482567042532949, 28.14219415335706, 21.278934963706885, 18.193385040510105, 16.473354788100497, 15.086583853495943, 14.403945056404867, 14.533202056236952, 15.306988390608382, 16.092687824041843, 18.097466979870337, 20.289280537832838, 26.201109009342694, 34.023571220637564, 41.620492531599325, 50.685682074964014, 82.560701981631325, 127.19888958323958, 237.89761616945128, 410.06312322518994, 1062.2303232610248, 1612.0404058137353, 2295.1409914972487, 1787.3905923922546, 1192.2295048012345, 614.24882525880628, 260.82616895243024, 126.23242010647614, 84.151076288810984, 67.709414992782712, 60.122571559472298, 42.830591238304876, 28.733103940874788, 20.365121706656215, 16.211112474155353, 14.072758594539286, 13.483685068827034, 12.859628868618824, 11.868475605254234, 11.903201306554562, 12.816996745648828, 13.065794209061782, 14.312459824747068, 16.296926608708432, 20.657711991677495, 27.653390070235432, 33.593110413967857, 40.672720076575544, 55.856624618502167, 103.16047843117397, 179.23484372919035, 453.7513605151255, 902.26285048256875, 1683.7179352249004, 1784.083505146898, 1577.4265763170067, 936.66309122894188, 441.20892337587179, 176.43359667751182, 98.093971741535682, 65.995944695036641, 53.240295707495449, 45.85166507919449, 32.407485359783081, 22.496202298890402, 16.965613714417799, 13.731573445856062, 12.28236966845588, 11.747735381447885, 11.213125876643861, 10.807806034266576, 10.840341477375139, 11.066245600125107, 11.119452781179984, 12.424913044930788, 14.610027556462221, 16.887227742677396, 22.29462391228396, 27.978157381323118, 31.991250392971789, 44.052658881876532, 76.109568327798371, 159.13944268405785, 318.39207128278571, 686.00323178071869, 1336.6568589814267, 1043.0649603599104, 984.78746182807288, 618.0395600950327, 289.32426118556657, 132.98214831862998, 71.520048430881175, 52.57629039600819, 41.525598741467476, 33.633912722813989, 27.031255662449681, 19.489513580793098, 14.812681614273632, 12.21137274400836, 10.893625186679536, 10.482989068673637, 10.105487112246305, 9.7116899243817354, 9.9488069804828818, 10.161347795217756, 10.513274350469635, 11.294150924355744, 12.914730156139361, 14.478861048855546, 19.021661277112585, 23.907610167423496, 27.23573455134931, 38.742976413983023, 62.869223125902629, 111.92503010834605, 213.21062569137553, 433.61330953226366, 726.70269845820769, 562.21861410525219, 539.290746631297, 362.9446461846826, 211.46669660189423, 107.79772661917396, 60.676668375567573, 41.743276533116536, 34.42369696468284, 31.26708433258414, 25.313030406949355, 18.452791878453507, 13.956644256748325, 11.043046695375654, 10.111101652499672, 9.4550360444473061, 9.2429593469396529, 8.9521911222399257, 9.2321124164010211, 9.1908041669169815, 9.5662827353227868, 10.506864865879585, 11.825879962774797, 13.52813582962821, 15.999059082232355, 19.794027285196304, 22.478845287715099, 32.163272384867753, 47.951984523863096, 81.309242866655126, 150.93744536633105, 263.84630525991662, 439.27951033199258, 309.78719189559973, 306.63257299287005, 244.19689848939953, 151.98869039704036, 91.330482004276163, 57.352753322013349, 38.709160706067429, 33.087086449001383, 29.826655436967027, 23.987725148031473, 16.89184234468231, 13.041947079601194, 10.535809562752126, 9.5359471621683909, 8.9374483496855426, 8.5672643122912326, 8.4572735895659434, 8.4602804400971099, 8.5543457526330293, 9.3823763336699937, 10.377230417708629, 11.799673812944503, 12.361176855966248, 14.786798351390814, 16.739331260686697, 20.590148031359199, 25.753571174908508, 38.382893067866803, 63.23013835373618, 105.62437218489313, 175.68359833526657, 256.05708017959813, 224.80770864957879, 228.96753655549054, 172.54966320095522, 116.26546821946491, 80.46990226978717, 53.844334876610212, 37.483534347728245, 31.075867215997253, 26.284110672635684, 20.645029038002825, 15.025930043703783, 11.738276392873866, 10.201438772469425, 8.8203445227279982, 8.4945509856995365, 8.1968728409344909, 8.1790777304419588, 7.908377156922052, 8.6785477295074038, 9.6473715156890378, 10.339435934253908, 10.728035799158873, 11.983620383388951, 13.687783504221503, 16.433795900162693, 18.309125668572698, 22.485075799802843, 31.764684376383052, 49.270779583367755, 77.729851956279916, 123.50059845139852, 179.77043479461938, 159.57955623939222, 154.53329869380329, 127.96891349444883, 91.96783661678981, 66.921744646417011, 48.818287955893446, 36.591061653526779, 27.834277069623926, 23.041902152181589, 18.358713894245302, 13.567338391039883, 11.281789781943191, 9.6038295455647198, 8.7333277563772516, 8.338123667351045, 7.8992088061869676, 7.7104322426775909, 7.9983869985641034, 8.5436438490902269, 9.4432158844800043, 9.7870344410918424, 10.423788563863184, 11.253535869282553, 13.327727562718719, 15.178485067808285, 17.337135682195893, 21.668177060872456, 29.324826866357235, 41.492753218636352, 60.042185621507166, 90.318134916215342, 130.8805255687621, 104.24612656823803, 108.8028525877362, 89.555745560157249, 69.785669575239666, 56.746590174428, 44.171218069814536, 32.39838941697333, 25.182252759236459, 21.610810960419155, 16.972539478480535, 13.238333358456819, 10.614964653675054, 9.3806927946307859, 8.7492814832421075, 8.135298996501481, 7.634398163782139, 7.4852869889479292, 7.8316993609624435, 8.3853957415274643, 9.2315742305614634, 9.8389441629514209, 10.386606043801919, 11.354519695989614, 13.10793814373473, 15.240615596988986, 17.58979203150065, 21.461767190818147, 26.661531554562984, 36.123337028978582, 50.320731869274383, 69.065609719997795, 87.442260857354199, 76.677643276575949, 72.689147636714068, 65.50785565022079, 58.297658406357961, 49.558598741148941, 39.192968104211104, 29.954333787314212, 23.9458863540046, 19.99476230299754, 16.735792774046942, 12.901585018586687, 10.289994503175569, 9.3977765822679924, 8.6704196287803228, 7.8828328381527575, 7.5341478839019471, 7.4312929200041102, 7.7985159766257679, 8.1869060912414078, 9.142118635191288, 9.830770779287306, 10.340589147553608, 11.281171263863113, 12.984935438318947, 15.107976469419242, 18.19770629294057, 20.668346478928893, 25.761496132514932, 32.251424266134499, 39.95295492008993, 51.369438078625848, 65.569299562662465, 55.468849468729523, 55.86542097352833, 55.101138782973663, 50.531848368674723, 43.701470536966781, 35.866381440857431, 28.439396618258566, 22.42863349391925, 18.945030358082761, 15.596977301337661, 12.206893729284205, 10.050508612628137, 9.5473939482322869, 8.6463276280830179, 7.910774588392556, 7.2755514089661562, 7.5482842032534565, 7.5443879419641391, 7.9636187803325598, 8.9922015447577355, 9.6351997849989068, 10.0402383165895, 11.706284711344862, 13.336194440398188, 15.639893484781382, 17.791763978880017, 20.83131115781941, 25.6818621728188, 31.387128642704546, 37.143166049555219, 44.038766386780296, 52.904506937405849, 48.059389050535145, 50.072432061388255, 49.115010315515249, 44.160423468831148, 38.440953181308423, 32.35840674752788, 26.251111011761232, 21.081922570464979, 17.515101530242855, 14.10261621013594, 11.438986216849498, 10.422223192105227, 9.76207732514108, 8.7746319169344158, 7.5939451837729885, 7.2605949806802883, 7.4766919496025244, 7.419064545103371, 8.0187357229163059, 8.9266344512172839, 9.6975643711848107, 10.35689464395745, 11.451859179394017, 13.10319606057651, 15.460942026724263, 18.825021564083144, 22.773162722002358, 26.906890973713775, 31.803276985208164, 37.82902190094245, 42.388788349798304, 44.620105679799558, 48.859277780953818, 46.136110292205181, 41.908361785717766, 39.521022744549988, 35.052294933716347, 29.181343166303421, 23.802472557875006, 19.955746539759069, 16.22743816874862, 13.086681034223906, 11.226909204888067, 10.616041272149978, 9.8385492842648201, 8.6563005846195669, 7.8952678290472065, 7.2762149925656852, 7.3094046208482961, 7.276214992565686, 7.8952678290472083, 8.656300584619574, 9.8385492842648219, 10.616041272149991, 11.226909204888063, 13.086681034223904, 16.22743816874862, 19.955746539759044, 23.802472557874989, 29.181343166303414, 35.052294933716361, 39.521022744549988, 41.908361785717766, 46.136110292205167, 48.059389050535053, 44.620105679799494, 42.388788349798226, 37.82902190094255, 31.803276985208186, 26.906890973713825, 22.773162722002368, 18.825021564083173, 15.460942026724263, 13.103196060576508, 11.451859179394024, 10.356894643957441, 9.6975643711848196, 8.9266344512172751, 8.0187357229163005, 7.4190645451033674, 7.4766919496025226, 7.2605949806802919, 7.5939451837729957, 8.7746319169344176, 9.7620773251410817, 10.42222319210523, 11.438986216849505, 14.102616210135931, 17.515101530242841, 21.081922570464972, 26.251111011761218, 32.358406747527845, 38.44095318130838, 44.160423468831063, 49.115010315515164, 50.072432061388007, 55.468849468729232, 52.90450693740565, 44.038766386780239, 37.143166049555234, 31.387128642704567, 25.681862172818796, 20.831311157819414, 17.79176397888002, 15.639893484781378, 13.336194440398192, 11.706284711344864, 10.040238316589498, 9.6351997849989122, 8.9922015447577301, 7.9636187803325527, 7.5443879419641293, 7.5482842032534556, 7.2755514089661553, 7.9107745883925578, 8.6463276280830215, 9.5473939482322869, 10.050508612628141, 12.206893729284213, 15.596977301337661, 18.945030358082761, 22.428633493919239, 28.439396618258566, 35.866381440857388, 43.70147053696676, 50.531848368674645, 55.101138782973628, 55.865420973528131, 76.677643276575822, 65.569299562662337, 51.369438078625784, 39.952954920090001, 32.251424266134514, 25.761496132514949, 20.668346478928903, 18.19770629294057, 15.107976469419244, 12.984935438318949, 11.28117126386311, 10.340589147553612, 9.8307707792872954, 9.1421186351912915, 8.1869060912414096, 7.7985159766257599, 7.4312929200041067, 7.5341478839019365, 7.882832838152761, 8.6704196287803175, 9.3977765822679942, 10.289994503175565, 12.901585018586699, 16.735792774046928, 19.99476230299755, 23.945886354004585, 29.954333787314209, 39.19296810421109, 49.55859874114887, 58.297658406357826, 65.507855650220662, 72.689147636713827, 104.24612656823788, 87.442260857354213, 69.065609719997752, 50.320731869274368, 36.123337028978554, 26.661531554563005, 21.461767190818144, 17.589792031500657, 15.24061559698899, 13.107938143734735, 11.354519695989618, 10.386606043801917, 9.8389441629514156, 9.2315742305614528, 8.3853957415274607, 7.8316993609624372, 7.4852869889479301, 7.6343981637821372, 8.1352989965014757, 8.7492814832421111, 9.3806927946307876, 10.614964653675061, 13.238333358456819, 16.972539478480542, 21.610810960419155, 25.182252759236462, 32.39838941697333, 44.171218069814465, 56.746590174427972, 69.785669575239609, 89.555745560157177, 108.80285258773613, 159.57955623939191, 130.8805255687619, 90.318134916215342, 60.042185621507201, 41.492753218636388, 29.32482686635726, 21.668177060872456, 17.3371356821959, 15.178485067808294, 13.327727562718726, 11.253535869282553, 10.423788563863175, 9.7870344410918424, 9.4432158844800025, 8.5436438490902233, 7.9983869985640963, 7.7104322426775891, 7.8992088061869596, 8.338123667351045, 8.7333277563772533, 9.6038295455647145, 11.281789781943189, 13.567338391039879, 18.358713894245295, 23.041902152181613, 27.834277069623926, 36.591061653526772, 48.818287955893382, 66.921744646416983, 91.967836616789555, 127.96891349444861, 154.53329869380323, 224.80770864957842, 179.77043479461912, 123.50059845139837, 77.729851956279958, 49.27077958336772, 31.764684376383045, 22.485075799802868, 18.309125668572733, 16.433795900162703, 13.6877835042215, 11.983620383388955, 10.72803579915886, 10.339435934253904, 9.6473715156890254, 8.6785477295073967, 7.9083771569220449, 8.1790777304419553, 8.1968728409344909, 8.4945509856995347, 8.8203445227279857, 10.201438772469423, 11.738276392873869, 15.02593004370379, 20.645029038002832, 26.284110672635681, 31.075867215997253, 37.483534347728245, 53.844334876610127, 80.46990226978717, 116.26546821946468, 172.54966320095502, 228.96753655548974, 309.78719189559854, 256.05708017959756, 175.68359833526623, 105.62437218489312, 63.230138353736059, 38.382893067866796, 25.753571174908501, 20.590148031359234, 16.739331260686704, 14.786798351390802, 12.361176855966249, 11.799673812944498, 10.377230417708628, 9.3823763336699955, 8.5543457526330204, 8.4602804400970992, 8.4572735895659417, 8.567264312291222, 8.9374483496855408, 9.5359471621683873, 10.535809562752121, 13.041947079601202, 16.891842344682331, 23.987725148031487, 29.826655436966995, 33.087086449001376, 38.709160706067401, 57.35275332201325, 91.33048200427605, 151.98869039703999, 244.19689848939879, 306.63257299286875, 562.21861410525219, 439.27951033199281, 263.84630525991662, 150.93744536633125, 81.309242866655154, 47.951984523863167, 32.163272384867753, 22.478845287715121, 19.794027285196304, 15.999059082232373, 13.528135829628219, 11.82587996277479, 10.50686486587958, 9.5662827353227868, 9.190804166916978, 9.2321124164010211, 8.9521911222399257, 9.2429593469396458, 9.4550360444473043, 10.111101652499666, 11.043046695375656, 13.956644256748326, 18.452791878453535, 25.313030406949409, 31.26708433258414, 34.423696964682833, 41.743276533116529, 60.676668375567509, 107.79772661917396, 211.46669660189391, 362.94464618468271, 539.29074663129688, 1043.064960359907, 726.70269845820621, 433.61330953226252, 213.21062569137561, 111.92503010834588, 62.869223125902685, 38.742976413983001, 27.235734551349324, 23.907610167423499, 19.021661277112635, 14.478861048855546, 12.91473015613936, 11.29415092435573, 10.513274350469626, 10.161347795217747, 9.9488069804828747, 9.7116899243817407, 10.105487112246305, 10.48298906867363, 10.893625186679529, 12.211372744008356, 14.812681614273641, 19.489513580793123, 27.031255662449723, 33.633912722813953, 41.52559874146754, 52.576290396008147, 71.520048430881019, 132.98214831862995, 289.32426118556515, 618.03956009503077, 984.7874618280689, 1784.0835051468939, 1336.6568589814267, 686.00323178071801, 318.39207128278593, 159.1394426840578, 76.109568327798428, 44.05265888187656, 31.991250392971853, 27.978157381323108, 22.294623912284028, 16.8872277426774, 14.610027556462216, 12.424913044930783, 11.119452781179971, 11.066245600125109, 10.840341477375128, 10.807806034266576, 11.213125876643852, 11.747735381447885, 12.282369668455885, 13.731573445856061, 16.965613714417831, 22.496202298890438, 32.407485359783124, 45.85166507919449, 53.24029570749542, 65.99594469503667, 98.093971741535469, 176.43359667751176, 441.208923375871, 936.66309122894131, 1577.4265763170022, 2295.1409914972464, 1683.7179352249, 902.26285048256875, 453.75136051512629, 179.23484372919026, 103.16047843117398, 55.856624618502074, 40.67272007657553, 33.59311041396785, 27.653390070235471, 20.65771199167747, 16.296926608708404, 14.312459824747059, 13.065794209061782, 12.816996745648842, 11.903201306554557, 11.868475605254236, 12.859628868618808, 13.483685068827036, 14.072758594539282, 16.21111247415536, 20.365121706656261, 28.733103940874788, 42.830591238304876, 60.122571559472277, 67.709414992782641, 84.151076288810941, 126.23242010647601, 260.82616895243001, 614.24882525880446, 1192.2295048012338, 1787.3905923922525, 2057.7285052573061, 1612.0404058137367, 1062.2303232610243, 410.06312322519068, 237.89761616945111, 127.19888958323968, 82.560701981631325, 50.685682074964042, 41.620492531599325, 34.023571220637599, 26.201109009342684, 20.289280537832823, 18.09746697987034, 16.092687824041846, 15.306988390608383, 14.533202056236956, 14.40394505640487, 15.086583853495929, 16.47335478810048, 18.193385040510101, 21.278934963706888, 28.142194153357082, 39.482567042533006, 55.964360327653644, 73.667255133763959, 91.127892931578486, 127.37774106216477, 189.68478304614982, 343.98700964912905, 736.25297679999983, 1395.1090523951759, 2152.5952706253147, 3792.0213246064582, 2037.977143592301, 857.05287855360893, 486.29648203694126, 284.03430164886925, 181.91972084309373, 112.97176733844, 73.599946641287119, 59.574829012615204, 49.117252584084042, 37.193120035742723, 27.472702254518456, 23.456998427374469, 20.329571180523697, 18.806836162280476, 17.698181326434526, 17.585642163629327, 19.004228801577025, 20.77893664206141, 23.250274731178163, 28.04988180564844, 35.429206551568925, 48.204553381452833, 66.207745096840512, 90.766106703902594, 117.95146004774013, 163.04342130809306, 253.90720770691391, 362.85093178658599, 788.44977202016594, 1627.1011647050398, 2759.3366542985605, 16084.742683461691, 10212.960963472211, 2163.5932265202296, 657.05253635266433, 321.82068054258923, 262.71291650117286, 174.75706127058845, 123.19419955144714, 93.465129226367836, 74.87296871197394, 58.649881806718732, 40.850586549891496, 33.395537201677108, 28.713323989162756, 24.755859033283489, 23.59847647103166, 23.138404805980127, 23.77293624816566, 26.753427300507926, 32.452048622414509, 38.417811994668497, 47.804301653843162, 72.004092864892002, 95.537832067100879, 129.95938769710136, 156.24359018004333, 237.01058786311899, 382.39730464420052, 614.08174831750478, 1377.4551350842296, 2736.2851033168104, 10028.51976985012, 12454.694619943462, 13565.815861293133, 4518.4223121248006, 1871.6210271277425, 914.24633406931184, 596.14853228454001, 399.94920918463339, 250.50030243800833, 177.16967383039946, 123.96413175241405, 93.91676536356745, 62.426609296740118, 50.119262484447404, 38.780040560556571, 33.135728528562332, 30.714909872552628, 29.187336608781973, 29.983374804996448, 34.725029965122346, 43.998829489125086, 55.496087080936618, 75.609007514321277, 119.44976282467937, 161.7107989330556, 222.75623691150756, 335.58154911349339, 556.73350878905831, 917.05530556073529, 1403.2127508507556, 2925.2286142376206, 5473.1790170642225, 7821.5833902765453], "imag": [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.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, 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.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, 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.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, 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.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, 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.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, 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.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, 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.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, 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.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, 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.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, 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.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, 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.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, 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.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, 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.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, 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.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, 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.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, 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.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, 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]}, "imag": [0.0, 1.2364045139795619, -1.417097645517349, -0.56399113050110405, 0.44612204752934542, -0.22857396866743723, -0.12233724123958876, -0.22175063370253431, -0.081847654478992143, -0.082144528420219798, -0.016319194688300422, -0.22782269816808789, -0.31553723757062957, -0.34627737582788948, 1.2289873494343531, 0.23714731979244019, 0.0, -0.23714731979246589, -1.2289873494343397, 0.34627737582788415, 0.31553723757063035, 0.2278226981680877, 0.01631919468830003, 0.082144528420217924, 0.081847654478992143, 0.22175063370252604, 0.12233724123959235, 0.22857396866743548, -0.4461220475293452, 0.56399113050110417, 1.4170976455173483, -1.2364045139795607, 1.3606412475160685, 1.4411916754234004, -0.33639737707180672, -0.40059289889731398, 0.077869450453742065, 0.11933000679564014, -0.37020072416606636, -0.12600631152419078, -0.29291723130603109, -0.050683391882318747, -0.2123566898458312, -0.16517843825664788, -0.37438920939802389, 0.24863698196016526, 0.3956337373323095, 0.63308466384569972, -0.42643957249522613, -0.28749903579454716, -0.42301568032975828, 0.27971623762695519, 0.37808744252168813, 0.15296582393741001, 0.10558339349178479, 0.088135922159038316, 0.16705843369252343, 0.44192642538865684, 0.29915225181421068, -0.047649837051313024, -0.91046045526812369, 2.0668504460046964, 1.0236217631956717, 0.095775027331123308, 0.74327388531916394, -0.034562131954570079, 0.86361123753821734, 0.14688086473050152, -0.48040960369964397, 0.72553155869356101, -0.87865322612555963, -0.4386512882244577, -0.48573187070285989, -0.32017932907631874, -0.2830749986604581, -0.26990648117356825, 0.02650526715020339, 0.070485969368273949, 0.54370981678608021, -0.067938463814195812, 0.03776680164210118, -0.5672727000472354, 0.70317235961628322, -0.021133356436660328, 0.38778419454697149, -0.021237638325898506, 0.22272564345822293, -0.028529610958430065, 0.38389116569218468, 0.54015192300945081, 0.60890484535134959, -0.58851980199844323, -0.44257995715790832, -0.31054780878465871, 0.29452233058397137, 1.4203730522981519, 0.55042973333868539, 1.0635980503754177, -0.33223282315731317, 0.34444399750770754, 1.4812987845914649, 0.28203486996779931, -0.50640814880924923, -0.63152717265524028, -0.629560147993244, -0.38143909917016799, -0.26024004494781861, -0.19111004712688462, -0.0074049384249937926, 0.048145781851611912, 0.1775395908501845, -0.010766872600667563, -0.30557543109041663, -0.12790446781789691, 0.26497067484017217, 0.49718432792560446, 0.10847923107858634, 0.18362798444374009, 0.075793328725680426, 0.060915837919074359, 0.19352569039908019, 0.72484131059467238, 0.44769863619371908, 0.65727781823869813, -2.7705947112358387, -1.8545676439466314, 1.2534804319442749, -0.33201271766592177, -0.88179245186152566, -0.49191197464707653, 0.25061306335904526, 0.36434278784189494, 1.1059306596340364, 0.5161851914994362, -0.56259342729123341, -0.79818525223670012, -0.50614275317411506, -0.33450192958610769, -0.24220392956380443, -0.29363217368931438, -0.008975674876931768, 0.015702042401798396, 0.0043287613096781611, 0.11769772351691517, 0.14847974776257877, -0.070404205425901215, 0.15992872157624444, 0.12352253662711207, 0.22950814490677918, 0.17507285276321555, 0.13747467644410705, -0.011397583876153142, 0.1103654239578318, 0.24404333943616102, 1.1434123865171273, -0.60566186502851971, -1.3365493166122577, -1.1338250057068979, -1.8155993788135394, -1.0591766157447149, -0.69010247253016843, -0.46612626705839738, -0.20353239335470796, 0.51663850122650623, 0.2659701357580968, -0.10657803670351902, -0.69730138646619577, -0.60106744735123385, -0.33542800506255299, -0.30564289179799509, -0.26672832014897818, -0.19552146385155383, -0.070818253229817343, 0.24716165183995586, 0.24871001073085031, 0.087906272749659523, -0.066392764898707615, 0.11463822183417864, -0.097387114548935505, 0.203187369929616, 0.14292038700683402, 0.20736891492564988, 0.013685307258532538, -0.024371827339033106, -0.07233585420108031, 0.49291782026044645, 0.048917424863979306, 0.2263553910474094, 0.10839909954530379, -1.1957108711898896, -1.074771579950879, -1.1175823884839045, -0.23901621577757862, -0.12877260884038383, 0.23623861798820722, 0.17111767858219226, 0.46208690546761177, -0.23679486634226876, -0.53178862418379869, -0.34021620386249335, -0.23658495591681358, -0.22275756609764855, -0.20572232603908905, -0.14494733127712761, 0.042569660785953992, 0.077733070765218709, 0.20558191361174552, 0.031719635617051253, -0.031869312918226284, 0.0092446671691655703, 0.056907964871031128, 0.0068114015565279478, 0.20608602740074444, 0.023033890597355222, 0.064944626021130644, -0.089711600875347838, 0.051877409795188095, -0.22207073062343796, 0.24248276916859771, 0.82932242402320455, -0.0013771249391571728, -0.059139017637367147, -0.22067925957890699, -0.040068334939789486, 0.30677005181582889, 0.34490255487274107, 0.22221882441368751, 0.30818729583490434, 0.041656273199714877, 0.04389672863559383, -0.30032839778423015, -0.24246246508902861, -0.17809969240648099, -0.14126159805998126, -0.15553553242798068, -0.11510723629505018, 0.024565620333015844, 0.099324973861333238, 0.11314958231531824, 0.10920785431914558, -0.0027478677647314949, -0.002197448124614016, -0.069940656171551499, 0.14656177726216579, 0.078770189361086429, 0.10241250352514093, -0.021646587213105684, 0.019211160710794505, -0.26281055993233693, -0.055146819140509458, 0.35375643597531126, 0.22411418130009836, 0.3875457037899096, 0.25423051056794166, 0.30581901500051717, 0.085911462662090085, 0.39107302489471046, 0.24699055160378858, 0.29387297238508514, 0.15373347718831995, -0.002984582508486469, -0.017260207971634491, 0.072827255227658205, -0.062089135258224848, -0.11929552297831249, -0.14454547803177953, -0.095268264507681985, -0.10089614648569632, 0.048761457544342565, 0.09609679137720413, 0.10529567915508571, 0.012037966893712556, 0.076343100588013288, -0.20546035926376272, 0.13459193297647368, 0.025732944443593878, 0.15693288111736364, 0.043761647973181578, 0.083479299629684353, -0.15251693996845875, -0.10657849804550705, 0.038641816351084518, -0.10231188547257405, 0.21957600785318707, 0.264774413728534, 0.35686545376814865, 0.29428485506006929, 0.49934135456989248, 0.18285689914378289, 0.23675610338446562, 0.10353827744151976, 0.063107949091445251, 0.03846587209017991, 0.13661717625997899, 0.098122755354854277, -0.0039906200934582137, -0.09009439550122221, -0.16647262366552176, -0.19237746196753996, 0.026647194061990561, 0.048509383863749068, 0.1654716680991411, -0.035914795239386038, 0.099273739290017232, -0.11264804489487676, 0.14792025966567318, -0.093791526140286519, 0.10021979561886898, 0.0080449729031339574, 0.25399382193861558, -0.10951630791791984, -0.033548122233328939, -0.024275040060575473, -0.15565555640319179, -0.035231426543991154, 0.063485173587351437, 0.22814734409189322, 0.10684932807789806, 0.2355554633425988, 0.10407564589066262, 0.015525256999673128, -0.011913601076877599, -0.0039295920043740662, 0.044701593559494178, 0.16547295203389104, 0.15907957720488838, 0.074664630781852093, -0.04243906497357175, -0.11246394245376416, -0.16972427151540079, -0.21530290856092721, -0.15195750501651711, 0.40553391670472716, -0.05507255324487554, 0.18488826926783164, -0.03502892748503212, 0.37001387119519319, -0.15325722566754377, 0.27168929694820759, -0.059701216280397838, 0.48380889084850937, -0.13017614472815323, 0.047673421329954523, 0.071305584258896423, -0.15733503034508964, -0.079593566039511662, -0.075485820780456944, 0.06620598245919887, -0.0012785498169557718, 0.063827392702187832, -0.0024400785561267094, 0.050942947866382475, -0.16777938781510365, -0.092876049496631446, -0.010378011540593757, 0.1594331602275639, 0.19523869399925237, 0.18464942262011227, 0.063285121982437173, -0.077221658551183223, -0.1491589460269398, -0.17912928670535297, -0.11490318286815507, -0.11189726101521234, -0.20487634390276235, 0.76498375921014561, -0.23800865420158882, 0.74083633586796371, -0.083846748018997191, 0.46372256496136105, -0.16834959597660981, 0.80860396068755125, -0.25555617026146216, 0.19463913189037535, 0.30097794980879877, -0.16302064990391507, -0.10690976611351247, -0.13497815095121923, -0.049772201284698683, -0.079451894223961053, 0.040407604161455342, -0.09194915079908203, -0.14731166465811507, -0.26499922119954511, -0.15560186997026057, -0.069496867327866862, 0.16530147427910571, 0.22324548858793775, 0.26718136730575287, 0.19166419512490171, 0.060936923017668537, -0.088626234734120041, -0.14658150061325853, -0.15988330961851069, -0.18630425886720847, 0.20226767939927157, -0.086142375874942501, -0.77766311308853053, 1.4090153420038987, -0.3038886842868152, 1.2888777036518135, -0.074470758177722834, 1.2482190395029773, -0.80123249840125998, 0.47055407026248136, 0.75577199845745624, -0.11037652666672627, -0.054458369263067428, -0.19918107544886771, -0.10899116252888987, -0.15332031366957818, 0.043654486348545761, -0.022154991408309264, -0.15239448898889341, -0.19372066727324463, -0.023769000914279543, 0.24457812931884867, 0.51722906014629877, 0.4305115414461968, 0.4535547011943914, 0.3493581281435395, 0.21076698450898321, 0.063956239140020049, -0.043266091906771414, -0.12307402164456596, -0.17588597679362872, -0.057160335632577657, -0.0784239564694168, 0.14377922602722487, -0.28610637890062873, -1.3867297053543113, 2.7076021550256568, -0.12637740826622818, 2.0046873376560574, -1.442367549533677, 0.41516901914168741, 1.1637625900709285, 0.02187980097289477, 0.2119473473283329, -0.11885489129254229, -0.1159981397382039, -0.18899269201836941, -0.058557612447368006, -0.043992442353640485, -0.026879139952720663, -0.019298206516241499, 0.11425895652801879, -0.10204731321609413, 1.0976378910336273, 0.78083298172023552, 0.7892686156410853, 0.65585934200294294, 0.41963945036689065, 0.21495377802894691, 0.10907743849349204, -0.015003791740152183, -0.098108352324783196, -0.099983461914768382, -0.14074054993981988, -0.049222223079134708, -0.60225632344115432, 0.14822551318702831, -0.20779420774376042, -2.0348285284263787, 4.0251861194251459, -2.7420491756647705, 0.80731183784095106, 1.5256751899261984, -0.015777910213839702, 0.56481061463658855, 0.094745090670160736, 0.032305441115857418, -0.15496296066268442, -0.070898922964745509, -0.15185446167165811, -0.099013378837322308, -0.033839198092832617, 0.20170996830425536, 0.31395340400286426, 0.91804938453195506, 0.90837480132247328, 1.1212514777242175, 0.8111537128593137, 0.65461252772518352, 0.44812018281017851, 0.29338133862249183, 0.080942506543726575, -0.0048876135806632161, -0.042045437831147933, -0.048279129686226115, -0.13748504879992385, -0.22867414001479172, -0.65206021382919555, -1.4414816884582773, 0.34900156189272369, 1.2663064061664397, -4.4519069438082273, 2.3981175155339263, 2.0366543361516527, -0.11574419894478603, 0.9938253915317542, 0.40253059498542132, 0.29787521235777348, -0.048128801274628118, 0.001834095689180732, -0.063578064856638958, -0.14911097873279969, -0.17638384543546787, -0.15061392115741762, -0.13638564133647435, 0.3292785127452974, 0.45646012748955422, 0.0, -0.098380202448484569, 0.2889284460821786, 0.39981384774007012, 0.45036129401449043, 0.22152969012775114, 0.11073273247786891, 0.024117745722163984, -0.0050280129542534689, -0.087106960572679512, -0.083653448195472838, -0.51521426958714545, -0.86124262209127589, -0.78939851130304506, -0.74423225935393889, -1.1208061672534484, 0.0, 1.1208061672534437, 0.74423225935393811, 0.78939851130304262, 0.86124262209127656, 0.51521426958714389, 0.083653448195472491, 0.087106960572679332, 0.0050280129542534689, -0.02411774572216354, -0.11073273247786865, -0.22152969012775126, -0.45036129401449054, -0.39981384774006945, -0.28892844608217838, 0.098380202448484236, -0.90837480132241455, -0.45646012748952708, -0.32927851274525655, 0.13638564133649642, 0.15061392115742586, 0.17638384543547556, 0.14911097873280194, 0.063578064856639402, -0.0018340956891807838, 0.048128801274627743, -0.29787521235777292, -0.40253059498541977, -0.99382539153175098, 0.11574419894478773, -2.0366543361516536, -2.3981175155339201, 4.4519069438082379, -1.2663064061664346, -0.34900156189272086, 1.4414816884582851, 0.65206021382919577, 0.22867414001479336, 0.13748504879992438, 0.048279129686228148, 0.042045437831148495, 0.0048876135806649092, -0.08094250654372509, -0.29338133862248678, -0.44812018281017507, -0.6546125277251672, -0.81115371285928006, -1.1212514777241573, -1.0976378910335893, -0.91804938453192131, -0.31395340400284805, -0.20170996830424559, 0.033839198092839695, 0.09901337883732686, 0.1518544616716597, 0.070898922964745925, 0.15496296066268506, -0.032305441115858605, -0.09474509067015939, -0.56481061463658966, 0.01577791021384034, -1.5256751899262007, -0.80731183784094906, 2.7420491756647789, -4.0251861194251397, 2.0348285284263898, 0.20779420774376556, -0.14822551318702654, 0.60225632344115643, 0.049222223079135728, 0.14074054993982205, 0.099983461914770352, 0.098108352324783543, 0.015003791740153814, -0.10907743849349157, -0.21495377802894516, -0.41963945036688871, -0.65585934200294016, -0.78926861564106898, -0.78083298172020743, -0.24457812931883488, 0.10204731321609872, -0.11425895652800651, 0.019298206516249916, 0.026879139952725083, 0.04399244235364598, 0.058557612447370934, 0.18899269201837068, 0.11599813973820411, 0.11885489129254237, -0.21194734732833254, -0.021879800972893531, -1.1637625900709312, -0.4151690191416833, 1.4423675495336772, -2.0046873376560503, 0.12637740826623128, -2.7076021550256497, 1.3867297053543175, 0.28610637890063351, -0.14377922602722601, 0.078423956469422018, 0.057160335632579121, 0.1758859767936318, 0.12307402164456618, 0.043266091906772712, -0.063956239140019508, -0.21076698450897985, -0.34935812814353639, -0.45355470119438479, -0.43051154144618958, -0.51722906014628944, 0.15560186997025938, 0.02376900091427863, 0.1937206672732435, 0.15239448898889424, 0.022154991408310377, -0.043654486348542874, 0.15332031366958024, 0.10899116252889095, 0.19918107544886771, 0.054458369263066984, 0.11037652666672665, -0.75577199845745313, -0.47055407026248092, 0.80123249840126409, -1.2482190395029769, 0.074470758177730939, -1.2888777036518133, 0.30388868428682408, -1.4090153420038936, 0.77766311308853486, 0.086142375874943722, -0.20226767939927121, 0.18630425886721039, 0.15988330961851227, 0.14658150061325848, 0.088626234734120221, -0.060936923017667906, -0.19166419512490052, -0.26718136730575015, -0.22324548858793625, -0.16530147427910316, 0.069496867327866751, 0.16777938781510615, 0.26499922119954472, 0.14731166465811715, 0.091949150799082904, -0.040407604161453857, 0.07945189422396387, 0.049772201284700876, 0.13497815095122018, 0.10690976611351256, 0.16302064990391416, -0.30097794980879811, -0.19463913189037552, 0.25555617026146371, -0.80860396068754914, 0.16834959597661264, -0.46372256496135666, 0.083846748018996636, -0.7408363358679616, 0.23800865420159104, -0.76498375921014483, 0.20487634390276502, 0.11189726101521356, 0.11490318286815554, 0.17912928670535491, 0.14915894602693922, 0.077221658551183403, -0.063285121982436826, -0.18464942262010964, -0.19523869399925042, -0.15943316022756263, 0.01037801154059478, 0.09287604949663382, -0.015525256999667727, -0.050942947866376924, 0.0024400785561280833, -0.06382739270218761, 0.0012785498169549515, -0.066205982459197621, 0.075485820780458165, 0.079593566039511995, 0.1573350303450895, -0.071305584258897034, -0.047673421329955501, 0.13017614472815361, -0.48380889084851014, 0.05970121628039872, -0.27168929694820493, 0.1532572256675474, -0.37001387119519286, 0.035028927485033709, -0.18488826926782947, 0.055072553244877351, -0.40553391670472771, 0.15195750501651886, 0.21530290856092779, 0.16972427151540051, 0.11246394245376394, 0.042439064973571687, -0.07466463078185144, -0.159079577204887, -0.16547295203388937, -0.044701593559494109, 0.0039295920043746378, 0.011913601076878649, -0.18285689914377989, -0.10407564589066134, -0.23555546334259525, -0.10684932807789757, -0.22814734409189458, -0.063485173587349258, 0.035231426543992535, 0.15565555640319106, 0.02427504006057549, 0.033548122233326282, 0.10951630791791925, -0.25399382193861758, -0.0080449729031340841, -0.10021979561886678, 0.093791526140288961, -0.14792025966567243, 0.11264804489487593, -0.099273739290014568, 0.035914795239387988, -0.16547166809914049, -0.048509383863747611, -0.02664719406199113, 0.19237746196754099, 0.16647262366552154, 0.090094395501221572, 0.0039906200934596249, -0.098122755354853444, -0.1366171762599761, -0.038465872090180271, -0.063107949091446403, -0.10353827744152141, -0.2367561033844639, -0.39107302489471046, -0.4993413545698927, -0.29428485506006952, -0.35686545376814893, -0.26477441372853422, -0.21957600785318782, 0.10231188547257429, -0.038641816351083894, 0.10657849804550705, 0.15251693996845886, -0.083479299629685352, -0.043761647973181945, -0.1569328811173635, -0.025732944443590922, -0.13459193297646968, 0.2054603592637699, -0.076343100588013288, -0.012037966893705314, -0.10529567915508307, -0.096096791377201118, -0.048761457544342024, 0.10089614648569795, 0.095268264507682401, 0.14454547803178003, 0.11929552297831249, 0.062089135258225896, -0.072827255227657164, 0.017260207971635976, 0.0029845825084865137, -0.15373347718831978, -0.29387297238508514, -0.24699055160378858, -0.30677005181583211, -0.085911462662095636, -0.30581901500051922, -0.25423051056794305, -0.38754570378991321, -0.22411418130009808, -0.35375643597530843, 0.055146819140510416, 0.26281055993233621, -0.019211160710796572, 0.021646587213104713, -0.10241250352514171, -0.078770189361086179, -0.14656177726216213, 0.06994065617155748, 0.0021974481246246629, 0.002747867764730379, -0.10920785431913549, -0.11314958231531393, -0.099324973861329505, -0.024565620333014605, 0.11510723629505158, 0.15553553242798132, 0.1412615980599799, 0.1780996924064803, 0.24246246508902825, 0.30032839778422799, -0.043896728635589223, -0.041656273199716369, -0.30818729583490695, -0.22221882441369153, -0.34490255487274391, 0.23901621577757753, 0.040068334939789153, 0.22067925957890494, 0.059139017637366363, 0.0013771249391555669, -0.82932242402320322, -0.24248276916859551, 0.2220707306234446, -0.05187740979518813, 0.089711600875348782, -0.064944626021130755, -0.023033890597353883, -0.20608602740074317, -0.0068114015565181726, -0.056907964871020393, -0.0092446671691440163, 0.031869312918224861, -0.031719635617030659, -0.20558191361174011, -0.077733070765210868, -0.042569660785952056, 0.14494733127713064, 0.20572232603908944, 0.22275756609764749, 0.23658495591681294, 0.34021620386249518, 0.53178862418379935, 0.23679486634227159, -0.4620869054676115, -0.17111767858219507, -0.23623861798820922, 0.12877260884038208, 0.69010247253016699, 1.1175823884838996, 1.0747715799508781, 1.1957108711898863, -0.10839909954530788, -0.2263553910474054, -0.048917424863973949, -0.49291782026044056, 0.072335854201080588, 0.024371827339035017, -0.013685307258532536, -0.20736891492564691, -0.14292038700683141, -0.20318736992960118, 0.09738711454895084, -0.11463822183415182, 0.066392764898706338, -0.087906272749638886, -0.24871001073084317, -0.24716165183994784, 0.070818253229819925, 0.19552146385155544, 0.2667283201489779, 0.30564289179799059, 0.3354280050625516, 0.60106744735122974, 0.69730138646619622, 0.10657803670352221, -0.26597013575809814, -0.51663850122651156, 0.20353239335470413, 0.46612626705839527, 0.88179245186152555, 1.0591766157447142, 1.8155993788135401, 1.1338250057069015, 1.3365493166122591, 0.60566186502852537, -1.1434123865171271, -0.24404333943615408, -0.11036542395783162, 0.011397583876152599, -0.13747467644410641, -0.17507285276321236, -0.22950814490677501, -0.12352253662709391, -0.15992872157622667, 0.070404205425931329, -0.14847974776257952, -0.11769772351689584, -0.0043287613096706385, -0.01570204240179094, 0.0089756748769360926, 0.29363217368931571, 0.24220392956380496, 0.33450192958610414, 0.50614275317411517, 0.79818525223669812, 0.56259342729123207, -0.51618519149943443, -1.105930659634037, -0.36434278784189805, -0.25061306335904537, 0.49191197464707476, -0.55042973333868328, 0.33201271766592266, -1.2534804319442674, 1.8545676439466376, 2.7705947112358396, -0.65727781823869658, -0.44769863619371453, -0.72484131059467105, -0.19352569039907921, -0.06091583791907576, -0.075793328725683354, -0.18362798444373865, -0.10847923107858076, -0.4971843279255892, -0.26497067484015147, 0.12790446781792791, 0.30557543109041591, 0.010766872600696822, -0.17753959085018053, -0.04814578185160058, 0.007404938424997059, 0.19111004712688809, 0.26024004494781799, 0.38143909917016594, 0.62956014799324345, 0.63152717265524094, 0.50640814880924734, -0.28203486996779953, -1.481298784591466, -0.34444399750770943, 0.33223282315731145, -1.0635980503754157, -0.74327388531916416, -1.4203730522981521, -0.29452233058397176, 0.31054780878465887, 0.4425799571579111, 0.58851980199844711, -0.60890484535134703, -0.54015192300944392, -0.38389116569218451, 0.02852961095842791, -0.22272564345822352, 0.021237638325899852, -0.387784194546968, 0.021133356436687064, -0.70317235961626101, 0.56727270004732033, -0.037766801642101375, 0.06793846381428098, -0.54370981678606445, -0.070485969368251203, -0.02650526715020184, 0.26990648117357596, 0.2830749986604576, 0.32017932907632218, 0.48573187070286, 0.4386512882244713, 0.87865322612556163, -0.72553155869355623, 0.48040960369964236, -0.14688086473049994, -0.86361123753821778, 0.034562131954569586, -1.3606412475160699, -0.095775027331125598, -1.0236217631956728, -2.0668504460046977, 0.91046045526812469, 0.047649837051312177, -0.29915225181420874, -0.44192642538866073, -0.16705843369252318, -0.088135922159037081, -0.1055833934917848, -0.15296582393740679, -0.37808744252168625, -0.27971623762694292, 0.42301568032977793, 0.28749903579456393, 0.42643957249522774, -0.63308466384561635, -0.39563373733228846, -0.2486369819601503, 0.37438920939802361, 0.1651784382566546, 0.21235668984583117, 0.050683391882319691, 0.2929172313060312, 0.12600631152419559, 0.37020072416606892, -0.11933000679563836, -0.077869450453742661, 0.40059289889731342, 0.33639737707180556, -1.4411916754233998], "height": 32, "width": 32, "top": {"real": [6327.0074679827858, 12787.448651417644, -8580.1357782693794, -6564.4296251926053, 1064.8969915597925, -1614.7722808334524, -60.048119421842308, -221.12968025641604, -12.445754708845573, -62.940587713583341, 23.820578453457951, -28.525301748952867, 37.864280125154337, -85.844490405627994, 27.493814969643068, -48.151974443362732, 41.399660199307142, -48.151974443360345, 27.493814969642067, -85.844490405627866, 37.864280125154032, -28.525301748952689, 23.820578453458509, -62.940587713584037, -12.445754708845573, -221.12968025641445, -60.048119421842806, -1614.7722808334493, 1064.8969915597932, -6564.4296251926125, -8580.1357782693849, 12787.448651417659, -17213.595236981997, 544.07302669902936, -10829.417860945707, -5794.1219231083051, -1103.8692252742003, -1120.3666800727638, -106.61462896985108, -117.89522553300084, -39.308430893651213, -26.960578056534288, -11.025047422886351, -2.1850531713376355, -7.2952697383625882, -14.472211987615461, -14.23279965231924, 3.5205960317557246, -19.629747734378611, -14.131264529804582, -22.272265924680642, -17.401343902608428, -1.7416101263052008, 0.34733716754184635, -16.60063574625633, -32.47390190466588, -64.31481385096977, -84.034753639409303, -258.32278440436392, -714.30117659130417, 113.1165060355228, -2806.7151144576005, -10882.302955904926, -27817.100568112113, -27745.708494118069, -22841.420845008699, -8553.5264674688351, -4085.033989629072, -1748.9561003744159, -545.33543865452532, -146.45498278007594, -40.805440061891282, -50.060212982262158, -16.730489448484349, -23.62313915150434, 0.36714120063527833, -7.1882909197809326, 6.4142604093545659, -14.833291452397129, 3.4669422259569203, -16.161012153790594, -21.283130178011959, -13.244388638951026, -1.2754674400463286, 0.49184661171499777, -11.472717532816317, -17.530689402649369, -29.523444921912187, -36.983418680226812, -91.597351236026796, -144.17841735614732, -486.41083616652156, -239.1204206916959, 139.00893917602821, -7153.1577950265046, -18373.599790964956, -8415.9227315857388, -6467.5546779833858, -5469.6585676007244, -2789.7914675082047, -821.48267137489768, -514.71454200305448, -122.6780822655295, -35.554593402553344, -32.905184819607861, -16.875977506192179, -9.1243948190511883, -4.1802620318744168, 0.78316084097390803, -0.82473624462572925, -6.0277039354546789, -6.8502427898926159, -6.8858593350514123, -14.551844205848809, -8.4592989146599145, -1.9950695133570466, 1.5394495557011576, -9.232834653609892, -11.961754213185406, -20.558561534905806, -38.14482496917136, -57.160869905334089, -157.5554953403844, -411.20082432868492, -110.11930975746139, -463.64281724562954, -1210.9754315912523, -4810.1023052011815, -2624.9192342435695, -4516.897453633137, -3582.982491421491, -2119.7499173636902, -750.23472664477231, -159.86878938364373, -96.805728919101412, -16.935754226078267, -22.178078450833883, -9.0092227225989756, -5.4454852920506616, -2.5268882566736748, -2.6219523498948458, -2.0534180946008638, -6.4643064804236223, -8.7214065300148622, -7.0127031874072934, -7.7847619200438425, -0.78121801903708787, -0.11031060182209244, -3.4318959866990171, -4.568083040130742, -9.3160200641569482, -15.87900618307528, -23.382201868158507, -37.989404730637517, -121.95929165874175, -201.43809047465336, -567.30372690179445, -610.36312853782476, -1937.2376557226703, -2694.0942422163184, -3481.5355975420739, -3026.0617140239533, -2506.4916383888308, -1355.1576691715959, -468.0599091435185, -33.397814851582154, 18.545331481583979, -29.439943085485314, -11.922803368680741, -7.7174579848963036, -2.7888603302094261, -2.0545006330536419, -1.0224301618297007, -2.5290059501700397, -2.6199349314032494, -4.8828731457816774, -5.6140621268617785, -3.6146413255535528, -0.82967484502750599, -1.1631844631411599, -1.1736245693095499, -3.7427284368684024, -6.6178270656423424, -8.8039498431578131, -13.481606634721874, -26.682014936266803, -32.97802138197703, -190.87870662958537, -335.07671606134033, -876.95522185704988, -1470.8308615232113, -2413.1056871868645, -2329.4915082040015, -2151.9265781424592, -1438.5211303616525, -713.08152385953474, -130.56706965452, -28.862997769748436, 1.7115783105395304, -2.3079138134833856, -11.650001060370576, -2.1701895043697319, -1.7033561682904694, 0.11972955037883275, -0.5790790812653609, -0.45369004788794814, -4.0202584980239315, -2.2874964618085922, -4.0439693313887179, -2.7144116941037568, -0.78431497120559035, -0.63377862148075614, -0.83542887465582039, -2.5417481635934216, -3.4497798452119151, -5.2729359146939485, -9.3325337684514853, -2.3480777220919959, -30.998957295773433, -62.717085150656224, -255.55592612696097, -515.55403813953228, -1077.4118984564277, -1959.4321649356718, -996.17063256475433, -957.58296584245431, -646.48124546709357, -264.63237090275328, -80.518340163143705, 1.3577640380308329, -10.209813205700032, -1.6455702447745924, 0.041564105453412992, -2.1114336115237951, 0.094770419949782359, -0.59915948675603581, -0.042806075220647909, -1.4583889440112543, -1.0515624140257636, -2.6242610725724358, -1.9962698899057387, -2.6373580888952279, -0.39414295752688255, -0.80952098820947449, -0.80935504019781357, -1.8315981280862581, -2.3957781219887311, -3.7775973636187947, -1.2762438485839673, -5.8736187047076989, -1.7472058496177199, -39.26171578474986, -103.67045476207605, -221.97901463800724, -486.52939506954147, -770.86385201715837, -324.53401456188737, -340.76561269504333, -198.94197841299811, -116.98390967138687, -32.552002455687223, -2.8647426984892057, 3.4567160839115996, -2.3310052693731942, -0.31982529888503974, 1.0641170511547686, -1.1693860348016079, 0.40700212695667498, -1.0092937918537679, -0.034985154955161232, -1.1746986822405672, -2.2583319261560799, -2.3742700657768196, -2.0999344700147127, -1.3199204785521135, -0.00726121067659493, -0.21997349279604808, -1.6799449140427334, -2.573626149077699, -1.2749029797075579, -2.9722975102588807, 1.1149262389696764, -3.7825574143705132, -8.8112838568342262, -31.380656277665604, -80.815706494855448, -151.2920880811312, -231.73584987382, -71.719340760371239, -68.364029336894532, -82.304975309081328, -39.769136567332623, -12.693902195545155, 1.9842035662706039, -0.48894354077452629, 1.5673786316984977, -1.1528550937233366, -0.047905313676576855, 1.0650111541187497, -1.4670778837513785, 0.90154843827712783, -2.0067122081730173, -1.7180755446076856, -3.3483434682482898, -1.6317774897434336, -3.4708804264384949, -1.4694727348954268, -0.10257790692130256, -0.92889636381571783, -2.5451436559397584, -1.1303995452351283, -2.8871606625355204, -0.49805533537312113, -0.43871934228158149, 0.74909741969065036, 1.439791857975526, -13.026034555561825, -28.484337861014367, -36.895178406765908, -72.231190035838395, -26.809485534889244, -56.942733796520351, -36.280107429422031, -18.099079313675151, -3.2627913287121535, -0.27065475805048173, 1.1511525903295716, -0.1898870363801409, 0.97087220888025372, -1.1326412370424179, 0.19981301766363371, 2.3076802702931332, -2.5498407756566031, -0.55532623625253041, -4.5067864970337066, -3.1791416623515807, -4.4078100962970312, -3.3125592316970569, -0.86117313527739991, -1.5893272599995412, -2.966763176308445, -0.10263295233944174, -3.9090515756474873, -1.1809123553765606, -1.2038275093350199, 0.28624805719871799, 1.8536817132476691, 0.80720029239974944, -5.5769148242308617, -9.876045833403877, -26.746787584056406, -25.156847324745275, -59.858730768373135, -40.909481344220289, -31.301364606284917, -12.992896188265529, -3.3747756869001191, 2.018530777741562, -0.2260612077575776, 0.20594677690592242, -0.32403225688254972, 2.6342781156582364, -0.20787587650621794, 0.020021422684959465, 2.4168167113542753, -5.4711139391067487, -4.0162352275216753, -8.2614925402209369, -5.3597212899808353, -3.5618518868969149, -2.433206189931258, -3.72732750056158, 1.9796458045760836, -5.6194552495050392, -1.3533084788499918, -2.5312603283156982, -0.73577412998862446, 1.0534870856485199, 1.9641802030644013, 2.686394865901931, 0.15179077698100021, -13.505006616733285, -24.652619118640313, -46.540772018331772, -65.573862825648789, -62.198686950727755, -33.367481359773279, -15.462856466374785, 1.2764820376727259, 0.65238351077916601, 0.11426292455840634, -0.28574074744887695, 1.1004477970868616, 1.5327652909312646, 4.9327112002405187, -2.7503236900904393, -3.9754701567757182, -0.83451213573114202, -9.6859551174636032, -6.0006304228248837, -7.1318253263858704, -4.9856424549649869, -8.2198692881497966, 4.4471445589999075, -5.9124192136821829, -1.066228559248251, -4.5320020023541776, -2.2691032318803455, -0.29595929991781228, 0.95069246916243999, 2.9800299945570488, 4.1754888650460389, -3.9368165535394617, -16.752391317324459, -41.141712299851427, -60.643902512124761, -84.343164732157774, -54.074972316673119, -32.147836838432397, -3.8004568077904586, 0.60906370022349199, 0.96326571070502964, 0.12072436644318041, 0.86319547550846831, 1.1644302862121145, 2.3252453178811563, 0.4766448788746544, 4.2895158747096422, -8.0099398507205173, -11.261414242734404, -3.7327404661807368, -6.1601929909303115, -5.7506657339441176, -11.117751544185502, 4.3054115148233869, -8.2116085703478756, 1.5649721654809707, -5.692142411938895, -3.4949086671880489, -2.1697325908161673, -0.69541562648800392, 0.8151347377023449, 3.4913843961972888, 3.7128410928274609, -0.28461904914440361, -14.694115553922865, -40.784171797776878, -76.129097997930202, -42.446544168449137, -35.20072244442639, -7.6849685309209681, -0.86778876706269803, 1.7056687310546401, 0.51974952798739482, 1.1316759112288739, 1.2127800605381189, 2.2221214293211369, 0.8361427470500683, 0.099546606452808759, -3.1066939683116588, 2.4769973579809332, -11.745899626687375, -12.566716735550758, -4.7843722525441121, -8.6040588700645948, 5.3511034027408684, -15.66778198729919, 3.3911987930307137, -8.1259457896856588, -4.7980365887404339, -2.1471667518999764, -2.5087241573260579, -0.86097656871748596, 0.80139543608377761, 2.3927476350849495, 5.6561627225456101, 4.6250195847240709, -10.360873371570062, -32.183766942993408, -40.627648783043085, -17.95302681367091, 6.1859416444601623, 4.4451711191118575, 6.2133312512745986, 3.3587096432927233, 0.75569650762962715, 0.82429958430179118, 1.6770717987294814, 1.4875078542842981, 0.57506461301516931, -1.8616897808321822, -4.2923314886050523, -7.0161307894352376, 4.8526265686569623, -11.625945416074895, -21.07467865045702, 3.1434482955713889, -12.714871655934468, 2.366640700254353, -11.173661544979289, -6.475058123170597, -2.9596627855411386, -2.7630790459355632, -1.4122750319888788, -0.55802289067111654, 0.40509965601619852, 3.0549503122920978, 4.5519407117959005, 5.5044865911271481, 2.884340309618711, -2.0306279174386637, -12.290279126535582, 30.20785901727286, 12.45094729737127, 8.7415961086741216, 10.304484703022888, 4.2310313602871554, 1.8368366318675937, 1.9910666876255574, 0.99156303676388502, 0.31747940339256003, -0.60245605946597469, -1.5054245711483085, -5.2047479791857727, -4.6985425899868174, -6.4406057657264579, -2.4317965202694718, -0.31806110286890099, -34.614374984304249, -0.31806110286891309, -2.431796520269478, -6.440605765726465, -4.6985425899868325, -5.2047479791858065, -1.5054245711483181, -0.60245605946599046, 0.31747940339256003, 0.99156303676388657, 1.9910666876255707, 1.836836631867627, 4.2310313602871847, 10.304484703022929, 8.7415961086741465, 12.450947297371268, -17.953026813669211, -12.290279126534008, -2.0306279174386814, 2.8843403096185996, 5.504486591127181, 4.5519407117958774, 3.0549503122920303, 0.40509965601617365, -0.55802289067113198, -1.4122750319888866, -2.7630790459355659, -2.9596627855411324, -6.4750581231706095, -11.173661544979305, 2.3666407002543774, -12.714871655934495, 3.1434482955713383, -21.074678650457034, -11.625945416074918, 4.852626568656909, -7.0161307894352527, -4.2923314886050816, -1.8616897808321802, 0.57506461301515821, 1.4875078542843145, 1.6770717987294999, 0.82429958430183881, 0.75569650762972518, 3.3587096432928165, 6.2133312512752603, 4.4451711191129393, 6.1859416444606961, -42.446544168447332, -40.62764878304236, -32.183766942992868, -10.360873371569919, 4.6250195847241038, 5.6561627225455622, 2.3927476350849091, 0.80139543608374619, -0.86097656871749839, -2.5087241573260646, -2.1471667518999924, -4.7980365887404339, -8.1259457896856819, 3.3911987930307128, -15.667781987299181, 5.3511034027407849, -8.6040588700645682, -4.7843722525441965, -12.56671673555077, -11.745899626687423, 2.4769973579809226, -3.1066939683116837, 0.09954660645280862, 0.83614274705006209, 2.2221214293211515, 1.2127800605381271, 1.1316759112289154, 0.51974952798746277, 1.7056687310547414, -0.86778876706233132, -7.6849685309204459, -35.200722444424429, -84.343164732156296, -76.12909799792908, -40.784171797776416, -14.694115553922703, -0.28461904914431585, 3.7128410928274769, 3.4913843961972515, 0.81513473770227451, -0.69541562648801736, -2.1697325908161949, -3.4949086671880569, -5.6921424119389146, 1.5649721654809774, -8.2116085703478952, 4.3054115148233585, -11.117751544185527, -5.7506657339441034, -6.1601929909302848, -3.732740466180779, -11.261414242734437, -8.0099398507205191, 4.2895158747096467, 0.47664487887466933, 2.3252453178811465, 1.164430286212123, 0.86319547550848241, 0.12072436644322472, 0.96326571070516387, 0.60906370022364942, -3.8004568077899661, -32.147836838431445, -54.074972316672174, -65.573862825648646, -60.643902512124406, -41.141712299851122, -16.752391317324395, -3.9368165535393809, 4.1754888650460389, 2.9800299945570101, 0.95069246916240213, -0.29595929991782399, -2.2691032318803499, -4.5320020023541936, -1.0662285592482377, -5.9124192136821918, 4.4471445589998728, -8.2198692881497806, -4.9856424549649665, -7.1318253263858535, -6.0006304228248819, -9.685955117463573, -0.83451213573115879, -3.9754701567757316, -2.7503236900904167, 4.9327112002405231, 1.5327652909312637, 1.1004477970868634, -0.28574074744888678, 0.11426292455844969, 0.65238351077926593, 1.2764820376728394, -15.462856466374522, -33.367481359773095, -62.198686950727343, -59.858730768372553, -46.54077201833131, -24.652619118640224, -13.505006616733089, 0.15179077698109764, 2.6863948659019079, 1.9641802030643754, 1.0534870856484704, -0.73577412998863267, -2.5312603283157147, -1.3533084788499781, -5.6194552495050258, 1.979645804576063, -3.7273275005615623, -2.4332061899312447, -3.561851886896878, -5.3597212899808397, -8.2614925402208979, -4.0162352275216939, -5.471113939106738, 2.4168167113542718, 0.020021422684962133, -0.20787587650621156, 2.6342781156582284, -0.32403225688256132, 0.20594677690590416, -0.22606120775752253, 2.01853077774176, -3.3747756868998953, -12.992896188264998, -31.301364606284267, -40.909481344219984, -26.809485534888527, -25.156847324744817, -26.746787584056008, -9.8760458334037811, -5.576914824230828, 0.80720029239978064, 1.8536817132476344, 0.28624805719868845, -1.2038275093350328, -1.1809123553765482, -3.9090515756474855, -0.10263295233946072, -2.9667631763084428, -1.589327259999552, -0.86117313527738326, -3.3125592316970565, -4.4078100962970224, -3.179141662351582, -4.5067864970337235, -0.5553262362525373, -2.5498407756565928, 2.3076802702931301, 0.19981301766362944, -1.1326412370424508, 0.9708722088802425, -0.18988703638015317, 1.1511525903296145, -0.27065475805034434, -3.2627913287119403, -18.099079313674878, -36.280107429421662, -56.94273379651932, -71.719340760368894, -72.231190035836406, -36.895178406764366, -28.484337861013827, -13.026034555561461, 1.4397918579755735, 0.74909741969062116, -0.43871934228165033, -0.49805533537312413, -2.8871606625355364, -1.1303995452351521, -2.5451436559397544, -0.92889636381573193, -0.10257790692130979, -1.4694727348954375, -3.47088042643851, -1.6317774897434372, -3.3483434682483164, -1.7180755446077083, -2.0067122081730231, 0.90154843827713693, -1.4670778837513718, 1.0650111541187297, -0.047905313676639846, -1.1528550937233546, 1.5673786316984972, -0.48894354077444435, 1.9842035662707793, -12.693902195544938, -39.769136567331614, -82.304975309079381, -68.364029336892514, -324.53401456188737, -231.73584987382011, -151.29208808113108, -80.815706494855604, -31.380656277665615, -8.8112838568343115, -3.7825574143705687, 1.1149262389696379, -2.9722975102588807, -1.2749029797076188, -2.5736261490777141, -1.679944914042758, -0.21997349279605258, -0.0072612106766204651, -1.3199204785521295, -2.0999344700147602, -2.3742700657768196, -2.2583319261561177, -1.1746986822405874, -0.034985154955167297, -1.0092937918537661, 0.40700212695667115, -1.169386034801607, 1.0641170511547318, -0.31982529888503974, -2.3310052693731778, 3.4567160839116182, -2.8647426984891329, -32.552002455687209, -116.98390967138671, -198.94197841299811, -340.7656126950431, -996.17063256474341, -770.86385201715302, -486.52939506953675, -221.97901463800537, -103.67045476207502, -39.261715784749725, -1.7472058496176825, -5.8736187047078241, -1.2762438485839995, -3.7775973636188502, -2.3957781219887693, -1.831598128086283, -0.80935504019782156, -0.8095209882094927, -0.39414295752690548, -2.6373580888952821, -1.9962698899057312, -2.6242610725724247, -1.0515624140257607, -1.4583889440112356, -0.042806075220638506, -0.5991594867560418, 0.09477041994976447, -2.1114336115238088, 0.041564105453392161, -1.645570244774569, -10.20981320570001, 1.3577640380311771, -80.518340163142966, -264.63237090274987, -646.481245467088, -957.58296584244442, -2329.4915082039943, -1959.4321649356684, -1077.4118984564245, -515.55403813953228, -255.55592612696057, -62.717085150656416, -30.998957295773568, -2.3480777220922762, -9.3325337684514711, -5.2729359146941093, -3.4497798452119492, -2.5417481635934838, -0.83542887465582316, -0.63377862148080311, -0.78431497120560345, -2.7144116941037488, -4.0439693313887171, -2.2874964618085487, -4.0202584980238978, -0.45369004788789491, -0.57907908126534979, 0.1197295503788481, -1.7033561682904654, -2.1701895043697248, -11.650001060370577, -2.3079138134832218, 1.7115783105395919, -28.862997769747821, -130.56706965451951, -713.08152385953122, -1438.5211303616488, -2151.926578142451, -3481.535597542063, -2413.1056871868605, -1470.8308615232086, -876.95522185705033, -335.07671606133954, -190.87870662958562, -32.978021381977214, -26.682014936266988, -13.48160663472185, -8.8039498431579233, -6.6178270656423885, -3.7427284368684086, -1.1736245693095617, -1.1631844631411714, -0.82967484502748334, -3.6146413255534444, -5.614062126861783, -4.8828731457814465, -2.619934931403141, -2.5290059501698665, -1.0224301618296836, -2.0545006330535864, -2.7888603302093888, -7.7174579848962566, -11.922803368680738, -29.439943085484902, 18.545331481584157, -33.397814851580577, -468.05990914351662, -1355.1576691715877, -2506.491638388823, -3026.0617140239456, -2624.9192342435676, -2694.0942422163216, -1937.2376557226696, -610.36312853782647, -567.30372690179479, -201.43809047465459, -121.9592916587422, -37.989404730638029, -23.382201868158511, -15.879006183075566, -9.3160200641569801, -4.5680830401307739, -3.4318959866990371, -0.11031060182210287, -0.78121801903713106, -7.7847619200437572, -7.0127031874072889, -8.7214065300146117, -6.4643064804234296, -2.0534180946007163, -2.6219523498948099, -2.5268882566736321, -5.4454852920506234, -9.009222722598933, -22.178078450833912, -16.935754226078039, -96.805728919100844, -159.86878938364163, -750.23472664477129, -2119.7499173636857, -3582.9824914214882, -4516.8974536331352, -8415.9227315857224, -4810.1023052011687, -1210.9754315912437, -463.64281724563131, -110.11930975746253, -411.20082432868651, -157.55549534038482, -57.160869905334962, -38.144824969171324, -20.558561534906186, -11.961754213185522, -9.2328346536099755, 1.5394495557011911, -1.9950695133570939, -8.4592989146598381, -14.5518442058491, -6.8858593350514123, -6.8502427898925227, -6.0277039354547091, -0.82473624462553619, 0.7831608409739802, -4.1802620318743058, -9.1243948190510782, -16.875977506192154, -32.905184819607861, -35.55459340255284, -122.67808226552924, -514.71454200305027, -821.48267137489574, -2789.7914675081947, -5469.6585676007144, -6467.5546779833749, -27745.708494118051, -18373.599790964956, -7153.1577950265018, 139.0089391760178, -239.12042069169632, -486.41083616652713, -144.17841735614894, -91.597351236029397, -36.983418680226798, -29.52344492191359, -17.530689402649603, -11.472717532816715, 0.49184661171508715, -1.2754674400467305, -13.244388638951113, -21.283130178012485, -16.161012153790605, 3.4669422259560148, -14.833291452397047, 6.4142604093547071, -7.1882909197807701, 0.36714120063543831, -23.623139151504223, -16.730489448483766, -50.060212982262158, -40.805440061890259, -146.45498278007528, -545.33543865451918, -1748.9561003744159, -4085.0339896290589, -8553.5264674688297, -22841.42084500867, -17213.595236981979, -27817.100568112102, -10882.302955904914, -2806.7151144576032, 113.11650603552238, -714.3011765913102, -258.32278440436545, -84.034753639410752, -64.314813850969756, -32.473901904667066, -16.600635746256838, 0.34733716754136956, -1.7416101263050108, -17.401343902608698, -22.272265924680649, -14.131264529805808, -19.629747734378629, 3.5205960317556224, -14.232799652319452, -14.472211987615371, -7.2952697383626051, -2.1850531713375001, -11.025047422886134, -26.960578056534132, -39.308430893651277, -117.89522553299832, -106.61462896985047, -1120.3666800727583, -1103.8692252741987, -5794.1219231082987, -10829.417860945698, 544.0730266990613], "imag": [0.0, 39515.399789254865, -15382.502646592808, -2918.5213899411633, 1191.3150820979915, -345.80526987183259, -91.963497561164317, -108.06830259743781, -23.431327605037779, -16.610810822958811, -2.2742971526945692, -21.94540337447156, -21.272420402577179, -19.057735286082725, 52.376313120912741, 8.8521975026144215, 0.0, -8.8521975026153612, -52.376313120912044, 19.05773528608244, 21.272420402577229, 21.945403374471546, 2.2742971526945164, 16.61081082295847, 23.431327605037779, 108.06830259743377, 91.963497561167031, 345.80526987182992, -1191.3150820979911, 2918.521389941166, 15382.502646592799, -39515.399789254865, 16946.371225111547, 11272.400870696511, -1841.1630655848539, -1171.8258105148211, 109.26740577843201, 109.43221584454041, -206.10314812122442, -42.28539321936541, -65.249140172269108, -8.1960517939269071, -25.365956236318521, -12.488977779350739, -20.777136166915728, 10.939736173955986, 13.738393384077787, 18.982014759380824, -12.446635345723246, -8.8305069728752752, -14.016932746731957, 10.847407040619599, 18.949463773817904, 9.5491377266946333, 9.9160507928571491, 10.925693066643545, 29.597688207921799, 110.70270321520633, 119.64570653889598, -28.406380421737747, -832.38513354395832, 3868.3607546707453, 4625.1554139998552, 1299.266384884336, 11955.369188695569, -346.60702359457474, 2363.0865643328202, 202.32180136864196, -295.01076934839688, 277.44131247872377, -208.25011765184485, -68.536452109290167, -63.125416501511275, -30.589238972650307, -20.382558491276782, -12.902690844348575, 1.0182743702449766, 2.2874141051372452, 14.546101055958879, -1.6150967690531892, 0.87386354462209248, -13.38677146472326, 17.407635810762027, -0.60680891034428563, 12.950261495215786, -0.86756998254740836, 13.062832664150156, -2.136096668655318, 35.880437410281019, 66.543583791324124, 106.41042136702396, -154.61175360170367, -142.43138300706809, -204.04622542072212, 637.22651951043269, 14506.214536688893, 2087.241286517743, 2934.8250858413794, -540.57641351250766, 271.57679130866723, 537.49064424335052, 71.610686309506633, -82.566517160157844, -74.489552074506761, -57.142723569279489, -25.254222647826957, -12.544755138678799, -6.7708773337384622, -0.20770764759918051, 1.1194026551973495, 3.6890839097334878, -0.20461611038051675, -5.3737401851528386, -2.2636764639022453, 4.9832600695280087, 10.10754418440443, 2.544597152813191, 5.0447569422202223, 2.8189903732027388, 2.9920185974422946, 11.529259915073515, 53.348281783168488, 50.577306165813702, 119.57179721034167, -786.94393395792213, -901.86972095078409, 1074.2990124084633, -676.63432998511303, -1814.4894639161919, -1058.8873901892568, 349.63255334068964, 268.2484621242063, 380.4257804868011, 97.912476061205965, -71.661879904778658, -72.736940205390937, -37.286147332183255, -18.720186517652358, -9.5628328869678363, -8.2634536416369482, -0.19099280196160889, 0.28567330333833429, 0.071309220847330906, 1.775656575203522, 2.1386941287610384, -1.0231985430634363, 2.4480270844924137, 1.9878096211738889, 4.1535160740617325, 3.5521022242715827, 3.6019889835361654, -0.38778650675348675, 4.5934633035837322, 12.369503115173785, 94.400929285346393, -77.039516694541632, -317.96189631496532, -464.93982303098932, -1928.5847150696218, -1707.435501473529, -1583.8824730375936, -833.14970460709912, -242.65732454029356, 317.34459246185179, 69.371971565542168, -13.453603503282046, -58.678662168810511, -40.697925231357267, -20.16679423742438, -13.090865763493372, -7.6639325468155182, -3.9818184076004774, -1.1480426683317846, 3.4782462601712654, 3.3535274581593777, 1.1304420427842019, -0.78798091056569108, 1.3645618319176871, -1.2482103302418359, 2.6548043613808709, 2.0455422971726147, 3.3794759874708187, 0.28270713586437868, -0.67396364813071052, -2.4299863370655714, 20.048308524208917, 2.7323622379310764, 23.350930435926227, 19.428895667387472, -542.55543458513841, -969.72646934413422, -1881.6935115818319, -426.42488803140975, -203.12933548649579, 221.2759941924873, 75.498646737827528, 81.527654709232138, -23.228148927519229, -35.095892631083601, -18.113211298120703, -10.84781416147373, -7.2190125620904571, -4.6279710639736358, -2.4591204313834965, 0.58454842364750592, 0.9547463106026568, 2.4151219203224654, 0.35567626693527166, -0.34443735246553581, 0.10021534895843374, 0.62975751586612239, 0.075739057981468363, 2.5606009702294732, 0.33652577635989583, 1.0967346902818458, -2.0000864020848046, 1.451434335785166, -7.1043203483245918, 10.682010714917043, 63.119371696969466, -0.21915489532378957, -18.829394319190524, -151.38668525810633, -53.557614725234764, 319.98109193688521, 339.65571159114432, 137.34002448547074, 89.166061674211335, 5.5395407010458548, 3.1394961579749192, -15.790153056071546, -10.068399035154068, -5.990189510359599, -3.8184783724455591, -3.031311871551015, -1.7050468427375405, 0.29997994657424726, 1.0820090369221063, 1.186145834536469, 1.1035985643781976, -0.026686439684276222, -0.021861987241408937, -0.71069133238487792, 1.5408441736495715, 0.88964240698419117, 1.3226298476418663, -0.31341792844049038, 0.36542819178090652, -6.2831724147446009, -1.5019641274621849, 13.705577255286178, 14.08988446983488, 43.376064565045787, 54.204646228028693, 132.60719521227122, 62.432091745032416, 219.86853407025291, 133.19971898528303, 106.65962198554573, 32.509510578136677, -0.32173120932219279, -1.0472919151881939, 3.0400482541159932, -2.1373375769283371, -3.730023177462626, -3.658884080605465, -1.7579654575817145, -1.4081716233776314, 0.53847505259675243, 0.97164442609396484, 0.99557444173589427, 0.11126643861839057, 0.68343802732828218, -1.8968331338371984, 1.2370080984335854, 0.24616862215977253, 1.6488725749132858, 0.51751999590405229, 1.1293193043526017, -2.440127533596657, -2.1096176983280075, 0.86862341139232857, -3.2906850406637935, 10.529105330387669, 21.528607110729595, 53.864359931260871, 77.645971701549371, 219.35042572397626, 56.646725304489401, 72.597133152544643, 25.283726226154087, 9.5916945360518575, 3.5131066387109651, 7.8353712095885921, 3.7982495059531924, -0.1320379920173739, -2.6872144914167868, -3.9932995411602161, -3.2496097582258021, 0.34753129477634409, 0.51108563039490118, 1.5779290838292743, -0.32098662744154494, 0.85050436376706862, -0.95269533500567993, 1.2514468795435802, -0.80232514327112969, 0.9402998385797201, 0.083484537520043395, 2.9970442493787712, -1.3537504507858638, -0.49606931853204594, -0.40634793694041288, -3.2049709482452999, -0.90733505109423707, 2.4367446291982722, 14.425788131967863, 11.285893196605656, 41.383231407558732, 26.64930600456886, 3.49019745229235, -2.7278278900775033, -0.6780497768719117, 5.1972517053508067, 13.315592278460391, 8.5655340270495799, 2.7986942524720009, -1.3188307478897958, -2.9560147101356677, -3.5039625138893249, -3.2351264422424442, -1.7837191938553947, 4.1370294214229899, -0.48575889336608402, 1.5705428299533406, -0.28712766434912351, 3.0263722138472242, -1.2120159426024513, 2.3578685311613299, -0.57595981339550073, 5.0023110313506045, -1.3965343408401143, 0.57130018359553258, 0.97601539997779907, -2.5856117766371072, -1.4572886030272592, -1.697304402058907, 2.1030121366448049, -0.062995146217583023, 4.9612937854964008, -0.301351161950073, 9.1580358876592047, -26.774160253651129, -14.352442298363405, -1.3280628610826339, 14.662722831107068, 13.065714024917916, 9.0142686843581057, 2.3156698002103213, -2.1494090398895276, -3.4369058394752816, -3.2885833247038136, -1.5589303641797962, -1.2624013759488528, -1.9675974847606275, 6.6808538974877765, -1.9845455926326385, 5.8520209082315047, -0.64649466936933941, 3.7090325345277484, -1.4383189901623872, 7.6358217658181289, -2.5011370399824613, 2.0288771570791524, 3.3870661540364408, -2.1726948090167277, -1.6227282885568253, -2.3401345171732064, -1.0784728701462345, -2.329913042321786, 1.6766227476276099, -5.5208279800184377, -13.304914803323909, -34.683237345909106, -16.2208922311743, -7.5614574111833583, 14.803696771258469, 15.579335900760762, 15.161631552742872, 8.4660409590375174, 1.9742581617985508, -2.2318082441740326, -3.1677451000476946, -2.7136257844502993, -2.4663578849843404, 2.1470642674041458, -0.80807516468244989, -6.8039934755458935, 11.462761097859508, -2.3200072133134322, 9.6476195054900042, -0.58323258923086063, 10.466810618341768, -7.3966372849294499, 4.629755222962074, 7.8499060069144697, -1.2532724460122664, -0.71383693570895246, -3.0356422051110532, -1.9171318821546592, -3.2905248775997, 1.1638954652799918, -0.8003122215164804, -7.6686022187651925, -13.379436000591463, -2.0784151782651223, 18.753674553162941, 37.596939514973172, 28.201887912811504, 26.441177038828386, 17.313699289624569, 8.2605837012813357, 1.9157665349814501, -1.0360449197814665, -2.460835808457071, -2.9435912594789997, -0.73745892985465067, -0.80698208098757895, 1.3512050433752707, -2.4806623635392717, -10.931358459008862, 20.399475046734903, -0.93914753929729033, 15.633586230850142, -11.808527677086202, 3.7955244266493091, 11.440683264496995, 0.22625003249094855, 2.3910143241324033, -1.5433230899620785, -1.7524971656611896, -3.4392335008624597, -1.2102890230410412, -1.1333111335531953, -0.86689054652400055, -0.77102037498198228, 5.869418392294464, -6.6911708498309208, 60.884710948918006, 43.621563233816303, 43.489599527484941, 33.141784821271486, 18.338861076357606, 7.7096141949396086, 3.1020965354201242, -0.33651454595896624, -1.858665713174497, -1.559439785993801, -1.7180049365163976, -0.49470837698954684, -5.7499783777067037, 1.2816063498557866, -1.6438131382345036, -14.80449956699707, 30.383248800411909, -20.687082737158004, 6.4291237134149926, 13.719178799652914, -0.15202331710012035, 5.6708331746907428, 1.1091130063870853, 0.43083164420390874, -2.423604198850752, -1.2614169037455483, -3.1633275417854718, -2.5428479485652051, -1.0621152637056996, 7.4921468465754772, 13.826120615216594, 48.56895003285198, 43.655937980459306, 56.143788442077074, 39.839822974553684, 28.907966432346075, 17.226166967005444, 9.493352687280801, 2.1248307248495761, -0.10304029106189502, -0.73643011249607004, -0.68086203692422775, -1.5726895782452095, -2.38329292549688, -6.3654622280486342, -12.648471231222512, 2.6502987300644998, 9.1941379366153466, -33.28553680715055, 17.791788634489134, 16.331392880531652, -1.0332061538290742, 9.6376857080971341, 4.1689669632335153, 3.4112249849533103, -0.63064111926197686, 0.028356847121888181, -1.1968584419289052, -3.3957285823190806, -4.7459408986565164, -4.790016252397657, -5.1593354130915703, 13.957717184896774, 20.367299127198688, 0.0, -4.5388798707327584, 12.10851784859719, 15.801052170121357, 15.786196904526062, 6.4645339091427658, 2.6357128260629894, 0.48128762074186304, -0.08159176932681525, -1.1399410088753745, -0.93916966756638098, -5.4695359499377414, -8.4733779831544798, -6.8332707948903639, -5.8759130146162706, -8.1552266379296245, 0.0, 8.1552266379295908, 5.8759130146162661, 6.8332707948903488, 8.4733779831544869, 5.4695359499377316, 0.93916966756637688, 1.1399410088753721, 0.08159176932681525, -0.48128762074185355, -2.635712826062981, -6.4645339091427667, -15.786196904526072, -15.801052170121331, -12.108517848597181, 4.5388798707327416, -43.655937980456407, -20.367299127197448, -13.957717184895019, 5.1593354130924185, 4.7900162523979217, 4.7459408986567313, 3.395728582319133, 1.1968584419289152, -0.028356847121888983, 0.63064111926197186, -3.4112249849533058, -4.1689669632334958, -9.6376857080971128, 1.0332061538290882, -16.331392880531649, -17.79178863448908, 33.285536807150621, -9.1941379366153146, -2.6502987300644807, 12.648471231222583, 6.3654622280486368, 2.3832929254968982, 1.5726895782452166, 0.68086203692425595, 0.73643011249607926, 0.10304029106193066, -2.1248307248495362, -9.4933526872806269, -17.226166967005291, -28.907966432345297, -39.839822974551964, -56.143788442073777, -60.884710948915583, -48.568950032850019, -13.82612061521586, -7.4921468465751166, 1.0621152637059226, 2.5428479485653219, 3.1633275417855051, 1.261416903745556, 2.4236041988507613, -0.43083164420392467, -1.1091130063870698, -5.6708331746907525, 0.15202331710012659, -13.719178799652925, -6.4291237134149712, 20.687082737158036, -30.383248800411859, 14.804499566997148, 1.6438131382345447, -1.2816063498557717, 5.7499783777067242, 0.49470837698955733, 1.7180049365164254, 1.5594397859938318, 1.8586657131745035, 0.33651454595900265, -3.1020965354201109, -7.7096141949395376, -18.33886107635751, -33.141784821271301, -43.48959952748401, -43.621563233814584, -18.753674553161851, 6.6911708498312086, -5.8694183922938254, 0.77102037498232001, 0.86689054652414343, 1.1333111335533379, 1.2102890230411023, 3.4392335008624833, 1.7524971656611932, 1.5433230899620796, -2.3910143241323984, -0.22625003249093578, -11.440683264497009, -3.7955244266492731, 11.808527677086207, -15.633586230850069, 0.93914753929731287, -20.399475046734821, 10.931358459008916, 2.4806623635393117, -1.3512050433752816, 0.80698208098763236, 0.73745892985467021, 2.943591259479049, 2.4608358084570767, 1.0360449197814969, -1.9157665349814337, -8.2605837012812007, -17.313699289624388, -26.441177038827938, -28.201887912810978, -37.59693951497237, 16.220892231174151, 2.0784151782650429, 13.379436000591378, 7.6686022187652325, 0.80031222151651993, -1.1638954652799158, 3.290524877599744, 1.917131882154679, 3.0356422051110541, 0.71383693570894702, 1.2532724460122711, -7.849906006914436, -4.6297552229620669, 7.3966372849294793, -10.466810618341761, 0.58323258923092358, -9.6476195054900042, 2.3200072133134997, -11.462761097859458, 6.8039934755459344, 0.80807516468246154, -2.1470642674041431, 2.4663578849843657, 2.7136257844503273, 3.1677451000476933, 2.2318082441740374, -1.9742581617985304, -8.4660409590374517, -15.161631552742712, -15.579335900760643, -14.803696771258227, 7.5614574111833424, 26.774160253651477, 34.683237345909006, 13.304914803324097, 5.5208279800184936, -1.6766227476275497, 2.3299130423218712, 1.078472870146282, 2.3401345171732237, 1.6227282885568277, 2.1726948090167162, -3.3870661540364337, -2.0288771570791524, 2.5011370399824764, -7.6358217658181076, 1.4383189901624107, -3.7090325345277098, 0.64649466936933497, -5.8520209082314834, 1.984545592632657, -6.6808538974877711, 1.9675974847606519, 1.2624013759488664, 1.5589303641798025, 3.2885833247038483, 3.4369058394752718, 2.1494090398895325, -2.3156698002103084, -9.0142686843579654, -13.06571402491778, -14.662722831106908, 1.3280628610827629, 14.352442298363767, -3.4901974522911301, -9.158035887658194, 0.30135116195024236, -4.9612937854963866, 0.062995146217542555, -2.1030121366447649, 1.6973044020589363, 1.457288603027268, 2.5856117766371063, -0.97601539997780706, -0.57130018359554458, 1.396534340840117, -5.0023110313506107, 0.5759598133955085, -2.357868531161305, 1.2120159426024788, -3.0263722138472202, 0.28712766434913656, -1.5705428299533217, 0.48575889336609929, -4.1370294214229943, 1.783719193855416, 3.2351264422424548, 3.5039625138893205, 2.956014710135662, 1.3188307478897938, -2.7986942524719765, -8.5655340270494893, -13.315592278460258, -5.1972517053507898, 0.67804977687200962, 2.7278278900777337, -56.64672530448825, -26.649306004568476, -41.383231407558036, -11.285893196605604, -14.42578813196792, -2.4367446291981882, 0.90733505109427226, 3.2049709482452906, 0.40634793694041338, 0.49606931853200609, 1.3537504507858567, -2.9970442493787934, -0.083484537520044699, -0.94029983857969957, 0.80232514327114979, -1.2514468795435723, 0.95269533500567261, -0.85050436376704475, 0.32098662744156231, -1.5779290838292681, -0.51108563039488553, -0.3475312947763517, 3.2496097582258234, 3.9932995411602126, 2.687214491416765, 0.13203799201742056, -3.7982495059531578, -7.8353712095884145, -3.5131066387109939, -9.5916945360520085, -25.283726226154414, -72.597133152543805, -219.86853407025291, -219.35042572397646, -77.645971701549428, -53.864359931260992, -21.52860711072962, -10.52910533038772, 3.2906850406638011, -0.86862341139231525, 2.1096176983280075, 2.4401275335966615, -1.1293193043526162, -0.5175199959040564, -1.6488725749132833, -0.24616862215974425, -1.2370080984335483, 1.8968331338372646, -0.68343802732828218, -0.11126643861832354, -0.99557444173586918, -0.97164442609393387, -0.53847505259674655, 1.408171623377654, 1.757965457581725, 3.6588840806054854, 3.730023177462626, 2.1373375769283727, -3.0400482541159497, 1.0472919151882829, 0.32173120932219762, -32.509510578136599, -106.65962198554575, -133.199718985283, -319.98109193688754, -62.432091745036324, -132.60719521227176, -54.20464622802902, -43.376064565046129, -14.089884469834875, -13.705577255286062, 1.5019641274622118, 6.2831724147445849, -0.36542819178094682, 0.31341792844047633, -1.3226298476418761, -0.88964240698418728, -1.5408441736495315, 0.71069133238493809, 0.021861987241514846, 0.026686439684265401, -1.1035985643780957, -1.1861458345364231, -1.082009036922065, -0.29997994657423205, 1.7050468427375622, 3.031311871551031, 3.818478372445528, 5.9901895103595697, 10.068399035154069, 15.790153056071421, -3.1394961579745826, -5.539540701046052, -89.166061674211662, -137.34002448547281, -339.65571159114575, 426.42488803140685, 53.557614725234323, 151.38668525810476, 18.829394319190286, 0.21915489532353391, -63.119371696969402, -10.682010714916952, 7.1043203483248183, -1.4514343357851665, 2.0000864020848317, -1.0967346902818478, -0.33652577635987613, -2.5606009702294568, -0.075739057981359575, -0.6297575158660037, -0.1002153489582, 0.34443735246552043, -0.35567626693504045, -2.4151219203224019, -0.95474631060256077, -0.58454842364747928, 2.4591204313835524, 4.6279710639736518, 7.2190125620904322, 10.8478141614737, 18.113211298120788, 35.095892631083665, 23.228148927519459, -81.527654709232067, -75.498646737828622, -221.27599419248904, 203.12933548649244, 1583.8824730375886, 1881.6935115818235, 969.72646934413342, 542.55543458513785, -19.428895667388197, -23.350930435925818, -2.7323622379307726, -20.048308524208668, 2.4299863370655803, 0.67396364813076437, -0.28270713586437829, -3.3794759874707645, -2.0455422971725761, -2.6548043613806773, 1.248210330242034, -1.3645618319173671, 0.78798091056567598, -1.130442042783935, -3.3535274581592822, -3.4782462601711517, 1.1480426683318268, 3.9818184076005192, 7.6639325468155093, 13.090865763493181, 20.166794237424288, 40.697925231356948, 58.678662168810511, 13.453603503282435, -69.371971565542452, -317.34459246185418, 242.65732454028887, 833.14970460709446, 1814.4894639161919, 1707.4355014735293, 1928.5847150696216, 464.93982303099165, 317.96189631496537, 77.039516694542414, -94.400929285346379, -12.369503115173439, -4.5934633035837242, 0.38778650675346871, -3.6019889835361467, -3.5521022242715157, -4.1535160740616579, -1.9878096211735969, -2.4480270844921423, 1.0231985430638744, -2.1386941287610495, -1.7756565752032289, -0.071309220847206922, -0.28567330333819857, 0.19099280196170093, 8.2634536416369908, 9.5628328869678718, 18.720186517652159, 37.286147332183262, 72.736940205390795, 71.661879904778388, -97.912476061205524, -380.4257804868011, -268.24846212420823, -349.63255334068992, 1058.8873901892528, -2087.2412865177334, 676.63432998511416, -1074.2990124084556, 901.86972095078841, 786.94393395792224, -119.57179721034137, -50.577306165813212, -53.34828178316841, -11.529259915073451, -2.9920185974423683, -2.8189903732028481, -5.0447569422201788, -2.5445971528130604, -10.107544184404102, -4.9832600695276215, 2.2636764639027978, 5.3737401851528253, 0.20461611038107308, -3.6890839097334074, -1.119402655197085, 0.20770764759927202, 6.7708773337385892, 12.544755138678777, 25.254222647826818, 57.14272356927944, 74.489552074506946, 82.566517160157588, -71.610686309506534, -537.49064424335074, -271.57679130866813, 540.57641351250493, -2934.8250858413712, -11955.369188695569, -14506.214536688902, -637.22651951043315, 204.04622542072232, 142.43138300706894, 154.61175360170483, -106.41042136702355, -66.543583791323357, -35.880437410281012, 2.1360966686551617, -13.062832664150186, 0.86756998254746465, -12.950261495215663, 0.6068089103450538, -17.40763581076148, 13.386771464725289, -0.87386354462209659, 1.6150967690552112, -14.546101055958459, -2.2874141051365076, -1.0182743702449171, 12.902690844348964, 20.382558491276768, 30.589238972650698, 63.125416501511289, 68.536452109292355, 208.25011765184536, -277.4413124787215, 295.01076934839597, -202.32180136863923, -2363.0865643328207, 346.60702359456963, -16946.371225111554, -1299.266384884367, -4625.1554139998561, -3868.3607546707453, 832.38513354395968, 28.40638042173725, -119.64570653889508, -110.70270321520742, -29.597688207921749, -10.925693066643381, -9.9160507928571686, -9.5491377266944308, -18.949463773817815, -10.847407040619126, 14.016932746732627, 8.8305069728758134, 12.446635345723296, -18.982014759378298, -13.73839338407706, -10.939736173955323, 20.777136166915735, 12.48897777935125, 25.365956236318532, 8.1960517939270616, 65.249140172269151, 42.285393219366988, 206.10314812122587, -109.43221584453876, -109.26740577843286, 1171.8258105148195, 1841.1630655848473, -11272.400870696491]}};
|
||
|
||
var right_eye_filter = {"real": [1.8229079259010603, 0.097810498648582461, -0.55840092137248587, -0.99970462842356578, 0.18757876559092043, -0.81617694863114465, -0.17457078018685562, 0.13822182613073089, -0.13830885288846723, 0.14088352498892928, -0.11242245121823281, 0.64190144530750459, -0.18081689212517704, 0.84757445423403044, -2.0367692338977426, 2.3450651085370726, -3.2227771639624789, 2.3450651085369945, -2.0367692338977101, 0.84757445423403854, -0.18081689212518082, 0.64190144530750537, -0.11242245121823641, 0.14088352498894169, -0.13830885288846723, 0.13822182613073003, -0.17457078018684977, -0.81617694863113666, 0.18757876559091927, -0.99970462842356267, -0.55840092137248509, 0.097810498648581323, -1.0960340088024074, -1.9119199452512301, -2.4095702665388479, -0.55162352804953241, -0.50505328014021589, -1.3068505835636635, -0.49437187443975589, 0.23127204626685588, 0.043350794355039197, -0.071787406154436809, 0.070854449837205943, 0.17221102955705567, 0.44602122877614064, 0.074148205591900399, -0.015611524439393865, -0.79896724757292914, -0.67155961060437053, -0.49375784053273253, 0.028167647498424205, -0.3191891366103583, 0.53582170174408217, 0.20183473326047152, 0.12710467168208503, -0.071400263514192097, 0.074560604448017792, -0.12451483496807111, 0.051358135035693774, -0.77282398113384443, -0.42160647485916963, -1.1311602269894514, -1.4625324828122208, 0.3337871926813808, -1.77011609742092, -1.4302518240108344, -3.0428213499062116, -0.60631225487833551, -0.13683987631719793, -2.3692424085383519, -0.34105804260324346, -0.25969657852057992, 0.23610433796619859, -0.27685168579683173, 0.16986402710259335, 0.073612585805396993, 0.57704911017089122, -0.059867579479423505, 0.51680219528175042, -1.0666730319382505, -0.0056552094670686828, -0.75809939060745812, -0.064701320250044561, -0.19832318162238824, 0.37732986906226257, 0.20777584924550152, 0.15451076629740465, -0.013991851319401968, 0.13841341497021592, -0.086883949036928532, 0.25261423619714551, -1.1991385138433881, -1.9867837341406693, -2.275962773839737, -3.1079150257531585, -2.3995834975192567, -2.2937692343725722, -2.1872173045799017, -1.3988308931230504, -2.2073957813815439, -1.9667941627002865, -1.6748432066635108, -0.92650772032564344, -0.054197237250052703, -0.18026213329416008, -0.15232124758200827, -0.016555865669302033, 0.31289505893870784, 0.42806542968274719, 0.23124350286854853, -0.087366382764607439, -0.12552132795947232, -0.12547908619418155, -0.38089709050886683, -0.28444076658768042, -0.11944152964360766, 0.12056136689031131, 0.21189843131890268, 0.16581598470154221, 0.13376820638890077, 0.22205496825803592, 0.15120100371874812, 0.12380717441381156, -1.2352596784322261, -2.2222759116849211, -3.3782856809989692, -3.415076124219421, -2.7282977589825297, -1.5576789730825455, -1.6478932560447972, -2.067907968457094, -2.004290735457912, -2.6427456963680775, -1.9309474679838621, -0.16864865516592528, -0.22642518078963322, -0.13321306237600422, -0.20692971953006373, -0.068344938706069003, 0.14493915164047724, 0.46505832474821007, 0.32789481378377733, 0.1852927254910838, -0.1356638873386786, -0.03585192275390197, -0.17203834043005656, -0.15954900238018477, -0.059581713131431221, -0.017228379259871054, 0.12402459410135006, 0.1524538089963059, 0.16271946063708961, 0.24817234249560427, 0.26053579199245763, -0.04769125558408293, -0.81459993031792033, -2.0740660744196808, -3.1544891598954261, -2.9212825837849565, -2.4077419089431702, -1.6411629435379833, -1.576697627349694, -1.8007661961299257, -2.0001525985045707, -1.5107274159689619, -1.2839600483166405, -0.63196711118813498, 0.31071574064221719, -0.21370915949408273, -0.16393119308951343, -0.097481704015839707, 0.13767875532837173, 0.23695911940697742, 0.36158774196732829, -0.00066962538216623158, -0.1026502520704758, -0.18176695609293456, -0.059120611570986824, -0.13702193484548986, -0.0073538013157976303, 0.020281061259494877, 0.15032501459982059, 0.16876214929227357, 0.18780650312631536, 0.16308782299108887, 0.18583847563977354, 0.44907296092364651, -0.020800703185301726, -1.4297091333258476, -2.4259185480628145, -2.4053777736536626, -1.9821307035675879, -1.3372642957080885, -1.2989780551182537, -1.3731553217305845, -1.2269479805895975, -1.2032897772528626, -0.22206046284030648, -0.18415548289109809, -0.23415549346578352, 0.077936325689887453, -0.21633114300736572, -0.059449722211757941, 0.013318329293146938, 0.28775437300883983, 0.21963323601338633, 0.16649953505637383, -0.18974789333555656, -0.17379580132236441, -0.23416130311702454, -0.13478379984035538, -0.13112027137758978, 0.033522350558872455, 0.13259733500476653, 0.171380750952115, 0.15737574769334917, 0.092477162456605533, 0.13448891283084696, 0.41161459424817443, 0.35609170613712005, -0.55316449850203808, -1.540851379466907, -1.8005308506197801, -1.5719273509294158, -0.94040577953316051, -0.83899416480020927, -0.77336416928591256, -0.66562411016509948, -0.4002640865408188, -0.36750971454913561, 0.2414435659750552, -0.065677188177910795, -0.21341675767851534, -0.041369287190265204, -0.087404842921799578, 0.04460147122538273, 0.19583406251777175, 0.1830038441344799, 0.012219595757112435, -0.034593273427629516, -0.14926486203867156, -0.036665364495836496, -0.1306231554860259, -0.086381624051938985, 0.0020423415177502173, 0.11239290885891448, 0.12781279786870536, 0.10954302373131516, 0.14996801038078228, 0.12965098836907352, 0.14324588543961356, 0.0567484033157079, -0.079342592710004017, -0.77145898274835445, -1.1705860882999304, -1.0754357146023004, -0.5463269466436349, -0.37732231762995055, -0.29185933229148303, -0.18245346577017127, -0.15252816280103537, 0.00992307413149221, -0.05334501261419268, 0.10643359538216246, -0.069635302172998029, -0.20853401810086858, 0.03871878333386132, 0.024793140061197767, 0.22215018549405419, 0.19090693911120471, 0.13458393481660855, -0.1226120784542075, -0.060406846903667433, -0.083060383383984554, -0.016925686434954099, -0.033352938195947639, 0.056474422402956102, 0.04873056181166667, 0.092098221631537164, 0.13542751998114597, 0.15540921558269635, 0.10094403852684107, 0.050489672984821425, 0.089840998861512991, 0.018445471788018183, -0.44280324831238471, -0.64559475523542686, -0.64123409592876457, -0.25571779361731761, -0.15489773108593363, -0.10375533557574061, -0.074018947274090252, -0.074021765277388324, -0.034956034554291714, 0.065331700319185393, -0.079299771847393716, 0.035725424097319471, -0.10252861876832269, -0.22107962950770202, 0.20755848067860572, 0.23157078159613848, 0.34013467279608883, 0.23914223921471078, 0.043591964044129211, -0.20186945117744784, 0.04172561648658725, -0.038784831650455286, 0.076248151019351923, -0.060276976551200255, -0.0031358189183758184, 0.13054366560393055, 0.16122088670834137, 0.12129220423951546, 0.064624059271846127, 0.063153633523538075, 0.036868954773612302, 0.025599835220982206, -0.17872521900892777, -0.37577894082797708, -0.33418602947194676, -0.19087946198724595, -0.092430559387195924, -0.15843188266072916, -0.1178716916883143, -0.079832857077627425, -0.038455609721169501, 0.015668866487966955, 0.0052656766019976578, -0.12562510603385343, -0.024970842739258457, -0.030574039563531708, -0.21969881405226874, 0.59191387060782108, 0.39965780946904006, 0.22624763974293111, 0.077143781693831126, 0.078542516808501189, -0.0038697706067326258, 0.21858339549378, 0.083870133819846815, -0.19149929243694441, 0.053673315180545467, 0.22201073984886688, 0.16922848807595664, 0.12511007660405662, 0.095111634855384236, 0.084195395624058103, 0.010195208908487656, -0.016589123313681509, -0.076922699191606214, -0.17023093289451025, -0.26998035777525775, -0.28189859430096476, -0.32749231042729776, -0.240474927671948, -0.27714150491609907, -0.16857870511456344, -0.056310601502134704, 0.026291702225850644, -0.028508101274427284, -0.066307061790986485, -0.27187198211633473, 0.066219257946262391, 0.32825613521942065, -0.21303758386300781, 1.1917438602108388, 0.2807025357241521, 0.23447144426975483, 0.16511529097099151, 0.40113579910945835, 0.017152293761210982, -0.1450564820739392, 0.13833755803781553, 0.2361453534315919, 0.16033553043559276, 0.17442784770871, 0.17988585089228476, 0.143828955260344, 0.07132752932041192, 0.016244981011210025, -0.013577696292888701, -0.024045478766089354, -0.11184718959298219, -0.14666574805211069, 0.0080876817899727359, -0.16842937423863127, -0.43543489379944889, -0.29975286851709859, -0.22753898297998879, -0.069036032916579657, 0.014977564920406507, -0.020420877906038481, -0.13524198281736244, -0.15739380447541659, -0.33401260934309918, 0.46815371603113554, 0.93021729768322625, -0.26733338229185055, 1.4166629302294091, 0.60664479608939625, 0.3603810860087503, 0.4605515924213614, -0.32071019427276837, 0.15916183580862947, 0.55142162929110317, 0.20419289205444074, 0.051921880744650394, 0.24679565757292954, 0.2706202610478356, 0.15590400545853877, 0.081859441051199647, -0.040980231107277158, 0.019596242113331462, 0.094364427919773758, 0.065278519802775978, -0.029838116901178446, 0.15435464918439099, -0.039386655944161249, -0.077796406016204619, -0.28158476919608044, -0.033110128022724852, 0.018548614200940845, 0.067046107651037731, -0.044245201781535203, -0.1525534131110006, -0.22929077462390082, -0.085302710712388263, -0.049302393683332231, 0.85744368463127818, 1.8448220136861364, -0.68744556831975012, 1.810880881855317, 0.66237039703709566, -0.31567909429421087, 0.83232217907475781, 0.97863365922997991, 0.30994126117364096, -0.041163173314528664, 0.17633262873947353, 0.23161854928102976, 0.25087704366702551, 0.19868696729956423, 0.093569887694449877, 0.032362324442922322, -0.0027507666136337679, 0.21821986304703905, 0.37880734420129814, 0.40096920495374666, 0.93561154193066887, 0.61326039955329958, 0.1638528799494483, 0.1009541629695858, 0.056601591846233243, 0.15561323638878471, 0.073000292812971587, -0.0055442453146915694, -0.13817032242271102, -0.11770539535407684, -0.096245457278447424, 0.46442894125096079, 0.45587938373772585, 1.3432089992982477, 2.5059762271849535, -0.93829697639874887, 0.6492144586928863, 0.79782532034480069, 1.3025551528258366, 0.94174974100732234, 0.099921469659734793, 0.28712786266920659, 0.15853680079243379, 0.130717335778855, 0.17042917695126153, 0.19986443324539621, 0.13725228360851915, 0.029723534135295476, 0.098143635338702864, 0.19047751491127032, 0.49335337973435212, 0.78089304412099847, 0.29686587428828037, 0.38131881367791126, 0.40643673652514922, 0.19053499830856688, 0.20033550195294633, 0.13287714582076576, 0.10533560171090586, 0.00085487897815388243, -0.049435296406267468, -0.081309411554979491, 0.057947716710403128, 0.48207744089263116, 1.2538880645112733, 1.2204758332556214, 0.87793863876625744, 1.8796293205435075, -0.45285576127696725, 2.2308682152547137, 1.2382711063757557, -0.035207936995945072, 0.88175672278306683, 0.55916031961657942, 0.18718127547628777, 0.011764673252274449, 0.068747006595272581, 0.13522321325294812, 0.17151312046437606, 0.10315365060575944, -0.0011239413451798732, 0.14993420590829387, 0.38959110228082239, 0.38845862264410469, 0.69716730182732189, 0.51802064393501412, 0.28837767001488912, 0.10583936790249669, 0.071016615670210698, 0.16001776032454934, 0.10715662619027419, 0.056188716759532117, -0.035825840155044517, 0.0061469917968111389, 0.089493877843564718, 0.68387295014825999, 1.1016519558168656, 1.3182383587355595, 0.66635382040153524, 0.54863673632097221, 4.0547770231048936, 0.54863673632097154, 0.66635382040153424, 1.3182383587355562, 1.101651955816866, 0.68387295014826144, 0.089493877843565064, 0.0061469917968106288, -0.035825840155044517, 0.056188716759530431, 0.10715662619027334, 0.16001776032454856, 0.071016615670210018, 0.10583936790249539, 0.28837767001488829, 0.51802064393501346, 0.29686587428830957, 0.38845862264412201, 0.38959110228084654, 0.14993420590831108, -0.001123941345177488, 0.10315365060576374, 0.17151312046437922, 0.13522321325295103, 0.068747006595273552, 0.011764673252275867, 0.18718127547628682, 0.55916031961657786, 0.88175672278306205, -0.035207936995944634, 1.2382711063757532, 2.2308682152547106, -0.45285576127696175, 1.8796293205435037, 0.87793863876625788, 1.2204758332556218, 1.2538880645112747, 0.48207744089263271, 0.057947716710405182, -0.081309411554979547, -0.04943529640626837, 0.0008548789781495917, 0.10533560171090255, 0.13287714582076099, 0.20033550195294705, 0.19053499830855697, 0.40643673652513423, 0.38131881367792647, 0.93561154193068807, 0.78089304412102711, 0.49335337973436416, 0.19047751491127579, 0.098143635338704696, 0.029723534135297252, 0.13725228360851988, 0.19986443324539666, 0.17042917695126267, 0.13071733577885625, 0.15853680079243432, 0.28712786266920415, 0.099921469659732226, 0.94174974100731712, 1.3025551528258328, 0.79782532034480169, 0.64921445869288619, -0.93829697639874454, 2.5059762271849548, 1.3432089992982421, 0.45587938373772335, 0.46442894125096235, -0.096245457278447175, -0.11770539535407766, -0.13817032242271216, -0.0055442453146945193, 0.073000292812969436, 0.15561323638878341, 0.056601591846233208, 0.10095416296958591, 0.16385287994945555, 0.61326039955330602, 0.15435464918440814, 0.40096920495376004, 0.37880734420131523, 0.21821986304704899, -0.0027507666136306606, 0.032362324442924542, 0.093569887694449336, 0.19868696729956342, 0.25087704366702551, 0.23161854928103059, 0.17633262873947425, -0.041163173314526666, 0.30994126117363635, 0.97863365922997669, 0.83232217907475781, -0.31567909429421592, 0.66237039703709699, 1.810880881855315, -0.68744556831974835, 1.8448220136861369, 0.85744368463127729, -0.049302393683329601, -0.085302710712388291, -0.22929077462390179, -0.15255341311100187, -0.044245201781539331, 0.067046107651035594, 0.018548614200940294, -0.033110128022720509, -0.28158476919607578, -0.077796406016200054, -0.039386655944146774, 0.0080876817899761342, -0.029838116901173162, 0.065278519802780599, 0.09436442791977824, 0.019596242113334855, -0.040980231107276652, 0.08185944105119855, 0.15590400545853553, 0.2706202610478356, 0.24679565757292907, 0.051921880744651677, 0.20419289205443947, 0.55142162929109917, 0.15916183580862936, -0.32071019427277109, 0.46055159242136157, 0.36038108600874996, 0.60664479608939803, 1.4166629302294049, -0.2673333822918505, 0.93021729768322625, 0.46815371603113448, -0.3340126093430979, -0.15739380447541709, -0.13524198281736302, -0.020420877906040739, 0.014977564920405115, -0.069036032916578546, -0.22753898297998629, -0.29975286851709465, -0.43543489379944272, -0.16842937423862725, -0.28189859430095965, -0.14666574805210519, -0.1118471895929717, -0.024045478766081197, -0.013577696292883971, 0.016244981011212731, 0.071327529320409616, 0.14382895526034015, 0.1798858508922834, 0.17442784770871067, 0.16033553043559218, 0.23614535343159299, 0.13833755803781575, -0.14505648207394348, 0.017152293761212339, 0.40113579910946001, 0.16511529097099317, 0.23447144426975502, 0.28070253572415382, 1.1917438602108381, -0.21303758386300692, 0.32825613521942509, 0.066219257946262128, -0.27187198211633529, -0.066307061790987387, -0.028508101274429792, 0.026291702225849072, -0.056310601502134003, -0.1685787051145608, -0.27714150491609657, -0.24047492767194564, -0.32749231042729471, -0.19087946198724157, -0.26998035777525148, -0.17023093289450597, -0.076922699191602426, -0.016589123313677224, 0.01019520890848913, 0.084195395624057118, 0.095111634855381461, 0.12511007660405613, 0.1692284880759545, 0.22201073984886613, 0.053673315180547035, -0.19149929243694658, 0.083870133819847037, 0.21858339549377928, -0.0038697706067313737, 0.078542516808500606, 0.077143781693833222, 0.22624763974292969, 0.39965780946904111, 0.59191387060782175, -0.21969881405226852, -0.030574039563530501, -0.024970842739259945, -0.12562510603385371, 0.0052656766019967011, 0.015668866487966397, -0.038455609721168606, -0.079832857077626357, -0.11787169168831266, -0.15843188266072725, -0.092430559387194119, -0.25571779361731145, -0.33418602947193976, -0.37577894082796842, -0.17872521900892277, 0.025599835220983438, 0.036868954773614897, 0.063153633523536298, 0.064624059271844544, 0.12129220423951372, 0.1612208867083402, 0.13054366560393141, -0.0031358189183775171, -0.060276976551199596, 0.076248151019351354, -0.038784831650455917, 0.041725616486585258, -0.20186945117744698, 0.043591964044126186, 0.23914223921470992, 0.34013467279608772, 0.23157078159613964, 0.20755848067860685, -0.22107962950770196, -0.1025286187683216, 0.035725424097318138, -0.079299771847393549, 0.065331700319185088, -0.034956034554288036, -0.074021765277385243, -0.074018947274086908, -0.10375533557573537, -0.15489773108592672, -0.5463269466436349, -0.64123409592876401, -0.64559475523542686, -0.44280324831238616, 0.018445471788017767, 0.089840998861510313, 0.050489672984820259, 0.10094403852683856, 0.15540921558269635, 0.13542751998114574, 0.092098221631536192, 0.04873056181166658, 0.056474422402955825, -0.033352938195949811, -0.016925686434957218, -0.083060383383990535, -0.060406846903667433, -0.1226120784542102, 0.13458393481660744, 0.19090693911120402, 0.22215018549405383, 0.024793140061198739, 0.038718783333861403, -0.20853401810086775, -0.069635302172998029, 0.1064335953821621, -0.053345012614191917, 0.0099230741314936706, -0.15252816280103507, -0.18245346577017069, -0.29185933229148298, -0.3773223176299495, -0.94040577953315341, -1.0754357146022915, -1.1705860882999222, -0.77145898274834734, -0.079342592710004489, 0.05674840331570382, 0.14324588543960787, 0.12965098836906794, 0.14996801038078103, 0.10954302373131049, 0.12781279786870486, 0.11239290885891398, 0.0020423415177517252, -0.086381624051941733, -0.13062315548602732, -0.036665364495841957, -0.14926486203867201, -0.034593273427634852, 0.012219595757109143, 0.18300384413447635, 0.1958340625177715, 0.044601471225384402, -0.08740484292179726, -0.041369287190262873, -0.21341675767851565, -0.065677188177906895, 0.24144356597505726, -0.36750971454912684, -0.40026408654081164, -0.66562411016509171, -0.77336416928590557, -0.83899416480020206, -1.3372642957080858, -1.5719273509294132, -1.8005308506197781, -1.5408513794669076, -0.5531644985020383, 0.35609170613711127, 0.4116145942481696, 0.13448891283084041, 0.092477162456604783, 0.15737574769334561, 0.17138075095211283, 0.13259733500476581, 0.033522350558872378, -0.13112027137759125, -0.13478379984035713, -0.23416130311702804, -0.17379580132236419, -0.18974789333555622, 0.16649953505637016, 0.21963323601338522, 0.28775437300883855, 0.013318329293152468, -0.059449722211754409, -0.21633114300735917, 0.077936325689886982, -0.23415549346577649, -0.18415548289109335, -0.2220604628402971, -1.203289777252857, -1.2269479805895944, -1.3731553217305832, -1.2989780551182524, -1.64116294353798, -1.9821307035675826, -2.4053777736536572, -2.4259185480628087, -1.4297091333258454, -0.020800703185307738, 0.44907296092364196, 0.1858384756397643, 0.16308782299108818, 0.18780650312631128, 0.16876214929227229, 0.15032501459981898, 0.020281061259495404, -0.0073538013157964212, -0.13702193484548603, -0.059120611570979247, -0.18176695609293375, -0.10265025207047287, -0.00066962538216844151, 0.36158774196732713, 0.23695911940697681, 0.13767875532837892, -0.097481704015832935, -0.1639311930895031, -0.2137091594940832, 0.3107157406422304, -0.63196711118812665, -1.2839600483166249, -1.5107274159689543, -2.0001525985045667, -1.8007661961299211, -1.5766976273496909, -1.557678973082544, -2.4077419089431698, -2.9212825837849552, -3.1544891598954266, -2.0740660744196822, -0.81459993031793032, -0.047691255584086843, 0.26053579199245114, 0.24817234249560396, 0.16271946063708537, 0.1524538089963024, 0.12402459410134949, -0.017228379259870755, -0.059581713131428661, -0.15954900238017725, -0.17203834043004781, -0.03585192275390215, -0.13566388733867182, 0.18529272549107739, 0.32789481378377766, 0.46505832474821029, 0.14493915164048596, -0.068344938706060163, -0.20692971953005135, -0.13321306237600447, -0.22642518078961474, -0.16864865516591712, -1.9309474679838514, -2.6427456963680735, -2.0042907354579094, -2.0679079684570931, -1.6478932560447959, -2.2937692343725686, -2.7282977589825266, -3.4150761242194196, -3.3782856809989692, -2.2222759116849189, -1.2352596784322352, 0.12380717441380877, 0.15120100371873849, 0.22205496825803597, 0.13376820638889372, 0.16581598470153905, 0.21189843131890046, 0.1205613668903118, -0.11944152964360859, -0.2844407665876833, -0.38089709050886922, -0.1254790861941803, -0.12552132795948226, -0.087366382764606329, 0.2312435028685467, 0.42806542968274885, 0.31289505893871633, -0.016555865669298363, -0.15232124758199445, -0.18026213329416074, -0.054197237250036744, -0.92650772032563145, -1.6748432066634964, -1.9667941627002861, -2.2073957813815404, -1.3988308931230464, -2.1872173045798968, -1.7701160974209202, -2.3995834975192563, -3.1079150257531603, -2.2759627738397428, -1.9867837341406698, -1.1991385138433992, 0.25261423619714135, -0.086883949036943853, 0.13841341497021575, -0.013991851319408978, 0.15451076629740176, 0.20777584924549833, 0.37732986906226257, -0.1983231816223982, -0.064701320250050057, -0.75809939060751286, -0.0056552094670687921, -1.0666730319382445, 0.5168021952817432, -0.059867579479421881, 0.57704911017089144, 0.073612585805408248, 0.16986402710259826, -0.27685168579682035, 0.23610433796619823, -0.25969657852055217, -0.34105804260323408, -2.3692424085383355, -0.13683987631719494, -0.60631225487832385, -3.0428213499062093, -1.4302518240108333, -1.0960340088024054, 0.33378719268138207, -1.462532482812221, -1.1311602269894572, -0.42160647485916913, -0.77282398113385165, 0.051358135035689895, -0.12451483496808054, 0.074560604448017945, -0.071400263514198398, 0.12710467168208478, 0.20183473326046905, 0.53582170174408328, -0.31918913661037829, 0.028167647498415164, -0.49375784053277538, -0.67155961060436897, -0.79896724757297555, -0.015611524439376389, 0.074148205591898927, 0.44602122877613765, 0.17221102955705844, 0.070854449837212188, -0.07178740615442418, 0.043350794355038948, 0.23127204626685866, -0.49437187443974595, -1.3068505835636535, -0.50505328014021666, -0.55162352804951942, -2.4095702665388461, -1.9119199452512292], "bottom": {"real": [4046.4241509904555, 28839.973879370627, 10191.512031448321, 4381.7455807293263, 2071.9548413915022, 1107.2825867454831, 528.34551553150311, 308.97330299730402, 185.81061014820492, 130.08108126519062, 87.65365496956511, 59.09553675383809, 43.506269455848397, 34.575222311681692, 30.798097452905282, 25.523061346781674, 25.951646714603154, 25.523061346781589, 30.798097452905211, 34.575222311681706, 43.506269455848361, 59.095536753838019, 87.653654969565167, 130.08108126519082, 185.81061014820492, 308.97330299730379, 528.34551553150334, 1107.2825867454833, 2071.9548413915031, 4381.7455807293318, 10191.512031448323, 28839.973879370646, 13493.224333003216, 16392.519951456161, 4871.8353885075767, 1571.3337493887716, 567.64096645153529, 373.6703632325283, 244.24660034041102, 142.79597933554817, 106.13580676907658, 75.858347622710525, 58.061322564190078, 39.854538473021549, 30.569538051408923, 25.094853941398878, 22.929757321982656, 20.808198660555963, 22.04888812794956, 23.622937534136554, 29.138683151168021, 38.082981074479143, 54.39934218587819, 77.826621492011839, 121.61239162949131, 177.63416429867098, 254.30481783551838, 430.47940336338183, 664.63525809030591, 1219.8477670929726, 1935.5749815900854, 3358.0980991141623, 6069.2175916916049, 8660.7039291701622, 15384.540019848313, 11175.737303494303, 2216.879483433469, 674.59859086304846, 308.57630937597452, 222.13525013253278, 144.62539946693838, 89.351789047349641, 66.200283784031811, 53.5880480094322, 38.104835124660447, 27.112718944065261, 23.033311632510099, 19.858863545618888, 19.408029208714364, 19.38215160767772, 20.871711217553681, 24.726583224259915, 29.429525390428484, 39.688247321389746, 54.026677368666491, 71.509189516532359, 109.7023701375058, 145.30501493896827, 183.84765943176359, 237.38092500065588, 353.51632607639505, 531.27032729465725, 719.17065363709912, 1367.9024800373177, 2857.7322293344778, 8625.0149751320059, 3926.8611003464521, 2444.3527388912776, 1028.8359899085383, 585.56166554295623, 332.57137935864864, 180.13762334769046, 105.17011934648103, 61.496465220623485, 45.504823244138095, 37.908460172493172, 30.846794326525625, 21.222093075405745, 18.718288087401802, 17.679602313216872, 17.409839934721365, 17.794391783727544, 18.55926931620083, 21.348409581307148, 24.39997962145603, 30.767061622228063, 38.103008129659166, 44.81251118779231, 61.577721983396955, 87.291485884508717, 106.99539363556599, 134.18057082099898, 169.37440787587974, 269.99443977661724, 364.56248799144709, 674.50839546082307, 1521.022929703357, 2634.7343778883865, 2024.849011267275, 1926.8239401023498, 1491.9478410044117, 611.83627918833088, 316.43682665588744, 155.99683828976544, 89.673379864750018, 50.013293885425135, 37.528009707176061, 32.4518569290627, 24.966146703509182, 19.130394004010906, 15.343856356149828, 14.843145659919786, 14.861292517540363, 15.036681247518919, 15.312687438440403, 17.138709070816013, 19.446116741695533, 22.850207518010233, 27.457440287528367, 32.581505308308088, 40.985078317877736, 54.412823137373685, 75.762437644265901, 94.733059346587339, 128.1467358253355, 182.29010502256293, 275.95498073034861, 527.32695578494008, 1132.5867520786235, 1866.4077869841046, 2266.7457843108455, 2107.8495169895441, 1234.6592459623437, 673.70954283481137, 266.6693703142779, 139.47307538222793, 66.730731113314476, 41.917980917088734, 31.2590211502941, 26.786032891522527, 20.35627716260823, 16.038244917569745, 14.499148814332527, 13.459360575928033, 13.144389071570192, 12.567429683418663, 12.230328765246885, 13.466217665828195, 15.328301760046475, 17.144679989146308, 19.68756841312236, 24.074134044705339, 32.727034612286992, 43.026808431859955, 59.193773906230369, 78.820512563030945, 92.994178544706472, 120.42091176843755, 201.9182636225097, 436.44287859172925, 877.8862778005057, 1439.6385876846614, 1649.9911393469049, 1699.4038415062987, 1039.2560892520887, 495.51661529689329, 235.81544665938515, 113.58561083280532, 60.921551746622946, 35.725757089786256, 25.024628727892466, 22.490208420088727, 17.759823791920191, 13.543616943986416, 12.938917306264663, 11.956364952724385, 11.421939705679733, 11.372903592178258, 11.032765269291394, 11.408229662647633, 12.481114469594095, 13.60275540468532, 14.91952183557448, 17.807798659576154, 23.277252196336814, 31.950664619854233, 47.416694920263616, 56.268912844615144, 64.959626427586997, 85.070809539003847, 130.82046704446515, 257.67571935262418, 627.46721263291658, 1194.1693767483914, 1080.1900960853154, 902.674413704009, 600.04055794738224, 333.23520458041997, 166.5653831933532, 88.946305547571072, 50.717393232745131, 31.897215329939996, 23.060146944216118, 18.579780562544169, 15.572760511446054, 13.273777678692191, 12.224913053368416, 11.68638594982613, 10.392044527527784, 10.422646713468026, 10.113778554702394, 10.225072497047023, 10.776357928238541, 11.471833692521193, 12.585855785544721, 15.131216045563061, 18.856673404562432, 24.858220592568422, 32.657280802203381, 43.037987696240307, 51.536289299313914, 59.08796022590117, 89.418846636419246, 168.44781050782811, 382.14409608709747, 745.27797642375992, 544.93523795856049, 546.63255943550212, 362.69938393816085, 222.4530875664997, 124.78354764285341, 69.155510455436144, 41.705006957506896, 26.952419331651356, 19.778555411511121, 17.743475715717917, 14.471795156401063, 12.765457059373892, 11.899864411981882, 10.85818004844373, 10.325708895539952, 9.5692719745256376, 9.2113480820863387, 9.0680329970290128, 9.7734432560375648, 10.488284402310196, 11.323197140674811, 13.23504887223821, 16.674941080314653, 20.771526297093455, 27.569417818570489, 33.103068481604573, 37.131609415223707, 47.964760430736398, 66.578817507603574, 119.94841754808802, 237.18123750436465, 409.50889944188236, 307.01018353832677, 288.66760291638428, 236.16368190120858, 154.32114106589464, 92.303773245695481, 55.468009578938926, 35.843010431224045, 24.692475316947775, 18.31794202383119, 15.815283825259236, 13.970653175227845, 12.321358605090134, 11.166914874614415, 10.532076178141539, 9.9738582700772742, 9.4395532322934326, 8.8524779931517035, 8.5960325163902862, 8.7233150994257276, 9.4605465058702709, 10.702831587760128, 11.695932356823622, 14.406509159208545, 18.893042693096525, 25.031728162044864, 28.237283751764654, 32.110154440123182, 38.781782989560291, 56.412497176172337, 92.156945934839797, 157.10935603874077, 244.24925081430641, 218.20881258539546, 216.90433976724358, 169.13695858014356, 112.62100758585845, 68.70530790516959, 45.982361360241526, 32.725373555898344, 22.221572369125827, 17.135020014783734, 14.281960328360523, 12.699315839076576, 11.637118060780567, 11.004832210877884, 10.393382355075936, 9.6259602166533789, 8.7652013845999868, 8.5650120282362092, 8.5854476517741869, 8.1851518687531879, 9.1270872628576836, 9.8383977040140795, 11.693775785132257, 13.287947209975439, 16.544820171465705, 21.672488061489553, 27.762087103200397, 29.796933806391767, 35.443188490268959, 51.826480475596476, 76.692136618774384, 114.45554660359461, 172.81330831382385, 150.57608076172548, 151.07347077509746, 119.80060075739978, 84.307080896770614, 55.59442395215062, 38.954469932130465, 27.855857296119165, 21.147383956632677, 16.095362427853317, 14.114901096214023, 12.272097096384341, 11.279235865220194, 10.45557624282722, 10.213403723979409, 9.4352540004127672, 9.059591562681522, 8.4285767722705884, 8.2189676916739653, 8.2483207838968369, 8.7272133851807343, 9.3853417746714207, 10.436988631508529, 11.737372360714012, 14.160123000210135, 18.959579242189701, 24.173697545434358, 27.627516713161423, 33.591531685669004, 45.297439984936638, 65.897539497304663, 88.610944521286385, 122.51594786973793, 102.9717174324289, 99.771144171631136, 80.254636450195903, 61.009511746666256, 44.786912913807178, 34.271024500323179, 25.65851527359349, 19.184194785168692, 15.369946764821139, 13.384363033613122, 12.174478369218367, 10.905903566261369, 10.181651684644681, 9.6408755952533021, 9.5742304532973588, 8.9763308722412098, 8.5493032688069821, 8.0644484764315241, 8.4276865988342919, 8.7290963397981098, 9.1210926884309647, 10.045472592156113, 11.11042960636143, 12.723025686618605, 15.905816263070196, 20.709491045732211, 24.791931496783274, 30.865414152401307, 41.835714185623189, 55.039237230593706, 69.947250962386548, 86.305656954166849, 70.246077416654487, 70.163190967731239, 60.941585457354833, 46.988681551588527, 37.426824229947464, 31.105114654781531, 24.717957509432271, 18.191253220796238, 14.40571246916225, 12.794837539520243, 11.45286867499644, 10.555233980671725, 10.138595490186225, 9.7617939326440126, 9.2945114067021706, 9.1978519570897408, 8.5269704682665068, 8.3694986947733589, 8.3900850601209847, 8.9019780110016278, 9.4993224051697176, 10.189344774081897, 11.038776504531349, 12.139382952337165, 14.296273465828305, 18.325479810549485, 23.245126565071455, 28.658675517780157, 38.227879918404916, 50.026933715114076, 59.913478880080035, 67.142884728350211, 60.673200962744687, 56.006191670589025, 48.952383807337931, 41.877289900824969, 35.563752651142892, 29.381802508508265, 23.323351055229473, 18.385352146785323, 14.386074460433269, 11.971768024825069, 10.813949701229296, 10.104265892334448, 9.7873837360525968, 9.7876450182420029, 9.3736570608881902, 9.1067837514303367, 8.8782742568475381, 8.4108604655156682, 8.5145291911969032, 9.1444638633789328, 9.5903687569174956, 10.050972673200409, 10.599176866339214, 12.029252308933458, 13.885440808202775, 16.933840539652099, 20.949767453800131, 27.392670445772911, 35.246945811604022, 44.844494652773115, 53.527920120533459, 59.511906457614529, 53.048047546158344, 49.667902591204928, 45.161821768091436, 39.040569237963304, 34.153498370766542, 28.812200326236947, 21.915204963295363, 16.825291542921018, 14.194481006765461, 11.707465544074312, 10.438485210613589, 9.8151245648739263, 9.283134914271356, 9.0821420578250009, 9.0470505359514384, 9.0924089982219396, 8.8466944313913523, 8.4735939062643375, 8.4980702515250215, 9.0113445722107848, 9.2898710387292809, 9.9575678866832327, 10.426127211956205, 11.223822839806607, 13.773251241827809, 16.688691177663944, 20.746301629724744, 26.320191080313084, 33.979868436578599, 42.0788988747152, 48.313306819757166, 52.481937610238305, 49.070609767594966, 49.766679020971374, 46.544272852318578, 40.229040805773415, 32.559839637781486, 26.180018982316895, 21.083604085221012, 16.97356072267355, 13.301411970448795, 11.264067238060504, 10.255581922596939, 9.6536213682112031, 9.2153774062964224, 8.7468110761182825, 8.4356542718375049, 8.7323846743622209, 8.8458599078381237, 8.7323846743622209, 8.4356542718375032, 8.7468110761182896, 9.2153774062964278, 9.653621368211212, 10.255581922596944, 11.264067238060512, 13.301411970448795, 16.973560722673543, 21.083604085221008, 26.180018982316881, 32.559839637781494, 40.22904080577338, 46.544272852318571, 49.766679020971331, 53.048047546158344, 52.481937610238198, 48.313306819757052, 42.0788988747152, 33.979868436578577, 26.320191080313087, 20.746301629724748, 16.688691177663959, 13.773251241827822, 11.22382283980661, 10.426127211956201, 9.9575678866832256, 9.2898710387292791, 9.0113445722107919, 8.4980702515250268, 8.4735939062643357, 8.8466944313913505, 9.0924089982219467, 9.0470505359514402, 9.0821420578250063, 9.2831349142713542, 9.815124564873928, 10.438485210613582, 11.707465544074319, 14.194481006765461, 16.825291542921001, 21.915204963295366, 28.81220032623694, 34.153498370766549, 39.040569237963282, 45.161821768091372, 49.667902591204999, 60.67320096274468, 59.511906457614572, 53.527920120533402, 44.844494652773072, 35.246945811604007, 27.392670445772925, 20.949767453800135, 16.933840539652095, 13.88544080820277, 12.029252308933453, 10.599176866339214, 10.0509726732004, 9.5903687569174885, 9.1444638633789328, 8.5145291911969103, 8.4108604655156718, 8.8782742568475346, 9.1067837514303385, 9.3736570608881848, 9.7876450182420012, 9.7873837360526021, 10.10426589233446, 10.813949701229305, 11.971768024825074, 14.386074460433273, 18.385352146785333, 23.323351055229466, 29.381802508508251, 35.563752651142877, 41.877289900824962, 48.952383807337874, 56.006191670588912, 70.246077416654288, 67.142884728350111, 59.913478880079964, 50.026933715114062, 38.227879918404923, 28.658675517780189, 23.24512656507147, 18.325479810549478, 14.296273465828305, 12.139382952337156, 11.038776504531354, 10.189344774081897, 9.4993224051697229, 8.9019780110016331, 8.3900850601209847, 8.3694986947733572, 8.5269704682665068, 9.197851957089739, 9.2945114067021635, 9.7617939326440144, 10.138595490186225, 10.555233980671725, 11.452868674996441, 12.794837539520238, 14.405712469162248, 18.191253220796249, 24.717957509432264, 31.105114654781534, 37.426824229947449, 46.988681551588492, 60.941585457354776, 70.163190967731154, 102.97171743242879, 86.305656954166807, 69.947250962386491, 55.039237230593784, 41.835714185623168, 30.865414152401325, 24.791931496783278, 20.709491045732214, 15.905816263070196, 12.723025686618604, 11.110429606361421, 10.045472592156107, 9.1210926884309735, 8.7290963397981116, 8.4276865988342937, 8.0644484764315258, 8.5493032688069821, 8.9763308722412134, 9.5742304532973623, 9.6408755952533056, 10.181651684644681, 10.905903566261369, 12.174478369218367, 13.384363033613125, 15.369946764821144, 19.184194785168689, 25.658515273593498, 34.271024500323144, 44.78691291380715, 61.009511746666178, 80.25463645019579, 99.771144171631008, 150.57608076172505, 122.51594786973776, 88.610944521286228, 65.897539497304635, 45.297439984936574, 33.591531685669025, 27.627516713161402, 24.173697545434354, 18.959579242189701, 14.160123000210131, 11.737372360714007, 10.436988631508525, 9.3853417746714172, 8.7272133851807325, 8.2483207838968262, 8.2189676916739689, 8.4285767722705902, 9.0595915626815202, 9.4352540004127654, 10.213403723979411, 10.455576242827226, 11.279235865220191, 12.272097096384336, 14.114901096214016, 16.095362427853331, 21.147383956632702, 27.855857296119162, 38.954469932130408, 55.594423952150585, 84.307080896770429, 119.80060075739968, 151.07347077509721, 218.20881258539524, 172.81330831382382, 114.45554660359451, 76.692136618774427, 51.826480475596433, 35.443188490268959, 29.796933806391745, 27.762087103200372, 21.672488061489549, 16.544820171465698, 13.287947209975444, 11.693775785132251, 9.8383977040140866, 9.1270872628576836, 8.1851518687531897, 8.5854476517741798, 8.5650120282362074, 8.7652013845999939, 9.6259602166533789, 10.393382355075921, 11.004832210877884, 11.637118060780562, 12.699315839076572, 14.281960328360505, 17.135020014783741, 22.221572369125806, 32.725373555898322, 45.982361360241477, 68.705307905169562, 112.62100758585837, 169.13695858014344, 216.90433976724287, 307.01018353832563, 244.24925081430612, 157.1093560387404, 92.156945934839754, 56.412497176172316, 38.781782989560298, 32.110154440123168, 28.237283751764654, 25.031728162044857, 18.893042693096504, 14.406509159208543, 11.695932356823613, 10.702831587760132, 9.4605465058702674, 8.7233150994257205, 8.5960325163902844, 8.8524779931517052, 9.4395532322934272, 9.9738582700772813, 10.53207617814155, 11.166914874614413, 12.321358605090143, 13.970653175227838, 15.815283825259229, 18.317942023831186, 24.692475316947778, 35.843010431224023, 55.468009578938812, 92.303773245695368, 154.32114106589427, 236.16368190120789, 288.66760291638354, 544.93523795856049, 409.50889944188282, 237.18123750436465, 119.9484175480882, 66.578817507603574, 47.964760430736455, 37.131609415223693, 33.103068481604559, 27.569417818570489, 20.771526297093434, 16.674941080314646, 13.235048872238199, 11.323197140674804, 10.488284402310184, 9.7734432560375648, 9.068032997029011, 9.2113480820863387, 9.5692719745256465, 10.325708895539957, 10.85818004844373, 11.899864411981884, 12.765457059373892, 14.471795156401072, 17.743475715717903, 19.778555411511121, 26.952419331651342, 41.705006957506882, 69.155510455435987, 124.78354764285341, 222.45308756649936, 362.69938393816079, 546.63255943550212, 1080.190096085312, 745.27797642375788, 382.14409608709587, 168.44781050782805, 89.418846636419218, 59.087960225901135, 51.536289299313893, 43.037987696240307, 32.657280802203374, 24.858220592568383, 18.8566734045624, 15.131216045563052, 12.585855785544725, 11.471833692521184, 10.776357928238532, 10.225072497047019, 10.113778554702403, 10.422646713468026, 10.39204452752778, 11.686385949826136, 12.224913053368411, 13.273777678692191, 15.572760511446033, 18.579780562544141, 23.060146944216122, 31.897215329939918, 50.717393232745025, 88.946305547570788, 166.56538319335294, 333.23520458041884, 600.04055794738088, 902.6744137040065, 1649.9911393469013, 1194.1693767483896, 627.46721263291568, 257.67571935262464, 130.82046704446515, 85.070809539003903, 64.95962642758694, 56.268912844615201, 47.416694920263595, 31.950664619854226, 23.277252196336782, 17.807798659576147, 14.919521835574468, 13.60275540468532, 12.481114469594081, 11.408229662647638, 11.032765269291394, 11.37290359217827, 11.421939705679749, 11.956364952724407, 12.938917306264656, 13.543616943986398, 17.759823791920141, 22.490208420088635, 25.024628727892473, 35.725757089786228, 60.92155174662291, 113.58561083280503, 235.81544665938503, 495.51661529689198, 1039.2560892520876, 1699.403841506296, 2266.7457843108423, 1439.6385876846614, 877.88627780050422, 436.44287859172971, 201.91826362250967, 120.42091176843758, 92.994178544706443, 78.820512563031016, 59.193773906230312, 43.026808431859891, 32.72703461228695, 24.074134044705318, 19.687568413122339, 17.144679989146301, 15.32830176004647, 13.466217665828177, 12.230328765246888, 12.567429683418707, 13.144389071570203, 13.459360575928054, 14.499148814332536, 16.038244917569731, 20.356277162608194, 26.786032891522385, 31.259021150294068, 41.917980917088691, 66.730731113314405, 139.47307538222745, 266.66937031427761, 673.70954283481024, 1234.659245962343, 2107.8495169895405, 2024.849011267276, 1866.4077869841062, 1132.5867520786235, 527.32695578494054, 275.9549807303485, 182.29010502256293, 128.14673582533564, 94.733059346587495, 75.762437644265887, 54.412823137373678, 40.985078317877729, 32.581505308308067, 27.457440287528364, 22.850207518010212, 19.446116741695526, 17.138709070816009, 15.312687438440404, 15.036681247518965, 14.861292517540395, 14.843145659919811, 15.343856356149836, 19.130394004010878, 24.966146703509185, 32.451856929062608, 37.528009707176075, 50.013293885425036, 89.673379864749862, 155.99683828976509, 316.43682665588739, 611.83627918833008, 1491.9478410044112, 1926.8239401023493, 3926.8611003464503, 2634.734377888386, 1521.0229297033557, 674.50839546082398, 364.56248799144686, 269.99443977661741, 169.37440787587963, 134.18057082099915, 106.99539363556599, 87.291485884508702, 61.577721983396906, 44.812511187792317, 38.103008129659166, 30.767061622228066, 24.399979621456033, 21.348409581307155, 18.55926931620083, 17.794391783727576, 17.409839934721397, 17.67960231321689, 18.718288087401788, 21.222093075405763, 30.846794326525586, 37.908460172493079, 45.504823244138095, 61.496465220623335, 105.17011934648093, 180.13762334768973, 332.57137935864853, 585.56166554295532, 1028.8359899085369, 2444.3527388912739, 15384.540019848309, 8625.0149751320096, 2857.732229334476, 1367.9024800373199, 719.17065363709889, 531.27032729465782, 353.51632607639499, 237.38092500065625, 183.84765943176362, 145.3050149389683, 109.70237013750581, 71.509189516532217, 54.026677368666469, 39.688247321389689, 29.429525390428473, 24.726583224260004, 20.871711217553678, 19.382151607677731, 19.408029208714364, 19.858863545618949, 23.033311632510113, 27.11271894406525, 38.10483512466044, 53.588048009431979, 66.200283784031811, 89.351789047349371, 144.62539946693829, 222.13525013253218, 308.57630937597452, 674.59859086304834, 2216.8794834334685, 11175.737303494294, 13493.224333003214, 8660.703929170164, 6069.217591691604, 3358.0980991141591, 1935.5749815900851, 1219.8477670929722, 664.63525809030602, 430.47940336338263, 254.30481783551838, 177.63416429867087, 121.61239162949126, 77.826621492011839, 54.399342185878204, 38.082981074479164, 29.138683151168006, 23.622937534136597, 22.04888812794956, 20.808198660555991, 22.92975732198266, 25.094853941398917, 30.569538051408909, 39.854538473021513, 58.061322564190043, 75.858347622710383, 106.13580676907651, 142.795979335548, 244.24660034041099, 373.67036323252819, 567.64096645153575, 1571.3337493887695, 4871.835388507573, 16392.519951456165], "imag": [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.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, 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.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, 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.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, 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.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, 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.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, 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.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, 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.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, 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.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, 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.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, 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.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, 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.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, 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.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, 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.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, 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.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, 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.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, 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.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, 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]}, "imag": [0.0, -1.343901621327011, 1.7218333249394571, 1.3937858919791224, -0.90478486773452105, 0.99560837280124848, 0.13374486301187097, 0.79781790598886937, 0.081235430122062774, 0.47338465820086184, -0.078534664439216209, 0.29500119331967589, -0.62479162763734286, 0.29517170974740459, -1.8712573358384692, 0.14096520515743682, 0.0, -0.14096520515741828, 1.8712573358384816, -0.29517170974737811, 0.62479162763733731, -0.29500119331966146, 0.078534664439223051, -0.47338465820085962, -0.081235430122062774, -0.79781790598886004, -0.13374486301187369, -0.99560837280124848, 0.90478486773452083, -1.3937858919791226, -1.7218333249394557, 1.3439016213270112, 1.5871307700950068, 0.56370110925886319, 1.2603198064423482, 2.9317402483699255, -0.84090846562801591, 0.28395441021550888, 1.0393523450590114, 0.83104911233799517, 0.57334259680943678, 0.30043904784975134, 0.29266755430531527, 0.082930104064024152, -0.36502835420313379, -0.76213554623438207, -0.54316838647957832, -0.66028179246101926, 0.20250391456576916, -0.059393044635645806, 0.9730252602081445, -0.01782962412134724, 0.18933865423621773, 0.011846708470834844, 0.014269719747672759, -0.16281560265463554, -0.24410560657714067, -0.34963232308526365, -0.32234943120999277, -0.6691127915152365, 0.14162995430492473, -0.96909874957635578, -1.0446282489208472, 1.3612809629252947, 0.70464907960903156, 1.644656498115789, 1.457626495523533, -0.6840361527612806, -0.68147470897196205, 0.73118573872942638, 1.2398159392319572, 1.2736175855463174, 0.65550663858936109, 0.45897332874861019, 0.24948129249627171, 0.22959418801218681, -0.67355449112520815, -0.78917379441405089, -0.83366315887398401, -0.022795944141155908, 0.15753196960053301, 0.50836195321582456, 0.16292155588892338, 0.14047533322536612, -0.029004083819245446, 0.042892010327960466, -0.084780328674450303, -0.13217055914433321, -0.30971168558439593, -0.44061350110378666, -0.59380988893293396, -0.46719027726302742, -1.2068396187631398, -0.94969408752542273, 0.28960616895899027, -0.40038203546320883, 0.55620249274438927, 0.14065731983379595, 1.390858139437829, -0.67833342052765033, -2.0926714021100303, 1.5120873610545131, 1.7251253398279642, 1.0499886203647506, 0.6413261932720733, 0.43315407205712014, 0.32584150801434064, 0.17968537990933128, -0.27887473465086693, -0.72646685328097149, -0.95200274282553721, -0.38747270801185796, 0.31172559850957127, 0.3167238274644899, 0.25925756638025876, 0.20404659434537992, 0.19201780058118942, 0.0025274006864131854, -0.20254250312507205, -0.30146681989018398, -0.45156398868756126, -0.71583959398165176, -0.78636343748881254, -1.3089140888320636, 0.41393919421363429, -0.92308378001125058, -0.96086768695066838, 0.99489496750979101, -0.39381772120025876, -0.59264738582705545, -1.1161873115341066, -0.38954314931717815, 0.15776662530084892, 0.39428020304678685, 1.7089894615168126, 0.92868491010646026, 0.350973234838865, 0.32125288047075679, 0.23669588269358602, 0.19592809956108717, -0.32646969875093118, -0.5617213523679232, -0.76596137582739887, -0.4848448097808058, 0.0035984972735877987, 0.36234031342999445, 0.02584515038201295, 0.38132345964413561, 0.29172235696712762, 0.10460468586389386, -0.14942504329756173, -0.23406484190568319, -0.59702583417138988, -0.64791716309340031, -1.1972380302487249, -0.37081056871520385, 0.31028937719203986, -0.11181138224479611, 0.050224150041196312, -0.59242819035998506, -0.4703174557375312, -0.55567065990801068, -0.18073895078348806, -0.07286620180284567, 0.9080135456055427, 1.3448759333642528, 0.56391746646770735, 0.68824563709365816, 0.27054447491545203, 0.18555506064923469, 0.21628766080629094, 0.089227696371118645, -0.1330464412169812, -0.51044075389216448, -0.57482956329522528, -0.49992842173388902, -0.0088882269741786465, -0.026119953804469152, 0.16649307508904443, 0.18021017930701566, 0.24129551707937363, 0.051414766220490717, -0.054409237913703348, -0.21354052285348152, -0.34065461819243753, -0.83215952955458006, -0.65455151443418824, -0.51711748874533736, -0.34193161983249143, 0.25991967791421511, -0.31922838969311168, -0.25096233231074472, -0.019538834540300996, 0.23386297177233037, 0.39736821511961345, 0.72603823847118543, 0.8168297825020705, 1.0763583447726135, 0.80611388127401196, -0.023349196100613815, 0.09911450222934183, 0.11136104528246665, 0.11912886110102348, 0.1510441091194204, -0.10294245821664937, -0.34339582552474845, -0.46071517851602106, -0.27454988477746128, -0.021291149638310566, 0.035818571775215378, 0.08165077597052256, 0.19593247304969552, 0.16021249355536668, 0.073411101811457824, -0.094413661460628892, -0.14774431296435828, -0.3788677957633147, -0.38953231590523063, -0.62892221563014938, -0.80219655994233319, 0.19764870263775744, -0.28620163890053252, 0.041738811618785537, -0.047502831671303453, 0.42759360787810174, 0.44353340330745888, 0.61232760985457502, 0.70207820166905466, 0.72192603666395361, 0.63928791416871467, 0.32589261306510392, 0.17268517789923485, -0.11832252230060911, 0.049391580905339259, 0.12347320818582375, 0.064697981434016727, -0.0067102091687047593, -0.27370819742589092, -0.26939466873920287, -0.25176222060998998, 0.0081310228529853402, 0.013089808045657288, 0.185105158015618, 0.11713478908555769, 0.20974664985683705, 0.048745778368168922, -0.0069359534603168627, -0.18083894269546222, -0.15907734702039189, -0.30490326972545728, -0.49525043110711681, -0.20633977154543071, -0.28929558460304977, 0.017255660868048289, 0.089250558912840242, 0.34349774583430781, 0.38277205043588519, 0.56772102070325814, 0.48811475177501612, 0.43659704639067964, 0.38858095560717315, 0.35469216713625445, 0.11095078972724678, -0.050354098986562471, 0.010426074631633324, -0.023032548262322892, 0.068558023511485697, 0.1199625535177883, -0.0044347552049944488, -0.14323623171577524, -0.2742488887234425, -0.15059247824174998, -0.18695930341705305, 0.068136880204083733, 0.049162011568203073, 0.16362595169702937, 0.078325720975578078, 0.11153460033842358, -0.10346450949096449, -0.039250261082814021, -0.12027128091306288, -0.23113762225192683, -0.07885965728132803, -0.25982980909746989, -0.11219308206942701, -0.19372413199270677, 0.1843821378255476, 0.22544536191476028, 0.22838873802709003, 0.11856768480607156, 0.20011010622694389, 0.16443500436191505, 0.13441036107213369, 0.15600995797323181, 0.029984980792926118, -0.017950425588896139, -0.095997178609832007, 0.045815559155676679, 0.050600401411128038, 0.062555070152262096, 0.095362679574156284, -0.25884721081868178, -0.19352665675464722, -0.35758313393883445, 0.057241994101256972, -0.074489797691212556, 0.15760636776309309, 0.077110294424560424, 0.21793581355625327, -0.085384156728057797, 0.054278095118519401, -0.063513516552257218, -0.13925876777247995, -0.053090482149624127, -0.088550664314818353, 0.097053178020475875, 0.021982682491266895, -0.032057043772553598, 0.011606155190390474, 0.20297398899260674, 0.087137707937781944, 0.14235450986309658, -0.0066344290522644652, 0.069443551113326479, 0.037974760198136455, 0.02723212012252952, -0.030406089689394462, -0.062891439826322393, -0.033462702565164315, -0.13091343010011852, 0.18662643567548856, 0.14580799486104234, -0.055902479292620696, -0.12813917376287484, -0.43706544906097528, -0.097926711565598012, -0.17130544619864244, 0.30727693305691806, -0.2953735036217468, 0.22056405751825581, -0.16529753202987246, 0.34047455883436423, -0.0020829156573361745, -0.14775664020163451, -0.074518551996532553, -0.14850320507536691, -0.057283952975165524, 0.064665418468806371, 0.23511892751228192, 0.11870789775778592, 0.0625549454189092, -0.031298024311669038, 0.0064402102662661845, -0.079082063664820082, 0.0553675188881671, 0.025089334126077875, 0.063800091749494747, 0.015988824093570549, -0.048545356942180602, -0.11558972094679192, -0.097487343329346582, -0.00049492928166827938, -0.18157168721539482, 0.33942288969170681, 0.30522386319855388, -0.54639589537101751, 0.013830571830100688, -0.38850732372171304, 0.223075916963486, -0.31865288748874443, 0.25745374979707547, -0.81885347149607268, 0.50855168910609783, 0.20195166784419227, -0.069785743671890318, 0.050884179954965268, -0.18377202523753672, -0.17303565260659334, -0.15924096907201105, 0.092146932205194695, 0.26379835890783954, 0.35934781180257075, 0.24329566614587647, 0.18564601960109514, 0.24223475523068938, 0.28967646870392649, 0.15967526911861643, 0.22365254766781259, 0.12185893624650075, 0.070105150765122456, -0.045495054958742086, -0.13016925945874308, -0.12331107551299306, -0.096585989040329473, 0.22919036999990153, -0.39865574246315477, 0.3675558227752026, 0.45597314967635888, -0.93227329954448013, 0.32110784375924512, -0.59160024067907024, 0.39469180639349893, -1.5810043928614619, 0.71926168426275527, -0.095920343398476549, -0.084877145937512208, 0.40399573862898452, -0.041743397742653787, -0.10303861084867461, -0.21220001866353477, -0.17318676777643013, 0.015792824133968684, 0.37994714934071439, 0.4573031649737595, 0.48491463219236358, 0.278045596991639, 0.33099751793182702, 0.073461819418744675, 0.30445717300203839, 0.34815332433352569, 0.27336662525128713, 0.050113511094951838, -0.059405844632707393, -0.16261143474742229, -0.10891422081227681, -0.075070297171157971, 0.15348950297637756, 0.63132994551184463, -0.93604459898777692, 0.42325697055405742, 1.1782712312395338, -1.6700526640562563, 0.67307548012867768, -2.0365876460209691, 0.69665186973993298, -0.3990336398782886, -0.77751104168880314, 0.5628167675812451, 0.044468991083659551, 0.081278132745909976, -0.070993394358423723, -0.091852860366211056, -0.10956166698887557, 0.072941493094735049, 0.35167328896657912, 0.63488067579895824, 0.56199684605205058, 0.60627707274502263, -0.018970197624819329, 0.37668655809680845, 0.22317003729918369, 0.17596357423928666, 0.18202109891962201, 0.038230887694388455, -0.10475039750351335, -0.15123171993121909, -0.11278544639649389, 0.054110895720760221, 0.23852479976301316, 0.30802887330694756, 0.9587111952302938, -1.4503952980081434, -0.061458391503499687, 2.1389978076683529, -3.5142346308062073, 1.6764175122847729, -0.63252660757872936, -1.1970497991660358, 0.46027494328631885, -0.38868529039399474, 0.063066133758830412, 0.085024034480974467, 0.047630852690686495, -0.022775175196356016, 0.011847923870825085, 0.13095780969018636, 0.39870906011464996, 0.54100133271840178, 0.62859642257501991, 0.12859489098386362, -0.17371304193339687, -0.77135662792152559, -0.35696964892202537, -0.15350152251372465, -0.081108427029901481, -0.12890403553126065, -0.14048874638904316, -0.18368108831833277, -0.13143015225876853, 0.037318187986402011, 0.39815350666418903, 0.44685069559938601, 0.29854169122462937, 1.0193515924216456, -2.1696976832709978, -1.5476694374721527, 4.1115013597100623, -1.6066056279080296, -1.1129988398741206, 0.94641351902713078, -0.66464487182371434, -0.22405122030787003, -0.16845135046504239, 0.10281428632219461, 0.12776142939872864, 0.10903691838775739, 0.097477148948306502, 0.19622512970077355, 0.37581890109000032, 0.58152174984392169, 0.57588244896775898, 0.56835821427965394, 0.0, -0.075660591040101741, -0.5319087481065502, -0.49066506338765509, -0.25388521774435541, -0.17759782612549996, -0.17342105765811164, -0.17172379067488869, -0.17163733194043357, -0.0096917261033460274, 0.23320936684713756, 0.61544163247884909, 0.23031783223894131, 0.4504667163321609, -0.25422186154383031, -1.2338903723029762, 0.0, 1.2338903723029679, 0.25422186154382892, -0.45046671633216256, -0.23031783223894184, -0.61544163247884998, -0.2332093668471385, 0.0096917261033450074, 0.17163733194043357, 0.17172379067488885, 0.17342105765811225, 0.17759782612550043, 0.25388521774435546, 0.49066506338765642, 0.53190874810654976, 0.075660591040102837, 0.17371304193345374, -0.56835821427958444, -0.57588244896772234, -0.58152174984391114, -0.37581890108999716, -0.19622512970076919, -0.097477148948305531, -0.10903691838775691, -0.12776142939873006, -0.10281428632219579, 0.16845135046504131, 0.22405122030786861, 0.66464487182371257, -0.94641351902713855, 1.1129988398741191, 1.6066056279080259, -4.1115013597100578, 1.5476694374721462, 2.1696976832709982, -1.0193515924216472, -0.29854169122463242, -0.44685069559938834, -0.39815350666419097, -0.037318187986404149, 0.13143015225876697, 0.18368108831833294, 0.14048874638904385, 0.12890403553126736, 0.081108427029909794, 0.15350152251374438, 0.35696964892206617, 0.77135662792155557, 0.018970197624865574, -0.12859489098383081, -0.62859642257500314, -0.54100133271839856, -0.39870906011464824, -0.13095780969018578, -0.011847923870824886, 0.022775175196357359, -0.047630852690687051, -0.085024034480974689, -0.063066133758832563, 0.38868529039399197, -0.46027494328632251, 1.1970497991660347, 0.63252660757872814, -1.6764175122847713, 3.5142346308062082, -2.1389978076683618, 0.061458391503496308, 1.4503952980081398, -0.95871119523029713, -0.30802887330694667, -0.2385247997630148, -0.054110895720761498, 0.11278544639649313, 0.15123171993121864, 0.1047503975035141, -0.038230887694384028, -0.18202109891961496, -0.17596357423927469, -0.2231700372991606, -0.37668655809676688, -0.33099751793180054, -0.60627707274499654, -0.56199684605203359, -0.63488067579895024, -0.35167328896657507, -0.072941493094733675, 0.1095616669888755, 0.091852860366211805, 0.07099339435842339, -0.08127813274590924, -0.044468991083660724, -0.56281676758124888, 0.77751104168880336, 0.39903363987828711, -0.69665186973992854, 2.0365876460209633, -0.67307548012867546, 1.6700526640562572, -1.17827123123954, -0.42325697055405653, 0.93604459898777859, -0.63132994551184651, -0.15348950297637845, 0.075070297171156097, 0.10891422081227575, 0.16261143474742193, 0.059405844632708517, -0.050113511094947612, -0.27336662525128258, -0.34815332433351742, -0.30445717300202041, -0.073461819418725136, -0.24223475523068566, -0.278045596991634, -0.48491463219235625, -0.45730316497375445, -0.37994714934071183, -0.015792824133968708, 0.17318676777642958, 0.21220001866353638, 0.10303861084867472, 0.04174339774265514, -0.40399573862898636, 0.084877145937511819, 0.095920343398476396, -0.71926168426275106, 1.5810043928614652, -0.39469180639349549, 0.59160024067907002, -0.32110784375924395, 0.93227329954447902, -0.4559731496763611, -0.36755582277520088, 0.39865574246315755, -0.22919036999990147, 0.096585989040328876, 0.12331107551299252, 0.1301692594587433, 0.045495054958742745, -0.070105150765121721, -0.12185893624649984, -0.22365254766781101, -0.15967526911861513, -0.28967646870392255, -0.0064402102662611729, -0.18564601960108706, -0.24329566614587189, -0.35934781180256659, -0.2637983589078372, -0.092146932205193599, 0.15924096907201093, 0.17303565260659445, 0.18377202523753683, -0.05088417995496395, 0.069785743671890568, -0.20195166784419286, -0.50855168910609727, 0.81885347149607191, -0.25745374979707175, 0.3186528874887527, -0.22307591696348483, 0.38850732372171648, -0.013830571830101068, 0.54639589537102196, -0.30522386319855499, -0.33942288969170481, 0.18157168721539607, 0.0004949292816654663, 0.097487343329345874, 0.11558972094679136, 0.04854535694218131, -0.015988824093569717, -0.06380009174949508, -0.025089334126078205, -0.055367518888164394, 0.079082063664820748, -0.087137707937777115, 0.031298024311669809, -0.062554945418906743, -0.1187078977577844, -0.23511892751228033, -0.064665418468805788, 0.057283952975166051, 0.14850320507536743, 0.074518551996532748, 0.14775664020163706, 0.0020829156573371555, -0.34047455883436323, 0.16529753202987046, -0.22056405751825445, 0.29537350362174863, -0.30727693305691484, 0.17130544619864224, 0.097926711565602301, 0.43706544906097711, 0.12813917376287753, 0.055902479292622584, -0.14580799486104357, -0.18662643567548898, 0.13091343010011883, 0.03346270256516358, 0.062891439826322837, 0.030406089689394671, -0.027232120122529239, -0.037974760198136892, -0.069443551113326632, 0.0066344290522653612, -0.14235450986309153, -0.22838873802708684, -0.2029739889926063, -0.011606155190393872, 0.032057043772551565, -0.021982682491265355, -0.097053178020474681, 0.088550664314818187, 0.053090482149624633, 0.13925876777248047, 0.063513516552260146, -0.054278095118517826, 0.08538415672805795, -0.21793581355625447, -0.077110294424558939, -0.15760636776309189, 0.074489797691215873, -0.057241994101257694, 0.35758313393883939, 0.19352665675464989, 0.25884721081868634, -0.095362679574154757, -0.062555070152259029, -0.050600401411129904, -0.04581555915567774, 0.095997178609832215, 0.0179504255888953, -0.029984980792924155, -0.15600995797322956, -0.13441036107213314, -0.16443500436191227, -0.20011010622694014, -0.1185676848060674, -0.38277205043588519, -0.22544536191476122, -0.18438213782554774, 0.19372413199270522, 0.11219308206942717, 0.25982980909746933, 0.078859657281328127, 0.23113762225192824, 0.12027128091306288, 0.03925026108281611, 0.10346450949096535, -0.11153460033842286, -0.078325720975578092, -0.16362595169702793, -0.049162011568201006, -0.06813688020407746, 0.18695930341705305, 0.15059247824175628, 0.27424888872344572, 0.14323623171577923, 0.0044347552049957819, -0.11996255351778637, -0.068558023511484198, 0.023032548262321723, -0.010426074631633324, 0.05035409898656467, -0.11095078972724633, -0.35469216713625396, -0.38858095560717304, -0.43659704639067964, -0.48811475177501651, -0.56772102070325836, -0.42759360787810491, -0.34349774583431025, -0.089250558912845224, -0.017255660868053985, 0.28929558460304938, 0.20633977154543065, 0.49525043110711575, 0.30490326972545867, 0.15907734702039197, 0.18083894269546641, 0.0069359534603191542, -0.048745778368166057, -0.20974664985683683, -0.11713478908555536, -0.18510515801561447, -0.013089808045645399, -0.0081310228529865667, 0.25176222061000281, 0.2693946687392072, 0.27370819742589902, 0.0067102091687078758, -0.064697981434012536, -0.12347320818582255, -0.049391580905336498, 0.11832252230060807, -0.17268517789922963, -0.32589261306509937, -0.639287914168712, -0.72192603666395261, -0.70207820166905555, -0.61232760985457479, -0.44353340330746277, 0.019538834540299969, 0.047502831671299713, -0.041738811618788646, 0.28620163890052958, -0.19764870263775797, 0.80219655994233652, 0.62892221563015416, 0.38953231590523568, 0.37886779576331475, 0.14774431296436413, 0.094413661460632833, -0.073411101811453133, -0.16021249355536557, -0.19593247304968892, -0.081650775970513151, -0.035818571775193361, 0.021291149638310077, 0.27454988477748077, 0.46071517851603194, 0.34339582552475939, 0.10294245821665464, -0.15104410911941546, -0.11912886110102075, -0.1113610452824651, -0.099114502229341719, 0.023349196100618572, -0.80611388127400851, -1.0763583447726097, -0.8168297825020715, -0.72603823847118742, -0.39736821511961523, -0.23386297177233123, 0.4703174557375292, 0.25096233231074278, 0.31922838969310624, -0.25991967791422005, 0.34193161983249054, 0.51711748874534202, 0.65455151443419168, 0.83215952955458772, 0.34065461819243747, 0.21354052285348993, 0.054409237913707532, -0.051414766220484194, -0.24129551707937194, -0.18021017930700467, -0.16649307508903324, 0.02611995380449984, 0.0088882269741778191, 0.49992842173391339, 0.57482956329523827, 0.51044075389218102, 0.13304644121698647, -0.089227696371110179, -0.21628766080628836, -0.18555506064923225, -0.27054447491545125, -0.68824563709364495, -0.56391746646770291, -1.3448759333642519, -0.90801354560554559, 0.072866201802841646, 0.18073895078348665, 0.55567065990800857, 0.39381772120025821, 0.59242819035998318, -0.05022415004119711, 0.11181138224479518, -0.31028937719203997, 0.3708105687152074, 1.1972380302487284, 0.6479171630934083, 0.5970258341713901, 0.23406484190569171, 0.1494250432975659, -0.10460468586388726, -0.29172235696712562, -0.38132345964412656, -0.02584515038199919, -0.36234031342997136, -0.0035984972735878563, 0.484844809780835, 0.76596137582741564, 0.56172135236794307, 0.32646969875093934, -0.19592809956107882, -0.23669588269358457, -0.32125288047075495, -0.35097323483886461, -0.92868491010645182, -1.7089894615168075, -0.39428020304678818, -0.15776662530084981, 0.38954314931717637, 1.1161873115341048, 0.59264738582705467, -0.5562024927443876, -0.99489496750979078, 0.9608676869506646, 0.92308378001124303, -0.4139391942136339, 1.3089140888320632, 0.78636343748881332, 0.71583959398165975, 0.45156398868756092, 0.30146681989019147, 0.20254250312507779, -0.0025274006864056797, -0.19201780058118689, -0.20404659434537004, -0.25925756638025355, -0.31672382746446043, -0.31172559850957088, 0.38747270801190198, 0.95200274282556019, 0.72646685328099436, 0.2788747346508717, -0.17968537990931685, -0.3258415080143367, -0.43315407205711348, -0.64132619327207141, -1.0499886203647348, -1.7251253398279605, -1.5120873610545145, 2.092671402110029, 0.678333420527655, -1.3908581394378237, -0.14065731983379445, -0.704649079609032, 0.40038203546320611, -0.28960616895899161, 0.94969408752542028, 1.2068396187631385, 0.4671902772630277, 0.59380988893293563, 0.44061350110379105, 0.30971168558439566, 0.13217055914433939, 0.084780328674454217, -0.042892010327952576, 0.029004083819250629, -0.14047533322535441, -0.16292155588890503, -0.50836195321575572, -0.15753196960053273, 0.022795944141262008, 0.83366315887402342, 0.78917379441409119, 0.67355449112521315, -0.2295941880121686, -0.24948129249626083, -0.45897332874859181, -0.65550663858936065, -1.2736175855462932, -1.2398159392319503, -0.73118573872941783, 0.68147470897196305, 0.68403615276129381, -1.4576264955235338, -1.6446564981157907, -1.587130770095007, -1.361280962925294, 1.044628248920846, 0.96909874957635356, -0.14162995430492481, 0.66911279151523617, 0.32234943120999365, 0.34963232308526704, 0.244105606577141, 0.16281560265463482, -0.014269719747667968, -0.011846708470826806, -0.18933865423621368, 0.017829624121361812, -0.97302526020811309, 0.059393044635753067, -0.20250391456577049, 0.6602817924610479, 0.54316838647960974, 0.76213554623441593, 0.36502835420313695, -0.082930104064008442, -0.29266755430530383, -0.30043904784973247, -0.57334259680943656, -0.83104911233797829, -1.039352345059011, -0.28395441021550044, 0.84090846562801602, -2.9317402483699175, -1.2603198064423498, -0.5637011092588653], "height": 32, "width": 32, "top": {"real": [7376.2586563979694, 2820.8522261533344, -5690.9497085395169, -4380.4513376296127, 388.6547315083493, -903.73852292232903, -92.233688854560938, 42.706854165930984, -25.699252344104405, 18.326281263011424, -9.8542387499157442, 37.933510453511431, -7.8666684309670254, 29.305075180843883, -62.728617354661907, 59.853240627388928, -83.636374399044939, 59.853240627386725, -62.728617354660756, 29.305075180844177, -7.8666684309671826, 37.933510453511431, -9.8542387499160657, 18.326281263013065, -25.699252344104405, 42.706854165930693, -92.233688854557883, -903.7385229223205, 388.65473150834708, -4380.4513376296045, -5690.9497085395114, 2820.8522261533035, -14789.032757371706, -31341.185848117759, -11739.029695619593, -866.78466658113393, -286.68893204831016, -488.33133225087568, -120.74864963582691, 33.024718339611894, 4.6010715329524166, -5.4456740109959769, 4.1139030671062393, 6.8633911029603265, 13.634662924808397, 1.860738389345556, -0.35796846682150263, -16.625069210775109, -14.807142725465134, -11.664010623894898, 0.82076815557037341, -12.155673848711613, 29.148348103795893, 15.708115389403888, 15.457503110539639, -12.683126140048403, 18.961120931859309, -53.601071866945205, 34.13442733448511, -942.72760774202175, -816.05094481379797, -3798.5470080468217, -8876.4278731043305, 2890.8320511623124, -27232.421940549859, -15984.118662988652, -6745.5682223604126, -409.0173927639226, -42.225544009425754, -526.29225504527119, -49.325655652906178, -23.20435390028933, 15.630174176003303, -14.835941429972856, 6.4726407463551725, 1.9958373496876167, 13.291351981828791, -1.1889020916883648, 10.030112101155916, -20.674418420848429, -0.1180338988714332, -18.745207674116038, -1.9041291470929314, -7.8710994817942428, 20.385879097388031, 14.857882580655026, 16.950197274587541, -2.033086164989526, 25.446982376231624, -20.624592190095939, 89.303256695009566, -637.06671072120571, -1428.8365567175017, -3113.2951228079887, -8881.5889351276946, -20696.443600183225, -9007.3131796291163, -5346.3306090002807, -1439.1675666408983, -1292.5663502582722, -654.09944760377277, -301.70227472838963, -97.440927522083996, -3.3329385156017457, -8.2027965131620153, -5.7742639473870323, -0.51069538319854635, 6.6402880636318233, 8.0126520330591013, 4.0882931682311625, -1.5210347396074151, -2.2335756869246048, -2.3288001542285928, -8.1315470965115093, -6.9403489082507335, -3.6748649027980562, 4.5937507427443531, 9.4957008241539675, 10.21057060635477, 11.676825499792781, 23.758858737501662, 20.288236987689611, 20.969766857125101, -333.51324485695324, -810.1584353673162, -2278.6820540988888, -5194.4090916202094, -7188.339898707115, -3154.0647285180166, -3175.2001764803263, -3085.2108289353805, -1226.2977859942123, -836.26206181721784, -301.22169990911055, -15.123294918373254, -11.324269109892445, -4.9992210979693361, -6.7152536525607003, -1.7063097661780617, 2.7727430774894133, 7.1357881321682148, 4.8669904821248817, 2.7536893948953045, -2.039934630711028, -0.54898928719761031, -2.9485150656567436, -3.1026085263061316, -1.3614545093317587, -0.47304719477880164, 4.0409079710738931, 6.2483313015723709, 8.8540252326547968, 18.802141623354618, 24.681352644731625, -6.1114787305120313, -148.49350684902615, -572.34886359995278, -1663.447165744248, -3308.6059534728529, -4493.8282478995061, -3720.0991836319017, -3323.4413322476125, -2223.3326338682518, -1347.5218927383742, -402.86472873295924, -179.07785660663581, -42.171627369153548, 13.024576486879551, -6.680339136637107, -4.3910663300422375, -1.9843645852297727, 2.2081255979025864, 3.4357055351949564, 4.8667397989738959, -0.0088018165553918268, -1.2900498248809058, -2.2230696316747851, -0.79613102395178958, -2.1003135650570957, -0.12607857026311342, 0.39928478103703097, 3.6189445517483683, 5.5230847011321824, 8.0807144322734796, 9.6537837209938342, 14.647883903859292, 41.761171107733581, -2.5048396429986766, -288.68438568639834, -1058.7748743456032, -2111.6481404168812, -2853.5518466904464, -2206.4742388833251, -2207.4882969003411, -1427.0600295974209, -607.97311048711572, -283.75431628355585, -25.222873313531675, -11.21903778037437, -8.3653822807976148, 1.9503276148055415, -4.8653324939916756, -1.0558165909594248, 0.18037835028025548, 3.7232300368774149, 2.6260151255238955, 1.901747650437611, -2.157984497724208, -1.9174482807780493, -2.671365924063863, -1.6822520344543337, -1.7835969801453151, 0.50013744114287995, 2.3612666445612516, 3.9892729615099713, 5.0282597338489978, 4.3849613992965208, 7.5675449146459712, 26.738330274504211, 30.293009711209869, -72.365238046453968, -397.03998761961856, -1129.7740740979677, -1877.1475049531305, -1015.8170093531105, -757.33856581211364, -464.04986763483271, -221.8093865245269, -66.670140953208971, -32.688631361988044, 12.245388279073117, -2.09491941357581, -4.9214217924247272, -0.76863227802399692, -1.3611346863617457, 0.59203001318831738, 2.3940543871676745, 2.1386535528573569, 0.12698658321630202, -0.36055346759858353, -1.509631760657328, -0.37490601010058217, -1.4076418772333708, -0.9909556252137327, 0.025704615807234758, 1.7006413859335137, 2.4101241863335301, 2.7230446482899899, 4.8975474263529586, 5.5799176422335819, 7.3823613929523022, 3.3531473980019464, -7.0947231292717241, -129.95057654055665, -447.33256260550814, -801.49855315264267, -297.71280467242298, -206.25666421819534, -105.85720001872387, -40.587336797783266, -19.033005269759897, 0.68623525685047748, -2.224754122223199, 2.8686428937153541, -1.3772856826259623, -3.7001182860738422, 0.56033030111271653, 0.31649576481826269, 2.6435570864758695, 2.0729019173667451, 1.3896745329326239, -1.1733083260901866, -0.5564284933709801, -0.75319429727185228, -0.16542223594150865, -0.34981510145177358, 0.63947101827441399, 0.64495136714903334, 1.5357324193076427, 2.8130362926385226, 4.2845415972556511, 3.3415574201637508, 1.8747628167747612, 4.3092019872505318, 1.2280777000161127, -53.113548920223614, -153.12296297306594, -262.59106890839882, -78.507966752468647, -44.713956729763169, -24.503242066462356, -11.422688403833899, -6.8324882374101472, -1.9389416594991726, 2.3416848160301655, -1.9581076589813595, 0.65441624739147974, -1.6215192060328243, -3.0886268279599727, 2.5574024719687731, 2.5859312055320047, 3.582324284715654, 2.3851708003164411, 0.41148866509477899, -1.7870448740379692, 0.35867475608513461, -0.33833230756510146, 0.72134917870519866, -0.6451343286468626, -0.036676325952571386, 1.8806785141996829, 3.0459530955995717, 3.0361534846987768, 1.8248078988499765, 2.0278729258957484, 1.4298438030821454, 1.444150632114136, -16.470770345398158, -59.038387406403551, -81.624687331130716, -41.65158074717607, -20.04858945819673, -26.796686775361913, -13.274828683787613, -5.4849410264677898, -1.7682797425272327, 0.51276950901621554, 0.11701161368370352, -2.1525887062494076, -0.35663258536781867, -0.3882693848937121, -2.5566610369397282, 6.5139128293303541, 4.1537964250038213, 2.1778507792771808, 0.67618078211604771, 0.67271760119275736, -0.033223712968477391, 1.7891382881043305, 0.76549003012129324, -1.8840461990319548, 0.62764371336603419, 2.9500669911593334, 2.7998549031057309, 2.7114466415734606, 2.640497491382968, 2.5087646302130264, 0.3613507110411972, -0.85975587552377708, -5.8993661554875496, -19.483874473281006, -46.656198806892085, -42.447185502078959, -49.475399988407517, -28.809040802191632, -23.364991274814315, -9.3720360014436217, -2.193549633075087, 0.73237790527535407, -0.60287176352488314, -1.0672361910519921, -3.8374461384037328, 0.81264916316705227, 3.7024783733454592, -2.2274307006673761, 12.171761179906976, 2.6484997231173142, 2.1242155181960216, 1.3916869062247985, 3.2969221728544564, 0.14147762112210061, -1.2659388719629114, 1.2983452624583423, 2.4646463691490883, 1.8819178233751466, 2.4699197782172551, 3.4105600445409938, 3.476877662739366, 1.970602508408192, 0.54569379437115284, -0.61503488296082265, -1.584537886719974, -9.9108851118855448, -17.968893142628509, 0.83280248396047341, -16.804391379900096, -34.94566909960443, -18.287776152890835, -10.19076861522101, -2.3659355754892188, 0.38430207827148843, -0.39175809943359002, -2.0786620762717161, -2.1066158183404973, -4.0664292874937455, 5.1056392812224729, 9.4711485160420441, -2.577327881134023, 13.563457368659881, 5.4454444116217209, 3.0810071966308192, 3.71409458782056, -2.7028450063821525, 1.3893389983926554, 5.0295677911697716, 2.0512141006459763, 0.57687440104333121, 3.1399874906463121, 4.3044361492909653, 3.2286926050373941, 2.0294536549063102, -1.2648718051872285, 0.81982278416560761, 5.1937461344056883, 4.5660530070978913, -2.5751982814314349, 10.842808636227273, -2.7634934625905125, -4.7410363255116081, -13.231297049532179, -1.2392069417375811, 0.57695677140757395, 1.6572428400911725, -0.80487566941313171, -2.1976406054664008, -2.9337382106235617, -0.97696074341019468, -0.52039830113476337, 8.6932746740913363, 18.008772340009436, -6.3894706762347742, 16.656214263229323, 5.6480128145892756, -2.6420757676626341, 6.9832538798624686, 8.7117753152913409, 2.944231966553327, -0.4194257648970201, 1.9464964791115495, 2.8117062685871983, 3.586606822562346, 3.6410340078674697, 2.1750438821370093, 0.92746135521083628, -0.10515597578954901, 10.916870623975495, 22.695665816423684, 26.922229107827643, 56.766547106622895, 34.346379481364103, 8.0209890672230593, 4.2276867493724737, 2.0129650120803855, 4.5721973792850843, 1.7026114564114816, -0.10193290249876912, -1.9877285465951933, -1.4091416884493304, -1.0407935339809435, 4.6927135104950821, 4.461866465996299, 13.14685287043932, 23.490161756370188, -8.5448676586843408, 5.7639040157862622, 6.7103974452754578, 11.090643871879529, 8.6117964749879281, 0.95828374077, 2.8859143014026349, 1.6803595914225926, 1.5724318132354216, 2.3664842485474589, 3.3844724421254813, 2.8754034241014996, 0.81420697505183059, 3.4592633965370854, 8.5418678989119741, 26.408180301615612, 46.472433795130719, 15.748155014076561, 18.939305693948317, 18.355423454953527, 7.4385947937208252, 6.8421582395566496, 3.8284829441665011, 2.3084513014265475, 0.014383588041353481, -0.70170837590258439, -0.9519271341888802, 0.60488638387036897, 4.7316501322768225, 11.640012070252736, 11.084534895769892, 7.9427552323827459, 17.090358547431578, -4.0062765415124373, 18.903471314461139, 10.522914852414784, -0.31727085194714888, 8.1914062421872558, 5.5678768421215832, 1.9515757898119943, 0.13204460835173984, 0.94686979396028259, 2.2566984460298456, 3.5582629306092612, 2.7150237945754423, -0.038191379039643265, 6.3090662882758242, 18.822434458740766, 20.387061197767007, 34.210424610695611, 25.78016711295075, 13.422328957688888, 4.2578162502068047, 2.3122896178400203, 4.1892680028045364, 2.2592478817037658, 0.95372259584702335, -0.47653425908969432, 0.069240128911087023, 0.91781179579556105, 6.6018505246928774, 10.152138543237006, 11.530381877152177, 5.6211304516254526, 4.7909070280413646, 35.867989503906792, 4.7909070280413584, 5.6211304516254428, 11.530381877152157, 10.152138543237017, 6.6018505246928978, 0.91781179579556504, 0.069240128911081333, -0.47653425908969432, 0.95372259584699437, 2.2592478817037476, 4.1892680028045142, 2.3122896178399985, 4.2578162502067478, 13.422328957688848, 25.780167112950689, 15.74815501407811, 20.387061197767874, 18.822434458741888, 6.309066288276548, -0.038191379039562191, 2.7150237945755555, 3.5582629306093274, 2.2566984460298958, 0.94686979396029702, 0.1320446083517558, 1.9515757898119841, 5.5678768421215636, 8.1914062421872096, -0.31727085194714522, 10.522914852414772, 18.903471314461111, -4.0062765415123884, 17.090358547431556, 7.9427552323827513, 11.084534895769902, 11.640012070252746, 4.7316501322768385, 0.60488638387038995, -0.9519271341888812, -0.70170837590259716, 0.014383588041281273, 2.3084513014264751, 3.8284829441663635, 6.8421582395566762, 7.4385947937204353, 18.355423454952824, 18.939305693949098, 56.76654710662406, 46.472433795132453, 26.408180301616227, 8.5418678989122103, 3.4592633965371484, 0.81420697505187978, 2.8754034241015152, 3.3844724421254879, 2.3664842485474735, 1.572431813235436, 1.6803595914225982, 2.8859143014026083, 0.95828374076997469, 8.6117964749878801, 11.090643871879506, 6.7103974452754693, 5.7639040157862587, -8.5448676586843018, 23.490161756370185, 13.146852870439265, 4.4618664659962768, 4.6927135104951034, -1.0407935339809418, -1.4091416884493408, -1.9877285465952099, -0.10193290249882341, 1.7026114564114307, 4.5721973792850434, 2.0129650120803833, 4.2276867493724772, 8.0209890672234039, 34.346379481364394, 10.842808636228447, 26.9222291078285, 22.695665816424683, 10.916870623975989, -0.10515597578943024, 0.92746135521090112, 2.1750438821369982, 3.6410340078674537, 3.5866068225623455, 2.8117062685872063, 1.9464964791115584, -0.41942576489699973, 2.9442319665532848, 8.7117753152913178, 6.9832538798624677, -2.6420757676626758, 5.6480128145892872, 16.656214263229302, -6.389470676234752, 18.008772340009443, 8.6932746740913274, -0.52039830113473562, -0.97696074341019512, -2.9337382106235728, -2.1976406054664195, -0.80487566941320732, 1.657242840091119, 0.57695677140755675, -1.2392069417374179, -13.231297049531948, -4.7410363255113248, -2.7634934625894938, 0.83280248396082224, -2.5751982814309775, 4.566053007098211, 5.1937461344059415, 0.81982278416574916, -1.2648718051872136, 2.0294536549062832, 3.2286926050373275, 4.3044361492909653, 3.1399874906463054, 0.57687440104334498, 2.0512141006459621, 5.0295677911697396, 1.3893389983926545, -2.7028450063821756, 3.7140945878205622, 3.0810071966308161, 5.4454444116217395, 13.563457368659845, -2.5773278811340234, 9.4711485160420441, 5.1056392812224614, -4.0664292874937296, -2.1066158183405044, -2.0786620762717254, -0.39175809943363327, 0.38430207827145285, -2.3659355754891784, -10.190768615220893, -18.287776152890569, -34.94566909960389, -16.804391379899673, -42.447185502078064, -17.968893142627813, -9.910885111884598, -1.5845378867194357, -0.61503488296060749, 0.5456937943712441, 1.9706025084081269, 3.4768776627392723, 3.4105600445409681, 2.4699197782172639, 1.881917823375139, 2.4646463691490985, 1.2983452624583438, -1.2659388719629485, 0.1414776211221116, 3.2969221728544715, 1.3916869062248129, 2.1242155181960229, 2.6484997231173293, 12.171761179906973, -2.2274307006673681, 3.702478373345508, 0.81264916316704883, -3.8374461384037382, -1.0672361910520076, -0.60287176352493688, 0.73237790527531033, -2.1935496330750563, -9.3720360014434689, -23.364991274814056, -28.809040802191326, -49.47539998840697, -41.651580747175068, -46.656198806890998, -19.483874473280501, -5.8993661554872627, -0.85975587552355426, 0.36135071104124949, 2.5087646302129953, 2.6404974913828889, 2.7114466415734491, 2.7998549031056945, 2.9500669911593249, 0.62764371336605218, -1.8840461990319775, 0.76549003012129535, 1.789138288104325, -0.033223712968466615, 0.67271760119275215, 0.67618078211606658, 2.1778507792771671, 4.1537964250038266, 6.5139128293303603, -2.5566610369397242, -0.38826938489369667, -0.35663258536783948, -2.1525887062494129, 0.11701161368368215, 0.51276950901619689, -1.7682797425271899, -5.4849410264677143, -13.274828683787417, -26.796686775361572, -20.048589458196275, -78.507966752466459, -81.624687331128925, -59.038387406402052, -16.470770345397689, 1.4441506321142048, 1.429843803082246, 2.0278729258956907, 1.8248078988499317, 3.0361534846987319, 3.045953095599546, 1.8806785141996951, -0.036676325952591224, -0.64513432864685583, 0.72134917870519299, -0.33833230756510668, 0.35867475608511745, -1.7870448740379619, 0.41148866509475018, 2.385170800316434, 3.582324284715646, 2.5859312055320172, 2.5574024719687887, -3.08862682795997, -1.6215192060328063, 0.65441624739145521, -1.9581076589813555, 2.3416848160301531, -1.9389416594989646, -6.8324882374098541, -11.422688403833355, -24.503242066461048, -44.713956729761051, -297.71280467242298, -262.59106890839888, -153.12296297306594, -53.113548920223877, 1.2280777000160852, 4.3092019872504084, 1.8747628167747172, 3.341557420163666, 4.2845415972556511, 2.8130362926385151, 1.5357324193076258, 0.64495136714903156, 0.63947101827441044, -0.34981510145179595, -0.16542223594153913, -0.75319429727190634, -0.5564284933709801, -1.1733083260902135, 1.3896745329326132, 2.0729019173667376, 2.6435570864758655, 0.31649576481827513, 0.56033030111271809, -3.7001182860738244, -1.3772856826259623, 2.8686428937153425, -2.2247541222231662, 0.68623525685057685, -19.033005269759858, -40.587336797783074, -105.85720001872383, -206.25666421819477, -1015.8170093530997, -801.4985531526338, -447.3325626055032, -129.9505765405554, -7.094723129271765, 3.3531473980017035, 7.3823613929520073, 5.5799176422333412, 4.8975474263529168, 2.7230446482898696, 2.4101241863335168, 1.700641385933505, 0.025704615807253747, -0.99095562521376346, -1.4076418772333852, -0.37490601010063784, -1.5096317606573337, -0.36055346759863915, 0.12698658321626774, 2.1386535528573165, 2.3940543871676701, 0.59203001318833959, -1.3611346863617075, -0.7686322780239524, -4.9214217924247352, -2.0949194135756803, 12.245388279073195, -32.688631361987156, -66.670140953207678, -221.8093865245236, -464.04986763482748, -757.33856581210489, -2206.474238883316, -1877.1475049531243, -1129.7740740979648, -397.03998761961947, -72.365238046453996, 30.293009711209137, 26.738330274503873, 7.5675449146456106, 4.3849613992964835, 5.0282597338488833, 3.9892729615099154, 2.3612666445612378, 0.50013744114287839, -1.7835969801453351, -1.6822520344543537, -2.6713659240639043, -1.9174482807780469, -2.1579844977242066, 1.9017476504375719, 2.6260151255238871, 3.7232300368773963, 0.18037835028033014, -1.0558165909593593, -4.8653324939915077, 1.9503276148055297, -8.3653822807973572, -11.219037780374073, -25.222873313530549, -283.75431628355437, -607.97311048711254, -1427.0600295974182, -2207.4882969003352, -3720.099183631889, -2853.5518466904387, -2111.648140416873, -1058.7748743456016, -288.68438568639789, -2.5048396429994018, 41.761171107733141, 14.647883903858578, 9.6537837209937827, 8.0807144322732913, 5.5230847011321327, 3.6189445517483261, 0.3992847810370409, -0.12607857026309263, -2.1003135650570361, -0.79613102395168645, -2.2230696316747758, -1.2900498248808734, -0.0088018165554208834, 4.8667397989738888, 3.4357055351949497, 2.2081255979026997, -1.9843645852296314, -4.3910663300419372, -6.6803391366371141, 13.024576486880093, -42.171627369152944, -179.07785660663302, -402.86472873295685, -1347.5218927383694, -2223.332633868245, -3323.4413322476003, -3154.0647285180148, -4493.8282478995088, -3308.6059534728515, -1663.4471657442498, -572.34886359995289, -148.49350684902797, -6.1114787305125393, 24.681352644731046, 18.802141623354593, 8.8540252326545641, 6.2483313015722262, 4.0409079710738718, -0.47304719477879342, -1.361454509331699, -3.1026085263059842, -2.948515065656593, -0.5489892871976132, -2.0399346307109321, 2.7536893948952148, 4.8669904821248942, 7.1357881321682211, 2.7727430774895763, -1.706309766177841, -6.7152536525602784, -4.9992210979693477, -11.324269109891496, -15.123294918372496, -301.22169990910822, -836.26206181721659, -1226.2977859942089, -3085.2108289353782, -3175.2001764803231, -9007.3131796291, -7188.3398987071041, -5194.4090916202022, -2278.6820540988915, -810.15843536731495, -333.51324485695591, 20.969766857124615, 20.288236987688347, 23.758858737501669, 11.676825499792164, 10.210570606354567, 9.4957008241538698, 4.5937507427443718, -3.6748649027980855, -6.9403489082508045, -8.1315470965115626, -2.3288001542285697, -2.2335756869247856, -1.5210347396073984, 4.088293168231135, 8.0126520330591262, 6.6402880636320099, -0.51069538319843244, -5.7742639473864941, -8.2027965131620455, -3.3329385156007563, -97.440927522082632, -301.70227472838576, -654.09944760377232, -1292.5663502582681, -1439.1675666408923, -5346.3306090002598, -27232.421940549855, -20696.443600183229, -8881.5889351276946, -3113.2951228080024, -1428.8365567175017, -637.0667107212123, 89.303256695008088, -20.624592190099609, 25.446982376231595, -2.0330861649905447, 16.950197274587225, 14.857882580654767, 20.385879097388024, -7.8710994817946256, -1.9041291470930921, -18.745207674117459, -0.11803389887143546, -20.674418420848326, 10.030112101155776, -1.1889020916883362, 13.291351981828802, 1.9958373496879209, 6.472640746355359, -14.835941429972186, 15.63017417600328, -23.204353900286776, -49.325655652904786, -526.29225504526619, -42.22554400942483, -409.0173927639147, -6745.5682223604063, -15984.118662988625, -14789.032757371675, 2890.8320511623242, -8876.4278731043305, -3798.5470080468367, -816.05094481379706, -942.72760774203016, 34.134427334482538, -53.601071866949361, 18.961120931859348, -12.683126140049515, 15.4575031105396, 15.708115389403696, 29.148348103795954, -12.155673848712381, 0.82076815557010951, -11.664010623895932, -14.807142725465098, -16.625069210776097, -0.357968466821102, 1.860738389345522, 13.634662924808296, 6.8633911029604313, 4.1139030671065999, -5.4456740109950088, 4.6010715329523864, 33.024718339612249, -120.74864963582446, -488.33133225087175, -286.68893204831085, -866.78466658111245, -11739.029695619576, -31341.185848117751], "imag": [0.0, -38758.087655514835, 17548.085047269142, 6107.2151726624015, -1874.673387120311, 1102.4198144208276, 70.663498597697227, 246.50443360377355, 15.094404836632346, 61.578388193120794, -6.883850379905633, 17.433253862249003, -27.182352905748338, 10.205627484635695, -57.631165788617082, 3.5978635789949243, 0.0, -3.5978635789944389, 57.631165788617331, -10.205627484634785, 27.182352905748068, -17.433253862248129, 6.883850379906236, -61.578388193120603, -15.094404836632346, -246.50443360377048, -70.663498597698691, -1102.4198144208278, 1874.6733871203112, -6107.2151726624097, -17548.085047269135, 38758.087655514864, 21415.511526704078, 9240.4816801838842, 6140.0706338628515, 4606.7423967050836, -477.33409412636456, 106.10534760670754, 253.85827683649731, 118.670471872242, 60.852179067446961, 22.790809731222598, 16.992665274593527, 3.3051410229913314, -11.158748163655874, -19.125680216300069, -12.454719286949617, -13.739274709476872, 4.4649861577324996, -1.4030381833900449, 28.352674755287939, -0.67900523797834378, 10.299898240809684, 0.92198929608587377, 1.7353747463970652, -28.921613512340663, -62.077231813228479, -150.50951383829744, -214.24479740751684, -816.21574466320703, 274.1353961963593, -3254.3286688062722, -6340.0761451284025, 11789.651384311641, 10840.701965194425, 18380.248977426931, 3231.3822724351476, -461.44982475214084, -210.28695062763435, 162.42212696600188, 179.30887547689923, 113.80000983072934, 43.394725496932487, 24.59548477602943, 9.5064435172576207, 6.2249226907652995, -15.514190495563678, -15.67209469704693, -16.179758937655365, -0.44183444538403649, 3.28796177703477, 12.57005414423841, 4.7947040656811843, 5.5752197676029693, -1.566994278876134, 3.0671728952871886, -9.3006029966239439, -19.205045070959127, -56.939768493357462, -104.59324045979437, -209.92149032340299, -248.20433151041027, -867.92363746103479, -1299.0888976028032, 827.61688284819274, -3453.3010516440099, 2184.1299326736716, 343.81610498084558, 1430.9649107108667, -397.20604751762147, -695.96261474413006, 272.38382351444113, 181.43163787734565, 64.570588674311324, 29.183435066681643, 16.420203889130576, 10.051165980763317, 3.8132998567254699, -5.2200576234926608, -12.843645059741645, -16.574215370008311, -6.8948411718648668, 5.7853993354930253, 6.7615499928711884, 6.3258793363865982, 6.2779141420300757, 7.316455816584333, 0.11325917153592484, -12.472105947256997, -26.315486653091728, -48.315266721271882, -96.05176533673017, -133.18984159990899, -353.39952612993443, 150.90670251969735, -622.62775933130001, -1461.5017842629939, 2621.2839732861958, -797.42142339187535, -1141.9271710506443, -1665.2932495998289, -238.3366310615267, 49.923170262409073, 61.506465075545492, 153.25086116745172, 46.446591336114025, 13.171326963991907, 10.42525251508628, 5.9093841314446687, 3.7481817410606739, -5.009304162269796, -8.3377118534842136, -11.383176063308646, -7.2904568591879206, 0.055102663998529922, 6.2100452165049633, 0.50258781153530074, 8.7133201843540995, 8.0099491969619425, 3.408178127748358, -6.1241971022028396, -12.736128845291272, -45.232132533425755, -61.3791750629996, -153.42214558232837, -67.595097514570796, 85.625899103861244, -58.961155821254636, 56.883206971067992, -1105.7125877167775, -1066.0901100808514, -1171.2701320923616, -223.1510166903665, -49.090655504704266, 242.13940044346495, 187.57398243385657, 37.630624824958112, 28.849867481961542, 8.4569554634773265, 4.9702839577388582, 4.4028115702250554, 1.4310556478305501, -1.929060150422355, -6.8702061592831818, -7.5557834297932249, -6.2828152868831211, -0.10870593803434039, -0.35173698335235887, 2.5520560959229499, 3.0896458550054593, 4.7505220002799033, 1.2377659738692817, -1.7806530124299274, -9.1879671692559626, -20.164632449396379, -65.591240653702698, -60.869480400000917, -62.271759486118263, -69.04223895420877, 113.44009243151515, -280.24622279593513, -361.29505764988915, -32.2389038646619, 397.42763261597736, 412.9673372382922, 359.76401050336045, 192.6210800054142, 122.25882006598455, 49.109708531705785, -0.83416770813231356, 2.4803036198391495, 2.5045331182816137, 2.1157075816863125, 2.0456835555591151, -1.3319639541688315, -4.1057658132159602, -5.2622609905014679, -3.122429370817716, -0.23490025627283884, 0.40862649299968534, 1.0190926814192749, 2.6652215067301066, 2.3902937959311288, 1.3072901204360872, -2.1976906085986245, -4.7205289930149936, -17.964658686821839, -21.918559933832515, -40.854552179344822, -68.24351076369831, 25.856495589804037, -73.74721318359471, 26.189735785049756, -56.726426890704197, 461.88238037931336, 400.36625478870423, 367.42140066372616, 233.95717316464078, 120.24788693419019, 56.86229814651989, 16.528423808469729, 5.5081763037408891, -2.7285347510623343, 0.91768473485835012, 1.922818700657754, 0.85878662181529319, -0.082031723657331246, -3.1986596327501684, -2.7995613930163934, -2.624028681216124, 0.082235364558318216, 0.13384423623927519, 1.9947594371394528, 1.3437508199980643, 2.6398410865992954, 0.73758290379789837, -0.13078900915043976, -4.4953343292506398, -5.1950335909144894, -13.12242317098767, -25.523369493146305, -12.192196214097944, -25.868477512213353, 2.9066782920883432, 34.106574161015573, 256.00130492151595, 208.58597838816522, 310.3347945923577, 177.03891975992664, 97.122360992021001, 48.488510187113192, 24.528917872852549, 4.6272034575157122, -1.3571647909533122, 0.20621269482631011, -0.40867746076362715, 0.99215767258594889, 1.5313768256641691, -0.052772985639764861, -1.5552847934304939, -2.8318141898835965, -1.44106038161314, -1.7221472209588695, 0.61786747800524422, 0.48048213041449506, 1.7161555169971148, 0.88689757979195871, 1.4761658864245926, -1.7252645996654892, -0.81528783024945528, -3.3158091950668926, -7.6513645380807835, -2.9281859927886749, -12.462674546124116, -7.4696827367159715, -23.236903073402107, 43.7319836231637, 92.321882041990349, 70.117668379783737, 34.226649356314077, 47.258739472197036, 25.375797504306092, 12.406583490274283, 8.6535618432690811, 1.0747519793409035, -0.44324044078252567, -1.7584707522262704, 0.72458607165998101, 0.70692065864217946, 0.77076345191259166, 1.0649069250197341, -2.7261985428418192, -1.9302074459527443, -3.3754250277859401, 0.50673349306549698, -0.64031672309299725, 1.374850007673434, 0.72950552648490297, 2.3325303094340692, -0.9986473214357906, 0.78195787446934228, -1.1999635798104886, -3.4858876190620522, -1.4991310089769327, -2.8433755069243221, 3.7638952884372583, 1.2400980139632869, -2.9542792497780144, 1.8234355680479359, 49.576244746235467, 19.014215780516388, 30.877310974744532, -1.1221271518157558, 7.8208026967228905, 2.609067592037944, 1.2521971880796572, -0.99505064345958283, -1.3975466814991453, -0.57338407820284554, -1.8697004151394911, 2.3700280505641378, 1.696784850403636, -0.61519740478736618, -1.3317994275810727, -4.2071746247346917, -0.85834734780410316, -1.4672332071937433, 2.6381100233578914, -2.4176769851497171, 2.0131074000190821, -1.6262628596018911, 3.9814331515508763, -0.027677673297514374, -2.444607041276003, -1.6150024285043403, -4.1227589144067673, -1.7068861549694658, 2.2919486155920237, 12.185386506158462, 9.103962312567619, 7.1597604706792799, -5.4087151249860161, 0.96974162117579055, -11.947201833901593, 6.6330620252490986, 2.1152085218133552, 3.546929348907518, 0.62283616740311709, -1.3522725353705505, -2.4444202103018355, -1.5690941230144015, -0.0069858778603680161, -2.2282653754616524, 3.8284308308873771, 3.1912913728027457, -5.5805618725494135, 0.13049495818795365, -3.5197176720292105, 1.8802124921714005, -2.6189977871286096, 2.1235611153433935, -7.1463089769422359, 4.7729314123471731, 2.1077672614040215, -0.81910125894631813, 0.72052624692713507, -3.4842402749887631, -4.1829115306886377, -4.3994325344570067, 3.0953565929079909, 11.949390330752637, 23.680136621529911, 21.558658775121675, 22.744598059672118, 24.943328767928129, 28.901352722188449, 12.814680673201753, 13.644932734111247, 5.45768556544121, 2.4025753394703617, -1.1673355625318591, -2.4971924284976894, -1.8952846661475429, -1.2927419412763479, 2.7902732019969552, -4.3477010834394934, 3.7423253621601038, 4.3959804108055893, -8.9257994152947724, 2.882370251254919, -5.0577698714645729, 3.1829717367300585, -13.324209534416688, 6.2785045354550411, -0.87489834284363188, -0.85263104321571348, 4.4885662153073236, -0.53110232172652128, -1.6389132121610095, -4.3945543864166812, -4.2936344828625694, 0.48745205753098192, 15.895360345460416, 25.169617383292081, 33.918445473292621, 23.996907911576923, 23.251277269359601, 5.1543156647143702, 18.554102826608389, 16.359265688234956, 10.231244633613841, 1.5587865083621433, -1.4683911434431964, -2.958105786087343, -1.5689869488245065, -0.96051225634847215, 1.7578951205789273, 6.6638352938822507, -9.4901775499106478, 4.1317473271038834, 10.951455398944859, -15.360897164532773, 5.739294741971535, -17.045217645164048, 5.8449684444103616, -3.5521886878464675, -7.3858280585812945, 5.7347340895196259, 0.4908832539545151, 0.98666637905349674, -1.0149409800154179, -1.6832477381822215, -2.5467748158366237, 2.0904065823844138, 13.443724261124899, 31.761133485201317, 33.671186166611122, 40.707191608760652, -1.1509826127936451, 21.096779572504321, 10.924705320167561, 7.3688776104039446, 6.4733533392666498, 1.1232923919614803, -2.4431302941492752, -2.7804484266994756, -1.6225398299131664, 0.6478030911844409, 2.5793951871330139, 3.1124056384095988, 9.3832743597685244, -14.195954313031031, -0.57608988546761064, 19.479390479219269, -31.200338855208866, 14.100113777774123, -5.3856662644378392, -10.946378631138824, 4.4142064356850845, -3.9066652322250062, 0.66844910598604979, 1.0227755630951001, 0.66137538568075327, -0.38567118503773246, 0.24821124990411303, 3.5872841231435211, 14.053276636456639, 24.260931372233497, 33.647459095648763, 7.6529271231588307, -9.2151377078706354, -38.311665858686638, -16.121399661234683, -5.9927868178298498, -2.7701365304211771, -3.7140088945870469, -3.0788396721523017, -3.0904878618769733, -1.8655827999533823, 0.43690140001808947, 4.1561194908680763, 4.3858952392085353, 2.7714027971729753, 9.257895969243517, -19.629364588289473, -14.072043519544888, 36.373196183604975, -13.61372365841147, -9.4583423311161248, 8.5284583277520429, -6.1744651457950592, -2.2310052363098367, -1.75629520897435, 1.1539693350814639, 1.7596902661237352, 1.8196834579374304, 2.022290334087173, 5.1646829084835781, 12.770276815017757, 24.46979490512981, 27.822785449092486, 29.828540342091252, 0.0, -3.7653763488297254, -24.757305904406468, -19.738984856989376, -8.2664619761594462, -4.6495144591838038, -3.656340919703911, -2.9147641885479052, -2.2830188616483764, -0.10916825448095578, 2.3916977668177819, 5.941240494184604, 2.1224657474819093, 3.9401472638367774, -2.1445277323266949, -10.774805376941604, 0.0, 10.774805376941531, 2.1445277323266829, -3.9401472638367951, -2.1224657474819155, -5.9412404941846173, -2.3916977668177926, 0.10916825448094437, 2.2830188616483764, 2.9147641885479065, 3.6563409197039234, 4.6495144591838136, 8.2664619761594498, 19.738984856989411, 24.75730590440644, 3.7653763488297773, 9.2151377078736516, -29.828540342087546, -27.822785449090652, -24.469794905129369, -12.770276815017642, -5.1646829084834636, -2.022290334087153, -1.8196834579374237, -1.7596902661237566, -1.1539693350814775, 1.7562952089743382, 2.2310052363098212, 6.1744651457950415, -8.5284583277521193, 9.4583423311161194, 13.613723658411436, -36.373196183604932, 14.07204351954484, 19.629364588289484, -9.2578959692435348, -2.7714027971730033, -4.3858952392085584, -4.1561194908680932, -0.43690140001811473, 1.8655827999533605, 3.0904878618769729, 3.0788396721523177, 3.7140088945872396, 2.7701365304214618, 5.9927868178306163, 16.121399661236502, 38.31166585868818, 1.1509826127964509, -7.6529271231568821, -33.647459095647825, -24.260931372233326, -14.053276636456571, -3.5872841231435073, -0.24821124990410889, 0.3856711850377551, -0.66137538568076071, -1.0227755630951023, -0.66844910598607266, 3.9066652322249751, -4.4142064356851165, 10.946378631138813, 5.3856662644378339, -14.100113777774116, 31.200338855208855, -19.479390479219351, 0.57608988546757856, 14.195954313030994, -9.3832743597685617, -3.1124056384095939, -2.5793951871330338, -0.64780309118445645, 1.6225398299131557, 2.7804484266994689, 2.4431302941492916, -1.1232923919613498, -6.4733533392663958, -7.368877610403441, -10.924705320166419, -21.096779572501951, -23.251277269357679, -40.707191608758833, -33.671186166610063, -31.761133485200901, -13.443724261124748, -2.0904065823843769, 2.5467748158366237, 1.6832477381822348, 1.0149409800154132, -0.98666637905348697, -0.49088325395452825, -5.734734089519665, 7.3858280585813008, 3.5521886878464564, -5.8449684444103243, 17.045217645163998, -5.7392947419715155, 15.360897164532778, -10.951455398944907, -4.1317473271038754, 9.4901775499106655, -6.6638352938822702, -1.7578951205789377, 0.96051225634844795, 1.5689869488244914, 2.9581057860873381, 1.4683911434432237, -1.5587865083620118, -10.231244633613667, -16.359265688234554, -18.554102826607274, -5.1543156647129926, -24.943328767927714, -23.996907911576475, -33.918445473292081, -25.169617383291836, -15.895360345460304, -0.48745205753098297, 4.2936344828625552, 4.3945543864167149, 1.6389132121610113, 0.53110232172653837, -4.4885662153073405, 0.85263104321570904, 0.87489834284363122, -6.2785045354550046, 13.324209534416719, -3.1829717367300314, 5.0577698714645702, -2.8823702512549096, 8.9257994152947653, -4.3959804108056124, -3.742325362160086, 4.3477010834395236, -2.7902732019969543, 1.2927419412763401, 1.8952846661475349, 2.4971924284976934, 1.1673355625318764, -2.4025753394703346, -5.4576855654411656, -13.644932734111133, -12.814680673201632, -28.901352722188015, -0.96974162117503315, -22.744598059671098, -21.558658775121231, -23.680136621529623, -11.949390330752514, -3.0953565929079563, 4.3994325344570004, 4.1829115306886644, 3.4842402749887649, -0.72052624692711631, 0.81910125894632069, -2.1077672614040264, -4.772931412347166, 7.1463089769422288, -2.1235611153433602, 2.6189977871286789, -1.8802124921713912, 3.5197176720292407, -0.1304949581879572, 5.5805618725494606, -3.191291372802759, -3.8284308308873531, 2.228265375461667, 0.0069858778603283057, 1.5690941230143916, 2.4444202103018267, 1.3522725353705702, -0.62283616740308378, -3.546929348907534, -2.1152085218133783, -6.6330620252487682, 11.947201833901675, -19.014215780515311, 5.4087151249861485, -7.159760470678993, -9.1039623125675071, -12.18538650615837, -2.2919486155920032, 1.7068861549694805, 4.1227589144067789, 1.6150024285043441, 2.4446070412760443, 0.027677673297527423, -3.981433151550863, 1.6262628596018724, -2.0131074000190696, 2.4176769851497326, -2.6381100233578612, 1.4672332071937413, 0.85834734780414157, 4.2071746247347095, 1.3317994275810989, 0.61519740478738694, -1.6967848504036496, -2.3700280505641422, 1.8697004151394931, 0.5733840782028331, 1.397546681499154, 0.99505064345958893, -1.2521971880796428, -2.6090675920379729, -7.8208026967229012, 1.1221271518159068, -30.877310974743335, -70.117668379782501, -49.576244746235311, -1.8234355680484657, 2.9542792497778261, -1.2400980139631994, -3.7638952884372125, 2.8433755069243154, 1.499131008976947, 3.4858876190620642, 1.1999635798105424, -0.78195787446931964, 0.9986473214357916, -2.332530309434083, -0.72950552648488864, -1.3748500076734225, 0.64031672309302556, -0.50673349306550342, 3.375425027785985, 1.930207445952772, 2.7261985428418698, -1.0649069250197167, -0.77076345191255435, -0.7069206586422051, -0.72458607165999755, 1.7584707522262737, 0.44324044078250502, -1.0747519793408324, -8.6535618432689372, -12.406583490274217, -25.375797504305602, -47.258739472196019, -34.226649356312784, -208.58597838816522, -92.321882041990833, -43.731983623163735, 23.236903073401958, 7.4696827367159822, 12.462674546124104, 2.9281859927886771, 7.6513645380808271, 3.3158091950668926, 0.8152878302494978, 1.7252645996655027, -1.4761658864245817, -0.88689757979195827, -1.7161555169970975, -0.48048213041447491, -0.61786747800518715, 1.7221472209588695, 1.4410603816132017, 2.8318141898836315, 1.5552847934305372, 0.05277298563978073, -1.5313768256641445, -0.9921576725859278, 0.40867746076360606, -0.20621269482631011, 1.3571647909533708, -4.6272034575156908, -24.528917872852457, -48.488510187113178, -97.122360992020845, -177.03891975992676, -310.33479459235781, -461.88238037931535, -256.00130492151709, -34.106574161017335, -2.9066782920893011, 25.868477512213314, 12.192196214097933, 25.523369493146241, 13.12242317098773, 5.1950335909144911, 4.4953343292507366, 0.13078900915048275, -0.73758290379785463, -2.6398410865992936, -1.3437508199980366, -1.9947594371394133, -0.13384423623915356, -0.082235364558330679, 2.6240286812162581, 2.7995613930164374, 3.1986596327502643, 0.082031723657369299, -0.85878662181523746, -1.9228187006577324, -0.91768473485829727, 2.7285347510623108, -5.5081763037407097, -16.528423808469462, -56.862298146519464, -120.24788693418984, -233.9571731646403, -367.42140066372525, -400.36625478870656, 32.238903864660138, 56.726426890699642, -26.189735785051667, 73.747213183594084, -25.856495589804108, 68.243510763698637, 40.854552179345092, 21.918559933832821, 17.964658686821831, 4.7205289930151793, 2.1976906085987129, -1.3072901204360032, -2.3902937959311101, -2.6652215067300165, -1.0190926814191563, -0.40862649299943438, 0.23490025627283342, 3.1224293708179411, 5.2622609905015993, 4.1057658132160988, 1.331963954168899, -2.0456835555590454, -2.1157075816862583, -2.504533118281568, -2.4803036198391473, 0.83416770813248287, -49.109708531705543, -122.25882006598383, -192.62108000541431, -359.76401050336045, -412.96733723829362, -397.42763261597815, 1066.0901100808455, 361.29505764988636, 280.2462227959299, -113.44009243151743, 69.042238954208585, 62.271759486118853, 60.869480400001216, 65.591240653703366, 20.164632449396354, 9.1879671692563107, 1.7806530124300617, -1.2377659738691233, -4.7505220002798652, -3.0896458550052697, -2.5520560959227772, 0.35173698335277165, 0.10870593803433028, 6.2828152868834488, 7.5557834297934026, 6.8702061592834163, 1.9290601504224327, -1.4310556478304128, -4.402811570224995, -4.9702839577387659, -8.4569554634772928, -28.849867481960956, -37.630624824957771, -187.57398243385583, -242.13940044346546, 49.090655504701473, 223.15101669036463, 1171.270132092355, 797.42142339187455, 1105.712587716775, -56.883206971068894, 58.961155821254195, -85.625899103861229, 67.595097514571449, 153.42214558232899, 61.379175063000453, 45.232132533425769, 12.736128845291734, 6.1241971022030093, -3.4081781277481404, -8.0099491969618857, -8.7133201843538846, -0.50258781153503296, -6.2100452165045663, -0.055102663998530817, 7.2904568591883807, 11.383176063308918, 8.3377118534845209, 5.009304162269923, -3.7481817410605087, -5.9093841314446331, -10.425252515086191, -13.171326963991898, -46.446591336113507, -153.25086116745101, -61.506465075545563, -49.92317026240935, 238.33663106152528, 1665.2932495998259, 1141.9271710506428, -2184.1299326736644, -2621.2839732861944, 1461.5017842629866, 622.62775933129569, -150.90670251969709, 353.39952612993454, 133.18984159990904, 96.051765336731378, 48.315266721271847, 26.315486653092378, 12.47210594725734, -0.11325917153558851, -7.3164558165842362, -6.2779141420297728, -6.325879336386472, -6.7615499928705614, -5.7853993354930182, 6.8948411718656626, 16.574215370008741, 12.843645059742064, 5.220057623492746, -3.813299856725167, -10.051165980763182, -16.420203889130285, -29.183435066681557, -64.570588674310201, -181.43163787734505, -272.38382351444022, 695.96261474412938, 397.20604751762363, -1430.9649107108592, -343.81610498084137, -10840.70196519443, 3453.3010516439876, -827.61688284819604, 1299.088897602802, 867.92363746103354, 248.20433151041067, 209.92149032340356, 104.5932404597956, 56.939768493357427, 19.205045070960029, 9.3006029966243737, -3.0671728952866175, 1.5669942788764133, -5.5752197676024959, -4.7947040656806426, -12.570054144236753, -3.2879617770347638, 0.44183444538609318, 16.179758937656128, 15.672094697047777, 15.514190495563801, -6.2249226907648021, -9.506443517257205, -24.595484776028343, -43.394725496932452, -113.80000983072682, -179.30887547689812, -162.42212696599955, 210.28695062763467, 461.44982475214965, -3231.3822724351485, -18380.248977426934, -21415.511526704078, -11789.651384311637, 6340.0761451283952, 3254.3286688062612, -274.13539619635947, 816.21574466320624, 214.24479740751747, 150.50951383829917, 62.077231813228565, 28.921613512340514, -1.7353747463964819, -0.92198929608524804, -10.299898240809465, 0.679005237978899, -28.352674755287008, 1.4030381833925814, -4.4649861577325289, 13.739274709477487, 12.454719286950338, 19.12568021630095, 11.158748163655963, -3.3051410229907021, -16.992665274592852, -22.790809731221124, -60.852179067446897, -118.67047187223945, -253.85827683649717, -106.10534760670436, 477.33409412636507, -4606.7423967050645, -6140.0706338628543, -9240.4816801839206]}};
|
||
|
||
var mouth_filter = {"real": [4.6340891519992962, 0.7844322938332674, -1.1596739705934982, 3.9933365069793401, 1.0745202382104644, -0.86566739843778528, -0.97931984026536645, -0.55848113024930113, -0.35079784655500912, -0.28441072774545773, -0.088142362922499759, 0.027465161121858393, -0.014037496255053593, -0.0045512610044201119, -0.0097173297219694255, 0.0018722497460425004, 0.00034424707543540862, 0.0018722497460384895, -0.0097173297219602297, -0.0045512610044239907, -0.014037496255053029, 0.02746516112186332, -0.088142362922505241, -0.28441072774544834, -0.35079784655500912, -0.55848113024929857, -0.97931984026536589, -0.86566739843778451, 1.0745202382104642, 3.9933365069793414, -1.1596739705934984, 0.78443229383326629, -0.64146012074713299, -1.4031948309962614, -0.72621528546721359, 2.8301862310857646, 0.22901892606370081, -2.4871893946676962, -0.82292478776907829, -0.038551737265843086, -0.20580868221576679, -0.28505928673030462, -0.18459030185549916, 0.058925447647408556, 0.0086943334915795256, -0.0086001017349623815, -0.0048545170036036192, -0.0004539351773376722, 0.00092194354279838148, 0.0017350493936515445, -0.0021057925479370247, -0.0060275384450162546, -0.01880365799458189, -0.023918178864192268, -0.020757173724755319, -0.18669623657203888, -0.43413705625508531, -0.36480504844763911, -0.32161507141862777, -1.8059188349376913, 0.70639011502857929, 3.4760111666249314, -0.5602942662325473, -0.88313644188618323, -3.1958827705277328, -4.1322391810878196, 0.77904148145098406, 5.0612923845025648, 1.5447671531259652, -2.8176609661232312, -0.63748901957655968, 0.36914599600864362, -0.00037729870766316427, -0.17990982199486863, -0.032569510455235789, 0.0085089063175920673, -0.014523430514595712, -0.012452101483067112, -0.0012625852907501049, 0.00028475514852645983, 0.0011591891684665802, 0.00039450549224649017, -0.002943469227087628, -0.010724474299968166, 0.0061262158881635236, 0.029252238624593387, -0.12159824966625053, -0.31076930784864121, -0.41364470354134941, 0.022306497695738548, 0.074366913048009908, -2.6718092121882169, -0.77719061117874755, 3.9762898076403879, 3.2079354493433021, -4.4012300899429189, -2.5660816993858311, -2.553218193276197, 2.0684625359523285, 4.9974951908094045, 2.143461857355776, -1.7847370377532255, -0.28821333774369001, 0.10766200451394388, 0.18782859841053653, -0.019310891700896299, -0.0062567209274460587, -0.0064371871903130887, 0.0021510630118947156, -0.011505776785749768, -0.0029992319263973479, 0.00030084525589988385, 0.0010941864062154283, 0.00030288821499767468, -0.0032329177128834767, -0.010312595680378463, -0.0068340802376650614, 0.019823041367851263, -0.0078950524544473683, -0.23245655665346024, -0.14923618615195547, 0.056419081419621493, 0.16707514445150673, -2.1849562859013951, -0.54088886065646191, 4.0516538348232194, 4.2406226010125279, -1.7936849281843577, -2.9840428724267536, -3.2115132203593002, -1.9470763746691873, 4.1518693114943472, 2.4862294474678142, -0.30639511041804085, 0.024820417007377235, 0.27577100857260728, 0.055259784589899323, -0.14220319122433717, -0.08642751724431888, 0.023244530667997254, 0.012523451759435138, -0.0058546865987889477, -0.0029976575640192626, -3.5555809550126927e-05, 0.00047377824955015626, 0.00099596206424971642, -0.00098919816572873276, -0.0097580547506740285, -0.020619695697678356, -0.0037015241751264089, -0.003593154009926945, -0.045481667679613515, 0.090305489910112821, 0.19683301699858768, 0.20611623580645685, -0.90233672462032366, 0.065306828187895322, 4.7788333108246484, 2.9026377323781798, -3.2466266324527706, -2.1436478188271333, -2.2561432890218653, -1.9115416020763942, 2.2130343552583907, 1.9915993980953659, -0.056495739083329222, -0.2528646737117784, 0.14962266633073235, -0.0099224078218753502, -0.1479065510292869, -0.07230224268075354, 0.0058318523760505494, 0.0022686064052674618, -0.00013275302826153175, -0.00063102743369309689, 9.1509786481767957e-05, 0.00031972746011452689, 0.00053353867978528325, -0.00058791023420762787, -0.0052408752439335538, -0.0091860766601598153, 0.015159206837947898, 0.016910593952452414, -0.099017880584634829, -0.099839128057652077, 0.28004861021942001, 0.37300273050036969, -0.085260591440202538, 0.41189695036617391, 2.9117111935410587, 0.66045559278765098, -2.6585359534260435, -1.484629636420711, -1.5429215388219939, -1.0057598114385591, 1.6171176031175611, 1.3492912586213337, -0.42857897427067643, -0.50006058673779852, 0.027713169661722398, 0.11528070486941493, -0.039483986090959794, -0.044672910989708811, -0.0092116030206209065, 0.00050303223447250363, 0.00117999940390684, -0.00042184774624830218, 4.668492787763195e-06, 0.00031547415704219679, 0.0001689251312381811, -0.0012866387173093054, -0.0021139867571189981, -0.0022343140961022454, 0.0092259555638931588, -0.0022666885302687536, -0.077537144546569597, -0.14256276290766454, 0.027946173791502729, 0.115246314279082, -0.3242302049719249, 0.30841119378164411, 1.9739342660507115, 0.88921924763931337, -1.5931958725731872, -1.0137169086218167, -0.98220755452462893, -0.55271078229049098, 1.084545546778825, 1.0070569814426842, -0.18251897039350226, -0.37931318856894325, -0.013449845022921075, 0.075764515301197377, -0.035369123979370719, -0.015619619770784467, 0.003123860549792537, 0.0028409863743067009, -0.00016094314378723183, -0.0010442109044203019, -9.8941097057248808e-05, 0.00016280791369542986, 0.00021650467324038706, -0.00047567037374047843, -0.00092328459105976625, -0.0014357330004678133, -0.00013185634410259166, -0.0087980568614916873, -0.057667801386191805, -0.014139365016219003, 0.15150048657312606, -0.063156821697620796, -0.52703545490563852, -0.11064525699952842, 1.3541882686537436, 1.0048741532970387, -0.82641052291163419, -0.55788342432782989, -0.54692805386470211, -0.22545269169536206, 0.6740428991302807, 0.63746360531382218, 0.053213891179403915, -0.16323047770545179, -0.05067162930818387, 0.0058333166986499468, -0.012742844783306895, -0.0071596160198456604, -0.00093377357192446454, 0.0012222061966531139, 0.00017574396951624128, -0.0005642074481669886, -6.0828659546840626e-05, 9.2871290444668044e-05, 0.00015000413209498726, 4.777345737973158e-05, -0.000326961738278439, 0.00024195810565667486, 0.00080694685438762858, 0.0024162562143001782, -0.021930873945379376, -0.011688581845023685, 0.11525275913926007, -0.020751088469611444, -0.33588482906629819, -0.021354414893159417, 0.81277558638075542, 0.72624502554486348, -0.35235216014446363, -0.26240454745464498, -0.25116485949546724, -0.047416949334167319, 0.41581226861132581, 0.36754912691134745, 0.031499405618264475, -0.1182059528936131, -0.027325517544006306, 0.017104517731676545, -0.0028988620733824016, -0.0076630041566265582, -0.0029377702512214019, 0.00085784401988343753, 8.3233018006220044e-05, -6.6626176934615107e-05, 3.0121602117794285e-05, 2.7157707030347298e-05, 5.3948506612911946e-05, 4.1294414526828764e-05, -0.00045536935945395869, -0.00011944277202748304, 0.001701190526917767, 0.00018736852574408679, -0.0020488748359166246, -0.0058560651797691897, 0.014332522459211712, -0.02484159185287883, -0.16044866683911937, 0.063133068421675945, 0.47884903706850868, 0.46922977068813959, -0.1005858110717496, -0.10558450478212159, -0.094572659725636055, 0.030818986514241645, 0.17934859926238414, 0.13718905272203691, -0.010905020288841244, -0.05427060295960378, -0.0073090810457242502, 0.01494907224279079, 0.0034945285778568377, -0.0038412851930084225, -0.0011597829517094804, 0.00044322180186623985, 5.4551216944427788e-05, -9.2794624249969221e-06, 9.5078851906194622e-06, 4.2007998035232393e-06, 4.0012008897297825e-06, -1.1774818209916229e-05, -0.00027037083981188163, -0.00035658526841883775, 0.0010094103856456143, -0.00052904996994269221, -0.0074682098820876806, -0.0022588127195562607, 0.018210634042398671, -0.009508805432907743, -0.085651174753861262, -0.014342078173992242, 0.19289673419785613, 0.23928297364621173, 0.039149520251701771, -0.061014517221157215, -0.057366565922661691, -0.0080064655214225223, 0.076289242121436118, 0.062033108089888676, -0.0026674849249250141, -0.024627343791732099, -0.005372625137310909, 0.0080653113868279242, 0.0030108297249231111, -0.0014118319882570156, -0.00042245914300035952, 0.00026288061895118008, 3.9126968311475854e-05, -2.5576892658974124e-05, -1.3099831737018989e-05, 6.8014805414260688e-07, 6.9755222362157937e-06, 4.1140465083074929e-06, -6.1370755554305661e-05, -0.00013364764935139172, 0.00021919093935820536, -0.00034687380123466822, -0.0034793424266583023, 0.00040352462407419059, 0.01373845906597586, 0.0021423976061818307, -0.037152134230387414, -0.017035854478310443, 0.07316876401329736, 0.093558727298951636, 0.001337949029101016, -0.028771535917646113, -0.027836987718903094, -0.0056044573137369316, 0.030982713752819017, 0.025812139891197732, 0.00074892492781415969, -0.0079187798201619947, -0.002052401353006265, 0.0023870007142673053, 0.00047709621801237946, -0.00019244333515306637, 2.364174882971905e-06, 7.8630073383472148e-05, 1.0976829691696413e-05, -4.9478433448607269e-06, -2.9053042363364555e-06, 2.3830467829361056e-06, 3.9023671373108736e-06, -2.6460791618778472e-06, 1.0608628096643537e-05, 3.3021940418689286e-05, 0.0001912157704189101, 6.7444175547866513e-05, -0.00096115828672010788, 0.00087008244330741215, 0.0067484721896968842, 0.0013604220025846133, -0.013837221190936331, -0.0075049977300193776, 0.030023800478366884, 0.039750958563338108, -0.00010247159736706737, -0.01163043609268417, -0.0096266829589855638, -0.00012449081323135682, 0.0098966622932942921, 0.0080718452892629081, 0.0011587204509509821, -0.0023373825953736087, -0.00080711215646797813, 0.00063105697122019017, 0.00025055042762753488, -0.00015724082609640453, -2.9456254661901335e-05, 2.2436391551144613e-05, 5.7614021056943357e-06, 9.2836238115278777e-08, -2.983219466927386e-07, 3.9469148175242839e-07, -1.897541367332826e-07, 2.3086718690330816e-07, -3.2379878454182751e-06, 2.9136696178544169e-06, 9.1340416066903861e-05, 0.00013720705972618841, -0.00027185621825451397, -0.00025621479435585686, 0.001222650455527893, 8.5193002129657069e-05, -0.004064865703922135, -0.00029221589048634159, 0.011494835522638509, 0.01340946760762054, -0.00054241338513798362, -0.0039904416962682253, -0.0028675934245187911, 0.00011970246178788614, 0.0032259655922311906, 0.0027177896529416603, 0.00029039751533865968, -0.00056045647677372237, -0.00011868935035429348, 8.6932625960108793e-05, 4.0585244752836994e-05, -3.9685399626399569e-05, -3.3675702194659581e-05, 1.8041324860728306e-06, 7.1527415341150131e-07, -2.5874877778097139e-07, -3.5187588582041102e-07, -4.9612975448428711e-07, 4.7392836724258751e-08, -2.7763787498630026e-07, -8.4165778406209883e-07, 3.0761526067769889e-07, 1.927255849211769e-05, 3.5189855392011486e-06, -9.8678053133183447e-05, -6.2632939936424042e-05, 0.00017511504940116496, -9.4816296748496417e-05, -0.0010867114051789507, 0.00038291262596998446, 0.0037605600166853263, 0.0033513976296794821, -0.0010579625982184212, -0.00083900520021582383, -0.00052619171844538041, 0.00055771306950743252, 0.0012835447933515079, 0.00080151927400318277, 6.1491898000095208e-05, -0.00011622895984693472, -2.362760140891841e-05, 3.979172224729024e-05, 7.0290787962574776e-06, -8.7051393881149627e-06, -1.7451721719085544e-06, -1.971994185063341e-06, -7.5103971978779283e-08, -6.3110103076160124e-08, -6.5527443378366647e-08, -1.271443792432593e-07, 9.3246051218088246e-08, 1.5092375607837617e-07, -4.0633606215809979e-07, 4.8842482637076878e-07, 6.2006052053478677e-06, 9.9625085097078631e-06, -8.4218410398305216e-06, -2.1130341683092213e-05, -8.6580287858941996e-06, -0.00010846093496444906, -0.00019573231564846473, 0.00038253737826254207, 0.0014355018795734822, 0.0012361430930244762, -3.8330562655413493e-05, -0.00045693558279248441, -0.00013724958223101865, 0.0005563817789235216, 0.0008124065993596201, 0.00038839544015797694, 5.2654227599481573e-06, -2.0620767185676097e-05, 1.4058588768839616e-05, 2.4456681475752488e-06, -1.3038942789126752e-06, 3.2957272146113247e-06, 2.136839449678527e-06, -3.8521786796247972e-08, -3.9949631386029851e-07, -2.803297067646553e-08, -4.2841831822770929e-08, -2.708778766944344e-08, -4.2841831887488422e-08, -2.8032970597075431e-08, -3.9949631385981395e-07, -3.8521786746470003e-08, 2.1368394496269648e-06, 3.2957272146716597e-06, -1.3038942788497014e-06, 2.4456681475752488e-06, 1.4058588768888149e-05, -2.0620767185710351e-05, 5.2654227597687651e-06, 0.00038839544015800736, 0.00081240659935969219, 0.00055638177892360769, -0.00013724958223097121, -0.00083900520021596553, -3.833056265530287e-05, 0.0012361430930255431, 0.0014355018795735538, 0.00038253737826226555, -0.00019573231564817955, -0.0001084609349642516, -8.6580287858519462e-06, -2.1130341683048624e-05, -8.4218410398544215e-06, 9.9625085095730612e-06, 6.2006052055115093e-06, 4.8842482632655112e-07, -4.0633606237408006e-07, 1.5092375605026055e-07, 9.3246051443898654e-08, -1.2714437924313219e-07, -6.5527443487134095e-08, -6.3110103047252147e-08, -7.510397195070611e-08, -1.9719941850259958e-06, -1.7451721718998097e-06, -8.7051393879504859e-06, 7.0290787963321046e-06, 3.9791722247395916e-05, -2.3627601408864216e-05, -0.0001162289598470872, 6.1491898000005259e-05, 0.00080151927400328501, 0.0012835447933512035, 0.00055771306950693161, -0.00052619171844531059, -0.003990441696267554, -0.0010579625982183091, 0.0033513976296794508, 0.0037605600166856607, 0.00038291262597007754, -0.0010867114051789164, -9.4816296748372926e-05, 0.00017511504940131815, -6.2632939936292583e-05, -9.8678053133139699e-05, 3.5189855391400817e-06, 1.9272558492233388e-05, 3.0761526064323095e-07, -8.4165778419493996e-07, -2.7763787504721638e-07, 4.7392836831470689e-08, -4.9612975448445027e-07, -3.5187588609488416e-07, -2.5874877778167802e-07, 7.152741534536303e-07, 1.804132486106339e-06, -3.3675702194604274e-05, -3.9685399626282394e-05, 4.0585244752900393e-05, 8.6932625960089156e-05, -0.00011868935035428417, -0.0005604564767739365, 0.00029039751533834201, 0.0027177896529417466, 0.0032259655922308689, 0.00011970246178728064, -0.0028675934245188605, -0.011630436092684446, -0.00054241338513798633, 0.013409467607620592, 0.011494835522638138, -0.00029221589048616421, -0.0040648657039219702, 8.5193002129971217e-05, 0.001222650455528094, -0.00025621479435585409, -0.0002718562182545189, 0.00013720705972611116, 9.1340416066969292e-05, 2.9136696178498302e-06, -3.2379878454707733e-06, 2.3086718686225909e-07, -1.8975413675430027e-07, 3.9469148175231827e-07, -2.9832194662415222e-07, 9.2836238091981533e-08, 5.7614021057956332e-06, 2.243639155115928e-05, -2.9456254661848962e-05, -0.00015724082609634113, 0.00025055042762756014, 0.0006310569712201816, -0.00080711215646793249, -0.0023373825953734708, 0.0011587204509510469, 0.0080718452892626774, 0.0098966622932934109, -0.00012449081323185037, -0.0096266829589855153, -0.028771535917645582, -0.00010247159736742938, 0.03975095856333772, 0.030023800478366992, -0.0075049977300190333, -0.013837221190936397, 0.001360422002584686, 0.0067484721896969484, 0.00087008244330749834, -0.00096115828672011482, 6.7444175547800892e-05, 0.00019121577041898859, 3.3021940418677224e-05, 1.0608628096553211e-05, -2.6460791619305373e-06, 3.9023671372462814e-06, 2.3830467829358028e-06, -2.9053042364313164e-06, -4.9478433448600171e-06, 1.0976829691639238e-05, 7.863007338347967e-05, 2.3641748829703282e-06, -0.00019244333515297128, 0.00047709621801239502, 0.0023870007142673287, -0.0020524013530060455, -0.0079187798201617154, 0.00074892492781425889, 0.025812139891197631, 0.030982713752818712, -0.0056044573137374659, -0.027836987718902747, -0.061014517221157166, 0.0013379490291006914, 0.093558727298950733, 0.073168764013296958, -0.017035854478310443, -0.037152134230387518, 0.0021423976061819595, 0.013738459065975945, 0.00040352462407424605, -0.0034793424266582368, -0.00034687380123471886, 0.00021919093935825583, -0.00013364764935140623, -6.1370755554343757e-05, 4.1140465083160657e-06, 6.9755222361877128e-06, 6.8014805414205017e-07, -1.3099831737122968e-05, -2.5576892658968157e-05, 3.9126968311429429e-05, 0.00026288061895118621, -0.00042245914300031615, -0.0014118319882569644, 0.003010829724923217, 0.0080653113868278357, -0.0053726251373106982, -0.024627343791731683, -0.0026674849249247769, 0.06203310808988808, 0.076289242121435036, -0.0080064655214229473, -0.057366565922661421, -0.10558450478212106, 0.039149520251701674, 0.23928297364621154, 0.19289673419785586, -0.014342078173991857, -0.085651174753861178, -0.0095088054329078991, 0.018210634042398706, -0.002258812719556187, -0.0074682098820877006, -0.0005290499699428646, 0.0010094103856456574, -0.00035658526841884875, -0.00027037083981181821, -1.1774818209899307e-05, 4.0012008896968829e-06, 4.2007998035228361e-06, 9.5078851906702469e-06, -9.2794624249821973e-06, 5.45512169444116e-05, 0.0004432218018662688, -0.0011597829517094238, -0.0038412851930083049, 0.0034945285778569305, 0.014949072242790728, -0.0073090810457241244, -0.054270602959603668, -0.01090502028884107, 0.13718905272203655, 0.17934859926238284, 0.030818986514240795, -0.09457265972563568, -0.26240454745464348, -0.1005858110717494, 0.46922977068813976, 0.4788490370685089, 0.063133068421676597, -0.16044866683911846, -0.024841591852878687, 0.014332522459211764, -0.005856065179769227, -0.0020488748359166085, 0.00018736852574399146, 0.0017011905269178167, -0.00011944277202752463, -0.00045536935945402705, 4.1294414526791867e-05, 5.3948506612877123e-05, 2.7157707030347085e-05, 3.0121602117749643e-05, -6.6626176934661782e-05, 8.3233018006250646e-05, 0.0008578440198834165, -0.0029377702512214973, -0.0076630041566264767, -0.0028988620733823725, 0.017104517731676455, -0.027325517544006247, -0.11820595289361274, 0.031499405618264593, 0.36754912691134622, 0.41581226861132453, -0.04741694933416768, -0.2511648594954663, -0.55788342432782989, -0.35235216014446413, 0.72624502554486348, 0.8127755863807552, -0.021354414893159278, -0.33588482906629807, -0.020751088469611285, 0.11525275913925997, -0.011688581845023685, -0.021930873945379303, 0.0024162562143002332, 0.00080694685438767672, 0.00024195810565667153, -0.00032696173827853592, 4.7773457379814068e-05, 0.00015000413209503944, 9.2871290444668044e-05, -6.0828659546917042e-05, -0.00056420744816712695, 0.00017574396951636955, 0.0012222061966531885, -0.00093377357192450466, -0.007159616019845526, -0.01274284478330687, 0.0058333166986499468, -0.050671629308183697, -0.16323047770545204, 0.05321389117940345, 0.63746360531382207, 0.6740428991302817, -0.22545269169536208, -0.54692805386470211, -1.0137169086218165, -0.82641052291163497, 1.0048741532970369, 1.3541882686537434, -0.1106452569995289, -0.52703545490563775, -0.063156821697620685, 0.15150048657312606, -0.014139365016218914, -0.057667801386191833, -0.0087980568614915919, -0.00013185634410271281, -0.0014357330004678901, -0.00092328459105995816, -0.00047567037374023129, 0.00021650467324065207, 0.00016280791369542935, -9.8941097057279613e-05, -0.0010442109044203046, -0.00016094314378705795, 0.0028409863743067928, 0.0031238605497927777, -0.015619619770784359, -0.035369123979370198, 0.075764515301197433, -0.013449845022920601, -0.37931318856894264, -0.18251897039350262, 1.0070569814426831, 1.084545546778823, -0.55271078229049153, -0.9822075545246276, -1.4846296364207112, -1.5931958725731861, 0.88921924763931159, 1.9739342660507089, 0.30841119378164455, -0.32423020497192495, 0.11524631427908204, 0.027946173791502632, -0.14256276290766468, -0.077537144546569833, -0.002266688530268584, 0.0092259555638929507, -0.0022343140961023017, -0.0021139867571188628, -0.0012866387173093869, 0.00016892513123889085, 0.00031547415704219538, 4.668492787631832e-06, -0.00042184774624882054, 0.0011799994039063304, 0.00050303223447267277, -0.0092116030206206324, -0.044672910989708575, -0.03948398609095928, 0.11528070486941518, 0.027713169661722662, -0.5000605867377983, -0.42857897427067776, 1.3492912586213337, 1.6171176031175631, -1.0057598114385595, -1.5429215388219939, -2.143647818827132, -2.6585359534260422, 0.66045559278764887, 2.9117111935410573, 0.41189695036617402, -0.085260591440201997, 0.37300273050036942, 0.28004861021941868, -0.09983912805765198, -0.099017880584635037, 0.016910593952451765, 0.015159206837948214, -0.0091860766601597858, -0.005240875243933095, -0.00058791023420808302, 0.00053353867978554596, 0.00031972746011452689, 9.1509786481807435e-05, -0.00063102743369398116, -0.00013275302826212034, 0.0022686064052679666, 0.0058318523760503612, -0.072302242680752943, -0.14790655102928651, -0.0099224078218752652, 0.14962266633073282, -0.25286467371177851, -0.056495739083330138, 1.9915993980953646, 2.2130343552583911, -1.9115416020763922, -2.2561432890218649, -2.9840428724267536, -3.2466266324527679, 2.902637732378178, 4.7788333108246475, 0.065306828187895516, -0.90233672462032188, 0.20611623580645633, 0.19683301699858602, 0.090305489910112668, -0.045481667679613411, -0.00359315400992807, -0.0037015241751260411, -0.02061969569767819, -0.0097580547506737354, -0.00098919816572940519, 0.00099596206425130282, 0.00047377824955015637, -3.555580955030948e-05, -0.0029976575640203941, -0.0058546865987889858, 0.012523451759435134, 0.023244530667997261, -0.086427517244318533, -0.14220319122433661, 0.05525978458989915, 0.27577100857260672, 0.024820417007377481, -0.30639511041804179, 2.4862294474678128, 4.1518693114943428, -1.947076374669187, -3.2115132203593006, -2.5660816993858284, -1.7936849281843579, 4.2406226010125261, 4.0516538348232221, -0.54088886065646147, -2.1849562859013973, 0.1670751444515067, 0.05641908141962089, -0.1492361861519553, -0.23245655665346052, -0.0078950524544474775, 0.01982304136785135, -0.0068340802376656131, -0.010312595680378572, -0.0032329177128843376, 0.00030288821499861344, 0.0010941864062154279, 0.000300845255900019, -0.0029992319263979755, -0.011505776785751019, 0.0021510630118943804, -0.0064371871903127383, -0.0062567209274463683, -0.019310891700895682, 0.18782859841053667, 0.10766200451394509, -0.28821333774368862, -1.7847370377532281, 2.1434618573557747, 4.9974951908094001, 2.0684625359523268, -2.5532181932761979, -3.1958827705277333, -4.4012300899429215, 3.2079354493433048, 3.9762898076403923, -0.77719061117874688, -2.6718092121882195, 0.074366913048009561, 0.02230649769573629, -0.41364470354134925, -0.31076930784863965, -0.12159824966625225, 0.029252238624593849, 0.0061262158881634976, -0.010724474299966393, -0.0029434692270879645, 0.00039450549224720385, 0.0011591891684665805, 0.00028475514852767235, -0.0012625852907517934, -0.012452101483067435, -0.014523430514596241, 0.0085089063175917082, -0.032569510455234915, -0.17990982199486819, -0.00037729870766311575, 0.36914599600864506, -0.63748901957656057, -2.8176609661232312, 1.5447671531259644, 5.0612923845025639, 0.77904148145098462, -4.1322391810878223, -0.64146012074713366, -0.88313644188618345, -0.56029426623254674, 3.4760111666249305, 0.70639011502857829, -1.805918834937694, -0.32161507141862899, -0.36480504844764006, -0.43413705625508542, -0.1866962365720416, -0.020757173724754961, -0.023918178864192875, -0.018803657994580801, -0.0060275384450154063, -0.002105792547937667, 0.00173504939364955, 0.00092194354279838181, -0.00045393517734262397, -0.0048545170036007057, -0.0086001017349646748, 0.0086943334915797251, 0.058925447647409854, -0.18459030185549863, -0.28505928673030412, -0.20580868221576676, -0.038551737265842712, -0.82292478776907585, -2.4871893946676935, 0.22901892606369992, 2.8301862310857611, -0.72621528546721381, -1.4031948309962614], "bottom": {"real": [5678.1086041894205, 20900.18095010153, 3447.0499761258557, 3006.2920785513897, 1095.893903110946, 386.81104976321694, 202.87465181506209, 112.96922946840166, 74.157579598112093, 62.413315591675342, 46.931213065231809, 32.703444421117119, 23.138509584976408, 18.532485453515367, 13.839857335386801, 11.995391672846374, 11.011316958211436, 11.995391672846273, 13.839857335386798, 18.532485453515342, 23.138509584976408, 32.703444421117176, 46.931213065231873, 62.41331559167557, 74.157579598112093, 112.96922946840168, 202.87465181506209, 386.8110497632174, 1095.8939031109464, 3006.2920785513907, 3447.0499761258566, 20900.180950101545, 11652.541375531215, 6105.9976767437374, 3079.1167046754913, 1776.9919423314705, 759.63591736173282, 370.96222186223144, 186.72550653728851, 104.06222158598892, 72.776226915090177, 54.132047333262229, 40.617443247446026, 26.905297339122829, 20.596051003825067, 16.964451546104712, 12.574490983994691, 10.149549151428955, 9.456590806505238, 9.9768657536093883, 12.029240511903456, 15.043219420350251, 20.838711299344116, 30.553614566731468, 44.40616386235552, 58.565861412331529, 70.132835875061744, 104.51314473208357, 189.56857349608143, 377.16693201205015, 884.12700895693013, 2239.7595640192126, 3145.1913405539117, 6958.5740759503597, 9609.5106426127932, 4992.6608769394197, 1669.5618690661463, 1059.1995113905639, 549.16279790927274, 278.94923830500289, 170.62516999169446, 111.93749936902557, 73.270251985017907, 52.998042263483633, 37.142546768677903, 24.977928698896999, 19.757351140056166, 15.549412568397655, 12.287444953226689, 10.159177492646036, 9.2913516551568005, 9.4707404644445941, 11.366894624691977, 14.908412193461192, 19.162809661823754, 25.525875481280988, 36.846585979626177, 51.022038209027251, 67.247306229462055, 96.043853286628931, 163.05718048491738, 294.76980362823429, 519.23514670394684, 957.57039473443547, 1368.5173470150648, 3871.635585616455, 5303.4798274482118, 3579.2066474003154, 1207.1822867649944, 879.86972928318005, 366.88528484741369, 208.17182668800805, 144.26637111917213, 100.24198689599578, 68.818117171408701, 48.744575666300129, 36.079835978948523, 24.716276003836366, 18.3829469088219, 14.338503983471835, 11.518473012854098, 9.4389981542904859, 8.6855447757572897, 9.3111499128487676, 10.931731847155714, 14.242659983217518, 18.454273027639637, 22.997981877882626, 32.775354054937182, 47.784430534137819, 65.982333636303437, 97.039219839998921, 143.27997074170094, 205.80805308530745, 348.18684046898466, 831.79281380405996, 1177.2730197279227, 2733.3936378292215, 3938.2641458688445, 2819.7837494548567, 820.36462717097368, 471.37587503146102, 271.87929154854345, 194.2701704157619, 144.96617790506966, 97.576794771201833, 61.3119854017338, 44.971290338260182, 31.994561157116021, 22.178882955012892, 16.262756648609532, 13.335771300720145, 10.777277796853795, 9.4872372674219161, 8.4179220667115882, 8.8615504994164276, 10.464447670423642, 13.467380568991793, 17.380860604603019, 22.603085253093905, 31.976099529363569, 44.356708279359708, 58.842492346581366, 84.943606310881933, 129.92857886018368, 172.62888515328848, 240.58003385007751, 441.25082967480506, 690.43324997326704, 1627.6849016299075, 3510.6104569290264, 2572.5928689582997, 734.84965238283041, 346.49155817100205, 245.54955425961745, 154.38419406683067, 123.89126600552243, 73.592832336469911, 51.176815014056707, 38.823519356586488, 27.703018951863196, 20.40402437294096, 15.615914454631133, 12.262838166368205, 10.911393710353273, 9.2831005853774435, 8.0758021716500519, 8.9560352521382285, 10.337739417364297, 12.597356227543543, 15.877991319670912, 20.726370017730709, 27.911545681671033, 37.940376333065345, 53.075877633932322, 72.520382240797787, 117.05897406186033, 158.12669065273971, 212.38391288711696, 299.48678366969477, 458.16531800810117, 1452.4284055535941, 1811.7186422893874, 1492.3389942582992, 530.65233974797684, 291.76966991086613, 187.69065022036725, 128.13046637777484, 90.24516666546559, 62.18605129748434, 41.710267966739593, 31.806783986884078, 25.068630438788546, 18.542553262414661, 14.666394584276578, 11.150365108371181, 9.9606764098368359, 8.5525257374706207, 7.7030138744354231, 8.2863477700222052, 9.8144929913230374, 11.655898242076917, 14.231766288773079, 17.885476571421012, 23.413082960982251, 31.608461656401264, 43.352221767718426, 55.676412685850877, 83.620268450993763, 126.42534521303489, 156.87210807500801, 246.58019931340195, 341.88266569523688, 826.98358454061815, 1404.2471167163787, 1228.1386668678601, 466.96068651596903, 262.22064771032797, 169.28009741248692, 115.01657309947615, 81.656383365816069, 54.579351530742883, 37.960529311280091, 27.270275764980511, 21.626986342929015, 16.174148423485327, 13.175385803191114, 10.818108303701184, 9.0657850663622632, 7.6275792078218663, 7.6107016321135834, 7.1158024527040036, 8.9011265392735677, 10.779707882412266, 12.420331822356596, 16.598306303244669, 21.012033493538478, 26.831312912868523, 33.051774609079132, 46.309734418779385, 65.383201302087031, 99.002477905219891, 128.56748384849996, 196.60807492406175, 298.23398084325686, 608.36256258703634, 1076.3354380676617, 975.85098582002695, 374.17471043828004, 222.04753134206624, 153.76758510324842, 111.73984833658845, 72.541074744398003, 46.502855765338275, 35.062921303265831, 24.451970593539095, 20.281233326031273, 15.065285185027921, 11.707355473726542, 9.7459029487301194, 8.114918006499499, 7.0964681111892807, 6.6796982066891397, 6.5878914508655138, 7.8186051199031059, 9.5427463544095801, 11.594349559722247, 14.318362157023484, 17.836915226678599, 22.844712934499004, 29.434722992970055, 39.992087970322991, 55.284175542844757, 86.773492313502047, 121.99890155292813, 175.66007701025202, 246.61763210131207, 451.54810738357452, 628.04019623528905, 603.29388410781314, 273.42112436269019, 189.28495193605181, 134.97815383583696, 92.537932899584618, 56.665976520174233, 40.654050842358266, 31.171413996879973, 21.026413392061954, 18.00341753039012, 13.721993308218343, 10.669689426212042, 8.356205196082156, 7.3868882398016433, 6.517599896433226, 6.0584998866872368, 6.5638826426931418, 7.1336795088287781, 8.613838618839619, 10.802606348653876, 13.366335355351938, 15.820551075574965, 19.845163015492108, 26.999239022736937, 35.458458280870509, 46.363090584483807, 68.281465328502051, 105.62610076866049, 153.51240187831726, 202.14938057052223, 301.98539336713208, 397.56324291610815, 405.30563382951226, 215.91082743746526, 149.29333201310212, 99.680104111337215, 70.844144712189916, 48.696705114384329, 36.637056536037569, 25.596184359277657, 19.02307727771527, 15.749761366858216, 11.951033594401437, 10.086463061934033, 8.3506293881191844, 7.2022393029757437, 6.0807779602627861, 5.7612683150124271, 6.0273725182896527, 6.6165496542300648, 7.4365452715085159, 8.6783297077665154, 11.615060741665609, 13.833866336064673, 18.575864228781477, 23.246005390172172, 31.555902400033563, 40.677669500589332, 56.667715144820136, 81.408207108224573, 111.98547216305556, 158.44613292857147, 210.62780774515824, 290.55794842865595, 312.25621146691742, 170.30250321119885, 113.87454497096817, 82.354258183333911, 59.818603534093889, 44.07044665600381, 32.893778204904692, 22.496539871033299, 17.094011041557415, 14.588382118274911, 11.200549789992062, 9.5745830477514566, 8.087405619242082, 6.7925999368613024, 5.4961910805963576, 5.1971703023131628, 5.4199426306511533, 5.7678603293099391, 7.0020534104826666, 8.2642952032077304, 10.213916707261937, 12.095005343850676, 15.601004576857186, 19.781090153028195, 26.29348154312569, 36.515567090044549, 48.740864373075503, 65.517726973596552, 85.616867091925073, 121.65124801185172, 164.28464153081055, 206.40983634767443, 220.41852448872194, 129.10563781650259, 92.689146582332683, 70.791066599245255, 51.943563730344891, 38.624038300983216, 28.742887457924869, 20.6631866841911, 16.243037999103294, 13.925007170923269, 11.024255100844002, 8.4139950296861468, 7.0401470253813523, 6.2856888836418143, 5.3560804114466043, 4.9985348214397556, 5.25099810618907, 5.5809638553577701, 6.8223029788192386, 8.5634007206388532, 9.7563203496299558, 11.812088062444902, 14.805264064130581, 17.93575786748271, 22.626272918294738, 31.174402898500958, 43.302312307258802, 56.326841577080955, 74.050997536102813, 101.37453317449018, 126.60409524008277, 162.42301117619624, 177.05193776506522, 115.72813424994953, 82.326066966484547, 61.307330817502205, 44.340846370849256, 33.378870891164695, 24.521965532974615, 18.923945416120109, 15.051214231467789, 12.320737648353592, 9.7999756970991925, 7.7145670626644423, 6.8152552126005839, 5.790991468644493, 5.5254951271344099, 4.9037029711983342, 5.4977261939037048, 5.4210433665926923, 6.2988580763712889, 7.9430787323529524, 9.3778517337478533, 11.242198007971071, 14.240421326197554, 17.651811381705546, 21.659024896488908, 29.131550319460956, 38.485086199887071, 50.092317177842048, 64.493269139882599, 88.474033169854309, 111.97252766350397, 138.89119149223308, 144.08748993083097, 100.36203094373164, 71.130756050186491, 51.595222833795184, 37.837750442044026, 29.957897076201892, 23.307587216478719, 17.870061723923296, 13.548228816751676, 10.730279953947793, 8.7941383608544452, 7.5189392893151066, 6.705955395914339, 5.4286200247646947, 4.999797681915652, 4.6762703758000139, 5.2431836531184182, 5.2308729223806347, 6.1881055124038262, 7.5261510579683444, 8.5830144005603604, 10.380584080562716, 13.063097810243177, 16.764705389876635, 21.077788907239153, 26.946259601518928, 35.064067560413655, 44.053944420107648, 58.895199291399678, 80.480502591809355, 105.53062749300898, 125.53124807748995, 123.85180136306964, 91.386853748724988, 64.043808743881343, 47.377246890606187, 36.917795087421162, 29.986306366154221, 21.922248103539825, 16.586233036173578, 13.010233921941435, 10.477074169109398, 8.6985558893370474, 7.2537351369992162, 6.347024549002974, 5.3569268232459128, 5.0096575514846968, 4.7237151783382343, 5.0872350526917325, 5.223561398000081, 6.2419547006416494, 7.1521863771078822, 7.9320558557880068, 9.974158228854499, 13.174966641491576, 15.965377755431728, 19.871959533459759, 25.954935810295414, 33.854283766819641, 44.113318889386903, 56.699892234383839, 81.033857172535789, 104.09119566434012, 123.77824150517087, 114.20520067738279, 85.229693259738468, 60.295157098692592, 46.590785285134146, 36.201434834295654, 27.092016678743615, 20.190577794974832, 15.811850117592071, 12.818302458338326, 10.737776338076218, 8.4417395277092595, 7.2563660620061432, 6.1723041784468409, 5.4319323269044659, 5.4462365532477222, 4.8064386829859753, 5.4462365532477284, 5.4319323269044641, 6.1723041784468409, 7.2563660620061476, 8.4417395277092666, 10.737776338076216, 12.81830245833833, 15.811850117592071, 20.190577794974825, 27.092016678743608, 36.20143483429564, 46.590785285134125, 60.295157098692549, 85.229693259738468, 114.20520067738286, 125.53124807748999, 104.09119566434013, 81.033857172535832, 56.699892234383839, 44.113318889386896, 33.854283766819655, 25.954935810295371, 19.871959533459762, 15.965377755431739, 13.174966641491576, 9.9741582288545025, 7.9320558557880112, 7.1521863771078893, 6.241954700641652, 5.2235613980000775, 5.0872350526917307, 4.7237151783382378, 5.0096575514846968, 5.3569268232459146, 6.3470245490029713, 7.2537351369992198, 8.6985558893370474, 10.477074169109407, 13.010233921941426, 16.586233036173571, 21.922248103539818, 29.986306366154224, 36.917795087421148, 47.377246890606152, 64.043808743881314, 91.386853748724917, 123.85180136306961, 138.89119149223299, 105.53062749300904, 80.480502591809227, 58.895199291399692, 44.053944420107612, 35.064067560413633, 26.946259601518928, 21.077788907239164, 16.764705389876632, 13.063097810243177, 10.38058408056272, 8.5830144005603639, 7.5261510579683462, 6.1881055124038333, 5.2308729223806383, 5.2431836531184173, 4.6762703758000139, 4.9997976819156502, 5.4286200247646956, 6.7059553959143425, 7.518939289315103, 8.7941383608544399, 10.730279953947782, 13.548228816751662, 17.870061723923293, 23.307587216478719, 29.957897076201906, 37.837750442044026, 51.595222833795212, 71.130756050186449, 100.36203094373161, 144.08748993083097, 162.4230111761963, 111.97252766350395, 88.474033169854323, 64.493269139882642, 50.092317177842069, 38.485086199887057, 29.131550319460946, 21.659024896488901, 17.651811381705546, 14.240421326197549, 11.24219800797108, 9.3778517337478586, 7.9430787323529533, 6.2988580763712898, 5.4210433665926958, 5.4977261939037065, 4.9037029711983324, 5.5254951271344037, 5.7909914686444868, 6.8152552126005865, 7.7145670626644396, 9.7999756970991907, 12.320737648353587, 15.051214231467785, 18.923945416120109, 24.521965532974619, 33.378870891164681, 44.340846370849256, 61.307330817502212, 82.326066966484575, 115.72813424994952, 177.05193776506513, 206.40983634767417, 126.60409524008281, 101.37453317449015, 74.050997536102813, 56.326841577080955, 43.302312307258816, 31.174402898500965, 22.626272918294742, 17.93575786748271, 14.805264064130563, 11.812088062444909, 9.7563203496299522, 8.5634007206388585, 6.8223029788192431, 5.5809638553577683, 5.2509981061890709, 4.9985348214397556, 5.3560804114466061, 6.2856888836418072, 7.0401470253813523, 8.4139950296861485, 11.024255100844005, 13.925007170923264, 16.243037999103286, 20.663186684191096, 28.742887457924876, 38.624038300983237, 51.943563730344863, 70.791066599245227, 92.689146582332697, 129.10563781650256, 220.41852448872183, 290.55794842865578, 164.28464153081066, 121.65124801185169, 85.616867091925073, 65.517726973596524, 48.740864373075532, 36.515567090044541, 26.29348154312569, 19.781090153028192, 15.601004576857186, 12.095005343850689, 10.213916707261948, 8.2642952032077304, 7.0020534104826773, 5.7678603293099435, 5.4199426306511462, 5.1971703023131655, 5.496191080596355, 6.7925999368612997, 8.0874056192420785, 9.574583047751446, 11.20054978999206, 14.588382118274911, 17.094011041557405, 22.496539871033306, 32.893778204904692, 44.07044665600381, 59.818603534093839, 82.35425818333394, 113.87454497096807, 170.30250321119888, 312.25621146691731, 397.56324291610832, 210.62780774515818, 158.44613292857147, 111.98547216305556, 81.408207108224559, 56.66771514482015, 40.677669500589346, 31.555902400033585, 23.246005390172176, 18.575864228781501, 13.833866336064665, 11.615060741665616, 8.6783297077665136, 7.4365452715085221, 6.6165496542300621, 6.0273725182896607, 5.7612683150124271, 6.0807779602627852, 7.2022393029757401, 8.3506293881191827, 10.086463061934035, 11.951033594401432, 15.749761366858216, 19.023077277715267, 25.59618435927765, 36.637056536037541, 48.696705114384315, 70.844144712189944, 99.680104111337187, 149.29333201310209, 215.91082743746531, 405.30563382951209, 628.04019623528882, 301.98539336713219, 202.14938057052214, 153.51240187831741, 105.62610076866049, 68.281465328502051, 46.363090584483821, 35.458458280870502, 26.999239022736958, 19.845163015492105, 15.820551075574963, 13.366335355351934, 10.802606348653876, 8.6138386188396243, 7.1336795088287852, 6.5638826426931312, 6.0584998866872368, 6.5175998964332322, 7.3868882398016451, 8.3562051960821524, 10.669689426212047, 13.721993308218325, 18.003417530390131, 21.026413392061936, 31.171413996879959, 40.654050842358252, 56.665976520174254, 92.537932899584604, 134.97815383583699, 189.28495193605173, 273.42112436269031, 603.29388410781269, 1076.3354380676617, 451.54810738357469, 246.61763210131207, 175.66007701025202, 121.99890155292813, 86.773492313502132, 55.284175542844778, 39.992087970322984, 29.434722992970055, 22.844712934499, 17.836915226678613, 14.318362157023493, 11.594349559722259, 9.5427463544095765, 7.8186051199031059, 6.5878914508655102, 6.6796982066891397, 7.0964681111892833, 8.1149180064994972, 9.7459029487301141, 11.707355473726548, 15.065285185027918, 20.281233326031277, 24.451970593539112, 35.062921303265831, 46.502855765338289, 72.541074744397974, 111.73984833658835, 153.76758510324839, 222.04753134206618, 374.17471043828004, 975.85098582002649, 1404.247116716379, 608.36256258703611, 298.2339808432568, 196.60807492406164, 128.56748384850005, 99.002477905219948, 65.383201302087045, 46.309734418779399, 33.051774609079132, 26.831312912868544, 21.012033493538468, 16.598306303244666, 12.420331822356601, 10.779707882412263, 8.9011265392735623, 7.1158024527040018, 7.6107016321135861, 7.6275792078218707, 9.065785066362265, 10.81810830370118, 13.175385803191121, 16.174148423485349, 21.62698634292904, 27.270275764980493, 37.960529311280098, 54.579351530742926, 81.656383365816112, 115.0165730994761, 169.28009741248692, 262.22064771032797, 466.9606865159688, 1228.1386668678595, 1811.7186422893876, 826.98358454061849, 341.88266569523705, 246.58019931340198, 156.87210807500793, 126.42534521303487, 83.620268450993777, 55.676412685850913, 43.352221767718426, 31.608461656401282, 23.413082960982216, 17.885476571420995, 14.231766288773079, 11.65589824207691, 9.8144929913230339, 8.2863477700222088, 7.7030138744354231, 8.5525257374706172, 9.9606764098368394, 11.150365108371185, 14.666394584276583, 18.542553262414668, 25.068630438788542, 31.806783986884088, 41.710267966739572, 62.186051297484333, 90.245166665465547, 128.13046637777475, 187.69065022036725, 291.76966991086601, 530.65233974797684, 1492.3389942582987, 3510.6104569290255, 1452.4284055535948, 458.16531800810117, 299.48678366969483, 212.38391288711682, 158.12669065273965, 117.05897406186025, 72.520382240797787, 53.07587763393235, 37.940376333065323, 27.91154568167104, 20.726370017730687, 15.877991319670903, 12.597356227543528, 10.337739417364284, 8.9560352521382303, 8.0758021716500537, 9.2831005853774364, 10.911393710353279, 12.262838166368201, 15.615914454631143, 20.404024372940963, 27.703018951863204, 38.823519356586509, 51.176815014056693, 73.592832336469868, 123.89126600552244, 154.38419406683062, 245.54955425961754, 346.491558171002, 734.84965238283075, 2572.5928689582984, 3938.2641458688445, 1627.6849016299093, 690.43324997326704, 441.25082967480483, 240.58003385007751, 172.62888515328839, 129.92857886018368, 84.943606310881961, 58.842492346581359, 44.356708279359744, 31.976099529363548, 22.603085253093905, 17.380860604603011, 13.467380568991784, 10.46444767042364, 8.8615504994164098, 8.4179220667115935, 9.487237267421909, 10.777277796853792, 13.335771300720136, 16.262756648609525, 22.178882955012895, 31.994561157116046, 44.971290338260197, 61.311985401733793, 97.576794771201889, 144.96617790506969, 194.27017041576195, 271.87929154854334, 471.37587503146125, 820.36462717097379, 2819.7837494548558, 5303.4798274482137, 2733.3936378292242, 1177.2730197279232, 831.79281380405973, 348.18684046898477, 205.80805308530728, 143.27997074170079, 97.039219839998907, 65.982333636303451, 47.784430534137826, 32.775354054937196, 22.997981877882619, 18.45427302763963, 14.242659983217516, 10.931731847155714, 9.3111499128487569, 8.6855447757572897, 9.4389981542904824, 11.518473012854098, 14.33850398347184, 18.382946908821911, 24.716276003836377, 36.079835978948545, 48.744575666300136, 68.81811717140873, 100.24198689599579, 144.26637111917196, 208.17182668800794, 366.88528484741386, 879.86972928318096, 1207.1822867649948, 3579.2066474003141, 9609.5106426127932, 3871.635585616455, 1368.5173470150646, 957.5703947344349, 519.23514670394684, 294.76980362823411, 163.05718048491758, 96.043853286628973, 67.247306229462083, 51.022038209027237, 36.846585979626163, 25.525875481280988, 19.162809661823751, 14.908412193461192, 11.366894624691964, 9.4707404644445834, 9.2913516551568005, 10.159177492646041, 12.287444953226698, 15.549412568397658, 19.757351140056148, 24.977928698897006, 37.142546768677924, 52.99804226348364, 73.270251985017907, 111.93749936902559, 170.62516999169443, 278.94923830500301, 549.16279790927297, 1059.1995113905641, 1669.5618690661465, 4992.6608769394161, 11652.54137553122, 6958.5740759503597, 3145.1913405539112, 2239.7595640192112, 884.1270089569299, 377.16693201204993, 189.56857349608163, 104.51314473208359, 70.132835875061716, 58.565861412331529, 44.406163862355506, 30.553614566731444, 20.838711299344109, 15.043219420350246, 12.029240511903463, 9.9768657536093936, 9.4565908065052362, 10.149549151428952, 12.574490983994684, 16.964451546104694, 20.596051003825067, 26.905297339122818, 40.617443247446033, 54.132047333262229, 72.776226915090191, 104.06222158598892, 186.72550653728851, 370.96222186223156, 759.63591736173305, 1776.9919423314723, 3079.1167046754904, 6105.9976767437374], "imag": [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.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, 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.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, 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.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, 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.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, 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.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, 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.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, 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.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, 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.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, 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.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, 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.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, 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.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, 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.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, 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.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, 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.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, 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.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, 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.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, 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]}, "imag": [0.0, -0.027073229785536494, 0.59011929886938141, -0.96446761270548442, -0.6435513043684985, -0.68291153317050746, -0.33645866529024865, 0.1935415439422136, -0.12487037453098428, -0.012369715566745995, 0.0098216569471749459, 0.001542130029622399, 0.020818288300735281, 0.0037303920674802314, -0.0038837652177233549, 0.00060693078338958778, 0.0, -0.00060693078338692346, 0.0038837652177235778, -0.0037303920674795358, -0.020818288300735933, -0.0015421300296204468, -0.0098216569471759191, 0.012369715566746212, 0.12487037453098428, -0.19354154394221409, 0.33645866529024965, 0.68291153317050701, 0.64355130436849806, 0.96446761270548365, -0.59011929886938175, 0.027073229785536425, -2.3563074320989772, 2.5879403475863869, 2.1627258263390448, -3.1655869149224403, -0.41468157127337424, 0.73477199535913751, -1.2119335549119159, -0.10726288955095604, 0.30943623202091536, 0.23604949314849888, -1.983168313462914e-05, -0.015096007795395092, 0.0044172524913437313, 0.0012110563015863107, -0.00040440768488355977, 0.00056775738923005802, -0.00053942936844551652, 0.00087575929197146875, -0.002003234803528005, 0.0042603852180314204, -0.0062087670781442329, 0.017375416518930226, -0.014179868174360925, -0.10125602185153701, -0.15414023444697653, -0.035800396396009702, -0.96211078676818074, -0.96053455050253955, -1.1229487194040586, -2.1710672351706557, 1.4940913514434742, 2.7217236711600989, 1.1141581132568867, -0.84173680321989597, -5.2801379304709686, 1.1933011924316357, 3.2397405202403871, 0.58382335305071387, -1.2090975123731194, 0.11812270190565496, 0.29294962083792114, 0.38808563795590029, 0.017661918975066655, -0.0075287995749033759, -0.018334336057616411, 0.0080668085023426154, 0.0016882901545514294, 0.00017988558455360213, -0.00046271928878641557, -0.00012883481246306377, -0.0015037083336975181, -0.0051624614514164694, 0.0051337344665884242, 0.01635194779532648, -0.020739891572331103, 0.034224425977121886, 0.14660089916526936, 0.2579692221979365, -1.297902949650936, -0.81053000193538005, 2.2824415889165404, 1.3538813012752462, -3.6141509401212817, -1.3641708343500389, -2.525115924658619, -3.1276611078214884, -3.2520008240455529, 1.0086268501795932, 2.5763030038597452, 0.40772972397284202, -0.2975902384778692, -0.049496223745927298, -0.032511080574428759, 0.067130744005831466, -0.0201042966896933, -0.010577484531256129, 0.0093680389241231343, 0.0094203803992774487, 2.0439677469712496e-05, -0.00046042150692956042, 9.7927563908633831e-05, -0.00040743814870436565, -0.00074442767565903077, -0.0053134061063244819, -0.0081457928016647942, -0.016837193889943817, 0.00090322875228200043, 0.15679003542803616, 0.24794675857842086, 0.30815180494462813, -0.65229037787562094, -1.3408717866717259, 2.6508673621629431, 3.2598446139294937, -1.6423378558800314, -3.9986185110220567, 0.17392931664300956, 0.21368421587766026, -1.2315545205448162, -1.7422719766284609, 1.3054063480052003, 1.3750287394245329, -0.35022259842939119, -0.62247639588288617, -0.048937158811492604, 0.046213719349399378, -0.071248172851420807, -0.031638182474279769, 0.0092883221388230762, 0.0058947313405102496, 0.0020720238780862037, 0.00012946526299033534, -7.130655653596095e-05, -0.00038809112868830591, 0.0011018135930776953, 0.0010417550100125584, 0.0072040756024705759, -0.02451231341789871, -0.016921302325211343, 0.019764169882346385, 0.062587439504234885, -0.087282929002583373, -0.10008726366432093, -0.14363219386863416, 1.7469053421591101, 1.042390648919584, -1.364603392172089, -0.68321209765005841, 0.66892838780721486, 0.73208772838799607, -0.32755194356284695, -0.30510623667849596, 1.5181969873975902, 0.34278556022615442, -0.74313584277783451, -0.35705699907666322, 0.1310185858494092, 0.083590457495018811, -0.021674632648672316, -0.02469255214616152, -0.0043034893865322183, 0.0020376676236782713, 0.0021493865206610868, 0.00038855444421157756, -0.00023746053900133829, -0.00029830757497495967, -0.0001970006488720256, -0.00087982491421480442, 0.0074805689709430004, 0.010808720951461402, -0.035798177116234398, -0.091541716420706271, 0.0092010764075083195, -0.19110346978313567, -0.62579430924026735, -0.13482498836119824, 1.785974669626095, 1.1747425146844421, -1.173327779558617, 0.27670322508415535, 0.33562708516576978, 0.27104375713022649, -0.04917488399628335, -0.09917627706172702, 0.47021789966195177, 0.19299106678658604, -0.25337707381982333, -0.21158932458700433, -0.0038282192087294945, 0.079426421106262524, 0.0049276280752214097, -0.012631915096635613, -0.0020857584923047439, 0.0014730403106953706, 0.00056282220383548922, -5.2753025427967662e-05, -0.00011043948472760819, -0.00013701607546798722, 0.00024141713667198109, -0.00017599692518015115, 0.0033313264069332665, -0.0026415953474081991, -0.034551401114022419, -0.067614335954062313, 0.057375162080317274, 0.10414416266224315, -0.4897526648425265, -0.75726357904359276, 0.48971199898009016, 1.1084142254331173, 0.074442669441772358, 0.13102742771679016, -0.24374357403537103, -0.28356643882607668, -0.65203784187591463, -0.36850284921393173, 0.37230089042480646, 0.4991450162764402, 0.031449374349395147, -0.23992875156785609, -0.086092076891526551, 0.032374807759909224, 0.0062294082126362945, -0.0060917930216442444, -0.0010414824560445231, 0.00015455144974867572, -8.9980842426917249e-05, -1.5754152380049444e-05, 2.760348450088792e-07, -8.4925580282278396e-05, -9.538306571273261e-05, 0.0012356709589061894, 0.0019825160649420671, -0.0025172833852348821, -0.028888564425605757, -0.016030883614829267, 0.069260754853324724, 0.010501517567550991, -0.24153406544338693, -0.2847803977366839, 0.37357513895849587, 0.56507750226207965, -0.29338428828582186, -0.55012213491904771, -0.13256769577232769, -0.093306847874868315, -0.26668667634059962, -0.24770054522287138, 0.1944884297335735, 0.33591487261576602, 0.06235746981204858, -0.1546651423691924, -0.03904218756455085, 0.014396528935747412, -0.0017849945305527066, -0.0040798293321671533, -0.0019408045705910123, 0.00084895033746642374, 0.00039593785796133193, 5.5592435290972645e-05, -4.1965636442186823e-06, -6.2852929824007463e-05, -0.00034629566400638584, -4.8241347432061454e-06, 0.00057512008113313117, 0.00033489534843084444, -0.0031901125163299256, -0.010909574115055, 0.016920458777085551, -0.060786209275753178, -0.21998547499285445, 0.011288166830458734, 0.39450427611204475, 0.32156463816915598, -0.16694523801433098, -0.28285607915278405, -0.0086431961771640062, -0.016216948868002824, -0.12426113686156882, -0.13105274525765401, 0.01783418219228005, 0.12470331491202472, 0.037338151491471468, -0.053766563890133817, -0.017697451862990946, 0.0087641985076504225, 0.0020177112398541818, -0.0032903942418034261, -0.00098879884805599711, 0.00072826354344831883, 0.00023394715134995964, 1.1123369888840513e-05, -3.5001088996629374e-05, -3.1388155454884778e-06, -0.00015838596778406701, -0.00033445190756455149, -0.0001142558275417929, -0.00088473043957872045, -0.0055035547036739211, -0.0071882829440315203, 0.0056754664443316848, -0.024165671520133571, -0.12994912866694289, -0.03043154404819853, 0.19383851234462929, 0.16309710351628273, -0.074150026014186132, -0.12085880532211579, -0.044595013287817231, -0.043366337948898985, -0.090257019037460168, -0.073384871025009082, 0.023239798472538018, 0.07639283896145152, 0.011216629301030985, -0.0359133520966744, -0.013573759545388879, 0.0067665755556069575, 0.0030103388508484073, -0.00065141687607212645, -0.00041655443776571915, 0.00013094293222966718, 3.2292215967994378e-05, -1.526253885399206e-05, -1.5127801448997461e-05, -6.4845694559707764e-06, -1.5492547416280305e-05, -9.1308082212917993e-05, 0.00016667120940429337, -0.00041873515724890633, -0.0049027471727904112, -0.003075534798824412, 0.0092738136737237613, 0.0020660684229551027, -0.04064403555503323, -0.033233971766656843, 0.045775294033398174, 0.057167349545223407, -0.02508375199406394, -0.076725145240063103, -0.029192878339710793, -0.027962636418086263, -0.036204190826297326, -0.020723423884568531, 0.024267798198958853, 0.039127433373256276, 0.0066672447446462267, -0.015463651616642567, -0.007692451841204994, 0.0027471626893687531, 0.0010462542577807969, -0.00032293603684165713, -0.00014335933849004065, 2.7664402382146889e-06, 1.3817898707968035e-05, 2.5461973861614876e-06, -2.9451008005958465e-06, -4.0922137159052221e-07, 3.3208780384164378e-06, 2.2930933947507775e-06, 0.00019381368934935658, 0.00021177469863592545, -0.0013059386478791995, -0.00074739544714731232, 0.0074009891423913463, 0.0040508976947942563, -0.024179081541404416, -0.025786109831526915, 0.024427880538049996, 0.049513273245606421, 0.018107593495138536, -0.019155633990847833, -0.010866608608631909, -0.011586446122093948, -0.017758841021731874, -0.007715199561440257, 0.0099083442586334093, 0.016798455246852806, 0.0051385037481195082, -0.0053053978312845055, -0.0034294950764025521, 0.00061169662744445848, 0.00033799731924544067, -0.00024058911609197694, -0.00010154505453872226, 1.9807787751332398e-05, 1.1566718045558844e-05, 2.3526983774034052e-06, -3.1629035250083664e-06, -1.906633619859879e-06, -1.4241006555052951e-05, -3.3020030344899701e-05, 5.2908539732603441e-05, 5.1357289146045035e-05, -0.00039743496113234163, -0.00063432051689119376, 0.0027089055320300356, 0.0013503752362499016, -0.0082884630632301115, -0.0092589342553877248, 0.0088049724290094923, 0.022756702713130291, 0.011156251045765241, -0.0083450930318397683, -0.0049406694317385268, -0.0058001455908667206, -0.0076603598190790028, -0.0053021820779070323, 0.001845870794973378, 0.0051951770049388935, 0.001795161616712868, -0.0014758375936677148, -0.00091174996356954989, 0.00015619540664616496, 0.00011997798601084234, -7.415390708438721e-05, -4.7705175525428954e-05, 1.0498840541001561e-05, 5.7016743603087733e-06, -1.1348311617650734e-06, -1.0392532056220499e-06, -1.5023935068766505e-07, -4.5999439012728934e-06, -1.7083459920844721e-05, -9.6967633574418463e-06, 8.8789075877219231e-06, -0.00012444306086311345, -0.00019783492062566108, 0.00060624989809523425, 0.00033450965931121433, -0.0029572761111825215, -0.0037574725417352365, 0.00099233616545915107, 0.0061280004658490978, 0.0032489106979224094, -0.0026668961742810043, -0.0024385469973046831, -0.0029055731292758351, -0.0035330841487134718, -0.0021581469455770066, 0.00045127797385368442, 0.0018583554775031736, 0.0007285298435105804, -0.00040485086541622897, -0.00029259265207938966, 0.00012119187628647567, 5.7987669870543989e-05, -2.689854721032224e-05, -1.2650266391968962e-05, 1.4661018807957155e-06, 1.5771327546691322e-06, -3.698251896381977e-07, -2.9525581512606399e-07, -1.495621091456335e-07, 1.1697432596209132e-07, -2.2921786679761149e-06, -2.2344957140311543e-07, 9.0079557167444004e-06, -4.7951397864926913e-05, -8.9395111720587663e-05, 0.00025656486918183087, 0.00025588309866116956, -0.00073983779212979841, -0.0015213421071961196, -9.2403301086677145e-05, 0.0017855278470929681, 0.0015458463998575377, -0.00061369027212951951, -0.00026504628413918208, -0.00087036902540521815, -0.0012627180005201106, -0.00080421955077315159, 0.00014616084301033664, 0.00058802678854243985, 0.00023126432473923958, -0.00010449095558686259, -0.00010228145451208669, 1.9325523686774618e-05, 3.0323974870826362e-05, 1.2683141406816166e-06, -1.2058446868057975e-06, 8.8143768771753332e-07, 3.3549731120851134e-07, 9.1056799261659957e-08, 2.0577319091974112e-08, 9.2830259427826791e-08, -6.4704839947157811e-07, -4.5648010846713924e-07, 2.1033881238566881e-06, 7.32796229427314e-06, -2.4374370669839543e-05, -2.5898674317115741e-05, 0.00011257144284409361, 0.00014693728608109456, -0.00023924588800045181, -0.00050123772700090606, -7.4435208380385973e-05, 0.00068444397565025586, 0.00083207770824480598, 0.00048828956300996052, 0.0, -0.00043330868466009542, -0.00064651493374645564, -0.0004135205525089448, 5.8232578355565087e-05, 0.00026030164250996835, 0.00011785219152459624, -5.0479429154057332e-05, -4.1543191833568309e-05, 7.7550355275730399e-06, 8.5787889709012739e-06, 5.074268522214453e-08, -1.5265704867968537e-06, 7.6127420915855944e-07, 3.4322773606588538e-07, -2.4467237539618118e-08, 0.0, 2.4467237179738174e-08, -3.4322773619012653e-07, -7.6127420919217151e-07, 1.526570486753494e-06, -5.0742685069794458e-08, -8.578788970889695e-06, -7.7550355275692266e-06, 4.1543191833568309e-05, 5.0479429154150824e-05, -0.00011785219152460185, -0.00026030164250998353, -5.8232578355579629e-05, 0.00041352055250904981, 0.00064651493374653229, 0.00043330868466019738, 0.00026504628414032808, -0.00048828956301001061, -0.00083207770824431527, -0.00068444397564927856, 7.4435208380627533e-05, 0.00050123772700078214, 0.00023924588800066727, -0.00014693728608088972, -0.000112571442844023, 2.589867431722904e-05, 2.4374370669918344e-05, -7.3279622940927939e-06, -2.1033881238922216e-06, 4.5648010853483173e-07, 6.4704839933564965e-07, -9.2830259571647903e-08, -2.0577319091885375e-08, -9.1056799550122255e-08, -3.3549731127660601e-07, -8.8143768768718392e-07, 1.2058446867643514e-06, -1.2683141406445925e-06, -3.032397487090597e-05, -1.9325523686839914e-05, 0.00010228145451204714, 0.00010449095558694352, -0.00023126432473908535, -0.00058802678854225174, -0.00014616084301019596, 0.00080421955077363764, 0.0012627180005203068, 0.00087036902540495523, 0.0024385469973038903, 0.00061369027212936067, -0.0015458463998569551, -0.0017855278470920858, 9.2403301086626811e-05, 0.0015213421071961089, 0.00073983779212967297, -0.00025588309866126459, -0.00025656486918189489, 8.9395111720511796e-05, 4.795139786497207e-05, -9.0079557166165035e-06, 2.234495713888465e-07, 2.2921786679921674e-06, -1.1697432602157082e-07, 1.4956210883105962e-07, 2.9525581512599554e-07, 3.6982518948350376e-07, -1.5771327547503337e-06, -1.4661018806631417e-06, 1.2650266391950919e-05, 2.6898547210308593e-05, -5.7987669870649895e-05, -0.00012119187628649009, 0.0002925926520794114, 0.00040485086541640515, -0.00072852984351041105, -0.0018583554775031031, -0.00045127797385343153, 0.0021581469455775027, 0.0035330841487132328, 0.0029055731292758334, 0.0049406694317394081, 0.0026668961742812758, -0.0032489106979216591, -0.0061280004658477299, -0.00099233616545883708, 0.0037574725417350639, 0.0029572761111822826, -0.00033450965931128095, -0.00060624989809528011, 0.00019783492062561489, 0.00012444306086323596, -8.8789075876270673e-06, 9.6967633574076482e-06, 1.7083459920778764e-05, 4.5999439011767153e-06, 1.5023935031916601e-07, 1.039253205622084e-06, 1.1348311616083971e-06, -5.7016743603616383e-06, -1.04988405409158e-05, 4.7705175525396455e-05, 7.4153907084401847e-05, -0.00011997798601094042, -0.00015619540664609709, 0.00091174996356957938, 0.0014758375936678126, -0.0017951616167126566, -0.0051951770049386038, -0.0018458707949728875, 0.0053021820779076802, 0.0076603598190795076, 0.0058001455908669262, 0.010866608608631407, 0.0083450930318392878, -0.011156251045764934, -0.022756702713130041, -0.0088049724290099694, 0.0092589342553874195, 0.0082884630632298704, -0.0013503752362499656, -0.0027089055320300547, 0.00063432051689115061, 0.00039743496113240219, -5.135728914582959e-05, -5.2908539732616404e-05, 3.3020030344762441e-05, 1.4241006554950027e-05, 1.9066336197302612e-06, 3.1629035250082296e-06, -2.352698377375767e-06, -1.1566718045553533e-05, -1.9807787751344911e-05, 0.0001015450545386955, 0.00024058911609209111, -0.00033799731924550203, -0.00061169662744447323, 0.0034294950764026141, 0.0053053978312845272, -0.0051385037481194926, -0.016798455246852688, -0.00990834425863296, 0.0077151995614407626, 0.017758841021732009, 0.011586446122093877, 0.029192878339711306, 0.019155633990847316, -0.018107593495138137, -0.049513273245605283, -0.024427880538050034, 0.02578610983152671, 0.024179081541404305, -0.0040508976947941731, -0.0074009891423912162, 0.00074739544714725432, 0.0013059386478792266, -0.00021177469863582771, -0.00019381368934936018, -2.2930933947504607e-06, -3.3208780385072546e-06, 4.0922137139897878e-07, 2.9451008005957237e-06, -2.5461973862464916e-06, -1.3817898708041393e-05, -2.7664402380974939e-06, 0.00014335933849003848, 0.00032293603684169041, -0.0010462542577808741, -0.0027471626893686612, 0.0076924518412050408, 0.015463651616642399, -0.0066672447446463326, -0.039127433373255908, -0.024267798198958437, 0.020723423884568916, 0.036204190826296979, 0.02796263641808593, 0.04459501328781619, 0.076725145240063533, 0.02508375199406461, -0.05716734954522297, -0.045775294033398015, 0.033233971766656642, 0.04064403555503332, -0.0020660684229550407, -0.0092738136737237076, 0.0030755347988242901, 0.0049027471727904398, 0.00041873515724895311, -0.00016667120940430416, 9.1308082212913032e-05, 1.549254741618293e-05, 6.4845694559219288e-06, 1.5127801448997605e-05, 1.5262538853884928e-05, -3.2292215968025048e-05, -0.00013094293222960533, 0.00041655443776571118, 0.00065141687607211561, -0.0030103388508485036, -0.0067665755556069011, 0.013573759545388975, 0.035913352096674386, -0.011216629301031098, -0.076392838961451187, -0.023239798472537657, 0.073384871025009249, 0.090257019037460764, 0.043366337948898895, 0.0086431961771646949, 0.12085880532211546, 0.074150026014186479, -0.16309710351628132, -0.19383851234462879, 0.030431544048198395, 0.12994912866694291, 0.024165671520133634, -0.005675466444331592, 0.0071882829440315836, 0.0055035547036740139, 0.00088473043957880925, 0.00011425582754175175, 0.0003344519075645258, 0.00015838596778393289, 3.138815545460048e-06, 3.5001088996629286e-05, -1.1123369889024881e-05, -0.00023394715134996501, -0.00072826354344829888, 0.00098879884805594702, 0.003290394241803499, -0.0020177112398542039, -0.0087641985076504607, 0.017697451862991015, 0.053766563890133824, -0.037338151491471468, -0.12470331491202422, -0.01783418219227963, 0.13105274525765467, 0.12426113686156864, 0.016216948868002876, 0.13256769577232769, 0.28285607915278405, 0.16694523801433089, -0.32156463816915598, -0.39450427611204497, -0.011288166830458839, 0.21998547499285451, 0.060786209275753553, -0.016920458777085551, 0.010909574115054964, 0.0031901125163300605, -0.00033489534843075342, -0.00057512008113319081, 4.8241347431542723e-06, 0.00034629566400617116, 6.2852929823858467e-05, 4.1965636442186823e-06, -5.5592435290969e-05, -0.00039593785796146729, -0.00084895033746647957, 0.0019408045705911188, 0.0040798293321673848, 0.0017849945305527092, -0.014396528935747516, 0.03904218756455085, 0.15466514236919257, -0.062357469812048469, -0.3359148726157663, -0.19448842973357355, 0.24770054522287124, 0.26668667634059967, 0.093306847874868246, 0.24374357403537067, 0.55012213491904793, 0.2933842882858228, -0.56507750226207876, -0.37357513895849492, 0.28478039773668301, 0.24153406544338699, -0.010501517567550396, -0.069260754853324669, 0.016030883614829131, 0.02888856442560565, 0.0025172833852350443, -0.0019825160649420428, -0.0012356709589064721, 9.5383065712676177e-05, 8.4925580281910716e-05, -2.7603484500895416e-07, 1.575415238022084e-05, 8.9980842426463958e-05, -0.00015455144974887674, 0.0010414824560444731, 0.0060917930216443658, -0.0062294082126362589, -0.032374807759909592, 0.086092076891526537, 0.23992875156785606, -0.031449374349395362, -0.4991450162764392, -0.37230089042480613, 0.36850284921393162, 0.65203784187591551, 0.28356643882607629, -0.33562708516576939, -0.13102742771679063, -0.074442669441771941, -1.108414225433116, -0.48971199898009049, 0.75726357904359165, 0.48975266484252722, -0.10414416266224276, -0.057375162080317302, 0.067614335954062174, 0.034551401114022537, 0.0026415953474081431, -0.0033313264069329894, 0.00017599692518009282, -0.00024141713667201988, 0.00013701607546791344, 0.00011043948472760822, 5.2753025427777066e-05, -0.00056282220383580418, -0.001473040310695623, 0.0020857584923045986, 0.01263191509663575, -0.0049276280752216023, -0.079426421106262579, 0.0038282192087295479, 0.21158932458700425, 0.25337707381982338, -0.19299106678658623, -0.4702178996619516, 0.09917627706172702, 0.049174883996283732, -0.27104375713022683, -0.66892838780721375, -0.27670322508415546, 1.1733277795586157, -1.1747425146844417, -1.7859746696260967, 0.13482498836119791, 0.62579430924026835, 0.19110346978313578, -0.0092010764075083889, 0.091541716420705743, 0.035798177116234828, -0.01080872095146141, -0.0074805689709430082, 0.00087982491421515624, 0.00019700064887198773, 0.00029830757497410965, 0.00023746053900133802, -0.00038855444421207136, -0.0021493865206616879, -0.0020376676236788177, 0.0043034893865325514, 0.024692552146162169, 0.021674632648672077, -0.083590457495018658, -0.13101858584940929, 0.35705699907666349, 0.7431358427778344, -0.3427855602261542, -1.5181969873975907, 0.30510623667849562, 0.32755194356284562, -0.73208772838799718, -0.1739293166430094, 0.68321209765005741, 1.3646033921720888, -1.0423906489195836, -1.7469053421591101, 0.14363219386863219, 0.10008726366432133, 0.087282929002584164, -0.062587439504234912, -0.019764169882346593, 0.016921302325211187, 0.02451231341789838, -0.007204075602470608, -0.0010417550100130558, -0.0011018135930777443, 0.0003880911286887635, 7.1306556535960909e-05, -0.00012946526299007061, -0.0020720238780864522, -0.0058947313405104855, -0.0092883221388232445, 0.031638182474279679, 0.071248172851421404, -0.046213719349399086, 0.048937158811492507, 0.62247639588288617, 0.35022259842939113, -1.375028739424532, -1.3054063480052007, 1.7422719766284596, 1.2315545205448166, -0.21368421587766057, 2.5251159246586199, 3.9986185110220571, 1.6423378558800306, -3.2598446139294928, -2.6508673621629413, 1.3408717866717237, 0.65229037787562116, -0.30815180494462602, -0.24794675857842133, -0.1567900354280353, -0.00090322875228194491, 0.016837193889943952, 0.0081457928016650735, 0.0053134061063229068, 0.00074442767565938834, 0.00040743814870428352, -9.792756390863333e-05, 0.00046042150692909031, -2.0439677469763416e-05, -0.0094203803992774331, -0.0093680389241246331, 0.010577484531255831, 0.020104296689693778, -0.067130744005831841, 0.032511080574428954, 0.049496223745927104, 0.29759023847787003, -0.40772972397284141, -2.5763030038597421, -1.0086268501795939, 3.2520008240455529, 3.127661107821488, -1.1141581132568867, 1.3641708343500387, 3.614150940121283, -1.3538813012752458, -2.2824415889165408, 0.81053000193537672, 1.2979029496509369, -0.25796922219793567, -0.14660089916526964, -0.034224425977123246, 0.020739891572330926, -0.016351947795325953, -0.0051337344665883956, 0.0051624614514157383, 0.0015037083336985342, 0.00012883481245927331, 0.00046271928878641655, -0.00017988558455328343, -0.0016882901545534784, -0.0080668085023415624, 0.018334336057616227, 0.0075287995749028155, -0.017661918975066519, -0.38808563795590117, -0.29294962083792109, -0.11812270190565234, 1.2090975123731191, -0.58382335305071487, -3.2397405202403844, -1.1933011924316363, 5.2801379304709686, 0.84173680321989663, 2.3563074320989759, -2.7217236711600976, -1.4940913514434744, 2.1710672351706584, 1.1229487194040595, 0.96053455050254277, 0.96211078676817896, 0.035800396396013512, 0.15414023444697636, 0.10125602185153926, 0.014179868174359136, -0.01737541651892931, 0.0062087670781442571, -0.0042603852180286457, 0.0020032348035250135, -0.00087575929196809612, 0.00053942936844551738, -0.00056775738923165191, 0.00040440768488539494, -0.0012110563015865644, -0.0044172524913444079, 0.015096007795395007, 1.9831683135784154e-05, -0.23604949314850127, -0.30943623202091552, 0.10726288955095381, 1.2119335549119155, -0.73477199535914062, 0.41468157127337302, 3.1655869149224372, -2.162725826339043, -2.5879403475863874], "height": 32, "width": 32, "top": {"real": [26312.861486548059, 16394.776884218503, -3997.4541326480944, 12005.135907922067, 1177.5601778241692, -334.84971513551272, -198.67917160941846, -63.09118295690562, -26.0143192287494, -17.75101650843531, -4.1366280143888243, 0.89820537026572267, -0.32480674164662798, -0.084346178359567467, -0.13448645703297074, 0.022458369013166949, 0.0037906136595566063, 0.022458369013118644, -0.13448645703284343, -0.084346178359639243, -0.32480674164661494, 0.89820537026588532, -4.1366280143890872, -17.751016508434784, -26.0143192287494, -63.091182956905335, -198.67917160941835, -334.84971513551284, 1177.5601778241696, 12005.135907922073, -3997.4541326480962, 16394.776884218489, -7474.6405977592167, -8567.9043780819939, -2236.1016166727777, 5029.218127936877, 173.97100199359824, -922.65330403810697, -153.6610478382718, -4.01177942588299, -14.977979358030328, -15.430842802070819, -7.4975861096446677, 1.585406689794443, 0.17906893603683641, -0.1458960091743404, -0.061043080293462629, -0.0046072373939513231, 0.0087184428309440426, 0.017310354876342828, -0.025331085027308461, -0.090673583392976279, -0.39184400032069594, -0.73078681815467361, -0.92174645774086517, -10.93402591728189, -30.447262913620346, -38.126922827402865, -60.968110303669619, -681.13286643622507, 624.53857955695969, 7785.4292550857708, -1762.2326743166159, -6145.3703500362362, -30710.86949592911, -20630.868893573344, 1300.6579518513645, 5360.9184206698983, 848.32865192899703, -785.98438030181387, -108.77167233308913, 41.321279695295864, -0.027644771384101652, -9.534868349699865, -1.2097145653165393, 0.21253485530640887, -0.28694451643507407, -0.19362286330376682, -0.015513947258845627, 0.0028928780958250894, 0.010770434199071796, 0.0037362591288644677, -0.033458104535328603, -0.15988488342210658, 0.11739550901211815, 0.74668900068008903, -4.4804803612995503, -15.856083499246324, -27.816492049240171, 2.1424019920280393, 12.12605916297551, -787.56867680882806, -403.54468101232709, 3807.5774006807187, 4390.1153105308758, -17039.959036708919, -13609.16252827678, -9138.4955296375883, 2497.0113342386512, 4397.1447406314655, 786.4046140955403, -371.53196930683333, -41.579492344426484, 10.792253245683401, 12.926010493557772, -0.94130122169806685, -0.22574146482830848, -0.15910329528413825, 0.039542877145191092, -0.16497562627541082, -0.034546572003498262, 0.0028396778151660528, 0.0095036050242090567, 0.0028202375766785176, -0.035341389521162114, -0.14687879382002816, -0.12611798259866741, 0.45588994614236095, -0.25876313947681329, -11.107804183612142, -9.8469518252878121, 5.4748636450494486, 23.93852180867734, -449.68159927787053, -188.33038343684237, 3370.1365438276152, 4992.3705750204963, -4902.8469709692872, -11751.949054213763, -9055.7727899285892, -1597.312584178899, 1957.0910297219173, 675.954300804676, -59.523430315468971, 3.5981209875694646, 26.908851107336638, 3.3880871060788613, -6.3950609995768, -2.7652104861310596, 0.51553772502971873, 0.20366584836429452, -0.078076761518840479, -0.032306588307275633, -0.00033732640143732022, 0.0039882283816162498, 0.00882576812785189, -0.010351412440947377, -0.13141543694038546, -0.35838805663068013, -0.083665866496770311, -0.11489505024575582, -2.0174170653233996, 5.313800098890094, 16.719706304911163, 26.780389598343444, -155.76938280407634, 15.711518936085053, 2108.6641632789715, 2004.0776030609009, -5284.4851508729253, -7525.5124487476332, -5804.138136685775, -1404.695681801157, 766.79772203943867, 489.03634446603957, -8.722049146589729, -31.327724554225572, 11.011155797013167, -0.50779722959414419, -5.7422528468514669, -2.0029903992471274, 0.11899325802032906, 0.035426363555884931, -0.0016279289016664685, -0.0068853887710592244, 0.00084949455245666495, 0.0025820557167290517, 0.004778391224536287, -0.0060776628020400699, -0.066021172391945146, -0.14585644547184912, 0.31419533009862166, 0.4720008156080655, -3.7567756530835696, -5.2990493438664403, 20.309232259116531, 43.66331695464585, -13.481975167534534, 87.480286025038623, 872.01902032865974, 302.59784669978308, -3861.3331359414924, -2689.7311891987174, -2302.5619774650818, -533.70879716435536, 471.82586926866179, 253.24935366729582, -54.914023853010136, -45.128050992983141, 1.7233725901997559, 4.8083890914979186, -1.2558586165362935, -1.1198886962259056, -0.17080663964208292, 0.0073776692393840732, 0.01315742418122162, -0.0042018888945982991, 3.9927404722540691e-05, 0.0024301018087218612, 0.0013997723845362102, -0.01262770667339704, -0.024640414526077212, -0.031798236031438429, 0.16501061208698242, -0.053070166605889257, -2.4508298603470875, -6.1804125133917358, 1.555942705006216, 9.6369277380044327, -40.990915592068667, 48.381114122456317, 486.73310475433823, 304.00864677044143, -1317.5468335758922, -1423.509046098827, -1206.2870766014189, -258.09420634314597, 284.39023574769527, 170.47470391854262, -20.992706500305374, -30.973343141495711, -0.73408381954002189, 2.8760611038460322, -0.96452576448322436, -0.33780530346449972, 0.050525784186614971, 0.037431091543099905, -0.0017411003602284265, -0.0094665916234262064, -0.00075468105471295627, 0.0012390824544828156, 0.0015406044848658253, -0.0042340021876475491, -0.0099527381839567483, -0.017832280274117901, -0.0021885919874408454, -0.18486506545171935, -1.5473028239900652, -0.46733110563156899, 7.0159472975173207, -4.1293951866555583, -52.177815979563, -14.225382292199997, 266.2443485847607, 299.68761898427294, -502.75722346741452, -600.46969991458195, -533.72028053649831, -84.35869563264292, 149.66956177052822, 98.021239180316712, 5.9461121297863162, -11.840914283794969, -2.356375469113162, 0.20453312434178955, -0.31158766591945325, -0.14520584302328118, -0.014067565159284239, 0.014308802406409332, 0.0017127836707298723, -0.0045784971805314283, -0.0004316686427205439, 0.00062035219223615539, 0.00098821093942306776, 0.00037352179846464215, -0.0031201129359879932, 0.0028053468557916969, 0.01155415730259296, 0.043098557260407636, -0.50100451968487536, -0.34405016878893097, 4.6091984823197363, -1.1472068176591008, -29.145899633206373, -2.6052151602709381, 142.77222209569624, 179.10482852523111, -159.1039510457467, -164.80060347644744, -151.52622363641359, -12.964795600796743, 78.707005278515467, 49.611102594467418, 2.9148898834797565, -6.6982557512143011, -1.1108929795277851, 0.53317200343106397, -0.060952672321508208, -0.13796026336886294, -0.040312063728342999, 0.0091529292682895457, 0.00069551217754917558, -0.00049216012286125183, 0.00019632055084333887, 0.00016453496496604428, 0.00035411166615570894, 0.00029458111873911975, -0.0039224781743007692, -0.0012902932474049059, 0.022738683086130741, 0.0029642733314895081, -0.040660255117105054, -0.1581093035213153, 0.50820914967959807, -1.1517329733377961, -10.955670081779706, 6.6684998469426819, 73.509265817506147, 94.854507489855607, -30.375445723654334, -41.976518122871582, -38.330831793041703, 6.6541528790739966, 26.775549975763919, 13.67501905826837, -0.77255683543203624, -2.6427995487036586, -0.26778321549867995, 0.38263920912663341, 0.066476687185755071, -0.060499325131928558, -0.013860605018094061, 0.0044705403327676731, 0.00045553699537380387, -6.6832908987799432e-05, 5.7815338715827767e-05, 2.4201934805748865e-05, 2.4116728282913401e-05, -7.7908669355443089e-05, -0.0020106249903568347, -0.0030945645282710967, 0.011724362942541916, -0.0073188065692862368, -0.13872845280170487, -0.0525083726541943, 0.57465299048466112, -0.38679604474522938, -4.8536563727710194, -1.1675628703507077, 21.601631857858344, 37.913461849891526, 8.2459776248906191, -17.728252948144338, -17.913066539877509, -1.363521120172412, 8.6874027327585566, 5.1086905995493517, -0.15956522315726163, -1.0853380408525961, -0.17672593964480066, 0.18144159918607325, 0.051467156562084934, -0.020596344531497161, -0.004731774665412903, 0.0025169723177923789, 0.00031643566338613672, -0.00017373359946045594, -7.1999178350316855e-05, 3.5348452681660421e-06, 3.7806930339121046e-05, 2.3729245648202859e-05, -0.00042972130823292398, -0.0011045036274546954, 0.0022387979975912117, -0.0041954404795751096, -0.054281237122749564, 0.0079821569677783755, 0.36123191988222408, 0.078230863522083471, -1.8108271356936088, -1.1161504624718657, 6.2644803438069099, 11.381535938317967, 0.21980447663235644, -5.9387280202325705, -6.1357877592112944, -0.72356703610536932, 2.8717612965534967, 1.8272689141068139, 0.038901829717158748, -0.30585525507098987, -0.058991941107951799, 0.049323041374202826, 0.007749491998403548, -0.0026797748220028393, 2.6063267012890291e-05, 0.00066159304663239156, 7.7278494902114205e-05, -3.1100603910792207e-05, -1.5561043109534526e-05, 1.1911742325626112e-05, 2.0491322447673862e-05, -1.4767672160855649e-05, 7.2375275064916669e-05, 0.00028278010837829711, 0.0018655623121081823, 0.00079665654087039228, -0.014230202242318532, 0.015605588027909496, 0.15269277354560382, 0.042410343620558247, -0.5991836734745446, -0.42273281817515368, 2.2232923752479885, 4.029734867596904, -0.01297332387246361, -1.8890504514660771, -1.7044228721383259, -0.014407089546523855, 0.81475328270242842, 0.49486328945653796, 0.051378645502378667, -0.078019191874231134, -0.019791976482152574, 0.011942087677832957, 0.0037710881620078929, -0.0019373229659441914, -0.00028867057981419789, 0.000173087047265503, 3.9265425732721298e-05, 5.3761386290662811e-07, -1.6483764627679784e-06, 1.9354497917760563e-06, -1.043216287920153e-06, 1.251541032126094e-06, -2.0395625891304971e-05, 2.3143507174682374e-05, 0.0008565768791742647, 0.0015425089335333231, -0.0038713470880909978, -0.0045226552231720603, 0.026481416655982141, 0.0024818042284060491, -0.15643670700640799, -0.014637771070647379, 0.7413395210802084, 1.1863896819067066, -0.06073539777241771, -0.55423720177498148, -0.41318433868106841, 0.012013582173996683, 0.22946537156729221, 0.14022496275890783, 0.010987988714373856, -0.01679009744687791, -0.0027663623850498948, 0.0015534913917298809, 0.00054985818249530594, -0.00042583544807556255, -0.00029614878449876606, 1.3565162632662745e-05, 4.7965965686279184e-06, -1.4046487964451716e-06, -1.7593082382469076e-06, -2.320036873447806e-06, 2.4848934678754374e-07, -1.4522884424931378e-06, -5.2082671731122632e-06, 2.3151589195966712e-06, 0.00016541664707348802, 3.6529125267961852e-05, -0.0012890410598031484, -0.0010500227857359876, 0.0036910380457585109, -0.0025549445466396393, -0.038104522129866786, 0.016868811542239164, 0.22147893162995161, 0.26972216562160328, -0.11164745685412412, -0.1053213699265967, -0.065169792191789519, 0.050967642716828229, 0.082203097259608671, 0.037973776532028221, 0.002270145289904118, -0.0034852771985896215, -0.00051797014017785649, 0.00065999477810424847, 9.1449959395068298e-05, -9.1204391021716067e-05, -1.5180477673862282e-05, -1.4304323510152094e-05, -4.7668675387694358e-07, -3.3807620398649656e-07, -3.2827005154992035e-07, -6.0059383407177672e-07, 4.743645802817471e-07, 7.8835950629218593e-07, -2.5363312932279684e-06, 3.4933053894102948e-06, 4.918354682850915e-05, 9.9367636232135646e-05, -0.00011095747475971185, -0.00033735388707191222, -0.00017205199767281925, -0.0028150966049269007, -0.0066263773562998379, 0.016874993354405541, 0.081392801874071885, 0.10016944284496203, -0.0039898740972888948, -0.056558682919194136, -0.015674616081580436, 0.047420248352959368, 0.048984183536402902, 0.018095648558125472, 0.00019061585891928039, -0.00055865816852282587, 0.00028385103022481571, 3.8670538186828884e-05, -1.6713711240799624e-05, 3.5388781701807323e-05, 1.8038642046719724e-05, -2.7952818635613013e-07, -2.4658127673140311e-06, -1.5227319963665806e-07, -2.3332675048126655e-07, -1.3019579049092348e-07, -2.3332675083373355e-07, -1.5227319920541638e-07, -2.4658127673110402e-06, -2.7952818599492315e-07, 1.8038642046284464e-05, 3.5388781702455181e-05, -1.6713711239992412e-05, 3.8670538186828884e-05, 0.0002838510302257955, -0.00055865816852375373, 0.00019061585891278605, 0.01809564855812688, 0.048984183536407218, 0.047420248352966703, -0.01567461608157503, -0.10532136992661453, -0.0039898740972773798, 0.10016944284504853, 0.081392801874075937, 0.016874993354393339, -0.0066263773562901859, -0.0028150966049217711, -0.00017205199767197964, -0.00033735388707121654, -0.00011095747476002673, 9.9367636230791154e-05, 4.9183546829807197e-05, 3.4933053890940453e-06, -2.5363312945761086e-06, 7.8835950614532164e-07, 4.7436458143049758e-07, -6.005938340711767e-07, -3.2827005209480802e-07, -3.3807620383163872e-07, -4.7668675369876225e-07, -1.4304323509881206e-05, -1.5180477673786216e-05, -9.1204391019992904e-05, 9.1449959396039146e-05, 0.00065999477810600097, -0.00051797014017666832, -0.0034852771985941946, 0.0022701452899007964, 0.037973776532033036, 0.082203097259589145, 0.050967642716782412, -0.065169792191780859, -0.55423720177488789, -0.11164745685411237, 0.26972216562160034, 0.22147893162997134, 0.016868811542243251, -0.038104522129865558, -0.0025549445466363117, 0.0036910380457617423, -0.0010500227857337837, -0.0012890410598025771, 3.6529125267327953e-05, 0.00016541664707448109, 2.3151589193372615e-06, -5.2082671739343036e-06, -1.4522884428117831e-06, 2.4848934734967557e-07, -2.3200368734485688e-06, -1.7593082396192173e-06, -1.4046487964490078e-06, 4.7965965689104361e-06, 1.3565162632914686e-05, -0.00029614878449827947, -0.00042583544807430477, 0.0005498581824961642, 0.0015534913917295296, -0.002766362385049678, -0.016790097446884332, 0.010987988714361836, 0.14022496275891236, 0.22946537156726918, 0.012013582173935911, -0.4131843386810784, -1.8890504514661226, -0.060735397772418001, 1.1863896819067115, 0.74133952108018497, -0.014637771070638499, -0.15643670700640161, 0.0024818042284152002, 0.026481416655986481, -0.0045226552231720108, -0.0038713470880910664, 0.0015425089335324559, 0.00085657687917487868, 2.3143507174645941e-05, -2.0395625891635653e-05, 1.2515410319035661e-06, -1.0432162880357027e-06, 1.9354497917755154e-06, -1.648376462389003e-06, 5.3761386277171334e-07, 3.9265425733411684e-05, 0.00017308704726561608, -0.00028867057981368457, -0.0019373229659434092, 0.0037710881620082728, 0.011942087677832796, -0.019791976482151457, -0.078019191874226498, 0.051378645502381547, 0.4948632894565238, 0.81475328270235614, -0.014407089546580973, -1.7044228721383166, -5.9387280202324542, -0.012973323872509449, 4.0297348675968632, 2.2232923752479965, -0.42273281817513425, -0.5991836734745476, 0.042410343620560523, 0.15269277354560529, 0.015605588027911042, -0.014230202242318617, 0.00079665654086961773, 0.0018655623121089473, 0.00028278010837819401, 7.237527506430049e-05, -1.4767672161149705e-05, 2.0491322447334689e-05, 1.1911742325624598e-05, -1.5561043110042614e-05, -3.1100603910787708e-05, 7.7278494901711681e-05, 0.00066159304663245509, 2.6063267012872924e-05, -0.0026797748220015139, 0.0077494919984037978, 0.049323041374203298, -0.058991941107945506, -0.30585525507097922, 0.038901829717163883, 1.8272689141068059, 2.8717612965534687, -0.72356703610543815, -6.1357877592112144, -17.728252948144313, 0.21980447663230326, 11.381535938317855, 6.2644803438068752, -1.1161504624718652, -1.810827135693615, 0.078230863522088162, 0.3612319198822263, 0.0079821569677794718, -0.054281237122748544, -0.0041954404795757263, 0.00223879799759173, -0.0011045036274548153, -0.0004297213082331914, 2.3729245648252329e-05, 3.7806930338968797e-05, 3.5348452681631499e-06, -7.1999178350888311e-05, -0.00017373359946041533, 0.00031643566338576109, 0.0025169723177924353, -0.0047317746654124164, -0.020596344531496415, 0.051467156562086717, 0.18144159918607133, -0.17672593964479372, -1.0853380408525777, -0.1595652231572473, 5.1086905995493037, 8.6874027327584269, -1.3635211201724846, -17.913066539877416, -41.976518122871397, 8.245977624890596, 37.913461849891497, 21.601631857858315, -1.1675628703506762, -4.8536563727710167, -0.38679604474523593, 0.57465299048466256, -0.0525083726541926, -0.13872845280170543, -0.0073188065692886169, 0.011724362942542425, -0.0030945645282711917, -0.002010624990356365, -7.7908669355331091e-05, 2.4116728282715131e-05, 2.4201934805746541e-05, 5.7815338716136568e-05, -6.6832908987693356e-05, 0.00045553699537366862, 0.0044705403327679654, -0.013860605018093377, -0.060499325131926705, 0.066476687185756819, 0.38263920912663169, -0.26778321549867512, -2.6427995487036529, -0.77255683543202414, 13.67501905826833, 26.775549975763717, 6.6541528790738154, -38.33083179304154, -164.80060347644644, -30.375445723654281, 94.854507489855592, 73.509265817506247, 6.6684998469427503, -10.955670081779644, -1.1517329733377899, 0.50820914967959985, -0.15810930352131641, -0.040660255117104735, 0.0029642733314879993, 0.0227386830861314, -0.0012902932474053552, -0.0039224781743013607, 0.00029458111873885689, 0.00035411166615547979, 0.00016453496496604298, 0.00019632055084304811, -0.00049216012286159682, 0.00069551217754943101, 0.0091529292682893254, -0.040312063728344255, -0.13796026336886155, -0.060952672321507556, 0.53317200343106097, -1.1108929795277824, -6.6982557512142833, 2.9148898834797672, 49.611102594467262, 78.707005278515183, -12.964795600796847, -151.52622363641291, -600.46969991458195, -159.10395104574698, 179.10482852523111, 142.77222209569621, -2.6052151602709213, -29.145899633206394, -1.1472068176590924, 4.6091984823197309, -0.34405016878893097, -0.50100451968487369, 0.043098557260408649, 0.011554157302593657, 0.0028053468557916613, -0.003120112935988917, 0.00037352179846528708, 0.00098821093942341102, 0.00062035219223615539, -0.00043166864272108633, -0.0045784971805325507, 0.0017127836707311211, 0.014308802406410212, -0.014067565159284841, -0.14520584302327849, -0.31158766591945286, 0.20453312434178955, -2.3563754691131549, -11.840914283794984, 5.9461121297862585, 98.021239180316684, 149.66956177052836, -84.358695632642934, -533.72028053649808, -1423.509046098827, -502.75722346741475, 299.68761898427243, 266.24434858476053, -14.225382292200068, -52.177815979562951, -4.1293951866555521, 7.0159472975173225, -0.46733110563156605, -1.5473028239900675, -0.18486506545171727, -0.0021885919874428559, -0.017832280274118859, -0.0099527381839588144, -0.0042340021876453469, 0.0015406044848677103, 0.0012390824544828119, -0.00075468105471319154, -0.0094665916234262307, -0.0017411003602265445, 0.037431091543101133, 0.050525784186618933, -0.33780530346449777, -0.96452576448320959, 2.8760611038460344, -0.73408381953999657, -30.973343141495679, -20.992706500305406, 170.47470391854245, 284.39023574769476, -258.09420634314608, -1206.2870766014166, -2689.7311891987179, -1317.5468335758917, 304.00864677044098, 486.73310475433766, 48.38111412245636, -40.990915592068674, 9.636927738004438, 1.5559427050062113, -6.1804125133917411, -2.4508298603470964, -0.053070166605885212, 0.16501061208697854, -0.031798236031439234, -0.024640414526075623, -0.012627706673397836, 0.001399772384542092, 0.0024301018087218504, 3.9927404721417186e-05, -0.0042018888946034633, 0.013157424181215942, 0.0073776692393865565, -0.17080663964207793, -1.1198886962258996, -1.2558586165362777, 4.8083890914979266, 1.7233725901997718, -45.128050992983098, -54.914023853010271, 253.24935366729582, 471.82586926866219, -533.70879716435559, -2302.5619774650809, -7525.5124487476278, -3861.3331359414919, 302.59784669978211, 872.01902032865962, 87.480286025038581, -13.481975167534443, 43.663316954645794, 20.309232259116435, -5.2990493438664386, -3.7567756530835754, 0.47200081560804741, 0.31419533009862788, -0.14585644547184853, -0.066021172391939276, -0.0060776628020447684, 0.0047783912245386402, 0.0025820557167290522, 0.00084949455245703076, -0.0068853887710688764, -0.0016279289016736856, 0.035426363555892841, 0.11899325802032523, -2.0029903992471114, -5.7422528468514553, -0.50779722959413964, 11.011155797013195, -31.327724554225593, -8.7220491465898675, 489.03634446603934, 766.79772203943878, -1404.6956818011561, -5804.1381366857704, -11751.949054213763, -5284.4851508729271, 2004.0776030608997, 2108.6641632789701, 15.711518936085099, -155.76938280407595, 26.780389598343376, 16.719706304911028, 5.3138000988900851, -2.0174170653233965, -0.11489505024579171, -0.083665866496761998, -0.35838805663067708, -0.13141543694038144, -0.010351412440954411, 0.0088257681278659308, 0.0039882283816162533, -0.00033732640143905191, -0.032306588307287817, -0.078076761518840951, 0.20366584836429438, 0.51553772502971895, -2.7652104861310511, -6.3950609995767769, 3.3880871060788507, 26.908851107336602, 3.5981209875695015, -59.523430315469177, 675.95430080467531, 1957.0910297219166, -1597.3125841788988, -9055.7727899285874, -13609.162528276773, -4902.8469709692927, 4992.3705750204963, 3370.1365438276171, -188.33038343684228, -449.68159927787059, 23.938521808677311, 5.474863645049389, -9.8469518252878032, -11.107804183612158, -0.25876313947681701, 0.45588994614236283, -0.12611798259867754, -0.14687879382002969, -0.035341389521171523, 0.002820237576687255, 0.0095036050242090532, 0.002839677815167327, -0.034546572003505492, -0.16497562627542883, 0.039542877145184945, -0.15910329528412964, -0.2257414648283198, -0.94130122169803698, 12.926010493557788, 10.792253245683524, -41.579492344426235, -371.53196930683367, 786.40461409554018, 4397.1447406314655, 2497.0113342386503, -9138.4955296375883, -30710.869495929113, -17039.959036708926, 4390.1153105308786, 3807.5774006807205, -403.54468101232675, -787.5686768088284, 12.126059162975466, 2.1424019920278234, -27.816492049240171, -15.856083499246239, -4.4804803612996116, 0.7466890006801008, 0.11739550901211765, -0.15988488342208015, -0.033458104535332392, 0.0037362591288712223, 0.010770434199071798, 0.0028928780958374094, -0.015513947258866389, -0.19362286330377187, -0.28694451643508428, 0.21253485530639998, -1.2097145653165073, -9.5348683496998436, -0.027644771384098099, 41.321279695296035, -108.77167233308927, -785.98438030181433, 848.32865192899692, 5360.9184206698983, 1300.6579518513656, -20630.868893573341, -7474.6405977592276, -6145.3703500362381, -1762.2326743166138, 7785.4292550857645, 624.53857955695855, -681.13286643622564, -60.968110303669903, -38.126922827402971, -30.447262913620339, -10.93402591728205, -0.92174645774084907, -0.73078681815469149, -0.39184400032067312, -0.090673583392963469, -0.025331085027316205, 0.017310354876322938, 0.0087184428309440443, -0.0046072373940015798, -0.061043080293425964, -0.14589600917437914, 0.17906893603684051, 1.5854066897944772, -7.4975861096446481, -15.430842802070792, -14.977979358030328, -4.0117794258829509, -153.66104783827134, -922.65330403810628, 173.97100199359761, 5029.218127936876, -2236.1016166727782, -8567.9043780819939], "imag": [0.0, -565.83540142139123, 2034.1707150791078, -2899.4713440958676, -705.26395079653423, -264.15772704109196, -68.25893457091972, 21.864239089276673, -9.2600847387275351, -0.77203496144657713, 0.46094227484148159, 0.050432963713891818, 0.4817041633893655, 0.069133436726486502, -0.053750756537428696, 0.0072803724650655878, 0.0, -0.0072803724650335657, 0.053750756537431763, -0.069133436726473527, -0.4817041633893806, -0.050432963713828063, -0.46094227484152789, 0.77203496144659334, 9.2600847387275351, -21.864239089276733, 68.258934570919919, 264.15772704109207, 705.263950796534, 2899.4713440958658, -2034.1707150791096, 565.83540142139009, -27456.969846005039, 15801.95774991386, 6659.2852195136584, -5625.222440567115, -315.00701580725445, 272.57265196057085, -226.29890693046426, -11.162014580405042, 22.51960143730463, 12.777842336107099, -0.00080551226422213157, -0.40616257836882108, 0.090977957608488841, 0.020544905947865743, -0.0050852207874264883, 0.005762481528077454, -0.0051011628064007979, 0.008737332888475351, -0.024097393253454041, 0.064089909650063406, -0.12938270466631999, 0.53088177925581315, -0.6296735496972713, -5.9301461429211297, -10.810291764213344, -3.7416120100021248, -182.38596939283659, -362.28186950461651, -992.82929249872541, -4862.6686041022249, 4699.2031805565066, 18939.315780035107, 10706.514246895442, -4202.5064061160292, -8815.5169521241642, 1263.9440399653656, 1779.1449685952537, 162.85707963816941, -206.3024685851984, 13.222359870031848, 21.464492537709937, 20.567779042237813, 0.65600865155601296, -0.18805381897022255, -0.36223791541012046, 0.1254341335131833, 0.020744772339125268, 0.00182748958184843, -0.0042992876297386403, -0.0012201610716230688, -0.017092494175410845, -0.076964103250570653, 0.098376776437578264, 0.4173977832999109, -0.76419419802802224, 1.7461999698867376, 9.8585155596813561, 24.776358129244393, -211.6323955131393, -238.91976950528434, 1185.1238932642693, 1296.4366520857086, -4946.0282562867787, -5281.5723471297015, -13391.901368395223, -11194.545427930107, -3925.7577913329569, 887.46023361526534, 945.20766142433024, 84.877841434423829, -42.932263785691212, -4.9615998121405198, -2.2373513523401476, 3.2722596307272758, -0.72535972703625207, -0.26143602710083624, 0.17221216218193261, 0.13507416188085969, 0.00023543387332632535, -0.004345917754103765, 0.00085055424110927274, -0.0037937176827999176, -0.0081378837299059311, -0.075677036525131303, -0.15032468438850372, -0.38722147995532397, 0.029603642148641713, 7.4921225563560006, 16.360105748561345, 29.902810744114234, -93.460146257112015, -275.96221185192559, 922.99713133386672, 2711.515323984423, -1933.4800470053665, -10929.798398133844, 684.97959165063389, 602.54327944682984, -1010.3237650874754, -821.26497752603393, 354.91295307862521, 267.12706753457422, -50.770431510290891, -60.739251530981761, -3.0004343666525628, 2.078290590472712, -2.279554023627556, -0.70169954600639106, 0.15105372261757208, 0.07861078903623217, 0.022330776935849336, 0.0012282676678784887, -0.00060025303576528312, -0.0034390891352469423, 0.011529870687322991, 0.014029711179492978, 0.1252130338315626, -0.55405390993532211, -0.54107724731740914, 0.87667351785494574, 3.6828009300200657, -7.4141267588561011, -13.004195929909718, -24.795065499663313, 420.27054634951992, 459.95573868102485, -942.16755498192015, -1112.054015955898, 2348.3469931726836, 1883.3636695028392, -240.70143186447856, -105.71673535442261, 372.79259353377239, 52.920672453261901, -92.068040375826783, -26.276835867611968, 6.7051139314185226, 3.245275744583783, -0.60045275904084205, -0.50382743582039524, -0.067202922116500141, 0.024987588306014712, 0.02345280256265949, 0.0036069899885115028, -0.0019176843365481997, -0.0026716531574556067, -0.0020365413730906823, -0.011083467862231831, 0.11877640918683252, 0.22402554985838732, -0.99918245590032706, -3.4731271711763432, 0.48835520550537315, -13.858896676215748, -73.254839813416254, -21.319429226850428, 379.31228865246607, 351.81985736289278, -537.57809524921299, 401.89162402051699, 608.06184705207306, 404.48916791571293, -26.0947672494631, -28.936629621288695, 88.255503332807123, 24.728035394109561, -22.866056256077933, -13.157904592767515, -0.15967604903152702, 2.526299018978182, 0.12352888715752443, -0.23422795848566569, -0.030590557055647175, 0.016424937283601903, 0.0056060898486765369, -0.00045117160770213557, -0.00085071688314226489, -0.0011353628514113501, 0.0023693867958524341, -0.0020514022508182662, 0.047410658855092408, -0.047246191697244096, -0.80895482070078151, -2.1371851454270119, 2.4873407504647034, 5.7983733792054322, -40.953249308721645, -95.737309397844541, 76.822153629632922, 273.3130006291081, 25.450658270222483, 108.35753184636786, -342.27621105731498, -348.25890814832445, -304.47603827676795, -96.629055803978503, 63.023130997866865, 57.409949251798395, 2.568042168489272, -13.095155674154295, -3.2681008083097729, 0.88286993545095549, 0.13472332633921499, -0.098529564497226177, -0.013721933165641624, 0.0016719543218752051, -0.00081574697753264229, -0.00012016604513092251, 2.100818845429297e-06, -0.00060431365246994741, -0.00084901673761287883, 0.013320171975788974, 0.024623507369733132, -0.041782640680197221, -0.60700748329107235, -0.43012965453926089, 2.2891908586667724, 0.48632248954743251, -15.792270422196429, -28.193965034765785, 48.029615644247542, 111.09879990264463, -87.497164212346334, -334.6737117352032, -142.68730890272883, -91.053579482449521, -99.787409897491159, -55.001294578822431, 29.906016170654414, 37.535076920090127, 4.5234778785073582, -7.1923708075200636, -1.3689331500831903, 0.35202350218593043, -0.0362018905598291, -0.061463792395340174, -0.022721689012942182, 0.0082737875972394501, 0.0032130032530252534, 0.00039450994426574093, -2.8031778648544371e-05, -0.00041406827904942888, -0.0027075490516005737, -4.6035494233911042e-05, 0.0066681432594733418, 0.0047951528835353972, -0.05690176651734323, -0.24922608889607248, 0.498049017017482, -2.4309674287383847, -12.16171561638105, 0.97951365769633958, 48.129088343602525, 56.486069104567768, -41.171639289684258, -127.72312720337817, -5.4282746232061827, -9.7835860709552271, -33.975619755276277, -24.806312587182678, 2.4072249874859208, 11.539786987684712, 2.1158028157224305, -2.1858286220084042, -0.55165459871114553, 0.18427966087195025, 0.036325697906855962, -0.045150767767426783, -0.010550176613753719, 0.0060855196058800442, 0.0017281414610421119, 7.2497674435495387e-05, -0.00021205409372000895, -2.0602816877647228e-05, -0.0011298747328672136, -0.0028809147575241121, -0.0012342607279736744, -0.011825603754497111, -0.087069268286694118, -0.14265264682578704, 0.15323327509603407, -0.85687745542587679, -6.0248432237602145, -2.077910419819851, 20.474406237761055, 25.037428100181106, -14.989381828055835, -36.497593867080774, -17.729338100591551, -17.576621089243332, -19.487467662417078, -10.955871914675358, 2.3165455312690852, 5.4119853383600915, 0.54621288944966873, -1.3157595111644833, -0.34743645177227866, 0.1287210896998103, 0.047412118534244603, -0.0077851049698980206, -0.004201560949808625, 0.0010934558980435574, 0.00023257626702487001, -9.2808109881009371e-05, -8.7155323163908151e-05, -3.9084915731858744e-05, -0.00010250720925033233, -0.00067901668703098609, 0.0014464277080026529, -0.0048636342861169473, -0.067823949067901526, -0.057130716853855026, 0.21557912264683496, 0.06519665350656248, -1.6533046454778435, -1.8832932452039048, 3.7264846171107551, 6.4019126311322827, -3.9744235027987749, -16.160449140843355, -8.4822228391137156, -8.7315069105384708, -6.1656643244543572, -2.3598704650957352, 1.9985565184181031, 2.3405484242614913, 0.29382845386145329, -0.50865792651575648, -0.17305354955167165, 0.046960029345024031, 0.015263156905378368, -0.0036170611596276912, -0.0013726058920436061, 2.237332432783488e-05, 9.385945789129954e-05, 1.3994387363258527e-05, -1.5306190418175455e-05, -2.2179563572570082e-06, 1.915436069625878e-05, 1.6056362425269958e-05, 0.0016017335432058808, 0.0021630491325728405, -0.015795334924840046, -0.011660119791667443, 0.14639963344722604, 0.10651220377116319, -0.88291287420081066, -1.2568372820076821, 1.6004592076355926, 4.2391713347552544, 2.2028113471748907, -3.1469764634818462, -2.242974904561942, -2.5538673583000224, -2.2927664969925643, -0.71511526306228479, 0.70142225830116711, 0.87257163068624521, 0.19846976557711371, -0.15249245278412921, -0.070864296996220155, 0.0099358115635036701, 0.0047066150942456026, -0.0026523157902845263, -0.00085439958417801774, 0.00013944973801692797, 7.2704791039188404e-05, 1.2601241693252589e-05, -1.5809883406608869e-05, -1.0011729527080636e-05, -7.9478542847663604e-05, -0.00022527265138271089, 0.00045307702727412569, 0.00050105816519738884, -0.004694536759989586, -0.0093912827538699273, 0.048586273708375149, 0.030553958637497009, -0.25838788694247888, -0.40093326275917601, 0.49595628709938333, 1.6851565365398353, 1.1309597417418693, -1.056522952990393, -0.80247840632915779, -1.026927016182452, -0.88651914954529398, -0.43650779681426854, 0.11316541147379869, 0.23035854544536424, 0.059920467833033307, -0.036190438604187899, -0.01725390654373966, 0.0023509305274026565, 0.001478217289217426, -0.00072670648727194635, -0.0003680247758271001, 7.1552277723323216e-05, 3.3018347577537154e-05, -6.270504054453194e-06, -5.0961890322362396e-06, -8.2597481363066073e-07, -2.4936495372693928e-05, -0.00010760628949477799, -7.7022154797155748e-05, 8.3265078915305005e-05, -0.0013990135309411168, -0.0028172526227442643, 0.010701408851355284, 0.0072451530391376149, -0.086150037841453433, -0.14460665466238934, 0.049708417947223346, 0.39521478333333182, 0.28744423285388176, -0.29861910565037264, -0.3386926979654547, -0.41865673900782491, -0.35458750065998923, -0.15351062390629316, 0.023283787620964443, 0.070315990790370639, 0.021825222068831439, -0.0094360968553556454, -0.005228648752625107, 0.0016419352706606338, 0.00062222393158804063, -0.00023654954587354915, -9.5116584994877886e-05, 9.8316138184821904e-06, 8.5616544537091567e-06, -1.8490511258670774e-06, -1.3806960215566987e-06, -7.8418160579829819e-07, 6.1187783428882963e-07, -1.4184243450717458e-05, -1.6817152282181301e-06, 7.7315413636427208e-05, -0.00049776351731738936, -0.0011677770881636529, 0.0043012344452256343, 0.0053934499385103812, -0.019935861209744145, -0.053344442429226806, -0.0040707298903069475, 0.10515901839488417, 0.12441049519027374, -0.064763119504183633, -0.033271590846292554, -0.10779677164705558, -0.11539582523941379, -0.051505283097805894, 0.0069246983450398508, 0.021708652485324127, 0.0069347628931926159, -0.0022906766529511625, -0.0016964640398162575, 0.00025142958382895784, 0.00031770653382385736, 1.1032501437955532e-05, -8.7468779744470293e-06, 5.5945066423596016e-06, 1.7972345455397561e-06, 4.5616338203520101e-07, 9.7201394524267242e-08, 4.7224934971170761e-07, -3.3798970421174713e-06, -2.8493281587958699e-06, 1.5043823885218312e-05, 5.8125806227282977e-05, -0.00024311382978972981, -0.00034121417018685452, 0.0017972456094799462, 0.002919931802959911, -0.0062096116659288523, -0.016969044244524348, -0.0032835840838819309, 0.038807899659842743, 0.067426466166360513, 0.050826644444124935, 0.0, -0.049486105286858977, -0.055102269491050557, -0.024933286677064983, 0.0027131015547638831, 0.0094232929485847418, 0.0031928535384108483, -0.0010192088413809152, -0.00065687472267875711, 9.9406390967590554e-05, 9.2117117221092925e-05, 4.2835653158188598e-07, -1.1077354271652886e-05, 4.6988159821331912e-06, 1.8643898350265165e-06, -1.3325436344526307e-07, 0.0, 1.3325436148527189e-07, -1.8643898357013856e-06, -4.698815982340655e-06, 1.1077354271338259e-05, -4.2835653029578673e-07, -9.2117117220968567e-05, -9.9406390967541697e-05, 0.00065687472267875711, 0.0010192088413828024, -0.0031928535384109992, -0.0094232929485852882, -0.0027131015547645593, 0.024933286677071297, 0.055102269491057093, 0.049486105286870655, 0.033271590846436425, -0.050826644444130153, -0.067426466166320781, -0.038807899659787329, 0.0032835840838925869, 0.01696904424452016, 0.0062096116659344346, -0.0029199318029558409, -0.0017972456094788201, 0.00034121417018834725, 0.00024311382979051588, -5.8125806225852501e-05, -1.5043823885472467e-05, 2.8493281592184042e-06, 3.3798970414074387e-06, -4.7224935044335926e-07, -9.7201394523848146e-08, -4.5616338348029835e-07, -1.7972345459045348e-06, -5.5945066421669702e-06, 8.7468779741463935e-06, -1.1032501437633476e-05, -0.00031770653382469171, -0.00025142958382980715, 0.0016964640398156006, 0.0022906766529529358, -0.0069347628931879929, -0.021708652485317177, -0.0069246983450331808, 0.051505283097836994, 0.11539582523943163, 0.10779677164702299, 0.3386926979653444, 0.064763119504166911, -0.12441049519022664, -0.10515901839483223, 0.004070729890304727, 0.053344442429226403, 0.019935861209740766, -0.0053934499385123874, -0.0043012344452267063, 0.0011677770881626617, 0.00049776351731785828, -7.7315413635329507e-05, 1.6817152281107408e-06, 1.4184243450816806e-05, -6.1187783459995966e-07, 7.8418160414892948e-07, 1.3806960215563787e-06, 1.8490511250936381e-06, -8.5616544541499696e-06, -9.8316138175931616e-06, 9.5116584994742171e-05, 0.00023654954587342899, -0.00062222393158917633, -0.0016419352706608273, 0.0052286487526254947, 0.0094360968553597515, -0.021825222068826373, -0.070315990790367974, -0.023283787620951409, 0.15351062390632836, 0.35458750065996514, 0.41865673900782463, 0.80247840632930123, 0.29861910565040301, -0.28744423285381543, -0.39521478333324389, -0.049708417947207637, 0.14460665466238265, 0.086150037841446453, -0.0072451530391390538, -0.010701408851356092, 0.0028172526227436055, 0.0013990135309424952, -8.3265078914415499e-05, 7.7022154796884101e-05, 0.00010760628949436256, 2.4936495372172559e-05, 8.2597481160475411e-07, 5.0961890322364048e-06, 6.270504053587473e-06, -3.3018347577843258e-05, -7.1552277722738763e-05, 0.00036802477582684921, 0.00072670648727208957, -0.0014782172892186336, -0.0023509305274016343, 0.017253906543740219, 0.0361904386041903, -0.059920467833026222, -0.23035854544535139, -0.11316541147376862, 0.436507796814322, 0.88651914954535227, 1.0269270161824879, 2.2429749045618363, 1.0565229529903326, -1.1309597417418378, -1.6851565365398167, -0.49595628709941025, 0.40093326275916286, 0.25838788694247145, -0.030553958637498463, -0.048586273708375489, 0.0093912827538692768, 0.0046945367599903042, -0.00050105816519528668, -0.00045307702727423699, 0.00022527265138177463, 7.9478542847089153e-05, 1.0011729526400015e-05, 1.5809883406608184e-05, -1.2601241693104561e-05, -7.2704791039154929e-05, -0.00013944973801701606, 0.00085439958417779277, 0.0026523157902857862, -0.0047066150942464552, -0.0099358115635039043, 0.070864296996221418, 0.15249245278412987, -0.19846976557711321, -0.87257163068623855, -0.70142225830113492, 0.71511526306233175, 2.2927664969925812, 2.5538673583000056, 8.4822228391138594, 3.1469764634817636, -2.2028113471748418, -4.2391713347551567, -1.6004592076355943, 1.256837282007673, 0.88291287420080655, -0.10651220377116098, -0.14639963344722345, 0.011660119791666538, 0.015795334924840389, -0.0021630491325718448, -0.0016017335432059105, -1.6056362425267762e-05, -1.9154360696782612e-05, 2.2179563562188507e-06, 1.5306190418174822e-05, -1.3994387363725719e-05, -9.3859457891797799e-05, -2.2373324326887067e-05, 0.001372605892043584, 0.0036170611596280633, -0.015263156905379492, -0.046960029345022428, 0.17305354955167276, 0.50865792651575092, -0.29382845386145795, -2.3405484242614674, -1.9985565184180694, 2.3598704650957769, 6.1656643244542986, 8.7315069105383625, 17.729338100591146, 16.16044914084344, 3.9744235027988806, -6.4019126311322339, -3.7264846171107413, 1.8832932452038942, 1.6533046454778479, -0.065196653506560565, -0.21557912264683374, 0.057130716853852841, 0.067823949067901873, 0.0048636342861174938, -0.0014464277080027464, 0.00067901668703094988, 0.00010250720924968801, 3.9084915731564376e-05, 8.7155323163908978e-05, 9.2808109880357901e-05, -0.0002325762670250908, -0.0010934558980430407, 0.0042015609498085452, 0.0077851049698978879, -0.047412118534246123, -0.12872108969980919, 0.347436451772281, 1.3157595111644818, -0.54621288944967405, -5.4119853383600702, -2.3165455312690484, 10.955871914675381, 19.487467662417213, 17.576621089243289, 5.4282746232066126, 36.497593867080688, 14.989381828055899, -25.037428100180914, -20.474406237761002, 2.0779104198198417, 6.0248432237602181, 0.85687745542587901, -0.15323327509603168, 0.14265264682578829, 0.087069268286695561, 0.011825603754498296, 0.0012342607279732299, 0.0028809147575238926, 0.0011298747328662582, 2.0602816877460582e-05, 0.00021205409372000841, -7.2497674436697104e-05, -0.0017281414610421523, -0.006085519605879876, 0.010550176613753189, 0.04515076776742772, -0.036325697906856379, -0.18427966087195091, 0.55165459871114753, 2.1858286220084038, -2.1158028157224313, -11.539786987684664, -2.4072249874858644, 24.806312587182791, 33.975619755276242, 9.783586070955252, 142.68730890272883, 127.72312720337824, 41.171639289684236, -56.486069104567761, -48.129088343602554, -0.9795136576963499, 12.161715616381057, 2.4309674287383989, -0.498049017017482, 0.24922608889607162, 0.05690176651734568, -0.0047951528835340962, -0.00666814325947404, 4.6035494233416009e-05, 0.0027075490515988954, 0.00041406827904844702, 2.8031778648544371e-05, -0.00039450994426571523, -0.0032130032530263515, -0.0082737875972399878, 0.022721689012943438, 0.061463792395343643, 0.036201890559829163, -0.3520235021859332, 1.3689331500831903, 7.1923708075200734, -4.5234778785073484, -37.53507692009012, -29.906016170654418, 55.001294578822382, 99.787409897491187, 91.053579482449422, 342.27621105731453, 334.67371173520326, 87.497164212346618, -111.0987999026444, -48.029615644247457, 28.193965034765707, 15.792270422196436, -0.48632248954740509, -2.2891908586667706, 0.43012965453925761, 0.60700748329106979, 0.041782640680199906, -0.024623507369732841, -0.013320171975792017, 0.00084901673761237609, 0.0006043136524673308, -2.1008188454298679e-06, 0.0001201660451322299, 0.00081574697752853306, -0.0016719543218773789, 0.013721933165640972, 0.098529564497228272, -0.13472332633921438, -0.88286993545096504, 3.2681008083097729, 13.095155674154302, -2.5680421684892911, -57.409949251798253, -63.023130997866808, 96.62905580397846, 304.47603827676824, 348.25890814832377, -608.06184705207238, -108.3575318463683, -25.450658270222359, -273.31300062910782, -76.822153629632936, 95.737309397844399, 40.953249308721709, -5.7983733792054135, -2.4873407504647047, 2.1371851454270088, 0.80895482070078295, 0.047246191697243041, -0.047410658855088467, 0.0020514022508175854, -0.002369386795852814, 0.0011353628514107392, 0.00085071688314226511, 0.00045117160770050525, -0.0056060898486796759, -0.016424937283604724, 0.030590557055645055, 0.23422795848566832, -0.12352888715752926, -2.5262990189781851, 0.15967604903152918, 13.157904592767508, 22.866056256077929, -24.728035394109568, -88.255503332807095, 28.936629621288684, 26.094767249463303, -404.48916791571332, -2348.346993172679, -401.89162402051733, 537.57809524921231, -351.81985736289272, -379.31228865246618, 21.319429226850364, 73.254839813416325, 13.858896676215757, -0.48835520550537709, 3.4731271711763214, 0.99918245590033916, -0.22402554985838727, -0.11877640918683258, 0.011083467862236249, 0.0020365413730902885, 0.0026716531574479938, 0.001917684336548198, -0.0036069899885160838, -0.023452802562666058, -0.024987588306021404, 0.067202922116505387, 0.50382743582040856, 0.6004527590408355, -3.2452757445837785, -6.7051139314185244, 26.276835867611975, 92.068040375826797, -52.920672453261844, -372.79259353377256, 105.71673535442247, 240.70143186447768, -1883.363669502841, -684.97959165063321, 1112.0540159558975, 942.16755498192003, -459.95573868102451, -420.27054634951992, 24.795065499662957, 13.004195929909772, 7.4141267588561703, -3.682800930020067, -0.87667351785495562, 0.54107724731740381, 0.55405390993531467, -0.1252130338315631, -0.014029711179499669, -0.011529870687323501, 0.0034390891352509903, 0.00060025303576528312, -0.0012282676678759762, -0.022330776935852007, -0.078610789036235279, -0.15105372261757474, 0.70169954600638929, 2.2795540236275773, -2.0782905904726996, 3.000434366652557, 60.739251530981811, 50.770431510290891, -267.12706753457417, -354.91295307862521, 821.26497752603382, 1010.3237650874759, -602.54327944683052, 13391.901368395234, 10929.798398133857, 1933.4800470053663, -2711.5153239844217, -922.99713133386661, 275.96221185192491, 93.460146257111958, -29.902810744114028, -16.360105748561381, -7.4921225563559606, -0.029603642148639909, 0.38722147995532696, 0.15032468438850879, 0.075677036525108848, 0.0081378837299098394, 0.0037937176827991482, -0.00085055424110926829, 0.0043459177540993259, -0.00023543387332691185, -0.13507416188085952, -0.17221216218196025, 0.26143602710082897, 0.72535972703626972, -3.2722596307272944, 2.2373513523401622, 4.9615998121405012, 42.932263785691291, -84.877841434423658, -945.20766142432956, -887.46023361526682, 3925.7577913329583, 11194.545427930101, -10706.514246895442, 5281.5723471297006, 4946.0282562867797, -1296.4366520857075, -1185.1238932642696, 238.9197695052832, 211.6323955131397, -24.776358129244326, -9.8585155596813792, -1.7461999698868065, 0.76419419802801547, -0.41739778329989746, -0.098376776437577709, 0.076964103250559746, 0.017092494175422378, 0.0012201610715871689, 0.004299287629738649, -0.0018274895818451932, -0.020744772339150463, -0.12543413351316696, 0.36223791541011652, 0.18805381897020862, -0.65600865155600818, -20.567779042237863, -21.46449253770993, -13.222359870031557, 206.30246858519831, -162.85707963816978, -1779.1449685952532, -1263.9440399653668, 8815.516952124166, 4202.5064061160301, 27456.969846005039, -18939.315780035096, -4699.2031805565066, 4862.6686041022285, 992.82929249872586, 362.28186950461748, 182.38596939283644, 3.7416120100025241, 10.810291764213327, 5.9301461429212612, 0.62967354969719169, -0.53088177925578472, 0.12938270466632043, -0.064089909650021634, 0.024097393253418069, -0.0087373328884417078, 0.0051011628064008057, -0.0057624815280936303, 0.0050852207874495618, -0.020544905947870024, -0.090977957608502774, 0.40616257836881853, 0.00080551226426904543, -12.777842336107227, -22.519601437304647, 11.16201458040481, 226.29890693046417, -272.5726519605721, 315.00701580725359, 5625.222440567115, -6659.2852195136511, -15801.957749913861]}};
|
||
|
||
var nose_filter = {"real": [3.0408379415611857, 0.37822261363137938, 1.1747173276627942, 0.87791572866957501, 0.27429578524536991, -0.26015038230887205, -0.04589694540462394, 0.18194913988848616, -0.19035992880648842, -0.050064472206627651, -0.016354960260506177, 0.073013903204916478, 0.15053197342937383, -0.47378158951033317, -0.33333577915227425, -0.30434085338299055, 0.26372284406307878, -0.30434085338299449, -0.33333577915227836, -0.47378158951033028, 0.15053197342937505, 0.073013903204915576, -0.016354960260505706, -0.050064472206628768, -0.19035992880648842, 0.18194913988848541, -0.045896945404624932, -0.2601503823088735, 0.27429578524536952, 0.87791572866957457, 1.1747173276627942, 0.3782226136313796, 1.5638480130127614, -1.0502161590016221, -0.28144140655806793, 0.66007876209063499, 0.25575295594566605, -0.11471557758718753, 0.22751157962613866, -0.29100003355994186, 0.29242994865853178, 0.14950061311078749, -0.02214037256893809, 0.034503572794411914, -0.17412889405901469, 0.060297128338254534, -0.49717312826403576, -0.10585857030501357, 0.082780177430083327, -0.11056584899062352, -0.72499416196392785, -0.15612863751308359, -0.36586758725441215, -0.19718551141955715, -0.043434328775718851, -0.060442748560529294, 0.1383233017601592, -0.071714399164362744, 0.31725814504248484, 0.16801904131477274, 0.58675004339129755, 1.5155025161072819, 0.99232752650122635, -1.0129349058609656, -1.6725083187014358, -0.66077224091757791, 2.2217962254133496, 0.98390492917013095, -0.16319024909703178, 0.67271651276019184, 0.16380771710007475, 0.21989373735679621, -0.12296413131763459, -0.18224776807046256, -0.011168077595514938, 0.10364961453623285, 0.1359801303077682, -0.26339593722715721, 0.039396952561874886, -0.33866696253626483, -0.0043101841409601402, 0.17740469505625342, -0.10830858623812685, -0.33186051211466239, 0.12060535717228799, 0.084703474730635803, -0.086262426064740078, -0.1297477439897661, -0.28426475792188655, 0.21965961682575447, 0.24955999100642301, 0.46804088594167448, -0.46946217188769823, -0.31724338121882617, 1.7716903674840139, 0.56577881124465312, 0.71512595047089234, 0.4910867492003736, 0.92310119575914651, -1.0939934957719639, 0.18102793706565934, 0.35484595526186652, 0.48676804973393767, -0.097923922056211768, -7.8200063684236368e-05, -0.016095705887683227, -0.084263209727683391, 0.0080331646697531477, -0.044853168166469837, 0.0062170702455977547, -0.15890945005602863, 0.22815908460498888, 0.17110516400703918, -0.29052216822588434, -0.18224178792918044, -0.018421573557969844, 0.032535239746583795, -0.08121081614537759, -0.029175915115094032, 0.092929862040843081, 0.16824405476099044, -0.24679227625704581, 0.00030176170486908785, 0.023943010115746295, -0.43281940369171445, -0.57166836623813821, 1.2482467538506352, 0.74385331371246666, 0.54787745216002559, 0.92898941300038174, 0.54473301805335128, -0.4877077226718825, -0.40370312470951597, 0.39096527623299848, 0.12644205243911047, 0.0424168022733412, 0.049219693586430309, -0.077748186566067037, -0.043614575991677208, -0.0041635061718157101, 0.07897222152752259, 0.053944973270972973, 0.11232623315704468, -0.070445625631503542, -0.072057201177642652, 0.12706805404252855, -0.13757198545862262, -0.31639223989443899, -0.029240486244660611, 0.10973045554309782, 0.04102655016489614, 0.01891084247324943, -0.056922369420476487, 0.030805208457151782, -0.1512000567754726, -0.058122663069861934, -0.30506910575481916, -0.79033868813295383, 0.026308878650124864, 1.7521122327973906, 0.64566220514793682, 0.40042515638418263, -0.33461208848408402, -0.55369429571770823, -0.030140868003777126, 0.27230784814155334, 0.008194429787378334, -0.030645866021173498, 0.023928227792328404, 0.090706510487419734, -0.021569631345745226, -0.0064127815367693367, -0.026343653609827326, 0.0079365608693974798, -0.18791450411345401, 0.14319521757460194, 0.17003550871316017, -0.24661106106331201, -0.21167593067635404, -0.098206750946426211, -0.048592759447365123, 0.0028129255950110439, 0.049868939755416952, 0.039023237394102607, -0.0036267311717218496, -0.12930461632538415, -0.067411320951837855, 0.010801205387038189, 0.074931291451028059, 0.0657071501308885, -0.22930577035731903, -0.34894672904561169, 0.37107135970432037, 0.49136473213042475, 0.10645611255411164, -0.27741376367012294, -0.015474080963115254, 0.13417678111594294, -0.00046677178847574514, -0.064152245495751381, 0.038292630722847554, 0.017696001575747813, 0.0052157631901947011, -0.023883294001795573, 0.00060518848897931612, -0.088395093514235953, -0.11757758027246699, -0.019555697374511325, 0.025650630137194243, -0.043746931993730094, -0.08846438922222799, -0.074442233736365312, -0.0099104052825428144, 0.064871673248634965, 0.03524540038796406, -0.0065163090427015676, -0.065286881502250399, 0.023130909787941502, -0.028452880392855154, -0.098638256951482817, -0.23382813425811513, -0.077933249962103476, 0.069575788839216612, 0.86635491100693507, 0.33668792873864722, 0.34253529215971401, -0.019122146869457048, -0.016521364547457899, 0.098161425946316522, -0.011130337821465129, -0.092543539386829035, -0.0046973120649884213, -0.0086885172531639618, 0.041915865623990751, 0.004043623749362439, -0.037907101781325205, -0.03902357631677511, -0.037690963997300889, -0.11419210623041842, -0.076732726183972602, 0.12573571356763677, 0.012633232837618465, -0.098942005293094951, -0.061888601165125671, -0.0090012900880717846, -0.014247675993027883, 0.027023228844142398, -0.0050282774165556453, -0.031667371615742887, -0.033818612421867206, -0.01148054478950835, 0.002410610826462259, 0.084402385062259444, 0.069824545029654947, 0.043930202648898894, 0.078872059827297045, 0.055053359776043469, 0.0133618922103162, 0.068453834537836655, 0.081701490128889276, -0.023034972903402569, -0.042406682273060693, 0.035148729718712253, -0.037569795749083354, -0.0041828274568459145, 0.012961699649937737, -0.015475583648045266, -0.027857672235467607, 0.011169867646763214, -0.052725469767566695, -0.0070148730067698924, 0.053188940442296044, -0.095289423698368528, 0.016377276604450954, -0.015232023889946105, -0.077682201861009353, -0.048207693014304241, 0.014396940553395536, 0.021075876818278678, -0.0024069559974744716, -0.016758259649352489, 0.031865879706987753, 0.032824623168326933, -0.074182732572421473, -0.080036865363297197, 0.055652716802045685, 0.11130862970905192, 0.072952972838101024, 0.035098396968263772, 0.070242479721294437, 0.040747896169172335, -0.022459274904977577, 0.014257984954846613, 0.019887732012022184, -0.040811004345713692, 0.0088191619820225595, 0.012579825412037176, 0.0010521231241174983, 0.006430724322423028, -0.0107697788586532, -0.065313535534231901, -0.062769573271966861, 0.11452944472315789, 0.040092306883550234, 0.12236977033818973, 0.13624403896529741, 0.027359429809611827, -0.0259369720098807, -0.021419082531908291, -0.02797214703330133, 0.0080320798501609496, 0.0013100558771969473, -0.0052561866064455981, -0.0097375289490629017, 0.028455863356249757, 0.056425701741664613, -0.0014166564531825356, -0.032528933027316242, -0.019619112630340951, 0.065700689463789611, -0.027574493612476551, -0.032810042710946841, -0.021337213333243964, 0.019592990080295629, -0.019759750092557201, -0.030135000999364853, 0.031698488621630008, 0.023522054710864718, -0.021766544372719836, -0.0029827434432790761, 0.0078373508878122541, -0.0028057606437618767, -0.033232550782043478, -0.070830818977105636, 0.059080455669844649, 0.36951320092865036, 0.091411128665944044, 0.16404233417264649, 0.062598270207454218, 0.044986403519809939, -0.081510896741027974, -0.042341618007147169, -0.019737461729971092, -0.0048974001169366831, 0.01654258945512711, 0.0088012977267579451, -0.013696041496545335, -0.0020268100930256635, 0.015845305908809133, 0.016458612619479462, 0.00059474001274681517, -0.078529066256991353, -0.013402803779002156, -0.0036013299995064228, 0.037573591582025043, -0.0076636494655425947, -0.0021144243161753088, 0.032140257903604356, 0.0203960516207237, -0.013294834505552555, 0.0021732333351695376, 0.015223562704661827, -0.01560949450401263, 0.015060609589555461, 0.099241248305729085, -0.19173261262163863, 0.2450151004066432, 0.26383919410790774, 0.33963060937430933, 0.34586223870135113, 0.1799263961717959, 0.13137374163691276, -0.036493858716968031, -0.041981936023927684, -0.060258932305754208, -0.0099079010405710068, -0.010024579181759819, 0.016637976300589805, 0.031629106230310143, -0.011441752446030828, -0.010113005489671789, -0.027490450999295705, -0.018258671855796018, 0.061296263921274532, 0.10180457538537498, 0.097647442588889397, 0.063246459754600901, 0.0018146068702083835, -0.012539173975430248, -0.008345642545901014, 0.020763503842579332, 0.035996162307667869, -0.015675575409266479, -0.029662747125522582, 0.021312770128680401, 0.08274253615935892, -0.10682054954404013, -0.033729052458342255, -0.12662108035586636, 0.18053751384272299, 0.70940599530087467, -0.21337246968950196, 0.09763637724258438, 0.15345959634626791, -0.11690110107335749, 0.030098075283007168, 0.034186076429122053, -0.021402902917041923, 0.0046349096026103891, 0.011776544425663813, -0.0089673934626629329, 0.025701507905379287, -0.029333520957471802, 0.0051215906448292756, -9.6207917787476249e-05, -0.027988212781709806, 0.093695296747695708, 0.10174972110658871, 0.1657472048824174, 0.097917377942654052, 0.0075790364114050627, 0.031051039914505564, 0.015692601846482499, -0.015197940538429407, 0.026154427883432859, 0.038178927860434288, 0.07391023019778703, 0.0062621769249755375, 0.14786394857966245, -0.24133125024592791, 0.31944609486771169, 0.50715637065140251, 0.3628700351691248, 1.3060302403517683, -0.51467834215318464, -0.23826829822593068, -0.0093468845104923252, 0.16015106243072727, 0.02805086056222977, -0.0035899004350242064, -0.0055435803643170143, -0.026732920924661639, -0.010772744125100176, -0.024390993371714485, 0.012627431507206405, -0.0087203787935273471, 0.017390054254405412, 0.12375300108425245, 0.24623032442851775, 0.32220608581938742, 0.14931322115435106, -0.030460558403777184, 0.017160725214558258, -0.0094839753900354314, -0.040937983123008212, 0.021461267056132466, 0.052605242734811673, 0.082583919156513017, 0.060994911510484674, 0.19212485777257118, 0.030490864773295545, 0.17592824054988929, 0.2988664581273196, -0.3440942993173739, 1.3210609586317499, 0.059297195869563314, 0.66450815180221101, -0.18837022473974091, 0.34310308052214539, 0.41335445680081984, 0.18880277280085617, -0.0025387166530481263, -0.027056960212979365, -0.014992917126512385, -0.065825070508153574, 0.0059924400617866053, 0.016058491686644451, 0.096318218677932735, 0.11648035795043635, 0.083105673180647682, 0.32671351148908129, 0.21720864831216413, 0.29412476851730657, 0.14853499339159934, 0.018970981025801619, -0.0063191769526926853, -0.01818046447321878, -0.033255690840711123, 0.042088106914846247, 0.11598544099090941, 0.13859711550376397, -0.01128947190338442, 0.086653868373652729, 0.5559656926196751, 0.37680556076813249, 0.88488899182435787, -1.1019114795534606, 1.0072326177374842, -0.25696609936231163, 0.22595605005106759, 0.20124367647634336, 0.25020565573121023, 0.15194580903531119, 0.054188690404279045, -0.031588472981034531, -0.072469006265441768, -0.025752917138555535, -0.0471489088024604, 0.079293556902861981, 0.16429646904639772, 0.19502382977708654, 0.21468548823411557, 0.26510515339808566, 0.4121092848683291, 0.24137856300787749, 0.039245063706659693, 0.01328784964664576, 0.063938494959291103, -0.056808918829038463, -0.039159725623022792, 0.028736615885883075, 0.075674855852819814, 0.10715382591497533, 0.29941075202959372, 0.24751816611443234, -0.14971685838339424, 0.92725020353048182, -0.58030730777587713, 1.4965419400087898, -0.58030730777587824, 0.92725020353048315, -0.1497168583833956, 0.24751816611443228, 0.29941075202959394, 0.10715382591497527, 0.075674855852819592, 0.028736615885883075, -0.039159725623022994, -0.05680891882903847, 0.063938494959291325, 0.013287849646645755, 0.039245063706659422, 0.24137856300787733, 0.41210928486832976, 0.32671351148908501, 0.21468548823411696, 0.19502382977708541, 0.16429646904639761, 0.079293556902861592, -0.047148908802460261, -0.025752917138555938, -0.072469006265442351, -0.031588472981034621, 0.054188690404279302, 0.15194580903531177, 0.25020565573121106, 0.20124367647634361, 0.22595605005106811, -0.25696609936231096, 1.007232617737484, -1.1019114795534584, 0.88488899182435599, 0.37680556076813088, 0.55596569261967799, 0.086653868373653353, -0.011289471903383815, 0.13859711550376486, 0.11598544099090989, 0.042088106914846005, -0.033255690840710936, -0.018180464473218153, -0.0063191769526928735, 0.018970981025801085, 0.14853499339159881, 0.2941247685173069, 0.21720864831216452, 0.24623032442851894, 0.083105673180647877, 0.11648035795043606, 0.096318218677932249, 0.016058491686644111, 0.0059924400617863598, -0.065825070508153657, -0.014992917126512623, -0.027056960212979545, -0.0025387166530475712, 0.18880277280085703, 0.41335445680082034, 0.34310308052214539, -0.18837022473973905, 0.66450815180220979, 0.059297195869561843, 1.3210609586317497, -0.34409429931737384, 0.2988664581273206, 0.17592824054988909, 0.030490864773296485, 0.19212485777257224, 0.06099491151048541, 0.082583919156513072, 0.052605242734811722, 0.021461267056132546, -0.040937983123008163, -0.0094839753900352007, 0.017160725214558203, -0.030460558403777944, 0.14931322115435064, 0.32220608581938709, 0.093695296747697082, 0.1237530010842532, 0.017390054254405134, -0.0087203787935278762, 0.012627431507206037, -0.024390993371714388, -0.010772744125100247, -0.026732920924662094, -0.0055435803643169856, -0.0035899004350241582, 0.028050860562230339, 0.16015106243072863, -0.0093468845104915464, -0.23826829822592965, -0.51467834215318398, 1.3060302403517683, 0.3628700351691248, 0.5071563706514024, 0.31944609486771208, -0.24133125024592691, 0.14786394857966259, 0.0062621769249767058, 0.073910230197787502, 0.038178927860434683, 0.026154427883432977, -0.015197940538429256, 0.015692601846482655, 0.031051039914505491, 0.0075790364114048233, 0.097917377942654316, 0.16574720488241704, 0.10174972110658852, 0.10180457538537414, -0.027988212781709362, -9.6207917787273747e-05, 0.0051215906448293215, -0.029333520957471861, 0.025701507905379183, -0.0089673934626627958, 0.01177654442566399, 0.0046349096026104134, -0.021402902917041607, 0.03418607642912222, 0.030098075283007585, -0.1169011010733573, 0.15345959634626896, 0.097636377242582312, -0.21337246968950468, 0.70940599530087356, 0.18053751384272154, -0.12662108035586525, -0.033729052458342325, -0.1068205495440398, 0.082742536159359198, 0.021312770128680637, -0.02966274712552271, -0.015675575409266458, 0.03599616230766798, 0.020763503842579301, -0.0083456425459010053, -0.012539173975430275, 0.001814606870208027, 0.063246459754600651, 0.097647442588889521, -0.013402803779000846, 0.061296263921273318, -0.018258671855796015, -0.027490450999295389, -0.010113005489671634, -0.011441752446030721, 0.031629106230310081, 0.016637976300589583, -0.010024579181759814, -0.0099079010405707553, -0.060258932305754062, -0.041981936023927795, -0.036493858716967892, 0.13137374163691345, 0.17992639617179582, 0.34586223870135102, 0.3396306093743105, 0.26383919410790552, 0.24501510040664315, -0.19173261262163757, 0.099241248305728891, 0.015060609589555881, -0.015609494504012908, 0.015223562704661735, 0.0021732333351695459, -0.013294834505552418, 0.02039605162072387, 0.032140257903604141, -0.0021144243161752658, -0.0076636494655425496, 0.037573591582025015, -0.0036013299995066783, -0.027574493612477238, -0.078529066256990701, 0.00059474001274650921, 0.016458612619479316, 0.015845305908809258, -0.0020268100930258088, -0.013696041496545191, 0.0088012977267581446, 0.016542589455127047, -0.0048974001169365296, -0.019737461729970797, -0.042341618007146614, -0.081510896741027863, 0.044986403519810654, 0.062598270207453191, 0.16404233417264671, 0.091411128665944058, 0.36951320092864953, 0.059080455669845232, -0.070830818977105567, -0.033232550782043346, -0.0028057606437617323, 0.0078373508878121518, -0.0029827434432791976, -0.021766544372719729, 0.023522054710864829, 0.031698488621629953, -0.030135000999364715, -0.019759750092557201, 0.019592990080295483, -0.021337213333244086, -0.032810042710946043, 0.035098396968265562, 0.065700689463788264, -0.019619112630341284, -0.032528933027315937, -0.001416656453182401, 0.056425701741664544, 0.028455863356249663, -0.0097375289490629503, -0.0052561866064455114, 0.0013100558771970501, 0.0080320798501610554, -0.027972147033301621, -0.021419082531907708, -0.025936972009880058, 0.027359429809612409, 0.13624403896529816, 0.12236977033819048, 0.040092306883550463, 0.11452944472315811, -0.062769573271967, -0.065313535534231998, -0.010769778858653123, 0.0064307243224230766, 0.0010521231241173155, 0.012579825412037126, 0.0088191619820226965, -0.040811004345713484, 0.019887732012021993, 0.014257984954846677, -0.022459274904977573, 0.040747896169171828, 0.070242479721293896, 0.055053359776043469, 0.072952972838101038, 0.11130862970905199, 0.055652716802045553, -0.080036865363297377, -0.074182732572421722, 0.032824623168326919, 0.031865879706987767, -0.016758259649352489, -0.0024069559974744621, 0.021075876818278654, 0.014396940553395566, -0.048207693014304456, -0.077682201861009201, -0.015232023889946197, 0.016377276604451121, -0.095289423698368528, 0.053188940442295753, -0.007014873006770006, -0.052725469767566646, 0.011169867646763318, -0.027857672235467666, -0.015475583648045285, 0.012961699649937817, -0.0041828274568459145, -0.037569795749083312, 0.035148729718712211, -0.042406682273060839, -0.023034972903402475, 0.081701490128889429, 0.068453834537836641, 0.013361892210316275, 0.33668792873864783, 0.078872059827295921, 0.043930202648898596, 0.069824545029654933, 0.084402385062259569, 0.0024106108264623457, -0.011480544789508253, -0.033818612421867275, -0.031667371615742741, -0.00502827741655568, 0.027023228844142416, -0.014247675993027993, -0.0090012900880712381, -0.061888601165125297, -0.098942005293094756, 0.01263323283761883, 0.12573571356763666, -0.076732726183971922, -0.11419210623041808, -0.037690963997301666, -0.039023576316775249, -0.037907101781325052, 0.0040436237493623132, 0.041915865623990772, -0.0086885172531639947, -0.0046973120649884377, -0.092543539386828647, -0.011130337821465186, 0.098161425946316272, -0.016521364547457937, -0.019122146869457519, 0.34253529215971379, 0.37107135970432042, 0.86635491100693385, 0.069575788839216376, -0.077933249962103462, -0.23382813425811527, -0.09863825695148333, -0.028452880392854651, 0.02313090978794155, -0.065286881502250455, -0.0065163090427018816, 0.035245400387964018, 0.064871673248635159, -0.009910405282542379, -0.074442233736364327, -0.088464389222228296, -0.043746931993730226, 0.025650630137194336, -0.019555697374510583, -0.11757758027246727, -0.088395093514236453, 0.00060518848897882292, -0.023883294001795972, 0.0052157631901946491, 0.017696001575747886, 0.038292630722847568, -0.064152245495751242, -0.00046677178847581285, 0.13417678111594261, -0.015474080963115183, -0.27741376367012288, 0.10645611255411111, 0.49136473213042497, 0.64566220514793704, -0.34894672904561197, -0.22930577035731828, 0.065707150130888653, 0.074931291451028587, 0.010801205387038527, -0.067411320951837883, -0.12930461632538409, -0.0036267311717218076, 0.039023237394102503, 0.049868939755416578, 0.0028129255950110478, -0.048592759447364742, -0.098206750946425017, -0.21167593067635238, -0.24661106106331246, 0.17003550871316073, 0.14319521757460188, -0.18791450411345456, 0.0079365608693964147, -0.026343653609827478, -0.0064127815367698198, -0.021569631345745438, 0.090706510487419845, 0.023928227792328456, -0.030645866021173446, 0.0081944297873781744, 0.27230784814155318, -0.030140868003777244, -0.55369429571770845, -0.33461208848408441, 0.40042515638418175, 0.54787745216002603, 1.7521122327973908, 0.02630887865012415, -0.7903386881329546, -0.30506910575481899, -0.058122663069862322, -0.1512000567754718, 0.030805208457151921, -0.056922369420476453, 0.018910842473248434, 0.041026550164896362, 0.10973045554309671, -0.029240486244660805, -0.3163922398944391, -0.13757198545862218, 0.12706805404252669, -0.072057201177643526, -0.070445625631504319, 0.11232623315704422, 0.053944973270972273, 0.078972221527521536, -0.00416350617181658, -0.043614575991677791, -0.077748186566067592, 0.049219693586430378, 0.042416802273341318, 0.12644205243911066, 0.39096527623299887, -0.40370312470951558, -0.48770772267188234, 0.54473301805335006, 0.92898941300038107, 0.71512595047089234, 0.74385331371246577, 1.2482467538506357, -0.57166836623813888, -0.43281940369171401, 0.023943010115746077, 0.00030176170486927514, -0.24679227625704431, 0.16824405476099039, 0.092929862040844205, -0.029175915115095267, -0.081210816145377299, 0.032535239746583337, -0.018421573557966798, -0.18224178792918325, -0.29052216822588622, 0.17110516400703951, 0.22815908460498383, -0.15890945005602886, 0.0062170702455973175, -0.044853168166470177, 0.0080331646697508995, -0.0842632097276826, -0.016095705887684088, -7.820006368420517e-05, -0.097923922056211893, 0.48676804973393806, 0.35484595526186524, 0.18102793706565945, -1.0939934957719641, 0.9231011957591454, 0.49108674920037432, -1.6725083187014362, 0.56577881124465212, 1.7716903674840145, -0.31724338121882639, -0.46946217188769945, 0.46804088594167398, 0.2495599910064237, 0.21965961682575341, -0.28426475792188616, -0.12974774398976752, -0.086262426064739897, 0.084703474730633041, 0.12060535717228706, -0.33186051211466344, -0.10830858623812538, 0.17740469505624151, -0.0043101841409599814, -0.33866696253627121, 0.0393969525618715, -0.26339593722715154, 0.13598013030776659, 0.10364961453623139, -0.011168077595515221, -0.18224776807046214, -0.12296413131763473, 0.21989373735679868, 0.16380771710007386, 0.67271651276019118, -0.16319024909703136, 0.98390492917013062, 2.2217962254133496, -0.66077224091757802, 1.5638480130127614, -1.0129349058609651, 0.99232752650122769, 1.5155025161072819, 0.58675004339129688, 0.16801904131477496, 0.31725814504248523, -0.071714399164359219, 0.13832330176015895, -0.060442748560523389, -0.043434328775720558, -0.19718551141955432, -0.36586758725441343, -0.15612863751307984, -0.72499416196393318, -0.11056584899062098, 0.082780177430082938, -0.10585857030502534, -0.49717312826403764, 0.060297128338251849, -0.1741288940590143, 0.034503572794408806, -0.022140372568936324, 0.14950061311078439, 0.29242994865853189, -0.29100003355994419, 0.22751157962613949, -0.11471557758718894, 0.25575295594566499, 0.66007876209063321, -0.28144140655806837, -1.050216159001623], "bottom": {"real": [5837.242024063461, 16421.190569053251, 8527.2275182117319, 3938.41845467232, 969.21000043764093, 269.87346390668256, 193.53992011404216, 135.14631901451781, 58.523829955616236, 29.311524302602624, 20.863281166035843, 14.808244655557742, 11.401757474781434, 9.6386493936653288, 8.0538591094176777, 7.4714398062124641, 7.2711776175262477, 7.4714398062124241, 8.0538591094176653, 9.638649393665327, 11.401757474781416, 14.808244655557761, 20.863281166035858, 29.311524302602734, 58.523829955616236, 135.14631901451779, 193.53992011404216, 269.87346390668273, 969.21000043764059, 3938.4184546723186, 8527.2275182117301, 16421.190569053259, 14982.474506443205, 4755.1985786680198, 3083.8642011691682, 1502.8058566448747, 596.26851293203197, 262.35520536881347, 201.52671733896852, 108.13603201941604, 57.999252895466505, 28.992297197792773, 19.233600066307524, 13.871180161098291, 10.761421361485239, 8.8506828512506655, 7.8125584926262617, 7.1234501229356377, 6.6618841738486525, 7.1762884709606958, 8.1416889804019927, 8.8663632607744063, 11.328672883224474, 14.773155762512141, 20.058056528572401, 28.688344099071909, 57.995376649220766, 126.94075502116374, 211.30702516808583, 262.54448595536269, 752.96024761972672, 2141.5368023327851, 3891.3661973657881, 5583.5460990085166, 9500.6528086677681, 4225.3848573287933, 1708.1934289355966, 562.9450489663958, 526.41420210821127, 290.26438540271903, 151.34732218304231, 89.304597077577796, 50.161041673414204, 27.913649363990057, 19.253723232543383, 14.310501425792925, 10.622538104620221, 8.6520747616015274, 7.6796432895344049, 6.9311889072641995, 6.5442165971044535, 6.8352472963781299, 7.2531587818267287, 8.8125700197174819, 10.256278085266516, 13.962876672312342, 18.680978544191657, 27.641611280844351, 51.70590284164593, 92.383035108628647, 175.23999552329536, 238.6238705323166, 446.2130896894364, 589.84950644143407, 1459.800700420838, 2983.6421667816849, 6639.6980670311659, 3615.9230624353354, 1045.9683029029898, 541.95698246733389, 551.2292078912385, 269.01748102372522, 121.81702466062521, 78.619304368994548, 46.266475261147157, 26.895860643920866, 18.966790938143397, 14.141216689343503, 10.624588727031869, 8.5120674584469107, 7.5084078178458054, 7.127942028564302, 6.5505226441602824, 6.5976614570745582, 7.5671769464103935, 8.4293753366132105, 10.446992271959362, 13.755112829750516, 18.515159362788847, 25.868606557166544, 43.593025933023839, 76.847860046206122, 125.03651194390009, 241.77755195523335, 523.08499299660048, 633.36555854289827, 855.69476790230692, 2473.0066947172836, 2803.9496552692158, 1850.6397468329815, 645.77314636959022, 447.00563976857688, 381.6372474267435, 196.7755433249871, 93.586816816137713, 72.612365740746853, 43.711482900929944, 27.782222145016455, 18.647268962291367, 13.844325818813939, 10.350953817244738, 8.7140342291788997, 7.3516641952705921, 6.886474159529909, 6.1226840838853605, 6.7186507131414492, 7.0148796268173141, 7.9020046012660439, 9.6536048586555445, 13.744699851401226, 17.872279960942961, 25.025889030797831, 38.775468597625853, 68.228616115874232, 97.806667851841851, 178.52012140604563, 362.80035213144055, 506.96305099601244, 508.39785887877764, 1271.7627571663681, 1970.0713813014595, 1211.9708052435174, 448.82610946730466, 388.91483700385658, 294.26646682781944, 147.68595350614527, 76.563818921604266, 57.53338100926053, 37.094893522892434, 25.168957624787666, 17.405368368923924, 12.931100650610183, 10.211256703797424, 8.3783082007702649, 6.8845647672161352, 6.2954630311895761, 6.1711525716900475, 6.2852637654745882, 7.1318002457288037, 7.8126464614985656, 9.3562580058102185, 12.456351018938477, 17.12365920646733, 22.851195586808732, 34.22708028584924, 57.273965595477058, 82.126801795962663, 114.0182287640494, 248.69630423497404, 396.25330408596494, 382.77662480077174, 646.86127060880278, 1066.1959535576209, 770.74521634546068, 344.77171326148743, 328.21152488387929, 223.6732358532505, 124.39997807543456, 66.042124980023658, 49.833499278727395, 36.080812354502541, 24.010000461569632, 16.241873057458708, 11.94801819096188, 9.663620823552634, 8.1734814269274114, 6.8263151892657215, 6.1094005534487641, 5.5560364128866686, 6.0895161225652297, 6.7371553850929349, 7.5614980494024309, 9.3035460399083956, 11.904089289656403, 15.753116847312391, 22.116186781807659, 33.401673308199264, 45.775772578430164, 60.542807604917392, 91.412240599681226, 164.58197575163385, 289.97996145010069, 367.09809735899603, 433.51729458889321, 538.99714678707312, 436.9735160339028, 214.45700003213321, 226.27353228768246, 190.72528880002966, 104.24105887361294, 63.096291028318397, 44.895692115573439, 34.378771692376986, 22.743616534455565, 14.943130070579064, 11.306154107321404, 9.490726177732828, 8.057539867813432, 6.6249917656310648, 5.80530835366394, 5.6727594087192097, 5.6803994552580717, 6.4512234217242401, 7.3091820969038412, 8.9053168517088785, 11.147020821533502, 13.978280110937801, 19.308076160210224, 27.380246565144393, 39.45337202937899, 53.823906577074318, 70.344986096434994, 125.18491111128095, 220.27402210338624, 239.02095964975129, 253.52805611791149, 337.90351459641266, 301.96557555412664, 163.14862666039761, 176.1964602722083, 155.2640157056349, 91.402170635856464, 57.9223709952281, 44.132906015519367, 31.477476121951593, 19.994026988386896, 14.669539930994308, 10.52228821405147, 8.9499245076841039, 7.4160858759377133, 6.0652235290917815, 5.5336836347972449, 5.3453345499720717, 5.5251998880295652, 6.049359333226362, 7.4989544637904162, 8.6441457110666775, 10.17217183387787, 12.922358897606493, 16.497840703497662, 24.473525343022239, 36.893225695749557, 46.488420049270196, 60.008949681859932, 101.55324863109907, 172.57213254679178, 186.99209153386954, 177.69050334329205, 224.71115213821386, 219.35401697656656, 131.98987419085088, 139.58612051732652, 133.97255559613592, 83.717667146076977, 52.48988401855501, 39.948149447326976, 29.992243301791387, 19.792293237610107, 13.550533437330548, 10.191515700191694, 8.7251285565258279, 7.0130966099588283, 6.0412905020539274, 5.1695609453883042, 5.2335464217738297, 5.2748937601741233, 5.9151189141762242, 6.6404924993384702, 8.2525633194354864, 9.86505065394757, 11.857247340871206, 15.821441128307118, 21.809722446513074, 33.204842604441232, 45.292100524348356, 53.588237099743992, 86.046570865333351, 138.34470513151498, 144.28338780744133, 137.47961624149846, 184.36194031651988, 195.75342807998493, 111.69248606852764, 108.22432115257934, 110.31477193613289, 70.737952758714727, 45.316084199866118, 35.221165127538775, 25.132656234698317, 17.808708328889288, 13.205138111505544, 9.8319756958291311, 8.3851869715659166, 6.6979147774695411, 5.5577949826186863, 5.0640136062157843, 4.915924071395172, 5.1747375238921238, 5.621849200313962, 6.3926522738336189, 7.8838556827841355, 9.5880495388903295, 11.2702077240605, 14.675031755421674, 19.961485602094882, 28.340133288775018, 38.071807302485439, 46.211805942072893, 70.896288173632385, 115.46517347822648, 119.73189294718243, 110.21299532100423, 137.49078682179271, 145.21239507063157, 90.736475500202033, 84.820134662984671, 87.028887735269166, 58.592780926558561, 39.140475702708279, 30.030590426700837, 23.561748558876776, 17.07171690133644, 12.059539847971436, 9.1303469917064106, 7.8824915696444915, 6.5574577163884546, 5.4508327472027114, 4.6319487889521351, 4.8556936697031698, 5.0952139895658046, 5.3626061482546099, 6.0231504777267588, 7.3929124540904754, 8.8697139145390977, 10.839689611405708, 13.484775054138881, 18.125520870461621, 25.51326521840107, 33.814821758723511, 43.000660712963757, 59.289067569698993, 89.523100480006264, 96.002834501641331, 88.248403951505949, 114.22377327036351, 136.39754784126862, 85.133937137494058, 70.757613581150778, 72.941136445046624, 50.417131404641061, 35.29732697897046, 27.270836476117434, 20.337170678571646, 15.328073102208975, 11.227626008224609, 8.8894703399043831, 7.3066732490559749, 6.1117570010797007, 5.2240396800825373, 4.6927944754047974, 4.4462691956761722, 4.8997943453914665, 5.030120352863074, 5.8504059853355139, 6.9021030785339024, 8.6936481048417669, 10.014300550884089, 12.783989981758968, 16.915182814597465, 23.037925870268026, 29.781501040175886, 36.137786628939317, 46.659613314406016, 72.542096884400053, 80.098309124706176, 76.772569487169434, 87.96931966600367, 100.35528192635977, 66.390743706670477, 56.297220892995071, 57.449776912893739, 42.311817158751616, 30.3950154293208, 24.633397231162515, 18.800000277532757, 13.906344724637259, 10.685561612392762, 8.7726633553262534, 7.3765778222647702, 6.0238006847876884, 5.2082074327498917, 4.5886719664559399, 4.6166410353959701, 4.6115148269570563, 4.9920772309179853, 5.6445124723515159, 6.7980683034043956, 7.4975962005340229, 9.6066586869080837, 12.06652313244911, 16.251663826300451, 21.003823940677318, 27.622933573071261, 33.836788273738165, 41.877854423447168, 58.532835369703733, 68.239320296767971, 62.326149739008642, 71.583830955139561, 81.611391861674278, 61.290606958364052, 49.963935495056425, 49.744027747354536, 38.555965139546075, 28.313241453630848, 22.404376161451804, 17.69007471646092, 13.348861556136391, 10.46674681432143, 8.1507364253451371, 6.7804933363165576, 5.7303247473649055, 4.9737961537641029, 4.6591603640435002, 4.3691273542401863, 4.5876440856805019, 4.8775279419312838, 5.5643157824289267, 6.5106424514611394, 7.6517258774697732, 9.3978270674435489, 12.208065227131403, 15.316902707006163, 20.982661610009878, 26.317869298031479, 32.313264556083666, 38.062860113666069, 50.105167484748129, 58.219661124046276, 59.861157680092496, 61.019020366450448, 69.642805168222978, 57.634563900118565, 46.967523109902231, 43.85887184820529, 34.957640557066753, 26.505039983640941, 21.71545909517323, 16.236775633007202, 12.875777825381771, 9.9834739610997616, 7.8930497070448, 6.6829715569803687, 5.6672193704500122, 5.0794246915518446, 4.681264046528276, 4.6186632297539427, 4.6211092904368423, 5.0897865773957403, 5.5691810710797096, 6.5035187317991277, 7.2014326998593701, 9.1703620437944053, 12.475838151915292, 15.6623920524898, 19.528853843427893, 25.077028045409381, 30.833489267211636, 39.113296407386123, 46.770991427918581, 55.937485646720255, 57.570245344451905, 57.637817589030213, 59.860391566610879, 52.776195682327739, 43.839296967027423, 39.833012832197511, 33.598213438023812, 26.072700016436322, 20.276975501521189, 16.195672497297036, 12.239826665071417, 9.6875213487165066, 7.7379543893933631, 6.3786782254807157, 5.5950259327840586, 5.1232903828272987, 4.5786592309737237, 4.5178908466513406, 4.578659230973722, 5.1232903828272978, 5.5950259327840595, 6.3786782254807148, 7.7379543893933684, 9.6875213487165084, 12.239826665071421, 16.195672497297036, 20.276975501521182, 26.072700016436304, 33.598213438023805, 39.833012832197511, 43.839296967027416, 52.776195682327739, 59.860391566610836, 61.019020366450441, 57.570245344451919, 55.937485646720255, 46.770991427918517, 39.113296407386116, 30.833489267211636, 25.077028045409371, 19.528853843427893, 15.662392052489803, 12.475838151915296, 9.1703620437944, 7.2014326998593674, 6.5035187317991294, 5.5691810710797114, 5.0897865773957385, 4.6211092904368405, 4.6186632297539418, 4.6812640465282733, 5.0794246915518446, 5.6672193704500087, 6.6829715569803696, 7.8930497070447982, 9.9834739610997651, 12.875777825381764, 16.236775633007209, 21.715459095173252, 26.505039983640959, 34.957640557066775, 43.858871848205247, 46.967523109902238, 57.634563900118593, 69.642805168222949, 71.583830955139618, 59.861157680092482, 58.21966112404624, 50.105167484748137, 38.062860113666083, 32.313264556083666, 26.317869298031482, 20.982661610009867, 15.316902707006161, 12.208065227131399, 9.3978270674435436, 7.6517258774697732, 6.5106424514611394, 5.5643157824289284, 4.8775279419312856, 4.587644085680501, 4.3691273542401872, 4.6591603640434966, 4.973796153764102, 5.7303247473649037, 6.7804933363165594, 8.1507364253451371, 10.466746814321423, 13.348861556136386, 17.69007471646092, 22.404376161451779, 28.313241453630852, 38.555965139546039, 49.744027747354508, 49.963935495056418, 61.290606958364073, 81.611391861674235, 87.969319666003628, 62.326149739008663, 68.239320296767957, 58.532835369703712, 41.877854423447168, 33.836788273738158, 27.622933573071283, 21.003823940677311, 16.251663826300444, 12.066523132449106, 9.6066586869080837, 7.4975962005340202, 6.7980683034043929, 5.6445124723515194, 4.9920772309179844, 4.6115148269570598, 4.6166410353959719, 4.5886719664559372, 5.2082074327498908, 6.0238006847876866, 7.3765778222647711, 8.7726633553262587, 10.685561612392764, 13.906344724637258, 18.80000027753276, 24.633397231162533, 30.395015429320793, 42.311817158751609, 57.449776912893732, 56.297220892995028, 66.390743706670506, 100.35528192635975, 114.22377327036349, 76.772569487169449, 80.098309124706219, 72.542096884400053, 46.659613314406002, 36.137786628939317, 29.781501040175893, 23.037925870268033, 16.915182814597468, 12.783989981758975, 10.014300550884082, 8.6936481048417651, 6.9021030785339006, 5.8504059853355228, 5.0301203528630678, 4.8997943453914612, 4.4462691956761731, 4.6927944754048019, 5.2240396800825328, 6.1117570010797033, 7.3066732490559732, 8.8894703399043813, 11.227626008224609, 15.32807310220897, 20.337170678571649, 27.270836476117438, 35.297326978970467, 50.417131404641083, 72.941136445046638, 70.757613581150821, 85.133937137494073, 136.39754784126856, 137.49078682179265, 88.248403951506006, 96.002834501641317, 89.523100480006221, 59.289067569698972, 43.000660712963743, 33.814821758723504, 25.51326521840107, 18.125520870461624, 13.484775054138884, 10.839689611405714, 8.8697139145391013, 7.3929124540904745, 6.0231504777267606, 5.362606148254609, 5.0952139895658073, 4.8556936697031734, 4.6319487889521325, 5.4508327472027096, 6.5574577163884502, 7.8824915696444933, 9.1303469917064124, 12.059539847971436, 17.071716901336433, 23.561748558876776, 30.030590426700826, 39.140475702708279, 58.592780926558504, 87.028887735269151, 84.820134662984628, 90.73647550020199, 145.21239507063157, 184.36194031652002, 110.2129953210042, 119.73189294718252, 115.4651734782265, 70.896288173632399, 46.211805942072878, 38.071807302485439, 28.340133288775018, 19.961485602094882, 14.675031755421674, 11.270207724060505, 9.5880495388903277, 7.8838556827841364, 6.3926522738336233, 5.6218492003139611, 5.1747375238921247, 4.9159240713951746, 5.0640136062157861, 5.5577949826186863, 6.697914777469534, 8.3851869715659184, 9.8319756958291471, 13.205138111505548, 17.808708328889303, 25.13265623469832, 35.221165127538775, 45.316084199866097, 70.737952758714712, 110.3147719361329, 108.22432115257941, 111.69248606852767, 195.75342807998487, 224.71115213821398, 137.47961624149852, 144.28338780744139, 138.3447051315149, 86.046570865333337, 53.588237099743992, 45.292100524348342, 33.204842604441232, 21.809722446513071, 15.82144112830712, 11.857247340871208, 9.86505065394757, 8.2525633194354864, 6.640492499338464, 5.9151189141762242, 5.2748937601741233, 5.2335464217738297, 5.1695609453883096, 6.0412905020539247, 7.0130966099588328, 8.725128556525835, 10.191515700191694, 13.550533437330545, 19.792293237610103, 29.992243301791408, 39.948149447327012, 52.489884018555003, 83.717667146076963, 133.97255559613592, 139.58612051732649, 131.98987419085091, 219.35401697656653, 337.90351459641266, 177.69050334329216, 186.99209153386957, 172.57213254679186, 101.55324863109904, 60.008949681859939, 46.488420049270182, 36.893225695749557, 24.473525343022239, 16.497840703497666, 12.922358897606497, 10.172171833877869, 8.6441457110666775, 7.4989544637904126, 6.0493593332263602, 5.5251998880295634, 5.3453345499720717, 5.5336836347972458, 6.0652235290917806, 7.4160858759377133, 8.949924507684111, 10.522288214051471, 14.669539930994311, 19.994026988386889, 31.477476121951593, 44.13290601551936, 57.922370995228107, 91.402170635856407, 155.2640157056349, 176.1964602722083, 163.14862666039767, 301.96557555412653, 538.99714678707278, 253.5280561179116, 239.02095964975135, 220.2740221033861, 125.18491111128091, 70.344986096434923, 53.823906577074332, 39.453372029378947, 27.380246565144397, 19.308076160210238, 13.978280110937792, 11.147020821533506, 8.9053168517088821, 7.3091820969038439, 6.4512234217242392, 5.6803994552580681, 5.6727594087192079, 5.8053083536639392, 6.6249917656310666, 8.0575398678134302, 9.4907261777328298, 11.306154107321403, 14.943130070579077, 22.743616534455558, 34.378771692377001, 44.895692115573446, 63.09629102831839, 104.241058873613, 190.72528880002952, 226.27353228768243, 214.45700003213315, 436.97351603390234, 1066.1959535576209, 433.51729458889332, 367.09809735899597, 289.97996145010086, 164.58197575163376, 91.412240599681198, 60.542807604917364, 45.775772578430157, 33.401673308199264, 22.116186781807642, 15.753116847312398, 11.904089289656401, 9.303546039908392, 7.5614980494024362, 6.7371553850929322, 6.0895161225652297, 5.5560364128866677, 6.1094005534487605, 6.8263151892657268, 8.1734814269274096, 9.6636208235526269, 11.948018190961893, 16.241873057458722, 24.010000461569639, 36.080812354502534, 49.833499278727416, 66.042124980023658, 124.39997807543459, 223.67323585325056, 328.21152488387946, 344.77171326148749, 770.74521634546022, 1970.0713813014588, 646.86127060880301, 382.77662480077169, 396.2533040859646, 248.69630423497387, 114.01822876404945, 82.126801795962692, 57.273965595476994, 34.227080285849233, 22.851195586808739, 17.12365920646733, 12.456351018938475, 9.3562580058102167, 7.8126464614985656, 7.1318002457288037, 6.2852637654745882, 6.1711525716900475, 6.2954630311895787, 6.8845647672161387, 8.3783082007702561, 10.211256703797417, 12.931100650610194, 17.405368368923916, 25.168957624787648, 37.094893522892434, 57.533381009260523, 76.563818921604266, 147.68595350614524, 294.26646682781944, 388.91483700385658, 448.82610946730478, 1211.9708052435162, 2803.9496552692158, 1271.7627571663686, 508.39785887877753, 506.96305099601244, 362.80035213144049, 178.52012140604566, 97.806667851841823, 68.228616115874146, 38.775468597625853, 25.025889030797838, 17.872279960942965, 13.74469985140124, 9.6536048586555427, 7.9020046012660456, 7.0148796268173159, 6.7186507131414386, 6.1226840838853631, 6.8864741595299055, 7.3516641952705939, 8.7140342291789032, 10.350953817244736, 13.844325818813926, 18.64726896229136, 27.782222145016434, 43.711482900929937, 72.612365740746867, 93.586816816137656, 196.7755433249871, 381.63724742674339, 447.00563976857711, 645.77314636959011, 1850.6397468329806, 6639.698067031165, 2473.0066947172841, 855.69476790230704, 633.36555854289816, 523.0849929966007, 241.77755195523349, 125.03651194390012, 76.847860046206094, 43.593025933023853, 25.868606557166554, 18.515159362788847, 13.755112829750496, 10.44699227195936, 8.4293753366132176, 7.5671769464103917, 6.5976614570745609, 6.5505226441602797, 7.1279420285643011, 7.5084078178458018, 8.5120674584469089, 10.624588727031863, 14.141216689343507, 18.966790938143404, 26.895860643920869, 46.266475261147157, 78.619304368994577, 121.81702466062518, 269.01748102372505, 551.22920789123827, 541.95698246733446, 1045.9683029029893, 3615.9230624353345, 9500.6528086677681, 2983.6421667816867, 1459.8007004208382, 589.84950644143373, 446.2130896894364, 238.62387053231652, 175.23999552329542, 92.383035108628548, 51.705902841645944, 27.641611280844312, 18.680978544191667, 13.962876672312348, 10.256278085266519, 8.8125700197175014, 7.2531587818267402, 6.8352472963781254, 6.5442165971044517, 6.9311889072641986, 7.6796432895344058, 8.6520747616015186, 10.622538104620222, 14.310501425792921, 19.253723232543386, 27.913649363990046, 50.161041673414196, 89.304597077577839, 151.34732218304231, 290.26438540271909, 526.41420210821127, 562.94504896639603, 1708.1934289355961, 4225.3848573287914, 14982.474506443201, 5583.5460990085194, 3891.3661973657854, 2141.5368023327842, 752.9602476197266, 262.54448595536314, 211.30702516808589, 126.94075502116375, 57.995376649220773, 28.688344099071898, 20.058056528572401, 14.773155762512143, 11.328672883224492, 8.8663632607744169, 8.1416889804020052, 7.1762884709607109, 6.6618841738486552, 7.1234501229356262, 7.8125584926262608, 8.8506828512506655, 10.761421361485221, 13.871180161098282, 19.233600066307527, 28.992297197792769, 57.999252895466505, 108.13603201941609, 201.52671733896852, 262.35520536881353, 596.26851293203185, 1502.8058566448742, 3083.8642011691672, 4755.1985786680179], "imag": [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.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, 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.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, 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.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, 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.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, 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.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, 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.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, 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.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, 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.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, 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.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, 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.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, 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.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, 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.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, 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.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, 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.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, 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.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, 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.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, 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]}, "imag": [0.0, -0.13871927675086548, -0.55827571496092165, -0.85383263724083092, -0.46701193383615952, 0.047809537946767316, -0.3426920474802197, 0.15831589374137059, 0.20589774809377467, -0.21944378817656213, -0.12654666933988368, -0.19544466487854822, -0.096446269450190733, -0.2265628704083768, 0.10840537931386109, -0.055457499657790024, 0.0, 0.055457499657784036, -0.10840537931384955, 0.22656287040837902, 0.096446269450189581, 0.19544466487854698, 0.1265466693398799, 0.21944378817656165, -0.20589774809377467, -0.15831589374137045, 0.34269204748022014, -0.047809537946767663, 0.46701193383615958, 0.85383263724082981, 0.55827571496092188, 0.13871927675086551, -1.279550584464304, -0.80695903119669909, -0.5066002982483182, -1.4561178571661, -0.13414323846201096, -0.25055297311154978, -0.64027404819684697, -0.19951473048424853, 0.33137912963317689, -0.047498243759329373, -0.24064979253244873, 0.1395435157196932, 0.17789090203786645, -0.044374683774468404, -0.36806933922228663, 0.19528135326361654, 0.32999646269142918, -0.13015393203002068, 0.1959681784626765, 0.28571835588367483, 0.22705801052414751, -0.14508578389537852, 0.23457709892354506, 0.21163882649779878, -0.20150153854805303, 0.060946718066345364, 0.31004041285864392, -0.26258387187077481, 0.13955938857309563, -0.2449447076348287, 0.068510051090992716, -1.1758121586434307, -1.3682011726001491, -1.6899938281650106, -0.75019268688655194, 0.68911282851752931, 0.44086751164178845, -0.23155959034339019, -0.54510315877084203, 0.26585764990704713, 0.2624959582084973, -0.045146091846171167, 0.011517786678353055, -0.057907844320373422, 0.076854124253010955, 0.0035092112107953564, -0.23588030048916386, -0.048277840380711062, -0.21489820671404902, 0.26817287178185911, -0.027468417557455105, 0.29873174456545087, 0.072899207479288589, 0.023829771073631354, 0.0066491170121291982, 0.0048298736467919092, -0.13057930804766787, -0.26946209593128789, 0.39240115086507854, 0.85317721061416651, -0.11752989424299426, 0.99998707389668307, 0.55787436167296656, -1.0314907737559058, -1.5043263157657751, -1.3830149751777026, -0.20446853801739454, -0.28364033101911829, 0.68303147161529054, 0.03902721990981517, -0.18273076418691683, -0.013466871818696777, 0.028891896132398606, -0.068621242214500722, -0.026792869524675422, 0.18842973810535804, 0.068392282535087487, -0.17097210848547728, -0.23288712244734344, -0.31416612358708279, 0.27284169211913839, -0.072438990225411531, 0.1202436118466384, 0.067443262257117789, -0.0040452326400191837, -0.15231382612170316, 0.020438609938141238, 0.10773227995476008, -0.1646961578394999, -0.034526357222664054, 0.34045699686317549, 0.3582562672018631, 0.50203282214727851, -0.90050578840564854, 1.1141651843864948, -1.0547694551235964, 0.15113295529591572, -0.42011997382980693, -1.1306687523196075, 0.59904899563122349, 0.12782476119556421, -0.26469201284371935, -0.0028564673365734715, 0.25878855026626812, 0.00078645201341040851, -0.17181320075266995, 0.013143422355015144, 0.050238396740841747, 0.072156922858987921, 0.041604673982592558, -0.0112715468909201, -0.016101389694688766, -0.31269363662275068, 0.094974334151300396, -0.067869387966968731, 0.14811752790953986, 0.010724993842567176, -0.071495661604357427, -0.037154193600070516, 0.05779163337935353, 0.094937931062917286, -0.1272883333159909, -0.017408469796284951, 0.62003762386212868, 0.074417004563971767, -0.12904495334293709, -1.4636084587609224, -0.036743730082780299, -0.77470195486186, -0.60686918965332004, 0.62872636200456622, -0.46894237369717673, -0.18368617361305525, 0.26816260026693856, 0.13447215443394772, 0.041008154934057489, -0.017107991149299187, -0.0680369475996533, -0.01240601732954733, 0.059356927461924558, 0.12615835751185028, 0.053672308552617974, 0.037749743592242362, -0.10597138547480481, 0.022172258797336697, -0.058681894939636686, 0.12792055300624736, -0.060154323470105943, 0.032298308999269151, -0.015701976416949814, 0.0007367446231764113, 0.07712597645572114, 0.055644084876628218, -0.065981740018919821, -0.14567847379973994, 0.039540586335773356, 0.24917063867041539, -0.6432675339043068, 0.36754664039982821, -0.069649876974948205, 0.2952063874323651, -0.011417685121456805, -1.0450941798657123, -0.17374602795438093, 0.19930768818407893, -0.1556206112582631, 0.055817128538076119, 0.17900936499027481, 0.0052374024484263433, -0.042596098823283683, -0.020834261928533829, 0.036686593450547957, 0.00076880260958178746, 0.061719692477810909, 0.027700064466885506, 0.10661165850403151, -0.13945785164947772, -0.050544258155460708, -0.11937846922953205, 0.034399558837173369, 0.02521789889898339, -0.0047468618190418272, -0.028256857448446509, 0.029239764799856467, 0.046539635523190424, -0.033316423902485758, -0.15842957449053302, 0.14741145606308881, 0.1752194519195491, -0.075629282019522973, -0.91968716746889456, -0.45504702044764878, -0.12177128356890227, -0.10462001130261206, 0.1804016527269576, -0.047005347129142915, -0.19200701617075638, 0.1133507155810588, 0.14315736053243958, -0.067545520465919412, -0.0022066601859379556, 0.0084001340729883862, 0.0049338006978182497, 0.016196236751475263, 0.066419574069183293, -0.012240235365542763, 0.014433128838537781, 0.023674926554515096, -0.017114978073907605, -0.14379898617791109, 0.084303725772385638, 0.0056779923265117766, 0.048321020114327755, 0.022849248448590556, 0.012395399307186424, 0.023865191872962568, -0.0060375152678495622, -0.021897165586045375, -0.092173327221095822, -0.17587869380621102, 0.091992925322100877, 0.014980171338571357, 0.0086063527817299007, 0.098130362913165001, 0.130338354535672, 0.094203305677599436, -0.19730813245926024, -0.10041080102702246, 0.075932042745803577, 0.021134287621881041, -0.059575532325244519, 0.0082992125422013917, 0.015272751179096435, 0.0090248536114060952, -0.019251438395354602, -0.015788972597383853, 0.003250945662643008, 0.032968975479440332, -0.015058032290062954, 0.017643635220692015, -0.068857003169531444, 0.030070570566209365, -0.12793975070954616, -0.043534834876013277, 0.0017423598025251587, 0.028592812647173952, 0.0036967486190428137, 0.0090453167838253218, -0.016259252101333162, -0.0052076817297827191, 0.018046490267575967, -0.026168992315517926, -0.083077034868877908, 0.032798990212655046, -0.027546636940189637, -0.12409557570816734, -0.0088356071822206419, -0.034333260533212014, 0.056177295075322577, 0.057994393113440637, -0.032566171451921935, -0.010465798382464413, 0.020079425427313443, -0.017396471253638312, -0.017870360905994483, 0.010919865739753416, 0.012363627500514531, -0.014313215415815719, 0.034201557920817111, 0.10796975372596095, 0.21064351401911494, -0.046016401957029461, -0.083803307026608195, -0.15128619138644472, -0.070745415327885988, -0.06951503451164355, 0.070638418064815661, -0.0080019035626016123, 0.02654845111893607, 0.019862790828204354, -0.0038698355762961699, -0.020866890117519677, -0.0048084432749845906, -0.0036451640963975299, -0.0026341276434262537, -0.0023099396961399252, 0.043908100663757832, 0.096772033742844044, 0.04918905117971889, 0.070600771528734244, -0.026773628633603139, -0.05973226936448265, 0.013552286601009756, 0.0032289712715403013, -0.023046337829044056, -0.010405151723131599, 0.019427096259341661, 0.018256051683800133, -0.056759870222018213, -0.032960560091393032, -0.017399004273096801, 0.12185282737260948, 0.037984234337547759, -0.12270039394272629, -0.055947445070994896, 0.04621845892784341, -0.1857137618225036, -0.063810892086947277, 0.07053672326645595, 0.03906718120738633, 0.01577517031413787, -0.0047456570119124219, -0.019801411975277249, 0.024637199092487311, 0.019457415538283646, -0.0067710516924983765, -0.028346017012320548, -0.0065098329229195291, -0.0013352981567293612, -0.023151697315085987, -0.06519950655383687, -0.1042256990435297, -0.023224778901070588, 0.0072963544312097499, -0.034708386400909293, -0.0023809918522597964, 0.016167541663812009, -0.0054340236987463174, 0.0027208109883995382, 0.0066841964011560553, -0.023932611476630623, -0.039005803210705049, 0.016396390506166533, 0.058067983872416511, 0.15112210885707694, 0.091953539825334094, -0.30878981646904202, 0.23773808023122034, -0.11496619447060334, -0.15410637679425881, 0.16398523681965352, -0.042160123131605852, -0.0057838899052936009, 0.021159112170606904, -0.00089194024953267548, -0.043632529695206895, 0.025594278576058532, 0.04827977682701759, 0.008656372871138766, -0.025123508323013247, -0.021222695138498154, 0.012727342518660707, 0.0027327273075534982, 0.016727222825244921, -0.062351999721191126, -0.095086485134993501, 0.009789315676701096, 0.020526538310240195, -0.0017729650965628652, 0.0042367342426148282, 0.0096918161659650896, -0.014518052118829046, -0.0045810353743419062, -0.069451504639382974, -0.036289590762181183, 0.22708969966074724, 0.3665342673930222, -0.59625762091850343, 0.36774772058649913, 0.2627894192943519, -0.10703484463450727, -0.13950623949894417, -0.080806137493453625, -0.018761372187400087, -0.14807112835842171, 0.015533054933596769, -0.013156170331620851, 0.033053795814988449, 0.012901798319361097, 0.00377273404398293, -0.0087050725477761486, -0.026200884444946355, -0.069983120002794802, -0.045851102565308888, -0.0080215915074989454, -0.048063119818621811, -0.055909188302307122, 0.015567334119352533, -0.069113723063989038, -0.0072474243428621863, 0.042526562044161449, 0.039806904605142766, -0.027582495505149615, 0.0049261433754253488, -0.04754279011762625, -0.074122351214929355, 0.22223052073714245, -0.0077417273670608014, -0.080825286420915882, 0.62390518555370134, -0.18988737165776209, -0.013310214088767865, -0.13538196037364333, -0.38370084094404533, -0.32853605615928166, -0.23095349816725769, 0.0024573680892555631, -0.060148519255615616, 0.030360401196840837, -0.0084214745912351684, 0.033027304906486414, 0.030739864021722699, 0.0097039926999964547, -0.060698557392036313, -0.04746519227839175, -0.053530300822357386, -0.046174234082698239, 0.0052112044634668644, 0.020596160958060543, -0.15878906772803425, -0.02193329327109424, 0.0079342423803948989, 0.027919450264392773, 0.0070430807013025284, 0.020085011074200358, -0.075935043112063852, -0.041652272773957957, 0.16889959178925665, 0.18647295463827135, 0.014154913289577202, 0.060521107576468509, -0.63637312336837226, 0.90191957381577925, 0.27922666018549325, -0.48673882008850766, -0.33370031357259311, -0.3513559741645329, -0.2622745616761345, -0.17197492325356289, -0.0057315027931728107, -0.04469091820910031, 0.053283308768024513, 0.039465599946438043, -0.014174493080162808, -0.04946368453866596, -0.022857667990750397, -0.16881304090125779, -0.080812526909499666, 0.00058234446045326367, 0.084338425974376116, -0.12518231680881081, -0.040506406338050263, -0.08374410530080309, -0.001350704062862842, 0.030200114248426838, 0.042299889130269351, 0.011310849850443803, 0.081759178445920677, 0.035289563063634108, -0.12268118169149339, 0.058157249768416797, 0.19453030659557169, -0.32019695139960919, 1.2621857571853639, 0.24947885513851267, -0.86827138009746829, -0.26346017480935824, -0.40312000272498982, -0.22820944406317872, 0.0813299683314989, 0.0038871367161771898, -0.10891614598123801, 0.00043800911235750134, -0.043289297526922212, 0.012593343881888895, -0.0042686636670869688, -0.008833188472774969, -0.024141666831206311, -0.03923653338217388, -0.25435751708422283, 0.0, 0.13106581900761921, 0.22441332039311174, -0.094768447018961463, 0.0024812204443016074, 0.036286268392045858, 0.0056698536823630895, -0.010705526315732189, 0.082044918512892334, 0.0010532751265284197, 0.015101105715477795, 0.090653505450224631, 0.27613653682211553, 0.17494988738073455, 0.30956821269851931, 0.034540476362705901, 0.0, -0.034540476362701966, -0.30956821269851847, -0.17494988738073411, -0.27613653682211575, -0.090653505450227129, -0.015101105715478274, -0.0010532751265287738, -0.082044918512892334, 0.010705526315732109, -0.0056698536823632534, -0.036286268392045982, -0.0024812204443015839, 0.094768447018961921, -0.22441332039311199, -0.13106581900761924, -0.00058234446045052997, 0.25435751708422299, 0.039236533382173068, 0.024141666831206714, 0.0088331884727747174, 0.0042686636670865837, -0.012593343881888968, 0.04328929752692242, -0.00043800911235742604, 0.1089161459812379, -0.0038871367161778295, -0.081329968331500163, 0.22820944406317803, 0.40312000272499021, 0.26346017480936107, 0.86827138009747229, -0.24947885513851314, -1.2621857571853632, 0.32019695139960752, -0.19453030659557399, -0.058157249768416672, 0.12268118169149329, -0.035289563063634503, -0.081759178445920649, -0.011310849850443772, -0.042299889130268831, -0.030200114248426623, 0.0013507040628626303, 0.083744105300802674, 0.040506406338050895, 0.12518231680881103, -0.084338425974375644, 0.046174234082696289, 0.08081252690949875, 0.16881304090125832, 0.022857667990750261, 0.04946368453866589, 0.014174493080162815, -0.039465599946438334, -0.053283308768024965, 0.044690918209100129, 0.0057315027931725314, 0.1719749232535624, 0.26227456167613394, 0.3513559741645329, 0.33370031357259339, 0.48673882008850966, -0.27922666018549408, -0.90191957381578058, 0.63637312336837637, -0.060521107576467635, -0.014154913289577215, -0.18647295463827063, -0.16889959178925743, 0.041652272773958374, 0.075935043112064518, -0.020085011074200423, -0.0070430807013025249, -0.02791945026439252, -0.0079342423803949891, 0.021933293271094115, 0.15878906772803389, -0.02059616095805995, -0.0052112044634673969, 0.008021591507499164, 0.05353030082235833, 0.047465192278390397, 0.060698557392036064, -0.0097039926999963107, -0.030739864021722747, -0.033027304906486449, 0.008421474591235165, -0.03036040119684083, 0.060148519255615165, -0.0024573680892551967, 0.23095349816725866, 0.32853605615928261, 0.38370084094404566, 0.13538196037364647, 0.01331021408876858, 0.18988737165776171, -0.62390518555369734, 0.080825286420916714, 0.0077417273670609497, -0.22223052073714233, 0.074122351214929452, 0.047542790117626306, -0.0049261433754249724, 0.027582495505149737, -0.039806904605142586, -0.042526562044161428, 0.0072474243428622999, 0.069113723063988594, -0.015567334119352927, 0.055909188302305984, 0.048063119818621922, -0.0027327273075535455, 0.045851102565308353, 0.069983120002795093, 0.026200884444945973, 0.0087050725477759057, -0.0037727340439829347, -0.012901798319361227, -0.033053795814988754, 0.013156170331620811, -0.015533054933596691, 0.14807112835842184, 0.018761372187400604, 0.080806137493454139, 0.13950623949894433, 0.10703484463450816, -0.26278941929435246, -0.36774772058649907, 0.59625762091850687, -0.36653426739302131, -0.22708969966074771, 0.036289590762181079, 0.069451504639383266, 0.0045810353743422905, 0.014518052118829408, -0.0096918161659651156, -0.0042367342426148941, 0.0017729650965627938, -0.020526538310240098, -0.0097893156767009607, 0.095086485134992974, 0.062351999721190751, -0.01672722282524514, 0.065199506553837216, -0.012727342518659639, 0.021222695138497675, 0.025123508323013449, -0.0086563728711387469, -0.048279776827017555, -0.025594278576058595, 0.04363252969520693, 0.00089194024953267417, -0.021159112170607019, 0.0057838899052937813, 0.042160123131606046, -0.16398523681965352, 0.15410637679425865, 0.11496619447060411, -0.23773808023122042, 0.30878981646904247, -0.091953539825333053, -0.15112210885707561, -0.058067983872415838, -0.016396390506166002, 0.039005803210705077, 0.023932611476630637, -0.006684196401155907, -0.0027208109883995707, 0.0054340236987462662, -0.016167541663812044, 0.0023809918522598732, 0.034708386400909043, -0.0072963544312100569, 0.023224778901069786, 0.10422569904352962, -0.049189051179719279, 0.023151697315084544, 0.0013352981567299367, 0.0065098329229194736, 0.02834601701232067, 0.0067710516924982707, -0.019457415538283694, -0.024637199092487305, 0.019801411975277225, 0.0047456570119127489, -0.015775170314137797, -0.03906718120738624, -0.070536723266456214, 0.063810892086946833, 0.18571376182250354, -0.046218458927843417, 0.055947445070994993, 0.1227003939427266, -0.037984234337547038, -0.12185282737260873, 0.01739900427309727, 0.032960560091392817, 0.056759870222018227, -0.018256051683799891, -0.019427096259341584, 0.010405151723131587, 0.023046337829044038, -0.0032289712715403299, -0.013552286601009622, 0.059732269364482463, 0.026773628633603028, -0.070600771528734632, 0.008835607182220432, -0.096772033742842878, -0.043908100663758234, 0.0023099396961402566, 0.0026341276434262424, 0.0036451640963978101, 0.004808443274984581, 0.020866890117519587, 0.0038698355762962896, -0.019862790828204292, -0.026548451118935872, 0.0080019035626017337, -0.0706384180648158, 0.069515034511643051, 0.070745415327885364, 0.15128619138644453, 0.083803307026608292, 0.046016401957029593, -0.21064351401911435, -0.10796975372596025, -0.034201557920816583, 0.01431321541581594, -0.012363627500514576, -0.010919865739753575, 0.017870360905994497, 0.017396471253638378, -0.02007942542731345, 0.01046579838246435, 0.032566171451921762, -0.05799439311344054, -0.056177295075322847, 0.034333260533212451, -0.130338354535672, 0.12409557570816747, 0.027546636940189641, -0.032798990212655137, 0.083077034868877978, 0.026168992315517999, -0.018046490267575984, 0.005207681729782772, 0.016259252101333162, -0.009045316783825131, -0.0036967486190426836, -0.028592812647173869, -0.0017423598025251908, 0.043534834876013409, 0.12793975070954686, -0.030070570566209584, 0.068857003169531444, -0.017643635220692303, 0.015058032290063167, -0.032968975479440069, -0.0032509456626426633, 0.015788972597383943, 0.019251438395354474, -0.0090248536114061126, -0.015272751179096435, -0.0082992125422014836, 0.059575532325244533, -0.021134287621881149, -0.075932042745803632, 0.10041080102702246, 0.19730813245926007, -0.094203305677599283, 0.12177128356890216, -0.098130362913164085, -0.0086063527817301141, -0.014980171338571052, -0.091992925322100572, 0.17587869380621152, 0.092173327221095724, 0.021897165586045479, 0.0060375152678496429, -0.02386519187296254, -0.012395399307185896, -0.022849248448590303, -0.048321020114327692, -0.0056779923265118269, -0.084303725772385735, 0.1437989861779114, 0.017114978073907855, -0.023674926554513819, -0.014433128838537597, 0.012240235365543381, -0.066419574069182918, -0.016196236751474646, -0.0049338006978182185, -0.0084001340729884851, 0.0022066601859378697, 0.067545520465919467, -0.1431573605324398, -0.11335071558105927, 0.19200701617075636, 0.047005347129143109, -0.18040165272695829, 0.10462001130261284, -0.2952063874323646, 0.45504702044764878, 0.91968716746889512, 0.075629282019523555, -0.17521945191954877, -0.14741145606308895, 0.15842957449053352, 0.033316423902485841, -0.046539635523190549, -0.029239764799856394, 0.028256857448446561, 0.0047468618190423398, -0.025217898898983061, -0.034399558837173737, 0.11937846922953181, 0.050544258155460854, 0.1394578516494776, -0.10661165850403005, -0.027700064466883865, -0.061719692477810832, -0.00076880260958129979, -0.036686593450547596, 0.020834261928534131, 0.042596098823283357, -0.0052374024484263546, -0.17900936499027453, -0.055817128538076279, 0.1556206112582631, -0.19930768818407885, 0.17374602795438115, 1.0450941798657116, 0.011417685121456564, 0.77470195486186011, 0.069649876974948843, -0.36754664039982721, 0.64326753390430735, -0.24917063867041553, -0.039540586335773169, 0.14567847379973992, 0.065981740018920196, -0.055644084876628218, -0.07712597645572139, -0.00073674462317611055, 0.015701976416950342, -0.032298308999268784, 0.060154323470106401, -0.12792055300624763, 0.058681894939637193, -0.022172258797336572, 0.105971385474807, -0.037749743592242278, -0.053672308552617946, -0.12615835751184992, -0.059356927461923663, 0.012406017329547145, 0.068036947599653702, 0.017107991149299284, -0.041008154934057878, -0.13447215443394772, -0.26816260026693878, 0.18368617361305564, 0.46894237369717728, -0.62872636200456533, 0.60686918965331993, -0.15113295529591578, 0.036743730082780514, 1.463608458760923, 0.12904495334293731, -0.074417004563971351, -0.62003762386212891, 0.017408469796284774, 0.1272883333159911, -0.094937931062917147, -0.057791633379354237, 0.037154193600070003, 0.071495661604358593, -0.010724993842566222, -0.14811752790953939, 0.067869387966970118, -0.094974334151300438, 0.31269363662275046, 0.01610138969469304, 0.011271546890921311, -0.0416046739825933, -0.072156922858987255, -0.050238396740841143, -0.013143422355014638, 0.17181320075266959, -0.00078645201341033847, -0.2587885502662679, 0.0028564673365731054, 0.26469201284371935, -0.12782476119556443, -0.59904899563122194, 1.130668752319608, 0.4201199738298067, 1.5043263157657745, 1.0547694551235969, -1.1141651843864939, 0.90050578840564954, -0.50203282214727829, -0.35825626720186354, -0.34045699686317654, 0.034526357222664658, 0.16469615783949973, -0.10773227995476188, -0.020438609938140839, 0.15231382612170388, 0.0040452326400209297, -0.067443262257115694, -0.120243611846639, 0.072438990225412794, -0.27284169211913811, 0.31416612358708496, 0.23288712244734694, 0.17097210848547523, -0.068392282535087695, -0.1884297381053561, 0.026792869524674363, 0.068621242214500999, -0.028891896132398506, 0.01346687181869554, 0.18273076418691644, -0.039027219909814823, -0.68303147161529132, 0.28364033101911773, 0.20446853801739462, 1.3830149751777017, 1.3682011726001495, 1.0314907737559074, -0.55787436167296611, -0.99998707389668362, 0.11752989424299397, -0.85317721061416762, -0.39240115086507799, 0.26946209593128989, 0.13057930804766765, -0.0048298736467919578, -0.0066491170121302217, -0.023829771073630532, -0.072899207479286424, -0.29873174456544577, 0.027468417557455698, -0.26817287178186705, 0.21489820671404794, 0.048277840380711166, 0.23588030048916517, -0.0035092112107956196, -0.076854124253010928, 0.057907844320372041, -0.011517786678353752, 0.045146091846170348, -0.2624959582084973, -0.26585764990704652, 0.54510315877084026, 0.23155959034339049, -0.44086751164178861, -0.68911282851752897, 0.75019268688655205, 1.6899938281650098, 1.2795505844643045, 1.1758121586434311, -0.068510051090992494, 0.24494470763482898, -0.13955938857309558, 0.26258387187077409, -0.31004041285864437, -0.060946718066343622, 0.20150153854805294, -0.21163882649779717, -0.23457709892354675, 0.14508578389537688, -0.22705801052414679, -0.2857183558836735, -0.19596817846267664, 0.13015393203001066, -0.32999646269142935, -0.19528135326362211, 0.36806933922229168, 0.044374683774465004, -0.17789090203786717, -0.13954351571969323, 0.24064979253244634, 0.047498243759330878, -0.33137912963317673, 0.19951473048424839, 0.64027404819684597, 0.25055297311154973, 0.13414323846201037, 1.4561178571660989, 0.50660029824831798, 0.80695903119669876], "height": 32, "width": 32, "top": {"real": [17750.107020847583, 6210.8656159662787, 10017.081922566327, 3457.5995074393513, 265.850218137708, -70.207684810343054, -8.882891147089472, 24.589756503786479, -11.140592103834141, -1.46746599378154, -0.34121813437428317, 1.0812077419156148, 1.7163290532419633, -4.5666146304635689, -2.6846394014203829, -2.2738643666223468, 1.917575640981823, -2.2738643666223641, -2.6846394014204122, -4.5666146304635395, 1.7163290532419744, 1.0812077419156028, -0.34121813437427356, -1.4674659937815784, -11.140592103834141, 24.589756503786372, -8.8828911470896639, -70.20768481034348, 265.8502181377076, 3457.5995074393486, 10017.081922566325, 6210.8656159662851, 23430.31298691556, -4993.9863865787011, -867.92707841112326, 991.9702295167051, 152.49743471969379, -30.096228916888641, 45.849661798659078, -31.467588946689009, 16.960718546454469, 4.334366206560186, -0.42583907131000093, 0.47860527443285728, -1.8738744001784808, 0.5336707597630499, -3.8841941455247579, -0.75407824565303971, 0.55147195392985549, -0.79345242739339283, -5.9026769793174889, -1.384293215600769, -4.1447942145798233, -2.9130522743117342, -0.87120822186396762, -1.7340023689981476, 8.0221119849442548, -9.1034799758133218, 67.038874839272566, 44.112472832699858, 441.79945796279685, 3245.5044122716786, 3861.5097933424754, -5655.7687421695537, -15889.920855591003, -2792.0170209163471, 3795.2577126849956, 553.88440852995757, -85.905664770254234, 195.26564512659746, 24.791859336013662, 19.637521614531401, -6.1680089153590449, -5.0872002952886746, -0.21502707506361318, 1.4832779566036471, 1.4444541156654906, -2.278921340791467, 0.30255454236990775, -2.3473646939882187, -0.02820677859184775, 1.2126049622480428, -0.78557937342030726, -2.9245439997897638, 1.236962081731878, 1.1827041713801927, -1.6114665304853286, -3.5864367039316236, -14.698165954413065, 20.29282209316159, 43.732891706759197, 111.68572777077691, -209.48016621032312, -187.12585183373633, 2586.3148393820152, 1688.0815183011628, 4748.2203910254093, 1775.7319020900284, 965.53459113591498, -592.89741380746352, 99.787886354888371, 95.459765036004825, 59.296635518443523, -7.6987106331430111, -0.0036180413118668542, -0.43290786252066471, -1.598202682681902, 0.11359872229615781, -0.47654646487314006, 0.052920121324431191, -1.1931569571302629, 1.6263047283546588, 1.1208282513608689, -1.916766911729648, -1.3790558562903064, -0.15528235781115707, 0.33989539819890602, -1.1170639390757935, -0.54019671791116586, 2.4039660385463359, 7.3342674422729397, -18.965458306286095, 0.037731231015075362, 5.7888823722245277, -226.40133474887324, -362.07505408372458, 1068.1182163210274, 1839.5542246985658, 1536.2207931138801, 1719.2247320855465, 351.77395499971544, -218.00810259302051, -154.06814929171503, 76.932404651951941, 11.83330919947551, 3.0799843602247936, 2.1514657945922595, -2.1600173905506583, -0.81329272919310069, -0.057640935991259419, 0.81743781787660708, 0.47007834357539929, 0.82578474649026179, -0.485121980563267, -0.44118347877967812, 0.85372587191033056, -0.96505091801449949, -2.5001329354507269, -0.28227610008090631, 1.5082121759974054, 0.73323799037869442, 0.47326064521443867, -2.2071915479661444, 2.1017967421924912, -14.788373732218277, -10.376064867674437, -110.67917899227207, -400.67251265606825, 13.375377575225066, 2228.271084047331, 1272.0006323499422, 485.30359922269918, -150.18264185504094, -215.33992676901764, -8.8694467345951651, 40.216044199991913, 0.62739683840663496, -1.763160286154926, 0.88761506214793773, 2.2829883187502253, -0.37542737915458396, -0.082924323502338942, -0.2690018095258665, 0.066494953017985289, -1.2937095742683771, 0.90148019848405447, 1.049315066873844, -1.5500155662664761, -1.5096304544124948, -0.76725462527686761, -0.45464639460382006, 0.03503878860161394, 0.85393872935961013, 0.89172763012310696, -0.12413241898971583, -7.4057881467564117, -5.5362761946156125, 1.231534306746803, 18.635135255424384, 26.03667534143711, -87.772888824715437, -225.72012452523001, 395.63478219787083, 378.71701677039351, 36.703056312438811, -91.050394397947159, -3.4611377608751717, 16.691588629055683, -0.030826600791664327, -3.1969308796412692, 1.3816292236713215, 0.42488100600164197, 0.084713763632908196, -0.28535803119354425, 0.0058483120842748731, -0.72249565507011926, -0.80262162213105104, -0.11947358836291604, 0.14251583505573939, -0.26639764768858409, -0.59599833623749066, -0.56289480519068613, -0.092201911820288446, 0.77223819072116529, 0.55522491064190738, -0.14411590791637013, -2.1806910872492855, 1.0588352659849944, -1.722617263430356, -9.0167440767821265, -38.483896322518888, -22.599080819691828, 25.541139705127691, 375.57983717352784, 181.47383294778024, 149.67885098073037, -4.1008782517976057, -3.7383475143657869, 18.721866312633942, -1.1602382001305473, -5.8391540939420112, -0.21088907624048864, -0.29870055099180226, 0.95331837446181378, 0.060424395643205529, -0.42858353450158043, -0.37036207729837234, -0.30369644506457261, -0.75652176347658984, -0.44545713631522388, 0.71326845215283508, 0.071761808928956311, -0.63829698193917794, -0.45235505563855871, -0.080159340308425753, -0.15881914095274483, 0.37773826228539636, -0.097086363313521495, -0.86706044290909523, -1.3342582973973045, -0.61792777020441481, 0.16957438507140327, 10.565905071599056, 15.380533375221102, 10.500239194747859, 19.996280010030237, 18.60272375866586, 4.0348314717803326, 11.168149094486143, 14.395513359675057, -3.576502394652771, -3.8760628092228431, 2.0358977627782506, -1.6580642648165547, -0.13166485139511078, 0.2591565726162201, -0.22701969228044258, -0.29312645623416966, 0.099969472199353857, -0.39101661164543228, -0.042546772814251566, 0.29433076927773894, -0.50935384874181677, 0.090487726861141621, -0.092143985882572388, -0.58253529440268437, -0.41671432281001702, 0.14644815319126417, 0.2723500443275419, -0.039709576626662156, -0.41013369223337515, 1.1756350920235048, 1.5259648698081887, -4.4516278662013118, -8.128003687892722, 9.6041080205516938, 20.813833475064627, 12.963050463991683, 7.8870012209429445, 15.407970089260955, 5.3783096889109112, -3.1350030536179672, 1.9101786820520572, 1.6649545288728531, -2.1421648847872561, 0.35230920085802159, 0.37729718445187704, 0.020823929394603979, 0.087139744957248078, -0.10976037032555666, -0.56986899401739111, -0.44020908152219312, 0.69190564661152409, 0.20725962387572397, 0.64042787368671816, 0.71867283099896739, 0.16183428074791173, -0.17223426808716463, -0.17676233483878773, -0.27594664738318686, 0.095238357444986099, 0.020726971935864241, -0.11463597101365795, -0.32333311610982368, 1.2888258236383847, 3.0237538834517612, -0.12189842989060286, -4.5002056479068653, -2.8307120360813536, 9.0325055742836575, -5.0836871456416608, -6.4226783361185662, -2.3832064029645541, 2.1204380507892151, -2.1797923249754283, -2.1316882770768921, 1.4364513793862836, 0.82847417311036753, -0.54705107713687473, -0.053118808001263999, 0.10349330090189141, -0.027586170457780668, -0.27866115184949369, -0.4744187891270259, 0.32835706009268834, 1.8712198771790323, 0.44937016780231559, 0.8488760221500451, 0.35191803530681381, 0.28758243475250972, -0.6426201464805843, -0.40597353100929789, -0.22244529364246871, -0.071869502235051647, 0.33021466122988641, 0.24942995069051274, -0.5214330526633183, -0.093662554700336673, 1.1233733739102922, 1.9003965613191238, 0.07120934753760759, -8.6549236119446178, -1.8427620371931031, -0.52295775466804406, 3.4092952720370122, -0.65003177967723336, -0.1840159964371442, 1.8831870902689825, 0.7983111628921199, -0.39925172982701851, 0.051205177403033819, 0.2598923527237304, -0.18824332097783142, 0.13750859145926242, 0.78226830313090512, -1.2572785001190825, 1.3355363328556911, 1.2220896356262305, 1.6491421999762639, 1.7622421170936717, 0.96487439834416744, 0.79128381470112286, -0.26979590260649117, -0.37236776211072153, -0.65318812250908376, -0.13360581679076858, -0.1817007191765827, 0.4244891020544192, 1.0695325895656689, -0.49200291489349485, -0.59959066580988751, -2.4610304070506381, -1.7528842523917616, 5.4092974592427554, 11.628502736704702, 13.318871722095572, 5.3844201289172418, 0.12839725172390623, -0.91462159985003533, -0.4207633568928546, 0.73289618436063231, 0.98164545606019249, -0.31879685258307294, -0.45467275635234927, 0.23929181220408463, 0.73553732103708702, -0.78050285180289647, -0.20614377250205779, -0.66147354811396541, 0.84722544756444751, 3.1542100241342745, -1.0454812204468338, 0.49112272834774079, 0.89780094097137775, -0.80686344960242362, 0.26166207514350009, 0.34234964401672252, -0.27361449647202374, 0.078400343257288022, 0.27130715748636108, -0.26706243773596255, 0.92879560872659372, -1.3686907450256593, 0.37153092475944227, -0.0077060915391855903, -2.1487270106054996, 8.2423115107991176, 10.211121947580189, 11.004080199445575, 5.512476255300478, 0.43541395104991965, 1.3138259234516578, 0.47697687525002369, -0.37437690637871951, 0.49170325146724819, 0.53092933204425685, 0.78977231856458541, 0.054935970034302541, 1.0907299238052364, -1.4537313504920895, 1.6637415256529431, 2.3271742206176285, 1.6752406948773604, 6.0227778178364675, -2.5693140331095292, -1.3449083811022362, -0.063540759326359386, 1.2007479971921078, 0.26947504329539196, -0.043317616642408706, -0.090092404474960294, -0.56149356452164179, -0.29757479536733583, -0.82531287850485402, 0.52880973840083989, -0.51042849628299192, 1.1866854822445434, 7.7130480762288167, 17.626109919920186, 26.29568713002228, 9.1514979514586194, -1.521929375229722, 0.85364359123771261, -0.365663824522519, -1.1590870007863963, 0.48082630002696519, 0.93059067445638155, 1.1024013035834523, 0.63841829574218301, 1.5659590764611497, 0.20674310541385973, 1.0081259505833966, 1.4865008399227626, -1.6031905208728288, 5.7718835709767413, 0.2720344299284404, 3.2411570780563994, -1.0481514144590243, 2.2338214812745694, 3.1628749936702945, 1.7743358086362808, -0.03099281849361625, -0.41442882712954171, -0.31459130661253104, -1.7323756021672925, 0.19363530105298493, 0.61123212270521721, 4.8260404786904152, 6.7814469674820135, 4.974801806376985, 19.935738411546794, 15.127019575257112, 16.951752765718286, 6.976320734749117, 0.83204582564536733, -0.22090351652873133, -0.48187393778382737, -0.72216259413318939, 0.68337514879437744, 1.4934027691778771, 1.3836806937153638, -0.089108362899698895, 0.57910533764344185, 3.1507795425198797, 1.9139554692796912, 4.1423990225960203, -5.0893580330573318, 4.6545320074577088, -1.3079026033800338, 1.2583901568403451, 1.3087920196200225, 1.8018391908724931, 1.3933980798910508, 0.67604933114803067, -0.49475104816844406, -1.4152366315362725, -0.64580662533466104, -1.4537653735214031, 3.1014323943375786, 7.6843087454063586, 10.909142678924193, 12.359496229531475, 15.280082473470735, 24.669023160454167, 12.739042274822818, 1.7204760023261643, 0.52929508548715176, 2.1482192005482723, -1.481161898887601, -0.79404079710432474, 0.46540881956838565, 0.92624711854277975, 1.0380549761479756, 2.3168267428989626, 1.5788387366050483, -0.83766970523004924, 4.7505720502223729, -2.6570294115495297, 6.7612131323955511, -2.6570294115495336, 4.7505720502223783, -0.83766970523005702, 1.5788387366050476, 2.3168267428989657, 1.0380549761479752, 0.9262471185427773, 0.46540881956838565, -0.79404079710432862, -1.4811618988876001, 2.148219200548279, 0.52929508548715154, 1.7204760023261518, 12.739042274822809, 24.669023160454188, 19.935738411547018, 12.35949622953156, 10.909142678924129, 7.6843087454063417, 3.101432394337563, -1.4537653735213987, -0.64580662533467093, -1.4152366315362839, -0.49475104816844562, 0.67604933114803401, 1.3933980798910552, 1.8018391908724987, 1.3087920196200247, 1.2583901568403484, -1.3079026033800301, 4.6545320074577061, -5.0893580330573203, 4.1423990225960088, 1.913955469279683, 3.1507795425198943, 0.57910533764344618, -0.089108362899694094, 1.3836806937153729, 1.4934027691778826, 0.68337514879437378, -0.72216259413318618, -0.4818739377838111, -0.22090351652873805, 0.83204582564534302, 6.976320734749093, 16.951752765718314, 15.127019575257133, 17.626109919920285, 4.9748018063769956, 6.7814469674819922, 4.8260404786903921, 0.61123212270520444, 0.19363530105297699, -1.7323756021672947, -0.31459130661253587, -0.41442882712954437, -0.030992818493609464, 1.7743358086362877, 3.162874993670298, 2.2338214812745694, -1.0481514144590143, 3.241157078056395, 0.27203442992843363, 5.7718835709767413, -1.6031905208728274, 1.4865008399227673, 1.0081259505833953, 0.20674310541386615, 1.5659590764611582, 0.63841829574219022, 1.1024013035834526, 0.93059067445638244, 0.48082630002696636, -1.1590870007863949, -0.36566382452250978, 0.85364359123770939, -1.5219293752297598, 9.1514979514585963, 26.295687130022237, 8.2423115107992349, 7.7130480762288673, 1.1866854822445243, -0.51042849628302267, 0.52880973840082446, -0.82531287850485058, -0.297574795367338, -0.56149356452165111, -0.090092404474959795, -0.043317616642408116, 0.26947504329539745, 1.2007479971921178, -0.063540759326354057, -1.3449083811022313, -2.5693140331095257, 6.0227778178364719, 1.675240694877361, 2.3271742206176271, 1.6637415256529449, -1.4537313504920832, 1.0907299238052377, 0.054935970034312817, 0.78977231856459063, 0.53092933204426229, 0.49170325146725052, -0.37437690637871607, 0.4769768752500283, 1.3138259234516545, 0.43541395104990577, 5.5124762553004887, 11.004080199445557, 10.211121947580168, 11.628502736704604, -2.1487270106054663, -0.0077060915391693741, 0.37153092475944555, -1.3686907450256616, 0.92879560872659006, -0.26706243773595856, 0.27130715748636525, 0.078400343257288438, -0.27361449647201985, 0.34234964401672396, 0.26166207514350365, -0.80686344960242218, 0.8978009409713853, 0.49112272834772974, -1.045481220446846, 3.1542100241342701, 0.84722544756444151, -0.66147354811395898, -0.20614377250205829, -0.7805028518028938, 0.73553732103708935, 0.23929181220408727, -0.45467275635235105, -0.31879685258307255, 0.98164545606019549, 0.73289618436063131, -0.42076335689285432, -0.91462159985003766, 0.12839725172388108, 5.3844201289172204, 13.318871722095585, -1.8427620371929223, 5.4092974592426515, -1.7528842523917609, -2.4610304070506088, -0.59959066580987819, -0.49200291489348996, 1.0695325895656664, 0.42448910205441354, -0.18170071917658262, -0.13360581679076522, -0.65318812250908243, -0.3723677621107227, -0.26979590260649017, 0.7912838147011273, 0.96487439834416677, 1.7622421170936722, 1.6491421999762705, 1.2220896356262196, 1.3355363328556904, -1.2572785001190749, 0.78226830313090379, 0.13750859145926628, -0.18824332097783478, 0.25989235272372874, 0.051205177403034013, -0.39925172982701423, 0.79831116289212645, 1.8831870902689678, -0.18401599643714045, -0.65003177967722925, 3.4092952720370082, -0.52295775466808114, -5.0836871456417914, -8.654923611944545, 0.071209347537571008, 1.9003965613191072, 1.1233733739103013, -0.093662554700343362, -0.52143305266331286, 0.24942995069051838, 0.33021466122988513, -0.071869502235049398, -0.22244529364246549, -0.40597353100929245, -0.64262014648058341, 0.28758243475251449, 0.35191803530680799, 0.84887602215004632, 0.44937016780231587, 1.8712198771790289, 0.32835706009269156, -0.47441878912702484, -0.27866115184949264, -0.027586170457779294, 0.1034933009018901, -0.053118808001266206, -0.54705107713687218, 0.82847417311037153, 1.4364513793862805, -2.1316882770768819, -2.1797923249754287, 2.1204380507892009, -2.3832064029645679, -6.4226783361184081, 7.8870012209433504, 9.0325055742834763, -2.8307120360814029, -4.5002056479068191, -0.12189842989059124, 3.0237538834517572, 1.2888258236383801, -0.32333311610982529, -0.11463597101365604, 0.020726971935865871, 0.09523835744498739, -0.27594664738318975, -0.17676233483878293, -0.17223426808716019, 0.16183428074791517, 0.71867283099897139, 0.64042787368672205, 0.20725962387572536, 0.69190564661152509, -0.44020908152219435, -0.56986899401739244, -0.10976037032555588, 0.087139744957248716, 0.020823929394600361, 0.37729718445187588, 0.35230920085802736, -2.142164884787245, 1.6649545288728365, 1.9101786820520659, -3.1350030536179658, 5.3783096889108455, 15.40797008926083, 18.60272375866586, 12.963050463991696, 20.813833475064644, 9.604108020551676, -8.1280036878927362, -4.4516278662013278, 1.5259648698081876, 1.1756350920235052, -0.41013369223337515, -0.039709576626662003, 0.27235004432754167, 0.14644815319126442, -0.41671432281001886, -0.58253529440268281, -0.092143985882572915, 0.090487726861142509, -0.50935384874181677, 0.29433076927773738, -0.042546772814252246, -0.39101661164543189, 0.09996947219935487, -0.29312645623417033, -0.22701969228044291, 0.2591565726162216, -0.13166485139511078, -1.6580642648165524, 2.0358977627782484, -3.8760628092228537, -3.5765023946527563, 14.395513359675084, 11.168149094486147, 4.034831471780354, 181.47383294778047, 19.996280010029963, 10.50023919474779, 15.38053337522109, 10.565905071599067, 0.16957438507140921, -0.6179277702044097, -1.3342582973973056, -0.86706044290909146, -0.097086363313522245, 0.37773826228539636, -0.1588191409527461, -0.080159340308420923, -0.45235505563855616, -0.63829698193917661, 0.071761808928958337, 0.71326845215283419, -0.44545713631521988, -0.75652176347658784, -0.30369644506457882, -0.37036207729837373, -0.42858353450157866, 0.060424395643203697, 0.953318374461814, -0.29870055099180354, -0.21088907624048941, -5.8391540939419864, -1.1602382001305538, 18.721866312633882, -3.7383475143657954, -4.100878251797706, 149.67885098073012, 395.63478219787089, 375.57983717352744, 25.541139705127598, -22.599080819691835, -38.483896322518888, -9.0167440767821709, -1.7226172634303247, 1.0588352659849967, -2.1806910872492873, -0.14411590791637696, 0.55522491064190693, 0.77223819072116739, -0.092201911820284366, -0.56289480519067914, -0.59599833623749254, -0.26639764768858487, 0.14251583505573989, -0.11947358836291141, -0.80262162213105359, -0.72249565507012325, 0.0058483120842701027, -0.28535803119354936, 0.084713763632907418, 0.42488100600164375, 1.3816292236713219, -3.1969308796412634, -0.030826600791668796, 16.691588629055648, -3.4611377608751566, -91.050394397947187, 36.703056312438633, 378.71701677039351, 1272.0006323499422, -225.72012452523026, -87.772888824715139, 26.036675341437149, 18.635135255424501, 1.2315343067468421, -5.536276194615616, -7.4057881467564011, -0.12413241898971436, 0.89172763012310496, 0.8539387293596038, 0.035038788601613982, -0.4546463946038164, -0.76725462527685828, -1.509630454412483, -1.550015566266479, 1.0493150668738473, 0.90148019848405436, -1.2937095742683813, 0.066494953017976297, -0.26900180952586789, -0.082924323502345257, -0.37542737915458746, 2.2829883187502267, 0.88761506214793962, -1.7631602861549227, 0.62739683840662275, 40.216044199991877, -8.8694467345952006, -215.33992676901772, -150.18264185504114, 485.3035992226977, 1536.2207931138814, 2228.2710840473319, 13.3753775752247, -400.67251265606865, -110.679178992272, -10.376064867674508, -14.788373732218197, 2.1017967421924983, -2.207191547966143, 0.47326064521441386, 0.73323799037869852, 1.5082121759973919, -0.28227610008090809, -2.5001329354507282, -0.96505091801449672, 0.8537258719103169, -0.44118347877968372, -0.48512198056327205, 0.82578474649025857, 0.47007834357539341, 0.81743781787659597, -0.057640935991271409, -0.81329272919311113, -2.1600173905506721, 2.1514657945922622, 3.0799843602248034, 11.833309199475522, 76.932404651952027, -154.06814929171483, -218.00810259302057, 351.77395499971459, 1719.2247320855445, 4748.2203910254084, 1839.554224698564, 1068.1182163210278, -362.07505408372486, -226.40133474887313, 5.7888823722244789, 0.037731231015098787, -18.965458306285971, 7.3342674422729388, 2.4039660385463657, -0.54019671791118873, -1.1170639390757879, 0.33989539819890108, -0.15528235781113153, -1.3790558562903272, -1.9167669117296613, 1.1208282513608707, 1.6263047283546224, -1.193156957130264, 0.052920121324427458, -0.4765464648731435, 0.11359872229612604, -1.5982026826818876, -0.43290786252068791, -0.0036180413118654109, -7.6987106331430244, 59.296635518443559, 95.459765036004427, 99.787886354888386, -592.89741380746432, 965.53459113591339, 1775.7319020900306, -15889.920855591006, 1688.0815183011607, 2586.3148393820165, -187.12585183373636, -209.48016621032366, 111.68572777077674, 43.732891706759332, 20.292822093161472, -14.698165954413049, -3.5864367039316574, -1.611466530485326, 1.1827041713801545, 1.2369620817318689, -2.9245439997897797, -0.78557937342029793, 1.2126049622479607, -0.028206778591846705, -2.3473646939882631, 0.30255454236988177, -2.278921340791416, 1.4444541156654738, 1.483277956603626, -0.21502707506361871, -5.0872002952886604, -6.168008915359052, 19.637521614531632, 24.791859336013527, 195.26564512659732, -85.905664770254006, 553.88440852995757, 3795.2577126849942, -2792.0170209163462, 23430.312986915553, -5655.7687421695537, 3861.5097933424781, 3245.5044122716772, 441.79945796279628, 44.112472832700512, 67.038874839272665, -9.1034799758128742, 8.0221119849442406, -1.7340023689979776, -0.87120822186400182, -2.9130522743116929, -4.1447942145798446, -1.3842932156007377, -5.9026769793175413, -0.7934524273933764, 0.55147195392985315, -0.75407824565312243, -3.8841941455247726, 0.53367075976302614, -1.8738744001784735, 0.47860527443281381, -0.42583907130996707, 4.3343662065600954, 16.960718546454476, -31.467588946689279, 45.849661798659248, -30.096228916889014, 152.4974347196931, 991.97022951670215, -867.92707841112428, -4993.9863865787029], "imag": [0.0, -2277.9356791272003, -4760.5440393641002, -3362.7502157108247, -452.6326365977277, 12.902525613472081, -66.324591493039264, 21.395810280639775, 12.049924797684376, -6.4322319301924828, -2.6401787430633603, -2.8941924141450355, -1.0996569736184965, -2.1837600734887777, 0.87308165169681873, -0.4143473704962265, 0.0, 0.41434737049617953, -0.87308165169672458, 2.1837600734887985, 1.0996569736184816, 2.8941924141450213, 2.6401787430632839, 6.4322319301924944, -12.049924797684376, -21.395810280639751, 66.32459149303935, -12.902525613472182, 452.63263659772764, 3362.7502157108197, 4760.5440393641011, 2277.9356791272016, -19170.834011440937, -3837.2504381898657, -1562.2865240696121, -2188.2624437144, -79.985389317630222, -65.73387671644744, -129.03232713044309, -21.574731283989859, 19.219741943874205, -1.3770831994436832, -4.6285618656089973, 1.9356332468609161, 1.914358953204174, -0.39274625271235863, -2.8755632420164114, 1.3910769799127469, 2.1983982122300691, -0.93402216187723952, 1.5955119590990243, 2.5332827335358816, 2.5722659267438073, -2.1433748844126024, 4.7051607105169868, 6.0715674792926295, -11.686157623491814, 7.736622407403881, 65.513717323045199, -68.939947660481394, 105.08267177765576, -524.55810593663, 266.59769699529215, -6565.2013915603111, -12998.804313286138, -7140.8743305075541, -1281.4742181751476, 387.93265499317204, 232.0789193763446, -67.213502175129548, -82.499903393484686, 23.742310304940581, 13.167070698799225, -1.2601921779485123, 0.22176027695648487, -0.82869028871129857, 0.81638586337482588, 0.030361957750051641, -1.8114765667849664, -0.33462283171345614, -1.4063404110660631, 1.8330278968089115, -0.19923279402973898, 2.6325944160953934, 0.74767454410312451, 0.33273215463055067, 0.1242120122414053, 0.13350548988021607, -6.7517210150420688, -24.893726268864828, 68.764375920932309, 203.58844824671789, -52.443377241039173, 589.84188198577237, 814.38538391702434, -3077.5993672243876, -9988.2725309741327, -5000.8757444384873, -213.86760970710961, -153.72085790515706, 376.50689706328353, 10.499004391497454, -22.259718007212538, -1.0587560944123571, 1.3367261976572533, -1.845627367813951, -0.50817475490747221, 2.6646257572641145, 0.72663987403826902, -1.4553261209412862, -1.7486114908592469, -2.2393579162674944, 1.7872556824974239, -0.4779279337995983, 0.90990468751900189, 0.56850457149088529, -0.042260514128558184, -2.0950938638350283, 0.37842412015856491, 2.7868839636562086, -7.1796038797667068, -2.6532766677526052, 42.569555354666804, 86.618323256686423, 262.60583525697274, -570.34935164465662, 953.3853188584327, -2608.4519239039555, 423.76919790180068, -777.49072200787271, -730.15551768721184, 267.77827954485849, 48.782690015655945, -52.084914641107339, -0.26732768536918228, 18.791248861451912, 0.034376983736590996, -4.7733525107569852, 0.2450889317389604, 0.69551673309505335, 0.74689297610787508, 0.36254455317814038, -0.082864627703290866, -0.11088180406499534, -1.9145243520823481, 0.63809937787576865, -0.47609558693404908, 1.1704253870693357, 0.1035348526676573, -0.98268640942924379, -0.66403014974353547, 1.4462870038602533, 3.6812627646537175, -8.6847068298461885, -1.7026644231740631, 110.68919188818327, 26.998515460375977, -65.421023262373453, -744.09540667092062, -46.729307478653496, -1526.2181503116453, -735.50774046161519, 282.18880697804167, -182.37864683063907, -54.052681314235201, 39.603849315110104, 10.295701682078779, 2.359337802307917, -0.63461911007383953, -1.7124190510555728, -0.21593130161202514, 0.76755040332111413, 1.2882353738829533, 0.44968314290067118, 0.25989055470659483, -0.66713893962057369, 0.13682839189736165, -0.36883118795348507, 0.91230383136371929, -0.46996446240256329, 0.30219131214854422, -0.19558932994062075, 0.012615763849470061, 1.762420772813289, 1.9045345605049635, -3.7790359077733253, -11.964107143689581, 4.5083476182968525, 61.96781696120042, -254.89688572081204, 140.68826246910922, -45.053807917761794, 314.74785574475101, -8.8001261891015723, -360.31891091191073, -57.025448777424479, 44.579795546563595, -19.359200628613657, 3.6862817789376683, 8.9206630611283089, 0.18896973496668307, -1.0227323524081069, -0.33838743748909134, 0.43833208591156991, 0.0074294169071561673, 0.50446476014305897, 0.1890893708139402, 0.65133332546862077, -0.77483290182744535, -0.30779007494077709, -0.80427129683389309, 0.26011219704759059, 0.23461588343644721, -0.056507066939534729, -0.44513357712322738, 0.64667209976975049, 1.5545017016282721, -1.5250850436867627, -9.5917712473092696, 13.475211488788412, 28.837963587037802, -21.930976284520067, -337.61540934331555, -197.27075321520147, -65.634374404237917, -45.716174186409042, 38.688397244662028, -10.636065931319841, -36.620593610799475, 11.815798616251305, 9.0326984830007095, -3.0325028906240825, -0.075862266735019127, 0.19104942819406223, 0.073726425569811863, 0.18311714867084192, 0.63036999033226249, -0.098626184449280729, 0.095619359707605045, 0.13744024889930673, -0.097089152898782338, -0.81683568275166918, 0.54386217024143169, 0.041501479859297266, 0.43031399471588661, 0.25470104821283102, 0.17326636360277617, 0.46079094226119127, -0.16530865667454481, -0.86391702025516282, -4.9611285532463629, -12.372184270457062, 11.516126179313906, 3.2997425925449804, 2.0570987009733872, 24.878800155519915, 44.041788084316849, 28.446155418037641, -32.190550839656126, -17.692027714058376, 11.789513877445387, 1.9317197634824401, -3.4507560855810171, 0.36626836712779354, 0.48074766055651602, 0.18044316667269442, -0.28240974426973131, -0.16613612027343372, 0.029095718259237995, 0.24450075339721422, -0.091330331747513635, 0.097634295479075664, -0.36806371804963284, 0.16614591312540511, -0.77395352504544712, -0.3264657443238585, 0.015061212014132833, 0.29085100346092985, 0.047770712409502418, 0.14922819541222396, -0.39792121836056477, -0.1921281774085053, 0.83895281997413806, -1.5703737430868945, -8.4367427775736452, 5.6601916863792336, -5.1510032561702124, -22.050605310259861, -1.9854594697574779, -7.5311386138630718, 7.4148341093741337, 8.0952123464619365, -4.3629732153959058, -0.87617222540110651, 1.0539667118389069, -0.69495683349647086, -0.53597221218340763, 0.21612918483653182, 0.16753374785242167, -0.14587335963051168, 0.2984129896925935, 0.75720231383362635, 1.2725586605629424, -0.23788459440434945, -0.43858849762191893, -0.79801858694486538, -0.41846754429723099, -0.46161406526582383, 0.58294801786464678, -0.078939183973068427, 0.31479155143425391, 0.31425797573231379, -0.084400039832661436, -0.69288180199641103, -0.21778449617622889, -0.19533791786522492, -0.22665765093841067, -0.31956792613405932, 6.3352095159571435, 13.304182061875538, 9.0685889178215753, 13.820343051841526, -2.9904131431626517, -6.4644843028741459, 1.4950174056035006, 0.22841081726546483, -1.0443697855595202, -0.36648156701751267, 0.48825453192442753, 0.32511669967392476, -0.74952192547288132, -0.32406742573949188, -0.14589390394899102, 0.81615985313544603, 0.21110858701983537, -0.62135646441400272, -0.27503339195756299, 0.23916839371037824, -1.0440547633891395, -0.40792084439497517, 0.55610134656922072, 0.37457806876122546, 0.17778944632276653, -0.069642667350154328, -0.39526560004564598, 0.69822150614317735, 0.740778974977921, -0.31290252683747921, -2.0096273906801638, -0.75165898775917361, -0.15987777595408992, -2.5516179078608778, -8.9643314564796608, -15.134863386021781, -2.1073345817546003, 0.61887776540407591, -3.0206322635570779, -0.13950893398737912, 0.63280527166495781, -0.16318694006603662, 0.06410706438489891, 0.11411070867346804, -0.2886162817684455, -0.35613651800395313, 0.12924440993745664, 0.38077834891929796, 0.82374133978448782, 0.42592408743381815, -1.4993887570975311, 1.2113263922466315, -0.61651842130949264, -0.92820589700907985, 1.2123284995709924, -0.37394823077908607, -0.062695571319925397, 0.28532586796592635, -0.016166881608109255, -1.1132083022635739, 0.86546596809253507, 2.0760623026361933, 0.51322827606545562, -2.2491343600113889, -2.0374388890600263, 1.1231676638159473, 0.31214242438772172, 2.2815521755579042, -5.3082712246609329, -6.7280927719717081, 0.71404381047788856, 1.0348891792697787, -0.062580928735681385, 0.11553928672311624, 0.19710411955257187, -0.22253376417909151, -0.05143415191355815, -0.61738709055352659, -0.26515618204121805, 1.3879170617746586, 1.9147895569711311, -2.7981144693643607, 1.6351053618238791, 1.2876141106871726, -0.53839815046157202, -0.81616813855627257, -0.55773229035800009, -0.16310476776122179, -1.4828287822897712, 0.19857441865721279, -0.22253902629935005, 0.76149089771667944, 0.38423492006819204, 0.13633825788919049, -0.40617531895308634, -1.9006670978622686, -5.6055295794952666, -3.5201069577585091, -0.70565394755327504, -4.8233879396582013, -3.7118525914264513, 0.87639764763224848, -3.9705679716456896, -0.3066516936670704, 1.2925955094882555, 0.98057929368147423, -0.5185509231518588, 0.068504647941653091, -0.50802141302695303, -0.65025043431383311, 1.6393007306999561, -0.046634622615140439, -0.42095485749155304, 2.8628962346767608, -0.87664183209871016, -0.061380249620325719, -0.67583720185830587, -2.165804182360429, -2.2334105499018988, -1.7315960703588726, 0.023607096501577673, -0.72578349898044647, 0.49340703388266716, -0.17688316963519096, 0.91231104952944475, 1.0401382704665323, 0.40638239361664558, -3.5528586670065754, -3.2389924588328527, -3.336337544628424, -3.3053285670589143, 0.42529364953930032, 1.2623512061316915, -7.9337267372836493, -1.0910503490681764, 0.30591237262721482, 0.79049013658839029, 0.15779582936744363, 0.35530534658354934, -1.0136463777621887, -0.43596379336607172, 1.3766560550226186, 1.2643786263280588, 0.081112249920068616, 0.30101965208538256, -2.9649644331404845, 3.940601481283172, 1.2809925361642973, -2.3740821954043603, -1.8568139214134618, -2.2875531209700912, -2.0068530505793203, -1.6161905886738603, -0.069970559948539499, -0.68452644609555957, 1.1180256373411306, 1.0386505011587546, -0.45802414484767806, -1.8827293053017495, -1.1452872829873149, -9.8282380345909921, -4.8375314158562777, 0.035534088492687292, 5.8735645683280717, -7.2148282372822923, -1.9024855757814658, -3.6729219824305321, -0.04721742712852893, 0.80045523566507781, 0.91856151213872683, 0.18365173124028911, 1.0527130168554166, 0.35231243394437906, -0.96832866520995176, 0.38866324603453256, 1.1024459216780036, -1.6264163010988006, 5.9086248051519128, 1.1522588148293589, -4.0123769411888297, -1.3409560614230069, -2.2450482885496141, -1.484164394238348, 0.58569229342098317, 0.035646451001070931, -1.3588202093923047, 0.006860270440306241, -0.84539036438792836, 0.31580363771161246, -0.13161779536446233, -0.34549511895795371, -1.1291296924180168, -2.1947930228924113, -14.643424663744323, 0.0, 7.8456512467946364, 11.843681310787776, -4.1545820919682566, 0.098834485797376734, 1.2191537903053737, 0.14782839419733967, -0.21707569483499198, 1.3287726303022269, 0.012891904979339022, 0.146292284007916, 0.70147269041246085, 1.7613861146868823, 0.97884915683286033, 1.5860078469473597, 0.15814907094033309, 0.0, -0.158149070940315, -1.5860078469473551, -0.978849156832858, -1.7613861146868832, -0.70147269041248062, -0.14629228400792066, -0.012891904979343359, -1.3287726303022269, 0.21707569483499028, -0.14782839419734384, -1.2191537903053777, -0.098834485797375804, 4.1545820919682752, -11.843681310787789, -7.8456512467946329, -0.035534088492520481, 14.643424663744339, 2.194793022892366, 1.1291296924180338, 0.34549511895794383, 0.13161779536445045, -0.31580363771161418, 0.84539036438793247, -0.0068602704403050632, 1.3588202093923036, -0.035646451001076773, -0.58569229342099216, 1.484164394238344, 2.2450482885496172, 1.3409560614230207, 4.0123769411888466, -1.1522588148293609, -5.9086248051519057, 1.6264163010987922, -1.102445921678016, -0.38866324603453178, 0.96832866520995076, -0.35231243394438311, -1.0527130168554157, -0.18365173124028866, -0.91856151213871651, -0.80045523566507271, 0.047217427128521561, 3.6729219824305099, 1.9024855757814958, 7.21482823728231, -5.8735645683280371, 3.3053285670587775, 4.8375314158562217, 9.828238034591017, 1.1452872829873084, 1.8827293053017478, 0.45802414484767828, -1.0386505011587623, -1.1180256373411397, 0.68452644609555668, 0.069970559948536071, 1.6161905886738546, 2.0068530505793158, 2.2875531209700912, 1.856813921413464, 2.3740821954043709, -1.2809925361643011, -3.9406014812831787, 2.9649644331405014, -0.30101965208537818, -0.081112249920068671, -1.2643786263280541, -1.3766560550226248, 0.43596379336607571, 1.0136463777621971, -0.35530534658355051, -0.15779582936744335, -0.79049013658838307, -0.30591237262721799, 1.0910503490681696, 7.9337267372836298, -1.2623512061316555, -0.42529364953934357, 0.70565394755329391, 3.336337544628484, 3.2389924588327594, 3.5528586670065589, -0.40638239361663953, -1.0401382704665338, -0.91231104952944642, 0.17688316963519082, -0.49340703388266682, 0.72578349898044092, -0.023607096501574151, 1.7315960703588795, 2.2334105499019046, 2.1658041823604322, 0.67583720185832141, 0.061380249620329064, 0.87664183209870872, -2.8628962346767408, 0.4209548574915572, 0.046634622615141327, -1.6393007306999556, 0.65025043431383445, 0.50802141302695369, -0.068504647941647845, 0.51855092315186113, -0.98057929368147057, -1.2925955094882546, 0.30665169366707518, 3.9705679716456634, -0.8763976476322699, 3.7118525914263776, 4.8233879396582111, -0.31214242438772705, 3.5201069577584692, 5.6055295794952924, 1.9006670978622411, 0.40617531895307485, -0.13633825788919066, -0.38423492006819598, -0.76149089771668665, 0.22253902629934941, -0.1985744186572119, 1.4828287822897714, 0.16310476776122626, 0.55773229035800354, 0.8161681385562749, 0.5383981504615758, -1.2876141106871739, -1.6351053618238793, 2.7981144693643794, -1.9147895569711246, -1.3879170617746619, 0.26515618204121727, 0.61738709055352903, 0.051434151913562459, 0.22253376417909698, -0.19710411955257243, -0.11553928672311804, 0.062580928735678887, -1.0348891792697743, -0.71404381047787879, 6.7280927719716743, 5.3082712246609018, -2.2815521755579335, 8.9643314564797052, -1.1231676638158536, 2.0374388890599802, 2.2491343600114058, -0.51322827606545429, -2.0760623026361911, -0.86546596809253695, 1.1132083022635748, 0.016166881608109234, -0.28532586796592802, 0.062695571319927382, 0.37394823077908801, -1.2123284995709924, 0.92820589700907918, 0.61651842130949663, -1.2113263922466326, 1.4993887570975342, -0.42592408743381316, -0.82374133978448039, -0.38077834891929335, -0.12924440993745251, 0.35613651800395341, 0.28861628176844567, -0.11411070867346547, -0.064107064384899673, 0.16318694006603501, -0.63280527166495915, 0.13950893398738348, 3.0206322635570557, -0.61887776540410167, 2.1073345817545266, 15.134863386021769, -9.0685889178216552, 2.5516179078607184, 0.15987777595415892, 0.75165898775916729, 2.0096273906801727, 0.31290252683747422, -0.74077897497792289, -0.69822150614317713, 0.39526560004564548, 0.069642667350159129, -0.1777894463227658, -0.37457806876122451, -0.55610134656922283, 0.40792084439497267, 1.0440547633891391, -0.23916839371037832, 0.2750333919575636, 0.62135646441400449, -0.21110858701983135, -0.81615985313544015, 0.14589390394899499, 0.32406742573949032, 0.74952192547288177, -0.32511669967392071, -0.48825453192442569, 0.36648156701751228, 1.0443697855595189, -0.22841081726546683, -1.4950174056034862, 6.4644843028741308, 2.9904131431626397, -13.820343051841599, 1.9854594697574315, -13.304182061875386, -6.3352095159572039, 0.3195679261341049, 0.22665765093840967, 0.19533791786523994, 0.21778449617622839, 0.69288180199640803, 0.084400039832664031, -0.31425797573231284, -0.31479155143425158, 0.078939183973069621, -0.58294801786464789, 0.46161406526582016, 0.41846754429722727, 0.79801858694486438, 0.43858849762191948, 0.23788459440435036, -1.2725586605629382, -0.75720231383362191, -0.29841298969258917, 0.14587335963051393, -0.16753374785242225, -0.21612918483653495, 0.53597221218340851, 0.69495683349647419, -1.0539667118389073, 0.87617222540110107, 4.3629732153958827, -8.0952123464619206, -7.414834109374171, 7.5311386138631651, -44.041788084316849, 22.050605310259897, 5.1510032561702142, -5.6601916863792514, 8.4367427775736488, 1.5703737430868991, -0.83895281997413862, 0.19212817740850727, 0.39792121836056477, -0.14922819541222082, -0.047770712409500753, -0.2908510034609289, -0.015061212014133111, 0.32646574432385927, 0.77395352504545112, -0.16614591312540627, 0.36806371804963284, -0.097634295479077288, 0.091330331747514912, -0.24450075339721231, -0.029095718259234932, 0.16613612027343472, 0.28240974426972948, -0.18044316667269469, -0.48074766055651602, -0.36626836712779753, 3.4507560855810189, -1.9317197634824488, -11.789513877445398, 17.692027714058376, 32.190550839656112, -28.446155418037584, 65.634374404237818, -24.878800155519698, -2.0570987009734387, -3.2997425925449106, -11.516126179313863, 12.372184270457085, 4.9611285532463585, 0.86391702025516592, 0.16530865667454706, -0.46079094226119116, -0.1732663636027687, -0.25470104821282824, -0.43031399471588622, -0.041501479859297648, -0.54386217024143224, 0.81683568275167029, 0.097089152898783726, -0.13744024889929929, -0.095619359707603865, 0.098626184449285684, -0.63036999033225893, -0.18311714867083492, -0.07372642556981146, -0.19104942819406445, 0.075862266735016198, 3.0325028906240856, -9.0326984830007238, -11.815798616251362, 36.620593610799446, 10.636065931319884, -38.68839724466217, 45.716174186409333, -314.74785574475044, 197.27075321520152, 337.61540934331566, 21.930976284520245, -28.837963587037731, -13.475211488788421, 9.5917712473092944, 1.5250850436867665, -1.5545017016282761, -0.64667209976974838, 0.44513357712322837, 0.056507066939540815, -0.23461588343644407, -0.26011219704759359, 0.8042712968338912, 0.30779007494077798, 0.77483290182744469, -0.65133332546861145, -0.18908937081392915, -0.50446476014305819, -0.0074294169071514489, -0.43833208591156614, 0.3383874374890965, 1.0227323524080993, -0.18896973496668346, -8.9206630611282982, -3.6862817789376785, 19.35920062861366, -44.579795546563581, 57.025448777424586, 360.31891091191056, 8.8001261891013822, 1526.2181503116453, 45.053807917762221, -140.68826246910882, 254.89688572081207, -61.967816961200398, -4.5083476182968329, 11.964107143689583, 3.7790359077733431, -1.9045345605049631, -1.7624207728132955, -0.01261576384946491, 0.19558932994062728, -0.30219131214854072, 0.4699644624025669, -0.91230383136372128, 0.36883118795348824, -0.13682839189736087, 0.66713893962058779, -0.25989055470659439, -0.44968314290067052, -1.2882353738829488, -0.76755040332110314, 0.21593130161202181, 1.7124190510555817, 0.6346191100738432, -2.3593378023079388, -10.295701682078779, -39.603849315110132, 54.052681314235315, 182.3786468306393, -282.18880697804133, 735.50774046161428, -423.76919790180091, 46.72930747865378, 744.09540667092074, 65.421023262373566, -26.998515460375824, -110.68919188818332, 1.7026644231740455, 8.6847068298461902, -3.6812627646537122, -1.4462870038602713, 0.66403014974352648, 0.98268640942926089, -0.10353485266764806, -1.1704253870693322, 0.47609558693405896, -0.63809937787576798, 1.9145243520823476, 0.11088180406502474, 0.082864627703299776, -0.36254455317814699, -0.74689297610786809, -0.69551673309504447, -0.24508893173895085, 4.773352510756971, -0.034376983736587929, -18.791248861451901, 0.26732768536914786, 52.084914641107339, -48.782690015656009, -267.77827954485792, 730.15551768721207, 777.49072200787191, 9988.2725309741272, 2608.4519239039569, -953.38531885843202, 570.34935164465708, -262.60583525697274, -86.61832325668658, -42.569555354666946, 2.6532766677526505, 7.1796038797667014, -2.7868839636562561, -0.37842412015855753, 2.0950938638350354, 0.042260514128576405, -0.56850457149086808, -0.90990468751900622, 0.4779279337996068, -1.7872556824974217, 2.239357916267509, 1.748611490859272, 1.4553261209412682, -0.72663987403827102, -2.6646257572640879, 0.50817475490745234, 1.8456273678139588, -1.3367261976572486, 1.0587560944122603, 22.259718007212488, -10.499004391497355, -376.50689706328382, 153.72085790515695, 213.86760970710961, 5000.8757444384837, 12998.804313286144, 3077.5993672243935, -814.38538391702389, -589.84188198577237, 52.443377241039045, -203.58844824671809, -68.764375920932238, 24.893726268864992, 6.7517210150420599, -0.13350548988021724, -0.12421201224142447, -0.33273215463053935, -0.74767454410310241, -2.6325944160953538, 0.19923279402974362, -1.8330278968089646, 1.4063404110660558, 0.33462283171345686, 1.8114765667849764, -0.030361957750053889, -0.81638586337482577, 0.82869028871127859, -0.22176027695649836, 1.260192177948489, -13.167070698799225, -23.742310304940538, 82.499903393484416, 67.213502175129648, -232.07891937634469, -387.93265499317204, 1281.4742181751474, 7140.8743305075477, 19170.83401144094, 6565.2013915603166, -266.59769699529113, 524.55810593663034, -105.08267177765569, 68.939947660481323, -65.513717323045299, -7.7366224074036598, 11.686157623491809, -6.0715674792925807, -4.7051607105170206, 2.1433748844125784, -2.5722659267438033, -2.5332827335358727, -1.5955119590990279, 0.93402216187716958, -2.1983982122300714, -1.3910769799127845, 2.875563242016451, 0.39274625271232855, -1.9143589532041787, -1.9356332468609148, 4.6285618656089529, 1.3770831994437265, -19.219741943874194, 21.574731283989856, 129.03232713044289, 65.73387671644744, 79.985389317629867, 2188.2624437143977, 1562.286524069611, 3837.2504381898625]}};
|
||
|
||
var face_filter = {"real": [2.5919359538538909, 1.3480085770312511, -0.20482945082417442, 2.2477358192448036, 0.93540843887482139, 0.74314370383748074, 0.44299233336869565, 0.53646864525435445, -0.033677232548862526, -0.1522853308878499, -0.0031113453238400149, 0.052610669730581504, -0.0090421776029276455, 0.14571584983663624, 0.44057103654181279, -0.48335213540388067, -1.3567864542305328, -0.48335213540388222, 0.44057103654181745, 0.14571584983663588, -0.0090421776029276386, 0.052610669730583912, -0.0031113453238437146, -0.1522853308878454, -0.033677232548862526, 0.536468645254354, 0.44299233336869559, 0.74314370383748229, 0.9354084388748215, 2.2477358192448023, -0.20482945082417423, 1.3480085770312495, 2.0152106388329991, 0.85611134878653461, -1.3363494489312076, -0.52148568567931619, 1.2207493971968164, 0.88880185549210589, -0.12851357573552111, -0.1350280522901679, 0.041300904967699482, 0.44502243372725686, 0.029355734210915238, -0.51443976319946505, 0.08745222381708008, 1.2148708003194451, 1.1189080727093581, -0.27220544444671846, -0.36088426941083585, -0.093485947527556318, -0.9769818787641994, -0.68349100625395898, 0.024322257871818426, 0.60512811669399713, 0.15343788102432432, -0.4299366545774243, -0.15452787333937706, 0.9156200895039931, 1.19600272916941, 0.72364825206645089, 0.54200011692086325, 2.3400266438502029, -0.033608374945748302, 0.58898161413145322, 2.0269883277253808, 2.818789893714468, -3.5895244227646144, -3.5314332372596891, 2.0122812700890154, 0.93093181995227969, -0.96305400340897007, -0.73612667628472817, -0.053915776695886194, 0.42730242898842419, 0.029936824487282035, -0.35168293029190251, 0.25108420491884947, 0.8544524900293714, 0.16931894270710782, 0.0092385746333500125, 0.68672569869418298, 0.41915906104063394, -1.0984488703050921, -0.63697851900908631, 0.11186355371520935, 0.47269360156783113, 0.15279475225563477, -0.026106440237006989, -0.032262751173084157, 0.14542662300780329, 0.71981331903700141, 1.4137393979172745, 0.60857711312874896, -3.0736342072317173, -2.5537641666010327, 0.6337650914909162, 1.2343577579270657, 0.25345561236901865, -2.0331393954447585, 1.159193858429254, 3.0170447718709359, 0.49021233060315667, -0.684375328954414, -0.32927583863381799, -0.09284792777273311, -0.14740895498043241, -0.19413825853994604, 0.36919608239644319, 0.30546257655082493, -0.55256449500031701, -1.2130125640575424, 0.066961883917897494, -0.13876096422777703, 0.37902224678367341, 0.22718444978554084, 0.19963817528635963, 0.027529920247751867, -0.24231535965414738, -0.016338923407765684, 0.45136614923078927, 0.28975660783972312, -0.73094055491799104, -1.5465072446477164, -0.070769892332079726, 3.1701479989789885, 0.024916786279245037, -2.8717730703729369, -1.1681626968077414, -0.94600410103718435, -0.85872517244177848, 2.9516513032863374, 2.8131952593882126, -1.5261742763882251, -1.0558844683361728, 1.1680212024537544, 0.98450685108739822, 0.064067265719269059, -0.43727283330478184, -0.044395094277671916, 0.6179734700494115, 0.24878996343187737, -0.63891278340523816, -0.75864993025841965, -0.32304619466454659, -0.73387564471571265, -0.043145833390571785, 0.92391812888689884, 0.89946098537045804, 0.14871674926559622, -0.54822828954183223, -0.26728613142127311, 0.309011363128886, 0.21418689978013769, -0.52105157113820344, -1.0686411834884146, -1.3047927124000203, 1.0355627592914096, 2.9672746843849169, 1.9471218128812939, 0.36030875558033187, 0.22471825920653532, 1.3679256644146878, 2.3784795387427549, 0.73776440177250424, -2.2202952003703751, -0.98667153092188797, 0.60944427589951666, 0.29273424438530327, -0.054064553213066489, -0.1955430963609566, 0.13452976853580562, 0.17688857701463095, -0.02907863269662225, -0.037177619339377604, 0.22892611971691484, -0.22870850340942314, -0.41029268509332983, 0.061215349005760457, 0.37818604838169356, 0.34148146887082653, 0.099938245586444027, -0.099254338381423959, -0.11254516916626593, -0.2039622085642743, -0.20060216516957027, 0.30792957356810446, 1.1721236672075155, 0.56136417541067873, -2.3249600877666992, -2.4287881268668112, 2.0674326900187423, 2.8441511789848586, 0.050947133476877834, 0.30280142076825006, 0.23441985585068989, -0.69420211937437837, 0.50017210833819825, 0.9824320425486297, -0.30253127598451673, -0.35217802522066471, -0.25522460504160704, 0.12672156371020879, 0.11584743671788442, -0.27806946703293017, -0.28220471587289919, 0.2622813962834421, 0.46145186677272942, 0.088913779923943934, 0.31552668240292342, 0.083701767363049212, -0.20838882493274438, -0.45028623286649139, -0.21994207603667223, 0.24344265380915428, 0.14566519323380012, -0.26341476824800764, -0.25014860441221609, 0.23269603050324755, 0.65507472733677707, 0.58916939473049168, -1.2014518968451928, -1.4706959472537811, 0.73270160247544736, 1.4639339636380404, 0.46180491918070748, 0.46274052021248863, -1.2522772114725254, -1.0527125117724863, 1.1798416267497167, 0.8831199054956721, 0.0044403719443055645, -0.32008851183583215, -0.088039126814047713, 0.13435677108789251, -0.043849665988197006, -0.30055389900341628, -0.17300527880436442, 0.22268011829576431, 0.14506301721613848, 0.13541851865273877, 0.31252919184011202, 0.13643782704324722, -0.2095508102885523, -0.37861030355575276, -0.25285479563588548, 0.076566684841017141, 0.11737705239518459, 0.013018358464219467, -0.041516874353177323, 0.025396859515453351, -0.19237103418038187, -0.20754469441764836, 0.83543584581843078, 0.96010698083026003, -1.0523257697001149, -1.33376499327856, 0.31064795509136994, 0.20053594173979683, -0.099592610690013544, 0.046946926411794127, -0.26933425983580023, -0.25886956646489134, 0.16667582025681255, 0.16264384177267197, 0.10611595375861864, -0.0098404462838746383, -0.13572606372513804, -0.02258793083641232, 0.1626410940258704, 0.0084042334154625226, -0.31667685877385637, 0.013183667319477316, 0.0095114839461814711, 0.064735813239969756, 0.10654247281867815, 0.21331216355051069, 0.10213744987583113, -0.12973084349572184, -0.098085407735951202, 0.071599991117337544, 0.096012887125637492, -0.070622290324985737, -0.21061961456993025, 0.12811225495378645, 0.61116435171305805, 0.27931012230932523, -0.57076807310688515, -0.50218388849258644, -0.42922119360119421, -0.44865243467955651, 0.48865422280767501, 0.5325596193896186, -0.37999327914266867, -0.37733114800401457, 0.013506411710477314, 0.170066818452864, 0.060998910324659567, -0.13656793547637669, -0.090686593939375684, 0.3743991900961478, 0.47466547775213164, -0.40581229446604228, -0.4933460399621819, -0.38074360867450391, -0.49035943457716413, -0.12412531843683997, 0.30440943973074641, 0.59456571635307864, 0.39877140482842571, -0.17295292843566973, -0.26272159996092964, -0.046183226771098686, 0.047879446168886036, -0.01767919625538646, 0.11122639164092249, 0.28368537020126805, -0.25549013964140954, -0.47047462219224784, 0.42895932921703384, 0.49142711950580215, -0.37646529147307217, -0.2985208724149509, -0.14163512022800509, 0.036248242700393868, 0.16977635036237812, 0.13499908156480836, -0.01898512351822966, -0.069319801425736585, -0.048065151476023839, -0.091445654237596943, 0.063480780271467835, 0.36025783734460454, 0.079528415094702418, -0.1753773206782209, 0.12374069460012149, -0.28367021291499456, -0.3947284775676721, -0.2665809890749859, 0.18834221718468977, 0.27819651942933282, 0.17697914055115227, -0.044718494415980817, -0.10522429653700929, -0.056918990576836789, -0.038574904247242463, 0.0044720036764788907, 0.075029157257001891, -0.012042674487198736, -0.25791041993690383, 0.0094461444749257637, 0.45149640843334832, 0.15522942660639183, 0.16359187166611067, 0.27184060163390095, -0.26140872283435745, -0.36468827084356714, 0.092564696434539948, 0.17076044356298117, -0.081952166134050972, -0.094812402895013512, 0.056872171173511843, 0.14314060902527834, 0.090057378296037091, -0.49752310636724911, -0.90399504476626857, 0.68385321448233993, 1.5206479363861476, 0.97194500124059446, 0.37223376526843088, 0.050885418177567802, -0.35886815857743665, -0.85430361824055856, -0.54314517421482678, 0.35505625397063872, 0.41635160123016829, 0.1097676276443619, 0.0031094617237012487, 0.012467253683817481, -0.13435478466038733, -0.3025207327612856, 0.064227680246281948, 0.26667168729095614, -0.26695175931487575, -0.39070435016787081, 0.46272484969502237, 0.4478152924484996, -0.02777275619946918, -0.36406380803433314, -0.36482553236919035, -0.17145017383338396, -0.0022768560529046471, 0.19648856692552516, 0.19795501524240586, 0.11579620326491886, -0.20236218758832794, -1.3218815146594056, -0.89510126706911786, 0.91685720076146016, 1.0573193754484274, 1.0300227650328617, 1.2681463254528202, 0.54199794330131901, -0.81825453423342154, -1.1158895792994059, -0.48892024147971419, 0.37011029837274972, 0.52557441450178022, 0.12007696462970571, 0.0053871855361874443, 0.0980933520274576, 0.045813676675892742, -0.13973686519943007, -0.1315893019053164, -0.41025099029328865, -0.78307378558342511, -0.43058051319449592, -0.14586342722110873, -0.20332028656079115, -0.50991116383855117, -0.22496834802938576, -0.23147407593468516, -0.0020062182884880236, 0.35659057442027225, 0.21055136817067865, -0.090708657953189512, -0.093236555831976653, -0.39644071531856356, -0.15760046489763799, 0.85217092970404984, -0.006060772398080865, -1.1445855838899712, -0.40779542231222293, 0.57192337467361454, 0.38110042075214373, 0.18372151232217485, 0.45534551448489441, 0.44338161640444884, -0.33392303093222925, -0.30033251173404302, -0.018826279470074956, -0.0031918185582147274, 0.016996498806762936, 0.19478439409652604, 0.14839426734987179, -0.16993496725014728, -0.25233000300477815, -0.17163872305028913, -0.16896259214086029, -0.35048355912402168, -0.56666117156530804, -0.043075182629207294, 0.46189562289598257, 0.12201955959263491, 0.048431387757678836, 0.1008273185138992, -0.19670456422152316, -0.16642026644756419, -0.15046897531292064, 0.1609200706656915, 1.4039223524989202, 1.7178875241186931, -0.079850193819757748, -1.5066376684783904, -1.9250211671886128, -1.0545407692185655, -0.51176749353660089, 1.7285428258292277, 1.5863083779089326, 0.24208315366337785, -0.88837860391849655, -0.80449782923567614, -0.063049218988350142, 0.18072374426616816, 0.041279056588780935, -0.12639978427416398, -0.058413638180600282, 0.18149778190196758, 0.37146508613201623, 0.60005197547104183, 0.38887239681739694, 0.1152103935846736, -0.080081540793911096, 0.79737548580628892, 0.60164673103725985, 0.13967291436025694, -0.17870113794821088, -0.40389823435739103, -0.33510874790612805, -0.062682749064233156, 0.042125181720095217, 0.22750178782369759, 1.0883583281620091, 0.67976518601386504, -0.6792087414350455, -0.67769831799676505, 0.0071297652693774914, -0.21574274789108602, 0.73346137493748143, 0.69884011316820749, 0.12589091429626179, -0.68348492100050939, -0.41285410288550739, -0.18770950063360772, -0.15148842977747803, 0.047869931187020834, 0.21018250411743153, 0.068763639373895541, 0.0098401964213560011, -0.019137710950301583, -0.44014279794733802, -0.21656678437317001, 0.36831896296176964, 0.31965489003799819, 0.24180664285441536, -0.20287221126440233, -0.56181438279878848, -0.15470815549218525, 0.11910006502983214, -0.0029256323011974715, -0.04650506403640628, -0.11603914651892111, -0.15307567360464111, 0.4224212238432043, 0.15967260300989697, -0.83895691770827985, -1.4824802915019837, -0.37969523238638658, 0.89583132075795047, 1.77383273304373, 0.8958313207579488, -0.37969523238638764, -1.4824802915019843, -0.8389569177082784, 0.15967260300989483, 0.42242122384320435, -0.15307567360464003, -0.11603914651892111, -0.046505064036406023, -0.0029256323011973848, 0.11910006502983216, -0.15470815549218528, -0.56181438279878715, -0.20287221126440275, 0.24180664285441561, 0.11521039358467118, 0.36831896296176875, -0.2165667843731702, -0.44014279794733774, -0.019137710950301947, 0.0098401964213558832, 0.068763639373895805, 0.21018250411743131, 0.047869931187020681, -0.15148842977747892, -0.18770950063360678, -0.4128541028855055, -0.68348492100050762, 0.12589091429626098, 0.69884011316820926, 0.73346137493748531, -0.21574274789108297, 0.0071297652693808498, -0.67769831799676439, -0.67920874143504806, 0.6797651860138616, 1.0883583281620088, 0.22750178782369845, 0.042125181720095072, -0.06268274906423292, -0.33510874790612777, -0.40389823435739058, -0.17870113794821069, 0.13967291436025678, 0.6016467310372583, 0.79737548580629014, -0.080081540793910805, -0.35048355912402274, 0.38887239681739855, 0.60005197547104216, 0.37146508613201551, 0.18149778190196694, -0.058413638180600004, -0.12639978427416418, 0.041279056588780526, 0.1807237442661683, -0.063049218988349559, -0.80449782923567681, -0.88837860391849677, 0.24208315366337824, 1.5863083779089293, 1.7285428258292255, -0.51176749353659912, -1.0545407692185644, -1.9250211671886148, -1.506637668478394, -0.079850193819762688, 1.7178875241186904, 1.4039223524989211, 0.160920070665691, -0.15046897531292144, -0.16642026644756441, -0.19670456422152255, 0.10082731851389957, 0.048431387757679002, 0.122019559592635, 0.46189562289598279, -0.043075182629206808, -0.56666117156530804, -0.1458634272211089, -0.16896259214085926, -0.17163872305028846, -0.25233000300477826, -0.16993496725014781, 0.14839426734987166, 0.19478439409652576, 0.016996498806763023, -0.0031918185582146671, -0.01882627947007429, -0.30033251173404329, -0.3339230309322298, 0.44338161640444979, 0.45534551448489619, 0.18372151232217931, 0.38110042075214462, 0.57192337467361187, -0.40779542231222243, -1.1445855838899728, -0.0060607723980816422, 0.85217092970405028, -0.15760046489763638, -0.39644071531856373, -0.093236555831976972, -0.090708657953189803, 0.21055136817067863, 0.35659057442027281, -0.0020062182884879754, -0.23147407593468516, -0.22496834802938495, -0.50991116383855117, -0.20332028656079207, 0.46272484969502153, -0.43058051319449625, -0.78307378558342611, -0.41025099029328771, -0.13158930190531651, -0.13973686519943013, 0.04581367667589293, 0.098093352027458003, 0.0053871855361874036, 0.12007696462970524, 0.52557441450178122, 0.37011029837274845, -0.48892024147971336, -1.1158895792994052, -0.81825453423342154, 0.54199794330131867, 1.2681463254528189, 1.0300227650328604, 1.0573193754484311, 0.91685720076146382, -0.89510126706911664, -1.3218815146594056, -0.20236218758832747, 0.11579620326491913, 0.19795501524240555, 0.19648856692552533, -0.002276856052904625, -0.17145017383338415, -0.36482553236918996, -0.36406380803433286, -0.027772756199469509, 0.44781529244849971, 0.1635918716661118, -0.39070435016787175, -0.26695175931487636, 0.26667168729095614, 0.064227680246282309, -0.30252073276128633, -0.13435478466038722, 0.012467253683817804, 0.0031094617237012916, 0.10976762764436168, 0.41635160123016834, 0.35505625397063934, -0.54314517421482655, -0.85430361824056045, -0.35886815857743842, 0.050885418177567691, 0.3722337652684316, 0.97194500124059191, 1.5206479363861465, 0.68385321448234182, -0.90399504476626835, -0.49752310636725033, 0.09005737829603698, 0.14314060902527884, 0.056872171173512003, -0.094812402895013193, -0.081952166134050861, 0.17076044356298159, 0.092564696434540239, -0.36468827084356803, -0.26140872283435806, 0.27184060163390172, -0.37646529147307173, 0.15522942660639114, 0.45149640843334826, 0.009446144474926697, -0.25791041993690383, -0.012042674487198701, 0.07502915725700196, 0.0044720036764790416, -0.038574904247242366, -0.056918990576836755, -0.10522429653700935, -0.044718494415980962, 0.17697914055115149, 0.2781965194293311, 0.18834221718468852, -0.2665809890749849, -0.39472847756767171, -0.28367021291499434, 0.12374069460012085, -0.17537732067822176, 0.079528415094701682, 0.3602578373446047, 0.063480780271467876, -0.091445654237597165, -0.048065151476023728, -0.06931980142573653, -0.018985123518229702, 0.13499908156480855, 0.16977635036237826, 0.036248242700393465, -0.14163512022800506, -0.29852087241494996, -0.42922119360119487, 0.49142711950580192, 0.428959329217034, -0.47047462219224911, -0.25549013964141071, 0.28368537020126877, 0.111226391640923, -0.017679196255386387, 0.047879446168886071, -0.046183226771098616, -0.26272159996092947, -0.17295292843566987, 0.39877140482842616, 0.59456571635307809, 0.30440943973074525, -0.12412531843683972, -0.49035943457716313, -0.3807436086745018, -0.49334603996218179, -0.40581229446604117, 0.47466547775213147, 0.37439919009614836, -0.090686593939375629, -0.13656793547637694, 0.060998910324659573, 0.17006681845286384, 0.013506411710477128, -0.37733114800401446, -0.37999327914266845, 0.53255961938961804, 0.4886542228076744, -0.44865243467955757, 0.31064795509136994, -0.50218388849258644, -0.57076807310688515, 0.27931012230932423, 0.61116435171305772, 0.12811225495378684, -0.21061961456993031, -0.07062229032498564, 0.096012887125637492, 0.0715999911173376, -0.098085407735951036, -0.12973084349572186, 0.10213744987583084, 0.21331216355051105, 0.10654247281867847, 0.064735813239968978, 0.0095114839461814711, 0.013183667319477904, -0.31667685877385532, 0.0084042334154626214, 0.1626410940258709, -0.022587930836412171, -0.13572606372513854, -0.0098404462838748534, 0.10611595375861864, 0.16264384177267199, 0.16667582025681238, -0.2588695664648914, -0.26933425983580034, 0.046946926411794203, -0.099592610690013642, 0.20053594173979666, 0.46180491918070782, -1.3337649932785616, -1.0523257697001149, 0.96010698083025947, 0.835435845818432, -0.20754469441764875, -0.19237103418038279, 0.025396859515452976, -0.041516874353177122, 0.013018358464219362, 0.11737705239518428, 0.076566684841017002, -0.25285479563588431, -0.37861030355575326, -0.2095508102885513, 0.13643782704324786, 0.31252919184011235, 0.1354185186527376, 0.14506301721613746, 0.22268011829576351, -0.17300527880436414, -0.30055389900341645, -0.043849665988197138, 0.13435677108789171, -0.088039126814047811, -0.32008851183583126, 0.0044403719443063165, 0.8831199054956711, 1.179841626749716, -1.0527125117724856, -1.2522772114725254, 0.46274052021248885, 0.050947133476877821, 1.4639339636380404, 0.73270160247544602, -1.4706959472537806, -1.2014518968451935, 0.58916939473049124, 0.65507472733677696, 0.23269603050324741, -0.25014860441221576, -0.26341476824800797, 0.14566519323380028, 0.24344265380915459, -0.2199420760366726, -0.45028623286649283, -0.20838882493274519, 0.083701767363050281, 0.31552668240292281, 0.088913779923944877, 0.46145186677272854, 0.2622813962834421, -0.28220471587289875, -0.27806946703292978, 0.11584743671788453, 0.12672156371020837, -0.25522460504160699, -0.35217802522066505, -0.30253127598451701, 0.98243204254862915, 0.50017210833819781, -0.69420211937437803, 0.23441985585068889, 0.30280142076825051, 0.2247182592065364, 2.8441511789848586, 2.0674326900187419, -2.4287881268668121, -2.3249600877666978, 0.56136417541067796, 1.1721236672075159, 0.30792957356810535, -0.20060216516957047, -0.2039622085642748, -0.11254516916626582, -0.099254338381423668, 0.0999382455864435, 0.34148146887082625, 0.37818604838169406, 0.061215349005760457, -0.41029268509332922, -0.22870850340942214, 0.22892611971691548, -0.037177619339376564, -0.029078632696622427, 0.17688857701463057, 0.13452976853580567, -0.19554309636095565, -0.054064553213066628, 0.29273424438530188, 0.609444275899516, -0.98667153092188464, -2.2202952003703764, 0.73776440177250102, 2.3784795387427535, 1.367925664414688, -0.94600410103718391, 0.3603087555803301, 1.9471218128812944, 2.9672746843849187, 1.0355627592914098, -1.3047927124000192, -1.068641183488414, -0.52105157113820511, 0.21418689978013775, 0.30901136312888583, -0.26728613142127272, -0.54822828954183234, 0.1487167492655953, 0.89946098537045849, 0.92391812888689973, -0.043145833390572444, -0.73387564471571165, -0.32304619466454804, -0.75864993025841865, -0.63891278340523694, 0.24878996343187765, 0.61797347004941017, -0.044395094277671403, -0.43727283330478151, 0.064067265719269045, 0.98450685108739822, 1.1680212024537535, -1.0558844683361719, -1.5261742763882244, 2.813195259388213, 2.9516513032863356, -0.85872517244177815, 1.2343577579270646, -1.1681626968077381, -2.8717730703729356, 0.024916786279243767, 3.1701479989789867, -0.070769892332079906, -1.5465072446477184, -0.73094055491799181, 0.28975660783972312, 0.45136614923079016, -0.016338923407765823, -0.24231535965414835, 0.027529920247752079, 0.19963817528636058, 0.22718444978554045, 0.37902224678366964, -0.13876096422777742, 0.066961883917898354, -1.213012564057544, -0.55256449500031835, 0.30546257655082465, 0.36919608239644353, -0.1941382585399454, -0.14740895498043313, -0.092847927772733041, -0.32927583863381676, -0.68437532895441289, 0.49021233060315311, 3.0170447718709372, 1.1591938584292596, -2.0331393954447532, 0.25345561236901532, 2.0269883277253808, 0.6337650914909212, -2.5537641666010331, -3.0736342072317178, 0.60857711312874962, 1.4137393979172737, 0.71981331903700019, 0.14542662300780379, -0.032262751173084109, -0.026106440237006333, 0.15279475225563396, 0.47269360156783119, 0.11186355371520969, -0.63697851900908553, -1.0984488703050919, 0.41915906104063416, 0.68672569869418265, 0.0092385746333522867, 0.16931894270710687, 0.85445249002936896, 0.25108420491884997, -0.35168293029190173, 0.029936824487282226, 0.42730242898842274, -0.053915776695886201, -0.7361266762847285, -0.96305400340896929, 0.93093181995227892, 2.0122812700890154, -3.5314332372596846, -3.5895244227646144, 2.8187898937144658, 2.0152106388329991, 0.58898161413145356, -0.033608374945749073, 2.3400266438502024, 0.54200011692086181, 0.72364825206645078, 1.1960027291694086, 0.91562008950399532, -0.15452787333937676, -0.42993665457742386, 0.1534378810243246, 0.60512811669399758, 0.024322257871818742, -0.6834910062539612, -0.9769818787642004, -0.093485947527554653, -0.36088426941083557, -0.27220544444672085, 1.1189080727093528, 1.2148708003194422, 0.087452223817081023, -0.51443976319946561, 0.029355734210916126, 0.44502243372725681, 0.041300904967699399, -0.13502805229016995, -0.12851357573552075, 0.88880185549210555, 1.2207493971968146, -0.52148568567931763, -1.3363494489312078, 0.85611134878653028], "bottom": {"real": [10965.975170394304, 21271.915267962257, 3528.2703051611911, 4104.4756805864381, 1601.0616042188819, 1022.7399974894073, 557.80113750762041, 282.82230522781242, 145.15707521660474, 105.9441201571383, 59.012707266667213, 44.669628432443531, 36.50168205465414, 28.529134449096524, 21.777099980382825, 18.33532892478512, 16.253545459923078, 18.335328924785092, 21.777099980382847, 28.529134449096492, 36.50168205465414, 44.669628432443567, 59.012707266667277, 105.94412015713864, 145.15707521660474, 282.82230522781276, 557.80113750762041, 1022.7399974894074, 1601.0616042188824, 4104.4756805864426, 3528.2703051611911, 21271.91526796226, 12599.263825927621, 3215.125406898348, 5397.5422498759845, 1626.8549963375583, 805.20630634633005, 515.14459200644239, 359.3048107396736, 212.4360242127799, 110.43978615629422, 81.30134061470001, 50.82057050163526, 41.192651249931721, 32.936640633650484, 26.681133724080869, 18.01921088871573, 14.766368476202661, 15.422836018027418, 15.990808141800954, 20.022228188848842, 26.276495829612259, 35.717232769261116, 41.847677620126099, 54.320387908275151, 97.518896272497358, 133.8729941689642, 238.43595357759855, 456.937693043428, 711.66550404730731, 1144.8252089743219, 1902.8385884755523, 5206.768847980471, 3622.9684974910811, 13155.61342681755, 3416.7436429144991, 2812.4738667722154, 1400.147559944327, 383.1327908328127, 252.15177845425933, 197.2081578118225, 171.59960210222519, 82.275357677734092, 60.48297276194193, 40.777478884094478, 35.028553697203044, 28.877176436297923, 21.966647147933095, 16.371866219790679, 15.053935075225828, 14.23277610579999, 14.866315284596761, 18.218896084560566, 25.18211951926569, 33.821722307900131, 38.320413578940517, 45.570220260185515, 72.059479710744441, 97.660119608992957, 168.65094690401955, 268.62846926573025, 329.42984018623156, 467.75549674428515, 1002.4311488284067, 3554.1418329345079, 1764.397059903687, 4621.9583294760141, 1569.7087860062477, 1388.3341571422952, 628.37101334838883, 414.07061143445827, 168.53157442290524, 137.2795663029475, 102.11362429348972, 55.491719795512424, 49.073126751989768, 36.063389145893389, 30.634459542886617, 24.216782409074948, 18.667040937787934, 14.56741780053745, 12.905268434713205, 12.868626938575844, 13.095932326486089, 16.679039087380332, 21.80969609662603, 29.753917874884348, 36.827824955920349, 38.934743351431941, 57.668339838268878, 69.641961050084433, 131.28843074347486, 180.68252449032624, 169.44044949721729, 350.74973626382058, 497.02834719870827, 1746.1261590593115, 796.99783843130319, 3103.2479470123581, 1415.2337173839596, 752.81814346176623, 549.34301727365857, 201.53841636766998, 154.61036627522753, 104.58138455482165, 77.618781225118965, 49.392087964292358, 44.90232542624743, 31.105878831006294, 25.236762604525154, 19.175053589853054, 16.38453446468991, 12.823063914611339, 12.047936614807259, 11.554737628486025, 12.534926448772453, 14.323695266188452, 17.780247836887199, 24.191492945877869, 28.843093953252101, 32.767703049824149, 43.78366744373352, 51.550546699271386, 70.699184140809493, 109.08321361427502, 136.28687846912635, 199.77708080210388, 376.32680369835469, 796.83467383546451, 571.91471358300532, 984.41049770348889, 694.18752080971819, 999.69929532757897, 367.74073917398181, 338.97998181689366, 133.72435362068052, 109.5985079627268, 89.938945070024957, 49.039508255638331, 36.109063293014415, 25.98394571698211, 23.015774601871652, 16.882299112940213, 14.591336257090045, 11.32667094148311, 9.91803607895827, 9.6753965965616064, 10.57555888797221, 12.046190961831451, 14.768605661776913, 18.648763248771505, 21.576487249184964, 27.01336113453004, 36.908082411505312, 45.645009020283105, 60.837630874998482, 99.37203234809671, 111.28266970072299, 252.63182137130968, 273.92630278831501, 775.2357561437575, 815.85074837225181, 1655.1106419436521, 1107.4422783913506, 474.0637368651835, 355.64805874163005, 199.11678861892517, 123.46347336694488, 65.896409871808586, 68.918403190937497, 38.943190919202721, 28.774499596319636, 21.286505123099762, 17.663953414249985, 14.114074884510726, 11.879784189493673, 10.039166730615968, 8.3521719629346443, 8.4814596475391344, 9.0449476750100413, 9.8512979659284881, 12.153630271582001, 15.23168574488512, 19.437247877391961, 22.710514050850847, 28.755794586161894, 38.618352638886485, 59.942241598726909, 92.997872357952332, 88.111783673752711, 166.94308947555163, 243.79773811420219, 532.10468308026691, 428.26170612042944, 835.14389492248984, 575.84605817489046, 602.78945521124672, 339.57693755905132, 168.11833297683242, 117.99279203678798, 52.586639793255571, 42.047895128628383, 28.318592567301817, 25.001453363505657, 19.91641866758216, 16.823078359396845, 11.65888462925604, 10.364401595593858, 8.8573627978869887, 7.4173871264629518, 7.2681515499390361, 7.5915323421249861, 8.6807340620832107, 10.378269159275604, 12.701378035616356, 16.292785679101375, 18.804030398726262, 23.560923080173954, 30.503495373532754, 45.810504396910375, 65.229522054396952, 65.639482430818617, 177.29565831054776, 166.70872880265193, 491.9902921130938, 512.67235981711065, 747.45313809997936, 645.96141219737251, 307.54977114778814, 298.36000265745548, 105.95282903225828, 85.567113182097643, 44.672376324283228, 40.226583433899208, 25.615021546435344, 22.144491394300847, 16.131654569456256, 13.397071796412417, 10.408828566613494, 8.9591957313528034, 8.0604380452509936, 7.0442060411780956, 6.2883229388812003, 6.8496831982856676, 7.336687105800447, 8.4717730733339334, 9.9814777112217854, 13.121694879148574, 16.902165529440683, 20.643784740763845, 24.153222030769193, 29.725858725465727, 41.896421037553992, 52.630934346953957, 103.5859123323665, 116.76781276597193, 376.64744495733714, 306.93195832405218, 356.46238810538262, 374.90366628545218, 271.63698834940317, 203.15162979817489, 85.296077399229702, 77.649689466739304, 35.918272816149603, 33.069491090524735, 22.605820220395913, 17.296816509483932, 13.342699317421832, 11.640978884779956, 9.3586975241911539, 8.2623074625085575, 6.6065851632208821, 6.2827863632965242, 6.0744238279118932, 6.3582342010947102, 6.8252966967815532, 7.8556092062941403, 9.3209224203195777, 10.848369664421165, 14.056179340078513, 17.792540785133639, 21.540972163896267, 26.803938103683681, 40.50313838179877, 43.285550133972045, 91.691889335245591, 100.98276829758987, 225.59390630676836, 290.0678303886524, 373.60823131669014, 414.22422969876749, 141.37671573357548, 158.90321565708931, 63.837661879419102, 61.993039771960156, 32.588562049134531, 28.668162298507095, 18.426404144385732, 14.735821975464789, 11.992469004096597, 11.399293029930492, 8.7163999068023248, 7.2289667101344008, 6.5906881398505739, 5.7472695906024613, 5.6472990693532683, 5.8777570769595933, 6.4024098578192543, 7.4405650580225187, 8.4599769870087567, 10.256048021590846, 12.060831155359036, 13.785151925105749, 18.659998164390426, 22.921744826480442, 31.905227459883474, 34.302795951832735, 59.880411689763747, 69.971045180964353, 160.24793865518117, 163.52979203882799, 147.83029120770976, 178.6357867835558, 118.15132417284869, 114.19776495947795, 53.375296048832148, 57.177884093679019, 32.93952944330524, 24.968491799996325, 17.430516204833694, 13.433899198972929, 11.836714579435053, 10.548598460428181, 8.0486546171077791, 7.1187881891372964, 6.4594660557219088, 5.8159952878399759, 5.4767794038379067, 5.3908701504578147, 5.8976209996629629, 7.1301831132348088, 7.5675834428185693, 8.7517061416953652, 11.338462673842365, 13.133124938105077, 16.059093761394507, 18.849097825959038, 29.651622179353478, 34.09934210997649, 58.700399360289651, 65.261681531847529, 99.214909240790846, 146.35353694510258, 121.37679122991287, 165.76624382852509, 77.65397407030467, 91.338453331354174, 44.07807549608674, 44.566220734037245, 27.026614222359569, 22.147051076612073, 15.399396116974053, 12.432895564123392, 10.640074418564296, 9.3276298749700732, 7.5791206500207364, 6.7828789822837923, 6.1816087593787632, 5.6692811710818027, 5.1651813219751155, 5.3317492648801608, 5.5981461093243494, 6.4057146645582934, 7.2505243651475348, 8.4209913018587468, 10.969854167863348, 12.153630713859068, 14.766764339656312, 18.099354774134348, 25.326013884328763, 29.785949829841531, 46.424831391908171, 52.615859887304801, 82.573269999379406, 99.676304070074508, 86.640078828927244, 116.36860702141186, 64.2413414100685, 71.742693053970697, 38.10988368760168, 36.926827145978287, 25.897290737678322, 19.275080383374728, 14.749844663752917, 11.485010388879966, 9.4576647539678333, 8.8927162237613455, 7.4395778659669922, 6.0444335480941538, 5.7182084691628248, 5.0557935120943966, 5.0760457790692417, 5.2089717500439345, 5.7735220000474632, 5.9406732653680434, 6.7459275777069596, 7.820577383583708, 9.9835305123253484, 11.402400865496325, 14.118008059701465, 15.687873342054864, 23.860535436216686, 29.003043185839516, 40.145342185017675, 49.33744888297236, 59.017178205425914, 84.300643063132256, 70.160964533004119, 106.14414492511058, 57.343364605572859, 60.092652172041127, 35.035164226891368, 31.196728233049463, 22.848135981998073, 17.280291997569737, 14.215425049471765, 11.487894696175578, 9.2019617459917757, 8.157670273889595, 7.4731544987863776, 6.0230042880637562, 5.6300019663774918, 5.2449852175850884, 4.8944187843316493, 5.1794885290485126, 5.4428139254674495, 5.9866966335497871, 6.4988534667021369, 7.0161059288776793, 9.1662091602334215, 10.540688253938185, 13.221652899667433, 17.448751090247555, 21.405199921620568, 24.443644233674171, 34.565403798719835, 43.064932290411342, 53.896764023490427, 75.330615249002037, 57.139048850516261, 75.071278816121492, 44.304162032217924, 48.091094532561691, 33.4913106785217, 27.211025020176507, 22.453521092970409, 17.428281520682297, 14.160857290751922, 10.592079486422294, 9.2001673028330426, 7.5661166243087798, 6.5335689847346243, 5.8073593275643729, 5.7880621018967249, 5.3539074945975891, 5.3978132668570558, 5.2447316758230391, 5.4735425621066245, 5.861789820088422, 6.5375806061336013, 7.5634600669075329, 8.8416380446398435, 10.50698673124036, 13.949036764622399, 16.252252028090993, 22.019876112374043, 25.162704768394917, 31.578176229468394, 41.771493186860923, 42.955938687991988, 69.858651906447136, 50.780163528630226, 74.077510216304077, 43.697387961361706, 40.315818737884314, 29.770652812772006, 26.340522851312056, 22.034594395520614, 16.748599325796118, 12.845516284546591, 10.52499564475608, 9.2455018617556028, 7.4871364359448869, 6.8277975203922185, 5.6646016980044793, 5.288115481792067, 5.2498383547683662, 5.1849512003341403, 5.2498383547683662, 5.2881154817920599, 5.6646016980044767, 6.8277975203922212, 7.4871364359448904, 9.2455018617556082, 10.52499564475608, 12.845516284546591, 16.748599325796118, 22.034594395520603, 26.340522851312063, 29.770652812772006, 40.315818737884321, 43.697387961361706, 74.077510216304077, 57.139048850516232, 69.858651906447136, 42.955938687991953, 41.771493186860937, 31.578176229468383, 25.162704768394924, 22.019876112374046, 16.252252028090997, 13.949036764622383, 10.506986731240358, 8.8416380446398382, 7.5634600669075285, 6.5375806061335977, 5.8617898200884238, 5.4735425621066245, 5.2447316758230373, 5.3978132668570558, 5.3539074945975873, 5.7880621018967231, 5.807359327564372, 6.5335689847346252, 7.5661166243087798, 9.2001673028330391, 10.592079486422293, 14.16085729075192, 17.428281520682305, 22.453521092970401, 27.211025020176521, 33.491310678521693, 48.091094532561655, 44.304162032217938, 75.071278816121534, 70.160964533004076, 75.330615249002022, 53.89676402349037, 43.064932290411342, 34.565403798719814, 24.443644233674185, 21.405199921620568, 17.448751090247544, 13.221652899667435, 10.540688253938189, 9.1662091602334179, 7.0161059288776801, 6.4988534667021369, 5.9866966335497871, 5.4428139254674504, 5.17948852904851, 4.8944187843316449, 5.2449852175850866, 5.6300019663774892, 6.0230042880637509, 7.4731544987863758, 8.157670273889595, 9.2019617459917793, 11.487894696175564, 14.215425049471762, 17.280291997569748, 22.84813598199807, 31.19672823304948, 35.035164226891382, 60.092652172041191, 57.343364605572894, 106.14414492511065, 86.640078828927187, 84.30064306313227, 59.017178205425857, 49.337448882972346, 40.145342185017682, 29.003043185839513, 23.860535436216686, 15.687873342054866, 14.118008059701463, 11.402400865496327, 9.9835305123253519, 7.8205773835837116, 6.7459275777069578, 5.9406732653680443, 5.7735220000474641, 5.2089717500439328, 5.0760457790692435, 5.0557935120943975, 5.7182084691628221, 6.0444335480941556, 7.4395778659669922, 8.8927162237613491, 9.4576647539678262, 11.485010388879974, 14.749844663752919, 19.275080383374736, 25.897290737678308, 36.92682714597828, 38.109883687601666, 71.742693053970726, 64.241341410068529, 116.36860702141172, 121.37679122991284, 99.676304070074451, 82.57326999937942, 52.615859887304801, 46.424831391908185, 29.785949829841556, 25.32601388432877, 18.099354774134348, 14.766764339656312, 12.153630713859069, 10.96985416786335, 8.4209913018587539, 7.250524365147534, 6.4057146645582961, 5.5981461093243476, 5.3317492648801599, 5.1651813219751173, 5.6692811710818027, 6.1816087593787605, 6.7828789822837923, 7.5791206500207382, 9.3276298749700803, 10.640074418564305, 12.432895564123386, 15.399396116974053, 22.147051076612065, 27.026614222359573, 44.566220734037259, 44.078075496086726, 91.338453331354202, 77.653974070304727, 165.76624382852506, 147.83029120770976, 146.35353694510263, 99.214909240790945, 65.261681531847557, 58.700399360289673, 34.099342109976497, 29.651622179353467, 18.849097825959049, 16.059093761394511, 13.133124938105075, 11.338462673842358, 8.7517061416953563, 7.5675834428185675, 7.1301831132348097, 5.8976209996629647, 5.3908701504578165, 5.4767794038379076, 5.8159952878399785, 6.4594660557219132, 7.1187881891372955, 8.0486546171077809, 10.548598460428188, 11.836714579435059, 13.433899198972929, 17.430516204833697, 24.968491799996333, 32.93952944330524, 57.177884093679054, 53.375296048832141, 114.19776495947798, 118.15132417284869, 178.63578678355586, 373.60823131669019, 163.52979203882796, 160.24793865518112, 69.971045180964367, 59.880411689763726, 34.302795951832763, 31.905227459883484, 22.921744826480438, 18.659998164390412, 13.785151925105746, 12.060831155359033, 10.256048021590846, 8.4599769870087602, 7.4405650580225213, 6.4024098578192588, 5.8777570769595933, 5.6472990693532674, 5.7472695906024622, 6.5906881398505668, 7.2289667101344008, 8.7163999068023195, 11.399293029930499, 11.992469004096606, 14.735821975464788, 18.426404144385724, 28.66816229850712, 32.588562049134516, 61.993039771960206, 63.837661879419088, 158.90321565708933, 141.37671573357554, 414.22422969876766, 356.46238810538273, 290.06783038865245, 225.59390630676842, 100.98276829758977, 91.691889335245619, 43.285550133972016, 40.503138381798749, 26.803938103683674, 21.540972163896271, 17.792540785133639, 14.056179340078506, 10.84836966442117, 9.3209224203195813, 7.8556092062941412, 6.8252966967815567, 6.3582342010947119, 6.0744238279118923, 6.2827863632965206, 6.606585163220883, 8.2623074625085593, 9.3586975241911592, 11.640978884779955, 13.342699317421838, 17.296816509483932, 22.60582022039592, 33.069491090524764, 35.918272816149603, 77.649689466739304, 85.296077399229731, 203.15162979817504, 271.63698834940351, 374.90366628545223, 747.45313809997936, 306.93195832405206, 376.64744495733714, 116.76781276597193, 103.58591233236646, 52.630934346953964, 41.896421037553985, 29.725858725465734, 24.153222030769193, 20.643784740763849, 16.902165529440701, 13.121694879148574, 9.9814777112217961, 8.4717730733339316, 7.3366871058004506, 6.8496831982856659, 6.2883229388812003, 7.0442060411780965, 8.0604380452509936, 8.9591957313528034, 10.40882856661349, 13.397071796412414, 16.131654569456249, 22.144491394300825, 25.615021546435344, 40.226583433899208, 44.672376324283235, 85.567113182097643, 105.95282903225828, 298.36000265745565, 307.54977114778819, 645.9614121973724, 835.14389492248984, 512.67235981711053, 491.99029211309386, 166.70872880265185, 177.29565831054779, 65.639482430818575, 65.229522054396938, 45.810504396910396, 30.503495373532761, 23.560923080173971, 18.804030398726255, 16.292785679101371, 12.701378035616358, 10.378269159275604, 8.6807340620832214, 7.5915323421249852, 7.2681515499390352, 7.4173871264629581, 8.8573627978869904, 10.364401595593863, 11.65888462925604, 16.823078359396849, 19.91641866758215, 25.001453363505686, 28.31859256730182, 42.047895128628411, 52.5866397932556, 117.99279203678799, 168.11833297683248, 339.57693755905132, 602.78945521124683, 575.84605817489012, 1655.110641943653, 428.26170612042955, 532.10468308026725, 243.7977381142021, 166.94308947555166, 88.111783673752683, 92.997872357952346, 59.942241598726952, 38.618352638886499, 28.755794586161898, 22.71051405085084, 19.437247877391968, 15.231685744885109, 12.153630271581999, 9.8512979659284898, 9.0449476750100377, 8.4814596475391344, 8.3521719629346407, 10.039166730615969, 11.879784189493675, 14.114074884510734, 17.663953414249978, 21.286505123099776, 28.774499596319639, 38.943190919202728, 68.918403190937497, 65.896409871808544, 123.46347336694488, 199.11678861892523, 355.64805874163045, 474.06373686518356, 1107.4422783913496, 984.41049770348843, 815.85074837225181, 775.23575614375761, 273.92630278831501, 252.63182137130985, 111.28266970072293, 99.372032348096738, 60.83763087499851, 45.645009020283112, 36.908082411505283, 27.013361134530022, 21.576487249184932, 18.648763248771502, 14.768605661776908, 12.046190961831442, 10.575558887972219, 9.6753965965616082, 9.9180360789582664, 11.326670941483108, 14.591336257090044, 16.88229911294021, 23.015774601871662, 25.983945716982106, 36.109063293014408, 49.03950825563831, 89.938945070024914, 109.59850796272681, 133.72435362068057, 338.97998181689348, 367.74073917398209, 999.69929532757897, 694.18752080971819, 3103.247947012359, 571.91471358300578, 796.83467383546474, 376.32680369835435, 199.77708080210391, 136.28687846912629, 109.08321361427504, 70.699184140809436, 51.550546699271379, 43.783667443733499, 32.767703049824149, 28.843093953252076, 24.191492945877858, 17.780247836887195, 14.323695266188444, 12.534926448772453, 11.554737628486032, 12.047936614807259, 12.823063914611335, 16.384534464689928, 19.175053589853043, 25.236762604525165, 31.105878831006304, 44.902325426247451, 49.392087964292365, 77.618781225119008, 104.58138455482161, 154.6103662752277, 201.53841636767004, 549.34301727365869, 752.81814346176634, 1415.2337173839583, 4621.9583294760132, 796.99783843130297, 1746.1261590593119, 497.02834719870856, 350.74973626382069, 169.44044949721726, 180.68252449032624, 131.28843074347478, 69.641961050084447, 57.668339838268842, 38.934743351431905, 36.827824955920356, 29.753917874884323, 21.80969609662602, 16.679039087380357, 13.095932326486084, 12.868626938575838, 12.905268434713202, 14.567417800537427, 18.667040937787927, 24.216782409074952, 30.634459542886628, 36.063389145893439, 49.07312675198979, 55.491719795512452, 102.11362429348968, 137.27956630294753, 168.53157442290532, 414.07061143445821, 628.37101334838928, 1388.3341571422957, 1569.7087860062475, 13155.613426817548, 1764.3970599036886, 3554.1418329345083, 1002.4311488284069, 467.75549674428527, 329.4298401862315, 268.62846926573025, 168.65094690401969, 97.660119608993, 72.05947971074437, 45.570220260185501, 38.320413578940503, 33.821722307900103, 25.182119519265683, 18.218896084560566, 14.866315284596766, 14.232776105799996, 15.053935075225828, 16.371866219790657, 21.966647147933109, 28.877176436297923, 35.028553697203037, 40.777478884094542, 60.482972761941951, 82.275357677734107, 171.59960210222522, 197.20815781182262, 252.15177845425956, 383.13279083281282, 1400.1475599443277, 2812.4738667722154, 3416.7436429144982, 12599.263825927617, 3622.9684974910801, 5206.7688479804747, 1902.8385884755519, 1144.8252089743219, 711.66550404730719, 456.93769304342817, 238.43595357759864, 133.8729941689642, 97.518896272497358, 54.320387908275166, 41.847677620126085, 35.71723276926113, 26.276495829612255, 20.022228188848846, 15.990808141800953, 15.422836018027411, 14.766368476202668, 18.019210888715723, 26.681133724080873, 32.936640633650477, 41.192651249931764, 50.820570501635224, 81.30134061470001, 110.43978615629425, 212.43602421277993, 359.3048107396736, 515.14459200644205, 805.20630634633051, 1626.8549963375588, 5397.5422498759854, 3215.125406898349], "imag": [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.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, 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.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, 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.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, 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.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, 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.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, 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.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, 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.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, 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.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, 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.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, 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.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, 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.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, 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.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, 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.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, 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.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, 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.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, 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.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, 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]}, "imag": [0.0, -0.14902020441330027, -0.67710495110878655, -0.6881801226004951, 0.029443579937724847, -0.20094871849937471, -0.68791245552521774, -0.72827812731264463, 0.078068344484514218, 0.41313375345763731, -0.11919960000393952, -0.71935556472958995, -0.033994075615829664, 0.79310271815610678, 1.0485412757882202, 0.31963459583846549, 0.0, -0.31963459583845072, -1.0485412757882226, -0.79310271815610678, 0.033994075615829379, 0.71935556472959095, 0.11919960000393916, -0.41313375345763476, -0.078068344484514218, 0.72827812731264185, 0.68791245552521862, 0.20094871849937485, -0.029443579937724836, 0.68818012260049433, 0.67710495110878632, 0.14902020441330027, 1.1657398208090677, -0.38761332589064507, -2.5163414932492363, -2.5847428019012222, 1.7065268205659907, -0.26659947141883028, -1.7612103334384195, -0.72822101015527074, 0.12179041297535136, 0.18687402270680736, -0.12109853545440831, -0.38401966930786352, -0.088335680660082488, 0.055468788382486998, -0.088649319780239585, 0.10356786689233256, 1.1808955745571665, -0.062779809082666185, -0.91400202990551882, -0.6085517196782837, 0.0094930924522060312, 0.20081299805530148, -0.06803304935655391, 0.012577652358335469, 0.033553295747053846, -0.13629795514777901, -0.55322476205333171, 0.16665348831683371, 1.6347625123407883, -1.2112325279336729, -2.7678867797785314, -1.1631005581009268, 0.53321212268228979, 0.65777424026102749, -0.0059595089834900304, 0.64333558032637317, -0.013400706408967681, -1.6693935905986217, -0.063469706678883048, 0.54580806133266158, -0.065590467240471795, -0.42286579957171455, -0.20235216162881253, 0.49440559267811185, 0.3198533678523926, -1.0020973416135801, -0.94614545335921363, -0.32112572063647837, 0.67188974240307031, 0.12355783613973209, 0.29355063118446922, 0.63795269671082688, 0.21171161290294277, -0.40654495049723688, -0.14885884441008196, 0.40518645419156046, 0.25176669622887876, -0.4761471503847452, -1.2694305395629708, -0.50115245917544937, 1.7379359185439549, -1.5104148448809891, -1.8127000456147733, 1.3511857905116147, -2.2248814745809709, -2.9260010474168467, 2.8988227737472689, 2.4923883909800804, -1.3958450829260902, -0.082278705724815937, 2.2133069351689647, 1.0491520212286578, -0.079840002578371538, -0.49590260672839781, -0.029646930580498103, 0.78872177906031093, 0.19612727406574681, -0.75096042381039763, -0.61442756278477972, -0.34589242057405933, -0.55827984508264517, -0.057639041847566158, 0.56000672509604699, 1.1779553213485192, 0.34297063731481625, -0.31700999971207366, -0.056952598408498582, 0.1857688253715537, 0.059515398961152523, -0.23070889488422375, -0.067289667533411021, -0.45052222849242474, -0.042895027980831071, 1.6598740406764962, 1.7912379411122816, -0.11630227482832883, -2.003866342355487, -2.7192489258221713, 0.9217002223108024, 0.99386370915341038, -0.45711185122492165, 0.97539351588020684, 0.30440417133895387, -0.076378287793857885, 0.10477257582077601, 0.078900323673397929, 0.2630152461937153, 0.031794382449249342, -0.11240615902951592, 0.23783868068434, 0.44775143101136344, -0.20105686300455952, -1.0552137607230396, -0.51401383512929344, 0.054526011609804782, -0.026488236207787865, 0.16590740229872669, 0.18522424653870803, 0.046314810086569159, -0.24537254610227913, -0.28481464669570439, 0.34829742340973674, 1.0879631977925206, 1.2627265059936403, -0.49634217295171235, 1.3751434251570953, 2.5572924798905374, -2.3835279088157275, -0.34512363817546704, 0.04627556386614428, -0.28363975810469, -0.2387205493926067, 1.1836766662488489, 0.7304559467631897, -1.0994633527727609, -0.56900890379210023, -0.052741079187555495, 0.36596287984784248, 0.15532358639646346, -0.36091327743771645, -0.19067540763230895, 0.71462283256924886, 0.60857599156682896, 0.051411148277875428, -0.20391538842359699, -0.25954108900834599, -0.53918948446164328, -0.5935512086649235, -0.13740024164207204, 0.43579638717256186, 0.22502803407041108, -0.23772213393956157, -0.22688331070114534, 0.42727537166712742, 0.47834844059991255, 0.32734133863952164, -0.52361461628388295, -0.20363203779578987, 0.71022032181918715, 0.2819659388244356, 1.3792526471429849, 1.5283654352438392, -1.3044681939973228, -1.1436891608956035, 1.3490121369222494, 0.71922211831958782, -0.27032254521482335, -0.33653973458463504, -0.15391447881479364, 0.12480482561109964, -0.053989084045087433, -0.18576918773324888, 0.077197958779916712, 0.29699641531309923, -0.11903191000719174, 0.22681336512596068, 0.54520489108855463, 0.040990511598931259, -0.20653728920388259, -0.37081845053148882, -0.07530964105542165, 0.12159159821884764, 0.14350417348960001, 0.043165763689791151, -0.057977138737883523, -0.1379293882828701, -0.37919334928832643, -0.48456288814685777, 0.97887759552535047, 0.57420771517448999, -1.1922323352837048, -0.13841464698630696, 0.7604729654567205, 0.58367944495087776, -0.034817975520708581, 0.18370340800622625, -0.031292542572728878, -0.067318712633041858, 0.33696607725615524, 0.05414244352918586, -0.020415046981723958, -0.074435708294427722, -0.05732302224609874, 0.14754486034992467, 0.17049224676424324, -0.35431714454113261, -0.378008901790788, -0.088220333609354634, 0.20519624064542319, 0.17151350221764664, 0.17699487940227424, 0.19591419189057305, 0.0065199157977709234, -0.1674811218328473, -0.10967941676700359, 0.13440132102674274, 0.069755270915603892, -0.34407110156451998, -0.47647271020395277, 0.24778628953900186, 0.94881647182464612, 0.71445852536721188, -0.69300717410155177, -0.23252823659006602, -0.70126327582172698, -0.73508712834563017, 0.77441038277434426, 0.80063078785779984, -0.29211349969120898, -0.50261897876845574, -0.15844491832687652, 0.10672884533820617, 0.083096171746834438, -0.061219034404081496, 0.041606427790415887, 0.31036717878062553, 0.16259404663751506, -0.36128817330809687, -0.29370929634970039, -0.3179547262684097, -0.4515155411552858, -0.033181026716305836, 0.29522952049075729, 0.48699666134020275, 0.18589909016841552, -0.2294714118021266, -0.20114354017885722, -0.003121578634498275, 0.059620355744470117, -0.08629332168254554, -0.013702104296225414, 0.27636362870999703, -0.20367519268137141, -0.071823375624897781, 0.65390853098071755, 0.57936885621079115, -0.082507324096629489, 0.056565164700343597, 0.30313037910422419, 0.046580925466156033, -0.14205860955679683, -0.10567626674414661, -0.14942985439330783, 0.021649684970292335, 0.030697590171757046, -0.022837521893794246, 0.043322807027412293, 0.15694334998636744, 0.01091806619852779, 0.020198601252688204, 0.29902161442575942, -0.15020855085379564, -0.40608170156430695, -0.21661403238492213, 0.10933934038264595, 0.1999075728830931, 0.14959651238129035, 0.047092746667091859, -0.040888308386862755, -0.1125167716796989, -0.043845680385689492, 0.15335701874304222, 0.24380570184994388, -0.1171131305850218, -0.57195255260213129, -0.37275928254301222, 0.52232110568095647, 0.45087452742355255, 0.45399067647357039, 0.4510373698265433, -0.25445646061023242, -0.54674967268083918, -0.081775771006690631, 0.2737673334004137, 0.18625608494518781, 0.012289477611188196, -0.028787447589128854, -0.055397340673381909, -0.033006645910307206, -0.3893684484392882, -0.59052876986306613, 0.35206862979259157, 0.75972882974271683, 0.47741066022580114, 0.61795462873852247, -0.010739694431020583, -0.30365007670052568, -0.79734464193821375, -0.40014152475128489, 0.35743197872152449, 0.33543159046029042, -0.048324103015847428, -0.1196515677085014, 0.073496444899392971, 0.11953255023805801, -0.055918533770930395, 0.0274579890256498, -0.087565507326424513, -0.47798364115462866, -0.30556827592707503, -0.053529165520136063, -0.064762544527802626, -0.40460920017095653, -0.121109915711457, 0.34242949885797147, 0.25707377311839885, 0.18878454879876447, 0.05963524828049447, -0.042881345638875606, 0.080317301592987653, -0.066661209183029674, -0.78426965250242053, -0.67203925142686172, 0.38802788881902983, 0.13118499909748943, 0.3117062095733994, 0.51892211454846937, 0.28497632977966614, -0.6374756986952439, -0.78570616426150541, -0.55004558199035003, 0.081464209729413414, 0.32078878775035424, 0.10057675741278467, -0.038856958620208222, -0.093816614253325048, -0.12197711394968046, 0.10773217761141921, 0.53279302352225322, 0.49767840692700166, -0.40074591616539607, -0.4686202607911239, -0.47347988353308479, -0.38787976346044234, 0.0026864061776988978, 0.3750647268903417, 0.15775363291879776, -0.12070461118398887, 0.046341940929038844, 0.069762555352500089, 0.036760253935025015, 0.11153094686031426, -0.23193620085952527, -0.025338164060148199, 0.83717158631584143, 0.14069991818818439, -0.80636013277763063, -1.117979830240589, -0.53116916718597551, -0.29647728355917563, 0.43255465109120794, 1.0682488929022527, 0.7439367652619796, -0.27653752308302104, -0.43736635010141273, -0.051946126514290911, 0.075483221784175089, 0.041517261114611535, 0.089698476442270109, 0.18582746405096062, 0.11108661545235869, 0.17635934890910801, 0.26257982919312395, 0.014915731745956722, -0.051592883258874553, -0.15702165108916452, 0.26018009521205254, 0.10187767444835746, -0.5266864552492494, -0.19184365339748963, 0.12365061867406398, -0.0040460672180273232, -0.10695443147688474, -0.38062982787546124, -0.23013531228214942, 1.4911852257492946, 1.8656257067805557, -0.31189832297292175, -1.8409665915911073, -1.3523062385443718, -0.59758078449912422, -0.4109826389978809, 0.64471434504327652, 1.2836469730056959, 1.499792380953558, -0.050007892106663135, -0.70097924672910039, -0.37676357011449496, 0.039596089571393787, 0.16672200998370845, 0.27616851123315678, 0.25535752279806784, -0.25821883180569144, -0.71643423075370694, -0.2869241470876478, 0.19246225810939122, -0.48949334565382685, -0.6758600491934259, -0.60078389394518394, -0.1042403296189125, 0.33526929000920908, 0.41773479752161374, -0.015233071039077716, -0.23129559015563347, -0.27890178606409965, -0.36644166250128341, 0.53421537629701843, 1.5124695265818406, 0.46952715514837384, -1.6086255934377758, -0.58627286749798335, 0.2521262787687128, 0.81274320419200763, 1.0066444599512538, 0.13589799436620603, -0.52681222515518755, -0.80035014449929209, 0.17170214273365031, 0.32102965848797577, 0.015298055895547559, -0.0095152173876638588, -0.05852775349790857, -0.29325388964527122, -0.23187846370788526, 0.12261389073580377, 0.13365949638292357, 0.34550584055022809, 0.32834338818238823, -0.63681653846377151, -0.14332768166025622, -0.050699039849278892, 0.076799367032860139, 0.62304231858822723, 0.13934878438080031, -0.36565795334395523, -0.22525673769874993, 0.058882171297733404, 0.45328032825037023, 0.67278513933730488, -0.62930489911730125, -2.1514876673114358, -0.38381606543972158, 1.7701780351745315, 2.2434589636984619, 1.3655631816809142, 0.67716955795129208, 0.23622587273603302, -1.2645365769339125, -1.1592659817915987, 0.22681074823924935, 1.0532421029439241, 0.47375681144418214, -0.017283859373080118, -0.31852036401253409, -0.42276437548587065, -0.20851072339742521, 0.32537663103197029, 0.67802433082994906, 0.64221455700256691, -0.19334381074242141, 0.0, 0.98534755955725073, 0.93082832187418163, 0.090975734109736334, -0.23547278252877649, -0.42043029453907255, -0.16156648245217306, 0.14891910968678568, 0.27252999755409263, 0.21807537509429559, -0.1793267317851967, -1.3886930910143056, -1.2475969582391058, 0.82617687521947225, 1.688041333210945, 0.93307675660552747, 0.0, -0.93307675660552858, -1.688041333210949, -0.82617687521947558, 1.2475969582391047, 1.3886930910143054, 0.17932673178519704, -0.21807537509429575, -0.27252999755409263, -0.14891910968678598, 0.16156648245217331, 0.42043029453907194, 0.23547278252877635, -0.090975734109735945, -0.93082832187418285, -0.9853475595572504, 0.63681653846377428, 0.19334381074242313, -0.64221455700256724, -0.67802433082995051, -0.32537663103196973, 0.20851072339742566, 0.42276437548587059, 0.31852036401253342, 0.017283859373080232, -0.47375681144418219, -1.0532421029439241, -0.22681074823925124, 1.1592659817916007, 1.2645365769339141, -0.23622587273603313, -0.67716955795129263, -1.3655631816809146, -2.2434589636984619, -1.7701780351745346, 0.38381606543971747, 2.1514876673114336, 0.62930489911730425, -0.67278513933730544, -0.45328032825037173, -0.058882171297733529, 0.22525673769874915, 0.36565795334395551, -0.1393487843807989, -0.6230423185882269, -0.076799367032859514, 0.050699039849279363, 0.14332768166025514, 0.48949334565382807, -0.32834338818238801, -0.34550584055022948, -0.13365949638292388, -0.12261389073580344, 0.23187846370788381, 0.29325388964527066, 0.058527753497908265, 0.0095152173876637894, -0.015298055895547204, -0.32102965848797627, -0.17170214273365259, 0.80035014449929354, 0.52681222515519222, -0.13589799436620179, -1.0066444599512541, -0.81274320419201052, -0.25212627876871579, 0.5862728674979838, 1.6086255934377784, -0.46952715514837307, -1.5124695265818422, -0.53421537629701898, 0.36644166250128374, 0.27890178606409988, 0.23129559015563281, 0.01523307103907798, -0.41773479752161302, -0.33526929000920919, 0.1042403296189123, 0.6007838939451835, 0.67586004919342602, 0.051592883258874796, -0.19246225810939102, 0.28692414708764713, 0.71643423075370816, 0.25821883180569155, -0.25535752279806728, -0.27616851123315733, -0.16672200998370851, -0.039596089571393857, 0.37676357011449418, 0.70097924672910006, 0.05000789210666385, -1.4997923809535563, -1.2836469730056956, -0.64471434504327885, 0.41098263899788057, 0.59758078449912211, 1.352306238544366, 1.8409665915911118, 0.31189832297292347, -1.8656257067805575, -1.4911852257492944, 0.23013531228214901, 0.3806298278754614, 0.10695443147688473, 0.0040460672180278982, -0.12365061867406386, 0.19184365339748918, 0.52668645524924984, -0.10187767444835667, -0.26018009521205249, 0.15702165108916435, 0.47347988353308512, -0.014915731745956694, -0.26257982919312345, -0.17635934890910804, -0.11108661545235819, -0.18582746405096062, -0.089698476442269984, -0.041517261114611431, -0.075483221784175006, 0.051946126514290501, 0.43736635010141267, 0.27653752308302265, -0.74393676526197827, -1.068248892902254, -0.43255465109120911, 0.29647728355917641, 0.53116916718597607, 1.1179798302405872, 0.80636013277763019, -0.14069991818818398, -0.83717158631584188, 0.025338164060147935, 0.2319362008595256, -0.11153094686031419, -0.036760253935025175, -0.069762555352499631, -0.046341940929038775, 0.12070461118398874, -0.15775363291879749, -0.37506472689034165, -0.0026864061776987339, 0.38787976346044295, 0.053529165520136666, 0.46862026079112395, 0.40074591616539496, -0.49767840692700188, -0.53279302352225388, -0.1077321776114199, 0.12197711394968033, 0.093816614253324923, 0.038856958620208139, -0.10057675741278502, -0.32078878775035391, -0.081464209729413262, 0.55004558199034881, 0.78570616426150586, 0.63747569869524534, -0.28497632977966464, -0.51892211454846815, -0.31170620957339795, -0.13118499909748749, -0.38802788881902978, 0.67203925142686127, 0.78426965250242042, 0.06666120918302984, -0.080317301592987847, 0.042881345638875745, -0.05963524828049447, -0.18878454879876405, -0.25707377311839802, -0.34242949885797153, 0.12110991571145559, 0.40460920017095686, 0.064762544527803223, -0.45399067647357122, 0.30556827592707503, 0.47798364115462999, 0.087565507326423986, -0.027457989025650414, 0.055918533770930486, -0.11953255023805759, -0.073496444899393262, 0.11965156770850158, 0.048324103015847719, -0.33543159046028986, -0.35743197872152471, 0.40014152475128417, 0.79734464193821419, 0.30365007670052546, 0.010739694431020585, -0.61795462873852236, -0.4774106602258017, -0.75972882974271716, -0.35206862979259274, 0.59052876986306602, 0.38936844843928831, 0.033006645910306921, 0.055397340673381999, 0.028787447589128854, -0.012289477611188065, -0.18625608494518778, -0.2737673334004137, 0.08177577100669034, 0.54674967268084007, 0.25445646061023275, -0.45103736982654352, 0.082507324096629073, -0.45087452742355144, -0.52232110568095624, 0.37275928254301144, 0.5719525526021314, 0.11711313058502268, -0.24380570184994438, -0.15335701874304256, 0.043845680385689638, 0.11251677167969909, 0.040888308386862651, -0.047092746667091887, -0.14959651238128985, -0.19990757288309219, -0.10933934038264552, 0.21661403238492188, 0.40608170156430567, 0.15020855085379528, -0.29902161442575986, -0.020198601252688145, -0.010918066198527492, -0.15694334998636708, -0.043322807027412154, 0.022837521893794229, -0.030697590171757067, -0.02164968497029204, 0.14942985439330775, 0.10567626674414606, 0.14205860955679689, -0.0465809254661547, -0.30313037910422319, -0.05656516470034452, 0.70126327582172698, -0.57936885621079104, -0.65390853098071722, 0.071823375624897504, 0.20367519268137155, -0.2763636287099972, 0.013702104296225327, 0.086293321682545693, -0.059620355744470117, 0.0031215786344983188, 0.20114354017885719, 0.22947141180212641, -0.1858990901684156, -0.48699666134020314, -0.29522952049075735, 0.033181026716305816, 0.4515155411552858, 0.31795472626840998, 0.29370929634969961, 0.36128817330809659, -0.16259404663751492, -0.3103671787806257, -0.041606427790415977, 0.061219034404081517, -0.083096171746834438, -0.10672884533820629, 0.1584449183268766, 0.50261897876845563, 0.29211349969120898, -0.80063078785779973, -0.77441038277434415, 0.73508712834562984, -0.7604729654567195, 0.23252823659006566, 0.69300717410155133, -0.71445852536721133, -0.94881647182464579, -0.247786289539003, 0.47647271020395332, 0.34407110156452003, -0.06975527091560392, -0.13440132102674238, 0.10967941676700353, 0.16748112183284758, -0.0065199157977711844, -0.19591419189057413, -0.17699487940227479, -0.17151350221764519, -0.20519624064542319, 0.088220333609354384, 0.37800890179078739, 0.35431714454113228, -0.17049224676424349, -0.14754486034992517, 0.05732302224609858, 0.074435708294427874, 0.020415046981723993, -0.054142443529185957, -0.33696607725615474, 0.067318712633042552, 0.031292542572729155, -0.183703408006228, 0.034817975520707763, -0.58367944495087642, -1.3792526471429849, 0.1384146469863056, 1.1922323352837043, -0.57420771517448999, -0.97887759552535036, 0.48456288814685816, 0.37919334928832632, 0.13792938828286982, 0.057977138737883592, -0.043165763689791442, -0.14350417348959951, -0.12159159821884727, 0.0753096410554214, 0.37081845053148832, 0.20653728920388284, -0.040990511598931294, -0.5452048910885553, -0.22681336512596068, 0.11903191000719161, -0.29699641531309889, -0.077197958779916934, 0.18576918773324919, 0.053989084045087239, -0.12480482561109926, 0.15391447881479356, 0.33653973458463499, 0.27032254521482346, -0.71922211831958716, -1.3490121369222496, 1.143689160895601, 1.3044681939973219, -1.5283654352438407, 0.34512363817546499, -0.28196593882443538, -0.71022032181918571, 0.20363203779578934, 0.52361461628388117, -0.32734133863952108, -0.47834844059991177, -0.4272753716671272, 0.22688331070114495, 0.23772213393956154, -0.22502803407041136, -0.43579638717256142, 0.13740024164207254, 0.59355120866492272, 0.53918948446164539, 0.25954108900834527, 0.20391538842359649, -0.051411148277873762, -0.60857599156682773, -0.71462283256924997, 0.19067540763230911, 0.36091327743771712, -0.15532358639646357, -0.36596287984784226, 0.052741079187555578, 0.56900890379209967, 1.0994633527727615, -0.73045594676318792, -1.18367666624885, 0.23872054939260659, 0.28363975810469044, -0.046275563866146709, 2.0038663423554866, 2.3835279088157284, -2.5572924798905374, -1.3751434251570973, 0.49634217295171212, -1.2627265059936426, -1.0879631977925208, -0.34829742340973796, 0.28481464669570433, 0.24537254610228046, -0.046314810086569187, -0.18522424653870898, -0.16590740229872719, 0.026488236207788063, -0.054526011609805532, 0.514013835129293, 1.0552137607230383, 0.20105686300456052, -0.44775143101136289, -0.23783868068434011, 0.11240615902951644, -0.031794382449249259, -0.26301524619371552, -0.078900323673398332, -0.10477257582077593, 0.076378287793858177, -0.30440417133895292, -0.97539351588020617, 0.45711185122492154, -0.99386370915341027, -0.92170022231080229, 2.7192489258221721, 2.2248814745809713, 0.11630227482833386, -1.7912379411122841, -1.6598740406764991, 0.042895027980832189, 0.45052222849242363, 0.067289667533409939, 0.23070889488422444, -0.059515398961152315, -0.18576882537155384, 0.056952598408498437, 0.31700999971207372, -0.3429706373148162, -1.1779553213485197, -0.56000672509604887, 0.057639041847566339, 0.55827984508264517, 0.34589242057405939, 0.6144275627847795, 0.75096042381039751, -0.19612727406574634, -0.78872177906031049, 0.029646930580497943, 0.49590260672839631, 0.079840002578371469, -1.0491520212286569, -2.2133069351689625, 0.082278705724815757, 1.3958450829260909, -2.4923883909800781, -2.8988227737472685, 2.926001047416845, -0.53321212268228979, -1.3511857905116138, 1.8127000456147735, 1.5104148448809913, -1.7379359185439534, 0.50115245917545159, 1.2694305395629717, 0.47614715038474426, -0.25176669622887887, -0.40518645419156096, 0.14885884441008229, 0.4065449504972391, -0.21171161290294366, -0.63795269671082933, -0.29355063118447033, -0.12355783613972898, -0.67188974240307053, 0.32112572063647804, 0.94614545335921341, 1.0020973416135777, -0.3198533678523926, -0.49440559267811113, 0.20235216162881259, 0.42286579957171511, 0.065590467240471767, -0.54580806133266224, 0.063469706678882465, 1.6693935905986201, 0.013400706408968283, -0.64333558032637317, 0.0059595089834898612, -0.65777424026102704, -1.1657398208090681, 1.1631005581009257, 2.7678867797785287, 1.2112325279336758, -1.6347625123407896, -0.16665348831683333, 0.5532247620533326, 0.13629795514777876, -0.033553295747053943, -0.012577652358336237, 0.068033049356555603, -0.20081299805530076, -0.0094930924522065932, 0.60855171967828092, 0.91400202990551482, 0.062779809082669502, -1.1808955745571674, -0.10356786689233179, 0.08864931978023799, -0.055468788382486117, 0.088335680660082266, 0.38401966930786247, 0.12109853545440752, -0.18687402270680636, -0.12179041297535122, 0.72822101015526997, 1.7612103334384188, 0.26659947141883078, -1.7065268205659894, 2.5847428019012186, 2.5163414932492363, 0.3876133258906464], "height": 32, "width": 32, "top": {"real": [28423.105313214044, 28674.724231095144, -722.69366896540907, 9225.7770064733304, 1497.6465357448014, 760.04278979701394, 247.10162746021342, 151.72529893327805, -4.8884885781823266, -16.133735393751934, -0.18360891080128469, 2.3500990684470797, -0.33005469194377962, 4.1571470713537551, 9.5943595112319517, -8.8624203891274274, -22.052590313243808, -8.8624203891274416, 9.5943595112320637, 4.1571470713537408, -0.33005469194377934, 2.3500990684471894, -0.18360891080150321, -16.133735393751511, -4.8884885781823266, 151.72529893327811, 247.10162746021339, 760.04278979701553, 1497.6465357448021, 9225.777006473334, -722.69366896540839, 28674.724231095115, 25390.170503473099, 2752.5053486176007, -7213.0026112046817, -848.38159326591301, 982.95511309135748, 457.86146922204989, -46.175546007130123, -28.684822585718617, 4.5612631126941601, 36.180920465642473, 1.491875160093084, -21.191137754573024, 2.8803824684767365, 32.414130280804258, 20.161840527236397, -4.0194858939287581, -5.5658589086089485, -1.4949158508676244, -19.561354112987054, -17.959748575409641, 0.86872374588173218, 25.323206346284437, 8.3348052170650675, -41.926948021480371, -20.687109086504861, 218.3167491556907, 546.49872794031398, 514.9954980598236, 620.49539711803413, 4452.6929959791041, -174.99103969876961, 2133.8618335997025, 26666.274860226469, 9631.0824500605449, -10095.4436331661, -4944.5276302554494, 770.97093894980139, 234.73611402062764, -189.92210588558362, -126.31904474729288, -4.4359398121268772, 25.844521173618485, 1.2207482283869857, -12.318944408119624, 7.2506028858091991, 18.769456353148023, 2.7720670784771717, 0.13907690271807935, 9.7740131156133714, 6.2313507558256029, -20.012525822291419, -16.040469196891664, 3.7834180501306807, 18.113814308198215, 6.9628905148897537, -1.8812165005783674, -3.1507841384785769, 24.526337675319898, 193.3623500499944, 465.72794392086701, 284.66528985874095, -3081.1066694335791, -9076.4400559658607, 1118.2132640961638, 5705.1501208043383, 397.85150159824235, -2822.6768689275941, 728.40381948841912, 1249.2695734137342, 82.616255878071726, -93.950748347298983, -33.623549275177439, -5.1522911915584819, -7.2338183321331133, -7.001283565832134, 11.310122449566075, 7.3973207504467258, -10.314744048939033, -17.670460817927417, 0.86416108685457238, -1.7856630822843305, 4.9636496941116963, 3.7892183180180301, 4.3540479322804604, 0.81912298615372481, -8.9239476494738241, -0.63615178952006057, 26.029536485331942, 20.179218397178587, -95.964038421947748, -279.42683310552798, -11.991282367617261, 1111.9285745591587, 12.384349101876612, -5014.4780810602624, -931.02314429185174, -2935.685284408914, -1215.2968180059599, 2222.0566542865231, 1545.4091719722733, -307.58274676435752, -163.25068439377958, 122.1532745420013, 76.416221889183532, 3.1644160240378296, -19.634567061108559, -1.3809484232923637, 15.595649759531634, 4.7705608814238305, -10.468288519634084, -9.7282165445191495, -3.892040076973144, -8.4797405266260863, -0.5408298481218079, 13.233921729082965, 15.992639239497516, 3.5976801907925586, -15.812600063085762, -8.7583525837485485, 13.529650759569922, 11.041451779488147, -36.837920974757942, -116.57081449547842, -177.82612582226329, 206.8817050386096, 1116.6649976696201, 1551.5341746851843, 206.06587874917457, 221.21501338856706, 949.59692563201861, 2377.7643188321972, 271.30602644407116, -752.63562664968606, -131.94201270845676, 66.794183325011446, 26.328209125885053, -2.6512991036295719, -7.060878043009799, 3.4956142029525408, 4.0712276182145608, -0.49091417497970008, -0.54247114501895244, 2.5929708279440629, -2.2683391883792092, -3.9697444489461264, 0.64738652825819076, 4.555701357906309, 5.0432051545575858, 1.8637246814391786, -2.1415599665130838, -3.0402232986351168, -7.5278540025228704, -9.1564876386533562, 18.733705732232028, 116.47631097371497, 62.470104114045292, -587.35890158810116, -665.30895184878261, 1602.7477447230021, 2320.4028678586192, 84.3231427941042, 335.33509531572889, 111.12995285997569, -246.89163612982301, 99.59266396905916, 121.29447232003599, -19.935724961316957, -24.271547137145927, -9.9392605214134129, 3.6463495838243953, 2.4659870551932221, -4.9118061115950002, -3.9830584925921726, 3.1158463847663604, 4.6325922286854171, 0.7426231797993057, 2.6761268245222913, 0.75707810610464332, -2.0529004071821726, -5.4726123906428121, -3.3500885842682195, 4.7318552060186496, 3.3081314176561212, -7.5747009667011485, -9.660327017316277, 13.948321679490391, 60.920555877786029, 51.912766255688908, -200.57409151559827, -358.55234539419581, 389.87395397760162, 626.9468569152699, 385.67355889894168, 266.46730452215979, -754.85949807698285, -357.47689087779764, 198.35300746583653, 104.20178335269868, 0.2335042399832746, -13.459048177551795, -2.4931441622280337, 3.3591145464251499, -0.87332830625456936, -5.0562417941567173, -2.0170485858323599, 2.3079461733716489, 1.2848757720394648, 1.0044515769395077, 2.2715095300739048, 1.0357721766880663, -1.8190548566089728, -3.9293196367766434, -3.2116043474898985, 1.2474845862739923, 2.207161661351936, 0.30672454240560637, -1.2664097847556852, 1.1634429445003909, -12.548270616696369, -13.623126322836848, 148.11914826060797, 160.05821428876476, -517.73406283289592, -683.78444654557211, 232.19478887738595, 129.53848012256918, -30.629684625724426, 14.007085088982263, -28.536726784912368, -22.150721493101905, 7.4458049666709201, 6.5426060710782901, 2.7181624419475532, -0.21791167804934167, -2.1894859760859342, -0.30261213114781382, 1.6929032656017511, 0.075295172141104427, -2.5525542005113677, 0.092868468976744334, 0.059811282681573222, 0.44341981227717964, 0.7816687865488906, 1.8071322433818207, 1.0194826794166407, -1.7022885447654383, -1.6578557975757291, 1.4780948040669197, 2.3190205805607031, -2.0993082250693513, -8.8242080507891387, 6.7426676795129614, 63.308016957216438, 32.614432065456008, -214.97833639893088, -154.136284333817, -153.00121169652448, -168.20144264926009, 132.73656142769508, 108.19035464369672, -32.411936148940164, -29.299646468639978, 0.48512698058416193, 5.624023137620874, 1.3789304004393061, -2.3621905210139289, -1.2100039550542188, 4.3583730663879736, 4.4422506314578856, -3.3529459489445013, -3.2593326279479276, -2.3921307524924811, -2.978651033636929, -0.78921784490688773, 2.0776847434633869, 4.6706759151301158, 3.7169173278476082, -1.8762573022143243, -3.6928619255631911, -0.82171694591384903, 1.0313698171467438, -0.47387208215225501, 4.5050179323404294, 12.279477314121408, -23.426373610246564, -47.509829762735897, 96.770610724801742, 142.54719834919302, -140.65053169937673, -123.6545784250871, -20.023908130365463, 5.7599623270112001, 10.838125249555288, 8.3690034326252576, -0.61869787578431057, -1.9872713177733001, -0.88566790635833359, -1.3475268812751358, 0.76129128976144478, 4.1066846542201834, 0.69320146991960074, -1.2677968128954245, 0.81553632831789258, -1.6303291884460738, -2.2291497640151472, -1.5668982951183865, 1.2058440679467928, 2.0699393017293768, 1.4972394562433364, -0.45863502618354141, -1.2690924739742997, -0.78463693252535771, -0.71980764244508078, 0.10250612713533153, 2.393822328408012, -0.41309740564872016, -15.44378212490165, 0.6609566018409474, 72.351368761661817, 25.384635851249769, 24.183834027615426, 48.560459752587064, -30.885786753212521, -41.646585437272115, 4.9406680758638473, 9.7637208498293564, -2.6994657893152145, -2.3673227042220928, 0.99131130124397382, 1.9229365129251841, 1.0659834826624002, -5.2481714738530103, -7.2759438909005807, 4.8682061863604567, 9.822573727789889, 5.6528275472549172, 2.0386422190351761, 0.27431668194701375, -2.1164683881366688, -6.0913412323542273, -4.1102964274349301, 3.1073479985221883, 4.720787089742764, 1.4415919680128015, 0.049935137368385736, 0.23499648430732389, -3.983837312738201, -10.315757961787851, 3.7701904804417365, 17.40344272954281, -26.485594572094836, -57.180963546905772, 56.164057478325546, 74.232658958160258, -2.1566648897744729, -33.253025139779027, -16.080807358669208, -7.6408862919476457, -0.061535710181698199, 4.3516423276699152, 3.0483876930594445, 1.4396821019147403, -2.1531487354432772, -12.330021507307762, -6.784080497103278, 6.2189314368004602, 6.5359347127328817, 5.8394886675864184, 6.5502057137602838, 2.8897971357633669, -4.5807084372558364, -7.1480702421459901, -3.5449281234624839, 3.1166956033252706, 5.7654746814446929, 1.4593710853505601, 0.079551299266885034, 1.7754263793290057, 1.1602778115858083, -4.1621952562095537, -6.1090111539332135, -21.585708623899716, -64.660963126416291, -42.918674159823304, -12.637618832694352, -23.660098526273554, -32.757377164957738, -16.139835139531076, -8.8214501105659302, -0.074083275956097649, 9.2347297800775099, 4.0583945463193585, -1.3379386144670409, -1.0708228123536387, -3.7494033803061741, -1.4014962110675557, 6.3397919866467625, -0.03663393601032304, -6.5449789794813107, -2.0617294503879311, 2.9031092319630374, 1.9851413256277737, 1.0607201932740675, 2.7050589244056695, 2.9910202735510598, -2.6114709035663148, -2.998378794740129, -0.21466478532365837, -0.045062120129980232, 0.26663892053888355, 4.6476599377621559, 4.3038853444793466, -6.8220974094569344, -12.449318624888502, -10.129633105210658, -14.243655171088259, -24.590264561101538, -60.147765518061014, -2.4700759029582726, 27.756533006476555, 4.2749753092209222, 1.5109008418257455, 2.3037162841058008, -3.3991123070026288, -2.3657348243984693, -1.7285717434362748, 1.4807803344279866, 11.452735641829591, 12.838038879276603, -0.48093805977912302, -8.4823730361517384, -10.096707565442667, -5.1613641497068938, -2.6506938623127332, 9.4081369631901755, 9.4967470257992304, 1.5732629424154292, -6.2329583900406389, -7.3741953717279571, -0.66458216201047882, 2.3894666174155379, 0.72026798365788192, -2.7056126524381918, -1.4278421900811593, 6.2735441200134945, 15.997118782527094, 32.340859723792008, 29.293996905608573, 6.5830123071218694, -6.0118236769643065, 35.32705272368031, 28.93384981751958, 4.6778289682139205, -4.8626411358427797, -9.0689375245571853, -5.8403695985513542, -0.88764146409061928, 0.44619327315923196, 2.0930545096716431, 8.2346460399114871, 4.4412927362425512, -3.9444092199360696, -3.9225599509162312, 0.038172103710441746, -1.1645390667947013, 3.8468081061273272, 3.825131103533594, 0.73794607986345129, -4.4683377641176865, -3.1226055206334693, -1.659659462142453, -1.5916869216083986, 0.66773943004769798, 3.4159390288117701, 1.5141668200491456, 0.24760595741359728, -0.60433400901725032, -18.385421885703135, -9.3028295113894721, 25.73026622408986, 16.23212758885586, 17.912434056418146, -8.8649857221999238, -22.650006821252305, -4.6057627844621933, 3.1371579845110453, -0.064465121107319889, -0.7788946841662594, -1.4905827462536891, -1.6111207980069511, 3.9054962114874257, 1.1954905638175628, -5.7282279624444916, -8.3976603765003119, -2.0078722367450874, 4.7029696271178913, 9.1972361583870761, 4.7029696271178825, -2.0078722367450905, -8.3976603765003119, -5.7282279624444836, 1.1954905638175473, 3.9054962114874288, -1.6111207980069395, -1.4905827462536891, -0.77889468416625518, -0.064465121107317946, 3.1371579845110462, -4.6057627844621942, -22.650006821252259, -8.8649857221999415, 17.912434056418164, 6.583012307121729, 25.730266224089799, -9.3028295113894721, -18.385421885703128, -0.60433400901726175, 0.24760595741359434, 1.5141668200491516, 3.415939028811767, 0.66773943004769509, -1.5916869216084077, -1.6596594621424434, -3.1226055206334529, -4.4683377641176723, 0.73794607986344696, 3.8251311035336037, 3.8468081061273467, -1.1645390667946849, 0.038172103710459718, -3.9225599509162259, -3.9444092199360838, 4.4412927362425298, 8.2346460399114854, 2.0930545096716502, 0.44619327315923041, -0.88764146409061584, -5.8403695985513515, -9.0689375245571728, -4.862641135842777, 4.6778289682139134, 28.933849817519487, 35.327052723680374, -6.0118236769642888, -24.590264561101595, 29.293996905608687, 32.340859723791993, 15.997118782527064, 6.2735441200134687, -1.4278421900811535, -2.7056126524381958, 0.72026798365787437, 2.3894666174155401, -0.66458216201047282, -7.3741953717279607, -6.2329583900406416, 1.5732629424154319, 9.4967470257992108, 9.4081369631901666, -2.6506938623127225, -5.1613641497068841, -10.096707565442674, -8.4823730361517544, -0.48093805977915227, 12.83803887927658, 11.452735641829598, 1.4807803344279824, -1.7285717434362824, -2.3657348243984719, -3.3991123070026203, 2.3037162841058088, 1.5109008418257512, 4.2749753092209266, 27.756533006476598, -2.470075902958246, -60.147765518061043, -12.637618832694358, -14.243655171088175, -10.12963310521061, -12.449318624888507, -6.8220974094569566, 4.3038853444793421, 4.6476599377621488, 0.26663892053888499, -0.045062120129979372, -0.21466478532365083, -2.998378794740133, -2.6114709035663206, 2.9910202735510656, 2.7050589244056806, 1.0607201932740935, 1.9851413256277779, 2.9031092319630249, -2.0617294503879293, -6.5449789794813169, -0.036633936010327744, 6.339791986646766, -1.4014962110675422, -3.7494033803061728, -1.0708228123536432, -1.3379386144670453, 4.0583945463193594, 9.2347297800775188, -0.074083275956095859, -8.8214501105659284, -16.139835139531023, -32.757377164957752, -23.660098526273632, 56.164057478325425, -42.918674159823318, -64.660963126416391, -21.585708623899666, -6.1090111539332215, -4.1621952562095581, 1.1602778115858134, 1.775426379329013, 0.079551299266884423, 1.4593710853505546, 5.7654746814447053, 3.1166956033252631, -3.5449281234624781, -7.1480702421459874, -4.5807084372558347, 2.8897971357633647, 6.5502057137602785, 5.8394886675864104, 6.5359347127329022, 6.2189314368004851, -6.78408049710327, -12.330021507307773, -2.1531487354432741, 1.439682101914743, 3.04838769305944, 4.3516423276699179, -0.061535710181697623, -7.6408862919476563, -16.080807358669187, -33.253025139779005, -2.1566648897745, 74.232658958160258, 24.183834027615593, -57.180963546905936, -26.485594572094925, 17.403442729542817, 3.7701904804417596, -10.315757961787877, -3.9838373127381965, 0.23499648430733011, 0.049935137368386437, 1.4415919680127984, 4.7207870897427613, 3.1073479985221901, -4.1102964274349274, -6.0913412323542424, -2.1164683881366799, 0.27431668194701325, 2.0386422190351805, 5.6528275472549048, 9.822573727789889, 4.8682061863604691, -7.2759438909005807, -5.2481714738530263, 1.0659834826623993, 1.9229365129251905, 0.99131130124397682, -2.3673227042220857, -2.699465789315211, 9.7637208498293848, 4.9406680758638624, -41.646585437272229, -30.885786753212596, 48.560459752587221, -140.65053169937659, 25.384635851249651, 72.351368761661789, 0.66095660184101279, -15.443782124901649, -0.41309740564871933, 2.3938223284080151, 0.10250612713533497, -0.71980764244507844, -0.78463693252535704, -1.2690924739742999, -0.45863502618354285, 1.4972394562433307, 2.0699393017293644, 1.2058440679467857, -1.5668982951183805, -2.2291497640151445, -1.6303291884460729, 0.81553632831788769, -1.2677968128954307, 0.69320146991959397, 4.1066846542201878, 0.76129128976144589, -1.3475268812751391, -0.88566790635833126, -1.9872713177733001, -0.61869787578431157, 8.3690034326252771, 10.838125249555295, 5.7599623270111371, -20.023908130365466, -123.65457842508674, -153.00121169652476, 142.547198349193, 96.770610724801799, -47.509829762735976, -23.426373610246678, 12.279477314121431, 4.505017932340448, -0.47387208215225296, 1.0313698171467449, -0.82171694591384781, -3.6928619255631867, -1.8762573022143267, 3.7169173278476135, 4.6706759151301114, 2.0776847434633798, -0.78921784490688629, -2.9786510336369223, -2.3921307524924669, -3.2593326279479267, -3.3529459489444933, 4.4422506314578865, 4.3583730663879798, -1.2100039550542185, -2.3621905210139329, 1.3789304004393068, 5.6240231376208731, 0.48512698058415527, -29.29964646863997, -32.411936148940157, 108.19035464369668, 132.73656142769508, -168.20144264926049, 232.19478887738595, -154.13628433381695, -214.97833639893091, 32.614432065455887, 63.308016957216388, 6.7426676795129818, -8.8242080507891405, -2.0993082250693487, 2.3190205805607031, 1.4780948040669208, -1.657855797575728, -1.7022885447654388, 1.0194826794166389, 1.8071322433818233, 0.78166878654889338, 0.44341981227717431, 0.059811282681573222, 0.092868468976748497, -2.5525542005113593, 0.075295172141105315, 1.6929032656017555, -0.30261213114781177, -2.1894859760859413, -0.21791167804934622, 2.7181624419475532, 6.5426060710782918, 7.4458049666709138, -22.150721493101912, -28.536726784912382, 14.007085088982294, -30.629684625724458, 129.53848012256904, 385.67355889894196, -683.78444654557279, -517.73406283289592, 160.05821428876459, 148.1191482606082, -13.623126322836866, -12.548270616696426, 1.1634429445003742, -1.2664097847556794, 0.30672454240560415, 2.2071616613519298, 1.2474845862739898, -3.2116043474898839, -3.9293196367766487, -1.8190548566089664, 1.0357721766880712, 2.2715095300739065, 1.0044515769394997, 1.2848757720394559, 2.3079461733716413, -2.0170485858323568, -5.0562417941567217, -0.87332830625457158, 3.3591145464251335, -2.4931441622280368, -13.459048177551766, 0.23350423998331427, 104.20178335269858, 198.35300746583647, -357.47689087779742, -754.85949807698285, 266.46730452215979, 84.323142794104228, 626.94685691527002, 389.87395397760116, -358.55234539419558, -200.57409151559838, 51.912766255688851, 60.920555877786029, 13.948321679490393, -9.6603270173162681, -7.5747009667011582, 3.3081314176561238, 4.7318552060186576, -3.3500885842682231, -5.472612390642829, -2.0529004071821806, 0.75707810610465265, 2.676126824522286, 0.74262317979931325, 4.6325922286854091, 3.1158463847663604, -3.9830584925921673, -4.9118061115949914, 2.4659870551932261, 3.6463495838243847, -9.9392605214134129, -24.271547137145948, -19.935724961316961, 121.29447232003592, 99.592663969059103, -246.89163612982315, 111.12995285997523, 335.33509531572906, 221.21501338856802, 2320.4028678586192, 1602.7477447230024, -665.30895184878284, -587.35890158810128, 62.470104114045164, 116.47631097371504, 18.733705732232092, -9.1564876386533669, -7.5278540025228837, -3.0402232986351114, -2.1415599665130745, 1.8637246814391684, 5.0432051545575796, 4.5557013579063117, 0.64738652825819132, -3.9697444489461211, -2.2683391883791986, 2.59297082794407, -0.54247114501893734, -0.49091417497970297, 4.0712276182145537, 3.4956142029525421, -7.0608780430097635, -2.6512991036295777, 26.328209125884918, 66.794183325011389, -131.94201270845636, -752.63562664968617, 271.3060264440702, 2377.7643188321958, 949.59692563201872, -2935.685284408913, 206.06587874917372, 1551.534174685185, 1116.6649976696197, 206.88170503860968, -177.82612582226307, -116.57081449547834, -36.837920974758035, 11.041451779488151, 13.529650759569909, -8.7583525837485361, -15.812600063085752, 3.5976801907925351, 15.992639239497519, 13.233921729082972, -0.54082984812181611, -8.479740526626081, -3.8920400769731613, -9.7282165445191335, -10.468288519634076, 4.7705608814238323, 15.595649759531605, -1.3809484232923479, -19.634567061108552, 3.1644160240378296, 76.416221889183575, 122.15327454200114, -163.25068439377961, -307.58274676435752, 1545.4091719722737, 2222.0566542865222, -1215.2968180059584, 5705.1501208043328, -931.02314429184867, -5014.4780810602606, 12.384349101875989, 1111.9285745591585, -11.991282367617289, -279.42683310552832, -95.964038421947791, 20.179218397178591, 26.029536485331974, -0.63615178952006546, -8.9239476494738614, 0.81912298615373047, 4.354047932280479, 3.7892183180180292, 4.9636496941116457, -1.7856630822843349, 0.86416108685458326, -17.670460817927413, -10.314744048939055, 7.3973207504467204, 11.310122449566087, -7.0012835658321206, -7.2338183321331515, -5.1522911915584801, -33.623549275177297, -93.950748347298841, 82.616255878071172, 1249.2695734137344, 728.4038194884231, -2822.6768689275882, 397.85150159823706, 26666.274860226469, 1118.2132640961736, -9076.4400559658625, -3081.1066694335805, 284.6652898587414, 465.72794392086666, 193.36235004999409, 24.526337675320004, -3.1507841384785733, -1.8812165005783184, 6.9628905148897147, 18.113814308198211, 3.7834180501306891, -16.040469196891639, -20.012525822291416, 6.2313507558256083, 9.7740131156133696, 0.1390769027181136, 2.7720670784771526, 18.76945635314798, 7.2506028858092133, -12.318944408119592, 1.2207482283869953, 25.844521173618411, -4.435939812126878, -126.31904474729296, -189.92210588558356, 234.73611402062767, 770.97093894980162, -4944.5276302554457, -10095.4436331661, 9631.082450060534, 25390.170503473091, 2133.8618335997035, -174.99103969877373, 4452.6929959791023, 620.49539711803243, 514.99549805982349, 546.49872794031364, 218.31674915569133, -20.687109086504822, -41.926948021480328, 8.3348052170650853, 25.323206346284447, 0.86872374588174384, -17.959748575409694, -19.561354112987079, -1.4949158508675975, -5.5658589086089423, -4.0194858939287954, 20.161840527236293, 32.414130280804187, 2.8803824684767667, -21.191137754573067, 1.4918751600931279, 36.180920465642465, 4.5612631126941521, -28.684822585719061, -46.175546007129988, 457.86146922204938, 982.95511309135657, -848.38159326591563, -7213.0026112046844, 2752.5053486175875], "imag": [0.0, -3169.9451614941381, -2389.0092924747519, -2824.6185770767256, 47.140985329040632, -205.51829185355012, -383.71835019762682, -205.9732988135564, 11.332172552374439, 43.76909201728548, -7.034291101336307, -32.133345787281364, -1.2408409398708855, 22.626534078219475, 22.834188196398234, 5.8606054504390173, 0.0, -5.8606054504387375, -22.834188196398308, -22.626534078219454, 1.2408409398708751, 32.133345787281435, 7.0342911013362928, -43.769092017285352, -11.332172552374439, 205.97329881355589, 383.71835019762727, 205.51829185355027, -47.140985329040632, 2824.6185770767256, 2389.009292474751, 3169.9451614941386, 14687.463554763033, -1246.2254521233822, -13582.059524928778, -4205.001741520543, 1374.1061578688877, -137.33727593318653, -632.81134552884873, -154.70037614560013, 13.450507164884565, 15.193108572125329, -6.1542966587055341, -15.818788310912929, -2.909480569030046, 1.479970160345879, -1.5973907882613358, 1.5293212848264928, 18.21275880080945, -1.003899882219808, -18.30035720783934, -15.99060672422979, 0.33906699281555863, 8.403557604549265, -3.6955816316308372, 1.2265587756840484, 4.4918801658948704, -32.498332906337446, -252.78924650714879, 118.6015387642415, 1871.5173348139303, -2304.7799937689852, -14411.746659687838, -4213.8766814139526, 7014.7325605010174, 2247.44595388478, -16.760963274859961, 900.76474301933899, -5.1342500455989466, -420.94056280958415, -12.516743930999253, 93.660446148871657, -5.3964791524595173, -25.576180637452808, -8.2514109979697761, 17.318312851322737, 9.236462137217643, -22.012718711107286, -15.490166786860247, -4.834205749446653, 9.5628562714065293, 1.836849747935801, 5.3481684451070093, 16.065001056209898, 7.1604513809609767, -15.578970641484018, -6.7835303274441205, 29.197525074885235, 24.587565667273296, -80.302667778037872, -341.00518268197084, -165.09457453510524, 812.92907888826301, -1514.0868881615295, -6442.5930626817562, 2384.0282361623322, -10283.309463536394, -4592.9695519937077, 4024.534672295305, 1566.1446188979135, -577.97842695498832, -13.866559817282136, 303.84181615530144, 107.13271532249853, -4.4304590515519831, -24.335491476624799, -1.0691687945057899, 24.162065431216654, 4.7495715205351985, -14.018208973927269, -8.9506230152518427, -4.4638345370409525, -7.1842950536944761, -0.75483699139922611, 9.34037405707282, 25.690847574014661, 10.204720176161787, -11.674788778672609, -2.2174348022320634, 10.712979752882786, 4.1447690963328192, -30.289408767911031, -12.158067002051448, -76.336688904244483, -15.045419751305701, 825.0044509954804, 3127.7274260756976, -92.692661642821449, -6218.4941130018287, -3848.3727657836507, 693.87265018831545, 545.97208874512432, -92.125598598764668, 150.80594875272075, 31.835009702890954, -5.9283896106206289, 5.1749362811852588, 3.5428080098191677, 8.1813203788089979, 0.80238728202918663, -2.1553941232205127, 3.896876060708947, 5.7415452177174027, -2.4223203414509196, -12.192718147122756, -6.4431256169971434, 0.78101397437949727, -0.4709674045364774, 4.0135477523785683, 5.3424403453362856, 1.5176299437256986, -10.74330995836436, -14.68235074512339, 24.624343673414469, 118.67852190927127, 172.09305386209979, -99.157790391266047, 517.50332981617737, 2037.7393191154626, -1363.1746812874464, -339.74333242555031, 32.123918954310476, -283.55446630414355, -87.787271289656218, 401.24269480211609, 97.679749329289763, -120.49954302359174, -51.176060542512822, -2.5863965882294027, 13.214576791319574, 4.0359196374926878, -8.3066986443292503, -3.2190392651304429, 10.42730204701207, 6.8931399993642719, 0.50989762348064183, -1.9729622551402084, -2.7447920706561999, -6.4951794944364067, -8.7659237408433199, -2.5623445767069972, 9.4029551910696547, 6.0787635497373449, -8.7738681104802421, -10.356090763505474, 25.994421343462481, 47.534456712956128, 36.427418067214397, -132.28171420843677, -55.780171242651143, 550.58818821416037, 230.04212220540037, 2282.8157342153072, 1692.5764998210254, -618.40106666814791, -406.75082987636517, 268.61096451191207, 88.797660850068112, -17.813285237066509, -23.19378111787497, -5.993920933714092, 3.5911964041653288, -1.1492389141172172, -3.281418277923168, 1.0895777711511168, 3.5282533189728529, -1.1949811908258732, 1.894384229023907, 4.6241332834085442, 0.37075703258422543, -2.0346603770225924, -4.5067903456406357, -1.1470927861162812, 2.3634060343879923, 3.2590535483912988, 1.2412658338184401, -2.2389815887732318, -8.267796716016413, -35.26417469610022, -42.695700376724766, 163.41685001540142, 139.99054216726472, -634.39240892418218, -59.277692870412778, 635.10435435478166, 336.10950761267088, -20.987908495686451, 62.381440709915225, -5.2608500919337384, -7.9431228598947987, 17.719913727215761, 2.2765757875228916, -0.5781253977177655, -1.861000889502646, -1.1416693103444284, 2.4821587471930475, 1.9877494352069631, -3.6722851782283747, -3.348161983991842, -0.65436436680629395, 1.4913973744886961, 1.3020502991963898, 1.5364454784416322, 2.0332502155623371, 0.082811915307875697, -2.7287340233180468, -2.0624150870013023, 3.1666191865848514, 2.1277795836536475, -15.762070711071239, -31.080087158567022, 16.264563798793048, 168.22104098804192, 119.10647254618513, -340.95280202269214, -119.21079977674056, -524.16143614722125, -474.83791951425451, 238.16973599672059, 238.87620399289383, -30.950251690797295, -43.007655043750781, -7.0781110181685483, 4.2933368018010754, 2.128510229721456, -1.3556643805285902, 0.67118052098401426, 4.1580113773740086, 1.6924135574018535, -3.2368514600901537, -2.3674255865410236, -2.2397386036010594, -2.8392755347081424, -0.22727952120054792, 2.1660066162361877, 4.1257252023454543, 1.8555476250524485, -3.0110538491549583, -3.3997614112807475, -0.064441197381949922, 1.4400236898496321, -2.5651430892865172, -0.57406913069513732, 14.545275998521815, -21.097880653370396, -8.386658477188135, 246.29297742969297, 177.82681762874435, -29.410757783669329, 21.206487630199256, 82.341423257084315, 9.4629909259569072, -12.117042155983494, -8.2057292966872932, -5.3672622769763416, 0.7159440642377497, 0.69394420462213224, -0.39501642572828111, 0.57804318775345176, 1.8269742232979342, 0.10217887910111716, 0.16688705386232044, 1.9755117613475777, -0.94372823495475977, -2.4667123640612325, -1.3772827491468491, 0.74627343874194729, 1.5703957699483431, 1.3943774862563845, 0.51087952435755024, -0.57473339559817926, -2.0019592491226121, -0.94447858069522983, 4.1105720381539621, 9.8748960802998482, -5.0693062852843767, -52.44341015820585, -37.642264259816841, 117.83245857703734, 130.78419594725884, 169.61465367155833, 186.83060708175802, -35.974218698264572, -86.880281148446372, -5.2203740194539208, 16.971669187755321, 6.0698179812651247, 0.35231673872141245, -0.53044914356261097, -0.81632535007713047, -0.39583117800855089, -4.4385250403688277, -5.1472849145985213, 2.545092404453277, 5.0071357876878793, 2.743807769745191, 3.4897745997776024, -0.063125314946314764, -1.9440922443950184, -5.9326946820069502, -3.385188090942465, 3.6658395382201929, 4.0455837767151035, -0.6661551017179177, -2.2326980338070728, 1.6846667556373658, 3.8137132042051891, -1.9181620538698931, 1.6441956870289249, -6.1270500694313146, -76.595893205927055, -49.969516616017785, -7.9132321269474106, -11.568908095829089, -47.805112772715709, -13.830481688679152, 18.277275877397457, 14.698934402888547, 6.2184742035979967, 1.4890022076822711, -0.74744399004349582, 1.078974533533704, -0.78904970661953722, -8.2729456489475783, -5.409011823874466, 2.7622883519807897, 0.8473850486901422, 1.8128818460693508, 2.8420219491550718, 1.5362703897962247, -3.7595900673998903, -5.6022288243818803, -4.1625158390656765, 0.71295082461726678, 3.6372516960945322, 1.3208871209715871, -0.62400754176455042, -1.768358539761187, -3.6168192973638713, 3.6735963806245331, 31.275163257132462, 32.479329698147204, -39.759969700967346, -68.584232650917357, -57.469468975158698, -64.297371445934317, 0.20861011566533649, 34.25783205331058, 6.9534765415767215, -5.3793483456417883, 1.2524657598045081, 1.5450348766267965, 0.56608571170600441, 1.3866526144820828, -2.467818437504425, -0.23634501606433136, 6.3450244574570114, 0.9543505178876851, -4.984602859992024, -6.3381420012322005, -2.7435850611580781, -1.5807425386703018, 2.421504137076397, 6.8428975986621223, 5.3939316426610251, -2.3287200765196823, -4.7978450785431628, -0.63133403867009485, 1.1146429476849253, 0.7514356381637266, 2.2717048597800691, 5.5350475212285941, 5.1571773922734927, 9.2792987920179275, 21.682075132354747, 1.4867450129376456, -4.4700114725605324, -18.272390809448236, 16.714318324621598, 7.3089787270008628, -20.071959549384122, -7.0841774280620697, 3.2022160216960311, -0.077988270864014025, -1.5775612503840553, -4.3715375274672654, -2.1765426316142653, 13.260687049653976, 13.879467714343647, -1.8852486869718339, -10.527030755482089, -6.8369811071974125, -3.0333474188096656, -2.1407969562984661, 3.722272454853548, 7.6257272547055521, 10.117490783509389, -0.39109059001006397, -6.9982476982268125, -4.2960092579610025, 0.55901791170159865, 2.6155137759572247, 6.5895285486459425, 7.4061452615413605, -10.366283361455007, -35.34703723782264, -16.933453520111545, 16.224692124004221, -34.34332526355967, -71.738587010679367, -34.450969879654501, -6.2640778700882249, 11.746214635705909, 13.031958951769729, -0.3480472785242843, -3.9968553356395629, -3.964707435958017, -4.2096432311062548, 4.9158294568057652, 12.338227697160551, 3.5088489717994391, -9.6887588471648289, -3.3007173968474173, 1.3223986051066356, 3.9779056054352555, 5.2139034331477543, 0.73966749617948313, -3.1538649748494341, -5.201358311154781, 1.2046804216345655, 2.9426249963390902, 0.16125203808628796, -0.12580690156457183, -1.0212362026563724, -6.277158135649886, -5.6679546723264744, 4.2381986446151707, 5.7560371617010828, 18.621646756873353, 24.734309444721209, -36.387091300098106, -10.759792351985398, -2.2461784763603254, 3.6933656200181786, 20.866503857704814, 3.7918232583171383, -8.2103085682208885, -3.9258378390443029, 0.83382202471681166, 4.801181266459511, 6.1897358407630447, -4.7613942589703724, -14.056893094185043, -2.2289578077004246, 10.245900399003714, 12.011271759567334, 7.3710550588087713, 3.5515726304902269, 1.2929923686914595, -7.4124476338006691, -7.5787947999111838, 1.7154740370529804, 9.3123854476054735, 4.9777565316787626, -0.24109318982965802, -5.1766732320109883, -9.3092191729240525, -5.246693773893865, 10.274800595678272, 28.322088715789157, 27.586929135138202, -13.506737972920812, 0.0, 72.992093909712537, 40.674766306359388, 3.6677612059140889, -7.0101784555215705, -11.074353780690299, -3.5600519087446321, 2.4941865000982566, 3.5007885216085395, 2.2952423730960096, -1.6579656325825838, -10.397334640078137, -8.5183394179138396, 4.679962930220257, 8.9265575080577193, 4.8985021447705659, 0.0, -4.8985021447705712, -8.9265575080577282, -4.6799629302202739, 8.5183394179138361, 10.397334640078139, 1.6579656325825878, -2.2952423730960114, -3.5007885216085395, -2.4941865000982615, 3.5600519087446361, 11.074353780690284, 7.010178455521566, -3.6677612059140743, -40.674766306359437, -72.992093909712509, 36.387091300098248, 13.506737972920931, -27.586929135138188, -28.322088715789224, -10.274800595678252, 5.2466937738938775, 9.3092191729240525, 5.1766732320109785, 0.24109318982965933, -4.9777565316787626, -9.3123854476054682, -1.7154740370529937, 7.5787947999111918, 7.4124476338006797, -1.2929923686914602, -3.5515726304902286, -7.3710550588087731, -12.011271759567332, -10.245900399003729, 2.2289578077004006, 14.05689309418503, 4.7613942589703955, -6.1897358407630483, -4.8011812664595261, -0.83382202471681333, 3.9258378390442905, 8.2103085682208921, -3.7918232583171019, -20.866503857704799, -3.6933656200181462, 2.2461784763603472, 10.759792351985324, 34.343325263559734, -24.734309444721188, -18.621646756873407, -5.7560371617010961, -4.2381986446151565, 5.6679546723264433, 6.2771581356498745, 1.0212362026563664, 0.12580690156457094, -0.16125203808628427, -2.9426249963390938, -1.2046804216345817, 5.2013583111547899, 3.1538649748494616, -0.73966749617946026, -5.2139034331477525, -3.9779056054352657, -1.322398605106651, 3.3007173968474182, 9.6887588471648343, -3.5088489717994329, -12.338227697160564, -4.9158294568057723, 4.2096432311062539, 3.9647074359580197, 3.9968553356395535, 0.34804727852429029, -13.031958951769711, -11.746214635705918, 6.2640778700882196, 34.450969879654494, 71.738587010679424, 4.4700114725605502, -16.224692124004207, 16.933453520111492, 35.34703723782269, 10.366283361455015, -7.4061452615413437, -6.5895285486459567, -2.615513775957226, -0.55901791170159942, 4.2960092579609945, 6.9982476982268116, 0.39109059001006968, -10.117490783509375, -7.6257272547055521, -3.7222724548535622, 2.1407969562984639, 3.0333474188096563, 6.8369811071973849, 10.527030755482111, 1.8852486869718446, -13.879467714343662, -13.260687049653979, 2.1765426316142595, 4.3715375274672708, 1.5775612503840555, 0.077988270864025142, -3.2022160216960267, 7.0841774280620511, 20.071959549384133, -7.3089787270008086, -16.714318324621601, 18.272390809448193, 57.469468975158712, -1.4867450129376421, -21.682075132354715, -9.2792987920179293, -5.1571773922734714, -5.5350475212285986, -2.2717048597800669, -0.75143563816372472, -1.114642947684924, 0.63133403867008997, 4.7978450785431628, 2.3287200765196983, -5.3939316426610153, -6.842897598662133, -2.4215041370764028, 1.5807425386703056, 2.7435850611580817, 6.3381420012321907, 4.9846028599920196, -0.95435051788768221, -6.3450244574570167, 0.23634501606432906, 2.4678184375044308, -1.3866526144820814, -0.56608571170600686, -1.5450348766267858, -1.2524657598045066, 5.3793483456417848, -6.9534765415767081, -34.25783205331058, -0.20861011566532392, 64.297371445934417, 7.9132321269475003, 68.584232650917386, 39.759969700967275, -32.479329698147232, -31.275163257132508, -3.6735963806245575, 3.616819297363866, 1.7683585397611854, 0.6240075417645492, -1.3208871209715913, -3.6372516960945265, -0.71295082461726456, 4.1625158390656667, 5.6022288243818847, 3.7595900673999001, -1.5362703897962169, -2.842021949155066, -1.8128818460693434, -0.8473850486901302, -2.7622883519807888, 5.4090118238744633, 8.2729456489475819, 0.78904970661953955, -1.0789745335337066, 0.74744399004349849, -1.4890022076822718, -6.2184742035979834, -14.69893440288851, -18.277275877397457, 13.830481688678995, 47.805112772715752, 11.568908095829199, -169.61465367155867, 49.969516616017778, 76.595893205927254, 6.1270500694312791, -1.6441956870289614, 1.918162053869898, -3.8137132042051767, -1.6846667556373722, 2.2326980338070745, 0.66615510171792158, -4.0455837767150955, -3.6658395382201951, 3.3851880909424605, 5.9326946820069546, 1.9440922443950184, 0.063125314946314778, -3.4897745997776015, -2.7438077697451946, -5.0071357876878766, -2.5450924044532854, 5.1472849145985169, 4.4385250403688321, 0.39583117800854778, 0.81632535007713181, 0.53044914356261075, -0.35231673872140901, -6.0698179812651212, -16.971669187755335, 5.2203740194539012, 86.880281148446528, 35.974218698264636, -186.83060708175819, 29.41075778366919, -130.78419594725855, -117.83245857703733, 37.64226425981672, 52.443410158205879, 5.0693062852844104, -9.8748960802998642, -4.1105720381539701, 0.94447858069523327, 2.0019592491226157, 0.57473339559817749, -0.5108795243575508, -1.3943774862563805, -1.570395769948336, -0.74627343874194474, 1.3772827491468478, 2.4667123640612241, 0.94372823495475699, -1.9755117613475803, -0.16688705386232, -0.10217887910111442, -1.8269742232979298, -0.57804318775345009, 0.39501642572828077, -0.69394420462213291, -0.71594406423774049, 5.367262276976339, 8.2057292966872506, 12.117042155983503, -9.4629909259566443, -82.341423257084145, -21.206487630199604, 524.16143614722125, -177.82681762874424, -246.29297742969288, 8.386658477188103, 21.097880653370403, -14.545275998521824, 0.57406913069513366, 2.5651430892865226, -1.4400236898496321, 0.064441197381950838, 3.3997614112807506, 3.0110538491549557, -1.8555476250524514, -4.1257252023454569, -2.1660066162361895, 0.22727952120054773, 2.8392755347081424, 2.2397386036010616, 2.3674255865410174, 3.236851460090151, -1.6924135574018513, -4.1580113773740104, -0.67118052098401537, 1.3556643805285893, -2.128510229721456, -4.2933368018010798, 7.0781110181685527, 43.007655043750773, 30.950251690797295, -238.87620399289392, -238.16973599672059, 474.83791951425417, -635.10435435478075, 119.21079977674036, 340.95280202269191, -119.10647254618499, -168.22104098804189, -16.264563798793112, 31.080087158567054, 15.762070711071249, -2.1277795836536488, -3.1666191865848456, 2.0624150870013005, 2.7287340233180508, -0.082811915307879028, -2.0332502155623482, -1.5364454784416388, -1.3020502991963789, -1.4913973744886957, 0.65436436680629262, 3.3481619839918371, 3.6722851782283725, -1.987749435206966, -2.4821587471930564, 1.1416693103444246, 1.8610008895026517, 0.5781253977177665, -2.2765757875228969, -17.719913727215747, 7.9431228598948822, 5.2608500919337864, -62.381440709915822, 20.987908495685961, -336.10950761266997, -2282.8157342153086, 59.27769287041221, 634.3924089241824, -139.99054216726466, -163.41685001540142, 42.695700376724787, 35.264174696100213, 8.2677967160164005, 2.2389815887732354, -1.2412658338184486, -3.2590535483912864, -2.3634060343879861, 1.1470927861162765, 4.5067903456406286, 2.0346603770225951, -0.37075703258422554, -4.6241332834085505, -1.8943842290239064, 1.1949811908258721, -3.5282533189728493, -1.0895777711511203, 3.281418277923172, 1.1492389141172139, -3.591196404165319, 5.9939209337140893, 23.193781117874966, 17.813285237066506, -88.797660850068027, -268.61096451191219, 406.75082987636472, 618.40106666814768, -1692.5764998210257, 339.74333242554815, -230.04212220540018, -550.58818821415935, 55.780171242650994, 132.2817142084364, -36.427418067214319, -47.534456712956064, -25.994421343462484, 10.356090763505458, 8.773868110480235, -6.0787635497373476, -9.4029551910696316, 2.5623445767070061, 8.7659237408433039, 6.4951794944364281, 2.7447920706561946, 1.972962255140204, -0.50989762348062517, -6.8931399993642568, -10.427302047012086, 3.2190392651304447, 8.3066986443292699, -4.0359196374926896, -13.214576791319564, 2.5863965882294058, 51.176060542512751, 120.49954302359184, -97.679749329289564, -401.24269480211632, 87.787271289656246, 283.554466304144, -32.12391895431216, 6218.4941130018287, 1363.174681287448, -2037.7393191154631, -517.5033298161776, 99.157790391266019, -172.09305386210005, -118.67852190927132, -24.624343673414536, 14.682350745123385, 10.743309958364414, -1.5176299437256995, -5.3424403453363087, -4.013547752378579, 0.47096740453648078, -0.7810139743795077, 6.4431256169971372, 12.192718147122749, 2.4223203414509316, -5.7415452177173938, -3.8968760607089528, 2.1553941232205212, -0.80238728202918486, -8.1813203788090068, -3.5428080098191872, -5.1749362811852562, 5.9283896106206555, -31.835009702890844, -150.80594875272081, 92.125598598764682, -545.97208874512432, -693.87265018831545, 3848.372765783648, 10283.309463536396, 92.692661642825414, -3127.7274260757022, -825.00445099548233, 15.045419751306099, 76.336688904244284, 12.158067002051251, 30.289408767911102, -4.1447690963328059, -10.712979752882784, 2.2174348022320558, 11.674788778672612, -10.204720176161779, -25.690847574014658, -9.3403740570728662, 0.75483699139922822, 7.1842950536944734, 4.4638345370409516, 8.9506230152518249, 14.018208973927262, -4.7495715205351878, -24.162065431216647, 1.0691687945057857, 24.335491476624739, 4.4304590515519813, -107.13271532249837, -303.84181615530116, 13.866559817282113, 577.97842695498844, -1566.1446188979132, -4024.5346722953059, 4592.969551993704, -7014.7325605010174, -2384.0282361623326, 6442.5930626817571, 1514.086888161532, -812.92907888826267, 165.09457453510592, 341.00518268197106, 80.302667778037787, -24.587565667273314, -29.197525074885242, 6.783530327444133, 15.578970641484096, -7.1604513809610006, -16.065001056209955, -5.3481684451070297, -1.8368497479357557, -9.5628562714065364, 4.8342057494466477, 15.490166786860224, 22.012718711107244, -9.236462137217643, -17.318312851322709, 8.2514109979697903, 25.57618063745285, 5.3964791524595155, -93.660446148871785, 12.516743930999144, 420.94056280958409, 5.1342500455991793, -900.76474301933945, 16.760963274859485, -2247.4459538847777, -14687.463554763033, 4213.8766814139472, 14411.746659687837, 2304.7799937689902, -1871.5173348139317, -118.60153876424121, 252.7892465071493, 32.498332906337396, -4.4918801658948837, -1.2265587756841234, 3.6955816316309309, -8.4035576045492331, -0.33906699281557884, 15.990606724229716, 18.300357207839266, 1.0038998822198608, -18.212758800809453, -1.5293212848264821, 1.5973907882613065, -1.4799701603458557, 2.909480569030038, 15.818788310912904, 6.1542966587054897, -15.193108572125247, -13.450507164884552, 154.70037614559999, 632.81134552884851, 137.3372759331867, -1374.1061578688873, 4205.0017415205384, 13582.05952492878, 1246.225452123387]}};
|
||
|
||
/*
|
||
* MOSSE correlation filter
|
||
*
|
||
* Optional parameters to constructor:
|
||
* drawResponse {canvasElement} : draws the correlation filter output on the given canvas element (default is none)
|
||
* psrThreshold {number} : peak-to-sidelobe-ratio threshold to use when updating filter while tracking (default is 10)
|
||
* eta {number} : adjusts how much new input affects the mosse filter, when updating filter while tracking
|
||
* number should be between 0 and 1 (default is 0.1)
|
||
* convertToGrayscale {boolean} : whether to convert canvas output to grayscale (default is true)
|
||
* if this is set to false, we assume all channels are equal and only grab values from red channel
|
||
*
|
||
* @author auduno / github.com/auduno
|
||
*/
|
||
|
||
function mosseFilter(params) {
|
||
|
||
var _filter, _top, _bottom;
|
||
var _fft;
|
||
var _w,_h;
|
||
var _im_part;
|
||
var _arrlen;
|
||
var _cc;
|
||
var _image_array;
|
||
|
||
this.psr_prev = undefined;
|
||
this.peak_prev = undefined;
|
||
var updateable = false;
|
||
|
||
if (!params) params = {};
|
||
// setup of canvas for drawing responses, if given
|
||
if (params.drawResponse === undefined) {
|
||
params.drawResponse = false;
|
||
} else {
|
||
if (params.drawResponse.tagName != 'CANVAS') {
|
||
params.drawResponse = false;
|
||
} else {
|
||
var responseContext = params.drawResponse.getContext('2d');
|
||
}
|
||
}
|
||
if (params.psrThreshold === undefined) params.psrThreshold = 10;
|
||
if (params.eta === undefined) params.eta = 0.10;
|
||
if (params.convertToGrayscale === undefined) params.convertToGrayscale = true;
|
||
|
||
this.load = function(filter) {
|
||
// initialize filter width and height
|
||
_w = filter.width;
|
||
_h = filter.height;
|
||
_arrlen = _w*_h;
|
||
_filter = [filter.real, filter.imag];
|
||
// handling top and bottom when they're not present
|
||
if (filter.top && filter.bottom) {
|
||
updateable = true;
|
||
_top = [filter.top.real, filter.top.imag];
|
||
_bottom = [filter.bottom.real, filter.bottom.imag];
|
||
}
|
||
|
||
// initialize fft to given width
|
||
_fft = new FFT();
|
||
_fft.init(filter.width);
|
||
|
||
// set up temporary variables
|
||
if(typeof Float64Array !== 'undefined') {
|
||
_im_part = new Float64Array(_arrlen);
|
||
_image_array = new Float64Array(_arrlen);
|
||
} else {
|
||
_im_part = new Array(_arrlen);
|
||
_image_array = new Array(_arrlen);
|
||
}
|
||
var canvas = document.createElement("canvas");
|
||
canvas.setAttribute('width', _w);
|
||
canvas.setAttribute('height', _h);
|
||
_cc = canvas.getContext('2d');
|
||
};
|
||
|
||
this.init = function(w,h) {
|
||
// initialize filter width and height for a blank filter
|
||
_w = w;
|
||
_h = h;
|
||
_arrlen = _w*_h;
|
||
|
||
_filter = [[],[]];
|
||
_top = [[],[]];
|
||
_bottom = [[],[]];
|
||
for (var i = 0;i < _arrlen;i++) {
|
||
_filter[0][i] = 0;
|
||
_filter[1][i] = 0;
|
||
_top[0][i] = 0;
|
||
_top[1][i] = 0;
|
||
_bottom[0][i] = 0;
|
||
_bottom[1][i] = 0;
|
||
}
|
||
updateable = true;
|
||
|
||
// initialize fft to given width
|
||
_fft = new FFT();
|
||
_fft.init(w);
|
||
|
||
// set up temporary variables
|
||
if(typeof Float64Array !== 'undefined') {
|
||
_im_part = new Float64Array(_arrlen);
|
||
} else {
|
||
_im_part = new Array(_arrlen);
|
||
}
|
||
var canvas = document.createElement("canvas");
|
||
canvas.setAttribute('width', _w);
|
||
canvas.setAttribute('height', _h);
|
||
_cc = canvas.getContext('2d');
|
||
};
|
||
|
||
// fft function
|
||
this.fft = function(array) {
|
||
// not in-place
|
||
|
||
var cn = new Array(_arrlen);
|
||
for (var i = 0;i < _arrlen;i++) {
|
||
cn[i] = 0.0;
|
||
}
|
||
|
||
_fft.fft2d(array,cn);
|
||
return [array, cn];
|
||
};
|
||
|
||
// fft function
|
||
this.fft_inplace = function(array) {
|
||
// in-place
|
||
|
||
for (var i = 0;i < _arrlen;i++) {
|
||
_im_part[i] = 0.0;
|
||
}
|
||
|
||
_fft.fft2d(array,_im_part);
|
||
return [array, _im_part];
|
||
};
|
||
|
||
this.ifft = function(rn, cn) {
|
||
// in-place
|
||
_fft.ifft2d(rn, cn);
|
||
return rn;
|
||
};
|
||
|
||
// peak to sidelobe ratio function (optional)
|
||
this.psr = function(array) {
|
||
// proper
|
||
var sum = 0;
|
||
var max = 0;
|
||
var maxpos = [0, 0];
|
||
var sdo = 0;
|
||
var val;
|
||
for (var x = 0;x < _w;x++) {
|
||
for (var y = 0;y < _h;y++) {
|
||
val = array[(y*_w)+x];
|
||
sum += val;
|
||
sdo += (val*val);
|
||
if (max < val) {
|
||
max = val;
|
||
maxpos = [x,y];
|
||
}
|
||
}
|
||
}
|
||
|
||
// subtract values around peak
|
||
for (var x = -5;x < 6;x++) {
|
||
for (var y = -5;y < 6;y++) {
|
||
if (Math.sqrt(x*x+y*y) < 5) {
|
||
val = array[((maxpos[1]+y)*_w)+(maxpos[0]+x)];
|
||
sdo -= (val*val);
|
||
sum -= val;
|
||
}
|
||
}
|
||
}
|
||
|
||
var mean = sum/array.length;
|
||
var sd = Math.sqrt((sdo/array.length)-(mean*mean));
|
||
|
||
// get mean/variance of output around peak
|
||
var psr = (max-mean)/sd;
|
||
return psr;
|
||
};
|
||
|
||
this.getResponse = function(imageData) {
|
||
// in-place
|
||
|
||
// preprocess
|
||
var prepImage = preprocess(imageData);
|
||
prepImage = cosine_window(prepImage);
|
||
|
||
// filter
|
||
var res = this.fft_inplace(prepImage);
|
||
|
||
// elementwise multiplication with filter
|
||
complex_mult_inplace(res, _filter);
|
||
|
||
// do inverse 2d fft
|
||
var filtered = this.ifft(res[0],res[1]);
|
||
return filtered;
|
||
};
|
||
|
||
this.track = function(input, left, top, width, height, updateFilter, gaussianPrior, calcPSR) {
|
||
// finds position of filter in input image
|
||
|
||
if (!_filter) {
|
||
console.log("Mosse-filter needs to be initialized or trained before starting tracking.");
|
||
return false;
|
||
}
|
||
|
||
if (input.tagName == "VIDEO" || input.tagName == "IMG") {
|
||
// scale selection according to original source image
|
||
var videoLeft = Math.round((left/input.width)*input.videoWidth);
|
||
var videoTop = Math.round((top/input.height)*input.videoHeight);
|
||
var videoWidth = Math.round((width/input.width)*input.videoWidth);
|
||
var videoHeight = Math.round((height/input.height)*input.videoHeight);
|
||
_cc.drawImage(input, videoLeft, videoTop, videoWidth, videoHeight, 0, 0, _w, _h);
|
||
} else if (input.tagName == "CANVAS") {
|
||
_cc.drawImage(input, left, top, width, height, 0, 0, _w, _h);
|
||
}
|
||
|
||
var image = _cc.getImageData(0,0,_w,_h);
|
||
var id = image.data;
|
||
|
||
if (params.convertToGrayscale) {
|
||
// convert to grayscale
|
||
for (var i = 0;i < _arrlen;i++) {
|
||
_image_array[i] = id[(4*i)]*0.3;
|
||
_image_array[i] += id[(4*i)+1]*0.59;
|
||
_image_array[i] += id[(4*i)+2]*0.11;
|
||
}
|
||
} else {
|
||
// use only one channel
|
||
for (var i = 0;i < _arrlen;i++) {
|
||
_image_array[i] = id[(4*i)];
|
||
}
|
||
}
|
||
|
||
// preprocess
|
||
var prepImage = preprocess(_image_array);
|
||
prepImage = cosine_window(prepImage);
|
||
|
||
// filter
|
||
var res = this.fft_inplace(prepImage);
|
||
// elementwise multiplication with filter
|
||
var nures = complex_mult(res, _filter);
|
||
// do inverse 2d fft
|
||
var filtered = this.ifft(nures[0],nures[1]);
|
||
|
||
// find max and min
|
||
var max = 0;
|
||
var min = 0;
|
||
var maxpos = [0, 0];
|
||
|
||
//method using centered gaussian prior
|
||
if (gaussianPrior) {
|
||
var prior, dx, dy;
|
||
var variance = 128;
|
||
for (var x = 0;x < _w;x++) {
|
||
for (var y = 0;y < _h;y++) {
|
||
dx = x - _w/2;
|
||
dy = y - _h/2;
|
||
prior = Math.exp(-0.5*((dx*dx)+(dy*dy))/variance);
|
||
if ((filtered[(y*_w)+x]*prior) > max) {
|
||
max = filtered[(y*_w)+x]*prior;
|
||
maxpos = [x,y];
|
||
}
|
||
if (filtered[(y*_w)+x] < min) {
|
||
min = filtered[(y*_w)+x];
|
||
}
|
||
}
|
||
}
|
||
} else {
|
||
for (var x = 0;x < _w;x++) {
|
||
for (var y = 0;y < _h;y++) {
|
||
if (filtered[(y*_w)+x] > max) {
|
||
max = filtered[(y*_w)+x];
|
||
maxpos = [x,y];
|
||
}
|
||
if (filtered[(y*_w)+x] < min) {
|
||
min = filtered[(y*_w)+x];
|
||
}
|
||
}
|
||
}
|
||
}
|
||
this.peak_prev = max;
|
||
|
||
if (params.drawResponse) {
|
||
// draw response
|
||
var diff = max-min;
|
||
var dc = document.createElement('canvas');
|
||
dc.setAttribute('width', 32);
|
||
dc.setAttribute('height', 32);
|
||
var dcc = dc.getContext('2d');
|
||
var psci = dcc.createImageData(32, 32);
|
||
var pscidata = psci.data;
|
||
for (var j = 0;j < 32*32;j++) {
|
||
//draw with priors
|
||
//var val = filtered[j]*Math.exp(-0.5*(((j%_w - _w/2)*(j%_w -_w/2))+((Math.floor(j/_h)-(_h/2))*(Math.floor(j/_h)-(_h/2))))/128);
|
||
var val = filtered[j];
|
||
val = Math.round((val+Math.abs(min))*(255/diff));
|
||
pscidata[j*4] = val;
|
||
pscidata[(j*4)+1] = val;
|
||
pscidata[(j*4)+2] = val;
|
||
pscidata[(j*4)+3] = 255;
|
||
}
|
||
dcc.putImageData(psci, 0, 0);
|
||
responseContext.drawImage(dc, left, top, width, width);
|
||
}
|
||
|
||
if (calcPSR) {
|
||
this.psr_prev = this.psr(filtered);
|
||
}
|
||
|
||
if (updateFilter) {
|
||
if (!updateable) {
|
||
console.log("The loaded filter does not support updating. Ignoring parameter 'updateFilter'.");
|
||
} else {
|
||
if (calcPSR) {
|
||
var psr = this.psr_prev;
|
||
} else {
|
||
var psr = this.psr(filtered);
|
||
}
|
||
|
||
if (psr > params.psrThreshold) {
|
||
// create target
|
||
var target = [];
|
||
var nux = maxpos[0];
|
||
var nuy = maxpos[1];
|
||
for (var x = 0;x < _w;x++) {
|
||
for (var y = 0;y < _h;y++) {
|
||
target[(y*_w)+x] = Math.exp(-(((x-nux)*(x-nux))+((y-nuy)*(y-nuy)))/(2*2));
|
||
}
|
||
}
|
||
|
||
//fft target
|
||
target = this.fft(target);
|
||
|
||
// create filter
|
||
var res_conj = complex_conj(res);
|
||
var fuTop = complex_mult(target,res_conj);
|
||
var fuBottom = complex_mult(res,res_conj);
|
||
|
||
// add up
|
||
var eta = params.eta;
|
||
for (var i = 0;i < _arrlen;i++) {
|
||
_top[0][i] = eta*fuTop[0][i] + (1-eta)*_top[0][i];
|
||
_top[1][i] = eta*fuTop[1][i] + (1-eta)*_top[1][i];
|
||
_bottom[0][i] = eta*fuBottom[0][i] + (1-eta)*_bottom[0][i];
|
||
_bottom[1][i] = eta*fuBottom[1][i] + (1-eta)*_bottom[1][i];
|
||
}
|
||
|
||
_filter = complex_div(_top,_bottom);
|
||
}
|
||
}
|
||
}
|
||
|
||
/*if (psr < 5) {
|
||
maxpos = [_w/2,_h/2];
|
||
}*/
|
||
|
||
maxpos[0] = maxpos[0]*(width/_w);
|
||
maxpos[1] = maxpos[1]*(width/_h);
|
||
|
||
// check if output is strong enough
|
||
// if not, return false?
|
||
if (max < 0) {
|
||
return false;
|
||
} else {
|
||
return maxpos;
|
||
}
|
||
};
|
||
|
||
this.train = function(input, left, top, width, height) {
|
||
|
||
if (!updateable) {
|
||
console.log("The loaded filter does not support updating. Unable to do training.");
|
||
return false;
|
||
}
|
||
|
||
if (input.tagName == "VIDEO" || input.tagName == "IMG") {
|
||
// scale selection according to original source image
|
||
var videoLeft = Math.round((left/input.width)*input.videoWidth);
|
||
var videoTop = Math.round((top/input.height)*input.videoHeight);
|
||
var videoWidth = Math.round((width/input.width)*input.videoWidth);
|
||
var videoHeight = Math.round((height/input.height)*input.videoHeight);
|
||
_cc.drawImage(input, videoLeft, videoTop, videoWidth, videoHeight, 0, 0, _w, _h);
|
||
} else if (input.tagName == "CANVAS") {
|
||
_cc.drawImage(input, left, top, width, height, 0, 0, _w, _h);
|
||
}
|
||
|
||
var image = _cc.getImageData(0,0,_w,_h);
|
||
var id = image.data;
|
||
|
||
// convert to grayscale
|
||
for (var i = 0;i < _arrlen;i++) {
|
||
_image_array[i] = id[(4*i)]*0.3;
|
||
_image_array[i] += id[(4*i)+1]*0.59;
|
||
_image_array[i] += id[(4*i)+2]*0.11;
|
||
}
|
||
|
||
// preprocess
|
||
var prepImage = preprocess(_image_array);
|
||
prepImage = cosine_window(prepImage);
|
||
|
||
// create target
|
||
var target = [];
|
||
var nux = _w/2;
|
||
var nuy = _h/2;
|
||
for (var x = 0;x < _w;x++) {
|
||
for (var y = 0;y < _h;y++) {
|
||
target[(y*_w)+x] = Math.exp(-(((x-nux)*(x-nux))+((y-nuy)*(y-nuy)))/(2*2));
|
||
}
|
||
}
|
||
|
||
//fft target
|
||
target = this.fft(target);
|
||
|
||
// filter
|
||
var res = this.fft(prepImage);
|
||
// create filter
|
||
var res_conj = complex_conj(res);
|
||
var fuTop = complex_mult(target,res_conj);
|
||
var fuBottom = complex_mult(res,res_conj);
|
||
|
||
// add up
|
||
var eta = params.eta;
|
||
for (var i = 0;i < _arrlen;i++) {
|
||
_top[0][i] = eta*fuTop[0][i] + (1-eta)*_top[0][i];
|
||
_top[1][i] = eta*fuTop[1][i] + (1-eta)*_top[1][i];
|
||
_bottom[0][i] = eta*fuBottom[0][i] + (1-eta)*_bottom[0][i];
|
||
_bottom[1][i] = eta*fuBottom[1][i] + (1-eta)*_bottom[1][i];
|
||
}
|
||
|
||
_filter = complex_div(_top,_bottom);
|
||
|
||
return true;
|
||
};
|
||
|
||
var preprocess = function(array) {
|
||
// in-place
|
||
|
||
// log adjusting
|
||
for (var i = 0;i < _arrlen;i++) {
|
||
array[i] = Math.log(array[i]+1);
|
||
}
|
||
|
||
// normalize to mean 0 and norm 1
|
||
var mean = 0;
|
||
for (var i = 0;i < _arrlen;i++) {
|
||
mean += array[i];
|
||
}
|
||
mean /= _arrlen;
|
||
|
||
for (var i = 0;i < _arrlen;i++) {
|
||
array[i] -= mean;
|
||
}
|
||
var norm = 0.0;
|
||
for (var i = 0;i < _arrlen;i++) {
|
||
norm += (array[i]*array[i]);
|
||
}
|
||
norm = Math.sqrt(norm);
|
||
if (norm !== 0) {
|
||
for (var i = 0;i < _arrlen;i++) {
|
||
array[i] /= norm;
|
||
}
|
||
}
|
||
|
||
return array;
|
||
};
|
||
|
||
var cosine_window = function(array) {
|
||
// calculate rect cosine window (in-place)
|
||
var pos = 0;
|
||
for (var i = 0;i < _w;i++) {
|
||
for (var j = 0;j < _h;j++) {
|
||
//pos = (i%_w)+(j*_w);
|
||
var cww = Math.sin((Math.PI*i)/(_w-1));
|
||
var cwh = Math.sin((Math.PI*j)/(_h-1));
|
||
array[pos] = Math.min(cww,cwh)*array[pos];
|
||
pos++;
|
||
}
|
||
}
|
||
|
||
return array;
|
||
};
|
||
|
||
var complex_mult = function(cn1, cn2) {
|
||
// not in-place
|
||
var re_part = new Array(_w);
|
||
var im_part = new Array(_w);
|
||
var nucn = [re_part, im_part];
|
||
for (var r = 0;r < _arrlen;r++) {
|
||
nucn[0][r] = (cn1[0][r]*cn2[0][r]) - (cn1[1][r]*cn2[1][r]);
|
||
nucn[1][r] = (cn1[0][r]*cn2[1][r]) + (cn1[1][r]*cn2[0][r]);
|
||
}
|
||
return nucn;
|
||
};
|
||
|
||
var complex_mult_inplace = function(cn1, cn2) {
|
||
// in-place
|
||
var temp1, temp2;
|
||
for (var r = 0;r < _arrlen;r++) {
|
||
temp1 = (cn1[0][r]*cn2[0][r]) - (cn1[1][r]*cn2[1][r]);
|
||
temp2 = (cn1[0][r]*cn2[1][r]) + (cn1[1][r]*cn2[0][r]);
|
||
cn1[0][r] = temp1;
|
||
cn1[1][r] = temp2;
|
||
}
|
||
};
|
||
|
||
var complex_conj = function(cn) {
|
||
// not in-place (TODO)
|
||
var nucn = [[],[]];
|
||
for (var i = 0;i < _arrlen;i++) {
|
||
nucn[0][i] = cn[0][i];
|
||
nucn[1][i] = -cn[1][i];
|
||
}
|
||
return nucn;
|
||
};
|
||
|
||
var complex_div = function(cn1, cn2) {
|
||
// not in-place (TODO)
|
||
var nucn = [[],[]];
|
||
for (var r = 0;r < _arrlen;r++) {
|
||
nucn[0][r] = ((cn1[0][r]*cn2[0][r])+(cn1[1][r]*cn2[1][r])) / ((cn2[0][r]*cn2[0][r]) + (cn2[1][r]*cn2[1][r]));
|
||
nucn[1][r] = ((cn1[1][r]*cn2[0][r])-(cn1[0][r]*cn2[1][r])) / ((cn2[0][r]*cn2[0][r]) + (cn2[1][r]*cn2[1][r]));
|
||
}
|
||
return nucn;
|
||
};
|
||
}
|
||
|
||
var mosse = {
|
||
mosseFilter : mosseFilter,
|
||
filters : {
|
||
left_eye_filter : left_eye_filter,
|
||
right_eye_filter : right_eye_filter,
|
||
mouth_filter : mouth_filter,
|
||
nose_filter : nose_filter,
|
||
face_filter : face_filter
|
||
}
|
||
};
|
||
|
||
var jsfeat_1 = createCommonjsModule(function (module) {
|
||
/**
|
||
* @author Eugene Zatepyakin / http://inspirit.ru/
|
||
*/
|
||
|
||
// namespace ?
|
||
var jsfeat = jsfeat || { REVISION: 'ALPHA' };
|
||
/**
|
||
* @author Eugene Zatepyakin / http://inspirit.ru/
|
||
*/
|
||
|
||
(function(global) {
|
||
"use strict";
|
||
//
|
||
|
||
// CONSTANTS
|
||
var EPSILON = 0.0000001192092896;
|
||
var FLT_MIN = 1E-37;
|
||
|
||
// implementation from CCV project
|
||
// currently working only with u8,s32,f32
|
||
var U8_t = 0x0100,
|
||
S32_t = 0x0200,
|
||
F32_t = 0x0400,
|
||
S64_t = 0x0800,
|
||
F64_t = 0x1000;
|
||
|
||
var C1_t = 0x01,
|
||
C2_t = 0x02,
|
||
C3_t = 0x03,
|
||
C4_t = 0x04;
|
||
|
||
var _data_type_size = new Int32Array([ -1, 1, 4, -1, 4, -1, -1, -1, 8, -1, -1, -1, -1, -1, -1, -1, 8 ]);
|
||
|
||
var get_data_type = (function () {
|
||
return function(type) {
|
||
return (type & 0xFF00);
|
||
}
|
||
})();
|
||
|
||
var get_channel = (function () {
|
||
return function(type) {
|
||
return (type & 0xFF);
|
||
}
|
||
})();
|
||
|
||
var get_data_type_size = (function () {
|
||
return function(type) {
|
||
return _data_type_size[(type & 0xFF00) >> 8];
|
||
}
|
||
})();
|
||
|
||
// color conversion
|
||
var COLOR_RGBA2GRAY = 0;
|
||
var COLOR_RGB2GRAY = 1;
|
||
var COLOR_BGRA2GRAY = 2;
|
||
var COLOR_BGR2GRAY = 3;
|
||
|
||
// box blur option
|
||
var BOX_BLUR_NOSCALE = 0x01;
|
||
// svd options
|
||
var SVD_U_T = 0x01;
|
||
var SVD_V_T = 0x02;
|
||
|
||
var data_t = (function () {
|
||
function data_t(size_in_bytes, buffer) {
|
||
// we need align size to multiple of 8
|
||
this.size = ((size_in_bytes + 7) | 0) & -8;
|
||
if (typeof buffer === "undefined") {
|
||
this.buffer = new ArrayBuffer(this.size);
|
||
} else {
|
||
this.buffer = buffer;
|
||
this.size = buffer.length;
|
||
}
|
||
this.u8 = new Uint8Array(this.buffer);
|
||
this.i32 = new Int32Array(this.buffer);
|
||
this.f32 = new Float32Array(this.buffer);
|
||
this.f64 = new Float64Array(this.buffer);
|
||
}
|
||
return data_t;
|
||
})();
|
||
|
||
var matrix_t = (function () {
|
||
// columns, rows, data_type
|
||
function matrix_t(c, r, data_type, data_buffer) {
|
||
this.type = get_data_type(data_type)|0;
|
||
this.channel = get_channel(data_type)|0;
|
||
this.cols = c|0;
|
||
this.rows = r|0;
|
||
if (typeof data_buffer === "undefined") {
|
||
this.allocate();
|
||
} else {
|
||
this.buffer = data_buffer;
|
||
// data user asked for
|
||
this.data = this.type&U8_t ? this.buffer.u8 : (this.type&S32_t ? this.buffer.i32 : (this.type&F32_t ? this.buffer.f32 : this.buffer.f64));
|
||
}
|
||
}
|
||
matrix_t.prototype.allocate = function() {
|
||
// clear references
|
||
delete this.data;
|
||
delete this.buffer;
|
||
//
|
||
this.buffer = new data_t((this.cols * get_data_type_size(this.type) * this.channel) * this.rows);
|
||
this.data = this.type&U8_t ? this.buffer.u8 : (this.type&S32_t ? this.buffer.i32 : (this.type&F32_t ? this.buffer.f32 : this.buffer.f64));
|
||
};
|
||
matrix_t.prototype.copy_to = function(other) {
|
||
var od = other.data, td = this.data;
|
||
var i = 0, n = (this.cols*this.rows*this.channel)|0;
|
||
for(; i < n-4; i+=4) {
|
||
od[i] = td[i];
|
||
od[i+1] = td[i+1];
|
||
od[i+2] = td[i+2];
|
||
od[i+3] = td[i+3];
|
||
}
|
||
for(; i < n; ++i) {
|
||
od[i] = td[i];
|
||
}
|
||
};
|
||
matrix_t.prototype.resize = function(c, r, ch) {
|
||
if (typeof ch === "undefined") { ch = this.channel; }
|
||
// relocate buffer only if new size doesnt fit
|
||
var new_size = (c * get_data_type_size(this.type) * ch) * r;
|
||
if(new_size > this.buffer.size) {
|
||
this.cols = c;
|
||
this.rows = r;
|
||
this.channel = ch;
|
||
this.allocate();
|
||
} else {
|
||
this.cols = c;
|
||
this.rows = r;
|
||
this.channel = ch;
|
||
}
|
||
};
|
||
|
||
return matrix_t;
|
||
})();
|
||
|
||
var pyramid_t = (function () {
|
||
|
||
function pyramid_t(levels) {
|
||
this.levels = levels|0;
|
||
this.data = new Array(levels);
|
||
this.pyrdown = jsfeat.imgproc.pyrdown;
|
||
}
|
||
|
||
pyramid_t.prototype.allocate = function(start_w, start_h, data_type) {
|
||
var i = this.levels;
|
||
while(--i >= 0) {
|
||
this.data[i] = new matrix_t(start_w >> i, start_h >> i, data_type);
|
||
}
|
||
};
|
||
|
||
pyramid_t.prototype.build = function(input, skip_first_level) {
|
||
if (typeof skip_first_level === "undefined") { skip_first_level = true; }
|
||
// just copy data to first level
|
||
var i = 2, a = input, b = this.data[0];
|
||
if(!skip_first_level) {
|
||
var j=input.cols*input.rows;
|
||
while(--j >= 0) {
|
||
b.data[j] = input.data[j];
|
||
}
|
||
}
|
||
b = this.data[1];
|
||
this.pyrdown(a, b);
|
||
for(; i < this.levels; ++i) {
|
||
a = b;
|
||
b = this.data[i];
|
||
this.pyrdown(a, b);
|
||
}
|
||
};
|
||
|
||
return pyramid_t;
|
||
})();
|
||
|
||
var keypoint_t = (function () {
|
||
function keypoint_t(x,y,score,level,angle) {
|
||
if (typeof x === "undefined") { x=0; }
|
||
if (typeof y === "undefined") { y=0; }
|
||
if (typeof score === "undefined") { score=0; }
|
||
if (typeof level === "undefined") { level=0; }
|
||
if (typeof angle === "undefined") { angle=-1.0; }
|
||
|
||
this.x = x;
|
||
this.y = y;
|
||
this.score = score;
|
||
this.level = level;
|
||
this.angle = angle;
|
||
}
|
||
return keypoint_t;
|
||
})();
|
||
|
||
|
||
// data types
|
||
global.U8_t = U8_t;
|
||
global.S32_t = S32_t;
|
||
global.F32_t = F32_t;
|
||
global.S64_t = S64_t;
|
||
global.F64_t = F64_t;
|
||
// data channels
|
||
global.C1_t = C1_t;
|
||
global.C2_t = C2_t;
|
||
global.C3_t = C3_t;
|
||
global.C4_t = C4_t;
|
||
|
||
// popular formats
|
||
global.U8C1_t = U8_t | C1_t;
|
||
global.U8C3_t = U8_t | C3_t;
|
||
global.U8C4_t = U8_t | C4_t;
|
||
|
||
global.F32C1_t = F32_t | C1_t;
|
||
global.F32C2_t = F32_t | C2_t;
|
||
global.S32C1_t = S32_t | C1_t;
|
||
global.S32C2_t = S32_t | C2_t;
|
||
|
||
// constants
|
||
global.EPSILON = EPSILON;
|
||
global.FLT_MIN = FLT_MIN;
|
||
|
||
// color convert
|
||
global.COLOR_RGBA2GRAY = COLOR_RGBA2GRAY;
|
||
global.COLOR_RGB2GRAY = COLOR_RGB2GRAY;
|
||
global.COLOR_BGRA2GRAY = COLOR_BGRA2GRAY;
|
||
global.COLOR_BGR2GRAY = COLOR_BGR2GRAY;
|
||
|
||
// options
|
||
global.BOX_BLUR_NOSCALE = BOX_BLUR_NOSCALE;
|
||
global.SVD_U_T = SVD_U_T;
|
||
global.SVD_V_T = SVD_V_T;
|
||
|
||
global.get_data_type = get_data_type;
|
||
global.get_channel = get_channel;
|
||
global.get_data_type_size = get_data_type_size;
|
||
|
||
global.data_t = data_t;
|
||
global.matrix_t = matrix_t;
|
||
global.pyramid_t = pyramid_t;
|
||
global.keypoint_t = keypoint_t;
|
||
|
||
})(jsfeat);
|
||
/**
|
||
* @author Eugene Zatepyakin / http://inspirit.ru/
|
||
*/
|
||
|
||
(function(global) {
|
||
"use strict";
|
||
//
|
||
|
||
var cache = (function() {
|
||
|
||
// very primitive array cache, still need testing if it helps
|
||
// of course V8 has its own powerful cache sys but i'm not sure
|
||
// it caches several multichannel 640x480 buffer creations each frame
|
||
|
||
var _pool_node_t = (function () {
|
||
function _pool_node_t(size_in_bytes) {
|
||
this.next = null;
|
||
this.data = new jsfeat.data_t(size_in_bytes);
|
||
this.size = this.data.size;
|
||
this.buffer = this.data.buffer;
|
||
this.u8 = this.data.u8;
|
||
this.i32 = this.data.i32;
|
||
this.f32 = this.data.f32;
|
||
this.f64 = this.data.f64;
|
||
}
|
||
_pool_node_t.prototype.resize = function(size_in_bytes) {
|
||
delete this.data;
|
||
this.data = new jsfeat.data_t(size_in_bytes);
|
||
this.size = this.data.size;
|
||
this.buffer = this.data.buffer;
|
||
this.u8 = this.data.u8;
|
||
this.i32 = this.data.i32;
|
||
this.f32 = this.data.f32;
|
||
this.f64 = this.data.f64;
|
||
};
|
||
return _pool_node_t;
|
||
})();
|
||
|
||
var _pool_head, _pool_tail;
|
||
var _pool_size = 0;
|
||
|
||
return {
|
||
|
||
allocate: function(capacity, data_size) {
|
||
_pool_head = _pool_tail = new _pool_node_t(data_size);
|
||
for (var i = 0; i < capacity; ++i) {
|
||
var node = new _pool_node_t(data_size);
|
||
_pool_tail = _pool_tail.next = node;
|
||
|
||
_pool_size++;
|
||
}
|
||
},
|
||
|
||
get_buffer: function(size_in_bytes) {
|
||
// assume we have enough free nodes
|
||
var node = _pool_head;
|
||
_pool_head = _pool_head.next;
|
||
_pool_size--;
|
||
|
||
if(size_in_bytes > node.size) {
|
||
node.resize(size_in_bytes);
|
||
}
|
||
|
||
return node;
|
||
},
|
||
|
||
put_buffer: function(node) {
|
||
_pool_tail = _pool_tail.next = node;
|
||
_pool_size++;
|
||
}
|
||
};
|
||
})();
|
||
|
||
global.cache = cache;
|
||
// for now we dont need more than 30 buffers
|
||
// if having cache sys really helps we can add auto extending sys
|
||
cache.allocate(30, 640*4);
|
||
|
||
})(jsfeat);
|
||
/**
|
||
* @author Eugene Zatepyakin / http://inspirit.ru/
|
||
*/
|
||
|
||
(function(global) {
|
||
"use strict";
|
||
//
|
||
|
||
var math = (function() {
|
||
|
||
var qsort_stack = new Int32Array(48*2);
|
||
|
||
return {
|
||
get_gaussian_kernel: function(size, sigma, kernel, data_type) {
|
||
var i=0,x=0.0,t=0.0,sigma_x=0.0,scale_2x=0.0;
|
||
var sum = 0.0;
|
||
var kern_node = jsfeat.cache.get_buffer(size<<2);
|
||
var _kernel = kern_node.f32;//new Float32Array(size);
|
||
|
||
if((size&1) == 1 && size <= 7 && sigma <= 0) {
|
||
switch(size>>1) {
|
||
case 0:
|
||
_kernel[0] = 1.0;
|
||
sum = 1.0;
|
||
break;
|
||
case 1:
|
||
_kernel[0] = 0.25, _kernel[1] = 0.5, _kernel[2] = 0.25;
|
||
sum = 0.25+0.5+0.25;
|
||
break;
|
||
case 2:
|
||
_kernel[0] = 0.0625, _kernel[1] = 0.25, _kernel[2] = 0.375,
|
||
_kernel[3] = 0.25, _kernel[4] = 0.0625;
|
||
sum = 0.0625+0.25+0.375+0.25+0.0625;
|
||
break;
|
||
case 3:
|
||
_kernel[0] = 0.03125, _kernel[1] = 0.109375, _kernel[2] = 0.21875,
|
||
_kernel[3] = 0.28125, _kernel[4] = 0.21875, _kernel[5] = 0.109375, _kernel[6] = 0.03125;
|
||
sum = 0.03125+0.109375+0.21875+0.28125+0.21875+0.109375+0.03125;
|
||
break;
|
||
}
|
||
} else {
|
||
sigma_x = sigma > 0 ? sigma : ((size-1)*0.5 - 1.0)*0.3 + 0.8;
|
||
scale_2x = -0.5/(sigma_x*sigma_x);
|
||
|
||
for( ; i < size; ++i )
|
||
{
|
||
x = i - (size-1)*0.5;
|
||
t = Math.exp(scale_2x*x*x);
|
||
|
||
_kernel[i] = t;
|
||
sum += t;
|
||
}
|
||
}
|
||
|
||
if(data_type & jsfeat.U8_t) {
|
||
// int based kernel
|
||
sum = 256.0/sum;
|
||
for (i = 0; i < size; ++i) {
|
||
kernel[i] = (_kernel[i] * sum + 0.5)|0;
|
||
}
|
||
} else {
|
||
// classic kernel
|
||
sum = 1.0/sum;
|
||
for (i = 0; i < size; ++i) {
|
||
kernel[i] = _kernel[i] * sum;
|
||
}
|
||
}
|
||
|
||
jsfeat.cache.put_buffer(kern_node);
|
||
},
|
||
|
||
// model is 3x3 matrix_t
|
||
perspective_4point_transform: function(model, src_x0, src_y0, dst_x0, dst_y0,
|
||
src_x1, src_y1, dst_x1, dst_y1,
|
||
src_x2, src_y2, dst_x2, dst_y2,
|
||
src_x3, src_y3, dst_x3, dst_y3) {
|
||
var t1 = src_x0;
|
||
var t2 = src_x2;
|
||
var t4 = src_y1;
|
||
var t5 = t1 * t2 * t4;
|
||
var t6 = src_y3;
|
||
var t7 = t1 * t6;
|
||
var t8 = t2 * t7;
|
||
var t9 = src_y2;
|
||
var t10 = t1 * t9;
|
||
var t11 = src_x1;
|
||
var t14 = src_y0;
|
||
var t15 = src_x3;
|
||
var t16 = t14 * t15;
|
||
var t18 = t16 * t11;
|
||
var t20 = t15 * t11 * t9;
|
||
var t21 = t15 * t4;
|
||
var t24 = t15 * t9;
|
||
var t25 = t2 * t4;
|
||
var t26 = t6 * t2;
|
||
var t27 = t6 * t11;
|
||
var t28 = t9 * t11;
|
||
var t30 = 1.0 / (t21-t24 - t25 + t26 - t27 + t28);
|
||
var t32 = t1 * t15;
|
||
var t35 = t14 * t11;
|
||
var t41 = t4 * t1;
|
||
var t42 = t6 * t41;
|
||
var t43 = t14 * t2;
|
||
var t46 = t16 * t9;
|
||
var t48 = t14 * t9 * t11;
|
||
var t51 = t4 * t6 * t2;
|
||
var t55 = t6 * t14;
|
||
var Hr0 = -(t8-t5 + t10 * t11 - t11 * t7 - t16 * t2 + t18 - t20 + t21 * t2) * t30;
|
||
var Hr1 = (t5 - t8 - t32 * t4 + t32 * t9 + t18 - t2 * t35 + t27 * t2 - t20) * t30;
|
||
var Hr2 = t1;
|
||
var Hr3 = (-t9 * t7 + t42 + t43 * t4 - t16 * t4 + t46 - t48 + t27 * t9 - t51) * t30;
|
||
var Hr4 = (-t42 + t41 * t9 - t55 * t2 + t46 - t48 + t55 * t11 + t51 - t21 * t9) * t30;
|
||
var Hr5 = t14;
|
||
var Hr6 = (-t10 + t41 + t43 - t35 + t24 - t21 - t26 + t27) * t30;
|
||
var Hr7 = (-t7 + t10 + t16 - t43 + t27 - t28 - t21 + t25) * t30;
|
||
|
||
t1 = dst_x0;
|
||
t2 = dst_x2;
|
||
t4 = dst_y1;
|
||
t5 = t1 * t2 * t4;
|
||
t6 = dst_y3;
|
||
t7 = t1 * t6;
|
||
t8 = t2 * t7;
|
||
t9 = dst_y2;
|
||
t10 = t1 * t9;
|
||
t11 = dst_x1;
|
||
t14 = dst_y0;
|
||
t15 = dst_x3;
|
||
t16 = t14 * t15;
|
||
t18 = t16 * t11;
|
||
t20 = t15 * t11 * t9;
|
||
t21 = t15 * t4;
|
||
t24 = t15 * t9;
|
||
t25 = t2 * t4;
|
||
t26 = t6 * t2;
|
||
t27 = t6 * t11;
|
||
t28 = t9 * t11;
|
||
t30 = 1.0 / (t21-t24 - t25 + t26 - t27 + t28);
|
||
t32 = t1 * t15;
|
||
t35 = t14 * t11;
|
||
t41 = t4 * t1;
|
||
t42 = t6 * t41;
|
||
t43 = t14 * t2;
|
||
t46 = t16 * t9;
|
||
t48 = t14 * t9 * t11;
|
||
t51 = t4 * t6 * t2;
|
||
t55 = t6 * t14;
|
||
var Hl0 = -(t8-t5 + t10 * t11 - t11 * t7 - t16 * t2 + t18 - t20 + t21 * t2) * t30;
|
||
var Hl1 = (t5 - t8 - t32 * t4 + t32 * t9 + t18 - t2 * t35 + t27 * t2 - t20) * t30;
|
||
var Hl2 = t1;
|
||
var Hl3 = (-t9 * t7 + t42 + t43 * t4 - t16 * t4 + t46 - t48 + t27 * t9 - t51) * t30;
|
||
var Hl4 = (-t42 + t41 * t9 - t55 * t2 + t46 - t48 + t55 * t11 + t51 - t21 * t9) * t30;
|
||
var Hl5 = t14;
|
||
var Hl6 = (-t10 + t41 + t43 - t35 + t24 - t21 - t26 + t27) * t30;
|
||
var Hl7 = (-t7 + t10 + t16 - t43 + t27 - t28 - t21 + t25) * t30;
|
||
|
||
// the following code computes R = Hl * inverse Hr
|
||
t2 = Hr4-Hr7*Hr5;
|
||
t4 = Hr0*Hr4;
|
||
t5 = Hr0*Hr5;
|
||
t7 = Hr3*Hr1;
|
||
t8 = Hr2*Hr3;
|
||
t10 = Hr1*Hr6;
|
||
var t12 = Hr2*Hr6;
|
||
t15 = 1.0 / (t4-t5*Hr7-t7+t8*Hr7+t10*Hr5-t12*Hr4);
|
||
t18 = -Hr3+Hr5*Hr6;
|
||
var t23 = -Hr3*Hr7+Hr4*Hr6;
|
||
t28 = -Hr1+Hr2*Hr7;
|
||
var t31 = Hr0-t12;
|
||
t35 = Hr0*Hr7-t10;
|
||
t41 = -Hr1*Hr5+Hr2*Hr4;
|
||
var t44 = t5-t8;
|
||
var t47 = t4-t7;
|
||
t48 = t2*t15;
|
||
var t49 = t28*t15;
|
||
var t50 = t41*t15;
|
||
var mat = model.data;
|
||
mat[0] = Hl0*t48+Hl1*(t18*t15)-Hl2*(t23*t15);
|
||
mat[1] = Hl0*t49+Hl1*(t31*t15)-Hl2*(t35*t15);
|
||
mat[2] = -Hl0*t50-Hl1*(t44*t15)+Hl2*(t47*t15);
|
||
mat[3] = Hl3*t48+Hl4*(t18*t15)-Hl5*(t23*t15);
|
||
mat[4] = Hl3*t49+Hl4*(t31*t15)-Hl5*(t35*t15);
|
||
mat[5] = -Hl3*t50-Hl4*(t44*t15)+Hl5*(t47*t15);
|
||
mat[6] = Hl6*t48+Hl7*(t18*t15)-t23*t15;
|
||
mat[7] = Hl6*t49+Hl7*(t31*t15)-t35*t15;
|
||
mat[8] = -Hl6*t50-Hl7*(t44*t15)+t47*t15;
|
||
},
|
||
|
||
// The current implementation was derived from *BSD system qsort():
|
||
// Copyright (c) 1992, 1993
|
||
// The Regents of the University of California. All rights reserved.
|
||
qsort: function(array, low, high, cmp) {
|
||
var isort_thresh = 7;
|
||
var t,ta,tb,tc;
|
||
var sp = 0,left=0,right=0,i=0,n=0,m=0,ptr=0,ptr2=0,d=0;
|
||
var left0=0,left1=0,right0=0,right1=0,pivot=0,a=0,b=0,c=0,swap_cnt=0;
|
||
|
||
var stack = qsort_stack;
|
||
|
||
if( (high-low+1) <= 1 ) return;
|
||
|
||
stack[0] = low;
|
||
stack[1] = high;
|
||
|
||
while( sp >= 0 ) {
|
||
|
||
left = stack[sp<<1];
|
||
right = stack[(sp<<1)+1];
|
||
sp--;
|
||
|
||
for(;;) {
|
||
n = (right - left) + 1;
|
||
|
||
if( n <= isort_thresh ) {
|
||
//insert_sort:
|
||
for( ptr = left + 1; ptr <= right; ptr++ ) {
|
||
for( ptr2 = ptr; ptr2 > left && cmp(array[ptr2],array[ptr2-1]); ptr2--) {
|
||
t = array[ptr2];
|
||
array[ptr2] = array[ptr2-1];
|
||
array[ptr2-1] = t;
|
||
}
|
||
}
|
||
break;
|
||
} else {
|
||
swap_cnt = 0;
|
||
|
||
left0 = left;
|
||
right0 = right;
|
||
pivot = left + (n>>1);
|
||
|
||
if( n > 40 ) {
|
||
d = n >> 3;
|
||
a = left, b = left + d, c = left + (d<<1);
|
||
ta = array[a],tb = array[b],tc = array[c];
|
||
left = cmp(ta, tb) ? (cmp(tb, tc) ? b : (cmp(ta, tc) ? c : a))
|
||
: (cmp(tc, tb) ? b : (cmp(ta, tc) ? a : c));
|
||
|
||
a = pivot - d, b = pivot, c = pivot + d;
|
||
ta = array[a],tb = array[b],tc = array[c];
|
||
pivot = cmp(ta, tb) ? (cmp(tb, tc) ? b : (cmp(ta, tc) ? c : a))
|
||
: (cmp(tc, tb) ? b : (cmp(ta, tc) ? a : c));
|
||
|
||
a = right - (d<<1), b = right - d, c = right;
|
||
ta = array[a],tb = array[b],tc = array[c];
|
||
right = cmp(ta, tb) ? (cmp(tb, tc) ? b : (cmp(ta, tc) ? c : a))
|
||
: (cmp(tc, tb) ? b : (cmp(ta, tc) ? a : c));
|
||
}
|
||
|
||
a = left, b = pivot, c = right;
|
||
ta = array[a],tb = array[b],tc = array[c];
|
||
pivot = cmp(ta, tb) ? (cmp(tb, tc) ? b : (cmp(ta, tc) ? c : a))
|
||
: (cmp(tc, tb) ? b : (cmp(ta, tc) ? a : c));
|
||
if( pivot != left0 ) {
|
||
t = array[pivot];
|
||
array[pivot] = array[left0];
|
||
array[left0] = t;
|
||
pivot = left0;
|
||
}
|
||
left = left1 = left0 + 1;
|
||
right = right1 = right0;
|
||
|
||
ta = array[pivot];
|
||
for(;;) {
|
||
while( left <= right && !cmp(ta, array[left]) ) {
|
||
if( !cmp(array[left], ta) ) {
|
||
if( left > left1 ) {
|
||
t = array[left1];
|
||
array[left1] = array[left];
|
||
array[left] = t;
|
||
}
|
||
swap_cnt = 1;
|
||
left1++;
|
||
}
|
||
left++;
|
||
}
|
||
|
||
while( left <= right && !cmp(array[right], ta) ) {
|
||
if( !cmp(ta, array[right]) ) {
|
||
if( right < right1 ) {
|
||
t = array[right1];
|
||
array[right1] = array[right];
|
||
array[right] = t;
|
||
}
|
||
swap_cnt = 1;
|
||
right1--;
|
||
}
|
||
right--;
|
||
}
|
||
|
||
if( left > right ) break;
|
||
|
||
t = array[left];
|
||
array[left] = array[right];
|
||
array[right] = t;
|
||
swap_cnt = 1;
|
||
left++;
|
||
right--;
|
||
}
|
||
|
||
if( swap_cnt == 0 ) {
|
||
left = left0, right = right0;
|
||
//goto insert_sort;
|
||
for( ptr = left + 1; ptr <= right; ptr++ ) {
|
||
for( ptr2 = ptr; ptr2 > left && cmp(array[ptr2],array[ptr2-1]); ptr2--) {
|
||
t = array[ptr2];
|
||
array[ptr2] = array[ptr2-1];
|
||
array[ptr2-1] = t;
|
||
}
|
||
}
|
||
break;
|
||
}
|
||
|
||
n = Math.min( (left1 - left0), (left - left1) );
|
||
m = (left-n)|0;
|
||
for( i = 0; i < n; ++i,++m ) {
|
||
t = array[left0+i];
|
||
array[left0+i] = array[m];
|
||
array[m] = t;
|
||
}
|
||
|
||
n = Math.min( (right0 - right1), (right1 - right) );
|
||
m = (right0-n+1)|0;
|
||
for( i = 0; i < n; ++i,++m ) {
|
||
t = array[left+i];
|
||
array[left+i] = array[m];
|
||
array[m] = t;
|
||
}
|
||
n = (left - left1);
|
||
m = (right1 - right);
|
||
if( n > 1 ) {
|
||
if( m > 1 ) {
|
||
if( n > m ) {
|
||
++sp;
|
||
stack[sp<<1] = left0;
|
||
stack[(sp<<1)+1] = left0 + n - 1;
|
||
left = right0 - m + 1, right = right0;
|
||
} else {
|
||
++sp;
|
||
stack[sp<<1] = right0 - m + 1;
|
||
stack[(sp<<1)+1] = right0;
|
||
left = left0, right = left0 + n - 1;
|
||
}
|
||
} else {
|
||
left = left0, right = left0 + n - 1;
|
||
}
|
||
}
|
||
else if( m > 1 )
|
||
left = right0 - m + 1, right = right0;
|
||
else
|
||
break;
|
||
}
|
||
}
|
||
}
|
||
},
|
||
|
||
median: function(array, low, high) {
|
||
var w;
|
||
var middle=0,ll=0,hh=0,median=(low+high)>>1;
|
||
for (;;) {
|
||
if (high <= low) return array[median];
|
||
if (high == (low + 1)) {
|
||
if (array[low] > array[high]) {
|
||
w = array[low];
|
||
array[low] = array[high];
|
||
array[high] = w;
|
||
}
|
||
return array[median];
|
||
}
|
||
middle = ((low + high) >> 1);
|
||
if (array[middle] > array[high]) {
|
||
w = array[middle];
|
||
array[middle] = array[high];
|
||
array[high] = w;
|
||
}
|
||
if (array[low] > array[high]) {
|
||
w = array[low];
|
||
array[low] = array[high];
|
||
array[high] = w;
|
||
}
|
||
if (array[middle] > array[low]) {
|
||
w = array[middle];
|
||
array[middle] = array[low];
|
||
array[low] = w;
|
||
}
|
||
ll = (low + 1);
|
||
w = array[middle];
|
||
array[middle] = array[ll];
|
||
array[ll] = w;
|
||
hh = high;
|
||
for (;;) {
|
||
do ++ll; while (array[low] > array[ll]);
|
||
do --hh; while (array[hh] > array[low]);
|
||
if (hh < ll) break;
|
||
w = array[ll];
|
||
array[ll] = array[hh];
|
||
array[hh] = w;
|
||
}
|
||
w = array[low];
|
||
array[low] = array[hh];
|
||
array[hh] = w;
|
||
if (hh <= median)
|
||
low = ll;
|
||
else if (hh >= median)
|
||
high = (hh - 1);
|
||
}
|
||
return 0;
|
||
}
|
||
};
|
||
|
||
})();
|
||
|
||
global.math = math;
|
||
|
||
})(jsfeat);
|
||
/**
|
||
* @author Eugene Zatepyakin / http://inspirit.ru/
|
||
*
|
||
*/
|
||
|
||
(function(global) {
|
||
"use strict";
|
||
//
|
||
|
||
var matmath = (function() {
|
||
|
||
return {
|
||
identity: function(M, value) {
|
||
if (typeof value === "undefined") { value=1; }
|
||
var src=M.data;
|
||
var rows=M.rows, cols=M.cols, cols_1=(cols+1)|0;
|
||
var len = rows * cols;
|
||
var k = len;
|
||
while(--len >= 0) src[len] = 0.0;
|
||
len = k;
|
||
k = 0;
|
||
while(k < len) {
|
||
src[k] = value;
|
||
k = k + cols_1;
|
||
}
|
||
},
|
||
|
||
transpose: function(At, A) {
|
||
var i=0,j=0,nrows=A.rows,ncols=A.cols;
|
||
var Ai=0,Ati=0,pAt=0;
|
||
var ad=A.data,atd=At.data;
|
||
|
||
for (; i < nrows; Ati += 1, Ai += ncols, i++) {
|
||
pAt = Ati;
|
||
for (j = 0; j < ncols; pAt += nrows, j++) atd[pAt] = ad[Ai+j];
|
||
}
|
||
},
|
||
|
||
// C = A * B
|
||
multiply: function(C, A, B) {
|
||
var i=0,j=0,k=0;
|
||
var Ap=0,pA=0,pB=0,p_B=0,Cp=0;
|
||
var ncols=A.cols,nrows=A.rows,mcols=B.cols;
|
||
var ad=A.data,bd=B.data,cd=C.data;
|
||
var sum=0.0;
|
||
|
||
for (; i < nrows; Ap += ncols, i++) {
|
||
for (p_B = 0, j = 0; j < mcols; Cp++, p_B++, j++) {
|
||
pB = p_B;
|
||
pA = Ap;
|
||
sum = 0.0;
|
||
for (k = 0; k < ncols; pA++, pB += mcols, k++) {
|
||
sum += ad[pA] * bd[pB];
|
||
}
|
||
cd[Cp] = sum;
|
||
}
|
||
}
|
||
},
|
||
|
||
// C = A * B'
|
||
multiply_ABt: function(C, A, B) {
|
||
var i=0,j=0,k=0;
|
||
var Ap=0,pA=0,pB=0,Cp=0;
|
||
var ncols=A.cols,nrows=A.rows,mrows=B.rows;
|
||
var ad=A.data,bd=B.data,cd=C.data;
|
||
var sum=0.0;
|
||
|
||
for (; i < nrows; Ap += ncols, i++) {
|
||
for (pB = 0, j = 0; j < mrows; Cp++, j++) {
|
||
pA = Ap;
|
||
sum = 0.0;
|
||
for (k = 0; k < ncols; pA++, pB++, k++) {
|
||
sum += ad[pA] * bd[pB];
|
||
}
|
||
cd[Cp] = sum;
|
||
}
|
||
}
|
||
},
|
||
|
||
// C = A' * B
|
||
multiply_AtB: function(C, A, B) {
|
||
var i=0,j=0,k=0;
|
||
var Ap=0,pA=0,pB=0,p_B=0,Cp=0;
|
||
var ncols=A.cols,nrows=A.rows,mcols=B.cols;
|
||
var ad=A.data,bd=B.data,cd=C.data;
|
||
var sum=0.0;
|
||
|
||
for (; i < ncols; Ap++, i++) {
|
||
for (p_B = 0, j = 0; j < mcols; Cp++, p_B++, j++) {
|
||
pB = p_B;
|
||
pA = Ap;
|
||
sum = 0.0;
|
||
for (k = 0; k < nrows; pA += ncols, pB += mcols, k++) {
|
||
sum += ad[pA] * bd[pB];
|
||
}
|
||
cd[Cp] = sum;
|
||
}
|
||
}
|
||
},
|
||
|
||
// C = A * A'
|
||
multiply_AAt: function(C, A) {
|
||
var i=0,j=0,k=0;
|
||
var pCdiag=0,p_A=0,pA=0,pB=0,pC=0,pCt=0;
|
||
var ncols=A.cols,nrows=A.rows;
|
||
var ad=A.data,cd=C.data;
|
||
var sum=0.0;
|
||
|
||
for (; i < nrows; pCdiag += nrows + 1, p_A = pA, i++) {
|
||
pC = pCdiag;
|
||
pCt = pCdiag;
|
||
pB = p_A;
|
||
for (j = i; j < nrows; pC++, pCt += nrows, j++) {
|
||
pA = p_A;
|
||
sum = 0.0;
|
||
for (k = 0; k < ncols; k++) {
|
||
sum += ad[pA++] * ad[pB++];
|
||
}
|
||
cd[pC] = sum;
|
||
cd[pCt] = sum;
|
||
}
|
||
}
|
||
},
|
||
|
||
// C = A' * A
|
||
multiply_AtA: function(C, A) {
|
||
var i=0,j=0,k=0;
|
||
var p_A=0,pA=0,pB=0,p_C=0,pC=0,p_CC=0;
|
||
var ncols=A.cols,nrows=A.rows;
|
||
var ad=A.data,cd=C.data;
|
||
var sum=0.0;
|
||
|
||
for (; i < ncols; p_C += ncols, i++) {
|
||
p_A = i;
|
||
p_CC = p_C + i;
|
||
pC = p_CC;
|
||
for (j = i; j < ncols; pC++, p_CC += ncols, j++) {
|
||
pA = p_A;
|
||
pB = j;
|
||
sum = 0.0;
|
||
for (k = 0; k < nrows; pA += ncols, pB += ncols, k++) {
|
||
sum += ad[pA] * ad[pB];
|
||
}
|
||
cd[pC] = sum;
|
||
cd[p_CC] = sum;
|
||
}
|
||
}
|
||
},
|
||
|
||
// various small matrix operations
|
||
identity_3x3: function(M, value) {
|
||
if (typeof value === "undefined") { value=1; }
|
||
var dt=M.data;
|
||
dt[0] = dt[4] = dt[8] = value;
|
||
dt[1] = dt[2] = dt[3] = 0;
|
||
dt[5] = dt[6] = dt[7] = 0;
|
||
},
|
||
|
||
invert_3x3: function(from, to) {
|
||
var A = from.data, invA = to.data;
|
||
var t1 = A[4];
|
||
var t2 = A[8];
|
||
var t4 = A[5];
|
||
var t5 = A[7];
|
||
var t8 = A[0];
|
||
|
||
var t9 = t8*t1;
|
||
var t11 = t8*t4;
|
||
var t13 = A[3];
|
||
var t14 = A[1];
|
||
var t15 = t13*t14;
|
||
var t17 = A[2];
|
||
var t18 = t13*t17;
|
||
var t20 = A[6];
|
||
var t21 = t20*t14;
|
||
var t23 = t20*t17;
|
||
var t26 = 1.0/(t9*t2-t11*t5-t15*t2+t18*t5+t21*t4-t23*t1);
|
||
invA[0] = (t1*t2-t4*t5)*t26;
|
||
invA[1] = -(t14*t2-t17*t5)*t26;
|
||
invA[2] = -(-t14*t4+t17*t1)*t26;
|
||
invA[3] = -(t13*t2-t4*t20)*t26;
|
||
invA[4] = (t8*t2-t23)*t26;
|
||
invA[5] = -(t11-t18)*t26;
|
||
invA[6] = -(-t13*t5+t1*t20)*t26;
|
||
invA[7] = -(t8*t5-t21)*t26;
|
||
invA[8] = (t9-t15)*t26;
|
||
},
|
||
// C = A * B
|
||
multiply_3x3: function(C, A, B) {
|
||
var Cd=C.data, Ad=A.data, Bd=B.data;
|
||
var m1_0 = Ad[0], m1_1 = Ad[1], m1_2 = Ad[2];
|
||
var m1_3 = Ad[3], m1_4 = Ad[4], m1_5 = Ad[5];
|
||
var m1_6 = Ad[6], m1_7 = Ad[7], m1_8 = Ad[8];
|
||
|
||
var m2_0 = Bd[0], m2_1 = Bd[1], m2_2 = Bd[2];
|
||
var m2_3 = Bd[3], m2_4 = Bd[4], m2_5 = Bd[5];
|
||
var m2_6 = Bd[6], m2_7 = Bd[7], m2_8 = Bd[8];
|
||
|
||
Cd[0] = m1_0 * m2_0 + m1_1 * m2_3 + m1_2 * m2_6;
|
||
Cd[1] = m1_0 * m2_1 + m1_1 * m2_4 + m1_2 * m2_7;
|
||
Cd[2] = m1_0 * m2_2 + m1_1 * m2_5 + m1_2 * m2_8;
|
||
Cd[3] = m1_3 * m2_0 + m1_4 * m2_3 + m1_5 * m2_6;
|
||
Cd[4] = m1_3 * m2_1 + m1_4 * m2_4 + m1_5 * m2_7;
|
||
Cd[5] = m1_3 * m2_2 + m1_4 * m2_5 + m1_5 * m2_8;
|
||
Cd[6] = m1_6 * m2_0 + m1_7 * m2_3 + m1_8 * m2_6;
|
||
Cd[7] = m1_6 * m2_1 + m1_7 * m2_4 + m1_8 * m2_7;
|
||
Cd[8] = m1_6 * m2_2 + m1_7 * m2_5 + m1_8 * m2_8;
|
||
},
|
||
|
||
mat3x3_determinant: function(M) {
|
||
var md=M.data;
|
||
return md[0] * md[4] * md[8] -
|
||
md[0] * md[5] * md[7] -
|
||
md[3] * md[1] * md[8] +
|
||
md[3] * md[2] * md[7] +
|
||
md[6] * md[1] * md[5] -
|
||
md[6] * md[2] * md[4];
|
||
},
|
||
|
||
determinant_3x3: function(M11, M12, M13,
|
||
M21, M22, M23,
|
||
M31, M32, M33) {
|
||
return M11 * M22 * M33 - M11 * M23 * M32 -
|
||
M21 * M12 * M33 + M21 * M13 * M32 +
|
||
M31 * M12 * M23 - M31 * M13 * M22;
|
||
}
|
||
};
|
||
|
||
})();
|
||
|
||
global.matmath = matmath;
|
||
|
||
})(jsfeat);
|
||
/**
|
||
* @author Eugene Zatepyakin / http://inspirit.ru/
|
||
*
|
||
*/
|
||
|
||
(function(global) {
|
||
"use strict";
|
||
//
|
||
|
||
var linalg = (function() {
|
||
|
||
var swap = function(A, i0, i1, t) {
|
||
t = A[i0];
|
||
A[i0] = A[i1];
|
||
A[i1] = t;
|
||
};
|
||
|
||
var hypot = function(a, b) {
|
||
a = Math.abs(a);
|
||
b = Math.abs(b);
|
||
if( a > b ) {
|
||
b /= a;
|
||
return a*Math.sqrt(1.0 + b*b);
|
||
}
|
||
if( b > 0 ) {
|
||
a /= b;
|
||
return b*Math.sqrt(1.0 + a*a);
|
||
}
|
||
return 0.0;
|
||
};
|
||
|
||
var JacobiImpl = function(A, astep, W, V, vstep, n) {
|
||
var eps = jsfeat.EPSILON;
|
||
var i=0,j=0,k=0,m=0,l=0,idx=0,_in=0,_in2=0;
|
||
var iters=0,max_iter=n*n*30;
|
||
var mv=0.0,val=0.0,p=0.0,y=0.0,t=0.0,s=0.0,c=0.0,a0=0.0,b0=0.0;
|
||
|
||
var indR_buff = jsfeat.cache.get_buffer(n<<2);
|
||
var indC_buff = jsfeat.cache.get_buffer(n<<2);
|
||
var indR = indR_buff.i32;
|
||
var indC = indC_buff.i32;
|
||
|
||
if(V) {
|
||
for(; i < n; i++) {
|
||
k = i*vstep;
|
||
for(j = 0; j < n; j++) {
|
||
V[k + j] = 0.0;
|
||
}
|
||
V[k + i] = 1.0;
|
||
}
|
||
}
|
||
|
||
for(k = 0; k < n; k++) {
|
||
W[k] = A[(astep + 1)*k];
|
||
if(k < n - 1) {
|
||
for(m = k+1, mv = Math.abs(A[astep*k + m]), i = k+2; i < n; i++) {
|
||
val = Math.abs(A[astep*k+i]);
|
||
if(mv < val)
|
||
mv = val, m = i;
|
||
}
|
||
indR[k] = m;
|
||
}
|
||
if(k > 0) {
|
||
for(m = 0, mv = Math.abs(A[k]), i = 1; i < k; i++) {
|
||
val = Math.abs(A[astep*i+k]);
|
||
if(mv < val)
|
||
mv = val, m = i;
|
||
}
|
||
indC[k] = m;
|
||
}
|
||
}
|
||
|
||
if(n > 1) for( ; iters < max_iter; iters++) {
|
||
// find index (k,l) of pivot p
|
||
for(k = 0, mv = Math.abs(A[indR[0]]), i = 1; i < n-1; i++) {
|
||
val = Math.abs(A[astep*i + indR[i]]);
|
||
if( mv < val )
|
||
mv = val, k = i;
|
||
}
|
||
l = indR[k];
|
||
for(i = 1; i < n; i++) {
|
||
val = Math.abs(A[astep*indC[i] + i]);
|
||
if( mv < val )
|
||
mv = val, k = indC[i], l = i;
|
||
}
|
||
|
||
p = A[astep*k + l];
|
||
|
||
if(Math.abs(p) <= eps) break;
|
||
|
||
y = (W[l] - W[k])*0.5;
|
||
t = Math.abs(y) + hypot(p, y);
|
||
s = hypot(p, t);
|
||
c = t/s;
|
||
s = p/s; t = (p/t)*p;
|
||
if(y < 0)
|
||
s = -s, t = -t;
|
||
A[astep*k + l] = 0;
|
||
|
||
W[k] -= t;
|
||
W[l] += t;
|
||
|
||
// rotate rows and columns k and l
|
||
for (i = 0; i < k; i++) {
|
||
_in = (astep * i + k);
|
||
_in2 = (astep * i + l);
|
||
a0 = A[_in];
|
||
b0 = A[_in2];
|
||
A[_in] = a0 * c - b0 * s;
|
||
A[_in2] = a0 * s + b0 * c;
|
||
}
|
||
for (i = (k + 1); i < l; i++) {
|
||
_in = (astep * k + i);
|
||
_in2 = (astep * i + l);
|
||
a0 = A[_in];
|
||
b0 = A[_in2];
|
||
A[_in] = a0 * c - b0 * s;
|
||
A[_in2] = a0 * s + b0 * c;
|
||
}
|
||
i = l + 1;
|
||
_in = (astep * k + i);
|
||
_in2 = (astep * l + i);
|
||
for (; i < n; i++, _in++, _in2++) {
|
||
a0 = A[_in];
|
||
b0 = A[_in2];
|
||
A[_in] = a0 * c - b0 * s;
|
||
A[_in2] = a0 * s + b0 * c;
|
||
}
|
||
|
||
// rotate eigenvectors
|
||
if (V) {
|
||
_in = vstep * k;
|
||
_in2 = vstep * l;
|
||
for (i = 0; i < n; i++, _in++, _in2++) {
|
||
a0 = V[_in];
|
||
b0 = V[_in2];
|
||
V[_in] = a0 * c - b0 * s;
|
||
V[_in2] = a0 * s + b0 * c;
|
||
}
|
||
}
|
||
|
||
for(j = 0; j < 2; j++) {
|
||
idx = j == 0 ? k : l;
|
||
if(idx < n - 1) {
|
||
for(m = idx+1, mv = Math.abs(A[astep*idx + m]), i = idx+2; i < n; i++) {
|
||
val = Math.abs(A[astep*idx+i]);
|
||
if( mv < val )
|
||
mv = val, m = i;
|
||
}
|
||
indR[idx] = m;
|
||
}
|
||
if(idx > 0) {
|
||
for(m = 0, mv = Math.abs(A[idx]), i = 1; i < idx; i++) {
|
||
val = Math.abs(A[astep*i+idx]);
|
||
if( mv < val )
|
||
mv = val, m = i;
|
||
}
|
||
indC[idx] = m;
|
||
}
|
||
}
|
||
}
|
||
|
||
// sort eigenvalues & eigenvectors
|
||
for(k = 0; k < n-1; k++) {
|
||
m = k;
|
||
for(i = k+1; i < n; i++) {
|
||
if(W[m] < W[i])
|
||
m = i;
|
||
}
|
||
if(k != m) {
|
||
swap(W, m, k, mv);
|
||
if(V) {
|
||
for(i = 0; i < n; i++) {
|
||
swap(V, vstep*m + i, vstep*k + i, mv);
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
|
||
jsfeat.cache.put_buffer(indR_buff);
|
||
jsfeat.cache.put_buffer(indC_buff);
|
||
};
|
||
|
||
var JacobiSVDImpl = function(At, astep, _W, Vt, vstep, m, n, n1) {
|
||
var eps = jsfeat.EPSILON * 2.0;
|
||
var minval = jsfeat.FLT_MIN;
|
||
var i=0,j=0,k=0,iter=0,max_iter=Math.max(m, 30);
|
||
var Ai=0,Aj=0,Vi=0,Vj=0,changed=0;
|
||
var c=0.0, s=0.0, t=0.0;
|
||
var t0=0.0,t1=0.0,sd=0.0,beta=0.0,gamma=0.0,delta=0.0,a=0.0,p=0.0,b=0.0;
|
||
var seed = 0x1234;
|
||
var val=0.0,val0=0.0,asum=0.0;
|
||
|
||
var W_buff = jsfeat.cache.get_buffer(n<<3);
|
||
var W = W_buff.f64;
|
||
|
||
for(; i < n; i++) {
|
||
for(k = 0, sd = 0; k < m; k++) {
|
||
t = At[i*astep + k];
|
||
sd += t*t;
|
||
}
|
||
W[i] = sd;
|
||
|
||
if(Vt) {
|
||
for(k = 0; k < n; k++) {
|
||
Vt[i*vstep + k] = 0;
|
||
}
|
||
Vt[i*vstep + i] = 1;
|
||
}
|
||
}
|
||
|
||
for(; iter < max_iter; iter++) {
|
||
changed = 0;
|
||
|
||
for(i = 0; i < n-1; i++) {
|
||
for(j = i+1; j < n; j++) {
|
||
Ai = (i*astep)|0, Aj = (j*astep)|0;
|
||
a = W[i], p = 0, b = W[j];
|
||
|
||
k = 2;
|
||
p += At[Ai]*At[Aj];
|
||
p += At[Ai+1]*At[Aj+1];
|
||
|
||
for(; k < m; k++)
|
||
p += At[Ai+k]*At[Aj+k];
|
||
|
||
if(Math.abs(p) <= eps*Math.sqrt(a*b)) continue;
|
||
|
||
p *= 2.0;
|
||
beta = a - b, gamma = hypot(p, beta);
|
||
if( beta < 0 ) {
|
||
delta = (gamma - beta)*0.5;
|
||
s = Math.sqrt(delta/gamma);
|
||
c = (p/(gamma*s*2.0));
|
||
} else {
|
||
c = Math.sqrt((gamma + beta)/(gamma*2.0));
|
||
s = (p/(gamma*c*2.0));
|
||
}
|
||
|
||
a=0.0, b=0.0;
|
||
|
||
k = 2; // unroll
|
||
t0 = c*At[Ai] + s*At[Aj];
|
||
t1 = -s*At[Ai] + c*At[Aj];
|
||
At[Ai] = t0; At[Aj] = t1;
|
||
a += t0*t0; b += t1*t1;
|
||
|
||
t0 = c*At[Ai+1] + s*At[Aj+1];
|
||
t1 = -s*At[Ai+1] + c*At[Aj+1];
|
||
At[Ai+1] = t0; At[Aj+1] = t1;
|
||
a += t0*t0; b += t1*t1;
|
||
|
||
for( ; k < m; k++ )
|
||
{
|
||
t0 = c*At[Ai+k] + s*At[Aj+k];
|
||
t1 = -s*At[Ai+k] + c*At[Aj+k];
|
||
At[Ai+k] = t0; At[Aj+k] = t1;
|
||
|
||
a += t0*t0; b += t1*t1;
|
||
}
|
||
|
||
W[i] = a; W[j] = b;
|
||
|
||
changed = 1;
|
||
|
||
if(Vt) {
|
||
Vi = (i*vstep)|0, Vj = (j*vstep)|0;
|
||
|
||
k = 2;
|
||
t0 = c*Vt[Vi] + s*Vt[Vj];
|
||
t1 = -s*Vt[Vi] + c*Vt[Vj];
|
||
Vt[Vi] = t0; Vt[Vj] = t1;
|
||
|
||
t0 = c*Vt[Vi+1] + s*Vt[Vj+1];
|
||
t1 = -s*Vt[Vi+1] + c*Vt[Vj+1];
|
||
Vt[Vi+1] = t0; Vt[Vj+1] = t1;
|
||
|
||
for(; k < n; k++) {
|
||
t0 = c*Vt[Vi+k] + s*Vt[Vj+k];
|
||
t1 = -s*Vt[Vi+k] + c*Vt[Vj+k];
|
||
Vt[Vi+k] = t0; Vt[Vj+k] = t1;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
if(changed == 0) break;
|
||
}
|
||
|
||
for(i = 0; i < n; i++) {
|
||
for(k = 0, sd = 0; k < m; k++) {
|
||
t = At[i*astep + k];
|
||
sd += t*t;
|
||
}
|
||
W[i] = Math.sqrt(sd);
|
||
}
|
||
|
||
for(i = 0; i < n-1; i++) {
|
||
j = i;
|
||
for(k = i+1; k < n; k++) {
|
||
if(W[j] < W[k])
|
||
j = k;
|
||
}
|
||
if(i != j) {
|
||
swap(W, i, j, sd);
|
||
if(Vt) {
|
||
for(k = 0; k < m; k++) {
|
||
swap(At, i*astep + k, j*astep + k, t);
|
||
}
|
||
|
||
for(k = 0; k < n; k++) {
|
||
swap(Vt, i*vstep + k, j*vstep + k, t);
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
for(i = 0; i < n; i++) {
|
||
_W[i] = W[i];
|
||
}
|
||
|
||
if(!Vt) {
|
||
jsfeat.cache.put_buffer(W_buff);
|
||
return;
|
||
}
|
||
|
||
for(i = 0; i < n1; i++) {
|
||
|
||
sd = i < n ? W[i] : 0;
|
||
|
||
while(sd <= minval) {
|
||
// if we got a zero singular value, then in order to get the corresponding left singular vector
|
||
// we generate a random vector, project it to the previously computed left singular vectors,
|
||
// subtract the projection and normalize the difference.
|
||
val0 = (1.0/m);
|
||
for(k = 0; k < m; k++) {
|
||
seed = (seed * 214013 + 2531011);
|
||
val = (((seed >> 16) & 0x7fff) & 256) != 0 ? val0 : -val0;
|
||
At[i*astep + k] = val;
|
||
}
|
||
for(iter = 0; iter < 2; iter++) {
|
||
for(j = 0; j < i; j++) {
|
||
sd = 0;
|
||
for(k = 0; k < m; k++) {
|
||
sd += At[i*astep + k]*At[j*astep + k];
|
||
}
|
||
asum = 0.0;
|
||
for(k = 0; k < m; k++) {
|
||
t = (At[i*astep + k] - sd*At[j*astep + k]);
|
||
At[i*astep + k] = t;
|
||
asum += Math.abs(t);
|
||
}
|
||
asum = asum ? 1.0/asum : 0;
|
||
for(k = 0; k < m; k++) {
|
||
At[i*astep + k] *= asum;
|
||
}
|
||
}
|
||
}
|
||
sd = 0;
|
||
for(k = 0; k < m; k++) {
|
||
t = At[i*astep + k];
|
||
sd += t*t;
|
||
}
|
||
sd = Math.sqrt(sd);
|
||
}
|
||
|
||
s = (1.0/sd);
|
||
for(k = 0; k < m; k++) {
|
||
At[i*astep + k] *= s;
|
||
}
|
||
}
|
||
|
||
jsfeat.cache.put_buffer(W_buff);
|
||
};
|
||
|
||
return {
|
||
|
||
lu_solve: function(A, B) {
|
||
var i=0,j=0,k=0,p=1,astep=A.cols;
|
||
var ad=A.data, bd=B.data;
|
||
var t,alpha,d,s;
|
||
|
||
for(i = 0; i < astep; i++) {
|
||
k = i;
|
||
for(j = i+1; j < astep; j++) {
|
||
if(Math.abs(ad[j*astep + i]) > Math.abs(ad[k*astep+i])) {
|
||
k = j;
|
||
}
|
||
}
|
||
|
||
if(Math.abs(ad[k*astep+i]) < jsfeat.EPSILON) {
|
||
return 0; // FAILED
|
||
}
|
||
|
||
if(k != i) {
|
||
for(j = i; j < astep; j++ ) {
|
||
swap(ad, i*astep+j, k*astep+j, t);
|
||
}
|
||
|
||
swap(bd, i, k, t);
|
||
p = -p;
|
||
}
|
||
|
||
d = -1.0/ad[i*astep+i];
|
||
|
||
for(j = i+1; j < astep; j++) {
|
||
alpha = ad[j*astep+i]*d;
|
||
|
||
for(k = i+1; k < astep; k++) {
|
||
ad[j*astep+k] += alpha*ad[i*astep+k];
|
||
}
|
||
|
||
bd[j] += alpha*bd[i];
|
||
}
|
||
|
||
ad[i*astep+i] = -d;
|
||
}
|
||
|
||
for(i = astep-1; i >= 0; i--) {
|
||
s = bd[i];
|
||
for(k = i+1; k < astep; k++) {
|
||
s -= ad[i*astep+k]*bd[k];
|
||
}
|
||
bd[i] = s*ad[i*astep+i];
|
||
}
|
||
|
||
return 1; // OK
|
||
},
|
||
|
||
cholesky_solve: function(A, B) {
|
||
var col=0,row=0,col2=0,cs=0,rs=0,i=0,j=0;
|
||
var size = A.cols;
|
||
var ad=A.data, bd=B.data;
|
||
var val,inv_diag;
|
||
|
||
for (col = 0; col < size; col++) {
|
||
inv_diag = 1.0;
|
||
cs = (col * size);
|
||
rs = cs;
|
||
for (row = col; row < size; row++)
|
||
{
|
||
// correct for the parts of cholesky already computed
|
||
val = ad[(rs+col)];
|
||
for (col2 = 0; col2 < col; col2++) {
|
||
val -= ad[(col2*size+col)] * ad[(rs+col2)];
|
||
}
|
||
if (row == col) {
|
||
// this is the diagonal element so don't divide
|
||
ad[(rs+col)] = val;
|
||
if(val == 0) {
|
||
return 0;
|
||
}
|
||
inv_diag = 1.0 / val;
|
||
} else {
|
||
// cache the value without division in the upper half
|
||
ad[(cs+row)] = val;
|
||
// divide my the diagonal element for all others
|
||
ad[(rs+col)] = val * inv_diag;
|
||
}
|
||
rs = (rs + size);
|
||
}
|
||
}
|
||
|
||
// first backsub through L
|
||
cs = 0;
|
||
for (i = 0; i < size; i++) {
|
||
val = bd[i];
|
||
for (j = 0; j < i; j++) {
|
||
val -= ad[(cs+j)] * bd[j];
|
||
}
|
||
bd[i] = val;
|
||
cs = (cs + size);
|
||
}
|
||
// backsub through diagonal
|
||
cs = 0;
|
||
for (i = 0; i < size; i++) {
|
||
bd[i] /= ad[(cs + i)];
|
||
cs = (cs + size);
|
||
}
|
||
// backsub through L Transpose
|
||
i = (size-1);
|
||
for (; i >= 0; i--) {
|
||
val = bd[i];
|
||
j = (i + 1);
|
||
cs = (j * size);
|
||
for (; j < size; j++) {
|
||
val -= ad[(cs + i)] * bd[j];
|
||
cs = (cs + size);
|
||
}
|
||
bd[i] = val;
|
||
}
|
||
|
||
return 1;
|
||
},
|
||
|
||
svd_decompose: function(A, W, U, V, options) {
|
||
if (typeof options === "undefined") { options = 0; }
|
||
var at=0,i=0,j=0,_m=A.rows,_n=A.cols,m=_m,n=_n;
|
||
var dt = A.type | jsfeat.C1_t; // we only work with single channel
|
||
|
||
if(m < n) {
|
||
at = 1;
|
||
i = m;
|
||
m = n;
|
||
n = i;
|
||
}
|
||
|
||
var a_buff = jsfeat.cache.get_buffer((m*m)<<3);
|
||
var w_buff = jsfeat.cache.get_buffer(n<<3);
|
||
var v_buff = jsfeat.cache.get_buffer((n*n)<<3);
|
||
|
||
var a_mt = new jsfeat.matrix_t(m, m, dt, a_buff.data);
|
||
var w_mt = new jsfeat.matrix_t(1, n, dt, w_buff.data);
|
||
var v_mt = new jsfeat.matrix_t(n, n, dt, v_buff.data);
|
||
|
||
if(at == 0) {
|
||
// transpose
|
||
jsfeat.matmath.transpose(a_mt, A);
|
||
} else {
|
||
for(i = 0; i < _n*_m; i++) {
|
||
a_mt.data[i] = A.data[i];
|
||
}
|
||
for(; i < n*m; i++) {
|
||
a_mt.data[i] = 0;
|
||
}
|
||
}
|
||
|
||
JacobiSVDImpl(a_mt.data, m, w_mt.data, v_mt.data, n, m, n, m);
|
||
|
||
if(W) {
|
||
for(i=0; i < n; i++) {
|
||
W.data[i] = w_mt.data[i];
|
||
}
|
||
for(; i < _n; i++) {
|
||
W.data[i] = 0;
|
||
}
|
||
}
|
||
|
||
if (at == 0) {
|
||
if(U && (options & jsfeat.SVD_U_T)) {
|
||
i = m*m;
|
||
while(--i >= 0) {
|
||
U.data[i] = a_mt.data[i];
|
||
}
|
||
} else if(U) {
|
||
jsfeat.matmath.transpose(U, a_mt);
|
||
}
|
||
|
||
if(V && (options & jsfeat.SVD_V_T)) {
|
||
i = n*n;
|
||
while(--i >= 0) {
|
||
V.data[i] = v_mt.data[i];
|
||
}
|
||
} else if(V) {
|
||
jsfeat.matmath.transpose(V, v_mt);
|
||
}
|
||
} else {
|
||
if(U && (options & jsfeat.SVD_U_T)) {
|
||
i = n*n;
|
||
while(--i >= 0) {
|
||
U.data[i] = v_mt.data[i];
|
||
}
|
||
} else if(U) {
|
||
jsfeat.matmath.transpose(U, v_mt);
|
||
}
|
||
|
||
if(V && (options & jsfeat.SVD_V_T)) {
|
||
i = m*m;
|
||
while(--i >= 0) {
|
||
V.data[i] = a_mt.data[i];
|
||
}
|
||
} else if(V) {
|
||
jsfeat.matmath.transpose(V, a_mt);
|
||
}
|
||
}
|
||
|
||
jsfeat.cache.put_buffer(a_buff);
|
||
jsfeat.cache.put_buffer(w_buff);
|
||
jsfeat.cache.put_buffer(v_buff);
|
||
|
||
},
|
||
|
||
svd_solve: function(A, X, B) {
|
||
var i=0,j=0,k=0;
|
||
var pu=0,pv=0;
|
||
var nrows=A.rows,ncols=A.cols;
|
||
var sum=0.0,xsum=0.0,tol=0.0;
|
||
var dt = A.type | jsfeat.C1_t;
|
||
|
||
var u_buff = jsfeat.cache.get_buffer((nrows*nrows)<<3);
|
||
var w_buff = jsfeat.cache.get_buffer(ncols<<3);
|
||
var v_buff = jsfeat.cache.get_buffer((ncols*ncols)<<3);
|
||
|
||
var u_mt = new jsfeat.matrix_t(nrows, nrows, dt, u_buff.data);
|
||
var w_mt = new jsfeat.matrix_t(1, ncols, dt, w_buff.data);
|
||
var v_mt = new jsfeat.matrix_t(ncols, ncols, dt, v_buff.data);
|
||
|
||
var bd = B.data, ud = u_mt.data, wd = w_mt.data, vd = v_mt.data;
|
||
|
||
this.svd_decompose(A, w_mt, u_mt, v_mt, 0);
|
||
|
||
tol = jsfeat.EPSILON * wd[0] * ncols;
|
||
|
||
for (; i < ncols; i++, pv += ncols) {
|
||
xsum = 0.0;
|
||
for(j = 0; j < ncols; j++) {
|
||
if(wd[j] > tol) {
|
||
for(k = 0, sum = 0.0, pu = 0; k < nrows; k++, pu += ncols) {
|
||
sum += ud[pu + j] * bd[k];
|
||
}
|
||
xsum += sum * vd[pv + j] / wd[j];
|
||
}
|
||
}
|
||
X.data[i] = xsum;
|
||
}
|
||
|
||
jsfeat.cache.put_buffer(u_buff);
|
||
jsfeat.cache.put_buffer(w_buff);
|
||
jsfeat.cache.put_buffer(v_buff);
|
||
},
|
||
|
||
svd_invert: function(Ai, A) {
|
||
var i=0,j=0,k=0;
|
||
var pu=0,pv=0,pa=0;
|
||
var nrows=A.rows,ncols=A.cols;
|
||
var sum=0.0,tol=0.0;
|
||
var dt = A.type | jsfeat.C1_t;
|
||
|
||
var u_buff = jsfeat.cache.get_buffer((nrows*nrows)<<3);
|
||
var w_buff = jsfeat.cache.get_buffer(ncols<<3);
|
||
var v_buff = jsfeat.cache.get_buffer((ncols*ncols)<<3);
|
||
|
||
var u_mt = new jsfeat.matrix_t(nrows, nrows, dt, u_buff.data);
|
||
var w_mt = new jsfeat.matrix_t(1, ncols, dt, w_buff.data);
|
||
var v_mt = new jsfeat.matrix_t(ncols, ncols, dt, v_buff.data);
|
||
|
||
var id = Ai.data, ud = u_mt.data, wd = w_mt.data, vd = v_mt.data;
|
||
|
||
this.svd_decompose(A, w_mt, u_mt, v_mt, 0);
|
||
|
||
tol = jsfeat.EPSILON * wd[0] * ncols;
|
||
|
||
for (; i < ncols; i++, pv += ncols) {
|
||
for (j = 0, pu = 0; j < nrows; j++, pa++) {
|
||
for (k = 0, sum = 0.0; k < ncols; k++, pu++) {
|
||
if (wd[k] > tol) sum += vd[pv + k] * ud[pu] / wd[k];
|
||
}
|
||
id[pa] = sum;
|
||
}
|
||
}
|
||
|
||
jsfeat.cache.put_buffer(u_buff);
|
||
jsfeat.cache.put_buffer(w_buff);
|
||
jsfeat.cache.put_buffer(v_buff);
|
||
},
|
||
|
||
eigenVV: function(A, vects, vals) {
|
||
var n=A.cols,i=n*n;
|
||
var dt = A.type | jsfeat.C1_t;
|
||
|
||
var a_buff = jsfeat.cache.get_buffer((n*n)<<3);
|
||
var w_buff = jsfeat.cache.get_buffer(n<<3);
|
||
var a_mt = new jsfeat.matrix_t(n, n, dt, a_buff.data);
|
||
var w_mt = new jsfeat.matrix_t(1, n, dt, w_buff.data);
|
||
|
||
while(--i >= 0) {
|
||
a_mt.data[i] = A.data[i];
|
||
}
|
||
|
||
JacobiImpl(a_mt.data, n, w_mt.data, vects ? vects.data : null, n, n);
|
||
|
||
if(vals) {
|
||
while(--n >= 0) {
|
||
vals.data[n] = w_mt.data[n];
|
||
}
|
||
}
|
||
|
||
jsfeat.cache.put_buffer(a_buff);
|
||
jsfeat.cache.put_buffer(w_buff);
|
||
}
|
||
|
||
};
|
||
|
||
})();
|
||
|
||
global.linalg = linalg;
|
||
|
||
})(jsfeat);
|
||
/**
|
||
* @author Eugene Zatepyakin / http://inspirit.ru/
|
||
*
|
||
*/
|
||
|
||
(function(global) {
|
||
"use strict";
|
||
//
|
||
|
||
var motion_model = (function() {
|
||
|
||
var sqr = function(x) {
|
||
return x*x;
|
||
};
|
||
|
||
// does isotropic normalization
|
||
var iso_normalize_points = function(from, to, T0, T1, count) {
|
||
var i=0;
|
||
var cx0=0.0, cy0=0.0, d0=0.0, s0=0.0;
|
||
var cx1=0.0, cy1=0.0, d1=0.0, s1=0.0;
|
||
var dx=0.0,dy=0.0;
|
||
|
||
for (; i < count; ++i) {
|
||
cx0 += from[i].x;
|
||
cy0 += from[i].y;
|
||
cx1 += to[i].x;
|
||
cy1 += to[i].y;
|
||
}
|
||
|
||
cx0 /= count; cy0 /= count;
|
||
cx1 /= count; cy1 /= count;
|
||
|
||
for (i = 0; i < count; ++i) {
|
||
dx = from[i].x - cx0;
|
||
dy = from[i].y - cy0;
|
||
d0 += Math.sqrt(dx*dx + dy*dy);
|
||
dx = to[i].x - cx1;
|
||
dy = to[i].y - cy1;
|
||
d1 += Math.sqrt(dx*dx + dy*dy);
|
||
}
|
||
|
||
d0 /= count; d1 /= count;
|
||
|
||
s0 = Math.SQRT2 / d0; s1 = Math.SQRT2 / d1;
|
||
|
||
T0[0] = T0[4] = s0;
|
||
T0[2] = -cx0*s0;
|
||
T0[5] = -cy0*s0;
|
||
T0[1] = T0[3] = T0[6] = T0[7] = 0.0;
|
||
T0[8] = 1.0;
|
||
|
||
T1[0] = T1[4] = s1;
|
||
T1[2] = -cx1*s1;
|
||
T1[5] = -cy1*s1;
|
||
T1[1] = T1[3] = T1[6] = T1[7] = 0.0;
|
||
T1[8] = 1.0;
|
||
};
|
||
|
||
var have_collinear_points = function(points, count) {
|
||
var j=0,k=0,i=(count-1)|0;
|
||
var dx1=0.0,dy1=0.0,dx2=0.0,dy2=0.0;
|
||
|
||
// check that the i-th selected point does not belong
|
||
// to a line connecting some previously selected points
|
||
for(; j < i; ++j) {
|
||
dx1 = points[j].x - points[i].x;
|
||
dy1 = points[j].y - points[i].y;
|
||
for(k = 0; k < j; ++k) {
|
||
dx2 = points[k].x - points[i].x;
|
||
dy2 = points[k].y - points[i].y;
|
||
if( Math.abs(dx2*dy1 - dy2*dx1) <= jsfeat.EPSILON*(Math.abs(dx1) + Math.abs(dy1) + Math.abs(dx2) + Math.abs(dy2)))
|
||
return true;
|
||
}
|
||
}
|
||
return false;
|
||
};
|
||
|
||
var T0 = new jsfeat.matrix_t(3, 3, jsfeat.F32_t|jsfeat.C1_t);
|
||
var T1 = new jsfeat.matrix_t(3, 3, jsfeat.F32_t|jsfeat.C1_t);
|
||
var AtA = new jsfeat.matrix_t(6, 6, jsfeat.F32_t|jsfeat.C1_t);
|
||
var AtB = new jsfeat.matrix_t(6, 1, jsfeat.F32_t|jsfeat.C1_t);
|
||
|
||
var affine2d = (function () {
|
||
|
||
function affine2d() {
|
||
// empty constructor
|
||
}
|
||
|
||
affine2d.prototype.run = function(from, to, model, count) {
|
||
var i=0,j=0;
|
||
var dt=model.type|jsfeat.C1_t;
|
||
var md=model.data, t0d=T0.data, t1d=T1.data;
|
||
var pt0,pt1,px=0.0,py=0.0;
|
||
|
||
iso_normalize_points(from, to, t0d, t1d, count);
|
||
|
||
var a_buff = jsfeat.cache.get_buffer((2*count*6)<<3);
|
||
var b_buff = jsfeat.cache.get_buffer((2*count)<<3);
|
||
|
||
var a_mt = new jsfeat.matrix_t(6, 2*count, dt, a_buff.data);
|
||
var b_mt = new jsfeat.matrix_t(1, 2*count, dt, b_buff.data);
|
||
var ad=a_mt.data, bd=b_mt.data;
|
||
|
||
for (; i < count; ++i) {
|
||
pt0 = from[i];
|
||
pt1 = to[i];
|
||
|
||
px = t0d[0]*pt0.x + t0d[1]*pt0.y + t0d[2];
|
||
py = t0d[3]*pt0.x + t0d[4]*pt0.y + t0d[5];
|
||
|
||
j = i*2*6;
|
||
ad[j]=px, ad[j+1]=py, ad[j+2]=1.0, ad[j+3]=0.0, ad[j+4]=0.0, ad[j+5]=0.0;
|
||
|
||
j += 6;
|
||
ad[j]=0.0, ad[j+1]=0.0, ad[j+2]=0.0, ad[j+3]=px, ad[j+4]=py, ad[j+5]=1.0;
|
||
|
||
bd[i<<1] = t1d[0]*pt1.x + t1d[1]*pt1.y + t1d[2];
|
||
bd[(i<<1)+1] = t1d[3]*pt1.x + t1d[4]*pt1.y + t1d[5];
|
||
}
|
||
|
||
jsfeat.matmath.multiply_AtA(AtA, a_mt);
|
||
jsfeat.matmath.multiply_AtB(AtB, a_mt, b_mt);
|
||
|
||
jsfeat.linalg.lu_solve(AtA, AtB);
|
||
|
||
md[0] = AtB.data[0], md[1]=AtB.data[1], md[2]=AtB.data[2];
|
||
md[3] = AtB.data[3], md[4]=AtB.data[4], md[5]=AtB.data[5];
|
||
md[6] = 0.0, md[7] = 0.0, md[8] = 1.0; // fill last row
|
||
|
||
// denormalize
|
||
jsfeat.matmath.invert_3x3(T1, T1);
|
||
jsfeat.matmath.multiply_3x3(model, T1, model);
|
||
jsfeat.matmath.multiply_3x3(model, model, T0);
|
||
|
||
// free buffer
|
||
jsfeat.cache.put_buffer(a_buff);
|
||
jsfeat.cache.put_buffer(b_buff);
|
||
|
||
return 1;
|
||
};
|
||
|
||
affine2d.prototype.error = function(from, to, model, err, count) {
|
||
var i=0;
|
||
var pt0,pt1;
|
||
var m=model.data;
|
||
|
||
for (; i < count; ++i) {
|
||
pt0 = from[i];
|
||
pt1 = to[i];
|
||
|
||
err[i] = sqr(pt1.x - m[0]*pt0.x - m[1]*pt0.y - m[2]) +
|
||
sqr(pt1.y - m[3]*pt0.x - m[4]*pt0.y - m[5]);
|
||
}
|
||
};
|
||
|
||
affine2d.prototype.check_subset = function(from, to, count) {
|
||
return true; // all good
|
||
};
|
||
|
||
return affine2d;
|
||
})();
|
||
|
||
var mLtL = new jsfeat.matrix_t(9, 9, jsfeat.F32_t|jsfeat.C1_t);
|
||
var Evec = new jsfeat.matrix_t(9, 9, jsfeat.F32_t|jsfeat.C1_t);
|
||
|
||
var homography2d = (function () {
|
||
|
||
function homography2d() {
|
||
// empty constructor
|
||
//this.T0 = new jsfeat.matrix_t(3, 3, jsfeat.F32_t|jsfeat.C1_t);
|
||
//this.T1 = new jsfeat.matrix_t(3, 3, jsfeat.F32_t|jsfeat.C1_t);
|
||
//this.mLtL = new jsfeat.matrix_t(9, 9, jsfeat.F32_t|jsfeat.C1_t);
|
||
//this.Evec = new jsfeat.matrix_t(9, 9, jsfeat.F32_t|jsfeat.C1_t);
|
||
}
|
||
|
||
homography2d.prototype.run = function(from, to, model, count) {
|
||
var i=0,j=0;
|
||
var md=model.data, t0d=T0.data, t1d=T1.data;
|
||
var LtL=mLtL.data, evd=Evec.data;
|
||
var x=0.0,y=0.0,X=0.0,Y=0.0;
|
||
|
||
// norm
|
||
var smx=0.0, smy=0.0, cmx=0.0, cmy=0.0, sMx=0.0, sMy=0.0, cMx=0.0, cMy=0.0;
|
||
|
||
for(; i < count; ++i) {
|
||
cmx += to[i].x;
|
||
cmy += to[i].y;
|
||
cMx += from[i].x;
|
||
cMy += from[i].y;
|
||
}
|
||
|
||
cmx /= count; cmy /= count;
|
||
cMx /= count; cMy /= count;
|
||
|
||
for(i = 0; i < count; ++i)
|
||
{
|
||
smx += Math.abs(to[i].x - cmx);
|
||
smy += Math.abs(to[i].y - cmy);
|
||
sMx += Math.abs(from[i].x - cMx);
|
||
sMy += Math.abs(from[i].y - cMy);
|
||
}
|
||
|
||
if( Math.abs(smx) < jsfeat.EPSILON
|
||
|| Math.abs(smy) < jsfeat.EPSILON
|
||
|| Math.abs(sMx) < jsfeat.EPSILON
|
||
|| Math.abs(sMy) < jsfeat.EPSILON ) return 0;
|
||
|
||
smx = count/smx; smy = count/smy;
|
||
sMx = count/sMx; sMy = count/sMy;
|
||
|
||
t0d[0] = sMx; t0d[1] = 0; t0d[2] = -cMx*sMx;
|
||
t0d[3] = 0; t0d[4] = sMy; t0d[5] = -cMy*sMy;
|
||
t0d[6] = 0; t0d[7] = 0; t0d[8] = 1;
|
||
|
||
t1d[0] = 1.0/smx; t1d[1] = 0; t1d[2] = cmx;
|
||
t1d[3] = 0; t1d[4] = 1.0/smy; t1d[5] = cmy;
|
||
t1d[6] = 0; t1d[7] = 0; t1d[8] = 1;
|
||
//
|
||
|
||
// construct system
|
||
i = 81;
|
||
while(--i >= 0) {
|
||
LtL[i] = 0.0;
|
||
}
|
||
for(i = 0; i < count; ++i) {
|
||
x = (to[i].x - cmx) * smx;
|
||
y = (to[i].y - cmy) * smy;
|
||
X = (from[i].x - cMx) * sMx;
|
||
Y = (from[i].y - cMy) * sMy;
|
||
|
||
LtL[0] += X*X;
|
||
LtL[1] += X*Y;
|
||
LtL[2] += X;
|
||
|
||
LtL[6] += X*-x*X;
|
||
LtL[7] += X*-x*Y;
|
||
LtL[8] += X*-x;
|
||
LtL[10] += Y*Y;
|
||
LtL[11] += Y;
|
||
|
||
LtL[15] += Y*-x*X;
|
||
LtL[16] += Y*-x*Y;
|
||
LtL[17] += Y*-x;
|
||
LtL[20] += 1.0;
|
||
|
||
LtL[24] += -x*X;
|
||
LtL[25] += -x*Y;
|
||
LtL[26] += -x;
|
||
LtL[30] += X*X;
|
||
LtL[31] += X*Y;
|
||
LtL[32] += X;
|
||
LtL[33] += X*-y*X;
|
||
LtL[34] += X*-y*Y;
|
||
LtL[35] += X*-y;
|
||
LtL[40] += Y*Y;
|
||
LtL[41] += Y;
|
||
LtL[42] += Y*-y*X;
|
||
LtL[43] += Y*-y*Y;
|
||
LtL[44] += Y*-y;
|
||
LtL[50] += 1.0;
|
||
LtL[51] += -y*X;
|
||
LtL[52] += -y*Y;
|
||
LtL[53] += -y;
|
||
LtL[60] += -x*X*-x*X + -y*X*-y*X;
|
||
LtL[61] += -x*X*-x*Y + -y*X*-y*Y;
|
||
LtL[62] += -x*X*-x + -y*X*-y;
|
||
LtL[70] += -x*Y*-x*Y + -y*Y*-y*Y;
|
||
LtL[71] += -x*Y*-x + -y*Y*-y;
|
||
LtL[80] += -x*-x + -y*-y;
|
||
}
|
||
//
|
||
|
||
// symmetry
|
||
for(i = 0; i < 9; ++i) {
|
||
for(j = 0; j < i; ++j)
|
||
LtL[i*9+j] = LtL[j*9+i];
|
||
}
|
||
|
||
jsfeat.linalg.eigenVV(mLtL, Evec);
|
||
|
||
md[0]=evd[72], md[1]=evd[73], md[2]=evd[74];
|
||
md[3]=evd[75], md[4]=evd[76], md[5]=evd[77];
|
||
md[6]=evd[78], md[7]=evd[79], md[8]=evd[80];
|
||
|
||
// denormalize
|
||
jsfeat.matmath.multiply_3x3(model, T1, model);
|
||
jsfeat.matmath.multiply_3x3(model, model, T0);
|
||
|
||
// set bottom right to 1.0
|
||
x = 1.0/md[8];
|
||
md[0] *= x; md[1] *= x; md[2] *= x;
|
||
md[3] *= x; md[4] *= x; md[5] *= x;
|
||
md[6] *= x; md[7] *= x; md[8] = 1.0;
|
||
|
||
return 1;
|
||
};
|
||
|
||
homography2d.prototype.error = function(from, to, model, err, count) {
|
||
var i=0;
|
||
var pt0,pt1,ww=0.0,dx=0.0,dy=0.0;
|
||
var m=model.data;
|
||
|
||
for (; i < count; ++i) {
|
||
pt0 = from[i];
|
||
pt1 = to[i];
|
||
|
||
ww = 1.0/(m[6]*pt0.x + m[7]*pt0.y + 1.0);
|
||
dx = (m[0]*pt0.x + m[1]*pt0.y + m[2])*ww - pt1.x;
|
||
dy = (m[3]*pt0.x + m[4]*pt0.y + m[5])*ww - pt1.y;
|
||
err[i] = (dx*dx + dy*dy);
|
||
}
|
||
};
|
||
|
||
homography2d.prototype.check_subset = function(from, to, count) {
|
||
// seems to reject good subsets actually
|
||
//if( have_collinear_points(from, count) || have_collinear_points(to, count) ) {
|
||
//return false;
|
||
//}
|
||
if( count == 4 ) {
|
||
var negative = 0;
|
||
|
||
var fp0=from[0],fp1=from[1],fp2=from[2],fp3=from[3];
|
||
var tp0=to[0],tp1=to[1],tp2=to[2],tp3=to[3];
|
||
|
||
// set1
|
||
var A11=fp0.x, A12=fp0.y, A13=1.0;
|
||
var A21=fp1.x, A22=fp1.y, A23=1.0;
|
||
var A31=fp2.x, A32=fp2.y, A33=1.0;
|
||
|
||
var B11=tp0.x, B12=tp0.y, B13=1.0;
|
||
var B21=tp1.x, B22=tp1.y, B23=1.0;
|
||
var B31=tp2.x, B32=tp2.y, B33=1.0;
|
||
|
||
var detA = jsfeat.matmath.determinant_3x3(A11,A12,A13, A21,A22,A23, A31,A32,A33);
|
||
var detB = jsfeat.matmath.determinant_3x3(B11,B12,B13, B21,B22,B23, B31,B32,B33);
|
||
|
||
if(detA*detB < 0) negative++;
|
||
|
||
// set2
|
||
A11=fp1.x, A12=fp1.y;
|
||
A21=fp2.x, A22=fp2.y;
|
||
A31=fp3.x, A32=fp3.y;
|
||
|
||
B11=tp1.x, B12=tp1.y;
|
||
B21=tp2.x, B22=tp2.y;
|
||
B31=tp3.x, B32=tp3.y;
|
||
|
||
detA = jsfeat.matmath.determinant_3x3(A11,A12,A13, A21,A22,A23, A31,A32,A33);
|
||
detB = jsfeat.matmath.determinant_3x3(B11,B12,B13, B21,B22,B23, B31,B32,B33);
|
||
|
||
if(detA*detB < 0) negative++;
|
||
|
||
// set3
|
||
A11=fp0.x, A12=fp0.y;
|
||
A21=fp2.x, A22=fp2.y;
|
||
A31=fp3.x, A32=fp3.y;
|
||
|
||
B11=tp0.x, B12=tp0.y;
|
||
B21=tp2.x, B22=tp2.y;
|
||
B31=tp3.x, B32=tp3.y;
|
||
|
||
detA = jsfeat.matmath.determinant_3x3(A11,A12,A13, A21,A22,A23, A31,A32,A33);
|
||
detB = jsfeat.matmath.determinant_3x3(B11,B12,B13, B21,B22,B23, B31,B32,B33);
|
||
|
||
if(detA*detB < 0) negative++;
|
||
|
||
// set4
|
||
A11=fp0.x, A12=fp0.y;
|
||
A21=fp1.x, A22=fp1.y;
|
||
A31=fp3.x, A32=fp3.y;
|
||
|
||
B11=tp0.x, B12=tp0.y;
|
||
B21=tp1.x, B22=tp1.y;
|
||
B31=tp3.x, B32=tp3.y;
|
||
|
||
detA = jsfeat.matmath.determinant_3x3(A11,A12,A13, A21,A22,A23, A31,A32,A33);
|
||
detB = jsfeat.matmath.determinant_3x3(B11,B12,B13, B21,B22,B23, B31,B32,B33);
|
||
|
||
if(detA*detB < 0) negative++;
|
||
|
||
if(negative != 0 && negative != 4) {
|
||
return false;
|
||
}
|
||
}
|
||
return true; // all good
|
||
};
|
||
|
||
return homography2d;
|
||
})();
|
||
|
||
return {
|
||
|
||
affine2d:affine2d,
|
||
homography2d:homography2d
|
||
|
||
};
|
||
|
||
})();
|
||
|
||
var ransac_params_t = (function () {
|
||
function ransac_params_t(size, thresh, eps, prob) {
|
||
if (typeof size === "undefined") { size=0; }
|
||
if (typeof thresh === "undefined") { thresh=0.5; }
|
||
if (typeof eps === "undefined") { eps=0.5; }
|
||
if (typeof prob === "undefined") { prob=0.99; }
|
||
|
||
this.size = size;
|
||
this.thresh = thresh;
|
||
this.eps = eps;
|
||
this.prob = prob;
|
||
}
|
||
ransac_params_t.prototype.update_iters = function(_eps, max_iters) {
|
||
var num = Math.log(1 - this.prob);
|
||
var denom = Math.log(1 - Math.pow(1 - _eps, this.size));
|
||
return (denom >= 0 || -num >= max_iters*(-denom) ? max_iters : Math.round(num/denom))|0;
|
||
};
|
||
return ransac_params_t;
|
||
})();
|
||
|
||
var motion_estimator = (function() {
|
||
|
||
var get_subset = function(kernel, from, to, need_cnt, max_cnt, from_sub, to_sub) {
|
||
var max_try = 1000;
|
||
var indices = [];
|
||
var i=0, j=0, ssiter=0, idx_i=0, ok=false;
|
||
for(; ssiter < max_try; ++ssiter) {
|
||
i = 0;
|
||
for (; i < need_cnt && ssiter < max_try;) {
|
||
ok = false;
|
||
idx_i = 0;
|
||
while (!ok) {
|
||
ok = true;
|
||
idx_i = indices[i] = Math.floor(Math.random() * max_cnt)|0;
|
||
for (j = 0; j < i; ++j) {
|
||
if (idx_i == indices[j])
|
||
{ ok = false; break; }
|
||
}
|
||
}
|
||
from_sub[i] = from[idx_i];
|
||
to_sub[i] = to[idx_i];
|
||
if( !kernel.check_subset( from_sub, to_sub, i+1 ) ) {
|
||
ssiter++;
|
||
continue;
|
||
}
|
||
++i;
|
||
}
|
||
break;
|
||
}
|
||
|
||
return (i == need_cnt && ssiter < max_try);
|
||
};
|
||
|
||
var find_inliers = function(kernel, model, from, to, count, thresh, err, mask) {
|
||
var numinliers = 0, i=0, f=0;
|
||
var t = thresh*thresh;
|
||
|
||
kernel.error(from, to, model, err, count);
|
||
|
||
for(; i < count; ++i) {
|
||
f = err[i] <= t;
|
||
mask[i] = f;
|
||
numinliers += f;
|
||
}
|
||
return numinliers;
|
||
};
|
||
|
||
return {
|
||
|
||
ransac: function(params, kernel, from, to, count, model, mask, max_iters) {
|
||
if (typeof max_iters === "undefined") { max_iters=1000; }
|
||
|
||
if(count < params.size) return false;
|
||
|
||
var model_points = params.size;
|
||
var niters = max_iters, iter=0;
|
||
var result = false;
|
||
|
||
var subset0 = [];
|
||
var subset1 = [];
|
||
var found = false;
|
||
|
||
var mc=model.cols,mr=model.rows;
|
||
var dt = model.type | jsfeat.C1_t;
|
||
|
||
var m_buff = jsfeat.cache.get_buffer((mc*mr)<<3);
|
||
var ms_buff = jsfeat.cache.get_buffer(count);
|
||
var err_buff = jsfeat.cache.get_buffer(count<<2);
|
||
var M = new jsfeat.matrix_t(mc, mr, dt, m_buff.data);
|
||
var curr_mask = new jsfeat.matrix_t(count, 1, jsfeat.U8C1_t, ms_buff.data);
|
||
|
||
var inliers_max = -1, numinliers=0;
|
||
var nmodels = 0;
|
||
|
||
var err = err_buff.f32;
|
||
|
||
// special case
|
||
if(count == model_points) {
|
||
if(kernel.run(from, to, M, count) <= 0) {
|
||
jsfeat.cache.put_buffer(m_buff);
|
||
jsfeat.cache.put_buffer(ms_buff);
|
||
jsfeat.cache.put_buffer(err_buff);
|
||
return false;
|
||
}
|
||
|
||
M.copy_to(model);
|
||
if(mask) {
|
||
while(--count >= 0) {
|
||
mask.data[count] = 1;
|
||
}
|
||
}
|
||
jsfeat.cache.put_buffer(m_buff);
|
||
jsfeat.cache.put_buffer(ms_buff);
|
||
jsfeat.cache.put_buffer(err_buff);
|
||
return true;
|
||
}
|
||
|
||
for (; iter < niters; ++iter) {
|
||
// generate subset
|
||
found = get_subset(kernel, from, to, model_points, count, subset0, subset1);
|
||
if(!found) {
|
||
if(iter == 0) {
|
||
jsfeat.cache.put_buffer(m_buff);
|
||
jsfeat.cache.put_buffer(ms_buff);
|
||
jsfeat.cache.put_buffer(err_buff);
|
||
return false;
|
||
}
|
||
break;
|
||
}
|
||
|
||
nmodels = kernel.run( subset0, subset1, M, model_points );
|
||
if(nmodels <= 0)
|
||
continue;
|
||
|
||
// TODO handle multimodel output
|
||
|
||
numinliers = find_inliers(kernel, M, from, to, count, params.thresh, err, curr_mask.data);
|
||
|
||
if( numinliers > Math.max(inliers_max, model_points-1) ) {
|
||
M.copy_to(model);
|
||
inliers_max = numinliers;
|
||
if(mask) curr_mask.copy_to(mask);
|
||
niters = params.update_iters((count - numinliers)/count, niters);
|
||
result = true;
|
||
}
|
||
}
|
||
|
||
jsfeat.cache.put_buffer(m_buff);
|
||
jsfeat.cache.put_buffer(ms_buff);
|
||
jsfeat.cache.put_buffer(err_buff);
|
||
|
||
return result;
|
||
},
|
||
|
||
lmeds: function(params, kernel, from, to, count, model, mask, max_iters) {
|
||
if (typeof max_iters === "undefined") { max_iters=1000; }
|
||
|
||
if(count < params.size) return false;
|
||
|
||
var model_points = params.size;
|
||
var niters = max_iters, iter=0;
|
||
var result = false;
|
||
|
||
var subset0 = [];
|
||
var subset1 = [];
|
||
var found = false;
|
||
|
||
var mc=model.cols,mr=model.rows;
|
||
var dt = model.type | jsfeat.C1_t;
|
||
|
||
var m_buff = jsfeat.cache.get_buffer((mc*mr)<<3);
|
||
var ms_buff = jsfeat.cache.get_buffer(count);
|
||
var err_buff = jsfeat.cache.get_buffer(count<<2);
|
||
var M = new jsfeat.matrix_t(mc, mr, dt, m_buff.data);
|
||
var curr_mask = new jsfeat.matrix_t(count, 1, jsfeat.U8_t|jsfeat.C1_t, ms_buff.data);
|
||
|
||
var numinliers=0;
|
||
var nmodels = 0;
|
||
|
||
var err = err_buff.f32;
|
||
var min_median = 1000000000.0, sigma=0.0, median=0.0;
|
||
|
||
params.eps = 0.45;
|
||
niters = params.update_iters(params.eps, niters);
|
||
|
||
// special case
|
||
if(count == model_points) {
|
||
if(kernel.run(from, to, M, count) <= 0) {
|
||
jsfeat.cache.put_buffer(m_buff);
|
||
jsfeat.cache.put_buffer(ms_buff);
|
||
jsfeat.cache.put_buffer(err_buff);
|
||
return false;
|
||
}
|
||
|
||
M.copy_to(model);
|
||
if(mask) {
|
||
while(--count >= 0) {
|
||
mask.data[count] = 1;
|
||
}
|
||
}
|
||
jsfeat.cache.put_buffer(m_buff);
|
||
jsfeat.cache.put_buffer(ms_buff);
|
||
jsfeat.cache.put_buffer(err_buff);
|
||
return true;
|
||
}
|
||
|
||
for (; iter < niters; ++iter) {
|
||
// generate subset
|
||
found = get_subset(kernel, from, to, model_points, count, subset0, subset1);
|
||
if(!found) {
|
||
if(iter == 0) {
|
||
jsfeat.cache.put_buffer(m_buff);
|
||
jsfeat.cache.put_buffer(ms_buff);
|
||
jsfeat.cache.put_buffer(err_buff);
|
||
return false;
|
||
}
|
||
break;
|
||
}
|
||
|
||
nmodels = kernel.run( subset0, subset1, M, model_points );
|
||
if(nmodels <= 0)
|
||
continue;
|
||
|
||
// TODO handle multimodel output
|
||
|
||
kernel.error(from, to, M, err, count);
|
||
median = jsfeat.math.median(err, 0, count-1);
|
||
|
||
if(median < min_median) {
|
||
min_median = median;
|
||
M.copy_to(model);
|
||
result = true;
|
||
}
|
||
}
|
||
|
||
if(result) {
|
||
sigma = 2.5*1.4826*(1 + 5.0/(count - model_points))*Math.sqrt(min_median);
|
||
sigma = Math.max(sigma, 0.001);
|
||
|
||
numinliers = find_inliers(kernel, model, from, to, count, sigma, err, curr_mask.data);
|
||
if(mask) curr_mask.copy_to(mask);
|
||
|
||
result = numinliers >= model_points;
|
||
}
|
||
|
||
jsfeat.cache.put_buffer(m_buff);
|
||
jsfeat.cache.put_buffer(ms_buff);
|
||
jsfeat.cache.put_buffer(err_buff);
|
||
|
||
return result;
|
||
}
|
||
|
||
};
|
||
|
||
})();
|
||
|
||
global.ransac_params_t = ransac_params_t;
|
||
global.motion_model = motion_model;
|
||
global.motion_estimator = motion_estimator;
|
||
|
||
})(jsfeat);
|
||
/**
|
||
* @author Eugene Zatepyakin / http://inspirit.ru/
|
||
*/
|
||
|
||
(function(global) {
|
||
"use strict";
|
||
//
|
||
|
||
var imgproc = (function() {
|
||
|
||
var _resample_u8 = function(src, dst, nw, nh) {
|
||
var xofs_count=0;
|
||
var ch=src.channel,w=src.cols,h=src.rows;
|
||
var src_d=src.data,dst_d=dst.data;
|
||
var scale_x = w / nw, scale_y = h / nh;
|
||
var inv_scale_256 = (scale_x * scale_y * 0x10000)|0;
|
||
var dx=0,dy=0,sx=0,sy=0,sx1=0,sx2=0,i=0,k=0,fsx1=0.0,fsx2=0.0;
|
||
var a=0,b=0,dxn=0,alpha=0,beta=0,beta1=0;
|
||
|
||
var buf_node = jsfeat.cache.get_buffer((nw*ch)<<2);
|
||
var sum_node = jsfeat.cache.get_buffer((nw*ch)<<2);
|
||
var xofs_node = jsfeat.cache.get_buffer((w*2*3)<<2);
|
||
|
||
var buf = buf_node.i32;
|
||
var sum = sum_node.i32;
|
||
var xofs = xofs_node.i32;
|
||
|
||
for (; dx < nw; dx++) {
|
||
fsx1 = dx * scale_x, fsx2 = fsx1 + scale_x;
|
||
sx1 = (fsx1 + 1.0 - 1e-6)|0, sx2 = fsx2|0;
|
||
sx1 = Math.min(sx1, w - 1);
|
||
sx2 = Math.min(sx2, w - 1);
|
||
|
||
if(sx1 > fsx1) {
|
||
xofs[k++] = (dx * ch)|0;
|
||
xofs[k++] = ((sx1 - 1)*ch)|0;
|
||
xofs[k++] = ((sx1 - fsx1) * 0x100)|0;
|
||
xofs_count++;
|
||
}
|
||
for(sx = sx1; sx < sx2; sx++){
|
||
xofs_count++;
|
||
xofs[k++] = (dx * ch)|0;
|
||
xofs[k++] = (sx * ch)|0;
|
||
xofs[k++] = 256;
|
||
}
|
||
if(fsx2 - sx2 > 1e-3) {
|
||
xofs_count++;
|
||
xofs[k++] = (dx * ch)|0;
|
||
xofs[k++] = (sx2 * ch)|0;
|
||
xofs[k++] = ((fsx2 - sx2) * 256)|0;
|
||
}
|
||
}
|
||
|
||
for (dx = 0; dx < nw * ch; dx++) {
|
||
buf[dx] = sum[dx] = 0;
|
||
}
|
||
dy = 0;
|
||
for (sy = 0; sy < h; sy++) {
|
||
a = w * sy;
|
||
for (k = 0; k < xofs_count; k++) {
|
||
dxn = xofs[k*3];
|
||
sx1 = xofs[k*3+1];
|
||
alpha = xofs[k*3+2];
|
||
for (i = 0; i < ch; i++) {
|
||
buf[dxn + i] += src_d[a+sx1+i] * alpha;
|
||
}
|
||
}
|
||
if ((dy + 1) * scale_y <= sy + 1 || sy == h - 1) {
|
||
beta = (Math.max(sy + 1 - (dy + 1) * scale_y, 0.0) * 256)|0;
|
||
beta1 = 256 - beta;
|
||
b = nw * dy;
|
||
if (beta <= 0) {
|
||
for (dx = 0; dx < nw * ch; dx++) {
|
||
dst_d[b+dx] = Math.min(Math.max((sum[dx] + buf[dx] * 256) / inv_scale_256, 0), 255);
|
||
sum[dx] = buf[dx] = 0;
|
||
}
|
||
} else {
|
||
for (dx = 0; dx < nw * ch; dx++) {
|
||
dst_d[b+dx] = Math.min(Math.max((sum[dx] + buf[dx] * beta1) / inv_scale_256, 0), 255);
|
||
sum[dx] = buf[dx] * beta;
|
||
buf[dx] = 0;
|
||
}
|
||
}
|
||
dy++;
|
||
} else {
|
||
for(dx = 0; dx < nw * ch; dx++) {
|
||
sum[dx] += buf[dx] * 256;
|
||
buf[dx] = 0;
|
||
}
|
||
}
|
||
}
|
||
|
||
jsfeat.cache.put_buffer(sum_node);
|
||
jsfeat.cache.put_buffer(buf_node);
|
||
jsfeat.cache.put_buffer(xofs_node);
|
||
};
|
||
|
||
var _resample = function(src, dst, nw, nh) {
|
||
var xofs_count=0;
|
||
var ch=src.channel,w=src.cols,h=src.rows;
|
||
var src_d=src.data,dst_d=dst.data;
|
||
var scale_x = w / nw, scale_y = h / nh;
|
||
var scale = 1.0 / (scale_x * scale_y);
|
||
var dx=0,dy=0,sx=0,sy=0,sx1=0,sx2=0,i=0,k=0,fsx1=0.0,fsx2=0.0;
|
||
var a=0,b=0,dxn=0,alpha=0.0,beta=0.0,beta1=0.0;
|
||
|
||
var buf_node = jsfeat.cache.get_buffer((nw*ch)<<2);
|
||
var sum_node = jsfeat.cache.get_buffer((nw*ch)<<2);
|
||
var xofs_node = jsfeat.cache.get_buffer((w*2*3)<<2);
|
||
|
||
var buf = buf_node.f32;
|
||
var sum = sum_node.f32;
|
||
var xofs = xofs_node.f32;
|
||
|
||
for (; dx < nw; dx++) {
|
||
fsx1 = dx * scale_x, fsx2 = fsx1 + scale_x;
|
||
sx1 = (fsx1 + 1.0 - 1e-6)|0, sx2 = fsx2|0;
|
||
sx1 = Math.min(sx1, w - 1);
|
||
sx2 = Math.min(sx2, w - 1);
|
||
|
||
if(sx1 > fsx1) {
|
||
xofs_count++;
|
||
xofs[k++] = ((sx1 - 1)*ch)|0;
|
||
xofs[k++] = (dx * ch)|0;
|
||
xofs[k++] = (sx1 - fsx1) * scale;
|
||
}
|
||
for(sx = sx1; sx < sx2; sx++){
|
||
xofs_count++;
|
||
xofs[k++] = (sx * ch)|0;
|
||
xofs[k++] = (dx * ch)|0;
|
||
xofs[k++] = scale;
|
||
}
|
||
if(fsx2 - sx2 > 1e-3) {
|
||
xofs_count++;
|
||
xofs[k++] = (sx2 * ch)|0;
|
||
xofs[k++] = (dx * ch)|0;
|
||
xofs[k++] = (fsx2 - sx2) * scale;
|
||
}
|
||
}
|
||
|
||
for (dx = 0; dx < nw * ch; dx++) {
|
||
buf[dx] = sum[dx] = 0;
|
||
}
|
||
dy = 0;
|
||
for (sy = 0; sy < h; sy++) {
|
||
a = w * sy;
|
||
for (k = 0; k < xofs_count; k++) {
|
||
sx1 = xofs[k*3]|0;
|
||
dxn = xofs[k*3+1]|0;
|
||
alpha = xofs[k*3+2];
|
||
for (i = 0; i < ch; i++) {
|
||
buf[dxn + i] += src_d[a+sx1+i] * alpha;
|
||
}
|
||
}
|
||
if ((dy + 1) * scale_y <= sy + 1 || sy == h - 1) {
|
||
beta = Math.max(sy + 1 - (dy + 1) * scale_y, 0.0);
|
||
beta1 = 1.0 - beta;
|
||
b = nw * dy;
|
||
if (Math.abs(beta) < 1e-3) {
|
||
for (dx = 0; dx < nw * ch; dx++) {
|
||
dst_d[b+dx] = sum[dx] + buf[dx];
|
||
sum[dx] = buf[dx] = 0;
|
||
}
|
||
} else {
|
||
for (dx = 0; dx < nw * ch; dx++) {
|
||
dst_d[b+dx] = sum[dx] + buf[dx] * beta1;
|
||
sum[dx] = buf[dx] * beta;
|
||
buf[dx] = 0;
|
||
}
|
||
}
|
||
dy++;
|
||
} else {
|
||
for(dx = 0; dx < nw * ch; dx++) {
|
||
sum[dx] += buf[dx];
|
||
buf[dx] = 0;
|
||
}
|
||
}
|
||
}
|
||
jsfeat.cache.put_buffer(sum_node);
|
||
jsfeat.cache.put_buffer(buf_node);
|
||
jsfeat.cache.put_buffer(xofs_node);
|
||
};
|
||
|
||
var _convol_u8 = function(buf, src_d, dst_d, w, h, filter, kernel_size, half_kernel) {
|
||
var i=0,j=0,k=0,sp=0,dp=0,sum=0,sum1=0,sum2=0,sum3=0,f0=filter[0],fk=0;
|
||
var w2=w<<1,w3=w*3,w4=w<<2;
|
||
// hor pass
|
||
for (; i < h; ++i) {
|
||
sum = src_d[sp];
|
||
for (j = 0; j < half_kernel; ++j) {
|
||
buf[j] = sum;
|
||
}
|
||
for (j = 0; j <= w-2; j+=2) {
|
||
buf[j + half_kernel] = src_d[sp+j];
|
||
buf[j + half_kernel+1] = src_d[sp+j+1];
|
||
}
|
||
for (; j < w; ++j) {
|
||
buf[j + half_kernel] = src_d[sp+j];
|
||
}
|
||
sum = src_d[sp+w-1];
|
||
for (j = w; j < half_kernel + w; ++j) {
|
||
buf[j + half_kernel] = sum;
|
||
}
|
||
for (j = 0; j <= w-4; j+=4) {
|
||
sum = buf[j] * f0,
|
||
sum1 = buf[j+1] * f0,
|
||
sum2 = buf[j+2] * f0,
|
||
sum3 = buf[j+3] * f0;
|
||
for (k = 1; k < kernel_size; ++k) {
|
||
fk = filter[k];
|
||
sum += buf[k + j] * fk;
|
||
sum1 += buf[k + j+1] * fk;
|
||
sum2 += buf[k + j+2] * fk;
|
||
sum3 += buf[k + j+3] * fk;
|
||
}
|
||
dst_d[dp+j] = Math.min(sum >> 8, 255);
|
||
dst_d[dp+j+1] = Math.min(sum1 >> 8, 255);
|
||
dst_d[dp+j+2] = Math.min(sum2 >> 8, 255);
|
||
dst_d[dp+j+3] = Math.min(sum3 >> 8, 255);
|
||
}
|
||
for (; j < w; ++j) {
|
||
sum = buf[j] * f0;
|
||
for (k = 1; k < kernel_size; ++k) {
|
||
sum += buf[k + j] * filter[k];
|
||
}
|
||
dst_d[dp+j] = Math.min(sum >> 8, 255);
|
||
}
|
||
sp += w;
|
||
dp += w;
|
||
}
|
||
|
||
// vert pass
|
||
for (i = 0; i < w; ++i) {
|
||
sum = dst_d[i];
|
||
for (j = 0; j < half_kernel; ++j) {
|
||
buf[j] = sum;
|
||
}
|
||
k = i;
|
||
for (j = 0; j <= h-2; j+=2, k+=w2) {
|
||
buf[j+half_kernel] = dst_d[k];
|
||
buf[j+half_kernel+1] = dst_d[k+w];
|
||
}
|
||
for (; j < h; ++j, k+=w) {
|
||
buf[j+half_kernel] = dst_d[k];
|
||
}
|
||
sum = dst_d[(h-1)*w + i];
|
||
for (j = h; j < half_kernel + h; ++j) {
|
||
buf[j + half_kernel] = sum;
|
||
}
|
||
dp = i;
|
||
for (j = 0; j <= h-4; j+=4, dp+=w4) {
|
||
sum = buf[j] * f0,
|
||
sum1 = buf[j+1] * f0,
|
||
sum2 = buf[j+2] * f0,
|
||
sum3 = buf[j+3] * f0;
|
||
for (k = 1; k < kernel_size; ++k) {
|
||
fk = filter[k];
|
||
sum += buf[k + j] * fk;
|
||
sum1 += buf[k + j+1] * fk;
|
||
sum2 += buf[k + j+2] * fk;
|
||
sum3 += buf[k + j+3] * fk;
|
||
}
|
||
dst_d[dp] = Math.min(sum >> 8, 255);
|
||
dst_d[dp+w] = Math.min(sum1 >> 8, 255);
|
||
dst_d[dp+w2] = Math.min(sum2 >> 8, 255);
|
||
dst_d[dp+w3] = Math.min(sum3 >> 8, 255);
|
||
}
|
||
for (; j < h; ++j, dp+=w) {
|
||
sum = buf[j] * f0;
|
||
for (k = 1; k < kernel_size; ++k) {
|
||
sum += buf[k + j] * filter[k];
|
||
}
|
||
dst_d[dp] = Math.min(sum >> 8, 255);
|
||
}
|
||
}
|
||
};
|
||
|
||
var _convol = function(buf, src_d, dst_d, w, h, filter, kernel_size, half_kernel) {
|
||
var i=0,j=0,k=0,sp=0,dp=0,sum=0.0,sum1=0.0,sum2=0.0,sum3=0.0,f0=filter[0],fk=0.0;
|
||
var w2=w<<1,w3=w*3,w4=w<<2;
|
||
// hor pass
|
||
for (; i < h; ++i) {
|
||
sum = src_d[sp];
|
||
for (j = 0; j < half_kernel; ++j) {
|
||
buf[j] = sum;
|
||
}
|
||
for (j = 0; j <= w-2; j+=2) {
|
||
buf[j + half_kernel] = src_d[sp+j];
|
||
buf[j + half_kernel+1] = src_d[sp+j+1];
|
||
}
|
||
for (; j < w; ++j) {
|
||
buf[j + half_kernel] = src_d[sp+j];
|
||
}
|
||
sum = src_d[sp+w-1];
|
||
for (j = w; j < half_kernel + w; ++j) {
|
||
buf[j + half_kernel] = sum;
|
||
}
|
||
for (j = 0; j <= w-4; j+=4) {
|
||
sum = buf[j] * f0,
|
||
sum1 = buf[j+1] * f0,
|
||
sum2 = buf[j+2] * f0,
|
||
sum3 = buf[j+3] * f0;
|
||
for (k = 1; k < kernel_size; ++k) {
|
||
fk = filter[k];
|
||
sum += buf[k + j] * fk;
|
||
sum1 += buf[k + j+1] * fk;
|
||
sum2 += buf[k + j+2] * fk;
|
||
sum3 += buf[k + j+3] * fk;
|
||
}
|
||
dst_d[dp+j] = sum;
|
||
dst_d[dp+j+1] = sum1;
|
||
dst_d[dp+j+2] = sum2;
|
||
dst_d[dp+j+3] = sum3;
|
||
}
|
||
for (; j < w; ++j) {
|
||
sum = buf[j] * f0;
|
||
for (k = 1; k < kernel_size; ++k) {
|
||
sum += buf[k + j] * filter[k];
|
||
}
|
||
dst_d[dp+j] = sum;
|
||
}
|
||
sp += w;
|
||
dp += w;
|
||
}
|
||
|
||
// vert pass
|
||
for (i = 0; i < w; ++i) {
|
||
sum = dst_d[i];
|
||
for (j = 0; j < half_kernel; ++j) {
|
||
buf[j] = sum;
|
||
}
|
||
k = i;
|
||
for (j = 0; j <= h-2; j+=2, k+=w2) {
|
||
buf[j+half_kernel] = dst_d[k];
|
||
buf[j+half_kernel+1] = dst_d[k+w];
|
||
}
|
||
for (; j < h; ++j, k+=w) {
|
||
buf[j+half_kernel] = dst_d[k];
|
||
}
|
||
sum = dst_d[(h-1)*w + i];
|
||
for (j = h; j < half_kernel + h; ++j) {
|
||
buf[j + half_kernel] = sum;
|
||
}
|
||
dp = i;
|
||
for (j = 0; j <= h-4; j+=4, dp+=w4) {
|
||
sum = buf[j] * f0,
|
||
sum1 = buf[j+1] * f0,
|
||
sum2 = buf[j+2] * f0,
|
||
sum3 = buf[j+3] * f0;
|
||
for (k = 1; k < kernel_size; ++k) {
|
||
fk = filter[k];
|
||
sum += buf[k + j] * fk;
|
||
sum1 += buf[k + j+1] * fk;
|
||
sum2 += buf[k + j+2] * fk;
|
||
sum3 += buf[k + j+3] * fk;
|
||
}
|
||
dst_d[dp] = sum;
|
||
dst_d[dp+w] = sum1;
|
||
dst_d[dp+w2] = sum2;
|
||
dst_d[dp+w3] = sum3;
|
||
}
|
||
for (; j < h; ++j, dp+=w) {
|
||
sum = buf[j] * f0;
|
||
for (k = 1; k < kernel_size; ++k) {
|
||
sum += buf[k + j] * filter[k];
|
||
}
|
||
dst_d[dp] = sum;
|
||
}
|
||
}
|
||
};
|
||
|
||
return {
|
||
// TODO: add support for RGB/BGR order
|
||
// for raw arrays
|
||
grayscale: function(src, w, h, dst, code) {
|
||
// this is default image data representation in browser
|
||
if (typeof code === "undefined") { code = jsfeat.COLOR_RGBA2GRAY; }
|
||
var x=0, y=0, i=0, j=0, ir=0,jr=0;
|
||
var coeff_r = 4899, coeff_g = 9617, coeff_b = 1868, cn = 4;
|
||
|
||
if(code == jsfeat.COLOR_BGRA2GRAY || code == jsfeat.COLOR_BGR2GRAY) {
|
||
coeff_r = 1868;
|
||
coeff_b = 4899;
|
||
}
|
||
if(code == jsfeat.COLOR_RGB2GRAY || code == jsfeat.COLOR_BGR2GRAY) {
|
||
cn = 3;
|
||
}
|
||
var cn2 = cn<<1, cn3 = (cn*3)|0;
|
||
|
||
dst.resize(w, h, 1);
|
||
var dst_u8 = dst.data;
|
||
|
||
for(y = 0; y < h; ++y, j+=w, i+=w*cn) {
|
||
for(x = 0, ir = i, jr = j; x <= w-4; x+=4, ir+=cn<<2, jr+=4) {
|
||
dst_u8[jr] = (src[ir] * coeff_r + src[ir+1] * coeff_g + src[ir+2] * coeff_b + 8192) >> 14;
|
||
dst_u8[jr + 1] = (src[ir+cn] * coeff_r + src[ir+cn+1] * coeff_g + src[ir+cn+2] * coeff_b + 8192) >> 14;
|
||
dst_u8[jr + 2] = (src[ir+cn2] * coeff_r + src[ir+cn2+1] * coeff_g + src[ir+cn2+2] * coeff_b + 8192) >> 14;
|
||
dst_u8[jr + 3] = (src[ir+cn3] * coeff_r + src[ir+cn3+1] * coeff_g + src[ir+cn3+2] * coeff_b + 8192) >> 14;
|
||
}
|
||
for (; x < w; ++x, ++jr, ir+=cn) {
|
||
dst_u8[jr] = (src[ir] * coeff_r + src[ir+1] * coeff_g + src[ir+2] * coeff_b + 8192) >> 14;
|
||
}
|
||
}
|
||
},
|
||
// derived from CCV library
|
||
resample: function(src, dst, nw, nh) {
|
||
var h=src.rows,w=src.cols;
|
||
if (h > nh && w > nw) {
|
||
dst.resize(nw, nh, src.channel);
|
||
// using the fast alternative (fix point scale, 0x100 to avoid overflow)
|
||
if (src.type&jsfeat.U8_t && dst.type&jsfeat.U8_t && h * w / (nh * nw) < 0x100) {
|
||
_resample_u8(src, dst, nw, nh);
|
||
} else {
|
||
_resample(src, dst, nw, nh);
|
||
}
|
||
}
|
||
},
|
||
|
||
box_blur_gray: function(src, dst, radius, options) {
|
||
if (typeof options === "undefined") { options = 0; }
|
||
var w=src.cols, h=src.rows, h2=h<<1, w2=w<<1;
|
||
var i=0,x=0,y=0,end=0;
|
||
var windowSize = ((radius << 1) + 1)|0;
|
||
var radiusPlusOne = (radius + 1)|0, radiusPlus2 = (radiusPlusOne+1)|0;
|
||
var scale = options&jsfeat.BOX_BLUR_NOSCALE ? 1 : (1.0 / (windowSize*windowSize));
|
||
|
||
var tmp_buff = jsfeat.cache.get_buffer((w*h)<<2);
|
||
|
||
var sum=0, dstIndex=0, srcIndex = 0, nextPixelIndex=0, previousPixelIndex=0;
|
||
var data_i32 = tmp_buff.i32; // to prevent overflow
|
||
var data_u8 = src.data;
|
||
var hold=0;
|
||
|
||
dst.resize(w, h, src.channel);
|
||
|
||
// first pass
|
||
// no need to scale
|
||
//data_u8 = src.data;
|
||
//data_i32 = tmp;
|
||
for (y = 0; y < h; ++y) {
|
||
dstIndex = y;
|
||
sum = radiusPlusOne * data_u8[srcIndex];
|
||
|
||
for(i = (srcIndex+1)|0, end=(srcIndex+radius)|0; i <= end; ++i) {
|
||
sum += data_u8[i];
|
||
}
|
||
|
||
nextPixelIndex = (srcIndex + radiusPlusOne)|0;
|
||
previousPixelIndex = srcIndex;
|
||
hold = data_u8[previousPixelIndex];
|
||
for(x = 0; x < radius; ++x, dstIndex += h) {
|
||
data_i32[dstIndex] = sum;
|
||
sum += data_u8[nextPixelIndex]- hold;
|
||
nextPixelIndex ++;
|
||
}
|
||
for(; x < w-radiusPlus2; x+=2, dstIndex += h2) {
|
||
data_i32[dstIndex] = sum;
|
||
sum += data_u8[nextPixelIndex]- data_u8[previousPixelIndex];
|
||
|
||
data_i32[dstIndex+h] = sum;
|
||
sum += data_u8[nextPixelIndex+1]- data_u8[previousPixelIndex+1];
|
||
|
||
nextPixelIndex +=2;
|
||
previousPixelIndex +=2;
|
||
}
|
||
for(; x < w-radiusPlusOne; ++x, dstIndex += h) {
|
||
data_i32[dstIndex] = sum;
|
||
sum += data_u8[nextPixelIndex]- data_u8[previousPixelIndex];
|
||
|
||
nextPixelIndex ++;
|
||
previousPixelIndex ++;
|
||
}
|
||
|
||
hold = data_u8[nextPixelIndex-1];
|
||
for(; x < w; ++x, dstIndex += h) {
|
||
data_i32[dstIndex] = sum;
|
||
|
||
sum += hold- data_u8[previousPixelIndex];
|
||
previousPixelIndex ++;
|
||
}
|
||
|
||
srcIndex += w;
|
||
}
|
||
//
|
||
// second pass
|
||
srcIndex = 0;
|
||
//data_i32 = tmp; // this is a transpose
|
||
data_u8 = dst.data;
|
||
|
||
// dont scale result
|
||
if(scale == 1) {
|
||
for (y = 0; y < w; ++y) {
|
||
dstIndex = y;
|
||
sum = radiusPlusOne * data_i32[srcIndex];
|
||
|
||
for(i = (srcIndex+1)|0, end=(srcIndex+radius)|0; i <= end; ++i) {
|
||
sum += data_i32[i];
|
||
}
|
||
|
||
nextPixelIndex = srcIndex + radiusPlusOne;
|
||
previousPixelIndex = srcIndex;
|
||
hold = data_i32[previousPixelIndex];
|
||
|
||
for(x = 0; x < radius; ++x, dstIndex += w) {
|
||
data_u8[dstIndex] = sum;
|
||
sum += data_i32[nextPixelIndex]- hold;
|
||
nextPixelIndex ++;
|
||
}
|
||
for(; x < h-radiusPlus2; x+=2, dstIndex += w2) {
|
||
data_u8[dstIndex] = sum;
|
||
sum += data_i32[nextPixelIndex]- data_i32[previousPixelIndex];
|
||
|
||
data_u8[dstIndex+w] = sum;
|
||
sum += data_i32[nextPixelIndex+1]- data_i32[previousPixelIndex+1];
|
||
|
||
nextPixelIndex +=2;
|
||
previousPixelIndex +=2;
|
||
}
|
||
for(; x < h-radiusPlusOne; ++x, dstIndex += w) {
|
||
data_u8[dstIndex] = sum;
|
||
|
||
sum += data_i32[nextPixelIndex]- data_i32[previousPixelIndex];
|
||
nextPixelIndex ++;
|
||
previousPixelIndex ++;
|
||
}
|
||
hold = data_i32[nextPixelIndex-1];
|
||
for(; x < h; ++x, dstIndex += w) {
|
||
data_u8[dstIndex] = sum;
|
||
|
||
sum += hold- data_i32[previousPixelIndex];
|
||
previousPixelIndex ++;
|
||
}
|
||
|
||
srcIndex += h;
|
||
}
|
||
} else {
|
||
for (y = 0; y < w; ++y) {
|
||
dstIndex = y;
|
||
sum = radiusPlusOne * data_i32[srcIndex];
|
||
|
||
for(i = (srcIndex+1)|0, end=(srcIndex+radius)|0; i <= end; ++i) {
|
||
sum += data_i32[i];
|
||
}
|
||
|
||
nextPixelIndex = srcIndex + radiusPlusOne;
|
||
previousPixelIndex = srcIndex;
|
||
hold = data_i32[previousPixelIndex];
|
||
|
||
for(x = 0; x < radius; ++x, dstIndex += w) {
|
||
data_u8[dstIndex] = sum*scale;
|
||
sum += data_i32[nextPixelIndex]- hold;
|
||
nextPixelIndex ++;
|
||
}
|
||
for(; x < h-radiusPlus2; x+=2, dstIndex += w2) {
|
||
data_u8[dstIndex] = sum*scale;
|
||
sum += data_i32[nextPixelIndex]- data_i32[previousPixelIndex];
|
||
|
||
data_u8[dstIndex+w] = sum*scale;
|
||
sum += data_i32[nextPixelIndex+1]- data_i32[previousPixelIndex+1];
|
||
|
||
nextPixelIndex +=2;
|
||
previousPixelIndex +=2;
|
||
}
|
||
for(; x < h-radiusPlusOne; ++x, dstIndex += w) {
|
||
data_u8[dstIndex] = sum*scale;
|
||
|
||
sum += data_i32[nextPixelIndex]- data_i32[previousPixelIndex];
|
||
nextPixelIndex ++;
|
||
previousPixelIndex ++;
|
||
}
|
||
hold = data_i32[nextPixelIndex-1];
|
||
for(; x < h; ++x, dstIndex += w) {
|
||
data_u8[dstIndex] = sum*scale;
|
||
|
||
sum += hold- data_i32[previousPixelIndex];
|
||
previousPixelIndex ++;
|
||
}
|
||
|
||
srcIndex += h;
|
||
}
|
||
}
|
||
|
||
jsfeat.cache.put_buffer(tmp_buff);
|
||
},
|
||
|
||
gaussian_blur: function(src, dst, kernel_size, sigma) {
|
||
if (typeof sigma === "undefined") { sigma = 0.0; }
|
||
if (typeof kernel_size === "undefined") { kernel_size = 0; }
|
||
kernel_size = kernel_size == 0 ? (Math.max(1, (4.0 * sigma + 1.0 - 1e-8)) * 2 + 1)|0 : kernel_size;
|
||
var half_kernel = kernel_size >> 1;
|
||
var w = src.cols, h = src.rows;
|
||
var data_type = src.type, is_u8 = data_type&jsfeat.U8_t;
|
||
|
||
dst.resize(w, h, src.channel);
|
||
|
||
var src_d = src.data, dst_d = dst.data;
|
||
var buf,filter,buf_sz=(kernel_size + Math.max(h, w))|0;
|
||
|
||
var buf_node = jsfeat.cache.get_buffer(buf_sz<<2);
|
||
var filt_node = jsfeat.cache.get_buffer(kernel_size<<2);
|
||
|
||
if(is_u8) {
|
||
buf = buf_node.i32;
|
||
filter = filt_node.i32;
|
||
} else if(data_type&jsfeat.S32_t) {
|
||
buf = buf_node.i32;
|
||
filter = filt_node.f32;
|
||
} else {
|
||
buf = buf_node.f32;
|
||
filter = filt_node.f32;
|
||
}
|
||
|
||
jsfeat.math.get_gaussian_kernel(kernel_size, sigma, filter, data_type);
|
||
|
||
if(is_u8) {
|
||
_convol_u8(buf, src_d, dst_d, w, h, filter, kernel_size, half_kernel);
|
||
} else {
|
||
_convol(buf, src_d, dst_d, w, h, filter, kernel_size, half_kernel);
|
||
}
|
||
|
||
jsfeat.cache.put_buffer(buf_node);
|
||
jsfeat.cache.put_buffer(filt_node);
|
||
},
|
||
hough_transform: function( img, rho_res, theta_res, threshold ) {
|
||
var image = img.data;
|
||
|
||
var width = img.cols;
|
||
var height = img.rows;
|
||
var step = width;
|
||
|
||
min_theta = 0.0;
|
||
max_theta = Math.PI;
|
||
|
||
numangle = Math.round((max_theta - min_theta) / theta_res);
|
||
numrho = Math.round(((width + height) * 2 + 1) / rho_res);
|
||
irho = 1.0 / rho_res;
|
||
|
||
var accum = new Int32Array((numangle+2) * (numrho+2)); //typed arrays are initialized to 0
|
||
var tabSin = new Float32Array(numangle);
|
||
var tabCos = new Float32Array(numangle);
|
||
|
||
var n=0;
|
||
var ang = min_theta;
|
||
for(; n < numangle; n++ ) {
|
||
tabSin[n] = Math.sin(ang) * irho;
|
||
tabCos[n] = Math.cos(ang) * irho;
|
||
ang += theta_res;
|
||
}
|
||
|
||
// stage 1. fill accumulator
|
||
for( var i = 0; i < height; i++ ) {
|
||
for( var j = 0; j < width; j++ ) {
|
||
if( image[i * step + j] != 0 ) {
|
||
//console.log(r, (n+1) * (numrho+2) + r+1, tabCos[n], tabSin[n]);
|
||
for(var n = 0; n < numangle; n++ ) {
|
||
var r = Math.round( j * tabCos[n] + i * tabSin[n] );
|
||
r += (numrho - 1) / 2;
|
||
accum[(n+1) * (numrho+2) + r+1] += 1;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
// stage 2. find local maximums
|
||
//TODO: Consider making a vector class that uses typed arrays
|
||
_sort_buf = new Array();
|
||
for(var r = 0; r < numrho; r++ ) {
|
||
for(var n = 0; n < numangle; n++ ) {
|
||
var base = (n+1) * (numrho+2) + r+1;
|
||
if( accum[base] > threshold &&
|
||
accum[base] > accum[base - 1] && accum[base] >= accum[base + 1] &&
|
||
accum[base] > accum[base - numrho - 2] && accum[base] >= accum[base + numrho + 2] ) {
|
||
_sort_buf.push(base);
|
||
}
|
||
}
|
||
}
|
||
|
||
// stage 3. sort the detected lines by accumulator value
|
||
_sort_buf.sort(function(l1, l2) {
|
||
return accum[l1] > accum[l2] || (accum[l1] == accum[l2] && l1 < l2);
|
||
});
|
||
|
||
// stage 4. store the first min(total,linesMax) lines to the output buffer
|
||
linesMax = Math.min(numangle*numrho, _sort_buf.length);
|
||
scale = 1.0 / (numrho+2);
|
||
lines = new Array();
|
||
for( var i = 0; i < linesMax; i++ ) {
|
||
var idx = _sort_buf[i];
|
||
var n = Math.floor(idx*scale) - 1;
|
||
var r = idx - (n+1)*(numrho+2) - 1;
|
||
var lrho = (r - (numrho - 1)*0.5) * rho_res;
|
||
var langle = n * theta_res;
|
||
lines.push([lrho, langle]);
|
||
}
|
||
return lines;
|
||
},
|
||
// assume we always need it for u8 image
|
||
pyrdown: function(src, dst, sx, sy) {
|
||
// this is needed for bbf
|
||
if (typeof sx === "undefined") { sx = 0; }
|
||
if (typeof sy === "undefined") { sy = 0; }
|
||
|
||
var w = src.cols, h = src.rows;
|
||
var w2 = w >> 1, h2 = h >> 1;
|
||
var _w2 = w2 - (sx << 1), _h2 = h2 - (sy << 1);
|
||
var x=0,y=0,sptr=sx+sy*w,sline=0,dptr=0,dline=0;
|
||
|
||
dst.resize(w2, h2, src.channel);
|
||
|
||
var src_d = src.data, dst_d = dst.data;
|
||
|
||
for(y = 0; y < _h2; ++y) {
|
||
sline = sptr;
|
||
dline = dptr;
|
||
for(x = 0; x <= _w2-2; x+=2, dline+=2, sline += 4) {
|
||
dst_d[dline] = (src_d[sline] + src_d[sline+1] +
|
||
src_d[sline+w] + src_d[sline+w+1] + 2) >> 2;
|
||
dst_d[dline+1] = (src_d[sline+2] + src_d[sline+3] +
|
||
src_d[sline+w+2] + src_d[sline+w+3] + 2) >> 2;
|
||
}
|
||
for(; x < _w2; ++x, ++dline, sline += 2) {
|
||
dst_d[dline] = (src_d[sline] + src_d[sline+1] +
|
||
src_d[sline+w] + src_d[sline+w+1] + 2) >> 2;
|
||
}
|
||
sptr += w << 1;
|
||
dptr += w2;
|
||
}
|
||
},
|
||
|
||
// dst: [gx,gy,...]
|
||
scharr_derivatives: function(src, dst) {
|
||
var w = src.cols, h = src.rows;
|
||
var dstep = w<<1,x=0,y=0,x1=0,a,b,c,d,e,f;
|
||
var srow0=0,srow1=0,srow2=0,drow=0;
|
||
var trow0,trow1;
|
||
|
||
dst.resize(w, h, 2); // 2 channel output gx, gy
|
||
|
||
var img = src.data, gxgy=dst.data;
|
||
|
||
var buf0_node = jsfeat.cache.get_buffer((w+2)<<2);
|
||
var buf1_node = jsfeat.cache.get_buffer((w+2)<<2);
|
||
|
||
if(src.type&jsfeat.U8_t || src.type&jsfeat.S32_t) {
|
||
trow0 = buf0_node.i32;
|
||
trow1 = buf1_node.i32;
|
||
} else {
|
||
trow0 = buf0_node.f32;
|
||
trow1 = buf1_node.f32;
|
||
}
|
||
|
||
for(; y < h; ++y, srow1+=w) {
|
||
srow0 = ((y > 0 ? y-1 : 1)*w)|0;
|
||
srow2 = ((y < h-1 ? y+1 : h-2)*w)|0;
|
||
drow = (y*dstep)|0;
|
||
// do vertical convolution
|
||
for(x = 0, x1 = 1; x <= w-2; x+=2, x1+=2) {
|
||
a = img[srow0+x], b = img[srow2+x];
|
||
trow0[x1] = ( (a + b)*3 + (img[srow1+x])*10 );
|
||
trow1[x1] = ( b - a );
|
||
//
|
||
a = img[srow0+x+1], b = img[srow2+x+1];
|
||
trow0[x1+1] = ( (a + b)*3 + (img[srow1+x+1])*10 );
|
||
trow1[x1+1] = ( b - a );
|
||
}
|
||
for(; x < w; ++x, ++x1) {
|
||
a = img[srow0+x], b = img[srow2+x];
|
||
trow0[x1] = ( (a + b)*3 + (img[srow1+x])*10 );
|
||
trow1[x1] = ( b - a );
|
||
}
|
||
// make border
|
||
x = (w + 1)|0;
|
||
trow0[0] = trow0[1]; trow0[x] = trow0[w];
|
||
trow1[0] = trow1[1]; trow1[x] = trow1[w];
|
||
// do horizontal convolution, interleave the results and store them
|
||
for(x = 0; x <= w-4; x+=4) {
|
||
a = trow1[x+2], b = trow1[x+1], c = trow1[x+3], d = trow1[x+4],
|
||
e = trow0[x+2], f = trow0[x+3];
|
||
gxgy[drow++] = ( e - trow0[x] );
|
||
gxgy[drow++] = ( (a + trow1[x])*3 + b*10 );
|
||
gxgy[drow++] = ( f - trow0[x+1] );
|
||
gxgy[drow++] = ( (c + b)*3 + a*10 );
|
||
|
||
gxgy[drow++] = ( (trow0[x+4] - e) );
|
||
gxgy[drow++] = ( ((d + a)*3 + c*10) );
|
||
gxgy[drow++] = ( (trow0[x+5] - f) );
|
||
gxgy[drow++] = ( ((trow1[x+5] + c)*3 + d*10) );
|
||
}
|
||
for(; x < w; ++x) {
|
||
gxgy[drow++] = ( (trow0[x+2] - trow0[x]) );
|
||
gxgy[drow++] = ( ((trow1[x+2] + trow1[x])*3 + trow1[x+1]*10) );
|
||
}
|
||
}
|
||
jsfeat.cache.put_buffer(buf0_node);
|
||
jsfeat.cache.put_buffer(buf1_node);
|
||
},
|
||
|
||
// compute gradient using Sobel kernel [1 2 1] * [-1 0 1]^T
|
||
// dst: [gx,gy,...]
|
||
sobel_derivatives: function(src, dst) {
|
||
var w = src.cols, h = src.rows;
|
||
var dstep = w<<1,x=0,y=0,x1=0,a,b,c,d,e,f;
|
||
var srow0=0,srow1=0,srow2=0,drow=0;
|
||
var trow0,trow1;
|
||
|
||
dst.resize(w, h, 2); // 2 channel output gx, gy
|
||
|
||
var img = src.data, gxgy=dst.data;
|
||
|
||
var buf0_node = jsfeat.cache.get_buffer((w+2)<<2);
|
||
var buf1_node = jsfeat.cache.get_buffer((w+2)<<2);
|
||
|
||
if(src.type&jsfeat.U8_t || src.type&jsfeat.S32_t) {
|
||
trow0 = buf0_node.i32;
|
||
trow1 = buf1_node.i32;
|
||
} else {
|
||
trow0 = buf0_node.f32;
|
||
trow1 = buf1_node.f32;
|
||
}
|
||
|
||
for(; y < h; ++y, srow1+=w) {
|
||
srow0 = ((y > 0 ? y-1 : 1)*w)|0;
|
||
srow2 = ((y < h-1 ? y+1 : h-2)*w)|0;
|
||
drow = (y*dstep)|0;
|
||
// do vertical convolution
|
||
for(x = 0, x1 = 1; x <= w-2; x+=2, x1+=2) {
|
||
a = img[srow0+x], b = img[srow2+x];
|
||
trow0[x1] = ( (a + b) + (img[srow1+x]*2) );
|
||
trow1[x1] = ( b - a );
|
||
//
|
||
a = img[srow0+x+1], b = img[srow2+x+1];
|
||
trow0[x1+1] = ( (a + b) + (img[srow1+x+1]*2) );
|
||
trow1[x1+1] = ( b - a );
|
||
}
|
||
for(; x < w; ++x, ++x1) {
|
||
a = img[srow0+x], b = img[srow2+x];
|
||
trow0[x1] = ( (a + b) + (img[srow1+x]*2) );
|
||
trow1[x1] = ( b - a );
|
||
}
|
||
// make border
|
||
x = (w + 1)|0;
|
||
trow0[0] = trow0[1]; trow0[x] = trow0[w];
|
||
trow1[0] = trow1[1]; trow1[x] = trow1[w];
|
||
// do horizontal convolution, interleave the results and store them
|
||
for(x = 0; x <= w-4; x+=4) {
|
||
a = trow1[x+2], b = trow1[x+1], c = trow1[x+3], d = trow1[x+4],
|
||
e = trow0[x+2], f = trow0[x+3];
|
||
gxgy[drow++] = ( e - trow0[x] );
|
||
gxgy[drow++] = ( a + trow1[x] + b*2 );
|
||
gxgy[drow++] = ( f - trow0[x+1] );
|
||
gxgy[drow++] = ( c + b + a*2 );
|
||
|
||
gxgy[drow++] = ( trow0[x+4] - e );
|
||
gxgy[drow++] = ( d + a + c*2 );
|
||
gxgy[drow++] = ( trow0[x+5] - f );
|
||
gxgy[drow++] = ( trow1[x+5] + c + d*2 );
|
||
}
|
||
for(; x < w; ++x) {
|
||
gxgy[drow++] = ( trow0[x+2] - trow0[x] );
|
||
gxgy[drow++] = ( trow1[x+2] + trow1[x] + trow1[x+1]*2 );
|
||
}
|
||
}
|
||
jsfeat.cache.put_buffer(buf0_node);
|
||
jsfeat.cache.put_buffer(buf1_node);
|
||
},
|
||
|
||
// please note:
|
||
// dst_(type) size should be cols = src.cols+1, rows = src.rows+1
|
||
compute_integral_image: function(src, dst_sum, dst_sqsum, dst_tilted) {
|
||
var w0=src.cols|0,h0=src.rows|0,src_d=src.data;
|
||
var w1=(w0+1)|0;
|
||
var s=0,s2=0,p=0,pup=0,i=0,j=0,v=0,k=0;
|
||
|
||
if(dst_sum && dst_sqsum) {
|
||
// fill first row with zeros
|
||
for(; i < w1; ++i) {
|
||
dst_sum[i] = 0, dst_sqsum[i] = 0;
|
||
}
|
||
p = (w1+1)|0, pup = 1;
|
||
for(i = 0, k = 0; i < h0; ++i, ++p, ++pup) {
|
||
s = s2 = 0;
|
||
for(j = 0; j <= w0-2; j+=2, k+=2, p+=2, pup+=2) {
|
||
v = src_d[k];
|
||
s += v, s2 += v*v;
|
||
dst_sum[p] = dst_sum[pup] + s;
|
||
dst_sqsum[p] = dst_sqsum[pup] + s2;
|
||
|
||
v = src_d[k+1];
|
||
s += v, s2 += v*v;
|
||
dst_sum[p+1] = dst_sum[pup+1] + s;
|
||
dst_sqsum[p+1] = dst_sqsum[pup+1] + s2;
|
||
}
|
||
for(; j < w0; ++j, ++k, ++p, ++pup) {
|
||
v = src_d[k];
|
||
s += v, s2 += v*v;
|
||
dst_sum[p] = dst_sum[pup] + s;
|
||
dst_sqsum[p] = dst_sqsum[pup] + s2;
|
||
}
|
||
}
|
||
} else if(dst_sum) {
|
||
// fill first row with zeros
|
||
for(; i < w1; ++i) {
|
||
dst_sum[i] = 0;
|
||
}
|
||
p = (w1+1)|0, pup = 1;
|
||
for(i = 0, k = 0; i < h0; ++i, ++p, ++pup) {
|
||
s = 0;
|
||
for(j = 0; j <= w0-2; j+=2, k+=2, p+=2, pup+=2) {
|
||
s += src_d[k];
|
||
dst_sum[p] = dst_sum[pup] + s;
|
||
s += src_d[k+1];
|
||
dst_sum[p+1] = dst_sum[pup+1] + s;
|
||
}
|
||
for(; j < w0; ++j, ++k, ++p, ++pup) {
|
||
s += src_d[k];
|
||
dst_sum[p] = dst_sum[pup] + s;
|
||
}
|
||
}
|
||
} else if(dst_sqsum) {
|
||
// fill first row with zeros
|
||
for(; i < w1; ++i) {
|
||
dst_sqsum[i] = 0;
|
||
}
|
||
p = (w1+1)|0, pup = 1;
|
||
for(i = 0, k = 0; i < h0; ++i, ++p, ++pup) {
|
||
s2 = 0;
|
||
for(j = 0; j <= w0-2; j+=2, k+=2, p+=2, pup+=2) {
|
||
v = src_d[k];
|
||
s2 += v*v;
|
||
dst_sqsum[p] = dst_sqsum[pup] + s2;
|
||
v = src_d[k+1];
|
||
s2 += v*v;
|
||
dst_sqsum[p+1] = dst_sqsum[pup+1] + s2;
|
||
}
|
||
for(; j < w0; ++j, ++k, ++p, ++pup) {
|
||
v = src_d[k];
|
||
s2 += v*v;
|
||
dst_sqsum[p] = dst_sqsum[pup] + s2;
|
||
}
|
||
}
|
||
}
|
||
|
||
if(dst_tilted) {
|
||
// fill first row with zeros
|
||
for(i = 0; i < w1; ++i) {
|
||
dst_tilted[i] = 0;
|
||
}
|
||
// diagonal
|
||
p = (w1+1)|0, pup = 0;
|
||
for(i = 0, k = 0; i < h0; ++i, ++p, ++pup) {
|
||
for(j = 0; j <= w0-2; j+=2, k+=2, p+=2, pup+=2) {
|
||
dst_tilted[p] = src_d[k] + dst_tilted[pup];
|
||
dst_tilted[p+1] = src_d[k+1] + dst_tilted[pup+1];
|
||
}
|
||
for(; j < w0; ++j, ++k, ++p, ++pup) {
|
||
dst_tilted[p] = src_d[k] + dst_tilted[pup];
|
||
}
|
||
}
|
||
// diagonal
|
||
p = (w1+w0)|0, pup = w0;
|
||
for(i = 0; i < h0; ++i, p+=w1, pup+=w1) {
|
||
dst_tilted[p] += dst_tilted[pup];
|
||
}
|
||
|
||
for(j = w0-1; j > 0; --j) {
|
||
p = j+h0*w1, pup=p-w1;
|
||
for(i = h0; i > 0; --i, p-=w1, pup-=w1) {
|
||
dst_tilted[p] += dst_tilted[pup] + dst_tilted[pup+1];
|
||
}
|
||
}
|
||
}
|
||
},
|
||
equalize_histogram: function(src, dst) {
|
||
var w=src.cols,h=src.rows,src_d=src.data;
|
||
|
||
dst.resize(w, h, src.channel);
|
||
|
||
var dst_d=dst.data,size=w*h;
|
||
var i=0,prev=0,hist0,norm;
|
||
|
||
var hist0_node = jsfeat.cache.get_buffer(256<<2);
|
||
hist0 = hist0_node.i32;
|
||
for(; i < 256; ++i) hist0[i] = 0;
|
||
for (i = 0; i < size; ++i) {
|
||
++hist0[src_d[i]];
|
||
}
|
||
|
||
prev = hist0[0];
|
||
for (i = 1; i < 256; ++i) {
|
||
prev = hist0[i] += prev;
|
||
}
|
||
|
||
norm = 255 / size;
|
||
for (i = 0; i < size; ++i) {
|
||
dst_d[i] = (hist0[src_d[i]] * norm + 0.5)|0;
|
||
}
|
||
jsfeat.cache.put_buffer(hist0_node);
|
||
},
|
||
|
||
canny: function(src, dst, low_thresh, high_thresh) {
|
||
var w=src.cols,h=src.rows,src_d=src.data;
|
||
|
||
dst.resize(w, h, src.channel);
|
||
|
||
var dst_d=dst.data;
|
||
var i=0,j=0,grad=0,w2=w<<1,_grad=0,suppress=0,f=0,x=0,y=0,s=0;
|
||
var tg22x=0,tg67x=0;
|
||
|
||
// cache buffers
|
||
var dxdy_node = jsfeat.cache.get_buffer((h * w2)<<2);
|
||
var buf_node = jsfeat.cache.get_buffer((3 * (w + 2))<<2);
|
||
var map_node = jsfeat.cache.get_buffer(((h+2) * (w + 2))<<2);
|
||
var stack_node = jsfeat.cache.get_buffer((h * w)<<2);
|
||
|
||
|
||
var buf = buf_node.i32;
|
||
var map = map_node.i32;
|
||
var stack = stack_node.i32;
|
||
var dxdy = dxdy_node.i32;
|
||
var dxdy_m = new jsfeat.matrix_t(w, h, jsfeat.S32C2_t, dxdy_node.data);
|
||
var row0=1,row1=(w+2+1)|0,row2=(2*(w+2)+1)|0,map_w=(w+2)|0,map_i=(map_w+1)|0,stack_i=0;
|
||
|
||
this.sobel_derivatives(src, dxdy_m);
|
||
|
||
if(low_thresh > high_thresh) {
|
||
i = low_thresh;
|
||
low_thresh = high_thresh;
|
||
high_thresh = i;
|
||
}
|
||
|
||
i = (3 * (w + 2))|0;
|
||
while(--i>=0) {
|
||
buf[i] = 0;
|
||
}
|
||
|
||
i = ((h+2) * (w + 2))|0;
|
||
while(--i>=0) {
|
||
map[i] = 0;
|
||
}
|
||
|
||
for (; j < w; ++j, grad+=2) {
|
||
//buf[row1+j] = Math.abs(dxdy[grad]) + Math.abs(dxdy[grad+1]);
|
||
x = dxdy[grad], y = dxdy[grad+1];
|
||
//buf[row1+j] = x*x + y*y;
|
||
buf[row1+j] = ((x ^ (x >> 31)) - (x >> 31)) + ((y ^ (y >> 31)) - (y >> 31));
|
||
}
|
||
|
||
for(i=1; i <= h; ++i, grad+=w2) {
|
||
if(i == h) {
|
||
j = row2+w;
|
||
while(--j>=row2) {
|
||
buf[j] = 0;
|
||
}
|
||
} else {
|
||
for (j = 0; j < w; j++) {
|
||
//buf[row2+j] = Math.abs(dxdy[grad+(j<<1)]) + Math.abs(dxdy[grad+(j<<1)+1]);
|
||
x = dxdy[grad+(j<<1)], y = dxdy[grad+(j<<1)+1];
|
||
//buf[row2+j] = x*x + y*y;
|
||
buf[row2+j] = ((x ^ (x >> 31)) - (x >> 31)) + ((y ^ (y >> 31)) - (y >> 31));
|
||
}
|
||
}
|
||
_grad = (grad - w2)|0;
|
||
map[map_i-1] = 0;
|
||
suppress = 0;
|
||
for(j = 0; j < w; ++j, _grad+=2) {
|
||
f = buf[row1+j];
|
||
if (f > low_thresh) {
|
||
x = dxdy[_grad];
|
||
y = dxdy[_grad+1];
|
||
s = x ^ y;
|
||
// seems ot be faster than Math.abs
|
||
x = ((x ^ (x >> 31)) - (x >> 31))|0;
|
||
y = ((y ^ (y >> 31)) - (y >> 31))|0;
|
||
//x * tan(22.5) x * tan(67.5) == 2 * x + x * tan(22.5)
|
||
tg22x = x * 13573;
|
||
tg67x = tg22x + ((x + x) << 15);
|
||
y <<= 15;
|
||
if (y < tg22x) {
|
||
if (f > buf[row1+j-1] && f >= buf[row1+j+1]) {
|
||
if (f > high_thresh && !suppress && map[map_i+j-map_w] != 2) {
|
||
map[map_i+j] = 2;
|
||
suppress = 1;
|
||
stack[stack_i++] = map_i + j;
|
||
} else {
|
||
map[map_i+j] = 1;
|
||
}
|
||
continue;
|
||
}
|
||
} else if (y > tg67x) {
|
||
if (f > buf[row0+j] && f >= buf[row2+j]) {
|
||
if (f > high_thresh && !suppress && map[map_i+j-map_w] != 2) {
|
||
map[map_i+j] = 2;
|
||
suppress = 1;
|
||
stack[stack_i++] = map_i + j;
|
||
} else {
|
||
map[map_i+j] = 1;
|
||
}
|
||
continue;
|
||
}
|
||
} else {
|
||
s = s < 0 ? -1 : 1;
|
||
if (f > buf[row0+j-s] && f > buf[row2+j+s]) {
|
||
if (f > high_thresh && !suppress && map[map_i+j-map_w] != 2) {
|
||
map[map_i+j] = 2;
|
||
suppress = 1;
|
||
stack[stack_i++] = map_i + j;
|
||
} else {
|
||
map[map_i+j] = 1;
|
||
}
|
||
continue;
|
||
}
|
||
}
|
||
}
|
||
map[map_i+j] = 0;
|
||
suppress = 0;
|
||
}
|
||
map[map_i+w] = 0;
|
||
map_i += map_w;
|
||
j = row0;
|
||
row0 = row1;
|
||
row1 = row2;
|
||
row2 = j;
|
||
}
|
||
|
||
j = map_i - map_w - 1;
|
||
for(i = 0; i < map_w; ++i, ++j) {
|
||
map[j] = 0;
|
||
}
|
||
// path following
|
||
while(stack_i > 0) {
|
||
map_i = stack[--stack_i];
|
||
map_i -= map_w+1;
|
||
if(map[map_i] == 1) map[map_i] = 2, stack[stack_i++] = map_i;
|
||
map_i += 1;
|
||
if(map[map_i] == 1) map[map_i] = 2, stack[stack_i++] = map_i;
|
||
map_i += 1;
|
||
if(map[map_i] == 1) map[map_i] = 2, stack[stack_i++] = map_i;
|
||
map_i += map_w;
|
||
if(map[map_i] == 1) map[map_i] = 2, stack[stack_i++] = map_i;
|
||
map_i -= 2;
|
||
if(map[map_i] == 1) map[map_i] = 2, stack[stack_i++] = map_i;
|
||
map_i += map_w;
|
||
if(map[map_i] == 1) map[map_i] = 2, stack[stack_i++] = map_i;
|
||
map_i += 1;
|
||
if(map[map_i] == 1) map[map_i] = 2, stack[stack_i++] = map_i;
|
||
map_i += 1;
|
||
if(map[map_i] == 1) map[map_i] = 2, stack[stack_i++] = map_i;
|
||
}
|
||
|
||
map_i = map_w + 1;
|
||
row0 = 0;
|
||
for(i = 0; i < h; ++i, map_i+=map_w) {
|
||
for(j = 0; j < w; ++j) {
|
||
dst_d[row0++] = (map[map_i+j] == 2) * 0xff;
|
||
}
|
||
}
|
||
|
||
// free buffers
|
||
jsfeat.cache.put_buffer(dxdy_node);
|
||
jsfeat.cache.put_buffer(buf_node);
|
||
jsfeat.cache.put_buffer(map_node);
|
||
jsfeat.cache.put_buffer(stack_node);
|
||
},
|
||
// transform is 3x3 matrix_t
|
||
warp_perspective: function(src, dst, transform, fill_value) {
|
||
if (typeof fill_value === "undefined") { fill_value = 0; }
|
||
var src_width=src.cols|0, src_height=src.rows|0, dst_width=dst.cols|0, dst_height=dst.rows|0;
|
||
var src_d=src.data, dst_d=dst.data;
|
||
var x=0,y=0,off=0,ixs=0,iys=0,xs=0.0,ys=0.0,xs0=0.0,ys0=0.0,ws=0.0,sc=0.0,a=0.0,b=0.0,p0=0.0,p1=0.0;
|
||
var td=transform.data;
|
||
var m00=td[0],m01=td[1],m02=td[2],
|
||
m10=td[3],m11=td[4],m12=td[5],
|
||
m20=td[6],m21=td[7],m22=td[8];
|
||
|
||
for(var dptr = 0; y < dst_height; ++y) {
|
||
xs0 = m01 * y + m02,
|
||
ys0 = m11 * y + m12,
|
||
ws = m21 * y + m22;
|
||
for(x = 0; x < dst_width; ++x, ++dptr, xs0+=m00, ys0+=m10, ws+=m20) {
|
||
sc = 1.0 / ws;
|
||
xs = xs0 * sc, ys = ys0 * sc;
|
||
ixs = xs | 0, iys = ys | 0;
|
||
|
||
if(xs > 0 && ys > 0 && ixs < (src_width - 1) && iys < (src_height - 1)) {
|
||
a = Math.max(xs - ixs, 0.0);
|
||
b = Math.max(ys - iys, 0.0);
|
||
off = (src_width*iys + ixs)|0;
|
||
|
||
p0 = src_d[off] + a * (src_d[off+1] - src_d[off]);
|
||
p1 = src_d[off+src_width] + a * (src_d[off+src_width+1] - src_d[off+src_width]);
|
||
|
||
dst_d[dptr] = p0 + b * (p1 - p0);
|
||
}
|
||
else dst_d[dptr] = fill_value;
|
||
}
|
||
}
|
||
},
|
||
// transform is 3x3 or 2x3 matrix_t only first 6 values referenced
|
||
warp_affine: function(src, dst, transform, fill_value) {
|
||
if (typeof fill_value === "undefined") { fill_value = 0; }
|
||
var src_width=src.cols, src_height=src.rows, dst_width=dst.cols, dst_height=dst.rows;
|
||
var src_d=src.data, dst_d=dst.data;
|
||
var x=0,y=0,off=0,ixs=0,iys=0,xs=0.0,ys=0.0,a=0.0,b=0.0,p0=0.0,p1=0.0;
|
||
var td=transform.data;
|
||
var m00=td[0],m01=td[1],m02=td[2],
|
||
m10=td[3],m11=td[4],m12=td[5];
|
||
|
||
for(var dptr = 0; y < dst_height; ++y) {
|
||
xs = m01 * y + m02;
|
||
ys = m11 * y + m12;
|
||
for(x = 0; x < dst_width; ++x, ++dptr, xs+=m00, ys+=m10) {
|
||
ixs = xs | 0; iys = ys | 0;
|
||
|
||
if(ixs >= 0 && iys >= 0 && ixs < (src_width - 1) && iys < (src_height - 1)) {
|
||
a = xs - ixs;
|
||
b = ys - iys;
|
||
off = src_width*iys + ixs;
|
||
|
||
p0 = src_d[off] + a * (src_d[off+1] - src_d[off]);
|
||
p1 = src_d[off+src_width] + a * (src_d[off+src_width+1] - src_d[off+src_width]);
|
||
|
||
dst_d[dptr] = p0 + b * (p1 - p0);
|
||
}
|
||
else dst_d[dptr] = fill_value;
|
||
}
|
||
}
|
||
},
|
||
|
||
// Basic RGB Skin detection filter
|
||
// from http://popscan.blogspot.fr/2012/08/skin-detection-in-digital-images.html
|
||
skindetector: function(src,dst) {
|
||
var r,g,b,j;
|
||
var i = src.width*src.height;
|
||
while(i--){
|
||
j = i*4;
|
||
r = src.data[j];
|
||
g = src.data[j+1];
|
||
b = src.data[j+2];
|
||
if((r>95)&&(g>40)&&(b>20)
|
||
&&(r>g)&&(r>b)
|
||
&&(r-Math.min(g,b)>15)
|
||
&&(Math.abs(r-g)>15)){
|
||
dst[i] = 255;
|
||
} else {
|
||
dst[i] = 0;
|
||
}
|
||
}
|
||
}
|
||
};
|
||
})();
|
||
|
||
global.imgproc = imgproc;
|
||
|
||
})(jsfeat);
|
||
/**
|
||
* @author Eugene Zatepyakin / http://inspirit.ru/
|
||
*
|
||
* This is FAST corner detector, contributed to OpenCV by the author, Edward Rosten.
|
||
*/
|
||
|
||
/*
|
||
The references are:
|
||
* Machine learning for high-speed corner detection,
|
||
E. Rosten and T. Drummond, ECCV 2006
|
||
* Faster and better: A machine learning approach to corner detection
|
||
E. Rosten, R. Porter and T. Drummond, PAMI, 2009
|
||
*/
|
||
|
||
(function(global) {
|
||
"use strict";
|
||
//
|
||
var fast_corners = (function() {
|
||
|
||
var offsets16 = new Int32Array([0, 3, 1, 3, 2, 2, 3, 1, 3, 0, 3, -1, 2, -2, 1, -3, 0, -3, -1, -3, -2, -2, -3, -1, -3, 0, -3, 1, -2, 2, -1, 3]);
|
||
|
||
var threshold_tab = new Uint8Array(512);
|
||
var pixel_off = new Int32Array(25);
|
||
var score_diff = new Int32Array(25);
|
||
|
||
// private functions
|
||
var _cmp_offsets = function(pixel, step, pattern_size) {
|
||
var k = 0;
|
||
var offsets = offsets16;
|
||
for( ; k < pattern_size; ++k ) {
|
||
pixel[k] = offsets[k<<1] + offsets[(k<<1)+1] * step;
|
||
}
|
||
for( ; k < 25; ++k ) {
|
||
pixel[k] = pixel[k - pattern_size];
|
||
}
|
||
},
|
||
|
||
_cmp_score_16 = function(src, off, pixel, d, threshold) {
|
||
var N = 25, k = 0, v = src[off];
|
||
var a0 = threshold,a=0,b0=0,b=0;
|
||
|
||
for( ; k < N; ++k ) {
|
||
d[k] = v - src[off+pixel[k]];
|
||
}
|
||
|
||
for( k = 0; k < 16; k += 2 ) {
|
||
a = Math.min(d[k+1], d[k+2]);
|
||
a = Math.min(a, d[k+3]);
|
||
|
||
if( a <= a0 ) continue;
|
||
|
||
a = Math.min(a, d[k+4]);
|
||
a = Math.min(a, d[k+5]);
|
||
a = Math.min(a, d[k+6]);
|
||
a = Math.min(a, d[k+7]);
|
||
a = Math.min(a, d[k+8]);
|
||
a0 = Math.max(a0, Math.min(a, d[k]));
|
||
a0 = Math.max(a0, Math.min(a, d[k+9]));
|
||
}
|
||
|
||
b0 = -a0;
|
||
for( k = 0; k < 16; k += 2 ) {
|
||
b = Math.max(d[k+1], d[k+2]);
|
||
b = Math.max(b, d[k+3]);
|
||
b = Math.max(b, d[k+4]);
|
||
b = Math.max(b, d[k+5]);
|
||
|
||
if( b >= b0 ) continue;
|
||
b = Math.max(b, d[k+6]);
|
||
b = Math.max(b, d[k+7]);
|
||
b = Math.max(b, d[k+8]);
|
||
b0 = Math.min(b0, Math.max(b, d[k]));
|
||
b0 = Math.min(b0, Math.max(b, d[k+9]));
|
||
}
|
||
|
||
return -b0-1;
|
||
};
|
||
|
||
var _threshold = 20;
|
||
|
||
return {
|
||
set_threshold: function(threshold) {
|
||
_threshold = Math.min(Math.max(threshold, 0), 255);
|
||
for (var i = -255; i <= 255; ++i) {
|
||
threshold_tab[(i + 255)] = (i < -_threshold ? 1 : (i > _threshold ? 2 : 0));
|
||
}
|
||
return _threshold;
|
||
},
|
||
|
||
detect: function(src, corners, border) {
|
||
if (typeof border === "undefined") { border = 3; }
|
||
|
||
var K = 8, N = 25;
|
||
var img = src.data, w = src.cols, h = src.rows;
|
||
var i=0, j=0, k=0, vt=0, x=0, m3=0;
|
||
var buf_node = jsfeat.cache.get_buffer(3 * w);
|
||
var cpbuf_node = jsfeat.cache.get_buffer(((w+1)*3)<<2);
|
||
var buf = buf_node.u8;
|
||
var cpbuf = cpbuf_node.i32;
|
||
var pixel = pixel_off;
|
||
var sd = score_diff;
|
||
var sy = Math.max(3, border);
|
||
var ey = Math.min((h-2), (h-border));
|
||
var sx = Math.max(3, border);
|
||
var ex = Math.min((w - 3), (w - border));
|
||
var _count = 0, corners_cnt = 0, pt;
|
||
var score_func = _cmp_score_16;
|
||
var thresh_tab = threshold_tab;
|
||
var threshold = _threshold;
|
||
|
||
var v=0,tab=0,d=0,ncorners=0,cornerpos=0,curr=0,ptr=0,prev=0,pprev=0;
|
||
var jp1=0,jm1=0,score=0;
|
||
|
||
_cmp_offsets(pixel, w, 16);
|
||
|
||
// local vars are faster?
|
||
var pixel0 = pixel[0];
|
||
var pixel1 = pixel[1];
|
||
var pixel2 = pixel[2];
|
||
var pixel3 = pixel[3];
|
||
var pixel4 = pixel[4];
|
||
var pixel5 = pixel[5];
|
||
var pixel6 = pixel[6];
|
||
var pixel7 = pixel[7];
|
||
var pixel8 = pixel[8];
|
||
var pixel9 = pixel[9];
|
||
var pixel10 = pixel[10];
|
||
var pixel11 = pixel[11];
|
||
var pixel12 = pixel[12];
|
||
var pixel13 = pixel[13];
|
||
var pixel14 = pixel[14];
|
||
var pixel15 = pixel[15];
|
||
|
||
for(i = 0; i < w*3; ++i) {
|
||
buf[i] = 0;
|
||
}
|
||
|
||
for(i = sy; i < ey; ++i) {
|
||
ptr = ((i * w) + sx)|0;
|
||
m3 = (i - 3)%3;
|
||
curr = (m3*w)|0;
|
||
cornerpos = (m3*(w+1))|0;
|
||
for (j = 0; j < w; ++j) buf[curr+j] = 0;
|
||
ncorners = 0;
|
||
|
||
if( i < (ey - 1) ) {
|
||
j = sx;
|
||
|
||
for( ; j < ex; ++j, ++ptr ) {
|
||
v = img[ptr];
|
||
tab = ( - v + 255 );
|
||
d = ( thresh_tab[tab+img[ptr+pixel0]] | thresh_tab[tab+img[ptr+pixel8]] );
|
||
|
||
if( d == 0 ) {
|
||
continue;
|
||
}
|
||
|
||
d &= ( thresh_tab[tab+img[ptr+pixel2]] | thresh_tab[tab+img[ptr+pixel10]] );
|
||
d &= ( thresh_tab[tab+img[ptr+pixel4]] | thresh_tab[tab+img[ptr+pixel12]] );
|
||
d &= ( thresh_tab[tab+img[ptr+pixel6]] | thresh_tab[tab+img[ptr+pixel14]] );
|
||
|
||
if( d == 0 ) {
|
||
continue;
|
||
}
|
||
|
||
d &= ( thresh_tab[tab+img[ptr+pixel1]] | thresh_tab[tab+img[ptr+pixel9]] );
|
||
d &= ( thresh_tab[tab+img[ptr+pixel3]] | thresh_tab[tab+img[ptr+pixel11]] );
|
||
d &= ( thresh_tab[tab+img[ptr+pixel5]] | thresh_tab[tab+img[ptr+pixel13]] );
|
||
d &= ( thresh_tab[tab+img[ptr+pixel7]] | thresh_tab[tab+img[ptr+pixel15]] );
|
||
|
||
if( d & 1 ) {
|
||
vt = (v - threshold);
|
||
_count = 0;
|
||
|
||
for( k = 0; k < N; ++k ) {
|
||
x = img[(ptr+pixel[k])];
|
||
if(x < vt) {
|
||
++_count;
|
||
if( _count > K ) {
|
||
++ncorners;
|
||
cpbuf[cornerpos+ncorners] = j;
|
||
buf[curr+j] = score_func(img, ptr, pixel, sd, threshold);
|
||
break;
|
||
}
|
||
}
|
||
else {
|
||
_count = 0;
|
||
}
|
||
}
|
||
}
|
||
|
||
if( d & 2 ) {
|
||
vt = (v + threshold);
|
||
_count = 0;
|
||
|
||
for( k = 0; k < N; ++k ) {
|
||
x = img[(ptr+pixel[k])];
|
||
if(x > vt) {
|
||
++_count;
|
||
if( _count > K ) {
|
||
++ncorners;
|
||
cpbuf[cornerpos+ncorners] = j;
|
||
buf[curr+j] = score_func(img, ptr, pixel, sd, threshold);
|
||
break;
|
||
}
|
||
}
|
||
else {
|
||
_count = 0;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
cpbuf[cornerpos+w] = ncorners;
|
||
|
||
if ( i == sy ) {
|
||
continue;
|
||
}
|
||
|
||
m3 = (i - 4 + 3)%3;
|
||
prev = (m3*w)|0;
|
||
cornerpos = (m3*(w+1))|0;
|
||
m3 = (i - 5 + 3)%3;
|
||
pprev = (m3*w)|0;
|
||
|
||
ncorners = cpbuf[cornerpos+w];
|
||
|
||
for( k = 0; k < ncorners; ++k ) {
|
||
j = cpbuf[cornerpos+k];
|
||
jp1 = (j+1)|0;
|
||
jm1 = (j-1)|0;
|
||
score = buf[prev+j];
|
||
if( (score > buf[prev+jp1] && score > buf[prev+jm1] &&
|
||
score > buf[pprev+jm1] && score > buf[pprev+j] && score > buf[pprev+jp1] &&
|
||
score > buf[curr+jm1] && score > buf[curr+j] && score > buf[curr+jp1]) ) {
|
||
// save corner
|
||
pt = corners[corners_cnt];
|
||
pt.x = j, pt.y = (i-1), pt.score = score;
|
||
corners_cnt++;
|
||
}
|
||
}
|
||
} // y loop
|
||
jsfeat.cache.put_buffer(buf_node);
|
||
jsfeat.cache.put_buffer(cpbuf_node);
|
||
return corners_cnt;
|
||
}
|
||
};
|
||
})();
|
||
|
||
global.fast_corners = fast_corners;
|
||
fast_corners.set_threshold(20); // set default
|
||
|
||
})(jsfeat);
|
||
/**
|
||
* @author Eugene Zatepyakin / http://inspirit.ru/
|
||
*
|
||
* Copyright 2007 Computer Vision Lab,
|
||
* Ecole Polytechnique Federale de Lausanne (EPFL), Switzerland.
|
||
* @author Vincent Lepetit (http://cvlab.epfl.ch/~lepetit)
|
||
*/
|
||
|
||
(function(global) {
|
||
"use strict";
|
||
//
|
||
|
||
var yape06 = (function() {
|
||
|
||
var compute_laplacian = function(src, dst, w, h, Dxx, Dyy, sx,sy, ex,ey) {
|
||
var y=0,x=0,yrow=(sy*w+sx)|0,row=yrow;
|
||
|
||
for(y = sy; y < ey; ++y, yrow+=w, row = yrow) {
|
||
for(x = sx; x < ex; ++x, ++row) {
|
||
dst[row] = -4 * src[row] + src[row+Dxx] + src[row-Dxx] + src[row+Dyy] + src[row-Dyy];
|
||
}
|
||
}
|
||
};
|
||
|
||
var hessian_min_eigen_value = function(src, off, tr, Dxx, Dyy, Dxy, Dyx) {
|
||
var Ixx = -2 * src[off] + src[off + Dxx] + src[off - Dxx];
|
||
var Iyy = -2 * src[off] + src[off + Dyy] + src[off - Dyy];
|
||
var Ixy = src[off + Dxy] + src[off - Dxy] - src[off + Dyx] - src[off - Dyx];
|
||
var sqrt_delta = ( Math.sqrt(((Ixx - Iyy) * (Ixx - Iyy) + 4 * Ixy * Ixy) ) )|0;
|
||
|
||
return Math.min(Math.abs(tr - sqrt_delta), Math.abs(-(tr + sqrt_delta)));
|
||
};
|
||
|
||
return {
|
||
|
||
laplacian_threshold: 30,
|
||
min_eigen_value_threshold: 25,
|
||
|
||
detect: function(src, points, border) {
|
||
if (typeof border === "undefined") { border = 5; }
|
||
var x=0,y=0;
|
||
var w=src.cols, h=src.rows, srd_d=src.data;
|
||
var Dxx = 5, Dyy = (5 * w)|0;
|
||
var Dxy = (3 + 3 * w)|0, Dyx = (3 - 3 * w)|0;
|
||
var lap_buf = jsfeat.cache.get_buffer((w*h)<<2);
|
||
var laplacian = lap_buf.i32;
|
||
var lv=0, row=0,rowx=0,min_eigen_value=0,pt;
|
||
var number_of_points = 0;
|
||
var lap_thresh = this.laplacian_threshold;
|
||
var eigen_thresh = this.min_eigen_value_threshold;
|
||
|
||
var sx = Math.max(5, border)|0;
|
||
var sy = Math.max(3, border)|0;
|
||
var ex = Math.min(w-5, w-border)|0;
|
||
var ey = Math.min(h-3, h-border)|0;
|
||
|
||
x = w*h;
|
||
while(--x>=0) {laplacian[x]=0;}
|
||
compute_laplacian(srd_d, laplacian, w, h, Dxx, Dyy, sx,sy, ex,ey);
|
||
|
||
row = (sy*w+sx)|0;
|
||
for(y = sy; y < ey; ++y, row += w) {
|
||
for(x = sx, rowx=row; x < ex; ++x, ++rowx) {
|
||
|
||
lv = laplacian[rowx];
|
||
if ((lv < -lap_thresh &&
|
||
lv < laplacian[rowx - 1] && lv < laplacian[rowx + 1] &&
|
||
lv < laplacian[rowx - w] && lv < laplacian[rowx + w] &&
|
||
lv < laplacian[rowx - w - 1] && lv < laplacian[rowx + w - 1] &&
|
||
lv < laplacian[rowx - w + 1] && lv < laplacian[rowx + w + 1])
|
||
||
|
||
(lv > lap_thresh &&
|
||
lv > laplacian[rowx - 1] && lv > laplacian[rowx + 1] &&
|
||
lv > laplacian[rowx - w] && lv > laplacian[rowx + w] &&
|
||
lv > laplacian[rowx - w - 1] && lv > laplacian[rowx + w - 1] &&
|
||
lv > laplacian[rowx - w + 1] && lv > laplacian[rowx + w + 1])
|
||
) {
|
||
|
||
min_eigen_value = hessian_min_eigen_value(srd_d, rowx, lv, Dxx, Dyy, Dxy, Dyx);
|
||
if (min_eigen_value > eigen_thresh) {
|
||
pt = points[number_of_points];
|
||
pt.x = x, pt.y = y, pt.score = min_eigen_value;
|
||
++number_of_points;
|
||
++x, ++rowx; // skip next pixel since this is maxima in 3x3
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
jsfeat.cache.put_buffer(lap_buf);
|
||
|
||
return number_of_points;
|
||
}
|
||
|
||
};
|
||
})();
|
||
|
||
global.yape06 = yape06;
|
||
|
||
})(jsfeat);
|
||
/**
|
||
* @author Eugene Zatepyakin / http://inspirit.ru/
|
||
*
|
||
* Copyright 2007 Computer Vision Lab,
|
||
* Ecole Polytechnique Federale de Lausanne (EPFL), Switzerland.
|
||
*/
|
||
|
||
(function(global) {
|
||
"use strict";
|
||
//
|
||
|
||
var yape = (function() {
|
||
|
||
var precompute_directions = function(step, dirs, R) {
|
||
var i = 0;
|
||
var x, y;
|
||
|
||
x = R;
|
||
for(y = 0; y < x; y++, i++)
|
||
{
|
||
x = (Math.sqrt((R * R - y * y)) + 0.5)|0;
|
||
dirs[i] = (x + step * y);
|
||
}
|
||
for(x-- ; x < y && x >= 0; x--, i++)
|
||
{
|
||
y = (Math.sqrt((R * R - x * x)) + 0.5)|0;
|
||
dirs[i] = (x + step * y);
|
||
}
|
||
for( ; -x < y; x--, i++)
|
||
{
|
||
y = (Math.sqrt((R * R - x * x)) + 0.5)|0;
|
||
dirs[i] = (x + step * y);
|
||
}
|
||
for(y-- ; y >= 0; y--, i++)
|
||
{
|
||
x = (-Math.sqrt((R * R - y * y)) - 0.5)|0;
|
||
dirs[i] = (x + step * y);
|
||
}
|
||
for(; y > x; y--, i++)
|
||
{
|
||
x = (-Math.sqrt((R * R - y * y)) - 0.5)|0;
|
||
dirs[i] = (x + step * y);
|
||
}
|
||
for(x++ ; x <= 0; x++, i++)
|
||
{
|
||
y = (-Math.sqrt((R * R - x * x)) - 0.5)|0;
|
||
dirs[i] = (x + step * y);
|
||
}
|
||
for( ; x < -y; x++, i++)
|
||
{
|
||
y = (-Math.sqrt((R * R - x * x)) - 0.5)|0;
|
||
dirs[i] = (x + step * y);
|
||
}
|
||
for(y++ ; y < 0; y++, i++)
|
||
{
|
||
x = (Math.sqrt((R * R - y * y)) + 0.5)|0;
|
||
dirs[i] = (x + step * y);
|
||
}
|
||
|
||
dirs[i] = dirs[0];
|
||
dirs[i + 1] = dirs[1];
|
||
return i;
|
||
};
|
||
|
||
var third_check = function (Sb, off, step) {
|
||
var n = 0;
|
||
if(Sb[off+1] != 0) n++;
|
||
if(Sb[off-1] != 0) n++;
|
||
if(Sb[off+step] != 0) n++;
|
||
if(Sb[off+step+1] != 0) n++;
|
||
if(Sb[off+step-1] != 0) n++;
|
||
if(Sb[off-step] != 0) n++;
|
||
if(Sb[off-step+1] != 0) n++;
|
||
if(Sb[off-step-1] != 0) n++;
|
||
|
||
return n;
|
||
};
|
||
|
||
var is_local_maxima = function(p, off, v, step, neighborhood) {
|
||
var x, y;
|
||
|
||
if (v > 0) {
|
||
off -= step*neighborhood;
|
||
for (y= -neighborhood; y<=neighborhood; ++y) {
|
||
for (x= -neighborhood; x<=neighborhood; ++x) {
|
||
if (p[off+x] > v) return false;
|
||
}
|
||
off += step;
|
||
}
|
||
} else {
|
||
off -= step*neighborhood;
|
||
for (y= -neighborhood; y<=neighborhood; ++y) {
|
||
for (x= -neighborhood; x<=neighborhood; ++x) {
|
||
if (p[off+x] < v) return false;
|
||
}
|
||
off += step;
|
||
}
|
||
}
|
||
return true;
|
||
};
|
||
|
||
var perform_one_point = function(I, x, Scores, Im, Ip, dirs, opposite, dirs_nb) {
|
||
var score = 0;
|
||
var a = 0, b = (opposite - 1)|0;
|
||
var A=0, B0=0, B1=0, B2=0;
|
||
var state=0;
|
||
|
||
// WE KNOW THAT NOT(A ~ I0 & B1 ~ I0):
|
||
A = I[x+dirs[a]];
|
||
if ((A <= Ip)) {
|
||
if ((A >= Im)) { // A ~ I0
|
||
B0 = I[x+dirs[b]];
|
||
if ((B0 <= Ip)) {
|
||
if ((B0 >= Im)) { Scores[x] = 0; return; }
|
||
else {
|
||
b++; B1 = I[x+dirs[b]];
|
||
if ((B1 > Ip)) {
|
||
b++; B2 = I[x+dirs[b]];
|
||
if ((B2 > Ip)) state = 3;
|
||
else if ((B2 < Im)) state = 6;
|
||
else { Scores[x] = 0; return; } // A ~ I0, B2 ~ I0
|
||
}
|
||
else/* if ((B1 < Im))*/ {
|
||
b++; B2 = I[x+dirs[b]];
|
||
if ((B2 > Ip)) state = 7;
|
||
else if ((B2 < Im)) state = 2;
|
||
else { Scores[x] = 0; return; } // A ~ I0, B2 ~ I0
|
||
}
|
||
//else { Scores[x] = 0; return; } // A ~ I0, B1 ~ I0
|
||
}
|
||
}
|
||
else { // B0 < I0
|
||
b++; B1 = I[x+dirs[b]];
|
||
if ((B1 > Ip)) {
|
||
b++; B2 = I[x+dirs[b]];
|
||
if ((B2 > Ip)) state = 3;
|
||
else if ((B2 < Im)) state = 6;
|
||
else { Scores[x] = 0; return; } // A ~ I0, B2 ~ I0
|
||
}
|
||
else if ((B1 < Im)) {
|
||
b++; B2 = I[x+dirs[b]];
|
||
if ((B2 > Ip)) state = 7;
|
||
else if ((B2 < Im)) state = 2;
|
||
else { Scores[x] = 0; return; } // A ~ I0, B2 ~ I0
|
||
}
|
||
else { Scores[x] = 0; return; } // A ~ I0, B1 ~ I0
|
||
}
|
||
}
|
||
else { // A > I0
|
||
B0 = I[x+dirs[b]];
|
||
if ((B0 > Ip)) { Scores[x] = 0; return; }
|
||
b++; B1 = I[x+dirs[b]];
|
||
if ((B1 > Ip)) { Scores[x] = 0; return; }
|
||
b++; B2 = I[x+dirs[b]];
|
||
if ((B2 > Ip)) { Scores[x] = 0; return; }
|
||
state = 1;
|
||
}
|
||
}
|
||
else // A < I0
|
||
{
|
||
B0 = I[x+dirs[b]];
|
||
if ((B0 < Im)) { Scores[x] = 0; return; }
|
||
b++; B1 = I[x+dirs[b]];
|
||
if ((B1 < Im)) { Scores[x] = 0; return; }
|
||
b++; B2 = I[x+dirs[b]];
|
||
if ((B2 < Im)) { Scores[x] = 0; return; }
|
||
state = 0;
|
||
}
|
||
|
||
for(a = 1; a <= opposite; a++)
|
||
{
|
||
A = I[x+dirs[a]];
|
||
|
||
switch(state)
|
||
{
|
||
case 0:
|
||
if ((A > Ip)) {
|
||
B1 = B2; b++; B2 = I[x+dirs[b]];
|
||
if ((B2 < Im)) { Scores[x] = 0; return; }
|
||
{ score -= A + B1; state = 0; break; }
|
||
}
|
||
if ((A < Im)) {
|
||
if ((B1 > Ip)) { Scores[x] = 0; return; }
|
||
if ((B2 > Ip)) { Scores[x] = 0; return; }
|
||
B1 = B2; b++; B2 = I[x+dirs[b]];
|
||
if ((B2 > Ip)) { Scores[x] = 0; return; }
|
||
{ score -= A + B1; state = 8; break; }
|
||
}
|
||
// A ~ I0
|
||
if ((B1 <= Ip)) { Scores[x] = 0; return; }
|
||
if ((B2 <= Ip)) { Scores[x] = 0; return; }
|
||
B1 = B2; b++; B2 = I[x+dirs[b]];
|
||
if ((B2 > Ip)) { score -= A + B1; state = 3; break; };
|
||
if ((B2 < Im)) { score -= A + B1; state = 6; break; };
|
||
{ Scores[x] = 0; return; }
|
||
|
||
case 1:
|
||
if ((A < Im)) {
|
||
B1 = B2; b++; B2 = I[x+dirs[b]];
|
||
if ((B2 > Ip)) { Scores[x] = 0; return; }
|
||
{ score -= A + B1; state = 1; break; }
|
||
}
|
||
if ((A > Ip)) {
|
||
if ((B1 < Im)) { Scores[x] = 0; return; }
|
||
if ((B2 < Im)) { Scores[x] = 0; return; }
|
||
B1 = B2; b++; B2 = I[x+dirs[b]];
|
||
if ((B2 < Im)) { Scores[x] = 0; return; }
|
||
{ score -= A + B1; state = 9; break; }
|
||
}
|
||
// A ~ I0
|
||
if ((B1 >= Im)) { Scores[x] = 0; return; }
|
||
if ((B2 >= Im)) { Scores[x] = 0; return; }
|
||
B1 = B2; b++; B2 = I[x+dirs[b]];
|
||
if ((B2 < Im)) { score -= A + B1; state = 2; break; };
|
||
if ((B2 > Ip)) { score -= A + B1; state = 7; break; };
|
||
{ Scores[x] = 0; return; }
|
||
|
||
case 2:
|
||
if ((A > Ip)) { Scores[x] = 0; return; }
|
||
B1 = B2; b++; B2 = I[x+dirs[b]];
|
||
if ((A < Im))
|
||
{
|
||
if ((B2 > Ip)) { Scores[x] = 0; return; }
|
||
{ score -= A + B1; state = 4; break; }
|
||
}
|
||
// A ~ I0
|
||
if ((B2 > Ip)) { score -= A + B1; state = 7; break; };
|
||
if ((B2 < Im)) { score -= A + B1; state = 2; break; };
|
||
{ Scores[x] = 0; return; } // A ~ I0, B2 ~ I0
|
||
|
||
case 3:
|
||
if ((A < Im)) { Scores[x] = 0; return; }
|
||
B1 = B2; b++; B2 = I[x+dirs[b]];
|
||
if ((A > Ip)) {
|
||
if ((B2 < Im)) { Scores[x] = 0; return; }
|
||
{ score -= A + B1; state = 5; break; }
|
||
}
|
||
// A ~ I0
|
||
if ((B2 > Ip)) { score -= A + B1; state = 3; break; };
|
||
if ((B2 < Im)) { score -= A + B1; state = 6; break; };
|
||
{ Scores[x] = 0; return; }
|
||
|
||
case 4:
|
||
if ((A > Ip)) { Scores[x] = 0; return; }
|
||
if ((A < Im)) {
|
||
B1 = B2; b++; B2 = I[x+dirs[b]];
|
||
if ((B2 > Ip)) { Scores[x] = 0; return; }
|
||
{ score -= A + B1; state = 1; break; }
|
||
}
|
||
if ((B2 >= Im)) { Scores[x] = 0; return; }
|
||
B1 = B2; b++; B2 = I[x+dirs[b]];
|
||
if ((B2 < Im)) { score -= A + B1; state = 2; break; };
|
||
if ((B2 > Ip)) { score -= A + B1; state = 7; break; };
|
||
{ Scores[x] = 0; return; }
|
||
|
||
case 5:
|
||
if ((A < Im)) { Scores[x] = 0; return; }
|
||
if ((A > Ip)) {
|
||
B1 = B2; b++; B2 = I[x+dirs[b]];
|
||
if ((B2 < Im)) { Scores[x] = 0; return; }
|
||
{ score -= A + B1; state = 0; break; }
|
||
}
|
||
// A ~ I0
|
||
if ((B2 <= Ip)) { Scores[x] = 0; return; }
|
||
B1 = B2; b++; B2 = I[x+dirs[b]];
|
||
if ((B2 > Ip)) { score -= A + B1; state = 3; break; };
|
||
if ((B2 < Im)) { score -= A + B1; state = 6; break; };
|
||
{ Scores[x] = 0; return; }
|
||
|
||
case 7:
|
||
if ((A > Ip)) { Scores[x] = 0; return; }
|
||
if ((A < Im)) { Scores[x] = 0; return; }
|
||
B1 = B2; b++; B2 = I[x+dirs[b]];
|
||
// A ~ I0
|
||
if ((B2 > Ip)) { score -= A + B1; state = 3; break; };
|
||
if ((B2 < Im)) { score -= A + B1; state = 6; break; };
|
||
{ Scores[x] = 0; return; } // A ~ I0, B2 ~ I0
|
||
|
||
case 6:
|
||
if ((A > Ip)) { Scores[x] = 0; return; }
|
||
if ((A < Im)) { Scores[x] = 0; return; }
|
||
B1 = B2; b++; B2 = I[x+dirs[b]];
|
||
// A ~ I0
|
||
if ((B2 < Im)) { score -= A + B1; state = 2; break; };
|
||
if ((B2 > Ip)) { score -= A + B1; state = 7; break; };
|
||
{ Scores[x] = 0; return; } // A ~ I0, B2 ~ I0
|
||
|
||
case 8:
|
||
if ((A > Ip)) {
|
||
if ((B2 < Im)) { Scores[x] = 0; return; }
|
||
B1 = B2; b++; B2 = I[x+dirs[b]];
|
||
if ((B2 < Im)) { Scores[x] = 0; return; }
|
||
{ score -= A + B1; state = 9; break; }
|
||
}
|
||
if ((A < Im)) {
|
||
B1 = B2; b++; B2 = I[x+dirs[b]];
|
||
if ((B2 > Ip)) { Scores[x] = 0; return; }
|
||
{ score -= A + B1; state = 1; break; }
|
||
}
|
||
{ Scores[x] = 0; return; }
|
||
|
||
case 9:
|
||
if ((A < Im)) {
|
||
if ((B2 > Ip)) { Scores[x] = 0; return; }
|
||
B1 = B2; b++; B2 = I[x+dirs[b]];
|
||
if ((B2 > Ip)) { Scores[x] = 0; return; }
|
||
{ score -= A + B1; state = 8; break; }
|
||
}
|
||
if ((A > Ip)) {
|
||
B1 = B2; b++; B2 = I[x+dirs[b]];
|
||
if ((B2 < Im)) { Scores[x] = 0; return; }
|
||
{ score -= A + B1; state = 0; break; }
|
||
}
|
||
{ Scores[x] = 0; return; }
|
||
|
||
default:
|
||
//"PB default";
|
||
break;
|
||
} // switch(state)
|
||
} // for(a...)
|
||
|
||
Scores[x] = (score + dirs_nb * I[x]);
|
||
};
|
||
|
||
var lev_table_t = (function () {
|
||
function lev_table_t(w, h, r) {
|
||
this.dirs = new Int32Array(1024);
|
||
this.dirs_count = precompute_directions(w, this.dirs, r)|0;
|
||
this.scores = new Int32Array(w*h);
|
||
this.radius = r|0;
|
||
}
|
||
return lev_table_t;
|
||
})();
|
||
|
||
return {
|
||
|
||
level_tables: [],
|
||
tau: 7,
|
||
|
||
init: function(width, height, radius, pyramid_levels) {
|
||
if (typeof pyramid_levels === "undefined") { pyramid_levels = 1; }
|
||
var i;
|
||
radius = Math.min(radius, 7);
|
||
radius = Math.max(radius, 3);
|
||
for(i = 0; i < pyramid_levels; ++i) {
|
||
this.level_tables[i] = new lev_table_t(width>>i, height>>i, radius);
|
||
}
|
||
},
|
||
|
||
detect: function(src, points, border) {
|
||
if (typeof border === "undefined") { border = 4; }
|
||
var t = this.level_tables[0];
|
||
var R = t.radius|0, Rm1 = (R-1)|0;
|
||
var dirs = t.dirs;
|
||
var dirs_count = t.dirs_count|0;
|
||
var opposite = dirs_count >> 1;
|
||
var img = src.data, w=src.cols|0, h=src.rows|0,hw=w>>1;
|
||
var scores = t.scores;
|
||
var x=0,y=0,row=0,rowx=0,ip=0,im=0,abs_score=0, score=0;
|
||
var tau = this.tau|0;
|
||
var number_of_points = 0, pt;
|
||
|
||
var sx = Math.max(R+1, border)|0;
|
||
var sy = Math.max(R+1, border)|0;
|
||
var ex = Math.min(w-R-2, w-border)|0;
|
||
var ey = Math.min(h-R-2, h-border)|0;
|
||
|
||
row = (sy*w+sx)|0;
|
||
for(y = sy; y < ey; ++y, row+=w) {
|
||
for(x = sx, rowx = row; x < ex; ++x, ++rowx) {
|
||
ip = img[rowx] + tau, im = img[rowx] - tau;
|
||
|
||
if (im<img[rowx+R] && img[rowx+R]<ip && im<img[rowx-R] && img[rowx-R]<ip) {
|
||
scores[rowx] = 0;
|
||
} else {
|
||
perform_one_point(img, rowx, scores, im, ip, dirs, opposite, dirs_count);
|
||
}
|
||
}
|
||
}
|
||
|
||
// local maxima
|
||
row = (sy*w+sx)|0;
|
||
for(y = sy; y < ey; ++y, row+=w) {
|
||
for(x = sx, rowx = row; x < ex; ++x, ++rowx) {
|
||
score = scores[rowx];
|
||
abs_score = Math.abs(score);
|
||
if(abs_score < 5) {
|
||
// if this pixel is 0, the next one will not be good enough. Skip it.
|
||
++x, ++rowx;
|
||
} else {
|
||
if(third_check(scores, rowx, w) >= 3 && is_local_maxima(scores, rowx, score, hw, R)) {
|
||
pt = points[number_of_points];
|
||
pt.x = x, pt.y = y, pt.score = abs_score;
|
||
++number_of_points;
|
||
|
||
x += Rm1, rowx += Rm1;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
return number_of_points;
|
||
}
|
||
};
|
||
|
||
})();
|
||
|
||
global.yape = yape;
|
||
|
||
})(jsfeat);
|
||
/**
|
||
* @author Eugene Zatepyakin / http://inspirit.ru/
|
||
*
|
||
* Original implementation derived from OpenCV,
|
||
* @authors Ethan Rublee, Vincent Rabaud, Gary Bradski
|
||
*/
|
||
|
||
(function(global) {
|
||
"use strict";
|
||
//
|
||
|
||
var orb = (function() {
|
||
|
||
var bit_pattern_31_ = new Int32Array([
|
||
8,-3, 9,5/*mean (0), correlation (0)*/,
|
||
4,2, 7,-12/*mean (1.12461e-05), correlation (0.0437584)*/,
|
||
-11,9, -8,2/*mean (3.37382e-05), correlation (0.0617409)*/,
|
||
7,-12, 12,-13/*mean (5.62303e-05), correlation (0.0636977)*/,
|
||
2,-13, 2,12/*mean (0.000134953), correlation (0.085099)*/,
|
||
1,-7, 1,6/*mean (0.000528565), correlation (0.0857175)*/,
|
||
-2,-10, -2,-4/*mean (0.0188821), correlation (0.0985774)*/,
|
||
-13,-13, -11,-8/*mean (0.0363135), correlation (0.0899616)*/,
|
||
-13,-3, -12,-9/*mean (0.121806), correlation (0.099849)*/,
|
||
10,4, 11,9/*mean (0.122065), correlation (0.093285)*/,
|
||
-13,-8, -8,-9/*mean (0.162787), correlation (0.0942748)*/,
|
||
-11,7, -9,12/*mean (0.21561), correlation (0.0974438)*/,
|
||
7,7, 12,6/*mean (0.160583), correlation (0.130064)*/,
|
||
-4,-5, -3,0/*mean (0.228171), correlation (0.132998)*/,
|
||
-13,2, -12,-3/*mean (0.00997526), correlation (0.145926)*/,
|
||
-9,0, -7,5/*mean (0.198234), correlation (0.143636)*/,
|
||
12,-6, 12,-1/*mean (0.0676226), correlation (0.16689)*/,
|
||
-3,6, -2,12/*mean (0.166847), correlation (0.171682)*/,
|
||
-6,-13, -4,-8/*mean (0.101215), correlation (0.179716)*/,
|
||
11,-13, 12,-8/*mean (0.200641), correlation (0.192279)*/,
|
||
4,7, 5,1/*mean (0.205106), correlation (0.186848)*/,
|
||
5,-3, 10,-3/*mean (0.234908), correlation (0.192319)*/,
|
||
3,-7, 6,12/*mean (0.0709964), correlation (0.210872)*/,
|
||
-8,-7, -6,-2/*mean (0.0939834), correlation (0.212589)*/,
|
||
-2,11, -1,-10/*mean (0.127778), correlation (0.20866)*/,
|
||
-13,12, -8,10/*mean (0.14783), correlation (0.206356)*/,
|
||
-7,3, -5,-3/*mean (0.182141), correlation (0.198942)*/,
|
||
-4,2, -3,7/*mean (0.188237), correlation (0.21384)*/,
|
||
-10,-12, -6,11/*mean (0.14865), correlation (0.23571)*/,
|
||
5,-12, 6,-7/*mean (0.222312), correlation (0.23324)*/,
|
||
5,-6, 7,-1/*mean (0.229082), correlation (0.23389)*/,
|
||
1,0, 4,-5/*mean (0.241577), correlation (0.215286)*/,
|
||
9,11, 11,-13/*mean (0.00338507), correlation (0.251373)*/,
|
||
4,7, 4,12/*mean (0.131005), correlation (0.257622)*/,
|
||
2,-1, 4,4/*mean (0.152755), correlation (0.255205)*/,
|
||
-4,-12, -2,7/*mean (0.182771), correlation (0.244867)*/,
|
||
-8,-5, -7,-10/*mean (0.186898), correlation (0.23901)*/,
|
||
4,11, 9,12/*mean (0.226226), correlation (0.258255)*/,
|
||
0,-8, 1,-13/*mean (0.0897886), correlation (0.274827)*/,
|
||
-13,-2, -8,2/*mean (0.148774), correlation (0.28065)*/,
|
||
-3,-2, -2,3/*mean (0.153048), correlation (0.283063)*/,
|
||
-6,9, -4,-9/*mean (0.169523), correlation (0.278248)*/,
|
||
8,12, 10,7/*mean (0.225337), correlation (0.282851)*/,
|
||
0,9, 1,3/*mean (0.226687), correlation (0.278734)*/,
|
||
7,-5, 11,-10/*mean (0.00693882), correlation (0.305161)*/,
|
||
-13,-6, -11,0/*mean (0.0227283), correlation (0.300181)*/,
|
||
10,7, 12,1/*mean (0.125517), correlation (0.31089)*/,
|
||
-6,-3, -6,12/*mean (0.131748), correlation (0.312779)*/,
|
||
10,-9, 12,-4/*mean (0.144827), correlation (0.292797)*/,
|
||
-13,8, -8,-12/*mean (0.149202), correlation (0.308918)*/,
|
||
-13,0, -8,-4/*mean (0.160909), correlation (0.310013)*/,
|
||
3,3, 7,8/*mean (0.177755), correlation (0.309394)*/,
|
||
5,7, 10,-7/*mean (0.212337), correlation (0.310315)*/,
|
||
-1,7, 1,-12/*mean (0.214429), correlation (0.311933)*/,
|
||
3,-10, 5,6/*mean (0.235807), correlation (0.313104)*/,
|
||
2,-4, 3,-10/*mean (0.00494827), correlation (0.344948)*/,
|
||
-13,0, -13,5/*mean (0.0549145), correlation (0.344675)*/,
|
||
-13,-7, -12,12/*mean (0.103385), correlation (0.342715)*/,
|
||
-13,3, -11,8/*mean (0.134222), correlation (0.322922)*/,
|
||
-7,12, -4,7/*mean (0.153284), correlation (0.337061)*/,
|
||
6,-10, 12,8/*mean (0.154881), correlation (0.329257)*/,
|
||
-9,-1, -7,-6/*mean (0.200967), correlation (0.33312)*/,
|
||
-2,-5, 0,12/*mean (0.201518), correlation (0.340635)*/,
|
||
-12,5, -7,5/*mean (0.207805), correlation (0.335631)*/,
|
||
3,-10, 8,-13/*mean (0.224438), correlation (0.34504)*/,
|
||
-7,-7, -4,5/*mean (0.239361), correlation (0.338053)*/,
|
||
-3,-2, -1,-7/*mean (0.240744), correlation (0.344322)*/,
|
||
2,9, 5,-11/*mean (0.242949), correlation (0.34145)*/,
|
||
-11,-13, -5,-13/*mean (0.244028), correlation (0.336861)*/,
|
||
-1,6, 0,-1/*mean (0.247571), correlation (0.343684)*/,
|
||
5,-3, 5,2/*mean (0.000697256), correlation (0.357265)*/,
|
||
-4,-13, -4,12/*mean (0.00213675), correlation (0.373827)*/,
|
||
-9,-6, -9,6/*mean (0.0126856), correlation (0.373938)*/,
|
||
-12,-10, -8,-4/*mean (0.0152497), correlation (0.364237)*/,
|
||
10,2, 12,-3/*mean (0.0299933), correlation (0.345292)*/,
|
||
7,12, 12,12/*mean (0.0307242), correlation (0.366299)*/,
|
||
-7,-13, -6,5/*mean (0.0534975), correlation (0.368357)*/,
|
||
-4,9, -3,4/*mean (0.099865), correlation (0.372276)*/,
|
||
7,-1, 12,2/*mean (0.117083), correlation (0.364529)*/,
|
||
-7,6, -5,1/*mean (0.126125), correlation (0.369606)*/,
|
||
-13,11, -12,5/*mean (0.130364), correlation (0.358502)*/,
|
||
-3,7, -2,-6/*mean (0.131691), correlation (0.375531)*/,
|
||
7,-8, 12,-7/*mean (0.160166), correlation (0.379508)*/,
|
||
-13,-7, -11,-12/*mean (0.167848), correlation (0.353343)*/,
|
||
1,-3, 12,12/*mean (0.183378), correlation (0.371916)*/,
|
||
2,-6, 3,0/*mean (0.228711), correlation (0.371761)*/,
|
||
-4,3, -2,-13/*mean (0.247211), correlation (0.364063)*/,
|
||
-1,-13, 1,9/*mean (0.249325), correlation (0.378139)*/,
|
||
7,1, 8,-6/*mean (0.000652272), correlation (0.411682)*/,
|
||
1,-1, 3,12/*mean (0.00248538), correlation (0.392988)*/,
|
||
9,1, 12,6/*mean (0.0206815), correlation (0.386106)*/,
|
||
-1,-9, -1,3/*mean (0.0364485), correlation (0.410752)*/,
|
||
-13,-13, -10,5/*mean (0.0376068), correlation (0.398374)*/,
|
||
7,7, 10,12/*mean (0.0424202), correlation (0.405663)*/,
|
||
12,-5, 12,9/*mean (0.0942645), correlation (0.410422)*/,
|
||
6,3, 7,11/*mean (0.1074), correlation (0.413224)*/,
|
||
5,-13, 6,10/*mean (0.109256), correlation (0.408646)*/,
|
||
2,-12, 2,3/*mean (0.131691), correlation (0.416076)*/,
|
||
3,8, 4,-6/*mean (0.165081), correlation (0.417569)*/,
|
||
2,6, 12,-13/*mean (0.171874), correlation (0.408471)*/,
|
||
9,-12, 10,3/*mean (0.175146), correlation (0.41296)*/,
|
||
-8,4, -7,9/*mean (0.183682), correlation (0.402956)*/,
|
||
-11,12, -4,-6/*mean (0.184672), correlation (0.416125)*/,
|
||
1,12, 2,-8/*mean (0.191487), correlation (0.386696)*/,
|
||
6,-9, 7,-4/*mean (0.192668), correlation (0.394771)*/,
|
||
2,3, 3,-2/*mean (0.200157), correlation (0.408303)*/,
|
||
6,3, 11,0/*mean (0.204588), correlation (0.411762)*/,
|
||
3,-3, 8,-8/*mean (0.205904), correlation (0.416294)*/,
|
||
7,8, 9,3/*mean (0.213237), correlation (0.409306)*/,
|
||
-11,-5, -6,-4/*mean (0.243444), correlation (0.395069)*/,
|
||
-10,11, -5,10/*mean (0.247672), correlation (0.413392)*/,
|
||
-5,-8, -3,12/*mean (0.24774), correlation (0.411416)*/,
|
||
-10,5, -9,0/*mean (0.00213675), correlation (0.454003)*/,
|
||
8,-1, 12,-6/*mean (0.0293635), correlation (0.455368)*/,
|
||
4,-6, 6,-11/*mean (0.0404971), correlation (0.457393)*/,
|
||
-10,12, -8,7/*mean (0.0481107), correlation (0.448364)*/,
|
||
4,-2, 6,7/*mean (0.050641), correlation (0.455019)*/,
|
||
-2,0, -2,12/*mean (0.0525978), correlation (0.44338)*/,
|
||
-5,-8, -5,2/*mean (0.0629667), correlation (0.457096)*/,
|
||
7,-6, 10,12/*mean (0.0653846), correlation (0.445623)*/,
|
||
-9,-13, -8,-8/*mean (0.0858749), correlation (0.449789)*/,
|
||
-5,-13, -5,-2/*mean (0.122402), correlation (0.450201)*/,
|
||
8,-8, 9,-13/*mean (0.125416), correlation (0.453224)*/,
|
||
-9,-11, -9,0/*mean (0.130128), correlation (0.458724)*/,
|
||
1,-8, 1,-2/*mean (0.132467), correlation (0.440133)*/,
|
||
7,-4, 9,1/*mean (0.132692), correlation (0.454)*/,
|
||
-2,1, -1,-4/*mean (0.135695), correlation (0.455739)*/,
|
||
11,-6, 12,-11/*mean (0.142904), correlation (0.446114)*/,
|
||
-12,-9, -6,4/*mean (0.146165), correlation (0.451473)*/,
|
||
3,7, 7,12/*mean (0.147627), correlation (0.456643)*/,
|
||
5,5, 10,8/*mean (0.152901), correlation (0.455036)*/,
|
||
0,-4, 2,8/*mean (0.167083), correlation (0.459315)*/,
|
||
-9,12, -5,-13/*mean (0.173234), correlation (0.454706)*/,
|
||
0,7, 2,12/*mean (0.18312), correlation (0.433855)*/,
|
||
-1,2, 1,7/*mean (0.185504), correlation (0.443838)*/,
|
||
5,11, 7,-9/*mean (0.185706), correlation (0.451123)*/,
|
||
3,5, 6,-8/*mean (0.188968), correlation (0.455808)*/,
|
||
-13,-4, -8,9/*mean (0.191667), correlation (0.459128)*/,
|
||
-5,9, -3,-3/*mean (0.193196), correlation (0.458364)*/,
|
||
-4,-7, -3,-12/*mean (0.196536), correlation (0.455782)*/,
|
||
6,5, 8,0/*mean (0.1972), correlation (0.450481)*/,
|
||
-7,6, -6,12/*mean (0.199438), correlation (0.458156)*/,
|
||
-13,6, -5,-2/*mean (0.211224), correlation (0.449548)*/,
|
||
1,-10, 3,10/*mean (0.211718), correlation (0.440606)*/,
|
||
4,1, 8,-4/*mean (0.213034), correlation (0.443177)*/,
|
||
-2,-2, 2,-13/*mean (0.234334), correlation (0.455304)*/,
|
||
2,-12, 12,12/*mean (0.235684), correlation (0.443436)*/,
|
||
-2,-13, 0,-6/*mean (0.237674), correlation (0.452525)*/,
|
||
4,1, 9,3/*mean (0.23962), correlation (0.444824)*/,
|
||
-6,-10, -3,-5/*mean (0.248459), correlation (0.439621)*/,
|
||
-3,-13, -1,1/*mean (0.249505), correlation (0.456666)*/,
|
||
7,5, 12,-11/*mean (0.00119208), correlation (0.495466)*/,
|
||
4,-2, 5,-7/*mean (0.00372245), correlation (0.484214)*/,
|
||
-13,9, -9,-5/*mean (0.00741116), correlation (0.499854)*/,
|
||
7,1, 8,6/*mean (0.0208952), correlation (0.499773)*/,
|
||
7,-8, 7,6/*mean (0.0220085), correlation (0.501609)*/,
|
||
-7,-4, -7,1/*mean (0.0233806), correlation (0.496568)*/,
|
||
-8,11, -7,-8/*mean (0.0236505), correlation (0.489719)*/,
|
||
-13,6, -12,-8/*mean (0.0268781), correlation (0.503487)*/,
|
||
2,4, 3,9/*mean (0.0323324), correlation (0.501938)*/,
|
||
10,-5, 12,3/*mean (0.0399235), correlation (0.494029)*/,
|
||
-6,-5, -6,7/*mean (0.0420153), correlation (0.486579)*/,
|
||
8,-3, 9,-8/*mean (0.0548021), correlation (0.484237)*/,
|
||
2,-12, 2,8/*mean (0.0616622), correlation (0.496642)*/,
|
||
-11,-2, -10,3/*mean (0.0627755), correlation (0.498563)*/,
|
||
-12,-13, -7,-9/*mean (0.0829622), correlation (0.495491)*/,
|
||
-11,0, -10,-5/*mean (0.0843342), correlation (0.487146)*/,
|
||
5,-3, 11,8/*mean (0.0929937), correlation (0.502315)*/,
|
||
-2,-13, -1,12/*mean (0.113327), correlation (0.48941)*/,
|
||
-1,-8, 0,9/*mean (0.132119), correlation (0.467268)*/,
|
||
-13,-11, -12,-5/*mean (0.136269), correlation (0.498771)*/,
|
||
-10,-2, -10,11/*mean (0.142173), correlation (0.498714)*/,
|
||
-3,9, -2,-13/*mean (0.144141), correlation (0.491973)*/,
|
||
2,-3, 3,2/*mean (0.14892), correlation (0.500782)*/,
|
||
-9,-13, -4,0/*mean (0.150371), correlation (0.498211)*/,
|
||
-4,6, -3,-10/*mean (0.152159), correlation (0.495547)*/,
|
||
-4,12, -2,-7/*mean (0.156152), correlation (0.496925)*/,
|
||
-6,-11, -4,9/*mean (0.15749), correlation (0.499222)*/,
|
||
6,-3, 6,11/*mean (0.159211), correlation (0.503821)*/,
|
||
-13,11, -5,5/*mean (0.162427), correlation (0.501907)*/,
|
||
11,11, 12,6/*mean (0.16652), correlation (0.497632)*/,
|
||
7,-5, 12,-2/*mean (0.169141), correlation (0.484474)*/,
|
||
-1,12, 0,7/*mean (0.169456), correlation (0.495339)*/,
|
||
-4,-8, -3,-2/*mean (0.171457), correlation (0.487251)*/,
|
||
-7,1, -6,7/*mean (0.175), correlation (0.500024)*/,
|
||
-13,-12, -8,-13/*mean (0.175866), correlation (0.497523)*/,
|
||
-7,-2, -6,-8/*mean (0.178273), correlation (0.501854)*/,
|
||
-8,5, -6,-9/*mean (0.181107), correlation (0.494888)*/,
|
||
-5,-1, -4,5/*mean (0.190227), correlation (0.482557)*/,
|
||
-13,7, -8,10/*mean (0.196739), correlation (0.496503)*/,
|
||
1,5, 5,-13/*mean (0.19973), correlation (0.499759)*/,
|
||
1,0, 10,-13/*mean (0.204465), correlation (0.49873)*/,
|
||
9,12, 10,-1/*mean (0.209334), correlation (0.49063)*/,
|
||
5,-8, 10,-9/*mean (0.211134), correlation (0.503011)*/,
|
||
-1,11, 1,-13/*mean (0.212), correlation (0.499414)*/,
|
||
-9,-3, -6,2/*mean (0.212168), correlation (0.480739)*/,
|
||
-1,-10, 1,12/*mean (0.212731), correlation (0.502523)*/,
|
||
-13,1, -8,-10/*mean (0.21327), correlation (0.489786)*/,
|
||
8,-11, 10,-6/*mean (0.214159), correlation (0.488246)*/,
|
||
2,-13, 3,-6/*mean (0.216993), correlation (0.50287)*/,
|
||
7,-13, 12,-9/*mean (0.223639), correlation (0.470502)*/,
|
||
-10,-10, -5,-7/*mean (0.224089), correlation (0.500852)*/,
|
||
-10,-8, -8,-13/*mean (0.228666), correlation (0.502629)*/,
|
||
4,-6, 8,5/*mean (0.22906), correlation (0.498305)*/,
|
||
3,12, 8,-13/*mean (0.233378), correlation (0.503825)*/,
|
||
-4,2, -3,-3/*mean (0.234323), correlation (0.476692)*/,
|
||
5,-13, 10,-12/*mean (0.236392), correlation (0.475462)*/,
|
||
4,-13, 5,-1/*mean (0.236842), correlation (0.504132)*/,
|
||
-9,9, -4,3/*mean (0.236977), correlation (0.497739)*/,
|
||
0,3, 3,-9/*mean (0.24314), correlation (0.499398)*/,
|
||
-12,1, -6,1/*mean (0.243297), correlation (0.489447)*/,
|
||
3,2, 4,-8/*mean (0.00155196), correlation (0.553496)*/,
|
||
-10,-10, -10,9/*mean (0.00239541), correlation (0.54297)*/,
|
||
8,-13, 12,12/*mean (0.0034413), correlation (0.544361)*/,
|
||
-8,-12, -6,-5/*mean (0.003565), correlation (0.551225)*/,
|
||
2,2, 3,7/*mean (0.00835583), correlation (0.55285)*/,
|
||
10,6, 11,-8/*mean (0.00885065), correlation (0.540913)*/,
|
||
6,8, 8,-12/*mean (0.0101552), correlation (0.551085)*/,
|
||
-7,10, -6,5/*mean (0.0102227), correlation (0.533635)*/,
|
||
-3,-9, -3,9/*mean (0.0110211), correlation (0.543121)*/,
|
||
-1,-13, -1,5/*mean (0.0113473), correlation (0.550173)*/,
|
||
-3,-7, -3,4/*mean (0.0140913), correlation (0.554774)*/,
|
||
-8,-2, -8,3/*mean (0.017049), correlation (0.55461)*/,
|
||
4,2, 12,12/*mean (0.01778), correlation (0.546921)*/,
|
||
2,-5, 3,11/*mean (0.0224022), correlation (0.549667)*/,
|
||
6,-9, 11,-13/*mean (0.029161), correlation (0.546295)*/,
|
||
3,-1, 7,12/*mean (0.0303081), correlation (0.548599)*/,
|
||
11,-1, 12,4/*mean (0.0355151), correlation (0.523943)*/,
|
||
-3,0, -3,6/*mean (0.0417904), correlation (0.543395)*/,
|
||
4,-11, 4,12/*mean (0.0487292), correlation (0.542818)*/,
|
||
2,-4, 2,1/*mean (0.0575124), correlation (0.554888)*/,
|
||
-10,-6, -8,1/*mean (0.0594242), correlation (0.544026)*/,
|
||
-13,7, -11,1/*mean (0.0597391), correlation (0.550524)*/,
|
||
-13,12, -11,-13/*mean (0.0608974), correlation (0.55383)*/,
|
||
6,0, 11,-13/*mean (0.065126), correlation (0.552006)*/,
|
||
0,-1, 1,4/*mean (0.074224), correlation (0.546372)*/,
|
||
-13,3, -9,-2/*mean (0.0808592), correlation (0.554875)*/,
|
||
-9,8, -6,-3/*mean (0.0883378), correlation (0.551178)*/,
|
||
-13,-6, -8,-2/*mean (0.0901035), correlation (0.548446)*/,
|
||
5,-9, 8,10/*mean (0.0949843), correlation (0.554694)*/,
|
||
2,7, 3,-9/*mean (0.0994152), correlation (0.550979)*/,
|
||
-1,-6, -1,-1/*mean (0.10045), correlation (0.552714)*/,
|
||
9,5, 11,-2/*mean (0.100686), correlation (0.552594)*/,
|
||
11,-3, 12,-8/*mean (0.101091), correlation (0.532394)*/,
|
||
3,0, 3,5/*mean (0.101147), correlation (0.525576)*/,
|
||
-1,4, 0,10/*mean (0.105263), correlation (0.531498)*/,
|
||
3,-6, 4,5/*mean (0.110785), correlation (0.540491)*/,
|
||
-13,0, -10,5/*mean (0.112798), correlation (0.536582)*/,
|
||
5,8, 12,11/*mean (0.114181), correlation (0.555793)*/,
|
||
8,9, 9,-6/*mean (0.117431), correlation (0.553763)*/,
|
||
7,-4, 8,-12/*mean (0.118522), correlation (0.553452)*/,
|
||
-10,4, -10,9/*mean (0.12094), correlation (0.554785)*/,
|
||
7,3, 12,4/*mean (0.122582), correlation (0.555825)*/,
|
||
9,-7, 10,-2/*mean (0.124978), correlation (0.549846)*/,
|
||
7,0, 12,-2/*mean (0.127002), correlation (0.537452)*/,
|
||
-1,-6, 0,-11/*mean (0.127148), correlation (0.547401)*/
|
||
]);
|
||
|
||
var H = new jsfeat.matrix_t(3, 3, jsfeat.F32_t|jsfeat.C1_t);
|
||
var patch_img = new jsfeat.matrix_t(32, 32, jsfeat.U8_t|jsfeat.C1_t);
|
||
|
||
var rectify_patch = function(src, dst, angle, px, py, psize) {
|
||
var cosine = Math.cos(angle);
|
||
var sine = Math.sin(angle);
|
||
|
||
H.data[0] = cosine, H.data[1] = -sine, H.data[2] = (-cosine + sine ) * psize*0.5 + px,
|
||
H.data[3] = sine, H.data[4] = cosine, H.data[5] = (-sine - cosine) * psize*0.5 + py;
|
||
|
||
jsfeat.imgproc.warp_affine(src, dst, H, 128);
|
||
};
|
||
|
||
return {
|
||
|
||
describe: function(src, corners, count, descriptors) {
|
||
var DESCR_SIZE = 32; // bytes;
|
||
var i=0,b=0,px=0.0,py=0.0,angle=0.0;
|
||
var t0=0, t1=0, val=0;
|
||
var img = src.data, w = src.cols, h = src.rows;
|
||
var patch_d = patch_img.data;
|
||
var patch_off = 16*32 + 16; // center of patch
|
||
var patt=0;
|
||
|
||
if(!(descriptors.type&jsfeat.U8_t)) {
|
||
// relocate to U8 type
|
||
descriptors.type = jsfeat.U8_t;
|
||
descriptors.cols = DESCR_SIZE;
|
||
descriptors.rows = count;
|
||
descriptors.channel = 1;
|
||
descriptors.allocate();
|
||
} else {
|
||
descriptors.resize(DESCR_SIZE, count, 1);
|
||
}
|
||
|
||
var descr_d = descriptors.data;
|
||
var descr_off = 0;
|
||
|
||
for(i = 0; i < count; ++i) {
|
||
px = corners[i].x;
|
||
py = corners[i].y;
|
||
angle = corners[i].angle;
|
||
|
||
rectify_patch(src, patch_img, angle, px, py, 32);
|
||
|
||
// describe the patch
|
||
patt = 0;
|
||
for (b = 0; b < DESCR_SIZE; ++b) {
|
||
|
||
t0 = patch_d[patch_off + bit_pattern_31_[patt+1] * 32 + bit_pattern_31_[patt]]; patt += 2;
|
||
t1 = patch_d[patch_off + bit_pattern_31_[patt+1] * 32 + bit_pattern_31_[patt]]; patt += 2;
|
||
val = (t0 < t1)|0;
|
||
|
||
t0 = patch_d[patch_off + bit_pattern_31_[patt+1] * 32 + bit_pattern_31_[patt]]; patt += 2;
|
||
t1 = patch_d[patch_off + bit_pattern_31_[patt+1] * 32 + bit_pattern_31_[patt]]; patt += 2;
|
||
val |= (t0 < t1) << 1;
|
||
|
||
t0 = patch_d[patch_off + bit_pattern_31_[patt+1] * 32 + bit_pattern_31_[patt]]; patt += 2;
|
||
t1 = patch_d[patch_off + bit_pattern_31_[patt+1] * 32 + bit_pattern_31_[patt]]; patt += 2;
|
||
val |= (t0 < t1) << 2;
|
||
|
||
t0 = patch_d[patch_off + bit_pattern_31_[patt+1] * 32 + bit_pattern_31_[patt]]; patt += 2;
|
||
t1 = patch_d[patch_off + bit_pattern_31_[patt+1] * 32 + bit_pattern_31_[patt]]; patt += 2;
|
||
val |= (t0 < t1) << 3;
|
||
|
||
t0 = patch_d[patch_off + bit_pattern_31_[patt+1] * 32 + bit_pattern_31_[patt]]; patt += 2;
|
||
t1 = patch_d[patch_off + bit_pattern_31_[patt+1] * 32 + bit_pattern_31_[patt]]; patt += 2;
|
||
val |= (t0 < t1) << 4;
|
||
|
||
t0 = patch_d[patch_off + bit_pattern_31_[patt+1] * 32 + bit_pattern_31_[patt]]; patt += 2;
|
||
t1 = patch_d[patch_off + bit_pattern_31_[patt+1] * 32 + bit_pattern_31_[patt]]; patt += 2;
|
||
val |= (t0 < t1) << 5;
|
||
|
||
t0 = patch_d[patch_off + bit_pattern_31_[patt+1] * 32 + bit_pattern_31_[patt]]; patt += 2;
|
||
t1 = patch_d[patch_off + bit_pattern_31_[patt+1] * 32 + bit_pattern_31_[patt]]; patt += 2;
|
||
val |= (t0 < t1) << 6;
|
||
|
||
t0 = patch_d[patch_off + bit_pattern_31_[patt+1] * 32 + bit_pattern_31_[patt]]; patt += 2;
|
||
t1 = patch_d[patch_off + bit_pattern_31_[patt+1] * 32 + bit_pattern_31_[patt]]; patt += 2;
|
||
val |= (t0 < t1) << 7;
|
||
|
||
descr_d[descr_off+b] = val;
|
||
}
|
||
descr_off += DESCR_SIZE;
|
||
}
|
||
}
|
||
};
|
||
})();
|
||
|
||
global.orb = orb;
|
||
|
||
})(jsfeat);
|
||
/**
|
||
* @author Eugene Zatepyakin / http://inspirit.ru/
|
||
*
|
||
* this code is a rewrite from OpenCV's Lucas-Kanade optical flow implementation
|
||
*/
|
||
|
||
(function(global) {
|
||
"use strict";
|
||
//
|
||
var optical_flow_lk = (function() {
|
||
|
||
// short link to shar deriv
|
||
var scharr_deriv = jsfeat.imgproc.scharr_derivatives;
|
||
|
||
return {
|
||
track: function(prev_pyr, curr_pyr, prev_xy, curr_xy, count, win_size, max_iter, status, eps, min_eigen_threshold) {
|
||
if (typeof max_iter === "undefined") { max_iter = 30; }
|
||
if (typeof status === "undefined") { status = new Uint8Array(count); }
|
||
if (typeof eps === "undefined") { eps = 0.01; }
|
||
if (typeof min_eigen_threshold === "undefined") { min_eigen_threshold = 0.0001; }
|
||
|
||
var half_win = (win_size-1)*0.5;
|
||
var win_area = (win_size*win_size)|0;
|
||
var win_area2 = win_area << 1;
|
||
var prev_imgs = prev_pyr.data, next_imgs = curr_pyr.data;
|
||
var img_prev=prev_imgs[0].data,img_next=next_imgs[0].data;
|
||
var w0 = prev_imgs[0].cols, h0 = prev_imgs[0].rows,lw=0,lh=0;
|
||
|
||
var iwin_node = jsfeat.cache.get_buffer(win_area<<2);
|
||
var deriv_iwin_node = jsfeat.cache.get_buffer(win_area2<<2);
|
||
var deriv_lev_node = jsfeat.cache.get_buffer((h0*(w0<<1))<<2);
|
||
|
||
var deriv_m = new jsfeat.matrix_t(w0, h0, jsfeat.S32C2_t, deriv_lev_node.data);
|
||
|
||
var iwin_buf = iwin_node.i32;
|
||
var deriv_iwin = deriv_iwin_node.i32;
|
||
var deriv_lev = deriv_lev_node.i32;
|
||
|
||
var dstep=0,src=0,dsrc=0,iptr=0,diptr=0,jptr=0;
|
||
var lev_sc=0.0,prev_x=0.0,prev_y=0.0,next_x=0.0,next_y=0.0;
|
||
var prev_delta_x=0.0,prev_delta_y=0.0,delta_x=0.0,delta_y=0.0;
|
||
var iprev_x=0,iprev_y=0,inext_x=0,inext_y=0;
|
||
var i=0,j=0,x=0,y=0,level=0,ptid=0,iter=0;
|
||
var brd_tl=0,brd_r=0,brd_b=0;
|
||
var a=0.0,b=0.0,b1=0.0,b2=0.0;
|
||
|
||
// fixed point math
|
||
var W_BITS14 = 14;
|
||
var W_BITS4 = 14;
|
||
var W_BITS1m5 = W_BITS4 - 5;
|
||
var W_BITS1m51 = (1 << ((W_BITS1m5) - 1));
|
||
var W_BITS14_ = (1 << W_BITS14);
|
||
var W_BITS41 = (1 << ((W_BITS4) - 1));
|
||
var FLT_SCALE = 1.0/(1 << 20);
|
||
var iw00=0,iw01=0,iw10=0,iw11=0,ival=0,ixval=0,iyval=0;
|
||
var A11=0.0,A12=0.0,A22=0.0,D=0.0,min_eig=0.0;
|
||
|
||
var FLT_EPSILON = 0.00000011920929;
|
||
eps *= eps;
|
||
|
||
// reset status
|
||
for(; i < count; ++i) {
|
||
status[i] = 1;
|
||
}
|
||
|
||
var max_level = (prev_pyr.levels - 1)|0;
|
||
level = max_level;
|
||
|
||
for(; level >= 0; --level) {
|
||
lev_sc = (1.0/(1 << level));
|
||
lw = w0 >> level;
|
||
lh = h0 >> level;
|
||
dstep = lw << 1;
|
||
img_prev = prev_imgs[level].data;
|
||
img_next = next_imgs[level].data;
|
||
|
||
brd_r = (lw - win_size)|0;
|
||
brd_b = (lh - win_size)|0;
|
||
|
||
// calculate level derivatives
|
||
scharr_deriv(prev_imgs[level], deriv_m);
|
||
|
||
// iterate through points
|
||
for(ptid = 0; ptid < count; ++ptid) {
|
||
i = ptid << 1;
|
||
j = i + 1;
|
||
prev_x = prev_xy[i]*lev_sc;
|
||
prev_y = prev_xy[j]*lev_sc;
|
||
|
||
if( level == max_level ) {
|
||
next_x = prev_x;
|
||
next_y = prev_y;
|
||
} else {
|
||
next_x = curr_xy[i]*2.0;
|
||
next_y = curr_xy[j]*2.0;
|
||
}
|
||
curr_xy[i] = next_x;
|
||
curr_xy[j] = next_y;
|
||
|
||
prev_x -= half_win;
|
||
prev_y -= half_win;
|
||
iprev_x = prev_x|0;
|
||
iprev_y = prev_y|0;
|
||
|
||
// border check
|
||
x = (iprev_x <= brd_tl)|(iprev_x >= brd_r)|(iprev_y <= brd_tl)|(iprev_y >= brd_b);
|
||
if( x != 0 ) {
|
||
if( level == 0 ) {
|
||
status[ptid] = 0;
|
||
}
|
||
continue;
|
||
}
|
||
|
||
a = prev_x - iprev_x;
|
||
b = prev_y - iprev_y;
|
||
iw00 = (((1.0 - a)*(1.0 - b)*W_BITS14_) + 0.5)|0;
|
||
iw01 = ((a*(1.0 - b)*W_BITS14_) + 0.5)|0;
|
||
iw10 = (((1.0 - a)*b*W_BITS14_) + 0.5)|0;
|
||
iw11 = (W_BITS14_ - iw00 - iw01 - iw10);
|
||
|
||
A11 = 0.0, A12 = 0.0, A22 = 0.0;
|
||
|
||
// extract the patch from the first image, compute covariation matrix of derivatives
|
||
for( y = 0; y < win_size; ++y ) {
|
||
src = ( (y + iprev_y)*lw + iprev_x )|0;
|
||
dsrc = src << 1;
|
||
|
||
iptr = (y*win_size)|0;
|
||
diptr = iptr << 1;
|
||
for(x = 0 ; x < win_size; ++x, ++src, ++iptr, dsrc += 2) {
|
||
ival = ( (img_prev[src])*iw00 + (img_prev[src+1])*iw01 +
|
||
(img_prev[src+lw])*iw10 + (img_prev[src+lw+1])*iw11 );
|
||
ival = (((ival) + W_BITS1m51) >> (W_BITS1m5));
|
||
|
||
ixval = ( deriv_lev[dsrc]*iw00 + deriv_lev[dsrc+2]*iw01 +
|
||
deriv_lev[dsrc+dstep]*iw10 + deriv_lev[dsrc+dstep+2]*iw11 );
|
||
ixval = (((ixval) + W_BITS41) >> (W_BITS4));
|
||
|
||
iyval = ( deriv_lev[dsrc+1]*iw00 + deriv_lev[dsrc+3]*iw01 + deriv_lev[dsrc+dstep+1]*iw10 +
|
||
deriv_lev[dsrc+dstep+3]*iw11 );
|
||
iyval = (((iyval) + W_BITS41) >> (W_BITS4));
|
||
|
||
iwin_buf[iptr] = ival;
|
||
deriv_iwin[diptr++] = ixval;
|
||
deriv_iwin[diptr++] = iyval;
|
||
|
||
A11 += ixval*ixval;
|
||
A12 += ixval*iyval;
|
||
A22 += iyval*iyval;
|
||
}
|
||
}
|
||
|
||
A11 *= FLT_SCALE; A12 *= FLT_SCALE; A22 *= FLT_SCALE;
|
||
|
||
D = A11*A22 - A12*A12;
|
||
min_eig = (A22 + A11 - Math.sqrt((A11-A22)*(A11-A22) + 4.0*A12*A12)) / win_area2;
|
||
|
||
if( min_eig < min_eigen_threshold || D < FLT_EPSILON )
|
||
{
|
||
if( level == 0 ) {
|
||
status[ptid] = 0;
|
||
}
|
||
continue;
|
||
}
|
||
|
||
D = 1.0/D;
|
||
|
||
next_x -= half_win;
|
||
next_y -= half_win;
|
||
prev_delta_x = 0.0;
|
||
prev_delta_y = 0.0;
|
||
|
||
for( iter = 0; iter < max_iter; ++iter ) {
|
||
inext_x = next_x|0;
|
||
inext_y = next_y|0;
|
||
|
||
x = (inext_x <= brd_tl)|(inext_x >= brd_r)|(inext_y <= brd_tl)|(inext_y >= brd_b);
|
||
if( x != 0 ) {
|
||
if( level == 0 ) {
|
||
status[ptid] = 0;
|
||
}
|
||
break;
|
||
}
|
||
|
||
a = next_x - inext_x;
|
||
b = next_y - inext_y;
|
||
iw00 = (((1.0 - a)*(1.0 - b)*W_BITS14_) + 0.5)|0;
|
||
iw01 = ((a*(1.0 - b)*W_BITS14_) + 0.5)|0;
|
||
iw10 = (((1.0 - a)*b*W_BITS14_) + 0.5)|0;
|
||
iw11 = (W_BITS14_ - iw00 - iw01 - iw10);
|
||
b1 = 0.0, b2 = 0.0;
|
||
|
||
for( y = 0; y < win_size; ++y ) {
|
||
jptr = ( (y + inext_y)*lw + inext_x )|0;
|
||
|
||
iptr = (y*win_size)|0;
|
||
diptr = iptr << 1;
|
||
for( x = 0 ; x < win_size; ++x, ++jptr, ++iptr ) {
|
||
ival = ( (img_next[jptr])*iw00 + (img_next[jptr+1])*iw01 +
|
||
(img_next[jptr+lw])*iw10 + (img_next[jptr+lw+1])*iw11 );
|
||
ival = (((ival) + W_BITS1m51) >> (W_BITS1m5));
|
||
ival = (ival - iwin_buf[iptr]);
|
||
|
||
b1 += ival * deriv_iwin[diptr++];
|
||
b2 += ival * deriv_iwin[diptr++];
|
||
}
|
||
}
|
||
|
||
b1 *= FLT_SCALE;
|
||
b2 *= FLT_SCALE;
|
||
|
||
delta_x = ((A12*b2 - A22*b1) * D);
|
||
delta_y = ((A12*b1 - A11*b2) * D);
|
||
|
||
next_x += delta_x;
|
||
next_y += delta_y;
|
||
curr_xy[i] = next_x + half_win;
|
||
curr_xy[j] = next_y + half_win;
|
||
|
||
if( delta_x*delta_x + delta_y*delta_y <= eps ) {
|
||
break;
|
||
}
|
||
|
||
if( iter > 0 && Math.abs(delta_x + prev_delta_x) < 0.01 &&
|
||
Math.abs(delta_y + prev_delta_y) < 0.01 ) {
|
||
curr_xy[i] -= delta_x*0.5;
|
||
curr_xy[j] -= delta_y*0.5;
|
||
break;
|
||
}
|
||
|
||
prev_delta_x = delta_x;
|
||
prev_delta_y = delta_y;
|
||
}
|
||
} // points loop
|
||
} // levels loop
|
||
|
||
jsfeat.cache.put_buffer(iwin_node);
|
||
jsfeat.cache.put_buffer(deriv_iwin_node);
|
||
jsfeat.cache.put_buffer(deriv_lev_node);
|
||
}
|
||
};
|
||
})();
|
||
|
||
global.optical_flow_lk = optical_flow_lk;
|
||
|
||
})(jsfeat);
|
||
/**
|
||
* @author Eugene Zatepyakin / http://inspirit.ru/
|
||
*
|
||
* this code is a rewrite from https://github.com/mtschirs/js-objectdetect implementation
|
||
* @author Martin Tschirsich / http://www.tu-darmstadt.de/~m_t
|
||
*/
|
||
|
||
(function(global) {
|
||
"use strict";
|
||
//
|
||
var haar = (function() {
|
||
|
||
var _group_func = function(r1, r2) {
|
||
var distance = (r1.width * 0.25 + 0.5)|0;
|
||
|
||
return r2.x <= r1.x + distance &&
|
||
r2.x >= r1.x - distance &&
|
||
r2.y <= r1.y + distance &&
|
||
r2.y >= r1.y - distance &&
|
||
r2.width <= (r1.width * 1.5 + 0.5)|0 &&
|
||
(r2.width * 1.5 + 0.5)|0 >= r1.width;
|
||
};
|
||
|
||
return {
|
||
|
||
edges_density: 0.07,
|
||
|
||
detect_single_scale: function(int_sum, int_sqsum, int_tilted, int_canny_sum, width, height, scale, classifier) {
|
||
var win_w = (classifier.size[0] * scale)|0,
|
||
win_h = (classifier.size[1] * scale)|0,
|
||
step_x = (0.5 * scale + 1.5)|0,
|
||
step_y = step_x;
|
||
var i,j,k,x,y,ex=(width-win_w)|0,ey=(height-win_h)|0;
|
||
var w1=(width+1)|0,edge_dens,mean,variance,std;
|
||
var inv_area = 1.0 / (win_w * win_h);
|
||
var stages,stage,trees,tree,sn,tn,fn,found=true,stage_thresh,stage_sum,tree_sum,feature,features;
|
||
var fi_a,fi_b,fi_c,fi_d,fw,fh;
|
||
|
||
var ii_a=0,ii_b=win_w,ii_c=win_h*w1,ii_d=ii_c+win_w;
|
||
var edges_thresh = ((win_w*win_h) * 0xff * this.edges_density)|0;
|
||
// if too much gradient we also can skip
|
||
//var edges_thresh_high = ((win_w*win_h) * 0xff * 0.3)|0;
|
||
|
||
var rects = [];
|
||
for(y = 0; y < ey; y += step_y) {
|
||
ii_a = y * w1;
|
||
for(x = 0; x < ex; x += step_x, ii_a += step_x) {
|
||
|
||
mean = int_sum[ii_a]
|
||
- int_sum[ii_a+ii_b]
|
||
- int_sum[ii_a+ii_c]
|
||
+ int_sum[ii_a+ii_d];
|
||
|
||
// canny prune
|
||
if(int_canny_sum) {
|
||
edge_dens = (int_canny_sum[ii_a]
|
||
- int_canny_sum[ii_a+ii_b]
|
||
- int_canny_sum[ii_a+ii_c]
|
||
+ int_canny_sum[ii_a+ii_d]);
|
||
if(edge_dens < edges_thresh || mean < 20) {
|
||
x += step_x, ii_a += step_x;
|
||
continue;
|
||
}
|
||
}
|
||
|
||
mean *= inv_area;
|
||
variance = (int_sqsum[ii_a]
|
||
- int_sqsum[ii_a+ii_b]
|
||
- int_sqsum[ii_a+ii_c]
|
||
+ int_sqsum[ii_a+ii_d]) * inv_area - mean * mean;
|
||
|
||
std = variance > 0. ? Math.sqrt(variance) : 1;
|
||
|
||
stages = classifier.complexClassifiers;
|
||
sn = stages.length;
|
||
found = true;
|
||
for(i = 0; i < sn; ++i) {
|
||
stage = stages[i];
|
||
stage_thresh = stage.threshold;
|
||
trees = stage.simpleClassifiers;
|
||
tn = trees.length;
|
||
stage_sum = 0;
|
||
for(j = 0; j < tn; ++j) {
|
||
tree = trees[j];
|
||
tree_sum = 0;
|
||
features = tree.features;
|
||
fn = features.length;
|
||
if(tree.tilted === 1) {
|
||
for(k=0; k < fn; ++k) {
|
||
feature = features[k];
|
||
fi_a = ~~(x + feature[0] * scale) + ~~(y + feature[1] * scale) * w1;
|
||
fw = ~~(feature[2] * scale);
|
||
fh = ~~(feature[3] * scale);
|
||
fi_b = fw * w1;
|
||
fi_c = fh * w1;
|
||
|
||
tree_sum += (int_tilted[fi_a]
|
||
- int_tilted[fi_a + fw + fi_b]
|
||
- int_tilted[fi_a - fh + fi_c]
|
||
+ int_tilted[fi_a + fw - fh + fi_b + fi_c]) * feature[4];
|
||
}
|
||
} else {
|
||
for(k=0; k < fn; ++k) {
|
||
feature = features[k];
|
||
fi_a = ~~(x + feature[0] * scale) + ~~(y + feature[1] * scale) * w1;
|
||
fw = ~~(feature[2] * scale);
|
||
fh = ~~(feature[3] * scale);
|
||
fi_c = fh * w1;
|
||
|
||
tree_sum += (int_sum[fi_a]
|
||
- int_sum[fi_a+fw]
|
||
- int_sum[fi_a+fi_c]
|
||
+ int_sum[fi_a+fi_c+fw]) * feature[4];
|
||
}
|
||
}
|
||
stage_sum += (tree_sum * inv_area < tree.threshold * std) ? tree.left_val : tree.right_val;
|
||
}
|
||
if (stage_sum < stage_thresh) {
|
||
found = false;
|
||
break;
|
||
}
|
||
}
|
||
|
||
if(found) {
|
||
rects.push({"x" : x,
|
||
"y" : y,
|
||
"width" : win_w,
|
||
"height" : win_h,
|
||
"neighbor" : 1,
|
||
"confidence" : stage_sum});
|
||
x += step_x, ii_a += step_x;
|
||
}
|
||
}
|
||
}
|
||
return rects;
|
||
},
|
||
|
||
detect_multi_scale: function(int_sum, int_sqsum, int_tilted, int_canny_sum, width, height, classifier, scale_factor, scale_min) {
|
||
if (typeof scale_factor === "undefined") { scale_factor = 1.2; }
|
||
if (typeof scale_min === "undefined") { scale_min = 1.0; }
|
||
var win_w = classifier.size[0];
|
||
var win_h = classifier.size[1];
|
||
var rects = [];
|
||
while (scale_min * win_w < width && scale_min * win_h < height) {
|
||
rects = rects.concat(this.detect_single_scale(int_sum, int_sqsum, int_tilted, int_canny_sum, width, height, scale_min, classifier));
|
||
scale_min *= scale_factor;
|
||
}
|
||
return rects;
|
||
},
|
||
|
||
// OpenCV method to group detected rectangles
|
||
group_rectangles: function(rects, min_neighbors) {
|
||
if (typeof min_neighbors === "undefined") { min_neighbors = 1; }
|
||
var i, j, n = rects.length;
|
||
var node = [];
|
||
for (i = 0; i < n; ++i) {
|
||
node[i] = {"parent" : -1,
|
||
"element" : rects[i],
|
||
"rank" : 0};
|
||
}
|
||
for (i = 0; i < n; ++i) {
|
||
if (!node[i].element)
|
||
continue;
|
||
var root = i;
|
||
while (node[root].parent != -1)
|
||
root = node[root].parent;
|
||
for (j = 0; j < n; ++j) {
|
||
if( i != j && node[j].element && _group_func(node[i].element, node[j].element)) {
|
||
var root2 = j;
|
||
|
||
while (node[root2].parent != -1)
|
||
root2 = node[root2].parent;
|
||
|
||
if(root2 != root) {
|
||
if(node[root].rank > node[root2].rank)
|
||
node[root2].parent = root;
|
||
else {
|
||
node[root].parent = root2;
|
||
if (node[root].rank == node[root2].rank)
|
||
node[root2].rank++;
|
||
root = root2;
|
||
}
|
||
|
||
/* compress path from node2 to the root: */
|
||
var temp, node2 = j;
|
||
while (node[node2].parent != -1) {
|
||
temp = node2;
|
||
node2 = node[node2].parent;
|
||
node[temp].parent = root;
|
||
}
|
||
|
||
/* compress path from node to the root: */
|
||
node2 = i;
|
||
while (node[node2].parent != -1) {
|
||
temp = node2;
|
||
node2 = node[node2].parent;
|
||
node[temp].parent = root;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
var idx_seq = [];
|
||
var class_idx = 0;
|
||
for(i = 0; i < n; i++) {
|
||
j = -1;
|
||
var node1 = i;
|
||
if(node[node1].element) {
|
||
while (node[node1].parent != -1)
|
||
node1 = node[node1].parent;
|
||
if(node[node1].rank >= 0)
|
||
node[node1].rank = ~class_idx++;
|
||
j = ~node[node1].rank;
|
||
}
|
||
idx_seq[i] = j;
|
||
}
|
||
|
||
var comps = [];
|
||
for (i = 0; i < class_idx+1; ++i) {
|
||
comps[i] = {"neighbors" : 0,
|
||
"x" : 0,
|
||
"y" : 0,
|
||
"width" : 0,
|
||
"height" : 0,
|
||
"confidence" : 0};
|
||
}
|
||
|
||
// count number of neighbors
|
||
for(i = 0; i < n; ++i) {
|
||
var r1 = rects[i];
|
||
var idx = idx_seq[i];
|
||
|
||
if (comps[idx].neighbors == 0)
|
||
comps[idx].confidence = r1.confidence;
|
||
|
||
++comps[idx].neighbors;
|
||
|
||
comps[idx].x += r1.x;
|
||
comps[idx].y += r1.y;
|
||
comps[idx].width += r1.width;
|
||
comps[idx].height += r1.height;
|
||
comps[idx].confidence = Math.max(comps[idx].confidence, r1.confidence);
|
||
}
|
||
|
||
var seq2 = [];
|
||
// calculate average bounding box
|
||
for(i = 0; i < class_idx; ++i) {
|
||
n = comps[i].neighbors;
|
||
if (n >= min_neighbors)
|
||
seq2.push({"x" : (comps[i].x * 2 + n) / (2 * n),
|
||
"y" : (comps[i].y * 2 + n) / (2 * n),
|
||
"width" : (comps[i].width * 2 + n) / (2 * n),
|
||
"height" : (comps[i].height * 2 + n) / (2 * n),
|
||
"neighbors" : comps[i].neighbors,
|
||
"confidence" : comps[i].confidence});
|
||
}
|
||
|
||
var result_seq = [];
|
||
n = seq2.length;
|
||
// filter out small face rectangles inside large face rectangles
|
||
for(i = 0; i < n; ++i) {
|
||
var r1 = seq2[i];
|
||
var flag = true;
|
||
for(j = 0; j < n; ++j) {
|
||
var r2 = seq2[j];
|
||
var distance = (r2.width * 0.25 + 0.5)|0;
|
||
|
||
if(i != j &&
|
||
r1.x >= r2.x - distance &&
|
||
r1.y >= r2.y - distance &&
|
||
r1.x + r1.width <= r2.x + r2.width + distance &&
|
||
r1.y + r1.height <= r2.y + r2.height + distance &&
|
||
(r2.neighbors > Math.max(3, r1.neighbors) || r1.neighbors < 3)) {
|
||
flag = false;
|
||
break;
|
||
}
|
||
}
|
||
|
||
if(flag)
|
||
result_seq.push(r1);
|
||
}
|
||
return result_seq;
|
||
}
|
||
};
|
||
|
||
})();
|
||
|
||
global.haar = haar;
|
||
|
||
})(jsfeat);
|
||
/**
|
||
* BBF: Brightness Binary Feature
|
||
*
|
||
* @author Eugene Zatepyakin / http://inspirit.ru/
|
||
*
|
||
* this code is a rewrite from https://github.com/liuliu/ccv implementation
|
||
* @author Liu Liu / http://liuliu.me/
|
||
*
|
||
* The original paper refers to: YEF∗ Real-Time Object Detection, Yotam Abramson and Bruno Steux
|
||
*/
|
||
|
||
(function(global) {
|
||
"use strict";
|
||
//
|
||
var bbf = (function() {
|
||
|
||
var _group_func = function(r1, r2) {
|
||
var distance = (r1.width * 0.25 + 0.5)|0;
|
||
|
||
return r2.x <= r1.x + distance &&
|
||
r2.x >= r1.x - distance &&
|
||
r2.y <= r1.y + distance &&
|
||
r2.y >= r1.y - distance &&
|
||
r2.width <= (r1.width * 1.5 + 0.5)|0 &&
|
||
(r2.width * 1.5 + 0.5)|0 >= r1.width;
|
||
};
|
||
|
||
var img_pyr = new jsfeat.pyramid_t(1);
|
||
|
||
return {
|
||
|
||
interval: 4,
|
||
scale: 1.1486,
|
||
next: 5,
|
||
scale_to: 1,
|
||
|
||
// make features local copy
|
||
// to avoid array allocation with each scale
|
||
// this is strange but array works faster than Int32 version???
|
||
prepare_cascade: function(cascade) {
|
||
var sn = cascade.stage_classifier.length;
|
||
for (var j = 0; j < sn; j++) {
|
||
var orig_feature = cascade.stage_classifier[j].feature;
|
||
var f_cnt = cascade.stage_classifier[j].count;
|
||
var feature = cascade.stage_classifier[j]._feature = new Array(f_cnt);
|
||
for (var k = 0; k < f_cnt; k++) {
|
||
feature[k] = {"size" : orig_feature[k].size,
|
||
"px" : new Array(orig_feature[k].size),
|
||
"pz" : new Array(orig_feature[k].size),
|
||
"nx" : new Array(orig_feature[k].size),
|
||
"nz" : new Array(orig_feature[k].size)};
|
||
}
|
||
}
|
||
},
|
||
|
||
build_pyramid: function(src, min_width, min_height, interval) {
|
||
if (typeof interval === "undefined") { interval = 4; }
|
||
|
||
var sw=src.cols,sh=src.rows;
|
||
var i=0,nw=0,nh=0;
|
||
var new_pyr=false;
|
||
var src0=src,src1=src;
|
||
var data_type = jsfeat.U8_t | jsfeat.C1_t;
|
||
|
||
this.interval = interval;
|
||
this.scale = Math.pow(2, 1 / (this.interval + 1));
|
||
this.next = (this.interval + 1)|0;
|
||
this.scale_to = (Math.log(Math.min(sw / min_width, sh / min_height)) / Math.log(this.scale))|0;
|
||
|
||
var pyr_l = ((this.scale_to + this.next * 2) * 4) | 0;
|
||
if(img_pyr.levels != pyr_l) {
|
||
img_pyr.levels = pyr_l;
|
||
img_pyr.data = new Array(pyr_l);
|
||
new_pyr = true;
|
||
img_pyr.data[0] = src; // first is src
|
||
}
|
||
|
||
for (i = 1; i <= this.interval; ++i) {
|
||
nw = (sw / Math.pow(this.scale, i))|0;
|
||
nh = (sh / Math.pow(this.scale, i))|0;
|
||
src0 = img_pyr.data[i<<2];
|
||
if(new_pyr || nw != src0.cols || nh != src0.rows) {
|
||
img_pyr.data[i<<2] = new jsfeat.matrix_t(nw, nh, data_type);
|
||
src0 = img_pyr.data[i<<2];
|
||
}
|
||
jsfeat.imgproc.resample(src, src0, nw, nh);
|
||
}
|
||
for (i = this.next; i < this.scale_to + this.next * 2; ++i) {
|
||
src1 = img_pyr.data[(i << 2) - (this.next << 2)];
|
||
src0 = img_pyr.data[i<<2];
|
||
nw = src1.cols >> 1;
|
||
nh = src1.rows >> 1;
|
||
if(new_pyr || nw != src0.cols || nh != src0.rows) {
|
||
img_pyr.data[i<<2] = new jsfeat.matrix_t(nw, nh, data_type);
|
||
src0 = img_pyr.data[i<<2];
|
||
}
|
||
jsfeat.imgproc.pyrdown(src1, src0);
|
||
}
|
||
for (i = this.next * 2; i < this.scale_to + this.next * 2; ++i) {
|
||
src1 = img_pyr.data[(i << 2) - (this.next << 2)];
|
||
nw = src1.cols >> 1;
|
||
nh = src1.rows >> 1;
|
||
src0 = img_pyr.data[(i<<2)+1];
|
||
if(new_pyr || nw != src0.cols || nh != src0.rows) {
|
||
img_pyr.data[(i<<2)+1] = new jsfeat.matrix_t(nw, nh, data_type);
|
||
src0 = img_pyr.data[(i<<2)+1];
|
||
}
|
||
jsfeat.imgproc.pyrdown(src1, src0, 1, 0);
|
||
//
|
||
src0 = img_pyr.data[(i<<2)+2];
|
||
if(new_pyr || nw != src0.cols || nh != src0.rows) {
|
||
img_pyr.data[(i<<2)+2] = new jsfeat.matrix_t(nw, nh, data_type);
|
||
src0 = img_pyr.data[(i<<2)+2];
|
||
}
|
||
jsfeat.imgproc.pyrdown(src1, src0, 0, 1);
|
||
//
|
||
src0 = img_pyr.data[(i<<2)+3];
|
||
if(new_pyr || nw != src0.cols || nh != src0.rows) {
|
||
img_pyr.data[(i<<2)+3] = new jsfeat.matrix_t(nw, nh, data_type);
|
||
src0 = img_pyr.data[(i<<2)+3];
|
||
}
|
||
jsfeat.imgproc.pyrdown(src1, src0, 1, 1);
|
||
}
|
||
return img_pyr;
|
||
},
|
||
|
||
detect: function(pyramid, cascade) {
|
||
var interval = this.interval;
|
||
var scale = this.scale;
|
||
var next = this.next;
|
||
var scale_upto = this.scale_to;
|
||
var i=0,j=0,k=0,n=0,x=0,y=0,q=0,sn=0,f_cnt=0,q_cnt=0,p=0,pmin=0,nmax=0,f=0,i4=0,qw=0,qh=0;
|
||
var sum=0.0, alpha, feature, orig_feature, feature_k, feature_o, flag = true, shortcut=true;
|
||
var scale_x = 1.0, scale_y = 1.0;
|
||
var dx = [0, 1, 0, 1];
|
||
var dy = [0, 0, 1, 1];
|
||
var seq = [];
|
||
var pyr=pyramid.data, bpp = 1, bpp2 = 2, bpp4 = 4;
|
||
|
||
var u8 = [], u8o = [0,0,0];
|
||
var step = [0,0,0];
|
||
var paddings = [0,0,0];
|
||
|
||
for (i = 0; i < scale_upto; i++) {
|
||
i4 = (i<<2);
|
||
qw = pyr[i4 + (next << 3)].cols - (cascade.width >> 2);
|
||
qh = pyr[i4 + (next << 3)].rows - (cascade.height >> 2);
|
||
step[0] = pyr[i4].cols * bpp;
|
||
step[1] = pyr[i4 + (next << 2)].cols * bpp;
|
||
step[2] = pyr[i4 + (next << 3)].cols * bpp;
|
||
paddings[0] = (pyr[i4].cols * bpp4) - (qw * bpp4);
|
||
paddings[1] = (pyr[i4 + (next << 2)].cols * bpp2) - (qw * bpp2);
|
||
paddings[2] = (pyr[i4 + (next << 3)].cols * bpp) - (qw * bpp);
|
||
sn = cascade.stage_classifier.length;
|
||
for (j = 0; j < sn; j++) {
|
||
orig_feature = cascade.stage_classifier[j].feature;
|
||
feature = cascade.stage_classifier[j]._feature;
|
||
f_cnt = cascade.stage_classifier[j].count;
|
||
for (k = 0; k < f_cnt; k++) {
|
||
feature_k = feature[k];
|
||
feature_o = orig_feature[k];
|
||
q_cnt = feature_o.size|0;
|
||
for (q = 0; q < q_cnt; q++) {
|
||
feature_k.px[q] = (feature_o.px[q] * bpp) + feature_o.py[q] * step[feature_o.pz[q]];
|
||
feature_k.pz[q] = feature_o.pz[q];
|
||
feature_k.nx[q] = (feature_o.nx[q] * bpp) + feature_o.ny[q] * step[feature_o.nz[q]];
|
||
feature_k.nz[q] = feature_o.nz[q];
|
||
}
|
||
}
|
||
}
|
||
u8[0] = pyr[i4].data; u8[1] = pyr[i4 + (next<<2)].data;
|
||
for (q = 0; q < 4; q++) {
|
||
u8[2] = pyr[i4 + (next<<3) + q].data;
|
||
u8o[0] = (dx[q]*bpp2) + dy[q] * (pyr[i4].cols*bpp2);
|
||
u8o[1] = (dx[q]*bpp) + dy[q] * (pyr[i4 + (next<<2)].cols*bpp);
|
||
u8o[2] = 0;
|
||
for (y = 0; y < qh; y++) {
|
||
for (x = 0; x < qw; x++) {
|
||
sum = 0;
|
||
flag = true;
|
||
sn = cascade.stage_classifier.length;
|
||
for (j = 0; j < sn; j++) {
|
||
sum = 0;
|
||
alpha = cascade.stage_classifier[j].alpha;
|
||
feature = cascade.stage_classifier[j]._feature;
|
||
f_cnt = cascade.stage_classifier[j].count;
|
||
for (k = 0; k < f_cnt; k++) {
|
||
feature_k = feature[k];
|
||
pmin = u8[feature_k.pz[0]][u8o[feature_k.pz[0]] + feature_k.px[0]];
|
||
nmax = u8[feature_k.nz[0]][u8o[feature_k.nz[0]] + feature_k.nx[0]];
|
||
if (pmin <= nmax) {
|
||
sum += alpha[k << 1];
|
||
} else {
|
||
shortcut = true;
|
||
q_cnt = feature_k.size;
|
||
for (f = 1; f < q_cnt; f++) {
|
||
if (feature_k.pz[f] >= 0) {
|
||
p = u8[feature_k.pz[f]][u8o[feature_k.pz[f]] + feature_k.px[f]];
|
||
if (p < pmin) {
|
||
if (p <= nmax) {
|
||
shortcut = false;
|
||
break;
|
||
}
|
||
pmin = p;
|
||
}
|
||
}
|
||
if (feature_k.nz[f] >= 0) {
|
||
n = u8[feature_k.nz[f]][u8o[feature_k.nz[f]] + feature_k.nx[f]];
|
||
if (n > nmax) {
|
||
if (pmin <= n) {
|
||
shortcut = false;
|
||
break;
|
||
}
|
||
nmax = n;
|
||
}
|
||
}
|
||
}
|
||
sum += (shortcut) ? alpha[(k << 1) + 1] : alpha[k << 1];
|
||
}
|
||
}
|
||
if (sum < cascade.stage_classifier[j].threshold) {
|
||
flag = false;
|
||
break;
|
||
}
|
||
}
|
||
if (flag) {
|
||
seq.push({"x" : (x * 4 + dx[q] * 2) * scale_x,
|
||
"y" : (y * 4 + dy[q] * 2) * scale_y,
|
||
"width" : cascade.width * scale_x,
|
||
"height" : cascade.height * scale_y,
|
||
"neighbor" : 1,
|
||
"confidence" : sum});
|
||
++x;
|
||
u8o[0] += bpp4;
|
||
u8o[1] += bpp2;
|
||
u8o[2] += bpp;
|
||
}
|
||
u8o[0] += bpp4;
|
||
u8o[1] += bpp2;
|
||
u8o[2] += bpp;
|
||
}
|
||
u8o[0] += paddings[0];
|
||
u8o[1] += paddings[1];
|
||
u8o[2] += paddings[2];
|
||
}
|
||
}
|
||
scale_x *= scale;
|
||
scale_y *= scale;
|
||
}
|
||
|
||
return seq;
|
||
},
|
||
|
||
// OpenCV method to group detected rectangles
|
||
group_rectangles: function(rects, min_neighbors) {
|
||
if (typeof min_neighbors === "undefined") { min_neighbors = 1; }
|
||
var i, j, n = rects.length;
|
||
var node = [];
|
||
for (i = 0; i < n; ++i) {
|
||
node[i] = {"parent" : -1,
|
||
"element" : rects[i],
|
||
"rank" : 0};
|
||
}
|
||
for (i = 0; i < n; ++i) {
|
||
if (!node[i].element)
|
||
continue;
|
||
var root = i;
|
||
while (node[root].parent != -1)
|
||
root = node[root].parent;
|
||
for (j = 0; j < n; ++j) {
|
||
if( i != j && node[j].element && _group_func(node[i].element, node[j].element)) {
|
||
var root2 = j;
|
||
|
||
while (node[root2].parent != -1)
|
||
root2 = node[root2].parent;
|
||
|
||
if(root2 != root) {
|
||
if(node[root].rank > node[root2].rank)
|
||
node[root2].parent = root;
|
||
else {
|
||
node[root].parent = root2;
|
||
if (node[root].rank == node[root2].rank)
|
||
node[root2].rank++;
|
||
root = root2;
|
||
}
|
||
|
||
/* compress path from node2 to the root: */
|
||
var temp, node2 = j;
|
||
while (node[node2].parent != -1) {
|
||
temp = node2;
|
||
node2 = node[node2].parent;
|
||
node[temp].parent = root;
|
||
}
|
||
|
||
/* compress path from node to the root: */
|
||
node2 = i;
|
||
while (node[node2].parent != -1) {
|
||
temp = node2;
|
||
node2 = node[node2].parent;
|
||
node[temp].parent = root;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
var idx_seq = [];
|
||
var class_idx = 0;
|
||
for(i = 0; i < n; i++) {
|
||
j = -1;
|
||
var node1 = i;
|
||
if(node[node1].element) {
|
||
while (node[node1].parent != -1)
|
||
node1 = node[node1].parent;
|
||
if(node[node1].rank >= 0)
|
||
node[node1].rank = ~class_idx++;
|
||
j = ~node[node1].rank;
|
||
}
|
||
idx_seq[i] = j;
|
||
}
|
||
|
||
var comps = [];
|
||
for (i = 0; i < class_idx+1; ++i) {
|
||
comps[i] = {"neighbors" : 0,
|
||
"x" : 0,
|
||
"y" : 0,
|
||
"width" : 0,
|
||
"height" : 0,
|
||
"confidence" : 0};
|
||
}
|
||
|
||
// count number of neighbors
|
||
for(i = 0; i < n; ++i) {
|
||
var r1 = rects[i];
|
||
var idx = idx_seq[i];
|
||
|
||
if (comps[idx].neighbors == 0)
|
||
comps[idx].confidence = r1.confidence;
|
||
|
||
++comps[idx].neighbors;
|
||
|
||
comps[idx].x += r1.x;
|
||
comps[idx].y += r1.y;
|
||
comps[idx].width += r1.width;
|
||
comps[idx].height += r1.height;
|
||
comps[idx].confidence = Math.max(comps[idx].confidence, r1.confidence);
|
||
}
|
||
|
||
var seq2 = [];
|
||
// calculate average bounding box
|
||
for(i = 0; i < class_idx; ++i) {
|
||
n = comps[i].neighbors;
|
||
if (n >= min_neighbors)
|
||
seq2.push({"x" : (comps[i].x * 2 + n) / (2 * n),
|
||
"y" : (comps[i].y * 2 + n) / (2 * n),
|
||
"width" : (comps[i].width * 2 + n) / (2 * n),
|
||
"height" : (comps[i].height * 2 + n) / (2 * n),
|
||
"neighbors" : comps[i].neighbors,
|
||
"confidence" : comps[i].confidence});
|
||
}
|
||
|
||
var result_seq = [];
|
||
n = seq2.length;
|
||
// filter out small face rectangles inside large face rectangles
|
||
for(i = 0; i < n; ++i) {
|
||
var r1 = seq2[i];
|
||
var flag = true;
|
||
for(j = 0; j < n; ++j) {
|
||
var r2 = seq2[j];
|
||
var distance = (r2.width * 0.25 + 0.5)|0;
|
||
|
||
if(i != j &&
|
||
r1.x >= r2.x - distance &&
|
||
r1.y >= r2.y - distance &&
|
||
r1.x + r1.width <= r2.x + r2.width + distance &&
|
||
r1.y + r1.height <= r2.y + r2.height + distance &&
|
||
(r2.neighbors > Math.max(3, r1.neighbors) || r1.neighbors < 3)) {
|
||
flag = false;
|
||
break;
|
||
}
|
||
}
|
||
|
||
if(flag)
|
||
result_seq.push(r1);
|
||
}
|
||
return result_seq;
|
||
}
|
||
|
||
};
|
||
|
||
})();
|
||
|
||
global.bbf = bbf;
|
||
|
||
})(jsfeat);
|
||
/**
|
||
* @author Eugene Zatepyakin / http://inspirit.ru/
|
||
*/
|
||
|
||
(function(lib) {
|
||
"use strict";
|
||
|
||
{
|
||
// in commonjs, or when AMD wrapping has been applied, define its namespaces as exports
|
||
module.exports = lib;
|
||
}
|
||
})(jsfeat);
|
||
});
|
||
|
||
var findFaceWorker = function(e) {
|
||
var window = self;
|
||
|
||
var jsfeat=jsfeat||{REVISION:"ALPHA"};(function(r){var o=1.192092896e-7;var l=1e-37;var m=256,i=512,h=1024,x=2048,w=4096;var A=1,n=2,b=3,p=4;var z=new Int32Array([-1,1,4,-1,4,-1,-1,-1,8,-1,-1,-1,-1,-1,-1,-1,8]);var y=(function(){return function(B){return(B&65280)}})();var k=(function(){return function(B){return(B&255)}})();var c=(function(){return function(B){return z[(B&65280)>>8]}})();var a=0;var f=1;var e=2;var u=3;var d=1;var s=1;var g=2;var v=(function(){function B(D,C){this.size=((D+7)|0)&-8;if(typeof C==="undefined"){this.buffer=new ArrayBuffer(this.size);}else{this.buffer=C;this.size=C.length;}this.u8=new Uint8Array(this.buffer);this.i32=new Int32Array(this.buffer);this.f32=new Float32Array(this.buffer);this.f64=new Float64Array(this.buffer);}return B})();var q=(function(){function B(F,D,E,C){this.type=y(E)|0;this.channel=k(E)|0;this.cols=F|0;this.rows=D|0;if(typeof C==="undefined"){this.allocate();}else{this.buffer=C;this.data=this.type&m?this.buffer.u8:(this.type&i?this.buffer.i32:(this.type&h?this.buffer.f32:this.buffer.f64));}}B.prototype.allocate=function(){delete this.data;delete this.buffer;this.buffer=new v((this.cols*c(this.type)*this.channel)*this.rows);this.data=this.type&m?this.buffer.u8:(this.type&i?this.buffer.i32:(this.type&h?this.buffer.f32:this.buffer.f64));};B.prototype.copy_to=function(D){var C=D.data,G=this.data;var E=0,F=(this.cols*this.rows*this.channel)|0;for(;E<F-4;E+=4){C[E]=G[E];C[E+1]=G[E+1];C[E+2]=G[E+2];C[E+3]=G[E+3];}for(;E<F;++E){C[E]=G[E];}};B.prototype.resize=function(F,D,C){if(typeof C==="undefined"){C=this.channel;}var E=(F*c(this.type)*C)*D;if(E>this.buffer.size){this.cols=F;this.rows=D;this.channel=C;this.allocate();}else{this.cols=F;this.rows=D;this.channel=C;}};return B})();var t=(function(){function B(C){this.levels=C|0;this.data=new Array(C);this.pyrdown=jsfeat.imgproc.pyrdown;}B.prototype.allocate=function(C,E,F){var D=this.levels;while(--D>=0){this.data[D]=new q(C>>D,E>>D,F);}};B.prototype.build=function(F,E){if(typeof E==="undefined"){E=true;}var H=2,D=F,C=this.data[0];if(!E){var G=F.cols*F.rows;while(--G>=0){C.data[G]=F.data[G];}}C=this.data[1];this.pyrdown(D,C);for(;H<this.levels;++H){D=C;C=this.data[H];this.pyrdown(D,C);}};return B})();var j=(function(){function B(C,G,E,F,D){if(typeof C==="undefined"){C=0;}if(typeof G==="undefined"){G=0;}if(typeof E==="undefined"){E=0;}if(typeof F==="undefined"){F=0;}if(typeof D==="undefined"){D=-1;}this.x=C;this.y=G;this.score=E;this.level=F;this.angle=D;}return B})();r.U8_t=m;r.S32_t=i;r.F32_t=h;r.S64_t=x;r.F64_t=w;r.C1_t=A;r.C2_t=n;r.C3_t=b;r.C4_t=p;r.U8C1_t=m|A;r.U8C3_t=m|b;r.U8C4_t=m|p;r.F32C1_t=h|A;r.F32C2_t=h|n;r.S32C1_t=i|A;r.S32C2_t=i|n;r.EPSILON=o;r.FLT_MIN=l;r.COLOR_RGBA2GRAY=a;r.COLOR_RGB2GRAY=f;r.COLOR_BGRA2GRAY=e;r.COLOR_BGR2GRAY=u;r.BOX_BLUR_NOSCALE=d;r.SVD_U_T=s;r.SVD_V_T=g;r.get_data_type=y;r.get_channel=k;r.get_data_type_size=c;r.data_t=v;r.matrix_t=q;r.pyramid_t=t;r.keypoint_t=j;})(jsfeat);(function(b){var a=(function(){var f=(function(){function g(h){this.next=null;this.data=new jsfeat.data_t(h);this.size=this.data.size;this.buffer=this.data.buffer;this.u8=this.data.u8;this.i32=this.data.i32;this.f32=this.data.f32;this.f64=this.data.f64;}g.prototype.resize=function(h){delete this.data;this.data=new jsfeat.data_t(h);this.size=this.data.size;this.buffer=this.data.buffer;this.u8=this.data.u8;this.i32=this.data.i32;this.f32=this.data.f32;this.f64=this.data.f64;};return g})();var e,c;var d=0;return{allocate:function(g,k){e=c=new f(k);for(var h=0;h<g;++h){var j=new f(k);c=c.next=j;d++;}},get_buffer:function(g){var h=e;e=e.next;d--;if(g>h.size){h.resize(g);}return h},put_buffer:function(g){c=c.next=g;d++;}}})();b.cache=a;a.allocate(30,640*4);})(jsfeat);(function(b){var a=(function(){var c=new Int32Array(48*2);return{get_gaussian_kernel:function(p,m,e,l){var f=0,j=0,o=0,n=0,d=0;var g=0;var h=jsfeat.cache.get_buffer(p<<2);var k=h.f32;if((p&1)==1&&p<=7&&m<=0){switch(p>>1){case 0:k[0]=1;g=1;break;case 1:k[0]=0.25,k[1]=0.5,k[2]=0.25;g=0.25+0.5+0.25;break;case 2:k[0]=0.0625,k[1]=0.25,k[2]=0.375,k[3]=0.25,k[4]=0.0625;g=0.0625+0.25+0.375+0.25+0.0625;break;case 3:k[0]=0.03125,k[1]=0.109375,k[2]=0.21875,k[3]=0.28125,k[4]=0.21875,k[5]=0.109375,k[6]=0.03125;g=0.03125+0.109375+0.21875+0.28125+0.21875+0.109375+0.03125;break}}else{n=m>0?m:((p-1)*0.5-1)*0.3+0.8;d=-0.5/(n*n);for(;f<p;++f){j=f-(p-1)*0.5;o=Math.exp(d*j*j);k[f]=o;g+=o;}}if(l&jsfeat.U8_t){g=256/g;for(f=0;f<p;++f){e[f]=(k[f]*g+0.5)|0;}}else{g=1/g;for(f=0;f<p;++f){e[f]=k[f]*g;}}jsfeat.cache.put_buffer(h);},perspective_4point_transform:function(x,B,r,w,g,A,q,v,f,z,p,u,e,y,o,t,d){var Y=B;var X=z;var W=q;var V=Y*X*W;var U=o;var T=Y*U;var S=X*T;var R=p;var n=Y*R;var m=A;var k=r;var j=y;var i=k*j;var h=i*m;var ax=j*m*R;var aw=j*W;var aq=j*R;var ao=X*W;var am=U*X;var aj=U*m;var ag=R*m;var Q=1/(aw-aq-ao+am-aj+ag);var O=Y*j;var N=k*m;var M=W*Y;var L=U*M;var K=k*X;var I=i*R;var G=k*R*m;var D=W*U*X;var C=U*k;var av=-(S-V+n*m-m*T-i*X+h-ax+aw*X)*Q;var au=(V-S-O*W+O*R+h-X*N+aj*X-ax)*Q;var ar=Y;var ap=(-R*T+L+K*W-i*W+I-G+aj*R-D)*Q;var an=(-L+M*R-C*X+I-G+C*m+D-aw*R)*Q;var al=k;var ai=(-n+M+K-N+aq-aw-am+aj)*Q;var af=(-T+n+i-K+aj-ag-aw+ao)*Q;Y=w;X=u;W=f;V=Y*X*W;U=d;T=Y*U;S=X*T;R=e;n=Y*R;m=v;k=g;j=t;i=k*j;h=i*m;ax=j*m*R;aw=j*W;aq=j*R;ao=X*W;am=U*X;aj=U*m;ag=R*m;Q=1/(aw-aq-ao+am-aj+ag);O=Y*j;N=k*m;M=W*Y;L=U*M;K=k*X;I=i*R;G=k*R*m;D=W*U*X;C=U*k;var ak=-(S-V+n*m-m*T-i*X+h-ax+aw*X)*Q;var ah=(V-S-O*W+O*R+h-X*N+aj*X-ax)*Q;var ae=Y;var ad=(-R*T+L+K*W-i*W+I-G+aj*R-D)*Q;var ac=(-L+M*R-C*X+I-G+C*m+D-aw*R)*Q;var ab=k;var aa=(-n+M+K-N+aq-aw-am+aj)*Q;var Z=(-T+n+i-K+aj-ag-aw+ao)*Q;X=an-af*al;W=av*an;V=av*al;T=ap*au;S=ar*ap;n=au*ai;var l=ar*ai;j=1/(W-V*af-T+S*af+n*al-l*an);h=-ap+al*ai;var at=-ap*af+an*ai;ag=-au+ar*af;var P=av-l;N=av*af-n;M=-au*al+ar*an;var J=V-S;var H=W-T;G=X*j;var F=ag*j;var E=M*j;var s=x.data;s[0]=ak*G+ah*(h*j)-ae*(at*j);s[1]=ak*F+ah*(P*j)-ae*(N*j);s[2]=-ak*E-ah*(J*j)+ae*(H*j);s[3]=ad*G+ac*(h*j)-ab*(at*j);s[4]=ad*F+ac*(P*j)-ab*(N*j);s[5]=-ad*E-ac*(J*j)+ab*(H*j);s[6]=aa*G+Z*(h*j)-at*j;s[7]=aa*F+Z*(P*j)-N*j;s[8]=-aa*E-Z*(J*j)+H*j;},qsort:function(o,J,s,u){var D=7;var v,r,q,p;var C=0,j=0,G=0,B=0,z=0,A=0,e=0,y=0,E=0;var x=0,w=0,h=0,g=0,l=0,I=0,H=0,F=0,f=0;var k=c;if((s-J+1)<=1){return}k[0]=J;k[1]=s;while(C>=0){j=k[C<<1];G=k[(C<<1)+1];C--;for(;;){z=(G-j)+1;if(z<=D){for(e=j+1;e<=G;e++){for(y=e;y>j&&u(o[y],o[y-1]);y--){v=o[y];o[y]=o[y-1];o[y-1]=v;}}break}else{f=0;x=j;h=G;l=j+(z>>1);if(z>40){E=z>>3;I=j,H=j+E,F=j+(E<<1);r=o[I],q=o[H],p=o[F];j=u(r,q)?(u(q,p)?H:(u(r,p)?F:I)):(u(p,q)?H:(u(r,p)?I:F));I=l-E,H=l,F=l+E;r=o[I],q=o[H],p=o[F];l=u(r,q)?(u(q,p)?H:(u(r,p)?F:I)):(u(p,q)?H:(u(r,p)?I:F));I=G-(E<<1),H=G-E,F=G;r=o[I],q=o[H],p=o[F];G=u(r,q)?(u(q,p)?H:(u(r,p)?F:I)):(u(p,q)?H:(u(r,p)?I:F));}I=j,H=l,F=G;r=o[I],q=o[H],p=o[F];l=u(r,q)?(u(q,p)?H:(u(r,p)?F:I)):(u(p,q)?H:(u(r,p)?I:F));if(l!=x){v=o[l];o[l]=o[x];o[x]=v;l=x;}j=w=x+1;G=g=h;r=o[l];for(;;){while(j<=G&&!u(r,o[j])){if(!u(o[j],r)){if(j>w){v=o[w];o[w]=o[j];o[j]=v;}f=1;w++;}j++;}while(j<=G&&!u(o[G],r)){if(!u(r,o[G])){if(G<g){v=o[g];o[g]=o[G];o[G]=v;}f=1;g--;}G--;}if(j>G){break}v=o[j];o[j]=o[G];o[G]=v;f=1;j++;G--;}if(f==0){j=x,G=h;for(e=j+1;e<=G;e++){for(y=e;y>j&&u(o[y],o[y-1]);y--){v=o[y];o[y]=o[y-1];o[y-1]=v;}}break}z=Math.min((w-x),(j-w));A=(j-z)|0;for(B=0;B<z;++B,++A){v=o[x+B];o[x+B]=o[A];o[A]=v;}z=Math.min((h-g),(g-G));A=(h-z+1)|0;for(B=0;B<z;++B,++A){v=o[j+B];o[j+B]=o[A];o[A]=v;}z=(j-w);A=(g-G);if(z>1){if(A>1){if(z>A){++C;k[C<<1]=x;k[(C<<1)+1]=x+z-1;j=h-A+1,G=h;}else{++C;k[C<<1]=h-A+1;k[(C<<1)+1]=h;j=x,G=x+z-1;}}else{j=x,G=x+z-1;}}else{if(A>1){j=h-A+1,G=h;}else{break}}}}}},median:function(k,d,i){var e;var f=0,j=0,g=0,h=(d+i)>>1;for(;;){if(i<=d){return k[h]}if(i==(d+1)){if(k[d]>k[i]){e=k[d];k[d]=k[i];k[i]=e;}return k[h]}f=((d+i)>>1);if(k[f]>k[i]){e=k[f];k[f]=k[i];k[i]=e;}if(k[d]>k[i]){e=k[d];k[d]=k[i];k[i]=e;}if(k[f]>k[d]){e=k[f];k[f]=k[d];k[d]=e;}j=(d+1);e=k[f];k[f]=k[j];k[j]=e;g=i;for(;;){do{++j;}while(k[d]>k[j]);do{--g;}while(k[g]>k[d]);if(g<j){break}e=k[j];k[j]=k[g];k[g]=e;}e=k[d];k[d]=k[g];k[g]=e;if(g<=h){d=j;}else{if(g>=h){i=(g-1);}}}return 0}}})();b.math=a;})(jsfeat);(function(b){var a=(function(){return{identity:function(j,g){if(typeof g==="undefined"){g=1;}var i=j.data;var f=j.rows,h=j.cols,e=(h+1)|0;var c=f*h;var d=c;while(--c>=0){i[c]=0;}c=d;d=0;while(d<c){i[d]=g;d=d+e;}},transpose:function(f,d){var l=0,h=0,k=d.rows,c=d.cols;var n=0,e=0,m=0;var o=d.data,g=f.data;for(;l<k;e+=1,n+=c,l++){m=e;for(h=0;h<c;m+=k,h++){g[m]=o[n+h];}}},multiply:function(l,n,m){var u=0,s=0,o=0;var r=0,t=0,q=0,w=0,g=0;var f=n.cols,e=n.rows,p=m.cols;var v=n.data,d=m.data,h=l.data;var c=0;for(;u<e;r+=f,u++){for(w=0,s=0;s<p;g++,w++,s++){q=w;t=r;c=0;for(o=0;o<f;t++,q+=p,o++){c+=v[t]*d[q];}h[g]=c;}}},multiply_ABt:function(c,g,d){var p=0,n=0,m=0;var r=0,l=0,f=0,u=0;var e=g.cols,o=g.rows,q=d.rows;var v=g.data,t=d.data,h=c.data;var s=0;for(;p<o;r+=e,p++){for(f=0,n=0;n<q;u++,n++){l=r;s=0;for(m=0;m<e;l++,f++,m++){s+=v[l]*t[f];}h[u]=s;}}},multiply_AtB:function(l,n,m){var u=0,s=0,o=0;var r=0,t=0,q=0,w=0,g=0;var f=n.cols,e=n.rows,p=m.cols;var v=n.data,d=m.data,h=l.data;var c=0;for(;u<f;r++,u++){for(w=0,s=0;s<p;g++,w++,s++){q=w;t=r;c=0;for(o=0;o<e;t+=f,q+=p,o++){c+=v[t]*d[q];}h[g]=c;}}},multiply_AAt:function(d,h){var q=0,o=0,n=0;var c=0,r=0,m=0,g=0,e=0,u=0;var f=h.cols,p=h.rows;var t=h.data,l=d.data;var s=0;for(;q<p;c+=p+1,r=m,q++){e=c;u=c;g=r;for(o=q;o<p;e++,u+=p,o++){m=r;s=0;for(n=0;n<f;n++){s+=t[m++]*t[g++];}l[e]=s;l[u]=s;}}},multiply_AtA:function(c,g){var r=0,p=0,n=0;var s=0,m=0,f=0,o=0,d=0,l=0;var e=g.cols,q=g.rows;var u=g.data,h=c.data;var t=0;for(;r<e;o+=e,r++){s=r;l=o+r;d=l;for(p=r;p<e;d++,l+=e,p++){m=s;f=p;t=0;for(n=0;n<q;m+=e,f+=e,n++){t+=u[m]*u[f];}h[d]=t;h[l]=t;}}},identity_3x3:function(e,d){if(typeof d==="undefined"){d=1;}var c=e.data;c[0]=c[4]=c[8]=d;c[1]=c[2]=c[3]=0;c[5]=c[6]=c[7]=0;},invert_3x3:function(s,e){var o=s.data,h=e.data;var n=o[4];var m=o[8];var l=o[5];var k=o[7];var j=o[0];var i=j*n;var v=j*l;var u=o[3];var t=o[1];var r=u*t;var q=o[2];var p=u*q;var g=o[6];var f=g*t;var d=g*q;var c=1/(i*m-v*k-r*m+p*k+f*l-d*n);h[0]=(n*m-l*k)*c;h[1]=-(t*m-q*k)*c;h[2]=-(-t*l+q*n)*c;h[3]=-(u*m-l*g)*c;h[4]=(j*m-d)*c;h[5]=-(v-p)*c;h[6]=-(-u*k+n*g)*c;h[7]=-(j*k-f)*c;h[8]=(i-r)*c;},multiply_3x3:function(r,v,t){var y=r.data,z=v.data,l=t.data;var x=z[0],w=z[1],u=z[2];var s=z[3],q=z[4],p=z[5];var o=z[6],n=z[7],m=z[8];var k=l[0],j=l[1],i=l[2];var h=l[3],g=l[4],f=l[5];var e=l[6],d=l[7],c=l[8];y[0]=x*k+w*h+u*e;y[1]=x*j+w*g+u*d;y[2]=x*i+w*f+u*c;y[3]=s*k+q*h+p*e;y[4]=s*j+q*g+p*d;y[5]=s*i+q*f+p*c;y[6]=o*k+n*h+m*e;y[7]=o*j+n*g+m*d;y[8]=o*i+n*f+m*c;},mat3x3_determinant:function(d){var c=d.data;return c[0]*c[4]*c[8]-c[0]*c[5]*c[7]-c[3]*c[1]*c[8]+c[3]*c[2]*c[7]+c[6]*c[1]*c[5]-c[6]*c[2]*c[4]},determinant_3x3:function(h,g,f,e,d,c,k,j,i){return h*d*i-h*c*j-e*g*i+e*f*j+k*g*c-k*f*d}}})();b.matmath=a;})(jsfeat);(function(b){var a=(function(){var f=function(g,j,i,h){h=g[j];g[j]=g[i];g[i]=h;};var d=function(h,g){h=Math.abs(h);g=Math.abs(g);if(h>g){g/=h;return h*Math.sqrt(1+g*g)}if(g>0){h/=g;return g*Math.sqrt(1+h*h)}return 0};var c=function(H,o,q,r,h,I){var C=jsfeat.EPSILON;var N=0,M=0,L=0,J=0,K=0,D=0,R=0,G=0;var u=0,v=I*I*30;var E=0,U=0,F=0,x=0,z=0,B=0,Q=0,T=0,w=0;var P=jsfeat.cache.get_buffer(I<<2);var S=jsfeat.cache.get_buffer(I<<2);var O=P.i32;var g=S.i32;if(r){for(;N<I;N++){L=N*h;for(M=0;M<I;M++){r[L+M]=0;}r[L+N]=1;}}for(L=0;L<I;L++){q[L]=H[(o+1)*L];if(L<I-1){for(J=L+1,E=Math.abs(H[o*L+J]),N=L+2;N<I;N++){U=Math.abs(H[o*L+N]);if(E<U){E=U,J=N;}}O[L]=J;}if(L>0){for(J=0,E=Math.abs(H[L]),N=1;N<L;N++){U=Math.abs(H[o*N+L]);if(E<U){E=U,J=N;}}g[L]=J;}}if(I>1){for(;u<v;u++){for(L=0,E=Math.abs(H[O[0]]),N=1;N<I-1;N++){U=Math.abs(H[o*N+O[N]]);if(E<U){E=U,L=N;}}K=O[L];for(N=1;N<I;N++){U=Math.abs(H[o*g[N]+N]);if(E<U){E=U,L=g[N],K=N;}}F=H[o*L+K];if(Math.abs(F)<=C){break}x=(q[K]-q[L])*0.5;z=Math.abs(x)+d(F,x);B=d(F,z);Q=z/B;B=F/B;z=(F/z)*F;if(x<0){B=-B,z=-z;}H[o*L+K]=0;q[L]-=z;q[K]+=z;for(N=0;N<L;N++){R=(o*N+L);G=(o*N+K);T=H[R];w=H[G];H[R]=T*Q-w*B;H[G]=T*B+w*Q;}for(N=(L+1);N<K;N++){R=(o*L+N);G=(o*N+K);T=H[R];w=H[G];H[R]=T*Q-w*B;H[G]=T*B+w*Q;}N=K+1;R=(o*L+N);G=(o*K+N);for(;N<I;N++,R++,G++){T=H[R];w=H[G];H[R]=T*Q-w*B;H[G]=T*B+w*Q;}if(r){R=h*L;G=h*K;for(N=0;N<I;N++,R++,G++){T=r[R];w=r[G];r[R]=T*Q-w*B;r[G]=T*B+w*Q;}}for(M=0;M<2;M++){D=M==0?L:K;if(D<I-1){for(J=D+1,E=Math.abs(H[o*D+J]),N=D+2;N<I;N++){U=Math.abs(H[o*D+N]);if(E<U){E=U,J=N;}}O[D]=J;}if(D>0){for(J=0,E=Math.abs(H[D]),N=1;N<D;N++){U=Math.abs(H[o*N+D]);if(E<U){E=U,J=N;}}g[D]=J;}}}}for(L=0;L<I-1;L++){J=L;for(N=L+1;N<I;N++){if(q[J]<q[N]){J=N;}}if(L!=J){f(q,J,L,E);if(r){for(N=0;N<I;N++){f(r,h*J+N,h*L+N,E);}}}}jsfeat.cache.put_buffer(P);jsfeat.cache.put_buffer(S);};var e=function(D,l,h,M,v,T,S,E){var C=jsfeat.EPSILON*2;var q=jsfeat.FLT_MIN;var X=0,V=0,U=0,A=0,u=Math.max(T,30);var K=0,J=0,R=0,Q=0,F=0;var Y=0,O=0,N=0;var H=0,G=0,x=0,I=0,w=0,L=0,aa=0,P=0,Z=0;var z=4660;var B=0,y=0,o=0;var r=jsfeat.cache.get_buffer(S<<3);var g=r.f64;for(;X<S;X++){for(U=0,x=0;U<T;U++){N=D[X*l+U];x+=N*N;}g[X]=x;if(M){for(U=0;U<S;U++){M[X*v+U]=0;}M[X*v+X]=1;}}for(;A<u;A++){F=0;for(X=0;X<S-1;X++){for(V=X+1;V<S;V++){K=(X*l)|0,J=(V*l)|0;aa=g[X],P=0,Z=g[V];U=2;P+=D[K]*D[J];P+=D[K+1]*D[J+1];for(;U<T;U++){P+=D[K+U]*D[J+U];}if(Math.abs(P)<=C*Math.sqrt(aa*Z)){continue}P*=2;I=aa-Z,w=d(P,I);if(I<0){L=(w-I)*0.5;O=Math.sqrt(L/w);Y=(P/(w*O*2));}else{Y=Math.sqrt((w+I)/(w*2));O=(P/(w*Y*2));}aa=0,Z=0;U=2;H=Y*D[K]+O*D[J];G=-O*D[K]+Y*D[J];D[K]=H;D[J]=G;aa+=H*H;Z+=G*G;H=Y*D[K+1]+O*D[J+1];G=-O*D[K+1]+Y*D[J+1];D[K+1]=H;D[J+1]=G;aa+=H*H;Z+=G*G;for(;U<T;U++){H=Y*D[K+U]+O*D[J+U];G=-O*D[K+U]+Y*D[J+U];D[K+U]=H;D[J+U]=G;aa+=H*H;Z+=G*G;}g[X]=aa;g[V]=Z;F=1;if(M){R=(X*v)|0,Q=(V*v)|0;U=2;H=Y*M[R]+O*M[Q];G=-O*M[R]+Y*M[Q];M[R]=H;M[Q]=G;H=Y*M[R+1]+O*M[Q+1];G=-O*M[R+1]+Y*M[Q+1];M[R+1]=H;M[Q+1]=G;for(;U<S;U++){H=Y*M[R+U]+O*M[Q+U];G=-O*M[R+U]+Y*M[Q+U];M[R+U]=H;M[Q+U]=G;}}}}if(F==0){break}}for(X=0;X<S;X++){for(U=0,x=0;U<T;U++){N=D[X*l+U];x+=N*N;}g[X]=Math.sqrt(x);}for(X=0;X<S-1;X++){V=X;for(U=X+1;U<S;U++){if(g[V]<g[U]){V=U;}}if(X!=V){f(g,X,V,x);if(M){for(U=0;U<T;U++){f(D,X*l+U,V*l+U,N);}for(U=0;U<S;U++){f(M,X*v+U,V*v+U,N);}}}}for(X=0;X<S;X++){h[X]=g[X];}if(!M){jsfeat.cache.put_buffer(r);return}for(X=0;X<E;X++){x=X<S?g[X]:0;while(x<=q){y=(1/T);for(U=0;U<T;U++){z=(z*214013+2531011);B=(((z>>16)&32767)&256)!=0?y:-y;D[X*l+U]=B;}for(A=0;A<2;A++){for(V=0;V<X;V++){x=0;for(U=0;U<T;U++){x+=D[X*l+U]*D[V*l+U];}o=0;for(U=0;U<T;U++){N=(D[X*l+U]-x*D[V*l+U]);D[X*l+U]=N;o+=Math.abs(N);}o=o?1/o:0;for(U=0;U<T;U++){D[X*l+U]*=o;}}}x=0;for(U=0;U<T;U++){N=D[X*l+U];x+=N*N;}x=Math.sqrt(x);}O=(1/x);for(U=0;U<T;U++){D[X*l+U]*=O;}}jsfeat.cache.put_buffer(r);};return{lu_solve:function(l,g){var q=0,o=0,n=0,h=1,v=l.cols;var w=l.data,r=g.data;var x,m,u,y;for(q=0;q<v;q++){n=q;for(o=q+1;o<v;o++){if(Math.abs(w[o*v+q])>Math.abs(w[n*v+q])){n=o;}}if(Math.abs(w[n*v+q])<jsfeat.EPSILON){return 0}if(n!=q){for(o=q;o<v;o++){f(w,q*v+o,n*v+o,x);}f(r,q,n,x);h=-h;}u=-1/w[q*v+q];for(o=q+1;o<v;o++){m=w[o*v+q]*u;for(n=q+1;n<v;n++){w[o*v+n]+=m*w[q*v+n];}r[o]+=m*r[q];}w[q*v+q]=-u;}for(q=v-1;q>=0;q--){y=r[q];for(n=q+1;n<v;n++){y-=w[q*v+n]*r[n];}r[q]=y*w[q*v+q];}return 1},cholesky_solve:function(h,g){var l=0,v=0,r=0,s=0,n=0,p=0,o=0;var u=h.cols;var t=h.data,q=g.data;var k,m;for(l=0;l<u;l++){m=1;s=(l*u);n=s;for(v=l;v<u;v++){k=t[(n+l)];for(r=0;r<l;r++){k-=t[(r*u+l)]*t[(n+r)];}if(v==l){t[(n+l)]=k;if(k==0){return 0}m=1/k;}else{t[(s+v)]=k;t[(n+l)]=k*m;}n=(n+u);}}s=0;for(p=0;p<u;p++){k=q[p];for(o=0;o<p;o++){k-=t[(s+o)]*q[o];}q[p]=k;s=(s+u);}s=0;for(p=0;p<u;p++){q[p]/=t[(s+p)];s=(s+u);}p=(u-1);for(;p>=0;p--){k=q[p];o=(p+1);s=(o*u);for(;o<u;o++){k-=t[(s+p)]*q[o];s=(s+u);}q[p]=k;}return 1},svd_decompose:function(t,k,p,l,o){if(typeof o==="undefined"){o=0;}var r=0,z=0,x=0,g=t.rows,D=t.cols,w=g,v=D;var s=t.type|jsfeat.C1_t;if(w<v){r=1;z=w;w=v;v=z;}var q=jsfeat.cache.get_buffer((w*w)<<3);var h=jsfeat.cache.get_buffer(v<<3);var C=jsfeat.cache.get_buffer((v*v)<<3);var u=new jsfeat.matrix_t(w,w,s,q.data);var B=new jsfeat.matrix_t(1,v,s,h.data);var y=new jsfeat.matrix_t(v,v,s,C.data);if(r==0){jsfeat.matmath.transpose(u,t);}else{for(z=0;z<D*g;z++){u.data[z]=t.data[z];}for(;z<v*w;z++){u.data[z]=0;}}e(u.data,w,B.data,y.data,v,w,v,w);if(k){for(z=0;z<v;z++){k.data[z]=B.data[z];}for(;z<D;z++){k.data[z]=0;}}if(r==0){if(p&&(o&jsfeat.SVD_U_T)){z=w*w;while(--z>=0){p.data[z]=u.data[z];}}else{if(p){jsfeat.matmath.transpose(p,u);}}if(l&&(o&jsfeat.SVD_V_T)){z=v*v;while(--z>=0){l.data[z]=y.data[z];}}else{if(l){jsfeat.matmath.transpose(l,y);}}}else{if(p&&(o&jsfeat.SVD_U_T)){z=v*v;while(--z>=0){p.data[z]=y.data[z];}}else{if(p){jsfeat.matmath.transpose(p,y);}}if(l&&(o&jsfeat.SVD_V_T)){z=w*w;while(--z>=0){l.data[z]=u.data[z];}}else{if(l){jsfeat.matmath.transpose(l,u);}}}jsfeat.cache.put_buffer(q);jsfeat.cache.put_buffer(h);jsfeat.cache.put_buffer(C);},svd_solve:function(v,l,s){var E=0,C=0,z=0;var w=0,u=0;var o=v.rows,p=v.cols;var h=0,I=0,x=0;var r=v.type|jsfeat.C1_t;var F=jsfeat.cache.get_buffer((o*o)<<3);var m=jsfeat.cache.get_buffer(p<<3);var H=jsfeat.cache.get_buffer((p*p)<<3);var t=new jsfeat.matrix_t(o,o,r,F.data);var G=new jsfeat.matrix_t(1,p,r,m.data);var D=new jsfeat.matrix_t(p,p,r,H.data);var n=s.data,y=t.data,q=G.data,g=D.data;this.svd_decompose(v,G,t,D,0);x=jsfeat.EPSILON*q[0]*p;for(;E<p;E++,u+=p){I=0;for(C=0;C<p;C++){if(q[C]>x){for(z=0,h=0,w=0;z<o;z++,w+=p){h+=y[w+C]*n[z];}I+=h*g[u+C]/q[C];}}l.data[E]=I;}jsfeat.cache.put_buffer(F);jsfeat.cache.put_buffer(m);jsfeat.cache.put_buffer(H);},svd_invert:function(E,t){var C=0,z=0,y=0;var v=0,s=0,h=0;var n=t.rows,o=t.cols;var l=0,w=0;var q=t.type|jsfeat.C1_t;var D=jsfeat.cache.get_buffer((n*n)<<3);var m=jsfeat.cache.get_buffer(o<<3);var G=jsfeat.cache.get_buffer((o*o)<<3);var u=new jsfeat.matrix_t(n,n,q,D.data);var F=new jsfeat.matrix_t(1,o,q,m.data);var B=new jsfeat.matrix_t(o,o,q,G.data);var r=E.data,x=u.data,p=F.data,g=B.data;this.svd_decompose(t,F,u,B,0);w=jsfeat.EPSILON*p[0]*o;for(;C<o;C++,s+=o){for(z=0,v=0;z<n;z++,h++){for(y=0,l=0;y<o;y++,v++){if(p[y]>w){l+=g[s+y]*x[v]/p[y];}}r[h]=l;}}jsfeat.cache.put_buffer(D);jsfeat.cache.put_buffer(m);jsfeat.cache.put_buffer(G);},eigenVV:function(j,p,r){var k=j.cols,m=k*k;var g=j.type|jsfeat.C1_t;var o=jsfeat.cache.get_buffer((k*k)<<3);var h=jsfeat.cache.get_buffer(k<<3);var l=new jsfeat.matrix_t(k,k,g,o.data);var q=new jsfeat.matrix_t(1,k,g,h.data);while(--m>=0){l.data[m]=j.data[m];}c(l.data,k,q.data,p?p.data:null,k,k);if(r){while(--k>=0){r.data[k]=q.data[k];}}jsfeat.cache.put_buffer(o);jsfeat.cache.put_buffer(h);}}})();b.linalg=a;})(jsfeat);(function(a){var c=(function(){var m=function(p){return p*p};var e=function(z,A,x,w,u){var t=0;var y=0,s=0,q=0,C=0;var v=0,r=0,p=0,B=0;var E=0,D=0;for(;t<u;++t){y+=z[t].x;s+=z[t].y;v+=A[t].x;r+=A[t].y;}y/=u;s/=u;v/=u;r/=u;for(t=0;t<u;++t){E=z[t].x-y;D=z[t].y-s;q+=Math.sqrt(E*E+D*D);E=A[t].x-v;D=A[t].y-r;p+=Math.sqrt(E*E+D*D);}q/=u;p/=u;C=Math.SQRT2/q;B=Math.SQRT2/p;x[0]=x[4]=C;x[2]=-y*C;x[5]=-s*C;x[1]=x[3]=x[6]=x[7]=0;x[8]=1;w[0]=w[4]=B;w[2]=-v*B;w[5]=-r*B;w[1]=w[3]=w[6]=w[7]=0;w[8]=1;};var h=function(x,u){var q=0,p=0,r=(u-1)|0;var w=0,t=0,v=0,s=0;for(;q<r;++q){w=x[q].x-x[r].x;t=x[q].y-x[r].y;for(p=0;p<q;++p){v=x[p].x-x[r].x;s=x[p].y-x[r].y;if(Math.abs(v*t-s*w)<=jsfeat.EPSILON*(Math.abs(w)+Math.abs(t)+Math.abs(v)+Math.abs(s))){return true}}}return false};var k=new jsfeat.matrix_t(3,3,jsfeat.F32_t|jsfeat.C1_t);var i=new jsfeat.matrix_t(3,3,jsfeat.F32_t|jsfeat.C1_t);var o=new jsfeat.matrix_t(6,6,jsfeat.F32_t|jsfeat.C1_t);var n=new jsfeat.matrix_t(6,1,jsfeat.F32_t|jsfeat.C1_t);var j=(function(){function p(){}p.prototype.run=function(D,q,r,t){var G=0,F=0;var B=r.type|jsfeat.C1_t;var J=r.data,v=k.data,E=i.data;var x,w,A=0,z=0;e(D,q,v,E,t);var u=jsfeat.cache.get_buffer((2*t*6)<<3);var y=jsfeat.cache.get_buffer((2*t)<<3);var C=new jsfeat.matrix_t(6,2*t,B,u.data);var H=new jsfeat.matrix_t(1,2*t,B,y.data);var I=C.data,s=H.data;for(;G<t;++G){x=D[G];w=q[G];A=v[0]*x.x+v[1]*x.y+v[2];z=v[3]*x.x+v[4]*x.y+v[5];F=G*2*6;I[F]=A,I[F+1]=z,I[F+2]=1,I[F+3]=0,I[F+4]=0,I[F+5]=0;F+=6;I[F]=0,I[F+1]=0,I[F+2]=0,I[F+3]=A,I[F+4]=z,I[F+5]=1;s[G<<1]=E[0]*w.x+E[1]*w.y+E[2];s[(G<<1)+1]=E[3]*w.x+E[4]*w.y+E[5];}jsfeat.matmath.multiply_AtA(o,C);jsfeat.matmath.multiply_AtB(n,C,H);jsfeat.linalg.lu_solve(o,n);J[0]=n.data[0],J[1]=n.data[1],J[2]=n.data[2];J[3]=n.data[3],J[4]=n.data[4],J[5]=n.data[5];J[6]=0,J[7]=0,J[8]=1;jsfeat.matmath.invert_3x3(i,i);jsfeat.matmath.multiply_3x3(r,i,r);jsfeat.matmath.multiply_3x3(r,r,k);jsfeat.cache.put_buffer(u);jsfeat.cache.put_buffer(y);return 1};p.prototype.error=function(v,w,t,r,u){var s=0;var y,x;var q=t.data;for(;s<u;++s){y=v[s];x=w[s];r[s]=m(x.x-q[0]*y.x-q[1]*y.y-q[2])+m(x.y-q[3]*y.x-q[4]*y.y-q[5]);}};p.prototype.check_subset=function(s,r,q){return true};return p})();var g=new jsfeat.matrix_t(9,9,jsfeat.F32_t|jsfeat.C1_t);var f=new jsfeat.matrix_t(9,9,jsfeat.F32_t|jsfeat.C1_t);var l=(function(){function p(){}p.prototype.run=function(I,r,v,C){var L=0,K=0;var O=v.data,D=k.data,J=i.data;var M=g.data,N=f.data;var H=0,G=0,s=0,q=0;var u=0,t=0,B=0,A=0,z=0,w=0,F=0,E=0;for(;L<C;++L){B+=r[L].x;A+=r[L].y;F+=I[L].x;E+=I[L].y;}B/=C;A/=C;F/=C;E/=C;for(L=0;L<C;++L){u+=Math.abs(r[L].x-B);t+=Math.abs(r[L].y-A);z+=Math.abs(I[L].x-F);w+=Math.abs(I[L].y-E);}if(Math.abs(u)<jsfeat.EPSILON||Math.abs(t)<jsfeat.EPSILON||Math.abs(z)<jsfeat.EPSILON||Math.abs(w)<jsfeat.EPSILON){return 0}u=C/u;t=C/t;z=C/z;w=C/w;D[0]=z;D[1]=0;D[2]=-F*z;D[3]=0;D[4]=w;D[5]=-E*w;D[6]=0;D[7]=0;D[8]=1;J[0]=1/u;J[1]=0;J[2]=B;J[3]=0;J[4]=1/t;J[5]=A;J[6]=0;J[7]=0;J[8]=1;L=81;while(--L>=0){M[L]=0;}for(L=0;L<C;++L){H=(r[L].x-B)*u;G=(r[L].y-A)*t;s=(I[L].x-F)*z;q=(I[L].y-E)*w;M[0]+=s*s;M[1]+=s*q;M[2]+=s;M[6]+=s*-H*s;M[7]+=s*-H*q;M[8]+=s*-H;M[10]+=q*q;M[11]+=q;M[15]+=q*-H*s;M[16]+=q*-H*q;M[17]+=q*-H;M[20]+=1;M[24]+=-H*s;M[25]+=-H*q;M[26]+=-H;M[30]+=s*s;M[31]+=s*q;M[32]+=s;M[33]+=s*-G*s;M[34]+=s*-G*q;M[35]+=s*-G;M[40]+=q*q;M[41]+=q;M[42]+=q*-G*s;M[43]+=q*-G*q;M[44]+=q*-G;M[50]+=1;M[51]+=-G*s;M[52]+=-G*q;M[53]+=-G;M[60]+=-H*s*-H*s+-G*s*-G*s;M[61]+=-H*s*-H*q+-G*s*-G*q;M[62]+=-H*s*-H+-G*s*-G;M[70]+=-H*q*-H*q+-G*q*-G*q;M[71]+=-H*q*-H+-G*q*-G;M[80]+=-H*-H+-G*-G;}for(L=0;L<9;++L){for(K=0;K<L;++K){M[L*9+K]=M[K*9+L];}}jsfeat.linalg.eigenVV(g,f);O[0]=N[72],O[1]=N[73],O[2]=N[74];O[3]=N[75],O[4]=N[76],O[5]=N[77];O[6]=N[78],O[7]=N[79],O[8]=N[80];jsfeat.matmath.multiply_3x3(v,i,v);jsfeat.matmath.multiply_3x3(v,v,k);H=1/O[8];O[0]*=H;O[1]*=H;O[2]*=H;O[3]*=H;O[4]*=H;O[5]*=H;O[6]*=H;O[7]*=H;O[8]=1;return 1};p.prototype.error=function(w,x,u,r,v){var t=0;var z,y,s=0,B=0,A=0;var q=u.data;for(;t<v;++t){z=w[t];y=x[t];s=1/(q[6]*z.x+q[7]*z.y+1);B=(q[0]*z.x+q[1]*z.y+q[2])*s-y.x;A=(q[3]*z.x+q[4]*z.y+q[5])*s-y.y;r[t]=(B*B+A*A);}};p.prototype.check_subset=function(M,s,B){if(B==4){var N=0;var I=M[0],H=M[1],G=M[2],E=M[3];var A=s[0],y=s[1],w=s[2],u=s[3];var L=I.x,K=I.y,J=1;var V=H.x,U=H.y,T=1;var z=G.x,x=G.y,v=1;var t=A.x,r=A.y,q=1;var F=y.x,D=y.y,C=1;var Q=w.x,P=w.y,O=1;var S=jsfeat.matmath.determinant_3x3(L,K,J,V,U,T,z,x,v);var R=jsfeat.matmath.determinant_3x3(t,r,q,F,D,C,Q,P,O);if(S*R<0){N++;}L=H.x,K=H.y;V=G.x,U=G.y;z=E.x,x=E.y;t=y.x,r=y.y;F=w.x,D=w.y;Q=u.x,P=u.y;S=jsfeat.matmath.determinant_3x3(L,K,J,V,U,T,z,x,v);R=jsfeat.matmath.determinant_3x3(t,r,q,F,D,C,Q,P,O);if(S*R<0){N++;}L=I.x,K=I.y;V=G.x,U=G.y;z=E.x,x=E.y;t=A.x,r=A.y;F=w.x,D=w.y;Q=u.x,P=u.y;S=jsfeat.matmath.determinant_3x3(L,K,J,V,U,T,z,x,v);R=jsfeat.matmath.determinant_3x3(t,r,q,F,D,C,Q,P,O);if(S*R<0){N++;}L=I.x,K=I.y;V=H.x,U=H.y;z=E.x,x=E.y;t=A.x,r=A.y;F=y.x,D=y.y;Q=u.x,P=u.y;S=jsfeat.matmath.determinant_3x3(L,K,J,V,U,T,z,x,v);R=jsfeat.matmath.determinant_3x3(t,r,q,F,D,C,Q,P,O);if(S*R<0){N++;}if(N!=0&&N!=4){return false}}return true};return p})();return{affine2d:j,homography2d:l}})();var b=(function(){function e(h,i,f,g){if(typeof h==="undefined"){h=0;}if(typeof i==="undefined"){i=0.5;}if(typeof f==="undefined"){f=0.5;}if(typeof g==="undefined"){g=0.99;}this.size=h;this.thresh=i;this.eps=f;this.prob=g;}e.prototype.update_iters=function(g,i){var h=Math.log(1-this.prob);var f=Math.log(1-Math.pow(1-g,this.size));return(f>=0||-h>=i*(-f)?i:Math.round(h/f))|0};return e})();var d=(function(){var e=function(l,q,r,p,t,m,g){var v=1000;var s=[];var n=0,k=0,u=0,h=0,o=false;for(;u<v;++u){n=0;for(;n<p&&u<v;){o=false;h=0;while(!o){o=true;h=s[n]=Math.floor(Math.random()*t)|0;for(k=0;k<n;++k){if(h==s[k]){o=false;break}}}m[n]=q[h];g[n]=r[h];if(!l.check_subset(m,g,n+1)){u++;continue}++n;}break}return(n==p&&u<v)};var f=function(k,m,p,q,o,g,h,s){var j=0,l=0,n=0;var r=g*g;k.error(p,q,m,h,o);for(;l<o;++l){n=h[l]<=r;s[l]=n;j+=n;}return j};return{ransac:function(E,m,x,i,l,j,y,g){if(typeof g==="undefined"){g=1000;}if(l<E.size){return false}var v=E.size;var A=g,z=0;var q=false;var D=[];var C=[];var r=false;var G=j.cols,w=j.rows;var u=j.type|jsfeat.C1_t;var B=jsfeat.cache.get_buffer((G*w)<<3);var h=jsfeat.cache.get_buffer(l);var t=jsfeat.cache.get_buffer(l<<2);var o=new jsfeat.matrix_t(G,w,u,B.data);var s=new jsfeat.matrix_t(l,1,jsfeat.U8C1_t,h.data);var F=-1,p=0;var n=0;var k=t.f32;if(l==v){if(m.run(x,i,o,l)<=0){jsfeat.cache.put_buffer(B);jsfeat.cache.put_buffer(h);jsfeat.cache.put_buffer(t);return false}o.copy_to(j);if(y){while(--l>=0){y.data[l]=1;}}jsfeat.cache.put_buffer(B);jsfeat.cache.put_buffer(h);jsfeat.cache.put_buffer(t);return true}for(;z<A;++z){r=e(m,x,i,v,l,D,C);if(!r){if(z==0){jsfeat.cache.put_buffer(B);jsfeat.cache.put_buffer(h);jsfeat.cache.put_buffer(t);return false}break}n=m.run(D,C,o,v);if(n<=0){continue}p=f(m,o,x,i,l,E.thresh,k,s.data);if(p>Math.max(F,v-1)){o.copy_to(j);F=p;if(y){s.copy_to(y);}A=E.update_iters((l-p)/l,A);q=true;}}jsfeat.cache.put_buffer(B);jsfeat.cache.put_buffer(h);jsfeat.cache.put_buffer(t);return q},lmeds:function(H,n,z,i,l,j,B,g){if(typeof g==="undefined"){g=1000;}if(l<H.size){return false}var w=H.size;var D=g,C=0;var r=false;var G=[];var F=[];var s=false;var I=j.cols,y=j.rows;var v=j.type|jsfeat.C1_t;var E=jsfeat.cache.get_buffer((I*y)<<3);var h=jsfeat.cache.get_buffer(l);var u=jsfeat.cache.get_buffer(l<<2);var p=new jsfeat.matrix_t(I,y,v,E.data);var t=new jsfeat.matrix_t(l,1,jsfeat.U8_t|jsfeat.C1_t,h.data);var q=0;var o=0;var k=u.f32;var A=1000000000,x=0,m=0;H.eps=0.45;D=H.update_iters(H.eps,D);if(l==w){if(n.run(z,i,p,l)<=0){jsfeat.cache.put_buffer(E);jsfeat.cache.put_buffer(h);jsfeat.cache.put_buffer(u);return false}p.copy_to(j);if(B){while(--l>=0){B.data[l]=1;}}jsfeat.cache.put_buffer(E);jsfeat.cache.put_buffer(h);jsfeat.cache.put_buffer(u);return true}for(;C<D;++C){s=e(n,z,i,w,l,G,F);if(!s){if(C==0){jsfeat.cache.put_buffer(E);jsfeat.cache.put_buffer(h);jsfeat.cache.put_buffer(u);return false}break}o=n.run(G,F,p,w);if(o<=0){continue}n.error(z,i,p,k,l);m=jsfeat.math.median(k,0,l-1);if(m<A){A=m;p.copy_to(j);r=true;}}if(r){x=2.5*1.4826*(1+5/(l-w))*Math.sqrt(A);x=Math.max(x,0.001);q=f(n,j,z,i,l,x,k,t.data);if(B){t.copy_to(B);}r=q>=w;}jsfeat.cache.put_buffer(E);jsfeat.cache.put_buffer(h);jsfeat.cache.put_buffer(u);return r}}})();a.ransac_params_t=b;a.motion_model=c;a.motion_estimator=d;})(jsfeat);(function(b){var a=(function(){var c=function(q,S,O,p){var r=0;var y=q.channel,v=q.cols,J=q.rows;var P=q.data,m=S.data;var I=v/O,H=J/p;var n=(I*H*65536)|0;var x=0,u=0,C=0,A=0,t=0,s=0,G=0,F=0,D=0,B=0;var Q=0,N=0,K=0,o=0,M=0,E=0;var l=jsfeat.cache.get_buffer((O*y)<<2);var g=jsfeat.cache.get_buffer((O*y)<<2);var R=jsfeat.cache.get_buffer((v*2*3)<<2);var L=l.i32;var j=g.i32;var z=R.i32;for(;x<O;x++){D=x*I,B=D+I;t=(D+1-0.000001)|0,s=B|0;t=Math.min(t,v-1);s=Math.min(s,v-1);if(t>D){z[F++]=(x*y)|0;z[F++]=((t-1)*y)|0;z[F++]=((t-D)*256)|0;r++;}for(C=t;C<s;C++){r++;z[F++]=(x*y)|0;z[F++]=(C*y)|0;z[F++]=256;}if(B-s>0.001){r++;z[F++]=(x*y)|0;z[F++]=(s*y)|0;z[F++]=((B-s)*256)|0;}}for(x=0;x<O*y;x++){L[x]=j[x]=0;}u=0;for(A=0;A<J;A++){Q=v*A;for(F=0;F<r;F++){K=z[F*3];t=z[F*3+1];o=z[F*3+2];for(G=0;G<y;G++){L[K+G]+=P[Q+t+G]*o;}}if((u+1)*H<=A+1||A==J-1){M=(Math.max(A+1-(u+1)*H,0)*256)|0;E=256-M;N=O*u;if(M<=0){for(x=0;x<O*y;x++){m[N+x]=Math.min(Math.max((j[x]+L[x]*256)/n,0),255);j[x]=L[x]=0;}}else{for(x=0;x<O*y;x++){m[N+x]=Math.min(Math.max((j[x]+L[x]*E)/n,0),255);j[x]=L[x]*M;L[x]=0;}}u++;}else{for(x=0;x<O*y;x++){j[x]+=L[x]*256;L[x]=0;}}}jsfeat.cache.put_buffer(g);jsfeat.cache.put_buffer(l);jsfeat.cache.put_buffer(R);};var f=function(p,S,N,o){var q=0;var x=p.channel,u=p.cols,I=p.rows;var O=p.data,m=S.data;var H=u/N,G=I/o;var Q=1/(H*G);var v=0,t=0,B=0,z=0,s=0,r=0,F=0,E=0,C=0,A=0;var P=0,M=0,J=0,n=0,L=0,D=0;var l=jsfeat.cache.get_buffer((N*x)<<2);var g=jsfeat.cache.get_buffer((N*x)<<2);var R=jsfeat.cache.get_buffer((u*2*3)<<2);var K=l.f32;var j=g.f32;var y=R.f32;for(;v<N;v++){C=v*H,A=C+H;s=(C+1-0.000001)|0,r=A|0;s=Math.min(s,u-1);r=Math.min(r,u-1);if(s>C){q++;y[E++]=((s-1)*x)|0;y[E++]=(v*x)|0;y[E++]=(s-C)*Q;}for(B=s;B<r;B++){q++;y[E++]=(B*x)|0;y[E++]=(v*x)|0;y[E++]=Q;}if(A-r>0.001){q++;y[E++]=(r*x)|0;y[E++]=(v*x)|0;y[E++]=(A-r)*Q;}}for(v=0;v<N*x;v++){K[v]=j[v]=0;}t=0;for(z=0;z<I;z++){P=u*z;for(E=0;E<q;E++){s=y[E*3]|0;J=y[E*3+1]|0;n=y[E*3+2];for(F=0;F<x;F++){K[J+F]+=O[P+s+F]*n;}}if((t+1)*G<=z+1||z==I-1){L=Math.max(z+1-(t+1)*G,0);D=1-L;M=N*t;if(Math.abs(L)<0.001){for(v=0;v<N*x;v++){m[M+v]=j[v]+K[v];j[v]=K[v]=0;}}else{for(v=0;v<N*x;v++){m[M+v]=j[v]+K[v]*D;j[v]=K[v]*L;K[v]=0;}}t++;}else{for(v=0;v<N*x;v++){j[v]+=K[v];K[v]=0;}}}jsfeat.cache.put_buffer(g);jsfeat.cache.put_buffer(l);jsfeat.cache.put_buffer(R);};var e=function(D,F,m,s,B,t,g,n){var z=0,y=0,x=0,A=0,u=0,l=0,G=0,E=0,C=0,v=t[0],r=0;var q=s<<1,p=s*3,o=s<<2;for(;z<B;++z){l=F[A];for(y=0;y<n;++y){D[y]=l;}for(y=0;y<=s-2;y+=2){D[y+n]=F[A+y];D[y+n+1]=F[A+y+1];}for(;y<s;++y){D[y+n]=F[A+y];}l=F[A+s-1];for(y=s;y<n+s;++y){D[y+n]=l;}for(y=0;y<=s-4;y+=4){l=D[y]*v,G=D[y+1]*v,E=D[y+2]*v,C=D[y+3]*v;for(x=1;x<g;++x){r=t[x];l+=D[x+y]*r;G+=D[x+y+1]*r;E+=D[x+y+2]*r;C+=D[x+y+3]*r;}m[u+y]=Math.min(l>>8,255);m[u+y+1]=Math.min(G>>8,255);m[u+y+2]=Math.min(E>>8,255);m[u+y+3]=Math.min(C>>8,255);}for(;y<s;++y){l=D[y]*v;for(x=1;x<g;++x){l+=D[x+y]*t[x];}m[u+y]=Math.min(l>>8,255);}A+=s;u+=s;}for(z=0;z<s;++z){l=m[z];for(y=0;y<n;++y){D[y]=l;}x=z;for(y=0;y<=B-2;y+=2,x+=q){D[y+n]=m[x];D[y+n+1]=m[x+s];}for(;y<B;++y,x+=s){D[y+n]=m[x];}l=m[(B-1)*s+z];for(y=B;y<n+B;++y){D[y+n]=l;}u=z;for(y=0;y<=B-4;y+=4,u+=o){l=D[y]*v,G=D[y+1]*v,E=D[y+2]*v,C=D[y+3]*v;for(x=1;x<g;++x){r=t[x];l+=D[x+y]*r;G+=D[x+y+1]*r;E+=D[x+y+2]*r;C+=D[x+y+3]*r;}m[u]=Math.min(l>>8,255);m[u+s]=Math.min(G>>8,255);m[u+q]=Math.min(E>>8,255);m[u+p]=Math.min(C>>8,255);}for(;y<B;++y,u+=s){l=D[y]*v;for(x=1;x<g;++x){l+=D[x+y]*t[x];}m[u]=Math.min(l>>8,255);}}};var d=function(D,F,m,s,B,t,g,n){var z=0,y=0,x=0,A=0,u=0,l=0,G=0,E=0,C=0,v=t[0],r=0;var q=s<<1,p=s*3,o=s<<2;for(;z<B;++z){l=F[A];for(y=0;y<n;++y){D[y]=l;}for(y=0;y<=s-2;y+=2){D[y+n]=F[A+y];D[y+n+1]=F[A+y+1];}for(;y<s;++y){D[y+n]=F[A+y];}l=F[A+s-1];for(y=s;y<n+s;++y){D[y+n]=l;}for(y=0;y<=s-4;y+=4){l=D[y]*v,G=D[y+1]*v,E=D[y+2]*v,C=D[y+3]*v;for(x=1;x<g;++x){r=t[x];l+=D[x+y]*r;G+=D[x+y+1]*r;E+=D[x+y+2]*r;C+=D[x+y+3]*r;}m[u+y]=l;m[u+y+1]=G;m[u+y+2]=E;m[u+y+3]=C;}for(;y<s;++y){l=D[y]*v;for(x=1;x<g;++x){l+=D[x+y]*t[x];}m[u+y]=l;}A+=s;u+=s;}for(z=0;z<s;++z){l=m[z];for(y=0;y<n;++y){D[y]=l;}x=z;for(y=0;y<=B-2;y+=2,x+=q){D[y+n]=m[x];D[y+n+1]=m[x+s];}for(;y<B;++y,x+=s){D[y+n]=m[x];}l=m[(B-1)*s+z];for(y=B;y<n+B;++y){D[y+n]=l;}u=z;for(y=0;y<=B-4;y+=4,u+=o){l=D[y]*v,G=D[y+1]*v,E=D[y+2]*v,C=D[y+3]*v;for(x=1;x<g;++x){r=t[x];l+=D[x+y]*r;G+=D[x+y+1]*r;E+=D[x+y+2]*r;C+=D[x+y+3]*r;}m[u]=l;m[u+s]=G;m[u+q]=E;m[u+p]=C;}for(;y<B;++y,u+=s){l=D[y]*v;for(x=1;x<g;++x){l+=D[x+y]*t[x];}m[u]=l;}}};return{grayscale:function(n,r,A,D,g){if(typeof g==="undefined"){g=jsfeat.COLOR_RGBA2GRAY;}var q=0,p=0,z=0,v=0,m=0,u=0;var s=4899,B=9617,C=1868,o=4;if(g==jsfeat.COLOR_BGRA2GRAY||g==jsfeat.COLOR_BGR2GRAY){s=1868;C=4899;}if(g==jsfeat.COLOR_RGB2GRAY||g==jsfeat.COLOR_BGR2GRAY){o=3;}var l=o<<1,k=(o*3)|0;D.resize(r,A,1);var t=D.data;for(p=0;p<A;++p,v+=r,z+=r*o){for(q=0,m=z,u=v;q<=r-4;q+=4,m+=o<<2,u+=4){t[u]=(n[m]*s+n[m+1]*B+n[m+2]*C+8192)>>14;t[u+1]=(n[m+o]*s+n[m+o+1]*B+n[m+o+2]*C+8192)>>14;t[u+2]=(n[m+l]*s+n[m+l+1]*B+n[m+l+2]*C+8192)>>14;t[u+3]=(n[m+k]*s+n[m+k+1]*B+n[m+k+2]*C+8192)>>14;}for(;q<r;++q,++u,m+=o){t[u]=(n[m]*s+n[m+1]*B+n[m+2]*C+8192)>>14;}}},resample:function(l,m,i,k){var j=l.rows,g=l.cols;if(j>k&&g>i){m.resize(i,k,l.channel);if(l.type&jsfeat.U8_t&&m.type&jsfeat.U8_t&&j*g/(k*i)<256){c(l,m,i,k);}else{f(l,m,i,k);}}},box_blur_gray:function(r,J,n,l){if(typeof l==="undefined"){l=0;}var z=r.cols,E=r.rows,s=E<<1,v=z<<1;var D=0,u=0,t=0,m=0;var B=((n<<1)+1)|0;var p=(n+1)|0,H=(p+1)|0;var I=l&jsfeat.BOX_BLUR_NOSCALE?1:(1/(B*B));var C=jsfeat.cache.get_buffer((z*E)<<2);var j=0,G=0,o=0,q=0,k=0;var F=C.i32;var g=r.data;var A=0;J.resize(z,E,r.channel);for(t=0;t<E;++t){G=t;j=p*g[o];for(D=(o+1)|0,m=(o+n)|0;D<=m;++D){j+=g[D];}q=(o+p)|0;k=o;A=g[k];for(u=0;u<n;++u,G+=E){F[G]=j;j+=g[q]-A;q++;}for(;u<z-H;u+=2,G+=s){F[G]=j;j+=g[q]-g[k];F[G+E]=j;j+=g[q+1]-g[k+1];q+=2;k+=2;}for(;u<z-p;++u,G+=E){F[G]=j;j+=g[q]-g[k];q++;k++;}A=g[q-1];for(;u<z;++u,G+=E){F[G]=j;j+=A-g[k];k++;}o+=z;}o=0;g=J.data;if(I==1){for(t=0;t<z;++t){G=t;j=p*F[o];for(D=(o+1)|0,m=(o+n)|0;D<=m;++D){j+=F[D];}q=o+p;k=o;A=F[k];for(u=0;u<n;++u,G+=z){g[G]=j;j+=F[q]-A;q++;}for(;u<E-H;u+=2,G+=v){g[G]=j;j+=F[q]-F[k];g[G+z]=j;j+=F[q+1]-F[k+1];q+=2;k+=2;}for(;u<E-p;++u,G+=z){g[G]=j;j+=F[q]-F[k];q++;k++;}A=F[q-1];for(;u<E;++u,G+=z){g[G]=j;j+=A-F[k];k++;}o+=E;}}else{for(t=0;t<z;++t){G=t;j=p*F[o];for(D=(o+1)|0,m=(o+n)|0;D<=m;++D){j+=F[D];}q=o+p;k=o;A=F[k];for(u=0;u<n;++u,G+=z){g[G]=j*I;j+=F[q]-A;q++;}for(;u<E-H;u+=2,G+=v){g[G]=j*I;j+=F[q]-F[k];g[G+z]=j*I;j+=F[q+1]-F[k+1];q+=2;k+=2;}for(;u<E-p;++u,G+=z){g[G]=j*I;j+=F[q]-F[k];q++;k++;}A=F[q-1];for(;u<E;++u,G+=z){g[G]=j*I;j+=A-F[k];k++;}o+=E;}}jsfeat.cache.put_buffer(C);},gaussian_blur:function(g,s,r,v){if(typeof v==="undefined"){v=0;}if(typeof r==="undefined"){r=0;}r=r==0?(Math.max(1,(4*v+1-1e-8))*2+1)|0:r;var x=r>>1;var t=g.cols,p=g.rows;var u=g.type,n=u&jsfeat.U8_t;s.resize(t,p,g.channel);var m=g.data,j=s.data;var k,i,q=(r+Math.max(p,t))|0;var l=jsfeat.cache.get_buffer(q<<2);var o=jsfeat.cache.get_buffer(r<<2);if(n){k=l.i32;i=o.i32;}else{if(u&jsfeat.S32_t){k=l.i32;i=o.f32;}else{k=l.f32;i=o.f32;}}jsfeat.math.get_gaussian_kernel(r,v,i,u);if(n){e(k,m,j,t,p,i,r,x);}else{d(k,m,j,t,p,i,r,x);}jsfeat.cache.put_buffer(l);jsfeat.cache.put_buffer(o);},pyrdown:function(k,A,s,r){if(typeof s==="undefined"){s=0;}if(typeof r==="undefined"){r=0;}var q=k.cols,t=k.rows;var p=q>>1,l=t>>1;var B=p-(s<<1),u=l-(r<<1);var o=0,n=0,g=s+r*q,m=0,v=0,i=0;A.resize(p,l,k.channel);var z=k.data,j=A.data;for(n=0;n<u;++n){m=g;i=v;for(o=0;o<=B-2;o+=2,i+=2,m+=4){j[i]=(z[m]+z[m+1]+z[m+q]+z[m+q+1]+2)>>2;j[i+1]=(z[m+2]+z[m+3]+z[m+q+2]+z[m+q+3]+2)>>2;}for(;o<B;++o,++i,m+=2){j[i]=(z[m]+z[m+1]+z[m+q]+z[m+q+1]+2)>>2;}g+=q<<1;v+=p;}},scharr_derivatives:function(j,G){var p=j.cols,s=j.rows;var H=p<<1,o=0,m=0,u=0,E,D,C,B,A,z;var v=0,t=0,r=0,i=0;var n,l;G.resize(p,s,2);var F=j.data,g=G.data;var k=jsfeat.cache.get_buffer((p+2)<<2);var q=jsfeat.cache.get_buffer((p+2)<<2);if(j.type&jsfeat.U8_t||j.type&jsfeat.S32_t){n=k.i32;l=q.i32;}else{n=k.f32;l=q.f32;}for(;m<s;++m,t+=p){v=((m>0?m-1:1)*p)|0;r=((m<s-1?m+1:s-2)*p)|0;i=(m*H)|0;for(o=0,u=1;o<=p-2;o+=2,u+=2){E=F[v+o],D=F[r+o];n[u]=((E+D)*3+(F[t+o])*10);l[u]=(D-E);E=F[v+o+1],D=F[r+o+1];n[u+1]=((E+D)*3+(F[t+o+1])*10);l[u+1]=(D-E);}for(;o<p;++o,++u){E=F[v+o],D=F[r+o];n[u]=((E+D)*3+(F[t+o])*10);l[u]=(D-E);}o=(p+1)|0;n[0]=n[1];n[o]=n[p];l[0]=l[1];l[o]=l[p];for(o=0;o<=p-4;o+=4){E=l[o+2],D=l[o+1],C=l[o+3],B=l[o+4],A=n[o+2],z=n[o+3];g[i++]=(A-n[o]);g[i++]=((E+l[o])*3+D*10);g[i++]=(z-n[o+1]);g[i++]=((C+D)*3+E*10);g[i++]=((n[o+4]-A));g[i++]=(((B+E)*3+C*10));g[i++]=((n[o+5]-z));g[i++]=(((l[o+5]+C)*3+B*10));}for(;o<p;++o){g[i++]=((n[o+2]-n[o]));g[i++]=(((l[o+2]+l[o])*3+l[o+1]*10));}}jsfeat.cache.put_buffer(k);jsfeat.cache.put_buffer(q);},sobel_derivatives:function(j,G){var p=j.cols,s=j.rows;var H=p<<1,o=0,m=0,u=0,E,D,C,B,A,z;var v=0,t=0,r=0,i=0;var n,l;G.resize(p,s,2);var F=j.data,g=G.data;var k=jsfeat.cache.get_buffer((p+2)<<2);var q=jsfeat.cache.get_buffer((p+2)<<2);if(j.type&jsfeat.U8_t||j.type&jsfeat.S32_t){n=k.i32;l=q.i32;}else{n=k.f32;l=q.f32;}for(;m<s;++m,t+=p){v=((m>0?m-1:1)*p)|0;r=((m<s-1?m+1:s-2)*p)|0;i=(m*H)|0;for(o=0,u=1;o<=p-2;o+=2,u+=2){E=F[v+o],D=F[r+o];n[u]=((E+D)+(F[t+o]*2));l[u]=(D-E);E=F[v+o+1],D=F[r+o+1];n[u+1]=((E+D)+(F[t+o+1]*2));l[u+1]=(D-E);}for(;o<p;++o,++u){E=F[v+o],D=F[r+o];n[u]=((E+D)+(F[t+o]*2));l[u]=(D-E);}o=(p+1)|0;n[0]=n[1];n[o]=n[p];l[0]=l[1];l[o]=l[p];for(o=0;o<=p-4;o+=4){E=l[o+2],D=l[o+1],C=l[o+3],B=l[o+4],A=n[o+2],z=n[o+3];g[i++]=(A-n[o]);g[i++]=(E+l[o]+D*2);g[i++]=(z-n[o+1]);g[i++]=(C+D+E*2);g[i++]=(n[o+4]-A);g[i++]=(B+E+C*2);g[i++]=(n[o+5]-z);g[i++]=(l[o+5]+C+B*2);}for(;o<p;++o){g[i++]=(n[o+2]-n[o]);g[i++]=(l[o+2]+l[o]+l[o+1]*2);}}jsfeat.cache.put_buffer(k);jsfeat.cache.put_buffer(q);},compute_integral_image:function(g,l,y,u){var t=g.cols|0,w=g.rows|0,o=g.data;var r=(t+1)|0;var B=0,z=0,h=0,x=0,q=0,n=0,A=0,m=0;if(l&&y){for(;q<r;++q){l[q]=0,y[q]=0;}h=(r+1)|0,x=1;for(q=0,m=0;q<w;++q,++h,++x){B=z=0;for(n=0;n<=t-2;n+=2,m+=2,h+=2,x+=2){A=o[m];B+=A,z+=A*A;l[h]=l[x]+B;y[h]=y[x]+z;A=o[m+1];B+=A,z+=A*A;l[h+1]=l[x+1]+B;y[h+1]=y[x+1]+z;}for(;n<t;++n,++m,++h,++x){A=o[m];B+=A,z+=A*A;l[h]=l[x]+B;y[h]=y[x]+z;}}}else{if(l){for(;q<r;++q){l[q]=0;}h=(r+1)|0,x=1;for(q=0,m=0;q<w;++q,++h,++x){B=0;for(n=0;n<=t-2;n+=2,m+=2,h+=2,x+=2){B+=o[m];l[h]=l[x]+B;B+=o[m+1];l[h+1]=l[x+1]+B;}for(;n<t;++n,++m,++h,++x){B+=o[m];l[h]=l[x]+B;}}}else{if(y){for(;q<r;++q){y[q]=0;}h=(r+1)|0,x=1;for(q=0,m=0;q<w;++q,++h,++x){z=0;for(n=0;n<=t-2;n+=2,m+=2,h+=2,x+=2){A=o[m];z+=A*A;y[h]=y[x]+z;A=o[m+1];z+=A*A;y[h+1]=y[x+1]+z;}for(;n<t;++n,++m,++h,++x){A=o[m];z+=A*A;y[h]=y[x]+z;}}}}}if(u){for(q=0;q<r;++q){u[q]=0;}h=(r+1)|0,x=0;for(q=0,m=0;q<w;++q,++h,++x){for(n=0;n<=t-2;n+=2,m+=2,h+=2,x+=2){u[h]=o[m]+u[x];u[h+1]=o[m+1]+u[x+1];}for(;n<t;++n,++m,++h,++x){u[h]=o[m]+u[x];}}h=(r+t)|0,x=t;for(q=0;q<w;++q,h+=r,x+=r){u[h]+=u[x];}for(n=t-1;n>0;--n){h=n+w*r,x=h-r;for(q=w;q>0;--q,h-=r,x-=r){u[h]+=u[x]+u[x+1];}}}},equalize_histogram:function(j,r){var s=j.cols,q=j.rows,o=j.data;r.resize(s,q,j.channel);var l=r.data,t=s*q;var p=0,n=0,k,g;var m=jsfeat.cache.get_buffer(256<<2);k=m.i32;for(;p<256;++p){k[p]=0;}for(p=0;p<t;++p){++k[o[p]];}n=k[0];for(p=1;p<256;++p){n=k[p]+=n;}g=255/t;for(p=0;p<t;++p){l[p]=(k[o[p]]*g+0.5)|0;}jsfeat.cache.put_buffer(m);},canny:function(u,V,E,k){var C=u.cols,L=u.rows,S=u.data;V.resize(C,L,u.channel);var o=V.data;var K=0,H=0,q=0,A=C<<1,R=0,J=0,N=0,z=0,v=0,D=0;var g=0,U=0;var p=jsfeat.cache.get_buffer((L*A)<<2);var m=jsfeat.cache.get_buffer((3*(C+2))<<2);var n=jsfeat.cache.get_buffer(((L+2)*(C+2))<<2);var t=jsfeat.cache.get_buffer((L*C)<<2);var Q=m.i32;var T=n.i32;var r=t.i32;var G=p.i32;var l=new jsfeat.matrix_t(C,L,jsfeat.S32C2_t,p.data);var P=1,O=(C+2+1)|0,M=(2*(C+2)+1)|0,B=(C+2)|0,I=(B+1)|0,F=0;this.sobel_derivatives(u,l);if(E>k){K=E;E=k;k=K;}K=(3*(C+2))|0;while(--K>=0){Q[K]=0;}K=((L+2)*(C+2))|0;while(--K>=0){T[K]=0;}for(;H<C;++H,q+=2){z=G[q],v=G[q+1];Q[O+H]=((z^(z>>31))-(z>>31))+((v^(v>>31))-(v>>31));}for(K=1;K<=L;++K,q+=A){if(K==L){H=M+C;while(--H>=M){Q[H]=0;}}else{for(H=0;H<C;H++){z=G[q+(H<<1)],v=G[q+(H<<1)+1];Q[M+H]=((z^(z>>31))-(z>>31))+((v^(v>>31))-(v>>31));}}R=(q-A)|0;T[I-1]=0;J=0;for(H=0;H<C;++H,R+=2){N=Q[O+H];if(N>E){z=G[R];v=G[R+1];D=z^v;z=((z^(z>>31))-(z>>31))|0;v=((v^(v>>31))-(v>>31))|0;g=z*13573;U=g+((z+z)<<15);v<<=15;if(v<g){if(N>Q[O+H-1]&&N>=Q[O+H+1]){if(N>k&&!J&&T[I+H-B]!=2){T[I+H]=2;J=1;r[F++]=I+H;}else{T[I+H]=1;}continue}}else{if(v>U){if(N>Q[P+H]&&N>=Q[M+H]){if(N>k&&!J&&T[I+H-B]!=2){T[I+H]=2;J=1;r[F++]=I+H;}else{T[I+H]=1;}continue}}else{D=D<0?-1:1;if(N>Q[P+H-D]&&N>Q[M+H+D]){if(N>k&&!J&&T[I+H-B]!=2){T[I+H]=2;J=1;r[F++]=I+H;}else{T[I+H]=1;}continue}}}}T[I+H]=0;J=0;}T[I+C]=0;I+=B;H=P;P=O;O=M;M=H;}H=I-B-1;for(K=0;K<B;++K,++H){T[H]=0;}while(F>0){I=r[--F];I-=B+1;if(T[I]==1){T[I]=2,r[F++]=I;}I+=1;if(T[I]==1){T[I]=2,r[F++]=I;}I+=1;if(T[I]==1){T[I]=2,r[F++]=I;}I+=B;if(T[I]==1){T[I]=2,r[F++]=I;}I-=2;if(T[I]==1){T[I]=2,r[F++]=I;}I+=B;if(T[I]==1){T[I]=2,r[F++]=I;}I+=1;if(T[I]==1){T[I]=2,r[F++]=I;}I+=1;if(T[I]==1){T[I]=2,r[F++]=I;}}I=B+1;P=0;for(K=0;K<L;++K,I+=B){for(H=0;H<C;++H){o[P++]=(T[I+H]==2)*255;}}jsfeat.cache.put_buffer(p);jsfeat.cache.put_buffer(m);jsfeat.cache.put_buffer(n);jsfeat.cache.put_buffer(t);},warp_perspective:function(t,D,A,r){if(typeof r==="undefined"){r=0;}var l=t.cols|0,v=t.rows|0,L=D.cols|0,j=D.rows|0;var H=t.data,q=D.data;var F=0,E=0,G=0,u=0,k=0,C=0,p=0,h=0,O=0,P=0,s=0,R=0,Q=0,N=0,M=0;var i=A.data;var o=i[0],n=i[1],m=i[2],K=i[3],J=i[4],I=i[5],B=i[6],z=i[7],w=i[8];for(var g=0;E<j;++E){h=n*E+m,O=J*E+I,P=z*E+w;for(F=0;F<L;++F,++g,h+=o,O+=K,P+=B){s=1/P;C=h*s,p=O*s;u=C|0,k=p|0;if(C>0&&p>0&&u<(l-1)&&k<(v-1)){R=Math.max(C-u,0);Q=Math.max(p-k,0);G=(l*k+u)|0;N=H[G]+R*(H[G+1]-H[G]);M=H[G+l]+R*(H[G+l+1]-H[G+l]);q[g]=N+Q*(M-N);}else{q[g]=r;}}}},warp_affine:function(k,K,p,J){if(typeof J==="undefined"){J=0;}var u=k.cols,z=k.rows,j=K.cols,v=K.rows;var E=k.data,i=K.data;var o=0,n=0,I=0,q=0,A=0,m=0,w=0,G=0,D=0,h=0,g=0;var l=p.data;var t=l[0],s=l[1],r=l[2],H=l[3],F=l[4],C=l[5];for(var B=0;n<v;++n){m=s*n+r;w=F*n+C;for(o=0;o<j;++o,++B,m+=t,w+=H){q=m|0;A=w|0;if(q>=0&&A>=0&&q<(u-1)&&A<(z-1)){G=m-q;D=w-A;I=u*A+q;h=E[I]+G*(E[I+1]-E[I]);g=E[I+u]+G*(E[I+u+1]-E[I+u]);i[B]=h+D*(g-h);}else{i[B]=J;}}}},skindetector:function(o,p){var n,m,h,k;var l=o.width*o.height;while(l--){k=l*4;n=o.data[k];m=o.data[k+1];h=o.data[k+2];if((n>95)&&(m>40)&&(h>20)&&(n>m)&&(n>h)&&(n-Math.min(m,h)>15)&&(Math.abs(n-m)>15)){p[l]=255;}else{p[l]=0;}}}}})();b.imgproc=a;})(jsfeat);(function(a){var b=(function(){var h=new Int32Array([0,3,1,3,2,2,3,1,3,0,3,-1,2,-2,1,-3,0,-3,-1,-3,-2,-2,-3,-1,-3,0,-3,1,-2,2,-1,3]);var f=new Uint8Array(512);var e=new Int32Array(25);var i=new Int32Array(25);var d=function(l,n,o){var j=0;var m=h;for(;j<o;++j){l[j]=m[j<<1]+m[(j<<1)+1]*n;}for(;j<25;++j){l[j]=l[j-o];}},g=function(j,n,l,r,p){var q=25,o=0,w=j[n];var m=p,t=0,u=0,s=0;for(;o<q;++o){r[o]=w-j[n+l[o]];}for(o=0;o<16;o+=2){t=Math.min(r[o+1],r[o+2]);t=Math.min(t,r[o+3]);if(t<=m){continue}t=Math.min(t,r[o+4]);t=Math.min(t,r[o+5]);t=Math.min(t,r[o+6]);t=Math.min(t,r[o+7]);t=Math.min(t,r[o+8]);m=Math.max(m,Math.min(t,r[o]));m=Math.max(m,Math.min(t,r[o+9]));}u=-m;for(o=0;o<16;o+=2){s=Math.max(r[o+1],r[o+2]);s=Math.max(s,r[o+3]);s=Math.max(s,r[o+4]);s=Math.max(s,r[o+5]);if(s>=u){continue}s=Math.max(s,r[o+6]);s=Math.max(s,r[o+7]);s=Math.max(s,r[o+8]);u=Math.min(u,Math.max(s,r[o]));u=Math.min(u,Math.max(s,r[o+9]));}return -u-1};var c=20;return{set_threshold:function(j){c=Math.min(Math.max(j,0),255);for(var k=-255;k<=255;++k){f[(k+255)]=(k<-c?1:(k>c?2:0));}return c},detect:function(L,H,D){if(typeof D==="undefined"){D=3;}var A=8,t=25;var u=L.data,X=L.cols,ar=L.rows;var ap=0,an=0,al=0,E=0,W=0,aq=0;var B=jsfeat.cache.get_buffer(3*X);var O=jsfeat.cache.get_buffer(((X+1)*3)<<2);var I=B.u8;var F=O.i32;var M=e;var J=i;var y=Math.max(3,D);var Z=Math.min((ar-2),(ar-D));var z=Math.max(3,D);var aa=Math.min((X-3),(X-D));var ah=0,P=0,C;var Q=g;var G=f;var p=c;var Y=0,ao=0,au=0,aw=0,U=0,V=0,av=0,R=0,at=0;var T=0,S=0,o=0;d(M,X,16);var am=M[0];var ak=M[1];var aj=M[2];var ai=M[3];var ag=M[4];var af=M[5];var ae=M[6];var ad=M[7];var ac=M[8];var ab=M[9];var s=M[10];var r=M[11];var q=M[12];var n=M[13];var m=M[14];var l=M[15];for(ap=0;ap<X*3;++ap){I[ap]=0;}for(ap=y;ap<Z;++ap){av=((ap*X)+z)|0;aq=(ap-3)%3;V=(aq*X)|0;U=(aq*(X+1))|0;for(an=0;an<X;++an){I[V+an]=0;}aw=0;if(ap<(Z-1)){an=z;for(;an<aa;++an,++av){Y=u[av];ao=(-Y+255);au=(G[ao+u[av+am]]|G[ao+u[av+ac]]);if(au==0){continue}au&=(G[ao+u[av+aj]]|G[ao+u[av+s]]);au&=(G[ao+u[av+ag]]|G[ao+u[av+q]]);au&=(G[ao+u[av+ae]]|G[ao+u[av+m]]);if(au==0){continue}au&=(G[ao+u[av+ak]]|G[ao+u[av+ab]]);au&=(G[ao+u[av+ai]]|G[ao+u[av+r]]);au&=(G[ao+u[av+af]]|G[ao+u[av+n]]);au&=(G[ao+u[av+ad]]|G[ao+u[av+l]]);if(au&1){E=(Y-p);ah=0;for(al=0;al<t;++al){W=u[(av+M[al])];if(W<E){++ah;if(ah>A){++aw;F[U+aw]=an;I[V+an]=Q(u,av,M,J,p);break}}else{ah=0;}}}if(au&2){E=(Y+p);ah=0;for(al=0;al<t;++al){W=u[(av+M[al])];if(W>E){++ah;if(ah>A){++aw;F[U+aw]=an;I[V+an]=Q(u,av,M,J,p);break}}else{ah=0;}}}}}F[U+X]=aw;if(ap==y){continue}aq=(ap-4+3)%3;R=(aq*X)|0;U=(aq*(X+1))|0;aq=(ap-5+3)%3;at=(aq*X)|0;aw=F[U+X];for(al=0;al<aw;++al){an=F[U+al];T=(an+1)|0;S=(an-1)|0;o=I[R+an];if((o>I[R+T]&&o>I[R+S]&&o>I[at+S]&&o>I[at+an]&&o>I[at+T]&&o>I[V+S]&&o>I[V+an]&&o>I[V+T])){C=H[P];C.x=an,C.y=(ap-1),C.score=o;P++;}}}jsfeat.cache.put_buffer(B);jsfeat.cache.put_buffer(O);return P}}})();a.fast_corners=b;b.set_threshold(20);})(jsfeat);(function(b){var a=(function(){var d=function(e,l,q,i,r,g,p,n,k,j){var m=0,o=0,f=(n*q+p)|0,s=f;for(m=n;m<j;++m,f+=q,s=f){for(o=p;o<k;++o,++s){l[s]=-4*e[s]+e[s+r]+e[s-r]+e[s+g]+e[s-g];}}};var c=function(e,f,k,m,g,l,h){var o=-2*e[f]+e[f+m]+e[f-m];var i=-2*e[f]+e[f+g]+e[f-g];var n=e[f+l]+e[f-l]-e[f+h]-e[f-h];var j=(Math.sqrt(((o-i)*(o-i)+4*n*n)))|0;return Math.min(Math.abs(k-j),Math.abs(-(k+j)))};return{laplacian_threshold:30,min_eigen_value_threshold:25,detect:function(l,A,z){if(typeof z==="undefined"){z=5;}var o=0,n=0;var p=l.cols,B=l.rows,q=l.data;var H=5,f=(5*p)|0;var G=(3+3*p)|0,g=(3-3*p)|0;var e=jsfeat.cache.get_buffer((p*B)<<2);var j=e.i32;var i=0,k=0,m=0,r=0,v;var u=0;var F=this.laplacian_threshold;var D=this.min_eigen_value_threshold;var t=Math.max(5,z)|0;var s=Math.max(3,z)|0;var E=Math.min(p-5,p-z)|0;var C=Math.min(B-3,B-z)|0;o=p*B;while(--o>=0){j[o]=0;}d(q,j,p,B,H,f,t,s,E,C);k=(s*p+t)|0;for(n=s;n<C;++n,k+=p){for(o=t,m=k;o<E;++o,++m){i=j[m];if((i<-F&&i<j[m-1]&&i<j[m+1]&&i<j[m-p]&&i<j[m+p]&&i<j[m-p-1]&&i<j[m+p-1]&&i<j[m-p+1]&&i<j[m+p+1])||(i>F&&i>j[m-1]&&i>j[m+1]&&i>j[m-p]&&i>j[m+p]&&i>j[m-p-1]&&i>j[m+p-1]&&i>j[m-p+1]&&i>j[m+p+1])){r=c(q,m,i,H,f,G,g);if(r>D){v=A[u];v.x=o,v.y=n,v.score=r;++u;++o,++m;}}}}jsfeat.cache.put_buffer(e);return u}}})();b.yape06=a;})(jsfeat);(function(a){var b=(function(){var d=function(l,m,k){var j=0;var h,n;h=k;for(n=0;n<h;n++,j++){h=(Math.sqrt((k*k-n*n))+0.5)|0;m[j]=(h+l*n);}for(h--;h<n&&h>=0;h--,j++){n=(Math.sqrt((k*k-h*h))+0.5)|0;m[j]=(h+l*n);}for(;-h<n;h--,j++){n=(Math.sqrt((k*k-h*h))+0.5)|0;m[j]=(h+l*n);}for(n--;n>=0;n--,j++){h=(-Math.sqrt((k*k-n*n))-0.5)|0;m[j]=(h+l*n);}for(;n>h;n--,j++){h=(-Math.sqrt((k*k-n*n))-0.5)|0;m[j]=(h+l*n);}for(h++;h<=0;h++,j++){n=(-Math.sqrt((k*k-h*h))-0.5)|0;m[j]=(h+l*n);}for(;h<-n;h++,j++){n=(-Math.sqrt((k*k-h*h))-0.5)|0;m[j]=(h+l*n);}for(n++;n<0;n++,j++){h=(Math.sqrt((k*k-n*n))+0.5)|0;m[j]=(h+l*n);}m[j]=m[0];m[j+1]=m[1];return j};var g=function(h,j,i){var k=0;if(h[j+1]!=0){k++;}if(h[j-1]!=0){k++;}if(h[j+i]!=0){k++;}if(h[j+i+1]!=0){k++;}if(h[j+i-1]!=0){k++;}if(h[j-i]!=0){k++;}if(h[j-i+1]!=0){k++;}if(h[j-i-1]!=0){k++;}return k};var c=function(l,m,i,k,j){var h,n;if(i>0){m-=k*j;for(n=-j;n<=j;++n){for(h=-j;h<=j;++h){if(l[m+h]>i){return false}}m+=k;}}else{m-=k*j;for(n=-j;n<=j;++n){for(h=-j;h<=j;++h){if(l[m+h]<i){return false}}m+=k;}}return true};var e=function(s,r,m,u,p,i,l,n){var k=0;var q=0,o=(l-1)|0;var j=0,w=0,v=0,t=0;var h=0;j=s[r+i[q]];if((j<=p)){if((j>=u)){w=s[r+i[o]];if((w<=p)){if((w>=u)){m[r]=0;return}else{o++;v=s[r+i[o]];if((v>p)){o++;t=s[r+i[o]];if((t>p)){h=3;}else{if((t<u)){h=6;}else{m[r]=0;return}}}else{o++;t=s[r+i[o]];if((t>p)){h=7;}else{if((t<u)){h=2;}else{m[r]=0;return}}}}}else{o++;v=s[r+i[o]];if((v>p)){o++;t=s[r+i[o]];if((t>p)){h=3;}else{if((t<u)){h=6;}else{m[r]=0;return}}}else{if((v<u)){o++;t=s[r+i[o]];if((t>p)){h=7;}else{if((t<u)){h=2;}else{m[r]=0;return}}}else{m[r]=0;return}}}}else{w=s[r+i[o]];if((w>p)){m[r]=0;return}o++;v=s[r+i[o]];if((v>p)){m[r]=0;return}o++;t=s[r+i[o]];if((t>p)){m[r]=0;return}h=1;}}else{w=s[r+i[o]];if((w<u)){m[r]=0;return}o++;v=s[r+i[o]];if((v<u)){m[r]=0;return}o++;t=s[r+i[o]];if((t<u)){m[r]=0;return}h=0;}for(q=1;q<=l;q++){j=s[r+i[q]];switch(h){case 0:if((j>p)){v=t;o++;t=s[r+i[o]];if((t<u)){m[r]=0;return}k-=j+v;h=0;break}if((j<u)){if((v>p)){m[r]=0;return}if((t>p)){m[r]=0;return}v=t;o++;t=s[r+i[o]];if((t>p)){m[r]=0;return}k-=j+v;h=8;break}if((v<=p)){m[r]=0;return}if((t<=p)){m[r]=0;return}v=t;o++;t=s[r+i[o]];if((t>p)){k-=j+v;h=3;break}if((t<u)){k-=j+v;h=6;break}m[r]=0;return;case 1:if((j<u)){v=t;o++;t=s[r+i[o]];if((t>p)){m[r]=0;return}k-=j+v;h=1;break}if((j>p)){if((v<u)){m[r]=0;return}if((t<u)){m[r]=0;return}v=t;o++;t=s[r+i[o]];if((t<u)){m[r]=0;return}k-=j+v;h=9;break}if((v>=u)){m[r]=0;return}if((t>=u)){m[r]=0;return}v=t;o++;t=s[r+i[o]];if((t<u)){k-=j+v;h=2;break}if((t>p)){k-=j+v;h=7;break}m[r]=0;return;case 2:if((j>p)){m[r]=0;return}v=t;o++;t=s[r+i[o]];if((j<u)){if((t>p)){m[r]=0;return}k-=j+v;h=4;break}if((t>p)){k-=j+v;h=7;break}if((t<u)){k-=j+v;h=2;break}m[r]=0;return;case 3:if((j<u)){m[r]=0;return}v=t;o++;t=s[r+i[o]];if((j>p)){if((t<u)){m[r]=0;return}k-=j+v;h=5;break}if((t>p)){k-=j+v;h=3;break}if((t<u)){k-=j+v;h=6;break}m[r]=0;return;case 4:if((j>p)){m[r]=0;return}if((j<u)){v=t;o++;t=s[r+i[o]];if((t>p)){m[r]=0;return}k-=j+v;h=1;break}if((t>=u)){m[r]=0;return}v=t;o++;t=s[r+i[o]];if((t<u)){k-=j+v;h=2;break}if((t>p)){k-=j+v;h=7;break}m[r]=0;return;case 5:if((j<u)){m[r]=0;return}if((j>p)){v=t;o++;t=s[r+i[o]];if((t<u)){m[r]=0;return}k-=j+v;h=0;break}if((t<=p)){m[r]=0;return}v=t;o++;t=s[r+i[o]];if((t>p)){k-=j+v;h=3;break}if((t<u)){k-=j+v;h=6;break}m[r]=0;return;case 7:if((j>p)){m[r]=0;return}if((j<u)){m[r]=0;return}v=t;o++;t=s[r+i[o]];if((t>p)){k-=j+v;h=3;break}if((t<u)){k-=j+v;h=6;break}m[r]=0;return;case 6:if((j>p)){m[r]=0;return}if((j<u)){m[r]=0;return}v=t;o++;t=s[r+i[o]];if((t<u)){k-=j+v;h=2;break}if((t>p)){k-=j+v;h=7;break}m[r]=0;return;case 8:if((j>p)){if((t<u)){m[r]=0;return}v=t;o++;t=s[r+i[o]];if((t<u)){m[r]=0;return}k-=j+v;h=9;break}if((j<u)){v=t;o++;t=s[r+i[o]];if((t>p)){m[r]=0;return}k-=j+v;h=1;break}m[r]=0;return;case 9:if((j<u)){if((t>p)){m[r]=0;return}v=t;o++;t=s[r+i[o]];if((t>p)){m[r]=0;return}k-=j+v;h=8;break}if((j>p)){v=t;o++;t=s[r+i[o]];if((t<u)){m[r]=0;return}k-=j+v;h=0;break}m[r]=0;return;default:break}}m[r]=(k+n*s[r]);};var f=(function(){function h(i,j,k){this.dirs=new Int32Array(1024);this.dirs_count=d(i,this.dirs,k)|0;this.scores=new Int32Array(i*j);this.radius=k|0;}return h})();return{level_tables:[],tau:7,init:function(m,j,h,l){if(typeof l==="undefined"){l=1;}var k;h=Math.min(h,7);h=Math.max(h,3);for(k=0;k<l;++k){this.level_tables[k]=new f(m>>k,j>>k,h);}},detect:function(k,J,G){if(typeof G==="undefined"){G=4;}var A=this.level_tables[0];var i=A.radius|0,q=(i-1)|0;var m=A.dirs;var n=A.dirs_count|0;var v=n>>1;var O=k.data,u=k.cols|0,K=k.rows|0,N=u>>1;var H=A.scores;var s=0,r=0,j=0,l=0,o=0,p=0,z=0,I=0;var F=this.tau|0;var D=0,E;var C=Math.max(i+1,G)|0;var B=Math.max(i+1,G)|0;var M=Math.min(u-i-2,u-G)|0;var L=Math.min(K-i-2,K-G)|0;j=(B*u+C)|0;for(r=B;r<L;++r,j+=u){for(s=C,l=j;s<M;++s,++l){o=O[l]+F,p=O[l]-F;if(p<O[l+i]&&O[l+i]<o&&p<O[l-i]&&O[l-i]<o){H[l]=0;}else{e(O,l,H,p,o,m,v,n);}}}j=(B*u+C)|0;for(r=B;r<L;++r,j+=u){for(s=C,l=j;s<M;++s,++l){I=H[l];z=Math.abs(I);if(z<5){++s,++l;}else{if(g(H,l,u)>=3&&c(H,l,I,N,i)){E=J[D];E.x=s,E.y=r,E.score=z;++D;s+=q,l+=q;}}}}return D}}})();a.yape=b;})(jsfeat);(function(b){var a=(function(){var d=new Int32Array([8,-3,9,5,4,2,7,-12,-11,9,-8,2,7,-12,12,-13,2,-13,2,12,1,-7,1,6,-2,-10,-2,-4,-13,-13,-11,-8,-13,-3,-12,-9,10,4,11,9,-13,-8,-8,-9,-11,7,-9,12,7,7,12,6,-4,-5,-3,0,-13,2,-12,-3,-9,0,-7,5,12,-6,12,-1,-3,6,-2,12,-6,-13,-4,-8,11,-13,12,-8,4,7,5,1,5,-3,10,-3,3,-7,6,12,-8,-7,-6,-2,-2,11,-1,-10,-13,12,-8,10,-7,3,-5,-3,-4,2,-3,7,-10,-12,-6,11,5,-12,6,-7,5,-6,7,-1,1,0,4,-5,9,11,11,-13,4,7,4,12,2,-1,4,4,-4,-12,-2,7,-8,-5,-7,-10,4,11,9,12,0,-8,1,-13,-13,-2,-8,2,-3,-2,-2,3,-6,9,-4,-9,8,12,10,7,0,9,1,3,7,-5,11,-10,-13,-6,-11,0,10,7,12,1,-6,-3,-6,12,10,-9,12,-4,-13,8,-8,-12,-13,0,-8,-4,3,3,7,8,5,7,10,-7,-1,7,1,-12,3,-10,5,6,2,-4,3,-10,-13,0,-13,5,-13,-7,-12,12,-13,3,-11,8,-7,12,-4,7,6,-10,12,8,-9,-1,-7,-6,-2,-5,0,12,-12,5,-7,5,3,-10,8,-13,-7,-7,-4,5,-3,-2,-1,-7,2,9,5,-11,-11,-13,-5,-13,-1,6,0,-1,5,-3,5,2,-4,-13,-4,12,-9,-6,-9,6,-12,-10,-8,-4,10,2,12,-3,7,12,12,12,-7,-13,-6,5,-4,9,-3,4,7,-1,12,2,-7,6,-5,1,-13,11,-12,5,-3,7,-2,-6,7,-8,12,-7,-13,-7,-11,-12,1,-3,12,12,2,-6,3,0,-4,3,-2,-13,-1,-13,1,9,7,1,8,-6,1,-1,3,12,9,1,12,6,-1,-9,-1,3,-13,-13,-10,5,7,7,10,12,12,-5,12,9,6,3,7,11,5,-13,6,10,2,-12,2,3,3,8,4,-6,2,6,12,-13,9,-12,10,3,-8,4,-7,9,-11,12,-4,-6,1,12,2,-8,6,-9,7,-4,2,3,3,-2,6,3,11,0,3,-3,8,-8,7,8,9,3,-11,-5,-6,-4,-10,11,-5,10,-5,-8,-3,12,-10,5,-9,0,8,-1,12,-6,4,-6,6,-11,-10,12,-8,7,4,-2,6,7,-2,0,-2,12,-5,-8,-5,2,7,-6,10,12,-9,-13,-8,-8,-5,-13,-5,-2,8,-8,9,-13,-9,-11,-9,0,1,-8,1,-2,7,-4,9,1,-2,1,-1,-4,11,-6,12,-11,-12,-9,-6,4,3,7,7,12,5,5,10,8,0,-4,2,8,-9,12,-5,-13,0,7,2,12,-1,2,1,7,5,11,7,-9,3,5,6,-8,-13,-4,-8,9,-5,9,-3,-3,-4,-7,-3,-12,6,5,8,0,-7,6,-6,12,-13,6,-5,-2,1,-10,3,10,4,1,8,-4,-2,-2,2,-13,2,-12,12,12,-2,-13,0,-6,4,1,9,3,-6,-10,-3,-5,-3,-13,-1,1,7,5,12,-11,4,-2,5,-7,-13,9,-9,-5,7,1,8,6,7,-8,7,6,-7,-4,-7,1,-8,11,-7,-8,-13,6,-12,-8,2,4,3,9,10,-5,12,3,-6,-5,-6,7,8,-3,9,-8,2,-12,2,8,-11,-2,-10,3,-12,-13,-7,-9,-11,0,-10,-5,5,-3,11,8,-2,-13,-1,12,-1,-8,0,9,-13,-11,-12,-5,-10,-2,-10,11,-3,9,-2,-13,2,-3,3,2,-9,-13,-4,0,-4,6,-3,-10,-4,12,-2,-7,-6,-11,-4,9,6,-3,6,11,-13,11,-5,5,11,11,12,6,7,-5,12,-2,-1,12,0,7,-4,-8,-3,-2,-7,1,-6,7,-13,-12,-8,-13,-7,-2,-6,-8,-8,5,-6,-9,-5,-1,-4,5,-13,7,-8,10,1,5,5,-13,1,0,10,-13,9,12,10,-1,5,-8,10,-9,-1,11,1,-13,-9,-3,-6,2,-1,-10,1,12,-13,1,-8,-10,8,-11,10,-6,2,-13,3,-6,7,-13,12,-9,-10,-10,-5,-7,-10,-8,-8,-13,4,-6,8,5,3,12,8,-13,-4,2,-3,-3,5,-13,10,-12,4,-13,5,-1,-9,9,-4,3,0,3,3,-9,-12,1,-6,1,3,2,4,-8,-10,-10,-10,9,8,-13,12,12,-8,-12,-6,-5,2,2,3,7,10,6,11,-8,6,8,8,-12,-7,10,-6,5,-3,-9,-3,9,-1,-13,-1,5,-3,-7,-3,4,-8,-2,-8,3,4,2,12,12,2,-5,3,11,6,-9,11,-13,3,-1,7,12,11,-1,12,4,-3,0,-3,6,4,-11,4,12,2,-4,2,1,-10,-6,-8,1,-13,7,-11,1,-13,12,-11,-13,6,0,11,-13,0,-1,1,4,-13,3,-9,-2,-9,8,-6,-3,-13,-6,-8,-2,5,-9,8,10,2,7,3,-9,-1,-6,-1,-1,9,5,11,-2,11,-3,12,-8,3,0,3,5,-1,4,0,10,3,-6,4,5,-13,0,-10,5,5,8,12,11,8,9,9,-6,7,-4,8,-12,-10,4,-10,9,7,3,12,4,9,-7,10,-2,7,0,12,-2,-1,-6,0,-11]);var c=new jsfeat.matrix_t(3,3,jsfeat.F32_t|jsfeat.C1_t);var f=new jsfeat.matrix_t(32,32,jsfeat.U8_t|jsfeat.C1_t);var e=function(l,n,k,i,h,j){var m=Math.cos(k);var g=Math.sin(k);c.data[0]=m,c.data[1]=-g,c.data[2]=(-m+g)*j*0.5+i,c.data[3]=g,c.data[4]=m,c.data[5]=(-g-m)*j*0.5+h;jsfeat.imgproc.warp_affine(l,n,c,128);};return{describe:function(j,u,g,B){var r=32;var x=0,A=0,q=0,p=0,z=0;var o=0,m=0,D=0;var C=j.data,n=j.cols,y=j.rows;var t=f.data;var v=16*32+16;var k=0;if(!(B.type&jsfeat.U8_t)){B.type=jsfeat.U8_t;B.cols=r;B.rows=g;B.channel=1;B.allocate();}else{B.resize(r,g,1);}var l=B.data;var s=0;for(x=0;x<g;++x){q=u[x].x;p=u[x].y;z=u[x].angle;e(j,f,z,q,p,32);k=0;for(A=0;A<r;++A){o=t[v+d[k+1]*32+d[k]];k+=2;m=t[v+d[k+1]*32+d[k]];k+=2;D=(o<m)|0;o=t[v+d[k+1]*32+d[k]];k+=2;m=t[v+d[k+1]*32+d[k]];k+=2;D|=(o<m)<<1;o=t[v+d[k+1]*32+d[k]];k+=2;m=t[v+d[k+1]*32+d[k]];k+=2;D|=(o<m)<<2;o=t[v+d[k+1]*32+d[k]];k+=2;m=t[v+d[k+1]*32+d[k]];k+=2;D|=(o<m)<<3;o=t[v+d[k+1]*32+d[k]];k+=2;m=t[v+d[k+1]*32+d[k]];k+=2;D|=(o<m)<<4;o=t[v+d[k+1]*32+d[k]];k+=2;m=t[v+d[k+1]*32+d[k]];k+=2;D|=(o<m)<<5;o=t[v+d[k+1]*32+d[k]];k+=2;m=t[v+d[k+1]*32+d[k]];k+=2;D|=(o<m)<<6;o=t[v+d[k+1]*32+d[k]];k+=2;m=t[v+d[k+1]*32+d[k]];k+=2;D|=(o<m)<<7;l[s+A]=D;}s+=r;}}}})();b.orb=a;})(jsfeat);(function(b){var a=(function(){var c=jsfeat.imgproc.scharr_derivatives;return{track:function(n,u,ap,aL,k,N,R,K,f,q){if(typeof R==="undefined"){R=30;}if(typeof K==="undefined"){K=new Uint8Array(k);}if(typeof f==="undefined"){f=0.01;}if(typeof q==="undefined"){q=0.0001;}var e=(N-1)*0.5;var h=(N*N)|0;var aa=h<<1;var r=n.data,S=u.data;var g=r[0].data,F=S[0].data;var M=r[0].cols,aB=r[0].rows,ay=0,aH=0;var az=jsfeat.cache.get_buffer(h<<2);var s=jsfeat.cache.get_buffer(aa<<2);var t=jsfeat.cache.get_buffer((aB*(M<<1))<<2);var V=new jsfeat.matrix_t(M,aB,jsfeat.S32C2_t,t.data);var w=az.i32;var ac=s.i32;var aA=t.i32;var ab=0,I=0,aM=0,at=0,aI=0,au=0;var am=0,aF=0,aD=0,af=0,ae=0;var E=0,z=0,Y=0,W=0;var p=0,o=0,aE=0,aC=0;var Q=0,P=0,J=0,H=0,ai=0,ak=0,l=0;var d=0,A=0,O=0;var U=0,T=0,aw=0,av=0;var ah=14;var C=14;var Z=C-5;var ax=(1<<((Z)-1));var ad=(1<<ah);var m=(1<<((C)-1));var X=1/(1<<20);var aK=0,aJ=0,ar=0,aq=0,al=0,v=0,B=0;var ao=0,an=0,ag=0,aj=0,aG=0;var G=1.1920929e-7;f*=f;for(;Q<k;++Q){K[Q]=1;}var L=(n.levels-1)|0;ai=L;for(;ai>=0;--ai){am=(1/(1<<ai));ay=M>>ai;aH=aB>>ai;ab=ay<<1;g=r[ai].data;F=S[ai].data;A=(ay-N)|0;O=(aH-N)|0;c(r[ai],V);for(ak=0;ak<k;++ak){Q=ak<<1;P=Q+1;aF=ap[Q]*am;aD=ap[P]*am;if(ai==L){af=aF;ae=aD;}else{af=aL[Q]*2;ae=aL[P]*2;}aL[Q]=af;aL[P]=ae;aF-=e;aD-=e;p=aF|0;o=aD|0;J=(p<=d)|(p>=A)|(o<=d)|(o>=O);if(J!=0){if(ai==0){K[ak]=0;}continue}U=aF-p;T=aD-o;aK=(((1-U)*(1-T)*ad)+0.5)|0;aJ=((U*(1-T)*ad)+0.5)|0;ar=(((1-U)*T*ad)+0.5)|0;aq=(ad-aK-aJ-ar);ao=0,an=0,ag=0;for(H=0;H<N;++H){I=((H+o)*ay+p)|0;aM=I<<1;at=(H*N)|0;aI=at<<1;for(J=0;J<N;++J,++I,++at,aM+=2){al=((g[I])*aK+(g[I+1])*aJ+(g[I+ay])*ar+(g[I+ay+1])*aq);al=(((al)+ax)>>(Z));v=(aA[aM]*aK+aA[aM+2]*aJ+aA[aM+ab]*ar+aA[aM+ab+2]*aq);v=(((v)+m)>>(C));B=(aA[aM+1]*aK+aA[aM+3]*aJ+aA[aM+ab+1]*ar+aA[aM+ab+3]*aq);B=(((B)+m)>>(C));w[at]=al;ac[aI++]=v;ac[aI++]=B;ao+=v*v;an+=v*B;ag+=B*B;}}ao*=X;an*=X;ag*=X;aj=ao*ag-an*an;aG=(ag+ao-Math.sqrt((ao-ag)*(ao-ag)+4*an*an))/aa;if(aG<q||aj<G){if(ai==0){K[ak]=0;}continue}aj=1/aj;af-=e;ae-=e;E=0;z=0;for(l=0;l<R;++l){aE=af|0;aC=ae|0;J=(aE<=d)|(aE>=A)|(aC<=d)|(aC>=O);if(J!=0){if(ai==0){K[ak]=0;}break}U=af-aE;T=ae-aC;aK=(((1-U)*(1-T)*ad)+0.5)|0;aJ=((U*(1-T)*ad)+0.5)|0;ar=(((1-U)*T*ad)+0.5)|0;aq=(ad-aK-aJ-ar);aw=0,av=0;for(H=0;H<N;++H){au=((H+aC)*ay+aE)|0;at=(H*N)|0;aI=at<<1;for(J=0;J<N;++J,++au,++at){al=((F[au])*aK+(F[au+1])*aJ+(F[au+ay])*ar+(F[au+ay+1])*aq);al=(((al)+ax)>>(Z));al=(al-w[at]);aw+=al*ac[aI++];av+=al*ac[aI++];}}aw*=X;av*=X;Y=((an*av-ag*aw)*aj);W=((an*aw-ao*av)*aj);af+=Y;ae+=W;aL[Q]=af+e;aL[P]=ae+e;if(Y*Y+W*W<=f){break}if(l>0&&Math.abs(Y+E)<0.01&&Math.abs(W+z)<0.01){aL[Q]-=Y*0.5;aL[P]-=W*0.5;break}E=Y;z=W;}}}jsfeat.cache.put_buffer(az);jsfeat.cache.put_buffer(s);jsfeat.cache.put_buffer(t);}}})();b.optical_flow_lk=a;})(jsfeat);(function(b){var a=(function(){var c=function(e,d){var f=(e.width*0.25+0.5)|0;return d.x<=e.x+f&&d.x>=e.x-f&&d.y<=e.y+f&&d.y>=e.y-f&&d.width<=(e.width*1.5+0.5)|0&&(d.width*1.5+0.5)|0>=e.width};return{edges_density:0.07,detect_single_scale:function(E,ad,af,q,d,f,D,B){var z=(B.size[0]*D)|0,N=(B.size[1]*D)|0,V=(0.5*D+1.5)|0,U=V;var Z,X,W,Q,O,T=(d-z)|0,R=(f-N)|0;var H=(d+1)|0,w,p,r,S;var e=1/(z*N);var t,o,l,u,s,ae,A,g=true,L,h,n,G,m;var M,K,J,I,v,C;var ac=0,ab=z,aa=N*H,Y=aa+z;var F=((z*N)*255*this.edges_density)|0;var P=[];for(O=0;O<R;O+=U){ac=O*H;for(Q=0;Q<T;Q+=V,ac+=V){p=E[ac]-E[ac+ab]-E[ac+aa]+E[ac+Y];if(q){w=(q[ac]-q[ac+ab]-q[ac+aa]+q[ac+Y]);if(w<F||p<20){Q+=V,ac+=V;continue}}p*=e;r=(ad[ac]-ad[ac+ab]-ad[ac+aa]+ad[ac+Y])*e-p*p;S=r>0?Math.sqrt(r):1;t=B.complexClassifiers;s=t.length;g=true;for(Z=0;Z<s;++Z){o=t[Z];L=o.threshold;l=o.simpleClassifiers;ae=l.length;h=0;for(X=0;X<ae;++X){u=l[X];n=0;m=u.features;A=m.length;if(u.tilted===1){for(W=0;W<A;++W){G=m[W];M=~~(Q+G[0]*D)+~~(O+G[1]*D)*H;v=~~(G[2]*D);C=~~(G[3]*D);K=v*H;J=C*H;n+=(af[M]-af[M+v+K]-af[M-C+J]+af[M+v-C+K+J])*G[4];}}else{for(W=0;W<A;++W){G=m[W];M=~~(Q+G[0]*D)+~~(O+G[1]*D)*H;v=~~(G[2]*D);C=~~(G[3]*D);J=C*H;n+=(E[M]-E[M+v]-E[M+J]+E[M+J+v])*G[4];}}h+=(n*e<u.threshold*S)?u.left_val:u.right_val;}if(h<L){g=false;break}}if(g){P.push({x:Q,y:O,width:z,height:N,neighbor:1,confidence:h});Q+=V,ac+=V;}}}return P},detect_multi_scale:function(e,m,f,h,d,n,i,g,k){if(typeof g==="undefined"){g=1.2;}if(typeof k==="undefined"){k=1;}var o=i.size[0];var j=i.size[1];var l=[];while(k*o<d&&k*j<n){l=l.concat(this.detect_single_scale(e,m,f,h,d,n,k,i));k*=g;}return l},group_rectangles:function(g,l){if(typeof l==="undefined"){l=1;}var y,v,q=g.length;var r=[];for(y=0;y<q;++y){r[y]={parent:-1,element:g[y],rank:0};}for(y=0;y<q;++y){if(!r[y].element){continue}var t=y;while(r[t].parent!=-1){t=r[t].parent;}for(v=0;v<q;++v){if(y!=v&&r[v].element&&c(r[y].element,r[v].element)){var s=v;while(r[s].parent!=-1){s=r[s].parent;}if(s!=t){if(r[t].rank>r[s].rank){r[s].parent=t;}else{r[t].parent=s;if(r[t].rank==r[s].rank){r[s].rank++;}t=s;}var A,d=v;while(r[d].parent!=-1){A=d;d=r[d].parent;r[A].parent=t;}d=y;while(r[d].parent!=-1){A=d;d=r[d].parent;r[A].parent=t;}}}}}var w=[];var o=0;for(y=0;y<q;y++){v=-1;var e=y;if(r[e].element){while(r[e].parent!=-1){e=r[e].parent;}if(r[e].rank>=0){r[e].rank=~o++;}v=~r[e].rank;}w[y]=v;}var m=[];for(y=0;y<o+1;++y){m[y]={neighbors:0,x:0,y:0,width:0,height:0,confidence:0};}for(y=0;y<q;++y){var z=g[y];var k=w[y];if(m[k].neighbors==0){m[k].confidence=z.confidence;}++m[k].neighbors;m[k].x+=z.x;m[k].y+=z.y;m[k].width+=z.width;m[k].height+=z.height;m[k].confidence=Math.max(m[k].confidence,z.confidence);}var h=[];for(y=0;y<o;++y){q=m[y].neighbors;if(q>=l){h.push({x:(m[y].x*2+q)/(2*q),y:(m[y].y*2+q)/(2*q),width:(m[y].width*2+q)/(2*q),height:(m[y].height*2+q)/(2*q),neighbors:m[y].neighbors,confidence:m[y].confidence});}}var p=[];q=h.length;for(y=0;y<q;++y){var z=h[y];var x=true;for(v=0;v<q;++v){var u=h[v];var f=(u.width*0.25+0.5)|0;if(y!=v&&z.x>=u.x-f&&z.y>=u.y-f&&z.x+z.width<=u.x+u.width+f&&z.y+z.height<=u.y+u.height+f&&(u.neighbors>Math.max(3,z.neighbors)||z.neighbors<3)){x=false;break}}if(x){p.push(z);}}return p}}})();b.haar=a;})(jsfeat);(function(a){var b=(function(){var c=function(f,e){var g=(f.width*0.25+0.5)|0;return e.x<=f.x+g&&e.x>=f.x-g&&e.y<=f.y+g&&e.y>=f.y-g&&e.width<=(f.width*1.5+0.5)|0&&(e.width*1.5+0.5)|0>=f.width};var d=new jsfeat.pyramid_t(1);return{interval:4,scale:1.1486,next:5,scale_to:1,prepare_cascade:function(g){var m=g.stage_classifier.length;for(var h=0;h<m;h++){var l=g.stage_classifier[h].feature;var e=g.stage_classifier[h].count;var i=g.stage_classifier[h]._feature=new Array(e);for(var f=0;f<e;f++){i[f]={size:l[f].size,px:new Array(l[f].size),pz:new Array(l[f].size),nx:new Array(l[f].size),nz:new Array(l[f].size)};}}},build_pyramid:function(e,k,s,f){if(typeof f==="undefined"){f=4;}var q=e.cols,m=e.rows;var l=0,n=0,h=0;var p=false;var j=e,g=e;var r=jsfeat.U8_t|jsfeat.C1_t;this.interval=f;this.scale=Math.pow(2,1/(this.interval+1));this.next=(this.interval+1)|0;this.scale_to=(Math.log(Math.min(q/k,m/s))/Math.log(this.scale))|0;var o=((this.scale_to+this.next*2)*4)|0;if(d.levels!=o){d.levels=o;d.data=new Array(o);p=true;d.data[0]=e;}for(l=1;l<=this.interval;++l){n=(q/Math.pow(this.scale,l))|0;h=(m/Math.pow(this.scale,l))|0;j=d.data[l<<2];if(p||n!=j.cols||h!=j.rows){d.data[l<<2]=new jsfeat.matrix_t(n,h,r);j=d.data[l<<2];}jsfeat.imgproc.resample(e,j,n,h);}for(l=this.next;l<this.scale_to+this.next*2;++l){g=d.data[(l<<2)-(this.next<<2)];j=d.data[l<<2];n=g.cols>>1;h=g.rows>>1;if(p||n!=j.cols||h!=j.rows){d.data[l<<2]=new jsfeat.matrix_t(n,h,r);j=d.data[l<<2];}jsfeat.imgproc.pyrdown(g,j);}for(l=this.next*2;l<this.scale_to+this.next*2;++l){g=d.data[(l<<2)-(this.next<<2)];n=g.cols>>1;h=g.rows>>1;j=d.data[(l<<2)+1];if(p||n!=j.cols||h!=j.rows){d.data[(l<<2)+1]=new jsfeat.matrix_t(n,h,r);j=d.data[(l<<2)+1];}jsfeat.imgproc.pyrdown(g,j,1,0);j=d.data[(l<<2)+2];if(p||n!=j.cols||h!=j.rows){d.data[(l<<2)+2]=new jsfeat.matrix_t(n,h,r);j=d.data[(l<<2)+2];}jsfeat.imgproc.pyrdown(g,j,0,1);j=d.data[(l<<2)+3];if(p||n!=j.cols||h!=j.rows){d.data[(l<<2)+3]=new jsfeat.matrix_t(n,h,r);j=d.data[(l<<2)+3];}jsfeat.imgproc.pyrdown(g,j,1,1);}return d},detect:function(G,L){var h=this.interval;var N=this.scale;var m=this.next;var l=this.scale_to;var ab=0,aa=0,Z=0,W=0,S=0,R=0,U=0,B=0,J=0,I=0,V=0,ae=0,M=0,ad=0,w=0,Y=0,g=0;var E=0,X,Q,D,H,F,O=true,o=true;var z=1,v=1;var s=[0,1,0,1];var r=[0,0,1,1];var K=[];var C=G.data,ac=1,u=2,t=4;var A=[],e=[0,0,0];var P=[0,0,0];var T=[0,0,0];for(ab=0;ab<l;ab++){w=(ab<<2);Y=C[w+(m<<3)].cols-(L.width>>2);g=C[w+(m<<3)].rows-(L.height>>2);P[0]=C[w].cols*ac;P[1]=C[w+(m<<2)].cols*ac;P[2]=C[w+(m<<3)].cols*ac;T[0]=(C[w].cols*t)-(Y*t);T[1]=(C[w+(m<<2)].cols*u)-(Y*u);T[2]=(C[w+(m<<3)].cols*ac)-(Y*ac);B=L.stage_classifier.length;for(aa=0;aa<B;aa++){D=L.stage_classifier[aa].feature;Q=L.stage_classifier[aa]._feature;J=L.stage_classifier[aa].count;for(Z=0;Z<J;Z++){H=Q[Z];F=D[Z];I=F.size|0;for(U=0;U<I;U++){H.px[U]=(F.px[U]*ac)+F.py[U]*P[F.pz[U]];H.pz[U]=F.pz[U];H.nx[U]=(F.nx[U]*ac)+F.ny[U]*P[F.nz[U]];H.nz[U]=F.nz[U];}}}A[0]=C[w].data;A[1]=C[w+(m<<2)].data;for(U=0;U<4;U++){A[2]=C[w+(m<<3)+U].data;e[0]=(s[U]*u)+r[U]*(C[w].cols*u);e[1]=(s[U]*ac)+r[U]*(C[w+(m<<2)].cols*ac);e[2]=0;for(R=0;R<g;R++){for(S=0;S<Y;S++){E=0;O=true;B=L.stage_classifier.length;for(aa=0;aa<B;aa++){E=0;X=L.stage_classifier[aa].alpha;Q=L.stage_classifier[aa]._feature;J=L.stage_classifier[aa].count;for(Z=0;Z<J;Z++){H=Q[Z];ae=A[H.pz[0]][e[H.pz[0]]+H.px[0]];M=A[H.nz[0]][e[H.nz[0]]+H.nx[0]];if(ae<=M){E+=X[Z<<1];}else{o=true;I=H.size;for(ad=1;ad<I;ad++){if(H.pz[ad]>=0){V=A[H.pz[ad]][e[H.pz[ad]]+H.px[ad]];if(V<ae){if(V<=M){o=false;break}ae=V;}}if(H.nz[ad]>=0){W=A[H.nz[ad]][e[H.nz[ad]]+H.nx[ad]];if(W>M){if(ae<=W){o=false;break}M=W;}}}E+=(o)?X[(Z<<1)+1]:X[Z<<1];}}if(E<L.stage_classifier[aa].threshold){O=false;break}}if(O){K.push({x:(S*4+s[U]*2)*z,y:(R*4+r[U]*2)*v,width:L.width*z,height:L.height*v,neighbor:1,confidence:E});++S;e[0]+=t;e[1]+=u;e[2]+=ac;}e[0]+=t;e[1]+=u;e[2]+=ac;}e[0]+=T[0];e[1]+=T[1];e[2]+=T[2];}}z*=N;v*=N;}return K},group_rectangles:function(h,m){if(typeof m==="undefined"){m=1;}var z,w,r=h.length;var s=[];for(z=0;z<r;++z){s[z]={parent:-1,element:h[z],rank:0};}for(z=0;z<r;++z){if(!s[z].element){continue}var u=z;while(s[u].parent!=-1){u=s[u].parent;}for(w=0;w<r;++w){if(z!=w&&s[w].element&&c(s[z].element,s[w].element)){var t=w;while(s[t].parent!=-1){t=s[t].parent;}if(t!=u){if(s[u].rank>s[t].rank){s[t].parent=u;}else{s[u].parent=t;if(s[u].rank==s[t].rank){s[t].rank++;}u=t;}var B,e=w;while(s[e].parent!=-1){B=e;e=s[e].parent;s[B].parent=u;}e=z;while(s[e].parent!=-1){B=e;e=s[e].parent;s[B].parent=u;}}}}}var x=[];var p=0;for(z=0;z<r;z++){w=-1;var f=z;if(s[f].element){while(s[f].parent!=-1){f=s[f].parent;}if(s[f].rank>=0){s[f].rank=~p++;}w=~s[f].rank;}x[z]=w;}var o=[];for(z=0;z<p+1;++z){o[z]={neighbors:0,x:0,y:0,width:0,height:0,confidence:0};}for(z=0;z<r;++z){var A=h[z];var l=x[z];if(o[l].neighbors==0){o[l].confidence=A.confidence;}++o[l].neighbors;o[l].x+=A.x;o[l].y+=A.y;o[l].width+=A.width;o[l].height+=A.height;o[l].confidence=Math.max(o[l].confidence,A.confidence);}var k=[];for(z=0;z<p;++z){r=o[z].neighbors;if(r>=m){k.push({x:(o[z].x*2+r)/(2*r),y:(o[z].y*2+r)/(2*r),width:(o[z].width*2+r)/(2*r),height:(o[z].height*2+r)/(2*r),neighbors:o[z].neighbors,confidence:o[z].confidence});}}var q=[];r=k.length;for(z=0;z<r;++z){var A=k[z];var y=true;for(w=0;w<r;++w){var v=k[w];var g=(v.width*0.25+0.5)|0;if(z!=w&&A.x>=v.x-g&&A.y>=v.y-g&&A.x+A.width<=v.x+v.width+g&&A.y+A.height<=v.y+v.height+g&&(v.neighbors>Math.max(3,A.neighbors)||A.neighbors<3)){y=false;break}}if(y){q.push(A);}}return q}}})();a.bbf=b;})(jsfeat);(function(a){if(typeof module==="undefined"||typeof module.exports==="undefined"){window.jsfeat=a;}else{module.exports=a;}})(jsfeat);
|
||
|
||
jsfeat.haar.frontalface = 'FRONTALFACE_PLACEHOLDER';
|
||
|
||
var imageData = e.data.imageData,
|
||
w = e.data.w,
|
||
h = e.data.h,
|
||
videoWidth = e.data.videoWidth,
|
||
params = e.data.params;
|
||
|
||
var img_u8 = new jsfeat.matrix_t(w, h, jsfeat.U8_t | jsfeat.C1_t),
|
||
edg = new jsfeat.matrix_t(w, h, jsfeat.U8_t | jsfeat.C1_t),
|
||
ii_sum = new Int32Array((w+1)*(h+1)),
|
||
ii_sqsum = new Int32Array((w+1)*(h+1)),
|
||
ii_tilted = new Int32Array((w+1)*(h+1)),
|
||
ii_canny = new Int32Array((w+1)*(h+1));
|
||
|
||
var classifier = jsfeat.haar.frontalface;
|
||
|
||
jsfeat.imgproc.grayscale(imageData.data, w, h, img_u8);
|
||
|
||
// possible params
|
||
if (params.equalizeHistogram) {
|
||
jsfeat.imgproc.equalize_histogram(img_u8, img_u8);
|
||
}
|
||
//jsfeat.imgproc.gaussian_blur(img_u8, img_u8, 3);
|
||
|
||
jsfeat.imgproc.compute_integral_image(img_u8, ii_sum, ii_sqsum, classifier.tilted ? ii_tilted : null);
|
||
|
||
if(params.useCanny) {
|
||
jsfeat.imgproc.canny(img_u8, edg, 10, 50);
|
||
jsfeat.imgproc.compute_integral_image(edg, ii_canny, null, null);
|
||
}
|
||
|
||
jsfeat.haar.edgesDensity = params.edgesDensity;
|
||
var rects = jsfeat.haar.detect_multi_scale(ii_sum, ii_sqsum, ii_tilted, params.useCanny? ii_canny : null, img_u8.cols, img_u8.rows, classifier, params.scaleFactor, params.minScale);
|
||
rects = jsfeat.haar.group_rectangles(rects, params.min_neighbors);
|
||
|
||
for (var i = rects.length-1;i >= 0;i--) {
|
||
if (rects[i].confidence < params.confidenceThreshold) {
|
||
rects.splice(i,1);
|
||
}
|
||
}
|
||
|
||
var rl = rects.length;
|
||
if (rl == 0) {
|
||
self.postMessage({
|
||
faces: []
|
||
});
|
||
} else {
|
||
var best = rects[0];
|
||
for (var i = 1;i < rl;i++) {
|
||
if (rects[i].neighbors > best.neighbors) {
|
||
best = rects[i];
|
||
} else if (rects[i].neighbors == best.neighbors) {
|
||
// if (rects[i].width > best.width) best = rects[i]; // use biggest rect
|
||
if (rects[i].confidence > best.confidence) best = rects[i]; // use most confident rect
|
||
}
|
||
}
|
||
|
||
var sc = videoWidth / img_u8.cols;
|
||
best.x = (best.x*sc)|0;
|
||
best.y = (best.y*sc)|0;
|
||
best.width = (best.width*sc)|0;
|
||
best.height = (best.height*sc)|0;
|
||
|
||
self.postMessage({
|
||
faces: [best]
|
||
});
|
||
}
|
||
};
|
||
|
||
// import { drawDetection, drawFacialPoints, drawBoundingBox } from './utils/debugging.js';
|
||
|
||
/**
|
||
* this cascade is derived from https://github.com/mtschirs/js-objectdetect implementation
|
||
* @author Martin Tschirsich / http://www.tu-darmstadt.de/~m_t
|
||
*/
|
||
jsfeat_1.haar.frontalface = {complexClassifiers:[{simpleClassifiers:[{features:[[3,7,14,4,-1.],[3,9,14,2,2.]],threshold:4.0142e-003,right_val:0.83781,left_val:0.033794},{features:[[1,2,18,4,-1.],[7,2,6,4,3.]],threshold:0.015151,right_val:0.74888,left_val:0.15141},{features:[[1,7,15,9,-1.],[1,10,15,3,3.]],threshold:4.211e-003,right_val:0.63748,left_val:0.090049}],threshold:0.82269},{simpleClassifiers:[{features:[[5,6,2,6,-1.],[5,9,2,3,2.]],threshold:1.6227e-003,right_val:0.71109,left_val:0.069309},{features:[[7,5,6,3,-1.],[9,5,2,3,3.]],threshold:2.2907e-003,right_val:0.66687,left_val:0.17958},{features:[[4,0,12,9,-1.],[4,3,12,3,3.]],threshold:5.0026e-003,right_val:0.6554,left_val:0.16937},{features:[[6,9,10,8,-1.],[6,13,10,4,2.]],threshold:7.966e-003,right_val:0.091415,left_val:0.58663},{features:[[3,6,14,8,-1.],[3,10,14,4,2.]],threshold:-3.5227e-003,right_val:0.60319,left_val:0.14132},{features:[[14,1,6,10,-1.],[14,1,3,10,2.]],threshold:0.036668,right_val:0.79203,left_val:0.36757},{features:[[7,8,5,12,-1.],[7,12,5,4,3.]],threshold:9.3361e-003,right_val:0.20885,left_val:0.61614},{features:[[1,1,18,3,-1.],[7,1,6,3,3.]],threshold:8.6961e-003,right_val:0.63603,left_val:0.28362},{features:[[1,8,17,2,-1.],[1,9,17,1,2.]],threshold:1.1489e-003,right_val:0.58007,left_val:0.22236},{features:[[16,6,4,2,-1.],[16,7,4,1,2.]],threshold:-2.1485e-003,right_val:0.57871,left_val:0.24065},{features:[[5,17,2,2,-1.],[5,18,2,1,2.]],threshold:2.1219e-003,right_val:0.13622,left_val:0.55597},{features:[[14,2,6,12,-1.],[14,2,3,12,2.]],threshold:-0.093949,right_val:0.47177,left_val:0.85027},{features:[[4,0,4,12,-1.],[4,0,2,6,2.],[6,6,2,6,2.]],threshold:1.3778e-003,right_val:0.28345,left_val:0.59937},{features:[[2,11,18,8,-1.],[8,11,6,8,3.]],threshold:0.073063,right_val:0.706,left_val:0.43419},{features:[[5,7,10,2,-1.],[5,8,10,1,2.]],threshold:3.6767e-004,right_val:0.60516,left_val:0.30279},{features:[[15,11,5,3,-1.],[15,12,5,1,3.]],threshold:-6.048e-003,right_val:0.56753,left_val:0.17984}],threshold:6.9566},{simpleClassifiers:[{features:[[5,3,10,9,-1.],[5,6,10,3,3.]],threshold:-0.016511,right_val:0.14249,left_val:0.66442},{features:[[9,4,2,14,-1.],[9,11,2,7,2.]],threshold:2.7052e-003,right_val:0.12885,left_val:0.63254},{features:[[3,5,4,12,-1.],[3,9,4,4,3.]],threshold:2.807e-003,right_val:0.61932,left_val:0.12403},{features:[[4,5,12,5,-1.],[8,5,4,5,3.]],threshold:-1.5402e-003,right_val:0.567,left_val:0.14321},{features:[[5,6,10,8,-1.],[5,10,10,4,2.]],threshold:-5.6386e-004,right_val:0.59052,left_val:0.16574},{features:[[8,0,6,9,-1.],[8,3,6,3,3.]],threshold:1.9254e-003,right_val:0.57388,left_val:0.26955},{features:[[9,12,1,8,-1.],[9,16,1,4,2.]],threshold:-5.0215e-003,right_val:0.57828,left_val:0.18935},{features:[[0,7,20,6,-1.],[0,9,20,2,3.]],threshold:2.6365e-003,right_val:0.56954,left_val:0.23093},{features:[[7,0,6,17,-1.],[9,0,2,17,3.]],threshold:-1.5128e-003,right_val:0.59566,left_val:0.27596},{features:[[9,0,6,4,-1.],[11,0,2,4,3.]],threshold:-0.010157,right_val:0.5522,left_val:0.17325},{features:[[5,1,6,4,-1.],[7,1,2,4,3.]],threshold:-0.011954,right_val:0.5559,left_val:0.13394},{features:[[12,1,6,16,-1.],[14,1,2,16,3.]],threshold:4.8859e-003,right_val:0.61888,left_val:0.36287},{features:[[0,5,18,8,-1.],[0,5,9,4,2.],[9,9,9,4,2.]],threshold:-0.080133,right_val:0.54759,left_val:0.091211},{features:[[8,15,10,4,-1.],[13,15,5,2,2.],[8,17,5,2,2.]],threshold:1.0643e-003,right_val:0.57114,left_val:0.37151},{features:[[3,1,4,8,-1.],[3,1,2,4,2.],[5,5,2,4,2.]],threshold:-1.3419e-003,right_val:0.33181,left_val:0.59533},{features:[[3,6,14,10,-1.],[10,6,7,5,2.],[3,11,7,5,2.]],threshold:-0.054601,right_val:0.56028,left_val:0.18441},{features:[[2,1,6,16,-1.],[4,1,2,16,3.]],threshold:2.9072e-003,right_val:0.61317,left_val:0.35942},{features:[[0,18,20,2,-1.],[0,19,20,1,2.]],threshold:7.4719e-004,right_val:0.34596,left_val:0.59944},{features:[[8,13,4,3,-1.],[8,14,4,1,3.]],threshold:4.3014e-003,right_val:0.69908,left_val:0.41727},{features:[[9,14,2,3,-1.],[9,15,2,1,3.]],threshold:4.5018e-003,right_val:0.78015,left_val:0.45097},{features:[[0,12,9,6,-1.],[0,14,9,2,3.]],threshold:0.024139,right_val:0.13198,left_val:0.54382}],threshold:9.4985},{simpleClassifiers:[{features:[[5,7,3,4,-1.],[5,9,3,2,2.]],threshold:1.9212e-003,right_val:0.61999,left_val:0.14153},{features:[[9,3,2,16,-1.],[9,11,2,8,2.]],threshold:-1.2749e-004,right_val:0.18849,left_val:0.61911},{features:[[3,6,13,8,-1.],[3,10,13,4,2.]],threshold:5.141e-004,right_val:0.58579,left_val:0.14874},{features:[[12,3,8,2,-1.],[12,3,4,2,2.]],threshold:4.1879e-003,right_val:0.63592,left_val:0.27469},{features:[[8,8,4,12,-1.],[8,12,4,4,3.]],threshold:5.1016e-003,right_val:0.21756,left_val:0.58709},{features:[[11,3,8,6,-1.],[15,3,4,3,2.],[11,6,4,3,2.]],threshold:-2.1448e-003,right_val:0.29796,left_val:0.58809},{features:[[7,1,6,19,-1.],[9,1,2,19,3.]],threshold:-2.8977e-003,right_val:0.58766,left_val:0.23733},{features:[[9,0,6,4,-1.],[11,0,2,4,3.]],threshold:-0.021611,right_val:0.51942,left_val:0.12207},{features:[[3,1,9,3,-1.],[6,1,3,3,3.]],threshold:-4.6299e-003,right_val:0.58174,left_val:0.26312},{features:[[8,15,10,4,-1.],[13,15,5,2,2.],[8,17,5,2,2.]],threshold:5.9394e-004,right_val:0.56985,left_val:0.36386},{features:[[0,3,6,10,-1.],[3,3,3,10,2.]],threshold:0.053879,right_val:0.75594,left_val:0.43035},{features:[[3,4,15,15,-1.],[3,9,15,5,3.]],threshold:1.8887e-003,right_val:0.56134,left_val:0.21226},{features:[[6,5,8,6,-1.],[6,7,8,2,3.]],threshold:-2.3635e-003,right_val:0.26428,left_val:0.56318},{features:[[4,4,12,10,-1.],[10,4,6,5,2.],[4,9,6,5,2.]],threshold:0.024018,right_val:0.27517,left_val:0.57971},{features:[[6,4,4,4,-1.],[8,4,2,4,2.]],threshold:2.0543e-004,right_val:0.57526,left_val:0.27052},{features:[[15,11,1,2,-1.],[15,12,1,1,2.]],threshold:8.479e-004,right_val:0.23349,left_val:0.54356},{features:[[3,11,2,2,-1.],[3,12,2,1,2.]],threshold:1.4091e-003,right_val:0.20632,left_val:0.53194},{features:[[16,11,1,3,-1.],[16,12,1,1,3.]],threshold:1.4643e-003,right_val:0.30689,left_val:0.5419},{features:[[3,15,6,4,-1.],[3,15,3,2,2.],[6,17,3,2,2.]],threshold:1.6353e-003,right_val:0.61129,left_val:0.36954},{features:[[6,7,8,2,-1.],[6,8,8,1,2.]],threshold:8.3173e-004,right_val:0.60252,left_val:0.3565},{features:[[3,11,1,3,-1.],[3,12,1,1,3.]],threshold:-2.0999e-003,right_val:0.53628,left_val:0.1914},{features:[[6,0,12,2,-1.],[6,1,12,1,2.]],threshold:-7.4214e-004,right_val:0.55293,left_val:0.38356},{features:[[9,14,2,3,-1.],[9,15,2,1,3.]],threshold:3.2655e-003,right_val:0.71019,left_val:0.43129},{features:[[7,15,6,2,-1.],[7,16,6,1,2.]],threshold:8.9135e-004,right_val:0.6392,left_val:0.39848},{features:[[0,5,4,6,-1.],[0,7,4,2,3.]],threshold:-0.015284,right_val:0.54337,left_val:0.23667},{features:[[4,12,12,2,-1.],[8,12,4,2,3.]],threshold:4.8381e-003,right_val:0.32392,left_val:0.58175},{features:[[6,3,1,9,-1.],[6,6,1,3,3.]],threshold:-9.1093e-004,right_val:0.29119,left_val:0.55406},{features:[[10,17,3,2,-1.],[11,17,1,2,3.]],threshold:-6.1275e-003,right_val:0.51966,left_val:0.17753},{features:[[9,9,2,2,-1.],[9,10,2,1,2.]],threshold:-4.4576e-004,right_val:0.55336,left_val:0.30242},{features:[[7,6,6,4,-1.],[9,6,2,4,3.]],threshold:0.022647,right_val:0.69754,left_val:0.44149},{features:[[7,17,3,2,-1.],[8,17,1,2,3.]],threshold:-1.8805e-003,right_val:0.5498,left_val:0.27914},{features:[[10,17,3,3,-1.],[11,17,1,3,3.]],threshold:7.0889e-003,right_val:0.23855,left_val:0.52632},{features:[[8,12,3,2,-1.],[8,13,3,1,2.]],threshold:1.7318e-003,right_val:0.69836,left_val:0.43194},{features:[[9,3,6,2,-1.],[11,3,2,2,3.]],threshold:-6.8483e-003,right_val:0.53909,left_val:0.3082},{features:[[3,11,14,4,-1.],[3,13,14,2,2.]],threshold:-1.5063e-005,right_val:0.31204,left_val:0.55219},{features:[[1,10,18,4,-1.],[10,10,9,2,2.],[1,12,9,2,2.]],threshold:0.029476,right_val:0.17706,left_val:0.54013},{features:[[0,10,3,3,-1.],[0,11,3,1,3.]],threshold:8.1387e-003,right_val:0.1211,left_val:0.51786},{features:[[9,1,6,6,-1.],[11,1,2,6,3.]],threshold:0.020943,right_val:0.33112,left_val:0.52903},{features:[[8,7,3,6,-1.],[9,7,1,6,3.]],threshold:-9.5666e-003,right_val:0.4452,left_val:0.7472}],threshold:18.413},{simpleClassifiers:[{features:[[1,0,18,9,-1.],[1,3,18,3,3.]],threshold:-2.8207e-004,right_val:0.60767,left_val:0.20641},{features:[[12,10,2,6,-1.],[12,13,2,3,2.]],threshold:1.6791e-003,right_val:0.12554,left_val:0.5852},{features:[[0,5,19,8,-1.],[0,9,19,4,2.]],threshold:6.9828e-004,right_val:0.5729,left_val:0.094018},{features:[[7,0,6,9,-1.],[9,0,2,9,3.]],threshold:7.8959e-004,right_val:0.56943,left_val:0.1782},{features:[[5,3,6,1,-1.],[7,3,2,1,3.]],threshold:-2.856e-003,right_val:0.57887,left_val:0.16384},{features:[[11,3,6,1,-1.],[13,3,2,1,3.]],threshold:-3.8122e-003,right_val:0.55086,left_val:0.20854},{features:[[5,10,4,6,-1.],[5,13,4,3,2.]],threshold:1.5897e-003,right_val:0.18572,left_val:0.57028},{features:[[11,3,6,1,-1.],[13,3,2,1,3.]],threshold:0.010078,right_val:0.21898,left_val:0.51169},{features:[[4,4,12,6,-1.],[4,6,12,2,3.]],threshold:-0.063526,right_val:0.40438,left_val:0.71314},{features:[[15,12,2,6,-1.],[15,14,2,2,3.]],threshold:-9.1031e-003,right_val:0.5464,left_val:0.25672},{features:[[9,3,2,2,-1.],[10,3,1,2,2.]],threshold:-2.4035e-003,right_val:0.5591,left_val:0.17007},{features:[[9,3,3,1,-1.],[10,3,1,1,3.]],threshold:1.5226e-003,right_val:0.26191,left_val:0.54106},{features:[[1,1,4,14,-1.],[3,1,2,14,2.]],threshold:0.017997,right_val:0.65352,left_val:0.37324},{features:[[9,0,4,4,-1.],[11,0,2,2,2.],[9,2,2,2,2.]],threshold:-6.4538e-003,right_val:0.55374,left_val:0.26265},{features:[[7,5,1,14,-1.],[7,12,1,7,2.]],threshold:-0.011881,right_val:0.55447,left_val:0.20038},{features:[[19,0,1,4,-1.],[19,2,1,2,2.]],threshold:1.2714e-003,right_val:0.3032,left_val:0.55919},{features:[[5,5,6,4,-1.],[8,5,3,4,2.]],threshold:1.1376e-003,right_val:0.56465,left_val:0.27304},{features:[[9,18,3,2,-1.],[10,18,1,2,3.]],threshold:-4.2652e-003,right_val:0.54618,left_val:0.14059},{features:[[8,18,3,2,-1.],[9,18,1,2,3.]],threshold:-2.9603e-003,right_val:0.54593,left_val:0.1795},{features:[[4,5,12,6,-1.],[4,7,12,2,3.]],threshold:-8.8448e-003,right_val:0.28092,left_val:0.57368},{features:[[3,12,2,6,-1.],[3,14,2,2,3.]],threshold:-6.6431e-003,right_val:0.55038,left_val:0.23707},{features:[[10,8,2,12,-1.],[10,12,2,4,3.]],threshold:3.9998e-003,right_val:0.33043,left_val:0.56082},{features:[[7,18,3,2,-1.],[8,18,1,2,3.]],threshold:-4.1222e-003,right_val:0.5379,left_val:0.16401},{features:[[9,0,6,2,-1.],[11,0,2,2,3.]],threshold:0.015625,right_val:0.22886,left_val:0.52276},{features:[[5,11,9,3,-1.],[5,12,9,1,3.]],threshold:-0.010356,right_val:0.42529,left_val:0.70162},{features:[[9,0,6,2,-1.],[11,0,2,2,3.]],threshold:-8.7961e-003,right_val:0.53558,left_val:0.27673},{features:[[1,1,18,5,-1.],[7,1,6,5,3.]],threshold:0.16227,right_val:0.74426,left_val:0.43422},{features:[[8,0,4,4,-1.],[10,0,2,2,2.],[8,2,2,2,2.]],threshold:4.5543e-003,right_val:0.25821,left_val:0.57265},{features:[[3,12,1,3,-1.],[3,13,1,1,3.]],threshold:-2.1309e-003,right_val:0.5361,left_val:0.21068},{features:[[8,14,5,3,-1.],[8,15,5,1,3.]],threshold:-0.013208,right_val:0.45525,left_val:0.75938},{features:[[5,4,10,12,-1.],[5,4,5,6,2.],[10,10,5,6,2.]],threshold:-0.065997,right_val:0.5344,left_val:0.12525},{features:[[9,6,9,12,-1.],[9,10,9,4,3.]],threshold:7.9143e-003,right_val:0.5601,left_val:0.33154},{features:[[2,2,12,14,-1.],[2,2,6,7,2.],[8,9,6,7,2.]],threshold:0.020894,right_val:0.27688,left_val:0.5506}],threshold:15.324},{simpleClassifiers:[{features:[[4,7,12,2,-1.],[8,7,4,2,3.]],threshold:1.1961e-003,right_val:0.61562,left_val:0.17627},{features:[[7,4,6,4,-1.],[7,6,6,2,2.]],threshold:-1.868e-003,right_val:0.18324,left_val:0.61181},{features:[[4,5,11,8,-1.],[4,9,11,4,2.]],threshold:-1.958e-004,right_val:0.57238,left_val:0.099044},{features:[[3,10,16,4,-1.],[3,12,16,2,2.]],threshold:-8.0256e-004,right_val:0.23773,left_val:0.55799},{features:[[0,0,16,2,-1.],[0,1,16,1,2.]],threshold:-2.4511e-003,right_val:0.58589,left_val:0.22315},{features:[[7,5,6,2,-1.],[9,5,2,2,3.]],threshold:5.0362e-004,right_val:0.57941,left_val:0.2654},{features:[[3,2,6,10,-1.],[3,2,3,5,2.],[6,7,3,5,2.]],threshold:4.0293e-003,right_val:0.24849,left_val:0.58038},{features:[[10,5,8,15,-1.],[10,10,8,5,3.]],threshold:-0.014452,right_val:0.54842,left_val:0.18304},{features:[[3,14,8,6,-1.],[3,14,4,3,2.],[7,17,4,3,2.]],threshold:2.0381e-003,right_val:0.60511,left_val:0.33636},{features:[[14,2,2,2,-1.],[14,3,2,1,2.]],threshold:-1.6155e-003,right_val:0.54412,left_val:0.22866},{features:[[1,10,7,6,-1.],[1,13,7,3,2.]],threshold:3.3458e-003,right_val:0.23923,left_val:0.56259},{features:[[15,4,4,3,-1.],[15,4,2,3,2.]],threshold:1.638e-003,right_val:0.59646,left_val:0.3907},{features:[[2,9,14,6,-1.],[2,9,7,3,2.],[9,12,7,3,2.]],threshold:0.030251,right_val:0.15757,left_val:0.52485},{features:[[5,7,10,4,-1.],[5,9,10,2,2.]],threshold:0.037252,right_val:0.67484,left_val:0.41943},{features:[[6,9,8,8,-1.],[6,9,4,4,2.],[10,13,4,4,2.]],threshold:-0.02511,right_val:0.54735,left_val:0.18825},{features:[[14,1,3,2,-1.],[14,2,3,1,2.]],threshold:-5.3099e-003,right_val:0.52271,left_val:0.134},{features:[[1,4,4,2,-1.],[3,4,2,2,2.]],threshold:1.2086e-003,right_val:0.61096,left_val:0.37621},{features:[[11,10,2,8,-1.],[11,14,2,4,2.]],threshold:-0.021908,right_val:0.5404,left_val:0.26631},{features:[[0,0,5,3,-1.],[0,1,5,1,3.]],threshold:5.4117e-003,right_val:0.22323,left_val:0.53636},{features:[[2,5,18,8,-1.],[11,5,9,4,2.],[2,9,9,4,2.]],threshold:0.069946,right_val:0.24537,left_val:0.53582},{features:[[6,6,1,6,-1.],[6,9,1,3,2.]],threshold:3.452e-004,right_val:0.53769,left_val:0.24097},{features:[[19,1,1,3,-1.],[19,2,1,1,3.]],threshold:1.2628e-003,right_val:0.31557,left_val:0.54259},{features:[[7,6,6,6,-1.],[9,6,2,6,3.]],threshold:0.02272,right_val:0.65979,left_val:0.41584},{features:[[19,1,1,3,-1.],[19,2,1,1,3.]],threshold:-1.8111e-003,right_val:0.55052,left_val:0.28113},{features:[[3,13,2,3,-1.],[3,14,2,1,3.]],threshold:3.347e-003,right_val:0.18915,left_val:0.526},{features:[[8,4,8,12,-1.],[12,4,4,6,2.],[8,10,4,6,2.]],threshold:4.0792e-004,right_val:0.33442,left_val:0.56735},{features:[[5,2,6,3,-1.],[7,2,2,3,3.]],threshold:0.012735,right_val:0.23956,left_val:0.53436},{features:[[6,1,9,10,-1.],[6,6,9,5,2.]],threshold:-7.312e-003,right_val:0.40222,left_val:0.60109},{features:[[0,4,6,12,-1.],[2,4,2,12,3.]],threshold:-0.056949,right_val:0.45432,left_val:0.81992},{features:[[15,13,2,3,-1.],[15,14,2,1,3.]],threshold:-5.0117e-003,right_val:0.53577,left_val:0.22003},{features:[[7,14,5,3,-1.],[7,15,5,1,3.]],threshold:6.0334e-003,right_val:0.71818,left_val:0.44131},{features:[[15,13,3,3,-1.],[15,14,3,1,3.]],threshold:3.9437e-003,right_val:0.27917,left_val:0.54789},{features:[[6,14,8,3,-1.],[6,15,8,1,3.]],threshold:-3.6591e-003,right_val:0.39897,left_val:0.63579},{features:[[15,13,3,3,-1.],[15,14,3,1,3.]],threshold:-3.8456e-003,right_val:0.53007,left_val:0.34937},{features:[[2,13,3,3,-1.],[2,14,3,1,3.]],threshold:-7.1926e-003,right_val:0.52297,left_val:0.11196},{features:[[4,7,12,12,-1.],[10,7,6,6,2.],[4,13,6,6,2.]],threshold:-0.052799,right_val:0.54535,left_val:0.23871},{features:[[9,7,2,6,-1.],[10,7,1,6,2.]],threshold:-7.9538e-003,right_val:0.44394,left_val:0.75869},{features:[[8,9,5,2,-1.],[8,10,5,1,2.]],threshold:-2.7344e-003,right_val:0.54893,left_val:0.25655},{features:[[8,6,3,4,-1.],[9,6,1,4,3.]],threshold:-1.8508e-003,right_val:0.42525,left_val:0.67343},{features:[[9,6,2,8,-1.],[9,10,2,4,2.]],threshold:0.015919,right_val:0.22927,left_val:0.54884},{features:[[7,7,3,6,-1.],[8,7,1,6,3.]],threshold:-1.2688e-003,right_val:0.40224,left_val:0.61043},{features:[[11,3,3,3,-1.],[12,3,1,3,3.]],threshold:6.2884e-003,right_val:0.15362,left_val:0.53109},{features:[[5,4,6,1,-1.],[7,4,2,1,3.]],threshold:-6.226e-003,right_val:0.52416,left_val:0.17291},{features:[[5,6,10,3,-1.],[5,7,10,1,3.]],threshold:-0.012133,right_val:0.43252,left_val:0.65978}],threshold:21.011},{simpleClassifiers:[{features:[[7,3,6,9,-1.],[7,6,6,3,3.]],threshold:-3.9185e-003,right_val:0.14693,left_val:0.61034},{features:[[6,7,9,1,-1.],[9,7,3,1,3.]],threshold:1.5971e-003,right_val:0.58965,left_val:0.26324},{features:[[2,8,16,8,-1.],[2,12,16,4,2.]],threshold:0.01778,right_val:0.17604,left_val:0.58729},{features:[[14,6,2,6,-1.],[14,9,2,3,2.]],threshold:6.5335e-004,right_val:0.55961,left_val:0.15678},{features:[[1,5,6,15,-1.],[1,10,6,5,3.]],threshold:-2.8353e-004,right_val:0.5732,left_val:0.19132},{features:[[10,0,6,9,-1.],[10,3,6,3,3.]],threshold:1.6105e-003,right_val:0.56231,left_val:0.29149},{features:[[6,6,7,14,-1.],[6,13,7,7,2.]],threshold:-0.097751,right_val:0.56482,left_val:0.19435},{features:[[13,7,3,6,-1.],[13,9,3,2,3.]],threshold:5.5182e-004,right_val:0.55046,left_val:0.31346},{features:[[1,8,15,4,-1.],[6,8,5,4,3.]],threshold:-0.012858,right_val:0.57601,left_val:0.25365},{features:[[11,2,3,10,-1.],[11,7,3,5,2.]],threshold:4.153e-003,right_val:0.36598,left_val:0.57677},{features:[[3,7,4,6,-1.],[3,9,4,2,3.]],threshold:1.7092e-003,right_val:0.59189,left_val:0.28432},{features:[[13,3,6,10,-1.],[15,3,2,10,3.]],threshold:7.5217e-003,right_val:0.61831,left_val:0.40524},{features:[[5,7,8,10,-1.],[5,7,4,5,2.],[9,12,4,5,2.]],threshold:2.248e-003,right_val:0.31354,left_val:0.57838},{features:[[4,4,12,12,-1.],[10,4,6,6,2.],[4,10,6,6,2.]],threshold:0.052006,right_val:0.19166,left_val:0.55413},{features:[[1,4,6,9,-1.],[3,4,2,9,3.]],threshold:0.012086,right_val:0.66446,left_val:0.40327},{features:[[11,3,2,5,-1.],[11,3,1,5,2.]],threshold:1.4688e-005,right_val:0.57094,left_val:0.3536},{features:[[7,3,2,5,-1.],[8,3,1,5,2.]],threshold:7.1395e-006,right_val:0.56103,left_val:0.30374},{features:[[10,14,2,3,-1.],[10,15,2,1,3.]],threshold:-4.6002e-003,right_val:0.45803,left_val:0.71811},{features:[[5,12,6,2,-1.],[8,12,3,2,2.]],threshold:2.0059e-003,right_val:0.29537,left_val:0.5622},{features:[[9,14,2,3,-1.],[9,15,2,1,3.]],threshold:4.505e-003,right_val:0.7619,left_val:0.46154},{features:[[4,11,12,6,-1.],[4,14,12,3,2.]],threshold:0.011747,right_val:0.17725,left_val:0.53438},{features:[[11,11,5,9,-1.],[11,14,5,3,3.]],threshold:-0.058316,right_val:0.53408,left_val:0.16862},{features:[[6,15,3,2,-1.],[6,16,3,1,2.]],threshold:2.3629e-004,right_val:0.60268,left_val:0.37921},{features:[[11,0,3,5,-1.],[12,0,1,5,3.]],threshold:-7.8156e-003,right_val:0.53243,left_val:0.15129},{features:[[5,5,6,7,-1.],[8,5,3,7,2.]],threshold:-0.010876,right_val:0.53199,left_val:0.20818},{features:[[13,0,1,9,-1.],[13,3,1,3,3.]],threshold:-2.7746e-003,right_val:0.52103,left_val:0.40982},{features:[[3,2,4,8,-1.],[3,2,2,4,2.],[5,6,2,4,2.]],threshold:-7.8276e-004,right_val:0.34788,left_val:0.56933},{features:[[13,12,4,6,-1.],[13,14,4,2,3.]],threshold:0.01387,right_val:0.22577,left_val:0.53268},{features:[[3,12,4,6,-1.],[3,14,4,2,3.]],threshold:-0.023675,right_val:0.52007,left_val:0.15513},{features:[[13,11,3,4,-1.],[13,13,3,2,2.]],threshold:-1.4879e-005,right_val:0.38202,left_val:0.55006},{features:[[4,4,4,3,-1.],[4,5,4,1,3.]],threshold:3.6191e-003,right_val:0.66397,left_val:0.42387},{features:[[7,5,11,8,-1.],[7,9,11,4,2.]],threshold:-0.019817,right_val:0.53824,left_val:0.215},{features:[[7,8,3,4,-1.],[8,8,1,4,3.]],threshold:-3.8154e-003,right_val:0.42153,left_val:0.66757},{features:[[9,1,6,1,-1.],[11,1,2,1,3.]],threshold:-4.9776e-003,right_val:0.53863,left_val:0.22673},{features:[[5,5,3,3,-1.],[5,6,3,1,3.]],threshold:2.2441e-003,right_val:0.68557,left_val:0.43087},{features:[[0,9,20,6,-1.],[10,9,10,3,2.],[0,12,10,3,2.]],threshold:0.012282,right_val:0.34675,left_val:0.58366},{features:[[8,6,3,5,-1.],[9,6,1,5,3.]],threshold:-2.8549e-003,right_val:0.43115,left_val:0.70169},{features:[[11,0,1,3,-1.],[11,1,1,1,3.]],threshold:-3.7876e-003,right_val:0.52249,left_val:0.28953},{features:[[4,2,4,2,-1.],[4,3,4,1,2.]],threshold:-1.2201e-003,right_val:0.54816,left_val:0.29756},{features:[[12,6,4,3,-1.],[12,7,4,1,3.]],threshold:0.010161,right_val:0.81827,left_val:0.48888},{features:[[5,0,6,4,-1.],[7,0,2,4,3.]],threshold:-0.016175,right_val:0.524,left_val:0.14815},{features:[[9,7,3,8,-1.],[10,7,1,8,3.]],threshold:0.019292,right_val:0.73782,left_val:0.47863},{features:[[9,7,2,2,-1.],[10,7,1,2,2.]],threshold:-3.248e-003,right_val:0.44706,left_val:0.73742},{features:[[6,7,14,4,-1.],[13,7,7,2,2.],[6,9,7,2,2.]],threshold:-9.3803e-003,right_val:0.5538,left_val:0.34892},{features:[[0,5,3,6,-1.],[0,7,3,2,3.]],threshold:-0.012606,right_val:0.53154,left_val:0.23797},{features:[[13,11,3,4,-1.],[13,13,3,2,2.]],threshold:-0.025622,right_val:0.51388,left_val:0.19647},{features:[[4,11,3,4,-1.],[4,13,3,2,2.]],threshold:-7.5741e-005,right_val:0.33659,left_val:0.55905},{features:[[5,9,12,8,-1.],[11,9,6,4,2.],[5,13,6,4,2.]],threshold:-0.089211,right_val:0.51626,left_val:0.063405},{features:[[9,12,1,3,-1.],[9,13,1,1,3.]],threshold:-2.767e-003,right_val:0.44907,left_val:0.73235},{features:[[10,15,2,4,-1.],[10,17,2,2,2.]],threshold:2.7153e-004,right_val:0.59855,left_val:0.41148}],threshold:23.919},{simpleClassifiers:[{features:[[7,7,6,1,-1.],[9,7,2,1,3.]],threshold:1.4786e-003,right_val:0.66433,left_val:0.26635},{features:[[12,3,6,6,-1.],[15,3,3,3,2.],[12,6,3,3,2.]],threshold:-1.8742e-003,right_val:0.25185,left_val:0.61438},{features:[[0,4,10,6,-1.],[0,6,10,2,3.]],threshold:-1.7151e-003,right_val:0.23975,left_val:0.57663},{features:[[8,3,8,14,-1.],[12,3,4,7,2.],[8,10,4,7,2.]],threshold:-1.8939e-003,right_val:0.25291,left_val:0.5682},{features:[[4,4,7,15,-1.],[4,9,7,5,3.]],threshold:-5.3006e-003,right_val:0.55561,left_val:0.16407},{features:[[12,2,6,8,-1.],[15,2,3,4,2.],[12,6,3,4,2.]],threshold:-0.046663,right_val:0.47628,left_val:0.61232},{features:[[2,2,6,8,-1.],[2,2,3,4,2.],[5,6,3,4,2.]],threshold:-7.9431e-004,right_val:0.28394,left_val:0.57079},{features:[[2,13,18,7,-1.],[8,13,6,7,3.]],threshold:0.014892,right_val:0.60064,left_val:0.40897},{features:[[4,3,8,14,-1.],[4,3,4,7,2.],[8,10,4,7,2.]],threshold:-1.2047e-003,right_val:0.27053,left_val:0.57125},{features:[[18,1,2,6,-1.],[18,3,2,2,3.]],threshold:6.0619e-003,right_val:0.32622,left_val:0.52625},{features:[[9,11,2,3,-1.],[9,12,2,1,3.]],threshold:-2.5287e-003,right_val:0.41993,left_val:0.68538},{features:[[18,1,2,6,-1.],[18,3,2,2,3.]],threshold:-5.901e-003,right_val:0.54348,left_val:0.32663},{features:[[0,1,2,6,-1.],[0,3,2,2,3.]],threshold:5.6703e-003,right_val:0.2319,left_val:0.54684},{features:[[1,5,18,6,-1.],[1,7,18,2,3.]],threshold:-3.0304e-003,right_val:0.27082,left_val:0.55707},{features:[[0,2,6,7,-1.],[3,2,3,7,2.]],threshold:2.9804e-003,right_val:0.58906,left_val:0.37006},{features:[[7,3,6,14,-1.],[7,10,6,7,2.]],threshold:-0.075841,right_val:0.54199,left_val:0.21401},{features:[[3,7,13,10,-1.],[3,12,13,5,2.]],threshold:0.019263,right_val:0.27266,left_val:0.55268},{features:[[11,15,2,2,-1.],[11,16,2,1,2.]],threshold:1.8888e-004,right_val:0.60172,left_val:0.3958},{features:[[2,11,16,4,-1.],[2,11,8,2,2.],[10,13,8,2,2.]],threshold:0.02937,right_val:0.14358,left_val:0.52414},{features:[[13,7,6,4,-1.],[16,7,3,2,2.],[13,9,3,2,2.]],threshold:1.0418e-003,right_val:0.593,left_val:0.33854},{features:[[6,10,3,9,-1.],[6,13,3,3,3.]],threshold:2.6126e-003,right_val:0.30216,left_val:0.54854},{features:[[14,6,1,6,-1.],[14,9,1,3,2.]],threshold:9.6977e-004,right_val:0.5532,left_val:0.33753},{features:[[5,10,4,1,-1.],[7,10,2,1,2.]],threshold:5.9513e-004,right_val:0.33594,left_val:0.56317},{features:[[3,8,15,5,-1.],[8,8,5,5,3.]],threshold:-0.10157,right_val:0.52304,left_val:0.063735},{features:[[1,6,5,4,-1.],[1,8,5,2,2.]],threshold:0.036157,right_val:0.10295,left_val:0.5137},{features:[[3,1,17,6,-1.],[3,3,17,2,3.]],threshold:3.4624e-003,right_val:0.55583,left_val:0.38793},{features:[[6,7,8,2,-1.],[10,7,4,2,2.]],threshold:0.019555,right_val:0.18759,left_val:0.52501},{features:[[9,7,3,2,-1.],[10,7,1,2,3.]],threshold:-2.3121e-003,right_val:0.46796,left_val:0.6672},{features:[[8,7,3,2,-1.],[9,7,1,2,3.]],threshold:-1.8605e-003,right_val:0.43347,left_val:0.71634},{features:[[8,9,4,2,-1.],[8,10,4,1,2.]],threshold:-9.4026e-004,right_val:0.56502,left_val:0.30214},{features:[[8,8,4,3,-1.],[8,9,4,1,3.]],threshold:-5.2418e-003,right_val:0.52503,left_val:0.182},{features:[[9,5,6,4,-1.],[9,5,3,4,2.]],threshold:1.1729e-004,right_val:0.5446,left_val:0.33892},{features:[[8,13,4,3,-1.],[8,14,4,1,3.]],threshold:1.1879e-003,right_val:0.62536,left_val:0.40853},{features:[[4,7,12,6,-1.],[10,7,6,3,2.],[4,10,6,3,2.]],threshold:-0.010881,right_val:0.57001,left_val:0.33784},{features:[[8,14,4,3,-1.],[8,15,4,1,3.]],threshold:1.7355e-003,right_val:0.6523,left_val:0.42046},{features:[[9,7,3,3,-1.],[9,8,3,1,3.]],threshold:-6.5119e-003,right_val:0.54281,left_val:0.25952},{features:[[7,4,3,8,-1.],[8,4,1,8,3.]],threshold:-1.2136e-003,right_val:0.39779,left_val:0.61651},{features:[[10,0,3,6,-1.],[11,0,1,6,3.]],threshold:-0.010354,right_val:0.52195,left_val:0.1628},{features:[[6,3,4,8,-1.],[8,3,2,8,2.]],threshold:5.5859e-004,right_val:0.55036,left_val:0.31997},{features:[[14,3,6,13,-1.],[14,3,3,13,2.]],threshold:0.0153,right_val:0.61224,left_val:0.4104},{features:[[8,13,3,6,-1.],[8,16,3,3,2.]],threshold:-0.021588,right_val:0.51974,left_val:0.10349},{features:[[14,3,6,13,-1.],[14,3,3,13,2.]],threshold:-0.12835,right_val:0.48931,left_val:0.84939},{features:[[0,7,10,4,-1.],[0,7,5,2,2.],[5,9,5,2,2.]],threshold:-2.2927e-003,right_val:0.54716,left_val:0.31302},{features:[[14,3,6,13,-1.],[14,3,3,13,2.]],threshold:0.079915,right_val:0.6074,left_val:0.48563},{features:[[0,3,6,13,-1.],[3,3,3,13,2.]],threshold:-0.079441,right_val:0.46245,left_val:0.83947},{features:[[9,1,4,1,-1.],[9,1,2,1,2.]],threshold:-5.28e-003,right_val:0.53067,left_val:0.18817},{features:[[8,0,2,1,-1.],[9,0,1,1,2.]],threshold:1.0463e-003,right_val:0.25831,left_val:0.52712},{features:[[10,16,4,4,-1.],[12,16,2,2,2.],[10,18,2,2,2.]],threshold:2.6317e-004,right_val:0.57354,left_val:0.42353},{features:[[9,6,2,3,-1.],[10,6,1,3,2.]],threshold:-3.6173e-003,right_val:0.44954,left_val:0.69344},{features:[[4,5,12,2,-1.],[8,5,4,2,3.]],threshold:0.011422,right_val:0.41382,left_val:0.59009},{features:[[8,7,3,5,-1.],[9,7,1,5,3.]],threshold:-1.9963e-003,right_val:0.43272,left_val:0.64664}],threshold:24.528},{simpleClassifiers:[{features:[[6,4,8,6,-1.],[6,6,8,2,3.]],threshold:-9.9691e-003,right_val:0.24822,left_val:0.61423},{features:[[9,5,2,12,-1.],[9,11,2,6,2.]],threshold:7.3073e-004,right_val:0.2322,left_val:0.5705},{features:[[4,6,6,8,-1.],[4,10,6,4,2.]],threshold:6.4045e-004,right_val:0.58149,left_val:0.21123},{features:[[12,2,8,5,-1.],[12,2,4,5,2.]],threshold:4.5424e-003,right_val:0.58663,left_val:0.29505},{features:[[0,8,18,3,-1.],[0,9,18,1,3.]],threshold:9.2477e-005,right_val:0.57913,left_val:0.2991},{features:[[8,12,4,8,-1.],[8,16,4,4,2.]],threshold:-8.6603e-003,right_val:0.56355,left_val:0.2813},{features:[[0,2,8,5,-1.],[4,2,4,5,2.]],threshold:8.0516e-003,right_val:0.60548,left_val:0.35354},{features:[[13,11,3,4,-1.],[13,13,3,2,2.]],threshold:4.3835e-004,right_val:0.27315,left_val:0.55965},{features:[[5,11,6,1,-1.],[7,11,2,1,3.]],threshold:-9.8169e-005,right_val:0.36386,left_val:0.5978},{features:[[11,3,3,1,-1.],[12,3,1,1,3.]],threshold:-1.1299e-003,right_val:0.54327,left_val:0.27553},{features:[[7,13,5,3,-1.],[7,14,5,1,3.]],threshold:6.4356e-003,right_val:0.70698,left_val:0.43056},{features:[[11,11,7,6,-1.],[11,14,7,3,2.]],threshold:-0.056829,right_val:0.5295,left_val:0.24952},{features:[[2,11,7,6,-1.],[2,14,7,3,2.]],threshold:4.0668e-003,right_val:0.24977,left_val:0.54786},{features:[[12,14,2,6,-1.],[12,16,2,2,3.]],threshold:4.8165e-005,right_val:0.57064,left_val:0.39386},{features:[[8,14,3,3,-1.],[8,15,3,1,3.]],threshold:6.1795e-003,right_val:0.73948,left_val:0.44076},{features:[[11,0,3,5,-1.],[12,0,1,5,3.]],threshold:6.4986e-003,right_val:0.24792,left_val:0.54452},{features:[[6,1,4,9,-1.],[8,1,2,9,2.]],threshold:-1.0211e-003,right_val:0.5339,left_val:0.25448},{features:[[10,3,6,1,-1.],[12,3,2,1,3.]],threshold:-5.4248e-003,right_val:0.53241,left_val:0.27189},{features:[[8,8,3,4,-1.],[8,10,3,2,2.]],threshold:-1.056e-003,right_val:0.55345,left_val:0.31783},{features:[[8,12,4,2,-1.],[8,13,4,1,2.]],threshold:6.6466e-004,right_val:0.65582,left_val:0.42842},{features:[[5,18,4,2,-1.],[5,19,4,1,2.]],threshold:-2.7524e-004,right_val:0.38103,left_val:0.59029},{features:[[2,1,18,6,-1.],[2,3,18,2,3.]],threshold:4.2293e-003,right_val:0.57094,left_val:0.38165},{features:[[6,0,3,2,-1.],[7,0,1,2,3.]],threshold:-3.2868e-003,right_val:0.52595,left_val:0.17477},{features:[[13,8,6,2,-1.],[16,8,3,1,2.],[13,9,3,1,2.]],threshold:1.5612e-004,right_val:0.57256,left_val:0.36017},{features:[[6,10,3,6,-1.],[6,13,3,3,2.]],threshold:-7.3621e-006,right_val:0.30445,left_val:0.54019},{features:[[0,13,20,4,-1.],[10,13,10,2,2.],[0,15,10,2,2.]],threshold:-0.014767,right_val:0.55734,left_val:0.32208},{features:[[7,7,6,5,-1.],[9,7,2,5,3.]],threshold:0.02449,right_val:0.65188,left_val:0.43015},{features:[[11,0,2,2,-1.],[11,1,2,1,2.]],threshold:-3.7652e-004,right_val:0.55982,left_val:0.35646},{features:[[1,8,6,2,-1.],[1,8,3,1,2.],[4,9,3,1,2.]],threshold:7.3658e-006,right_val:0.55619,left_val:0.34908},{features:[[0,2,20,2,-1.],[10,2,10,1,2.],[0,3,10,1,2.]],threshold:-0.0151,right_val:0.53353,left_val:0.17763},{features:[[7,14,5,3,-1.],[7,15,5,1,3.]],threshold:-3.8317e-003,right_val:0.42214,left_val:0.61497},{features:[[7,13,6,6,-1.],[10,13,3,3,2.],[7,16,3,3,2.]],threshold:0.016925,right_val:0.21666,left_val:0.5413},{features:[[9,12,2,3,-1.],[9,13,2,1,3.]],threshold:-3.0478e-003,right_val:0.43546,left_val:0.64495},{features:[[16,11,1,6,-1.],[16,13,1,2,3.]],threshold:3.2141e-003,right_val:0.35232,left_val:0.54002},{features:[[3,11,1,6,-1.],[3,13,1,2,3.]],threshold:-4.0023e-003,right_val:0.53384,left_val:0.27745},{features:[[4,4,14,12,-1.],[11,4,7,6,2.],[4,10,7,6,2.]],threshold:7.4182e-003,right_val:0.37028,left_val:0.56767},{features:[[5,4,3,3,-1.],[5,5,3,1,3.]],threshold:-8.8765e-003,right_val:0.45837,left_val:0.77492},{features:[[12,3,3,3,-1.],[13,3,1,3,3.]],threshold:2.7312e-003,right_val:0.39967,left_val:0.53387},{features:[[6,6,8,3,-1.],[6,7,8,1,3.]],threshold:-2.5082e-003,right_val:0.37775,left_val:0.5612},{features:[[12,3,3,3,-1.],[13,3,1,3,3.]],threshold:-8.0541e-003,right_val:0.51792,left_val:0.29152},{features:[[3,1,4,10,-1.],[3,1,2,5,2.],[5,6,2,5,2.]],threshold:-9.7939e-004,right_val:0.37002,left_val:0.55364},{features:[[5,7,10,2,-1.],[5,7,5,2,2.]],threshold:-5.8746e-003,right_val:0.56794,left_val:0.37544},{features:[[8,7,3,3,-1.],[9,7,1,3,3.]],threshold:-4.4937e-003,right_val:0.44809,left_val:0.70197},{features:[[15,12,2,3,-1.],[15,13,2,1,3.]],threshold:-5.4389e-003,right_val:0.53134,left_val:0.23104},{features:[[7,8,3,4,-1.],[8,8,1,4,3.]],threshold:-7.5095e-004,right_val:0.41293,left_val:0.58649},{features:[[13,4,1,12,-1.],[13,10,1,6,2.]],threshold:1.4529e-005,right_val:0.56196,left_val:0.37324},{features:[[4,5,12,12,-1.],[4,5,6,6,2.],[10,11,6,6,2.]],threshold:0.040758,right_val:0.27205,left_val:0.53121},{features:[[7,14,7,3,-1.],[7,15,7,1,3.]],threshold:6.6506e-003,right_val:0.66935,left_val:0.471},{features:[[3,12,2,3,-1.],[3,13,2,1,3.]],threshold:4.5759e-003,right_val:0.16373,left_val:0.51678},{features:[[3,2,14,2,-1.],[10,2,7,1,2.],[3,3,7,1,2.]],threshold:6.5269e-003,right_val:0.29385,left_val:0.53976},{features:[[0,1,3,10,-1.],[1,1,1,10,3.]],threshold:-0.01366,right_val:0.45322,left_val:0.70865},{features:[[9,0,6,5,-1.],[11,0,2,5,3.]],threshold:0.027359,right_val:0.35892,left_val:0.52065},{features:[[5,7,6,2,-1.],[8,7,3,2,2.]],threshold:6.2198e-004,right_val:0.54411,left_val:0.35071},{features:[[7,1,6,10,-1.],[7,6,6,5,2.]],threshold:-3.3077e-003,right_val:0.40249,left_val:0.58595},{features:[[1,1,18,3,-1.],[7,1,6,3,3.]],threshold:-0.010631,right_val:0.44226,left_val:0.67433},{features:[[16,3,3,6,-1.],[16,5,3,2,3.]],threshold:0.019442,right_val:0.17979,left_val:0.52827}],threshold:27.153},{simpleClassifiers:[{features:[[6,3,7,6,-1.],[6,6,7,3,2.]],threshold:-5.5052e-003,right_val:0.26266,left_val:0.59147},{features:[[4,7,12,2,-1.],[8,7,4,2,3.]],threshold:1.9562e-003,right_val:0.57416,left_val:0.23126},{features:[[0,4,17,10,-1.],[0,9,17,5,2.]],threshold:-8.8925e-003,right_val:0.56267,left_val:0.16565},{features:[[3,4,15,16,-1.],[3,12,15,8,2.]],threshold:0.083638,right_val:0.19573,left_val:0.54234},{features:[[7,15,6,4,-1.],[7,17,6,2,2.]],threshold:1.2282e-003,right_val:0.59925,left_val:0.34179},{features:[[15,2,4,9,-1.],[15,2,2,9,2.]],threshold:5.7629e-003,right_val:0.60799,left_val:0.37196},{features:[[2,3,3,2,-1.],[2,4,3,1,2.]],threshold:-1.6417e-003,right_val:0.55769,left_val:0.25775},{features:[[13,6,7,9,-1.],[13,9,7,3,3.]],threshold:3.4113e-003,right_val:0.55142,left_val:0.29507},{features:[[8,11,4,3,-1.],[8,12,4,1,3.]],threshold:-0.011069,right_val:0.44771,left_val:0.75694},{features:[[0,2,20,6,-1.],[10,2,10,3,2.],[0,5,10,3,2.]],threshold:0.034866,right_val:0.26696,left_val:0.55837},{features:[[3,2,6,10,-1.],[3,2,3,5,2.],[6,7,3,5,2.]],threshold:6.5701e-004,right_val:0.29889,left_val:0.56273},{features:[[13,10,3,4,-1.],[13,12,3,2,2.]],threshold:-0.024339,right_val:0.51089,left_val:0.27712},{features:[[4,10,3,4,-1.],[4,12,3,2,2.]],threshold:5.9435e-004,right_val:0.31203,left_val:0.55807},{features:[[7,5,6,3,-1.],[9,5,2,3,3.]],threshold:2.2972e-003,right_val:0.56791,left_val:0.33303},{features:[[7,6,6,8,-1.],[7,10,6,4,2.]],threshold:-3.7802e-003,right_val:0.53448,left_val:0.29905},{features:[[0,11,20,6,-1.],[0,14,20,3,2.]],threshold:-0.13421,right_val:0.53926,left_val:0.14639},{features:[[4,13,4,6,-1.],[4,13,2,3,2.],[6,16,2,3,2.]],threshold:7.5225e-004,right_val:0.56927,left_val:0.3747},{features:[[6,0,8,12,-1.],[10,0,4,6,2.],[6,6,4,6,2.]],threshold:-0.040546,right_val:0.54843,left_val:0.27547},{features:[[2,0,15,2,-1.],[2,1,15,1,2.]],threshold:1.2573e-003,right_val:0.57561,left_val:0.37446},{features:[[9,12,2,3,-1.],[9,13,2,1,3.]],threshold:-7.425e-003,right_val:0.47282,left_val:0.75139},{features:[[3,12,1,2,-1.],[3,13,1,1,2.]],threshold:5.0908e-004,right_val:0.29323,left_val:0.54049},{features:[[9,11,2,3,-1.],[9,12,2,1,3.]],threshold:-1.2808e-003,right_val:0.42733,left_val:0.61698},{features:[[7,3,3,1,-1.],[8,3,1,1,3.]],threshold:-1.8349e-003,right_val:0.52065,left_val:0.20485},{features:[[17,7,3,6,-1.],[17,9,3,2,3.]],threshold:0.027485,right_val:0.16755,left_val:0.5253},{features:[[7,2,3,2,-1.],[8,2,1,2,3.]],threshold:2.2372e-003,right_val:0.27777,left_val:0.52678},{features:[[11,4,5,3,-1.],[11,5,5,1,3.]],threshold:-8.8635e-003,right_val:0.4812,left_val:0.69546},{features:[[4,4,5,3,-1.],[4,5,5,1,3.]],threshold:4.1754e-003,right_val:0.63492,left_val:0.42919},{features:[[19,3,1,2,-1.],[19,4,1,1,2.]],threshold:-1.7098e-003,right_val:0.53612,left_val:0.29305},{features:[[5,5,4,3,-1.],[5,6,4,1,3.]],threshold:6.5329e-003,right_val:0.74097,left_val:0.44953},{features:[[17,7,3,6,-1.],[17,9,3,2,3.]],threshold:-9.5373e-003,right_val:0.54165,left_val:0.31491},{features:[[0,7,3,6,-1.],[0,9,3,2,3.]],threshold:0.025311,right_val:0.13117,left_val:0.51219},{features:[[14,2,6,9,-1.],[14,5,6,3,3.]],threshold:0.036461,right_val:0.25913,left_val:0.51759},{features:[[0,4,5,6,-1.],[0,6,5,2,3.]],threshold:0.020854,right_val:0.15823,left_val:0.51371},{features:[[10,5,6,2,-1.],[12,5,2,2,3.]],threshold:-8.7208e-004,right_val:0.4399,left_val:0.55743},{features:[[4,5,6,2,-1.],[6,5,2,2,3.]],threshold:-1.5227e-005,right_val:0.37081,left_val:0.55489},{features:[[8,1,4,6,-1.],[8,3,4,2,3.]],threshold:-8.4317e-004,right_val:0.55542,left_val:0.33874},{features:[[0,2,3,6,-1.],[0,4,3,2,3.]],threshold:3.6038e-003,right_val:0.34112,left_val:0.53581},{features:[[6,6,8,3,-1.],[6,7,8,1,3.]],threshold:-6.8058e-003,right_val:0.43459,left_val:0.61252},{features:[[0,1,5,9,-1.],[0,4,5,3,3.]],threshold:-0.047022,right_val:0.51937,left_val:0.23582},{features:[[16,0,4,15,-1.],[16,0,2,15,2.]],threshold:-0.036954,right_val:0.47609,left_val:0.73231},{features:[[1,10,3,2,-1.],[1,11,3,1,2.]],threshold:1.0439e-003,right_val:0.34113,left_val:0.54195},{features:[[14,4,1,10,-1.],[14,9,1,5,2.]],threshold:-2.1051e-004,right_val:0.55549,left_val:0.28217},{features:[[0,1,4,12,-1.],[2,1,2,12,2.]],threshold:-0.080832,right_val:0.46974,left_val:0.91299},{features:[[11,11,4,2,-1.],[11,11,2,2,2.]],threshold:-3.6579e-004,right_val:0.39783,left_val:0.60227},{features:[[5,11,4,2,-1.],[7,11,2,2,2.]],threshold:-1.2546e-004,right_val:0.38455,left_val:0.56132},{features:[[3,8,15,5,-1.],[8,8,5,5,3.]],threshold:-0.068786,right_val:0.53005,left_val:0.22616},{features:[[0,0,6,10,-1.],[3,0,3,10,2.]],threshold:0.012416,right_val:0.58288,left_val:0.40757},{features:[[11,4,3,2,-1.],[12,4,1,2,3.]],threshold:-4.7175e-003,right_val:0.52678,left_val:0.28273},{features:[[8,12,3,8,-1.],[8,16,3,4,2.]],threshold:0.038137,right_val:0.10236,left_val:0.50747},{features:[[8,14,5,3,-1.],[8,15,5,1,3.]],threshold:-2.8168e-003,right_val:0.43597,left_val:0.6169},{features:[[7,14,4,3,-1.],[7,15,4,1,3.]],threshold:8.1304e-003,right_val:0.76061,left_val:0.45244},{features:[[11,4,3,2,-1.],[12,4,1,2,3.]],threshold:6.0056e-003,right_val:0.18597,left_val:0.52404},{features:[[3,15,14,4,-1.],[3,15,7,2,2.],[10,17,7,2,2.]],threshold:0.019139,right_val:0.23321,left_val:0.52094},{features:[[2,2,16,4,-1.],[10,2,8,2,2.],[2,4,8,2,2.]],threshold:0.016446,right_val:0.32642,left_val:0.54507},{features:[[0,8,6,12,-1.],[3,8,3,12,2.]],threshold:-0.037357,right_val:0.45332,left_val:0.6999},{features:[[5,7,10,2,-1.],[5,7,5,2,2.]],threshold:-0.019728,right_val:0.54128,left_val:0.26537},{features:[[9,7,2,5,-1.],[10,7,1,5,2.]],threshold:6.6973e-003,right_val:0.71387,left_val:0.44806},{features:[[13,7,6,4,-1.],[16,7,3,2,2.],[13,9,3,2,2.]],threshold:7.4458e-004,right_val:0.54713,left_val:0.42314},{features:[[0,13,8,2,-1.],[0,14,8,1,2.]],threshold:1.1791e-003,right_val:0.31305,left_val:0.53417},{features:[[13,7,6,4,-1.],[16,7,3,2,2.],[13,9,3,2,2.]],threshold:0.034981,right_val:0.34305,left_val:0.51187},{features:[[1,7,6,4,-1.],[1,7,3,2,2.],[4,9,3,2,2.]],threshold:5.686e-004,right_val:0.54686,left_val:0.35322},{features:[[12,6,1,12,-1.],[12,12,1,6,2.]],threshold:-0.011341,right_val:0.53487,left_val:0.28424},{features:[[9,5,2,6,-1.],[10,5,1,6,2.]],threshold:-6.6228e-003,right_val:0.44927,left_val:0.68836},{features:[[14,12,2,3,-1.],[14,13,2,1,3.]],threshold:-8.016e-003,right_val:0.52243,left_val:0.17099},{features:[[4,12,2,3,-1.],[4,13,2,1,3.]],threshold:1.4207e-003,right_val:0.29934,left_val:0.52908},{features:[[8,12,4,3,-1.],[8,13,4,1,3.]],threshold:-2.7802e-003,right_val:0.44605,left_val:0.64989},{features:[[5,2,2,4,-1.],[5,2,1,2,2.],[6,4,1,2,2.]],threshold:-1.4748e-003,right_val:0.53881,left_val:0.32604},{features:[[5,5,11,3,-1.],[5,6,11,1,3.]],threshold:-0.02383,right_val:0.48012,left_val:0.75289},{features:[[7,6,4,12,-1.],[7,12,4,6,2.]],threshold:6.937e-003,right_val:0.32614,left_val:0.53352},{features:[[12,13,8,5,-1.],[12,13,4,5,2.]],threshold:8.2806e-003,right_val:0.57378,left_val:0.45804},{features:[[7,6,1,12,-1.],[7,12,1,6,2.]],threshold:-0.01044,right_val:0.52338,left_val:0.25923}],threshold:34.554},{simpleClassifiers:[{features:[[1,2,6,3,-1.],[4,2,3,3,2.]],threshold:7.2007e-003,right_val:0.68498,left_val:0.32589},{features:[[9,5,6,10,-1.],[12,5,3,5,2.],[9,10,3,5,2.]],threshold:-2.8594e-003,right_val:0.25378,left_val:0.58389},{features:[[5,5,8,12,-1.],[5,5,4,6,2.],[9,11,4,6,2.]],threshold:6.8581e-004,right_val:0.28124,left_val:0.57081},{features:[[0,7,20,6,-1.],[0,9,20,2,3.]],threshold:7.958e-003,right_val:0.55443,left_val:0.25011},{features:[[4,2,2,2,-1.],[4,3,2,1,2.]],threshold:-1.2124e-003,right_val:0.54334,left_val:0.23854},{features:[[4,18,12,2,-1.],[8,18,4,2,3.]],threshold:7.9426e-003,right_val:0.62208,left_val:0.39551},{features:[[7,4,4,16,-1.],[7,12,4,8,2.]],threshold:2.4631e-003,right_val:0.29924,left_val:0.56397},{features:[[7,6,7,8,-1.],[7,10,7,4,2.]],threshold:-6.0397e-003,right_val:0.54117,left_val:0.21865},{features:[[6,3,3,1,-1.],[7,3,1,1,3.]],threshold:-1.2988e-003,right_val:0.53646,left_val:0.23507},{features:[[11,15,2,4,-1.],[11,17,2,2,2.]],threshold:2.2299e-004,right_val:0.57296,left_val:0.38041},{features:[[3,5,4,8,-1.],[3,9,4,4,2.]],threshold:1.4654e-003,right_val:0.52583,left_val:0.25102},{features:[[7,1,6,12,-1.],[7,7,6,6,2.]],threshold:-8.121e-004,right_val:0.38512,left_val:0.59928},{features:[[4,6,6,2,-1.],[6,6,2,2,3.]],threshold:-1.3836e-003,right_val:0.36366,left_val:0.56814},{features:[[16,4,4,6,-1.],[16,6,4,2,3.]],threshold:-0.027936,right_val:0.53776,left_val:0.14913},{features:[[3,3,5,2,-1.],[3,4,5,1,2.]],threshold:-4.692e-004,right_val:0.55725,left_val:0.36924},{features:[[9,11,2,3,-1.],[9,12,2,1,3.]],threshold:-4.983e-003,right_val:0.45325,left_val:0.67585},{features:[[2,16,4,2,-1.],[2,17,4,1,2.]],threshold:1.8815e-003,right_val:0.29325,left_val:0.5368},{features:[[7,13,6,6,-1.],[10,13,3,3,2.],[7,16,3,3,2.]],threshold:-0.019068,right_val:0.53301,left_val:0.16494},{features:[[7,0,3,4,-1.],[8,0,1,4,3.]],threshold:-4.6907e-003,right_val:0.51194,left_val:0.19639},{features:[[8,15,4,3,-1.],[8,16,4,1,3.]],threshold:5.9777e-003,right_val:0.70084,left_val:0.46712},{features:[[0,4,4,6,-1.],[0,6,4,2,3.]],threshold:-0.033303,right_val:0.51042,left_val:0.11554},{features:[[5,6,12,3,-1.],[9,6,4,3,3.]],threshold:0.090744,right_val:0.13062,left_val:0.51497},{features:[[7,6,6,14,-1.],[9,6,2,14,3.]],threshold:9.3556e-004,right_val:0.54399,left_val:0.36055},{features:[[9,7,3,3,-1.],[10,7,1,3,3.]],threshold:0.014902,right_val:0.76876,left_val:0.48862},{features:[[6,12,2,4,-1.],[6,14,2,2,2.]],threshold:6.1594e-004,right_val:0.32409,left_val:0.53568},{features:[[10,12,7,6,-1.],[10,14,7,2,3.]],threshold:-0.050671,right_val:0.52304,left_val:0.18486},{features:[[1,0,15,2,-1.],[1,1,15,1,2.]],threshold:6.8666e-004,right_val:0.55179,left_val:0.38406},{features:[[14,0,6,6,-1.],[14,0,3,6,2.]],threshold:8.3712e-003,right_val:0.61318,left_val:0.42886},{features:[[5,3,3,1,-1.],[6,3,1,1,3.]],threshold:-1.2953e-003,right_val:0.52807,left_val:0.29137},{features:[[14,0,6,6,-1.],[14,0,3,6,2.]],threshold:-0.041942,right_val:0.4856,left_val:0.75548},{features:[[0,3,20,10,-1.],[0,8,20,5,2.]],threshold:-0.023529,right_val:0.52561,left_val:0.28383},{features:[[14,0,6,6,-1.],[14,0,3,6,2.]],threshold:0.040857,right_val:0.62773,left_val:0.48709},{features:[[0,0,6,6,-1.],[3,0,3,6,2.]],threshold:-0.025407,right_val:0.4575,left_val:0.70997},{features:[[19,15,1,2,-1.],[19,16,1,1,2.]],threshold:-4.1415e-004,right_val:0.54694,left_val:0.40309},{features:[[0,2,4,8,-1.],[2,2,2,8,2.]],threshold:0.021824,right_val:0.67687,left_val:0.4502},{features:[[2,1,18,4,-1.],[11,1,9,2,2.],[2,3,9,2,2.]],threshold:0.014114,right_val:0.37917,left_val:0.54429},{features:[[8,12,1,2,-1.],[8,13,1,1,2.]],threshold:6.7215e-005,right_val:0.58735,left_val:0.42005},{features:[[5,2,10,6,-1.],[10,2,5,3,2.],[5,5,5,3,2.]],threshold:-7.9418e-003,right_val:0.55853,left_val:0.37926},{features:[[9,7,2,4,-1.],[10,7,1,4,2.]],threshold:-7.2144e-003,right_val:0.46035,left_val:0.72531},{features:[[9,7,3,3,-1.],[10,7,1,3,3.]],threshold:2.5817e-003,right_val:0.59002,left_val:0.46933},{features:[[4,5,12,8,-1.],[8,5,4,8,3.]],threshold:0.13409,right_val:0.18088,left_val:0.51492},{features:[[15,15,4,3,-1.],[15,16,4,1,3.]],threshold:2.2963e-003,right_val:0.37179,left_val:0.53997},{features:[[8,18,3,1,-1.],[9,18,1,1,3.]],threshold:-2.1576e-003,right_val:0.51489,left_val:0.24085},{features:[[9,13,4,3,-1.],[9,14,4,1,3.]],threshold:-4.9196e-003,right_val:0.47387,left_val:0.65736},{features:[[7,13,4,3,-1.],[7,14,4,1,3.]],threshold:1.6267e-003,right_val:0.63031,left_val:0.41928},{features:[[19,15,1,2,-1.],[19,16,1,1,2.]],threshold:3.3413e-004,right_val:0.37021,left_val:0.55403},{features:[[0,15,8,4,-1.],[0,17,8,2,2.]],threshold:-0.026698,right_val:0.51014,left_val:0.17109},{features:[[9,3,6,4,-1.],[11,3,2,4,3.]],threshold:-0.030562,right_val:0.51688,left_val:0.19042},{features:[[8,14,4,3,-1.],[8,15,4,1,3.]],threshold:2.8512e-003,right_val:0.63139,left_val:0.44475},{features:[[3,14,14,6,-1.],[3,16,14,2,3.]],threshold:-0.036211,right_val:0.53773,left_val:0.24907},{features:[[6,3,6,6,-1.],[6,6,6,3,2.]],threshold:-2.4115e-003,right_val:0.36642,left_val:0.53812},{features:[[5,11,10,6,-1.],[5,14,10,3,2.]],threshold:-7.7253e-004,right_val:0.35416,left_val:0.55302},{features:[[3,10,3,4,-1.],[4,10,1,4,3.]],threshold:2.9482e-004,right_val:0.56672,left_val:0.41327},{features:[[13,9,2,2,-1.],[13,9,1,2,2.]],threshold:-6.2335e-003,right_val:0.51987,left_val:0.098787},{features:[[5,3,6,4,-1.],[7,3,2,4,3.]],threshold:-0.026275,right_val:0.50281,left_val:0.091127},{features:[[9,7,3,3,-1.],[10,7,1,3,3.]],threshold:5.3212e-003,right_val:0.62227,left_val:0.47266},{features:[[2,12,2,3,-1.],[2,13,2,1,3.]],threshold:-4.1129e-003,right_val:0.51378,left_val:0.21575},{features:[[9,8,3,12,-1.],[9,12,3,4,3.]],threshold:3.2458e-003,right_val:0.37218,left_val:0.54108},{features:[[3,14,4,6,-1.],[3,14,2,3,2.],[5,17,2,3,2.]],threshold:-0.01636,right_val:0.46853,left_val:0.77879},{features:[[16,15,2,2,-1.],[16,16,2,1,2.]],threshold:3.2166e-004,right_val:0.42404,left_val:0.5479},{features:[[2,15,2,2,-1.],[2,16,2,1,2.]],threshold:6.4452e-004,right_val:0.35013,left_val:0.53306},{features:[[8,12,4,3,-1.],[8,13,4,1,3.]],threshold:-7.891e-003,right_val:0.47266,left_val:0.69235},{features:[[0,7,20,1,-1.],[10,7,10,1,2.]],threshold:0.048336,right_val:0.075749,left_val:0.50559},{features:[[7,6,8,3,-1.],[7,6,4,3,2.]],threshold:-7.5178e-004,right_val:0.55386,left_val:0.37837},{features:[[5,7,8,2,-1.],[9,7,4,2,2.]],threshold:-2.4954e-003,right_val:0.53596,left_val:0.30817},{features:[[9,7,3,5,-1.],[10,7,1,5,3.]],threshold:-2.2385e-003,right_val:0.46493,left_val:0.6634},{features:[[8,7,3,5,-1.],[9,7,1,5,3.]],threshold:-1.7988e-003,right_val:0.43472,left_val:0.65968},{features:[[11,1,3,5,-1.],[12,1,1,5,3.]],threshold:8.7861e-003,right_val:0.23156,left_val:0.52318},{features:[[6,2,3,6,-1.],[7,2,1,6,3.]],threshold:3.6715e-003,right_val:0.29774,left_val:0.52043},{features:[[14,14,6,5,-1.],[14,14,3,5,2.]],threshold:-0.035336,right_val:0.48615,left_val:0.72389},{features:[[9,8,2,2,-1.],[9,9,2,1,2.]],threshold:-6.9189e-004,right_val:0.52298,left_val:0.3105},{features:[[10,7,1,3,-1.],[10,8,1,1,3.]],threshold:-3.3946e-003,right_val:0.52102,left_val:0.3139},{features:[[6,6,2,2,-1.],[6,6,1,1,2.],[7,7,1,1,2.]],threshold:9.8569e-004,right_val:0.65851,left_val:0.45366},{features:[[2,11,18,4,-1.],[11,11,9,2,2.],[2,13,9,2,2.]],threshold:-0.050163,right_val:0.51989,left_val:0.18045},{features:[[6,6,2,2,-1.],[6,6,1,1,2.],[7,7,1,1,2.]],threshold:-2.2367e-003,right_val:0.46514,left_val:0.72557},{features:[[0,15,20,2,-1.],[0,16,20,1,2.]],threshold:7.4326e-004,right_val:0.58985,left_val:0.44129},{features:[[4,14,2,3,-1.],[4,15,2,1,3.]],threshold:-9.3485e-004,right_val:0.5366,left_val:0.35001},{features:[[8,14,4,3,-1.],[8,15,4,1,3.]],threshold:0.017498,right_val:0.83153,left_val:0.49122},{features:[[8,7,2,3,-1.],[8,8,2,1,3.]],threshold:-1.52e-003,right_val:0.53706,left_val:0.35703},{features:[[9,10,2,3,-1.],[9,11,2,1,3.]],threshold:7.8004e-004,right_val:0.59673,left_val:0.43538}],threshold:39.107},{simpleClassifiers:[{features:[[5,4,10,4,-1.],[5,6,10,2,2.]],threshold:-9.9946e-003,right_val:0.30545,left_val:0.61626},{features:[[9,7,6,4,-1.],[12,7,3,2,2.],[9,9,3,2,2.]],threshold:-1.1085e-003,right_val:0.31556,left_val:0.58183},{features:[[4,7,3,6,-1.],[4,9,3,2,3.]],threshold:1.0364e-003,right_val:0.56929,left_val:0.25521},{features:[[11,15,4,4,-1.],[13,15,2,2,2.],[11,17,2,2,2.]],threshold:6.8211e-004,right_val:0.59349,left_val:0.36851},{features:[[7,8,4,2,-1.],[7,9,4,1,2.]],threshold:-6.8057e-004,right_val:0.54748,left_val:0.23324},{features:[[13,1,4,3,-1.],[13,1,2,3,2.]],threshold:2.6069e-004,right_val:0.56675,left_val:0.32575},{features:[[5,15,4,4,-1.],[5,15,2,2,2.],[7,17,2,2,2.]],threshold:5.1607e-004,right_val:0.58455,left_val:0.37447},{features:[[9,5,4,7,-1.],[9,5,2,7,2.]],threshold:8.5008e-004,right_val:0.55228,left_val:0.34204},{features:[[5,6,8,3,-1.],[9,6,4,3,2.]],threshold:-1.8608e-003,right_val:0.53754,left_val:0.28044},{features:[[9,9,2,2,-1.],[9,10,2,1,2.]],threshold:-1.5034e-003,right_val:0.5499,left_val:0.25791},{features:[[7,15,5,3,-1.],[7,16,5,1,3.]],threshold:2.3479e-003,right_val:0.63137,left_val:0.41752},{features:[[11,10,4,3,-1.],[11,10,2,3,2.]],threshold:-2.888e-004,right_val:0.40527,left_val:0.58652},{features:[[6,9,8,10,-1.],[6,14,8,5,2.]],threshold:8.9405e-003,right_val:0.23187,left_val:0.52111},{features:[[10,11,6,2,-1.],[10,11,3,2,2.]],threshold:-0.019328,right_val:0.52415,left_val:0.27534},{features:[[4,11,6,2,-1.],[7,11,3,2,2.]],threshold:-2.0202e-004,right_val:0.36772,left_val:0.5723},{features:[[11,3,8,1,-1.],[11,3,4,1,2.]],threshold:2.1179e-003,right_val:0.55424,left_val:0.44661},{features:[[6,3,3,2,-1.],[7,3,1,2,3.]],threshold:-1.7744e-003,right_val:0.5301,left_val:0.28133},{features:[[14,5,6,5,-1.],[14,5,3,5,2.]],threshold:4.2234e-003,right_val:0.57954,left_val:0.43997},{features:[[7,5,2,12,-1.],[7,11,2,6,2.]],threshold:-0.014375,right_val:0.52921,left_val:0.29811},{features:[[8,11,4,3,-1.],[8,12,4,1,3.]],threshold:-0.015349,right_val:0.47482,left_val:0.77052},{features:[[4,1,2,3,-1.],[5,1,1,3,2.]],threshold:1.5152e-005,right_val:0.55769,left_val:0.37188},{features:[[18,3,2,6,-1.],[18,5,2,2,3.]],threshold:-9.1294e-003,right_val:0.52868,left_val:0.36152},{features:[[0,3,2,6,-1.],[0,5,2,2,3.]],threshold:2.2512e-003,right_val:0.34863,left_val:0.53647},{features:[[9,12,2,3,-1.],[9,13,2,1,3.]],threshold:-4.9697e-003,right_val:0.46768,left_val:0.69277},{features:[[7,13,4,3,-1.],[7,14,4,1,3.]],threshold:-0.012829,right_val:0.46607,left_val:0.77122},{features:[[18,0,2,6,-1.],[18,2,2,2,3.]],threshold:-9.366e-003,right_val:0.53513,left_val:0.3375},{features:[[0,0,2,6,-1.],[0,2,2,2,3.]],threshold:3.2452e-003,right_val:0.32896,left_val:0.53252},{features:[[8,14,6,3,-1.],[8,15,6,1,3.]],threshold:-0.011724,right_val:0.47543,left_val:0.68377},{features:[[7,4,2,4,-1.],[8,4,1,4,2.]],threshold:2.9258e-005,right_val:0.53605,left_val:0.35721},{features:[[8,5,4,6,-1.],[8,7,4,2,3.]],threshold:-2.2244e-005,right_val:0.35521,left_val:0.55414},{features:[[6,4,2,2,-1.],[7,4,1,2,2.]],threshold:5.0882e-003,right_val:0.12565,left_val:0.50708},{features:[[3,14,14,4,-1.],[10,14,7,2,2.],[3,16,7,2,2.]],threshold:0.02743,right_val:0.16258,left_val:0.52696},{features:[[6,15,6,2,-1.],[6,15,3,1,2.],[9,16,3,1,2.]],threshold:-6.4143e-003,right_val:0.45842,left_val:0.71456},{features:[[14,15,6,2,-1.],[14,16,6,1,2.]],threshold:3.348e-003,right_val:0.34947,left_val:0.53986},{features:[[2,12,12,8,-1.],[2,16,12,4,2.]],threshold:-0.082635,right_val:0.51602,left_val:0.24392},{features:[[7,7,7,2,-1.],[7,8,7,1,2.]],threshold:1.0262e-003,right_val:0.57679,left_val:0.38869},{features:[[0,2,18,2,-1.],[0,3,18,1,2.]],threshold:-1.6307e-003,right_val:0.53477,left_val:0.33895},{features:[[9,6,2,5,-1.],[9,6,1,5,2.]],threshold:2.4547e-003,right_val:0.63872,left_val:0.46014},{features:[[7,5,3,8,-1.],[8,5,1,8,3.]],threshold:-9.9477e-004,right_val:0.41204,left_val:0.57699},{features:[[9,6,3,4,-1.],[10,6,1,4,3.]],threshold:0.015409,right_val:0.70898,left_val:0.48787},{features:[[4,13,3,2,-1.],[4,14,3,1,2.]],threshold:1.1784e-003,right_val:0.28952,left_val:0.52636},{features:[[9,4,6,3,-1.],[11,4,2,3,3.]],threshold:-0.027702,right_val:0.52196,left_val:0.14988},{features:[[5,4,6,3,-1.],[7,4,2,3,3.]],threshold:-0.029505,right_val:0.49998,left_val:0.024893},{features:[[14,11,5,2,-1.],[14,12,5,1,2.]],threshold:4.5159e-004,right_val:0.40297,left_val:0.54646},{features:[[1,2,6,9,-1.],[3,2,2,9,3.]],threshold:7.1773e-003,right_val:0.58663,left_val:0.42711},{features:[[14,6,6,13,-1.],[14,6,3,13,2.]],threshold:-0.074182,right_val:0.4919,left_val:0.68742},{features:[[3,6,14,8,-1.],[3,6,7,4,2.],[10,10,7,4,2.]],threshold:-0.017254,right_val:0.53487,left_val:0.33707},{features:[[16,0,4,11,-1.],[16,0,2,11,2.]],threshold:0.014852,right_val:0.61299,left_val:0.46268},{features:[[3,4,12,12,-1.],[3,4,6,6,2.],[9,10,6,6,2.]],threshold:0.010002,right_val:0.34235,left_val:0.53461},{features:[[11,4,5,3,-1.],[11,5,5,1,3.]],threshold:2.0138e-003,right_val:0.58243,left_val:0.46438},{features:[[4,11,4,2,-1.],[4,12,4,1,2.]],threshold:1.5135e-003,right_val:0.28561,left_val:0.51964},{features:[[10,7,2,2,-1.],[10,7,1,2,2.]],threshold:3.1381e-003,right_val:0.59585,left_val:0.48382},{features:[[8,7,2,2,-1.],[9,7,1,2,2.]],threshold:-5.145e-003,right_val:0.47414,left_val:0.89203},{features:[[9,17,3,2,-1.],[10,17,1,2,3.]],threshold:-4.4737e-003,right_val:0.53373,left_val:0.20339},{features:[[5,6,3,3,-1.],[5,7,3,1,3.]],threshold:1.9628e-003,right_val:0.67259,left_val:0.45716},{features:[[10,0,3,3,-1.],[11,0,1,3,3.]],threshold:5.426e-003,right_val:0.28457,left_val:0.52711},{features:[[5,6,6,2,-1.],[5,6,3,1,2.],[8,7,3,1,2.]],threshold:4.9611e-004,right_val:0.57186,left_val:0.41383},{features:[[12,16,4,3,-1.],[12,17,4,1,3.]],threshold:9.3729e-003,right_val:0.28048,left_val:0.52252},{features:[[3,12,3,2,-1.],[3,13,3,1,2.]],threshold:6.0501e-004,right_val:0.33145,left_val:0.52368},{features:[[9,12,3,2,-1.],[9,13,3,1,2.]],threshold:5.6793e-004,right_val:0.6277,left_val:0.45311},{features:[[1,11,16,4,-1.],[1,11,8,2,2.],[9,13,8,2,2.]],threshold:0.024644,right_val:0.20171,left_val:0.51309},{features:[[12,4,3,3,-1.],[12,5,3,1,3.]],threshold:-0.01029,right_val:0.48766,left_val:0.77866},{features:[[4,4,5,3,-1.],[4,5,5,1,3.]],threshold:2.0629e-003,right_val:0.58813,left_val:0.42886},{features:[[12,16,4,3,-1.],[12,17,4,1,3.]],threshold:-5.0519e-003,right_val:0.5286,left_val:0.3524},{features:[[5,4,3,3,-1.],[5,5,3,1,3.]],threshold:-5.7693e-003,right_val:0.45881,left_val:0.68411},{features:[[9,0,2,2,-1.],[9,1,2,1,2.]],threshold:-4.579e-004,right_val:0.5486,left_val:0.35655},{features:[[8,9,4,2,-1.],[8,10,4,1,2.]],threshold:-7.5919e-004,right_val:0.52542,left_val:0.33688},{features:[[8,8,4,3,-1.],[8,9,4,1,3.]],threshold:-1.7737e-003,right_val:0.5454,left_val:0.34222},{features:[[0,13,6,3,-1.],[2,13,2,3,3.]],threshold:-8.561e-003,right_val:0.44859,left_val:0.65336},{features:[[16,14,3,2,-1.],[16,15,3,1,2.]],threshold:1.7277e-003,right_val:0.39254,left_val:0.53076},{features:[[1,18,18,2,-1.],[7,18,6,2,3.]],threshold:-0.0282,right_val:0.45886,left_val:0.68575},{features:[[16,14,3,2,-1.],[16,15,3,1,2.]],threshold:-1.7781e-003,right_val:0.53699,left_val:0.40379},{features:[[1,14,3,2,-1.],[1,15,3,1,2.]],threshold:3.3177e-004,right_val:0.37058,left_val:0.53998},{features:[[7,14,6,3,-1.],[7,15,6,1,3.]],threshold:2.6385e-003,right_val:0.64527,left_val:0.46654},{features:[[5,14,8,3,-1.],[5,15,8,1,3.]],threshold:-2.1183e-003,right_val:0.40647,left_val:0.59148},{features:[[10,6,4,14,-1.],[10,6,2,14,2.]],threshold:-0.014773,right_val:0.52948,left_val:0.3642},{features:[[6,6,4,14,-1.],[8,6,2,14,2.]],threshold:-0.016815,right_val:0.5145,left_val:0.26642},{features:[[13,5,2,3,-1.],[13,6,2,1,3.]],threshold:-6.337e-003,right_val:0.48521,left_val:0.67795},{features:[[7,16,6,1,-1.],[9,16,2,1,3.]],threshold:-4.456e-005,right_val:0.41531,left_val:0.5614},{features:[[9,12,3,3,-1.],[9,13,3,1,3.]],threshold:-1.0241e-003,right_val:0.45663,left_val:0.59645},{features:[[7,0,3,3,-1.],[8,0,1,3,3.]],threshold:-2.3162e-003,right_val:0.51882,left_val:0.29761},{features:[[4,0,16,18,-1.],[4,9,16,9,2.]],threshold:0.53218,right_val:0.22026,left_val:0.51878},{features:[[1,1,16,14,-1.],[1,8,16,7,2.]],threshold:-0.16643,right_val:0.50603,left_val:0.1866},{features:[[3,9,15,4,-1.],[8,9,5,4,3.]],threshold:0.11254,right_val:0.1185,left_val:0.52121},{features:[[6,12,7,3,-1.],[6,13,7,1,3.]],threshold:9.3047e-003,right_val:0.68261,left_val:0.45899},{features:[[14,15,2,3,-1.],[14,16,2,1,3.]],threshold:-4.6255e-003,right_val:0.5225,left_val:0.30799},{features:[[2,3,16,14,-1.],[2,3,8,7,2.],[10,10,8,7,2.]],threshold:-0.11116,right_val:0.50808,left_val:0.2101},{features:[[16,2,4,18,-1.],[18,2,2,9,2.],[16,11,2,9,2.]],threshold:-0.010888,right_val:0.47905,left_val:0.57654},{features:[[4,15,2,3,-1.],[4,16,2,1,3.]],threshold:5.8564e-003,right_val:0.15636,left_val:0.50651},{features:[[16,2,4,18,-1.],[18,2,2,9,2.],[16,11,2,9,2.]],threshold:0.054854,right_val:0.72305,left_val:0.49669},{features:[[1,1,8,3,-1.],[1,2,8,1,3.]],threshold:-0.011197,right_val:0.50988,left_val:0.2195},{features:[[8,11,4,3,-1.],[8,12,4,1,3.]],threshold:4.4069e-003,right_val:0.67709,left_val:0.47784},{features:[[5,11,5,9,-1.],[5,14,5,3,3.]],threshold:-0.063665,right_val:0.5081,left_val:0.19364},{features:[[16,0,4,11,-1.],[16,0,2,11,2.]],threshold:-9.8081e-003,right_val:0.48103,left_val:0.59991},{features:[[7,0,6,1,-1.],[9,0,2,1,3.]],threshold:-2.1717e-003,right_val:0.52355,left_val:0.33383},{features:[[16,3,3,7,-1.],[17,3,1,7,3.]],threshold:-0.013316,right_val:0.49192,left_val:0.66171},{features:[[1,3,3,7,-1.],[2,3,1,7,3.]],threshold:2.5442e-003,right_val:0.60822,left_val:0.44887},{features:[[7,8,6,12,-1.],[7,12,6,4,3.]],threshold:0.012038,right_val:0.32924,left_val:0.54094},{features:[[0,0,4,11,-1.],[2,0,2,11,2.]],threshold:-0.020701,right_val:0.4595,left_val:0.68191},{features:[[14,0,6,20,-1.],[14,0,3,20,2.]],threshold:0.027608,right_val:0.57673,left_val:0.46308},{features:[[0,3,1,2,-1.],[0,4,1,1,2.]],threshold:1.2371e-003,right_val:0.2635,left_val:0.51654},{features:[[5,5,10,8,-1.],[10,5,5,4,2.],[5,9,5,4,2.]],threshold:-0.037669,right_val:0.5279,left_val:0.25364},{features:[[4,7,12,4,-1.],[4,7,6,2,2.],[10,9,6,2,2.]],threshold:-1.8057e-003,right_val:0.55175,left_val:0.39852}],threshold:50.61},{simpleClassifiers:[{features:[[2,1,6,4,-1.],[5,1,3,4,2.]],threshold:4.4299e-003,right_val:0.63352,left_val:0.2891},{features:[[9,7,6,4,-1.],[12,7,3,2,2.],[9,9,3,2,2.]],threshold:-2.3813e-003,right_val:0.34775,left_val:0.62118},{features:[[5,6,2,6,-1.],[5,9,2,3,2.]],threshold:2.2916e-003,right_val:0.55821,left_val:0.22544},{features:[[9,16,6,4,-1.],[12,16,3,2,2.],[9,18,3,2,2.]],threshold:9.9458e-004,right_val:0.59301,left_val:0.37117},{features:[[9,4,2,12,-1.],[9,10,2,6,2.]],threshold:7.7165e-004,right_val:0.3348,left_val:0.56517},{features:[[7,1,6,18,-1.],[9,1,2,18,3.]],threshold:-1.1386e-003,right_val:0.55086,left_val:0.30691},{features:[[4,12,12,2,-1.],[8,12,4,2,3.]],threshold:-1.6403e-004,right_val:0.3699,left_val:0.57628},{features:[[8,8,6,2,-1.],[8,9,6,1,2.]],threshold:2.9794e-005,right_val:0.54379,left_val:0.26442},{features:[[8,0,3,6,-1.],[9,0,1,6,3.]],threshold:8.5775e-003,right_val:0.17957,left_val:0.50511},{features:[[11,18,3,2,-1.],[11,19,3,1,2.]],threshold:-2.6033e-004,right_val:0.44468,left_val:0.5827},{features:[[1,1,17,4,-1.],[1,3,17,2,2.]],threshold:-6.1405e-003,right_val:0.5347,left_val:0.31139},{features:[[11,8,4,12,-1.],[11,8,2,12,2.]],threshold:-0.023087,right_val:0.53312,left_val:0.32779},{features:[[8,14,4,3,-1.],[8,15,4,1,3.]],threshold:-0.014244,right_val:0.45881,left_val:0.73817},{features:[[12,3,2,17,-1.],[12,3,1,17,2.]],threshold:0.019487,right_val:0.22745,left_val:0.52566},{features:[[4,7,6,1,-1.],[6,7,2,1,3.]],threshold:-9.6681e-004,right_val:0.3815,left_val:0.55112},{features:[[18,3,2,3,-1.],[18,4,2,1,3.]],threshold:3.1475e-003,right_val:0.25437,left_val:0.54256},{features:[[8,4,3,4,-1.],[8,6,3,2,2.]],threshold:-1.8026e-004,right_val:0.34063,left_val:0.53802},{features:[[4,5,12,10,-1.],[4,10,12,5,2.]],threshold:-6.0266e-003,right_val:0.54206,left_val:0.30358},{features:[[5,18,4,2,-1.],[7,18,2,2,2.]],threshold:4.4463e-004,right_val:0.56601,left_val:0.3991},{features:[[17,2,3,6,-1.],[17,4,3,2,3.]],threshold:2.261e-003,right_val:0.39407,left_val:0.55628},{features:[[7,7,6,6,-1.],[9,7,2,6,3.]],threshold:0.051133,right_val:0.71186,left_val:0.46097},{features:[[17,2,3,6,-1.],[17,4,3,2,3.]],threshold:-0.017786,right_val:0.53221,left_val:0.23162},{features:[[8,0,3,4,-1.],[9,0,1,4,3.]],threshold:-4.968e-003,right_val:0.5122,left_val:0.23308},{features:[[9,14,2,3,-1.],[9,15,2,1,3.]],threshold:2.0668e-003,right_val:0.64555,left_val:0.46574},{features:[[0,12,6,3,-1.],[0,13,6,1,3.]],threshold:7.4414e-003,right_val:0.23616,left_val:0.51544},{features:[[8,14,4,3,-1.],[8,15,4,1,3.]],threshold:-3.6277e-003,right_val:0.44767,left_val:0.62198},{features:[[3,12,2,3,-1.],[3,13,2,1,3.]],threshold:-5.3531e-003,right_val:0.51022,left_val:0.18374},{features:[[5,6,12,7,-1.],[9,6,4,7,3.]],threshold:0.14531,right_val:0.15359,left_val:0.5146},{features:[[0,2,3,6,-1.],[0,4,3,2,3.]],threshold:2.4394e-003,right_val:0.36247,left_val:0.53437},{features:[[14,6,1,3,-1.],[14,7,1,1,3.]],threshold:-3.1283e-003,right_val:0.48456,left_val:0.6215},{features:[[2,0,3,14,-1.],[3,0,1,14,3.]],threshold:1.794e-003,right_val:0.58242,left_val:0.42993},{features:[[12,14,5,6,-1.],[12,16,5,2,3.]],threshold:0.036254,right_val:0.14395,left_val:0.52603},{features:[[4,14,5,6,-1.],[4,16,5,2,3.]],threshold:-5.1747e-003,right_val:0.5287,left_val:0.35065},{features:[[11,10,2,2,-1.],[12,10,1,1,2.],[11,11,1,1,2.]],threshold:6.5383e-004,right_val:0.6122,left_val:0.48096},{features:[[5,0,3,14,-1.],[6,0,1,14,3.]],threshold:-0.02648,right_val:0.50456,left_val:0.11394},{features:[[10,15,2,3,-1.],[10,16,2,1,3.]],threshold:-3.0441e-003,right_val:0.47947,left_val:0.63521},{features:[[0,2,2,3,-1.],[0,3,2,1,3.]],threshold:3.6994e-003,right_val:0.24985,left_val:0.51311},{features:[[5,11,12,6,-1.],[5,14,12,3,2.]],threshold:-3.6763e-004,right_val:0.37095,left_val:0.54214},{features:[[6,11,3,9,-1.],[6,14,3,3,3.]],threshold:-0.041382,right_val:0.50817,left_val:0.1895},{features:[[11,10,2,2,-1.],[12,10,1,1,2.],[11,11,1,1,2.]],threshold:-1.0533e-003,right_val:0.47836,left_val:0.64544},{features:[[5,6,1,3,-1.],[5,7,1,1,3.]],threshold:-2.1649e-003,right_val:0.44998,left_val:0.6215},{features:[[4,9,13,3,-1.],[4,10,13,1,3.]],threshold:-5.6748e-004,right_val:0.54193,left_val:0.37126},{features:[[1,7,15,6,-1.],[6,7,5,6,3.]],threshold:0.17376,right_val:0.12157,left_val:0.50236},{features:[[4,5,12,6,-1.],[8,5,4,6,3.]],threshold:-2.905e-003,right_val:0.53819,left_val:0.32403},{features:[[8,10,4,3,-1.],[8,11,4,1,3.]],threshold:1.23e-003,right_val:0.57035,left_val:0.41655},{features:[[15,14,1,3,-1.],[15,15,1,1,3.]],threshold:-5.4329e-004,right_val:0.55475,left_val:0.3854},{features:[[1,11,5,3,-1.],[1,12,5,1,3.]],threshold:-8.3297e-003,right_val:0.50971,left_val:0.22045},{features:[[7,1,7,12,-1.],[7,7,7,6,2.]],threshold:-1.0418e-004,right_val:0.4303,left_val:0.56071},{features:[[0,1,6,10,-1.],[0,1,3,5,2.],[3,6,3,5,2.]],threshold:0.031205,right_val:0.6982,left_val:0.46217},{features:[[16,1,4,3,-1.],[16,2,4,1,3.]],threshold:7.8944e-003,right_val:0.22691,left_val:0.52696},{features:[[5,5,2,3,-1.],[5,6,2,1,3.]],threshold:-4.3645e-003,right_val:0.4538,left_val:0.63592},{features:[[12,2,3,5,-1.],[13,2,1,5,3.]],threshold:7.6793e-003,right_val:0.27405,left_val:0.52748},{features:[[0,3,4,6,-1.],[0,5,4,2,3.]],threshold:-0.025431,right_val:0.50717,left_val:0.20385},{features:[[8,12,4,2,-1.],[8,13,4,1,2.]],threshold:8.2001e-004,right_val:0.61199,left_val:0.45875},{features:[[8,18,3,1,-1.],[9,18,1,1,3.]],threshold:2.9285e-003,right_val:0.20282,left_val:0.50713},{features:[[11,10,2,2,-1.],[12,10,1,1,2.],[11,11,1,1,2.]],threshold:4.5256e-005,right_val:0.54308,left_val:0.48121},{features:[[7,10,2,2,-1.],[7,10,1,1,2.],[8,11,1,1,2.]],threshold:1.3158e-003,right_val:0.67793,left_val:0.46258},{features:[[11,11,4,4,-1.],[11,13,4,2,2.]],threshold:1.587e-003,right_val:0.34315,left_val:0.53863},{features:[[8,12,3,8,-1.],[9,12,1,8,3.]],threshold:-0.02154,right_val:0.50032,left_val:0.025943},{features:[[13,0,6,3,-1.],[13,1,6,1,3.]],threshold:0.014334,right_val:0.15906,left_val:0.52028},{features:[[8,8,3,4,-1.],[9,8,1,4,3.]],threshold:-8.3881e-003,right_val:0.4648,left_val:0.72825},{features:[[5,7,10,10,-1.],[10,7,5,5,2.],[5,12,5,5,2.]],threshold:9.1907e-003,right_val:0.39232,left_val:0.55624},{features:[[3,18,8,2,-1.],[3,18,4,1,2.],[7,19,4,1,2.]],threshold:-5.8453e-003,right_val:0.46291,left_val:0.68034},{features:[[10,2,6,8,-1.],[12,2,2,8,3.]],threshold:-0.054708,right_val:0.52061,left_val:0.25617},{features:[[4,2,6,8,-1.],[6,2,2,8,3.]],threshold:9.1143e-003,right_val:0.30539,left_val:0.51896},{features:[[11,0,3,7,-1.],[12,0,1,7,3.]],threshold:-0.015575,right_val:0.51691,left_val:0.12951},{features:[[7,11,2,1,-1.],[8,11,1,1,2.]],threshold:-1.2051e-004,right_val:0.42308,left_val:0.57351},{features:[[15,14,1,3,-1.],[15,15,1,1,3.]],threshold:1.2274e-003,right_val:0.40798,left_val:0.52899},{features:[[7,15,2,2,-1.],[7,15,1,1,2.],[8,16,1,1,2.]],threshold:-1.2187e-003,right_val:0.45744,left_val:0.65756},{features:[[15,14,1,3,-1.],[15,15,1,1,3.]],threshold:-3.3257e-003,right_val:0.5195,left_val:0.3628},{features:[[6,0,3,7,-1.],[7,0,1,7,3.]],threshold:-0.013288,right_val:0.50435,left_val:0.12843},{features:[[18,1,2,7,-1.],[18,1,1,7,2.]],threshold:-3.384e-003,right_val:0.47575,left_val:0.62922},{features:[[2,0,8,20,-1.],[2,10,8,10,2.]],threshold:-0.21954,right_val:0.5065,left_val:0.14877},{features:[[3,0,15,6,-1.],[3,2,15,2,3.]],threshold:4.9112e-003,right_val:0.56658,left_val:0.42561},{features:[[4,3,12,2,-1.],[4,4,12,1,2.]],threshold:-1.8745e-004,right_val:0.55869,left_val:0.40041},{features:[[16,0,4,5,-1.],[16,0,2,5,2.]],threshold:-5.2179e-003,right_val:0.48127,left_val:0.60091},{features:[[7,0,3,4,-1.],[8,0,1,4,3.]],threshold:-1.1112e-003,right_val:0.52871,left_val:0.35149},{features:[[16,0,4,5,-1.],[16,0,2,5,2.]],threshold:4.4036e-003,right_val:0.59241,left_val:0.46423},{features:[[1,7,6,13,-1.],[3,7,2,13,3.]],threshold:0.12299,right_val:0.069152,left_val:0.50255},{features:[[16,0,4,5,-1.],[16,0,2,5,2.]],threshold:-0.012314,right_val:0.4934,left_val:0.58846},{features:[[0,0,4,5,-1.],[2,0,2,5,2.]],threshold:4.1471e-003,right_val:0.58935,left_val:0.43722},{features:[[14,12,3,6,-1.],[14,14,3,2,3.]],threshold:-3.5503e-003,right_val:0.53963,left_val:0.43276},{features:[[3,12,3,6,-1.],[3,14,3,2,3.]],threshold:-0.019224,right_val:0.50683,left_val:0.19131},{features:[[16,1,4,3,-1.],[16,2,4,1,3.]],threshold:1.4395e-003,right_val:0.42435,left_val:0.53082},{features:[[8,7,2,10,-1.],[8,7,1,5,2.],[9,12,1,5,2.]],threshold:-6.7752e-003,right_val:0.45401,left_val:0.63654},{features:[[11,11,4,4,-1.],[11,13,4,2,2.]],threshold:7.012e-003,right_val:0.30262,left_val:0.51898},{features:[[0,1,4,3,-1.],[0,2,4,1,3.]],threshold:5.4015e-003,right_val:0.25577,left_val:0.51051},{features:[[13,4,1,3,-1.],[13,5,1,1,3.]],threshold:9.0275e-004,right_val:0.58618,left_val:0.46969},{features:[[7,15,3,5,-1.],[8,15,1,5,3.]],threshold:0.011474,right_val:0.15272,left_val:0.50536},{features:[[9,7,3,5,-1.],[10,7,1,5,3.]],threshold:-6.7023e-003,right_val:0.48906,left_val:0.6509},{features:[[8,7,3,5,-1.],[9,7,1,5,3.]],threshold:-2.0463e-003,right_val:0.45146,left_val:0.62418},{features:[[10,6,4,14,-1.],[10,6,2,14,2.]],threshold:-9.9952e-003,right_val:0.5401,left_val:0.34328},{features:[[0,5,5,6,-1.],[0,7,5,2,3.]],threshold:-0.035701,right_val:0.50741,left_val:0.18781},{features:[[9,5,6,4,-1.],[9,5,3,4,2.]],threshold:4.5585e-004,right_val:0.54026,left_val:0.38053},{features:[[0,0,18,10,-1.],[6,0,6,10,3.]],threshold:-0.054261,right_val:0.45951,left_val:0.68437},{features:[[10,6,4,14,-1.],[10,6,2,14,2.]],threshold:6.06e-003,right_val:0.45005,left_val:0.55029},{features:[[6,6,4,14,-1.],[8,6,2,14,2.]],threshold:-6.4792e-003,right_val:0.53108,left_val:0.33689},{features:[[13,4,1,3,-1.],[13,5,1,1,3.]],threshold:-1.4939e-003,right_val:0.47562,left_val:0.64876},{features:[[5,1,2,3,-1.],[6,1,1,3,2.]],threshold:1.4611e-005,right_val:0.54511,left_val:0.40346},{features:[[18,1,2,18,-1.],[19,1,1,9,2.],[18,10,1,9,2.]],threshold:-7.2322e-003,right_val:0.48247,left_val:0.63869},{features:[[2,1,4,3,-1.],[2,2,4,1,3.]],threshold:-4.0646e-003,right_val:0.51573,left_val:0.29864},{features:[[18,1,2,18,-1.],[19,1,1,9,2.],[18,10,1,9,2.]],threshold:0.030463,right_val:0.716,left_val:0.50222},{features:[[1,14,4,6,-1.],[1,14,2,3,2.],[3,17,2,3,2.]],threshold:-8.0545e-003,right_val:0.46193,left_val:0.64925},{features:[[10,11,7,6,-1.],[10,13,7,2,3.]],threshold:0.039505,right_val:0.24506,left_val:0.51506},{features:[[0,10,6,10,-1.],[0,10,3,5,2.],[3,15,3,5,2.]],threshold:8.453e-003,right_val:0.6394,left_val:0.45737},{features:[[11,0,3,4,-1.],[12,0,1,4,3.]],threshold:-1.1688e-003,right_val:0.54837,left_val:0.38655},{features:[[5,10,5,6,-1.],[5,13,5,3,2.]],threshold:2.8071e-003,right_val:0.27015,left_val:0.51286},{features:[[14,6,1,8,-1.],[14,10,1,4,2.]],threshold:4.7365e-004,right_val:0.53875,left_val:0.40516},{features:[[1,7,18,6,-1.],[1,7,9,3,2.],[10,10,9,3,2.]],threshold:0.011741,right_val:0.37194,left_val:0.5296},{features:[[9,7,2,2,-1.],[9,7,1,2,2.]],threshold:3.1833e-003,right_val:0.68951,left_val:0.47894},{features:[[5,9,4,5,-1.],[7,9,2,5,2.]],threshold:7.0242e-004,right_val:0.39181,left_val:0.53845}],threshold:54.62},{simpleClassifiers:[{features:[[7,6,6,3,-1.],[9,6,2,3,3.]],threshold:0.01706,right_val:0.71425,left_val:0.39485},{features:[[1,0,18,4,-1.],[7,0,6,4,3.]],threshold:0.021841,right_val:0.609,left_val:0.33703},{features:[[7,15,2,4,-1.],[7,17,2,2,2.]],threshold:2.452e-004,right_val:0.59879,left_val:0.35006},{features:[[1,0,19,9,-1.],[1,3,19,3,3.]],threshold:8.3273e-003,right_val:0.56972,left_val:0.32675},{features:[[3,7,3,6,-1.],[3,9,3,2,3.]],threshold:5.7148e-004,right_val:0.55317,left_val:0.30446},{features:[[13,7,4,4,-1.],[15,7,2,2,2.],[13,9,2,2,2.]],threshold:6.7374e-004,right_val:0.56726,left_val:0.365},{features:[[3,7,4,4,-1.],[3,7,2,2,2.],[5,9,2,2,2.]],threshold:3.4682e-005,right_val:0.53887,left_val:0.33135},{features:[[9,6,10,8,-1.],[9,10,10,4,2.]],threshold:-5.8563e-003,right_val:0.54988,left_val:0.26979},{features:[[3,8,14,12,-1.],[3,14,14,6,2.]],threshold:8.5102e-003,right_val:0.27629,left_val:0.52694},{features:[[6,5,10,12,-1.],[11,5,5,6,2.],[6,11,5,6,2.]],threshold:-0.069817,right_val:0.52592,left_val:0.29096},{features:[[9,11,2,3,-1.],[9,12,2,1,3.]],threshold:-8.6114e-004,right_val:0.40737,left_val:0.58926},{features:[[9,5,6,5,-1.],[9,5,3,5,2.]],threshold:9.7149e-004,right_val:0.54159,left_val:0.35236},{features:[[9,4,2,4,-1.],[9,6,2,2,2.]],threshold:-1.4727e-005,right_val:0.35032,left_val:0.5423},{features:[[9,5,6,5,-1.],[9,5,3,5,2.]],threshold:0.04842,right_val:0.34112,left_val:0.51939},{features:[[5,5,6,5,-1.],[8,5,3,5,2.]],threshold:1.3257e-003,right_val:0.53354,left_val:0.31578},{features:[[11,2,6,1,-1.],[13,2,2,1,3.]],threshold:1.4922e-005,right_val:0.55366,left_val:0.44513},{features:[[3,2,6,1,-1.],[5,2,2,1,3.]],threshold:-2.7173e-003,right_val:0.52481,left_val:0.30317},{features:[[13,5,2,3,-1.],[13,6,2,1,3.]],threshold:2.922e-003,right_val:0.6606,left_val:0.47815},{features:[[0,10,1,4,-1.],[0,12,1,2,2.]],threshold:-1.9805e-003,right_val:0.52876,left_val:0.31863},{features:[[13,5,2,3,-1.],[13,6,2,1,3.]],threshold:-4.0012e-003,right_val:0.47499,left_val:0.64136},{features:[[8,18,3,2,-1.],[9,18,1,2,3.]],threshold:-4.3492e-003,right_val:0.5099,left_val:0.15075},{features:[[6,15,9,2,-1.],[6,16,9,1,2.]],threshold:1.3491e-003,right_val:0.58812,left_val:0.43162},{features:[[8,14,4,3,-1.],[8,15,4,1,3.]],threshold:0.018597,right_val:0.90898,left_val:0.47356},{features:[[18,4,2,4,-1.],[18,6,2,2,2.]],threshold:-1.8562e-003,right_val:0.55778,left_val:0.35532},{features:[[5,5,2,3,-1.],[5,6,2,1,3.]],threshold:2.294e-003,right_val:0.65809,left_val:0.45001},{features:[[15,16,3,2,-1.],[15,17,3,1,2.]],threshold:2.9983e-004,right_val:0.39759,left_val:0.56292},{features:[[0,0,3,9,-1.],[0,3,3,3,3.]],threshold:3.5455e-003,right_val:0.36055,left_val:0.53815},{features:[[9,7,3,3,-1.],[9,8,3,1,3.]],threshold:9.6105e-003,right_val:0.17967,left_val:0.5256},{features:[[8,7,3,3,-1.],[8,8,3,1,3.]],threshold:-6.2783e-003,right_val:0.5114,left_val:0.22729},{features:[[9,5,2,6,-1.],[9,5,1,6,2.]],threshold:3.4598e-003,right_val:0.66082,left_val:0.46263},{features:[[8,6,3,4,-1.],[9,6,1,4,3.]],threshold:-1.3112e-003,right_val:0.44369,left_val:0.63175},{features:[[7,6,8,12,-1.],[11,6,4,6,2.],[7,12,4,6,2.]],threshold:2.6876e-003,right_val:0.4054,left_val:0.54211},{features:[[5,6,8,12,-1.],[5,6,4,6,2.],[9,12,4,6,2.]],threshold:3.9118e-003,right_val:0.32735,left_val:0.53585},{features:[[12,4,3,3,-1.],[12,5,3,1,3.]],threshold:-0.014206,right_val:0.49758,left_val:0.77936},{features:[[2,16,3,2,-1.],[2,17,3,1,2.]],threshold:7.1706e-004,right_val:0.35609,left_val:0.52973},{features:[[12,4,3,3,-1.],[12,5,3,1,3.]],threshold:1.6635e-003,right_val:0.58165,left_val:0.46781},{features:[[2,12,6,6,-1.],[2,14,6,2,3.]],threshold:3.3686e-003,right_val:0.34464,left_val:0.52767},{features:[[7,13,6,3,-1.],[7,14,6,1,3.]],threshold:0.0128,right_val:0.74722,left_val:0.48347},{features:[[6,14,6,3,-1.],[6,15,6,1,3.]],threshold:3.3901e-003,right_val:0.64017,left_val:0.45119},{features:[[14,15,5,3,-1.],[14,16,5,1,3.]],threshold:4.7071e-003,right_val:0.35552,left_val:0.53357},{features:[[5,4,3,3,-1.],[5,5,3,1,3.]],threshold:1.4819e-003,right_val:0.57727,left_val:0.42507},{features:[[14,15,5,3,-1.],[14,16,5,1,3.]],threshold:-6.9996e-003,right_val:0.52929,left_val:0.30033},{features:[[5,3,6,2,-1.],[7,3,2,2,3.]],threshold:0.015939,right_val:0.16756,left_val:0.50673},{features:[[8,15,4,3,-1.],[8,16,4,1,3.]],threshold:7.6377e-003,right_val:0.70856,left_val:0.47951},{features:[[1,15,5,3,-1.],[1,16,5,1,3.]],threshold:6.7334e-003,right_val:0.21625,left_val:0.51331},{features:[[8,13,4,6,-1.],[10,13,2,3,2.],[8,16,2,3,2.]],threshold:-0.012859,right_val:0.52514,left_val:0.19388},{features:[[7,8,3,3,-1.],[8,8,1,3,3.]],threshold:-6.2271e-004,right_val:0.41979,left_val:0.56865},{features:[[12,0,5,4,-1.],[12,2,5,2,2.]],threshold:-5.2652e-004,right_val:0.54297,left_val:0.42242},{features:[[0,2,20,2,-1.],[0,2,10,1,2.],[10,3,10,1,2.]],threshold:0.011075,right_val:0.25145,left_val:0.51138},{features:[[1,0,18,4,-1.],[7,0,6,4,3.]],threshold:-0.036728,right_val:0.48496,left_val:0.71947},{features:[[4,3,6,1,-1.],[6,3,2,1,3.]],threshold:-2.8207e-004,right_val:0.53944,left_val:0.38403},{features:[[4,18,13,2,-1.],[4,19,13,1,2.]],threshold:-2.749e-003,right_val:0.45692,left_val:0.59371},{features:[[2,10,3,6,-1.],[2,12,3,2,3.]],threshold:0.010048,right_val:0.28023,left_val:0.51386},{features:[[14,12,6,8,-1.],[17,12,3,4,2.],[14,16,3,4,2.]],threshold:-8.1498e-003,right_val:0.46361,left_val:0.609},{features:[[4,13,10,6,-1.],[4,13,5,3,2.],[9,16,5,3,2.]],threshold:-6.8834e-003,right_val:0.52547,left_val:0.34586},{features:[[14,12,1,2,-1.],[14,13,1,1,2.]],threshold:-1.4039e-005,right_val:0.40821,left_val:0.56931},{features:[[8,13,4,3,-1.],[8,14,4,1,3.]],threshold:1.5498e-003,right_val:0.58065,left_val:0.43505},{features:[[14,12,2,2,-1.],[14,13,2,1,2.]],threshold:-6.7841e-003,right_val:0.51828,left_val:0.14689},{features:[[4,12,2,2,-1.],[4,13,2,1,2.]],threshold:2.1706e-004,right_val:0.34562,left_val:0.52935},{features:[[8,12,9,2,-1.],[8,13,9,1,2.]],threshold:3.1199e-004,right_val:0.59424,left_val:0.46525},{features:[[9,14,2,3,-1.],[9,15,2,1,3.]],threshold:5.4508e-003,right_val:0.70248,left_val:0.46535},{features:[[11,10,3,6,-1.],[11,13,3,3,2.]],threshold:-2.5819e-004,right_val:0.3769,left_val:0.54973},{features:[[5,6,9,12,-1.],[5,12,9,6,2.]],threshold:-0.017443,right_val:0.54575,left_val:0.39191},{features:[[11,10,3,6,-1.],[11,13,3,3,2.]],threshold:-0.045344,right_val:0.51549,left_val:0.16314},{features:[[6,10,3,6,-1.],[6,13,3,3,2.]],threshold:1.9191e-003,right_val:0.27919,left_val:0.51459},{features:[[5,4,11,3,-1.],[5,5,11,1,3.]],threshold:-6.0178e-003,right_val:0.47563,left_val:0.65176},{features:[[7,1,5,10,-1.],[7,6,5,5,2.]],threshold:-4.0721e-003,right_val:0.40927,left_val:0.55147},{features:[[2,8,18,2,-1.],[2,9,18,1,2.]],threshold:3.9855e-004,right_val:0.52856,left_val:0.31652},{features:[[7,17,5,3,-1.],[7,18,5,1,3.]],threshold:-6.5419e-003,right_val:0.46528,left_val:0.68534},{features:[[5,9,12,1,-1.],[9,9,4,1,3.]],threshold:3.4845e-003,right_val:0.45028,left_val:0.54846},{features:[[0,14,6,6,-1.],[0,14,3,3,2.],[3,17,3,3,2.]],threshold:-0.013697,right_val:0.45726,left_val:0.63958},{features:[[5,9,12,1,-1.],[9,9,4,1,3.]],threshold:-0.017347,right_val:0.51816,left_val:0.27511},{features:[[3,9,12,1,-1.],[7,9,4,1,3.]],threshold:-4.0885e-003,right_val:0.5195,left_val:0.33256},{features:[[14,10,6,7,-1.],[14,10,3,7,2.]],threshold:-9.4688e-003,right_val:0.48518,left_val:0.59423},{features:[[1,0,16,2,-1.],[1,1,16,1,2.]],threshold:1.7085e-003,right_val:0.55198,left_val:0.41671},{features:[[10,9,10,9,-1.],[10,12,10,3,3.]],threshold:9.4809e-003,right_val:0.42085,left_val:0.54339},{features:[[0,1,10,2,-1.],[5,1,5,2,2.]],threshold:-4.739e-003,right_val:0.45607,left_val:0.64072},{features:[[17,3,2,3,-1.],[17,4,2,1,3.]],threshold:6.5761e-003,right_val:0.22582,left_val:0.52146},{features:[[1,3,2,3,-1.],[1,4,2,1,3.]],threshold:-2.1691e-003,right_val:0.51567,left_val:0.31515},{features:[[9,7,3,6,-1.],[10,7,1,6,3.]],threshold:0.01466,right_val:0.66899,left_val:0.48708},{features:[[6,5,4,3,-1.],[8,5,2,3,2.]],threshold:1.7232e-004,right_val:0.52511,left_val:0.35697},{features:[[7,5,6,6,-1.],[9,5,2,6,3.]],threshold:-0.021804,right_val:0.49663,left_val:0.88259},{features:[[3,4,12,12,-1.],[3,4,6,6,2.],[9,10,6,6,2.]],threshold:-0.094736,right_val:0.50611,left_val:0.14462},{features:[[9,2,6,15,-1.],[11,2,2,15,3.]],threshold:5.5826e-003,right_val:0.42381,left_val:0.53965},{features:[[2,2,6,17,-1.],[4,2,2,17,3.]],threshold:1.9517e-003,right_val:0.54978,left_val:0.41704},{features:[[14,10,6,7,-1.],[14,10,3,7,2.]],threshold:0.01215,right_val:0.56643,left_val:0.46984},{features:[[0,10,6,7,-1.],[3,10,3,7,2.]],threshold:-7.517e-003,right_val:0.44631,left_val:0.62678},{features:[[9,2,6,15,-1.],[11,2,2,15,3.]],threshold:-0.071668,right_val:0.5221,left_val:0.3097},{features:[[5,2,6,15,-1.],[7,2,2,15,3.]],threshold:-0.088292,right_val:0.50064,left_val:0.081124},{features:[[17,9,3,6,-1.],[17,11,3,2,3.]],threshold:0.031063,right_val:0.12823,left_val:0.51555},{features:[[6,7,6,6,-1.],[8,7,2,6,3.]],threshold:0.046622,right_val:0.7364,left_val:0.46998},{features:[[1,10,18,6,-1.],[10,10,9,3,2.],[1,13,9,3,2.]],threshold:-0.012189,right_val:0.5519,left_val:0.39205},{features:[[0,9,10,9,-1.],[0,12,10,3,3.]],threshold:0.013016,right_val:0.36851,left_val:0.52607},{features:[[8,15,4,3,-1.],[8,16,4,1,3.]],threshold:-3.4953e-003,right_val:0.47163,left_val:0.63393},{features:[[5,12,3,4,-1.],[5,14,3,2,2.]],threshold:-4.4015e-005,right_val:0.37762,left_val:0.5333},{features:[[3,3,16,12,-1.],[3,9,16,6,2.]],threshold:-0.10966,right_val:0.51983,left_val:0.17653},{features:[[1,1,12,12,-1.],[1,1,6,6,2.],[7,7,6,6,2.]],threshold:-9.028e-004,right_val:0.38389,left_val:0.53242},{features:[[10,4,2,4,-1.],[11,4,1,2,2.],[10,6,1,2,2.]],threshold:7.1127e-004,right_val:0.57552,left_val:0.46479},{features:[[0,9,10,2,-1.],[0,9,5,1,2.],[5,10,5,1,2.]],threshold:-3.125e-003,right_val:0.51668,left_val:0.32367},{features:[[9,11,3,3,-1.],[9,12,3,1,3.]],threshold:2.4145e-003,right_val:0.64597,left_val:0.47874},{features:[[3,12,9,2,-1.],[3,13,9,1,2.]],threshold:4.4391e-004,right_val:0.60103,left_val:0.44093},{features:[[9,9,2,2,-1.],[9,10,2,1,2.]],threshold:-2.2611e-004,right_val:0.54933,left_val:0.40381}],threshold:50.17},{simpleClassifiers:[{features:[[3,4,13,6,-1.],[3,6,13,2,3.]],threshold:-0.046901,right_val:0.37438,left_val:0.66002},{features:[[9,7,6,4,-1.],[12,7,3,2,2.],[9,9,3,2,2.]],threshold:-1.4568e-003,right_val:0.34378,left_val:0.5784},{features:[[1,0,6,8,-1.],[4,0,3,8,2.]],threshold:5.5598e-003,right_val:0.59082,left_val:0.36223},{features:[[9,5,2,12,-1.],[9,11,2,6,2.]],threshold:7.317e-004,right_val:0.28736,left_val:0.55004},{features:[[4,4,3,10,-1.],[4,9,3,5,2.]],threshold:1.3318e-003,right_val:0.5431,left_val:0.26732},{features:[[6,17,8,3,-1.],[6,18,8,1,3.]],threshold:2.4347e-004,right_val:0.57414,left_val:0.3855},{features:[[0,5,10,6,-1.],[0,7,10,2,3.]],threshold:-3.0512e-003,right_val:0.34628,left_val:0.55032},{features:[[13,2,3,2,-1.],[13,3,3,1,2.]],threshold:-6.8657e-004,right_val:0.54295,left_val:0.32912},{features:[[7,5,4,5,-1.],[9,5,2,5,2.]],threshold:1.4668e-003,right_val:0.53518,left_val:0.35884},{features:[[12,14,3,6,-1.],[12,16,3,2,3.]],threshold:3.2022e-004,right_val:0.57002,left_val:0.42968},{features:[[1,11,8,2,-1.],[1,12,8,1,2.]],threshold:7.4122e-004,right_val:0.33669,left_val:0.52822},{features:[[7,13,6,3,-1.],[7,14,6,1,3.]],threshold:3.833e-003,right_val:0.62573,left_val:0.45596},{features:[[0,5,3,6,-1.],[0,7,3,2,3.]],threshold:-0.015456,right_val:0.51295,left_val:0.23501},{features:[[13,2,3,2,-1.],[13,3,3,1,2.]],threshold:2.6797e-003,right_val:0.41551,left_val:0.53294},{features:[[4,14,4,6,-1.],[4,14,2,3,2.],[6,17,2,3,2.]],threshold:2.8297e-003,right_val:0.58045,left_val:0.42731},{features:[[13,2,3,2,-1.],[13,3,3,1,2.]],threshold:-3.9444e-003,right_val:0.52027,left_val:0.29126},{features:[[8,2,4,12,-1.],[8,6,4,4,3.]],threshold:2.718e-003,right_val:0.35857,left_val:0.53077},{features:[[14,0,6,8,-1.],[17,0,3,4,2.],[14,4,3,4,2.]],threshold:5.9078e-003,right_val:0.59416,left_val:0.47038},{features:[[7,17,3,2,-1.],[8,17,1,2,3.]],threshold:-4.224e-003,right_val:0.50888,left_val:0.21416},{features:[[8,12,4,2,-1.],[8,13,4,1,2.]],threshold:4.0726e-003,right_val:0.68411,left_val:0.47664},{features:[[6,0,8,12,-1.],[6,0,4,6,2.],[10,6,4,6,2.]],threshold:0.01015,right_val:0.37485,left_val:0.53608},{features:[[14,0,2,10,-1.],[15,0,1,5,2.],[14,5,1,5,2.]],threshold:-1.8865e-004,right_val:0.38538,left_val:0.57201},{features:[[5,3,8,6,-1.],[5,3,4,3,2.],[9,6,4,3,2.]],threshold:-4.8864e-003,right_val:0.5341,left_val:0.36931},{features:[[14,0,6,10,-1.],[17,0,3,5,2.],[14,5,3,5,2.]],threshold:0.026158,right_val:0.606,left_val:0.49624},{features:[[9,14,1,2,-1.],[9,15,1,1,2.]],threshold:4.8561e-004,right_val:0.60125,left_val:0.44389},{features:[[15,10,4,3,-1.],[15,11,4,1,3.]],threshold:0.011269,right_val:0.18404,left_val:0.52443},{features:[[8,14,2,3,-1.],[8,15,2,1,3.]],threshold:-2.8115e-003,right_val:0.44099,left_val:0.60603},{features:[[3,13,14,4,-1.],[10,13,7,2,2.],[3,15,7,2,2.]],threshold:-5.6113e-003,right_val:0.55892,left_val:0.38912},{features:[[1,10,4,3,-1.],[1,11,4,1,3.]],threshold:8.568e-003,right_val:0.20626,left_val:0.50693},{features:[[9,11,6,1,-1.],[11,11,2,1,3.]],threshold:-3.8173e-004,right_val:0.41926,left_val:0.58822},{features:[[5,11,6,1,-1.],[7,11,2,1,3.]],threshold:-1.768e-004,right_val:0.40034,left_val:0.55336},{features:[[3,5,16,15,-1.],[3,10,16,5,3.]],threshold:6.5113e-003,right_val:0.54442,left_val:0.33101},{features:[[6,12,4,2,-1.],[8,12,2,2,2.]],threshold:-6.5949e-005,right_val:0.39449,left_val:0.54338},{features:[[4,4,12,10,-1.],[10,4,6,5,2.],[4,9,6,5,2.]],threshold:6.9939e-003,right_val:0.41927,left_val:0.56004},{features:[[8,6,3,4,-1.],[9,6,1,4,3.]],threshold:-4.6744e-003,right_val:0.4605,left_val:0.66855},{features:[[8,12,4,8,-1.],[10,12,2,4,2.],[8,16,2,4,2.]],threshold:0.01159,right_val:0.29268,left_val:0.53571},{features:[[8,14,4,3,-1.],[8,15,4,1,3.]],threshold:0.013008,right_val:0.73075,left_val:0.46798},{features:[[12,2,3,2,-1.],[13,2,1,2,3.]],threshold:-1.1009e-003,right_val:0.54151,left_val:0.39375},{features:[[8,15,3,2,-1.],[8,16,3,1,2.]],threshold:6.0473e-004,right_val:0.5604,left_val:0.42424},{features:[[6,0,9,14,-1.],[9,0,3,14,3.]],threshold:-0.014495,right_val:0.52932,left_val:0.36312},{features:[[9,6,2,3,-1.],[10,6,1,3,2.]],threshold:-5.3057e-003,right_val:0.46218,left_val:0.68605},{features:[[10,8,2,3,-1.],[10,9,2,1,3.]],threshold:-8.1829e-004,right_val:0.54204,left_val:0.39441},{features:[[0,9,4,6,-1.],[0,11,4,2,3.]],threshold:-0.019078,right_val:0.50379,left_val:0.19626},{features:[[6,0,8,2,-1.],[6,1,8,1,2.]],threshold:3.5549e-004,right_val:0.5614,left_val:0.40863},{features:[[6,14,7,3,-1.],[6,15,7,1,3.]],threshold:1.968e-003,right_val:0.59261,left_val:0.44891},{features:[[8,10,8,9,-1.],[8,13,8,3,3.]],threshold:6.9189e-003,right_val:0.37284,left_val:0.53359},{features:[[5,2,3,2,-1.],[6,2,1,2,3.]],threshold:2.9873e-003,right_val:0.29756,left_val:0.51113},{features:[[14,1,6,8,-1.],[17,1,3,4,2.],[14,5,3,4,2.]],threshold:-6.2265e-003,right_val:0.48245,left_val:0.55415},{features:[[0,1,6,8,-1.],[0,1,3,4,2.],[3,5,3,4,2.]],threshold:0.013353,right_val:0.64148,left_val:0.45864},{features:[[1,2,18,6,-1.],[10,2,9,3,2.],[1,5,9,3,2.]],threshold:0.033505,right_val:0.343,left_val:0.53924},{features:[[9,3,2,1,-1.],[10,3,1,1,2.]],threshold:-2.5294e-003,right_val:0.50133,left_val:0.17037},{features:[[13,2,4,6,-1.],[15,2,2,3,2.],[13,5,2,3,2.]],threshold:-1.2802e-003,right_val:0.46974,left_val:0.53055},{features:[[5,4,3,3,-1.],[5,5,3,1,3.]],threshold:7.0687e-003,right_val:0.64365,left_val:0.46155},{features:[[13,5,1,3,-1.],[13,6,1,1,3.]],threshold:9.688e-004,right_val:0.60439,left_val:0.48336},{features:[[2,16,5,3,-1.],[2,17,5,1,3.]],threshold:3.9648e-003,right_val:0.32318,left_val:0.51876},{features:[[13,2,4,6,-1.],[15,2,2,3,2.],[13,5,2,3,2.]],threshold:-0.022058,right_val:0.5201,left_val:0.40793},{features:[[3,2,4,6,-1.],[3,2,2,3,2.],[5,5,2,3,2.]],threshold:-6.6906e-004,right_val:0.38156,left_val:0.53316},{features:[[13,5,1,2,-1.],[13,6,1,1,2.]],threshold:-6.7009e-004,right_val:0.46889,left_val:0.56554},{features:[[5,5,2,2,-1.],[5,6,2,1,2.]],threshold:7.4285e-004,right_val:0.62874,left_val:0.45344},{features:[[13,9,2,2,-1.],[13,9,1,2,2.]],threshold:2.2228e-003,right_val:0.33037,left_val:0.53506},{features:[[5,9,2,2,-1.],[6,9,1,2,2.]],threshold:-5.4131e-003,right_val:0.50054,left_val:0.11137},{features:[[13,17,3,2,-1.],[13,18,3,1,2.]],threshold:-1.452e-005,right_val:0.43251,left_val:0.56287},{features:[[6,16,4,4,-1.],[6,16,2,2,2.],[8,18,2,2,2.]],threshold:2.3369e-004,right_val:0.54478,left_val:0.41658},{features:[[9,16,2,3,-1.],[9,17,2,1,3.]],threshold:4.2895e-003,right_val:0.67786,left_val:0.48604},{features:[[0,13,9,6,-1.],[0,15,9,2,3.]],threshold:5.9103e-003,right_val:0.36121,left_val:0.52623},{features:[[9,14,2,6,-1.],[9,17,2,3,2.]],threshold:0.012901,right_val:0.32503,left_val:0.53194},{features:[[9,15,2,3,-1.],[9,16,2,1,3.]],threshold:4.6983e-003,right_val:0.66659,left_val:0.46182},{features:[[1,10,18,6,-1.],[1,12,18,2,3.]],threshold:0.01044,right_val:0.38836,left_val:0.55057},{features:[[8,11,4,2,-1.],[8,12,4,1,2.]],threshold:3.0443e-003,right_val:0.73018,left_val:0.46979},{features:[[7,9,6,2,-1.],[7,10,6,1,2.]],threshold:-6.1594e-004,right_val:0.5465,left_val:0.38308},{features:[[8,8,2,3,-1.],[8,9,2,1,3.]],threshold:-3.4247e-003,right_val:0.50895,left_val:0.25663},{features:[[17,5,3,4,-1.],[18,5,1,4,3.]],threshold:-9.3539e-003,right_val:0.49408,left_val:0.647},{features:[[1,19,18,1,-1.],[7,19,6,1,3.]],threshold:0.052339,right_val:0.78788,left_val:0.4746},{features:[[9,0,3,2,-1.],[10,0,1,2,3.]],threshold:3.5766e-003,right_val:0.27485,left_val:0.53067},{features:[[1,8,1,6,-1.],[1,10,1,2,3.]],threshold:7.1555e-004,right_val:0.40419,left_val:0.54131},{features:[[12,17,8,3,-1.],[12,17,4,3,2.]],threshold:-0.010517,right_val:0.48153,left_val:0.61585},{features:[[0,5,3,4,-1.],[1,5,1,4,3.]],threshold:7.7348e-003,right_val:0.7029,left_val:0.46958},{features:[[9,7,2,3,-1.],[9,8,2,1,3.]],threshold:-4.3227e-003,right_val:0.53047,left_val:0.28496},{features:[[7,11,2,2,-1.],[7,11,1,1,2.],[8,12,1,1,2.]],threshold:-2.5534e-003,right_val:0.46889,left_val:0.7057},{features:[[11,3,2,5,-1.],[11,3,1,5,2.]],threshold:1.0269e-004,right_val:0.55735,left_val:0.39029},{features:[[7,3,2,5,-1.],[8,3,1,5,2.]],threshold:7.1395e-006,right_val:0.5264,left_val:0.36842},{features:[[15,13,2,3,-1.],[15,14,2,1,3.]],threshold:-1.6712e-003,right_val:0.53873,left_val:0.38492},{features:[[5,6,2,3,-1.],[5,7,2,1,3.]],threshold:4.926e-003,right_val:0.74473,left_val:0.47298},{features:[[4,19,15,1,-1.],[9,19,5,1,3.]],threshold:4.3909e-003,right_val:0.55919,left_val:0.48092},{features:[[1,19,15,1,-1.],[6,19,5,1,3.]],threshold:-0.017794,right_val:0.46769,left_val:0.69037},{features:[[15,13,2,3,-1.],[15,14,2,1,3.]],threshold:2.047e-003,right_val:0.33082,left_val:0.53707},{features:[[5,0,4,15,-1.],[7,0,2,15,2.]],threshold:0.029891,right_val:0.33091,left_val:0.51399},{features:[[9,6,2,5,-1.],[9,6,1,5,2.]],threshold:1.5495e-003,right_val:0.60783,left_val:0.46602},{features:[[9,5,2,7,-1.],[10,5,1,7,2.]],threshold:1.4957e-003,right_val:0.58639,left_val:0.44048},{features:[[16,11,3,3,-1.],[16,12,3,1,3.]],threshold:9.5886e-004,right_val:0.42085,left_val:0.5436},{features:[[1,11,3,3,-1.],[1,12,3,1,3.]],threshold:4.9644e-004,right_val:0.40006,left_val:0.53706},{features:[[6,6,8,3,-1.],[6,7,8,1,3.]],threshold:-2.7281e-003,right_val:0.42596,left_val:0.56594},{features:[[0,15,6,2,-1.],[0,16,6,1,2.]],threshold:2.3026e-003,right_val:0.33509,left_val:0.51617},{features:[[1,0,18,6,-1.],[7,0,6,6,3.]],threshold:0.25152,right_val:0.71473,left_val:0.48697},{features:[[6,0,3,4,-1.],[7,0,1,4,3.]],threshold:-4.6328e-003,right_val:0.50838,left_val:0.27274},{features:[[14,10,4,10,-1.],[16,10,2,5,2.],[14,15,2,5,2.]],threshold:-0.040434,right_val:0.50218,left_val:0.68514},{features:[[3,2,3,2,-1.],[4,2,1,2,3.]],threshold:1.4972e-005,right_val:0.55226,left_val:0.42845},{features:[[11,2,2,2,-1.],[11,3,2,1,2.]],threshold:-2.405e-004,right_val:0.53901,left_val:0.42261},{features:[[2,10,4,10,-1.],[2,10,2,5,2.],[4,15,2,5,2.]],threshold:0.023658,right_val:0.75044,left_val:0.47446},{features:[[0,13,20,6,-1.],[10,13,10,3,2.],[0,16,10,3,2.]],threshold:-8.1449e-003,right_val:0.55384,left_val:0.42451},{features:[[0,5,2,15,-1.],[1,5,1,15,2.]],threshold:-3.6992e-003,right_val:0.45297,left_val:0.59524},{features:[[1,7,18,4,-1.],[10,7,9,2,2.],[1,9,9,2,2.]],threshold:-6.7719e-003,right_val:0.54734,left_val:0.41378},{features:[[0,0,2,17,-1.],[1,0,1,17,2.]],threshold:4.267e-003,right_val:0.5798,left_val:0.44841},{features:[[2,6,16,6,-1.],[10,6,8,3,2.],[2,9,8,3,2.]],threshold:1.7792e-003,right_val:0.44324,left_val:0.56249},{features:[[8,14,1,3,-1.],[8,15,1,1,3.]],threshold:1.6775e-003,right_val:0.63642,left_val:0.46378},{features:[[8,15,4,2,-1.],[8,16,4,1,2.]],threshold:1.1733e-003,right_val:0.59144,left_val:0.45445},{features:[[5,2,8,2,-1.],[5,2,4,1,2.],[9,3,4,1,2.]],threshold:8.6998e-004,right_val:0.38859,left_val:0.53348},{features:[[6,11,8,6,-1.],[6,14,8,3,2.]],threshold:7.6378e-004,right_val:0.37449,left_val:0.53986},{features:[[9,13,2,2,-1.],[9,14,2,1,2.]],threshold:1.5685e-004,right_val:0.56146,left_val:0.43179},{features:[[18,4,2,6,-1.],[18,6,2,2,3.]],threshold:-0.021511,right_val:0.51855,left_val:0.17859},{features:[[9,12,2,2,-1.],[9,13,2,1,2.]],threshold:1.3081e-004,right_val:0.56828,left_val:0.43425},{features:[[18,4,2,6,-1.],[18,6,2,2,3.]],threshold:0.021992,right_val:0.23794,left_val:0.51617},{features:[[9,13,1,3,-1.],[9,14,1,1,3.]],threshold:-8.0137e-004,right_val:0.44664,left_val:0.59868},{features:[[18,4,2,6,-1.],[18,6,2,2,3.]],threshold:-8.2736e-003,right_val:0.52511,left_val:0.41082},{features:[[0,4,2,6,-1.],[0,6,2,2,3.]],threshold:3.6832e-003,right_val:0.33975,left_val:0.51738},{features:[[9,12,3,3,-1.],[9,13,3,1,3.]],threshold:-7.9526e-003,right_val:0.48459,left_val:0.6889},{features:[[3,13,2,3,-1.],[3,14,2,1,3.]],threshold:1.5382e-003,right_val:0.34541,left_val:0.51786},{features:[[13,13,4,3,-1.],[13,14,4,1,3.]],threshold:-0.014044,right_val:0.51887,left_val:0.16784},{features:[[5,4,3,3,-1.],[5,5,3,1,3.]],threshold:1.4316e-003,right_val:0.56558,left_val:0.43683},{features:[[5,2,10,6,-1.],[5,4,10,2,3.]],threshold:-0.034014,right_val:0.49592,left_val:0.78023},{features:[[3,13,4,3,-1.],[3,14,4,1,3.]],threshold:-0.012027,right_val:0.50322,left_val:0.15851},{features:[[3,7,15,5,-1.],[8,7,5,5,3.]],threshold:0.13317,right_val:0.27551,left_val:0.51633},{features:[[3,7,12,2,-1.],[7,7,4,2,3.]],threshold:-1.5222e-003,right_val:0.52146,left_val:0.37283},{features:[[10,3,3,9,-1.],[11,3,1,9,3.]],threshold:-9.3929e-004,right_val:0.45112,left_val:0.58384},{features:[[8,6,4,6,-1.],[10,6,2,6,2.]],threshold:0.02772,right_val:0.73315,left_val:0.47283},{features:[[9,7,4,3,-1.],[9,8,4,1,3.]],threshold:3.103e-003,right_val:0.41016,left_val:0.53022},{features:[[0,9,4,9,-1.],[2,9,2,9,2.]],threshold:0.077861,right_val:0.1273,left_val:0.49983},{features:[[9,13,3,5,-1.],[10,13,1,5,3.]],threshold:-0.015855,right_val:0.51657,left_val:0.050833},{features:[[7,7,6,3,-1.],[9,7,2,3,3.]],threshold:-4.9725e-003,right_val:0.46842,left_val:0.67981},{features:[[9,7,3,5,-1.],[10,7,1,5,3.]],threshold:-9.7677e-004,right_val:0.47889,left_val:0.60108},{features:[[5,7,8,2,-1.],[9,7,4,2,2.]],threshold:-2.4648e-003,right_val:0.52205,left_val:0.33934},{features:[[5,9,12,2,-1.],[9,9,4,2,3.]],threshold:-6.7938e-003,right_val:0.52397,left_val:0.43651},{features:[[5,6,10,3,-1.],[10,6,5,3,2.]],threshold:0.032608,right_val:0.24252,left_val:0.50527},{features:[[10,12,3,1,-1.],[11,12,1,1,3.]],threshold:-5.8514e-004,right_val:0.47586,left_val:0.5734},{features:[[0,1,11,15,-1.],[0,6,11,5,3.]],threshold:-0.029633,right_val:0.52636,left_val:0.38923}],threshold:66.669},{simpleClassifiers:[{features:[[1,0,18,6,-1.],[7,0,6,6,3.]],threshold:0.046551,right_val:0.62405,left_val:0.3277},{features:[[7,7,6,1,-1.],[9,7,2,1,3.]],threshold:7.9537e-003,right_val:0.69429,left_val:0.42565},{features:[[5,16,6,4,-1.],[5,16,3,2,2.],[8,18,3,2,2.]],threshold:6.8222e-004,right_val:0.59007,left_val:0.37115},{features:[[6,5,9,8,-1.],[6,9,9,4,2.]],threshold:-1.9348e-004,right_val:0.53005,left_val:0.20411},{features:[[5,10,2,6,-1.],[5,13,2,3,2.]],threshold:-2.6711e-004,right_val:0.31032,left_val:0.54161},{features:[[7,6,8,10,-1.],[11,6,4,5,2.],[7,11,4,5,2.]],threshold:2.7818e-003,right_val:0.34671,left_val:0.52778},{features:[[5,6,8,10,-1.],[5,6,4,5,2.],[9,11,4,5,2.]],threshold:-4.6779e-004,right_val:0.32945,left_val:0.53082},{features:[[9,5,2,2,-1.],[9,6,2,1,2.]],threshold:-3.0335e-005,right_val:0.38521,left_val:0.57739},{features:[[5,12,8,2,-1.],[5,13,8,1,2.]],threshold:7.8038e-004,right_val:0.61501,left_val:0.43174},{features:[[10,2,8,2,-1.],[10,3,8,1,2.]],threshold:-4.2554e-003,right_val:0.53243,left_val:0.29339},{features:[[4,0,2,10,-1.],[4,0,1,5,2.],[5,5,1,5,2.]],threshold:-2.4736e-004,right_val:0.3843,left_val:0.54688},{features:[[9,10,2,2,-1.],[9,11,2,1,2.]],threshold:-1.4724e-004,right_val:0.57556,left_val:0.42815},{features:[[2,8,15,3,-1.],[2,9,15,1,3.]],threshold:1.1865e-003,right_val:0.54715,left_val:0.37473},{features:[[8,13,4,3,-1.],[8,14,4,1,3.]],threshold:2.3937e-003,right_val:0.61115,left_val:0.45378},{features:[[7,2,3,2,-1.],[8,2,1,2,3.]],threshold:-1.5391e-003,right_val:0.51895,left_val:0.29713},{features:[[7,13,6,3,-1.],[7,14,6,1,3.]],threshold:-7.1969e-003,right_val:0.47265,left_val:0.66991},{features:[[9,9,2,2,-1.],[9,10,2,1,2.]],threshold:-4.15e-004,right_val:0.52603,left_val:0.3385},{features:[[17,2,3,6,-1.],[17,4,3,2,3.]],threshold:4.436e-003,right_val:0.39201,left_val:0.53991},{features:[[1,5,3,4,-1.],[2,5,1,4,3.]],threshold:2.6606e-003,right_val:0.61196,left_val:0.44826},{features:[[14,8,4,6,-1.],[14,10,4,2,3.]],threshold:-1.5287e-003,right_val:0.53403,left_val:0.37112},{features:[[1,4,3,8,-1.],[2,4,1,8,3.]],threshold:-4.7397e-003,right_val:0.44551,left_val:0.60311},{features:[[8,13,4,6,-1.],[8,16,4,3,2.]],threshold:-0.014829,right_val:0.53419,left_val:0.28388},{features:[[3,14,2,2,-1.],[3,15,2,1,2.]],threshold:9.2276e-004,right_val:0.33617,left_val:0.52095},{features:[[14,8,4,6,-1.],[14,10,4,2,3.]],threshold:0.08353,right_val:0.081164,left_val:0.512},{features:[[2,8,4,6,-1.],[2,10,4,2,3.]],threshold:-7.5633e-004,right_val:0.51898,left_val:0.33171},{features:[[10,14,1,6,-1.],[10,17,1,3,2.]],threshold:9.8404e-003,right_val:0.2335,left_val:0.52476},{features:[[7,5,3,6,-1.],[8,5,1,6,3.]],threshold:-1.5954e-003,right_val:0.42956,left_val:0.57501},{features:[[11,2,2,6,-1.],[12,2,1,3,2.],[11,5,1,3,2.]],threshold:3.4766e-005,right_val:0.5564,left_val:0.43424},{features:[[6,6,6,5,-1.],[8,6,2,5,3.]],threshold:0.029863,right_val:0.65792,left_val:0.45791},{features:[[17,1,3,6,-1.],[17,3,3,2,3.]],threshold:0.011326,right_val:0.36739,left_val:0.52743},{features:[[8,7,3,5,-1.],[9,7,1,5,3.]],threshold:-8.7829e-003,right_val:0.46422,left_val:0.71004},{features:[[9,18,3,2,-1.],[10,18,1,2,3.]],threshold:4.364e-003,right_val:0.27059,left_val:0.52792},{features:[[8,18,3,2,-1.],[9,18,1,2,3.]],threshold:4.1805e-003,right_val:0.24491,left_val:0.50725},{features:[[12,3,5,2,-1.],[12,4,5,1,2.]],threshold:-4.5669e-004,right_val:0.55487,left_val:0.42831},{features:[[7,1,5,12,-1.],[7,7,5,6,2.]],threshold:-3.714e-003,right_val:0.41037,left_val:0.55194},{features:[[1,0,18,4,-1.],[7,0,6,4,3.]],threshold:-0.025304,right_val:0.48699,left_val:0.6867},{features:[[4,2,2,2,-1.],[4,3,2,1,2.]],threshold:-3.4454e-004,right_val:0.52877,left_val:0.37289},{features:[[11,14,4,2,-1.],[13,14,2,1,2.],[11,15,2,1,2.]],threshold:-8.3935e-004,right_val:0.46161,left_val:0.60602},{features:[[0,2,3,6,-1.],[0,4,3,2,3.]],threshold:0.01728,right_val:0.18198,left_val:0.50496},{features:[[9,7,2,3,-1.],[9,8,2,1,3.]],threshold:-6.3595e-003,right_val:0.52328,left_val:0.16312},{features:[[5,5,1,3,-1.],[5,6,1,1,3.]],threshold:1.0298e-003,right_val:0.61765,left_val:0.44633},{features:[[10,10,6,1,-1.],[10,10,3,1,2.]],threshold:1.0117e-003,right_val:0.43007,left_val:0.54734},{features:[[4,10,6,1,-1.],[7,10,3,1,2.]],threshold:-0.010309,right_val:0.50009,left_val:0.1167},{features:[[9,17,3,3,-1.],[9,18,3,1,3.]],threshold:5.4682e-003,right_val:0.67192,left_val:0.47693},{features:[[4,14,1,3,-1.],[4,15,1,1,3.]],threshold:-9.1696e-004,right_val:0.51782,left_val:0.34711},{features:[[12,5,3,3,-1.],[12,6,3,1,3.]],threshold:2.3923e-003,right_val:0.62163,left_val:0.47852},{features:[[4,5,12,3,-1.],[4,6,12,1,3.]],threshold:-7.5574e-003,right_val:0.44101,left_val:0.58148},{features:[[9,8,2,3,-1.],[9,9,2,1,3.]],threshold:-7.7024e-004,right_val:0.54657,left_val:0.3878},{features:[[4,9,3,3,-1.],[5,9,1,3,3.]],threshold:-8.7126e-003,right_val:0.49958,left_val:0.16601},{features:[[6,0,9,17,-1.],[9,0,3,17,3.]],threshold:-0.010306,right_val:0.52742,left_val:0.40934},{features:[[9,12,1,3,-1.],[9,13,1,1,3.]],threshold:-2.0941e-003,right_val:0.45723,left_val:0.62062},{features:[[9,5,2,15,-1.],[9,10,2,5,3.]],threshold:6.8099e-003,right_val:0.41556,left_val:0.55678},{features:[[8,14,2,3,-1.],[8,15,2,1,3.]],threshold:-1.0746e-003,right_val:0.4353,left_val:0.56389},{features:[[10,14,1,3,-1.],[10,15,1,1,3.]],threshold:2.155e-003,right_val:0.67498,left_val:0.48263},{features:[[7,1,6,5,-1.],[9,1,2,5,3.]],threshold:0.031742,right_val:0.18832,left_val:0.50484},{features:[[0,0,20,2,-1.],[0,0,10,2,2.]],threshold:-0.078383,right_val:0.52602,left_val:0.23695},{features:[[2,13,5,3,-1.],[2,14,5,1,3.]],threshold:5.7415e-003,right_val:0.27765,left_val:0.50488},{features:[[9,11,2,3,-1.],[9,12,2,1,3.]],threshold:-2.9015e-003,right_val:0.46933,left_val:0.62386},{features:[[2,5,9,15,-1.],[2,10,9,5,3.]],threshold:-2.6428e-003,right_val:0.51698,left_val:0.33141},{features:[[5,0,12,10,-1.],[11,0,6,5,2.],[5,5,6,5,2.]],threshold:-0.1095,right_val:0.51834,left_val:0.238},{features:[[5,1,2,3,-1.],[6,1,1,3,2.]],threshold:7.4076e-005,right_val:0.53622,left_val:0.40696},{features:[[10,7,6,1,-1.],[12,7,2,1,3.]],threshold:-5.0594e-004,right_val:0.43746,left_val:0.55067},{features:[[3,1,2,10,-1.],[3,1,1,5,2.],[4,6,1,5,2.]],threshold:-8.2132e-004,right_val:0.42094,left_val:0.55257},{features:[[13,7,2,1,-1.],[13,7,1,1,2.]],threshold:-6.0277e-005,right_val:0.47483,left_val:0.54555},{features:[[4,13,4,6,-1.],[4,15,4,2,3.]],threshold:6.8065e-003,right_val:0.34246,left_val:0.5158},{features:[[13,7,2,1,-1.],[13,7,1,1,2.]],threshold:1.7203e-003,right_val:0.63313,left_val:0.50132},{features:[[5,7,2,1,-1.],[6,7,1,1,2.]],threshold:-1.3017e-004,right_val:0.42269,left_val:0.55397},{features:[[2,12,18,4,-1.],[11,12,9,2,2.],[2,14,9,2,2.]],threshold:-4.8016e-003,right_val:0.54308,left_val:0.44251},{features:[[5,7,2,2,-1.],[5,7,1,1,2.],[6,8,1,1,2.]],threshold:-2.5399e-003,right_val:0.46976,left_val:0.71458},{features:[[16,3,4,2,-1.],[16,4,4,1,2.]],threshold:-1.4279e-003,right_val:0.53996,left_val:0.40704},{features:[[0,2,2,18,-1.],[0,2,1,9,2.],[1,11,1,9,2.]],threshold:-0.025143,right_val:0.47474,left_val:0.78847},{features:[[1,2,18,4,-1.],[10,2,9,2,2.],[1,4,9,2,2.]],threshold:-3.89e-003,right_val:0.55771,left_val:0.42962},{features:[[9,14,1,3,-1.],[9,15,1,1,3.]],threshold:4.3947e-003,right_val:0.70239,left_val:0.46932},{features:[[2,12,18,4,-1.],[11,12,9,2,2.],[2,14,9,2,2.]],threshold:0.024678,right_val:0.38125,left_val:0.52423},{features:[[0,12,18,4,-1.],[0,12,9,2,2.],[9,14,9,2,2.]],threshold:0.038048,right_val:0.16878,left_val:0.50117},{features:[[11,4,5,3,-1.],[11,5,5,1,3.]],threshold:7.9425e-003,right_val:0.63696,left_val:0.48286},{features:[[6,4,7,3,-1.],[6,5,7,1,3.]],threshold:-1.511e-003,right_val:0.44877,left_val:0.59065},{features:[[13,17,3,3,-1.],[13,18,3,1,3.]],threshold:6.4202e-003,right_val:0.29906,left_val:0.52411},{features:[[8,1,3,4,-1.],[9,1,1,4,3.]],threshold:-2.9802e-003,right_val:0.50785,left_val:0.30415},{features:[[11,4,2,4,-1.],[11,4,1,4,2.]],threshold:-7.458e-004,right_val:0.52568,left_val:0.41281},{features:[[0,17,9,3,-1.],[3,17,3,3,3.]],threshold:-0.010471,right_val:0.44943,left_val:0.58084},{features:[[11,0,2,8,-1.],[12,0,1,4,2.],[11,4,1,4,2.]],threshold:9.3369e-003,right_val:0.26589,left_val:0.52466},{features:[[0,8,6,12,-1.],[0,8,3,6,2.],[3,14,3,6,2.]],threshold:0.027937,right_val:0.70873,left_val:0.4675},{features:[[10,7,4,12,-1.],[10,13,4,6,2.]],threshold:7.4278e-003,right_val:0.37585,left_val:0.54095},{features:[[5,3,8,14,-1.],[5,10,8,7,2.]],threshold:-0.023585,right_val:0.52386,left_val:0.37586},{features:[[14,10,6,1,-1.],[14,10,3,1,2.]],threshold:1.1453e-003,right_val:0.58042,left_val:0.43296},{features:[[0,4,10,4,-1.],[0,6,10,2,2.]],threshold:-4.3469e-004,right_val:0.38731,left_val:0.52806},{features:[[10,0,5,8,-1.],[10,4,5,4,2.]],threshold:0.010649,right_val:0.56813,left_val:0.49021},{features:[[8,1,4,8,-1.],[8,1,2,4,2.],[10,5,2,4,2.]],threshold:-3.9418e-004,right_val:0.43183,left_val:0.55709},{features:[[9,11,6,1,-1.],[11,11,2,1,3.]],threshold:-1.327e-004,right_val:0.43436,left_val:0.56584},{features:[[8,9,3,4,-1.],[9,9,1,4,3.]],threshold:-2.0126e-003,right_val:0.45375,left_val:0.60567},{features:[[18,4,2,6,-1.],[18,6,2,2,3.]],threshold:2.4854e-003,right_val:0.4138,left_val:0.53905},{features:[[8,8,3,4,-1.],[9,8,1,4,3.]],threshold:1.8238e-003,right_val:0.57172,left_val:0.43548},{features:[[7,1,13,3,-1.],[7,2,13,1,3.]],threshold:-0.016657,right_val:0.52161,left_val:0.30109},{features:[[7,13,6,1,-1.],[9,13,2,1,3.]],threshold:8.035e-004,right_val:0.38184,left_val:0.53002},{features:[[12,11,3,6,-1.],[12,13,3,2,3.]],threshold:3.417e-003,right_val:0.42414,left_val:0.5328},{features:[[5,11,6,1,-1.],[7,11,2,1,3.]],threshold:-3.6223e-004,right_val:0.4187,left_val:0.54917},{features:[[1,4,18,10,-1.],[10,4,9,5,2.],[1,9,9,5,2.]],threshold:-0.1163,right_val:0.52265,left_val:0.14407},{features:[[8,6,4,9,-1.],[8,9,4,3,3.]],threshold:-0.014695,right_val:0.47157,left_val:0.77477},{features:[[8,6,4,3,-1.],[8,7,4,1,3.]],threshold:2.1972e-003,right_val:0.33156,left_val:0.53554},{features:[[8,7,3,3,-1.],[9,7,1,3,3.]],threshold:-4.6965e-004,right_val:0.44581,left_val:0.57672},{features:[[14,15,4,3,-1.],[14,16,4,1,3.]],threshold:6.5145e-003,right_val:0.36479,left_val:0.52157},{features:[[5,10,3,10,-1.],[6,10,1,10,3.]],threshold:0.0213,right_val:0.1568,left_val:0.49942},{features:[[8,15,4,3,-1.],[8,16,4,1,3.]],threshold:3.1881e-003,right_val:0.62873,left_val:0.47422},{features:[[0,8,1,6,-1.],[0,10,1,2,3.]],threshold:9.002e-004,right_val:0.39438,left_val:0.5348},{features:[[10,15,1,3,-1.],[10,16,1,1,3.]],threshold:-5.1772e-003,right_val:0.50131,left_val:0.67272},{features:[[2,15,4,3,-1.],[2,16,4,1,3.]],threshold:-4.3765e-003,right_val:0.51288,left_val:0.31067},{features:[[18,3,2,8,-1.],[19,3,1,4,2.],[18,7,1,4,2.]],threshold:2.63e-003,right_val:0.57552,left_val:0.48863},{features:[[0,3,2,8,-1.],[0,3,1,4,2.],[1,7,1,4,2.]],threshold:-2.0459e-003,right_val:0.45581,left_val:0.60258},{features:[[3,7,14,10,-1.],[10,7,7,5,2.],[3,12,7,5,2.]],threshold:0.069483,right_val:0.21853,left_val:0.52407},{features:[[0,7,19,3,-1.],[0,8,19,1,3.]],threshold:0.024049,right_val:0.20906,left_val:0.50119},{features:[[12,6,3,3,-1.],[12,7,3,1,3.]],threshold:3.1095e-003,right_val:0.71085,left_val:0.48667},{features:[[0,6,1,3,-1.],[0,7,1,1,3.]],threshold:-1.2503e-003,right_val:0.51562,left_val:0.34079},{features:[[12,6,3,3,-1.],[12,7,3,1,3.]],threshold:-1.0281e-003,right_val:0.44394,left_val:0.55756},{features:[[5,6,3,3,-1.],[5,7,3,1,3.]],threshold:-8.8894e-003,right_val:0.46204,left_val:0.6402},{features:[[8,2,4,2,-1.],[8,3,4,1,2.]],threshold:-6.1095e-004,right_val:0.54489,left_val:0.37664},{features:[[6,3,4,12,-1.],[8,3,2,12,2.]],threshold:-5.7686e-003,right_val:0.51337,left_val:0.33186},{features:[[13,6,2,3,-1.],[13,7,2,1,3.]],threshold:1.8506e-003,right_val:0.64069,left_val:0.49036},{features:[[0,10,20,4,-1.],[0,12,20,2,2.]],threshold:-0.099799,right_val:0.50156,left_val:0.15361},{features:[[2,0,17,14,-1.],[2,7,17,7,2.]],threshold:-0.35128,right_val:0.51744,left_val:0.058823},{features:[[0,0,6,10,-1.],[0,0,3,5,2.],[3,5,3,5,2.]],threshold:-0.045245,right_val:0.46779,left_val:0.69615},{features:[[14,6,6,4,-1.],[14,6,3,4,2.]],threshold:0.071482,right_val:0.10381,left_val:0.5168},{features:[[0,6,6,4,-1.],[3,6,3,4,2.]],threshold:2.1896e-003,right_val:0.55321,left_val:0.42731},{features:[[13,2,7,2,-1.],[13,3,7,1,2.]],threshold:-5.9243e-004,right_val:0.52764,left_val:0.46389},{features:[[0,2,7,2,-1.],[0,3,7,1,2.]],threshold:1.6788e-003,right_val:0.3932,left_val:0.53016},{features:[[6,11,14,2,-1.],[13,11,7,1,2.],[6,12,7,1,2.]],threshold:-2.2163e-003,right_val:0.4757,left_val:0.56307},{features:[[8,5,2,2,-1.],[8,5,1,1,2.],[9,6,1,1,2.]],threshold:1.1569e-004,right_val:0.55357,left_val:0.43075},{features:[[13,9,2,3,-1.],[13,9,1,3,2.]],threshold:-7.2017e-003,right_val:0.51931,left_val:0.14449},{features:[[1,1,3,12,-1.],[2,1,1,12,3.]],threshold:8.9081e-004,right_val:0.55936,left_val:0.43844},{features:[[17,4,1,3,-1.],[17,5,1,1,3.]],threshold:1.9605e-004,right_val:0.4706,left_val:0.53404},{features:[[2,4,1,3,-1.],[2,5,1,1,3.]],threshold:5.2022e-004,right_val:0.38101,left_val:0.52139},{features:[[14,5,1,3,-1.],[14,6,1,1,3.]],threshold:9.4589e-004,right_val:0.61307,left_val:0.47694},{features:[[7,16,2,3,-1.],[7,17,2,1,3.]],threshold:9.1698e-005,right_val:0.54294,left_val:0.4245},{features:[[8,13,4,6,-1.],[10,13,2,3,2.],[8,16,2,3,2.]],threshold:2.1833e-003,right_val:0.41911,left_val:0.54577},{features:[[5,5,1,3,-1.],[5,6,1,1,3.]],threshold:-8.604e-004,right_val:0.44717,left_val:0.57646},{features:[[16,0,4,20,-1.],[16,0,2,20,2.]],threshold:-0.013236,right_val:0.4695,left_val:0.63728},{features:[[5,1,2,6,-1.],[5,1,1,3,2.],[6,4,1,3,2.]],threshold:4.3377e-004,right_val:0.39458,left_val:0.53179}],threshold:67.699},{simpleClassifiers:[{features:[[5,4,10,4,-1.],[5,6,10,2,2.]],threshold:-0.024847,right_val:0.38733,left_val:0.65555},{features:[[15,2,4,12,-1.],[15,2,2,12,2.]],threshold:6.1349e-003,right_val:0.5974,left_val:0.37481},{features:[[7,6,4,12,-1.],[7,12,4,6,2.]],threshold:6.4498e-003,right_val:0.25488,left_val:0.54255},{features:[[14,5,1,8,-1.],[14,9,1,4,2.]],threshold:6.3491e-004,right_val:0.53873,left_val:0.24624},{features:[[1,4,14,10,-1.],[1,4,7,5,2.],[8,9,7,5,2.]],threshold:1.4024e-003,right_val:0.35287,left_val:0.55943},{features:[[11,6,6,14,-1.],[14,6,3,7,2.],[11,13,3,7,2.]],threshold:3.0044e-004,right_val:0.57659,left_val:0.39585},{features:[[3,6,6,14,-1.],[3,6,3,7,2.],[6,13,3,7,2.]],threshold:1.0042e-004,right_val:0.5535,left_val:0.3699},{features:[[4,9,15,2,-1.],[9,9,5,2,3.]],threshold:-5.0841e-003,right_val:0.55478,left_val:0.37111},{features:[[7,14,6,3,-1.],[7,15,6,1,3.]],threshold:-0.019537,right_val:0.45793,left_val:0.74928},{features:[[6,3,14,4,-1.],[13,3,7,2,2.],[6,5,7,2,2.]],threshold:-7.4533e-006,right_val:0.39041,left_val:0.56498},{features:[[1,9,15,2,-1.],[6,9,5,2,3.]],threshold:-3.6079e-003,right_val:0.52678,left_val:0.33811},{features:[[6,11,8,9,-1.],[6,14,8,3,3.]],threshold:2.0698e-003,right_val:0.37144,left_val:0.55193},{features:[[7,4,3,8,-1.],[8,4,1,8,3.]],threshold:-4.6464e-004,right_val:0.41136,left_val:0.56082},{features:[[14,6,2,6,-1.],[14,9,2,3,2.]],threshold:7.549e-004,right_val:0.53294,left_val:0.35592},{features:[[5,7,6,4,-1.],[5,7,3,2,2.],[8,9,3,2,2.]],threshold:-9.8322e-004,right_val:0.37632,left_val:0.54148},{features:[[1,1,18,19,-1.],[7,1,6,19,3.]],threshold:-0.019941,right_val:0.47053,left_val:0.63479},{features:[[1,2,6,5,-1.],[4,2,3,5,2.]],threshold:3.768e-003,right_val:0.55637,left_val:0.39135},{features:[[12,17,6,2,-1.],[12,18,6,1,2.]],threshold:-9.4529e-003,right_val:0.52151,left_val:0.25549},{features:[[2,17,6,2,-1.],[2,18,6,1,2.]],threshold:2.9561e-003,right_val:0.30639,left_val:0.51747},{features:[[17,3,3,6,-1.],[17,5,3,2,3.]],threshold:9.1079e-003,right_val:0.2886,left_val:0.53884},{features:[[8,17,3,3,-1.],[8,18,3,1,3.]],threshold:1.8219e-003,right_val:0.58522,left_val:0.4336},{features:[[10,13,2,6,-1.],[10,16,2,3,2.]],threshold:0.014689,right_val:0.287,left_val:0.52874},{features:[[7,13,6,3,-1.],[7,14,6,1,3.]],threshold:-0.014388,right_val:0.46474,left_val:0.70194},{features:[[17,3,3,6,-1.],[17,5,3,2,3.]],threshold:-0.018987,right_val:0.5247,left_val:0.29866},{features:[[8,13,2,3,-1.],[8,14,2,1,3.]],threshold:1.1528e-003,right_val:0.59317,left_val:0.43235},{features:[[9,3,6,2,-1.],[11,3,2,2,3.]],threshold:0.010934,right_val:0.31303,left_val:0.52869},{features:[[0,3,3,6,-1.],[0,5,3,2,3.]],threshold:-0.014933,right_val:0.50841,left_val:0.26584},{features:[[8,5,4,6,-1.],[8,7,4,2,3.]],threshold:-2.9971e-004,right_val:0.37407,left_val:0.54635},{features:[[5,5,3,2,-1.],[5,6,3,1,2.]],threshold:4.1678e-003,right_val:0.74357,left_val:0.47035},{features:[[10,1,3,4,-1.],[11,1,1,4,3.]],threshold:-6.3905e-003,right_val:0.52805,left_val:0.20693},{features:[[1,2,5,9,-1.],[1,5,5,3,3.]],threshold:4.503e-003,right_val:0.34835,left_val:0.51826},{features:[[13,6,2,3,-1.],[13,7,2,1,3.]],threshold:-9.204e-003,right_val:0.49324,left_val:0.68038},{features:[[0,6,14,3,-1.],[7,6,7,3,2.]],threshold:0.081327,right_val:0.22531,left_val:0.50584},{features:[[2,11,18,8,-1.],[2,15,18,4,2.]],threshold:-0.15079,right_val:0.52647,left_val:0.29634},{features:[[5,6,2,3,-1.],[5,7,2,1,3.]],threshold:3.3179e-003,right_val:0.70729,left_val:0.46555},{features:[[10,6,4,2,-1.],[12,6,2,1,2.],[10,7,2,1,2.]],threshold:7.7403e-004,right_val:0.56682,left_val:0.47803},{features:[[6,6,4,2,-1.],[6,6,2,1,2.],[8,7,2,1,2.]],threshold:6.82e-004,right_val:0.57222,left_val:0.4287},{features:[[10,1,3,4,-1.],[11,1,1,4,3.]],threshold:5.3672e-003,right_val:0.31146,left_val:0.52993},{features:[[7,1,2,7,-1.],[8,1,1,7,2.]],threshold:9.7019e-005,right_val:0.52695,left_val:0.36746},{features:[[4,2,15,14,-1.],[4,9,15,7,2.]],threshold:-0.12534,right_val:0.52458,left_val:0.23515},{features:[[8,7,3,2,-1.],[9,7,1,2,3.]],threshold:-5.2516e-003,right_val:0.46938,left_val:0.71159},{features:[[2,3,18,4,-1.],[11,3,9,2,2.],[2,5,9,2,2.]],threshold:-7.8342e-003,right_val:0.54091,left_val:0.44627},{features:[[9,7,2,2,-1.],[10,7,1,2,2.]],threshold:-1.131e-003,right_val:0.44177,left_val:0.59456},{features:[[13,9,2,3,-1.],[13,9,1,3,2.]],threshold:1.7601e-003,right_val:0.39735,left_val:0.53532},{features:[[5,2,6,2,-1.],[7,2,2,2,3.]],threshold:-8.1581e-004,right_val:0.52647,left_val:0.37603},{features:[[9,5,2,7,-1.],[9,5,1,7,2.]],threshold:-3.8688e-003,right_val:0.47498,left_val:0.63099},{features:[[5,9,2,3,-1.],[6,9,1,3,2.]],threshold:1.5207e-003,right_val:0.33612,left_val:0.52302},{features:[[6,0,14,18,-1.],[6,9,14,9,2.]],threshold:0.54587,right_val:0.11726,left_val:0.51671},{features:[[2,16,6,3,-1.],[2,17,6,1,3.]],threshold:0.01565,right_val:0.13933,left_val:0.49794},{features:[[9,7,3,6,-1.],[10,7,1,6,3.]],threshold:-0.011732,right_val:0.49212,left_val:0.71297},{features:[[7,8,4,3,-1.],[7,9,4,1,3.]],threshold:-6.1765e-003,right_val:0.50497,left_val:0.22881},{features:[[7,12,6,3,-1.],[7,13,6,1,3.]],threshold:2.2458e-003,right_val:0.60487,left_val:0.46324},{features:[[9,12,2,3,-1.],[9,13,2,1,3.]],threshold:-5.1916e-003,right_val:0.46022,left_val:0.64674},{features:[[7,12,6,2,-1.],[9,12,2,2,3.]],threshold:-0.023828,right_val:0.52261,left_val:0.1482},{features:[[5,11,4,6,-1.],[5,14,4,3,2.]],threshold:1.0285e-003,right_val:0.3376,left_val:0.51355},{features:[[11,12,7,2,-1.],[11,13,7,1,2.]],threshold:-0.010079,right_val:0.53036,left_val:0.27406},{features:[[6,10,8,6,-1.],[6,10,4,3,2.],[10,13,4,3,2.]],threshold:2.6169e-003,right_val:0.39725,left_val:0.53327},{features:[[11,10,3,4,-1.],[11,12,3,2,2.]],threshold:5.4385e-004,right_val:0.40634,left_val:0.53656},{features:[[9,16,2,3,-1.],[9,17,2,1,3.]],threshold:5.3511e-003,right_val:0.6889,left_val:0.46538},{features:[[13,3,1,9,-1.],[13,6,1,3,3.]],threshold:-1.5275e-003,right_val:0.36247,left_val:0.54495},{features:[[1,13,14,6,-1.],[1,15,14,2,3.]],threshold:-0.080624,right_val:0.50003,left_val:0.16561},{features:[[13,6,1,6,-1.],[13,9,1,3,2.]],threshold:0.022192,right_val:0.20028,left_val:0.51327},{features:[[0,4,3,8,-1.],[1,4,1,8,3.]],threshold:7.3101e-003,right_val:0.63665,left_val:0.46179},{features:[[18,0,2,18,-1.],[18,0,1,18,2.]],threshold:-6.4063e-003,right_val:0.48679,left_val:0.59163},{features:[[2,3,6,2,-1.],[2,4,6,1,2.]],threshold:-7.6415e-004,right_val:0.53158,left_val:0.38884},{features:[[9,0,8,6,-1.],[9,2,8,2,3.]],threshold:7.6734e-004,right_val:0.56053,left_val:0.41591},{features:[[6,6,1,6,-1.],[6,9,1,3,2.]],threshold:6.1475e-004,right_val:0.51201,left_val:0.3089},{features:[[14,8,6,3,-1.],[14,9,6,1,3.]],threshold:-5.0105e-003,right_val:0.52073,left_val:0.39722},{features:[[0,0,2,18,-1.],[1,0,1,18,2.]],threshold:-8.6909e-003,right_val:0.46086,left_val:0.62574},{features:[[1,18,18,2,-1.],[10,18,9,1,2.],[1,19,9,1,2.]],threshold:-0.016391,right_val:0.52423,left_val:0.20852},{features:[[3,15,2,2,-1.],[3,16,2,1,2.]],threshold:4.0974e-004,right_val:0.37803,left_val:0.52224},{features:[[8,14,5,3,-1.],[8,15,5,1,3.]],threshold:-2.5242e-003,right_val:0.46119,left_val:0.58039},{features:[[8,14,2,3,-1.],[8,15,2,1,3.]],threshold:5.0945e-004,right_val:0.5846,left_val:0.44013},{features:[[12,3,3,3,-1.],[13,3,1,3,3.]],threshold:1.9656e-003,right_val:0.41846,left_val:0.53223},{features:[[7,5,6,2,-1.],[9,5,2,2,3.]],threshold:5.6299e-004,right_val:0.52346,left_val:0.37418},{features:[[15,5,5,2,-1.],[15,6,5,1,2.]],threshold:-6.7947e-004,right_val:0.53565,left_val:0.4631},{features:[[0,5,5,2,-1.],[0,6,5,1,2.]],threshold:7.2856e-003,right_val:0.23776,left_val:0.50447},{features:[[17,14,1,6,-1.],[17,17,1,3,2.]],threshold:-0.017459,right_val:0.50504,left_val:0.72891},{features:[[2,9,9,3,-1.],[5,9,3,3,3.]],threshold:-0.025422,right_val:0.46781,left_val:0.66671},{features:[[12,3,3,3,-1.],[13,3,1,3,3.]],threshold:-1.5648e-003,right_val:0.53236,left_val:0.43918},{features:[[0,0,4,18,-1.],[2,0,2,18,2.]],threshold:0.011444,right_val:0.568,left_val:0.43464},{features:[[17,6,1,3,-1.],[17,7,1,1,3.]],threshold:-6.7353e-004,right_val:0.52968,left_val:0.44771},{features:[[2,14,1,6,-1.],[2,17,1,3,2.]],threshold:9.3194e-003,right_val:0.74626,left_val:0.47402},{features:[[19,8,1,2,-1.],[19,9,1,1,2.]],threshold:1.3328e-004,right_val:0.47521,left_val:0.53651},{features:[[5,3,3,3,-1.],[6,3,1,3,3.]],threshold:-7.8816e-003,right_val:0.50153,left_val:0.17522},{features:[[9,16,2,3,-1.],[9,17,2,1,3.]],threshold:-5.7986e-003,right_val:0.48962,left_val:0.72712},{features:[[2,6,1,3,-1.],[2,7,1,1,3.]],threshold:-3.8922e-004,right_val:0.53449,left_val:0.40039},{features:[[12,4,8,2,-1.],[16,4,4,1,2.],[12,5,4,1,2.]],threshold:-1.9289e-003,right_val:0.4804,left_val:0.56056},{features:[[0,4,8,2,-1.],[0,4,4,1,2.],[4,5,4,1,2.]],threshold:8.4214e-003,right_val:0.76236,left_val:0.47532},{features:[[2,16,18,4,-1.],[2,18,18,2,2.]],threshold:8.1656e-003,right_val:0.41916,left_val:0.53933},{features:[[7,15,2,4,-1.],[7,17,2,2,2.]],threshold:4.8281e-004,right_val:0.53998,left_val:0.42408},{features:[[4,0,14,3,-1.],[4,1,14,1,3.]],threshold:-2.7187e-003,right_val:0.54249,left_val:0.42446},{features:[[0,0,4,20,-1.],[2,0,2,20,2.]],threshold:-0.012507,right_val:0.45504,left_val:0.58958},{features:[[12,4,4,8,-1.],[14,4,2,4,2.],[12,8,2,4,2.]],threshold:-0.024287,right_val:0.51892,left_val:0.26471},{features:[[6,7,2,2,-1.],[6,7,1,1,2.],[7,8,1,1,2.]],threshold:-2.9676e-003,right_val:0.47497,left_val:0.73477},{features:[[10,6,2,3,-1.],[10,7,2,1,3.]],threshold:-0.012529,right_val:0.51776,left_val:0.2756},{features:[[8,7,3,2,-1.],[8,8,3,1,2.]],threshold:-1.0104e-003,right_val:0.51447,left_val:0.35106},{features:[[8,2,6,12,-1.],[8,8,6,6,2.]],threshold:-2.1349e-003,right_val:0.46673,left_val:0.56379},{features:[[4,0,11,12,-1.],[4,4,11,4,3.]],threshold:0.019564,right_val:0.61376,left_val:0.46146},{features:[[14,9,6,11,-1.],[16,9,2,11,3.]],threshold:-0.097146,right_val:0.51936,left_val:0.29984},{features:[[0,14,4,3,-1.],[0,15,4,1,3.]],threshold:4.5015e-003,right_val:0.30458,left_val:0.50779},{features:[[9,10,2,3,-1.],[9,11,2,1,3.]],threshold:6.3707e-003,right_val:0.68875,left_val:0.4861},{features:[[5,11,3,2,-1.],[5,12,3,1,2.]],threshold:-9.0722e-003,right_val:0.50176,left_val:0.16734},{features:[[9,15,3,3,-1.],[10,15,1,3,3.]],threshold:-5.3537e-003,right_val:0.52426,left_val:0.26928},{features:[[8,8,3,4,-1.],[9,8,1,4,3.]],threshold:-0.010933,right_val:0.4736,left_val:0.71839},{features:[[9,15,3,3,-1.],[10,15,1,3,3.]],threshold:8.2356e-003,right_val:0.23899,left_val:0.5224},{features:[[7,7,3,2,-1.],[8,7,1,2,3.]],threshold:-1.0038e-003,right_val:0.44339,left_val:0.57194},{features:[[2,10,16,4,-1.],[10,10,8,2,2.],[2,12,8,2,2.]],threshold:4.0859e-003,right_val:0.41488,left_val:0.54728},{features:[[2,3,4,17,-1.],[4,3,2,17,2.]],threshold:0.15485,right_val:0.061062,left_val:0.49738},{features:[[15,13,2,7,-1.],[15,13,1,7,2.]],threshold:2.0897e-004,right_val:0.54239,left_val:0.47092},{features:[[2,2,6,1,-1.],[5,2,3,1,2.]],threshold:3.3317e-004,right_val:0.5301,left_val:0.40896},{features:[[5,2,12,4,-1.],[9,2,4,4,3.]],threshold:-0.010813,right_val:0.49573,left_val:0.61044},{features:[[6,0,8,12,-1.],[6,0,4,6,2.],[10,6,4,6,2.]],threshold:0.045656,right_val:0.28667,left_val:0.50697},{features:[[13,7,2,2,-1.],[14,7,1,1,2.],[13,8,1,1,2.]],threshold:1.257e-003,right_val:0.63182,left_val:0.48469},{features:[[0,12,20,6,-1.],[0,14,20,2,3.]],threshold:-0.12015,right_val:0.4981,left_val:0.060526},{features:[[14,7,2,3,-1.],[14,7,1,3,2.]],threshold:-1.0534e-004,right_val:0.4708,left_val:0.53631},{features:[[0,8,9,12,-1.],[3,8,3,12,3.]],threshold:-0.20703,right_val:0.49791,left_val:0.05966},{features:[[3,0,16,2,-1.],[3,0,8,2,2.]],threshold:1.2909e-004,right_val:0.5378,left_val:0.4713},{features:[[6,15,3,3,-1.],[6,16,3,1,3.]],threshold:3.8819e-004,right_val:0.55342,left_val:0.43635},{features:[[8,15,6,3,-1.],[8,16,6,1,3.]],threshold:-2.9244e-003,right_val:0.48252,left_val:0.58112},{features:[[0,10,1,6,-1.],[0,12,1,2,3.]],threshold:8.3882e-004,right_val:0.40381,left_val:0.53117},{features:[[10,9,4,3,-1.],[10,10,4,1,3.]],threshold:-1.9062e-003,right_val:0.526,left_val:0.37707},{features:[[9,15,2,3,-1.],[9,16,2,1,3.]],threshold:8.9514e-003,right_val:0.76822,left_val:0.47662},{features:[[5,7,10,1,-1.],[5,7,5,1,2.]],threshold:0.013083,right_val:0.30622,left_val:0.52645},{features:[[4,0,12,19,-1.],[10,0,6,19,2.]],threshold:-0.21159,right_val:0.46958,left_val:0.67372},{features:[[0,6,20,6,-1.],[10,6,10,3,2.],[0,9,10,3,2.]],threshold:3.1493e-003,right_val:0.4387,left_val:0.56448},{features:[[3,6,2,2,-1.],[3,6,1,1,2.],[4,7,1,1,2.]],threshold:3.9754e-004,right_val:0.58956,left_val:0.45261},{features:[[15,6,2,2,-1.],[16,6,1,1,2.],[15,7,1,1,2.]],threshold:-1.3814e-003,right_val:0.49424,left_val:0.60706},{features:[[3,6,2,2,-1.],[3,6,1,1,2.],[4,7,1,1,2.]],threshold:-5.8122e-004,right_val:0.45083,left_val:0.59982},{features:[[14,4,1,12,-1.],[14,10,1,6,2.]],threshold:-2.3905e-003,right_val:0.52238,left_val:0.42056},{features:[[2,5,16,10,-1.],[2,5,8,5,2.],[10,10,8,5,2.]],threshold:0.027269,right_val:0.35633,left_val:0.52064},{features:[[9,17,3,2,-1.],[10,17,1,2,3.]],threshold:-3.7658e-003,right_val:0.52188,left_val:0.31447},{features:[[1,4,2,2,-1.],[1,5,2,1,2.]],threshold:-1.4903e-003,right_val:0.51244,left_val:0.33802},{features:[[5,0,15,5,-1.],[10,0,5,5,3.]],threshold:-0.017428,right_val:0.49197,left_val:0.583},{features:[[0,0,15,5,-1.],[5,0,5,5,3.]],threshold:-0.015278,right_val:0.46179,left_val:0.61631},{features:[[11,2,2,17,-1.],[11,2,1,17,2.]],threshold:0.031996,right_val:0.17128,left_val:0.51664},{features:[[7,2,2,17,-1.],[8,2,1,17,2.]],threshold:-3.8257e-003,right_val:0.51314,left_val:0.3408},{features:[[15,11,2,9,-1.],[15,11,1,9,2.]],threshold:-8.5186e-003,right_val:0.49979,left_val:0.61055},{features:[[3,11,2,9,-1.],[4,11,1,9,2.]],threshold:9.0642e-004,right_val:0.55823,left_val:0.43273},{features:[[5,16,14,4,-1.],[5,16,7,4,2.]],threshold:0.010345,right_val:0.54524,left_val:0.48557}],threshold:69.23},{simpleClassifiers:[{features:[[1,4,18,1,-1.],[7,4,6,1,3.]],threshold:7.8982e-003,right_val:0.59465,left_val:0.33325},{features:[[13,7,6,4,-1.],[16,7,3,2,2.],[13,9,3,2,2.]],threshold:1.617e-003,right_val:0.55779,left_val:0.34906},{features:[[9,8,2,12,-1.],[9,12,2,4,3.]],threshold:-5.545e-004,right_val:0.32915,left_val:0.55426},{features:[[12,1,6,6,-1.],[12,3,6,2,3.]],threshold:1.5429e-003,right_val:0.5546,left_val:0.36126},{features:[[5,2,6,6,-1.],[5,2,3,3,2.],[8,5,3,3,2.]],threshold:-1.0329e-003,right_val:0.55761,left_val:0.35301},{features:[[9,16,6,4,-1.],[12,16,3,2,2.],[9,18,3,2,2.]],threshold:7.7698e-004,right_val:0.56453,left_val:0.39168},{features:[[1,2,18,3,-1.],[7,2,6,3,3.]],threshold:0.1432,right_val:0.70236,left_val:0.46675},{features:[[7,4,9,10,-1.],[7,9,9,5,2.]],threshold:-7.3866e-003,right_val:0.52893,left_val:0.30737},{features:[[5,9,4,4,-1.],[7,9,2,4,2.]],threshold:-6.2937e-004,right_val:0.4037,left_val:0.56221},{features:[[11,10,3,6,-1.],[11,13,3,3,2.]],threshold:7.8894e-004,right_val:0.35579,left_val:0.52677},{features:[[7,11,5,3,-1.],[7,12,5,1,3.]],threshold:-0.012228,right_val:0.46255,left_val:0.66683},{features:[[7,11,6,6,-1.],[10,11,3,3,2.],[7,14,3,3,2.]],threshold:3.542e-003,right_val:0.38697,left_val:0.55214},{features:[[0,0,10,9,-1.],[0,3,10,3,3.]],threshold:-1.0585e-003,right_val:0.53209,left_val:0.36287},{features:[[13,14,1,6,-1.],[13,16,1,2,3.]],threshold:1.4936e-005,right_val:0.53633,left_val:0.46324},{features:[[0,2,3,6,-1.],[0,4,3,2,3.]],threshold:5.2538e-003,right_val:0.32657,left_val:0.51322},{features:[[8,14,4,3,-1.],[8,15,4,1,3.]],threshold:-8.2338e-003,right_val:0.47741,left_val:0.66937},{features:[[6,14,1,6,-1.],[6,16,1,2,3.]],threshold:2.1867e-005,right_val:0.54579,left_val:0.40539},{features:[[9,15,2,3,-1.],[9,16,2,1,3.]],threshold:-3.815e-003,right_val:0.47932,left_val:0.6455},{features:[[6,4,3,3,-1.],[7,4,1,3,3.]],threshold:1.1106e-003,right_val:0.35297,left_val:0.52704},{features:[[9,0,11,3,-1.],[9,1,11,1,3.]],threshold:-5.7708e-003,right_val:0.5353,left_val:0.38035},{features:[[0,6,20,3,-1.],[0,7,20,1,3.]],threshold:-3.0158e-003,right_val:0.38871,left_val:0.53394},{features:[[10,1,1,2,-1.],[10,2,1,1,2.]],threshold:-8.5454e-004,right_val:0.52736,left_val:0.35646},{features:[[9,6,2,6,-1.],[10,6,1,6,2.]],threshold:0.011051,right_val:0.68497,left_val:0.46719},{features:[[5,8,12,1,-1.],[9,8,4,1,3.]],threshold:0.042606,right_val:0.07022,left_val:0.51515},{features:[[3,8,12,1,-1.],[7,8,4,1,3.]],threshold:-3.0782e-003,right_val:0.51526,left_val:0.30417},{features:[[9,7,3,5,-1.],[10,7,1,5,3.]],threshold:-5.4816e-003,right_val:0.48972,left_val:0.64303},{features:[[3,9,6,2,-1.],[6,9,3,2,2.]],threshold:3.1882e-003,right_val:0.38262,left_val:0.53075},{features:[[12,9,3,3,-1.],[12,10,3,1,3.]],threshold:3.5947e-004,right_val:0.54219,left_val:0.465},{features:[[7,0,6,1,-1.],[9,0,2,1,3.]],threshold:-4.0705e-003,right_val:0.50791,left_val:0.28497},{features:[[12,9,3,3,-1.],[12,10,3,1,3.]],threshold:-0.014594,right_val:0.51285,left_val:0.29716},{features:[[7,10,2,1,-1.],[8,10,1,1,2.]],threshold:-1.1948e-004,right_val:0.43431,left_val:0.56311},{features:[[6,4,9,13,-1.],[9,4,3,13,3.]],threshold:-6.9345e-004,right_val:0.536,left_val:0.44036},{features:[[6,8,4,2,-1.],[6,9,4,1,2.]],threshold:1.4835e-005,right_val:0.51647,left_val:0.3421},{features:[[16,2,4,6,-1.],[16,2,2,6,2.]],threshold:9.0297e-003,right_val:0.61141,left_val:0.46393},{features:[[0,17,6,3,-1.],[0,18,6,1,3.]],threshold:-8.0641e-003,right_val:0.50755,left_val:0.28202},{features:[[10,10,3,10,-1.],[10,15,3,5,2.]],threshold:0.026062,right_val:0.26888,left_val:0.52089},{features:[[8,7,3,5,-1.],[9,7,1,5,3.]],threshold:0.017315,right_val:0.67385,left_val:0.46637},{features:[[10,4,4,3,-1.],[10,4,2,3,2.]],threshold:0.022667,right_val:0.22127,left_val:0.52093},{features:[[8,4,3,8,-1.],[9,4,1,8,3.]],threshold:-2.1966e-003,right_val:0.45382,left_val:0.60631},{features:[[6,6,9,13,-1.],[9,6,3,13,3.]],threshold:-9.5282e-003,right_val:0.52474,left_val:0.46352},{features:[[6,0,8,12,-1.],[6,0,4,6,2.],[10,6,4,6,2.]],threshold:8.0944e-003,right_val:0.39139,left_val:0.52894},{features:[[14,2,6,8,-1.],[16,2,2,8,3.]],threshold:-0.072877,right_val:0.49902,left_val:0.7752},{features:[[6,0,3,6,-1.],[7,0,1,6,3.]],threshold:-6.901e-003,right_val:0.50481,left_val:0.2428},{features:[[14,2,6,8,-1.],[16,2,2,8,3.]],threshold:-0.011308,right_val:0.48424,left_val:0.57344},{features:[[0,5,6,6,-1.],[0,8,6,3,2.]],threshold:0.059613,right_val:0.2525,left_val:0.50298},{features:[[9,12,6,2,-1.],[12,12,3,1,2.],[9,13,3,1,2.]],threshold:-2.8625e-003,right_val:0.48985,left_val:0.6073},{features:[[8,17,3,2,-1.],[9,17,1,2,3.]],threshold:4.4781e-003,right_val:0.22203,left_val:0.50153},{features:[[11,6,2,2,-1.],[12,6,1,1,2.],[11,7,1,1,2.]],threshold:-1.7513e-003,right_val:0.49339,left_val:0.66144},{features:[[1,9,18,2,-1.],[7,9,6,2,3.]],threshold:0.040163,right_val:0.3741,left_val:0.51809},{features:[[11,6,2,2,-1.],[12,6,1,1,2.],[11,7,1,1,2.]],threshold:3.4769e-004,right_val:0.5818,left_val:0.47204},{features:[[3,4,12,8,-1.],[7,4,4,8,3.]],threshold:2.6552e-003,right_val:0.52213,left_val:0.3805},{features:[[13,11,5,3,-1.],[13,12,5,1,3.]],threshold:-8.7706e-003,right_val:0.52313,left_val:0.29442},{features:[[9,10,2,3,-1.],[9,11,2,1,3.]],threshold:-5.5122e-003,right_val:0.47228,left_val:0.73462},{features:[[14,7,2,3,-1.],[14,7,1,3,2.]],threshold:6.8672e-004,right_val:0.42424,left_val:0.54529},{features:[[5,4,1,3,-1.],[5,5,1,1,3.]],threshold:5.602e-004,right_val:0.56013,left_val:0.43989},{features:[[13,4,2,3,-1.],[13,5,2,1,3.]],threshold:2.4144e-003,right_val:0.61366,left_val:0.47417},{features:[[5,4,2,3,-1.],[5,5,2,1,3.]],threshold:-1.5681e-003,right_val:0.45164,left_val:0.60446},{features:[[9,8,2,3,-1.],[9,9,2,1,3.]],threshold:-3.6827e-003,right_val:0.5295,left_val:0.24525},{features:[[8,9,2,2,-1.],[8,10,2,1,2.]],threshold:-2.9409e-004,right_val:0.52515,left_val:0.37328},{features:[[15,14,1,4,-1.],[15,16,1,2,2.]],threshold:4.2848e-004,right_val:0.40655,left_val:0.54988},{features:[[3,12,2,2,-1.],[3,13,2,1,2.]],threshold:-4.8817e-003,right_val:0.5,left_val:0.21399},{features:[[12,15,2,2,-1.],[13,15,1,1,2.],[12,16,1,1,2.]],threshold:2.7272e-004,right_val:0.58134,left_val:0.46503},{features:[[9,13,2,2,-1.],[9,14,2,1,2.]],threshold:2.0947e-004,right_val:0.55728,left_val:0.43875},{features:[[4,11,14,9,-1.],[4,14,14,3,3.]],threshold:0.048501,right_val:0.32129,left_val:0.5245},{features:[[7,13,4,3,-1.],[7,14,4,1,3.]],threshold:-4.5166e-003,right_val:0.45459,left_val:0.60568},{features:[[15,14,1,4,-1.],[15,16,1,2,2.]],threshold:-0.012292,right_val:0.51522,left_val:0.20409},{features:[[4,14,1,4,-1.],[4,16,1,2,2.]],threshold:4.855e-004,right_val:0.37395,left_val:0.52376},{features:[[14,0,6,13,-1.],[16,0,2,13,3.]],threshold:0.030556,right_val:0.59382,left_val:0.49605},{features:[[4,1,2,12,-1.],[4,1,1,6,2.],[5,7,1,6,2.]],threshold:-1.5105e-004,right_val:0.41452,left_val:0.53513},{features:[[11,14,6,6,-1.],[14,14,3,3,2.],[11,17,3,3,2.]],threshold:2.4937e-003,right_val:0.55149,left_val:0.46934},{features:[[3,14,6,6,-1.],[3,14,3,3,2.],[6,17,3,3,2.]],threshold:-0.012382,right_val:0.46817,left_val:0.67914},{features:[[14,17,3,2,-1.],[14,18,3,1,2.]],threshold:-5.1333e-003,right_val:0.52292,left_val:0.36087},{features:[[3,17,3,2,-1.],[3,18,3,1,2.]],threshold:5.1919e-004,right_val:0.36336,left_val:0.53001},{features:[[14,0,6,13,-1.],[16,0,2,13,3.]],threshold:0.1506,right_val:0.22118,left_val:0.51573},{features:[[0,0,6,13,-1.],[2,0,2,13,3.]],threshold:7.7144e-003,right_val:0.57766,left_val:0.44105},{features:[[10,10,7,6,-1.],[10,12,7,2,3.]],threshold:9.4444e-003,right_val:0.37567,left_val:0.54019},{features:[[6,15,2,2,-1.],[6,15,1,1,2.],[7,16,1,1,2.]],threshold:2.5006e-004,right_val:0.56074,left_val:0.43683},{features:[[6,11,8,6,-1.],[10,11,4,3,2.],[6,14,4,3,2.]],threshold:-3.3077e-003,right_val:0.55182,left_val:0.42448},{features:[[7,6,2,2,-1.],[7,6,1,1,2.],[8,7,1,1,2.]],threshold:7.4049e-004,right_val:0.59006,left_val:0.4497},{features:[[2,2,16,6,-1.],[10,2,8,3,2.],[2,5,8,3,2.]],threshold:0.044092,right_val:0.31564,left_val:0.52935},{features:[[5,4,3,3,-1.],[5,5,3,1,3.]],threshold:3.364e-003,right_val:0.58487,left_val:0.44833},{features:[[11,7,3,10,-1.],[11,12,3,5,2.]],threshold:-3.976e-003,right_val:0.54836,left_val:0.45595},{features:[[6,7,3,10,-1.],[6,12,3,5,2.]],threshold:2.7717e-003,right_val:0.37925,left_val:0.53418},{features:[[10,7,3,2,-1.],[11,7,1,2,3.]],threshold:-2.4123e-004,right_val:0.4577,left_val:0.56672},{features:[[8,12,4,2,-1.],[8,13,4,1,2.]],threshold:4.9426e-004,right_val:0.56288,left_val:0.44212},{features:[[10,1,1,3,-1.],[10,2,1,1,3.]],threshold:-3.8876e-004,right_val:0.53911,left_val:0.42884},{features:[[1,2,4,18,-1.],[1,2,2,9,2.],[3,11,2,9,2.]],threshold:-0.050049,right_val:0.47037,left_val:0.68995},{features:[[12,4,4,12,-1.],[12,10,4,6,2.]],threshold:-0.036635,right_val:0.51918,left_val:0.22178},{features:[[0,0,1,6,-1.],[0,2,1,2,3.]],threshold:2.4274e-003,right_val:0.34974,left_val:0.51362},{features:[[9,11,2,3,-1.],[9,12,2,1,3.]],threshold:1.9558e-003,right_val:0.64084,left_val:0.48262},{features:[[8,7,4,3,-1.],[8,8,4,1,3.]],threshold:-1.7495e-003,right_val:0.52727,left_val:0.39228},{features:[[10,7,3,2,-1.],[11,7,1,2,3.]],threshold:0.013955,right_val:0.84165,left_val:0.50782},{features:[[7,7,3,2,-1.],[8,7,1,2,3.]],threshold:-2.1897e-004,right_val:0.43142,left_val:0.55205},{features:[[9,4,6,1,-1.],[11,4,2,1,3.]],threshold:-1.5131e-003,right_val:0.53826,left_val:0.39346},{features:[[8,7,2,3,-1.],[9,7,1,3,2.]],threshold:-4.3623e-003,right_val:0.47365,left_val:0.73706},{features:[[12,7,8,6,-1.],[16,7,4,3,2.],[12,10,4,3,2.]],threshold:0.065161,right_val:0.32816,left_val:0.51593},{features:[[0,7,8,6,-1.],[0,7,4,3,2.],[4,10,4,3,2.]],threshold:-2.3567e-003,right_val:0.51729,left_val:0.36728},{features:[[18,2,2,10,-1.],[19,2,1,5,2.],[18,7,1,5,2.]],threshold:0.015147,right_val:0.66876,left_val:0.50315},{features:[[0,2,6,4,-1.],[3,2,3,4,2.]],threshold:-0.022851,right_val:0.47096,left_val:0.67675},{features:[[9,4,6,1,-1.],[11,4,2,1,3.]],threshold:4.8868e-003,right_val:0.40599,left_val:0.5258},{features:[[7,15,2,2,-1.],[7,15,1,1,2.],[8,16,1,1,2.]],threshold:1.762e-003,right_val:0.66883,left_val:0.46963},{features:[[11,13,1,6,-1.],[11,16,1,3,2.]],threshold:-1.2943e-003,right_val:0.53443,left_val:0.43207},{features:[[8,13,1,6,-1.],[8,16,1,3,2.]],threshold:0.01093,right_val:0.16375,left_val:0.49977},{features:[[14,3,2,1,-1.],[14,3,1,1,2.]],threshold:2.9958e-005,right_val:0.56332,left_val:0.42824},{features:[[8,15,2,3,-1.],[8,16,2,1,3.]],threshold:-6.5884e-003,right_val:0.47005,left_val:0.67721},{features:[[12,15,7,4,-1.],[12,17,7,2,2.]],threshold:3.2528e-003,right_val:0.45361,left_val:0.53134},{features:[[4,14,12,3,-1.],[4,15,12,1,3.]],threshold:-4.0436e-003,right_val:0.44134,left_val:0.56601},{features:[[10,3,3,2,-1.],[11,3,1,2,3.]],threshold:-1.2524e-003,right_val:0.53565,left_val:0.37319},{features:[[4,12,2,2,-1.],[4,13,2,1,2.]],threshold:1.9247e-004,right_val:0.37388,left_val:0.519},{features:[[10,11,4,6,-1.],[10,14,4,3,2.]],threshold:-0.03859,right_val:0.51888,left_val:0.29564},{features:[[7,13,2,2,-1.],[7,13,1,1,2.],[8,14,1,1,2.]],threshold:1.549e-004,right_val:0.55095,left_val:0.43471},{features:[[4,11,14,4,-1.],[11,11,7,2,2.],[4,13,7,2,2.]],threshold:-0.033764,right_val:0.51955,left_val:0.32303},{features:[[1,18,18,2,-1.],[7,18,6,2,3.]],threshold:-8.2657e-003,right_val:0.45521,left_val:0.59755},{features:[[11,18,2,2,-1.],[12,18,1,1,2.],[11,19,1,1,2.]],threshold:1.4481e-005,right_val:0.54974,left_val:0.47457},{features:[[7,18,2,2,-1.],[7,18,1,1,2.],[8,19,1,1,2.]],threshold:1.4951e-005,right_val:0.54806,left_val:0.43245},{features:[[12,18,8,2,-1.],[12,19,8,1,2.]],threshold:-0.018742,right_val:0.51785,left_val:0.15801},{features:[[7,14,6,2,-1.],[7,15,6,1,2.]],threshold:1.7572e-003,right_val:0.57738,left_val:0.45176},{features:[[8,12,4,8,-1.],[10,12,2,4,2.],[8,16,2,4,2.]],threshold:-3.1391e-003,right_val:0.54608,left_val:0.41496},{features:[[4,9,3,3,-1.],[4,10,3,1,3.]],threshold:6.6657e-005,right_val:0.52931,left_val:0.40391},{features:[[7,10,6,2,-1.],[9,10,2,2,3.]],threshold:6.7743e-003,right_val:0.6122,left_val:0.47677},{features:[[5,0,4,15,-1.],[7,0,2,15,2.]],threshold:-7.3868e-003,right_val:0.51873,left_val:0.35863},{features:[[8,6,12,14,-1.],[12,6,4,14,3.]],threshold:0.014041,right_val:0.55762,left_val:0.47121},{features:[[5,16,3,3,-1.],[5,17,3,1,3.]],threshold:-5.5258e-003,right_val:0.50393,left_val:0.2661},{features:[[8,1,12,19,-1.],[12,1,4,19,3.]],threshold:0.38684,right_val:0.25259,left_val:0.51443},{features:[[3,0,3,2,-1.],[3,1,3,1,2.]],threshold:1.1459e-004,right_val:0.54234,left_val:0.4285},{features:[[10,12,4,5,-1.],[10,12,2,5,2.]],threshold:-0.018468,right_val:0.52131,left_val:0.38858},{features:[[6,12,4,5,-1.],[8,12,2,5,2.]],threshold:-4.5907e-004,right_val:0.42359,left_val:0.54126},{features:[[11,11,2,2,-1.],[12,11,1,1,2.],[11,12,1,1,2.]],threshold:1.2528e-003,right_val:0.66241,left_val:0.48993},{features:[[0,2,3,6,-1.],[0,4,3,2,3.]],threshold:1.4911e-003,right_val:0.40401,left_val:0.52868},{features:[[11,11,2,2,-1.],[12,11,1,1,2.],[11,12,1,1,2.]],threshold:-7.5436e-004,right_val:0.47951,left_val:0.6033},{features:[[7,6,4,10,-1.],[7,11,4,5,2.]],threshold:-6.9479e-003,right_val:0.53735,left_val:0.40844},{features:[[11,11,2,2,-1.],[12,11,1,1,2.],[11,12,1,1,2.]],threshold:2.8093e-004,right_val:0.57594,left_val:0.48461},{features:[[2,13,5,2,-1.],[2,14,5,1,2.]],threshold:9.6074e-004,right_val:0.3555,left_val:0.51647},{features:[[11,11,2,2,-1.],[12,11,1,1,2.],[11,12,1,1,2.]],threshold:-2.6884e-004,right_val:0.47318,left_val:0.56776},{features:[[7,11,2,2,-1.],[7,11,1,1,2.],[8,12,1,1,2.]],threshold:2.1599e-003,right_val:0.70706,left_val:0.47315},{features:[[14,13,3,3,-1.],[14,14,3,1,3.]],threshold:5.6235e-003,right_val:0.27818,left_val:0.52402},{features:[[3,13,3,3,-1.],[3,14,3,1,3.]],threshold:-5.0244e-003,right_val:0.50623,left_val:0.2837},{features:[[9,14,2,3,-1.],[9,15,2,1,3.]],threshold:-9.7612e-003,right_val:0.49346,left_val:0.74007},{features:[[8,7,3,3,-1.],[8,8,3,1,3.]],threshold:4.1515e-003,right_val:0.3407,left_val:0.51191},{features:[[13,5,3,3,-1.],[13,6,3,1,3.]],threshold:6.2465e-003,right_val:0.65791,left_val:0.49238},{features:[[0,9,5,3,-1.],[0,10,5,1,3.]],threshold:-7.0597e-003,right_val:0.50328,left_val:0.24347},{features:[[13,5,3,3,-1.],[13,6,3,1,3.]],threshold:-2.0588e-003,right_val:0.46951,left_val:0.59003},{features:[[9,12,2,8,-1.],[9,12,1,4,2.],[10,16,1,4,2.]],threshold:-2.4146e-003,right_val:0.51892,left_val:0.36473},{features:[[11,7,2,2,-1.],[12,7,1,1,2.],[11,8,1,1,2.]],threshold:-1.4818e-003,right_val:0.49401,left_val:0.60349},{features:[[0,16,6,4,-1.],[3,16,3,4,2.]],threshold:-6.3016e-003,right_val:0.45604,left_val:0.5819},{features:[[10,6,2,3,-1.],[10,7,2,1,3.]],threshold:3.4763e-003,right_val:0.3484,left_val:0.52175},{features:[[9,5,2,6,-1.],[9,7,2,2,3.]],threshold:-0.022251,right_val:0.50321,left_val:0.23607},{features:[[12,15,8,4,-1.],[12,15,4,4,2.]],threshold:-0.030613,right_val:0.49149,left_val:0.64992},{features:[[0,14,8,6,-1.],[4,14,4,6,2.]],threshold:0.013057,right_val:0.56838,left_val:0.44133},{features:[[9,0,3,2,-1.],[10,0,1,2,3.]],threshold:-6.0096e-004,right_val:0.53335,left_val:0.43597},{features:[[4,15,4,2,-1.],[6,15,2,2,2.]],threshold:-4.1514e-004,right_val:0.43261,left_val:0.55041},{features:[[12,7,3,13,-1.],[13,7,1,13,3.]],threshold:-0.013776,right_val:0.52015,left_val:0.40641},{features:[[5,7,3,13,-1.],[6,7,1,13,3.]],threshold:-0.032297,right_val:0.49772,left_val:0.047352},{features:[[9,6,3,9,-1.],[9,9,3,3,3.]],threshold:0.053557,right_val:0.66669,left_val:0.48817},{features:[[4,4,7,12,-1.],[4,10,7,6,2.]],threshold:8.189e-003,right_val:0.42408,left_val:0.54},{features:[[12,12,2,2,-1.],[13,12,1,1,2.],[12,13,1,1,2.]],threshold:2.1055e-004,right_val:0.55639,left_val:0.4802},{features:[[6,12,2,2,-1.],[6,12,1,1,2.],[7,13,1,1,2.]],threshold:-2.4383e-003,right_val:0.47737,left_val:0.73878},{features:[[8,9,4,2,-1.],[10,9,2,1,2.],[8,10,2,1,2.]],threshold:3.2836e-003,right_val:0.31713,left_val:0.52885},{features:[[3,6,2,2,-1.],[3,6,1,1,2.],[4,7,1,1,2.]],threshold:2.373e-003,right_val:0.70602,left_val:0.47508},{features:[[16,6,3,2,-1.],[16,7,3,1,2.]],threshold:-1.4542e-003,right_val:0.53307,left_val:0.38117}],threshold:79.249},{simpleClassifiers:[{features:[[0,7,19,4,-1.],[0,9,19,2,2.]],threshold:0.055755,right_val:0.6806,left_val:0.40192},{features:[[10,2,10,1,-1.],[10,2,5,1,2.]],threshold:2.473e-003,right_val:0.59657,left_val:0.33511},{features:[[9,4,2,12,-1.],[9,10,2,6,2.]],threshold:-3.5032e-004,right_val:0.34823,left_val:0.55577},{features:[[12,18,4,1,-1.],[12,18,2,1,2.]],threshold:5.4168e-004,right_val:0.56934,left_val:0.42609},{features:[[1,7,6,4,-1.],[1,7,3,2,2.],[4,9,3,2,2.]],threshold:7.7194e-004,right_val:0.54337,left_val:0.34942},{features:[[12,0,6,13,-1.],[14,0,2,13,3.]],threshold:-1.5999e-003,right_val:0.54844,left_val:0.40285},{features:[[2,0,6,13,-1.],[4,0,2,13,3.]],threshold:-1.1832e-004,right_val:0.54255,left_val:0.38069},{features:[[10,5,8,8,-1.],[10,9,8,4,2.]],threshold:3.2909e-004,right_val:0.54295,left_val:0.26201},{features:[[8,3,2,5,-1.],[9,3,1,5,2.]],threshold:2.9518e-004,right_val:0.53993,left_val:0.37998},{features:[[8,4,9,1,-1.],[11,4,3,1,3.]],threshold:9.0467e-005,right_val:0.54402,left_val:0.44336},{features:[[3,4,9,1,-1.],[6,4,3,1,3.]],threshold:1.5007e-005,right_val:0.54091,left_val:0.37197},{features:[[1,0,18,10,-1.],[7,0,6,10,3.]],threshold:0.13936,right_val:0.4479,left_val:0.55254},{features:[[7,17,5,3,-1.],[7,18,5,1,3.]],threshold:1.6462e-003,right_val:0.57722,left_val:0.42645},{features:[[7,11,6,1,-1.],[9,11,2,1,3.]],threshold:4.9984e-004,right_val:0.56859,left_val:0.43595},{features:[[2,2,3,2,-1.],[2,3,3,1,2.]],threshold:-1.0971e-003,right_val:0.52054,left_val:0.33901},{features:[[8,12,4,2,-1.],[8,13,4,1,2.]],threshold:6.692e-004,right_val:0.59807,left_val:0.45575},{features:[[6,10,3,6,-1.],[6,13,3,3,2.]],threshold:8.6471e-004,right_val:0.2944,left_val:0.51348},{features:[[11,4,2,4,-1.],[11,4,1,4,2.]],threshold:-2.7183e-004,right_val:0.53772,left_val:0.39066},{features:[[7,4,2,4,-1.],[8,4,1,4,2.]],threshold:3.0249e-005,right_val:0.52257,left_val:0.36796},{features:[[9,6,2,4,-1.],[9,6,1,4,2.]],threshold:-8.5226e-003,right_val:0.48924,left_val:0.72931},{features:[[6,13,8,3,-1.],[6,14,8,1,3.]],threshold:1.6706e-003,right_val:0.56961,left_val:0.43453},{features:[[9,15,3,4,-1.],[10,15,1,4,3.]],threshold:-7.1434e-003,right_val:0.52256,left_val:0.25913},{features:[[9,2,2,17,-1.],[10,2,1,17,2.]],threshold:-0.016319,right_val:0.46516,left_val:0.69223},{features:[[7,0,6,1,-1.],[9,0,2,1,3.]],threshold:4.8034e-003,right_val:0.32863,left_val:0.53523},{features:[[8,15,3,4,-1.],[9,15,1,4,3.]],threshold:-7.5422e-003,right_val:0.50345,left_val:0.20405},{features:[[7,13,7,3,-1.],[7,14,7,1,3.]],threshold:-0.014363,right_val:0.48891,left_val:0.68049},{features:[[8,16,3,3,-1.],[9,16,1,3,3.]],threshold:8.9064e-004,right_val:0.38955,left_val:0.53107},{features:[[6,2,8,10,-1.],[6,7,8,5,2.]],threshold:-4.406e-003,right_val:0.43724,left_val:0.57416},{features:[[2,5,8,8,-1.],[2,9,8,4,2.]],threshold:-1.8863e-004,right_val:0.50982,left_val:0.28318},{features:[[14,16,2,2,-1.],[14,17,2,1,2.]],threshold:-3.7979e-003,right_val:0.52466,left_val:0.33725},{features:[[4,16,2,2,-1.],[4,17,2,1,2.]],threshold:1.4627e-004,right_val:0.39117,left_val:0.53067},{features:[[10,11,4,6,-1.],[10,14,4,3,2.]],threshold:-4.9165e-005,right_val:0.39427,left_val:0.54625},{features:[[6,11,4,6,-1.],[6,14,4,3,2.]],threshold:-0.033583,right_val:0.50482,left_val:0.21578},{features:[[10,14,1,3,-1.],[10,15,1,1,3.]],threshold:-3.5339e-003,right_val:0.48727,left_val:0.64653},{features:[[8,14,4,3,-1.],[8,15,4,1,3.]],threshold:5.0144e-003,right_val:0.62481,left_val:0.46177},{features:[[10,0,4,6,-1.],[12,0,2,3,2.],[10,3,2,3,2.]],threshold:0.018817,right_val:0.20001,left_val:0.52207},{features:[[0,3,20,2,-1.],[0,4,20,1,2.]],threshold:-1.3434e-003,right_val:0.53016,left_val:0.40145},{features:[[12,0,8,2,-1.],[16,0,4,1,2.],[12,1,4,1,2.]],threshold:1.7558e-003,right_val:0.56532,left_val:0.4794},{features:[[2,12,10,8,-1.],[2,16,10,4,2.]],threshold:-0.095637,right_val:0.50067,left_val:0.20342},{features:[[17,7,2,10,-1.],[18,7,1,5,2.],[17,12,1,5,2.]],threshold:-0.022241,right_val:0.50463,left_val:0.76725},{features:[[1,7,2,10,-1.],[1,7,1,5,2.],[2,12,1,5,2.]],threshold:-0.015576,right_val:0.47559,left_val:0.74903},{features:[[15,10,3,6,-1.],[15,12,3,2,3.]],threshold:5.3599e-003,right_val:0.40047,left_val:0.53653},{features:[[4,4,6,2,-1.],[6,4,2,2,3.]],threshold:-0.021763,right_val:0.49642,left_val:0.074015},{features:[[0,5,20,6,-1.],[0,7,20,2,3.]],threshold:-0.16562,right_val:0.52181,left_val:0.28591},{features:[[0,0,8,2,-1.],[0,0,4,1,2.],[4,1,4,1,2.]],threshold:1.6461e-004,right_val:0.53808,left_val:0.41916},{features:[[1,0,18,4,-1.],[7,0,6,4,3.]],threshold:-8.9078e-003,right_val:0.48774,left_val:0.62732},{features:[[1,13,6,2,-1.],[1,14,6,1,2.]],threshold:8.6346e-004,right_val:0.3671,left_val:0.51599},{features:[[10,8,3,4,-1.],[11,8,1,4,3.]],threshold:-1.3752e-003,right_val:0.45791,left_val:0.58844},{features:[[6,1,6,1,-1.],[8,1,2,1,3.]],threshold:-1.4081e-003,right_val:0.51399,left_val:0.35605},{features:[[8,14,4,3,-1.],[8,15,4,1,3.]],threshold:-3.9343e-003,right_val:0.46643,left_val:0.59943},{features:[[1,6,18,2,-1.],[10,6,9,2,2.]],threshold:-0.031967,right_val:0.51442,left_val:0.33455},{features:[[15,11,1,2,-1.],[15,12,1,1,2.]],threshold:-1.5089e-005,right_val:0.44141,left_val:0.55827},{features:[[6,5,1,2,-1.],[6,6,1,1,2.]],threshold:5.1994e-004,right_val:0.6169,left_val:0.46237},{features:[[13,4,1,3,-1.],[13,5,1,1,3.]],threshold:-3.422e-003,right_val:0.49748,left_val:0.65571},{features:[[2,15,1,2,-1.],[2,16,1,1,2.]],threshold:1.7723e-004,right_val:0.39019,left_val:0.52695},{features:[[12,4,4,3,-1.],[12,5,4,1,3.]],threshold:1.5717e-003,right_val:0.57905,left_val:0.46334},{features:[[0,0,7,3,-1.],[0,1,7,1,3.]],threshold:-8.9041e-003,right_val:0.50536,left_val:0.26896},{features:[[9,12,6,2,-1.],[9,12,3,2,2.]],threshold:4.0678e-004,right_val:0.43299,left_val:0.54566},{features:[[5,4,2,3,-1.],[5,5,2,1,3.]],threshold:6.7605e-003,right_val:0.66898,left_val:0.4649},{features:[[18,4,2,3,-1.],[18,5,2,1,3.]],threshold:2.91e-003,right_val:0.33778,left_val:0.53097},{features:[[3,0,8,6,-1.],[3,2,8,2,3.]],threshold:1.3885e-003,right_val:0.53491,left_val:0.40747},{features:[[0,2,20,6,-1.],[10,2,10,3,2.],[0,5,10,3,2.]],threshold:-0.076764,right_val:0.52282,left_val:0.19922},{features:[[4,7,2,4,-1.],[5,7,1,4,2.]],threshold:-2.2688e-004,right_val:0.42531,left_val:0.54385},{features:[[3,10,15,2,-1.],[8,10,5,2,3.]],threshold:-6.3094e-003,right_val:0.53789,left_val:0.42592},{features:[[3,0,12,11,-1.],[9,0,6,11,2.]],threshold:-0.11007,right_val:0.47217,left_val:0.69042},{features:[[13,0,2,6,-1.],[13,0,1,6,2.]],threshold:2.862e-004,right_val:0.55483,left_val:0.45249},{features:[[0,19,2,1,-1.],[1,19,1,1,2.]],threshold:2.9425e-005,right_val:0.42365,left_val:0.53704},{features:[[16,10,4,10,-1.],[18,10,2,5,2.],[16,15,2,5,2.]],threshold:-0.024887,right_val:0.49693,left_val:0.64236},{features:[[4,8,10,3,-1.],[4,9,10,1,3.]],threshold:0.033149,right_val:0.16138,left_val:0.49885},{features:[[14,12,3,3,-1.],[14,13,3,1,3.]],threshold:7.8492e-004,right_val:0.4223,left_val:0.5416},{features:[[0,10,4,10,-1.],[0,10,2,5,2.],[2,15,2,5,2.]],threshold:4.7087e-003,right_val:0.60276,left_val:0.45763},{features:[[18,3,2,6,-1.],[18,5,2,2,3.]],threshold:2.4144e-003,right_val:0.44225,left_val:0.5309},{features:[[6,6,1,3,-1.],[6,7,1,1,3.]],threshold:1.9523e-003,right_val:0.66633,left_val:0.47056},{features:[[7,7,7,2,-1.],[7,8,7,1,2.]],threshold:1.3032e-003,right_val:0.5527,left_val:0.44061},{features:[[0,3,2,6,-1.],[0,5,2,2,3.]],threshold:4.4735e-003,right_val:0.33015,left_val:0.5129},{features:[[11,1,3,1,-1.],[12,1,1,1,3.]],threshold:-2.6653e-003,right_val:0.5175,left_val:0.31355},{features:[[5,0,2,6,-1.],[6,0,1,6,2.]],threshold:1.3667e-004,right_val:0.53069,left_val:0.41194},{features:[[1,1,18,14,-1.],[7,1,6,14,3.]],threshold:-0.017126,right_val:0.48366,left_val:0.61778},{features:[[4,6,8,3,-1.],[8,6,4,3,2.]],threshold:-2.6601e-004,right_val:0.51697,left_val:0.36543},{features:[[9,12,6,2,-1.],[9,12,3,2,2.]],threshold:-0.022932,right_val:0.5164,left_val:0.34909},{features:[[5,12,6,2,-1.],[8,12,3,2,2.]],threshold:2.3317e-003,right_val:0.37094,left_val:0.51663},{features:[[10,7,3,5,-1.],[11,7,1,5,3.]],threshold:0.016926,right_val:0.8054,left_val:0.50147},{features:[[7,7,3,5,-1.],[8,7,1,5,3.]],threshold:-8.9859e-003,right_val:0.4657,left_val:0.64708},{features:[[13,0,3,10,-1.],[14,0,1,10,3.]],threshold:-0.011875,right_val:0.52588,left_val:0.32464},{features:[[4,11,3,2,-1.],[4,12,3,1,2.]],threshold:1.9351e-004,right_val:0.38396,left_val:0.51919},{features:[[17,3,3,6,-1.],[18,3,1,6,3.]],threshold:5.8713e-003,right_val:0.6187,left_val:0.49181},{features:[[1,8,18,10,-1.],[1,13,18,5,2.]],threshold:-0.24839,right_val:0.49882,left_val:0.18368},{features:[[13,0,3,10,-1.],[14,0,1,10,3.]],threshold:0.012256,right_val:0.3632,left_val:0.52271},{features:[[9,14,2,3,-1.],[9,15,2,1,3.]],threshold:8.399e-004,right_val:0.57741,left_val:0.44903},{features:[[16,3,3,7,-1.],[17,3,1,7,3.]],threshold:2.5407e-003,right_val:0.58583,left_val:0.48048},{features:[[4,0,3,10,-1.],[5,0,1,10,3.]],threshold:-0.014822,right_val:0.50235,left_val:0.2521},{features:[[16,3,3,7,-1.],[17,3,1,7,3.]],threshold:-5.7974e-003,right_val:0.48537,left_val:0.59967},{features:[[0,9,1,2,-1.],[0,10,1,1,2.]],threshold:7.2662e-004,right_val:0.36718,left_val:0.51537},{features:[[18,1,2,10,-1.],[18,1,1,10,2.]],threshold:-0.017233,right_val:0.49947,left_val:0.66217},{features:[[0,1,2,10,-1.],[1,1,1,10,2.]],threshold:7.8624e-003,right_val:0.62561,left_val:0.46334},{features:[[10,16,3,4,-1.],[11,16,1,4,3.]],threshold:-4.7344e-003,right_val:0.52819,left_val:0.36156},{features:[[2,8,3,3,-1.],[3,8,1,3,3.]],threshold:8.3048e-004,right_val:0.5551,left_val:0.44429},{features:[[11,0,2,6,-1.],[12,0,1,3,2.],[11,3,1,3,2.]],threshold:7.6602e-003,right_val:0.26134,left_val:0.51629},{features:[[7,0,2,6,-1.],[7,0,1,3,2.],[8,3,1,3,2.]],threshold:-4.1048e-003,right_val:0.5019,left_val:0.27896},{features:[[16,3,3,7,-1.],[17,3,1,7,3.]],threshold:4.8513e-003,right_val:0.56617,left_val:0.4969},{features:[[1,3,3,7,-1.],[2,3,1,7,3.]],threshold:9.9896e-004,right_val:0.55518,left_val:0.44456},{features:[[14,1,6,16,-1.],[16,1,2,16,3.]],threshold:-0.27024,right_val:0.51513,left_val:0.029388},{features:[[0,1,6,16,-1.],[2,1,2,16,3.]],threshold:-0.013091,right_val:0.44475,left_val:0.56994},{features:[[2,0,16,8,-1.],[10,0,8,4,2.],[2,4,8,4,2.]],threshold:-9.4343e-003,right_val:0.54879,left_val:0.43055},{features:[[6,8,5,3,-1.],[6,9,5,1,3.]],threshold:-1.5482e-003,right_val:0.51281,left_val:0.36803},{features:[[9,7,3,3,-1.],[10,7,1,3,3.]],threshold:5.3746e-003,right_val:0.61016,left_val:0.48389},{features:[[8,8,4,3,-1.],[8,9,4,1,3.]],threshold:1.5787e-003,right_val:0.41185,left_val:0.53252},{features:[[9,6,2,4,-1.],[9,6,1,4,2.]],threshold:3.6856e-003,right_val:0.62523,left_val:0.48109},{features:[[0,7,15,1,-1.],[5,7,5,1,3.]],threshold:9.3887e-003,right_val:0.36294,left_val:0.52002},{features:[[8,2,7,9,-1.],[8,5,7,3,3.]],threshold:0.012793,right_val:0.6738,left_val:0.49617},{features:[[1,7,16,4,-1.],[1,7,8,2,2.],[9,9,8,2,2.]],threshold:-3.3661e-003,right_val:0.52836,left_val:0.40603},{features:[[6,12,8,2,-1.],[6,13,8,1,2.]],threshold:3.9771e-004,right_val:0.59008,left_val:0.46741},{features:[[8,11,3,3,-1.],[8,12,3,1,3.]],threshold:1.4868e-003,right_val:0.60821,left_val:0.45191},{features:[[4,5,14,10,-1.],[11,5,7,5,2.],[4,10,7,5,2.]],threshold:-0.088687,right_val:0.5181,left_val:0.28079},{features:[[4,12,3,2,-1.],[4,13,3,1,2.]],threshold:-7.4296e-005,right_val:0.40876,left_val:0.52956},{features:[[9,11,6,1,-1.],[11,11,2,1,3.]],threshold:-1.4933e-005,right_val:0.45385,left_val:0.54614},{features:[[4,9,7,6,-1.],[4,11,7,2,3.]],threshold:5.9162e-003,right_val:0.41921,left_val:0.53292},{features:[[7,10,6,3,-1.],[7,11,6,1,3.]],threshold:1.1142e-003,right_val:0.57062,left_val:0.4512},{features:[[9,11,2,2,-1.],[9,12,2,1,2.]],threshold:8.9249e-005,right_val:0.58976,left_val:0.45778},{features:[[0,5,20,6,-1.],[0,7,20,2,3.]],threshold:2.532e-003,right_val:0.33576,left_val:0.52996},{features:[[6,4,6,1,-1.],[8,4,2,1,3.]],threshold:0.012426,right_val:0.13466,left_val:0.49591},{features:[[9,11,6,1,-1.],[11,11,2,1,3.]],threshold:0.028336,right_val:6.1044e-004,left_val:0.51171},{features:[[5,11,6,1,-1.],[7,11,2,1,3.]],threshold:6.6166e-003,right_val:0.70116,left_val:0.47363},{features:[[10,16,3,4,-1.],[11,16,1,4,3.]],threshold:8.0469e-003,right_val:0.32828,left_val:0.52164},{features:[[8,7,3,3,-1.],[9,7,1,3,3.]],threshold:-1.1194e-003,right_val:0.45637,left_val:0.58099},{features:[[2,12,16,8,-1.],[2,16,16,4,2.]],threshold:0.013278,right_val:0.41039,left_val:0.53984},{features:[[0,15,15,2,-1.],[0,16,15,1,2.]],threshold:4.8795e-004,right_val:0.54106,left_val:0.42493},{features:[[15,4,5,6,-1.],[15,6,5,2,3.]],threshold:0.011243,right_val:0.34382,left_val:0.527},{features:[[9,5,2,4,-1.],[10,5,1,4,2.]],threshold:-8.9897e-004,right_val:0.44566,left_val:0.56331},{features:[[8,10,9,6,-1.],[8,12,9,2,3.]],threshold:6.6677e-003,right_val:0.43627,left_val:0.53129},{features:[[2,19,15,1,-1.],[7,19,5,1,3.]],threshold:0.028947,right_val:0.65758,left_val:0.47018},{features:[[10,16,3,4,-1.],[11,16,1,4,3.]],threshold:-0.0234,right_val:0.51374,left_val:0.},{features:[[0,15,20,4,-1.],[0,17,20,2,2.]],threshold:-0.089117,right_val:0.49424,left_val:0.023745},{features:[[10,16,3,4,-1.],[11,16,1,4,3.]],threshold:-0.014055,right_val:0.51175,left_val:0.31273},{features:[[7,16,3,4,-1.],[8,16,1,4,3.]],threshold:8.1239e-003,right_val:0.252,left_val:0.5009},{features:[[9,16,3,3,-1.],[9,17,3,1,3.]],threshold:-4.9965e-003,right_val:0.49278,left_val:0.63871},{features:[[8,11,4,6,-1.],[8,14,4,3,2.]],threshold:3.1254e-003,right_val:0.36805,left_val:0.51368},{features:[[9,6,2,12,-1.],[9,10,2,4,3.]],threshold:6.767e-003,right_val:0.43636,left_val:0.55098},{features:[[8,17,4,3,-1.],[8,18,4,1,3.]],threshold:-2.3711e-003,right_val:0.45869,left_val:0.61623},{features:[[9,18,8,2,-1.],[13,18,4,1,2.],[9,19,4,1,2.]],threshold:-5.3523e-003,right_val:0.49205,left_val:0.61855},{features:[[1,18,8,2,-1.],[1,19,8,1,2.]],threshold:-0.015969,right_val:0.49833,left_val:0.13826},{features:[[13,5,6,15,-1.],[15,5,2,15,3.]],threshold:4.7676e-003,right_val:0.549,left_val:0.46881},{features:[[9,8,2,2,-1.],[9,9,2,1,2.]],threshold:-2.4715e-003,right_val:0.5004,left_val:0.23685},{features:[[9,5,2,3,-1.],[9,5,1,3,2.]],threshold:-7.1034e-004,right_val:0.47215,left_val:0.58564},{features:[[1,5,6,15,-1.],[3,5,2,15,3.]],threshold:-0.14118,right_val:0.49616,left_val:0.0869},{features:[[4,1,14,8,-1.],[11,1,7,4,2.],[4,5,7,4,2.]],threshold:0.10652,right_val:0.1741,left_val:0.51388},{features:[[2,4,4,16,-1.],[2,4,2,8,2.],[4,12,2,8,2.]],threshold:-0.052745,right_val:0.47729,left_val:0.73536},{features:[[12,4,3,12,-1.],[12,10,3,6,2.]],threshold:-4.7432e-003,right_val:0.52927,left_val:0.38844},{features:[[4,5,10,12,-1.],[4,5,5,6,2.],[9,11,5,6,2.]],threshold:9.9677e-004,right_val:0.40034,left_val:0.52235},{features:[[9,14,2,3,-1.],[9,15,2,1,3.]],threshold:8.0284e-003,right_val:0.7213,left_val:0.49591},{features:[[5,4,2,3,-1.],[5,5,2,1,3.]],threshold:8.6026e-004,right_val:0.55385,left_val:0.44449},{features:[[12,2,4,10,-1.],[14,2,2,5,2.],[12,7,2,5,2.]],threshold:9.3192e-004,right_val:0.41632,left_val:0.53984},{features:[[6,4,7,3,-1.],[6,5,7,1,3.]],threshold:-2.5082e-003,right_val:0.45625,left_val:0.58543},{features:[[2,0,18,2,-1.],[11,0,9,1,2.],[2,1,9,1,2.]],threshold:-2.1379e-003,right_val:0.52803,left_val:0.46081},{features:[[0,0,18,2,-1.],[0,0,9,1,2.],[9,1,9,1,2.]],threshold:-2.1546e-003,right_val:0.5256,left_val:0.37911},{features:[[13,13,4,6,-1.],[15,13,2,3,2.],[13,16,2,3,2.]],threshold:-7.6214e-003,right_val:0.49521,left_val:0.59986},{features:[[3,13,4,6,-1.],[3,13,2,3,2.],[5,16,2,3,2.]],threshold:2.2055e-003,right_val:0.55885,left_val:0.44842},{features:[[10,12,2,6,-1.],[10,15,2,3,2.]],threshold:1.2587e-003,right_val:0.44238,left_val:0.54507},{features:[[5,9,10,10,-1.],[5,9,5,5,2.],[10,14,5,5,2.]],threshold:-5.0927e-003,right_val:0.5263,left_val:0.41183},{features:[[11,4,4,2,-1.],[13,4,2,1,2.],[11,5,2,1,2.]],threshold:-2.5096e-003,right_val:0.49985,left_val:0.57879},{features:[[7,12,6,8,-1.],[10,12,3,8,2.]],threshold:-0.077328,right_val:0.48111,left_val:0.83979},{features:[[12,2,4,10,-1.],[14,2,2,5,2.],[12,7,2,5,2.]],threshold:-0.041486,right_val:0.5177,left_val:0.24086},{features:[[8,11,2,1,-1.],[9,11,1,1,2.]],threshold:1.0356e-004,right_val:0.54171,left_val:0.43554},{features:[[10,5,1,12,-1.],[10,9,1,4,3.]],threshold:1.3256e-003,right_val:0.48941,left_val:0.5454},{features:[[0,11,6,9,-1.],[3,11,3,9,2.]],threshold:-8.0599e-003,right_val:0.45779,left_val:0.5771},{features:[[12,2,4,10,-1.],[14,2,2,5,2.],[12,7,2,5,2.]],threshold:0.019059,right_val:0.34005,left_val:0.51699},{features:[[4,2,4,10,-1.],[4,2,2,5,2.],[6,7,2,5,2.]],threshold:-0.035058,right_val:0.50005,left_val:0.22032},{features:[[11,4,4,2,-1.],[13,4,2,1,2.],[11,5,2,1,2.]],threshold:5.7296e-003,right_val:0.65976,left_val:0.50434},{features:[[0,14,6,3,-1.],[0,15,6,1,3.]],threshold:-0.011648,right_val:0.49967,left_val:0.21863},{features:[[11,4,4,2,-1.],[13,4,2,1,2.],[11,5,2,1,2.]],threshold:1.4544e-003,right_val:0.55037,left_val:0.50077},{features:[[6,1,3,2,-1.],[7,1,1,2,3.]],threshold:-2.5031e-004,right_val:0.52417,left_val:0.41298},{features:[[11,4,4,2,-1.],[13,4,2,1,2.],[11,5,2,1,2.]],threshold:-8.2907e-004,right_val:0.49745,left_val:0.54129},{features:[[5,4,4,2,-1.],[5,4,2,1,2.],[7,5,2,1,2.]],threshold:1.0862e-003,right_val:0.58792,left_val:0.46055},{features:[[13,0,2,12,-1.],[14,0,1,6,2.],[13,6,1,6,2.]],threshold:2.0001e-004,right_val:0.47052,left_val:0.52789},{features:[[6,0,3,10,-1.],[7,0,1,10,3.]],threshold:2.9213e-003,right_val:0.37555,left_val:0.51296},{features:[[3,0,17,8,-1.],[3,4,17,4,2.]],threshold:0.025387,right_val:0.57908,left_val:0.48227},{features:[[0,4,20,4,-1.],[0,6,20,2,2.]],threshold:-3.1968e-003,right_val:0.39628,left_val:0.52484}],threshold:87.696},{simpleClassifiers:[{features:[[0,3,8,2,-1.],[4,3,4,2,2.]],threshold:5.8032e-003,right_val:0.5962,left_val:0.3499},{features:[[8,11,4,3,-1.],[8,12,4,1,3.]],threshold:-9.0003e-003,right_val:0.44786,left_val:0.68166},{features:[[5,7,6,4,-1.],[5,7,3,2,2.],[8,9,3,2,2.]],threshold:-1.155e-003,right_val:0.35783,left_val:0.55857},{features:[[8,3,4,9,-1.],[8,6,4,3,3.]],threshold:-1.107e-003,right_val:0.30504,left_val:0.5365},{features:[[8,15,1,4,-1.],[8,17,1,2,2.]],threshold:1.0308e-004,right_val:0.53446,left_val:0.36391},{features:[[4,5,12,7,-1.],[8,5,4,7,3.]],threshold:-5.0985e-003,right_val:0.55043,left_val:0.28592},{features:[[4,2,4,10,-1.],[4,2,2,5,2.],[6,7,2,5,2.]],threshold:8.2572e-004,right_val:0.3476,left_val:0.52365},{features:[[3,0,17,2,-1.],[3,1,17,1,2.]],threshold:9.9783e-003,right_val:0.62196,left_val:0.47503},{features:[[2,2,16,15,-1.],[2,7,16,5,3.]],threshold:-0.037403,right_val:0.52781,left_val:0.33434},{features:[[15,2,5,2,-1.],[15,3,5,1,2.]],threshold:4.8548e-003,right_val:0.37004,left_val:0.51922},{features:[[9,3,2,2,-1.],[10,3,1,2,2.]],threshold:-1.8664e-003,right_val:0.50919,left_val:0.29298},{features:[[4,5,16,15,-1.],[4,10,16,5,3.]],threshold:0.016889,right_val:0.54312,left_val:0.36868},{features:[[7,13,5,6,-1.],[7,16,5,3,2.]],threshold:-5.8373e-003,right_val:0.52213,left_val:0.36322},{features:[[10,7,3,2,-1.],[11,7,1,2,3.]],threshold:-1.4714e-003,right_val:0.47007,left_val:0.58707},{features:[[8,3,3,1,-1.],[9,3,1,1,3.]],threshold:-1.1523e-003,right_val:0.5141,left_val:0.31959},{features:[[9,16,3,3,-1.],[9,17,3,1,3.]],threshold:-4.256e-003,right_val:0.48149,left_val:0.63019},{features:[[0,2,5,2,-1.],[0,3,5,1,2.]],threshold:-6.7378e-003,right_val:0.50258,left_val:0.1977},{features:[[12,5,4,3,-1.],[12,6,4,1,3.]],threshold:0.011383,right_val:0.6867,left_val:0.49541},{features:[[1,7,12,1,-1.],[5,7,4,1,3.]],threshold:5.1795e-003,right_val:0.33506,left_val:0.51644},{features:[[7,5,6,14,-1.],[7,12,6,7,2.]],threshold:-0.11744,right_val:0.52344,left_val:0.23152},{features:[[0,0,8,10,-1.],[0,0,4,5,2.],[4,5,4,5,2.]],threshold:0.028703,right_val:0.67225,left_val:0.46643},{features:[[9,1,3,2,-1.],[10,1,1,2,3.]],threshold:4.8231e-003,right_val:0.27235,left_val:0.52209},{features:[[8,1,3,2,-1.],[9,1,1,2,3.]],threshold:2.6799e-003,right_val:0.29069,left_val:0.50793},{features:[[12,4,3,3,-1.],[12,5,3,1,3.]],threshold:8.0504e-003,right_val:0.6395,left_val:0.4886},{features:[[7,4,6,16,-1.],[7,12,6,8,2.]],threshold:4.8055e-003,right_val:0.36567,left_val:0.51973},{features:[[12,4,3,3,-1.],[12,5,3,1,3.]],threshold:-2.242e-003,right_val:0.47637,left_val:0.61535},{features:[[2,3,2,6,-1.],[2,5,2,2,3.]],threshold:-0.013758,right_val:0.50309,left_val:0.26373},{features:[[14,2,6,9,-1.],[14,5,6,3,3.]],threshold:-0.10338,right_val:0.51825,left_val:0.22875},{features:[[5,4,3,3,-1.],[5,5,3,1,3.]],threshold:-9.4432e-003,right_val:0.46949,left_val:0.69533},{features:[[9,17,3,2,-1.],[10,17,1,2,3.]],threshold:8.0271e-004,right_val:0.42688,left_val:0.54507},{features:[[5,5,2,3,-1.],[5,6,2,1,3.]],threshold:-4.1946e-003,right_val:0.45716,left_val:0.60914},{features:[[13,11,3,6,-1.],[13,13,3,2,3.]],threshold:0.010942,right_val:0.32845,left_val:0.52411},{features:[[3,14,2,6,-1.],[3,17,2,3,2.]],threshold:-5.7841e-004,right_val:0.41794,left_val:0.53879},{features:[[14,3,6,2,-1.],[14,4,6,1,2.]],threshold:-2.0889e-003,right_val:0.53017,left_val:0.42927},{features:[[0,8,16,2,-1.],[0,9,16,1,2.]],threshold:3.2384e-003,right_val:0.52207,left_val:0.37923},{features:[[14,3,6,2,-1.],[14,4,6,1,2.]],threshold:4.9075e-003,right_val:0.41268,left_val:0.52373},{features:[[0,0,5,6,-1.],[0,2,5,2,3.]],threshold:-0.032278,right_val:0.49945,left_val:0.19477},{features:[[12,5,4,3,-1.],[12,6,4,1,3.]],threshold:-8.9711e-003,right_val:0.4929,left_val:0.60113},{features:[[4,11,3,6,-1.],[4,13,3,2,3.]],threshold:0.015321,right_val:0.20398,left_val:0.50098},{features:[[12,5,4,3,-1.],[12,6,4,1,3.]],threshold:2.0856e-003,right_val:0.57217,left_val:0.48622},{features:[[9,5,1,3,-1.],[9,6,1,1,3.]],threshold:5.0615e-003,right_val:0.18018,left_val:0.50002},{features:[[12,5,4,3,-1.],[12,6,4,1,3.]],threshold:-3.7175e-003,right_val:0.48976,left_val:0.55301},{features:[[6,6,8,12,-1.],[6,12,8,6,2.]],threshold:-0.012171,right_val:0.53837,left_val:0.41786},{features:[[12,5,4,3,-1.],[12,6,4,1,3.]],threshold:4.6248e-003,right_val:0.57613,left_val:0.49972},{features:[[5,12,9,2,-1.],[8,12,3,2,3.]],threshold:-2.104e-004,right_val:0.40977,left_val:0.53318},{features:[[12,5,4,3,-1.],[12,6,4,1,3.]],threshold:-0.014642,right_val:0.50518,left_val:0.57559},{features:[[4,5,4,3,-1.],[4,6,4,1,3.]],threshold:3.3199e-003,right_val:0.60318,left_val:0.4577},{features:[[6,6,9,2,-1.],[9,6,3,2,3.]],threshold:3.7237e-003,right_val:0.54159,left_val:0.43804},{features:[[4,11,1,3,-1.],[4,12,1,1,3.]],threshold:8.2951e-004,right_val:0.37022,left_val:0.5163},{features:[[14,12,6,6,-1.],[14,12,3,6,2.]],threshold:-0.011408,right_val:0.48626,left_val:0.60729},{features:[[7,0,3,7,-1.],[8,0,1,7,3.]],threshold:-4.532e-003,right_val:0.5089,left_val:0.32925},{features:[[9,8,3,3,-1.],[10,8,1,3,3.]],threshold:5.1276e-003,right_val:0.61227,left_val:0.48298},{features:[[8,8,3,3,-1.],[9,8,1,3,3.]],threshold:9.8583e-003,right_val:0.65562,left_val:0.46607},{features:[[5,10,11,3,-1.],[5,11,11,1,3.]],threshold:0.036986,right_val:0.16905,left_val:0.52048},{features:[[5,7,10,1,-1.],[10,7,5,1,2.]],threshold:4.6491e-003,right_val:0.37252,left_val:0.51673},{features:[[9,7,3,2,-1.],[10,7,1,2,3.]],threshold:-4.2665e-003,right_val:0.49873,left_val:0.64065},{features:[[8,7,3,2,-1.],[9,7,1,2,3.]],threshold:-4.7957e-004,right_val:0.44649,left_val:0.58973},{features:[[11,9,4,2,-1.],[11,9,2,2,2.]],threshold:3.6827e-003,right_val:0.34727,left_val:0.54416},{features:[[5,9,4,2,-1.],[7,9,2,2,2.]],threshold:-0.01006,right_val:0.50048,left_val:0.21432},{features:[[14,10,2,4,-1.],[14,12,2,2,2.]],threshold:-3.0362e-004,right_val:0.45903,left_val:0.53864},{features:[[7,7,3,2,-1.],[8,7,1,2,3.]],threshold:-1.4545e-003,right_val:0.44971,left_val:0.57512},{features:[[14,17,6,3,-1.],[14,18,6,1,3.]],threshold:1.6515e-003,right_val:0.42385,left_val:0.54219},{features:[[4,5,12,12,-1.],[4,5,6,6,2.],[10,11,6,6,2.]],threshold:-7.8469e-003,right_val:0.52582,left_val:0.40779},{features:[[6,9,8,8,-1.],[10,9,4,4,2.],[6,13,4,4,2.]],threshold:-5.126e-003,right_val:0.54795,left_val:0.42293},{features:[[0,4,15,4,-1.],[5,4,5,4,3.]],threshold:-0.036891,right_val:0.46747,left_val:0.65964},{features:[[13,2,4,1,-1.],[13,2,2,1,2.]],threshold:2.4036e-004,right_val:0.55732,left_val:0.42511},{features:[[4,12,2,2,-1.],[4,13,2,1,2.]],threshold:-1.515e-005,right_val:0.40741,left_val:0.52592},{features:[[8,13,4,3,-1.],[8,14,4,1,3.]],threshold:2.2108e-003,right_val:0.58864,left_val:0.46717},{features:[[9,13,2,3,-1.],[9,14,2,1,3.]],threshold:-1.1569e-003,right_val:0.44872,left_val:0.57111},{features:[[13,11,2,3,-1.],[13,12,2,1,3.]],threshold:4.9996e-003,right_val:0.28983,left_val:0.52642},{features:[[7,12,4,4,-1.],[7,12,2,2,2.],[9,14,2,2,2.]],threshold:-1.4656e-003,right_val:0.51979,left_val:0.38917},{features:[[10,11,2,2,-1.],[11,11,1,1,2.],[10,12,1,1,2.]],threshold:-1.1975e-003,right_val:0.4928,left_val:0.57959},{features:[[8,17,3,2,-1.],[9,17,1,2,3.]],threshold:-4.4954e-003,right_val:0.50126,left_val:0.23776},{features:[[10,11,2,2,-1.],[11,11,1,1,2.],[10,12,1,1,2.]],threshold:1.4997e-004,right_val:0.56176,left_val:0.48766},{features:[[0,17,6,3,-1.],[0,18,6,1,3.]],threshold:2.6392e-003,right_val:0.37655,left_val:0.51681},{features:[[10,11,2,2,-1.],[11,11,1,1,2.],[10,12,1,1,2.]],threshold:-2.9368e-004,right_val:0.48746,left_val:0.54466},{features:[[8,11,2,2,-1.],[8,11,1,1,2.],[9,12,1,1,2.]],threshold:1.4212e-003,right_val:0.66913,left_val:0.46879},{features:[[12,5,8,4,-1.],[12,5,4,4,2.]],threshold:0.079428,right_val:0.27329,left_val:0.51934},{features:[[0,5,8,4,-1.],[4,5,4,4,2.]],threshold:0.079938,right_val:0.17821,left_val:0.49717},{features:[[13,2,4,1,-1.],[13,2,2,1,2.]],threshold:0.011089,right_val:0.32095,left_val:0.5166},{features:[[3,2,4,1,-1.],[5,2,2,1,2.]],threshold:1.6561e-004,right_val:0.53073,left_val:0.40585},{features:[[10,0,4,2,-1.],[12,0,2,1,2.],[10,1,2,1,2.]],threshold:-5.3354e-003,right_val:0.51581,left_val:0.34451},{features:[[7,12,3,1,-1.],[8,12,1,1,3.]],threshold:1.1287e-003,right_val:0.60755,left_val:0.45949},{features:[[8,11,4,8,-1.],[10,11,2,4,2.],[8,15,2,4,2.]],threshold:-0.021969,right_val:0.52286,left_val:0.16804},{features:[[9,9,2,2,-1.],[9,10,2,1,2.]],threshold:-2.1775e-004,right_val:0.52157,left_val:0.38616},{features:[[3,18,15,2,-1.],[3,19,15,1,2.]],threshold:2.02e-004,right_val:0.4363,left_val:0.5518},{features:[[2,6,2,12,-1.],[2,6,1,6,2.],[3,12,1,6,2.]],threshold:-0.021733,right_val:0.47899,left_val:0.79995},{features:[[9,8,2,3,-1.],[9,9,2,1,3.]],threshold:-8.44e-004,right_val:0.53748,left_val:0.4086},{features:[[7,10,3,2,-1.],[8,10,1,2,3.]],threshold:-4.3895e-004,right_val:0.43661,left_val:0.54704},{features:[[11,11,3,1,-1.],[12,11,1,1,3.]],threshold:1.5092e-003,right_val:0.58421,left_val:0.4989},{features:[[6,11,3,1,-1.],[7,11,1,1,3.]],threshold:-3.5548e-003,right_val:0.4721,left_val:0.67537},{features:[[9,2,4,2,-1.],[11,2,2,1,2.],[9,3,2,1,2.]],threshold:4.8191e-004,right_val:0.43571,left_val:0.54159},{features:[[4,12,2,3,-1.],[4,13,2,1,3.]],threshold:-6.0264e-003,right_val:0.49919,left_val:0.22585},{features:[[2,1,18,3,-1.],[8,1,6,3,3.]],threshold:-0.011668,right_val:0.49275,left_val:0.62566},{features:[[5,1,4,14,-1.],[7,1,2,14,2.]],threshold:-2.8718e-003,right_val:0.52458,left_val:0.39478},{features:[[8,16,12,3,-1.],[8,16,6,3,2.]],threshold:0.017051,right_val:0.57942,left_val:0.47525},{features:[[1,17,18,3,-1.],[7,17,6,3,3.]],threshold:-0.013352,right_val:0.45445,left_val:0.60411},{features:[[9,14,2,6,-1.],[9,17,2,3,2.]],threshold:-3.9302e-004,right_val:0.55449,left_val:0.42583},{features:[[9,12,1,8,-1.],[9,16,1,4,2.]],threshold:3.0483e-003,right_val:0.37803,left_val:0.52334},{features:[[9,14,2,3,-1.],[9,15,2,1,3.]],threshold:-4.3579e-003,right_val:0.48387,left_val:0.63719},{features:[[9,6,2,12,-1.],[9,10,2,4,3.]],threshold:5.6661e-003,right_val:0.41637,left_val:0.53747},{features:[[12,9,3,3,-1.],[12,10,3,1,3.]],threshold:6.0677e-005,right_val:0.53116,left_val:0.46388},{features:[[0,1,4,8,-1.],[2,1,2,8,2.]],threshold:0.036738,right_val:0.64665,left_val:0.46887},{features:[[9,1,6,2,-1.],[12,1,3,1,2.],[9,2,3,1,2.]],threshold:8.6528e-003,right_val:0.21887,left_val:0.52043},{features:[[1,3,12,14,-1.],[1,10,12,7,2.]],threshold:-0.15371,right_val:0.49588,left_val:0.16304},{features:[[8,12,4,2,-1.],[10,12,2,1,2.],[8,13,2,1,2.]],threshold:-4.156e-004,right_val:0.46965,left_val:0.57745},{features:[[1,9,10,2,-1.],[1,9,5,1,2.],[6,10,5,1,2.]],threshold:-1.264e-003,right_val:0.52172,left_val:0.39772},{features:[[8,15,4,3,-1.],[8,16,4,1,3.]],threshold:-3.5473e-003,right_val:0.48083,left_val:0.60465},{features:[[6,8,8,3,-1.],[6,9,8,1,3.]],threshold:3.0019e-005,right_val:0.52282,left_val:0.39967},{features:[[9,15,5,3,-1.],[9,16,5,1,3.]],threshold:1.3113e-003,right_val:0.5766,left_val:0.47122},{features:[[8,7,4,3,-1.],[8,8,4,1,3.]],threshold:-1.3375e-003,right_val:0.52532,left_val:0.41096},{features:[[7,7,6,2,-1.],[7,8,6,1,2.]],threshold:0.020877,right_val:0.1758,left_val:0.5203},{features:[[5,7,8,2,-1.],[5,7,4,1,2.],[9,8,4,1,2.]],threshold:-7.5498e-003,right_val:0.4695,left_val:0.65666},{features:[[12,9,3,3,-1.],[12,10,3,1,3.]],threshold:0.024189,right_val:0.33702,left_val:0.51287},{features:[[4,7,4,2,-1.],[4,8,4,1,2.]],threshold:-2.9359e-003,right_val:0.46945,left_val:0.65808},{features:[[14,2,6,9,-1.],[14,5,6,3,3.]],threshold:0.057558,right_val:0.27753,left_val:0.51464},{features:[[4,9,3,3,-1.],[5,9,1,3,3.]],threshold:-1.1343e-003,right_val:0.51927,left_val:0.38366},{features:[[12,9,3,3,-1.],[12,10,3,1,3.]],threshold:0.016817,right_val:0.61773,left_val:0.50856},{features:[[0,2,6,9,-1.],[0,5,6,3,3.]],threshold:5.0535e-003,right_val:0.36848,left_val:0.51388},{features:[[17,3,3,6,-1.],[18,3,1,6,3.]],threshold:-4.5875e-003,right_val:0.48352,left_val:0.59897},{features:[[0,3,3,6,-1.],[1,3,1,6,3.]],threshold:1.6882e-003,right_val:0.57231,left_val:0.45095},{features:[[17,14,1,2,-1.],[17,15,1,1,2.]],threshold:-1.6554e-003,right_val:0.52433,left_val:0.34968},{features:[[4,9,4,3,-1.],[6,9,2,3,2.]],threshold:-0.019374,right_val:0.49687,left_val:0.11205},{features:[[12,9,3,3,-1.],[12,10,3,1,3.]],threshold:0.010374,right_val:0.43952,left_val:0.51482},{features:[[5,9,3,3,-1.],[5,10,3,1,3.]],threshold:1.4973e-004,right_val:0.52699,left_val:0.4085},{features:[[9,5,6,8,-1.],[12,5,3,4,2.],[9,9,3,4,2.]],threshold:-0.042982,right_val:0.50185,left_val:0.63941},{features:[[5,5,6,8,-1.],[5,5,3,4,2.],[8,9,3,4,2.]],threshold:8.3066e-003,right_val:0.66984,left_val:0.47076},{features:[[16,1,4,6,-1.],[16,4,4,3,2.]],threshold:-4.1286e-003,right_val:0.53236,left_val:0.45414},{features:[[1,0,6,20,-1.],[3,0,2,20,3.]],threshold:1.7399e-003,right_val:0.54399,left_val:0.4334},{features:[[12,11,3,2,-1.],[13,11,1,2,3.]],threshold:1.174e-004,right_val:0.55434,left_val:0.45797},{features:[[5,11,3,2,-1.],[6,11,1,2,3.]],threshold:1.8586e-004,right_val:0.54268,left_val:0.43246},{features:[[9,4,6,1,-1.],[11,4,2,1,3.]],threshold:5.5588e-003,right_val:0.35506,left_val:0.52572},{features:[[0,0,8,3,-1.],[4,0,4,3,2.]],threshold:-7.9852e-003,right_val:0.46306,left_val:0.6043},{features:[[15,0,2,5,-1.],[15,0,1,5,2.]],threshold:6.0594e-004,right_val:0.55332,left_val:0.45983},{features:[[4,1,3,2,-1.],[5,1,1,2,3.]],threshold:-2.2983e-004,right_val:0.53225,left_val:0.41308},{features:[[7,0,6,15,-1.],[9,0,2,15,3.]],threshold:4.374e-004,right_val:0.54093,left_val:0.4043},{features:[[6,11,3,1,-1.],[7,11,1,1,3.]],threshold:2.9482e-004,right_val:0.56289,left_val:0.4495},{features:[[12,0,3,4,-1.],[13,0,1,4,3.]],threshold:0.010313,right_val:0.27043,left_val:0.51775},{features:[[5,4,6,1,-1.],[7,4,2,1,3.]],threshold:-7.7241e-003,right_val:0.49806,left_val:0.1988},{features:[[12,7,3,2,-1.],[12,8,3,1,2.]],threshold:-4.6797e-003,right_val:0.50183,left_val:0.66448},{features:[[0,1,4,6,-1.],[0,4,4,3,2.]],threshold:-5.0755e-003,right_val:0.51853,left_val:0.38983},{features:[[12,7,3,2,-1.],[12,8,3,1,2.]],threshold:2.248e-003,right_val:0.56603,left_val:0.48018},{features:[[2,16,3,3,-1.],[2,17,3,1,3.]],threshold:8.3327e-004,right_val:0.39572,left_val:0.52109},{features:[[13,8,6,10,-1.],[16,8,3,5,2.],[13,13,3,5,2.]],threshold:-0.041279,right_val:0.50071,left_val:0.61545},{features:[[0,9,5,2,-1.],[0,10,5,1,2.]],threshold:-5.093e-004,right_val:0.52284,left_val:0.39759},{features:[[12,11,2,2,-1.],[13,11,1,1,2.],[12,12,1,1,2.]],threshold:1.2569e-003,right_val:0.59392,left_val:0.49791},{features:[[3,15,3,3,-1.],[3,16,3,1,3.]],threshold:8.0048e-003,right_val:0.16334,left_val:0.49845},{features:[[12,7,3,2,-1.],[12,8,3,1,2.]],threshold:-1.1879e-003,right_val:0.49426,left_val:0.5905},{features:[[5,7,3,2,-1.],[5,8,3,1,2.]],threshold:6.1949e-004,right_val:0.53287,left_val:0.41996},{features:[[9,5,9,9,-1.],[9,8,9,3,3.]],threshold:6.683e-003,right_val:0.49059,left_val:0.54186},{features:[[5,0,3,7,-1.],[6,0,1,7,3.]],threshold:-3.7062e-003,right_val:0.5138,left_val:0.37259},{features:[[5,2,12,5,-1.],[9,2,4,5,3.]],threshold:-0.039739,right_val:0.50503,left_val:0.6479},{features:[[6,11,2,2,-1.],[6,11,1,1,2.],[7,12,1,1,2.]],threshold:1.4085e-003,right_val:0.63779,left_val:0.46823},{features:[[15,15,3,2,-1.],[15,16,3,1,2.]],threshold:3.9323e-004,right_val:0.41505,left_val:0.54585},{features:[[2,15,3,2,-1.],[2,16,3,1,2.]],threshold:-1.898e-003,right_val:0.51497,left_val:0.36902},{features:[[14,12,6,8,-1.],[17,12,3,4,2.],[14,16,3,4,2.]],threshold:-0.01397,right_val:0.48114,left_val:0.60506},{features:[[2,8,15,6,-1.],[7,8,5,6,3.]],threshold:-0.10101,right_val:0.49924,left_val:0.20171},{features:[[2,2,18,17,-1.],[8,2,6,17,3.]],threshold:-0.017347,right_val:0.48995,left_val:0.57131},{features:[[5,1,4,1,-1.],[7,1,2,1,2.]],threshold:1.562e-004,right_val:0.53926,left_val:0.42154},{features:[[5,2,12,5,-1.],[9,2,4,5,3.]],threshold:0.13439,right_val:0.37676,left_val:0.51362},{features:[[3,2,12,5,-1.],[7,2,4,5,3.]],threshold:-0.024582,right_val:0.47479,left_val:0.70274},{features:[[4,9,12,4,-1.],[10,9,6,2,2.],[4,11,6,2,2.]],threshold:-3.8554e-003,right_val:0.54277,left_val:0.43174},{features:[[5,15,6,2,-1.],[5,15,3,1,2.],[8,16,3,1,2.]],threshold:-2.3165e-003,right_val:0.46186,left_val:0.59427},{features:[[10,14,2,3,-1.],[10,15,2,1,3.]],threshold:-4.8518e-003,right_val:0.48849,left_val:0.61916},{features:[[0,13,20,2,-1.],[0,13,10,1,2.],[10,14,10,1,2.]],threshold:2.47e-003,right_val:0.40172,left_val:0.52567},{features:[[4,9,12,8,-1.],[10,9,6,4,2.],[4,13,6,4,2.]],threshold:0.045497,right_val:0.26858,left_val:0.52379},{features:[[8,13,3,6,-1.],[8,16,3,3,2.]],threshold:-0.02032,right_val:0.49797,left_val:0.21304},{features:[[10,12,2,2,-1.],[10,13,2,1,2.]],threshold:2.6995e-004,right_val:0.55431,left_val:0.4814},{features:[[9,12,2,2,-1.],[9,12,1,1,2.],[10,13,1,1,2.]],threshold:-1.8233e-003,right_val:0.471,left_val:0.64826},{features:[[4,11,14,4,-1.],[11,11,7,2,2.],[4,13,7,2,2.]],threshold:-6.3016e-003,right_val:0.53062,left_val:0.45819},{features:[[8,5,4,2,-1.],[8,6,4,1,2.]],threshold:-2.4139e-004,right_val:0.40518,left_val:0.52321},{features:[[10,10,6,3,-1.],[12,10,2,3,3.]],threshold:-1.033e-003,right_val:0.47892,left_val:0.55562},{features:[[2,14,1,2,-1.],[2,15,1,1,2.]],threshold:1.8041e-004,right_val:0.40118,left_val:0.52294},{features:[[13,8,6,12,-1.],[16,8,3,6,2.],[13,14,3,6,2.]],threshold:-0.061408,right_val:0.50107,left_val:0.62987},{features:[[1,8,6,12,-1.],[1,8,3,6,2.],[4,14,3,6,2.]],threshold:-0.069544,right_val:0.47732,left_val:0.72283},{features:[[10,0,6,10,-1.],[12,0,2,10,3.]],threshold:-0.070543,right_val:0.51825,left_val:0.22695},{features:[[5,11,8,4,-1.],[5,11,4,2,2.],[9,13,4,2,2.]],threshold:2.4424e-003,right_val:0.40982,left_val:0.52371},{features:[[10,16,8,4,-1.],[14,16,4,2,2.],[10,18,4,2,2.]],threshold:1.5494e-003,right_val:0.5468,left_val:0.47738},{features:[[7,7,6,6,-1.],[9,7,2,6,3.]],threshold:-0.023914,right_val:0.47838,left_val:0.7147},{features:[[10,2,4,10,-1.],[10,2,2,10,2.]],threshold:-0.012454,right_val:0.52411,left_val:0.26353},{features:[[6,1,4,9,-1.],[8,1,2,9,2.]],threshold:-2.076e-004,right_val:0.51136,left_val:0.36238},{features:[[12,19,2,1,-1.],[12,19,1,1,2.]],threshold:2.9781e-005,right_val:0.54328,left_val:0.47059}],threshold:90.253},{simpleClassifiers:[{features:[[1,2,4,9,-1.],[3,2,2,9,2.]],threshold:0.011773,right_val:0.64212,left_val:0.38605},{features:[[7,5,6,4,-1.],[9,5,2,4,3.]],threshold:0.027038,right_val:0.6754,left_val:0.43857},{features:[[9,4,2,4,-1.],[9,6,2,2,2.]],threshold:-3.642e-005,right_val:0.34233,left_val:0.54871},{features:[[14,5,2,8,-1.],[14,9,2,4,2.]],threshold:1.9995e-003,right_val:0.54003,left_val:0.32305},{features:[[7,6,5,12,-1.],[7,12,5,6,2.]],threshold:4.5278e-003,right_val:0.2935,left_val:0.50916},{features:[[14,6,2,6,-1.],[14,9,2,3,2.]],threshold:4.7891e-004,right_val:0.53441,left_val:0.41782},{features:[[4,6,2,6,-1.],[4,9,2,3,2.]],threshold:1.1721e-003,right_val:0.51321,left_val:0.28992},{features:[[8,15,10,4,-1.],[13,15,5,2,2.],[8,17,5,2,2.]],threshold:9.5306e-004,right_val:0.55608,left_val:0.42801},{features:[[6,18,2,2,-1.],[7,18,1,2,2.]],threshold:1.5099e-005,right_val:0.54048,left_val:0.40449},{features:[[11,3,6,2,-1.],[11,4,6,1,2.]],threshold:-6.0818e-004,right_val:0.55035,left_val:0.42718},{features:[[2,0,16,6,-1.],[2,2,16,2,3.]],threshold:3.3225e-003,right_val:0.53697,left_val:0.39627},{features:[[11,3,6,2,-1.],[11,4,6,1,2.]],threshold:-1.1037e-003,right_val:0.52377,left_val:0.47272},{features:[[4,11,10,3,-1.],[4,12,10,1,3.]],threshold:-1.435e-003,right_val:0.42235,left_val:0.5603},{features:[[11,3,6,2,-1.],[11,4,6,1,2.]],threshold:2.0767e-003,right_val:0.47327,left_val:0.52259},{features:[[3,3,6,2,-1.],[3,4,6,1,2.]],threshold:-1.6413e-004,right_val:0.54327,left_val:0.39991},{features:[[16,0,4,7,-1.],[16,0,2,7,2.]],threshold:8.8302e-003,right_val:0.60273,left_val:0.46784},{features:[[0,14,9,6,-1.],[0,16,9,2,3.]],threshold:-0.010552,right_val:0.5214,left_val:0.3494},{features:[[9,16,3,3,-1.],[9,17,3,1,3.]],threshold:-2.2732e-003,right_val:0.47491,left_val:0.61858},{features:[[4,6,6,2,-1.],[6,6,2,2,3.]],threshold:-8.4786e-004,right_val:0.38435,left_val:0.52853},{features:[[15,11,1,3,-1.],[15,12,1,1,3.]],threshold:1.2081e-003,right_val:0.34473,left_val:0.53606},{features:[[5,5,2,3,-1.],[5,6,2,1,3.]],threshold:2.6513e-003,right_val:0.6194,left_val:0.45583},{features:[[10,9,2,2,-1.],[10,10,2,1,2.]],threshold:-1.1012e-003,right_val:0.53276,left_val:0.36802},{features:[[3,1,4,3,-1.],[5,1,2,3,2.]],threshold:4.9562e-004,right_val:0.52749,left_val:0.39606},{features:[[16,0,4,7,-1.],[16,0,2,7,2.]],threshold:-0.043902,right_val:0.49928,left_val:0.70204},{features:[[0,0,20,1,-1.],[10,0,10,1,2.]],threshold:0.03469,right_val:0.27666,left_val:0.50492},{features:[[15,11,1,3,-1.],[15,12,1,1,3.]],threshold:-2.7442e-003,right_val:0.5275,left_val:0.26726},{features:[[0,4,3,4,-1.],[1,4,1,4,3.]],threshold:3.3317e-003,right_val:0.60011,left_val:0.45795},{features:[[16,3,3,6,-1.],[16,5,3,2,3.]],threshold:-0.020045,right_val:0.52357,left_val:0.31716},{features:[[1,3,3,6,-1.],[1,5,3,2,3.]],threshold:1.3492e-003,right_val:0.40343,left_val:0.52654},{features:[[6,2,12,6,-1.],[12,2,6,3,2.],[6,5,6,3,2.]],threshold:2.9702e-003,right_val:0.4572,left_val:0.53325},{features:[[8,10,4,3,-1.],[8,11,4,1,3.]],threshold:6.304e-003,right_val:0.60346,left_val:0.45933},{features:[[4,2,14,6,-1.],[11,2,7,3,2.],[4,5,7,3,2.]],threshold:-0.012937,right_val:0.5373,left_val:0.4438},{features:[[9,11,2,3,-1.],[9,12,2,1,3.]],threshold:4.0149e-003,right_val:0.64378,left_val:0.46803},{features:[[15,13,2,3,-1.],[15,14,2,1,3.]],threshold:-2.6402e-003,right_val:0.53143,left_val:0.37096},{features:[[8,12,4,3,-1.],[8,13,4,1,3.]],threshold:0.013918,right_val:0.71308,left_val:0.47236},{features:[[15,11,1,3,-1.],[15,12,1,1,3.]],threshold:-4.5088e-004,right_val:0.53704,left_val:0.44924},{features:[[7,13,5,2,-1.],[7,14,5,1,2.]],threshold:2.5384e-004,right_val:0.55144,left_val:0.44069},{features:[[7,12,6,3,-1.],[7,13,6,1,3.]],threshold:2.271e-003,right_val:0.5968,left_val:0.46824},{features:[[5,11,4,4,-1.],[5,13,4,2,2.]],threshold:2.4121e-003,right_val:0.30186,left_val:0.50794},{features:[[11,4,3,3,-1.],[12,4,1,3,3.]],threshold:-3.6026e-005,right_val:0.44711,left_val:0.5601},{features:[[6,4,3,3,-1.],[7,4,1,3,3.]],threshold:-7.4906e-003,right_val:0.49899,left_val:0.22075},{features:[[16,5,3,6,-1.],[17,5,1,6,3.]],threshold:-0.017513,right_val:0.50176,left_val:0.65312},{features:[[3,6,12,7,-1.],[7,6,4,7,3.]],threshold:0.14282,right_val:0.14821,left_val:0.4968},{features:[[16,5,3,6,-1.],[17,5,1,6,3.]],threshold:5.5345e-003,right_val:0.59542,left_val:0.48989},{features:[[3,13,2,3,-1.],[3,14,2,1,3.]],threshold:-9.6324e-004,right_val:0.51961,left_val:0.39271},{features:[[16,5,3,6,-1.],[17,5,1,6,3.]],threshold:-2.037e-003,right_val:0.48849,left_val:0.56133},{features:[[1,5,3,6,-1.],[2,5,1,6,3.]],threshold:1.6615e-003,right_val:0.55789,left_val:0.44729},{features:[[1,9,18,1,-1.],[7,9,6,1,3.]],threshold:-3.1188e-003,right_val:0.53975,left_val:0.38405},{features:[[0,9,8,7,-1.],[4,9,4,7,2.]],threshold:-6.4001e-003,right_val:0.45332,left_val:0.5844},{features:[[12,11,8,2,-1.],[12,12,8,1,2.]],threshold:3.132e-004,right_val:0.42347,left_val:0.54392},{features:[[0,11,8,2,-1.],[0,12,8,1,2.]],threshold:-0.018222,right_val:0.49584,left_val:0.12885},{features:[[9,13,2,3,-1.],[9,14,2,1,3.]],threshold:8.7969e-003,right_val:0.71535,left_val:0.49513},{features:[[4,10,12,4,-1.],[4,10,6,2,2.],[10,12,6,2,2.]],threshold:-4.2395e-003,right_val:0.51949,left_val:0.39466},{features:[[9,3,3,7,-1.],[10,3,1,7,3.]],threshold:9.7086e-003,right_val:0.60649,left_val:0.48975},{features:[[7,2,3,5,-1.],[8,2,1,5,3.]],threshold:-3.9934e-003,right_val:0.50608,left_val:0.32454},{features:[[9,12,4,6,-1.],[11,12,2,3,2.],[9,15,2,3,2.]],threshold:-0.016785,right_val:0.52038,left_val:0.1582},{features:[[8,7,3,6,-1.],[9,7,1,6,3.]],threshold:0.018272,right_val:0.6627,left_val:0.46809},{features:[[15,4,4,2,-1.],[15,5,4,1,2.]],threshold:5.6873e-003,right_val:0.35122,left_val:0.52117},{features:[[8,7,3,3,-1.],[9,7,1,3,3.]],threshold:-1.0739e-003,right_val:0.45298,left_val:0.57684},{features:[[14,2,6,4,-1.],[14,4,6,2,2.]],threshold:-3.7094e-003,right_val:0.53136,left_val:0.45078},{features:[[7,16,6,1,-1.],[9,16,2,1,3.]],threshold:-2.1111e-004,right_val:0.43334,left_val:0.54608},{features:[[15,13,2,3,-1.],[15,14,2,1,3.]],threshold:1.067e-003,right_val:0.40784,left_val:0.53719},{features:[[8,7,3,10,-1.],[9,7,1,10,3.]],threshold:3.5943e-003,right_val:0.56438,left_val:0.44713},{features:[[11,10,2,6,-1.],[11,12,2,2,3.]],threshold:-5.1776e-003,right_val:0.52803,left_val:0.44994},{features:[[6,10,4,1,-1.],[8,10,2,1,2.]],threshold:-2.5414e-004,right_val:0.44077,left_val:0.55162},{features:[[10,9,2,2,-1.],[10,10,2,1,2.]],threshold:6.3523e-003,right_val:0.24652,left_val:0.51942},{features:[[8,9,2,2,-1.],[8,10,2,1,2.]],threshold:-4.4205e-004,right_val:0.51397,left_val:0.38307},{features:[[12,7,2,2,-1.],[13,7,1,1,2.],[12,8,1,1,2.]],threshold:7.4489e-004,right_val:0.59748,left_val:0.48911},{features:[[5,7,2,2,-1.],[5,7,1,1,2.],[6,8,1,1,2.]],threshold:-3.5116e-003,right_val:0.47688,left_val:0.74137},{features:[[13,0,3,14,-1.],[14,0,1,14,3.]],threshold:-0.012541,right_val:0.52528,left_val:0.36488},{features:[[4,0,3,14,-1.],[5,0,1,14,3.]],threshold:9.4932e-003,right_val:0.36296,left_val:0.51005},{features:[[13,4,3,14,-1.],[14,4,1,14,3.]],threshold:0.012961,right_val:0.43336,left_val:0.52324},{features:[[9,14,2,3,-1.],[9,15,2,1,3.]],threshold:4.7209e-003,right_val:0.63311,left_val:0.46481},{features:[[8,14,4,3,-1.],[8,15,4,1,3.]],threshold:-2.3119e-003,right_val:0.45311,left_val:0.59303},{features:[[4,2,3,16,-1.],[5,2,1,16,3.]],threshold:-2.8262e-003,right_val:0.52571,left_val:0.38705},{features:[[7,2,8,10,-1.],[7,7,8,5,2.]],threshold:-1.4311e-003,right_val:0.45619,left_val:0.55225},{features:[[6,14,7,3,-1.],[6,15,7,1,3.]],threshold:1.9378e-003,right_val:0.5737,left_val:0.45462},{features:[[9,2,10,12,-1.],[14,2,5,6,2.],[9,8,5,6,2.]],threshold:2.6344e-004,right_val:0.45719,left_val:0.53457},{features:[[6,7,8,2,-1.],[6,8,8,1,2.]],threshold:7.8258e-004,right_val:0.52202,left_val:0.39678},{features:[[8,13,4,6,-1.],[8,16,4,3,2.]],threshold:-0.01955,right_val:0.52435,left_val:0.28296},{features:[[6,6,1,3,-1.],[6,7,1,1,3.]],threshold:4.3915e-004,right_val:0.58991,left_val:0.45901},{features:[[16,2,4,6,-1.],[16,4,4,2,3.]],threshold:0.021452,right_val:0.28554,left_val:0.52314},{features:[[6,6,4,2,-1.],[6,6,2,1,2.],[8,7,2,1,2.]],threshold:5.8974e-004,right_val:0.55064,left_val:0.43973},{features:[[16,2,4,6,-1.],[16,4,4,2,3.]],threshold:-0.026158,right_val:0.51892,left_val:0.31351},{features:[[0,2,4,6,-1.],[0,4,4,2,3.]],threshold:-0.01396,right_val:0.50407,left_val:0.32133},{features:[[9,6,2,6,-1.],[9,6,1,6,2.]],threshold:-6.3699e-003,right_val:0.48495,left_val:0.63875},{features:[[3,4,6,10,-1.],[3,9,6,5,2.]],threshold:-8.5614e-003,right_val:0.5032,left_val:0.27591},{features:[[9,5,2,6,-1.],[9,5,1,6,2.]],threshold:9.6623e-004,right_val:0.58349,left_val:0.46856},{features:[[3,13,2,3,-1.],[3,14,2,1,3.]],threshold:7.655e-004,right_val:0.38964,left_val:0.51752},{features:[[13,13,3,2,-1.],[13,14,3,1,2.]],threshold:-8.1833e-003,right_val:0.52081,left_val:0.20691},{features:[[2,16,10,4,-1.],[2,16,5,2,2.],[7,18,5,2,2.]],threshold:-9.3977e-003,right_val:0.46412,left_val:0.61341},{features:[[5,6,10,6,-1.],[10,6,5,3,2.],[5,9,5,3,2.]],threshold:4.8029e-003,right_val:0.43952,left_val:0.54541},{features:[[7,14,1,3,-1.],[7,15,1,1,3.]],threshold:-3.5681e-003,right_val:0.46811,left_val:0.63445},{features:[[14,16,6,3,-1.],[14,17,6,1,3.]],threshold:4.0733e-003,right_val:0.40156,left_val:0.52927},{features:[[5,4,3,3,-1.],[5,5,3,1,3.]],threshold:1.2568e-003,right_val:0.54528,left_val:0.4393},{features:[[7,4,10,3,-1.],[7,5,10,1,3.]],threshold:-2.9065e-003,right_val:0.48634,left_val:0.58988},{features:[[0,4,5,4,-1.],[0,6,5,2,2.]],threshold:-2.4409e-003,right_val:0.52474,left_val:0.40694},{features:[[13,11,3,9,-1.],[13,14,3,3,3.]],threshold:0.024831,right_val:0.36825,left_val:0.51827},{features:[[4,11,3,9,-1.],[4,14,3,3,3.]],threshold:-0.048854,right_val:0.49613,left_val:0.13076},{features:[[9,7,2,1,-1.],[9,7,1,1,2.]],threshold:-1.611e-003,right_val:0.48727,left_val:0.6421},{features:[[5,0,6,17,-1.],[7,0,2,17,3.]],threshold:-0.097009,right_val:0.4951,left_val:0.047769},{features:[[10,3,6,3,-1.],[10,3,3,3,2.]],threshold:1.1209e-003,right_val:0.53547,left_val:0.46163},{features:[[2,2,15,4,-1.],[7,2,5,4,3.]],threshold:-1.3064e-003,right_val:0.46388,left_val:0.62619},{features:[[8,2,8,2,-1.],[12,2,4,1,2.],[8,3,4,1,2.]],threshold:4.5772e-004,right_val:0.46466,left_val:0.53844},{features:[[8,1,3,6,-1.],[8,3,3,2,3.]],threshold:-6.315e-004,right_val:0.51303,left_val:0.3804},{features:[[9,17,2,2,-1.],[9,18,2,1,2.]],threshold:1.4506e-004,right_val:0.56645,left_val:0.45543},{features:[[0,0,2,14,-1.],[1,0,1,14,2.]],threshold:-0.016475,right_val:0.47159,left_val:0.6597},{features:[[12,0,7,3,-1.],[12,1,7,1,3.]],threshold:0.01337,right_val:0.3036,left_val:0.51955},{features:[[1,14,1,2,-1.],[1,15,1,1,2.]],threshold:1.0272e-004,right_val:0.41071,left_val:0.52292},{features:[[14,12,2,8,-1.],[15,12,1,4,2.],[14,16,1,4,2.]],threshold:-5.5312e-003,right_val:0.49609,left_val:0.63529},{features:[[1,0,7,3,-1.],[1,1,7,1,3.]],threshold:-2.6187e-003,right_val:0.5141,left_val:0.38245},{features:[[14,12,2,8,-1.],[15,12,1,4,2.],[14,16,1,4,2.]],threshold:5.0834e-003,right_val:0.62208,left_val:0.49504},{features:[[6,0,8,12,-1.],[6,0,4,6,2.],[10,6,4,6,2.]],threshold:0.079818,right_val:0.13225,left_val:0.49523},{features:[[6,1,8,9,-1.],[6,4,8,3,3.]],threshold:-0.099227,right_val:0.50084,left_val:0.75427},{features:[[5,2,2,2,-1.],[5,3,2,1,2.]],threshold:-6.5174e-004,right_val:0.51301,left_val:0.36993},{features:[[13,14,6,6,-1.],[16,14,3,3,2.],[13,17,3,3,2.]],threshold:-0.018997,right_val:0.49212,left_val:0.66892},{features:[[0,17,20,2,-1.],[0,17,10,1,2.],[10,18,10,1,2.]],threshold:0.017347,right_val:0.18592,left_val:0.49833},{features:[[10,3,2,6,-1.],[11,3,1,3,2.],[10,6,1,3,2.]],threshold:5.5082e-004,right_val:0.55221,left_val:0.45744},{features:[[5,12,6,2,-1.],[8,12,3,2,2.]],threshold:2.0056e-003,right_val:0.38565,left_val:0.51317},{features:[[10,7,6,13,-1.],[10,7,3,13,2.]],threshold:-7.7688e-003,right_val:0.54343,left_val:0.43617},{features:[[5,15,10,5,-1.],[10,15,5,5,2.]],threshold:0.050878,right_val:0.68406,left_val:0.46827},{features:[[10,4,4,10,-1.],[10,4,2,10,2.]],threshold:-2.2902e-003,right_val:0.53061,left_val:0.43292},{features:[[5,7,2,1,-1.],[6,7,1,1,2.]],threshold:-1.5715e-004,right_val:0.43782,left_val:0.53701},{features:[[10,3,6,7,-1.],[10,3,3,7,2.]],threshold:0.10519,right_val:0.067361,left_val:0.51373},{features:[[4,3,6,7,-1.],[7,3,3,7,2.]],threshold:2.7199e-003,right_val:0.52557,left_val:0.41121},{features:[[1,7,18,5,-1.],[7,7,6,5,3.]],threshold:0.048338,right_val:0.4439,left_val:0.54046},{features:[[3,17,4,3,-1.],[5,17,2,3,2.]],threshold:9.5704e-004,right_val:0.53995,left_val:0.4356},{features:[[8,14,12,6,-1.],[14,14,6,3,2.],[8,17,6,3,2.]],threshold:-0.025371,right_val:0.5031,left_val:0.59952},{features:[[0,13,20,4,-1.],[0,13,10,2,2.],[10,15,10,2,2.]],threshold:0.052458,right_val:0.13984,left_val:0.49503},{features:[[4,5,14,2,-1.],[11,5,7,1,2.],[4,6,7,1,2.]],threshold:-0.012366,right_val:0.49641,left_val:0.63973},{features:[[1,2,10,12,-1.],[1,2,5,6,2.],[6,8,5,6,2.]],threshold:-0.1459,right_val:0.49463,left_val:0.10017},{features:[[6,1,14,3,-1.],[6,2,14,1,3.]],threshold:-0.015909,right_val:0.52083,left_val:0.33123},{features:[[8,16,2,3,-1.],[8,17,2,1,3.]],threshold:3.9486e-004,right_val:0.54261,left_val:0.44064},{features:[[9,17,3,2,-1.],[10,17,1,2,3.]],threshold:-5.2454e-003,right_val:0.519,left_val:0.27996},{features:[[5,15,4,2,-1.],[5,15,2,1,2.],[7,16,2,1,2.]],threshold:-5.0422e-003,right_val:0.47521,left_val:0.69876},{features:[[10,15,1,3,-1.],[10,16,1,1,3.]],threshold:2.9812e-003,right_val:0.63075,left_val:0.49833},{features:[[8,16,4,4,-1.],[8,16,2,2,2.],[10,18,2,2,2.]],threshold:-7.2884e-003,right_val:0.50269,left_val:0.29823},{features:[[6,11,8,6,-1.],[6,14,8,3,2.]],threshold:1.5094e-003,right_val:0.3833,left_val:0.53084},{features:[[2,13,5,2,-1.],[2,14,5,1,2.]],threshold:-9.3341e-003,right_val:0.49698,left_val:0.2038},{features:[[13,14,6,6,-1.],[16,14,3,3,2.],[13,17,3,3,2.]],threshold:0.028667,right_val:0.6928,left_val:0.50257},{features:[[1,9,18,4,-1.],[7,9,6,4,3.]],threshold:0.1702,right_val:0.14764,left_val:0.49601},{features:[[13,14,6,6,-1.],[16,14,3,3,2.],[13,17,3,3,2.]],threshold:-3.2614e-003,right_val:0.48261,left_val:0.56031},{features:[[0,2,1,6,-1.],[0,4,1,2,3.]],threshold:5.5769e-004,right_val:0.41296,left_val:0.52056},{features:[[5,0,15,20,-1.],[5,10,15,10,2.]],threshold:0.36258,right_val:0.37686,left_val:0.52217},{features:[[1,14,6,6,-1.],[1,14,3,3,2.],[4,17,3,3,2.]],threshold:-0.011615,right_val:0.46375,left_val:0.60227},{features:[[8,14,4,6,-1.],[10,14,2,3,2.],[8,17,2,3,2.]],threshold:-4.0795e-003,right_val:0.53375,left_val:0.40704},{features:[[7,11,2,1,-1.],[8,11,1,1,2.]],threshold:5.7204e-004,right_val:0.59004,left_val:0.46018},{features:[[9,17,3,2,-1.],[10,17,1,2,3.]],threshold:6.7543e-004,right_val:0.43454,left_val:0.53983},{features:[[8,17,3,2,-1.],[9,17,1,2,3.]],threshold:6.3296e-004,right_val:0.40514,left_val:0.52016},{features:[[12,14,4,6,-1.],[14,14,2,3,2.],[12,17,2,3,2.]],threshold:1.2435e-003,right_val:0.55474,left_val:0.46424},{features:[[4,14,4,6,-1.],[4,14,2,3,2.],[6,17,2,3,2.]],threshold:-4.7364e-003,right_val:0.46726,left_val:0.61986},{features:[[13,14,2,6,-1.],[14,14,1,3,2.],[13,17,1,3,2.]],threshold:-6.4658e-003,right_val:0.5019,left_val:0.68373},{features:[[5,14,2,6,-1.],[5,14,1,3,2.],[6,17,1,3,2.]],threshold:3.5017e-004,right_val:0.53636,left_val:0.43448},{features:[[7,0,6,12,-1.],[7,4,6,4,3.]],threshold:1.5755e-004,right_val:0.5732,left_val:0.47601},{features:[[0,7,12,2,-1.],[4,7,4,2,3.]],threshold:9.9774e-003,right_val:0.3635,left_val:0.5091},{features:[[10,3,3,13,-1.],[11,3,1,13,3.]],threshold:-4.1465e-004,right_val:0.45938,left_val:0.55701},{features:[[7,3,3,13,-1.],[8,3,1,13,3.]],threshold:-3.5889e-004,right_val:0.43391,left_val:0.53568},{features:[[10,8,6,3,-1.],[10,9,6,1,3.]],threshold:4.0463e-004,right_val:0.54368,left_val:0.44398},{features:[[3,11,3,2,-1.],[4,11,1,2,3.]],threshold:-8.2185e-004,right_val:0.51763,left_val:0.40423},{features:[[13,12,6,8,-1.],[16,12,3,4,2.],[13,16,3,4,2.]],threshold:5.9467e-003,right_val:0.56338,left_val:0.49277},{features:[[7,6,6,5,-1.],[9,6,2,5,3.]],threshold:-0.021753,right_val:0.48008,left_val:0.80063},{features:[[17,11,2,7,-1.],[17,11,1,7,2.]],threshold:-0.01454,right_val:0.51822,left_val:0.39461},{features:[[3,13,8,2,-1.],[7,13,4,2,2.]],threshold:-0.040511,right_val:0.49358,left_val:0.021325},{features:[[6,9,8,3,-1.],[6,10,8,1,3.]],threshold:-5.8458e-004,right_val:0.5314,left_val:0.40128},{features:[[4,3,4,3,-1.],[4,4,4,1,3.]],threshold:5.5152e-003,right_val:0.58963,left_val:0.46424},{features:[[11,3,4,3,-1.],[11,4,4,1,3.]],threshold:-6.0626e-003,right_val:0.50165,left_val:0.65022},{features:[[1,4,17,12,-1.],[1,8,17,4,3.]],threshold:0.094536,right_val:0.41268,left_val:0.52647},{features:[[11,3,4,3,-1.],[11,4,4,1,3.]],threshold:4.7315e-003,right_val:0.58924,left_val:0.48792},{features:[[4,8,6,3,-1.],[4,9,6,1,3.]],threshold:-5.2571e-004,right_val:0.51894,left_val:0.39173},{features:[[12,3,5,3,-1.],[12,4,5,1,3.]],threshold:-2.5464e-003,right_val:0.49857,left_val:0.58376},{features:[[1,11,2,7,-1.],[2,11,1,7,2.]],threshold:-0.026076,right_val:0.49558,left_val:0.1262},{features:[[15,12,2,8,-1.],[16,12,1,4,2.],[15,16,1,4,2.]],threshold:-5.478e-003,right_val:0.50103,left_val:0.57225},{features:[[4,8,11,3,-1.],[4,9,11,1,3.]],threshold:5.1338e-003,right_val:0.42264,left_val:0.52733},{features:[[9,13,6,2,-1.],[12,13,3,1,2.],[9,14,3,1,2.]],threshold:4.7945e-004,right_val:0.58196,left_val:0.44501},{features:[[6,13,4,3,-1.],[6,14,4,1,3.]],threshold:-2.1114e-003,right_val:0.45117,left_val:0.57577},{features:[[9,12,3,3,-1.],[10,12,1,3,3.]],threshold:-0.01318,right_val:0.51607,left_val:0.18844},{features:[[5,3,3,3,-1.],[5,4,3,1,3.]],threshold:-4.7968e-003,right_val:0.47361,left_val:0.65898},{features:[[9,4,2,3,-1.],[9,5,2,1,3.]],threshold:6.7483e-003,right_val:0.33564,left_val:0.52594},{features:[[0,2,16,3,-1.],[0,3,16,1,3.]],threshold:1.4623e-003,right_val:0.42641,left_val:0.53553},{features:[[15,12,2,8,-1.],[16,12,1,4,2.],[15,16,1,4,2.]],threshold:4.7645e-003,right_val:0.57868,left_val:0.50344},{features:[[3,12,2,8,-1.],[3,12,1,4,2.],[4,16,1,4,2.]],threshold:6.8067e-003,right_val:0.66778,left_val:0.47566},{features:[[14,13,3,6,-1.],[14,15,3,2,3.]],threshold:3.6609e-003,right_val:0.43115,left_val:0.53696},{features:[[3,13,3,6,-1.],[3,15,3,2,3.]],threshold:0.02145,right_val:0.18888,left_val:0.49686},{features:[[6,5,10,2,-1.],[11,5,5,1,2.],[6,6,5,1,2.]],threshold:4.1679e-003,right_val:0.58154,left_val:0.49307},{features:[[2,14,14,6,-1.],[2,17,14,3,2.]],threshold:8.6468e-003,right_val:0.41326,left_val:0.52052},{features:[[10,14,1,3,-1.],[10,15,1,1,3.]],threshold:-3.6114e-004,right_val:0.48009,left_val:0.54836},{features:[[4,16,2,2,-1.],[4,16,1,1,2.],[5,17,1,1,2.]],threshold:1.0809e-003,right_val:0.60414,left_val:0.46899},{features:[[10,6,2,3,-1.],[10,7,2,1,3.]],threshold:5.772e-003,right_val:0.30533,left_val:0.51711},{features:[[0,17,20,2,-1.],[0,17,10,1,2.],[10,18,10,1,2.]],threshold:1.5721e-003,right_val:0.41788,left_val:0.522},{features:[[13,6,1,3,-1.],[13,7,1,1,3.]],threshold:-1.9308e-003,right_val:0.48129,left_val:0.58604},{features:[[8,13,3,2,-1.],[9,13,1,2,3.]],threshold:-7.8926e-003,right_val:0.49717,left_val:0.17493},{features:[[12,2,3,3,-1.],[13,2,1,3,3.]],threshold:-2.2225e-003,right_val:0.52128,left_val:0.43426},{features:[[3,18,2,2,-1.],[3,18,1,1,2.],[4,19,1,1,2.]],threshold:1.9012e-003,right_val:0.68921,left_val:0.47652},{features:[[9,16,3,4,-1.],[10,16,1,4,3.]],threshold:2.7576e-003,right_val:0.43375,left_val:0.52622},{features:[[6,6,1,3,-1.],[6,7,1,1,3.]],threshold:5.1787e-003,right_val:0.78437,left_val:0.48041},{features:[[13,1,5,2,-1.],[13,2,5,1,2.]],threshold:-9.0273e-004,right_val:0.53534,left_val:0.41208},{features:[[7,14,6,2,-1.],[7,14,3,1,2.],[10,15,3,1,2.]],threshold:5.1798e-003,right_val:0.6426,left_val:0.47404},{features:[[11,3,3,4,-1.],[12,3,1,4,3.]],threshold:-0.010114,right_val:0.5175,left_val:0.24688},{features:[[1,13,12,6,-1.],[5,13,4,6,3.]],threshold:-0.018617,right_val:0.4629,left_val:0.57563},{features:[[14,11,5,2,-1.],[14,12,5,1,2.]],threshold:5.9226e-003,right_val:0.32143,left_val:0.51696},{features:[[2,15,14,4,-1.],[2,15,7,2,2.],[9,17,7,2,2.]],threshold:-6.2945e-003,right_val:0.51416,left_val:0.3872},{features:[[3,7,14,2,-1.],[10,7,7,1,2.],[3,8,7,1,2.]],threshold:6.5353e-003,right_val:0.63105,left_val:0.4853},{features:[[1,11,4,2,-1.],[1,12,4,1,2.]],threshold:1.0878e-003,right_val:0.37233,left_val:0.51173},{features:[[14,0,6,14,-1.],[16,0,2,14,3.]],threshold:-0.022542,right_val:0.48871,left_val:0.56927},{features:[[4,11,1,3,-1.],[4,12,1,1,3.]],threshold:-3.0066e-003,right_val:0.5004,left_val:0.2556},{features:[[14,0,6,14,-1.],[16,0,2,14,3.]],threshold:7.4741e-003,right_val:0.56759,left_val:0.48109},{features:[[1,10,3,7,-1.],[2,10,1,7,3.]],threshold:0.026162,right_val:0.17772,left_val:0.49712},{features:[[8,12,9,2,-1.],[8,13,9,1,2.]],threshold:9.4353e-004,right_val:0.54913,left_val:0.494},{features:[[0,6,20,1,-1.],[10,6,10,1,2.]],threshold:0.033363,right_val:0.27907,left_val:0.50076},{features:[[8,4,4,4,-1.],[8,4,2,4,2.]],threshold:-0.015119,right_val:0.4973,left_val:0.70596},{features:[[0,0,2,2,-1.],[0,1,2,1,2.]],threshold:9.8649e-004,right_val:0.37768,left_val:0.51286}],threshold:104.75},{simpleClassifiers:[{features:[[5,3,10,9,-1.],[5,6,10,3,3.]],threshold:-0.095151,right_val:0.40173,left_val:0.64708},{features:[[15,2,4,10,-1.],[15,2,2,10,2.]],threshold:6.2702e-003,right_val:0.57464,left_val:0.39998},{features:[[8,2,2,7,-1.],[9,2,1,7,2.]],threshold:3.0018e-004,right_val:0.55388,left_val:0.35588},{features:[[7,4,12,1,-1.],[11,4,4,1,3.]],threshold:1.1757e-003,right_val:0.53826,left_val:0.42565},{features:[[3,4,9,1,-1.],[6,4,3,1,3.]],threshold:4.4235e-005,right_val:0.55899,left_val:0.36829},{features:[[15,10,1,4,-1.],[15,12,1,2,2.]],threshold:-2.9937e-005,right_val:0.40204,left_val:0.54525},{features:[[4,10,6,4,-1.],[7,10,3,4,2.]],threshold:3.0073e-003,right_val:0.33178,left_val:0.52391},{features:[[15,9,1,6,-1.],[15,12,1,3,2.]],threshold:-0.010514,right_val:0.5308,left_val:0.43207},{features:[[7,17,6,3,-1.],[7,18,6,1,3.]],threshold:8.3477e-003,right_val:0.64533,left_val:0.45046},{features:[[14,3,2,16,-1.],[15,3,1,8,2.],[14,11,1,8,2.]],threshold:-3.1492e-003,right_val:0.53705,left_val:0.43134},{features:[[4,9,1,6,-1.],[4,12,1,3,2.]],threshold:-1.4436e-005,right_val:0.3818,left_val:0.53266},{features:[[12,1,5,2,-1.],[12,2,5,1,2.]],threshold:-4.2855e-004,right_val:0.5382,left_val:0.43052},{features:[[6,18,4,2,-1.],[6,18,2,1,2.],[8,19,2,1,2.]],threshold:1.5062e-004,right_val:0.5545,left_val:0.4236},{features:[[2,4,16,10,-1.],[10,4,8,5,2.],[2,9,8,5,2.]],threshold:0.07156,right_val:0.26788,left_val:0.53031},{features:[[6,5,1,10,-1.],[6,10,1,5,2.]],threshold:8.4095e-004,right_val:0.52054,left_val:0.35571},{features:[[4,8,15,2,-1.],[9,8,5,2,3.]],threshold:0.062987,right_val:0.28614,left_val:0.52254},{features:[[1,8,15,2,-1.],[6,8,5,2,3.]],threshold:-3.3799e-003,right_val:0.52017,left_val:0.36242},{features:[[9,5,3,6,-1.],[9,7,3,2,3.]],threshold:-1.1811e-004,right_val:0.39599,left_val:0.54745},{features:[[5,7,8,2,-1.],[9,7,4,2,2.]],threshold:-5.4506e-004,right_val:0.52157,left_val:0.37404},{features:[[9,11,2,3,-1.],[9,12,2,1,3.]],threshold:-1.8455e-003,right_val:0.45844,left_val:0.58931},{features:[[1,0,16,3,-1.],[1,1,16,1,3.]],threshold:-4.3832e-004,right_val:0.53854,left_val:0.40846},{features:[[11,2,7,2,-1.],[11,3,7,1,2.]],threshold:-2.4001e-003,right_val:0.52936,left_val:0.37775},{features:[[5,1,10,18,-1.],[5,7,10,6,3.]],threshold:-0.098796,right_val:0.50701,left_val:0.29636},{features:[[17,4,3,2,-1.],[18,4,1,2,3.]],threshold:3.1798e-003,right_val:0.67264,left_val:0.48776},{features:[[8,13,1,3,-1.],[8,14,1,1,3.]],threshold:3.2406e-004,right_val:0.55611,left_val:0.43669},{features:[[3,14,14,6,-1.],[3,16,14,2,3.]],threshold:-0.032547,right_val:0.53086,left_val:0.31282},{features:[[0,2,3,4,-1.],[1,2,1,4,3.]],threshold:-7.7561e-003,right_val:0.46399,left_val:0.65602},{features:[[12,1,5,2,-1.],[12,2,5,1,2.]],threshold:0.016027,right_val:0.31419,left_val:0.51727},{features:[[3,1,5,2,-1.],[3,2,5,1,2.]],threshold:7.1002e-006,right_val:0.53363,left_val:0.40844},{features:[[10,13,2,3,-1.],[10,14,2,1,3.]],threshold:7.3423e-003,right_val:0.66035,left_val:0.49669},{features:[[8,13,2,3,-1.],[8,14,2,1,3.]],threshold:-1.697e-003,right_val:0.45002,left_val:0.59082},{features:[[14,12,2,3,-1.],[14,13,2,1,3.]],threshold:2.4118e-003,right_val:0.35997,left_val:0.53152},{features:[[7,2,2,3,-1.],[7,3,2,1,3.]],threshold:-5.5301e-003,right_val:0.49968,left_val:0.2334},{features:[[5,6,10,4,-1.],[10,6,5,2,2.],[5,8,5,2,2.]],threshold:-2.6479e-003,right_val:0.46847,left_val:0.58809},{features:[[9,13,1,6,-1.],[9,16,1,3,2.]],threshold:0.011296,right_val:0.18846,left_val:0.49838},{features:[[10,12,2,2,-1.],[11,12,1,1,2.],[10,13,1,1,2.]],threshold:-6.6953e-004,right_val:0.4799,left_val:0.58721},{features:[[4,12,2,3,-1.],[4,13,2,1,3.]],threshold:1.4411e-003,right_val:0.3501,left_val:0.51312},{features:[[14,4,6,6,-1.],[14,6,6,2,3.]],threshold:2.4638e-003,right_val:0.41176,left_val:0.53394},{features:[[8,17,2,3,-1.],[8,18,2,1,3.]],threshold:3.3115e-004,right_val:0.53982,left_val:0.43134},{features:[[16,4,4,6,-1.],[16,6,4,2,3.]],threshold:-0.033557,right_val:0.51792,left_val:0.26753},{features:[[0,4,4,6,-1.],[0,6,4,2,3.]],threshold:0.018539,right_val:0.23172,left_val:0.49739},{features:[[14,6,2,3,-1.],[14,6,1,3,2.]],threshold:-2.9698e-004,right_val:0.46437,left_val:0.55297},{features:[[4,9,8,1,-1.],[8,9,4,1,2.]],threshold:-4.5577e-004,right_val:0.44692,left_val:0.56296},{features:[[8,12,4,3,-1.],[8,13,4,1,3.]],threshold:-0.010159,right_val:0.49259,left_val:0.67062},{features:[[5,12,10,6,-1.],[5,14,10,2,3.]],threshold:-2.2414e-005,right_val:0.39129,left_val:0.52394},{features:[[11,12,1,2,-1.],[11,13,1,1,2.]],threshold:7.2035e-005,right_val:0.55018,left_val:0.47994},{features:[[8,15,4,2,-1.],[8,16,4,1,2.]],threshold:-6.9267e-003,right_val:0.46981,left_val:0.693},{features:[[6,9,8,8,-1.],[10,9,4,4,2.],[6,13,4,4,2.]],threshold:-7.6998e-003,right_val:0.54809,left_val:0.40996},{features:[[7,12,4,6,-1.],[7,12,2,3,2.],[9,15,2,3,2.]],threshold:-7.3131e-003,right_val:0.50579,left_val:0.32835},{features:[[10,11,3,1,-1.],[11,11,1,1,3.]],threshold:1.9651e-003,right_val:0.63982,left_val:0.4978},{features:[[9,7,2,10,-1.],[9,7,1,5,2.],[10,12,1,5,2.]],threshold:7.1648e-003,right_val:0.62221,left_val:0.46612},{features:[[8,0,6,6,-1.],[10,0,2,6,3.]],threshold:-0.024079,right_val:0.52222,left_val:0.23346},{features:[[3,11,2,6,-1.],[3,13,2,2,3.]],threshold:-0.021028,right_val:0.49382,left_val:0.11837},{features:[[16,12,1,2,-1.],[16,13,1,1,2.]],threshold:3.6017e-004,right_val:0.41167,left_val:0.5325},{features:[[1,14,6,6,-1.],[1,14,3,3,2.],[4,17,3,3,2.]],threshold:-0.01722,right_val:0.46643,left_val:0.62788},{features:[[13,1,3,6,-1.],[14,1,1,6,3.]],threshold:-7.8672e-003,right_val:0.52497,left_val:0.34034},{features:[[8,8,2,2,-1.],[8,9,2,1,2.]],threshold:-4.4777e-004,right_val:0.50863,left_val:0.36104},{features:[[9,9,3,3,-1.],[10,9,1,3,3.]],threshold:5.5486e-003,right_val:0.62035,left_val:0.48843},{features:[[8,7,3,3,-1.],[8,8,3,1,3.]],threshold:-6.9461e-003,right_val:0.50111,left_val:0.26259},{features:[[14,0,2,3,-1.],[14,0,1,3,2.]],threshold:1.357e-004,right_val:0.56283,left_val:0.43408},{features:[[1,0,18,9,-1.],[7,0,6,9,3.]],threshold:-0.04588,right_val:0.46963,left_val:0.6508},{features:[[11,5,4,15,-1.],[11,5,2,15,2.]],threshold:-0.021583,right_val:0.52876,left_val:0.38265},{features:[[5,5,4,15,-1.],[7,5,2,15,2.]],threshold:-0.02021,right_val:0.50745,left_val:0.32334},{features:[[14,0,2,3,-1.],[14,0,1,3,2.]],threshold:5.8497e-003,right_val:0.44897,left_val:0.51776},{features:[[4,0,2,3,-1.],[5,0,1,3,2.]],threshold:-5.7476e-005,right_val:0.52464,left_val:0.40209},{features:[[11,12,2,2,-1.],[12,12,1,1,2.],[11,13,1,1,2.]],threshold:-1.1513e-003,right_val:0.49052,left_val:0.63151},{features:[[7,12,2,2,-1.],[7,12,1,1,2.],[8,13,1,1,2.]],threshold:1.9863e-003,right_val:0.64972,left_val:0.47025},{features:[[12,0,3,4,-1.],[13,0,1,4,3.]],threshold:-5.272e-003,right_val:0.52277,left_val:0.36504},{features:[[4,11,3,3,-1.],[4,12,3,1,3.]],threshold:1.2663e-003,right_val:0.38776,left_val:0.51661},{features:[[12,7,4,2,-1.],[12,8,4,1,2.]],threshold:-6.2919e-003,right_val:0.50238,left_val:0.73759},{features:[[8,10,3,2,-1.],[9,10,1,2,3.]],threshold:6.736e-004,right_val:0.54956,left_val:0.44232},{features:[[9,9,3,2,-1.],[10,9,1,2,3.]],threshold:-1.0523e-003,right_val:0.48596,left_val:0.59764},{features:[[8,9,3,2,-1.],[9,9,1,2,3.]],threshold:-4.4216e-004,right_val:0.43989,left_val:0.59559},{features:[[12,0,3,4,-1.],[13,0,1,4,3.]],threshold:1.1748e-003,right_val:0.46051,left_val:0.53499},{features:[[5,0,3,4,-1.],[6,0,1,4,3.]],threshold:5.2457e-003,right_val:0.29416,left_val:0.50492},{features:[[4,14,12,4,-1.],[10,14,6,2,2.],[4,16,6,2,2.]],threshold:-0.02454,right_val:0.52186,left_val:0.25502},{features:[[8,13,2,3,-1.],[8,14,2,1,3.]],threshold:7.3793e-004,right_val:0.54908,left_val:0.44249},{features:[[10,10,3,8,-1.],[10,14,3,4,2.]],threshold:1.4234e-003,right_val:0.40814,left_val:0.53195},{features:[[8,10,4,8,-1.],[8,10,2,4,2.],[10,14,2,4,2.]],threshold:-2.4149e-003,right_val:0.5239,left_val:0.40877},{features:[[10,8,3,1,-1.],[11,8,1,1,3.]],threshold:-1.2165e-003,right_val:0.49081,left_val:0.56746},{features:[[9,12,1,6,-1.],[9,15,1,3,2.]],threshold:-1.2439e-003,right_val:0.52561,left_val:0.41294},{features:[[10,8,3,1,-1.],[11,8,1,1,3.]],threshold:6.1943e-003,right_val:0.73137,left_val:0.50602},{features:[[7,8,3,1,-1.],[8,8,1,1,3.]],threshold:-1.6607e-003,right_val:0.45964,left_val:0.59796},{features:[[5,2,15,14,-1.],[5,9,15,7,2.]],threshold:-0.027316,right_val:0.53088,left_val:0.41744},{features:[[2,1,2,10,-1.],[2,1,1,5,2.],[3,6,1,5,2.]],threshold:-1.5846e-003,right_val:0.45195,left_val:0.56158},{features:[[14,14,2,3,-1.],[14,15,2,1,3.]],threshold:-1.5515e-003,right_val:0.53608,left_val:0.40762},{features:[[2,7,3,3,-1.],[3,7,1,3,3.]],threshold:3.8447e-004,right_val:0.54304,left_val:0.43473},{features:[[17,4,3,3,-1.],[17,5,3,1,3.]],threshold:-0.014672,right_val:0.51461,left_val:0.16593},{features:[[0,4,3,3,-1.],[0,5,3,1,3.]],threshold:8.1609e-003,right_val:0.18847,left_val:0.49618},{features:[[13,5,6,2,-1.],[16,5,3,1,2.],[13,6,3,1,2.]],threshold:1.1122e-003,right_val:0.60938,left_val:0.48683},{features:[[4,19,12,1,-1.],[8,19,4,1,3.]],threshold:-7.2604e-003,right_val:0.46904,left_val:0.62843},{features:[[12,12,2,4,-1.],[12,14,2,2,2.]],threshold:-2.4046e-004,right_val:0.4046,left_val:0.5575},{features:[[3,15,1,3,-1.],[3,16,1,1,3.]],threshold:-2.3348e-004,right_val:0.52528,left_val:0.41158},{features:[[11,16,6,4,-1.],[11,16,3,4,2.]],threshold:5.5736e-003,right_val:0.56901,left_val:0.47301},{features:[[2,10,3,10,-1.],[3,10,1,10,3.]],threshold:0.030624,right_val:0.17401,left_val:0.49719},{features:[[12,8,2,4,-1.],[12,8,1,4,2.]],threshold:9.2075e-004,right_val:0.43549,left_val:0.53721},{features:[[6,8,2,4,-1.],[7,8,1,4,2.]],threshold:-4.3551e-005,right_val:0.43473,left_val:0.53669},{features:[[10,14,2,3,-1.],[10,14,1,3,2.]],threshold:-6.6453e-003,right_val:0.51605,left_val:0.34355},{features:[[5,1,10,3,-1.],[10,1,5,3,2.]],threshold:0.043222,right_val:0.72937,left_val:0.47668},{features:[[10,7,3,2,-1.],[11,7,1,2,3.]],threshold:2.2332e-003,right_val:0.56332,left_val:0.50293},{features:[[5,6,9,2,-1.],[8,6,3,2,3.]],threshold:3.183e-003,right_val:0.51921,left_val:0.40161},{features:[[9,8,2,2,-1.],[9,9,2,1,2.]],threshold:-1.8028e-004,right_val:0.54179,left_val:0.40883},{features:[[2,11,16,6,-1.],[2,11,8,3,2.],[10,14,8,3,2.]],threshold:-5.2935e-003,right_val:0.52436,left_val:0.40757},{features:[[12,7,2,2,-1.],[13,7,1,1,2.],[12,8,1,1,2.]],threshold:1.2751e-003,right_val:0.6387,left_val:0.49133},{features:[[9,5,2,3,-1.],[9,6,2,1,3.]],threshold:4.3385e-003,right_val:0.29473,left_val:0.50317},{features:[[9,7,3,2,-1.],[10,7,1,2,3.]],threshold:8.5251e-003,right_val:0.63089,left_val:0.49498},{features:[[5,1,8,12,-1.],[5,7,8,6,2.]],threshold:-9.4266e-004,right_val:0.42856,left_val:0.53284},{features:[[13,5,2,2,-1.],[13,6,2,1,2.]],threshold:1.361e-003,right_val:0.59415,left_val:0.49915},{features:[[5,5,2,2,-1.],[5,6,2,1,2.]],threshold:4.4783e-004,right_val:0.58545,left_val:0.45735},{features:[[12,4,3,3,-1.],[12,5,3,1,3.]],threshold:1.336e-003,right_val:0.58491,left_val:0.46044},{features:[[4,14,2,3,-1.],[4,15,2,1,3.]],threshold:-6.0968e-004,right_val:0.52294,left_val:0.39694},{features:[[12,4,3,3,-1.],[12,5,3,1,3.]],threshold:-2.3657e-003,right_val:0.48984,left_val:0.58083},{features:[[5,4,3,3,-1.],[5,5,3,1,3.]],threshold:1.0734e-003,right_val:0.547,left_val:0.43512},{features:[[9,14,2,6,-1.],[10,14,1,3,2.],[9,17,1,3,2.]],threshold:2.1923e-003,right_val:0.38429,left_val:0.53551},{features:[[8,14,3,2,-1.],[9,14,1,2,3.]],threshold:5.4969e-003,right_val:0.28272,left_val:0.50181},{features:[[9,5,6,6,-1.],[11,5,2,6,3.]],threshold:-0.075369,right_val:0.51488,left_val:0.12251},{features:[[5,5,6,6,-1.],[7,5,2,6,3.]],threshold:0.025134,right_val:0.70254,left_val:0.47318},{features:[[13,13,1,2,-1.],[13,14,1,1,2.]],threshold:-2.9359e-005,right_val:0.46561,left_val:0.54305},{features:[[0,2,10,2,-1.],[0,3,10,1,2.]],threshold:-5.8356e-004,right_val:0.51901,left_val:0.4031},{features:[[13,13,1,2,-1.],[13,14,1,1,2.]],threshold:-2.6639e-003,right_val:0.51618,left_val:0.43081},{features:[[5,7,2,2,-1.],[5,7,1,1,2.],[6,8,1,1,2.]],threshold:-1.3804e-003,right_val:0.46955,left_val:0.62198},{features:[[13,5,2,7,-1.],[13,5,1,7,2.]],threshold:1.2313e-003,right_val:0.44258,left_val:0.53794},{features:[[6,13,1,2,-1.],[6,14,1,1,2.]],threshold:-1.4644e-005,right_val:0.42225,left_val:0.52816},{features:[[11,0,3,7,-1.],[12,0,1,7,3.]],threshold:-0.012819,right_val:0.51799,left_val:0.25821},{features:[[0,3,2,16,-1.],[0,3,1,8,2.],[1,11,1,8,2.]],threshold:0.022852,right_val:0.76093,left_val:0.47787},{features:[[11,0,3,7,-1.],[12,0,1,7,3.]],threshold:8.2306e-004,right_val:0.46717,left_val:0.5341},{features:[[6,0,3,7,-1.],[7,0,1,7,3.]],threshold:0.01277,right_val:0.14724,left_val:0.49658},{features:[[11,16,8,4,-1.],[11,16,4,4,2.]],threshold:-0.050052,right_val:0.50166,left_val:0.6415},{features:[[1,16,8,4,-1.],[5,16,4,4,2.]],threshold:0.015775,right_val:0.56854,left_val:0.45223},{features:[[13,5,2,7,-1.],[13,5,1,7,2.]],threshold:-0.018502,right_val:0.5138,left_val:0.27647},{features:[[5,5,2,7,-1.],[6,5,1,7,2.]],threshold:2.4626e-003,right_val:0.37954,left_val:0.51419},{features:[[18,6,2,14,-1.],[18,13,2,7,2.]],threshold:0.062916,right_val:0.65804,left_val:0.50606},{features:[[6,10,3,4,-1.],[6,12,3,2,2.]],threshold:-2.1649e-005,right_val:0.40199,left_val:0.51954},{features:[[14,7,1,2,-1.],[14,8,1,1,2.]],threshold:2.1181e-003,right_val:0.59545,left_val:0.49624},{features:[[0,1,18,6,-1.],[0,1,9,3,2.],[9,4,9,3,2.]],threshold:-0.016635,right_val:0.51754,left_val:0.37579},{features:[[14,7,1,2,-1.],[14,8,1,1,2.]],threshold:-2.8899e-003,right_val:0.50572,left_val:0.6624},{features:[[0,6,2,14,-1.],[0,13,2,7,2.]],threshold:0.076783,right_val:0.80477,left_val:0.47958},{features:[[17,0,3,12,-1.],[18,0,1,12,3.]],threshold:3.9171e-003,right_val:0.57199,left_val:0.49379},{features:[[0,6,18,3,-1.],[0,7,18,1,3.]],threshold:-0.072671,right_val:0.49439,left_val:0.053895},{features:[[6,0,14,16,-1.],[6,8,14,8,2.]],threshold:0.5404,right_val:0.11433,left_val:0.51298},{features:[[0,0,3,12,-1.],[1,0,1,12,3.]],threshold:2.951e-003,right_val:0.56986,left_val:0.45283},{features:[[13,0,3,7,-1.],[14,0,1,7,3.]],threshold:3.4508e-003,right_val:0.42187,left_val:0.53577},{features:[[5,7,1,2,-1.],[5,8,1,1,2.]],threshold:-4.2078e-004,right_val:0.46379,left_val:0.59162},{features:[[14,4,6,6,-1.],[14,6,6,2,3.]],threshold:3.3051e-003,right_val:0.4382,left_val:0.52734},{features:[[5,7,7,2,-1.],[5,8,7,1,2.]],threshold:4.7735e-004,right_val:0.51819,left_val:0.40465},{features:[[8,6,6,9,-1.],[8,9,6,3,3.]],threshold:-0.025929,right_val:0.50894,left_val:0.74522},{features:[[5,4,6,1,-1.],[7,4,2,1,3.]],threshold:-2.973e-003,right_val:0.50588,left_val:0.32954},{features:[[13,0,6,4,-1.],[16,0,3,2,2.],[13,2,3,2,2.]],threshold:5.8508e-003,right_val:0.5793,left_val:0.48571},{features:[[1,2,18,12,-1.],[1,6,18,4,3.]],threshold:-0.045968,right_val:0.53807,left_val:0.43127},{features:[[3,2,17,12,-1.],[3,6,17,4,3.]],threshold:0.15586,right_val:0.16847,left_val:0.51962},{features:[[5,14,7,3,-1.],[5,15,7,1,3.]],threshold:0.015165,right_val:0.6735,left_val:0.47358},{features:[[10,14,1,3,-1.],[10,15,1,1,3.]],threshold:-1.0604e-003,right_val:0.47757,left_val:0.58229},{features:[[3,14,3,3,-1.],[3,15,3,1,3.]],threshold:6.6476e-003,right_val:0.23195,left_val:0.49992},{features:[[14,4,6,6,-1.],[14,6,6,2,3.]],threshold:-0.012231,right_val:0.5263,left_val:0.47509},{features:[[0,4,6,6,-1.],[0,6,6,2,3.]],threshold:5.6529e-003,right_val:0.35618,left_val:0.50698},{features:[[12,5,4,3,-1.],[12,6,4,1,3.]],threshold:1.2978e-003,right_val:0.56191,left_val:0.48757},{features:[[4,5,4,3,-1.],[4,6,4,1,3.]],threshold:0.010782,right_val:0.67823,left_val:0.47508},{features:[[18,0,2,6,-1.],[18,2,2,2,3.]],threshold:2.8655e-003,right_val:0.42907,left_val:0.53055},{features:[[8,1,4,9,-1.],[10,1,2,9,2.]],threshold:2.8663e-003,right_val:0.55394,left_val:0.45185},{features:[[6,6,8,2,-1.],[6,6,4,2,2.]],threshold:-5.1983e-003,right_val:0.54342,left_val:0.41491},{features:[[6,5,4,2,-1.],[6,5,2,1,2.],[8,6,2,1,2.]],threshold:5.374e-003,right_val:0.65077,left_val:0.47179},{features:[[10,5,2,3,-1.],[10,6,2,1,3.]],threshold:-0.014642,right_val:0.51618,left_val:0.21722},{features:[[9,5,1,3,-1.],[9,6,1,1,3.]],threshold:-1.5043e-005,right_val:0.42988,left_val:0.53374},{features:[[9,10,2,2,-1.],[9,11,2,1,2.]],threshold:-1.1876e-004,right_val:0.55824,left_val:0.46046},{features:[[0,8,4,3,-1.],[0,9,4,1,3.]],threshold:0.016996,right_val:0.07388,left_val:0.49459},{features:[[6,0,8,6,-1.],[6,3,8,3,2.]],threshold:-0.035096,right_val:0.49776,left_val:0.70055},{features:[[1,0,6,4,-1.],[1,0,3,2,2.],[4,2,3,2,2.]],threshold:2.4217e-003,right_val:0.54777,left_val:0.44663},{features:[[13,0,3,7,-1.],[14,0,1,7,3.]],threshold:-9.634e-004,right_val:0.53133,left_val:0.47141},{features:[[9,16,2,2,-1.],[9,17,2,1,2.]],threshold:1.6391e-004,right_val:0.53422,left_val:0.43315},{features:[[11,4,6,10,-1.],[11,9,6,5,2.]],threshold:-0.021141,right_val:0.52045,left_val:0.26447},{features:[[0,10,19,2,-1.],[0,11,19,1,2.]],threshold:8.7775e-004,right_val:0.41527,left_val:0.52083},{features:[[9,5,8,9,-1.],[9,8,8,3,3.]],threshold:-0.027944,right_val:0.50188,left_val:0.63441},{features:[[4,0,3,7,-1.],[5,0,1,7,3.]],threshold:6.7297e-003,right_val:0.35009,left_val:0.50504},{features:[[8,6,4,12,-1.],[10,6,2,6,2.],[8,12,2,6,2.]],threshold:0.023281,right_val:0.69687,left_val:0.49663},{features:[[0,2,6,4,-1.],[0,4,6,2,2.]],threshold:-0.011645,right_val:0.50496,left_val:0.33003},{features:[[8,15,4,3,-1.],[8,16,4,1,3.]],threshold:0.015764,right_val:0.73212,left_val:0.49916},{features:[[8,0,3,7,-1.],[9,0,1,7,3.]],threshold:-1.3611e-003,right_val:0.51607,left_val:0.39117},{features:[[9,5,3,4,-1.],[10,5,1,4,3.]],threshold:-8.1522e-004,right_val:0.49497,left_val:0.56289},{features:[[8,5,3,4,-1.],[9,5,1,4,3.]],threshold:-6.0066e-004,right_val:0.45506,left_val:0.58536},{features:[[7,6,6,1,-1.],[9,6,2,1,3.]],threshold:4.9716e-004,right_val:0.54436,left_val:0.42715},{features:[[7,14,4,4,-1.],[7,14,2,2,2.],[9,16,2,2,2.]],threshold:2.3475e-003,right_val:0.38877,left_val:0.51431},{features:[[13,14,4,6,-1.],[15,14,2,3,2.],[13,17,2,3,2.]],threshold:-8.9262e-003,right_val:0.49717,left_val:0.60445},{features:[[7,8,1,8,-1.],[7,12,1,4,2.]],threshold:-0.01392,right_val:0.50004,left_val:0.25832},{features:[[16,0,2,8,-1.],[17,0,1,4,2.],[16,4,1,4,2.]],threshold:1.021e-003,right_val:0.55604,left_val:0.48574},{features:[[2,0,2,8,-1.],[2,0,1,4,2.],[3,4,1,4,2.]],threshold:-2.7442e-003,right_val:0.46458,left_val:0.59369},{features:[[6,1,14,3,-1.],[6,2,14,1,3.]],threshold:-0.0162,right_val:0.51935,left_val:0.3163},{features:[[7,9,3,10,-1.],[7,14,3,5,2.]],threshold:4.3332e-003,right_val:0.34589,left_val:0.50612},{features:[[9,14,2,2,-1.],[9,15,2,1,2.]],threshold:5.8498e-004,right_val:0.58702,left_val:0.4779},{features:[[7,7,6,8,-1.],[7,11,6,4,2.]],threshold:-2.2466e-003,right_val:0.53748,left_val:0.42979},{features:[[9,7,3,6,-1.],[9,10,3,3,2.]],threshold:2.3146e-003,right_val:0.4641,left_val:0.54387},{features:[[7,13,3,3,-1.],[7,14,3,1,3.]],threshold:8.7679e-003,right_val:0.67718,left_val:0.47269},{features:[[9,9,2,2,-1.],[9,10,2,1,2.]],threshold:-2.2448e-004,right_val:0.5428,left_val:0.42292},{features:[[0,1,18,2,-1.],[6,1,6,2,3.]],threshold:-7.4336e-003,right_val:0.46837,left_val:0.60989},{features:[[7,1,6,14,-1.],[7,8,6,7,2.]],threshold:-2.3189e-003,right_val:0.44242,left_val:0.56894},{features:[[1,9,18,1,-1.],[7,9,6,1,3.]],threshold:-2.1042e-003,right_val:0.51871,left_val:0.37622},{features:[[9,7,2,2,-1.],[9,7,1,2,2.]],threshold:4.6035e-004,right_val:0.57712,left_val:0.46994},{features:[[9,3,2,9,-1.],[10,3,1,9,2.]],threshold:1.0548e-003,right_val:0.56017,left_val:0.44652},{features:[[18,14,2,3,-1.],[18,15,2,1,3.]],threshold:8.7149e-004,right_val:0.39147,left_val:0.54498},{features:[[7,11,3,1,-1.],[8,11,1,1,3.]],threshold:3.3365e-004,right_val:0.56457,left_val:0.4564},{features:[[10,8,3,4,-1.],[11,8,1,4,3.]],threshold:-1.4853e-003,right_val:0.46928,left_val:0.57474},{features:[[7,14,3,6,-1.],[8,14,1,6,3.]],threshold:3.0252e-003,right_val:0.37628,left_val:0.51662},{features:[[10,8,3,4,-1.],[11,8,1,4,3.]],threshold:5.0281e-003,right_val:0.61515,left_val:0.50021},{features:[[7,8,3,4,-1.],[8,8,1,4,3.]],threshold:-5.8165e-004,right_val:0.43908,left_val:0.53946},{features:[[7,9,6,9,-1.],[7,12,6,3,3.]],threshold:0.045142,right_val:0.2063,left_val:0.51883},{features:[[0,14,2,3,-1.],[0,15,2,1,3.]],threshold:-1.0796e-003,right_val:0.51379,left_val:0.39047},{features:[[11,12,1,2,-1.],[11,13,1,1,2.]],threshold:1.5996e-004,right_val:0.54275,left_val:0.48953},{features:[[4,3,8,3,-1.],[8,3,4,3,2.]],threshold:-0.019359,right_val:0.47735,left_val:0.69752},{features:[[0,4,20,6,-1.],[0,4,10,6,2.]],threshold:0.20726,right_val:0.3035,left_val:0.52336},{features:[[9,14,1,3,-1.],[9,15,1,1,3.]],threshold:-4.1953e-004,right_val:0.44602,left_val:0.54194},{features:[[8,14,4,3,-1.],[8,15,4,1,3.]],threshold:2.2582e-003,right_val:0.60274,left_val:0.48158},{features:[[0,15,14,4,-1.],[0,17,14,2,2.]],threshold:-6.7811e-003,right_val:0.51833,left_val:0.39803},{features:[[1,14,18,6,-1.],[1,17,18,3,2.]],threshold:0.011154,right_val:0.41888,left_val:0.54312},{features:[[0,0,10,6,-1.],[0,0,5,3,2.],[5,3,5,3,2.]],threshold:0.043162,right_val:0.6523,left_val:0.47382}],threshold:105.76}],size:[20,20],tilted:false};
|
||
|
||
var faceDetection = function(pdmModel, params) {
|
||
|
||
// processes an image, detects a face and returns the initial face parameters for clmtrackr
|
||
// calls a callback function when it's done
|
||
// optionally uses web workers
|
||
|
||
if (params === undefined) params = {};
|
||
if (params.workSize === undefined) params.workSize = 200;
|
||
if (params.minScale === undefined) params.minScale = 2;
|
||
if (params.scaleFactor === undefined) params.scaleFactor = 1.15;
|
||
if (params.useCanny === undefined) params.useCanny = false;
|
||
if (params.edgesDensity === undefined) params.edgesDensity = 0.13;
|
||
if (params.equalizeHistogram === undefined) params.equalizeHistogram = false;
|
||
if (params.min_neighbors === undefined) params.min_neighbors = 2;
|
||
if (params.confidenceThreshold === undefined) params.confidenceThreshold = 106.1;
|
||
if (params.useWebWorkers === undefined) params.useWebWorkers = true;
|
||
|
||
// disable web workers if not exists
|
||
if (!window.Worker) params.useWebWorkers = false;
|
||
|
||
var msxmin, msymin, msymax;
|
||
var msmodelheight;
|
||
var element;
|
||
|
||
var model = pdmModel;
|
||
|
||
var mosseFilter = mosse.mosseFilter;
|
||
var left_eye_filter = mosse.filters.left_eye_filter;
|
||
var right_eye_filter = mosse.filters.right_eye_filter;
|
||
var nose_filter = mosse.filters.nose_filter;
|
||
|
||
var mossef_lefteye, mossef_righteye, mossef_nose;
|
||
var right_eye_position = [0.0,0.0];
|
||
var left_eye_position = [0.0,0.0];
|
||
var nose_position = [0.0,0.0];
|
||
|
||
if (model.hints && mosseFilter && left_eye_filter && right_eye_filter && nose_filter) {
|
||
mossef_lefteye = new mosseFilter();
|
||
mossef_lefteye.load(left_eye_filter);
|
||
mossef_righteye = new mosseFilter();
|
||
mossef_righteye.load(right_eye_filter);
|
||
mossef_nose = new mosseFilter();
|
||
mossef_nose.load(nose_filter);
|
||
} else {
|
||
console.log('MOSSE filters not found, using rough approximation for initialization.');
|
||
}
|
||
|
||
// load mean shape
|
||
var meanShape = model.shapeModel.meanShape;
|
||
var numPatches = model.patchModel.numPatches;
|
||
|
||
// get max and mins, width and height of meanshape
|
||
msymax = 0;
|
||
msxmin = msymin = 1000000;
|
||
for (var i = 0;i < numPatches;i++) {
|
||
if (meanShape[i][0] < msxmin) msxmin = meanShape[i][0];
|
||
if (meanShape[i][1] < msymin) msymin = meanShape[i][1];
|
||
if (meanShape[i][1] > msymax) msymax = meanShape[i][1];
|
||
}
|
||
msmodelheight = msymax-msymin;
|
||
|
||
var jf = new jsfeat_face(params);
|
||
|
||
this.init = function(video) {
|
||
element = video;
|
||
|
||
jf.init(element);
|
||
};
|
||
|
||
var getBoundingBox = function(box) {
|
||
return new Promise(function(resolve, reject) {
|
||
if (box) {
|
||
resolve({x : box[0], y : box[1], width : box[2], height : box[3]});
|
||
} else {
|
||
resolve(jf.findFace());
|
||
}
|
||
});
|
||
};
|
||
|
||
var getFinegrainedPosition = function(candidate) {
|
||
var translateX, translateY, scaling, rotation;
|
||
var x = candidate.x;
|
||
var y = candidate.y;
|
||
var w = candidate.width;
|
||
var h = candidate.height;
|
||
|
||
// var debugCC = document.getElementById('overlay2').getContext('2d')
|
||
if (model.hints && mosseFilter && left_eye_filter && right_eye_filter && nose_filter) {
|
||
var noseFilterWidth = w * 4.5/10;
|
||
var eyeFilterWidth = w * 6/10;
|
||
|
||
// detect position of eyes and nose via mosse filter
|
||
var nose_result = mossef_nose.track(element, Math.round(x+(w/2)-(noseFilterWidth/2)), Math.round(y+h*(5/8)-(noseFilterWidth/2)), noseFilterWidth, noseFilterWidth, false);
|
||
var right_result = mossef_righteye.track(element, Math.round(x+(w*3/4)-(eyeFilterWidth/2)), Math.round(y+h*(2/5)-(eyeFilterWidth/2)), eyeFilterWidth, eyeFilterWidth, false);
|
||
var left_result = mossef_lefteye.track(element, Math.round(x+(w/4)-(eyeFilterWidth/2)), Math.round(y+h*(2/5)-(eyeFilterWidth/2)), eyeFilterWidth, eyeFilterWidth, false);
|
||
right_eye_position[0] = Math.round(x+(w*3/4)-(eyeFilterWidth/2))+right_result[0];
|
||
right_eye_position[1] = Math.round(y+h*(2/5)-(eyeFilterWidth/2))+right_result[1];
|
||
left_eye_position[0] = Math.round(x+(w/4)-(eyeFilterWidth/2))+left_result[0];
|
||
left_eye_position[1] = Math.round(y+h*(2/5)-(eyeFilterWidth/2))+left_result[1];
|
||
nose_position[0] = Math.round(x+(w/2)-(noseFilterWidth/2))+nose_result[0];
|
||
nose_position[1] = Math.round(y+h*(5/8)-(noseFilterWidth/2))+nose_result[1];
|
||
|
||
// drawDetection(debugCC, candidate, [left_eye_position, right_eye_positions, nose_position]);
|
||
|
||
// get eye and nose positions of model
|
||
var lep = model.hints.leftEye;
|
||
var rep = model.hints.rightEye;
|
||
var mep = model.hints.nose;
|
||
|
||
// get scaling, rotation, etc. via procrustes analysis
|
||
var procrustes_params = procrustes([left_eye_position, right_eye_position, nose_position], [lep, rep, mep]);
|
||
translateX = procrustes_params[0];
|
||
translateY = procrustes_params[1];
|
||
scaling = procrustes_params[2];
|
||
rotation = procrustes_params[3];
|
||
|
||
// drawFacialPoints(debugCC, [lep, rep, mep], procrustes_params);
|
||
} else {
|
||
// drawBoundingBox(debugCC, [x,y,w,h]);
|
||
scaling = w/msmodelheight;
|
||
rotation = 0;
|
||
translateX = x-(msxmin*scaling)+0.1*w;
|
||
translateY = y-(msymin*scaling)+0.25*h;
|
||
}
|
||
|
||
return [scaling, rotation, translateX, translateY];
|
||
};
|
||
|
||
// get initial starting point for model
|
||
this.getInitialPosition = function(box) {
|
||
return new Promise(function(resolve, reject) {
|
||
getBoundingBox(box)
|
||
.then(getFinegrainedPosition)
|
||
.then(resolve)
|
||
.catch(reject);
|
||
});
|
||
};
|
||
|
||
// procrustes analysis
|
||
function procrustes(template, shape) {
|
||
// assume template and shape is a vector of x,y-coordinates
|
||
//i.e. template = [[x1,y1], [x2,y2], [x3,y3]];
|
||
var templateClone = [];
|
||
var shapeClone = [];
|
||
for (var i = 0;i < template.length;i++) {
|
||
templateClone[i] = [template[i][0], template[i][1]];
|
||
}
|
||
for (var i = 0;i < shape.length;i++) {
|
||
shapeClone[i] = [shape[i][0], shape[i][1]];
|
||
}
|
||
shape = shapeClone;
|
||
template = templateClone;
|
||
|
||
// calculate translation
|
||
var templateMean = [0.0, 0.0];
|
||
for (var i = 0;i < template.length;i++) {
|
||
templateMean[0] += template[i][0];
|
||
templateMean[1] += template[i][1];
|
||
}
|
||
templateMean[0] /= template.length;
|
||
templateMean[1] /= template.length;
|
||
|
||
var shapeMean = [0.0, 0.0];
|
||
for (var i = 0;i < shape.length;i++) {
|
||
shapeMean[0] += shape[i][0];
|
||
shapeMean[1] += shape[i][1];
|
||
}
|
||
shapeMean[0] /= shape.length;
|
||
shapeMean[1] /= shape.length;
|
||
|
||
var translationX = templateMean[0] - shapeMean[0];
|
||
var translationY = templateMean[1] - shapeMean[1];
|
||
|
||
// centralize
|
||
for (var i = 0;i < shape.length;i++) {
|
||
shape[i][0] -= shapeMean[0];
|
||
shape[i][1] -= shapeMean[1];
|
||
}
|
||
for (var i = 0;i < template.length;i++) {
|
||
template[i][0] -= templateMean[0];
|
||
template[i][1] -= templateMean[1];
|
||
}
|
||
|
||
// scaling
|
||
|
||
var scaleS = 0.0;
|
||
for (var i = 0;i < shape.length;i++) {
|
||
scaleS += ((shape[i][0])*(shape[i][0]));
|
||
scaleS += ((shape[i][1])*(shape[i][1]));
|
||
}
|
||
scaleS = Math.sqrt(scaleS/shape.length);
|
||
|
||
var scaleT = 0.0;
|
||
for (var i = 0;i < template.length;i++) {
|
||
scaleT += ((template[i][0])*(template[i][0]));
|
||
scaleT += ((template[i][1])*(template[i][1]));
|
||
}
|
||
scaleT = Math.sqrt(scaleT/template.length);
|
||
|
||
var scaling = scaleT/scaleS;
|
||
|
||
for (var i = 0;i < shape.length;i++) {
|
||
shape[i][0] *= scaling;
|
||
shape[i][1] *= scaling;
|
||
}
|
||
|
||
// rotation
|
||
|
||
var top = 0.0;
|
||
var bottom = 0.0;
|
||
for (var i = 0;i < shape.length;i++) {
|
||
top += (shape[i][0]*template[i][1] - shape[i][1]*template[i][0]);
|
||
bottom += (shape[i][0]*template[i][0] + shape[i][1]*template[i][1]);
|
||
}
|
||
var rotation = Math.atan(top/bottom);
|
||
|
||
translationX += (shapeMean[0]-(scaling*Math.cos(-rotation)*shapeMean[0])-(scaling*shapeMean[1]*Math.sin(-rotation)));
|
||
translationY += (shapeMean[1]+(scaling*Math.sin(-rotation)*shapeMean[0])-(scaling*shapeMean[1]*Math.cos(-rotation)));
|
||
|
||
return [translationX, translationY, scaling, rotation];
|
||
}
|
||
};
|
||
|
||
// simple wrapper for jsfeat face detector that can run as a webworker
|
||
var jsfeat_face = function(parameters) {
|
||
|
||
var params = parameters;
|
||
var maxWorkSize = params.workSize;
|
||
var useWebWorkers = params.useWebWorkers;
|
||
|
||
var work_canvas = document.createElement('canvas');
|
||
var work_ctx = work_canvas.getContext('2d');
|
||
|
||
var videoWidth, videoHeight, scale, video, w, h;
|
||
var img_u8, edg, ii_sum, ii_sqsum, ii_tilted, ii_canny, classifier;
|
||
var worker;
|
||
|
||
if (useWebWorkers) {
|
||
Worker.createURL = function(func_or_string) {
|
||
var str = (typeof func_or_string === 'function')?func_or_string.toString():func_or_string;
|
||
str = str.replace("'FRONTALFACE_PLACEHOLDER'", JSON.stringify(jsfeat_1.haar.frontalface));
|
||
var blob = new Blob(['\'use strict\';\nself.onmessage ='+str], { type: 'text/javascript' });
|
||
return window.URL.createObjectURL(blob);
|
||
};
|
||
|
||
Worker.create = function(func_or_string) {
|
||
return new Worker(Worker.createURL(func_or_string));
|
||
};
|
||
|
||
worker = Worker.create(findFaceWorker);
|
||
}
|
||
|
||
this.init = function(element) {
|
||
video = element;
|
||
videoWidth = video.width;
|
||
videoHeight = video.height;
|
||
|
||
// scale down canvas we do detection on (to reduce noisy detections)
|
||
scale = Math.min(maxWorkSize/videoWidth, maxWorkSize/videoHeight);
|
||
w = (videoWidth*scale)|0;
|
||
h = (videoHeight*scale)|0;
|
||
|
||
work_canvas.height = h;
|
||
work_canvas.width = w;
|
||
|
||
if (!useWebWorkers) {
|
||
img_u8 = new jsfeat_1.matrix_t(w, h, jsfeat_1.U8_t | jsfeat_1.C1_t);
|
||
edg = new jsfeat_1.matrix_t(w, h, jsfeat_1.U8_t | jsfeat_1.C1_t);
|
||
ii_sum = new Int32Array((w+1)*(h+1));
|
||
ii_sqsum = new Int32Array((w+1)*(h+1));
|
||
ii_tilted = new Int32Array((w+1)*(h+1));
|
||
ii_canny = new Int32Array((w+1)*(h+1));
|
||
classifier = jsfeat_1.haar.frontalface;
|
||
}
|
||
};
|
||
|
||
this.findFace = function () {
|
||
work_ctx.drawImage(video, 0, 0, work_canvas.width, work_canvas.height);
|
||
var imageData = work_ctx.getImageData(0, 0, work_canvas.width, work_canvas.height);
|
||
|
||
return new Promise(function(resolve, reject) {
|
||
if (useWebWorkers) {
|
||
worker.addEventListener('message', function (e) {
|
||
if (e.data.faces.length > 0) {
|
||
resolve(e.data.faces[0]);
|
||
} else {
|
||
reject();
|
||
}
|
||
}.bind(this), false);
|
||
|
||
worker.postMessage({
|
||
w: work_canvas.width,
|
||
h: work_canvas.height,
|
||
videoWidth: videoWidth,
|
||
imageData:imageData,
|
||
params: params
|
||
});
|
||
} else {
|
||
jsfeat_1.imgproc.grayscale(imageData.data, work_canvas.width, work_canvas.height, img_u8);
|
||
|
||
// possible params
|
||
if(params.equalizeHistogram) {
|
||
jsfeat_1.imgproc.equalize_histogram(img_u8, img_u8);
|
||
}
|
||
//jsfeat.imgproc.gaussian_blur(img_u8, img_u8, 3);
|
||
|
||
jsfeat_1.imgproc.compute_integral_image(img_u8, ii_sum, ii_sqsum, classifier.tilted ? ii_tilted : null);
|
||
|
||
if(params.useCanny) {
|
||
jsfeat_1.imgproc.canny(img_u8, edg, 10, 50);
|
||
jsfeat_1.imgproc.compute_integral_image(edg, ii_canny, null, null);
|
||
}
|
||
|
||
jsfeat_1.haar.edgesDensity = params.edgesDensity;
|
||
var rects = jsfeat_1.haar.detect_multi_scale(ii_sum, ii_sqsum, ii_tilted, params.useCanny? ii_canny : null, img_u8.cols, img_u8.rows, classifier, params.scaleFactor, params.minScale);
|
||
rects = jsfeat_1.haar.group_rectangles(rects, params.min_neighbors);
|
||
|
||
for (var i = rects.length-1;i >= 0;i--) {
|
||
if (rects[i].confidence < params.confidenceThreshold) {
|
||
rects.splice(i,1);
|
||
}
|
||
}
|
||
|
||
var rl = rects.length;
|
||
if (rl == 0) {
|
||
reject();
|
||
} else {
|
||
var best = rects[0];
|
||
for (var i = 1; i < rl; i++) {
|
||
if (rects[i].neighbors > best.neighbors) {
|
||
best = rects[i];
|
||
} else if (rects[i].neighbors == best.neighbors) {
|
||
// if (rects[i].width > best.width) best = rects[i]; // use biggest rect
|
||
if (rects[i].confidence > best.confidence) best = rects[i]; // use most confident rect
|
||
}
|
||
}
|
||
|
||
var sc = videoWidth / img_u8.cols;
|
||
best.x = (best.x*sc)|0;
|
||
best.y = (best.y*sc)|0;
|
||
best.width = (best.width*sc)|0;
|
||
best.height = (best.height*sc)|0;
|
||
|
||
resolve(best);
|
||
}
|
||
}
|
||
});
|
||
};
|
||
};
|
||
|
||
/**
|
||
* Fast Fourier Transform
|
||
* 1D-FFT/IFFT, 2D-FFT/IFFT (radix-2)
|
||
*
|
||
* @author ryo / github.com/wellflat
|
||
* Based on https://github.com/wellflat/javascript-labs with some tiny optimizations
|
||
*/
|
||
|
||
function FFT$1() {
|
||
|
||
var _n = 0, // order
|
||
_bitrev = null, // bit reversal table
|
||
_cstb = null; // sin/cos table
|
||
var _tre, _tim;
|
||
|
||
this.init = function (n) {
|
||
if(n !== 0 && (n & (n - 1)) === 0) {
|
||
_n = n;
|
||
_setVariables();
|
||
_makeBitReversal();
|
||
_makeCosSinTable();
|
||
} else {
|
||
throw new Error('init: radix-2 required');
|
||
}
|
||
};
|
||
|
||
// 1D-FFT
|
||
this.fft1d = function (re, im) {
|
||
fft(re, im, 1);
|
||
};
|
||
|
||
// 1D-IFFT
|
||
this.ifft1d = function (re, im) {
|
||
var n = 1/_n;
|
||
fft(re, im, -1);
|
||
for(var i=0; i<_n; i++) {
|
||
re[i] *= n;
|
||
im[i] *= n;
|
||
}
|
||
};
|
||
|
||
// 2D-FFT
|
||
this.fft2d = function (re, im) {
|
||
var i = 0;
|
||
// x-axis
|
||
for(var y=0; y<_n; y++) {
|
||
i = y*_n;
|
||
for(var x1=0; x1<_n; x1++) {
|
||
_tre[x1] = re[x1 + i];
|
||
_tim[x1] = im[x1 + i];
|
||
}
|
||
this.fft1d(_tre, _tim);
|
||
for(var x2=0; x2<_n; x2++) {
|
||
re[x2 + i] = _tre[x2];
|
||
im[x2 + i] = _tim[x2];
|
||
}
|
||
}
|
||
|
||
// y-axis
|
||
for(var x=0; x<_n; x++) {
|
||
for(var y1=0; y1<_n; y1++) {
|
||
i = x + y1*_n;
|
||
_tre[y1] = re[i];
|
||
_tim[y1] = im[i];
|
||
}
|
||
this.fft1d(_tre, _tim);
|
||
for(var y2=0; y2<_n; y2++) {
|
||
i = x + y2*_n;
|
||
re[i] = _tre[y2];
|
||
im[i] = _tim[y2];
|
||
}
|
||
}
|
||
};
|
||
|
||
// 2D-IFFT
|
||
this.ifft2d = function (re, im) {
|
||
var i = 0;
|
||
// x-axis
|
||
for(var y=0; y<_n; y++) {
|
||
i = y*_n;
|
||
for(var x1=0; x1<_n; x1++) {
|
||
_tre[x1] = re[x1 + i];
|
||
_tim[x1] = im[x1 + i];
|
||
}
|
||
this.ifft1d(_tre, _tim);
|
||
for(var x2=0; x2<_n; x2++) {
|
||
re[x2 + i] = _tre[x2];
|
||
im[x2 + i] = _tim[x2];
|
||
}
|
||
}
|
||
// y-axis
|
||
for(var x=0; x<_n; x++) {
|
||
for(var y1=0; y1<_n; y1++) {
|
||
i = x + y1*_n;
|
||
_tre[y1] = re[i];
|
||
_tim[y1] = im[i];
|
||
}
|
||
this.ifft1d(_tre, _tim);
|
||
for(var y2=0; y2<_n; y2++) {
|
||
i = x + y2*_n;
|
||
re[i] = _tre[y2];
|
||
im[i] = _tim[y2];
|
||
}
|
||
}
|
||
};
|
||
|
||
// 2D-IFFT, real-valued
|
||
// only outputs the real valued part
|
||
this.real_ifft2d = function (re, im) {
|
||
var i2;
|
||
var i = 0;
|
||
// x-axis
|
||
for(var y=0; y<_n; y++) {
|
||
i = y*_n;
|
||
for(var x1=0; x1<_n; x1++) {
|
||
_tre[x1] = re[x1 + i];
|
||
_tim[x1] = im[x1 + i];
|
||
}
|
||
this.ifft1d(_tre, _tim);
|
||
for(var x2=0; x2<_n; x2++) {
|
||
re[x2 + i] = _tre[x2];
|
||
im[x2 + i] = _tim[x2];
|
||
}
|
||
}
|
||
// y-axis
|
||
var halfn = _n/2;
|
||
var rowIdx = 0;
|
||
for(var x=0; x<_n; x+=2) {
|
||
//untangle
|
||
i = x;
|
||
i2 = x+1;
|
||
_tre[0] = re[0 + i];
|
||
_tim[0] = re[0 + i2];
|
||
_tre[_n/2] = re[(halfn*_n) + i];
|
||
_tim[_n/2] = re[(halfn*_n) + i2];
|
||
for (var x2=1;x2<halfn;x2++) {
|
||
rowIdx = x2*_n;
|
||
_tre[x2] = re[rowIdx+i] - im[rowIdx + i2];
|
||
_tre[_n - x2] = re[rowIdx+i] + im[rowIdx + i2];
|
||
_tim[x2] = im[rowIdx+i] + re[rowIdx+i2];
|
||
_tim[_n - x2] = re[rowIdx+i2] - im[rowIdx+i];
|
||
}
|
||
this.ifft1d(_tre, _tim);
|
||
for(var y2=0; y2<_n; y2++) {
|
||
i = x + y2*_n;
|
||
i2 = (x + 1) + y2*_n;
|
||
re[i] = _tre[y2];
|
||
re[i2] = _tim[y2];
|
||
}
|
||
}
|
||
};
|
||
|
||
// 2D-FFT, real-valued only
|
||
// ignores the imaginary input
|
||
// see:
|
||
// http://www.inf.fu-berlin.de/lehre/SS12/SP-Par/download/fft1.pdf
|
||
// http://cnx.org/content/m12021/latest/
|
||
// http://images.apple.com/acg/pdf/g4fft.pdf
|
||
// http://www.ti.com/lit/an/spra291/spra291.pdf
|
||
this.real_fft2d = function (re, im) {
|
||
var i = 0, i2 = 0;
|
||
// x-axis
|
||
for(var y=0; y<_n; y += 2) {
|
||
i = y*_n;
|
||
i2 = (y+1)*_n;
|
||
// tangle
|
||
for(var x1=0; x1<_n; x1++) {
|
||
_tre[x1] = re[x1 + i];
|
||
_tim[x1] = re[x1 + i2];
|
||
}
|
||
this.fft1d(_tre, _tim);
|
||
// untangle
|
||
re[0 + i] = _tre[0];
|
||
re[0 + i2] = _tim[0];
|
||
im[0 + i] = 0;
|
||
im[0 + i2] = 0;
|
||
re[_n/2 + i] = _tre[_n/2];
|
||
re[_n/2 + i2] = _tim[_n/2];
|
||
im[_n/2 + i] = 0;
|
||
im[_n/2 + i2] = 0;
|
||
for(var x2=1;x2<(_n/2);x2++) {
|
||
re[x2 + i] = 0.5 * (_tre[x2] + _tre[_n - x2]);
|
||
im[x2 + i] = 0.5 * (_tim[x2] - _tim[_n - x2]);
|
||
re[x2 + i2] = 0.5 * (_tim[x2] + _tim[_n - x2]);
|
||
im[x2 + i2] = -0.5 * (_tre[x2] - _tre[_n - x2]);
|
||
re[(_n-x2) + i] = re[x2 + i];
|
||
im[(_n-x2) + i] = -im[x2 + i];
|
||
re[(_n-x2) + i2] = re[x2 + i2];
|
||
im[(_n-x2) + i2] = -im[x2 + i2];
|
||
}
|
||
}
|
||
// y-axis
|
||
for(var x=0; x<_n; x++) {
|
||
for(var y1=0; y1<_n; y1++) {
|
||
i = x + y1*_n;
|
||
_tre[y1] = re[i];
|
||
_tim[y1] = im[i];
|
||
}
|
||
this.fft1d(_tre, _tim);
|
||
for(var y2=0; y2<_n; y2++) {
|
||
i = x + y2*_n;
|
||
re[i] = _tre[y2];
|
||
im[i] = _tim[y2];
|
||
}
|
||
}
|
||
};
|
||
|
||
// core operation of FFT
|
||
function fft(re, im, inv) {
|
||
var d, h, ik, m, tmp, wr, wi, xr, xi,
|
||
n4 = _n >> 2;
|
||
// bit reversal
|
||
for(var l=0; l<_n; l++) {
|
||
m = _bitrev[l];
|
||
if(l < m) {
|
||
tmp = re[l];
|
||
re[l] = re[m];
|
||
re[m] = tmp;
|
||
tmp = im[l];
|
||
im[l] = im[m];
|
||
im[m] = tmp;
|
||
}
|
||
}
|
||
// butterfly operation
|
||
//butfly(re,im,inv,n4);
|
||
for(var k=1; k<_n; k<<=1) {
|
||
h = 0;
|
||
d = _n/(k << 1);
|
||
for(var j=0; j<k; j++) {
|
||
wr = _cstb[h + n4];
|
||
wi = inv*_cstb[h];
|
||
for(var i=j; i<_n; i+=(k<<1)) {
|
||
ik = i + k;
|
||
xr = wr*re[ik] + wi*im[ik];
|
||
xi = wr*im[ik] - wi*re[ik];
|
||
re[ik] = re[i] - xr;
|
||
re[i] += xr;
|
||
im[ik] = im[i] - xi;
|
||
im[i] += xi;
|
||
}
|
||
h += d;
|
||
}
|
||
}
|
||
}
|
||
|
||
function _setVariables() {
|
||
if(typeof Uint8Array !== 'undefined') {
|
||
_bitrev = new Uint8Array(_n);
|
||
} else {
|
||
_bitrev = new Array(_n);
|
||
}
|
||
if(typeof Float64Array !== 'undefined') {
|
||
_cstb = new Float64Array(_n*1.25);
|
||
_tre = new Float64Array(_n);
|
||
_tim = new Float64Array(_n);
|
||
} else {
|
||
_cstb = new Array(_n*1.25);
|
||
_tre = new Array(_n);
|
||
_tim = new Array(_n);
|
||
}
|
||
}
|
||
|
||
// make bit reversal table
|
||
function _makeBitReversal() {
|
||
var i = 0,
|
||
j = 0,
|
||
k = 0;
|
||
_bitrev[0] = 0;
|
||
while(++i < _n) {
|
||
k = _n >> 1;
|
||
while(k <= j) {
|
||
j -= k;
|
||
k >>= 1;
|
||
}
|
||
j += k;
|
||
_bitrev[i] = j;
|
||
}
|
||
}
|
||
|
||
// make trigonometric function table
|
||
function _makeCosSinTable() {
|
||
var n2 = _n >> 1,
|
||
n4 = _n >> 2,
|
||
n8 = _n >> 3,
|
||
n2p4 = n2 + n4,
|
||
t = Math.sin(Math.PI/_n),
|
||
dc = 2*t*t,
|
||
ds = Math.sqrt(dc*(2 - dc)),
|
||
c = _cstb[n4] = 1,
|
||
s = _cstb[0] = 0;
|
||
t = 2*dc;
|
||
for(var i=1; i<n8; i++) {
|
||
c -= dc;
|
||
dc += t*c;
|
||
s += ds;
|
||
ds -= t*s;
|
||
_cstb[i] = s;
|
||
_cstb[n4 - i] = c;
|
||
}
|
||
if(n8 !== 0) {
|
||
_cstb[n8] = Math.sqrt(0.5);
|
||
}
|
||
for(var j=0; j<n4; j++) {
|
||
_cstb[n2 - j] = _cstb[j];
|
||
}
|
||
for(var k=0; k<n2p4; k++) {
|
||
_cstb[k + n2] = -_cstb[k];
|
||
}
|
||
}
|
||
}
|
||
|
||
var svmFilter = function() {
|
||
|
||
var _fft, fft_filters, responses, biases;
|
||
var fft_size, filterLength, filter_width, search_width, num_patches;
|
||
var temp_imag_part, temp_real_part;
|
||
|
||
// fft function
|
||
this.fft_inplace = function(array, _im_part) {
|
||
// in-place
|
||
|
||
if (typeof _im_part == 'undefined') {
|
||
_im_part = temp_imag_part;
|
||
}
|
||
|
||
for (var i = 0;i < filterLength;i++) {
|
||
_im_part[i] = 0.0;
|
||
}
|
||
|
||
_fft.real_fft2d(array,_im_part);
|
||
|
||
return [array, _im_part];
|
||
};
|
||
|
||
this.ifft = function(rn, cn) {
|
||
// in-place
|
||
_fft.real_ifft2d(rn, cn);
|
||
return rn;
|
||
};
|
||
|
||
var complex_mult_inplace = function(cn1, cn2) {
|
||
// in-place, cn1 is the one modified
|
||
var temp1, temp2;
|
||
for (var r = 0;r < filterLength;r++) {
|
||
temp1 = (cn1[0][r]*cn2[0][r]) - (cn1[1][r]*cn2[1][r]);
|
||
temp2 = (cn1[0][r]*cn2[1][r]) + (cn1[1][r]*cn2[0][r]);
|
||
cn1[0][r] = temp1;
|
||
cn1[1][r] = temp2;
|
||
}
|
||
};
|
||
|
||
this.init = function(filter_input, bias_input, numPatches, filterWidth, searchWidth) {
|
||
// calculate needed size of fft (has to be power of two)
|
||
fft_size = upperPowerOfTwo(filterWidth-1+searchWidth);
|
||
filterLength = fft_size*fft_size;
|
||
_fft = new FFT$1();
|
||
_fft.init(fft_size);
|
||
fft_filters = Array(numPatches);
|
||
var fft_filter;
|
||
var edge = (filterWidth-1)/2;
|
||
|
||
for (var i = 0;i < numPatches;i++) {
|
||
var flar_fi0 = new Float64Array(filterLength);
|
||
var flar_fi1 = new Float64Array(filterLength);
|
||
|
||
// load filter
|
||
var xOffset, yOffset;
|
||
for (var j = 0;j < filterWidth;j++) {
|
||
for (var k = 0;k < filterWidth;k++) {
|
||
// TODO : rotate filter
|
||
|
||
xOffset = k < edge ? (fft_size-edge) : (-edge);
|
||
yOffset = j < edge ? (fft_size-edge) : (-edge);
|
||
flar_fi0[k+xOffset+((j+yOffset)*fft_size)] = filter_input[i][(filterWidth-1-j)+((filterWidth-1-k)*filterWidth)];
|
||
|
||
/*xOffset = k < edge ? (fft_size-edge) : (-edge);
|
||
yOffset = j < edge ? (fft_size-edge) : (-edge);
|
||
flar_fi0[k+xOffset+((j+yOffset)*fft_size)] = filter_input[i][k+(j*filterWidth)];*/
|
||
|
||
//console.log(k + ','+ j+':' + (k+xOffset+((j+yOffset)*fft_size)))
|
||
}
|
||
}
|
||
|
||
// fft it and store
|
||
fft_filter = this.fft_inplace(flar_fi0, flar_fi1);
|
||
fft_filters[i] = fft_filter;
|
||
|
||
}
|
||
|
||
// set up biases
|
||
biases = new Float64Array(numPatches);
|
||
for (var i = 0;i < numPatches;i++) {
|
||
biases[i] = bias_input[i];
|
||
}
|
||
|
||
responses = Array(numPatches);
|
||
temp_imag_part = Array(numPatches);
|
||
for (var i = 0;i < numPatches;i++) {
|
||
responses[i] = new Float64Array(searchWidth*searchWidth);
|
||
temp_imag_part[i] = new Float64Array(searchWidth*searchWidth);
|
||
}
|
||
temp_real_part = new Float64Array(filterLength);
|
||
|
||
num_patches = numPatches;
|
||
filter_width = filterWidth;
|
||
search_width = searchWidth;
|
||
};
|
||
|
||
this.getResponses = function(patches) {
|
||
var response, edge;
|
||
var patch_width = filter_width-1+search_width;
|
||
for (var i = 0;i < num_patches;i++) {
|
||
// reset zeroes in temp_real_part
|
||
for (var j = 0;j < fft_size*fft_size;j++) {
|
||
temp_real_part[j] = 0.0;
|
||
}
|
||
|
||
// normalize patches to 0-1
|
||
patches[i] = normalizePatches(patches[i]);
|
||
|
||
// patch must be padded (with zeroes) to match fft size
|
||
for (var j = 0;j < patch_width;j++) {
|
||
for (var k = 0;k < patch_width;k++) {
|
||
temp_real_part[j + (fft_size*k)] = patches[i][k + (patch_width*j)];
|
||
}
|
||
}
|
||
|
||
//drawData(document.getElementById('sketch').getContext('2d'), temp_real_part, 32, 32, false, 0, 0);
|
||
|
||
// fft it
|
||
response = this.fft_inplace(temp_real_part);
|
||
|
||
// multiply pointwise with filter
|
||
complex_mult_inplace(response, fft_filters[i]);
|
||
|
||
// inverse fft it
|
||
response = this.ifft(response[0], response[1]);
|
||
|
||
// crop out edges
|
||
edge = (filter_width-1)/2;
|
||
for (var j = 0;j < search_width;j++) {
|
||
for (var k = 0;k < search_width;k++) {
|
||
responses[i][j + (k*search_width)] = response[edge + k + ((j+edge)*(fft_size))];
|
||
}
|
||
}
|
||
|
||
// add bias
|
||
for (var j = 0;j < search_width*search_width;j++) {
|
||
responses[i][j] += biases[i];
|
||
}
|
||
|
||
// logistic transformation
|
||
responses[i] = logisticResponse(responses[i]);
|
||
|
||
/*responses[i] = new Float64Array(32*32)
|
||
for (var j = 0;j < 32;j++) {
|
||
for (var k = 0;k < 32;k++) {
|
||
responses[i][k + (j*(32))] = response[k + (j*(32))]
|
||
}
|
||
}*/
|
||
|
||
// normalization?
|
||
inplaceNormalizeFilterMatrix(responses[i]);
|
||
}
|
||
|
||
return responses;
|
||
};
|
||
|
||
var normalizePatches = function(patch) {
|
||
var patch_width = filter_width-1+search_width;
|
||
var max = 0;
|
||
var min = 1000;
|
||
var value;
|
||
for (var j = 0;j < patch_width;j++) {
|
||
for (var k = 0;k < patch_width;k++) {
|
||
value = patch[k + (patch_width*j)];
|
||
if (value < min) {
|
||
min = value;
|
||
}
|
||
if (value > max) {
|
||
max = value;
|
||
}
|
||
}
|
||
}
|
||
var scale = max-min;
|
||
for (var j = 0;j < patch_width;j++) {
|
||
for (var k = 0;k < patch_width;k++) {
|
||
patch[k + (patch_width*j)] = (patch[k + (patch_width*j)]-min)/scale;
|
||
}
|
||
}
|
||
return patch;
|
||
};
|
||
|
||
var logisticResponse = function(response) {
|
||
// create probability by doing logistic transformation
|
||
for (var j = 0;j < search_width;j++) {
|
||
for (var k = 0;k < search_width;k++) {
|
||
response[j + (k*search_width)] = 1.0/(1.0 + Math.exp(- (response[j + (k*search_width)] - 1.0 )));
|
||
}
|
||
}
|
||
return response;
|
||
};
|
||
|
||
var upperPowerOfTwo = function(x) {
|
||
x--;
|
||
x |= x >> 1;
|
||
x |= x >> 2;
|
||
x |= x >> 4;
|
||
x |= x >> 8;
|
||
x |= x >> 16;
|
||
x++;
|
||
return x;
|
||
};
|
||
|
||
var inplaceNormalizeFilterMatrix = function(response) {
|
||
// normalize responses to lie within [0,1]
|
||
var msize = response.length;
|
||
var max = 0;
|
||
var min = 1;
|
||
|
||
for (var i = 0;i < msize;i++) {
|
||
max = response[i] > max ? response[i] : max;
|
||
min = response[i] < min ? response[i] : min;
|
||
}
|
||
var dist = max-min;
|
||
|
||
if (dist == 0) {
|
||
//console.log('a patchresponse was monotone, causing normalization to fail. Leaving it unchanged.');
|
||
} else {
|
||
for (var i = 0;i < msize;i++) {
|
||
response[i] = (response[i]-min)/dist;
|
||
}
|
||
}
|
||
};
|
||
};
|
||
|
||
var webglUtils = createCommonjsModule(function (module, exports) {
|
||
// This code is based on webgl-utils.js authored by Gregg Tavares, license below:
|
||
/*
|
||
* Copyright (c) 2011, Gregg Tavares
|
||
* All rights reserved.
|
||
*
|
||
* Redistribution and use in source and binary forms, with or without
|
||
* modification, are permitted provided that the following conditions are
|
||
* met:
|
||
*
|
||
* * Redistributions of source code must retain the above copyright notice,
|
||
* this list of conditions and the following disclaimer.
|
||
*
|
||
* * Redistributions in binary form must reproduce the above copyright notice,
|
||
* this list of conditions and the following disclaimer in the documentation
|
||
* and/or other materials provided with the distribution.
|
||
*
|
||
* * Neither the name of greggman.com nor the names of its contributors
|
||
* may be used to endorse or promote products derived from this software
|
||
* without specific prior written permission.
|
||
*
|
||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
|
||
* IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
|
||
* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
|
||
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
|
||
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
|
||
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
|
||
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
|
||
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
||
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||
*/
|
||
(function(){
|
||
|
||
var LOGGING_ENABLED = true;
|
||
|
||
/**
|
||
* Wrapped logging function.
|
||
* @param {string} msg The message to log.
|
||
*/
|
||
const log = function (msg) {
|
||
if (!LOGGING_ENABLED) { return; }
|
||
if (window.console && window.console.log) {
|
||
window.console.log(msg);
|
||
}
|
||
};
|
||
|
||
/**
|
||
* Wrapped logging function.
|
||
* @param {string} msg The message to log.
|
||
*/
|
||
const error = function (msg) {
|
||
if (!LOGGING_ENABLED) { return; }
|
||
if (window.console) {
|
||
if (window.console.error) {
|
||
window.console.error(msg);
|
||
} else if (window.console.log) {
|
||
window.console.log(msg);
|
||
}
|
||
}
|
||
throw msg;
|
||
};
|
||
|
||
/**
|
||
* Turn off all logging.
|
||
*/
|
||
const loggingOff = function () {
|
||
LOGGING_ENABLED = false;
|
||
};
|
||
|
||
/**
|
||
* Check if the page is embedded.
|
||
* @return {boolean} True of we are in an iframe
|
||
*/
|
||
const isInIFrame = function () {
|
||
return window !== window.top;
|
||
};
|
||
|
||
/**
|
||
* Converts a WebGL enum to a string
|
||
* @param {!WebGLContext} gl The WebGLContext to use.
|
||
* @param {number} value The enum value.
|
||
* @return {string} The enum as a string.
|
||
*/
|
||
const glEnumToString = function (gl, value) {
|
||
for (var p in gl) {
|
||
if (gl[p] === value) {
|
||
return p;
|
||
}
|
||
}
|
||
return '0x' + value.toString(16);
|
||
};
|
||
|
||
|
||
/**
|
||
* Creates the HTLM for a failure message
|
||
* @param {string} canvasContainerId id of container of th
|
||
* canvas.
|
||
* @return {string} The html.
|
||
*/
|
||
const makeFailHTML = function (msg) {
|
||
return '' +
|
||
'<table style="background-color: #8CE; width: 100%; height: 100%;"><tr>' +
|
||
'<td align="center">' +
|
||
'<div style="display: table-cell; vertical-align: middle;">' +
|
||
'<div style="">' + msg + '</div>' +
|
||
'</div>' +
|
||
'</td></tr></table>';
|
||
};
|
||
|
||
|
||
/**
|
||
* Mesasge for getting a webgl browser
|
||
* @type {string}
|
||
*/
|
||
// const GET_A_WEBGL_BROWSER = '' +
|
||
// 'This page requires a browser that supports WebGL.<br/>' +
|
||
// '<a href="http://get.webgl.org">Click here to upgrade your browser.</a>';
|
||
|
||
|
||
/**
|
||
* Mesasge for need better hardware
|
||
* @type {string}
|
||
*/
|
||
// const OTHER_PROBLEM = '' +
|
||
// "It doesn't appear your computer can support WebGL.<br/>" +
|
||
// '<a href="http://get.webgl.org/troubleshooting/">Click here for more information.</a>';
|
||
|
||
|
||
/**
|
||
* Creates a webgl context. If creation fails it will
|
||
* change the contents of the container of the <canvas>
|
||
* tag to an error message with the correct links for WebGL.
|
||
* @param {Element} canvas. The canvas element to create a
|
||
* context from.
|
||
* @param {WebGLContextCreationAttirbutes} optAttribs Any
|
||
* creation attributes you want to pass in.
|
||
* @return {WebGLRenderingContext} The created context.
|
||
*/
|
||
const setupWebGL = function (canvas, optAttribs) {
|
||
// const showLink = function (str) {
|
||
// var container = canvas.parentNode;
|
||
// if (container) {
|
||
// container.innerHTML = makeFailHTML(str);
|
||
// }
|
||
// };
|
||
|
||
if (!window.WebGLRenderingContext) {
|
||
// showLink(GET_A_WEBGL_BROWSER);
|
||
return null;
|
||
}
|
||
|
||
var context = create3DContext(canvas, optAttribs);
|
||
if (!context) {
|
||
// showLink(OTHER_PROBLEM);
|
||
return null;
|
||
}
|
||
return context;
|
||
};
|
||
|
||
|
||
/**
|
||
* Creates a webgl context.
|
||
* @param {!Canvas} canvas The canvas tag to get context
|
||
* from. If one is not passed in one will be created.
|
||
* @return {!WebGLContext} The created context.
|
||
*/
|
||
const create3DContext = function (canvas, optAttribs) {
|
||
var names = ['webgl', 'experimental-webgl'];
|
||
var context = null;
|
||
for (var ii = 0; ii < names.length; ++ii) {
|
||
try {
|
||
context = canvas.getContext(names[ii], optAttribs);
|
||
} catch (e) {}
|
||
if (context) {
|
||
break;
|
||
}
|
||
}
|
||
return context;
|
||
};
|
||
|
||
const updateCSSIfInIFrame = function () {
|
||
if (isInIFrame()) {
|
||
document.body.className = 'iframe';
|
||
}
|
||
};
|
||
|
||
/**
|
||
* Gets a WebGL context.
|
||
* makes its backing store the size it is displayed.
|
||
*/
|
||
const getWebGLContext = function (canvas) {
|
||
if (isInIFrame()) {
|
||
updateCSSIfInIFrame();
|
||
|
||
// make the canvas backing store the size it's displayed.
|
||
canvas.width = canvas.clientWidth;
|
||
canvas.height = canvas.clientHeight;
|
||
}
|
||
|
||
var gl = setupWebGL(canvas);
|
||
return gl;
|
||
};
|
||
|
||
|
||
/**
|
||
* Loads a shader.
|
||
* @param {!WebGLContext} gl The WebGLContext to use.
|
||
* @param {string} shaderSource The shader source.
|
||
* @param {number} shaderType The type of shader.
|
||
* @param {function(string): void) optErrorCallback callback for errors.
|
||
* @return {!WebGLShader} The created shader.
|
||
*/
|
||
const loadShader = function (gl, shaderSource, shaderType, optErrorCallback) {
|
||
var errFn = optErrorCallback || error;
|
||
// Create the shader object
|
||
var shader = gl.createShader(shaderType);
|
||
|
||
// Load the shader source
|
||
gl.shaderSource(shader, shaderSource);
|
||
|
||
// Compile the shader
|
||
gl.compileShader(shader);
|
||
|
||
// Check the compile status
|
||
var compiled = gl.getShaderParameter(shader, gl.COMPILE_STATUS);
|
||
if (!compiled) {
|
||
// Something went wrong during compilation; get the error
|
||
var lastError = gl.getShaderInfoLog(shader);
|
||
errFn("*** Error compiling shader '" + shader + "':" + lastError);
|
||
gl.deleteShader(shader);
|
||
return null;
|
||
}
|
||
|
||
return shader;
|
||
};
|
||
|
||
|
||
/**
|
||
* Creates a program, attaches shaders, binds attrib locations, links the
|
||
* program and calls useProgram.
|
||
* @param {!Array.<!WebGLShader>} shaders The shaders to attach
|
||
* @param {!Array.<string>} optAttribs The attribs names.
|
||
* @param {!Array.<number>} optLocations The locations for the attribs.
|
||
*/
|
||
const loadProgram = function (gl, shaders, optAttribs, optLocations) {
|
||
var program = gl.createProgram();
|
||
for (var i = 0; i < shaders.length; ++i) {
|
||
gl.attachShader(program, shaders[i]);
|
||
}
|
||
if (optAttribs) {
|
||
for (var i = 0; i < optAttribs.length; ++i) {
|
||
gl.bindAttribLocation(
|
||
program,
|
||
optLocations ? optLocations[i] : i,
|
||
optAttribs[i]);
|
||
}
|
||
}
|
||
gl.linkProgram(program);
|
||
|
||
// Check the link status
|
||
const linked = gl.getProgramParameter(program, gl.LINK_STATUS);
|
||
if (!linked) {
|
||
// something went wrong with the link
|
||
const lastError = gl.getProgramInfoLog(program);
|
||
error('Error in program linking:' + lastError);
|
||
|
||
gl.deleteProgram(program);
|
||
return null;
|
||
}
|
||
return program;
|
||
};
|
||
|
||
|
||
/**
|
||
* Loads a shader from a script tag.
|
||
* @param {!WebGLContext} gl The WebGLContext to use.
|
||
* @param {string} scriptId The id of the script tag.
|
||
* @param {number} optShaderType The type of shader. If not passed in it will
|
||
* be derived from the type of the script tag.
|
||
* @param {function(string): void) optErrorCallback callback for errors.
|
||
* @return {!WebGLShader} The created shader.
|
||
*/
|
||
const createShaderFromScript = function (
|
||
gl, scriptId, optShaderType, optErrorCallback
|
||
) {
|
||
var shaderSource = '';
|
||
var shaderType;
|
||
var shaderScript = document.getElementById(scriptId);
|
||
if (!shaderScript) {
|
||
throw new Error('*** Error: unknown script element' + scriptId);
|
||
}
|
||
shaderSource = shaderScript.text;
|
||
|
||
if (!optShaderType) {
|
||
if (shaderScript.type === 'x-shader/x-vertex') {
|
||
shaderType = gl.VERTEX_SHADER;
|
||
} else if (shaderScript.type === 'x-shader/x-fragment') {
|
||
shaderType = gl.FRAGMENT_SHADER;
|
||
} else if (
|
||
shaderType !== gl.VERTEX_SHADER &&
|
||
shaderType !== gl.FRAGMENT_SHADER
|
||
) {
|
||
throw new Error('*** Error: unknown shader type');
|
||
}
|
||
}
|
||
|
||
return loadShader(
|
||
gl,
|
||
shaderSource,
|
||
optShaderType || shaderType,
|
||
optErrorCallback
|
||
);
|
||
};
|
||
|
||
{
|
||
module.exports = {
|
||
setupWebGL : setupWebGL,
|
||
createProgram : loadProgram,
|
||
createShaderFromScript : createShaderFromScript,
|
||
getWebGLContext : getWebGLContext,
|
||
loadShader : loadShader
|
||
};
|
||
}
|
||
|
||
}());
|
||
});
|
||
|
||
var webglUtils_1 = webglUtils.setupWebGL;
|
||
var webglUtils_2 = webglUtils.createProgram;
|
||
var webglUtils_5 = webglUtils.loadShader;
|
||
|
||
var webglFilter = function() {
|
||
|
||
/*
|
||
* Textures:
|
||
* 0 : raw filter
|
||
* 1 : patches
|
||
* 2 : finished response
|
||
* 3 : grad/lbp treated patches
|
||
* 4 : sobel filter
|
||
* 5 : lbp filter
|
||
*
|
||
* Routing:
|
||
* ( ) 0/4/5 --\
|
||
* ( ) _\|
|
||
* 1 ----> ( ---------->3 ) ----------> 2
|
||
* lbpResponse/ patchResponse
|
||
* gradientResponse
|
||
*/
|
||
|
||
var gl, canvas;
|
||
var filterWidth, filterHeight, patchWidth, patchHeight, numPatches, canvasWidth, canvasHeight;
|
||
var patchResponseProgram, patchDrawProgram;
|
||
var fbo, numBlocks, patchTex;
|
||
var drawRectBuffer, drawLayerBuffer, drawImageBuffer, rttTexture;
|
||
var texCoordBuffer, texCoordLocation, apositionBuffer;
|
||
var newCanvasWidth, newCanvasBlockHeight, newCanvasHeight;
|
||
var drawOutRectangles, drawOutImages, drawOutLayer;
|
||
var patchCells, textureWidth, textureHeight, patchSize, patchArray;
|
||
var biases;
|
||
|
||
var lbpResponseProgram;
|
||
var lbpTexCoordLocation, lbpTexCoordBuffer, lbpPositionLocation, lbpAPositionBuffer;
|
||
|
||
var gradientResponseProgram;
|
||
var gbo, gradTexCoordLocation, gradTexCoordBuffer, gradPositionLocation, gradAPositionBuffer;
|
||
|
||
var lbpInit = false;
|
||
var sobelInit = false;
|
||
var rawInit = false;
|
||
|
||
var lbpResponseVS = [
|
||
'attribute vec2 a_texCoord;',
|
||
'attribute vec2 a_position;',
|
||
'',
|
||
'varying vec2 v_texCoord;',
|
||
'',
|
||
'void main() {',
|
||
' // transform coordinates to regular coordinates',
|
||
' gl_Position = vec4(a_position,0.0,1.0);',
|
||
' ',
|
||
' // pass the texCoord to the fragment shader',
|
||
' v_texCoord = a_texCoord;',
|
||
'}'
|
||
].join('\n');
|
||
var lbpResponseFS;
|
||
|
||
var gradientResponseVS = [
|
||
'attribute vec2 a_texCoord;',
|
||
'attribute vec2 a_position;',
|
||
'',
|
||
'varying vec2 v_texCoord;',
|
||
'',
|
||
'void main() {',
|
||
' // transform coordinates to regular coordinates',
|
||
' gl_Position = vec4(a_position,0.0,1.0);',
|
||
' ',
|
||
' // pass the texCoord to the fragment shader',
|
||
' v_texCoord = a_texCoord;',
|
||
'}'
|
||
].join('\n');
|
||
var gradientResponseFS;
|
||
|
||
var patchResponseVS;
|
||
var patchResponseFS;
|
||
|
||
var drawResponsesVS = [
|
||
'attribute vec2 a_texCoord_draw;',
|
||
'attribute vec2 a_position_draw;',
|
||
'attribute float a_patchChoice_draw;',
|
||
'',
|
||
'uniform vec2 u_resolutiondraw;',
|
||
'',
|
||
'varying vec2 v_texCoord;',
|
||
'varying float v_select;',
|
||
'',
|
||
'void main() {',
|
||
' // convert the rectangle from pixels to 0.0 to 1.0',
|
||
' vec2 zeroToOne = a_position_draw / u_resolutiondraw;',
|
||
'',
|
||
' // convert from 0->1 to 0->2',
|
||
' vec2 zeroToTwo = zeroToOne * 2.0;',
|
||
'',
|
||
' // convert from 0->2 to -1->+1 (clipspace)',
|
||
' vec2 clipSpace = zeroToTwo - 1.0;',
|
||
' ',
|
||
' // transform coordinates to regular coordinates',
|
||
' gl_Position = vec4(clipSpace * vec2(1.0, 1.0), 0, 1);',
|
||
'',
|
||
' // pass the texCoord to the fragment shader',
|
||
' v_texCoord = a_texCoord_draw;',
|
||
' ',
|
||
' v_select = a_patchChoice_draw;',
|
||
'}'
|
||
].join('\n');
|
||
|
||
var drawResponsesFS = [
|
||
'precision mediump float;',
|
||
'',
|
||
'// our responses',
|
||
'uniform sampler2D u_responses;',
|
||
'',
|
||
'// the texCoords passed in from the vertex shader.',
|
||
'varying vec2 v_texCoord;',
|
||
'varying float v_select;',
|
||
'',
|
||
'const vec4 bit_shift = vec4(256.0*256.0*256.0, 256.0*256.0, 256.0, 1.0);',
|
||
'const vec4 bit_mask = vec4(0.0, 1.0/256.0, 1.0/256.0, 1.0/256.0);',
|
||
'',
|
||
'// packing code from here http://stackoverflow.com/questions/9882716/packing-float-into-vec4-how-does-this-code-work',
|
||
'void main() {',
|
||
' vec4 colorSum = texture2D(u_responses, v_texCoord);',
|
||
' float value = 0.0;',
|
||
' if (v_select < 0.1) {',
|
||
' value = colorSum[0];',
|
||
' } else if (v_select > 0.9 && v_select < 1.1) {',
|
||
' value = colorSum[1];',
|
||
' } else if (v_select > 1.9 && v_select < 2.1) {',
|
||
' value = colorSum[2];',
|
||
' } else if (v_select > 2.9 && v_select < 3.1) {',
|
||
' value = colorSum[3];',
|
||
' } else {',
|
||
' value = 1.0;',
|
||
' }',
|
||
' ',
|
||
' vec4 res = fract(value * bit_shift);',
|
||
' res -= res.xxyz * bit_mask;',
|
||
' ',
|
||
' //gl_FragColor = vec4(value, value, value, value);',
|
||
' //gl_FragColor = vec4(1.0, value, 1.0, 1.0);',
|
||
' gl_FragColor = res;',
|
||
'}'
|
||
].join('\n');
|
||
|
||
this.init = function(filters, bias, nP, pW, pH, fW, fH) {
|
||
// we assume filterVector goes from left to right, rowwise, i.e. row-major order
|
||
|
||
if (fW != fH) {
|
||
alert('filter width and height must be same size!');
|
||
return;
|
||
}
|
||
|
||
// if filter width is not odd, alert
|
||
if (fW % 2 == 0 || fH % 2 == 0) {
|
||
alert('filters used in svm must be of odd dimensions!');
|
||
return;
|
||
}
|
||
|
||
// setup variables
|
||
biases = bias;
|
||
filterWidth = fW;
|
||
filterHeight = fH;
|
||
patchWidth = pW;
|
||
patchHeight = pH;
|
||
numPatches = nP;
|
||
numBlocks = Math.floor(numPatches / 4) + Math.ceil((numPatches % 4)/4);
|
||
canvasWidth = patchWidth;
|
||
canvasHeight = patchHeight*numBlocks;
|
||
newCanvasWidth = patchWidth-filterWidth+1;
|
||
newCanvasBlockHeight = patchHeight-filterWidth+1;
|
||
newCanvasHeight = newCanvasBlockHeight*numPatches;
|
||
patchCells = (Math.floor(numPatches / 4) + Math.ceil((numPatches % 4)/4));
|
||
textureWidth = patchWidth;
|
||
textureHeight = patchHeight*patchCells;
|
||
patchSize = patchWidth*patchHeight;
|
||
patchArray = new Float32Array(patchSize*patchCells*4);
|
||
var opp = [1/patchWidth, 1/(patchHeight*numBlocks)];
|
||
|
||
// write out shaders
|
||
patchResponseFS = [
|
||
'precision mediump float;',
|
||
'',
|
||
'const vec2 u_onePixelPatches = vec2('+(1/patchWidth).toFixed(10)+','+(1/(patchHeight*numBlocks)).toFixed(10)+');',
|
||
'const vec2 u_onePixelFilters = vec2('+(1/filterWidth).toFixed(10)+','+(1/(filterHeight*numBlocks)).toFixed(10)+');',
|
||
'const float u_halffilterwidth = '+((filterWidth-1.0)/2).toFixed(1)+';',
|
||
'const float u_halffilterheight = '+((filterHeight-1.0)/2).toFixed(1)+';',
|
||
'',
|
||
'// our patches',
|
||
'uniform sampler2D u_patches;',
|
||
'// our filters',
|
||
'uniform sampler2D u_filters;',
|
||
'',
|
||
'// the texCoords passed in from the vertex shader.',
|
||
'varying vec2 v_texCoord;',
|
||
'varying vec2 v_texCoordFilters; // this should give us correct filter',
|
||
'',
|
||
'void main() {',
|
||
' vec4 colorSum = vec4(0.0, 0.0, 0.0, 0.0);',
|
||
' vec4 maxn = vec4(0.0, 0.0, 0.0, 0.0);',
|
||
' vec4 minn = vec4(256.0, 256.0, 256.0, 256.0);',
|
||
' vec4 scale = vec4(0.0, 0.0, 0.0, 0.0);',
|
||
' vec4 patchValue = vec4(0.0, 0.0, 0.0, 0.0);',
|
||
' vec4 filterValue = vec4(0.0, 0.0, 0.0, 0.0);',
|
||
' vec4 filterTemp = vec4(0.0, 0.0, 0.0, 0.0);',
|
||
' for (int w = 0;w < '+filterWidth+';w++) {',
|
||
' for (int h = 0;h < '+filterHeight+';h++) {',
|
||
' patchValue = texture2D(u_patches, v_texCoord + u_onePixelPatches * vec2(float(w)-u_halffilterwidth, float(h)-u_halffilterheight));',
|
||
' filterValue = texture2D(u_filters, v_texCoordFilters + u_onePixelFilters * vec2(float(w)-u_halffilterwidth, float(h)-u_halffilterheight));',
|
||
' maxn = max(patchValue, maxn);',
|
||
' minn = min(patchValue, minn);',
|
||
' colorSum += patchValue*filterValue;',
|
||
' filterTemp += filterValue;',
|
||
' } ',
|
||
' }',
|
||
' scale = maxn-minn;',
|
||
' colorSum = (colorSum-(minn*filterTemp))/scale;',
|
||
' // logistic transformation',
|
||
' colorSum = 1.0/(1.0 + exp(- (colorSum) ));',
|
||
' gl_FragColor = colorSum;',
|
||
'}'
|
||
].join('\n');
|
||
|
||
patchResponseVS = [
|
||
'attribute vec2 a_texCoord;',
|
||
'attribute vec2 a_position;',
|
||
'',
|
||
'const vec2 u_resolution = vec2('+canvasWidth.toFixed(1)+','+canvasHeight.toFixed(1)+');',
|
||
'const float u_patchHeight = '+(1/numBlocks).toFixed(10)+';',
|
||
'const float u_filterHeight = '+(1/numBlocks).toFixed(10)+';',
|
||
'const vec2 u_midpoint = vec2(0.5 ,'+(1/(numBlocks*2)).toFixed(10)+');',
|
||
'',
|
||
'varying vec2 v_texCoord;',
|
||
'varying vec2 v_texCoordFilters;',
|
||
'',
|
||
'void main() {',
|
||
' // convert the rectangle from pixels to 0.0 to 1.0',
|
||
' vec2 zeroToOne = a_position / u_resolution;',
|
||
'',
|
||
' // convert from 0->1 to 0->2',
|
||
' vec2 zeroToTwo = zeroToOne * 2.0;',
|
||
'',
|
||
' // convert from 0->2 to -1->+1 (clipspace)',
|
||
' vec2 clipSpace = zeroToTwo - 1.0;',
|
||
' ',
|
||
' // transform coordinates to regular coordinates',
|
||
' gl_Position = vec4(clipSpace * vec2(1.0, 1.0), 0, 1);',
|
||
' ',
|
||
' // pass the texCoord to the fragment shader',
|
||
' v_texCoord = a_texCoord;',
|
||
' ',
|
||
' // set the filtertexture coordinate based on number filter to use',
|
||
' v_texCoordFilters = u_midpoint + vec2(0.0, u_filterHeight * floor(a_texCoord[1]/u_patchHeight));',
|
||
'}'
|
||
].join('\n');
|
||
|
||
if ('lbp' in filters) {
|
||
// lbpResponseFragment
|
||
lbpResponseFS = [
|
||
'precision mediump float;',
|
||
'',
|
||
'uniform vec2 u_onePixelPatches;',
|
||
'',
|
||
'// our patches',
|
||
'uniform sampler2D u_patches;',
|
||
'',
|
||
'// the texCoords passed in from the vertex shader.',
|
||
'varying vec2 v_texCoord;',
|
||
'',
|
||
'void main() {',
|
||
' vec4 topLeft = texture2D(u_patches, v_texCoord + vec2(-'+opp[0].toFixed(5)+', -'+opp[1].toFixed(5)+'));',
|
||
' vec4 topMid = texture2D(u_patches, v_texCoord + vec2(0.0, -'+opp[1].toFixed(5)+'));',
|
||
' vec4 topRight = texture2D(u_patches, v_texCoord + vec2('+opp[0].toFixed(5)+', -'+opp[1].toFixed(5)+'));',
|
||
' vec4 midLeft = texture2D(u_patches, v_texCoord + vec2(-'+opp[0].toFixed(5)+', 0.0));',
|
||
' vec4 midMid = texture2D(u_patches, v_texCoord);',
|
||
' vec4 midRight = texture2D(u_patches, v_texCoord + vec2('+opp[0].toFixed(5)+', 0.0));',
|
||
' vec4 bottomLeft = texture2D(u_patches, v_texCoord + vec2(-'+opp[0].toFixed(5)+', '+opp[1].toFixed(5)+'));',
|
||
' vec4 bottomMid = texture2D(u_patches, v_texCoord + vec2(0.0, '+opp[1].toFixed(5)+'));',
|
||
' vec4 bottomRight = texture2D(u_patches, v_texCoord + vec2('+opp[0].toFixed(5)+', '+opp[1].toFixed(5)+'));',
|
||
' vec4 lbp = step(midMid, midRight)*1.0 + step(midMid, topRight)*2.0 + step(midMid, topMid)*4.0;',
|
||
' lbp = lbp + step(midMid, topLeft)*8.0 + step(midMid, midLeft)*16.0 + step(midMid, bottomLeft)*32.0;',
|
||
' lbp = lbp + step(midMid, bottomMid)*64.0 + step(midMid, bottomRight)*128.0;',
|
||
' gl_FragColor = lbp;',
|
||
'}'
|
||
].join('\n');
|
||
}
|
||
|
||
if ('sobel' in filters) {
|
||
// gradResponseFragment
|
||
gradientResponseFS = [
|
||
'precision mediump float;',
|
||
'',
|
||
'uniform vec2 u_onePixelPatches;',
|
||
'',
|
||
'// our patches',
|
||
'uniform sampler2D u_patches;',
|
||
'',
|
||
'// the texCoords passed in from the vertex shader.',
|
||
'varying vec2 v_texCoord;',
|
||
'',
|
||
'void main() {',
|
||
' vec4 bottomLeft = texture2D(u_patches, v_texCoord + vec2(-'+opp[0].toFixed(5)+', '+opp[1].toFixed(5)+'));',
|
||
' vec4 bottomRight = texture2D(u_patches, v_texCoord + vec2('+opp[0].toFixed(5)+', '+opp[1].toFixed(5)+'));',
|
||
' vec4 topLeft = texture2D(u_patches, v_texCoord + vec2(-'+opp[0].toFixed(5)+', -'+opp[1].toFixed(5)+'));',
|
||
' vec4 topRight = texture2D(u_patches, v_texCoord + vec2('+opp[0].toFixed(5)+', -'+opp[1].toFixed(5)+'));',
|
||
' vec4 dx = (',
|
||
' bottomLeft +',
|
||
' (texture2D(u_patches, v_texCoord + vec2(-'+opp[0].toFixed(5)+', 0.0))*vec4(2.0,2.0,2.0,2.0)) +',
|
||
' topLeft -',
|
||
' bottomRight -',
|
||
' (texture2D(u_patches, v_texCoord + vec2('+opp[0].toFixed(5)+', 0.0))*vec4(2.0,2.0,2.0,2.0)) -',
|
||
' topRight)/4.0;',
|
||
' vec4 dy = (',
|
||
' bottomLeft +',
|
||
' (texture2D(u_patches, v_texCoord + vec2(0.0, '+opp[1].toFixed(5)+'))*vec4(2.0,2.0,2.0,2.0)) +',
|
||
' bottomRight -',
|
||
' topLeft -',
|
||
' (texture2D(u_patches, v_texCoord + vec2(0.0, -'+opp[1].toFixed(5)+'))*vec4(2.0,2.0,2.0,2.0)) -',
|
||
' topRight)/4.0;',
|
||
' vec4 gradient = sqrt((dx*dx) + (dy*dy));',
|
||
' gl_FragColor = gradient;',
|
||
'}'
|
||
].join('\n');
|
||
}
|
||
|
||
//create webglcanvas
|
||
canvas = document.createElement('canvas');
|
||
canvas.setAttribute('width', (patchWidth-filterWidth+1)+'px');
|
||
canvas.setAttribute('height', ((patchHeight-filterHeight+1)*numPatches)+'px');
|
||
canvas.setAttribute('id', 'renderCanvas');
|
||
canvas.setAttribute('style', 'display:none;');
|
||
//document.body.appendChild(canvas);
|
||
gl = webglUtils_1(canvas, {
|
||
premultipliedAlpha: false,
|
||
preserveDrawingBuffer : true,
|
||
antialias : false
|
||
});
|
||
|
||
|
||
// check for float textures support and fail if not
|
||
if (!gl.getExtension('OES_texture_float')) {
|
||
alert('Your graphics card does not support floating point textures! :(');
|
||
return;
|
||
}
|
||
|
||
/** insert filters into textures **/
|
||
if ('raw' in filters) {
|
||
insertFilter(filters['raw'], gl.TEXTURE0);
|
||
rawInit = true;
|
||
}
|
||
if ('sobel' in filters) {
|
||
insertFilter(filters['sobel'], gl.TEXTURE4);
|
||
sobelInit = true;
|
||
}
|
||
if ('lbp' in filters) {
|
||
insertFilter(filters['lbp'], gl.TEXTURE5);
|
||
lbpInit = true;
|
||
}
|
||
|
||
/** calculate vertices for calculating responses **/
|
||
|
||
// vertex rectangles to draw out
|
||
var rectangles = [];
|
||
var halfFilter = (filterWidth-1)/2;
|
||
var yOffset;
|
||
for (var i = 0;i < numBlocks;i++) {
|
||
yOffset = i*patchHeight;
|
||
//first triangle
|
||
rectangles = rectangles.concat([
|
||
halfFilter, yOffset+halfFilter,
|
||
patchWidth-halfFilter, yOffset+halfFilter,
|
||
halfFilter, yOffset+patchHeight-halfFilter
|
||
]);
|
||
//second triangle
|
||
rectangles = rectangles.concat([
|
||
halfFilter, yOffset+patchHeight-halfFilter,
|
||
patchWidth-halfFilter, yOffset+halfFilter,
|
||
patchWidth-halfFilter, yOffset+patchHeight-halfFilter
|
||
]);
|
||
}
|
||
rectangles = new Float32Array(rectangles);
|
||
|
||
// image rectangles to draw out
|
||
var irectangles = [];
|
||
for (var i = 0;i < rectangles.length;i++) {
|
||
if (i % 2 == 0) {
|
||
irectangles[i] = rectangles[i]/canvasWidth;
|
||
} else {
|
||
irectangles[i] = rectangles[i]/canvasHeight;
|
||
}
|
||
}
|
||
irectangles = new Float32Array(irectangles);
|
||
|
||
if ('lbp' in filters || 'sobel' in filters) {
|
||
var topCoord = 1.0 - 2/(patchHeight*numBlocks);
|
||
var bottomCoord = 1.0 - 2/numBlocks + 2/(patchHeight*numBlocks);
|
||
var yOffset;
|
||
// calculate position of vertex rectangles for gradient/lbp program
|
||
var gradRectangles = [];
|
||
for (var i = 0;i < numBlocks;i++) {
|
||
yOffset = i * (2/numBlocks);
|
||
//first triangle
|
||
gradRectangles = gradRectangles.concat([
|
||
-1.0, topCoord - yOffset,
|
||
1.0, topCoord - yOffset,
|
||
-1.0, bottomCoord - yOffset
|
||
]);
|
||
//second triangle
|
||
gradRectangles = gradRectangles.concat([
|
||
-1.0, bottomCoord - yOffset,
|
||
1.0, topCoord - yOffset,
|
||
1.0, bottomCoord - yOffset
|
||
]);
|
||
}
|
||
gradRectangles = new Float32Array(gradRectangles);
|
||
|
||
topCoord = 1.0 - 1/(patchHeight*numBlocks);
|
||
bottomCoord = 1.0 - 1/numBlocks + 1/(patchHeight*numBlocks);
|
||
// calculate position of image rectangles to draw out
|
||
var gradIRectangles = [];
|
||
for (var i = 0;i < numBlocks;i++) {
|
||
yOffset = i * (1/numBlocks);
|
||
//first triangle
|
||
gradIRectangles = gradIRectangles.concat([
|
||
0.0, topCoord - yOffset,
|
||
1.0, topCoord - yOffset,
|
||
0.0, bottomCoord - yOffset
|
||
]);
|
||
//second triangle
|
||
gradIRectangles = gradIRectangles.concat([
|
||
0.0, bottomCoord - yOffset,
|
||
1.0, topCoord - yOffset,
|
||
1.0, bottomCoord - yOffset
|
||
]);
|
||
}
|
||
gradIRectangles = new Float32Array(gradIRectangles);
|
||
}
|
||
|
||
// vertices for drawing out responses
|
||
|
||
// drawOutRectangles
|
||
drawOutRectangles = new Float32Array(12*numPatches);
|
||
var yOffset, indexOffset;
|
||
for (var i = 0;i < numPatches;i++) {
|
||
yOffset = i*newCanvasBlockHeight;
|
||
indexOffset = i*12;
|
||
|
||
//first triangle
|
||
drawOutRectangles[indexOffset] = 0.0;
|
||
drawOutRectangles[indexOffset+1] = yOffset;
|
||
drawOutRectangles[indexOffset+2] = newCanvasWidth;
|
||
drawOutRectangles[indexOffset+3] = yOffset;
|
||
drawOutRectangles[indexOffset+4] = 0.0;
|
||
drawOutRectangles[indexOffset+5] = yOffset+newCanvasBlockHeight;
|
||
|
||
//second triangle
|
||
drawOutRectangles[indexOffset+6] = 0.0;
|
||
drawOutRectangles[indexOffset+7] = yOffset+newCanvasBlockHeight;
|
||
drawOutRectangles[indexOffset+8] = newCanvasWidth;
|
||
drawOutRectangles[indexOffset+9] = yOffset;
|
||
drawOutRectangles[indexOffset+10] = newCanvasWidth;
|
||
drawOutRectangles[indexOffset+11] = yOffset+newCanvasBlockHeight;
|
||
}
|
||
|
||
// images
|
||
drawOutImages = new Float32Array(numPatches*12);
|
||
var halfFilterWidth = ((filterWidth-1)/2)/patchWidth;
|
||
var halfFilterHeight = ((filterWidth-1)/2)/(patchHeight*patchCells);
|
||
var patchHeightT = patchHeight / (patchHeight*patchCells);
|
||
for (var i = 0;i < numPatches;i++) {
|
||
yOffset = Math.floor(i / 4)*patchHeightT;
|
||
indexOffset = i*12;
|
||
|
||
//first triangle
|
||
drawOutImages[indexOffset] = halfFilterWidth;
|
||
drawOutImages[indexOffset+1] = yOffset+halfFilterHeight;
|
||
drawOutImages[indexOffset+2] = 1.0-halfFilterWidth;
|
||
drawOutImages[indexOffset+3] = yOffset+halfFilterHeight;
|
||
drawOutImages[indexOffset+4] = halfFilterWidth;
|
||
drawOutImages[indexOffset+5] = yOffset+patchHeightT-halfFilterHeight;
|
||
|
||
//second triangle
|
||
drawOutImages[indexOffset+6] = halfFilterWidth;
|
||
drawOutImages[indexOffset+7] = yOffset+patchHeightT-halfFilterHeight;
|
||
drawOutImages[indexOffset+8] = 1.0-halfFilterWidth;
|
||
drawOutImages[indexOffset+9] = yOffset+halfFilterHeight;
|
||
drawOutImages[indexOffset+10] = 1.0-halfFilterWidth;
|
||
drawOutImages[indexOffset+11] = yOffset+patchHeightT-halfFilterHeight;
|
||
}
|
||
|
||
// layer
|
||
drawOutLayer = new Float32Array(numPatches*6);
|
||
var layernum;
|
||
for (var i = 0;i < numPatches;i++) {
|
||
layernum = i % 4;
|
||
indexOffset = i*6;
|
||
drawOutLayer[indexOffset] = layernum;
|
||
drawOutLayer[indexOffset+1] = layernum;
|
||
drawOutLayer[indexOffset+2] = layernum;
|
||
drawOutLayer[indexOffset+3] = layernum;
|
||
drawOutLayer[indexOffset+4] = layernum;
|
||
drawOutLayer[indexOffset+5] = layernum;
|
||
}
|
||
|
||
/** set up programs and load attributes etc **/
|
||
|
||
if ('sobel' in filters) {
|
||
var grVertexShader = webglUtils_5(gl, gradientResponseVS, gl.VERTEX_SHADER);
|
||
var grFragmentShader = webglUtils_5(gl, gradientResponseFS, gl.FRAGMENT_SHADER);
|
||
gradientResponseProgram = webglUtils_2(gl, [grVertexShader, grFragmentShader]);
|
||
gl.useProgram(gradientResponseProgram);
|
||
|
||
// set up vertices with rectangles
|
||
gradPositionLocation = gl.getAttribLocation(gradientResponseProgram, 'a_position');
|
||
gradAPositionBuffer = gl.createBuffer();
|
||
gl.bindBuffer(gl.ARRAY_BUFFER, gradAPositionBuffer);
|
||
gl.bufferData(gl.ARRAY_BUFFER, gradRectangles, gl.STATIC_DRAW);
|
||
gl.enableVertexAttribArray(gradPositionLocation);
|
||
gl.vertexAttribPointer(gradPositionLocation, 2, gl.FLOAT, false, 0, 0);
|
||
|
||
// set up texture positions
|
||
gradTexCoordLocation = gl.getAttribLocation(gradientResponseProgram, 'a_texCoord');
|
||
gradTexCoordBuffer = gl.createBuffer();
|
||
gl.bindBuffer(gl.ARRAY_BUFFER, gradTexCoordBuffer);
|
||
gl.bufferData(gl.ARRAY_BUFFER, gradIRectangles, gl.STATIC_DRAW);
|
||
gl.enableVertexAttribArray(gradTexCoordLocation);
|
||
gl.vertexAttribPointer(gradTexCoordLocation, 2, gl.FLOAT, false, 0, 0);
|
||
|
||
// set up patches texture in gradientResponseProgram
|
||
gl.uniform1i(gl.getUniformLocation(gradientResponseProgram, 'u_patches'), 1);
|
||
}
|
||
if ('lbp' in filters) {
|
||
var lbpVertexShader = webglUtils_5(gl, lbpResponseVS, gl.VERTEX_SHADER);
|
||
var lbpFragmentShader = webglUtils_5(gl, lbpResponseFS, gl.FRAGMENT_SHADER);
|
||
lbpResponseProgram = webglUtils_2(gl, [lbpVertexShader, lbpFragmentShader]);
|
||
gl.useProgram(lbpResponseProgram);
|
||
|
||
// set up vertices with rectangles
|
||
lbpPositionLocation = gl.getAttribLocation(lbpResponseProgram, 'a_position');
|
||
lbpAPositionBuffer = gl.createBuffer();
|
||
gl.bindBuffer(gl.ARRAY_BUFFER, lbpAPositionBuffer);
|
||
gl.bufferData(gl.ARRAY_BUFFER, gradRectangles, gl.STATIC_DRAW);
|
||
gl.enableVertexAttribArray(lbpPositionLocation);
|
||
gl.vertexAttribPointer(lbpPositionLocation, 2, gl.FLOAT, false, 0, 0);
|
||
|
||
// set up texture positions
|
||
gradTexCoordLocation = gl.getAttribLocation(lbpResponseProgram, 'a_texCoord');
|
||
lbpTexCoordBuffer = gl.createBuffer();
|
||
gl.bindBuffer(gl.ARRAY_BUFFER, lbpTexCoordBuffer);
|
||
gl.bufferData(gl.ARRAY_BUFFER, gradIRectangles, gl.STATIC_DRAW);
|
||
gl.enableVertexAttribArray(lbpTexCoordLocation);
|
||
gl.vertexAttribPointer(lbpTexCoordLocation, 2, gl.FLOAT, false, 0, 0);
|
||
|
||
// set up patches texture in lbpResponseProgram
|
||
gl.uniform1i(gl.getUniformLocation(lbpResponseProgram, 'u_patches'), 1);
|
||
}
|
||
|
||
// setup patchdraw program
|
||
var drVertexShader = webglUtils_5(gl, drawResponsesVS, gl.VERTEX_SHADER);
|
||
var drFragmentShader = webglUtils_5(gl, drawResponsesFS, gl.FRAGMENT_SHADER);
|
||
patchDrawProgram = webglUtils_2(gl, [drVertexShader, drFragmentShader]);
|
||
gl.useProgram(patchDrawProgram);
|
||
|
||
// set the resolution/dimension of the canvas
|
||
var resolutionLocation = gl.getUniformLocation(patchDrawProgram, 'u_resolutiondraw');
|
||
gl.uniform2f(resolutionLocation, newCanvasWidth, newCanvasHeight);
|
||
|
||
// set u_responses
|
||
var responsesLocation = gl.getUniformLocation(patchDrawProgram, 'u_responses');
|
||
gl.uniform1i(responsesLocation, 2);
|
||
|
||
// setup patchresponse program
|
||
var prVertexShader = webglUtils_5(gl, patchResponseVS, gl.VERTEX_SHADER);
|
||
var prFragmentShader = webglUtils_5(gl, patchResponseFS, gl.FRAGMENT_SHADER);
|
||
patchResponseProgram = webglUtils_2(gl, [prVertexShader, prFragmentShader]);
|
||
gl.useProgram(patchResponseProgram);
|
||
|
||
// set up vertices with rectangles
|
||
var positionLocation = gl.getAttribLocation(patchResponseProgram, 'a_position');
|
||
apositionBuffer = gl.createBuffer();
|
||
gl.bindBuffer(gl.ARRAY_BUFFER, apositionBuffer);
|
||
gl.bufferData(gl.ARRAY_BUFFER, rectangles, gl.STATIC_DRAW);
|
||
gl.enableVertexAttribArray(positionLocation);
|
||
gl.vertexAttribPointer(positionLocation, 2, gl.FLOAT, false, 0, 0);
|
||
|
||
// set up texture positions
|
||
texCoordLocation = gl.getAttribLocation(patchResponseProgram, 'a_texCoord');
|
||
texCoordBuffer = gl.createBuffer();
|
||
gl.bindBuffer(gl.ARRAY_BUFFER, texCoordBuffer);
|
||
gl.bufferData(gl.ARRAY_BUFFER, irectangles, gl.STATIC_DRAW);
|
||
gl.enableVertexAttribArray(texCoordLocation);
|
||
gl.vertexAttribPointer(texCoordLocation, 2, gl.FLOAT, false, 0, 0);
|
||
|
||
if ('lbp' in filters || 'sobel' in filters) {
|
||
// set up gradient/lbp buffer (also used for lbp)
|
||
gl.activeTexture(gl.TEXTURE3);
|
||
var gradients = gl.createTexture();
|
||
gl.bindTexture(gl.TEXTURE_2D, gradients);
|
||
gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, patchWidth, patchHeight*numBlocks, 0, gl.RGBA, gl.FLOAT, null);
|
||
gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);
|
||
gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);
|
||
gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.NEAREST);
|
||
gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.NEAREST);
|
||
|
||
// set up gradient/lbp framebuffer
|
||
gbo = gl.createFramebuffer();
|
||
gl.bindFramebuffer(gl.FRAMEBUFFER, gbo);
|
||
gl.framebufferTexture2D(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.TEXTURE_2D, gradients, 0);
|
||
}
|
||
|
||
// set up buffer to draw to
|
||
gl.activeTexture(gl.TEXTURE2);
|
||
rttTexture = gl.createTexture();
|
||
gl.bindTexture(gl.TEXTURE_2D, rttTexture);
|
||
gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);
|
||
gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);
|
||
gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.NEAREST);
|
||
gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.NEAREST);
|
||
gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, patchWidth, patchHeight*numBlocks, 0, gl.RGBA, gl.FLOAT, null);
|
||
|
||
// set up response framebuffer
|
||
fbo = gl.createFramebuffer();
|
||
gl.bindFramebuffer(gl.FRAMEBUFFER, fbo);
|
||
gl.framebufferTexture2D(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.TEXTURE_2D, rttTexture, 0);
|
||
|
||
gl.viewport(0, 0, patchWidth, patchHeight*numBlocks);
|
||
|
||
/* initialize some textures and buffers used later on */
|
||
|
||
patchTex = gl.createTexture();
|
||
drawRectBuffer = gl.createBuffer();
|
||
drawImageBuffer = gl.createBuffer();
|
||
drawLayerBuffer = gl.createBuffer();
|
||
};
|
||
|
||
this.getRawResponses = function(patches) {
|
||
// TODO: check patches correct length/dimension
|
||
|
||
insertPatches(patches);
|
||
|
||
// switch to correct program
|
||
gl.useProgram(patchResponseProgram);
|
||
|
||
// set u_patches to point to texture 1
|
||
gl.uniform1i(gl.getUniformLocation(patchResponseProgram, 'u_patches'), 1);
|
||
|
||
// set u_filters to point to correct filter
|
||
gl.uniform1i(gl.getUniformLocation(patchResponseProgram, 'u_filters'), 0);
|
||
|
||
// set up vertices with rectangles
|
||
var positionLocation = gl.getAttribLocation(patchResponseProgram, 'a_position');
|
||
gl.bindBuffer(gl.ARRAY_BUFFER, apositionBuffer);
|
||
gl.enableVertexAttribArray(positionLocation);
|
||
gl.vertexAttribPointer(positionLocation, 2, gl.FLOAT, false, 0, 0);
|
||
|
||
// set up texture positions
|
||
var texCoordLocation = gl.getAttribLocation(patchResponseProgram, 'a_texCoord');
|
||
gl.bindBuffer(gl.ARRAY_BUFFER, texCoordBuffer);
|
||
gl.enableVertexAttribArray(texCoordLocation);
|
||
gl.vertexAttribPointer(texCoordLocation, 2, gl.FLOAT, false, 0, 0);
|
||
|
||
// set framebuffer to the original one if not already using it
|
||
gl.bindFramebuffer(gl.FRAMEBUFFER, fbo);
|
||
|
||
gl.viewport(0, 0, patchWidth, patchHeight*numBlocks);
|
||
|
||
gl.clearColor(0.0, 0.0, 0.0, 1.0);
|
||
gl.clear(gl.COLOR_BUFFER_BIT|gl.DEPTH_BUFFER);
|
||
|
||
// draw to framebuffer
|
||
gl.drawArrays(gl.TRIANGLES, 0, patchCells*6);
|
||
|
||
//gl.finish();
|
||
|
||
var responses = drawOut('raw');
|
||
|
||
return responses;
|
||
};
|
||
|
||
this.getSobelResponses = function(patches) {
|
||
// check that it is initialized
|
||
if (!sobelInit) return;
|
||
|
||
insertPatches(patches);
|
||
|
||
/* do sobel filter on patches */
|
||
|
||
// switch to correct program
|
||
gl.useProgram(gradientResponseProgram);
|
||
|
||
// set up vertices with rectangles
|
||
var gradPositionLocation = gl.getAttribLocation(gradientResponseProgram, 'a_position');
|
||
gl.bindBuffer(gl.ARRAY_BUFFER, gradAPositionBuffer);
|
||
gl.enableVertexAttribArray(gradPositionLocation);
|
||
gl.vertexAttribPointer(gradPositionLocation, 2, gl.FLOAT, false, 0, 0);
|
||
|
||
// set up texture positions
|
||
var gradTexCoordLocation = gl.getAttribLocation(gradientResponseProgram, 'a_texCoord');
|
||
gl.bindBuffer(gl.ARRAY_BUFFER, gradTexCoordBuffer);
|
||
gl.enableVertexAttribArray(gradTexCoordLocation);
|
||
gl.vertexAttribPointer(gradTexCoordLocation, 2, gl.FLOAT, false, 0, 0);
|
||
|
||
// set framebuffer to the original one if not already using it
|
||
gl.bindFramebuffer(gl.FRAMEBUFFER, gbo);
|
||
|
||
gl.viewport(0, 0, patchWidth, patchHeight*numBlocks);
|
||
|
||
gl.clearColor(0.0, 0.0, 0.0, 1.0);
|
||
gl.clear(gl.COLOR_BUFFER_BIT|gl.DEPTH_BUFFER);
|
||
|
||
// draw to framebuffer
|
||
gl.drawArrays(gl.TRIANGLES, 0, patchCells*6);
|
||
|
||
/* calculate responses */
|
||
|
||
gl.useProgram(patchResponseProgram);
|
||
|
||
// set patches and filters to point to correct textures
|
||
gl.uniform1i(gl.getUniformLocation(patchResponseProgram, 'u_filters'), 4);
|
||
gl.uniform1i(gl.getUniformLocation(patchResponseProgram, 'u_patches'), 3);
|
||
|
||
var positionLocation = gl.getAttribLocation(patchResponseProgram, 'a_position');
|
||
gl.bindBuffer(gl.ARRAY_BUFFER, apositionBuffer);
|
||
gl.enableVertexAttribArray(positionLocation);
|
||
gl.vertexAttribPointer(positionLocation, 2, gl.FLOAT, false, 0, 0);
|
||
|
||
// set up texture positions
|
||
var texCoordLocation = gl.getAttribLocation(patchResponseProgram, 'a_texCoord');
|
||
gl.bindBuffer(gl.ARRAY_BUFFER, texCoordBuffer);
|
||
gl.enableVertexAttribArray(texCoordLocation);
|
||
gl.vertexAttribPointer(texCoordLocation, 2, gl.FLOAT, false, 0, 0);
|
||
|
||
gl.bindFramebuffer(gl.FRAMEBUFFER, fbo);
|
||
gl.viewport(0, 0, patchWidth, patchHeight*numBlocks);
|
||
|
||
gl.clearColor(0.0, 0.0, 0.0, 1.0);
|
||
gl.clear(gl.COLOR_BUFFER_BIT|gl.DEPTH_BUFFER);
|
||
|
||
// draw to framebuffer
|
||
gl.drawArrays(gl.TRIANGLES, 0, patchCells*6);
|
||
|
||
/* get the responses */
|
||
|
||
var responses = drawOut('sobel');
|
||
|
||
return responses;
|
||
};
|
||
|
||
this.getLBPResponses = function(patches) {
|
||
// check that it is initialized
|
||
if (!lbpInit) return;
|
||
|
||
insertPatches(patches);
|
||
|
||
/* do sobel filter on patches */
|
||
|
||
// switch to correct program
|
||
gl.useProgram(lbpResponseProgram);
|
||
|
||
// set up vertices with rectangles
|
||
var lbpPositionLocation = gl.getAttribLocation(lbpResponseProgram, 'a_position');
|
||
gl.bindBuffer(gl.ARRAY_BUFFER, lbpAPositionBuffer);
|
||
gl.enableVertexAttribArray(lbpPositionLocation);
|
||
gl.vertexAttribPointer(lbpPositionLocation, 2, gl.FLOAT, false, 0, 0);
|
||
|
||
// set up texture positions
|
||
var lbpTexCoordLocation = gl.getAttribLocation(lbpResponseProgram, 'a_texCoord');
|
||
gl.bindBuffer(gl.ARRAY_BUFFER, lbpTexCoordBuffer);
|
||
gl.enableVertexAttribArray(lbpTexCoordLocation);
|
||
gl.vertexAttribPointer(lbpTexCoordLocation, 2, gl.FLOAT, false, 0, 0);
|
||
|
||
// set framebuffer to the original one if not already using it
|
||
gl.bindFramebuffer(gl.FRAMEBUFFER, gbo);
|
||
|
||
gl.viewport(0, 0, patchWidth, patchHeight*numBlocks);
|
||
|
||
gl.clearColor(0.0, 0.0, 0.0, 1.0);
|
||
gl.clear(gl.COLOR_BUFFER_BIT|gl.DEPTH_BUFFER);
|
||
|
||
// draw to framebuffer
|
||
gl.drawArrays(gl.TRIANGLES, 0, patchCells*6);
|
||
|
||
/* calculate responses */
|
||
|
||
gl.useProgram(patchResponseProgram);
|
||
|
||
gl.uniform1i(gl.getUniformLocation(patchResponseProgram, 'u_filters'), 5);
|
||
gl.uniform1i(gl.getUniformLocation(patchResponseProgram, 'u_patches'), 3);
|
||
|
||
var positionLocation = gl.getAttribLocation(patchResponseProgram, 'a_position');
|
||
gl.bindBuffer(gl.ARRAY_BUFFER, apositionBuffer);
|
||
gl.enableVertexAttribArray(positionLocation);
|
||
gl.vertexAttribPointer(positionLocation, 2, gl.FLOAT, false, 0, 0);
|
||
|
||
// set up texture positions
|
||
var texCoordLocation = gl.getAttribLocation(patchResponseProgram, 'a_texCoord');
|
||
gl.bindBuffer(gl.ARRAY_BUFFER, texCoordBuffer);
|
||
gl.enableVertexAttribArray(texCoordLocation);
|
||
gl.vertexAttribPointer(texCoordLocation, 2, gl.FLOAT, false, 0, 0);
|
||
|
||
gl.bindFramebuffer(gl.FRAMEBUFFER, fbo);
|
||
gl.viewport(0, 0, patchWidth, patchHeight*numBlocks);
|
||
|
||
gl.clearColor(0.0, 0.0, 0.0, 1.0);
|
||
gl.clear(gl.COLOR_BUFFER_BIT|gl.DEPTH_BUFFER);
|
||
|
||
// draw to framebuffer
|
||
gl.drawArrays(gl.TRIANGLES, 0, patchCells*6);
|
||
|
||
/* get the responses */
|
||
|
||
var responses = drawOut('lbp');
|
||
|
||
return responses;
|
||
};
|
||
|
||
var insertPatches = function(patches) {
|
||
// pass patches into texture, each patch in either r, g, b or a
|
||
var patchArrayIndex = 0;
|
||
var patchesIndex1 = 0;
|
||
var patchesIndex2 = 0;
|
||
for (var i = 0;i < patchCells;i++) {
|
||
for (var j = 0;j < patchHeight;j++) {
|
||
for (var k = 0;k < patchWidth;k++) {
|
||
patchesIndex1 = i*4;
|
||
patchesIndex2 = (j*patchWidth) + k;
|
||
patchArrayIndex = ((patchSize*i) + patchesIndex2)*4;
|
||
|
||
//set r with first patch
|
||
if (patchesIndex1 < numPatches) {
|
||
patchArray[patchArrayIndex] = patches[patchesIndex1][patchesIndex2];
|
||
} else {
|
||
patchArray[patchArrayIndex] = 0;
|
||
}
|
||
//set g with 2nd patch
|
||
if (patchesIndex1+1 < numPatches) {
|
||
patchArray[patchArrayIndex + 1] = patches[patchesIndex1+1][patchesIndex2];
|
||
} else {
|
||
patchArray[patchArrayIndex + 1] = 0;
|
||
}
|
||
//set b with 3rd patch
|
||
if (patchesIndex1+2 < numPatches) {
|
||
patchArray[patchArrayIndex + 2] = patches[patchesIndex1+2][patchesIndex2];
|
||
} else {
|
||
patchArray[patchArrayIndex + 2] = 0;
|
||
}
|
||
//set a with 4th patch
|
||
if (patchesIndex1+3 < numPatches) {
|
||
patchArray[patchArrayIndex + 3] = patches[patchesIndex1+3][patchesIndex2];
|
||
} else {
|
||
patchArray[patchArrayIndex + 3] = 0;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
// pass texture into an uniform
|
||
gl.activeTexture(gl.TEXTURE1);
|
||
gl.bindTexture(gl.TEXTURE_2D, patchTex);
|
||
gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, textureWidth, textureHeight, 0, gl.RGBA, gl.FLOAT, patchArray);
|
||
gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);
|
||
gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);
|
||
gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.NEAREST);
|
||
gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.NEAREST);
|
||
};
|
||
|
||
var insertFilter = function(filter, textureNum) {
|
||
var filterSize = filterWidth*filterHeight;
|
||
var filterArray = new Float32Array(filterSize*(numBlocks)*4);
|
||
for (var i = 0;i < numBlocks;i++) {
|
||
for (var j = 0;j < filterHeight;j++) {
|
||
for (var k = 0;k < filterWidth;k++) {
|
||
//set r with first filter
|
||
if (i*4 < filter.length) {
|
||
filterArray[((filterSize*i) + (j*filterWidth) + k)*4] = filter[i*4][(j*filterWidth) + k];
|
||
} else {
|
||
filterArray[((filterSize*i) + (j*filterWidth) + k)*4] = 0;
|
||
}
|
||
//set g with 2nd filter
|
||
if ((i*4 + 1) < filter.length) {
|
||
filterArray[((filterSize*i) + (j*filterWidth) + k)*4 + 1] = filter[(i*4)+1][(j*filterWidth) + k];
|
||
} else {
|
||
filterArray[((filterSize*i) + (j*filterWidth) + k)*4 + 1] = 0;
|
||
}
|
||
//set b with 3rd filter
|
||
if ((i*4 + 2) < filter.length) {
|
||
filterArray[((filterSize*i) + (j*filterWidth) + k)*4 + 2] = filter[(i*4)+2][(j*filterWidth) + k];
|
||
} else {
|
||
filterArray[((filterSize*i) + (j*filterWidth) + k)*4 + 2] = 0;
|
||
}
|
||
//set a with 4th filter
|
||
if ((i*4 + 3) < filter.length) {
|
||
filterArray[((filterSize*i) + (j*filterWidth) + k)*4 + 3] = filter[(i*4)+3][(j*filterWidth) + k];
|
||
} else {
|
||
filterArray[((filterSize*i) + (j*filterWidth) + k)*4 + 3] = 0;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
gl.activeTexture(textureNum);
|
||
var filterTexture = gl.createTexture();
|
||
gl.bindTexture(gl.TEXTURE_2D, filterTexture);
|
||
gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, filterWidth, filterHeight*numBlocks, 0, gl.RGBA, gl.FLOAT, filterArray);
|
||
gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);
|
||
gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);
|
||
gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.NEAREST);
|
||
gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.NEAREST);
|
||
};
|
||
|
||
var drawOut = function(type) {
|
||
// switch programs
|
||
gl.useProgram(patchDrawProgram);
|
||
|
||
// bind canvas buffer
|
||
gl.bindFramebuffer(gl.FRAMEBUFFER, null);
|
||
gl.viewport(0, 0, newCanvasWidth, newCanvasHeight);
|
||
|
||
gl.clearColor(0.0, 0.0, 0.0, 1.0);
|
||
gl.clear(gl.COLOR_BUFFER_BIT|gl.DEPTH_BUFFER);
|
||
|
||
gl.bindBuffer(gl.ARRAY_BUFFER, drawRectBuffer);
|
||
gl.bufferData(
|
||
gl.ARRAY_BUFFER,
|
||
drawOutRectangles,
|
||
gl.STATIC_DRAW);
|
||
var positionLocation = gl.getAttribLocation(patchDrawProgram, 'a_position_draw');
|
||
gl.enableVertexAttribArray(positionLocation);
|
||
gl.vertexAttribPointer(positionLocation, 2, gl.FLOAT, false, 0, 0);
|
||
|
||
gl.bindBuffer(gl.ARRAY_BUFFER, drawImageBuffer);
|
||
gl.bufferData(
|
||
gl.ARRAY_BUFFER,
|
||
drawOutImages,
|
||
gl.STATIC_DRAW);
|
||
var textureLocation = gl.getAttribLocation(patchDrawProgram, 'a_texCoord_draw');
|
||
gl.enableVertexAttribArray(textureLocation);
|
||
gl.vertexAttribPointer(textureLocation, 2, gl.FLOAT, false, 0, 0);
|
||
|
||
gl.bindBuffer(gl.ARRAY_BUFFER, drawLayerBuffer);
|
||
gl.bufferData(
|
||
gl.ARRAY_BUFFER,
|
||
drawOutLayer,
|
||
gl.STATIC_DRAW);
|
||
var layerLocation = gl.getAttribLocation(patchDrawProgram, 'a_patchChoice_draw');
|
||
gl.enableVertexAttribArray(layerLocation);
|
||
gl.vertexAttribPointer(layerLocation, 1, gl.FLOAT, false, 0, 0);
|
||
|
||
// draw out
|
||
gl.drawArrays(gl.TRIANGLES, 0, numPatches*6);
|
||
|
||
var responses = getOutput();
|
||
responses = unpackToFloat(responses);
|
||
responses = splitArray(responses, numPatches);
|
||
responses = addBias(responses, biases[type]);
|
||
|
||
// normalize responses to lie within [0,1]
|
||
var rl = responses.length;
|
||
for (var i = 0;i < rl;i++) {
|
||
responses[i] = normalizeFilterMatrix(responses[i]);
|
||
}
|
||
|
||
return responses;
|
||
};
|
||
|
||
var addBias = function(responses, bias) {
|
||
// do a little trick to add bias in the logit function
|
||
var biasMult;
|
||
for (var i = 0;i < responses.length;i++) {
|
||
biasMult = Math.exp(bias[i]);
|
||
for (var j = 0;j < responses[i].length;j++) {
|
||
responses[i][j] = 1/(1+((1-responses[i][j])/(responses[i][j]*biasMult)));
|
||
}
|
||
}
|
||
return responses;
|
||
};
|
||
|
||
var splitArray = function(array, parts) {
|
||
var sp = [];
|
||
var al = array.length;
|
||
var splitlength = al/parts;
|
||
var ta = [];
|
||
for (var i = 0;i < al;i++) {
|
||
if (i % splitlength == 0) {
|
||
if (i != 0) {
|
||
sp.push(ta);
|
||
}
|
||
ta = [];
|
||
}
|
||
ta.push(array[i]);
|
||
}
|
||
sp.push(ta);
|
||
return sp;
|
||
};
|
||
|
||
var getOutput = function() {
|
||
// get data
|
||
var pixelValues = new Uint8Array(4*canvas.width*canvas.height);
|
||
gl.readPixels(0, 0, canvas.width, canvas.height, gl.RGBA, gl.UNSIGNED_BYTE, pixelValues);
|
||
return pixelValues;
|
||
};
|
||
|
||
var unpackToFloat = function(array) {
|
||
// convert packed floats to proper floats : see http://stackoverflow.com/questions/9882716/packing-float-into-vec4-how-does-this-code-work
|
||
var newArray = [];
|
||
var al = array.length;
|
||
for (var i = 0;i < al;i+=4) {
|
||
newArray[(i / 4) >> 0] = ((array[i]/(256*256*256*256))+(array[i+1]/(256*256*256))+(array[i+2]/(256*256))+(array[i+3]/256));
|
||
}
|
||
return newArray;
|
||
};
|
||
|
||
var normalizeFilterMatrix = function(response) {
|
||
// normalize responses to lie within [0,1]
|
||
var msize = response.length;
|
||
var max = 0;
|
||
var min = 1;
|
||
|
||
for (var i = 0;i < msize;i++) {
|
||
max = response[i] > max ? response[i] : max;
|
||
min = response[i] < min ? response[i] : min;
|
||
}
|
||
var dist = max-min;
|
||
|
||
if (dist == 0) {
|
||
//console.log('a patchresponse was monotone, causing normalization to fail. Leaving it unchanged.');
|
||
response = response.map(function() {return 1});
|
||
} else {
|
||
for (var i = 0;i < msize;i++) {
|
||
response[i] = (response[i]-min)/dist;
|
||
}
|
||
}
|
||
|
||
return response;
|
||
};
|
||
};
|
||
|
||
var mosseFilterResponses = function() {
|
||
|
||
var filters = [];
|
||
var responses = [];
|
||
var num_Patches = 0;
|
||
|
||
this.init = function(filter_input, numPatches, filterWidth, filterHeight) {
|
||
// load filters, make fft ready
|
||
|
||
for (var i = 0;i < numPatches;i++) {
|
||
var temp = {};
|
||
temp.width = filterWidth;
|
||
temp.height = filterHeight;
|
||
var filterLength = filterWidth*filterHeight;
|
||
var flar_fi0 = new Float64Array(filterLength);
|
||
var flar_fi1 = new Float64Array(filterLength);
|
||
for (var j = 0;j < filterLength;j++) {
|
||
flar_fi0[j] = filter_input[i][0][j];
|
||
flar_fi1[j] = filter_input[i][1][j];
|
||
}
|
||
temp.real = flar_fi0;
|
||
temp.imag = flar_fi1;
|
||
filters[i] = new mosse.mosseFilter();
|
||
filters[i].load(temp);
|
||
}
|
||
|
||
num_Patches = numPatches;
|
||
};
|
||
|
||
this.getResponses = function(patches) {
|
||
for (var i = 0;i < num_Patches;i++) {
|
||
responses[i] = filters[i].getResponse(patches[i]);
|
||
//responses[i] = logisticResponse(responses[i]);
|
||
responses[i] = normalizeFilterMatrix(responses[i]);
|
||
}
|
||
|
||
return responses;
|
||
};
|
||
|
||
var logisticResponse = function(response) {
|
||
// create probability by doing logistic transformation
|
||
var filter_size = response.length;
|
||
for (var j = 0;j < filter_size;j++) {
|
||
response[j] = 1.0/(1.0 + Math.exp(- (response[j]-1.0) ));
|
||
}
|
||
return response;
|
||
};
|
||
|
||
var normalizeFilterMatrix = function(response) {
|
||
// normalize responses to lie within [0,1]
|
||
var msize = response.length;
|
||
var max = 0;
|
||
var min = 1;
|
||
|
||
for (var i = 0;i < msize;i++) {
|
||
max = response[i] > max ? response[i] : max;
|
||
min = response[i] < min ? response[i] : min;
|
||
}
|
||
var dist = max-min;
|
||
|
||
if (dist == 0) {
|
||
console.log('a patchresponse was monotone, causing normalization to fail. Leaving it unchanged.');
|
||
response = response.map(function() {return 1});
|
||
} else {
|
||
for (var i = 0;i < msize;i++) {
|
||
response[i] = (response[i]-min)/dist;
|
||
}
|
||
}
|
||
|
||
return response;
|
||
};
|
||
};
|
||
|
||
var model_pca_20_svm = createCommonjsModule(function (module, exports) {
|
||
(function (global) {
|
||
'use strict';
|
||
|
||
var pModel = {
|
||
"scoring": {
|
||
"size": [20, 22],
|
||
"bias": -1.3971,
|
||
"coef": [-0.019443, -0.0084627, -0.005644, -0.0030633, 0.0050582, 0.0038672, 0.0073781, 0.0084088, 0.002108, 0.0088022, 0.0084634, 0.0091342, 0.0021678, 0.0057906, 0.010027, 0.010018, 0.011075, -0.00061696, -0.006084, -0.0094488, -0.012441, -0.003865, -0.0003105, 0.0031879, 0.0078183, 0.01096, 0.012101, 0.012289, 0.012872, 0.01342, 0.012863, 0.01257, 0.014429, 0.013339, 0.013248, 0.012998, 0.0080562, 0.001467, -0.011928, -0.0097909, -0.019951, -0.014602, -0.013175, -0.0060515, -0.0010407, 0.0054651, 0.010449, 0.014061, 0.015918, 0.016361, 0.021757, 0.017301, 0.014195, 0.012452, 0.010454, 0.0040883, -0.0014194, -0.0038499, -0.01077, -0.011758, -0.0046927, -0.0022134, -0.0039804, -0.012187, -0.011887, -0.0081984, 0.0028354, 0.007082, 0.012238, 0.016348, 0.02098, 0.017313, 0.011865, 0.0072371, 0.0028788, -0.0074673, -0.012293, -0.014834, -0.0083886, -0.0012772, -0.0043238, -0.00079996, -0.0090447, -0.015715, -0.016374, -0.018048, -0.012034, -0.007243, 0.00051252, 0.013092, 0.01857, 0.013099, 0.00085916, -0.0064555, -0.014574, -0.018222, -0.01806, -0.016666, -0.016743, -0.012862, -0.037409, -0.02683, -0.036693, -0.034788, -0.021885, -0.024485, -0.028069, -0.018632, 0.00033863, 0.015591, 0.021179, 0.015184, 0.0029429, -0.014375, -0.025568, -0.025718, -0.023219, -0.043064, -0.042245, -0.040561, -0.029282, -0.037097, -0.050209, -0.043175, -0.038799, -0.037913, -0.024597, -0.013392, 0.0026176, 0.01616, 0.02195, 0.018825, 0.0069274, -0.00671, -0.018259, -0.03115, -0.030987, -0.033628, -0.043437, -0.034535, -0.0027688, -0.0045493, -0.0029637, -0.0034067, -0.0058159, -0.0050003, -0.0052189, -0.0035094, 0.0048076, 0.01523, 0.017877, 0.01506, 0.0068301, -0.00074735, -0.0047129, -0.0020172, -0.0028734, -3.2165e-05, 0.0052576, 0.0043529, 0.016946, 0.015931, 0.013752, 0.01013, 0.0080481, 0.006654, 0.0068325, 0.0069577, 0.0040399, 0.011715, 0.01744, 0.014274, 0.0061486, 0.0064501, 0.0064155, 0.0087973, 0.0085371, 0.0087282, 0.011783, 0.016747, 0.022118, 0.020836, 0.018312, 0.015898, 0.017833, 0.015566, 0.014049, 0.0092416, 0.0081518, 0.011231, 0.012568, 0.012112, 0.0098382, 0.0073612, 0.0095541, 0.011728, 0.018126, 0.019469, 0.017399, 0.021144, 0.021132, 0.019499, 0.019593, 0.020281, 0.017451, 0.014159, 0.0062291, 0.0038367, 0.0070206, 0.0096561, 0.011406, 0.0073274, 0.0046726, 0.0052536, 0.00018758, 0.0081524, 0.01276, 0.0216, 0.023303, 0.023746, 0.018231, 0.020013, 0.019842, 0.0188, 0.010638, 0.00047498, -0.0071779, -0.0013493, 0.0015382, 0.0026092, 0.00054047, -0.00049664, -0.00046203, -0.005244, -0.0052152, -0.010003, 0.0014386, 0.012845, 0.020828, 0.023738, 0.015717, 0.016381, 0.014903, 0.007373, 0.0019356, -0.0062, -0.0091165, -0.008811, -0.01485, -0.0020888, 0.0052141, 0.0010527, -0.010322, -0.016208, -0.012439, -0.013087, -0.002797, 0.0023632, 0.011157, 0.018369, 0.0095224, 0.010552, 0.0065611, -0.0015315, -0.0032492, -0.003133, -0.00092774, -0.0020969, -0.0027526, 0.00094388, 5.9164e-05, -0.0017255, -0.0034421, -0.0045774, -0.0025305, -0.00038216, 0.00057079, 0.0031326, 0.0060238, 0.011585, 0.0016263, 0.0032288, 0.0012533, 0.00062748, 0.0023767, 0.0028182, 0.0023771, -0.0033403, -0.0048954, 0.0030747, 0.0062649, 0.0050231, 0.00044658, -0.0048271, -0.0040237, 0.0024988, 0.005458, 0.007288, 0.003601, 0.010569, -0.0045837, 0.00057936, 0.0010299, 0.0030015, 0.0036675, 0.0044718, 0.0068927, 0.0039124, 0.0071394, 0.010304, 0.012609, 0.0089589, 0.0086038, 0.0055408, 0.0046722, 0.0047921, 0.0058818, 0.0056047, 0.0054112, 0.0073265, -0.0027342, -0.0027247, -0.00349, -0.0079957, -0.0040761, -0.0020778, -0.0028479, -0.0039663, -0.0026161, 0.00092611, 0.0017427, 0.00055187, -0.0013723, -0.0045996, -0.0042015, -0.0054722, -0.0023417, -0.0025441, -0.0078778, 5.3403e-05, 0.0046873, 0.0021888, 0.0013036, -0.0013698, -0.015805, -0.016268, -0.018901, -0.017659, -0.011813, -0.0034436, -0.0023483, -0.0050111, -0.0050922, -0.015031, -0.020198, -0.021621, -0.018586, -0.018724, -0.0055723, 0.006448, 0.0026823, 0.006001, 0.0039986, 0.0050813, -0.0059114, -0.027746, -0.029251, -0.023067, -0.01721, -0.015963, -0.021075, -0.023667, -0.020006, -0.019063, -0.017792, -0.025323, -0.020971, -0.0034366, 0.0043351, 0.0084557, -0.0063213, -0.0012841, -0.001235, 0.004021, 0.0092275, 0.0045265, 0.0041316, 0.00077108, 0.0017581, -0.0011577, -0.0036195, -0.003732, -0.0016662, 0.0031111, 0.0014907, 0.0048443, 0.0059991, 0.0084751, 0.0055827, 0.0025145, -0.0046319, -0.0076183, -0.0046594, -0.0031254, 0.0074653, 0.010126, 0.0094747, 0.0035658, 0.0057834, 0.0038881, 0.001996, 0.0015056, 0.0011132, 0.0054877, 0.0047366, 0.0072106, 0.010078, 0.003857, -0.0031188, 8.695e-05, -0.021441, -0.0072103, -0.0078359, -0.0059407, -0.00161, 0.005345, 0.0071049, 0.010197, 0.0057578, 0.0074571, 0.0062731, 0.0076242, 0.0068437, 0.0070021, 0.0087251, 0.0089996, 0.0034314, -0.0019892, -0.0078966, -0.010925]
|
||
},
|
||
"path": {
|
||
"normal": [
|
||
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],
|
||
[15, 16, 17, 18],
|
||
[19, 20, 21, 22],
|
||
[23, 63, 24, 64, 25, 65, 26, 66, 23],
|
||
[28, 67, 29, 68, 30, 69, 31, 70, 28],
|
||
[34, 35, 36, 42, 37, 43, 38, 39, 40],
|
||
[33, 41, 62],
|
||
[44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 44, 56, 57, 58, 50, 59, 60, 61, 44],
|
||
27, 32
|
||
],
|
||
"vertices": [
|
||
// jawline
|
||
[0,1,23,0],
|
||
[1,23,66,1],
|
||
[1,2,66,1],
|
||
[2,66,26,2],
|
||
[2,26,35,2],
|
||
[2,35,36,2],
|
||
[2,36,3,2],
|
||
[36,44,45,36],
|
||
[3,4,44,3],
|
||
[3,44,36,3],
|
||
[4,44,55,4],
|
||
[4,5,55,4],
|
||
[5,55,54,5],
|
||
[5,6,54,5],
|
||
[6,53,54,6],
|
||
[6,7,53,6],
|
||
[7,8,53,7],
|
||
[8,52,53,8],
|
||
[8,9,52,8],
|
||
[9,51,52,9],
|
||
[9,10,51,9],
|
||
[10,50,51,10],
|
||
[10,11,50,10],
|
||
[11,38,50,11],
|
||
[11,12,38,11],
|
||
[12,38,39,12],
|
||
[12,31,39,12],
|
||
[12,31,70,12],
|
||
[12,13,70,12],
|
||
[13,28,70,13],
|
||
[13,14,28,13],
|
||
// right eyebrow
|
||
[14,15,28,14],
|
||
[15,28,67,15],
|
||
[15,16,67,15],
|
||
[16,67,29,16],
|
||
[16,17,29,16],
|
||
[17,68,29,17],
|
||
[17,18,68,17],
|
||
[18,68,30,18],
|
||
[18,30,33,18],
|
||
// below eyes
|
||
[30,40,69,30],
|
||
[39,40,69,39],
|
||
[39,31,69,39],
|
||
[26,65,35,26],
|
||
[34,35,65,34],
|
||
[25,34,65,25],
|
||
// left eyebrow
|
||
[22,25,33,22],
|
||
[22,25,64,22],
|
||
[21,22,64,21],
|
||
[21,24,64,21],
|
||
[20,21,24,20],
|
||
[20,24,63,20],
|
||
[19,20,63,19],
|
||
[19,23,63,19],
|
||
[19,23,0,19],
|
||
// below nose
|
||
[36,45,46,36],
|
||
[36,42,46,36],
|
||
[42,37,46,42],
|
||
[37,46,47,37],
|
||
[46,37,47,46],
|
||
[37,47,48,37],
|
||
[38,48,49,38],
|
||
[37,43,48,37],
|
||
[43,38,48,43],
|
||
[38,49,50,38],
|
||
// nose region
|
||
[22,18,33,22],
|
||
[40,41,30,40],
|
||
[25,33,41,25],
|
||
[33,41,30,33],
|
||
[25,34,41,25],
|
||
[41,40,62,41],
|
||
[34,41,62,34],
|
||
[34,35,62,34],
|
||
[35,36,62,35],
|
||
[36,42,62,36],
|
||
[42,37,62,42],
|
||
[37,43,62,37],
|
||
[43,38,62,43],
|
||
[38,39,62,38],
|
||
[39,40,62,39],
|
||
// mouth
|
||
[44,45,61,44],
|
||
[45,46,61,45],
|
||
[46,47,61,46],
|
||
[47,61,60,47],
|
||
[47,59,60,47],
|
||
[47,48,59,47],
|
||
[48,49,59,48],
|
||
[49,50,59,49],
|
||
[50,51,58,50],
|
||
[51,52,58,51],
|
||
[52,57,58,52],
|
||
[52,53,57,52],
|
||
[53,54,57,53],
|
||
[54,56,57,54],
|
||
[54,55,56,54],
|
||
[44,55,56,44],
|
||
// left eye
|
||
[23,63,27,23],
|
||
[63,24,27,63],
|
||
[24,64,27,24],
|
||
[64,25,27,64],
|
||
[25,65,27,25],
|
||
[65,26,27,65],
|
||
[26,66,27,26],
|
||
[66,23,27,66],
|
||
// right eye
|
||
[28,67,32,28],
|
||
[67,29,32,67],
|
||
[29,68,32,29],
|
||
[68,30,32,68],
|
||
[30,69,32,30],
|
||
[69,31,32,69],
|
||
[31,70,32,31],
|
||
[28,32,70,28]
|
||
]
|
||
},
|
||
"patchModel": {
|
||
"patchType": "SVM",
|
||
"bias": {
|
||
"raw": [-0.96431, -1.0357, -0.87499, -0.91633, -0.84504, -0.8443, -0.73852, -0.80871, -0.72654, -0.84368, -0.86982, -0.91726, -0.87371, -1.0267, -0.98146, -0.87301, -1.0204, -1.058, -1.2212, -0.88168, -1.0332, -1.0513, -1.2405, -1.1638, -1.067, -1.2392, -1.1877, -1.1235, -1.1355, -1.0802, -1.2402, -1.167, -1.112, -0.72954, -1.1239, -1.3005, -1.3147, -1.0871, -1.3362, -1.3247, -1.1149, -0.76288, -1.1216, -1.0986, -1.2995, -1.2784, -1.0059, -0.91233, -0.96292, -1.2527, -1.2946, -1.1523, -1.0005, -0.88771, -1.0142, -1.1965, -1.0387, -0.86719, -1.0089, -1.1238, -0.95069, -1.1224, -0.88922, -1.1176, -1.2249, -1.247, -1.2452, -1.0982, -1.2104, -1.2217, -1.1773],
|
||
"sobel": [-0.83935, -0.62721, -0.55884, -0.69956, -0.71112, -0.80041, -0.8006, -1.1137, -0.80072, -0.80019, -0.71985, -0.69966, -0.58347, -0.65659, -0.82586, -0.77759, -0.77233, -0.85808, -0.81938, -0.76428, -0.79996, -0.86702, -0.82302, -0.74264, -1.0086, -0.71718, -0.79528, -0.88281, -0.7815, -0.99671, -0.71226, -0.81128, -0.961, -1.2055, -0.86243, -0.75576, -0.78897, -0.96273, -0.78559, -0.78317, -0.89144, -1.0805, -0.81895, -0.82399, -0.61098, -0.70637, -0.83608, -0.86537, -0.86189, -0.70686, -0.60467, -0.63896, -0.60021, -0.60121, -0.60027, -0.66659, -0.70694, -0.80643, -0.70127, -0.69741, -0.85141, -0.69645, -1.0096, -0.88808, -0.88378, -0.80101, -0.80271, -0.90248, -0.8675, -0.82653, -0.82836],
|
||
"lbp": [-1.2775, -0.80122, -0.80009, -0.80001, -0.70684, -0.77174, -0.76476, -0.66899, -0.72273, -0.66941, -0.59957, -0.79986, -0.80009, -0.80015, -0.80045, -0.7709, -0.6573, -0.59981, -0.58309, -0.95297, -0.76546, -0.79994, -0.72741, -1.3172, -1.1408, -1.3378, -1.4003, -1.2901, -1.2837, -1.1569, -1.2168, -1.4004, -1.2905, -0.92838, -0.9268, -0.92117, -0.91104, -0.84307, -0.86336, -0.97589, -0.89165, -1.1977, -0.99448, -0.97474, -0.79614, -0.7713, -0.91142, -0.92086, -0.8659, -0.84975, -0.80661, -1.0506, -1.2192, -1.3183, -1.3092, -0.60808, -0.93976, -1.1058, -1.0279, -0.91383, -0.87452, -0.81875, -1.0651, -1.1856, -1.1889, -1.3461, -1.3969, -1.1909, -1.1383, -1.3736, -1.3913]
|
||
},
|
||
"weights": {
|
||
"raw": [
|
||
[-0.0064193, 0.029809, -0.026784, -0.022626, -0.067697, -0.33308, 0.028197, 0.18245, 0.015034, 0.067853, 0.066708, 0.043758, -0.049432, 0.028765, -0.02378, -0.019044, -0.14598, 0.076748, 0.10031, 0.022404, 0.039489, -0.069173, 0.064454, -0.035681, 0.029478, 0.01367, -0.040087, -0.16484, 0.06074, 0.13421, 0.024223, -0.023179, -0.023938, 0.00080564, -0.020188, 0.035394, 0.020506, 0.028993, -0.15876, 0.08638, 0.069612, -0.0051496, -0.086213, -0.11615, -0.10172, 0.050444, -0.010945, -0.001994, -0.082496, -0.19805, 0.14503, 0.10473, -0.054504, 0.058559, 0.02151, 0.017305, 0.054797, 0.08145, -0.015927, -0.026646, -0.29396, 0.26045, -0.014751, 0.013566, -0.052044, -0.068508, 0.026715, 0.01503, -0.0036696, 0.0038326, -0.029296, -0.21686, 0.23218, -0.0032704, 0.0010938, 0.022865, -0.0024711, 0.027139, -0.016799, 0.052897, 0.0068774, -0.11535, -0.20003, 0.26777, -0.012991, 0.014507, -0.028377, 0.0061822, 0.088922, -0.029269, 0.023549, 0.005012, -0.10302, -0.11265, 0.23622, -0.02319, 0.0035723, -0.034182, 0.05063, 0.010945, -0.0026519, -0.025155, 0.02853, -0.13116, -0.093256, 0.16421, -0.010547, 0.03555, -0.020259, 0.022467, 0.03417, 0.11908, -0.0015743, -0.06402, -0.22057, -0.07231, 0.30205, 0.023274, 0.063584, 0.042979, 0.11846],
|
||
[0.16668, -0.061056, 0.0069211, 0.017085, -0.22608, -0.37345, 0.079941, 0.16478, 0.022649, 0.052894, 0.029322, -0.065687, -0.017175, 0.053426, 0.13197, -0.038916, -0.22142, 0.17019, 0.037969, 0.032433, 0.013114, -0.004714, 0.014494, 0.016836, -0.035383, 0.064594, -0.16864, -0.18184, 0.22011, 0.017098, 0.044439, -0.065745, 0.10209, 0.012977, 0.019776, -0.020715, 0.037536, 0.073188, -0.25739, 0.1791, -0.012201, -0.012489, -0.027938, 0.09084, 0.056062, -0.029592, 0.083797, 0.026909, 0.028447, -0.26724, 0.17602, 0.057474, -0.021754, -0.016094, 0.034961, -0.066136, -0.086822, 0.021268, 0.024914, 0.083351, -0.21234, 0.14528, 0.052103, 0.0060527, 0.0041058, 0.073743, -0.063151, 0.071707, 0.050277, 0.059474, 0.041093, -0.23159, 0.039824, 0.035168, -0.039327, -0.046713, -0.029439, 0.030373, 0.010642, 0.035443, -0.064897, -0.032864, -0.15394, 0.011778, 0.17418, -0.054758, 0.047924, 0.054346, -0.0033549, 0.02359, -0.0246, 0.060655, 0.13657, -0.093663, -0.047444, 0.062873, -0.022728, -0.027266, 0.12949, -0.016065, -0.029023, -0.055703, -0.084011, 0.067583, -0.021201, -0.12022, 0.094859, -0.023786, -0.031181, -0.0045461, -0.00096878, 0.075436, 0.010017, 0.06898, 0.077148, 0.016059, -0.19045, -0.010877, 0.12221, -0.035116, 0.061957],
|
||
[0.0011017, -0.10083, 8.5948e-05, -0.004422, -0.09674, -0.13241, 0.13984, -0.0031379, 0.0684, 0.041645, 0.12466, 0.057469, 0.073611, -0.010864, 0.0048406, 0.016396, -0.021671, 0.044733, 0.067922, -0.015872, -0.055943, 0.019702, 0.018616, -0.005659, 0.034038, 0.034411, -0.10871, -0.08096, 0.067428, -0.01988, -0.013665, 0.03579, 0.066231, -0.045918, -0.0042019, 0.021127, 0.040188, -0.036664, -0.030093, 0.0088117, 0.002416, -0.038593, -0.031144, 0.035042, -0.018244, 0.018916, 0.0008242, 0.092475, 0.073297, -0.024312, -0.0027452, 0.067921, 0.0011866, -0.028294, 0.042812, -0.022453, 0.02261, -0.028251, 0.043263, 0.092532, -0.15324, 0.050211, 0.01393, -0.00089781, -0.063661, 0.0048486, 0.07858, 0.025758, -0.032352, 0.028485, 0.023621, -0.21175, 0.10461, 0.047598, -0.013273, -0.060312, 0.021931, -0.054666, 0.02459, -0.053143, 0.049928, -0.024453, -0.1367, 0.013882, 0.10709, -0.030277, 0.045489, 0.021159, 0.0045505, 0.05215, -0.031125, -0.025892, 0.051506, -0.15851, -0.077434, 0.14442, 0.025521, -0.01336, -0.032691, -0.050761, 0.0067267, 0.053583, -0.066091, 0.028319, -0.023395, -0.1219, 0.12641, 0.04107, -0.038345, -0.0051038, 0.011158, -0.025558, -0.015803, -0.01457, 0.058582, 0.048613, -0.29657, -0.067646, 0.13109, 0.05457, 0.062524],
|
||
[-0.025233, 0.022349, -0.072259, -0.18573, 0.061154, 0.16053, 0.035735, 0.032646, 0.049973, -0.017745, 0.12328, -0.0020676, 0.017463, 0.062789, -0.11705, -0.065255, 0.094525, 0.04495, -0.028764, -0.007559, -0.018043, -0.042767, 0.0064727, -0.024499, 0.015096, 0.01148, -0.22512, 0.1375, 0.042174, -0.00097974, 0.0053459, 0.0066959, 0.052939, 0.028663, 0.0083788, 0.00039142, 0.058936, -0.2056, 0.079503, 0.10224, -0.041138, 0.02733, -0.010752, -0.0022307, -0.0079242, -0.0082795, -0.032085, 0.086123, -0.12113, -0.12791, 0.13903, 0.008854, -0.035846, 0.0045791, -0.043587, -0.02644, 0.012179, 0.074042, 0.012884, 0.063138, -0.30013, 0.19885, 0.063816, 0.049735, -0.059942, 0.066082, 0.01826, 0.01778, -0.030632, -0.05294, 0.12681, -0.2386, -0.072937, 0.12737, 0.063566, -0.051173, 0.0097791, -0.0043407, -0.016156, -0.0091924, 0.050666, 0.0060985, 0.017308, -0.20368, 0.12046, 0.012913, -0.0092052, 0.035363, 0.030748, -0.0068483, 0.06077, -0.024831, 0.032205, 0.088513, -0.20132, 0.0025484, 0.14012, 0.019619, 0.03077, -0.044844, 0.010829, -0.018605, 0.0048701, -0.053836, 0.065656, -0.087834, -0.1002, 0.019099, 0.032626, 0.013786, 0.014593, -0.022453, 0.023627, 0.044568, 0.05182, 0.058961, 0.011809, -0.24303, -0.10331, 0.043122, 0.044784],
|
||
[-0.11132, -0.14268, -0.1132, 0.16617, 0.21669, 0.1458, 0.015659, 0.0813, -0.024809, 0.04021, 0.11478, 0.01893, -0.080897, -0.059337, -0.10482, 0.10574, 0.063141, 0.059506, -0.10686, 0.034082, -0.044929, -0.023391, -0.021034, 0.011729, -0.12519, -0.24525, 0.075036, 0.16915, -0.011043, 0.018698, 0.0089194, -0.0095742, 0.074951, 0.052516, 0.00076256, 0.14447, -0.16117, -0.29435, 0.21098, 0.15322, -0.031397, -0.073199, -0.00058139, 0.038374, 0.071661, -0.025228, 0.094356, -0.0055066, -0.31677, -0.17018, 0.20181, 0.038951, 0.020699, 0.0073525, 0.019251, 0.027713, 0.022208, 0.017802, 0.16127, -0.0097927, -0.39692, -0.016345, 0.084335, 0.12332, 0.046852, 0.0026368, -0.015618, -0.0094365, -0.026158, 0.093092, 0.015837, -0.036104, -0.25195, 0.066519, 0.088769, -0.054177, 0.11363, -0.074336, 0.026412, -0.0069935, -0.011837, 0.20496, 0.040653, -0.10952, -0.19526, -0.02669, 0.025635, 0.084142, 0.081561, 0.0339, -0.041778, -0.0095017, 0.014147, -0.0083457, 0.066156, -0.13608, -0.0752, -0.099487, 0.097955, -0.068031, -0.028817, 0.062117, -0.05651, -0.016458, 0.078179, -0.011548, 0.054587, -0.017563, -0.072691, -0.034856, 0.058574, -0.060289, -0.012303, 0.052155, 0.075228, 0.053727, 0.0021832, -0.0023449, 0.069002, -0.05515, -0.18138],
|
||
[-0.23224, 0.079035, 0.20679, 0.17117, 0.060393, 0.070072, -0.061905, 0.10747, 0.014332, -0.032562, 0.096137, -0.11702, -0.18648, -0.072636, 0.12519, 0.070887, -0.032713, -0.014133, 0.0038162, 0.065966, 0.020457, 0.051334, -0.0011168, -0.086504, -0.17856, -0.024882, 0.17292, 0.076636, 0.095776, -0.076644, -0.054109, -0.03761, 0.10647, 0.005106, 0.056304, -0.028155, -0.31729, -0.058091, 0.11556, 0.065723, 0.030551, 0.041747, -0.069588, 0.092461, 0.052299, -0.010486, 0.011062, -0.045253, -0.23598, -0.070893, 0.10681, 0.11991, -0.020183, 0.00057273, 0.096563, 0.084394, 0.0061097, 0.052438, 0.012128, -0.025706, -0.37426, -0.12769, 0.057044, 0.11342, 0.089909, 0.088759, -0.017367, 0.058574, 0.0024242, 0.0811, 0.071615, -0.015636, -0.21764, -0.20281, -0.10017, 0.076481, 0.072072, 0.074832, -0.071669, 0.0033343, -0.020106, 0.12485, 0.088742, 0.012539, -0.080372, -0.20668, -0.042825, -0.041961, -0.011319, 0.0087351, -0.0073466, -0.014035, 0.060981, 0.0044957, 0.060136, 0.12863, -0.043407, -0.17199, -0.12412, -0.067878, -0.014543, 0.013304, 0.086616, -0.050869, 0.059037, -0.030082, -0.039151, -0.01341, 0.082024, -0.1843, 0.04382, 0.031005, 0.010111, -0.0064174, 0.024543, 0.0033265, 0.04021, 0.1055, 0.066466, 0.049202, -0.093932],
|
||
[-0.12203, -0.03698, 0.12683, 0.10063, 0.082154, 0.031377, 0.076193, 0.029644, 0.067195, 0.014606, 0.21693, -0.091991, -0.11496, -0.057854, 0.026983, 0.053704, -0.027394, 0.062051, -0.014065, -0.030464, 0.050223, 0.069522, -0.047915, -0.076313, -0.10543, -0.069963, 0.063888, 0.047704, 0.049626, 7.9371e-07, 0.066938, 0.022331, -0.013204, -0.051208, 0.017252, -0.16856, -0.081718, -0.051493, 0.044258, 0.079861, 0.040257, 0.061168, -0.044454, 0.076059, 0.024485, 0.023739, 0.022211, -0.039096, -0.26994, -0.1381, 0.10638, 0.074165, 0.13611, 0.08862, 0.023943, 0.059455, 0.018811, 0.13333, 0.019081, 0.040954, -0.19369, -0.33097, -0.31537, -0.051012, 0.10153, 0.10646, 0.014631, -0.0037912, -0.031174, 0.12574, 0.082747, 0.1391, 0.015618, -0.09701, -0.25737, -0.2389, -0.39201, 0.014632, -0.0049577, 0.032249, 0.019906, 0.0090031, 0.026111, 0.062898, 0.14639, 0.10175, -0.0083665, -0.22695, 0.016645, 0.01064, -0.033903, -0.05887, 0.022391, 0.010862, 0.028661, -0.0089732, 0.052004, 0.030893, -0.066299, -0.045463, -0.036534, 0.058255, -0.090301, 0.087529, -0.048367, -0.02187, -0.061935, 0.022843, 0.087099, -0.038226, 0.042583, 0.046404, 0.038044, 0.01328, -0.024476, 0.042648, 0.021205, 0.023541, -0.0073299, 0.0090777, 0.072704],
|
||
[0.076135, 0.075929, 0.10248, 0.12142, 0.061859, 0.025464, 0.048676, 0.030286, 0.11129, 0.19455, 0.11003, 0.074607, 0.013898, -0.012869, 0.03812, 0.0071485, -0.03739, 0.027892, -0.0040181, 0.051192, -0.051415, -0.065948, -0.077216, 0.078792, -0.01494, -0.042428, -0.022774, 0.0095521, 0.089225, 0.0026288, 0.027795, -0.011245, 0.002779, -0.084646, 0.10851, 0.064787, 0.071775, 0.10157, 0.13539, 0.022702, 0.081383, 0.10182, 0.13415, -0.067255, -0.252, -0.13138, -0.16366, -0.018741, -0.062883, -0.022204, -0.072308, -0.060022, -0.15902, -0.23762, -0.27876, -0.040264, -0.080156, -0.054339, -0.19775, -0.28232, -0.23354, -0.28871, -0.14102, -0.10254, -0.091079, -7.6022e-05, 0.084334, 0.025777, 0.027111, 0.12587, 0.17095, 0.12108, 0.23254, 0.022508, 0.10869, 0.10336, -0.0044697, -0.019044, -0.038539, 0.059623, -0.028373, -0.02936, 0.00087517, -0.065918, -0.069356, 0.02358, 0.021727, 0.039571, -0.029877, 0.038706, 0.054323, -0.04361, -0.014678, -0.039397, 0.028347, 0.13841, -0.090661, 0.036896, -0.037229, -0.0098949, -0.045239, -0.027745, 0.04194, 0.010554, -0.12123, -0.0087493, -0.022343, -0.036723, -0.074235, 0.13503, 0.046152, -0.00089713, 0.055905, 0.072801, -0.014134, 0.047446, 0.085859, 0.05507, 0.022279, 0.064172, -0.070766],
|
||
[0.118, 0.07821, 0.12816, -0.020597, 0.014337, 0.11621, 0.089056, 0.054438, 0.040501, 0.077089, -0.16589, 0.098328, -0.028103, -0.026588, 0.024055, 0.072814, -0.012894, 0.081294, -0.019639, -0.059461, -0.070719, -0.12759, 0.029993, 0.0019697, 0.026357, 0.077456, -0.0065799, 0.034984, -0.011141, 0.037206, -0.078048, -0.042937, -0.12754, 0.028459, -0.025141, 0.032111, 0.042952, 0.11294, 0.020048, 0.051516, -0.23573, -0.072308, -0.019056, 0.0030321, 0.096971, 0.07581, 0.11716, 0.10957, -0.0024781, -0.064158, -0.26848, -0.059754, 0.061911, -0.021664, 0.08611, 0.053234, 0.17175, 0.028047, -0.085903, -0.33611, -0.28144, -0.008033, 0.10514, -0.016383, 0.068947, 0.032998, -0.25751, -0.14537, -0.35542, -0.31544, -0.015389, 0.25816, 0.089607, 0.024874, 0.06881, 0.03489, 0.0094402, -0.3317, -0.084022, 0.051, 0.11407, 0.12381, 0.061542, 0.024538, -0.051413, -0.037969, -0.083159, 0.060974, -0.069683, 0.013137, 0.054335, 0.086376, 0.025768, -0.030285, 0.0046746, 0.014048, 0.0039043, -0.013244, -0.010235, -0.034349, 0.089307, 0.023673, -0.074064, -0.039416, -0.051468, 0.0066514, -0.0056021, 0.03753, 0.022918, -0.028514, 0.047001, 0.011664, 0.031577, 0.036743, 0.0001679, -0.032413, 0.061177, -0.014966, 0.027964, 0.049596, 0.017494],
|
||
[0.095112, -0.061598, -0.027849, 0.16285, 0.011485, 0.088228, 0.033477, 0.21312, 0.12563, 0.0056585, -0.19669, 0.12202, 0.065004, -0.064638, 0.0076011, -0.014993, -0.013714, 0.06519, 0.060502, -0.0073205, -0.15837, -0.11375, -0.01122, -0.037241, -0.0035346, 0.014184, -0.018805, 0.0022003, 0.086304, 0.05073, -0.19348, -0.024337, -0.022104, 0.11856, -0.0040747, -0.021636, 0.032835, 0.080034, 0.18177, 0.040195, -0.27027, -0.046765, 0.0088521, -0.0095398, 0.073838, 0.0022341, 0.080947, 0.064911, 0.068853, 0.052927, -0.41011, -0.0033883, -0.07662, 0.028027, 0.076992, 0.135, 0.0010836, -0.0094522, 0.11898, -0.10886, -0.31839, -0.079537, 0.088035, -0.019948, 0.055031, 0.017356, 0.11549, 0.047319, 0.0035589, -0.1909, -0.16923, -0.10344, 0.11611, 0.03014, 0.092038, -0.00052811, -0.0199, 0.11041, -0.11355, -0.13266, -0.16828, -0.036676, 0.078177, 0.065049, 0.061266, -0.045421, 0.038674, 0.026641, -0.10482, -0.10701, -0.065259, 0.1028, 0.025141, 0.078995, 0.055586, -0.028237, -0.0025877, 0.033127, -0.028093, -0.19115, -0.084372, 0.032752, 0.044573, 0.07857, -0.076168, -0.011918, 0.038863, -0.044585, -0.041775, 0.066544, -0.20856, 0.16839, 0.028096, 0.029747, -0.028107, 0.040207, -0.0050223, 0.061683, 0.11123, 0.002529, -0.021203],
|
||
[0.090436, -0.042297, 0.079436, 0.038426, 0.018479, 0.15189, 0.24325, 0.11802, -0.080157, -0.21178, -0.13219, 0.018475, 0.092018, -0.050722, -0.068375, -0.015375, 0.03148, 0.087358, -0.068354, -0.14664, -0.00015826, 0.015682, 0.051709, 0.0087471, -0.082976, 0.061059, 0.055713, 0.11256, 0.1201, -0.2412, -0.014823, -0.021321, -0.0064827, 0.011517, -0.0029379, -0.036512, 0.040278, 0.051444, 0.17561, -0.1656, -0.17724, 0.066641, 0.025444, 0.011885, 0.028951, -0.06227, 0.008151, 0.074139, 0.15952, -0.023426, -0.39782, -0.10909, 0.19811, -0.039694, 0.074717, 0.067657, 0.0023721, 0.050106, 0.11669, 0.10445, -0.18066, -0.13733, 0.12306, 0.037249, 0.040395, -0.013511, -0.012464, -0.011253, 0.057264, 0.064124, -0.18291, -0.28694, 0.16662, 0.052134, -0.03452, -0.0020693, 0.067413, 0.069379, 0.017341, 0.1125, -0.12114, -0.16394, 0.042619, 0.0082442, 0.032212, 0.0013431, 0.059794, -0.041854, 0.16142, 0.02529, -0.092772, -0.2216, -0.01754, 0.044685, 0.076526, 0.056282, -0.038323, -0.024136, -0.063727, 0.10195, -0.11144, -0.13769, 0.050856, 0.011876, 0.075788, -0.07629, -0.081411, 0.072942, 0.068768, -0.033998, -0.1679, -0.13094, 0.030093, -0.020742, 0.00030251, 0.088643, 0.052492, 0.087008, 0.024693, -0.11263, 0.075664],
|
||
[0.10662, -0.024041, 0.023732, 0.012547, 0.0662, 0.072881, 0.14196, -0.18846, -0.10001, -0.030399, 0.0065084, 0.035396, -0.016756, 0.039963, -0.032921, -0.0052279, 0.14555, -0.045218, -0.15713, 0.019388, 0.069073, -0.029885, -0.013668, 0.035507, -0.033905, -0.066398, 0.069367, 0.099068, -0.16177, -0.049744, 0.049417, 0.11584, -0.0099765, -0.0058946, 0.024852, -0.022954, 0.035365, 0.070911, 0.16507, -0.20261, 0.0040823, -0.020995, -0.01738, -0.068169, -0.016583, 0.016335, 0.017415, -0.06551, 0.17533, -0.077798, -0.16426, 0.067991, 0.015164, 0.0078509, 0.023953, -0.022724, 0.006469, -0.0046863, 0.023956, 0.17797, -0.14584, -0.064279, 0.0072859, 0.10176, -0.053758, 0.03183, -0.0069311, 0.011744, -0.02288, 0.061704, 0.073774, -0.20953, 0.022857, 0.054729, -0.019112, -0.03021, 0.0030313, 0.015874, -0.0064523, -0.02938, 0.17845, -0.071105, -0.12963, 0.074504, 0.028226, 0.028593, -0.019591, 0.026275, 0.049329, -0.0025258, 0.015184, 0.079378, -0.19506, -0.034582, 0.039284, -0.060962, 0.032105, 0.0010087, -0.0029092, 0.0013445, 0.0050237, 0.10379, 0.022548, -0.11489, -0.022121, 0.043655, 0.0067757, 0.025228, -0.019274, 0.021907, 0.076111, 0.017668, -0.015509, -0.23798, -0.10029, 0.068962, -0.0095808, 0.071808, 0.0096925, 0.0089571, -0.0082775],
|
||
[0.14712, 0.048704, 0.038282, 0.073332, 0.092603, -0.069406, -0.18039, 0.030462, -0.076528, -0.02846, 0.0039885, 0.091531, -0.097047, -0.021416, 0.022881, 0.1163, -0.11091, 0.0052601, -0.0013446, 0.019773, -0.010681, 0.087902, -0.0062328, -0.022953, -0.011871, 0.0057627, 0.09059, -0.032591, -0.02872, 0.018765, 0.034198, 0.092483, -0.039036, 0.046061, -0.03192, 0.035976, -0.02143, 0.087312, -0.10752, 0.0015208, 0.010464, 0.017721, -0.05437, -0.041949, 0.025353, -0.033214, -0.021243, -0.0008824, 0.12799, -0.14588, 0.0049155, 0.11545, 0.024394, 0.026837, -0.007026, -0.020081, 0.023705, 0.02295, -0.053385, 0.083134, -0.19191, 0.028256, 0.051623, 0.026883, 0.0083776, -0.005671, -0.015188, -0.052822, 0.0039064, 0.0052812, 0.10528, -0.15535, 0.012627, 0.033272, -0.016016, 0.047323, 0.029676, 0.062672, 0.02036, -0.056328, 0.062032, 0.13944, -0.16288, -0.062736, 0.0089074, -0.0034475, -0.016188, -0.058358, -0.038566, -0.0077422, -0.045255, 0.13887, 0.084802, -0.19493, 0.067962, -0.039669, -0.042999, 0.056923, 0.02131, 0.023652, 0.005385, -0.031872, 0.12124, -0.096718, -0.094641, 0.050053, -0.041096, 0.067669, -0.01302, -0.017936, 0.030885, 0.017941, 0.12318, 0.082612, -0.19694, -0.084587, -0.0036588, 0.046191, -0.015214, -0.037797, -0.03766],
|
||
[0.02879, 0.024919, 0.046184, 0.11407, 0.12089, -0.33168, -0.30199, 0.075505, 0.015981, -0.030246, 0.070778, 0.021705, -0.014784, -0.092797, 0.073387, 0.21513, -0.13136, -0.04101, 0.0027233, 0.10444, 0.019235, 0.026668, 0.077454, 0.037705, 0.028346, -0.0099782, 0.16392, -0.12998, -0.16954, 0.044202, 0.022535, -0.08057, 0.028323, 0.030852, -0.057281, -0.030642, 0.02744, 0.19419, -0.21394, -0.10823, 0.078776, -0.054726, -0.0018936, 0.027554, 0.12724, -0.053402, 0.032579, -0.0053669, 0.14926, -0.15555, 0.0070015, 0.047597, 0.15763, -0.0017752, -0.07848, 0.047381, -0.054017, -0.01081, 0.03169, 0.23863, -0.17968, -0.0025415, -0.0044923, -0.03345, 0.073251, -0.0025313, 0.04727, -0.018764, -0.085707, 0.037456, 0.24243, -0.25409, 0.043294, 0.040148, 0.013087, -0.019853, -0.023226, 0.030177, 0.030922, -0.040953, -0.0059331, 0.059824, -0.2284, 0.053836, 0.039215, -0.019168, 0.036601, 0.0071217, 0.0055195, 0.017118, -0.010329, 0.022892, 0.10731, -0.081072, -0.052731, 0.020939, 0.027473, 0.0087321, -0.011973, 0.029541, 0.025438, -0.0032417, 0.092169, -0.063485, -0.084864, -0.0055455, 0.04783, -0.038729, 0.021656, -0.048404, 0.081106, -0.050253, 0.062539, 0.050009, -0.066834, -0.22863, 0.13881, 0.081957, -0.036534, -0.019724, 0.074253],
|
||
[0.080975, 0.05653, 0.032548, 0.10153, 0.046435, -0.21467, -0.20895, -0.014893, 0.020894, -0.0067217, 0.035252, -0.0060355, -0.027461, 0.010096, 0.054592, 0.16829, -0.17463, 0.021868, -0.041396, 0.01938, 0.012675, -0.027695, -0.041244, 0.016052, -0.0010187, 0.14438, 0.078408, -0.21215, -0.057681, 0.12665, -0.12395, 0.071773, 0.0075741, -0.051866, 0.038445, -0.11282, -0.013662, 0.21925, -0.14332, -0.054997, 0.0029603, 0.047503, -0.028486, 0.020467, -0.10612, 0.011156, 0.013002, 0.023296, 0.26377, -0.25931, -0.081091, -0.00039674, 0.042663, -0.0029479, -0.026706, -0.08931, -0.0050439, -0.005502, -0.045367, 0.23013, -0.090116, -0.21359, 0.069011, 0.019878, 0.0044609, 0.029591, -0.035017, -0.01693, -0.028665, -0.014127, 0.23223, 0.020022, -0.25101, 0.089307, -0.0077045, 0.033183, 0.0097764, 0.034273, 0.020165, -0.010043, 0.0084138, 0.23503, -0.02443, -0.16832, 0.00052901, -0.023488, 0.096816, -0.036178, 0.0026701, 0.0060485, -0.03295, -0.029843, 0.14656, 0.035391, -0.20847, -0.057892, -0.01027, 0.076538, 0.082782, 0.11259, -0.016599, -0.093948, -0.025158, 0.13711, 0.13285, -0.2231, -0.12554, 0.02511, -0.030215, -0.011749, 0.144, 0.043164, 0.085941, 0.035185, 0.17622, 0.19444, -0.23633, -0.077389, 0.014639, 0.0228, 0.083546],
|
||
[0.12261, 0.16705, 0.19069, 0.064201, -0.00016272, -0.065943, -0.0079351, -0.057893, -0.054006, -0.10459, -0.05418, 0.06699, -0.09922, 0.062446, 0.090945, 0.028278, -0.047069, -0.007151, -0.050253, -0.014707, 0.09548, -0.11062, -0.14256, 0.026859, -0.19465, 0.18485, 0.1789, 0.15499, -0.028242, 0.044796, -0.058444, 0.013625, -0.079693, -0.1145, -0.12378, -0.065906, -0.15742, 0.12985, 0.20266, 0.038497, -0.025654, 0.075726, -0.022083, -0.085487, 0.032081, -0.16479, -0.22038, -0.22297, -0.38061, 0.12776, 0.3174, -0.015834, 0.055459, 0.011929, 0.024193, 0.090971, 0.16123, 0.0089118, -0.017295, -0.35854, -0.48144, 0.033786, 0.12099, -0.022527, 0.049459, -0.029491, 0.25613, 0.11469, 0.12808, 0.11403, 0.30507, -0.19905, -0.20054, 0.039641, -0.043767, 0.03361, 0.0098997, 0.11272, 0.18547, 0.15244, 0.061145, 0.11826, 0.12075, -0.019667, -0.00048386, -0.12176, 0.036172, -0.11869, -0.12502, 0.035905, 0.01784, 0.060859, 0.096352, -0.049212, -0.045373, -0.055897, -0.0023764, -0.038383, 0.0064116, -0.17559, 0.002325, -0.051727, -0.057791, 0.013791, 0.13645, -0.010155, -0.017626, 0.073653, 0.00069329, -0.050008, -0.31928, -0.18353, -0.085538, -0.073096, 0.09019, 0.10661, 0.090351, 0.13292, -0.011857, 0.052935, 0.043013],
|
||
[0.063687, -0.027474, 0.040793, 0.033944, 0.067494, -0.084203, -0.024907, 0.0091584, -0.06882, 0.0031107, -0.097109, 0.11878, 0.0371, -0.089403, 0.021829, 0.050693, 0.01234, -0.023686, -0.02684, 0.034846, -0.016166, -0.027865, 0.12116, 0.0037369, 0.13532, 0.021592, 0.018171, 0.015073, 0.070401, 0.0022894, -0.038532, 0.073413, -0.029637, 0.14797, 0.12294, 0.068355, 0.16847, 0.092089, 0.12471, 0.06941, 0.0028282, 0.028941, -0.082406, -0.09934, -0.0023105, -0.044478, 0.00088096, -0.085099, -0.0064586, -0.044295, 0.10096, 0.14859, 0.1447, 0.078676, 0.041103, -0.18575, -0.17065, -0.17155, -0.25171, -0.27337, -0.21265, -0.17173, 0.027527, 0.05618, 0.12158, 0.079338, -0.12195, -0.13969, -0.026572, -0.07417, -0.14513, -0.115, -0.18279, -0.24715, -0.13748, -0.068393, 0.098672, -0.1674, 0.075274, -0.0044961, 0.1326, 0.31234, 0.15518, 0.06646, -0.015468, -0.030267, -0.05626, -0.038216, 0.067129, 0.12319, 0.18469, 0.086525, 0.095784, 0.15931, 0.07563, 0.11757, -0.076016, -0.011817, -0.051957, 0.17489, 0.14148, 0.086957, 0.081058, 0.046959, 0.049182, 0.003411, 0.015581, 0.026515, -0.062879, -0.056347, -0.093781, -0.23964, -0.13259, -0.084366, -0.12791, -0.070084, -0.044962, 0.049251, 0.072447, -0.016197, 0.10029],
|
||
[0.022795, 0.031855, 0.024367, -0.088291, 0.072323, -0.062925, -0.0040861, -7.973e-05, 0.013966, -0.025131, 0.017076, 0.043144, -0.077791, 0.048534, 0.007217, -0.035475, 0.035692, -0.0053752, 0.043054, 0.036426, 0.026332, 0.018922, 0.034425, -0.043307, -0.023769, 0.080994, 0.0014023, 0.068008, 0.095105, 0.10798, 0.024411, 0.043708, 0.05651, 0.038013, -0.016919, 0.13076, 0.11446, 0.21239, 0.28796, 0.092687, 0.096764, 0.070116, 0.046945, -0.02811, 0.18644, 0.077871, 0.11792, -0.035608, -0.036649, -0.13441, -0.12092, -0.15624, -0.17026, -0.12518, -0.14934, 0.15932, 0.04839, -0.10848, -0.12256, -0.19726, -0.15716, -0.21753, -0.20063, -0.092267, -0.020573, -0.071637, 0.063398, -0.10021, -0.1558, -0.14944, -0.11921, -0.081202, -0.11695, -0.0067284, -0.046838, -0.0077863, 0.019981, -0.12167, -0.11523, -0.057472, -0.052229, -0.046891, 0.061574, 0.11811, 0.17402, 0.13372, 0.19273, 0.13838, -0.043682, -0.035941, 0.011031, 0.066035, 0.16274, 0.10016, 0.15019, 0.051561, 0.058406, 0.020233, 0.080342, -0.066884, 0.043092, 0.061076, 0.043765, 0.031379, -0.0054635, 0.039411, -0.017169, -0.027826, -0.0047149, 0.036104, 0.054667, 0.04624, -0.045456, 0.049402, -0.047668, -0.014225, -0.059509, -0.13174, -0.010384, -0.087812, -0.077603],
|
||
[-0.032356, 0.018327, 0.017296, -0.027671, -0.0076809, -0.041377, -0.015062, -0.043781, 0.036477, 0.044229, 0.18106, 0.042891, -0.020853, -0.024082, 0.041552, -0.014679, -0.040842, 0.017432, 0.0070217, 0.1293, 0.15511, 0.2479, 0.015244, -0.016083, -0.051589, -0.092487, 0.045744, 0.057517, 0.1687, 0.26355, 0.13879, 0.14252, -0.078456, 0.0045618, -0.049966, 0.080369, 0.050147, 0.067477, 0.13152, 0.16709, 0.014141, -0.095378, -0.20288, -0.39934, 0.018783, 0.055848, -0.005273, 0.094884, 0.092662, 0.026342, -0.086839, -0.21346, -0.28211, -0.14896, -0.15888, 0.014524, 0.064105, 0.015209, 0.094836, 0.056563, -0.16636, -0.24132, -0.25962, -0.13982, -0.15532, 0.011695, 0.032011, -0.037561, 0.066608, -0.0076642, -0.04071, -0.04226, -0.090012, 0.069267, 0.15115, 0.15845, 0.15654, 0.057963, -0.031603, -0.0055733, -0.063345, 0.014275, 0.031681, 0.03982, 0.093416, 0.11919, 0.039897, 0.1715, 0.0032917, 0.0044847, -0.021099, 0.02581, -0.13673, -1.2468e-05, 0.045304, -0.052655, 0.020909, 0.08479, -0.063339, 0.091377, 0.072522, -0.07921, -0.067294, -0.04391, 0.029396, 0.023947, 0.017167, 0.030553, -0.058622, -0.0098427, 0.20196, -0.023669, -0.014002, -0.037283, -0.023078, 0.01559, -0.013169, -0.031499, -0.039786, 0.054516, -0.040513],
|
||
[-0.11875, -0.082293, -0.095608, -0.020578, -0.051846, -0.010859, -0.022717, 0.12821, 0.20208, 0.10327, 0.19572, 0.018529, -0.062344, 0.036177, 0.04107, 0.0079762, -0.10314, 0.0064955, 0.12399, 0.024168, 0.030885, -0.074999, -0.0404, -0.026348, -0.0040063, -0.098214, -0.033436, 0.11941, 0.25556, 0.03896, -0.072604, -0.080306, -0.10381, -0.05732, 0.015516, 0.062556, -0.073829, 0.092347, 0.19891, 0.16973, -0.044618, -0.17459, -0.16856, -0.12959, 0.0028653, 0.039282, 0.051811, 0.05423, 0.13871, 0.27288, -0.31439, -0.4393, -0.14064, -0.11423, 0.047797, -0.065062, -0.0042604, 0.029463, 0.025105, 0.14743, -0.34598, -0.42017, 0.035073, 0.079596, 0.13323, 0.1334, -0.061958, 0.06892, -0.038536, 0.047215, -0.14334, -0.21161, 0.14176, 0.17098, 0.14175, 0.037859, 0.31086, -0.029229, 0.01515, 0.034324, -0.011782, -0.077397, 0.00082481, 0.042535, 0.049854, 0.13021, 0.20732, 0.070042, -0.037027, -0.031792, -0.064806, -0.082587, -0.074375, 0.013859, 0.15057, 0.13055, 0.023194, -0.079371, -0.076747, -0.056515, 0.070663, -0.082981, 0.038591, 0.036885, 0.10304, 0.028582, -0.11389, -0.023276, -0.020208, -0.1467, 0.023731, -0.018263, 0.11113, 0.01781, 0.20204, 0.050785, 0.06147, -0.0075508, 0.00039041, -0.14722, -0.3692],
|
||
[-0.11817, 0.050808, 0.027086, -0.058324, -0.069752, -0.021027, -0.0010775, 0.07435, -0.0083997, 0.024897, 0.087436, -0.019099, -0.046098, -0.039781, 0.0088895, 0.0075569, -0.019311, 0.055368, 0.044256, 0.0032692, -0.010373, 0.072601, -0.0081004, -0.024375, -0.0051757, -0.0076083, -0.038608, 0.092478, 0.00029774, 0.041278, 0.081716, 0.02474, 0.18486, -0.025645, -0.025676, -0.069747, 0.054381, 0.049825, 0.13027, 0.1711, 0.059608, 0.089855, 0.095437, 0.15876, -0.059134, 0.090977, 0.095109, 0.11556, 0.17971, 0.033055, -0.035525, -0.10878, -0.050794, -0.076391, -0.056758, 0.13477, 0.12869, 0.13014, 0.0063887, -0.089729, -0.31295, -0.28325, -0.22477, -0.21457, -0.13308, -0.26981, 0.0050166, -0.080398, -0.085216, -0.18399, -0.23965, -0.12035, -0.076984, -0.01802, -0.023775, -0.10766, -0.167, 0.015041, 0.04251, -0.12958, 0.029351, -0.019786, 0.12164, 0.19449, 0.18157, 0.13918, 0.036259, -0.05933, -0.053816, -0.058012, -0.024991, -0.039656, 0.16051, 0.14621, 0.076529, 0.20618, 0.08613, 0.23683, 0.178, -0.031569, -0.011339, 0.0075929, 0.036795, 0.033074, 0.024137, 0.025796, 0.012497, -0.019553, 0.05285, 0.090518, -0.012948, 0.077672, 0.03561, 0.077328, -0.037094, -0.0047151, -0.059217, -0.13706, -0.084998, -0.20364, -0.1024],
|
||
[0.0032467, -0.0050619, -0.021818, 0.020874, -0.023531, 0.032369, 0.02328, -0.069079, 0.028859, -0.022912, 0.03505, 0.021373, 0.043177, 0.031001, -0.022728, -0.04113, -0.011957, -0.0073658, 0.019513, 0.056489, -0.018007, 0.023594, -0.060975, 0.13275, -0.020289, 0.093323, 0.18376, 0.093308, 0.017002, 0.029001, -0.03262, -0.077144, -0.026313, -0.036376, 0.030017, 0.081068, 0.17134, 0.14545, 0.14412, 0.2509, 0.18953, 0.10962, 0.11869, 0.097649, 0.017539, -0.16077, -0.089442, -0.16627, -0.19946, -0.12054, -0.099975, -0.0030788, 0.17592, 0.0094048, 0.24138, -0.10617, -0.041295, -0.18663, -0.10129, -0.15612, -0.19263, -0.26517, -0.21075, -0.1524, -0.016384, 0.10147, 0.0087661, 0.033117, 0.022842, -0.12277, -0.10457, -0.046811, -0.05131, -0.12955, -0.085883, -0.21065, 0.067424, 0.07409, 0.082147, 0.095757, 0.12801, 0.19242, -0.010488, 0.002463, -0.014173, -0.069939, -0.071938, -0.073642, 0.031404, 0.11052, 0.082629, 0.072224, 0.081941, 0.14731, 0.13688, 0.093928, 0.026163, -0.034217, -0.096254, 0.052569, 0.058021, -0.069487, 0.10387, 0.016885, 0.0057524, -0.033858, 0.0992, 0.0027588, 0.028883, 0.0077988, -0.02613, -0.10093, -0.059725, -0.16032, -0.026296, -0.081817, 0.019856, 0.011593, 0.033536, -0.03719, 0.039209],
|
||
[0.15106, 0.0077706, 0.040428, -0.0017943, -0.041654, -0.068591, 0.0062988, 0.026863, -0.032304, -0.019033, 0.007998, 0.27836, 0.068631, 0.10034, 0.09688, -0.0033598, 0.054326, -0.055942, -0.0054187, -0.0077552, 0.0045759, -0.00017646, -0.009476, 0.20486, 0.23126, 0.16314, 0.098539, -0.0099257, 0.053672, -0.088889, 0.023933, 0.012746, 0.013848, -0.39204, -0.21351, -0.17917, 0.010687, 0.16695, 0.2016, 0.16449, 0.011415, -0.026561, 0.0072565, -0.0063508, -0.16007, -0.15189, -0.22446, -0.21975, -0.14908, -0.011673, 0.10656, 0.16673, 0.027289, -0.0080445, 0.075809, 0.023838, -0.060319, -0.15809, -0.1508, -0.21785, -0.18411, -0.034762, -0.0030781, 0.14435, 0.098192, 0.0189, 0.14331, 0.13334, 0.10003, -0.011991, -0.081184, -0.091853, -0.059061, -0.030702, 0.0091318, 0.030031, -0.029166, 0.11125, 0.10479, 0.060406, 0.13088, 0.094447, 0.046888, -0.099894, 0.00043867, -0.079159, -0.030958, 0.051181, 0.036532, -0.026314, 0.048772, -0.019627, 0.041812, 0.020275, -0.035311, -0.0357, 0.037776, -0.01539, 0.10246, -0.004495, 0.0051588, 0.038344, 0.052952, -0.020141, 0.038911, -0.02581, -0.054107, -0.059081, -0.019798, 0.051849, -0.073763, -0.038341, -0.06688, -0.018986, 0.04871, -0.019809, 0.010562, -0.024563, -0.015141, -0.047958, 0.21089],
|
||
[-0.12519, -0.11688, -0.058961, 0.042235, 0.027385, 0.073378, 0.1997, 0.18078, 0.17754, -0.12636, 0.08321, 0.029824, -0.0015425, -0.016459, 0.077534, 0.00013268, 0.09375, -0.044727, -0.19635, -0.22782, 0.11588, 0.28944, -0.068772, 0.010802, -0.0078676, 0.079851, 0.21293, -0.0089784, -0.068418, 0.022956, -0.026211, 0.057828, -0.079483, -0.016172, 0.062689, -0.021796, 0.12691, -0.047525, -0.049301, 0.048206, -0.21716, 0.02813, 0.12406, -0.086131, 0.076895, 0.038135, 0.011629, 0.070698, 0.0084135, -0.11267, -0.39755, 0.073041, 0.16994, -0.11001, -0.24501, -0.01654, 0.037589, 0.12221, 0.04684, -0.19362, -0.50341, -0.46225, 0.30127, 0.38513, -0.19299, -0.50883, 0.057766, 0.085916, 0.0025825, -0.15402, -0.081067, 0.13999, 0.1736, -0.0082113, 0.034164, 0.033688, -0.15384, -0.0035718, 0.011347, -0.017873, 0.039147, 0.10637, 0.076248, 0.13996, -0.12176, -0.064375, 0.022872, 0.20474, 0.014948, -0.039363, 0.024752, 0.06253, 0.0078273, 0.08754, -0.034543, 0.058746, -0.075126, 0.076597, 0.19454, 0.021682, -0.073489, -0.058083, 0.012328, 0.076039, -0.036913, -0.018863, -0.079317, 0.016094, -0.18419, 0.049227, -0.061457, 0.028283, 0.10422, 0.018037, 0.062905, 0.072053, 0.012388, 0.09073, 0.11439, 0.10143, 0.19506],
|
||
[-0.037472, 0.079003, -0.11809, -0.011576, -0.047355, -0.04382, -0.022041, -0.015582, -0.06045, 0.0056711, 0.087342, -0.047485, 0.055578, 0.014641, 0.10885, 0.072561, 0.053636, -0.017556, 0.042134, -0.029061, -0.12502, -0.017197, -0.013398, 0.011501, 0.027702, 0.027412, 0.029975, 0.073364, 0.010914, 0.07541, 0.13044, 0.023411, -0.0048254, 0.074978, 0.054355, 0.042047, -0.015464, 0.022631, -0.063888, -0.040446, -0.11272, -0.077312, 0.018981, 0.079484, 0.042423, -0.00069404, -0.069229, 0.07743, 0.20474, 0.28719, 0.30504, 0.3255, 0.14073, -0.015201, -0.04186, 0.17136, 0.15274, 0.15944, -0.046361, -0.22277, -0.34374, -0.38756, -0.37353, -0.17546, 0.024942, 0.038533, 0.12622, -0.29897, -0.47417, -0.40534, -0.044667, 0.12588, 0.18503, 0.074482, -0.10022, -0.34732, -0.099282, -0.29838, -0.18662, 0.035652, 0.4013, 0.060801, -0.020916, -0.017432, 0.0064527, 0.31447, 0.27814, -0.042857, -0.10711, 0.12305, 0.34204, 0.11781, -0.098208, -0.22534, -0.17337, 0.025185, -0.11168, 0.2142, -0.04395, -0.023907, -0.065585, 0.092041, -0.03531, -0.13397, -0.038995, -0.12154, -0.13006, -0.17042, 0.11042, 0.092651, 0.13111, 0.058002, -0.0026521, 0.15722, 0.066071, 0.039488, 0.039274, 0.19072, 0.10773, -0.028126, 0.057979],
|
||
[0.14781, -0.039386, -0.022921, 0.053882, 0.12599, 0.028203, 0.034607, -0.042381, 0.03885, 0.03641, 0.1629, 0.089845, -0.046053, -0.082096, -0.22397, -0.11679, 0.10054, -0.0082322, -0.010907, -0.029538, 0.0049451, 0.10219, 0.18664, 0.21337, 0.096928, 0.082225, -0.042534, -0.052259, -0.020309, -0.10672, -0.088221, -0.15579, 0.23093, -0.079956, -0.13801, -0.056966, -0.28523, -0.0068234, 0.26377, 0.035257, -0.00096948, -0.13355, -0.095292, 0.10809, -0.22622, 0.13751, 0.30589, 0.4709, -0.26226, -0.24292, 0.22232, 0.090544, 0.043301, -0.055195, 0.01245, -0.48339, -0.41102, 0.015183, 0.26867, -0.18588, -0.65746, -0.3708, 0.26182, 0.20686, -0.062913, -0.0046315, -0.34603, -0.057876, -0.080074, -0.060733, -0.063132, 0.33223, 0.16004, 0.084047, -0.02977, 0.045421, 0.034504, 0.37536, 0.088936, 0.18256, 0.079936, 0.23524, 0.11129, 0.10974, -0.047221, -0.11616, -0.06731, 0.034599, 0.23286, 0.1319, -0.041749, -0.18972, -0.070314, -0.04434, -0.052799, -0.12426, 0.045488, -0.13703, 0.059172, -0.056679, -0.074185, -0.096952, -0.021836, -0.065731, 0.021349, -0.083419, 0.052566, -0.0026602, 0.038735, 0.068176, 0.22646, 0.08289, 0.035399, 0.067321, 0.1424, 0.085139, 0.05037, 0.0010888, -0.01828, -0.017226, 0.08422],
|
||
[0.11801, 0.048642, -0.10679, 0.0052911, 0.23136, 0.17221, 0.17682, 0.20045, 0.052122, -0.14026, 0.022439, -0.019828, -0.13731, 0.092577, 0.20996, -0.16372, -0.15701, -0.17369, -0.058054, -0.015724, 0.019399, -0.04931, -0.11375, -0.014247, 0.070739, -0.088328, -0.13682, -0.078888, 0.053145, -0.19438, -0.00017069, 0.13425, 0.0093321, -0.18143, 0.12021, 0.29639, -0.0090975, 0.039856, -0.084631, 0.036932, -0.14789, 0.19687, 0.40664, -0.14336, -0.18437, -0.038752, 0.29571, 0.053689, -0.19565, -0.34486, -0.50121, -0.40626, 0.13382, -0.00028762, -0.20092, 0.11021, -0.18696, -0.23952, -0.1882, -0.020408, -0.10626, 0.10776, 0.19942, -0.058277, 0.027522, 0.18135, 0.068695, 0.01411, 0.019796, -0.069519, 0.085999, 0.25122, 0.24992, 0.20675, 0.093802, -0.071506, 0.083957, 0.042664, -0.044898, 0.075633, 0.18471, 0.092312, 0.16477, 0.067407, -0.035391, -0.10051, -0.14948, -0.085912, 0.119, 0.022232, -0.059604, -0.083714, -0.12267, -0.071818, -0.061365, -0.037122, -0.024043, -0.0077183, -0.027903, -0.070229, 0.067283, -0.022097, 0.030069, 0.016509, 0.007991, 0.053658, -0.016975, 0.037888, -0.1034, 0.093947, 0.17569, 0.053193, 0.083328, -0.012242, 0.11153, 8.8778e-05, -0.0059795, 0.079576, -0.011219, 0.13063, 0.13094],
|
||
[0.14423, -0.010081, 0.0073771, 0.065269, 0.055849, 0.052364, -0.022519, -0.0099854, 0.0074881, -0.007637, 0.095115, 0.0074869, 0.01523, 0.040218, -0.085367, -0.17283, 0.011588, -0.058982, -0.091214, -0.055486, -0.085056, -0.012889, 0.082192, -0.088216, -0.1761, 0.020768, 0.29732, 0.34473, 0.35075, 0.16758, -0.084317, -0.08765, -0.029301, 0.0082198, -0.14179, 0.20164, 0.30623, -0.089834, -0.32991, -0.2377, 0.14059, 0.22935, -0.069549, 0.13057, -0.031497, 0.0079274, 0.084812, -0.29146, -0.12913, 0.070966, -0.089487, -0.076857, -0.031867, -0.094906, -0.076821, -0.28838, 0.0878, 0.20019, -0.17097, 0.015334, -0.28908, -0.029527, -0.31385, 0.04304, 0.45577, -0.18071, -0.13847, 0.042623, 0.27232, -0.19148, -0.11016, -0.1177, -0.20542, -0.34623, 0.23755, 0.286, -0.077963, 0.034879, -0.026162, 0.12712, 0.14403, -0.034149, -0.088551, -0.027746, 0.12772, 0.10002, -0.18643, 0.041461, 0.057714, -0.083882, -0.083313, 0.026147, 0.057512, 0.098777, 0.20838, 0.081416, -0.031359, 0.010864, 0.054168, 0.036336, -0.037734, -0.05846, -0.050706, 0.0721, 0.077237, 0.032034, 0.083688, -0.018741, -0.068237, -0.067252, 0.12643, 0.092411, -0.032832, 0.10361, -0.020642, 0.050396, 0.014052, -0.024231, -0.050094, 0.029354, 0.10979],
|
||
[0.060638, 0.011634, 0.11414, 0.11755, 0.020855, 0.10975, -0.04499, -0.011033, -0.053613, -0.044758, -0.10039, 0.13435, -0.024159, -0.084524, -0.09196, 0.10789, 0.045998, 0.055275, 0.064359, 0.01579, 0.02093, 0.040827, 0.13163, 0.059409, -0.026657, -0.14317, -0.10542, 0.073237, 0.082434, 0.062596, -0.0031044, -0.08584, -0.052855, -0.058037, 0.029722, 0.092669, -0.14987, -0.13354, 0.050258, 0.014996, 0.11314, 0.052153, 0.010578, 0.013768, -0.23145, -0.067587, 0.14188, 0.21502, -0.237, -0.2807, 0.024433, 0.017266, 0.017658, 0.026414, 0.088078, -0.19379, -0.33747, 0.1001, 0.36813, -0.034259, -0.51529, -0.21456, -0.029064, 0.029684, 0.11428, 0.035997, -0.31781, -0.038939, 0.17083, -0.019832, -0.015435, 0.21067, -0.06212, -0.026936, -0.055531, -0.02588, -0.056537, 0.082252, 0.13249, -0.050895, -0.023069, -0.0065804, -0.029029, 0.16671, 0.037287, 0.032007, 0.022986, 0.033098, 0.25107, 0.055248, -0.078427, -0.06518, 0.001903, 0.015118, 0.031629, 0.074471, 0.032408, 0.033763, -0.055109, 0.029518, -0.0055725, -0.022572, 0.0049783, -0.034893, 0.030152, -0.046318, 0.017217, -0.090595, 0.010987, 0.014754, 0.11881, -0.018854, 0.05457, 0.05288, 0.083388, 0.068291, 0.063598, 0.051887, 0.083087, 0.021603, -0.059861],
|
||
[0.090807, 0.044777, -0.0060042, -0.050363, -0.038872, -0.12117, 0.022973, -0.031712, 0.038054, 0.0045987, -0.03566, -0.035675, -0.09299, -0.039163, -0.0069044, 0.013836, 0.030661, 0.070549, 0.02941, -0.012522, 0.051323, -0.0037635, -0.070014, 0.010861, 0.032727, 0.13749, 0.058184, 0.13751, 0.07872, 0.10379, -0.028949, 0.062082, -0.036945, 0.1129, 0.034426, 0.044915, -0.057007, -0.15438, -0.082871, -0.12982, -0.043612, 0.065964, 0.036324, 0.063714, 0.021735, -0.078259, -0.036957, 0.13355, 0.28201, 0.32487, 0.33827, 0.18538, 0.073223, 0.019788, 0.13765, 0.078068, 0.08518, -0.069126, -0.090879, -0.22904, -0.33514, -0.34107, -0.35148, -0.14298, 0.075348, 0.14776, -0.045856, -0.24152, -0.21753, -0.13094, 0.020511, 0.097672, 0.14601, -0.12507, -0.37252, -0.40824, -0.045906, -0.16008, 0.079378, 0.3144, 0.19158, 0.029031, -0.11483, 0.076726, 0.30135, 0.27546, -0.0068621, -0.36522, -0.067019, 0.2062, 0.0525, -0.13265, -0.07895, -0.20642, -0.24381, -0.086798, 0.23653, 0.22019, -0.036973, -0.049162, 0.14626, 0.14505, -0.22743, -0.082066, -0.12119, -0.043182, -0.098016, 0.02947, 0.13747, 0.0062917, 0.16322, -0.091364, 0.073288, 0.11423, 0.08521, 0.15332, -0.072661, 0.20467, 0.026701, 0.036011, 0.078828],
|
||
[0.18112, 0.073306, 0.040736, -0.030592, -0.014723, -0.0097177, 0.12725, 0.030397, -0.058889, -0.026611, 0.066681, 0.066608, -0.071919, -0.0083165, -0.017286, 0.038603, 0.067084, -0.070282, -0.069691, -0.025275, -0.11015, 0.24938, 0.13938, -0.057198, -0.073331, -0.14479, 0.05242, -0.12935, 0.030685, 0.061611, -0.10213, 0.22393, 0.11686, 0.16687, -0.11111, -0.17122, 0.056582, -0.048939, 0.15918, 0.19178, -0.34144, -0.00029347, -0.046901, -0.19494, 0.045412, -0.0095034, -0.029117, 0.04141, 0.2315, 0.052449, -0.56727, 0.30029, 0.46091, 0.068319, -0.37008, 0.042656, -0.13943, 0.11478, 0.26741, -0.10449, -0.66828, -0.28238, 0.17754, 0.1737, -0.17216, -0.47505, 0.054836, -0.030162, 0.068493, 0.14671, 0.0071732, 0.29966, 0.2025, -0.17784, -0.11562, -0.13324, -0.097222, -0.028986, -0.035807, -0.10615, -0.13902, 0.016241, 0.1731, 0.19619, 0.11532, 0.085863, 0.16627, 0.31074, 0.046359, -0.0066806, -0.1195, 0.04915, -0.11685, -0.077622, -0.15566, -0.042823, -0.075959, -0.047232, 0.18267, 0.10711, -0.031804, 0.0641, -0.08334, 0.088606, -0.049002, -0.060791, -0.011939, -0.028966, -0.020443, 0.03072, 0.060614, -0.039898, 0.063701, 0.047369, 0.029398, 0.10606, 0.087013, 0.067144, -0.017892, 0.069808, 0.20794],
|
||
[-0.036185, -0.068424, 0.033948, 0.25798, 0.055755, 0.14929, 0.20629, 0.22367, -0.046034, -0.10955, 0.12202, 0.033686, -0.11812, 0.12834, -0.12897, -0.056304, -0.29473, -0.025196, -0.049804, 0.052954, -0.067019, -0.068227, -0.047831, 0.026913, 0.088734, -0.19263, -0.011955, 0.086306, -0.16802, -0.083379, 0.087896, 0.12512, -0.12768, -0.2193, 0.40485, 0.21682, -0.072674, -0.087649, -0.11089, 0.015296, -0.1123, 0.29574, 0.080991, -0.1695, -0.097181, -0.07649, 0.24096, -0.24206, -0.33279, -0.40824, -0.16983, -0.11497, 0.28958, 0.028529, -0.048023, 0.063, -0.030722, -0.066963, -0.011014, 0.075932, -0.080862, -0.16771, 0.101, -0.24229, -0.31555, 0.037389, 0.1555, -0.021451, 0.078024, 0.2267, 0.30002, 0.24804, 0.095539, -0.038035, -0.028632, 0.0083028, 0.096554, -0.093656, -0.17003, -0.046728, 0.054387, -0.011591, 0.19039, 0.080097, 0.18123, 0.11932, 0.021024, 0.0092452, 0.067406, 0.017941, -0.04075, -0.082441, -0.11871, -0.13318, -0.054036, -0.081002, -0.026664, -0.010407, 0.076209, 0.011612, -0.0056684, -0.030538, 0.020575, 0.053928, 0.047349, -0.038219, 0.034337, -0.00018566, -0.026357, 0.080691, 0.12907, 0.054592, 0.056561, 0.048194, -0.032352, 0.015293, 0.016805, 0.13319, 0.0038584, 0.11728, 0.10129],
|
||
[0.087039, -0.086031, 0.023999, -0.055001, -0.045275, 0.028719, 0.023279, 0.0072154, 0.079227, -0.032632, 0.15267, 0.044269, 0.10052, -0.11766, 0.067446, -0.016435, 0.030053, 0.10106, -0.1017, -0.066477, 0.012013, 0.0062465, -0.05766, -0.11952, -0.014951, -0.030954, 0.18712, 0.21588, 0.18761, 0.095823, -0.040222, -0.07325, 0.0042778, 0.055782, 0.082192, -0.012446, 0.17705, 0.1158, -0.24107, -0.085837, 0.15007, 0.28498, -0.14535, 0.010094, 0.095917, -0.29873, 0.17875, -0.22302, -0.17488, -0.043713, -0.1162, -0.23807, 0.0043004, 0.054212, -0.11568, -0.29339, 0.121, 0.4419, -0.15497, -0.022722, -0.21405, -0.020547, -0.27084, -0.095044, 0.2806, -0.27074, -0.13687, 0.17055, 0.3386, -0.2711, -0.35586, -0.26535, 0.082943, -0.35847, 0.34731, 0.15494, -0.1054, 0.094828, -0.10941, 0.019909, 0.13262, -0.049725, -0.10697, -0.25439, 0.17441, 0.1069, -0.077671, -0.0093719, 0.11752, 0.025752, 0.068028, 0.10986, 0.19781, 0.2037, 0.17359, 0.16858, -0.071588, -0.027858, 0.026995, -0.047967, -0.17448, -0.096432, -0.070821, 0.12976, 0.10169, -0.012905, -0.0072145, -0.076309, -0.074777, 0.049862, 0.13897, -0.01642, 0.087861, -0.035559, -0.034266, -0.041158, 0.11153, 0.021064, 0.066654, 0.031123, 0.21873],
|
||
[0.024272, 0.21153, 0.10969, 0.059161, -0.04225, -0.08748, -0.010603, 0.082455, 0.12208, 0.17548, 0.048487, -0.10566, 0.0072713, 0.0048265, -0.037108, 0.036969, 0.059266, -0.091124, 0.016032, -0.026239, -0.059022, -0.088673, -0.077264, 0.056275, -0.051047, 0.023388, -0.017324, 0.012251, 0.025666, -0.020853, 0.0066968, 0.073686, -0.099903, -0.12413, -0.018049, -0.018586, -0.044793, 0.017308, 0.10244, 0.000328, 0.0064671, -0.10225, -0.025294, -0.034442, -0.12789, -0.022149, 0.014835, 0.12138, 0.031883, 0.03247, 0.0090957, -0.063479, 0.10607, -0.099169, -0.16382, -0.14343, -0.032183, -0.058018, 0.022916, 0.04015, 0.10591, 0.11703, 0.051143, 0.024664, 0.022331, -0.14794, -0.046226, -0.052976, 0.017633, -0.083088, 0.039154, 0.083559, 0.074372, -0.010152, 0.0052221, -0.094777, -0.071077, -0.01963, -0.040408, -0.046653, -0.012629, 0.026326, 0.057107, 0.091724, -0.0027242, -0.15414, 0.044172, -0.03748, -0.058582, -0.10282, -0.030064, -0.030479, 0.092608, 0.044945, 0.045404, -0.010357, 0.0060041, -0.074053, -0.041777, -0.00050145, -0.034991, -0.036126, -0.0451, 0.025861, -0.053218, 0.012117, 0.12779, -0.16438, -0.01274, 0.019185, 0.084771, 0.019614, -0.034807, -0.0017216, 0.15755, 0.005375, 0.039444, 0.14283, -0.047934, -0.10056, 0.083257],
|
||
[-0.12767, -0.062412, -0.094141, -0.064796, -0.01781, -0.0691, -0.023075, -0.017484, -0.066453, -0.036872, 0.24167, -0.043101, 0.088798, 0.074579, 0.041306, 0.0411, 0.054755, 0.084087, -0.0097248, -0.049453, -0.081133, 0.064803, 0.058334, 0.048858, 0.003069, -0.037722, 0.054194, 0.0081354, 0.012382, -0.0081329, -0.053456, -0.091653, 0.06463, -0.0018238, 0.079983, -0.085168, 0.078834, -0.036841, 0.14405, 0.015137, -0.15092, -0.035986, 0.070901, 0.0031645, 0.012722, 0.017055, 0.03574, 0.020664, 0.288, -0.043946, -0.069905, -0.028876, 0.013241, -0.093933, 0.0073548, 0.021223, 0.088674, 0.15572, 0.18554, 0.051416, -0.30814, -0.1535, 0.015614, 0.033258, 0.007274, 0.068546, 0.15638, 0.027911, 0.18476, 0.017477, -0.32883, -0.27338, -0.082442, 0.040346, -0.010355, 0.048333, 0.10853, 0.20223, 0.060164, -0.016735, -0.16834, -0.29914, 0.034354, 0.045518, 0.020288, 5.4206e-05, 0.055521, 0.078561, 0.1685, -0.070184, -0.079489, -0.2965, 0.10263, 0.11174, 0.13931, 0.026571, 0.081658, 0.081828, 0.083098, 0.11143, -0.13933, -0.22918, -0.064352, 0.16181, 0.25167, 0.042481, 0.088318, 0.10703, 0.097667, 0.24657, 0.00077544, -0.20365, -0.12891, 0.074372, 0.25016, -0.0027412, -0.09113, -0.23136, -0.30385, -0.14846, -0.10313],
|
||
[0.0047306, -0.025051, -0.005842, 0.023077, -0.0021831, 0.093205, 0.16892, 0.13474, -0.019109, -0.10105, 0.062619, 0.01684, 0.01172, -0.0013488, 0.038407, 0.054231, 0.20955, 0.051311, -0.17892, -0.15157, -0.10803, 0.021082, 0.050527, 0.037029, 0.084086, 0.097194, 0.1163, 0.10292, -0.16563, -0.29211, -0.054203, -0.025851, 0.13698, -0.071433, 0.10358, -0.058267, 0.041899, 0.12303, -0.12859, -0.32801, -0.028641, 0.13915, 0.070612, 0.17863, 0.03674, 0.082604, 0.0015218, 0.093696, -0.11859, -0.24264, -0.17082, 0.31937, 0.10806, -0.025076, 0.28906, 0.16912, -0.0059925, 0.11217, -0.11767, -0.055105, -0.35075, 0.075522, 0.29102, 0.032924, 0.073925, 0.13286, 0.11032, 0.017466, -0.0088771, -0.12337, -0.02645, -0.032574, -0.17412, 0.27115, 0.13019, -0.072333, -0.22304, -0.0049243, 0.062008, -0.054843, -0.077837, 0.062096, 0.21463, -0.092882, -0.28273, -0.2134, -0.17286, -0.2332, 0.10998, -0.0075162, -0.11007, -0.003427, 0.078591, 0.1035, 0.25431, -0.15927, -0.27034, -0.10635, 0.048935, -0.021263, -0.12239, 0.0070055, -0.042365, 0.067623, -0.048467, 0.15103, 0.22133, 0.039738, -0.08448, 0.051462, -7.7552e-07, -0.0097437, -0.011729, 0.091255, 0.03032, -0.0098684, -0.0043867, -0.063745, 0.18972, 0.083907, 0.081622],
|
||
[0.35397, 0.22349, 0.057984, -0.17548, -0.28193, -0.035047, -0.061419, 0.073064, 0.061645, 0.077309, 0.17389, 0.092585, -0.19128, -0.21873, -0.15487, 0.14902, 0.20523, 0.089398, 0.029361, 0.18968, 0.069481, 0.22548, 0.093546, -0.13281, -0.17716, -0.13346, 0.26005, 0.18501, 0.053589, -0.04795, -0.068454, 0.090671, 0.11836, 0.067374, -0.079589, 0.00040371, -0.18012, 0.09018, 0.17516, 0.066704, -0.32349, -0.43602, -0.15344, 0.078031, 0.0026002, -0.0068308, 0.25009, 0.086593, -0.2945, -0.28058, -0.21672, 0.0075954, -0.057357, 0.050786, -0.13228, 0.063816, -0.02493, 0.1032, 0.27362, 0.10838, -0.10089, -0.36636, -0.099771, 0.16157, 0.055579, -0.12792, -0.097782, 0.03895, -0.011347, -0.0057841, 0.1616, 0.22732, 0.17202, 0.11473, -0.02501, -0.012533, -0.18287, 0.005862, 0.087637, -0.037285, -0.028907, -0.012641, 0.029752, 0.023716, 0.018978, -0.068872, 0.062344, -0.029721, -0.027412, 0.092857, -0.017031, -0.040569, 0.028207, -0.066991, 0.018046, 0.027421, 0.026029, -0.012257, 0.071946, 0.13443, -0.055826, 0.029494, 0.067669, -0.096084, 0.029157, -0.00057045, -0.10127, -0.024999, 0.1115, 0.06808, -0.0045362, -0.029235, -0.10839, -0.030881, -0.021536, 0.034917, -0.055573, 0.14693, 0.057093, 0.070054, 0.09283],
|
||
[0.090302, -0.032234, 0.086011, 0.057656, 0.085002, -0.018557, 0.10988, 0.15414, 0.039386, 0.047347, 0.13261, 0.17209, 0.087977, 0.10798, 0.063005, -0.025038, 0.0015666, 0.042298, -0.010857, 0.038565, 0.09115, 0.070429, -0.33965, -0.21627, -0.079793, 0.052482, 0.11737, 0.12356, 0.14986, 0.15132, -0.020854, -0.27884, -0.36994, -0.23348, -0.35031, -0.21236, -0.0096203, 0.16879, 0.10884, 0.1951, -0.02216, -0.13795, -0.3823, -0.15708, 0.2465, 0.21041, 0.0038882, -0.15092, -0.14973, -0.27658, -0.13643, -0.20644, -0.10322, 0.20312, 0.24972, 0.098784, 0.050022, 0.11216, 0.0082125, -0.15896, -0.24966, -0.2242, -0.081867, 0.16097, 0.13085, 0.089777, 0.0095536, -0.045308, -0.023385, 0.05727, 0.11323, 0.14404, 0.076514, 0.16611, 0.0012914, -0.061225, 0.023338, 0.046303, 0.046502, 0.05308, -0.02208, -0.016463, -0.02459, 0.036155, 0.016853, 0.038351, -0.031623, -0.015009, -0.00256, -0.044171, 0.020136, 0.038923, 0.023164, 0.01893, 0.016295, -0.02645, -0.031756, 0.037952, 0.04783, 0.039081, 0.012653, 0.019182, 0.052408, 0.067772, 0.071084, -0.036646, 0.13604, 0.010095, 0.020674, 0.050958, -0.017289, -0.021564, -0.011485, -0.076477, 0.0025912, -0.03506, 0.022443, -0.022651, -0.013427, -0.084684, -0.02786],
|
||
[0.22047, 0.13488, -0.0045314, -0.027832, 0.0031928, -0.11096, -0.14951, -0.26497, -0.0046697, 0.18623, 0.43027, 0.08365, 0.057113, 0.1422, 0.10169, 0.097731, 0.21612, 0.15447, -0.1386, -0.29659, -0.17497, 0.19818, 0.16783, 0.035357, -0.028903, -0.021291, 0.087221, 0.16959, 0.29274, -0.061147, -0.1512, -0.14884, -0.03919, 0.045408, -0.078471, -0.273, -0.38646, -0.05976, 0.17696, 0.1589, -0.090045, -0.0058036, -0.029934, 0.053751, 0.037133, 0.040635, -0.04802, -0.2107, -0.1441, -0.18667, -0.28265, -0.0036369, 0.22241, 0.039353, -0.0086786, -0.15038, -0.012859, 0.15635, 0.042299, -0.29268, -0.40523, 0.096518, 0.23155, 0.13543, 0.012292, -0.052369, -0.13532, -0.033103, 0.073328, 0.044657, 0.086151, 0.27385, 0.16267, 0.061526, -0.019745, 0.10503, -0.019421, -0.10477, -0.0051748, -0.069612, 0.013175, 0.080847, 0.064601, -0.021748, -0.0094289, -0.016282, -0.036344, 0.030459, 0.056434, 0.11018, -0.043666, -0.0042556, -0.073124, 0.029157, -0.045782, -0.018178, -0.026034, 0.062742, 0.057057, 0.11269, -0.014281, 0.066092, -0.026887, 0.015276, 0.0076592, -0.048903, -0.10792, 0.09321, 0.028853, 0.032763, -0.011491, 0.17616, 0.1057, 0.021853, -0.0058603, 0.0052496, 0.020608, 0.026462, -0.082618, -0.079352, -0.012265],
|
||
[0.024463, -0.027352, -0.023265, 0.11579, 0.12541, 0.071656, 0.059076, -0.021125, -0.05219, -0.0033401, -0.0084537, 0.080912, -0.057403, -0.16721, -0.158, 0.063754, 0.19561, 0.071414, 0.11892, 0.037161, 0.077087, 0.035863, 0.1314, -0.1115, -0.040614, -0.26028, -0.18926, 0.066083, 0.13274, 0.034849, 0.019788, 0.014095, 0.062232, 0.14344, 0.042856, 0.10733, 0.0098224, -0.23834, -0.21249, 0.084274, 0.0088423, 0.032948, 0.071734, 0.0063217, 0.194, 0.014862, 0.10869, 0.19643, 0.010298, -0.29226, -0.080019, -0.013688, 0.11311, 0.012928, 0.1563, 0.25797, 0.0068688, 0.15136, 0.20517, 0.22377, -0.37619, -0.13386, -0.020441, -0.013775, 0.040573, 0.055189, -0.12709, -0.05821, -0.008442, 0.17523, 0.03337, -0.18113, 0.034219, -0.1109, -0.1463, -0.0069699, 0.094796, -0.23705, -0.15881, -0.22841, -0.054433, -0.17474, 0.067644, 0.085915, 0.063464, -0.020901, -0.038395, 0.071986, -0.052571, -0.092667, -0.13827, -0.249, 0.047883, 0.31224, 0.088266, -0.06281, 0.034915, -0.069708, -0.0018865, 0.098095, -0.055813, -0.060679, 0.056062, 0.17983, 0.074314, -0.027045, -0.00044359, -0.067458, -0.045453, 0.042969, 0.079381, 0.058881, 0.16904, 0.010963, 0.042321, -0.071452, 0.043646, 0.077058, 0.080224, -0.017561, -0.044482],
|
||
[0.084549, 0.014073, -0.12307, -0.061069, 0.03087, -0.093121, -0.025168, 0.015404, -0.056966, -0.10833, -0.16715, 0.12222, 0.013801, -0.10225, 0.0023687, 0.087394, 0.049218, 0.029334, -0.00088026, 0.11339, 0.07953, 0.064893, 0.076669, -0.063082, 0.037023, -0.059661, 0.0166, 0.091314, -0.011486, -0.099932, 0.06516, -0.037572, 0.014463, 0.067622, 0.0025458, 0.015803, -0.10994, -0.069419, 0.021295, 0.060596, 0.026424, 0.0099006, 0.06539, 0.043328, 0.0095511, -0.076475, -0.034131, -0.075099, -0.049787, -0.0042179, 0.20028, -0.0015735, 0.11546, -0.0078019, 0.04754, 0.0074074, -0.0035661, 0.050506, 0.075847, -0.14426, -0.24271, -0.046073, 0.24353, 0.10855, 0.021319, 0.18208, 0.070465, 0.030956, 0.021331, 0.016481, 0.0086198, -0.29742, -0.41813, -0.16138, 0.14572, 0.16943, 0.15423, 0.11273, 0.046495, -0.023985, 0.1262, 0.029741, -0.012888, -0.11865, -0.25933, -0.10806, 0.041596, 0.18022, 0.1017, 0.018289, 0.13184, -0.004466, 0.052209, 0.17237, 0.14892, -0.1153, -0.2924, -0.13274, 0.14349, 0.12546, 0.1197, 0.096606, 0.083929, 0.24096, 0.18159, 0.21526, 0.094817, -0.17303, -0.16751, 0.053189, -0.014843, -0.13263, -0.2276, -0.28474, -0.2675, -0.11356, 0.12872, 0.2094, 0.038068, -0.18389, -0.098722],
|
||
[-0.29332, -0.076674, -0.03075, 0.12028, 0.12711, 0.051897, 0.13914, 0.1154, -0.068125, -0.0090238, -0.29102, -0.061269, -0.054506, 0.051034, 0.012541, -0.0064693, 0.017938, -0.05423, 0.011336, -0.025654, 0.0483, -0.11406, -0.024236, 0.09794, -0.043137, -0.070786, -0.068497, 0.096858, -0.061432, -0.038064, 0.057071, -0.035895, 0.015329, 0.056504, -0.010336, 0.027054, -0.034953, -0.012868, 0.076343, 0.047322, -0.037463, -0.0093979, -0.014027, 0.064562, 0.053722, -0.06759, 0.013911, -0.016445, -0.019462, 0.01044, 0.099418, -0.092003, -0.01811, -0.069116, 0.090085, 0.05416, -0.0018643, 0.0040598, -0.085946, 0.10862, 0.0271, 0.099142, 0.00066682, -0.057661, 0.024057, 0.068221, 0.036722, -0.0013717, -0.028206, -0.04576, 0.053362, 0.052631, 0.0098104, -0.012204, -0.16439, -0.021002, 0.10557, 0.13827, -0.0070213, -0.16276, -0.18906, 0.059904, 0.10226, 0.07404, 0.0042852, -0.18459, -0.069684, 0.14111, 0.12749, -0.10699, -0.058973, -0.027184, 0.092294, 0.042731, 0.029014, 0.091553, -0.075057, -0.13843, 0.0049805, 0.0097377, -0.17763, -0.053056, 0.0051213, -0.03116, 0.018286, -0.062989, 0.0087673, 0.045406, -0.15525, -0.10424, -0.33859, 0.00092931, 0.071524, 0.24813, 0.17765, 0.054742, 0.12449, 0.21578, 0.11743, 0.1181, -0.27756],
|
||
[0.23861, 0.03722, 0.03191, -0.14966, -0.09855, -0.095091, -0.030803, -0.040663, 0.017507, 0.028514, 0.08306, 0.0012191, -0.033229, -0.063142, 0.035545, -0.023608, 0.022431, -0.018828, 0.052736, 0.041581, 0.031034, -0.020525, -0.074378, -0.058852, -0.018417, -0.020185, 0.056556, -0.0026618, 0.052188, 0.12532, 0.019468, 0.096993, 0.052629, -0.095668, -0.1078, 0.047013, 0.12881, 0.1185, 0.046939, 0.011552, -0.10252, 0.034819, 0.089993, 0.11884, -0.026071, -0.10859, -0.028993, 0.12481, 0.24007, 0.40869, 0.26105, 0.050072, -0.0099467, -0.032287, -0.037881, -0.042541, 0.18047, 0.10729, 0.056245, -0.45229, -0.83931, -0.32647, 0.14836, 0.15629, 0.1474, 0.048456, 0.083157, 0.096331, -0.042531, 0.024992, -0.13245, -0.1692, -0.46441, -0.34745, -0.04738, 0.014762, 0.056736, 0.036695, 0.013279, -0.054248, -0.014839, 0.16411, 0.28499, 0.3327, 0.077933, -0.21058, -0.18028, -0.28799, 0.04902, -0.037058, 0.0052055, -0.017126, -0.0034699, 0.11284, 0.050042, 0.03923, 0.083779, 0.03011, -0.10733, 0.052781, 0.030826, 0.048218, -1.218e-05, 0.037878, -0.11301, 0.025972, -0.040362, 0.060663, -0.0029176, 0.019233, -0.023247, -0.024268, -0.048051, -0.039101, 0.055724, 0.019594, 0.001931, 0.052875, 0.11053, 0.059716, 0.065829],
|
||
[0.067034, 0.026573, 0.061903, -0.050613, -0.071247, -0.061282, -0.13244, -0.077383, -0.032986, 0.050994, 0.23206, -0.017426, 0.016764, -0.0045263, 0.07268, 0.072143, -0.025652, 0.011719, 0.015719, -0.14235, -0.012766, -0.055815, 0.062228, 0.11099, 0.12777, 0.039054, -0.010543, 0.052522, 0.0455, 0.0047552, 0.040037, -0.04187, -0.077744, 0.036623, 0.026947, 0.0048713, 0.01145, -0.012158, 0.024207, 0.083283, 0.079838, 0.073616, -0.072412, -0.039881, 0.090275, -0.0059398, -0.079683, -0.055949, 0.16965, 0.46194, 0.27437, 0.17637, 0.0055755, -0.040969, -0.048391, 0.025695, 0.099983, 0.12605, 0.27677, -0.090382, -0.72367, -0.66542, -0.093851, 0.125, 0.090998, 0.018067, 0.023896, 0.1111, 0.033726, -0.22605, -0.55798, -0.23541, -0.094805, -0.091208, 0.0077773, 0.13248, 0.03986, -0.25216, -0.2025, -0.17881, -0.11431, 0.29677, 0.22717, 0.2741, 0.049649, -0.056866, -0.064785, 0.037313, -0.11707, -0.052502, 0.047053, 0.024036, 0.13017, 0.056206, -0.040238, 0.048845, -0.010397, 0.0059061, 0.038086, -0.010127, -0.011702, -0.036779, 0.010231, 0.010569, -0.0050323, 0.0022982, 0.017051, 0.01618, 0.046103, 0.010502, 0.092567, 0.079401, 0.1057, 0.10683, 0.057219, -0.049671, 0.042693, -0.038684, -0.039504, -0.02074, 0.014244],
|
||
[0.062853, 0.070715, 0.0043518, -0.026667, 0.044525, 0.0088609, -0.059432, 0.12209, 0.10824, -0.025643, 0.055453, -0.03091, 0.0048755, -0.11083, -0.028824, -0.0050464, -0.0020802, 0.065154, 0.0042318, -0.016502, 0.039369, 0.1447, 0.036147, -0.025105, -0.0029753, -0.027231, -0.0265, 0.052084, 0.15939, 0.029111, 0.005888, 0.070684, -0.10502, -0.012995, -0.027731, -0.038084, -0.02885, 0.088899, 0.12716, 0.093878, 0.12446, -0.060464, -0.12926, 0.058859, 0.16395, 0.066259, 0.040324, -0.035531, 0.074783, 0.027442, -0.034548, -0.15238, -0.13605, 0.065147, -0.0074265, 0.004604, 0.078352, 0.12973, 0.095682, 0.10648, -0.47116, -0.76254, -0.35821, -0.013246, -0.13303, -0.10815, 0.012183, 0.014157, -0.026232, -0.04006, 0.013821, 0.24427, 0.3074, 0.050528, -0.023096, 0.032938, 0.085879, 0.041108, -0.0006755, 0.0383, -0.054725, -0.032597, 0.078231, 0.16873, 0.085156, -0.075477, 0.075846, -0.065616, 0.026372, -0.012261, 0.018816, -0.046021, 0.063677, 0.0091643, 0.021381, 0.010299, 0.025836, -0.0032034, 0.09386, -0.044507, -0.0094275, 0.014357, 0.00037736, -0.047078, -0.00096697, -0.010147, 0.0099517, -0.00041656, -0.03546, 0.013201, -0.034598, -0.040736, 0.051474, -0.030682, 0.033804, 0.043771, 0.089867, 0.0076302, 0.042986, 0.0073348, 0.089498],
|
||
[0.15589, 0.01563, 0.077531, 0.035199, 0.098615, 0.06922, -0.051016, 0.013532, -0.16689, -0.077939, 0.021709, 0.051428, -0.064349, -0.015228, 0.012759, -0.012492, -0.052545, -0.06904, 0.050431, 0.036664, 0.10485, 0.086416, 0.050032, 0.056994, -0.002549, -0.0007908, 0.0014992, -0.18329, -0.0010931, -0.051995, 0.0076178, 0.05014, 0.083661, -0.028368, -0.057671, -0.024747, -0.17552, -0.053854, -0.049492, 0.028096, 0.16657, 0.17516, 0.11078, 0.23647, -0.019601, 0.0020069, -0.10476, -0.053073, 0.078984, 0.28337, 0.35166, 0.20796, -0.0051423, -0.066194, -0.049047, -0.035658, -0.053202, 0.076803, 0.29382, 0.27042, 0.32595, -0.14797, -0.18679, -0.049879, -0.099671, -0.040296, 0.022962, 0.11787, -0.072577, 0.15221, -0.11057, -0.27509, -0.22644, -0.21712, -0.065674, -0.05204, -0.09196, 0.052341, -0.029014, -0.026487, -0.099176, -0.11757, -0.13254, -0.076327, 0.079955, -0.17744, 0.080376, -0.073856, 0.08774, -0.13915, 0.0099844, -0.05868, -0.057029, -0.079794, 0.0015768, -0.0041526, 0.034597, 0.0086646, 0.057269, -0.026265, 0.048094, 0.021793, -0.11755, 0.00049937, -0.09137, 0.17327, 0.031573, 0.022297, 0.0028041, 0.12055, 0.22973, 0.053206, -0.01461, 0.11664, 0.082758, -0.089172, 0.061309, -0.041124, 0.0013241, -0.022405, 0.066514],
|
||
[0.10641, 0.094792, -0.031529, -0.068663, -0.045583, -0.044171, -0.062373, -0.040882, 0.036681, -0.031891, -0.088635, 0.072486, 0.0017913, 0.071618, -0.10841, 0.055537, 0.020791, 0.052668, -0.011258, -0.084503, -0.055355, 0.069471, -0.028455, -0.092204, -0.059139, -0.0088604, 0.013756, 0.013008, 0.11917, -0.0054767, -0.0046385, 0.10607, 0.1319, 0.033045, -0.0059853, -0.063203, 0.04293, -0.07752, 0.10193, -0.12768, -0.091567, -0.057976, -0.13595, -0.048452, 0.011192, -0.0068851, -0.096621, 0.081772, -0.049007, 0.19762, 0.18536, 0.054459, -0.085416, -0.1103, 0.26784, -0.042453, 0.07976, 0.15028, 0.27327, 0.23584, 0.029238, 0.14907, 0.31049, 0.40128, 0.38541, 0.27327, 0.15637, 0.14855, 0.13417, -0.1554, -0.21625, -0.28189, -0.25441, -0.24392, -0.045056, -0.13584, -0.36047, 0.05411, -0.27378, -0.087569, -0.027321, -0.039262, 0.17563, 0.0038011, -0.11816, -0.14962, -0.071035, -0.11256, -0.067348, 0.043317, -0.10302, -0.15125, -0.045348, -0.22755, 0.0502, -0.02991, -0.10883, -0.0018045, -0.14576, 0.0095245, 0.017125, -0.0035127, -0.058373, 0.08984, -0.043367, 0.096739, 0.037002, 0.086995, 0.019892, 0.021145, -0.093457, 0.027113, -0.10194, 0.083879, 0.075076, 0.050127, 0.088653, 0.020525, 0.086116, -0.0054914, 0.1418],
|
||
[-0.023176, -0.024545, -0.032358, 0.061548, -0.028032, -0.11117, -0.028557, 0.034625, -0.076973, -0.011746, -0.0099598, -0.054284, 0.047969, -0.058235, 0.032203, 0.031829, -0.0085909, -0.01854, 0.059493, 0.032667, 0.011822, 0.011903, -0.091303, 0.010421, 0.047574, -0.010086, -0.082131, -0.035238, -0.0095366, -0.0021083, -0.011205, -0.10622, 0.0088673, 0.080682, -0.090533, 0.0092003, 0.04758, -0.0034736, -0.26095, -0.19924, 0.12708, 0.076817, 0.0089468, -0.01743, 0.27183, 0.29541, 0.24001, 0.32835, 0.30453, 0.15738, 0.27144, 0.27187, 0.31738, 0.17968, 0.34964, 0.17948, -0.19852, -0.23132, -0.30349, -0.018142, 0.32802, 0.10088, -0.27373, -0.34405, -0.10799, -0.028605, -0.19185, -0.027746, -0.010639, -0.062358, -0.22873, -0.17307, -0.10579, -0.12595, 0.0052134, -0.033021, -0.071929, -0.084042, 0.037289, -0.14901, -0.051878, -0.06245, -0.14709, 0.018449, 0.0039521, -0.079257, -0.068342, -0.12332, -0.099563, -0.12283, -0.0063814, 0.15237, 0.056225, -0.0045107, -0.057588, 0.098403, 0.027092, -0.0051265, -0.17882, 0.012717, 0.014254, 0.10921, 0.12698, -0.041269, 0.08552, 0.043847, 0.024665, 0.12247, 0.1344, 0.0562, -0.070487, 0.050115, -0.00030554, -0.0023067, 0.054046, -0.05889, 0.056482, -0.074701, 0.054307, -0.0024485, -0.12796],
|
||
[-0.0087719, -0.087903, -0.055052, -0.053895, -0.021765, -0.032496, -0.053937, -0.059602, 0.018682, -0.024042, 0.1808, 0.013387, -0.01946, 0.085841, -0.04296, 0.05614, -0.0074823, 0.072638, -0.045773, -0.0079074, -0.039618, 0.062009, 0.069674, -0.0017891, -0.017923, -0.017329, 0.10429, -0.075337, -0.019898, 0.066497, -0.04193, -0.017542, -0.049375, 0.047055, -0.11658, -0.050368, -0.087745, 0.10297, 0.0010435, -0.1119, -0.058552, -0.093602, -0.058917, 0.12428, 0.20422, -0.086927, -0.15846, -0.044231, 0.14028, 0.20301, 0.20997, 0.078368, 0.023616, 0.046474, -0.10919, 0.34228, 0.40922, 0.32978, 0.35276, 0.17348, 0.049654, 0.046853, 0.1854, 0.23487, 0.074066, 0.090895, -0.35637, -0.1789, 0.067024, -0.14509, -0.24145, -0.31352, -0.20854, -0.16942, -0.05073, 0.070839, 0.11262, -0.055654, -0.18253, -0.095111, -0.20811, -0.085216, -0.037808, 0.20963, -0.087519, -0.0083271, -0.18306, 0.012319, -0.16489, 0.074234, -0.11014, 0.00018777, 0.0033474, 0.10044, -0.2401, -0.055214, -0.098806, -0.014982, -0.12541, -0.035863, 0.046214, -0.11768, 0.075697, 0.25102, -0.15062, 0.10274, -0.14457, -0.0084316, 0.073822, 0.034203, 0.12998, 0.064947, 0.10038, -0.042683, 0.034386, 0.133, 0.084681, 0.1675, -0.14489, 0.097226, -0.17222],
|
||
[-0.032221, 0.0081917, -0.080282, -0.081381, -0.063842, -0.015615, 0.10709, 0.080651, 0.054345, 0.027074, 0.16813, 0.13415, 0.038631, -0.0055507, 0.042335, -0.028374, 0.0039599, -0.063597, 0.056588, -0.027555, -0.0017875, 0.0041026, 0.092719, 0.0086585, 0.10684, -0.074196, -0.063057, -0.021523, 0.0092341, -0.1461, 0.014751, -0.0052165, 0.0032642, 0.097807, 0.12927, 0.062698, 0.27475, 0.092446, -0.12769, -0.14806, -0.019825, -0.0086315, 0.014481, -0.0089874, 0.10471, -0.11054, 0.0075036, 0.060006, 0.3171, 0.32324, 0.1072, -0.058102, -0.031761, -0.11429, -0.031551, 0.0017247, -0.032141, -0.013131, -0.14824, -0.10766, 0.10594, 0.40021, 0.19725, 0.083748, -0.030751, -0.02833, -0.099874, -0.26039, -0.025979, -0.074314, -0.14254, -0.27784, -0.10552, -0.011203, 0.12856, -0.00039207, 0.071697, -0.060715, 0.079555, -0.04445, -0.036239, -0.05495, -0.075878, -0.13219, -0.11464, -0.014322, 0.054633, -0.0021866, 0.047599, 0.071591, -0.061807, -0.098703, -0.17721, -0.050445, -0.088158, 0.17306, -0.18012, -0.1379, 0.069655, 0.1066, 0.042995, 0.13247, 0.10692, 0.063925, 0.084949, -0.14825, -0.17982, 0.079887, 0.0099879, 0.091659, 0.0039476, -0.022988, -0.025004, 0.022313, 0.032106, 0.0060978, -0.0091098, 0.13842, 0.057218, 0.034249, 0.14166],
|
||
[0.077403, 0.0027903, 0.085849, 0.081622, 0.044687, -0.010721, 0.00076693, 0.10466, -0.015222, 0.00096215, 0.1025, 0.10103, -0.02864, -0.050144, 0.08803, -0.039184, 0.027942, -0.10922, -0.091551, 0.038578, -0.047089, 0.0082249, -0.016698, 0.14191, 0.023165, 0.072603, 0.11867, 0.014093, 0.0047639, -0.012687, -0.03666, -0.077417, 0.049268, -0.044394, -0.17872, 0.028784, -0.010362, 0.15181, 0.2186, 0.1163, -0.09258, -0.019701, -0.045861, 0.029997, 0.022719, 0.025102, -0.085651, -0.12411, -0.18246, 0.091966, 0.087081, 0.10736, 0.02811, 0.11508, 0.038288, -0.074858, 0.00036462, -0.075728, -0.25812, -0.60692, -0.57736, -0.12302, 0.10818, 0.016913, 0.13529, 0.090044, -0.017374, 0.016143, 0.0074706, 0.038153, 0.13808, 0.23128, 0.062212, -0.00078106, -0.0088352, 0.015948, -0.00050225, 0.11232, 0.010962, -0.063962, 0.042698, 0.075698, 0.18797, -0.034271, -0.07601, 0.040711, 0.0039277, -0.0081139, -0.015998, -0.060356, 0.025952, 0.042163, 0.082426, 0.1426, -0.042849, -0.063341, 0.0092863, 0.029864, 0.0060824, 0.059612, 0.030082, -0.027239, -0.0073659, -0.015225, 0.044419, -0.0053691, 0.022425, -0.0082636, -0.040837, -0.015422, 0.061348, -0.052846, 0.094366, 0.014526, 0.0037072, 0.044123, 0.045795, -0.030931, 0.017194, -0.019463, 0.0012436],
|
||
[0.084114, -0.025621, -0.023222, 0.053008, 0.17224, 0.012469, 0.075122, 0.040763, 0.098101, 0.041479, 0.12636, 0.070298, -0.050007, -0.0054841, 0.030405, -0.089755, -0.21541, 0.01723, -0.13557, 0.095618, -0.1106, 0.10125, -0.076498, -0.00028541, -0.026246, -0.01948, -0.39778, -0.062144, -0.024341, -0.012827, -0.014662, -0.11255, 0.16096, -0.11228, -0.068533, -0.16356, -0.19654, 0.031038, 0.13193, -0.083423, -0.040716, 0.01381, 0.039666, 0.0099888, -0.047953, 0.00061003, 0.10343, 0.24891, 0.35782, -0.20933, -0.039926, 0.1942, 0.032188, -0.040504, -0.0032348, 0.17053, 0.35048, 0.24646, -0.12389, 0.01723, -0.20275, 0.13927, -0.014868, -0.11606, 0.050407, 0.052285, 0.21799, -0.056957, -0.20647, -0.045779, -0.17472, 0.05274, 0.099134, 0.094364, -0.060202, -0.043716, 0.05637, -0.008589, -0.096057, 0.019767, 0.0089128, -0.043515, 0.071434, 0.036366, 0.013984, 0.073848, 0.06407, -0.12431, -0.077473, -0.003077, 0.012412, -0.077233, 0.052213, 0.098481, -0.044983, 0.0093175, -0.014436, -0.018575, -0.016642, -0.20214, 0.023, -0.056258, -0.017621, 0.01913, 0.020008, 0.034833, -0.066635, 0.019123, 0.10428, 0.026511, 0.16287, 0.027933, 0.049607, 0.050049, 0.10194, -0.02588, 0.058534, -0.061181, 0.17253, -0.1346, -0.090408],
|
||
[-0.027551, 0.20557, 0.082132, -0.04257, 0.015868, 0.0093698, -0.11463, 0.044712, -0.15996, 0.11866, 0.067392, -0.13863, -0.24992, -0.12742, -0.048942, -0.10909, -0.015852, 0.030011, -0.15749, -0.053421, -0.025663, -0.011093, 0.058389, 0.088245, -0.053728, -0.068366, 0.0026508, 0.097818, 0.016896, 0.0291, 0.15597, -0.017163, -0.047858, -0.066641, -0.04105, -0.029342, 0.18068, 0.23841, 0.1072, 0.0032504, -0.16876, -0.055652, 0.037864, 0.14497, 0.30165, 0.21781, 0.24781, 0.20611, -0.030505, -0.22355, -0.22058, 0.026161, -0.01449, -0.0013993, -0.032143, 0.069858, 0.12952, 0.062134, -0.09585, -0.15006, -0.04869, 0.027626, 0.087752, 0.059382, -0.15548, -0.008993, -0.21696, -0.20895, -0.17492, -0.10306, -0.08326, 0.10865, 0.060745, 0.050196, 0.059347, 0.08055, 0.096041, -0.17922, -0.08636, -0.19862, -0.085306, 0.073404, -0.00060916, 0.017865, 0.01523, -0.028739, -0.030631, 0.083547, -0.015199, 0.0079197, 0.10542, 0.04588, -0.016177, -0.064404, 0.05645, -0.0011676, 0.0019962, 0.067417, -0.0068873, 0.034856, 0.017611, -0.064975, 0.072135, -0.038534, -0.01402, 0.0002936, 0.12282, -0.084526, 0.072734, -0.026199, 0.26228, 0.056467, 0.026818, 0.093992, 0.035828, 0.18171, -0.015152, -0.017616, -0.0031862, -0.021179, -0.15214],
|
||
[-0.13775, 0.038746, -0.00070857, 0.049355, -0.088279, 0.3385, -0.064155, 0.013423, -0.019629, -0.074514, -0.090356, 0.096941, -0.11911, -0.15101, -0.013947, -0.28748, -0.37904, -0.20281, -0.11304, 0.025054, -0.081019, 0.092552, 0.00082246, 0.24246, 0.12844, 0.13562, 0.089595, 0.23077, 0.17282, 0.1512, 0.2108, 0.13274, -0.11297, -0.23426, -0.15389, 0.04755, 0.13676, 0.14971, -0.014599, 0.024524, 0.15008, 0.02197, -0.017209, -0.12567, 0.057462, -0.12423, 0.027718, 0.07647, 0.15084, 0.16363, 0.10314, 0.098604, -0.077889, -0.1661, -0.015524, 0.033968, -0.0064288, -0.077784, -0.13139, -0.16493, -0.13708, -0.24997, -0.099387, -0.041816, 0.063393, 0.084657, 0.073596, 0.0096743, -0.056184, -0.097826, -0.20167, -0.035743, -0.053854, -0.094089, -0.11121, -0.037672, 0.031541, 0.092726, -0.024057, 0.0060108, 0.026069, 0.052952, -0.00074539, -0.039415, 0.00012582, -0.074806, 0.010524, 0.062406, 0.015814, -0.064838, 0.031266, 0.027508, 0.000127, 0.050797, 0.07897, 0.098318, 0.054193, -0.013031, 0.049683, 0.083509, 0.011784, 0.091872, -0.0066227, -0.047956, -0.01709, -0.078741, -0.046731, 0.018514, 0.0715, 0.064737, -0.032651, 0.061364, -0.039888, 0.06941, 0.077977, 0.066134, 0.055982, 0.072595, -0.053845, 0.096086, -0.028806],
|
||
[0.044235, 0.034525, -0.13043, -0.035392, 0.017969, 0.035178, -0.010788, -0.0016502, 0.03915, 0.21473, -0.0948, -0.028715, 0.05486, -0.039324, -0.071941, -0.11931, 0.0078118, -0.13497, -0.22468, -0.041964, -0.1884, -0.12848, 0.032762, -0.0022056, 0.10278, 0.0012177, 0.077763, 0.014833, 0.25493, -0.14123, -0.028129, -0.090593, 0.078746, -0.013335, -0.013098, -0.085997, 0.0011501, -0.096292, 0.16218, -0.026281, 0.40592, 0.22426, 0.088915, 0.087381, 0.043236, 0.10435, -0.029683, -0.096107, -0.16573, -0.17367, -0.030961, 0.059506, 0.049326, 0.12757, 0.2398, 0.124, -0.27712, 0.1032, 0.071367, 0.066139, -0.017571, -0.21849, -0.096326, -0.013237, 0.141, 0.048656, 0.030847, 0.12063, 0.03194, 0.012664, 0.053035, 0.023359, 0.073601, -0.10515, -0.16524, -0.25669, -0.26897, 0.018566, 0.09359, 0.028128, 0.018697, -0.015875, -0.0079379, 0.03061, -0.015794, -0.095236, -0.029087, -0.13652, -0.073683, 0.054902, -0.060991, 0.09317, -0.0023871, -0.026191, -0.047989, 0.019892, 0.053632, 0.021996, -0.058485, -0.0082972, 0.085923, 0.007835, 0.0074973, 0.033528, 0.034259, 0.040069, 0.016642, 0.033377, 0.009459, 0.052065, -0.084929, -0.091861, -0.072335, 0.017511, 0.083823, 0.029829, 0.022676, 0.092824, 0.027105, 0.049933, 0.25204],
|
||
[0.045017, 0.049864, 0.082321, 0.11789, 0.11184, -0.12533, 0.073011, 0.077004, -0.037179, 0.1153, 0.0573, 0.097849, -0.030605, -0.0069899, -0.043815, -0.041086, -0.10157, -0.030984, 0.062242, -0.08566, -0.031199, 0.094664, 0.18696, -0.16613, -0.0090085, -0.12607, 0.061744, -0.10059, -0.32554, -0.093973, -0.0841, -0.19413, -0.073753, 0.093207, 0.053699, -0.03051, 0.035499, -0.088218, 0.14082, -0.015418, -0.14008, -0.021416, 0.073018, -0.17727, 0.049671, 0.034513, 0.10331, -0.039224, 0.032001, -0.3171, 0.36395, 0.15239, 0.12007, 0.012633, 0.13528, -0.043263, -0.041986, 0.069839, 0.0010106, -0.0011775, -0.011795, -0.14349, 0.022137, -0.039688, 0.26218, 0.19437, 0.11018, 0.022791, -0.097375, -0.016626, 0.15981, 0.079561, -0.075452, -0.028024, -0.12778, -0.070601, 0.075855, -0.061104, -0.034255, 0.047001, 0.085957, 0.042827, 0.035824, -0.0061232, -0.038509, 0.052491, -0.012429, 0.027802, -0.045634, 0.05733, -0.074158, 0.001283, 0.047032, 0.024833, 0.037205, -0.028766, 0.04836, -0.05327, -0.12254, 0.03712, -0.089284, 0.064955, 0.077539, -0.027112, 0.095663, -0.024484, -0.036212, -0.093916, -0.01732, -0.10222, -0.088399, 0.018021, 0.014346, -0.0045931, -0.041331, 0.037071, 0.032109, 0.13273, 0.07511, 0.025628, 0.14213],
|
||
[0.15729, -0.052979, -0.0026258, 0.078995, 0.082044, -0.13536, -0.013649, -0.013141, 0.011513, 0.051596, 0.02555, -0.039487, -0.034658, 0.072491, -0.11567, 0.067864, 0.068651, 0.073986, -0.16154, 0.040446, 0.071466, -0.11469, 0.054051, -0.041043, 0.14997, -0.25422, 0.19697, 0.11291, -0.020531, 0.1289, -0.10368, 0.096092, 0.15325, 0.05149, 0.03356, -0.2083, 0.022894, -0.2625, 0.019209, 0.23588, 0.012602, 0.20972, 0.092569, 0.10591, 0.074214, 0.028278, -0.034766, 0.025387, -0.21115, -0.18143, -0.036903, 0.074542, -0.073943, -0.12923, -0.10287, -0.0020479, 0.0070328, 0.041659, -0.030914, 0.20126, -0.36149, -0.59189, -0.34765, -0.29918, -0.043195, -0.30777, -0.054571, 0.035677, 0.033779, -0.11152, 0.11791, 0.50742, 0.23856, 0.10489, 0.074815, -0.010758, 0.098422, 0.068012, 0.040081, -0.17816, 0.015218, -0.043045, 0.069479, 0.26248, 0.13062, 0.15898, 0.098913, 0.16691, -0.045456, -0.051218, 0.088652, -0.024238, -0.12061, -0.13933, -0.098448, 0.084104, 0.036095, 0.064677, 0.019557, 0.054585, 0.011804, 0.049628, 0.03158, -0.042128, -0.037247, -0.00090228, 0.051276, 0.017591, 0.020608, 0.12021, 0.039022, 0.021712, 0.047172, 0.11458, 0.065529, 0.057133, -0.064146, -0.079154, -0.084204, -0.13318, -0.097193],
|
||
[0.016239, 0.0039663, -0.0045547, 0.013554, 0.042874, -0.15275, -0.027275, 0.0096628, 0.00030503, 0.032218, -0.036021, -0.042601, -0.041216, 0.070225, 0.088251, -0.11944, 0.016009, -0.025892, 0.043719, 0.04635, -0.04552, 0.057802, 0.032998, -0.074789, 0.085613, -0.082967, 0.12226, 0.056996, 0.22311, -0.12892, 0.028712, -0.082295, 0.074671, 0.024026, 0.070656, 0.052863, 0.13163, 0.08385, 0.019373, 0.068601, 0.16045, 0.14512, 0.090972, -0.11721, -0.1096, -0.2299, -0.040375, -0.2017, 0.21032, 0.028437, 0.064869, -0.18349, -0.17888, -0.24993, -0.12182, -0.032695, -0.0037869, -0.24886, -0.15602, -0.42476, -0.4236, -0.3608, -0.18904, -0.056628, 0.0019947, 0.0099847, 0.10753, 0.21965, 0.18511, 0.1994, 0.23706, 0.15855, 0.23756, 0.24027, 0.14806, 0.22744, 0.12507, -0.12208, 0.041225, 0.12974, 0.13877, 0.092819, 0.041457, 0.12811, 0.086282, 0.046482, 0.035985, -0.15, -0.061995, -0.12775, -0.055469, -0.072056, -0.0312, -0.021698, -0.02032, -0.011808, -0.10717, -0.082342, -0.019256, 0.066679, -0.041537, -0.040688, 0.044725, -0.068305, 0.035585, 0.026946, -0.011423, 0.061366, -0.049741, 0.054485, 0.14247, 0.03771, 0.014815, -0.12197, -0.040853, -0.0048073, -0.093844, -0.11067, -0.013085, 0.020004, 0.11572],
|
||
[0.02862, 0.054226, 0.017679, -0.054622, 0.00068166, -0.061011, 0.02545, 0.039249, -0.017614, 0.086689, 0.12902, -0.059156, -0.033658, -0.11303, -0.0094407, 0.0383, -0.024382, 0.13095, -0.17637, -0.042536, 0.024839, 0.025341, 0.073379, 0.1249, 0.052335, 0.019594, 0.01441, 0.069392, 0.10115, -0.017834, -0.0052539, -0.04945, -0.018515, 0.027327, 0.097636, 0.13398, 0.028129, 0.10346, 0.1456, -0.062226, -0.043205, -0.13615, 0.0094596, 0.077643, -0.018838, 0.040125, 0.046083, 0.11596, 0.041671, -0.035255, -0.2421, 0.13413, -0.12174, -0.002494, 0.019159, -0.28596, -0.064486, -0.31594, -0.32104, -0.52704, -0.52371, -0.22197, 0.078178, 0.037153, 0.079429, 0.054711, -0.030973, -0.17109, 0.096072, 0.023265, 0.1823, 0.50842, 0.36327, -0.17443, -0.075941, 0.084583, -0.082641, 0.24079, 0.12328, 3.0311e-05, 0.20734, 0.13349, 0.14204, -0.016683, 0.0026274, -0.0506, -0.093502, 0.049347, 0.02717, 0.0088067, 0.29974, -0.017371, 0.060473, -0.083275, -0.048734, -0.12259, 0.074538, 0.0016868, -0.046678, 0.10226, 0.096413, -0.085168, 0.011075, -0.058526, -0.032743, -0.17221, 0.10626, 0.045123, 0.063157, -0.023657, -0.086189, -0.097156, -0.11779, -0.0018161, -0.018375, -0.022155, 0.069073, 0.061843, 0.057417, 0.030372, 0.089788],
|
||
[-0.0016376, -0.015234, 0.033084, 0.01043, 0.026387, -0.055493, -0.089868, 0.031318, -0.060212, 0.060345, 0.033638, 0.074908, 0.067344, 0.045409, -0.016588, 0.11809, 0.10675, 0.014357, -0.00029905, 0.03249, -0.079691, 0.0021152, 0.12843, 0.027686, 0.051037, 0.0095028, -0.088577, 0.072415, 0.18759, -0.04626, 0.032834, 0.00027334, -0.0056259, 0.051335, -0.028998, 0.010804, 0.039279, 0.059935, -0.036673, 0.0020456, 0.084205, 0.078722, 0.072928, 0.0029102, -0.014711, 0.061979, -0.0058614, -0.0065096, 0.15462, 0.10999, 0.05512, 0.057246, 0.084674, 0.045416, -0.027011, -0.41691, -0.23816, -0.26803, -0.42974, -0.47129, -0.47538, -0.23333, -0.028661, -0.046786, -0.013911, 0.063557, 0.20817, 0.1268, 0.19585, 0.24121, 0.34248, 0.22, 0.036994, -0.24941, -0.12912, 0.0067608, -0.01638, 0.023976, 0.17281, 0.067747, 0.099348, 0.035398, -0.034632, 0.11009, 0.0053132, -0.18523, -0.015871, 0.008623, 0.038924, -0.014894, -0.015236, 0.0015905, -0.025942, -0.048033, 0.056968, -0.005355, 0.070041, -0.019904, 0.10013, -0.030663, 0.014936, -0.053377, -0.046191, -0.049737, -0.032035, -0.026289, -0.0073802, -0.0085777, -0.067451, 0.036965, 0.012119, -0.012732, -0.014068, 0.011209, -0.0034198, 0.12162, -0.090967, 0.062061, -0.023761, 0.11195, 0.10944],
|
||
[-0.061429, -0.024855, 0.037534, 0.053055, -0.02909, -0.076608, -0.05625, 0.038513, 0.0094111, 0.027628, -0.040484, 0.062572, 0.018534, 0.099954, -0.011584, -0.027052, -0.0059961, -0.021254, -0.031552, 0.13842, 0.0044655, 0.079159, 0.093307, 0.021057, -0.020072, 0.0078349, 0.10646, 0.11394, 0.095624, -0.00037973, -0.010567, -0.021229, 0.11951, 0.15659, 0.051157, -0.061499, 0.080078, -0.060313, 0.10862, 0.090833, 0.03775, 0.12669, 0.019289, 0.11166, -0.11612, -0.038271, -0.013962, 0.057456, 0.035911, 0.11685, 0.020811, 0.042275, -0.11787, -0.20632, -0.1034, -0.032371, -0.14327, -0.25192, -0.43351, -0.32253, -0.3976, -0.39288, -0.39114, -0.2467, -0.087921, -0.088613, -0.15981, 0.18786, 0.19151, 0.46364, 0.15919, 0.19353, 0.23198, 0.41944, 0.29117, 0.13265, -0.041281, 0.024461, -0.058649, -0.048431, 0.074459, 0.038048, -0.04011, 0.05987, 0.052512, -0.0090562, 0.023537, -0.068198, -0.058682, -0.031438, 0.05729, 0.096319, -0.010632, -0.072423, 0.026755, 0.018666, -0.035083, 0.0033659, -0.026, 0.051531, -0.095878, -0.072904, -0.067948, 0.0043261, -0.0040118, -0.0054864, -0.0070406, -0.023664, -0.021349, -0.055765, 0.076203, 0.057795, 0.0049914, -0.014554, -0.029744, -0.057165, -0.0010086, -0.035362, -0.0047531, -0.011301, 0.11501],
|
||
[0.15174, -0.014179, 0.016877, -0.077205, 0.078108, -0.13113, 0.0027535, 0.051911, 0.028948, 0.050209, -0.0045795, -0.10685, 0.011155, 0.065186, -0.13027, -0.080144, 0.10736, 0.04888, 0.015759, 0.12191, 0.096985, -0.0080833, 0.020705, -0.081938, 0.0046465, 0.056148, 0.16628, 0.046183, 0.077658, -0.019961, -0.096538, 0.079466, 0.25805, 0.0077622, 0.06952, 0.0095238, 0.26152, 0.086788, -0.037402, 0.069486, 0.071695, 0.13258, -0.021458, 0.056046, -0.00039375, 0.032222, 0.18458, -0.04254, -0.012964, 0.1701, -0.023562, 0.051153, -0.13166, 0.020665, -0.24023, 0.038647, -0.025858, -0.081456, -0.11687, 0.044401, -0.35731, -0.6458, -0.40588, -0.30571, -0.12682, -0.33498, 0.015693, -0.078712, -0.043104, -0.15482, -0.23546, 0.11117, 0.45545, 0.18491, 0.29247, 0.19673, 0.19711, 0.073292, 0.0082412, -0.11507, -0.0097699, -0.10086, 0.06842, -0.054338, 0.077438, 0.17116, 0.001288, 0.13426, 0.1106, -0.073247, 0.037258, -0.012267, 0.073659, 0.043783, -0.10715, 0.086654, -0.068763, -0.058722, 0.044547, -0.055318, 0.033045, 0.057546, 0.0013722, 0.024826, -0.12204, -0.1019, 0.054773, -0.079578, -0.038229, 0.036495, 0.13217, 0.057211, -0.025832, -0.054716, 0.013914, 0.12333, 0.0048703, 0.0051744, 0.02839, -0.021508, -0.034672],
|
||
[-0.0056384, -0.034135, -0.022985, -0.060425, 0.054919, 0.068881, -0.0070135, -0.0064886, -0.074997, -0.0025759, 0.023015, 0.0083653, -0.031176, 0.042573, -0.066109, 0.029356, -0.013292, 0.056362, 0.034219, -0.012595, -0.014012, -0.062381, -0.07114, 0.0024196, -0.035945, 0.045638, -0.0047184, 0.066745, 0.0453, -0.044479, 0.089641, -0.096496, -0.027741, -0.0057168, 0.015013, -0.024603, 0.0013274, -0.035627, 0.017129, -0.045973, 0.0070037, -0.043147, -0.029564, -0.020695, -0.079785, 0.026834, -0.0019309, 0.083258, 0.10733, 0.074877, 0.048498, 0.091698, 0.048185, 0.052096, 0.0076798, 0.10519, 0.02253, 0.12672, 0.059197, 0.073166, 0.11595, 0.056154, 0.12933, 0.088424, 0.030087, 0.069156, 0.12092, -0.089932, -0.019015, -0.044735, 0.11876, 0.0019622, 0.098963, -0.014936, -0.058157, -0.030281, 0.039004, -0.084991, -0.046013, -0.014914, 0.021156, 0.064216, -0.02398, 0.028088, -0.015711, 0.055355, -0.10472, -0.089683, -0.28534, -0.18319, -0.080774, 0.0051665, 0.057863, 0.064364, 0.089305, 0.033738, -0.12463, -0.15877, -0.35595, 0.095129, -0.14725, -0.20316, -0.084143, -0.2132, -0.18019, -0.21194, -0.10023, -0.021533, -0.037309, 0.12624, 0.22035, 0.1891, 0.15893, 0.012004, 0.054019, -0.028528, 0.0032336, -0.0066272, 0.084693, 0.11629, 0.19103],
|
||
[-0.08632, -0.042516, -0.0087762, 0.021241, 0.0047851, -0.035472, 0.0066937, -0.00018714, 0.0082764, 0.03874, -0.068078, -0.050242, 0.0053628, -0.046723, 0.094159, 0.025987, 0.028403, 0.12799, 0.052174, 0.031742, 0.043517, 0.1003, 0.009888, -0.035094, -0.0070136, 0.069061, 0.096711, 0.081381, 0.057645, 0.011067, -0.018381, -0.082602, -0.052684, -0.01996, 0.019919, 0.074764, 0.0037734, -0.0014401, -0.10891, -0.057902, 0.062403, 0.10607, 0.093356, 0.16322, -0.044312, -0.0066519, 0.024113, 0.064553, 0.15171, 0.30458, 0.087042, -0.13006, -0.11938, 0.02659, -0.061874, 0.099973, 0.06382, 0.11767, 0.10413, -0.064651, -0.64839, -0.57719, -0.036256, 0.17484, -0.082879, -0.052896, 0.093451, 0.13223, -0.0031159, -0.20504, -0.56713, -0.17042, 0.51278, 0.080572, -0.069035, -0.076494, -0.0087908, 0.063359, -0.019296, -0.26311, -0.26432, 0.00439, 0.41748, 0.23966, -0.073562, -0.09551, -0.23475, 0.028298, 0.061075, -0.16177, -0.0028367, 0.094222, 0.12827, 0.14707, 0.071302, -0.074737, -0.23885, -0.085022, -0.07147, 0.0091791, -0.00092606, 0.084224, 0.07315, -0.027624, -0.10044, -0.0028873, 0.084866, 0.01031, -0.00054869, 0.084218, 0.005403, 0.095305, 0.021416, 0.032093, 0.095158, -0.064421, 0.028975, -0.0069886, 0.15811, 0.077388, 0.22282],
|
||
[0.076468, 0.094525, 0.013417, -0.065411, 0.0022049, -0.19543, -0.010363, 0.0006824, -0.025036, 0.1071, 0.17509, 0.14614, 0.053718, 0.033399, 0.058514, 0.10089, 0.12393, 0.00030037, -0.072506, -0.053549, -0.068975, 0.068143, -0.0032047, -0.023764, -0.033057, -0.046769, -0.12086, 0.13198, 0.010909, 0.11806, 0.00055654, -0.0058049, 0.035993, -0.0082657, 0.068351, 0.0301, 0.113, 0.049423, -0.18769, -0.089816, 0.12209, 0.065398, -0.23088, 0.013401, -0.096887, 0.096593, 0.089715, -0.0038843, 0.12013, 0.37404, 0.21211, -0.011527, -0.049284, 0.018755, -0.082645, 0.10818, -0.058116, -0.049761, 0.038468, -0.27345, -0.84643, -0.29645, 0.088276, 0.11387, -0.043246, 0.0080367, -0.10745, -0.31047, -0.044148, -0.17805, 0.27176, 0.52375, -0.34603, -0.25553, 0.041699, 0.17631, 0.089, -0.034972, 0.015214, -0.16155, -0.0044616, -0.19608, 0.52391, 0.38353, -0.18308, -0.36866, -0.0516, 0.18508, -0.03906, -0.11294, -0.29448, -0.24258, -0.020336, 0.1646, 0.042029, -0.034579, -0.080621, 0.0023781, 0.09709, 0.25587, -0.25284, 0.061611, 0.09607, -0.053049, -0.016158, -0.051428, 0.15564, 0.18886, 0.0084349, -0.048989, 0.17712, 0.19164, 0.18133, 0.13612, 0.1653, -0.029342, -0.042788, -0.053546, 0.043048, 0.00043498, 0.043392],
|
||
[-0.067392, 0.15604, 0.33006, 0.17019, -0.0097699, -0.11247, -0.09464, -0.024494, -0.0039792, 0.10994, 0.034233, 0.17574, -0.058308, -0.086036, -0.089378, 0.13061, 0.083343, 0.045589, -0.0215, -0.039618, -0.040283, -0.054908, -0.029621, 0.033422, -0.18107, 0.062628, -0.15452, 0.16302, -0.19246, 0.025899, 0.13802, 0.042581, -0.10232, -0.047879, -0.084652, -0.10421, -0.11475, -0.077448, 0.17513, 0.31631, -0.21234, -0.13718, 0.032256, 0.16117, 0.12437, -0.19602, -0.10317, -0.17989, -0.030777, 0.36723, 0.26823, -0.14256, -0.34284, -0.16863, 0.20718, -0.04361, -0.21591, -0.35645, -0.35914, -0.35654, -0.22838, -0.25415, -0.027038, 0.1043, 0.070313, 0.19633, 0.011469, 0.056101, 0.20979, 0.31383, 0.36266, 0.15633, 0.043118, 0.15942, 0.138, 0.082457, -0.097363, 0.017536, 0.18875, 0.1323, 0.09316, 0.10016, 0.041772, -0.16461, -0.01027, -0.016122, -0.10278, -0.093043, -0.049187, 0.011398, -0.00027008, 0.0074397, -0.20028, -0.11833, 0.015078, -0.018453, -0.036365, -0.020538, 0.067467, 0.098981, -0.0055674, -0.092027, -0.011441, 0.040493, 0.072107, 0.047545, -0.010628, 0.010379, -0.037361, 0.049441, 0.23173, 0.066224, 0.053604, 0.070224, 0.00044744, -0.024041, 0.017027, 0.082502, 0.044118, 0.094446, 0.02607],
|
||
[-0.014874, 0.0064653, 0.18058, 0.1064, 0.14624, -0.18549, -0.11947, 0.13337, 0.14316, 0.21268, 0.074573, -0.023663, 0.00030163, 0.034924, 0.00049764, -0.27861, 0.019649, 0.22429, 0.10635, -0.055747, -0.17203, 0.14652, 0.083678, 0.08006, 0.12677, -0.2096, -0.11993, 0.079651, -7.05e-05, -0.1316, -0.12186, -0.12212, -0.063472, 0.11592, -0.00031212, -0.16159, -0.2051, -0.015211, 0.33419, -0.021198, 0.051574, -0.081191, -0.024248, 0.031953, 0.08989, -0.055348, -0.19027, -0.20571, -0.00342, 0.42337, 0.27261, -0.084998, -0.27009, -0.26985, -0.17357, 0.049621, -0.003575, 0.036593, 0.0086359, -0.27033, -0.39995, -0.17184, -0.24084, -0.20002, -0.25264, 0.04389, -0.06426, 0.074044, -0.01414, 0.12916, 0.13074, 0.027929, 0.018943, 0.12691, 0.28765, 0.28887, 0.29998, -0.037028, 0.049534, -0.018197, 0.19754, -0.0048382, -0.067002, 0.095329, -0.077329, 0.097922, 0.11727, 0.051206, 0.014744, 0.074516, 0.076595, -0.10213, -0.010104, 0.053405, 0.025968, 0.042843, -0.03165, -0.10112, -0.062004, 0.080997, -0.096227, 0.0027223, 0.0032193, 0.028018, -0.080393, -0.068244, -0.0065763, -0.10139, 0.005777, -0.0019333, -0.028478, 0.078148, 0.0046718, 0.086526, 0.07515, 0.080912, 0.14299, 0.058255, 0.060032, 0.069309, 0.13734],
|
||
[-0.026403, -0.020918, -0.035102, -0.014307, -0.0042972, -0.058078, 0.038179, -0.0028112, -0.0038941, 0.0018813, -0.10079, 0.021583, 0.073512, 0.054528, 0.18988, 0.13986, 0.072941, 0.059257, 0.031091, -0.015845, -0.023618, -0.064937, 0.075643, -0.079466, -0.020769, -0.10404, -0.033013, 0.072788, 0.10548, 0.0019405, -0.0070426, -0.028399, 0.045186, -0.019186, 0.10715, 0.11823, 0.038571, -0.027458, -0.098265, 0.056391, 0.040157, 0.12887, -0.031556, -0.02314, 0.069122, 0.025102, 0.029789, -0.070653, 0.016315, 0.28689, 0.17026, 0.012541, 0.070851, 0.0048605, 0.033198, -0.091329, -0.15097, -0.024121, -0.02457, -0.41481, -0.77687, -0.27461, 0.13786, 0.13545, 0.13314, 0.082653, 0.089238, -0.044081, -0.076883, 0.126, 0.40959, 0.087069, -0.46621, -0.43761, -0.10812, 0.017686, 0.1273, -0.064747, -0.10763, -0.085248, -0.2315, 0.15315, 0.5562, 0.23775, -0.16669, -0.17716, -0.16977, 0.025009, 0.060378, -0.20713, -0.18646, -0.080662, -0.0061085, 0.13479, 0.056632, 0.17463, 0.017491, -0.015088, -0.051792, 0.086679, -0.043885, 0.048343, -0.11503, 0.1406, -0.062258, -0.11335, -0.064954, 0.027741, 0.11898, 0.030261, 0.17154, 0.057333, 0.16205, 0.098609, 0.073912, -0.090816, -0.010371, 0.092276, 0.1103, -0.0058808, 0.03315],
|
||
[0.2655, -0.0011966, -0.022917, 0.04243, -0.13812, -0.037431, -0.04056, -0.023934, 0.079259, -0.034522, 0.1745, 0.041791, -0.022741, -0.001354, -0.10139, -0.053306, 0.058909, 0.093373, 0.05014, 0.0084539, 0.021167, 0.10388, 0.0076348, 0.013139, -0.075217, 0.015069, 0.24056, 0.064464, -0.061521, -0.084694, -0.068058, -0.010292, -0.035799, -0.047138, -0.030265, 0.025114, 0.16953, -0.081754, -0.16484, -0.090216, 0.19964, 0.18826, 0.045615, 0.10861, -0.028329, -0.10352, 0.075322, -0.034013, -0.058696, 0.44091, 0.084019, -0.01285, -0.042461, 0.13376, -0.12951, 0.0026411, 0.044978, -0.090312, 0.055734, 0.060061, -0.71528, -0.28235, 0.031272, 0.11881, -0.0042768, -0.011348, 0.0023675, 0.00043486, 0.18959, -0.08576, -0.45258, 0.15962, 0.31737, -0.062412, -0.33746, -0.24412, -0.061413, 0.13079, 0.20848, -0.20955, -0.28813, 0.14444, 0.46815, 0.085139, -0.22659, -0.027717, -0.16856, -0.13754, 0.1506, 0.00078477, -0.17891, -0.067289, 0.11814, 0.1094, 0.10648, -0.07785, -0.24214, -0.15597, 0.018452, -0.0653, 0.042694, 0.11064, 0.1346, 0.030738, -0.01497, 0.039307, 0.041005, -0.028334, 0.015742, 0.11427, 0.021003, 0.0077222, -0.00084806, 0.056397, -0.1125, -0.064031, 0.026888, 0.12622, 0.25062, 0.11068, 0.26257],
|
||
[0.072041, -0.022942, 0.20655, 0.0021518, -0.14297, 0.00060653, -0.058092, 0.13818, 0.17792, 0.12334, 0.0044529, -0.04606, -0.071586, -0.10074, -0.07374, -0.018046, -0.11863, 0.17618, 0.14978, -0.060747, -0.0027956, 0.16786, -0.10698, 0.083, 0.12903, 0.047203, -0.030334, 0.099121, -0.051747, -0.20798, -0.0060523, -0.2464, 0.002543, 0.056676, 0.13754, -0.079126, -0.17639, 0.055182, 0.29993, -0.12375, -0.15473, -0.015286, -0.0054135, -0.08584, 0.22138, -0.1313, -0.33147, -0.21124, 0.24712, 0.46372, 0.0027062, -0.24161, -0.10142, -0.18323, 0.11158, 0.1676, 0.029994, 0.025682, -0.11959, -0.33142, -0.15445, -0.16382, -0.18307, -0.40205, -0.26594, -0.15682, -0.0002612, -0.028756, 0.27425, 0.21593, 0.25487, 0.097667, 0.20034, 0.19879, 0.30686, 0.17247, 0.018739, -0.031064, 0.026366, -0.18777, -0.15481, -0.037429, -0.11875, 0.10726, 0.17942, 0.11733, 0.0052779, 0.23972, 0.0079701, -0.051503, 0.05532, -0.040008, -0.092708, -0.031471, -0.098759, -0.09293, 0.055518, -0.037796, -0.0063426, 0.024883, 0.034983, 0.071931, -0.031592, -0.08635, -0.0090017, 0.071457, -0.060722, -0.14319, -0.048321, 0.081485, -0.028272, 0.063684, 0.005548, 0.11811, 0.14065, 0.00406, -0.013719, 0.12724, 0.099627, 0.13232, 0.13873],
|
||
[-0.027796, 0.19015, 0.097864, 0.12603, -0.033269, -0.089501, 0.04756, 0.073741, 0.10899, 0.010866, -0.057266, 0.17803, -0.063867, 0.018021, 0.025919, 0.052576, -0.021274, -0.13049, 0.029636, 0.021721, 0.074926, 0.05983, -0.076901, -0.026485, -0.15053, -0.13725, 0.087833, 0.066023, -0.091947, -0.2149, -0.020022, 0.061471, 0.041399, 0.031512, -0.0153, 0.026068, -0.033971, -0.056572, 0.18971, 0.088995, -0.15964, -0.16587, -0.11188, 0.12235, -0.052308, -0.37845, -0.096614, -0.069048, 0.066169, 0.45011, 0.11905, -0.089093, -0.12905, -0.036526, 0.054822, 0.02481, -0.29747, -0.29999, -0.30525, 0.020997, -0.24089, -0.24201, -0.089791, 0.040398, 0.02526, 0.027389, 0.27071, 0.36232, 0.17799, 0.14461, 0.039188, -0.12174, 0.06238, 0.053787, 0.077565, 0.089143, -0.082913, 0.047936, 0.032228, 0.13504, 0.01206, -0.0045403, 0.048158, 0.081652, 0.042006, 0.0009472, 0.013452, 0.046158, -0.08677, -0.01951, -0.011155, 0.027566, 0.061728, 0.012115, -0.023208, -0.031607, 0.059643, -0.036766, -0.015929, 0.0064081, -0.081899, -0.02977, -0.088821, -0.028071, -0.023692, -0.019599, 0.057438, -0.038196, -0.011284, 0.039955, 0.099448, 0.06855, 0.073048, 0.062483, 0.026346, 0.051335, 0.055075, 0.054677, 0.024906, 0.045384, 0.032908]
|
||
],
|
||
"sobel": [
|
||
[0.021622, -0.039044, -0.037054, -0.070222, -0.14277, 0.010719, 0.23521, 0.042586, -0.066839, -0.035786, -0.040592, -0.04765, 0.015366, -0.0089413, -0.018094, -0.041156, 0.059194, 0.03497, 0.0085535, -0.012133, 0.037119, 0.011104, 0.013667, 0.057116, -0.039502, 0.0017173, -0.10081, 0.037478, 0.16095, -0.067174, -0.034198, 0.04378, -0.02895, -0.075339, -0.037953, 0.015621, -0.0062937, -0.11864, 0.049183, 0.1707, -0.019043, -0.042438, -0.017632, -0.075732, 0.0095324, 0.03293, -0.014258, -0.0098967, -0.080728, 0.076951, 0.1301, -0.11441, 0.020647, 0.0074901, 0.029524, -0.012759, -0.0093581, -0.0058362, 0.064104, -0.1647, 0.094418, 0.13507, -0.044142, -0.052786, -0.010841, -0.006663, -0.023002, 0.028816, 0.041661, -0.032028, -0.061565, 0.13252, 0.13007, -0.12915, 0.0036202, 0.036105, -0.012106, 0.0040582, -0.061908, 0.0076004, 0.03672, -0.14106, 0.20292, 0.060389, -0.09659, 0.054589, -0.10019, 0.041123, -0.036635, 0.116, -0.072959, 0.0058381, -0.080459, 0.15241, 0.064258, -0.09976, -0.038509, 0.0044402, -0.027742, -0.034369, -0.015116, 0.0058884, 0.046096, -0.057577, 0.10123, 0.074735, -0.08287, 0.016464, -0.035808, -0.034751, -0.0037474, -0.026826, 0.0056597, -0.06777, 0.056803, 0.22043, 0.017122, -0.14459, -0.079001, -0.0448, -0.099982],
|
||
[-0.039422, -0.057937, 0.074729, -0.048045, -0.037188, 0.052703, 0.26143, -0.061949, -0.10675, 0.031812, -0.051385, -0.006001, -0.00075896, -0.0050347, -0.041065, -0.017209, -0.0095906, 0.13126, -0.051458, -8.2457e-05, -0.063001, 0.0066233, 0.0045051, -0.0083206, 0.034913, 0.012367, -0.059277, 0.052288, 0.1547, -0.051592, -0.045779, -0.007896, -0.018757, -0.094971, 0.065529, -0.029159, 0.046869, -0.070025, 0.062731, 0.12066, -0.068658, -0.019059, 0.0074337, -0.067123, 0.02053, 0.013044, 0.0035088, -0.01203, -0.097183, 0.028502, 0.15192, -0.07064, -0.075749, 0.031913, -0.031982, -0.023049, -0.030048, -0.0032721, 0.060009, -0.10611, 0.0716, 0.029747, -0.055757, 0.010541, -0.038579, -0.013056, -0.046604, 0.045825, -0.011912, -0.011527, -0.095327, 0.05184, 0.069492, -0.078788, -0.022076, 0.055685, -0.02869, -0.01075, -0.034159, -0.03803, 0.057879, -0.13134, 0.085608, 0.12614, -0.044827, -0.049757, -0.024712, -0.071507, -0.024192, 0.01363, 0.048434, 0.024359, -0.0051155, -0.10514, 0.14444, -0.0088548, -0.068772, 0.041549, -0.034167, -0.021582, 0.030183, -0.0040015, -0.0083662, 0.026868, -0.022178, 0.083314, 0.01001, -0.030072, 0.037843, -0.070384, -0.083549, -0.036392, -0.016616, 0.062408, -0.091602, -0.006843, 0.095086, 0.048339, -0.027514, -0.13109, -0.096684],
|
||
[0.026522, -0.045758, -0.0065412, -0.085061, 0.14723, 0.047881, -0.019734, -0.051042, -0.066675, -0.018868, -0.041408, -0.11352, 0.064944, 0.026472, -0.00090233, 0.012634, 0.016737, 0.006623, -0.027195, -0.013684, -0.053134, -0.037127, -0.022633, -0.0018942, 0.033462, -0.11825, 0.020164, 0.11023, -0.034399, -0.0040491, 0.015541, -0.018763, 0.031383, -0.034906, 0.0084091, -0.044335, -0.0185, -0.036774, 0.11925, -0.066557, -0.015722, 0.008805, -0.073061, 0.02431, -0.0022227, -0.027085, 0.11301, -0.089658, -0.069331, 0.15228, -0.11814, 0.041523, -0.055859, 0.035897, -0.02284, -0.062359, 0.017954, -0.0023517, 0.024292, -0.020141, 0.16616, -0.060547, -0.095994, -0.035172, 0.00017003, -0.054487, 0.0051047, -0.024971, -0.026949, 0.13212, -0.015913, 0.14877, 0.079641, -0.1123, -0.0092442, 0.058819, -0.07792, -0.090482, 0.11103, 0.042626, -0.0021955, -0.036122, 0.047147, 0.18616, -0.063269, -0.063506, -0.029535, -0.029987, -0.016003, -0.030794, 0.0070419, -0.030444, -0.12719, 0.041134, 0.20405, -0.029811, -0.087053, -0.016364, -0.037892, -0.026402, -0.013779, -0.013032, -0.053538, -0.05678, -0.079377, 0.18237, 0.04188, -0.046827, -0.01942, -0.032796, -0.17044, -0.054026, -0.012647, -0.067306, -0.10224, -0.34972, 0.21799, 0.33122, -0.020319, -0.12057, -0.11657],
|
||
[-0.034746, 0.011922, -0.098449, 0.18031, 0.17477, -0.046518, -0.10946, -0.075727, -0.0042795, -0.017697, -0.093984, -0.0108, -0.0045569, -0.031379, -0.11851, 0.2367, -0.014786, -0.063302, 0.022537, -0.025072, -0.0027915, -0.020335, -0.026008, 0.010703, -0.04303, -0.047196, 0.12322, 0.071786, -0.065282, -0.067638, -0.030062, 0.0027285, -0.030746, 0.0343, -0.015485, 0.00061797, -0.12212, 0.050023, 0.1468, -0.084455, -0.010416, 0.017746, -0.037889, -0.0042453, -0.074445, -0.011522, 0.0065318, -0.093068, 0.00025768, 0.23352, -0.004984, -0.070961, -0.040406, 0.0038935, -0.063088, 0.0028549, -0.011365, -0.0051872, -0.011323, -0.15258, 0.10053, 0.12368, -0.077847, -0.059471, 0.028026, 0.048886, -0.019665, -0.017241, -0.041027, 0.001151, -0.082242, 0.078605, 0.16229, -0.010524, -0.030966, -0.041504, -0.039719, -0.038749, 0.05147, 0.030039, -0.051469, -0.060313, -0.081418, 0.17732, 0.02522, -0.012728, -0.064523, -0.013167, -0.013895, -0.049376, 0.01418, 0.00062313, 0.0072845, -0.10894, 0.027785, 0.19202, -0.085036, 0.023989, -0.022828, -0.014372, -0.026342, -0.0055468, -0.019471, -0.033932, -0.0091537, -0.036739, 0.10446, 0.02097, 0.024776, -0.07883, -0.053245, -0.010433, -0.010211, -0.051308, 0.037884, -0.099324, -0.12671, 0.083829, 0.12485, -0.019875, 0.021159],
|
||
[-0.073813, 0.045554, 0.21318, 0.054486, -0.10982, -0.10268, -0.046501, -0.055664, -0.020863, -0.001624, -0.0026296, 0.0099974, -0.10344, -0.0080814, 0.20537, 0.061264, -0.059836, -0.03879, -0.053678, 0.019924, 0.00067537, -0.035726, -0.035441, -0.024734, -0.1508, 0.10616, 0.18685, -0.06407, -0.067087, -0.0055311, -0.086093, 0.061426, -0.035219, -0.039575, 0.049802, -0.033981, -0.11534, 0.1808, 0.1276, -0.083274, 0.0040506, -0.0099809, -0.067759, 0.0026836, -0.0080343, 0.023532, 0.043117, -0.14059, -0.0016268, 0.15585, 0.069627, -0.12437, -0.02648, 0.020383, -0.028769, -0.0062858, -0.028321, -0.011687, -0.029153, -0.094922, 0.052872, 0.11088, 0.054252, -0.053297, -0.027559, -0.038545, 0.011349, -0.026962, -0.005885, 0.0020657, -0.062056, 0.027107, 0.07672, 0.0095546, 0.062121, -0.03263, -0.021507, -0.052784, 0.0030423, -0.0080316, -0.063925, -0.00021021, -0.10025, 0.10155, 0.064158, -0.069916, 0.082103, -0.046503, -0.0048848, -0.027586, -0.014081, 0.019043, -0.033131, -0.0089136, -0.054256, 0.11973, -0.018269, -0.023884, 0.049232, -0.014578, 0.046128, -0.07511, 0.046627, -0.041747, -0.032515, -0.054339, 0.017222, 0.11677, -0.026438, -0.032103, -0.055241, 0.056236, 0.0099623, -0.032474, -0.019767, -0.029422, -0.050974, -0.086443, 0.012599, 0.066122, 0.012114],
|
||
[0.00046674, 0.0005485, -0.00013619, -0.00013253, -0.00080157, -2.6911e-05, -0.00065764, -3.658e-05, -5.466e-05, 0.00014605, -0.00016962, -0.00015906, 0.00011235, 0.00050518, 0.00015356, -0.00031324, -0.00044301, 0.000532, 2.3645e-05, -8.4832e-05, -0.000272, 0.00022416, -7.1195e-05, -0.00019212, 0.00057396, 0.00035815, 0.00031159, -4.6937e-05, -0.00065506, -0.00011996, -4.2348e-05, 0.00010587, -7.9323e-05, -2.3722e-05, -0.0001704, -0.00057593, 0.00065222, 0.00026654, 0.00035667, -7.7692e-05, -3.8173e-05, 0.00010049, -0.00012168, -4.0491e-05, -4.816e-05, -0.00023287, -5.0225e-05, -0.00080183, 0.0010439, 6.197e-05, 0.00028902, 0.00010579, -0.00027248, -0.00018248, -9.7894e-05, 5.6122e-05, -2.4109e-05, -8.2564e-05, 1.2276e-05, -0.0011837, 0.0010388, -0.00030106, -8.2943e-05, 0.00046305, -3.4942e-05, 0.00026048, 8.0063e-05, -0.00023204, 0.00028043, -0.00017993, 0.00024111, -0.00077707, 0.00087259, -0.00047311, -4.8904e-05, 0.00030165, 0.00015237, -0.00032147, 0.000145, -0.00014869, -8.4069e-05, -1.1489e-05, -7.3104e-05, -0.00027258, 0.0010046, -0.00060634, -0.00030284, 0.00023946, 4.0874e-05, 0.00020669, 4.6264e-05, 0.0002212, -0.00025433, -6.9621e-05, -0.00011541, -0.00025522, 0.00090808, -0.00014796, -0.00027357, -0.00019226, 0.00015027, -0.00010411, -0.00012272, 0.00033767, -0.00040885, 1.4065e-05, -6.0894e-05, -1.227e-05, 0.00046367, 0.00018272, -3.3562e-05, -0.00018615, 0.00024748, -0.0002204, -0.00026552, -4.8267e-05, -0.00013654, -0.00016522, -9.9852e-05, -7.3085e-05, 7.6497e-05],
|
||
[0.00014192, -1.085e-05, 0.00016776, -0.00011605, 6.6756e-05, -0.00015563, 6.4164e-05, -0.00016144, -1.1567e-05, -2.939e-05, -0.00018546, -0.00014193, 0.00015689, -0.00022987, 0.00050602, 1.1479e-05, -3.5358e-05, 5.4151e-05, 0.00011627, 3.7186e-05, 5.9554e-05, 3.1315e-05, 1.2057e-05, -9.6696e-05, 0.00010448, -0.00015507, 0.00022023, 8.3867e-05, -0.00012962, -6.7578e-05, -1.3556e-05, -3.5738e-05, -4.5809e-05, -6.3549e-06, -0.00015612, 7.0085e-05, 0.00029764, -0.00010577, 0.0001273, 1.2399e-05, 1.8646e-05, 0.00024213, -0.00015873, 8.3707e-05, -0.00032598, 0.00041133, -8.8688e-05, -0.00049296, 0.00020605, 9.3561e-05, 0.00024763, 0.00036524, -0.00023689, 0.00033172, 1.2629e-05, 0.0002408, -0.00040064, -5.9563e-05, 0.00028034, -0.00028346, 0.00013392, 3.0494e-06, -0.00034838, 0.00059746, -9.9846e-05, 0.00041454, -0.00023074, 0.00034209, -0.00016581, 3.9766e-05, -0.0002783, 0.00012538, 1.4736e-05, 0.00027567, -0.00048884, 8.7213e-06, -2.0493e-05, 0.000205, -0.00032258, 0.00032033, -0.00024322, 2.9087e-05, -0.00028867, 3.0825e-05, -3.6798e-05, 0.00029228, 0.00052891, -0.00024059, -0.00029899, 0.0002319, -0.00024299, 0.00012632, 6.8366e-05, 0.0001055, -7.3226e-05, -0.00010182, -7.6342e-05, -0.00040021, 0.00051869, 0.00045282, -0.00025642, -5.3312e-05, -0.00015072, 0.00026346, 1.5723e-05, -0.00010612, 0.00010031, -0.00022901, 0.00029515, -0.0003781, -0.00048427, 0.00022179, -6.5522e-05, 0.00033674, -0.00046179, 0.00010507, -8.1386e-05, -8.5409e-05, -8.8996e-05, -7.5853e-05, 2.6564e-05],
|
||
[-0.010683, -0.026204, -0.035349, -0.0089039, -0.078265, 0.014533, -0.039735, 0.0028868, 0.0082563, -0.036876, 0.0019618, 0.052924, 0.035479, 0.021452, -0.012058, 0.032416, 0.0081487, -0.0082878, -0.011302, 0.045192, 0.044327, 0.019364, 0.11357, -0.032979, 0.075698, 0.019097, 0.0083418, -0.0060608, -0.024521, -0.0062564, -0.019425, 0.042618, 0.11771, 0.14807, 0.072421, 0.058253, 0.036447, 0.06185, 0.049705, 0.055431, 0.070267, 0.10792, 0.053117, 0.12943, -0.037521, 0.09371, 0.067577, 0.068725, 0.076127, 0.12312, 0.083411, 0.039387, 0.056425, 0.014238, 0.056634, -0.0075863, -0.083041, -0.03313, -0.027636, -0.047769, -0.063296, -0.062579, -0.046277, -0.0014999, 0.035908, -0.15153, -0.06746, 0.052979, -0.025619, 0.037942, 0.064911, 0.022302, 0.055271, 0.092705, 0.018963, -0.053973, 0.0083301, -0.021218, -0.030571, -0.0021454, -0.026876, -0.049043, 0.0051261, -0.0069455, -0.055541, -0.024578, 0.015168, -0.068003, -0.00048112, -0.05652, 0.04967, 0.016316, -0.034086, 0.063067, -0.0080033, 0.033386, -0.044576, -0.023441, -0.044509, -0.037162, 0.007319, -0.073158, -0.011373, 0.072031, -0.018016, -0.00013859, 0.028374, -0.025567, -0.013903, 0.052808, -0.038318, -0.022987, 0.0062782, 0.029734, -0.090237, 0.0094684, -0.067607, -0.012207, 0.0039499, 0.0017681, -0.13205],
|
||
[-0.00048966, -9.6134e-05, 9.5024e-05, -9.4831e-06, -0.00027318, -1.286e-05, -0.00018753, 0.0002536, 0.00013593, 0.00010672, 0.00025208, 0.00030575, -1.8677e-05, -0.00013599, -1.8597e-07, 0.00018716, -2.9456e-05, 1.7404e-05, 0.00029171, -1.6893e-05, 0.00029143, 9.82e-06, -0.00012202, -0.00018215, 5.8728e-06, -2.3871e-05, -0.00016916, -7.7176e-05, 0.00053888, -7.5954e-05, 0.00047546, -0.00048533, 0.00025243, -5.289e-05, 0.00026631, -5.7069e-06, 9.4805e-06, 0.00012584, 0.00045285, -3.7921e-05, 0.00010519, -0.00021575, 0.00013059, -0.00055512, 0.00014299, -1.537e-06, 8.0654e-05, 0.00040678, 0.00038999, 3.6877e-05, -2.6107e-05, -8.5584e-05, -0.00015584, -0.00011966, -3.6535e-05, 0.00054094, 0.00037631, 0.0005227, 0.00013112, -0.0004006, -0.00026994, -4.3073e-05, -4.6583e-05, 0.00011704, -0.00025562, -9.7989e-06, 0.00028045, -0.00016084, -0.00025724, -0.00046505, 0.00040393, 0.00034091, -0.00019371, -0.00012426, 0.0001461, 4.8875e-05, -0.00016903, -0.00037192, -0.0002158, 0.00039962, 0.00079813, 6.5351e-05, -0.00066373, 1.4202e-05, -3.0669e-05, -0.00013015, 1.1834e-06, -6.0453e-05, 0.00046003, 0.00029649, -9.7422e-05, -0.00054615, -0.00054555, 0.00030505, -0.00012282, 3.1042e-05, 0.00012688, -1.1536e-05, -0.00017687, 0.00011095, -0.00059224, 0.00021684, -0.00045799, 0.00057995, -0.00013937, -0.00021221, -5.4137e-05, 3.6609e-05, 4.5939e-05, 0.00021479, -0.000327, 0.0001269, -0.0003423, 0.00034768, -0.00067549, -4.1513e-05, 0.00018063, -0.00018814, 2.8973e-06, 1.3507e-05, -0.00041261],
|
||
[-0.00013437, 0.00012211, -8.2414e-05, -5.7302e-05, -0.00030739, -2.2492e-05, -0.00017176, -7.7102e-05, 4.7108e-05, 0.00017636, 0.00032836, 4.1088e-05, 4.9949e-05, -0.00011876, -0.00023944, 6.1006e-05, -5.4786e-05, -0.00036632, 0.0001673, 0.00025493, 2.2227e-05, -4.4608e-05, 4.8917e-05, 4.1964e-05, -6.1314e-05, 0.00022686, -8.9248e-05, -0.00019302, 0.00023805, 5.5691e-05, 0.000167, 0.00017966, -0.0003835, 3.1919e-05, -0.00021914, 0.00033657, -0.00015381, -0.0001264, 7.8444e-05, -2.5921e-05, 0.00038528, -1.4539e-05, -0.00049288, 0.00010287, -6.4383e-05, 0.0002381, -0.00031386, 0.00014008, -5.8913e-05, 0.00032747, 0.00039023, -7.4475e-05, -0.00041729, -5.226e-06, 0.00012736, 3.6629e-05, 6.5629e-05, 0.00021839, -0.00011813, 0.00021698, 9.6288e-05, -0.0002608, -0.00039654, 0.00011671, -4.0163e-05, -9.6609e-05, 0.00019201, 3.5895e-05, -0.00013216, -2.2031e-05, -9.3108e-05, 0.00025392, -4.0757e-06, -0.00012808, -0.00015139, 0.00022617, -0.00010183, -2.1483e-05, 0.00028357, -0.00028491, -4.2892e-05, 0.00041456, -0.00012604, -0.00039707, 7.6033e-05, 0.00029654, -0.00021374, 2.3271e-06, 9.5164e-05, -0.00068015, 0.00037026, 0.00019251, 0.00013551, -0.00031121, 9.685e-05, -0.00011268, -0.00023013, 0.00015402, 6.4205e-05, -0.00034974, 0.00064853, -4.473e-05, 0.00021225, -0.00034308, -3.7734e-05, -3.8868e-05, 8.6499e-05, 0.00014457, -0.00014733, -2.7613e-05, 0.00026354, -9.6315e-05, -8.0324e-05, -0.00018999, -5.9127e-05, 0.00014091, -0.00012997, -5.0352e-06, -0.00015232, 0.000231, -0.00021588],
|
||
[-0.011114, -0.032645, 0.032393, -0.053019, -0.05229, -0.14091, -0.10663, 0.076743, 0.19184, 0.090513, -0.098345, -0.011357, 0.036593, -0.053861, 0.021336, -0.047044, -0.079543, 0.069135, 0.16071, 0.0038457, -0.086696, -0.030081, 0.022665, -0.023073, -0.018331, 0.0011058, -0.10917, -0.046906, 0.1088, 0.17215, -0.16345, 0.047387, -0.050131, -0.029615, -0.038382, 0.0016627, -0.03478, -0.070943, 0.07791, 0.2302, -0.14284, -0.033306, -0.012579, 0.0084163, -0.032994, -0.048339, -0.019525, -0.069845, 0.014727, 0.14997, 0.078032, -0.15724, -0.0040331, 0.020646, -0.010654, -0.068656, 0.024298, -0.0024877, -0.030228, 0.090227, 0.080843, -0.086655, 0.01296, 0.018917, -0.045623, -0.032739, -0.036379, -0.052935, 0.0072628, 0.025316, 0.065355, 0.05083, -0.051373, 0.012063, -0.053921, 0.0041695, -0.0082265, -0.01122, -0.0075849, 0.059, -0.039921, 0.11126, -0.021519, -0.057332, 0.005526, -0.0042105, 0.0091544, -0.029534, -0.0046619, 0.086827, -0.087906, 0.060049, 0.08224, -0.067951, -0.052837, -0.081788, 0.043806, -0.035919, 0.030943, 0.048874, -0.078419, 0.036039, 0.15302, -0.0020635, -0.062144, -0.0042183, 0.018343, -0.0063008, -0.011523, -0.047258, -0.028718, 0.078802, 0.069202, -0.08006, -0.14107, -0.025482, -0.020509, -0.015509, -0.0094705, 0.014878, -0.0034915],
|
||
[-0.049718, -0.035759, -0.022243, -0.035623, -0.068946, -0.14441, 0.23465, 0.15847, -0.065972, -0.018536, -0.024797, -0.0076368, 0.0066228, -0.017527, -0.010789, -0.040286, -0.0056962, 0.13973, -0.042841, -0.030913, -0.050613, -0.014451, -0.033321, -0.053283, 0.0084957, -0.033399, -0.10205, 0.030196, 0.21111, -0.085712, -0.030767, 0.0065006, -0.032108, 0.010381, 0.037671, -0.056206, -0.032604, -0.1561, 0.15115, 0.087468, -0.079714, 0.018202, -0.0045105, 0.026833, -0.043426, -0.026067, -0.02529, -0.042097, -0.070926, 0.2353, 0.011521, -0.095817, -0.018725, -0.037049, -0.026822, -0.019582, 0.044677, 0.02881, -0.058262, 0.024777, 0.1255, -0.035929, -0.087119, -0.0026901, 0.0046237, -0.01805, 0.016779, -0.012651, -0.089945, -0.061953, 0.10991, 0.15038, -0.090164, -0.035134, 0.019258, -0.02301, -0.026283, -0.066215, 0.0036082, -0.019206, -0.020172, 0.19898, -0.024159, -0.048082, -0.027408, -0.075525, 0.064454, -0.058575, -0.0086368, -0.0086036, -0.060077, 0.045972, 0.12618, 0.022411, -0.1105, 0.0069619, -0.0094113, 0.015503, -0.048438, -0.046829, -0.00022239, 0.0014118, 0.089525, 0.079141, -0.092462, -0.018049, 0.0014867, 0.0047595, -0.0017288, -0.027305, -0.032111, -0.017611, 0.073416, 0.11602, -0.044348, -0.098407, -0.0088183, -0.04299, -0.039403, 0.014837, -0.050635],
|
||
[-0.068701, -0.032924, -0.028685, -0.027347, -0.012438, 0.045308, 0.14147, -0.024737, 0.021872, -0.029614, 0.0014704, 0.00061449, -0.065002, 0.036644, -0.03221, -0.01372, 0.0042619, 0.043979, -0.046108, -0.020623, 0.092668, -0.085227, -0.047327, 0.056896, -0.038868, -0.091733, -0.0024676, 0.054788, 0.092325, -0.083977, -0.022272, -0.015279, -0.037661, 0.007948, 0.03556, -0.051925, 0.0048635, -0.051612, 0.069927, 0.019604, -0.05813, 0.03412, -0.022789, 0.0056804, -0.011191, -0.04521, 0.042702, -0.027746, -0.083076, 0.15661, -0.028534, -0.064019, 0.0071637, 0.010947, -0.026172, -0.039177, -0.052625, -0.032611, -0.024151, -0.029592, 0.14367, -0.017566, -0.05466, 0.057155, 0.029811, -0.06134, 0.040778, 0.011699, -0.0088244, -0.13868, 0.0070548, 0.1384, 0.034596, 0.011188, 0.048424, 0.010038, -0.0018498, -0.037856, -0.043326, 0.0080412, -0.1369, 0.15427, 0.053186, -0.062849, 0.098908, 0.024336, 0.0012518, -0.020851, -0.010459, -0.013998, -0.062995, -0.12718, 0.18117, 0.12558, -0.13692, -0.022944, -0.023608, -0.0059309, -0.029009, -0.11053, 0.016766, -0.029906, -0.010995, 0.17826, 0.052695, -0.15857, 0.018373, -0.062619, 0.025193, -0.0018929, -0.067841, -0.050794, -0.10117, 0.13362, 0.34075, -0.12172, -0.2107, -0.083359, -0.078476, -0.029252, -0.22249],
|
||
[-0.065571, 0.057388, -0.13425, -0.095897, 0.24651, 0.14475, -0.10963, 0.025485, -0.006675, 0.018031, -0.072827, 0.030726, -0.044557, -0.015541, -0.056845, 0.085633, 0.10033, -0.037429, -0.062462, -0.033927, 0.014833, -0.031364, -0.023246, -0.032758, 0.029612, -0.098209, 0.077944, 0.095671, -0.083246, 0.020906, 0.050811, -0.039132, 0.038704, -0.040633, 0.00067528, 0.013989, -0.13054, 0.045164, 0.11112, -0.063736, 0.037782, 0.017424, 0.061583, -0.063674, -0.085358, 0.034715, -0.0030215, -0.074515, 0.12039, 0.11915, -0.066498, -0.05749, 0.021248, -0.043396, 0.056092, -0.050906, 0.030755, -0.017042, -0.086373, 0.043707, 0.071729, -0.046172, -0.12569, 0.062778, -0.054878, 0.0098493, 0.042535, -0.025427, 0.0048504, -0.034534, 0.057141, 0.071824, -0.078857, 0.046187, 0.014022, -0.0059724, -0.059074, -0.052311, -0.018659, 0.016795, -0.048576, 0.0056966, 0.17001, -0.14025, -0.01492, -0.024501, 0.06768, -0.052642, -0.077081, 0.042505, -0.035988, -0.048451, 0.047675, 0.055033, -0.064761, 0.020293, 0.0052681, -0.0087241, -0.060607, -0.069111, 0.024796, -0.027098, -0.0012387, 0.015077, 0.055874, -0.027944, 0.0052288, -0.048321, 0.085962, -0.0020463, -0.11994, -0.049601, -0.092974, -0.03198, 0.15102, 0.082755, -0.058126, 0.041661, -0.037047, 0.00087627, -0.080283],
|
||
[-0.034049, -0.013918, -0.065488, -0.04731, 0.23782, 0.10577, -0.16564, -0.010855, -0.078836, -0.05002, -0.082312, 0.0046222, 0.02797, 0.0058953, -0.040404, 0.085254, 0.028249, -0.056799, -0.03836, 0.064562, -0.0049545, -0.0026872, 0.015598, -0.018252, -0.05971, -0.057151, 0.13138, 0.056842, -0.023477, -0.047153, 0.0008577, 0.011009, 0.0056124, -0.055915, -0.028097, 0.048625, -0.096117, 0.13044, 0.12721, -0.12259, -0.022446, 0.0076033, -0.0078139, -0.040903, -0.00098022, 0.010152, -0.055309, -0.092262, 0.07871, 0.14964, -0.059601, -0.07591, 0.069756, -0.012391, 0.016172, -0.01017, -0.0099409, 0.057863, -0.0535, 0.0023151, 0.24268, -0.16271, 0.003039, -0.0019135, -0.031935, 0.031241, -0.013448, 0.018763, -0.027194, -0.063835, -0.019315, 0.17296, 0.004778, -0.046724, 0.0006375, 0.012018, -0.049906, 0.063102, -0.059113, -0.0019439, -0.014409, -0.015148, 0.15803, -0.0095471, -0.14208, 0.10783, -0.029316, 0.0049959, -0.02723, -0.027548, 0.011938, -0.05422, -0.092135, 0.23666, 0.043819, -0.041978, -0.0056029, -0.027255, 0.0096145, -0.04155, -0.034068, -0.012401, -0.041538, -0.049314, 0.16482, 0.042083, -0.10972, 0.066034, -0.007725, 0.0029249, -0.080851, -0.05769, -0.037836, -0.09375, -0.14353, 0.17091, 0.14407, -0.019807, -0.03718, -0.013199, -0.047378],
|
||
[-0.089356, -0.043599, -0.040685, -0.056315, -0.064317, -0.036306, 0.087125, -0.025232, 0.060763, -0.016932, -0.040975, 0.0011693, -0.02347, 0.03936, -0.0044332, -0.014202, -0.070464, 0.013142, 0.003362, -0.010206, 0.03951, 0.020167, 0.056938, 0.034174, -0.062667, 0.0839, -0.0039051, -0.12024, -0.019127, 0.068195, 0.0042397, -0.024727, 0.013195, 0.10092, 0.083733, 0.093601, -0.028064, 0.15309, 0.019081, -0.13459, -0.041819, 0.023908, -0.0036808, 0.0078939, 0.064007, -0.027475, -0.014962, 0.019431, -0.10422, 0.18788, 0.0038647, -0.021851, -0.07162, -0.0073304, 0.023479, -0.032992, 0.074772, 0.11997, 0.16653, -0.043451, -0.19633, -0.01512, 0.015596, -0.041436, 0.075827, -0.0062698, -0.13523, -0.13543, -0.0794, 0.013399, 0.29846, 0.12613, -0.082085, 0.034499, -0.060887, 0.028444, -0.036122, 0.0051284, -0.046056, -0.18431, -0.20981, -0.12018, 0.095624, 0.012102, -0.022525, -0.045282, -0.012822, 0.043771, 0.080442, 0.053685, 0.040662, -0.010274, -0.10557, -0.073596, 0.038444, -0.019075, 0.012246, -0.0015394, -0.021037, 0.055182, 0.044094, 0.02839, 0.0097436, -0.041473, -0.055378, -0.016991, -0.0081618, 0.0076016, -0.0066457, 0.040565, 0.081751, 0.05078, 0.11557, 0.055483, -0.057897, -0.11059, -0.071829, 0.061971, -0.030281, 0.019305, 0.054297],
|
||
[-0.24374, -0.072314, -0.041972, -0.143, 0.061523, -0.030205, -0.020865, -0.047648, -0.0041297, 0.040277, 0.0059092, -0.061426, -0.049228, -0.070004, -0.064273, -0.026634, -0.065741, -0.05105, 0.0043411, -0.016116, -0.031515, 0.037031, -0.12281, -0.030326, -0.047122, 0.0069455, -0.1202, 0.03392, -0.036501, -0.023249, -0.1156, 0.038387, -0.0026533, 0.061601, 0.10392, 0.10819, 0.068685, 0.11776, 0.017679, -0.058902, -0.020291, 0.00014691, -0.12261, -0.010208, 0.25552, 0.13824, 0.14468, 0.13523, 0.19144, 0.31527, 0.11572, 0.11682, 0.032566, -0.050278, -0.13474, 0.0088966, -0.066686, -0.10871, -0.18659, -0.34157, -0.34638, -0.011264, 0.029142, 0.12461, 0.10801, -0.02281, -0.047432, -0.016066, -0.012088, 0.13024, 0.16586, 0.082232, -0.18073, -0.23906, -0.0034761, -0.0025529, -0.0080703, 0.035855, 0.06089, 0.052805, -0.003316, 0.12385, 0.18824, 0.2921, 0.11943, -0.074494, -0.037462, -0.023738, 0.072599, -0.00045486, 0.00074298, -0.0015929, -0.17247, -0.15444, -0.13465, 0.032777, 0.07086, -0.00047705, -0.032344, -0.039986, -0.074752, -0.069852, -0.082819, 0.032778, -0.0042938, -0.015013, 0.018193, -5.6098e-05, 0.01986, 0.033074, 0.016572, 0.091964, 0.073377, 0.098478, 0.036105, 0.05087, 0.010385, 0.040242, -0.070135, 0.0028041, -0.10929],
|
||
[-0.076119, -0.019269, -0.031755, -0.046456, -0.040704, -0.050843, -0.021974, -0.025543, -0.074161, -0.013171, -0.11347, -0.057228, -0.029591, -0.034244, 0.0061905, -0.0094645, -0.044626, -0.10437, -0.028686, -0.04109, -0.046152, 0.0098326, -0.067696, -0.028013, -0.071397, -0.075353, -0.10566, -0.075523, -0.026284, -0.031035, 0.045982, -0.029752, 0.011393, -0.10394, -0.034764, -0.037846, 0.00012124, 0.091279, 0.14577, 0.11042, 0.1887, 0.10738, 0.13269, 0.010378, -0.052734, 0.07628, 0.13003, 0.24686, 0.21184, 0.24704, 0.22868, 0.036921, -0.028737, -0.070385, 0.0055155, 0.11568, 0.1066, 0.19512, 0.045422, -0.075768, -0.18362, -0.31804, -0.19549, -0.077995, -0.031296, -0.077328, 0.12871, 0.041487, -0.13922, -0.20396, -0.15728, -0.072167, 0.086564, 0.10758, 0.081809, 0.066724, 0.047445, 0.017639, -0.10582, -0.056754, 0.048224, 0.14307, 0.12359, 0.071727, -0.018593, 0.069247, 0.0029738, -0.0012684, 0.0058617, -0.039955, 0.069868, 0.014017, -0.046601, -0.047068, -0.046682, -0.024441, -0.037553, -0.059138, 0.03927, -0.033803, -0.016677, -0.036287, -0.033653, -0.081055, 0.022449, -0.051865, -0.0022565, 0.0065501, 0.019614, 0.035675, -0.088138, -0.049861, -0.046523, 0.015603, 0.070303, 0.025612, 0.068457, 0.035739, 0.0148, 0.028994, 0.026774],
|
||
[-0.05879, -0.039923, -0.010605, -0.018499, -0.0048651, -0.060301, 0.00031834, -0.12557, -0.080004, -0.13698, -0.22799, -0.025563, 0.031597, 0.034181, -0.05038, -0.036901, -0.020123, -0.11426, -0.08245, -0.12939, -0.015453, 0.16526, 0.0054734, -0.021933, -0.058345, 0.022962, -0.037437, -0.12779, -0.028891, -0.0028919, 0.26949, 0.17558, 0.34734, -0.099006, -0.032826, -0.065174, -0.028457, -0.062602, 0.032022, 0.15695, 0.34154, 0.2028, 0.12458, -0.093376, -0.072239, 0.0090947, -0.044389, -0.052575, 0.02948, 0.26925, 0.22827, -0.0022877, -0.11146, -0.13529, -0.15036, -0.085843, -0.024537, 0.0086891, 0.021944, 0.16653, 0.08152, -0.14405, -0.1499, -0.11121, 0.001073, 0.098095, -0.034221, 0.0040176, -0.018013, 0.07321, -0.0072272, -0.015973, -0.061004, 0.054833, 0.067576, 0.074127, -0.042424, -0.037337, 0.022891, -0.0034269, 0.043776, -0.005555, -0.060685, -0.045928, -0.0088831, -0.077575, -0.073069, -0.0075845, -0.058704, 0.03243, 0.1114, -0.061069, -0.022957, -0.081457, 0.013486, -0.10699, 0.026815, -0.046958, -0.0095644, -0.0078126, 0.021326, 0.027801, 0.056729, -0.07589, 0.0018496, 0.022934, 0.013436, -0.03088, -0.0049469, 0.0040992, -0.0091408, 0.10872, 0.020712, -0.030869, -0.0019258, -0.011927, -0.081406, 0.063922, -0.010456, 0.037077, 0.088835],
|
||
[-0.036641, -0.022319, 0.024522, 0.03344, 0.088325, -0.078447, -0.047208, -0.047259, -0.025216, -0.015415, -0.092115, 0.044024, -0.0091154, 0.0048974, 0.030834, -0.020765, -0.020724, -0.012244, -0.04629, 0.018593, 0.0051453, 0.034378, -0.060076, 0.057462, -0.029605, -0.032985, 0.019794, -0.091802, -0.039565, 0.14253, -0.018064, 0.012289, 0.04912, 0.057131, -0.0053969, -0.027773, -0.0045553, -0.016294, -0.10181, 0.21508, -0.039234, -0.013888, 0.045507, 0.12177, -0.0049585, 0.012483, 0.00022151, -0.0047489, -0.05636, 0.1752, -0.055694, -0.082197, 0.064538, 0.047484, -0.0028928, -0.015339, 0.0027033, 0.0067498, -0.040248, 0.078968, -0.10963, -0.17063, 0.2286, 0.07852, 0.008033, -0.011424, -0.015146, -0.023533, 0.009966, -0.026743, -0.042415, -0.049676, 0.29646, 0.025691, -0.048511, -0.10024, -0.16647, 0.026747, 0.034919, -0.012381, 0.031329, -0.038088, 0.13554, -0.038601, -0.15955, -0.1865, -0.057062, -0.01277, 0.014754, -0.034539, 0.0060587, -0.0098109, 0.069117, -0.071244, -0.13193, -0.031816, 0.027198, 0.044916, 0.13642, 0.051541, -0.023023, -0.0075025, 0.0075302, -0.059348, -0.044235, -0.011581, 0.0014665, 0.047136, 0.015656, 0.066013, 0.0582, -0.015587, 0.0052092, 0.014817, 0.018388, -0.086676, -0.067044, -0.0035215, 0.064161, 0.065318, 0.067259],
|
||
[0.004506, 0.045655, -0.0064831, -0.0032628, -0.01041, -0.037024, -0.036963, -0.091094, -0.11865, -0.06429, -0.19248, -0.0017368, -0.0097469, 0.0016448, -0.040873, -0.014221, -0.035843, 0.016147, -0.039843, -0.09313, -0.0023747, -0.1383, 0.028428, -0.013697, -0.11157, -0.0089864, -0.080753, 0.012804, -0.062406, -0.010726, -0.03342, -0.013381, -0.12601, -0.0011651, -0.096303, -0.033961, -0.072716, 0.035903, -0.050367, 0.039466, 0.089595, 0.080324, 0.15694, 0.13047, -0.10542, -0.05508, -0.0081043, 0.049795, 0.08505, 0.33221, 0.25591, 0.1717, 0.11686, 0.11406, 0.22947, -0.012136, 0.083665, 0.13744, 0.2076, 0.02481, -0.25485, -0.37635, -0.27149, -0.10308, -0.073758, 0.006322, -0.0071614, 0.024395, -0.030595, -0.22377, -0.21688, -0.060604, 0.18641, 0.14118, 0.071716, 0.013664, -0.059638, -0.079133, 0.051501, -0.10958, 0.040358, 0.24552, 0.1985, 0.13276, -0.0033278, 0.095717, 0.0060755, 0.070214, -0.060296, 0.023306, 0.036242, 0.094785, -0.051031, -0.048582, -0.1362, -0.042785, -0.055491, 0.0010026, 0.011273, -0.0070417, -0.026903, 0.012495, -0.0049653, 0.014208, -0.058316, 0.020101, -0.055566, -0.058258, -0.12155, 0.036277, -0.11927, 0.11091, -0.087205, -0.0029129, -0.025028, 0.012107, 0.068614, 0.071374, 0.098125, 0.14037, -0.002956],
|
||
[-0.086667, -0.065565, -0.023817, -0.020441, -0.07197, 0.00028669, -0.048728, -0.02516, -0.071502, 0.009494, -0.072387, -0.025154, 0.02346, -0.059503, -0.045615, -0.08352, -0.085543, 0.01373, -0.021149, -0.0073163, -0.037713, -0.074774, 0.034622, -0.025474, 0.030186, -0.019963, -0.049692, -0.11327, -0.074519, -0.12604, -0.037064, -0.024954, -0.083736, 0.02475, 0.05933, 0.062205, 0.17133, 0.16122, 0.16387, 0.058308, 0.025831, -0.04348, -0.041636, -0.12914, -0.040109, 0.020146, -0.0014665, 0.091342, 0.11972, 0.2388, 0.30998, 0.24622, 0.18587, 0.12053, -0.0034211, -0.03053, -0.032291, -0.076194, -0.19607, -0.20015, -0.19677, -0.18309, -0.00055713, 0.13744, 0.12949, 0.2056, 0.023511, 0.016947, 0.073624, 0.065649, 0.062699, -0.050179, -0.092252, -0.22545, -0.14499, 0.019198, 0.082962, -0.019486, 0.011993, 0.04133, 0.076363, 0.031762, 0.15907, 0.10336, 0.039866, 0.021912, -0.15923, -0.013829, 0.076214, -0.018094, -0.022784, -0.075767, -0.0047947, -0.12287, 0.031159, -0.051655, 0.096187, 0.0095671, -0.031624, -0.052568, -0.003142, 0.023309, -0.0023387, -0.0094488, -0.045824, -0.005481, -0.081258, -0.053087, -0.0010084, -0.103, 0.050103, 0.039084, 0.0007826, 0.066585, 0.019513, 0.07854, 0.012933, 0.061861, -0.037749, -0.044014, -0.058653],
|
||
[-0.23766, -0.10644, -0.14205, -0.03341, -0.051747, -0.049029, -0.010143, -0.0458, 0.034452, -0.037463, -0.052618, 0.10955, -0.1361, -0.0095472, -0.12706, -0.092229, 0.021264, -0.080028, -0.010055, -0.021203, 0.016576, -0.02837, 0.33291, 0.2809, 0.12848, 0.033793, -0.023904, -0.16851, -0.0060729, -0.023245, -0.056641, -0.012011, -0.098774, -0.064504, 0.10266, 0.25554, 0.24277, 0.21967, 0.11091, -0.10184, -0.08746, -0.0029721, -0.00012925, -0.02508, -0.086435, -0.18088, -0.11352, 0.03289, 0.15787, 0.23051, 0.1488, 0.032438, -0.057059, -0.069308, -0.082356, 0.042285, 0.043413, -0.072265, -0.16689, -0.16026, 0.028475, 0.18131, 0.041853, 0.0049307, -0.0008325, -0.047832, 0.0010252, 0.017498, 0.074032, 0.054063, -0.0048789, -0.10176, 0.018693, 0.007621, 0.0085935, 0.02913, -0.076722, -0.044435, -0.041904, -0.042182, -0.027448, 0.043453, -0.014281, -0.11364, 0.021624, 0.059888, 0.04825, -0.025918, 0.028058, -0.035965, 0.010591, -0.061233, -0.057899, -0.088443, 0.0012601, 0.015192, 0.014316, 0.039038, -0.01107, 0.0044676, 0.0051525, -0.076856, 0.024632, -0.046934, -0.0043118, -0.041969, -0.015695, 0.013526, 0.048797, 0.00035467, 0.071901, 0.016275, 0.070923, -0.0088248, 0.043458, -0.014639, -0.013192, -0.037524, 0.024709, 0.057087, 0.0058576],
|
||
[-0.024542, 0.032672, 0.11773, -0.034174, -0.071743, -0.16175, 0.014165, 0.019531, -0.054978, -0.0038957, -0.090196, 0.064812, -0.047234, -0.019134, -0.080948, -0.11018, 0.10727, 0.11986, -0.13898, 0.02947, -0.069941, 0.10165, 0.0042591, -0.049348, -0.083661, -0.087656, 0.020522, 0.080192, -0.15728, -0.028886, 0.073544, 0.20706, 0.066144, -0.069632, -0.055387, -0.0099159, -0.039718, 0.14583, -0.022727, 0.017713, 0.28062, 0.075763, -0.1576, 0.12669, -0.0065958, -0.023039, -0.016204, 0.011444, 0.031045, 0.09939, -0.050473, -0.030751, -0.15956, 0.012868, -0.16705, -0.047964, -0.077403, 0.025311, 0.040895, 0.090109, -0.31175, 0.059979, 0.17392, 0.068215, 0.22655, -0.11278, 0.015118, -0.0629, -0.069945, -0.04491, 0.14433, 0.29233, 0.19559, -0.057851, -0.014726, 0.088841, 0.26941, -0.054034, 0.011159, 0.024544, -0.0050103, 0.1229, -0.042268, -0.045072, -0.023986, -0.018777, -0.064872, 0.17923, 0.017718, 0.012677, -0.084142, 0.092705, -0.14742, -0.077405, -0.041954, -0.018945, 0.060652, -0.044563, -0.046249, 0.033354, -0.0018617, -0.067678, -0.023334, 0.013622, -0.012602, 0.056142, -0.019617, -0.093416, 0.025936, -0.21076, 0.040245, -0.077189, 0.014213, -0.11507, -0.08021, -0.12404, -0.034792, -0.051307, -0.044479, -0.042402, -0.074817],
|
||
[0.01158, 0.076463, 0.00079803, 0.048838, 0.12248, 0.013744, 0.018861, 0.011586, 0.04539, 0.031693, 0.07499, -0.0098663, -0.1034, -0.071572, 0.0043787, -0.077789, -0.019559, 0.01204, 0.0018615, 0.017977, -0.047083, -0.0071368, -0.17556, -0.080029, -0.0318, -0.057597, -0.022591, -0.024016, 0.020306, 0.0070647, -0.049746, 0.010918, -0.007976, -0.057844, 0.040415, 0.050513, -0.02868, -0.088878, -0.11596, -0.14727, -0.12186, -0.013719, 0.0032338, -0.10004, -0.017784, -0.043427, 0.0025162, 0.03118, 0.092565, 0.021359, 0.17682, 0.066269, -0.056798, 0.020215, -0.08873, -0.019043, 0.12149, 0.039671, 0.12659, 0.25102, 0.31362, 0.22184, 0.13597, 0.10116, -0.24302, 0.0097296, 0.18357, -0.026127, 0.034417, -0.0047517, -0.19722, -0.30262, -0.31482, -0.1434, 0.093247, 0.26018, -0.15232, -0.11886, -7.9502e-05, 0.14995, -0.077373, -0.015999, 0.25216, 0.22726, 0.051762, -0.070376, 0.039304, 0.046344, -0.018432, 0.22509, 0.059918, 0.046243, 0.1184, -0.19507, -0.14026, 0.057466, 0.11019, -0.013542, 0.047028, 0.024668, -0.0058191, -0.087337, 0.089096, 0.06501, -0.043338, -0.019093, 0.14833, 0.078021, 0.070724, -0.031358, -0.072959, -0.13113, -0.086264, -0.072841, 0.077043, 0.077563, 0.10315, -0.053458, -0.045827, -0.029004, -0.22848],
|
||
[-0.069051, -0.13696, -0.0056563, 0.017174, 0.054751, -0.059932, -0.015331, -0.0068192, 0.0012622, -0.01923, -0.059761, 0.078693, 0.10894, -0.075681, -0.20953, -0.0053129, 0.10045, -0.1164, 0.024356, -0.0012586, 0.050691, 6.7084e-05, 0.20191, -0.045181, 0.10144, 0.11705, -0.22633, 0.018469, -0.0013542, -0.12018, 0.016842, 0.052652, 0.083146, 0.05733, -0.040375, -0.11575, 0.11708, 0.069673, -0.13864, -0.079608, -0.022217, 0.033594, -0.11363, 0.1027, -0.24155, 0.018757, 0.27956, 0.039218, 0.073588, -0.044889, 0.13769, 0.0032477, 0.022429, -0.038466, 0.031155, -0.16442, 0.23625, -0.081428, -0.011107, -0.062666, -0.17075, 0.27269, 0.031157, -0.05547, -0.0069529, -0.053436, 0.42537, 0.018283, 0.13284, -0.015069, 0.10328, 0.44999, -0.0011929, -0.16087, -0.12774, -0.042099, -0.0018649, 0.24606, 0.074298, 6.9784e-05, -0.052136, -0.086745, -0.22499, -0.045345, 0.033108, 0.032026, -0.0537, 0.033624, -0.12434, -0.13435, -0.10102, -0.10334, -0.072744, 0.030026, -0.027686, 0.0035345, -0.059592, 0.031353, -0.031956, -0.18986, -0.066674, -0.030282, 0.015288, 0.01068, 0.044317, -0.0092002, 0.044711, 0.032936, -0.028902, -0.019832, -0.10833, 0.017001, -0.016581, -0.047452, 0.019644, -0.043525, 0.022794, -0.031968, -0.11913, -0.012952, -0.077946],
|
||
[-0.004218, -0.17785, 0.10345, 0.14692, 0.032856, 0.069906, -0.0063945, 0.012859, -0.031362, 0.048788, -0.21008, -0.14262, 0.27351, 0.13676, -0.29667, 0.13073, 0.052879, 0.20819, 0.054692, -0.070712, -0.0072303, -0.037876, 0.016205, 0.032611, -0.21237, 0.19488, -0.050184, -0.10106, -0.19452, -0.09757, 0.14803, -0.11936, 0.090357, 0.0059923, 0.025456, -0.019228, 0.084192, -0.10884, -0.1971, -0.084654, -0.086888, 0.36809, 0.10964, -0.064538, 0.015796, 0.037226, 0.043018, 0.11953, 0.10395, 0.045531, 0.054413, 0.24913, 0.0022231, -0.10581, 0.090088, 0.16662, -0.15731, -0.091249, -0.053758, 0.022179, 0.27116, 0.33867, 0.1404, -0.051937, 0.013903, -0.065676, -0.12826, 0.19223, 0.066177, 0.073804, 0.1457, 0.07116, -0.0095457, -0.1049, -0.081458, -0.078985, -0.11642, 0.022713, -0.040784, -0.0056623, 0.0036836, -0.06678, -0.12713, -0.15866, -0.063329, -0.05576, -0.037458, -0.022461, -0.022029, -0.011882, -0.046973, -0.14701, -0.037218, -0.082831, -0.0016296, -0.021759, 0.059907, -0.013177, 0.064519, -0.040907, -0.027245, -0.014615, 0.11053, 0.027445, 0.022162, 0.0024547, -0.016091, -0.058967, 0.021584, 0.032765, -0.17163, 0.038526, -0.1009, -0.082755, -0.12651, -0.031347, -0.051126, -0.088046, -0.0031872, -0.02711, -0.11431],
|
||
[-0.066924, 0.041699, -0.10386, 0.055675, -0.07426, -0.09119, -0.04579, -0.053409, 0.0016411, -0.010002, 0.021792, -0.051951, -0.070201, 0.09728, -0.15049, 0.1215, 0.015843, 0.01783, 0.028679, -0.13093, -0.0032724, -0.076393, 0.023828, -0.10049, 0.057648, 0.1477, -0.058573, 0.036566, -0.038113, -0.03595, 0.13215, -0.11751, -0.02731, -0.15554, 0.18384, 0.10898, -0.055055, 0.23295, 0.16692, 0.34351, -0.061819, -0.024812, 0.079963, -0.18727, 0.077134, 0.20555, -0.025109, -0.016911, 0.027522, -0.18467, -0.1287, 0.27051, -0.2357, 0.16007, 0.060773, -0.040057, 0.0061977, -0.21241, 0.22776, -0.2446, -0.1111, -0.32901, -0.065957, 0.38918, -0.037062, -0.013214, 0.11362, -0.13116, 0.26149, 0.1311, -0.025593, -0.1077, -0.029542, 0.21031, 0.20084, -0.15455, 0.098486, 0.053759, 0.082713, -0.24255, 0.025734, 0.17681, 0.23331, 0.27753, 0.17726, -0.16259, -0.17145, 0.083644, 0.016995, -0.071477, 0.074912, -0.075655, 0.021347, 0.12285, 0.031741, -0.079712, -0.010976, 0.020719, -0.14947, -0.059126, 0.025068, -0.076954, 0.0107, -0.035726, 0.010453, -0.020801, -0.10029, -0.053471, -0.048791, -0.043407, -0.10411, -0.0096116, -0.040122, -0.046812, -0.064058, -0.14541, -0.07568, -0.032467, 0.0079791, -0.075814, 0.020303],
|
||
[-7.0957e-06, -0.095051, -0.087882, 0.0047062, -0.098027, -0.0027617, -0.097227, -0.063001, 0.11834, 0.054457, -0.0099414, -0.070139, 0.058249, 0.032891, -0.077909, 0.12061, 0.041917, -0.12019, 0.024991, -0.15611, 0.027447, 0.0061692, 0.22278, 0.077772, 0.15814, -0.017009, -0.14312, 0.17959, 0.051526, -0.11409, 0.0087348, -0.11632, 0.014926, 0.035969, -0.053626, -0.023997, 0.19965, 0.036097, -0.049211, 0.12246, 0.060611, -0.095797, -0.069519, -0.05025, -0.0058375, -0.012563, -0.1478, 0.031772, 0.13403, -0.15157, 0.12631, -0.005289, -0.0019668, 0.05403, -0.063631, -0.3492, 0.086316, 0.14981, -0.019588, 0.12206, -0.19934, -0.048029, 0.052601, 0.038693, -0.093007, -0.025563, 0.17735, 0.22164, 0.094681, 0.037985, 0.0088876, 0.33249, 0.16505, -0.0078676, -0.0040894, -0.073882, -0.023509, 0.3813, -0.019292, -0.086843, -0.040173, -0.046443, -0.10186, 0.16439, 0.0026682, 0.076749, -0.067948, -0.0010387, -0.10714, -0.030577, 0.032786, -0.0055511, 0.020069, -0.01711, -0.14366, -0.016712, -0.069886, 0.01136, 0.0048981, -0.071131, -0.065545, -0.079795, -0.069728, 0.057019, -0.021993, 0.015178, -0.00020471, -0.025514, -0.026883, -0.045298, -0.15833, -0.031429, -0.0062888, -0.0057808, -0.087719, -0.014851, -0.09857, -0.11786, -0.058162, 0.025496, -0.027501],
|
||
[0.033386, 0.029449, 0.050373, 0.03376, 0.043978, 0.08318, 0.071687, 0.026806, -0.040213, 0.074456, -0.015557, -0.005235, -0.019242, 0.055812, -0.061556, 0.022157, -0.0375, -0.091842, 0.0021346, -0.077528, -0.07034, -0.021844, -0.028323, 0.00011165, -0.063044, 0.031228, -0.027815, -0.023586, 0.014275, -0.0099113, -0.039422, -0.036125, -0.14335, -0.030906, 0.026457, -0.055732, -0.099791, -0.113, -0.096702, -0.14135, -0.095762, 0.012997, 0.061453, -0.10846, -0.095955, -0.026482, -0.093422, 0.025975, 0.048412, 0.13855, 0.0089878, 0.14129, 0.018874, 0.0068619, 0.066029, -0.069577, -0.13631, 0.053261, 0.17933, 0.20451, 0.25418, 0.42794, 0.080448, 0.060808, 0.050979, 0.068725, -0.079585, 0.16947, 0.07175, -0.17603, -0.2061, -0.27585, -0.45996, 0.041977, 0.14013, -0.10129, 0.042032, 0.0010701, 0.03327, 0.045261, 0.18493, 0.11251, 0.079146, 0.27604, -0.29337, -0.032405, 0.24483, -0.1173, -0.00039308, -0.082855, 0.14722, -0.050887, -0.11314, -0.045972, -0.12976, 0.36521, -0.091822, 0.085864, 0.076513, 0.10292, 0.0027326, 0.070587, 0.10534, 0.11196, -0.072148, 0.049586, -0.031051, 0.14407, -0.085588, 0.087229, -0.17191, -0.11561, -0.092875, 0.029309, 0.039975, 0.12186, 0.10737, -0.039137, -0.080754, -0.053377, -0.1975],
|
||
[-0.078857, 0.02861, 0.028066, -0.021834, -0.071732, 0.041944, 0.0034421, 0.099852, -0.072054, -0.14404, -0.099453, 0.030831, 0.029895, 0.0015406, 0.050637, -0.061536, 0.022595, 0.058299, -0.21505, -0.10742, 0.13531, 0.12926, -0.023229, 0.081512, 0.00055799, -0.098024, -0.066934, 0.030281, -0.19701, -0.074522, 0.29428, -0.019357, 0.097886, 0.08682, -0.043231, -0.018464, 0.062745, 0.0092971, -0.24864, 0.010777, 0.23163, -0.08533, -0.11445, 0.083801, 0.075831, -0.014033, 0.049485, -0.021591, 0.015442, 0.086162, -0.044103, 0.12334, 0.073164, 0.10887, -0.15317, -0.078737, -0.017285, -0.039704, -0.056906, 0.1866, -0.023527, 0.0097119, -0.11069, -0.0033322, 0.22171, -0.14381, -0.044159, 0.056899, -0.062536, -0.096716, -0.042463, 0.33605, 0.12772, 0.029306, 0.052961, 0.018388, 0.58364, 0.07837, -0.14774, 0.079311, -0.13568, 0.033726, -0.19372, -0.048923, -0.079048, -0.093458, 0.0084688, 0.024467, 0.024073, 0.045654, -0.049521, 0.11131, -0.082672, -0.012817, -0.058436, -0.090027, -0.061292, -0.12267, -0.10084, -0.038686, -0.034858, -0.00069532, -0.05712, 0.065895, 0.076844, -0.0099222, 0.038383, -0.0018487, -0.035019, -0.16441, -0.082791, -0.066047, -0.081933, -0.010547, -0.051038, -0.025579, 0.0095973, 0.0049533, -0.061063, 0.033454, -0.12571],
|
||
[-0.079439, -0.097075, 0.069014, -0.074506, 0.075012, 0.15666, -0.081194, 0.092119, 0.16895, -0.064301, -0.1065, -0.20662, 0.14032, -0.1386, 0.15068, 0.081866, -0.014125, 0.15934, -0.056123, -0.14962, 0.26418, 0.00014355, -0.0073547, 0.079307, 0.020929, -0.10994, -0.17371, -0.023791, -0.086918, -0.004335, -0.085955, -0.029421, -0.00905, 0.041531, -0.069424, 0.24688, 0.20546, -0.17599, -0.24389, -0.19015, 0.22071, 0.077211, 0.014425, 0.0067033, 0.14558, -0.10028, -0.046264, 0.17807, 0.23207, 0.068919, 0.13997, 0.088433, -0.06619, 0.039955, 0.044429, -0.081011, 0.068411, -0.048059, -0.0052523, 0.19319, 0.2292, 0.086101, 0.031256, -0.01777, -0.081515, 0.052572, 0.0065147, -0.17665, -0.019857, 0.081102, 0.043278, 0.11772, 0.11137, -0.00073262, 0.091978, 0.082389, 0.034023, -0.053098, 0.099288, -0.10855, -0.17742, -0.17887, -0.14115, -0.064005, -0.053085, -0.0016597, -0.070677, -0.098804, -0.055945, -0.0052752, 0.032008, 0.05763, -0.01971, -0.057824, -0.068257, 0.027891, -0.076656, -0.023632, 0.019706, 0.06278, 0.0043081, -0.0068539, -0.069585, 0.056699, 0.042173, -0.025984, -0.033098, 0.0095922, 0.041801, -0.050819, -0.1069, -0.015848, -0.060765, -0.0062175, -0.085347, -0.097475, -0.059282, -0.035577, -0.075014, -0.060536, -0.11818],
|
||
[-0.024906, -0.002084, 0.036006, 0.040388, 0.0046368, -0.050097, -0.019439, -0.099398, -0.039682, -0.0028158, 0.0035982, -0.054099, 0.098752, -0.13208, -0.18035, -0.0043732, 0.052329, -0.043358, 0.17087, -0.087789, -0.04498, -0.031635, 0.070377, -0.22835, -0.053229, 0.20062, -0.010254, 0.015916, 0.11152, -0.12243, 0.20444, -0.11371, -0.079914, -0.15288, 0.01301, 0.24934, -0.15784, 0.14724, 0.12654, 0.087845, 0.15842, 0.04809, 0.30801, -0.11761, -0.098389, 0.21454, -0.14234, -0.0057875, 0.14715, 0.037047, -0.050841, 0.14409, -0.20385, 0.12419, 0.16468, 0.012861, -0.06026, 0.07515, 0.32707, -0.4003, -0.26936, -0.27608, -0.11368, 0.18759, -0.1163, 0.01136, 0.091042, -0.02393, 0.027146, 0.26868, -0.040944, -0.051185, -0.062555, 0.14722, 0.17279, -0.045587, 0.040778, 0.077307, -0.045918, -0.14679, 0.058857, 0.30473, 0.26833, 0.20924, 0.21225, -0.22492, -0.10536, 0.1013, -0.0587, -0.056962, -0.053785, -0.064199, -0.023276, 0.14635, 0.17298, -0.1728, -0.028271, 0.054369, -0.10107, -0.14024, 0.018314, -0.037984, -0.065302, -0.01295, -0.094604, -0.11534, 0.0076675, 0.066322, -0.050401, 0.007422, 0.02887, -0.01598, 0.0047547, -0.023242, -0.10363, -0.080832, -0.038314, -0.08684, -0.01954, 0.031333, -0.15194],
|
||
[0.2663, 0.030128, -0.11791, -0.11737, -0.062861, -0.096766, -0.082199, -0.08602, -0.075247, -0.029807, 0.24281, 0.067042, -0.0073446, 0.019074, 0.024028, -0.022037, -0.041361, -0.021552, -0.020935, 0.0016784, 0.044654, 0.04733, 0.070321, 0.0049339, 0.068284, 0.0027796, -0.04669, -0.055778, -0.053408, -0.00010746, 0.053647, 0.01417, 0.029054, 0.023032, 0.00066727, -0.00051463, 0.0056491, -0.0020259, -0.016498, -0.022443, -0.035029, 0.063846, 0.044687, 0.058668, -0.045157, 0.060419, 0.040369, 0.099232, 0.048066, -0.046325, -0.00080888, 0.11409, -0.00033137, 0.037356, -0.0079674, -0.049741, 0.13611, 0.023766, 0.053498, 0.015733, -0.063825, 0.033331, 0.027844, 0.081692, 0.097146, -0.064828, 0.014374, -0.047331, 0.044197, 0.1063, 0.073543, -0.044426, 0.049684, 0.068365, 0.081523, -0.015087, -0.0019638, 0.039052, -0.017851, 0.023708, 0.062011, 0.073784, -0.091845, 0.010697, 0.086037, 0.094596, -0.074055, 0.027916, -0.037642, -0.040193, 0.0024469, 0.1275, 0.0093404, -0.040375, -0.090115, 0.10326, 0.029177, -0.0077046, -0.030227, -0.026938, 0.032996, 0.037655, 0.060384, -0.011607, -0.088459, -0.0089621, 0.041335, 0.025265, 0.032067, 0.02383, -0.079346, -0.11618, 0.035621, 0.10014, -0.048809, -0.11447, -0.095813, 0.016306, 0.11708, -0.0632, -0.16223],
|
||
[0.056794, 0.10168, -0.016504, 0.0046764, -0.015979, -0.04792, -0.055022, -0.10379, -0.049718, 0.10568, -0.031174, 0.083705, -0.091368, 0.057269, 0.018685, -0.032113, -0.001737, -0.07208, -0.099356, -0.024667, 0.086176, 0.04004, -0.15099, -0.00067872, -0.015247, -0.052524, 0.042551, -0.14444, -0.0065487, -0.071843, -0.01285, 0.014123, -0.0033943, -0.03964, -0.0031248, -0.045858, 0.0019021, -0.12416, 0.073896, -0.045016, -0.042377, -0.018876, 0.0662, -0.038229, -0.081068, -0.039458, -0.021574, -0.087538, 0.033366, 0.13641, -0.063205, -0.0012659, 0.0057983, -0.011527, -0.0079257, -0.14126, -0.034965, -0.054177, 0.098663, 0.31744, 0.039452, -0.12302, 0.090308, -0.018427, 0.007607, -0.063786, -0.13635, 0.021706, 0.088489, 0.24007, -0.038574, -0.20904, -0.028548, 0.088543, -0.021391, 0.044285, -0.026993, -0.064466, 0.12945, 0.19089, -0.03048, -0.11057, -0.030936, 0.11335, -0.035129, -0.086018, -0.0072169, -0.10753, 0.043123, 0.16933, 0.040455, -0.23665, 0.11812, 0.07594, -0.10352, -0.030301, 0.086878, 0.020132, -0.023337, 0.19293, 0.022201, -0.099101, 0.1551, 0.063728, -0.25368, -0.11399, -0.060714, 0.014445, -0.078061, 0.019868, 0.0081798, -0.058442, -0.12525, -0.04273, -0.10579, 0.082762, 0.22611, 0.19472, 0.13771, 0.25213, 0.073498],
|
||
[-0.091381, -0.05808, -0.076531, -0.019935, -0.11699, -0.049621, -0.077133, 0.15067, -0.050781, -0.020686, -0.077499, -0.096759, 0.0077572, -0.0095979, -0.099566, 0.00516, -0.052062, 0.21008, 0.065151, -0.071318, 0.018812, -0.00086442, -0.046564, 0.013464, -0.04976, -0.07512, -0.016206, 0.20371, 0.21632, -0.2164, -0.010174, -0.080744, 0.00065763, -0.10941, 0.005192, -0.061527, -0.018847, 0.21787, 0.22243, -0.15575, -0.10816, 0.0051882, 0.031786, -0.1182, -0.091955, -0.065886, 0.045741, 0.16229, 0.1837, -0.081324, -0.096899, 0.11221, -0.12652, -0.056954, 0.0037198, -0.040599, 0.0393, 0.11791, 0.0326, -0.021777, -0.040529, 0.018542, -0.085733, -0.0042515, 0.031088, 0.10947, -0.03052, 0.024589, 0.031028, -0.026059, -0.03474, 0.042016, -0.15814, 0.098811, 0.17665, 0.1206, 0.28366, -0.0098819, 0.02072, 0.041373, -0.021038, -0.095203, 0.14911, -0.025722, -0.1282, -0.023631, -0.031597, 0.10824, -0.091173, 0.063567, 0.021728, -0.10569, -0.031654, -0.0087472, 0.14636, 0.13717, 0.040902, -0.017771, 0.03856, 0.039245, 0.056815, -0.11184, 0.064818, -0.081432, -0.034074, -0.11203, 0.15241, 0.13534, 0.068634, -0.036633, -0.046693, -0.033281, 0.0071095, -0.024377, -0.086464, -0.048462, -0.085872, -0.17119, -0.12548, -0.10026, -0.067724],
|
||
[-0.11049, 0.1773, 0.16552, 0.034404, -0.089589, -0.0098957, -0.09267, -0.062034, -0.13028, -0.027741, -0.033783, 0.068486, 0.07599, -0.036571, -0.027073, 0.051359, -0.12487, -0.11938, 0.0002767, 0.039243, -0.065342, -0.032591, 0.0094874, 0.077229, -0.11979, 0.065176, -0.0045331, -0.093211, 0.2083, 0.034408, 0.20901, 0.1806, 0.080546, 0.011692, -0.10363, 0.08944, -0.1829, -0.17449, 0.20464, 0.16205, 0.12484, -0.033921, 0.0050539, 0.011335, -0.0018538, -0.13334, 0.13244, 0.13163, -0.09595, -0.14906, -0.13717, 0.078007, 0.22398, 0.060077, 0.080459, -0.044227, -0.026417, -0.021047, -0.022108, 0.27081, 0.20244, 0.052508, -0.081687, -0.028, -0.069004, -0.019947, -0.065109, 0.087305, -0.077077, -0.18137, -0.11404, 0.13449, 0.23245, 0.055125, -0.066464, -0.091452, 0.018849, -0.024654, -0.024966, -0.091425, 0.072528, -0.065216, -0.11922, -0.17338, -0.057219, 0.0067423, 0.011249, 0.068048, 0.049615, -0.097276, 0.0082359, -0.015023, -0.053933, 0.022182, -0.078603, -0.09699, 0.053342, 0.038593, 0.073274, -0.0027339, 0.0087236, -0.056655, 0.0089929, -0.047992, -0.07247, 0.013557, -0.0027079, -0.020809, -0.023686, -0.082885, -0.024582, 0.011676, 0.010269, 0.00027727, -0.10403, -0.031329, -0.048763, 0.01387, 0.0097769, -0.0016097, -0.11085],
|
||
[-0.30333, -0.098154, 0.0015411, 0.045929, -0.065356, -0.13987, -0.083089, 0.082669, 0.061905, -0.11069, -0.2829, 0.22673, 0.18594, 0.071854, -0.030529, 0.028577, 0.031061, -0.043862, -0.044105, 0.02216, 0.21655, 0.30278, 0.012214, 0.086127, 0.18984, 0.17497, -0.084862, -0.081457, 0.018326, 0.13673, 0.27284, 0.094612, -0.07614, 0.062933, -0.097444, -0.068404, 0.0096656, 0.095041, 0.15937, 0.072995, 0.031253, -0.16547, -0.16678, 0.1267, 0.22205, 0.18736, -0.037622, -0.15711, -0.17299, -0.082555, -0.14455, -0.22415, 0.042542, 0.10381, 0.20625, -0.15881, -0.075659, -0.021486, 0.10892, 0.091093, -0.010417, 0.069544, 0.16543, 0.065217, -0.014818, -0.20522, -0.14265, 0.019756, 0.0058041, 0.039643, 0.15659, 0.22865, 0.14255, 0.057073, -0.053152, -0.034477, -0.077598, -0.066726, -0.06423, -0.089991, 0.02829, -0.066129, -0.11896, -0.082558, 0.012811, -0.024384, 0.015088, -0.13601, -0.075237, 0.039014, 0.028154, -0.055014, -0.0082541, 0.0026559, -0.021125, -0.023747, -0.042683, -0.059496, -0.019043, -0.12936, -0.026222, -0.025813, -0.041704, -0.066191, -0.097506, -0.058396, -0.089961, -0.0037007, 0.001118, -0.1009, 0.06414, 0.010238, 0.064404, 0.076685, 0.039151, -0.025803, -0.00019836, 0.071841, 0.13125, 0.046057, 0.053499],
|
||
[-0.12966, -0.03758, -0.06761, -0.10397, -0.050147, -0.11662, -0.013409, -0.0038121, 0.14552, 0.20961, -0.11573, 0.0382, 0.053737, -0.03378, -0.013778, -0.12296, -0.19078, 0.063623, 0.07272, -0.18712, 0.13565, 0.10042, 0.066387, 0.075875, 0.10518, 0.14542, 0.12359, -0.033751, -0.11681, 0.047363, -0.078115, -0.0068073, 0.022331, 0.043345, 0.0061773, 0.10019, 0.12543, 0.29106, 0.15951, -0.041017, -0.24665, 0.10244, -0.022249, -0.039981, -0.054513, 0.10149, 0.12491, 0.024443, -0.17156, 0.0098209, -0.099464, 0.10893, 0.10795, -0.030383, -0.052094, 0.081082, -0.096274, -0.036267, 0.075185, 0.096808, 0.020286, 0.33291, 0.017339, -0.16522, -0.0040897, -0.051775, 0.06567, -0.032773, -0.085059, -0.1193, 0.092456, 0.25655, -0.13119, -0.099868, -0.033239, -0.014474, 0.022015, -0.0068706, 0.030439, 0.038215, -9.8671e-06, -0.13107, -0.1103, -0.056513, -0.035091, -0.021025, -0.037797, 0.0024114, 0.066873, 0.062798, 0.01586, -0.066418, -0.044395, -0.056739, -0.074491, -0.0017445, -0.0018562, -0.031297, -0.080379, -0.032933, -0.039466, 0.026869, 0.05272, 0.017821, -0.081279, -0.0098243, -0.035827, -0.018665, -0.030415, -0.025398, -0.127, -0.05127, -0.059493, -0.012978, -0.040201, -0.0063003, -0.059572, -0.060873, 0.025501, 0.056765, 0.012716],
|
||
[-0.053343, 0.0052457, -0.047375, 0.094781, -0.040977, -0.096553, -0.074882, -0.046658, -0.091331, -0.040718, -0.093077, 0.0037318, 0.001298, -0.072971, 0.057699, 0.21678, 0.062692, -0.04409, -0.02313, -0.021606, -0.016754, -0.089115, -0.018012, -0.048665, -0.038883, -0.16008, 0.12324, 0.16214, 0.081891, -0.026691, -0.078939, -0.035178, -0.070559, -0.08145, 0.041254, -0.0082409, -0.064104, -0.19223, 0.19699, 0.075458, 0.10168, -0.011408, -0.027454, -0.096909, -0.027763, -0.099432, -0.065805, 0.0079576, -0.031079, -0.025255, 0.13286, 0.10025, 0.065637, -0.003144, -0.044384, 0.055436, 0.059891, -0.0098526, -0.15355, 0.17006, -0.18443, 0.068014, 0.029876, 0.108, 0.085618, -0.10414, 0.24465, 0.10562, 0.15464, 0.11487, -0.16275, -0.101, 0.095139, -0.10761, 0.017873, 0.11424, -0.0018412, 0.086874, 0.16367, 0.044733, -0.094762, -0.14398, 0.21757, -0.034529, -0.12834, 0.039442, 0.052147, -0.0027754, 0.092487, -0.10001, 0.021968, 0.076096, 0.26484, -0.068779, -0.13151, 0.0011599, -0.068093, -0.027604, 0.0055121, -0.074849, 0.031134, 0.10058, 0.16474, -0.021659, -0.084825, -0.016801, 0.022993, 0.017167, -0.056374, -0.032324, -0.018054, -0.050024, -0.1409, -0.13965, -0.1187, -0.062036, -0.041018, -0.050867, -0.058573, 0.021581, -0.042699],
|
||
[0.019903, 0.15562, -0.028017, -0.17651, -0.039198, -0.060229, 0.040414, 0.0039325, 0.035475, 0.086187, 0.066211, -0.011483, 0.021711, 0.011538, -0.031843, -0.084914, -0.023265, -0.11448, 0.039181, -0.056999, -0.064777, 0.063734, -0.043075, 0.056384, 0.025731, -0.10729, -0.043118, -0.053658, 0.015845, 0.013291, 0.0102, -0.0031794, -0.11412, 0.030884, 0.021462, 0.03497, -0.079456, -0.085032, 0.11503, -0.10994, -0.089573, -0.0039431, -0.045788, -0.029069, -0.029313, -0.0022282, -0.015461, 0.080169, -0.096417, 0.06817, 0.14489, -0.02062, -0.12128, 0.0035403, -0.1086, -0.025759, -0.015908, -0.019318, 0.027712, -0.010692, -0.11262, 0.22919, 0.19547, 0.062577, -0.032438, -0.17049, -0.054888, -0.0086607, -0.03247, 0.050118, 0.03841, -0.15182, -0.17239, 0.178, 0.15775, 0.11239, -0.1155, -0.10514, 0.029627, 0.010047, -0.035952, 0.015687, 0.10711, -0.041276, -0.23138, 0.10814, 0.20399, -0.014741, -0.062683, -0.049411, -0.035968, 0.041871, -0.072185, -0.083864, 0.098734, 0.11032, -0.22003, 0.1278, 0.14219, -0.0011896, 0.079367, 0.043589, -0.035425, -0.054609, -0.16493, -0.17557, 0.15889, 0.0041503, -0.10135, 0.19024, 0.08466, 0.1151, 0.16224, 0.17764, 0.22134, 0.14596, 0.028871, -0.10379, -0.067206, -0.088716, -0.041102],
|
||
[0.1592, 0.060407, 0.058122, 0.0047701, 0.019787, 0.087204, 0.030264, 0.017305, 0.085575, 0.023959, 0.12885, 0.0686, -0.045567, 0.06496, -0.057218, -0.025448, 0.090949, -0.079769, 0.036731, -0.03848, 0.0060765, 0.062316, 0.002068, 0.006558, -0.0043518, 0.009629, 0.029116, 0.014264, 0.02969, -0.081627, 0.046851, 0.0062149, 0.018397, -0.012562, -0.040552, 0.028504, -0.011487, -0.059191, 0.022429, 0.078039, -0.015416, 0.019965, -0.066504, -0.0013193, -0.10842, -0.036973, -0.020534, 0.040748, 0.053337, -0.0011671, -0.0095602, 0.016299, 0.0077278, 0.00037444, -0.19228, -0.13238, -0.030125, -0.015888, 0.025014, 0.027519, 0.024199, -0.047761, 0.12256, -0.055852, 0.065026, -0.12853, -0.059058, -0.032314, -0.050141, 0.080141, 0.035776, -0.052897, 0.0028742, 0.082628, -0.021869, -0.069854, -0.068576, -0.064585, -0.0069314, -0.063836, 0.065184, 0.08558, -0.089783, 0.024132, 0.12237, -0.0081031, -0.10893, -0.041048, -0.040486, -0.018772, 0.024153, 0.10036, 0.06874, -0.10245, -0.016349, 0.007038, 0.12266, -0.043113, 0.01337, 0.016729, -0.039289, 0.057728, 0.041013, -0.049979, -0.032348, -0.088175, 0.09987, 0.0656, -0.01536, -0.028529, -0.037199, 0.15245, 0.18336, 0.054288, -0.046369, -0.11191, -0.11519, -0.022732, 0.11225, 0.2856, -0.067985],
|
||
[0.058959, -0.021876, 0.037612, -0.099005, -0.11655, 0.021079, 0.015957, 0.059648, -0.065506, -0.083395, -0.18214, 0.084305, -0.025711, -0.0014531, 0.062922, 0.010829, 0.077505, -0.066208, -0.055003, -0.061511, 0.0689, -0.055539, -0.020785, 0.089398, 0.12883, -0.12817, -0.0096792, -0.11505, 0.073196, 0.013391, 0.063157, -0.11664, -0.087677, 0.064069, 0.089552, -0.012366, -0.084842, -0.30993, -0.31591, -0.19715, 0.020969, 0.14194, 0.061843, 0.073936, -0.013043, -0.074977, -0.20604, -0.070946, 0.28309, 0.57742, 0.31262, -0.083662, -0.0039167, -0.0070082, 0.040088, -0.049395, -0.029191, -0.081164, 0.19269, 0.21145, -0.29773, 0.12406, 0.36605, 0.093082, -0.024581, 0.10111, -0.062911, -0.0034613, 0.029116, 0.0020626, 0.10964, 0.064159, -0.21854, -0.12925, -0.079675, -0.018112, 0.035958, -0.046726, -0.06093, 0.011191, 0.023534, 0.072568, 0.23271, 0.3317, -0.057956, -0.12546, -0.039267, -0.056155, -0.046609, 0.060499, -0.043017, 0.024842, -0.099368, -0.16432, -0.15146, -0.0017544, 0.17032, 0.064868, 0.15234, -0.032911, -0.0071732, -0.0081381, -0.050724, 0.011173, -0.062102, -0.052309, 0.00051655, -0.0075192, 0.039092, 0.071466, 0.006336, -0.09563, -0.025392, -0.10042, -0.097928, -0.027282, -0.038112, 0.012061, -0.035597, -0.052822, -0.11313],
|
||
[-0.15324, -0.061966, -0.020865, -0.00042811, 0.073055, -0.061348, -0.031466, -0.10328, 0.057558, 0.011198, 0.045234, -0.064711, -0.067011, -0.0057205, -0.028643, -0.037131, 0.053749, -0.054199, 0.021887, 0.01619, -0.019017, 0.1138, -0.11165, -0.0087496, -0.014474, -0.026252, -0.0027102, -0.03099, -0.041275, -0.11453, 0.047907, 0.038422, 0.015083, 0.02877, 0.016845, 0.094727, 0.20594, -0.1516, -0.24555, -0.27708, -0.18049, -0.011308, 0.11441, -0.014636, 0.079198, 0.012007, 0.0072429, -0.1864, 0.16781, 0.56826, 0.34086, 0.15391, -0.22202, -0.093194, -0.0050051, 0.080167, -0.0010856, 0.033973, 0.29561, 0.36483, -0.31466, 0.062497, 0.21969, -0.026684, -0.054686, -0.15194, 0.054278, 0.074098, 0.0050038, -0.11139, -0.29694, -0.0028084, 0.085921, 0.054283, 0.04116, -0.040069, 0.020584, -0.032968, -0.124, -0.1269, -0.087864, 0.25943, 0.25469, 0.11149, 0.016197, -0.035512, 0.062529, -0.061876, 0.042654, 0.14569, 0.10027, 0.049106, -0.16921, -0.15021, -0.036438, -0.094175, 0.052143, -0.024438, -0.043904, 0.097322, 0.025963, 0.044958, 0.015316, 0.028567, -0.099805, -0.056575, -0.0025488, -0.066924, 0.010194, -0.0061766, -0.10526, -0.064591, -0.0082274, -0.028938, -0.0021874, 0.0064021, -0.082474, -0.10584, -0.016047, -0.065096, -0.076611],
|
||
[-0.039511, -0.0080173, -0.016552, 0.075617, -0.029722, -0.025035, -0.072171, -0.092474, -0.075212, -0.04436, -0.069349, -0.022491, -0.0057147, 0.052051, -0.054608, -0.058373, -0.060777, -0.077337, -0.045477, 0.030773, -0.11621, 0.10798, -0.027779, 0.042776, -0.029085, 0.070665, -0.1067, -0.12973, -0.061185, 0.022941, -0.011978, 0.16487, -0.048341, -0.026936, -0.048056, 0.032474, -0.13513, -0.11295, 0.028315, 0.10779, 0.13719, 0.094828, -0.029662, 0.13211, -0.11093, 0.029167, -0.065793, -0.082565, 0.024708, 0.22294, 0.23882, 0.084903, 0.040208, 0.076546, -0.061238, 0.0063284, -0.051374, 0.062827, -0.036988, 0.22359, 0.048437, -0.25353, -0.19261, -0.019422, -0.062848, -0.036853, -0.12965, 0.044459, -0.12227, -0.075999, -0.066285, 0.28526, 0.39167, 0.21584, -0.00059672, 0.028282, 0.1415, 0.029358, -0.0073653, -0.018182, 0.0045057, -0.11281, -0.12216, -0.045822, 0.027683, 0.044114, 0.01296, -0.01033, 0.017525, -0.026815, -0.038434, -0.023176, 0.018238, -0.10609, -0.0078365, -0.16927, 0.05523, -0.038599, -0.030083, 0.033499, 0.064549, -0.054456, -0.00056162, -0.12306, -0.052312, -0.006256, 0.066659, -0.083661, -0.0050757, -0.053946, -0.00027041, -0.029193, 0.060243, -0.018407, -0.03151, -0.023054, -0.14523, -0.083398, 0.0083801, -0.054527, 0.0051809],
|
||
[-0.065849, -0.053261, 0.035474, -0.043773, -0.042949, -0.03584, -0.03671, -0.03589, 0.0084303, 0.07096, -0.039991, 0.0006292, 0.023016, -0.012094, 0.023508, -0.0043853, -0.017755, -0.098393, -0.025599, -0.093254, -0.060085, -0.0067733, 0.0047322, 0.0098855, -0.0079343, -0.048435, -0.01181, -0.044468, 0.029162, -0.052373, -0.012794, -0.074, -0.11229, 0.00053719, 0.054814, -0.058612, 0.031705, -0.0076502, -0.10569, -0.19589, -0.12316, -0.011443, 0.11926, 0.0010364, -0.099823, -0.010169, -0.077188, -0.066005, -0.28363, -0.0933, 0.035262, 0.13156, 0.091981, -0.0081161, 0.12425, -0.04316, -0.010051, -0.025512, -0.0548, 0.020004, 0.31672, 0.27826, 0.1379, 0.048834, -0.033553, -0.043105, -0.046987, -0.0079366, 0.048609, 0.09188, 0.23511, 0.016599, -0.12372, -0.063235, -0.08997, 0.010187, 0.072231, 0.013954, 0.061917, -0.043803, 0.043711, 0.034238, -0.14965, -0.021063, -0.0065215, 0.10037, 0.025703, -0.023339, 0.039961, -0.062023, 0.019839, 0.12567, -0.12436, 0.051042, 0.053957, -0.016946, 0.043321, 0.038185, 0.067065, -0.092508, 0.13191, 0.078819, -0.087287, 0.13682, 0.022366, -0.0032544, 0.11493, -0.070293, -0.0097662, 0.07912, -0.13763, -0.026908, -0.12733, 0.086009, 0.01195, -0.0089316, -0.049144, -0.044693, 0.017728, 0.012377, -0.085355],
|
||
[-0.15926, 0.084897, 0.010353, 0.024131, -0.0099025, 0.016913, 0.073092, 0.08237, 0.0043022, 0.083855, 0.032979, -0.034178, -0.029839, -0.10512, -0.0089746, 0.036814, -0.020708, -0.010091, -0.072879, -0.0016778, -0.076743, 0.036399, -0.022292, -0.079821, -0.03117, -0.02395, -0.090007, 0.049464, -0.011624, -0.01219, -0.038313, -0.013831, -0.049168, -0.08738, 0.036253, -0.13555, 0.023838, 0.050095, -0.053272, -0.085012, 0.0061676, 0.0016709, -0.013993, -0.062743, -0.056305, -0.080727, -0.04239, -0.14777, -0.097021, -0.070734, -0.015527, -0.22588, -0.12301, -0.11675, -0.16926, -0.11924, -0.012361, -0.053243, 0.030546, 0.11824, 0.18358, 0.16423, 0.1323, -0.066627, 0.034499, 0.23003, -0.10642, 0.095721, 0.18784, 0.11359, 0.025588, -0.06744, -0.047658, 0.10205, 0.3059, 0.12074, -0.019907, 0.079053, 0.091497, 0.053535, -0.0018597, -0.036332, -0.067753, -0.038232, 0.0085334, -0.16437, -0.041481, -0.024498, 0.10684, 0.011813, -0.11759, -0.012837, 0.0010457, 0.072147, 0.12615, -0.055282, -0.0069995, 0.060201, 0.019191, -0.00068959, -0.015095, 0.082565, 0.029353, 0.020528, -0.031246, -0.059333, 0.096753, 0.03723, 0.025529, 0.056861, -0.023451, -0.023607, 0.019542, 0.019438, 0.044548, 0.038281, 0.061662, -0.088155, 0.079304, -0.051664, 0.077758],
|
||
[-0.061708, 0.04717, 0.012297, 0.0048086, 0.089273, 0.0323, 0.0099211, 0.077315, 0.007219, -0.0057896, -0.027111, -0.13989, -0.056493, 0.043741, -0.0011463, -0.087114, -0.049879, -0.044601, 0.037027, -0.019658, 0.0018227, -0.13718, -0.023654, 0.023929, -0.06122, -0.029673, 0.020848, 0.078336, -0.040876, -0.039874, -0.055584, 0.080912, -0.15786, -0.10649, -0.1323, -0.04331, -0.10794, -0.087527, -0.10889, -0.0942, -0.068306, -0.044226, -0.13935, -0.17046, -0.21417, 0.055183, 0.11437, 0.20663, -0.10572, -0.17195, -0.070754, 0.056465, 0.14099, 0.19461, -0.08266, 0.18248, 0.11507, -0.012084, 0.071742, 0.19215, 0.19213, 0.17145, 0.15448, -0.010182, -0.075106, 0.17627, 0.07293, -0.085363, -0.10189, -0.093911, 0.0033217, -0.0056859, 0.010933, -0.12951, -0.046961, 0.0032455, -0.0090718, 0.0068371, 0.052015, 0.018357, 0.01267, -0.074411, -0.063974, -0.029665, 0.058059, -0.018533, 0.010602, 0.081067, 0.020393, -0.022919, 0.12127, 0.0071001, 0.12313, 0.13042, 0.046877, 0.042704, 0.068078, 0.046054, -0.0067836, 0.045065, 0.032495, -0.043798, 0.039504, -0.050502, -0.029414, -0.072356, 0.010415, -0.037595, -0.024336, 0.025902, -0.0063118, 0.028123, 0.027432, 0.008822, 0.01083, 0.021828, 0.043521, 0.0035936, 0.056884, 0.040877, 0.015957],
|
||
[-0.0083507, 0.061639, 0.063043, -0.015296, 0.10245, 0.0039986, 0.077652, 0.030021, -0.021836, 0.056397, -0.15007, 0.010033, 0.0050164, -0.018546, 0.015951, -0.0011365, 0.011707, -0.058604, 0.0015384, -0.092476, -0.06129, -0.064372, -0.036227, -0.027816, -0.024541, -0.036651, 0.017808, -0.13331, 0.093825, -0.063647, -0.050293, 0.040498, -0.093307, -0.051282, -0.013633, 0.0051773, 0.028088, -0.069494, 0.02917, -0.065715, -0.00958, -0.0075632, -0.046689, -0.036037, -0.16326, -0.06809, -0.090402, -0.18958, -0.10039, -0.08141, -0.053688, -0.1623, -0.053231, -0.075002, -0.12647, 0.18341, 0.016324, -0.095199, 0.046462, 0.13805, 0.26953, 0.10024, 0.053013, 0.043485, -0.012146, -0.056649, 0.022123, 0.14925, 0.20113, 0.15088, 0.08159, -0.0944, -0.001998, 0.10065, 0.14323, 0.13389, -0.013346, -0.027656, -0.098837, -0.015846, -0.029293, -0.12585, -0.076534, -0.025134, -0.078349, -0.025744, 0.038564, 0.084352, 0.034972, 0.021598, -0.0096451, -0.024148, 0.035439, 0.094839, 0.013834, 0.047416, -0.052763, 0.099287, -0.042716, 0.065424, 0.012165, 0.048081, 0.046868, 0.043736, 0.033547, -0.046382, 0.062765, 0.024133, -0.097569, 0.13229, 0.04396, 0.0069924, 0.029835, -0.028421, -0.042759, 0.05049, 0.050638, 0.044202, 0.015928, 0.050284, -0.094579],
|
||
[-0.0093002, 0.066421, -0.057988, 0.030468, -0.088943, -0.014873, -0.06903, -0.059773, -0.02475, 0.076981, -0.11219, -0.00026099, -0.10643, 0.046966, -0.10537, -0.073429, -0.017259, -0.0097549, 0.028937, 0.05832, -0.10852, 0.0093034, 0.0032395, -0.11758, -0.030717, -0.012968, -0.072433, -0.029515, -0.030307, -0.010562, 0.00059348, 0.045902, 0.0099592, -0.14727, 0.10666, -0.058289, -0.081332, -0.10523, -0.092706, -0.080449, -0.054722, 0.035004, 0.018234, -0.064682, 0.082552, 0.043969, 0.10735, 0.17551, 0.028146, -0.093032, -0.080992, -0.17305, -0.083976, -0.082187, 0.026086, -0.024523, 0.061837, -0.0031533, 0.013887, 0.22791, 0.17839, 0.16803, -0.022424, -0.070479, 0.075631, -0.13497, 0.061914, -0.013965, -0.040287, 0.0049442, -0.14235, 0.13423, 0.0044641, 0.17884, 0.033152, -0.084186, 0.022682, 0.069503, -0.10838, 0.025867, 0.062726, 0.051958, -0.15685, 0.13621, -0.077636, 0.027664, 0.099426, -0.024066, 0.018369, 0.11491, 0.017998, -0.024584, -0.072971, 0.070923, -0.084294, 0.14549, -0.081489, -0.046883, 0.065571, 0.082578, -0.036743, 0.05491, -0.024501, 0.196, -0.047414, 0.0027762, 0.030268, 0.14718, 0.043112, -0.045243, -0.056667, 0.011024, -0.03747, 0.034539, -0.09347, -0.030232, 0.092526, 0.0033731, -0.074955, -0.05631, -0.12735],
|
||
[-0.074008, 0.059418, -0.16186, -0.095114, -0.054157, -0.095247, -0.0277, 0.13096, -0.082898, 0.043236, -0.073266, -0.010407, -0.17908, 0.11214, 0.011254, -0.072132, 0.011243, -0.12961, 0.017388, 0.052082, -0.016141, -0.0031876, 0.060476, 0.12063, -0.11552, 0.053113, -0.11176, -0.085345, -0.10342, -0.077512, 0.022696, -0.061166, -0.026801, -0.013513, 0.072872, 0.21356, -0.061052, 0.23221, -0.0060496, -0.11934, -0.048735, -0.0037697, 0.0015807, -0.059016, 0.16916, -0.10636, 0.013868, 0.13029, 0.17375, 0.36097, 0.072557, -0.050622, -0.061397, 0.012028, -0.059739, -0.1592, 0.073526, 0.010664, -0.12349, -0.20863, -0.24386, 0.2227, 0.046982, -0.10969, 0.046794, -0.067828, 0.15296, -0.074195, 0.042911, -0.014765, 0.3796, 0.41758, 0.021898, -0.11238, -0.043153, -0.0018388, -0.065449, -0.010369, 0.043815, -0.0090643, 0.10572, -0.04497, -0.060017, -0.12352, 0.072888, -0.073016, 0.024489, -0.046995, 0.0061026, 0.032989, -0.055861, 0.033549, -0.1025, -0.08537, -0.091447, -0.071753, 0.0060016, 0.004878, 0.091778, -0.063911, -0.10839, 0.1405, -0.16291, 0.049227, -0.053957, -0.025757, -0.059499, 0.029022, 0.037106, -0.043182, 0.0044686, 0.037891, -0.12462, -0.015316, -0.099422, -0.057912, -0.070463, -0.069349, 0.036225, -0.0096669, 0.0072113],
|
||
[0.00054, 0.019228, -0.0041211, 0.010352, 0.0060644, 0.030583, 0.018243, -0.011485, -0.012454, -0.013983, -0.073495, 0.00061004, -0.035457, 0.0091981, -0.0079306, -0.031347, 0.056361, 0.022269, 0.020976, 0.021593, 0.022292, -0.036376, -0.0048934, 0.018804, 0.021642, 0.022979, 0.057279, -0.062847, 0.0080146, 0.0017411, 0.023316, -0.0019692, -0.0097664, 0.026553, 0.019312, -0.040479, 0.042963, -0.0055572, 0.040029, 0.039092, -0.014761, 0.039287, -0.028686, -0.013543, 0.042797, 0.0093265, 0.071105, -0.012855, 0.0048121, -0.019345, -0.0068647, 0.060027, -0.05171, -0.0088038, 0.0085937, 0.011217, 0.004366, -0.052365, 0.018586, -0.043301, 0.017257, 0.033163, -0.063372, 0.022236, -0.010283, -0.029097, -0.072929, -0.0065264, 0.021708, -0.01287, -0.036092, 0.049588, 0.0037686, -0.035449, -0.0175, 0.0017065, 0.027703, 0.010552, -0.01511, 0.010755, -0.042385, 0.055156, -0.046342, -0.025334, -0.031804, 0.0074468, 0.014823, -0.041502, 0.05566, -0.015163, -0.033479, -0.038074, 0.018025, -0.042188, -0.068459, 0.032543, -0.043, -0.017042, 0.031344, -0.079988, 0.016716, 0.032905, 0.07075, -0.026522, 0.0097949, -0.0083591, -0.022132, -0.010267, 0.027387, -0.019457, 0.047471, 0.0064639, -0.036821, -0.014924, -0.048381, -0.035401, -0.0011684, -0.054013, 0.079191, -0.046041, 0.010261],
|
||
[-0.00015691, -0.00010973, 8.6821e-05, 0.00028959, 0.00013337, -0.00020448, 0.00046365, -0.00019524, 0.00033248, 0.0002625, -9.9023e-05, 0.00023043, 0.0003325, 0.00015431, -0.00017518, 0.00017581, -2.7858e-05, 0.00010573, -0.00016548, -0.00010017, -9.3139e-05, 7.6297e-05, 8.4225e-05, -9.3287e-05, -0.0002872, 0.0002135, -0.00031506, 0.00045189, -0.00054957, 0.00054579, 4.2927e-05, 0.00052308, -0.00068598, 0.00018155, -0.00019968, 0.00023652, 8.502e-06, 0.00049096, -0.00041196, 0.00037236, -0.00014793, -0.00020788, -0.00031632, 0.00035097, -0.00053025, 0.00019205, -0.00035924, -0.0001448, -8.2206e-05, -0.00026762, -0.00032866, -0.00013873, 0.00019338, -2.8931e-05, -0.00021531, 0.00050076, 1.287e-05, 0.00028779, 2.1517e-05, -0.00038504, 0.00026924, 0.0002012, 7.127e-05, 0.00025511, -0.00054975, 7.0801e-05, -0.00031443, 7.2728e-05, -6.7647e-05, -0.00010597, 0.00020425, -2.266e-05, -0.00046406, 0.00029312, -0.00057911, 0.00046348, -0.00018921, -6.8311e-05, -0.00011583, 0.00024261, -0.00013789, 0.00046582, -0.00037782, 0.00087162, -0.00063643, 0.00019146, -0.00030214, 0.00015481, 0.00035948, 0.00034065, -0.00013397, 0.0006282, -0.00026282, 0.000629, -0.00083565, 0.00055501, -0.00039222, 3.0416e-05, -0.00021896, -0.00025051, 7.5792e-05, 0.00032481, -0.0002841, 5.0197e-05, -7.605e-05, 0.00029723, -0.00059771, 4.8138e-05, -0.00014383, 0.00046738, -0.00043149, -2.2305e-05, -0.00053506, -0.00011828, -0.00021778, -0.0001084, -0.0008066, 0.00028972, -0.00013991, 0.00043598, -0.00043607],
|
||
[0.00079929, -3.012e-05, -9.6683e-07, 0.00086495, 0.00050305, -3.4862e-05, 0.00042196, 0.00065682, 0.00012928, -0.00026826, 0.00070486, -0.00045054, 0.00062842, 0.00021811, -0.00022767, -0.00057437, 0.0001667, -0.00045505, -0.00051896, 0.00016279, 0.00078468, -0.00020117, 0.00081332, -0.00054661, -4.6455e-05, 0.00039251, 0.00089045, 0.00044803, 0.00067252, 0.00034324, 2.9706e-05, -0.00033408, 0.00020838, -0.0014686, 0.0013211, 0.0003623, -0.00042101, -0.0010662, -0.00047869, -0.0011025, -0.00011142, 0.00036055, 0.00080537, -0.0010504, 0.001246, -0.0012889, -0.0001035, -0.00032599, 0.0008196, -0.0003287, 0.00078428, -0.00031028, -0.000132, -0.0012038, 0.00056967, -0.0015831, 0.0012384, -0.00020329, 0.00054442, -0.00047971, 0.00036398, 3.0136e-06, 0.0003463, -0.00016208, 0.00076531, -0.00043743, 0.00035576, -0.0002401, 0.00021525, -0.00065505, 0.00036035, -0.00028137, -0.0001437, -0.00019791, -0.00050362, 0.00056145, -0.00023162, -0.00041906, -4.5824e-05, -7.5822e-05, 0.00080031, 0.0005584, 2.2266e-05, 0.00089773, -9.8581e-05, 0.001173, -0.0005277, -0.00056096, 0.0001046, 0.00047498, 0.00073709, -5.6914e-05, -0.00031024, 0.00087524, -0.00044804, 0.00049556, -0.00070265, 0.00085456, 0.00012342, -0.00093547, 0.00037822, -0.00032902, 0.00056647, 0.00025216, -0.00037243, 0.00061577, -0.00048528, 0.00051398, -0.00076369, -0.00027176, -0.00036518, -0.0012782, -0.00037035, -0.0012045, -0.00051116, -0.00047597, -0.00072161, -0.00037669, -0.00075399, 0.00013433, -0.00059059],
|
||
[-0.0002515, 0.00020005, 0.00019417, -5.7923e-05, 0.00055864, -0.00029405, 0.00046419, 0.0001692, -0.00013657, 0.00014341, -2.7246e-05, -0.00017463, 0.00043209, -0.00024872, 0.0003385, -0.00042825, 0.00045275, -0.00033818, -0.00015837, 0.00037188, 4.0013e-05, 0.00029638, -1.1758e-06, -0.00017447, 0.00012685, -0.00025761, 0.00047736, -0.00015834, 0.00011916, 0.00015943, 9.365e-05, 0.0001324, 2.5813e-05, 7.7539e-06, -0.00041105, 0.00045452, -4.0405e-05, -0.00042519, 2.9496e-05, 0.00022369, -0.00022326, -5.9697e-05, 9.59e-05, -0.000218, -6.6286e-05, 0.00063835, -0.00035776, -0.00043585, 0.0005552, -0.00046868, -0.00036668, 0.00044105, -0.00016743, -0.00015286, -0.00042268, 0.00017696, -0.00087955, 0.00041466, 0.0003045, 6.8465e-06, 0.00021324, 5.5444e-05, -0.00045539, 0.00036257, 5.8126e-05, 0.00048701, -0.0010395, 0.0011089, -0.00047447, -0.0002164, -0.00030265, -0.00031877, 0.00018257, 0.00022085, -0.00045708, -0.00016765, -0.00038681, 0.00023465, -0.00089059, 2.7029e-05, -0.00019392, 0.0004316, 0.00014665, 0.00020277, -0.00016624, 3.3773e-05, -6.9001e-06, 0.00031733, 0.00013184, -0.00026275, 0.00030497, -0.00022988, -0.00034411, 0.00033974, -9.437e-05, 0.0001593, 0.00022083, 0.00023299, 0.00026685, -0.00042236, 0.0010172, -0.00066561, 0.00023103, -5.1105e-05, -0.00025247, 0.00027604, -0.00017761, -0.00010325, 8.8215e-05, -0.00022473, -9.1083e-05, -0.00032299, 0.00049768, 8.6189e-05, -0.00027279, -0.00012651, -0.00052227, -5.2141e-05, -0.00031611, 0.00017884, -0.00037941],
|
||
[-0.17867, -0.010046, -0.04259, -0.065935, 0.052273, 0.033122, 0.02795, 0.034597, 0.040653, -0.0060289, 0.0121, -0.0058231, -0.075829, 0.11467, 0.020114, 0.068302, 0.053668, -0.0019151, 0.0032162, -0.022868, -0.036064, 0.0030444, 0.0050268, -0.016159, 0.013434, 0.046278, -0.019864, 0.033082, -0.011511, -0.023361, 0.048031, 0.072163, -0.034707, 0.015743, -0.043658, 0.05299, -0.00057783, 0.053685, 0.05641, 0.031927, 0.076208, 0.035085, 0.016017, 0.097829, -0.010933, -0.057605, -0.046117, 0.11587, 0.01663, -0.072381, -0.027211, 0.104, -0.049864, 0.013157, 0.068758, -0.086093, 0.10551, -0.051926, -0.084577, -0.023869, 0.11535, -0.029928, -0.098805, 0.081749, -0.10609, 0.031317, -0.028082, 0.079442, -0.093214, -0.069858, 0.10703, -0.071548, 0.064465, -0.099165, -0.01347, 0.034352, -0.10594, -0.035787, -0.011064, 0.018378, -0.039254, -0.14017, -0.037213, 0.011543, 0.0046565, -0.076081, 0.021617, 0.0056964, -0.054225, 0.039976, -0.014192, -0.056039, -0.085955, 0.022657, -0.0022048, 0.002352, -0.0086408, -0.064881, -0.0055523, 0.079596, -0.01119, 0.019694, -0.0090802, 0.0030333, -0.11173, -0.037769, 0.14408, 0.0085418, 0.051063, -0.013809, -0.018804, -0.074726, 0.062213, -0.031173, 0.023266, -0.01323, -0.088087, -0.16851, 0.014989, -0.04579, 0.038302],
|
||
[-0.12472, 0.016332, 0.010132, 0.0072417, -0.059929, 0.014889, -0.052419, 0.022431, -0.043702, 0.021372, -0.066552, -0.076752, 0.031454, 0.00050699, 0.048209, -0.043606, -0.026402, 0.11495, -0.00084488, 0.041763, 0.016621, 0.095744, 0.016932, -0.031217, 0.021554, -0.061228, 0.081696, -0.0551, -0.095302, -0.031352, -0.035125, -0.028837, -0.047885, 0.060702, 0.080685, -0.039628, 0.06471, 0.013113, 0.16301, 0.12825, 0.074636, -0.016897, 0.010567, 0.0033568, -0.041216, 0.083781, 0.10219, -0.048555, 0.095493, -0.12105, -0.14934, -0.038947, 0.053671, 0.10886, 0.062398, -0.064005, -0.0011642, -0.017989, 0.10376, -0.021666, 0.20636, 0.067516, 0.022595, -0.10875, -0.15368, -0.10156, -0.056219, 0.0048936, 0.080509, -0.048987, -0.054674, 0.034417, 0.13789, 0.17934, 0.22694, 0.16715, 0.28888, -0.0045505, 0.12854, -0.14688, 0.039804, 0.0011617, -0.19134, -0.11486, -0.040556, -0.077014, -0.064919, -0.17402, -0.069452, -0.1707, 0.097553, -0.012417, 0.00878, 0.033808, -0.040324, -0.12351, -0.071104, -0.032842, -0.025257, -0.13558, 0.13027, -0.098979, 0.01654, -0.055394, -0.017478, 0.082533, -0.0052693, 0.023715, -0.025128, -0.054494, -0.0065251, -0.19552, 0.00051533, -0.1247, -0.010402, -0.040854, -0.050091, 0.0061714, -0.022234, 0.025005, 0.053772],
|
||
[-0.069531, -0.027855, 0.018198, 0.015264, -0.021355, -0.060615, 0.007426, 0.044909, -0.02229, -0.045038, -0.055531, 0.090244, -0.0038081, 0.001819, -0.023995, 0.022637, 0.034386, -0.0041323, -0.01524, 0.059723, 0.0035447, 0.10857, 0.015828, 0.0089879, 0.021417, -0.026, -0.072054, 0.0067502, -0.043797, -0.086222, 0.0012469, 0.013968, -0.0188, 0.091106, 0.071483, 0.053141, 0.0091481, 0.0032189, 0.10532, 0.013069, 0.11322, 0.024085, 0.10571, 0.097249, -0.040357, -0.052072, 0.0094838, 0.023225, 0.048982, -0.077047, -0.016369, -0.048399, -0.017519, -0.048725, -0.090696, 0.14585, 0.020202, 0.052473, -0.005921, 0.0022813, 0.011431, 0.098602, 0.035391, 0.11802, 0.014488, 0.14986, -0.083365, 0.026042, 0.057536, 0.1029, 0.13376, 0.098599, 0.11296, 0.066812, -0.030392, 0.037677, -0.080465, -0.013433, -0.07905, -0.086928, -0.13723, -0.16181, -0.15594, -0.15634, -0.15766, -0.019054, -0.066428, -0.040315, -0.1553, 0.12102, 0.0073739, -0.039042, 0.044864, -0.031074, -0.037869, 0.026936, -0.025703, 0.030655, -0.0083295, 0.030464, -0.016822, 0.010026, 0.023942, 0.0037369, -0.0062061, 0.040478, 0.0152, 0.035362, 0.035114, -0.10029, -0.1061, -0.0521, -0.0037985, 0.02929, 0.020763, 0.037574, 0.050568, 0.0025948, -0.034033, -0.031897, -0.072553],
|
||
[-0.074151, -0.00066986, -0.038515, -0.023181, -0.032101, -0.016814, -0.043281, -0.034097, 0.010157, 0.030027, -0.1357, 0.05532, 0.041423, 0.054238, 0.075158, -0.0045612, 0.0049337, -0.027804, 0.037859, -0.010636, 0.043039, -0.031109, -0.026843, -0.03367, 0.0053082, -0.03972, -0.011433, 0.0018727, -0.030625, -0.0029381, -0.0095989, -0.013588, -0.0090228, 0.013981, -0.027132, -0.066722, 0.029996, 0.10811, 0.073933, 0.094597, 0.021327, 0.0051895, 0.090626, -0.0014968, 0.095692, 0.071033, 0.093121, 0.08641, -0.082912, -0.063317, 0.058041, 0.094123, 0.048289, 0.0065601, -0.017979, -0.10529, -0.099505, -0.11641, -0.16337, -0.030663, 0.037327, 0.021716, -0.036984, 0.10584, -0.038901, 0.042389, 0.15761, 0.14948, 0.15123, 0.26083, 0.2455, 0.20845, 0.014092, -0.081544, -0.12046, 0.19947, -0.12279, 0.043147, -0.0039359, 0.041945, -0.14663, -0.16842, -0.21746, -0.14594, 0.12454, -0.018239, -0.096476, 0.096745, -0.16116, -0.10959, -0.18407, 0.028717, 0.01794, 0.067713, 0.070427, -0.11003, 0.093084, 0.01548, -0.15557, -0.014144, 0.032512, 0.055568, -0.017473, -0.029534, -0.038828, -0.030212, 0.045497, -0.15438, 0.1342, -0.20134, 0.062249, 0.024284, -0.036965, 0.0046654, 0.019888, -0.083468, -0.016567, -0.08316, 0.0045192, -0.15566, -0.091842],
|
||
[-0.066489, -0.047719, -0.094104, -0.0136, -0.045531, -0.085062, -0.063094, -0.053821, -0.12222, 0.047518, -0.10544, -0.12135, 0.020629, 0.038231, -0.043392, 0.0044225, -0.038085, -0.07983, -0.028986, -0.065506, -0.088403, 0.0075686, 0.0146, -0.0022052, 0.018239, 0.066199, 0.014133, -0.018585, 0.0097275, -0.013373, -0.13952, -0.099454, 0.0024537, 0.023326, 0.052273, -0.0078434, -0.019449, -0.037936, 0.0060267, 0.04031, 0.061324, 0.12961, -0.052464, -0.092317, 0.12501, -0.023511, 0.0687, 0.081178, 0.081636, 0.13285, 0.11443, 0.031137, 0.039574, 0.064207, -0.026586, -0.069602, -0.0068827, -0.086642, -0.12201, -0.087603, -0.097081, -0.14353, -0.032404, 0.016665, -0.028878, 0.046661, 0.16769, 0.081857, 0.13298, 0.15797, 0.15421, 0.23508, 0.10845, -0.026636, 0.10226, 0.074816, -0.067484, 0.014559, -0.031797, -0.060628, -0.091575, -0.021837, -0.18286, 0.094502, 0.013465, 0.017063, 0.047282, 0.10222, 0.0032627, 0.014577, 0.0537, 0.048468, 0.0033061, 0.10215, -0.077242, 0.018935, 0.00098413, 0.047212, -0.042524, -0.059479, -0.043645, 0.007226, -0.045364, 0.0015258, 0.033942, -0.062869, -0.011162, -0.026182, 0.11833, -0.11894, 0.0030267, -0.019807, -0.020185, -0.0019915, -0.028349, -0.051936, -0.11455, 0.016935, -0.037825, -0.013759, -0.14177],
|
||
[-0.12379, -0.022793, -0.056572, -0.039201, -0.014506, -0.14164, -0.066773, -0.016892, 0.018395, -0.060257, -0.11708, -0.16992, 0.022682, -0.037432, 0.027836, -0.10392, -0.024896, -0.10241, 0.027892, 0.03703, 0.025269, -0.18055, -0.13784, 0.032154, 0.10446, 0.042116, 0.0035951, 0.065347, 0.022453, -0.0013755, -0.030524, 0.030664, -0.098775, 0.21125, 0.031923, -0.034705, 0.036622, -0.010853, -0.007389, 0.0056783, 0.029567, 0.096434, 0.029158, 0.29857, -0.079196, 0.00025704, 0.030976, -0.077561, 0.10471, 0.14285, 0.099402, -0.040837, -0.11174, -0.067308, -0.18342, 0.1398, -0.041935, -0.092866, 0.019653, -0.09039, -0.20734, -0.072878, 0.0027433, 0.0061246, 0.094598, 0.15506, 0.041295, 0.0060989, 0.20247, 0.18773, 0.14967, 0.2906, 0.18823, 0.15999, 0.11916, 0.056018, -0.027929, 0.056676, 0.014382, -0.043592, -0.1069, -0.062248, -0.17877, -0.092288, -0.18023, -0.061399, 0.066683, 0.095797, -0.07561, 0.033484, 0.009071, 0.0023841, 0.01285, 0.0037372, 0.056508, 0.071821, 0.074187, -0.027905, -0.084135, 0.10542, 0.028027, 0.065445, 0.064162, 0.032941, 0.0054021, 0.035715, 0.007712, -0.035146, 0.095731, 0.068293, -0.17431, -0.053416, -0.043073, -0.075042, -0.0026001, -0.026745, -0.014015, -0.037147, -0.029554, -0.052553, -0.20455],
|
||
[-0.080337, 0.031543, -0.080333, -0.1658, -0.012897, -0.10179, -0.017891, -0.047932, -0.069573, -0.013085, -0.06403, -0.047389, -0.048253, 0.010624, -0.088304, -0.0248, -0.017016, -0.073112, 0.017958, 0.020032, 0.026271, -0.10027, -0.055354, -0.019203, -0.17887, -0.047929, -0.015477, -0.036581, -0.0013978, -0.02438, -0.013239, -0.016219, 0.033456, 0.031282, -0.11781, 0.08676, 0.096838, 0.007578, 0.040208, 0.039797, -0.0079643, 0.057675, 0.065973, 0.076369, -0.094338, 0.027582, 0.17673, 0.0080282, 0.079734, 0.14711, 0.066918, 0.050334, 0.0011558, 0.013615, 0.0030149, -0.001561, 0.13349, -0.080527, 0.050307, -0.13744, -0.073796, -0.03188, -0.057867, -0.065217, -0.066794, -0.088251, 0.0096845, -0.042764, 0.094638, -0.066202, 0.13555, 0.15163, 0.11508, 0.091266, 0.14084, 0.12799, 0.20636, 0.028581, 0.14482, -0.064493, 0.14635, -0.039325, -0.049278, -0.080228, 0.016308, -0.064651, -0.077927, -0.029574, -0.024416, -0.13305, 0.13699, -0.022414, -0.0058687, 0.0049992, 0.07054, -0.00037991, -0.011859, 0.094751, 0.032189, -0.084875, 0.14236, -0.035525, -0.025841, -0.078953, 0.048318, -0.082027, 0.043364, 0.0027046, -0.027921, -0.071951, -0.09968, -0.12072, 0.027686, -0.065397, 0.041932, -0.06347, 0.015318, -0.088955, -0.0024259, -0.055982, 0.025023],
|
||
[-0.16063, -0.05068, -0.017603, -0.002472, 0.025627, 0.0064475, 0.040905, -0.019412, 0.010908, -0.057, -0.16989, -0.047848, 0.045771, 0.036605, -0.0347, -0.038814, 0.059925, -0.045042, 0.0044791, 0.010086, 0.017233, -0.014699, -0.031159, 0.054786, -0.045019, 0.027938, -0.050948, -0.058028, -0.018143, -0.073467, 0.029761, 0.020105, -0.03083, 0.0089385, 0.0094918, 0.031257, -0.074325, 0.047502, -0.087203, 0.019497, 0.018802, -0.020783, 0.037407, 0.012029, -0.08564, -0.012501, -0.027084, 0.012926, -0.020812, -0.14056, -0.11375, 0.017925, -0.028517, 0.045859, -0.13118, -0.17389, 0.053714, 0.0323, 0.05752, 0.059047, -0.11509, 0.043566, 0.059537, 0.076599, 0.014207, -0.11994, 0.003483, 0.083083, 0.068673, 0.066345, 0.084013, 0.10863, 0.036022, 0.1238, 0.043237, 0.0594, 0.042445, 0.12789, 0.014244, 0.067136, 0.086699, 0.059557, 0.018099, 0.010713, -0.0005958, 0.061343, -0.00013986, 0.22413, 0.088014, -0.058215, -0.0012261, 0.042306, 0.052067, 0.075415, 0.077471, 0.045711, 0.017695, -0.0030659, -0.029624, 0.12897, 0.042184, -0.039395, -0.041007, -0.1339, -0.0425, -0.058195, -0.0952, -0.049991, -0.035359, 0.1586, -0.11702, 0.02205, 0.048193, -0.0056565, 0.055322, 0.0039771, 0.0088791, 0.030973, 0.036137, 0.077637, -0.11747],
|
||
[0.0032106, 0.088885, 0.10096, 0.022293, -0.071525, 0.0057431, 0.065381, 0.0082641, -0.052298, 0.055063, 0.042136, -0.0027337, 0.061071, -0.10701, -0.055828, -0.065033, -0.011795, -0.16487, 0.021281, 0.011339, 0.015608, -0.08575, 0.0043087, -0.0028334, -0.075705, -0.095024, -0.024443, -0.0048743, 0.053736, -0.046164, -0.093394, -0.089492, -0.070094, -0.034765, -0.11037, -0.041699, 0.048555, 0.037317, -0.0091258, -0.024838, -0.10812, -0.011196, 0.062001, -0.030909, -0.20817, 0.028408, -0.034229, 0.015547, 0.042038, 0.149, -0.077828, 0.33344, 0.36268, 0.18381, 0.18802, -0.02676, 0.001051, 0.040988, 0.14355, 0.1472, -0.22199, 0.31512, -0.097934, -0.34109, -0.17922, -0.075038, -0.0606, -0.019191, 0.16686, -0.012989, -0.34657, 0.14668, -0.053558, -0.24973, 0.24117, 0.067441, 0.11114, -0.17424, 0.12201, -0.092747, -0.065791, 0.35856, 0.22608, -0.1116, 0.30572, -0.10906, -0.15714, 0.068396, -0.040922, 0.0013632, 0.10794, 0.11371, 0.05701, -0.082634, 0.046328, 0.056397, 0.020212, -0.029754, 0.054467, -0.014207, 0.093989, 0.044572, -0.073566, -0.15318, -0.061212, 0.026711, 0.036455, 0.1388, 0.2398, 0.111, -0.12734, -0.070921, -0.084031, -0.052911, 0.008027, -0.048337, -0.040315, -0.089109, -0.1026, -0.0918, -0.21141],
|
||
[-0.070542, 0.055085, 0.10153, 0.023622, 0.029956, -0.02606, 0.11064, 0.024489, 0.02197, 0.020457, -0.041117, -0.024812, 0.0095704, -0.048146, -0.041543, -0.0045487, -0.022901, -0.10096, -0.032652, 0.037091, 0.014636, -0.01092, -0.026208, -0.14215, -0.13289, -0.033251, 0.0054752, 0.091854, 0.036012, -0.080267, -0.02962, 0.026873, 0.024976, -0.10102, 0.10924, 0.070655, -0.10936, -0.32088, -0.20437, 0.050939, 0.046306, -0.052625, -0.10829, 0.090883, 0.19174, 0.12934, 0.1186, 0.26211, 0.4376, -0.07386, -0.076584, 0.10681, -0.089974, -0.061555, -0.092351, 0.02414, 0.029438, -0.015638, -0.14953, -0.10876, 0.19098, -0.049896, -0.16239, 0.04671, -0.033452, 0.0046311, 0.0064217, -0.12477, -0.031314, 0.0042103, -0.025366, 0.063684, 0.13395, -0.065578, 0.057464, 0.17257, -0.11824, 0.060334, 0.0037599, -0.0382, 0.066276, 0.25634, -0.093935, 0.1365, 0.0034795, -0.072762, 0.029458, -0.015678, 0.19132, -0.12071, -0.049397, 0.077176, -0.030486, 0.049783, -0.057533, 0.14083, 0.17409, 0.0093446, -0.12819, 0.097922, 0.14847, 0.2172, 0.044316, 0.11562, 0.079277, -0.12049, -0.049673, -0.032827, 0.0090016, -0.13279, -0.20143, -0.012865, -0.052263, -0.059203, -0.11793, -0.18199, -0.00074838, -0.13714, -0.061325, 0.01995, -0.062147],
|
||
[0.051025, -0.019224, -0.0091745, -0.022468, 0.021118, -0.017504, -0.22285, 0.022525, -0.0024245, -0.096691, -0.025361, 0.073435, 0.15109, 0.11522, 0.1297, -0.078929, 0.097198, 0.21131, -0.24961, -0.011818, 0.064528, -0.085348, 0.049274, -0.061577, 0.063001, -0.043023, 0.069051, -0.096092, -0.061694, 0.18034, -0.16664, -0.051094, 0.069176, -0.11904, -0.08579, -0.20469, -0.037006, 0.034799, 0.063283, 0.1479, -0.066933, 0.13701, 0.0071805, -0.062055, 0.22476, -0.073222, -0.080358, -0.11456, 0.20483, 0.10476, 0.10684, -0.10692, 0.018058, 0.12869, -0.071027, 0.04413, 0.12003, 0.14237, 0.21905, 0.069723, -0.082454, -0.10618, 0.079817, 0.17122, 0.11078, -0.1575, -0.026069, 0.17501, 0.19358, 0.15583, 0.13145, 0.10803, -0.015809, -0.066108, -0.14853, -0.054745, -0.065217, -0.026932, 0.017929, -0.025775, -0.12464, -0.13002, -0.23174, -0.0669, -0.037099, -0.030813, 0.11265, -0.03528, -0.066288, -0.094886, -0.13366, -0.07721, -0.094369, 0.053336, 0.041074, -0.044715, 0.14383, -0.054988, -0.0022013, 0.021969, 0.032944, -0.0067769, 0.055703, 0.051114, -0.0071487, -0.050493, 0.11606, -0.10774, -0.017707, -0.029669, -0.16641, -0.048752, -0.07477, -0.066227, -0.10651, -0.00092592, -0.0045899, -0.041813, -0.029842, 0.04003, -0.11835],
|
||
[-0.14161, -0.061297, 0.0081528, 0.095805, -0.12141, -0.15258, 0.14459, 0.10275, -0.076911, 0.010478, -0.064039, -0.084813, 0.025051, 0.087181, -0.20873, 0.0040299, 0.39083, -0.018288, -0.19371, 0.21355, 0.19219, 0.051337, -0.099999, 0.065604, -0.033197, 0.077857, 0.22273, -0.096602, -0.13245, 0.22635, -0.02376, -0.16636, 0.024376, 0.011185, 0.0090203, 0.017388, -0.04308, -0.064752, -0.15373, 0.10303, -0.086296, -0.18748, -0.083188, -0.037066, -0.091363, 0.043056, -0.0076223, -0.0723, 0.18949, 0.091583, 0.09321, 0.078433, -0.086071, -0.16936, 0.21392, -0.07688, 0.14025, 0.18839, 0.11529, -0.16631, -0.13317, -0.019452, 0.013015, 0.28544, 0.23882, 0.23929, -0.025478, 0.011733, -0.03133, 0.026406, 0.17735, 0.15387, 0.022878, 0.15423, 0.10953, 0.19865, -0.10958, 0.0040964, -0.0032427, -0.06496, 0.002359, -0.082444, -0.087193, 0.0056234, -0.024094, -0.12474, -0.14739, -0.13843, -0.094737, 0.043476, -0.022122, -0.058009, 0.074104, 0.027468, -0.068146, -0.086381, -0.072755, 0.01616, -0.095064, -0.055944, 0.02497, -0.092156, 0.020486, -0.049538, 0.062127, 0.010981, 0.028107, -0.023413, -0.011846, -0.04146, -0.12376, -0.0075478, -0.035061, -0.054382, -0.12788, -0.063113, -0.07867, -0.0052472, -0.027462, -0.048145, -0.097095],
|
||
[0.035456, 0.01281, 0.01818, -0.0038058, -0.047339, 0.0086152, -0.046294, 0.016896, 0.073403, 0.057854, 0.046801, 0.017573, -0.023834, -0.028005, -0.061704, 0.0041493, -0.099934, -0.074151, -0.097134, -0.05064, -0.051916, 0.04634, -0.10129, -0.010697, -0.13071, 0.065224, 0.035157, 0.078444, 0.02087, -0.083009, -0.041877, -0.032514, -0.065939, -0.081372, -0.042073, 0.11944, -0.19373, -0.14791, -0.091871, -0.02184, 0.047336, 0.060397, -0.079535, -0.046692, 0.19615, 0.15002, 0.22469, 0.4337, 0.17627, 0.085003, 0.17628, -0.089798, -0.10576, -0.0049048, -0.064592, -0.076504, -0.048693, -0.19598, -0.27569, 0.26255, -0.056874, -0.10876, 0.27052, 0.20636, -0.0015736, -0.17759, -0.0015426, 0.050842, 0.092668, 0.030409, -0.43179, 0.36702, -0.059156, -0.34465, 0.10849, 0.10613, -0.049251, 0.16014, -0.12372, -0.15509, 0.1045, 0.1609, -0.14487, 0.43189, 0.11981, -0.13833, 0.011269, -0.081012, 0.17513, -0.046057, 0.033711, -0.015269, 0.18262, -0.10025, -0.097021, 0.066111, 0.15775, 0.10256, -0.065278, 0.019465, 0.18821, 0.076081, 0.20711, -0.0097133, -0.067601, -0.045104, -0.047138, -0.04305, 0.029932, 0.0056791, -0.17631, -0.030884, -0.020628, -0.10197, -0.11425, -0.020674, -0.024768, -0.074425, -0.055049, -0.037227, -0.16216],
|
||
[-0.070049, 0.085301, 0.0028141, 0.010033, 0.089868, 0.052913, -0.050136, -0.022286, 0.045302, -0.030119, 0.021823, -0.0060856, 0.023126, 0.014529, -0.0015684, -0.027996, -0.16608, 0.07873, 0.036994, -0.016142, 0.068801, -0.043417, 0.038981, -0.06654, 0.0031039, -0.013009, -0.092595, 0.12644, 0.040773, -0.085448, -0.13739, -0.13311, -0.11021, 0.070763, 0.080261, -0.16878, -0.05206, 0.13425, -0.10535, -0.33738, -0.070808, 0.057004, 0.09228, -0.011615, -0.050913, -0.16069, -0.048848, 0.071389, -0.043639, -0.13394, 0.30516, 0.23788, 0.20977, 0.12056, 0.25283, -0.0023562, -0.035137, 0.049605, -0.10416, -0.14206, 0.25292, -0.038235, -0.053227, -0.16541, -0.014617, 0.028801, -0.10097, 0.10738, 0.12267, -0.05807, 0.073527, 0.01054, -0.051688, -0.072825, 0.11389, -0.099763, -0.099681, -0.0083155, 0.028782, -0.016644, -0.10306, 0.17422, -0.012649, 0.26026, 0.13061, -0.13681, -0.055878, 0.09867, -0.1397, 0.029745, 0.073907, 0.16843, 0.089063, -0.081254, 0.0080562, 0.15433, 0.061775, -0.050386, 0.19951, -0.095579, -0.078848, 0.066657, -0.07773, -0.059688, -0.0023501, -0.0046282, 0.075461, 0.11777, 0.24713, -0.021968, -0.093774, -0.011643, -0.055253, -0.067446, -0.09786, -0.067747, -0.11419, -0.15448, -0.053914, -0.072083, -0.10186],
|
||
[-0.014135, -0.083516, 0.025062, 0.075977, -0.15437, -0.042405, -0.034524, 0.13187, -0.018957, -0.0026675, 0.10306, 0.04033, -0.10561, 0.017365, -0.15937, 0.032279, 0.1053, 0.075028, -0.11928, 0.10401, 0.14421, 0.0071286, -0.079992, 0.014275, -0.03873, -0.13695, 0.18645, -0.065111, -0.14101, 0.22619, -0.0019016, -0.049331, 0.014048, -0.033852, -0.028526, 0.08623, 0.10756, -0.040378, 0.040168, 0.25442, -0.34992, -0.11829, -0.11322, -0.03604, 0.0091419, 0.015128, 0.048542, -0.11506, 0.081696, 0.17251, 0.15416, 0.10511, -0.21705, -0.14597, 0.19709, -0.12399, 0.10066, 0.12172, 0.12481, -0.055988, -0.21829, 0.080538, 0.23046, 0.31883, 0.20522, 0.0081843, -0.054335, -0.11191, -0.0056947, -0.043056, -0.04046, 0.10031, -0.060037, 0.14527, 0.25791, 0.16199, 0.049309, 0.0040739, 0.11099, -0.020691, -0.11144, -0.081095, -0.11639, -0.038956, -0.12985, -0.22365, -0.0058588, -0.036087, -0.077144, -0.047407, 0.027429, 0.099597, 0.040004, -0.073007, -0.017636, -0.072072, -0.0031646, -0.065567, -0.10478, 0.0094405, 0.025832, -0.03882, 0.027512, 0.036751, 0.040562, -0.0038665, 0.012356, -0.053858, -0.00065956, -0.0026598, -0.11896, 0.022143, -0.046808, -0.07491, 0.018173, -0.066413, -0.033129, -0.12809, 0.0050881, -0.088215, -0.1122],
|
||
[-0.036364, 0.056084, -0.054615, 0.12841, 0.034695, -0.099269, 0.035218, 0.001705, -0.053721, -0.1047, -0.057794, -0.0079505, 0.079079, 0.17476, -0.073746, 0.14079, 0.17945, -0.028798, -0.053414, 0.088642, 0.0067588, -0.13125, 0.03217, -0.075938, -0.045683, 0.098321, -0.11055, -0.085252, 0.1988, 0.020722, 0.022471, 0.082376, -0.11576, 0.032843, -0.083484, -0.077332, -0.11177, 0.024984, -0.030403, -0.029025, -0.10372, 0.011701, 0.0093278, 0.0024312, 0.15007, -0.21395, -0.11854, -0.0019534, 0.18178, 0.054955, 0.15511, 0.030061, -0.019865, 0.070851, -0.00048596, 0.17946, 0.30639, 0.14694, 0.10068, -0.073081, -0.083394, -0.13131, 0.026088, 0.1539, 0.14966, -0.12432, -0.055198, 0.23539, 0.23071, 0.17815, 0.032433, 0.08525, 0.10099, 0.076039, -0.013732, 0.01869, -0.032925, -0.22859, -0.12676, -0.11187, -0.12231, -0.022443, 0.014664, -0.049709, -0.031971, -0.03212, 0.044761, -0.048497, -0.0359, -0.059853, -0.046859, -0.054269, -0.025597, -0.05982, -0.029519, 0.0036297, -0.020509, -0.001523, -0.090003, -0.026576, -0.010829, -0.0095883, -0.0089047, 0.0029522, 0.0038042, 0.061866, 0.03369, -0.066066, -0.024372, -0.034185, -0.10894, 0.0071168, -0.094013, -0.018408, -0.057182, -0.026056, -0.08889, -0.10212, -0.04305, -0.085051, -0.026051]
|
||
], "lbp": [
|
||
[-0.0279, -0.0060442, -0.029118, -0.012328, 0.061854, 0.095671, 0.045972, 0.015531, -0.012023, -0.040293, -0.033222, -0.0035958, -0.013857, -0.034504, 0.017543, 0.036808, 0.08477, 0.060825, -0.0093584, -0.048193, -0.0065947, -0.030168, -0.0073362, -0.049812, -0.028526, -0.0089851, 0.037543, 0.07585, 0.040464, -0.020222, -0.010643, -0.025973, -0.029295, -0.049586, -0.016454, -0.013482, -0.034207, 0.069169, 0.043415, 0.066515, -0.028014, -0.0028085, 0.012846, -0.020229, 0.026364, -0.024003, -0.071419, 0.019799, 0.047962, 0.090396, 0.05487, -0.015562, -0.0052397, -0.013383, -0.0017451, 0.00097397, -0.034245, -0.029304, -0.015763, 0.012324, 0.11024, 0.0052691, -0.0082711, 0.029191, 0.010482, 0.0048675, -0.0043579, -0.02572, -0.065308, 0.016283, 0.042681, 0.074985, 0.016473, 0.013771, 0.0024093, 0.024024, 0.033111, -0.056875, -0.027797, -0.033811, 0.015079, 0.04821, 0.11415, -0.0050453, -0.024537, -0.0046878, 0.030699, 0.036164, -0.01766, -0.02759, -0.023776, -0.0031654, 0.043854, 0.093522, -0.0015599, -0.019099, 0.041501, -0.0029953, 0.020048, -0.025806, -0.014023, -0.052045, -0.0089677, 0.059688, 0.082792, 0.021693, -0.0122, -0.0040159, 0.048254, 0.0050565, -0.02978, -0.045802, -0.022217, -0.026806, 0.080558, 0.11125, 0.024835, 0.013031, 0.026214, 0.0092541, 0.054743],
|
||
[-8.7334e-05, 3.7445e-05, -1.6719e-05, 2.645e-05, 0.00026446, 0.00018012, 0.00013079, -8.9234e-05, 8.7778e-05, -2.863e-05, 0.00019466, 4.0175e-05, -2.447e-05, -5.5303e-05, -9.4642e-05, 0.00013992, 0.00025974, 0.00010837, -2.8508e-05, 2.0612e-06, -5.4547e-05, 0.00011548, -0.0001789, 1.0106e-06, -1.6477e-05, -5.4462e-05, 4.6057e-05, 0.00020887, -5.986e-06, 3.9147e-05, -0.00015654, -5.0893e-05, 8.3829e-05, -3.926e-05, 2.9023e-06, -5.5656e-05, -3.9745e-05, 8.2728e-05, 0.00021615, 0.00016965, -0.00015047, -3.9212e-05, -4.1804e-05, 9.8943e-05, -3.77e-05, -2.1777e-05, -0.00010842, -0.0001125, -2.8089e-05, 0.000245, 0.00011698, 0.000137, -0.00011632, 3.8759e-05, -5.0384e-05, -5.6491e-05, 4.1859e-05, 0.0001051, -9.5909e-05, -8.2666e-05, 0.00014673, 0.00017377, -6.6786e-05, 7.6118e-05, -0.00016836, 0.00012437, 2.5725e-05, -6.2337e-05, -0.00015377, -2.7483e-05, -2.8455e-05, 0.00012458, 0.00015628, -2.4737e-05, -2.0912e-05, 4.3221e-05, -1.0155e-05, -9.9849e-05, 0.00014167, -9.9759e-05, -5.3681e-05, 2.4697e-05, 1.825e-05, 0.00019364, -7.2709e-05, 3.8335e-05, -1.9411e-05, -3.2116e-05, 5.1948e-05, -3.8287e-05, 9.7189e-05, -0.00011816, -0.0001609, 0.00011624, 4.9146e-05, 0.00010182, -1.4288e-05, 4.3292e-05, -1.9967e-05, -1.7368e-05, -1.9583e-05, -3.2833e-05, -5.3814e-05, -5.6208e-05, -5.3242e-05, 0.00024615, 9.7553e-05, 2.1844e-05, 3.0258e-05, -5.3699e-05, -2.5231e-05, -5.8324e-05, -4.705e-05, 3.6195e-05, -2.9441e-05, -6.9517e-05, 0.00012457, -3.5054e-05, 2.1987e-05, -1.5332e-05, -2.3047e-05],
|
||
[-3.6084e-05, -1.9307e-05, 6.647e-05, -6.9627e-05, 5.3718e-05, 8.6337e-05, 8.2142e-05, -8.1711e-05, 4.0206e-05, 7.8479e-05, -4.904e-05, 5.7454e-05, -0.00010018, -2.6148e-05, 7.1198e-05, 2.5683e-05, 0.00011929, 2.7861e-05, 3.2654e-06, -5.5574e-05, -2.4041e-05, -3.7016e-05, -0.00013309, 1.9238e-05, -2.7446e-05, -1.1994e-05, 3.5032e-05, 9.489e-05, 4.1828e-05, -3.4147e-05, 3.1692e-05, -0.00012748, -1.5841e-05, 4.7074e-05, -5.4219e-05, -2.7058e-05, 1.9573e-06, -4.2885e-06, 5.1784e-05, 9.7614e-05, 2.6206e-05, -3.8407e-05, -4.3621e-05, 6.1283e-05, -4.1485e-05, -1.8992e-05, -3.8766e-05, 2.4842e-05, 1.9431e-05, 5.7022e-05, 3.6943e-05, -2.2802e-05, 5.8533e-05, -3.8134e-05, -0.00010733, -2.1349e-05, 2.0213e-05, -1.0308e-05, -0.00013178, 9.2793e-06, -6.4061e-06, 0.00010489, -3.6972e-05, 1.9206e-05, -2.512e-05, 6.6678e-06, -5.3173e-05, 1.5596e-05, 4.2064e-05, -0.00011209, -8.0476e-05, 8.6804e-05, 8.6344e-05, 2.8719e-05, -5.3155e-05, -5.4571e-05, 2.774e-05, 3.129e-06, 1.8897e-06, -0.00012179, 6.684e-05, -0.00010634, 3.586e-05, 0.00015372, 9.3482e-05, -5.1253e-05, -1.1146e-05, -1.9744e-05, -7.8769e-05, -7.5893e-05, 1.3246e-07, -0.00019713, -1.3375e-05, -3.2244e-05, 4.5963e-05, 1.3631e-06, 6.1091e-05, -3.7064e-05, 5.3774e-05, 2.8715e-05, 4.3069e-06, -5.9399e-05, 9.4064e-05, -0.00012586, 5.0461e-05, 0.00013218, 9.0391e-05, -6.4299e-05, 6.1429e-05, 7.2397e-07, -6.3668e-05, 4.8759e-05, 1.3706e-06, -9.7973e-05, 2.9715e-05, -0.00017065, 5.6129e-07, 0.0001305, 3.9513e-05, -3.0858e-05, -8.0773e-05],
|
||
[-0.00010042, -7.5004e-05, 7.7579e-05, 0.0001506, 0.00010273, -1.3456e-06, -8.5138e-05, 9.5278e-06, -5.1251e-05, 2.1937e-06, -2.9907e-05, -1.7823e-05, 1.5921e-05, -4.262e-07, 7.5622e-05, 0.00012391, -3.7227e-05, -5.1852e-05, -8.036e-05, 7.6557e-06, -2.9341e-05, 8.2155e-05, -6.0163e-07, -9.0231e-05, -0.00014678, 5.8459e-05, 0.0001292, 6.8728e-05, -5.0835e-05, -4.9058e-05, 1.4667e-05, 2.2867e-06, -4.0793e-05, 3.1833e-05, -4.614e-05, -0.00013109, -4.5015e-06, 0.00013512, 8.2693e-05, 3.7213e-05, -0.00021402, 1.2161e-05, 9.9526e-07, -4.0751e-05, -5.3363e-05, 1.3589e-05, -3.4576e-05, -8.6226e-05, 0.00012833, 0.0001795, -7.6588e-05, -5.9447e-06, -3.3934e-05, 5.9031e-05, -2.0159e-05, 6.848e-06, -3.508e-05, -0.00010776, -6.0092e-05, -2.1592e-05, 0.00020857, 0.00013308, -0.00019039, -4.8312e-05, -4.4977e-05, 9.0492e-06, -5.3993e-05, 3.1276e-05, -3.2915e-06, -0.00013006, -6.2666e-05, 5.4667e-05, 0.00011703, 1.0892e-05, -0.00019162, 1.7056e-05, 2.9742e-05, 1.5551e-05, -4.5024e-05, -6.5835e-06, -0.00012256, -3.9207e-05, 5.772e-05, 0.00026173, 0.00011301, -5.0802e-05, -0.00012439, -0.00011512, -3.3744e-05, -3.5132e-05, -4.6346e-05, 1.503e-05, -7.9108e-05, -0.00013976, 0.00019174, 0.00023315, -3.2682e-05, -2.2277e-05, -0.0001316, -5.3704e-05, 4.6652e-06, -2.973e-06, -7.4267e-05, -5.3893e-05, -1.3168e-05, -7.309e-05, 0.00020791, 0.00015787, -6.9607e-05, -7.3262e-05, -1.4507e-05, 1.322e-05, -6.5931e-05, 8.7111e-05, -6.5268e-05, -9.1013e-05, -5.1961e-05, 0.00012231, 0.00015993, 5.6612e-07, -6.6483e-05],
|
||
[-0.01852, 0.033336, 0.06082, 0.040323, -0.049048, -0.063471, -0.041691, -0.04404, 0.011259, -0.02554, 0.043104, -0.028504, 0.02179, 0.044813, 0.072343, -0.0054581, -0.068821, -0.027964, -0.043244, -0.0078419, 0.02404, -0.035356, -0.00086043, 0.0096468, 0.029019, 0.067023, 0.05703, -0.043874, -0.075663, -0.046868, -0.018265, -0.0074627, -0.021262, -0.0082441, 0.0029956, -0.0089729, 0.061101, 0.099636, 0.012468, -0.10296, -0.052371, -0.027535, -0.029446, -0.014438, -0.020598, -0.0069193, -0.0068354, 0.046889, 0.095419, 0.11953, -0.07176, -0.097543, -0.038582, -0.011359, 0.0096414, -0.019378, -0.027302, -0.018977, -0.0097874, 0.052494, 0.13674, 0.079523, -0.12204, -0.086659, -0.050788, -0.0095706, -0.031867, 0.0065403, -0.013821, -0.025842, 0.039928, 0.078784, 0.14509, 0.015223, -0.15795, -0.078115, -0.035586, -0.0074434, -0.0031399, -0.0037907, -0.01703, -0.028687, 0.033231, 0.078113, 0.14322, -0.019232, -0.14759, -0.079879, -0.0083759, -0.0013328, -0.0069555, -0.013966, -0.0084517, -0.030636, 0.062565, 0.097484, 0.098393, -0.075766, -0.1345, 0.014089, -0.011156, -0.013224, 0.016021, -0.0092009, -0.026044, -0.0089943, 0.040512, 0.13766, 0.019532, -0.11369, -0.014675, 0.010069, -0.0027238, -0.029504, 0.023985, -0.030692, 0.00075273, 0.016509, 0.052598, 0.093807, -0.010161],
|
||
[0.02242, -0.01264, -0.054968, -0.096784, -0.029279, -0.02714, -0.0090863, -0.014365, -0.0036875, 0.046401, 0.069449, 0.046438, 0.054029, -0.014721, -0.062916, -0.098776, -0.045678, -0.010326, 0.0033233, -0.0034084, 0.018489, 0.06168, 0.030027, 0.056348, 0.02544, -0.0079353, -0.09041, -0.1292, -0.034537, -0.018949, -0.0010619, 0.013098, 0.032364, 0.050549, 0.03199, 0.050349, 0.05595, -0.021494, -0.10945, -0.097342, -0.069734, 0.00046789, 0.0088096, 0.021994, 0.002741, 0.039372, 0.046871, 0.065601, 0.050121, -0.016483, -0.12612, -0.1119, -0.047332, -0.017261, 0.012597, -0.007535, 0.0038006, 0.051789, 0.056093, 0.084082, 0.077149, 0.01105, -0.12129, -0.12084, -0.053177, -0.02708, -0.0075679, -0.016071, -0.019008, 0.030912, 0.061183, 0.067858, 0.11649, 0.051234, -0.062048, -0.12296, -0.11728, -0.00044317, -0.0022492, -0.027298, -0.0037413, 0.018339, 0.014062, 0.042777, 0.12122, 0.043922, -0.060791, -0.14711, 0.016829, 0.0097743, -0.026557, 0.01411, 0.0015912, 0.0048096, 0.029094, 0.022041, 0.11057, 0.028481, -0.10628, -0.035908, 0.013354, -0.0026337, 0.0037218, 0.012118, -0.017185, 0.03754, 0.021333, 0.037077, 0.034944, 0.0038125, -0.011495, -0.002531, 0.017794, -0.0060676, 0.0061802, 0.023088, -0.0090738, 0.039517, 0.034463, 0.032449, 0.034403],
|
||
[0.0068337, -0.018869, -0.059136, -0.028733, -0.048296, -0.013674, 0.02159, -0.011046, -9.2586e-05, -0.019605, -0.043554, -0.0067654, -0.020683, -0.030702, -0.028849, -0.017813, -0.045032, -0.06082, -0.010178, 0.015937, -0.016985, -0.040648, 0.062809, 0.03329, 0.0086341, -0.010323, -0.059033, -0.063911, -0.040962, -0.027001, -0.03499, -0.028182, -0.042998, 0.06917, 0.043704, 0.052829, 0.047981, -0.062747, -0.078758, -0.075128, -0.067144, -0.066726, -0.041696, -0.06075, 0.024188, 0.068641, 0.041599, 0.078907, 0.083979, -0.0038264, -0.12006, -0.11316, -0.13579, -0.093038, -0.094331, 0.039375, 0.0018503, 0.00098404, 0.043251, 0.1029, 0.10139, 0.098296, 0.0015172, -0.091353, -0.14409, -0.17601, 0.0027217, 0.005046, 0.013052, -0.022684, 0.0018963, 0.058561, 0.10082, 0.12841, 0.081889, 0.020432, -0.041168, -0.0055029, -0.0065943, 0.014863, 0.003731, -0.0055734, -0.0095154, -0.0085635, 0.013253, 0.048733, 0.069683, 0.046721, 0.01748, 0.01314, 0.0057339, -0.012004, 0.023956, -0.030001, 0.047563, 0.007726, 0.033238, 0.017011, 0.061534, 0.020213, 0.017305, 0.0022898, 0.0016835, 0.0010206, 0.017475, -0.01795, 0.0165, -0.011803, 0.0071376, 0.020111, 0.0066511, -0.035355, 0.027934, 0.0035907, -0.011547, 0.022731, 0.0063451, 0.063988, 0.03377, 0.019839, 0.040068],
|
||
[-0.091836, -0.046604, -0.041677, -0.03393, -0.035176, -0.0080454, -0.0090217, -0.021214, -0.062925, -0.05369, -0.061859, -0.06938, -0.020604, -0.034831, -0.019889, -0.011468, -0.0094848, -0.02506, -0.013132, -0.034374, -0.029389, -0.054679, -0.040921, -0.079026, -0.031301, -0.0071872, 0.0034458, -0.042066, -0.021032, -0.0012771, -0.005576, -0.049905, -0.067836, -0.02538, -0.060497, -0.095684, -0.066898, -0.065214, -0.042634, -0.077401, -0.069225, -0.046597, -0.048532, -0.039853, 0.058792, 0.01903, -0.024286, -0.032536, -0.054851, -0.02916, -0.01714, -0.025126, -0.021866, 0.028553, 0.039992, 0.097746, 0.075003, 0.074305, 0.046933, 0.098597, 0.06983, 0.076648, 0.055005, 0.03235, 0.096666, 0.010919, 0.022114, 0.052323, -0.012178, -0.010456, -0.01888, 0.00472, 0.002689, 0.018985, -0.0023285, 0.0062287, 0.029915, 0.035545, 0.031167, 0.023817, -0.02707, 0.012571, -0.010192, 0.038028, 0.021584, 0.004171, 0.0055754, 0.017283, 0.012313, 0.014889, 0.0026556, 0.0041491, 0.0089248, -0.035192, 0.014939, 0.014097, 0.0038995, 0.0038989, 0.017267, 0.034244, 0.049764, -0.0052189, 0.026331, 0.0018007, 0.040202, 0.008388, 0.0089671, 0.021012, 0.0053809, 0.011463, -0.0066134, 0.045841, 0.047592, -0.011382, -0.00070927, 0.0074075, 0.0019847, -0.030303, 0.018518, 0.026217, 0.034368],
|
||
[-0.027531, -0.04099, -0.026966, -0.012312, -0.039448, -0.036665, -0.037447, -0.022588, -0.062582, -0.033424, -0.0076373, -0.033316, -0.0039483, -0.016274, -0.012993, -0.034373, -0.034351, -0.051089, -0.046268, 0.0338, -0.0073587, 0.019133, -0.058298, -0.031083, 0.0083773, -0.037071, -0.023704, -0.039292, -0.048264, -0.012347, 0.035773, 0.037157, 0.02657, -0.037942, -0.024177, -0.031307, -0.054205, -0.067683, -0.053316, -0.010339, 0.029943, 0.014711, 0.049806, 0.052372, -0.10703, -0.045011, -0.092731, -0.085093, -0.06361, -0.0095235, 0.042742, 0.043444, 0.046036, 0.028779, 0.047907, -0.12009, -0.11013, -0.078798, -0.018737, 0.031174, 0.095075, 0.060365, 0.019221, 0.01389, -0.0076667, 0.016337, -0.0089402, -0.0095031, 0.069645, 0.10401, 0.05246, -0.026938, 0.0042842, -0.010856, 0.016053, -0.028949, 0.00023294, 0.10368, 0.050069, 0.036853, 0.0065038, 0.0055476, -0.0010844, -0.0013257, -0.0055543, 0.04533, 0.0065356, 0.00060779, 0.072039, 0.028969, 0.013967, -0.0072271, 0.0072232, 0.0088564, -0.012818, 0.0018159, -0.011049, 0.0081952, 0.01255, 0.030697, 0.067976, -0.02221, 0.017374, -0.0058382, -0.016933, -0.020607, -0.0037044, 0.0029398, 0.0096079, 0.0041619, 0.051669, 0.0039989, 0.031118, 0.026295, 0.017533, 0.025534, 0.015159, -0.0079481, 0.0038965, -0.0053933, 0.021361],
|
||
[0.012976, 0.019239, 0.015861, -0.050084, -0.01483, -0.042429, -0.054637, -0.087876, -0.026659, -0.01559, 0.036899, 0.024659, 0.0020171, 0.017922, -0.027324, -0.01318, -0.055753, -0.049085, -0.02237, -0.0042862, 0.041589, 0.026715, 0.03305, 0.0089521, -0.017401, 0.0075428, -0.059296, -0.055869, -0.05766, -0.042846, 0.014164, 0.016126, 0.045832, -0.034399, 0.024141, -0.034808, -0.040343, -0.071211, -0.066221, -0.021197, 0.040154, 0.026898, 0.041076, 0.013103, -0.054802, -0.036158, -0.02565, -0.031709, -0.071922, 0.0018536, 0.061357, -0.0047183, 0.040749, 0.013386, 0.022021, -0.071345, -0.032751, -0.061368, -0.077484, 0.040235, 0.068103, 0.052652, 0.03711, -0.0069502, 0.0099627, -0.013836, -0.10765, -0.055495, -0.03497, 0.011212, 0.071812, 0.073453, 0.011483, 0.0046876, -0.018293, 0.034171, -0.010281, -0.11953, -0.027929, 0.039183, 0.054784, 0.058364, 0.010348, 0.024383, -0.037225, 0.018329, -0.021362, 0.016318, -0.036989, 0.025345, 0.049929, 0.046243, -0.0049605, 0.003492, -0.044847, 0.0083152, -0.0013348, -0.031795, 0.0084112, 0.042995, 0.01037, 0.032727, 0.017614, -0.01788, 0.013044, 0.0031246, 0.017806, -0.0083911, 0.0067982, -0.013767, 0.056008, 0.046171, -0.0067631, -0.011002, 0.021424, 0.024102, 0.034702, 0.021782, -0.020309, -0.016831, -0.0089978],
|
||
[-0.00053289, 0.011812, -0.0097595, -0.0329, -0.040055, -0.087664, -0.054682, -0.012138, 0.0081353, 0.05825, 0.030708, -0.015345, -0.017994, 0.0049204, -0.013879, -0.030835, -0.057101, -0.032671, -0.003775, 0.046975, 0.027796, 0.0092523, -0.018921, -0.017058, -0.0026666, -0.03212, -0.044974, -0.055384, -0.0091233, 0.042053, 0.0059455, 0.0522, 0.013922, -0.019418, -0.0042121, -0.016059, -0.019873, -0.063211, -0.061902, 0.010728, 0.048801, 0.037393, 0.0072674, 0.01281, -0.0034511, 0.016898, -0.02259, -0.062363, -0.060955, 0.018029, 0.071601, 0.039035, 0.020919, 0.016562, -0.023867, -0.027629, -0.029462, -0.055111, -0.068953, -0.031776, 0.038109, 0.032616, -0.0056891, 0.0095691, -0.019287, 0.0062446, -0.028641, -0.044572, -0.056247, -0.03575, 0.073366, 0.067655, 0.026481, -0.022367, -0.0069125, 0.0098899, -0.013395, -0.059838, -0.055071, -0.057235, 0.026937, 0.056778, 0.045512, 0.01049, -0.021873, 0.00025674, -0.0091984, -0.003236, -0.098454, -0.056634, 0.040879, 0.053708, 0.021417, 0.03366, -0.024267, -0.039721, 0.025845, -0.0036737, -0.0019563, -0.092076, 0.0071538, 0.048235, 0.031954, 0.0039891, 0.013124, 0.011507, 0.0048599, -0.02807, -0.013715, 0.0044504, 0.011633, 0.016825, 0.04401, 0.043599, 0.010462, -0.011714, 0.02335, 0.025825, -0.040209, 0.022222, -0.018984],
|
||
[-0.00012902, -6.2039e-06, 3.2702e-05, -3.1071e-05, -7.8012e-05, -1.2261e-06, -9.3429e-06, 7.5834e-05, 1.8838e-05, 3.8242e-05, -5.8627e-05, 1.2707e-05, -2.0943e-05, 7.2618e-05, -0.0001086, -2.8985e-05, -0.00016736, 5.8134e-05, 0.00011172, 1.7755e-05, -9.4519e-05, 2.1444e-05, 4.6865e-05, -4.6388e-05, -8.9561e-06, 2.9043e-05, -8.1943e-05, -6.1236e-05, -1.1153e-05, 0.00010189, -2.2193e-05, -2.2869e-05, -0.0001151, -4.9758e-05, -1.9393e-05, -9.4734e-05, -3.0802e-05, -1.1207e-05, -8.8749e-05, 0.00013301, -3.5925e-05, 0.00013742, -0.00011808, 2.2415e-05, 2.3854e-05, -4.5322e-05, 3.4573e-05, -4.6143e-05, -7.5349e-05, 8.1388e-05, 3.3797e-05, 8.4447e-05, -9.0275e-06, 7.0081e-05, -6.146e-05, -5.3968e-05, 2.2718e-05, -0.00015616, -5.6949e-05, -7.4116e-05, -6.3488e-05, 7.5446e-05, 4.4607e-05, -0.0001045, 9.5752e-05, -4.4579e-05, 9.0415e-05, 7.3014e-06, -6.6094e-05, -0.00017393, 0.00014376, 0.00014113, -1.417e-06, 9.806e-06, 6.5253e-05, -0.00013048, 3.4993e-05, -0.00010216, -8.422e-05, -9.7025e-06, -8.5183e-05, -1.8575e-05, 3.8638e-05, 7.925e-05, -9.6774e-05, -6.2754e-05, 0.00014663, 1.7007e-05, 5.5151e-06, -5.1712e-05, -0.00014949, 4.8591e-05, 3.882e-05, 4.357e-05, 1.1474e-05, 7.3157e-05, -3.8172e-06, -6.3708e-05, 7.266e-05, -0.00010594, -6.3345e-05, -5.4025e-05, 8.3061e-05, 0.00010798, -1.84e-05, -4.9804e-05, 3.6573e-05, -4.7482e-05, 1.7943e-05, 4.769e-05, -1.2466e-05, -0.00019635, 2.4802e-06, 0.00015032, 9.532e-05, 2.4342e-05, 8.4135e-06, -1.0238e-05, 1.764e-05, -4.9212e-05, -6.478e-06],
|
||
[-2.1082e-05, -8.3621e-05, -7.9324e-05, -5.637e-05, -2.5225e-05, 6.7038e-05, 1.8979e-05, -3.6384e-05, 6.3535e-05, 5.8201e-05, 4.158e-05, -8.0246e-05, -7.7025e-05, 8.0153e-05, -0.00014514, -2.5225e-05, 0.00016502, 2.6271e-05, 2.5316e-05, -6.7103e-05, -1.1804e-05, -3.7281e-05, 5.2411e-06, 1.9188e-06, -4.1461e-05, 2.4848e-05, -0.00010693, 2.6295e-05, 0.00024743, -1.3795e-05, 5.7822e-05, -6.3546e-05, 7.9185e-06, -2.9438e-05, -5.1192e-05, -5.2297e-05, -0.00015826, 4.471e-05, 0.00010007, -1.5725e-05, 0.00011394, -1.2177e-05, -6.2006e-06, 1.6735e-05, -3.2321e-05, 7.0455e-05, -1.1204e-05, -3.7759e-05, -9.6707e-05, 8.528e-05, 0.00010626, -7.906e-05, 8.7526e-05, -6.0073e-05, 2.9006e-06, -2.2316e-05, -6.2577e-05, 5.1835e-05, -7.8179e-05, 2.8747e-05, 9.1197e-05, -8.5285e-05, 1.5505e-05, -4.3118e-05, 5.1102e-05, -2.5996e-05, 9.5403e-06, 5.4456e-05, -0.00012492, -8.4469e-05, -9.0009e-05, 4.6173e-05, 7.1313e-05, -0.00011471, -1.4347e-05, 9.7454e-05, -4.1038e-05, 4.6701e-05, -3.9864e-05, 2.8496e-05, -9.0668e-05, -4.4743e-05, 2.8884e-05, 0.00010541, 3.8505e-05, -0.00015699, 7.3335e-06, 4.9803e-05, 4.7615e-05, 2.1925e-05, -6.863e-05, -0.00015531, -3.1002e-05, 6.3968e-05, -3.1107e-05, 9.1935e-05, 2.6946e-05, -5.4283e-05, 4.0195e-05, -2.9248e-05, 2.7238e-05, 9.8186e-05, -4.2389e-05, 4.3793e-05, 1.6481e-05, 9.6248e-05, -3.3119e-05, 6.7699e-06, 1.8953e-05, 2.9371e-05, 1.8804e-05, -0.00019186, -5.3615e-05, -6.4625e-05, 6.2102e-05, 0.00011143, 2.7598e-05, -2.5795e-05, 6.4102e-06, 4.3683e-06, -6.8056e-06],
|
||
[8.7288e-05, -0.00016058, 4.24e-05, -5.4107e-05, 3.0344e-05, 8.8236e-05, 0.00018665, -1.0618e-05, 4.8858e-05, 2.5609e-05, -0.00010411, 7.9334e-05, 0.00011912, -0.00017618, -0.00011562, -0.00015415, 0.00014088, 0.00016468, 0.00011508, -0.0001571, 0.00010763, -9.1181e-05, -5.5087e-05, 5.9474e-06, -8.6291e-05, -0.0001242, -0.00010347, 9.36e-05, 0.00026255, 6.4223e-06, 7.2573e-05, -4.0335e-05, 6.7906e-05, -2.9378e-05, -2.3486e-05, -8.391e-05, -0.00020864, -6.7756e-05, 0.00015157, 0.00017534, 9.5333e-05, -7.862e-05, -1.9996e-05, -3.9619e-05, -0.00010062, -4.9007e-05, -3.336e-05, -6.023e-05, -0.00015274, 5.8063e-05, 0.00017946, -1.3679e-05, -7.8757e-05, 2.3928e-06, -2.3839e-05, -9.2483e-05, 2.977e-05, -0.00014104, -4.8579e-05, -0.00017751, 0.00018735, 0.00010606, 0.00010934, 4.3269e-06, -7.1744e-05, 7.0321e-05, -8.9326e-05, -3.4592e-05, -0.00011019, -0.00019881, 5.2019e-07, 8.541e-05, 0.00020005, -2.2823e-05, -6.6226e-05, -1.4683e-05, -9.083e-05, -7.0533e-05, -4.3155e-06, -6.6612e-05, -0.00012963, -8.4206e-05, 0.00019016, 4.6518e-05, 6.503e-05, 2.5248e-05, 4.9507e-05, 5.4034e-05, -8.5821e-05, -9.1441e-05, -0.00013512, -6.0564e-05, 2.1194e-05, 0.0001521, 0.00017075, -9.0845e-05, 5.4303e-05, 0.0001018, -6.0323e-05, -9.4463e-05, -3.224e-05, -0.0001201, -0.00012404, 4.4631e-05, 5.2507e-05, 0.00017357, -7.696e-06, -2.871e-06, -3.4926e-05, 6.2447e-05, -0.00017904, -2.0437e-05, -0.00018575, -0.00012522, -2.4217e-05, 0.00014052, -8.2035e-07, 8.7476e-05, 2.4935e-05, 6.4846e-05, -6.3934e-05],
|
||
[3.5395e-05, -6.8076e-05, -6.0927e-05, -0.00015316, 7.348e-05, 9.7564e-05, -1.245e-05, -1.4501e-05, -7.3971e-05, -4.034e-06, -3.8655e-05, 1.4379e-05, 3.4687e-06, -0.00015845, -7.2931e-05, -0.00011775, 7.4048e-05, 0.00013239, 4.7082e-06, 8.9098e-05, -3.4631e-06, 5.0421e-05, 2.6443e-05, 8.6583e-06, -3.7941e-05, -0.00013987, 4.0145e-05, -5.4758e-05, 2.3031e-05, 1.5356e-05, -7.6915e-07, 2.645e-05, 3.4036e-06, 3.9163e-05, 0.00015363, 3.3088e-05, -0.00016826, -0.00014952, 3.5498e-05, 4.8879e-06, 4.927e-05, 3.2068e-06, 6.9986e-07, -5.7017e-05, 0.00012398, 2.8576e-05, 4.4997e-05, -7.6582e-05, -0.00017982, 7.7914e-05, 9.1821e-05, 2.0136e-05, 5.9721e-05, -9.1171e-06, 2.2421e-05, 9.2992e-05, 1.5505e-05, 7.2487e-05, -8.918e-05, -0.00025973, 3.0932e-05, 9.1342e-05, 2.3131e-05, 1.2247e-05, 4.2369e-05, 5.3252e-05, 0.00012343, 8.7665e-05, 1.294e-05, -8.4931e-05, -0.00012908, -1.2682e-06, 0.00010437, 0.00013645, 1.6058e-05, -4.4318e-05, -7.4065e-05, 8.9411e-05, 4.046e-05, 4.7208e-06, -1.2597e-05, -0.00010568, -9.4992e-05, 2.7651e-05, 7.6097e-05, -1.9995e-06, 6.7764e-05, 3.5255e-05, 3.2643e-05, 2.144e-05, 3.8888e-05, -0.00012811, -0.00019783, -7.7663e-05, 0.00014427, -2.1274e-05, 0.0001232, 1.0103e-05, -1.6055e-05, 5.7715e-05, -5.6047e-05, -1.7521e-05, 2.7609e-05, -0.00021782, -0.00010669, 0.00020792, 0.00011484, 1.3285e-06, 3.8059e-05, -1.2194e-05, 3.8422e-05, 0.00012682, -4.4552e-05, -3.6963e-05, -0.00019868, -7.997e-05, 3.4789e-05, 0.0001943, -9.2258e-06, -2.1814e-07, 7.6669e-05],
|
||
[-0.040989, -0.072593, -0.020478, -0.025778, 0.022398, 0.003098, -0.025475, 0.0014983, 0.013473, 0.015344, 0.013699, -0.042586, -0.041387, -0.088633, -0.058018, 0.015074, 0.0039592, -0.0024599, 0.018532, -0.0072521, 0.039351, -0.010584, 0.031659, 0.004946, -0.023228, -0.098922, -0.083752, -0.038393, -0.0084343, 0.0076729, 0.048785, 0.017104, 0.020754, 0.049112, 0.05764, 0.019839, -0.0027111, -0.10015, -0.13202, -0.062978, 0.025824, 0.01588, 0.023625, -0.0046384, 0.026114, 0.091319, 0.15889, 0.077891, 0.095775, -0.1244, -0.14161, -0.07551, -0.02844, 0.021985, 0.015549, -0.0023889, 0.034888, 0.071073, 0.14647, 0.20035, 0.16005, -0.08676, -0.13618, -0.015931, 0.005888, 0.008444, -0.095816, -0.069713, -0.017803, 0.02785, 0.099568, 0.18576, 0.10917, -0.064365, -0.053216, -0.029503, -0.0098623, -0.10681, -0.14826, -0.11347, -0.064061, 0.0027157, 0.09181, 0.11261, 0.043784, -0.02707, -0.022521, -0.010411, -0.062429, -0.078463, -0.099127, -0.097932, -0.053659, 0.020027, 0.097468, 0.045269, 3.4983e-05, 0.00096206, -0.0042047, 0.012971, -0.018376, -0.044257, -0.07615, -0.03979, -0.032111, 0.060509, 0.066025, 0.043696, -0.0062411, 0.0065601, 0.070877, 0.055992, 0.017987, -0.0038242, 0.01131, -0.010488, 0.020902, -0.0025447, 0.059004, -0.013398, 0.0035443],
|
||
[0.030346, 0.0060729, -0.039343, 0.015518, 0.026091, 0.057075, -0.007681, -0.0080709, 0.016419, 0.002842, -0.013731, -0.019522, -0.016221, 0.014954, -0.034022, -0.013762, 0.024753, 0.03953, 0.0045833, 0.0083765, 0.036851, 0.055084, -0.056976, -0.029318, -0.025595, -0.020946, -0.05804, -0.013577, -0.010021, -0.0018451, 0.020025, -0.0075917, 0.015631, -0.082666, -0.080551, -0.050441, -0.072777, -0.062636, -0.071289, -0.044269, -0.01929, -0.00063644, 0.035648, 0.0080666, -0.069973, -0.072406, -0.062813, -0.060859, -0.10297, -0.074727, -0.077151, -0.089632, -0.060208, -0.036005, 0.03058, 0.018237, 0.02174, 0.026791, 0.078395, 0.079774, 0.048845, -0.011284, -0.042893, -0.060469, -0.077717, -0.041768, 0.11045, 0.084453, 0.058717, 0.11797, 0.15001, 0.14682, 0.13949, 0.071901, 0.022952, -0.037573, -0.064497, 0.10514, 0.014296, 0.047946, -0.018433, -0.0048603, 0.039432, 0.090925, 0.075278, 0.081171, 0.0073834, 0.00032987, 0.022814, -0.0086828, -0.048521, -0.019109, -0.065561, -0.080183, 0.0032263, -0.00099659, 0.052424, 0.022386, 0.03912, -0.031164, -0.06394, -0.079117, -0.078917, -0.058881, -0.10111, -0.051141, 0.014884, -0.014461, 0.036092, 0.039866, -0.028625, 0.023879, -0.025206, -0.023467, -0.076188, -0.040233, -0.051996, -0.040468, -0.026854, 0.027, 0.070256],
|
||
[-0.002803, 0.040759, 4.1768e-06, 0.02026, -0.0059647, 0.05181, 0.026346, 0.012265, -0.010147, -0.033548, -0.019732, -0.0022578, -0.016262, -0.017314, 0.014344, 0.03797, -0.013837, 0.016742, -0.030123, -0.027736, -0.0022683, -0.019176, -0.015693, 0.013114, -0.036321, -0.063043, 0.0049614, -0.036805, -0.037438, -0.023603, -0.0072298, -0.059869, -0.041756, -0.034104, -0.037695, -0.019866, -0.037321, -0.029615, -0.062379, -0.077726, -0.06433, -0.067627, -0.066911, -0.051814, -0.064044, -0.040498, -0.068571, -0.064782, -0.077465, -0.059301, -0.045729, -0.033973, -0.014237, -0.0051404, -0.015748, -0.12091, -0.11592, -0.046036, -0.026967, -0.0013909, 0.070814, 0.069292, 0.071817, 0.074605, 0.095415, 0.10749, -0.095996, -0.0040976, 0.045306, 0.075554, 0.11846, 0.084776, 0.084264, 0.10125, 0.073977, 0.080838, 0.054211, 0.020058, 0.071877, 0.073614, 0.09027, 0.047956, 0.043147, -0.0011986, -0.013094, -0.030256, -0.0095367, 0.016709, 0.061142, 0.081217, 0.010386, 0.037778, -0.018148, -0.02519, -0.047772, -0.061855, -0.053653, -0.051552, -0.034374, 0.019703, 0.040215, 0.0094463, -0.022748, 0.006918, -0.015913, -0.027028, -0.014329, -0.027715, -0.062068, -0.062015, -0.021184, -0.039143, 0.02283, 0.0032039, 0.000343, -0.012231, -0.0032112, -0.025263, -0.0022995, -0.02705, -0.039549],
|
||
[0.065221, 0.025071, 0.019912, 0.019313, 0.022457, 0.038123, 0.0055997, -0.012446, -0.020127, -0.019608, -0.05192, -0.0038021, 0.02754, -0.031394, -0.018499, -0.028503, 0.010984, -0.0021915, -0.019643, -0.042421, -0.081508, -0.072244, -0.0017842, -0.010893, -0.00948, -0.0041071, -0.031711, -0.025317, -0.048905, -0.039098, -0.066267, -0.05717, -0.12354, 0.001926, 0.010455, -0.047326, -0.014954, -0.014952, -0.060399, -0.051482, -0.056999, -0.056279, -0.0082532, -0.004728, -0.024889, -0.046325, -0.02707, -0.035511, -0.041562, -0.042411, -0.058674, 0.022288, 0.042564, 0.091511, 0.10753, -0.02319, -0.016617, -0.083807, -0.058259, -0.070742, 0.025574, 0.11914, 0.12549, 0.12136, 0.11708, 0.086423, -0.00030667, -0.03844, -0.049405, -0.092975, -0.03285, 0.10353, 0.14958, 0.086084, 0.035831, 0.024743, 0.036726, -0.0024422, 0.00040113, -0.052519, -0.04457, -0.034619, 0.049819, 0.0024548, 0.026916, 0.00043142, 0.012654, -0.051856, 0.030047, 0.00061641, -0.031155, -0.044323, 0.0045373, -0.0071958, 0.0063658, 0.018539, -0.030331, -0.031774, -0.0088228, -0.015163, -0.058176, -0.0040183, 0.018492, 0.0022898, -0.02563, -0.031897, 0.020493, -0.0060867, 0.0079195, -0.020677, -0.031625, -0.028354, -0.05878, 0.016741, 0.026376, 0.015891, 0.04844, -0.0032501, 0.0044459, -0.016656, 0.0096496],
|
||
[0.038712, 0.012491, 0.025252, -0.00063429, 0.035928, 0.023763, 0.040775, -0.023415, -0.04864, -0.050013, -0.064429, 0.02178, 0.049862, -0.018289, 0.03589, 0.020066, 0.049563, 0.0077522, -0.055571, -0.068511, -0.057717, -0.034901, 0.021956, 0.035415, 0.026124, 0.0017095, 0.034316, -0.027522, -0.099289, -0.072699, -0.040034, -0.0025525, -0.0029101, 0.021515, 0.040227, 0.036476, 0.031515, -0.0086616, -0.13841, -0.11459, 0.01045, -0.0035536, 0.071253, 0.042724, 0.0093417, -0.01287, 0.032546, -0.015625, -0.11666, -0.14109, 0.067348, 0.076093, 0.11562, 0.050225, 0.042124, 0.021445, -0.0084783, -0.0121, -0.030956, -0.11121, 0.082861, 0.1479, 0.10501, 0.046748, 0.019903, 0.03052, 0.018229, -0.010089, 0.0013081, -0.046366, 0.04446, 0.10594, 0.079519, 0.01936, -0.0052888, -0.072262, -0.063107, -0.0032667, 0.03186, 0.018646, -0.012065, 0.084958, 0.048023, 0.0056015, -0.071195, -0.070333, -0.10991, -0.11771, 0.019377, 0.026707, 0.073584, 0.054153, 0.025448, 0.0040382, -0.054679, -0.089933, -0.071996, -0.06277, -0.065226, 0.038396, 0.016152, 0.027023, 0.082904, 0.047187, -0.00079516, -0.095891, -0.049462, -0.072305, -0.01168, -0.030194, 0.014156, 0.05086, 0.03919, 0.061499, 0.022736, 0.015951, 0.015999, -0.043223, -0.024248, 0.040112, 0.060525],
|
||
[0.0024769, 0.023654, 0.0065905, 0.029715, 0.016982, 0.035002, 0.01506, 0.0023775, 0.015463, 0.0082508, 0.045204, 0.029099, 0.037371, 0.048547, 0.039675, 0.025868, 0.014832, -0.0075821, -0.02093, -0.032499, -0.001802, 0.043938, 0.028726, 0.0010439, 0.042588, 0.017848, 0.0022798, -0.0045873, -0.0088422, -0.040477, -0.084833, -0.075254, -0.04364, 0.048831, 0.031624, 0.01249, -0.044447, -0.023794, -0.094393, -0.072032, -0.064708, -0.064217, -0.11171, -0.09873, 0.034791, -0.0062696, -0.037764, -0.066032, -0.085655, -0.056461, -0.067826, -0.060588, -0.060359, -0.075101, -0.11166, -0.049683, -0.032238, -0.086484, -0.054274, 0.010713, 0.051484, 0.072737, 0.066174, 0.047053, 0.014573, -0.037236, -0.038926, -0.045893, 0.01037, 0.11284, 0.12481, 0.11598, 0.11519, 0.1144, 0.11283, 0.072652, 0.069633, 0.012081, -0.012907, 0.078197, 0.084842, 0.025449, 0.033318, -0.0032467, -0.00077916, 0.019237, 0.040468, 0.081825, 0.032173, 0.0072246, 0.035146, 0.032218, -0.004157, -0.032284, -0.048064, -0.036308, -0.0088796, -0.050648, -0.00021, 0.029706, 0.032099, 0.00779, -0.0059912, -0.037978, -0.032943, -0.074828, -0.086594, -0.070295, -0.021598, -0.034675, 0.03915, 0.016075, 0.0072486, -0.021666, -0.015742, -0.057129, -0.069826, -0.043047, -0.00021744, 0.0031614, -0.005484],
|
||
[0.0078584, 0.010418, 0.015826, 0.0278, 0.037504, 0.02189, 0.038405, 0.033824, -0.015111, 0.020273, 0.032943, -0.0012524, -0.020725, -0.012427, 0.015268, 0.015474, 0.021472, 0.031768, 0.012185, 0.0036407, -0.0025327, 0.0078854, -0.042336, -0.056683, -0.026575, -0.028598, -0.042658, -0.041424, -0.036798, -0.038263, 0.0019027, 0.0093814, 0.0084716, -0.045038, -0.075792, -0.059375, -0.061832, -0.043299, -0.043801, -0.051618, -0.065611, -0.047247, -0.057968, -0.0096927, -0.00097814, -0.0011438, -0.032865, -0.035434, -0.072329, -0.040236, -0.06695, -0.082126, -0.062804, -0.081492, -0.067532, 0.094558, 0.05016, 0.085679, 0.046323, 0.055993, 0.048912, 0.031195, -0.0026454, -0.040344, -0.097033, -0.10039, 0.073981, 0.044681, 0.04953, 0.11289, 0.077053, 0.087639, 0.090661, 0.083978, 0.064049, 0.024327, -0.04232, -0.0021389, 0.0059539, 0.0021759, -0.0093588, 0.02429, 0.026077, 0.078773, 0.091982, 0.064361, 0.081984, 0.028646, -0.042605, -0.039659, -0.023542, -0.044811, -0.037047, -0.027701, 0.003355, -0.0131, 0.059271, 0.046282, 0.087355, -0.05379, -0.052156, -0.056795, -0.021944, -0.031144, -0.032409, -0.013571, -0.031194, -0.024378, 0.029149, 0.030673, -0.022978, -0.011077, -0.0055112, -0.016195, -0.010223, -0.0017694, -0.016982, 0.02312, -0.0046449, -0.0051817, -0.022733],
|
||
[-0.0090421, 0.017453, -0.017832, -0.0037291, 0.039065, 0.023173, 0.017934, 0.013098, 0.045168, 0.042194, 0.040022, -0.12965, -0.098696, -0.057792, -0.036039, -0.028194, -0.0054252, -0.0069512, 0.0207, -0.027659, 0.015383, 0.029921, -0.10604, -0.13745, -0.10216, -0.082045, -0.062542, -0.0060266, -0.034856, -0.019904, 0.00031968, -0.03239, 0.024398, 0.10509, -0.013047, -0.077744, -0.12223, -0.1125, -0.074496, -0.056697, -0.041104, -0.03665, -0.010932, -0.01645, 0.15622, 0.096727, 0.054042, -0.003099, -0.046208, -0.065923, -0.065579, -0.059507, 0.0088063, -0.037443, -0.017903, 0.092956, 0.14429, 0.15461, 0.10488, 0.07465, 0.031359, -0.044524, -0.028003, -0.074286, -0.017952, -0.023443, 0.00067037, 0.048256, 0.064112, 0.12606, 0.11963, 0.10488, 0.033679, -0.06098, -0.043664, -0.023617, 0.010589, -0.042281, -0.020904, 0.0042455, -0.00023867, 0.036855, 0.064226, 0.058947, -0.0015714, -0.0095707, -0.013148, 0.01221, -0.05139, -0.055206, -0.033651, -0.030728, -0.0069396, -0.011576, 0.0073686, 0.069747, -0.013521, 0.006596, -0.019525, -0.017644, -0.036983, -0.032526, -0.059542, -0.021433, -0.036208, 0.00082772, 0.048327, 0.057951, 0.0015733, 0.0068908, 0.044822, -0.0029222, 0.0015559, 0.015954, -0.0256, 0.047827, 0.0062289, 0.021267, 0.057036, 0.018964, -0.042249],
|
||
[0.082567, 0.055833, 0.037656, -0.025001, -0.028413, -0.050162, -0.064109, -0.085323, -0.013537, 0.013709, 0.018599, 0.075347, 0.062559, -0.031285, -0.042803, -0.031429, -0.073827, -0.024222, 0.0076413, 0.024212, -0.059471, -0.03088, 0.067967, 0.040823, 0.010014, -0.076238, -0.0682, -0.03367, 0.0026546, -0.046483, -0.013765, -0.027635, -0.061826, 0.031594, 0.021366, -0.013394, -0.094758, -0.049119, -0.045552, -9.1106e-05, 0.0079383, 0.011255, -0.0065767, -0.047662, 0.044446, -0.00093206, -0.0095391, -0.050733, -0.086831, 0.032526, 0.092702, 0.0094084, -0.023484, 0.0092934, 0.022791, 0.039003, -0.0086098, -0.034768, -0.031884, 0.066429, 0.15091, 0.13216, -0.059201, -0.13696, 0.048045, 0.098721, 0.012407, 0.015257, 0.05201, 0.10321, 0.042459, 0.088724, 0.068939, 0.017008, -0.085318, -0.018126, 0.11519, -0.025017, 0.019451, 0.022495, 0.0526, 0.033867, 0.032217, 0.05936, 0.014141, -0.025091, -0.026683, 0.040958, -0.050856, 0.0049324, -0.00049817, 0.016553, -0.005958, 0.045307, 0.057898, 0.042726, -0.0017969, -0.014382, -0.037002, 0.025111, -0.00016282, 0.024515, 0.021259, 0.024401, 0.036876, 0.039423, 0.040371, -0.00092562, -0.0052629, 0.009327, -0.011241, 0.0019913, -0.025005, -0.0056086, 0.014352, 0.050873, 0.10004, 0.064681, 0.046196, 0.069301, 0.02951],
|
||
[0.031888, 0.017285, 0.042745, 0.031228, 0.025514, 0.023254, 0.017245, 0.0091144, 0.061255, 0.028608, -0.017058, 0.03126, -0.022799, -0.027838, -0.031938, -0.0079427, 0.0022782, -0.0029791, 0.014262, -0.011888, 0.1018, 0.01749, -0.02166, -0.0295, -0.017844, -0.0065925, -0.055318, -0.0090733, 0.00041947, -0.056493, -0.073202, -0.046645, 0.062082, -0.031339, -0.06541, -0.02626, -0.028514, 0.010511, 0.026139, 0.033081, 0.01041, 0.0083594, -0.066648, -0.061127, -0.06066, -0.029413, -0.014383, -0.061113, -0.086766, -0.11103, -0.095559, -0.069648, -0.044428, 0.025756, 0.006956, -0.081588, -0.10519, -0.071336, 0.00057042, 0.013813, 0.02671, 0.049812, 0.093582, -0.021925, -0.055498, 0.006515, -0.054554, 0.0083049, 0.13185, 0.12213, 0.011707, -0.025907, -0.02482, 0.054011, 0.13634, 0.12397, -0.0094684, 0.08236, 0.12982, 0.038245, -0.028863, -0.012402, -0.029029, 0.0060992, -0.0040297, -0.046885, -0.0033331, 0.055326, 0.13031, 0.014467, -0.059527, -0.024457, -0.0011607, 0.049887, -0.021189, 0.0053423, 0.019767, -0.075051, 0.055581, 0.11044, 0.071965, -0.090663, -0.035117, 0.048069, 0.041134, 0.083494, 0.029111, 0.031267, -0.039508, 0.027491, 0.092284, 0.066698, 0.0046771, -0.057628, 0.035842, 0.082678, 0.097332, 0.050682, -0.010181, -0.033101, 0.0060053],
|
||
[-0.017681, 0.0050575, 0.025216, -0.0050258, -0.057033, -0.052107, -0.045597, -0.0066502, -0.004089, -0.0036027, 0.054265, -0.041055, -0.0014473, 0.034597, 0.060836, 0.029247, -0.07214, -0.079673, 0.0063944, -0.00075079, -0.0024171, 0.00014142, -0.071901, -0.07131, -0.070947, -0.033682, 0.059046, 0.098589, -0.0012454, -0.018862, 0.070385, -0.0038593, -0.035716, -0.028904, 0.022169, -0.005638, 0.015212, -0.077801, -0.029804, 0.019462, 0.066876, 0.074347, 0.075531, -0.047355, 0.038231, -0.014508, -0.088435, -0.10062, 0.067343, 0.024924, -0.092546, -0.014998, 0.02795, 0.066064, 0.02189, 0.13086, 0.090325, -0.051344, -0.10634, 0.041577, 0.18956, 0.15362, -0.1177, -0.063931, 0.053765, 0.012821, 0.16702, 0.091883, 0.046064, 0.02516, 0.071125, 0.035423, -0.0028389, -0.062881, -0.078524, 0.0060489, 0.031324, 0.0578, 0.035259, -0.015526, -0.051491, -0.070998, -0.08834, -0.063258, 0.00058158, -0.016399, 0.063472, 0.059448, -0.072023, -0.020115, 0.01927, 0.043045, 0.00016106, 0.009692, 0.0068556, 0.049381, -0.0045235, 0.032978, 0.031253, 0.0569, 0.028263, 0.035152, 0.035462, 0.039852, 0.019659, 0.033958, -0.01984, 0.059037, 0.009726, -0.014938, 0.019067, 0.070682, 0.067102, 0.069013, 0.010045, -0.0063893, 0.0050956, -0.045818, 0.058781, 0.015059, 0.0093869],
|
||
[-0.059247, 0.0021433, 0.0030538, 0.0058555, -0.08563, -0.071756, -0.04245, -0.042689, -0.01111, -0.0079405, 0.027079, -0.027547, 0.039878, -0.032474, -0.046922, 0.033618, -0.034288, -0.043372, 0.041614, -0.043095, -0.010111, 0.022895, 0.075387, 0.009213, -0.088278, 0.037398, -0.0022263, 0.0099245, -0.02003, 0.056811, 0.0073928, -0.078186, -0.0081464, 0.079204, -0.049194, -0.10782, -0.041094, 0.036883, 0.037669, 0.01322, 0.053408, -0.026734, -0.12858, 0.021075, 0.12904, 0.017327, -0.14567, -0.082472, 0.058957, 0.11486, 0.1286, 0.095519, -0.061066, -0.0067977, 0.11055, 0.11156, 0.11891, 0.017852, 0.00062817, -0.0056022, 0.077625, 0.060407, 0.059517, 0.027002, -0.044412, -0.02565, 0.068363, 0.063021, 0.059444, 0.010334, 0.042111, 0.015415, 0.0023344, -0.027063, -0.053547, 0.024499, -0.052268, 0.088857, 0.023558, -0.013779, -0.023579, -0.062755, -0.078234, -0.044287, -0.055979, 0.032155, 0.054401, 0.04823, 0.045141, 0.038705, 0.085911, 0.0043579, 0.012844, 0.010883, 0.028932, 0.064841, 0.008315, 0.028737, 0.052023, 0.033414, -0.001552, 0.042607, 0.022302, 0.022174, -0.019436, -0.00050396, -0.005214, 0.030174, -0.004641, 0.049756, 0.0048322, 0.052626, -0.004347, 0.024476, -0.0014551, 0.0025588, 0.023351, 0.00075945, 0.067061, 0.06672, -0.03618],
|
||
[-0.057112, -0.031889, -0.020365, 0.0031374, 0.013437, 0.0059513, 0.0080221, -0.0033222, -0.0048278, -0.026659, -0.062783, -0.076967, -0.033637, 0.02637, 0.0139, 0.041921, 0.05048, 0.040062, 0.044565, 0.0069941, 0.030937, -0.0062436, -0.046321, 0.011237, 0.036259, 0.0082963, -0.10315, -0.12978, -0.10762, -0.028238, 0.077775, 0.057645, 0.020682, 0.015699, 0.023615, -0.041772, -0.12747, -0.031283, -0.012702, -0.031003, -0.053233, -0.11695, 0.019915, 0.030434, 0.034287, -0.042572, -0.084216, 0.069861, -0.012205, -0.018891, 0.01964, 0.077725, -0.080366, -0.015106, 0.034588, 0.11598, -0.02265, -0.10542, 0.064909, -0.0032238, 0.10106, 0.028245, 0.13831, -0.029406, -0.1748, 0.10111, 0.10656, 0.0077236, -0.14344, 0.050109, 0.086716, 0.09309, 0.1245, 0.12884, -0.07042, -0.12323, 0.070753, 0.12051, 0.010234, -0.097733, -0.059331, 0.058783, 0.085326, 0.076776, 0.029787, -0.018648, -0.021041, -0.00034305, 0.084298, 0.056835, 0.053326, -0.039639, -0.0050146, 0.013779, -0.010486, -0.0072346, -0.01195, -0.0025969, -0.039482, 0.09283, 0.042943, -0.0075415, 0.018317, -0.03913, -0.041539, -0.027052, -0.042059, 0.051858, -0.038626, 0.089622, 0.071389, 0.086449, 0.055651, 0.013639, 0.017996, -0.018016, 0.063459, 0.053364, 0.074742, 0.070779, 0.038021],
|
||
[0.016782, 0.022184, -0.01761, -0.083789, -0.061012, -0.049437, -0.016011, -0.0012931, 0.0181, 0.042203, 0.091115, -0.030973, -0.0032195, 0.001676, -0.014121, -0.048982, -0.010745, -0.097652, -0.082419, -0.0086676, 0.038493, 0.038422, -0.023684, -0.042571, 0.027674, -0.0045846, -0.029036, -0.014288, -0.036492, -0.073188, -0.058474, 0.061157, 0.037513, -0.044263, 0.03708, 0.008866, 0.00080273, -0.029635, -0.06189, 0.0038986, -0.055589, -0.064826, -0.040454, 0.071936, 0.051468, 0.01663, -0.040009, -0.019116, 0.091905, 0.068371, -0.035382, -0.031696, -0.023951, -0.0394, 0.037638, 0.11971, 0.089542, -0.048322, -0.10362, 0.03196, 0.22708, 0.096993, 0.02671, -0.043789, -0.030431, -0.036199, 0.11281, 0.058354, -0.064975, -0.065781, -0.0084482, 0.091242, 0.12718, 0.076435, 0.052637, -0.011144, -0.036138, 0.069125, 0.013399, 0.029824, -0.0037613, 0.0021896, 0.063412, 0.05214, 0.050386, 0.035325, -0.02123, -0.041481, -0.023404, 0.025149, -0.0071054, 0.029758, 0.0085265, 0.049979, 0.047608, 0.0073875, 0.023178, -0.034372, -0.022118, -0.032551, -0.0095361, 0.023952, 0.0097167, 0.033562, 0.04459, 0.040596, 0.032654, 0.0057649, -0.015195, -0.044827, 0.071208, 0.041893, 0.048927, 0.073828, 0.065245, -0.0017293, 0.05839, 0.046492, -0.044449, 0.0032058, -0.083492],
|
||
[-0.021979, 0.04175, 0.036317, 0.019304, 0.043331, 0.039532, -0.036476, 0.012807, 0.022714, 0.026792, 0.017781, 0.021847, 0.035543, 0.022495, -0.019212, 0.046687, 0.032073, -0.028687, -0.068123, 0.0012941, -0.034564, 0.050972, 0.017345, 0.035613, -0.047699, -0.033623, -0.032521, -0.0013901, -0.038202, -0.031763, -0.046961, -0.04907, 0.017435, -0.030703, -0.057162, -0.0037112, 0.0060696, 0.038135, 0.011369, 0.043812, -0.034218, -0.053541, -0.039937, -0.06177, -0.03524, 0.001645, -0.019801, -0.07722, -0.075502, -0.087592, -0.11013, -0.061233, -0.03823, -0.064265, -0.052615, -0.023206, 0.011035, -0.0009788, 0.015272, 0.010027, 0.057985, 0.070841, 0.019039, -0.041762, -0.15551, -0.076282, 0.017047, 0.093015, 0.093581, 0.043403, 0.0066461, -0.028933, 0.071469, 0.099203, 0.16738, 0.069044, -0.077497, 0.099573, 0.048571, -0.064145, -0.017709, -0.033773, -0.03677, 0.021125, -0.032531, 0.01618, 0.090578, 0.10585, 0.10394, -0.039147, -0.030448, -0.0058756, 0.0049201, 0.065015, 0.02356, 0.0086862, -0.066304, -0.0023589, 0.10485, 0.041244, -0.0046939, -0.050266, 0.079897, 0.051812, 0.059364, 0.063039, -0.0096554, -0.069243, -0.047052, 0.071058, -0.034427, 0.033352, -0.038713, 0.040541, 0.067514, 0.082806, 0.10708, 0.017928, 0.0011601, -0.043674, 0.12867],
|
||
[-0.051872, -0.019281, -0.054683, 0.00094479, -0.013017, -0.01289, -0.035617, 0.0014515, 0.042883, -0.01052, 0.0075578, -0.022058, -0.029115, 0.0012529, 0.023269, -0.067475, -0.039425, 0.047183, 0.018571, -0.031453, -0.0042628, -0.065391, -0.06231, -0.00018351, 0.034076, 0.020712, -0.015816, 0.036106, -0.0057176, -0.0078035, 0.022002, -0.075063, -0.056833, -0.078488, 0.053315, 0.089792, 0.06558, -0.020138, -0.069355, -0.0129, 0.067494, 0.0052092, -0.0050446, -0.034013, -0.049221, 0.036993, 0.073527, 0.023627, -0.12669, -0.04993, 0.13709, -0.043083, -0.11283, -0.022958, -0.01638, -0.06148, 0.083723, 0.026146, -0.1093, 0.093485, 0.21229, 0.12152, -0.0085143, -0.11195, 0.008757, 0.11393, -0.058279, -0.0080422, -0.0037128, -0.090611, -0.02375, -0.0033262, 0.051599, 0.11795, 0.052188, 0.05104, 0.13056, -0.012214, 0.036432, 0.036671, -0.0078012, -0.080637, -0.098442, -0.035088, -0.032649, -0.016985, -0.027536, 0.061159, -0.0051669, 0.054347, 0.045747, 0.064739, 0.049553, 0.018862, 0.048983, 0.062542, 0.0072515, -0.023347, -0.075602, -0.057354, -0.017631, 0.022946, 0.090873, 0.0042985, 0.028246, 0.0087607, 0.074352, 0.035005, 0.031603, 0.034524, -0.07659, -0.017921, 0.0062989, -0.013815, 0.080616, 0.019782, 0.075648, 0.04319, 0.074149, 0.0477, 0.08084],
|
||
[0.026722, 0.011659, -0.030401, -0.078934, -0.025083, -0.051258, -0.063738, -0.045361, -0.0072455, -0.0016165, -0.089855, 0.0097208, 0.032567, -0.063546, 0.0040587, -0.01178, 0.046622, -0.0061913, -0.00040806, -0.038285, -0.045803, 0.00013567, 0.071841, -0.0035185, -0.054904, 0.029242, -0.016896, -0.018745, 0.075717, 0.019648, -0.043886, -0.018293, 0.029237, 0.079481, -0.10679, -0.13519, -0.0021618, 0.057839, 0.046853, 0.010614, 0.03944, -0.092858, -0.054138, 0.041015, 0.063451, 0.04747, -0.11151, 0.024333, 0.10457, 0.11493, 0.064349, 0.02496, -0.12313, -0.035728, 0.056358, 0.035122, 0.040853, 0.0048171, -0.018878, 0.063834, 0.099594, 0.10457, -0.0059324, 0.051541, 0.043792, 0.066822, -0.022981, 0.012624, -0.027434, -0.03732, -0.040761, 0.0054311, 0.077857, 0.061026, 0.062914, 0.039279, 0.051551, 0.068228, 0.053793, 0.033116, -0.087231, -0.062413, -0.082179, -0.049408, -0.05136, 0.017042, 0.0083053, 0.057973, 0.049273, 0.050549, 0.05419, 0.076357, -0.02016, -0.014968, -0.0083188, 0.032399, 0.029725, 0.081168, 0.0010767, 0.0031321, 0.039599, 0.032665, -0.0076124, 0.01439, -0.024144, 0.015901, 0.036463, 0.0059983, 0.0073771, 0.068758, 0.001845, 0.058983, 0.061023, 0.019189, 0.052229, 0.022904, 0.0093546, -0.022264, 0.028743, 0.031821, 0.031025],
|
||
[-0.024932, 0.0067371, -0.0073915, 0.017497, 0.023423, -0.0094929, -0.02194, 0.00025349, -0.041633, -0.04628, -0.067789, -0.024674, -0.029908, -0.0063449, 0.038828, 0.068463, 0.027205, 0.034295, 0.020017, -0.044148, -0.059872, -0.051482, 0.011124, 0.016763, 0.050887, 0.025498, -0.093955, -0.092391, -0.032479, 0.034463, 0.059969, 0.025585, -0.054354, -0.021502, 0.051547, -0.034008, -0.10294, -0.068214, -0.036091, -0.035862, -0.06695, -0.078867, 0.01349, -0.0092992, 0.051242, 0.063155, -0.057574, 0.01889, -0.042698, 0.0063897, 0.035994, 0.10789, -0.06818, -0.075882, -0.019748, 0.10736, -0.038698, -0.15857, 0.077712, 0.0027822, 0.033503, 0.044529, 0.1147, 0.037629, -0.11802, 0.089816, 0.14095, -0.021945, -0.18628, 0.057227, 0.17885, 0.12351, 0.032873, 0.13094, -0.079054, -0.098874, 0.071037, 0.024172, 0.04436, -0.051013, -0.039066, 0.10491, 0.12042, 0.1636, -0.0083142, -0.029805, -0.023079, 0.05985, -0.035424, -0.02533, -0.034243, -0.063442, -0.046964, 0.00071816, 0.022784, 0.0091086, 0.017544, 0.028538, 0.080903, 0.062288, 0.04819, 0.021557, -0.022313, -0.091204, -0.048678, -0.018881, 0.023198, 0.011883, 0.040745, 0.055218, 0.075292, 0.12951, 0.034067, 0.055263, 0.00092956, 0.0025829, -0.012623, 0.045045, 0.035721, 0.073251, 0.09494],
|
||
[-0.054694, -0.036142, 0.01214, -0.015154, 0.0068463, -0.0093137, -0.048684, -0.04943, -0.041065, -0.077254, -0.05266, 0.02644, -0.035826, 0.00018949, 0.020886, -0.00065949, 0.022071, 0.0040314, -0.035333, -0.028227, -0.018098, -0.020234, 0.015321, -0.0014404, 0.01118, 0.01148, 0.050415, 0.011826, -0.0058862, -0.010693, -0.052712, -0.039587, -0.015153, 0.021776, 0.018485, 0.017271, 0.025545, 0.0035527, -0.0072077, -0.016928, 0.010103, -0.011397, -0.054136, -0.0087759, 0.045429, 0.026079, 0.018401, -0.010305, 0.031175, -0.022965, 0.0073488, -0.033665, 0.0040173, 0.00073106, 0.00092921, 0.038456, 0.051027, 0.032164, 0.0030919, -0.018051, -0.037581, -0.042983, -0.032974, 0.0034357, -0.0029191, 0.049102, 0.045968, 0.037533, 0.053552, 0.0025191, -0.047509, -0.072789, -0.064427, -0.041221, -0.026781, 0.045893, 0.043427, 0.063353, 0.057676, 0.04031, 0.041067, -0.051029, -0.081223, -0.10623, -0.040384, 0.012699, 0.02785, 0.073423, 0.013872, 0.086837, 0.078231, 0.025402, -0.0085959, -0.10094, -0.079771, -0.089308, 0.015198, 0.061289, 0.065949, 0.041036, 0.059558, 0.080006, 0.074883, -0.014113, -0.032421, -0.11385, -0.10292, -0.012981, 0.05222, 0.12083, 0.10605, 0.086255, 0.083214, 0.048515, 0.044244, -0.042579, -0.1003, -0.1041, -0.086308, 0.033369, 0.16061],
|
||
[0.12274, 0.042815, 0.018062, 0.0053062, 0.035824, 0.010649, 0.016551, 0.0149, 0.067444, 0.0014206, 0.017061, 0.10626, 0.03566, 0.0027511, -0.012308, -0.013786, -0.051328, -0.086, 0.051803, 0.039048, 0.047854, -0.026266, 0.030741, 0.039407, -0.0082192, 0.009945, -0.011589, -0.069863, -0.071219, 0.02673, 0.064361, 0.049962, -0.024026, 0.063809, -0.014374, 0.023605, -0.042857, -0.030014, -0.098897, -0.043739, 0.034309, 0.071348, 0.037614, -0.0008217, 0.020111, -0.0023311, -0.015928, -0.024232, -0.12213, -0.077412, 0.003285, -0.010022, 0.084367, 0.068284, 0.02711, -0.034521, 0.0059706, -0.054405, -0.058783, -0.10071, 0.0067298, 0.052326, 0.021602, 0.033366, 0.06045, 0.028672, -0.069276, -0.046529, -0.071031, -0.068872, 0.046654, 0.13894, 0.088207, 0.009134, 0.033848, 0.047381, 0.043418, -0.099683, -0.072929, -0.076421, 0.030782, 0.14194, 0.10541, 0.050344, 0.042628, 0.0019869, 0.0029129, 0.033418, -0.10626, -0.089797, -0.012631, 0.10656, 0.081787, 0.015706, -0.0081475, 0.017962, -0.0076821, -0.018533, -0.025747, -0.068636, -0.016417, 0.052027, 0.084415, -0.031666, -0.081385, -0.042068, 0.00053002, -0.034028, -0.036058, -0.094127, -0.028724, 0.036956, 0.11399, 0.047784, -0.084618, -0.1042, -0.096931, -0.038842, -0.019078, -0.04597, -0.10436],
|
||
[0.065758, 0.074778, 0.018293, 0.028173, -0.0089483, -0.052546, -0.10879, -0.039787, 0.003021, 0.043862, 0.020559, 0.044706, 0.012785, 0.016258, -0.038127, -0.037498, -0.11769, -0.048823, 0.039098, 0.067056, 0.0755, 0.076146, -0.041032, 0.015972, -0.037661, -0.038829, -0.10585, -0.049772, 0.0044956, 0.11402, 0.09097, 0.082806, 0.059837, -0.013125, -0.02906, -0.0085932, -0.055642, -0.085865, -0.010732, 0.12911, 0.033631, 0.034969, 0.022613, 0.023084, -0.026127, -0.036556, -0.034549, -0.0096972, -0.039485, 0.044564, 0.10334, -0.022991, -0.068462, -0.026651, -0.042353, -0.063143, -0.03867, -0.032191, 0.0024621, 0.033854, 0.10018, 0.03905, -0.14322, -0.067922, -0.083174, -0.086986, -0.049997, -0.069642, -0.017581, 0.045667, 0.064475, 0.066381, 0.049759, -0.16688, -0.10148, -0.045652, -0.025089, -0.04692, -0.063091, 0.0092457, 0.038333, 0.061578, 0.05623, 0.077373, 0.043186, -0.038313, 0.011392, 0.029086, -0.087358, -0.045745, 0.035034, 0.038753, 0.010285, -0.017746, 0.011579, 0.10678, 0.12921, 0.062105, 0.031615, -0.035992, -0.035806, 0.032429, 0.01335, -0.00025562, -0.0075837, -0.05781, -0.02738, 0.077504, 0.13304, 0.070152, -0.018705, -0.015887, -0.012406, -0.036315, -0.05746, -0.034056, -0.071575, -0.0683, 0.0017292, 0.060839, 0.15051],
|
||
[-0.12025, -0.096169, -0.017372, 0.11248, 0.14311, 0.082528, 0.041, -0.0022277, 0.010468, 0.02376, -0.028258, -0.084469, -0.063106, 0.034558, 0.08054, 0.030927, -0.055932, -0.023595, -0.021308, -0.063108, -0.073253, -0.058339, -0.045166, 0.026985, 0.084702, 0.041281, -0.12024, -0.10043, -0.049765, -0.027095, -0.010458, -0.089462, -0.12894, -0.010214, 0.05398, 0.069469, 0.12953, -0.14182, -0.14285, -0.052861, 0.063969, 0.053939, -0.022029, -0.10819, 0.016492, 0.038639, 0.024021, 0.065593, 0.16113, 0.023615, 0.043352, 0.0076979, 0.043112, 0.00071988, -0.045961, -0.0069127, -0.0077205, -0.031892, -0.017037, 0.035037, 0.16303, 0.17418, 0.057001, 0.022916, -0.010513, -0.052886, -0.004313, -0.0018885, -0.04479, -0.03232, -0.048961, -0.0094053, 0.052253, 0.14016, 0.040657, 0.024408, 0.029986, -0.033973, -0.017547, -0.037345, -0.061376, -0.039373, -0.054467, 0.037877, 0.098581, 0.089151, 0.012958, 0.027625, -0.0058828, -0.057087, 0.00032845, -0.03784, -0.033696, 0.025913, -0.017025, 0.067748, 0.06453, 0.059856, -0.0040795, -0.064492, -0.022927, -0.068257, -0.038787, 0.015689, 5.5172e-05, 0.032388, 0.053502, 0.062621, 0.011267, -0.03949, -0.094319, -0.047548, -0.0091541, -0.048201, -0.012241, 0.0012541, 0.016596, 0.020434, 0.0367, -0.0026055, -0.03918],
|
||
[-0.039044, -0.014032, -0.017175, -0.041782, -0.059374, -0.0085344, -0.0163, -0.037295, -0.01755, -0.078448, -0.02004, -0.056769, -0.059967, -0.049253, -0.069472, -0.071903, -0.044718, -0.036365, -0.0034412, -0.046411, -0.02859, -0.083768, 0.095116, 0.062452, -0.024834, -0.097859, -0.1128, -0.088068, -0.088836, -0.068545, 0.0011511, 0.068272, 0.080894, 0.13533, 0.18058, 0.089393, -0.037713, -0.18005, -0.1676, -0.11135, -0.046002, 0.067488, 0.16041, 0.16021, 0.032243, 0.072927, 0.12673, 0.076775, -0.027586, -0.060585, -0.065958, 0.046189, 0.064053, 0.066545, 0.046954, 0.0044609, 0.0091618, 0.04196, 0.090849, 0.099019, 0.090334, 0.067826, 0.012714, -0.0052083, 0.011532, 0.046913, -0.0026789, 0.028085, 0.027041, 0.015104, 0.059853, 0.032101, 0.025279, -0.0455, -0.0092655, 0.032696, 0.0058023, -0.0018139, -0.0029109, 0.010427, -9.6032e-05, 0.021289, 0.04108, 0.016357, -0.032396, -0.0096468, -0.015147, 0.013413, -0.0013428, 0.038224, -0.013377, 0.026456, 0.0224, 0.0083204, 0.0021987, -0.014294, -0.011198, -0.025765, -0.0044403, 0.026453, -0.016392, -0.011847, -0.030835, 0.0092711, 0.0079232, 0.015034, -0.027786, -0.033709, -0.015542, 0.00048635, -0.026695, -0.012725, -0.013287, -0.042306, -0.033424, 0.0087293, -0.030243, -0.013051, -0.037604, -0.048538, -0.061784],
|
||
[-0.064896, -0.020224, 0.015905, 0.013552, 0.082226, 0.052591, 0.042258, 0.070648, -0.0011992, -0.034367, -0.072361, -0.056224, -0.046255, -0.030585, -0.034996, -0.043018, -0.074117, -0.058193, 0.099175, 0.085979, 0.026079, -0.090336, -0.10363, -0.05683, -0.032955, -0.035953, -0.08367, -0.14307, -0.17021, 0.05656, 0.13539, 0.11265, 0.011674, -0.065806, -0.015917, 0.049372, 0.032602, -0.023482, -0.14885, -0.14122, 0.038948, 0.090755, 0.11462, 0.049233, -0.020681, 0.0059189, 0.048036, 0.048757, 0.01503, -0.0045823, 0.044145, 0.050072, 0.009451, 0.024379, 0.052749, 0.006439, -0.0002812, -0.0064547, 0.067242, 0.14642, 0.12089, 0.045524, -0.027904, -0.020728, 0.011973, 0.02314, 0.062288, 0.0030853, -0.010563, 0.054746, 0.10799, 0.014816, -0.067729, -0.069429, -0.039673, 0.0072945, 0.031666, 0.077903, 0.033144, -0.01109, 0.025953, 0.040729, 0.015524, -0.02128, -0.074601, -0.032635, -0.040767, 0.029069, 0.050404, 0.016601, 0.0082563, 0.040076, 0.031009, 0.021258, -0.0026365, -0.025393, -0.0401, -0.051105, -0.067993, -0.00046433, -0.0039876, 0.022729, 0.039556, 0.05383, -0.0014414, 0.037268, -0.022232, -0.03405, -0.073952, -0.043558, 0.0063279, -0.079884, -0.051796, -0.012968, 0.01677, 0.039339, -0.014907, -0.021083, 0.00037446, -0.082723, -0.10307],
|
||
[-0.037003, -0.051801, -0.060853, -0.009415, -0.034328, 0.0033826, 0.012447, 0.028264, 0.051241, 0.029467, 0.094296, 0.017996, 0.074495, 0.018562, 0.0011775, -0.033436, -0.035846, -0.0247, -0.024949, -0.024856, 0.022655, 0.01397, -0.015621, 0.084344, 0.12526, 0.058408, 0.045127, -0.043164, -0.1024, -0.096781, 0.0053916, -0.033844, -0.012658, 0.0013785, 0.011573, 0.068403, 0.052981, 0.12667, 0.035046, -0.06896, -0.060072, -0.062721, -0.03001, -0.0092089, -0.053346, -0.051522, -0.019671, -0.055874, 0.041979, 0.16389, 0.0010636, -0.05391, -0.068154, -0.055293, -0.039462, -0.095726, -0.092291, -0.11339, -0.13838, -0.035746, 0.22607, 0.12814, -0.0024482, -0.033611, -0.051839, -0.084236, -0.029032, -0.058899, -0.11075, -0.15312, -0.020725, 0.16843, 0.12744, 0.080332, 0.021566, -0.082353, -0.069018, 0.049857, 0.040106, -0.055334, -0.042096, 0.066709, 0.04242, 0.069012, 0.079984, 0.034372, -0.017332, -0.083009, 0.042454, 0.051061, 0.073169, 0.10111, 0.015416, -0.074122, 0.037506, 0.056372, 0.069803, 0.02283, -0.088476, 0.056381, 0.11797, 0.08516, 0.0057507, -0.05215, 0.00071341, -0.033052, 0.042466, 0.066153, 0.041059, -0.074912, 0.059833, 0.050036, 0.073439, -0.035055, -0.043214, -0.028434, -0.049723, -0.042469, 0.0058212, 0.0033814, -0.06458],
|
||
[-0.052049, -0.057238, -0.0083906, 0.0062458, 0.035747, 0.078399, 0.078852, 0.065079, 0.051674, 0.056599, 0.11124, -0.049452, -0.033113, -0.044704, -0.0069392, -0.023795, 0.010055, 0.051862, 0.032051, 0.0034551, 0.060343, 0.071821, -0.011974, -0.026068, -0.020183, -0.01395, -0.050699, -0.020356, 0.029015, 0.044993, 0.041705, 0.033988, 0.042094, -0.031293, 0.022301, -0.017436, 0.0086405, -0.033429, -0.059144, 0.0055853, 0.0041508, 0.049461, 0.05086, 0.079934, 0.0095959, 0.025688, 0.00556, 0.013382, -0.058014, -0.0895, -0.071592, -0.019107, -0.0082745, 0.032585, 0.046701, -0.0096068, -0.020513, -0.0038438, 0.014614, 0.068186, -0.01831, -0.11323, -0.096406, -0.052403, 0.027222, 0.030318, 0.019657, -0.00966, -0.018627, 0.0081908, 0.1218, 0.15081, 0.075807, -0.062761, -0.10013, -0.068245, -0.022266, 0.00065584, -0.015209, 0.018867, 0.0052685, 0.065684, 0.10987, 0.14929, 0.059435, -0.060186, -0.089355, -0.066217, -0.023536, -0.054962, -0.059013, 0.01999, 0.0054003, 0.032463, 0.045867, 0.10506, 0.055756, -0.05989, -0.092316, -0.071619, -0.075031, -0.062254, -0.046947, -0.048116, -0.036582, -0.061107, 0.036505, 0.10111, 0.051178, -0.044432, -0.10159, -0.077159, -0.030393, -0.050071, -0.074596, -0.073459, -0.078358, -0.030279, 0.084454, 0.12337, 0.062469],
|
||
[0.11115, 0.051561, -0.019027, -0.053735, -0.0071101, -0.060332, -0.012734, -0.083914, -0.0068743, 0.03645, 0.057484, 0.10199, 0.082977, 0.018624, -0.020037, -0.058992, -0.0043094, -0.061801, -0.032137, -0.019998, 0.029478, 0.093322, 0.070136, 0.05702, 0.0539, -0.0026388, -0.0087945, -0.044887, -0.031767, -0.042174, -0.032508, 0.034115, 0.093106, 0.018637, 0.046736, 0.021858, 0.027569, -0.0019748, -0.020011, -0.038263, -0.041761, -0.030815, 0.028817, 0.071787, -0.0097081, 0.040408, 0.047903, 0.049152, 0.016182, -0.017239, -0.040469, -0.045703, -0.016282, 0.0034546, 0.034807, -0.018386, 0.019694, 0.067999, 0.064831, -0.014465, 0.011125, -0.06123, -0.076621, -0.023624, -0.0028778, 0.037589, -0.069263, 0.003136, 0.057378, 0.052692, 0.0174, -0.01857, -0.046214, -0.066633, 0.0049373, -0.0038829, 0.025714, -0.083379, 0.0056691, 0.11608, 0.073533, 0.038227, -0.077119, -0.055463, -0.043043, -0.019189, 0.017298, -0.023171, -0.097271, 0.026385, 0.084669, 0.092505, 0.016711, -0.044363, -0.045451, -0.049551, 0.013625, 0.020562, -0.030007, -0.063981, 0.075872, 0.05312, 0.065924, 0.031466, -0.012256, -0.031399, -0.018769, -0.040221, -0.0015619, -0.0069604, 0.060783, 0.075569, 0.052256, 0.07814, 0.038095, 0.052435, 0.048884, -0.055026, -0.045282, -0.041013, 0.099044],
|
||
[-0.11204, -0.039742, 0.01106, 0.068772, 0.091947, 0.063013, 0.053208, 0.020539, 0.038057, 0.038787, 0.028122, -0.04492, -0.028946, 0.03825, 0.064449, 0.074567, 0.056118, 0.057712, -0.019732, 0.012263, 0.0040348, 0.043114, 0.0036262, 0.040929, 0.05322, 0.046769, -0.017166, 0.0054891, -0.020481, -0.022929, -0.019377, -0.050393, -0.028341, 0.044369, 0.034906, -0.011072, -0.065544, -0.057326, -0.098654, -0.021151, -0.038971, -0.051955, -0.065697, -0.076669, 0.057537, 0.0059026, -0.046204, -0.082611, -0.084852, -0.079141, -0.097004, -0.076062, -0.063164, -0.083321, -0.057461, 0.027801, -0.018768, -0.029692, -0.014541, 0.083906, 0.20739, 0.0467, -0.060572, -0.13038, -0.13805, -0.12359, 0.0074711, -0.022238, -0.0067832, 0.00050857, 0.12335, 0.15023, 0.24256, 0.13265, -0.036349, -0.096342, -0.1238, -0.0059223, 0.0092529, -0.0086414, 0.014912, -0.006971, 0.062192, 0.048857, 0.099736, 0.10383, -0.0017267, -0.03338, -0.041016, 0.028075, -0.024175, 0.00037852, 0.02829, -0.017178, 0.012211, 0.021091, 0.048801, 0.058893, 0.041186, -0.050228, -0.063589, -0.016279, -0.0047557, 0.019166, -0.004286, 0.072221, 0.027668, 0.0076072, 0.046252, 0.045328, -0.058087, -0.052569, -0.044762, -0.023156, -0.00017763, 0.05236, 0.017613, 0.026754, -0.0071592, 0.02145, 0.026061],
|
||
[0.074443, 0.02501, -0.0072387, -0.034581, 0.0075069, 0.050532, 0.097729, 0.10515, -0.0020886, -0.064607, -0.071901, 0.06271, 0.04811, -0.0061288, -0.048708, -0.028878, 0.049283, 0.10301, 0.091885, 0.10831, -0.0069202, -0.07108, -0.032385, -0.041457, -0.037318, -0.037271, -0.040336, -0.030542, 0.027846, 0.051126, 0.039458, 0.061534, -0.0088597, -0.058003, -0.036151, -0.039854, -0.04856, -0.058763, -0.083102, -0.091876, -0.077267, 0.00086207, 0.064568, 0.051764, -0.087357, -0.053385, -0.019429, -0.023415, -0.08563, -0.12611, -0.086692, -0.12449, -0.055126, 0.030267, 0.083602, -0.12584, -0.091278, -0.07353, -0.085046, 0.01189, 0.13738, 0.12692, -0.020512, -0.083332, -0.045688, 0.094722, -0.11768, -0.11561, -0.06055, 0.081985, 0.17044, 0.11966, 0.11254, 0.074741, -0.025738, -0.033587, 0.034114, 0.051553, -0.020223, 0.04569, 0.056071, 0.020998, 0.044562, 0.029391, 0.026725, 0.013325, -0.019773, 0.0027476, 0.12423, 0.04555, 0.018947, 0.005724, -0.0058699, 0.005037, 0.043724, 0.019509, -0.0018888, -0.0096177, -0.0132, 0.10144, 0.085182, -0.01332, 0.0029189, 0.010088, 0.0094933, 0.01793, 0.031407, 0.011734, -0.050901, -0.015736, 0.029231, 0.048512, 0.013899, -0.031158, -0.040662, -0.0083011, 0.043045, -0.010968, -0.0012439, -0.022627, -0.11766],
|
||
[-0.039873, 0.00012185, 0.018432, -0.060305, 0.014643, 0.012981, -0.0070294, -0.055625, -0.011913, 0.0084125, 0.010421, 0.014232, 0.0046832, 0.03282, 0.013207, -0.023534, -0.011405, -0.042582, -0.018915, -0.049511, -0.018366, -0.0058433, 0.022316, 0.021335, 0.034666, 0.06001, -0.034246, -0.047005, -0.047922, -0.041049, -0.026714, -0.03879, -0.018331, 0.037977, 0.028814, 0.01977, 0.037289, -0.066963, -0.10295, -0.090035, -0.060416, -0.030822, 0.024013, -0.023616, 0.014618, 0.0051973, -0.0053409, 0.019717, -0.078767, -0.029297, -0.02328, -0.014403, -0.0092264, -0.033409, -0.020726, -0.035932, -0.02301, -0.039252, -0.016761, 0.053608, 0.1333, 0.1649, 0.090281, 0.04523, 0.017404, 0.013598, -0.047298, -0.067622, -0.027196, 0.065506, 0.022326, 0.046886, 0.043069, 0.12018, 0.084303, 0.020672, 0.020185, -0.071051, -0.079542, -0.016269, 0.033355, 0.028706, -0.012012, -0.015403, 0.031358, 0.10477, 0.0025587, 0.021109, -0.039308, -0.093768, -0.022121, 0.023658, 0.0016241, 0.011496, -0.039667, 0.01091, 0.063816, 0.062965, 0.011666, -0.024049, -0.0027909, -0.053242, -0.014763, -0.009588, -0.031087, -0.030645, 0.010272, 0.037482, 0.060317, 0.024907, -0.0456, -0.020358, -0.062106, 0.036987, -0.038453, -0.044857, -0.034311, -0.011784, 0.018763, 0.061657, 0.040804],
|
||
[-0.030967, -0.034705, -0.030029, -0.073209, -0.048949, -0.038641, 0.051475, 0.074237, 0.11135, 0.076704, 0.047486, -0.068456, -0.035129, -0.0025322, -0.057134, -0.053441, 0.017149, 0.05211, 0.058782, 0.047057, 0.040322, 0.007803, -0.056083, -0.046847, -0.0065577, 0.015471, 0.0066615, 0.05262, 0.00019301, 0.077547, 0.050314, -0.024569, 0.034663, -0.004403, -0.038893, 0.018694, 0.035428, 0.060686, 0.058741, 0.0014872, -0.045756, -0.047945, -0.092818, -0.021044, 0.0075622, 0.0087803, 0.024403, -0.018245, 0.0056819, -0.12201, -0.11278, -0.054719, -0.090167, -0.032775, -0.07964, -0.0081433, 0.036416, -0.029719, -0.083432, -0.09701, -0.078382, -0.061852, -0.023646, -0.040448, -0.078556, -0.035219, -0.027449, -0.0024222, -0.0086514, -0.069056, -0.046264, -0.026684, 0.0085151, 0.015105, 0.031314, 0.036056, 0.025591, 0.0051354, -0.023005, 0.021047, -0.014202, -0.043602, 0.014084, 0.047988, 0.0040769, 0.04007, 0.031368, 0.041402, 0.0083542, 0.053524, 0.038347, -0.0075355, 0.033837, 0.037702, 0.023171, 0.00063875, 0.022457, 0.058804, 0.033466, 0.011934, -0.0031203, 0.016069, 0.037622, -0.010943, 0.046299, -0.0027638, 4.2317e-06, -0.0038944, 0.0096576, -0.01851, -0.054006, 0.017238, 0.0091597, 0.028997, 0.033953, 0.070753, 0.003781, 0.0272, 0.009142, 0.027115, 0.01271],
|
||
[-0.059222, -0.0013807, 0.027613, 0.10527, 0.056162, 0.063382, 0.0052814, 0.022701, 0.023071, 0.011641, 0.037101, -0.096537, -0.037975, 0.00038733, 0.050625, 0.065087, 0.0010273, 0.010303, 0.0050328, 0.050959, 0.053162, 0.030888, -0.021359, -0.030127, 0.014336, 0.044082, 0.045143, 0.013943, -0.07448, -0.021195, 0.010166, 0.028012, -0.022729, -0.03377, 0.0042314, 0.022687, 0.046542, 0.1131, -0.0045052, 0.072384, 0.037892, 0.04464, 0.053305, 0.055298, -0.02526, 0.023523, 0.029551, -0.057104, -0.037228, -0.040335, -0.066002, 0.051806, 0.090921, 0.015823, -0.038665, 0.0092907, -0.028826, -0.074981, -0.057874, -0.10796, -0.046546, -0.11182, -0.10192, -0.085702, -0.093906, -0.14398, -0.056829, -0.066264, -0.071883, -0.05541, -0.0092823, 0.0018364, -0.0066183, -0.011825, -0.09252, -0.088262, 0.0069521, -0.025393, -0.0063947, -0.043362, -0.022174, 0.0077219, -0.025334, -0.0083153, 0.037371, 0.012799, 0.015685, -0.0096592, -0.0057849, -0.010757, 0.017757, 0.04453, 0.0041941, 0.054645, 0.03971, 0.033911, 0.065272, 0.03489, 0.095387, 0.012474, -0.0089935, 0.04438, 0.030765, 0.018887, 0.031788, 0.031674, 0.020197, -0.0012983, 0.046204, 0.043617, 0.05228, 0.035529, 0.048753, -0.010956, -0.010948, 0.0023335, 0.0008262, -0.028699, 0.014222, -0.0098069, -0.035273],
|
||
[0.062947, 0.064519, 0.032897, -0.045712, 0.020599, 0.063655, 0.014616, -0.027441, 0.035616, 0.0094036, 0.056507, 0.031273, -0.011035, 0.038887, -0.021343, -0.016083, 0.03398, 0.052626, -0.025295, -0.026549, 0.030681, 0.027583, 0.080967, 0.035373, 0.0349, -0.012799, 0.043192, 0.022703, 0.050265, 0.00034374, -0.012567, 0.07343, 0.0065301, 0.017282, 0.049276, -0.027253, -0.0086521, 0.047527, 0.17862, 0.086809, -0.019355, -0.04187, -0.055305, 0.078291, -0.12691, -0.09628, -0.092541, -0.10217, -0.041913, -0.0061569, -0.023942, -0.051812, -0.12531, -0.097862, -0.10634, -0.088742, -0.060959, -0.031993, -0.036846, -0.092274, -0.11353, -0.036147, 0.011597, -0.013144, -0.063917, -0.11042, -0.012416, -0.061287, -0.019684, -0.023518, -0.0066523, -0.014485, 0.018028, 0.0080843, 0.036972, -0.018618, -0.10924, 0.030523, 0.012989, 0.04012, 0.061496, 0.04845, 0.019214, 0.02151, 0.072093, 0.03741, 0.04916, -0.013141, 0.060643, 0.022195, 0.051299, 0.013218, 0.041766, 0.010616, -0.010208, -0.0005756, 0.076314, 0.01751, 0.060847, 0.033003, 0.048985, -0.0064822, -0.0021063, 0.010623, 0.028539, 0.028618, -0.023485, -0.0028276, 0.044106, 0.022575, -0.025473, 0.026401, -0.02986, -0.035148, -0.028004, -0.010875, -0.025206, -0.031473, -0.013822, -0.010973, 0.076092],
|
||
[0.036904, 0.056002, -0.010952, 0.040331, -0.0037441, 0.049112, 0.007917, 0.11344, 0.00075633, -0.037483, -0.018736, 0.011745, 0.036506, 0.0534, 0.023086, 0.0044153, -0.0036749, 0.049657, 0.004597, 0.040393, -0.029098, -0.074894, 0.0016705, -0.032136, 0.03675, 0.03203, -0.02511, 0.022111, -0.011119, 0.027124, 0.061095, -0.024784, -0.059956, 0.013712, 0.036558, 0.08411, 0.05595, -0.020007, 0.020789, 0.049866, 0.039022, 0.088846, 0.012344, -0.055388, -0.028389, 0.025833, 0.10642, 0.052723, -0.054784, -0.1019, -0.049794, -0.0069086, 0.018753, 0.0082098, 0.013268, -0.18181, -0.12596, -0.094587, -0.027565, -0.06434, -0.091631, -0.092278, -0.07557, -0.11648, 0.0033702, 0.029872, -0.04912, -0.1095, -0.082986, -0.020757, 0.03284, 0.027499, -0.051265, -0.028727, -0.074363, -0.078828, -0.048211, 0.024175, 0.0074473, -0.0074232, -0.00077866, 0.056675, 0.02248, -0.022053, -0.025989, 0.0064103, -0.020235, -0.064838, 0.08154, 0.05056, 0.027641, 0.056668, 0.031151, 0.039877, 0.032444, 0.042983, -0.0018216, 0.0070638, -0.005843, 0.067604, 0.030913, 0.028072, -0.001085, 0.015535, 0.043687, 0.019384, 0.03294, 0.05737, 0.0076083, 0.0044987, -0.011422, -0.029081, -0.0036106, -0.0032691, -0.063552, -0.022937, 0.0091467, -0.011391, 0.068188, 0.0038844, 0.071449],
|
||
[0.09367, -0.0060186, 0.064975, 0.057205, 0.032039, 0.017361, -0.05431, -0.074304, -0.022134, -0.034414, 0.0044163, 0.028938, 0.016585, 0.025525, 0.035894, 0.0076747, -0.0019368, 0.0066708, -0.10424, -0.00055455, 0.0022381, -0.028409, -0.0040177, -0.013989, 0.025428, 0.064148, 0.077486, 0.034007, 0.046771, 0.054056, -0.068292, -0.011916, -0.082369, -0.034027, -0.093927, -0.028299, -0.083188, 0.006867, 0.07996, 0.063772, 0.00087634, 0.020692, -0.012739, -0.018539, -0.082159, -0.035509, -0.090379, -0.072582, -0.10221, -0.10665, 0.00090251, 0.015335, 0.046228, 0.038103, -0.0062461, -0.067246, -0.053326, -0.0029145, -0.055346, -0.055246, -0.11557, -0.12679, -0.01865, 0.020112, 0.0072375, 0.013539, 0.039109, 0.051642, 0.0078965, 0.023871, -0.017458, 0.018892, -0.10505, -0.08968, -0.042725, 0.026725, 0.011636, 0.084889, 0.034195, 0.065857, 0.0042427, -0.012401, 0.042723, 0.033509, -0.0086453, -0.09177, 0.02075, 0.019877, 0.010695, 0.047156, 0.044111, -0.014435, 0.071374, 0.034756, 0.040578, -0.0071663, 0.025408, 0.043339, 0.01048, -0.0087307, -0.013411, -0.020395, 0.0060122, 0.024188, 0.041668, 0.041183, 0.10243, -0.029406, 0.0031099, 0.0030509, -0.017382, 0.0048264, -0.026782, 0.011942, 0.0024678, 0.040929, 0.080623, 0.029179, 0.043039, 0.0055502, 0.0002791],
|
||
[-0.033397, 0.0096415, -0.018237, -0.034139, -0.0024439, 0.0055087, -0.0026268, -0.028241, 0.005216, -0.021235, -0.047074, -0.026122, -0.027138, -0.048107, -0.040211, -0.030102, -0.0032793, 0.059679, 0.0067584, 0.030667, 0.0095436, -0.016919, 0.0038233, -0.058996, -0.030891, -0.05815, -0.081535, -0.006358, -0.017081, 0.043337, 0.062984, 0.040401, 0.0072034, 0.011593, -0.0033021, -0.057817, -0.037813, -0.12426, -0.10986, -0.093813, 0.065001, 0.034844, 0.056616, -0.014925, -0.021165, -0.0032162, -0.01231, -0.017827, 0.035551, -0.070468, -0.034864, -0.017196, 0.028479, -0.022807, 0.032134, 0.026469, 0.0095896, 0.035119, 0.13551, 0.13689, 0.16248, 0.015875, -0.020831, -0.0011812, -0.019841, -0.088082, 0.030458, 0.026063, 0.047026, 0.070569, 0.062917, 0.049799, 0.085486, 0.035142, -0.020167, -0.061685, -0.092848, -0.0015897, 0.016609, 0.055002, 0.070868, 0.013235, -0.00082084, 0.038005, 0.073573, -0.035372, -0.031698, -0.086249, 0.01039, 0.020134, 0.013596, 0.055295, 0.0095627, -0.021797, -0.0091913, 0.042724, 0.028966, -0.048329, -0.097, -0.035392, -0.0091231, 0.047734, 0.0249, 0.040202, -0.042437, -0.0088865, 0.0034761, -0.012834, -0.011082, -0.086374, 0.010907, 0.0015854, 0.059934, 0.039391, 0.025936, 0.018352, -0.066655, -0.036969, 3.6891e-05, -0.037622, -0.087739],
|
||
[-0.0096923, -0.014831, -0.020109, -0.04153, -0.079113, -0.02844, -0.047215, 0.01792, -0.043731, -0.0083078, 0.0080638, -0.042848, 0.015733, -0.035877, -0.020275, 0.0060017, -0.011038, -0.0079322, 0.0024669, -0.047175, 0.019485, 0.038912, 0.039176, 0.0053798, 0.011395, 0.022135, 0.10262, 0.060645, -0.0049047, -0.026338, -0.0003105, 0.021471, -0.029131, 0.049021, 0.048247, 0.087541, 0.072996, 0.019711, 0.053346, 0.068713, 0.0089235, -0.0091036, 0.005913, -0.012742, 0.056215, 0.063791, -0.020641, -0.030947, -0.016712, 0.11272, 0.026897, -0.013567, -0.01709, 0.014777, -0.010782, -0.0069221, -0.089428, -0.067233, -0.026911, 0.035337, 0.16957, -0.0065458, -0.024077, 0.032167, -0.017459, -0.040089, -0.099301, -0.011985, -0.027641, 0.012259, 0.09947, 0.030179, 0.017807, -0.031244, 0.036953, -0.062248, -0.018967, -0.066056, -0.026801, -0.012533, 0.024585, 0.05625, 0.041206, -0.010337, -0.044756, -0.072391, -0.0056601, -0.022192, -0.02598, -0.0048569, 0.0022456, 0.048042, 0.021878, -0.031094, 0.031079, 0.02862, -0.059947, 0.016802, -0.0025822, 0.084439, -0.0032539, 0.021756, 0.044396, -0.0081787, 0.043428, -0.012816, 0.014791, -0.028622, -0.048855, -0.035405, 0.070881, 0.054725, 0.086069, 0.04987, 0.024135, 0.016045, 0.021408, -0.0019594, -0.052757, -0.046484, -0.068063],
|
||
[-0.044332, -0.05433, -0.051769, -0.015254, -0.010701, 0.0092805, -0.006241, 0.020072, 0.063349, -0.049922, -0.024848, 0.061077, 0.073127, 0.03427, 0.035888, 0.065559, 0.0050894, -0.017425, 0.064103, 0.063691, 0.011937, 0.0065559, 0.059352, 0.036171, 0.073145, 0.043276, -0.0077362, -0.022749, 0.004669, -0.00069003, 0.06394, -0.014967, 0.0030728, 0.026663, 0.05282, 0.017109, -0.022409, -0.087085, -0.09757, 0.021721, 0.051712, 0.032757, 0.01782, -0.037826, -0.099907, -0.11008, -0.06304, -0.11066, -0.056464, 0.026811, 0.07562, 0.073184, 0.035501, -0.023905, -0.017845, -0.11757, -0.12168, -0.083114, -0.034921, 0.046766, 0.058774, 0.010496, -0.002213, 0.0511, 0.024775, 0.023471, 0.015632, 0.01797, 0.0019336, 0.030515, -0.03111, 0.033605, 0.036258, -0.022201, -0.023003, 0.014758, -0.0070368, 0.1179, 0.049474, 0.062413, 0.052777, 0.0094326, 0.032164, -0.0071376, 0.0032749, 0.0067896, 0.022973, -0.030044, 0.095055, 0.077918, 0.025171, 0.032486, 0.0054809, 0.046288, -0.0048347, 0.010141, 0.006405, -0.016193, -0.02077, 0.071543, 0.041812, -0.0011514, -0.0069609, 0.01636, 0.025003, 0.020552, -0.0015891, 0.036688, -0.059255, -0.0045241, -0.022765, 0.055697, 0.058835, -0.017696, 0.014345, -0.020606, 0.02101, -0.022475, -0.040297, -0.040552, -0.03658],
|
||
[0.04868, -0.0052211, 0.01119, -0.014771, -0.034142, -0.028004, 0.0059494, 0.015102, 0.019901, 0.039961, 0.0038194, 0.01389, 0.075503, 0.059891, 0.075512, 0.073756, 0.10697, 0.068741, 0.048031, 0.042366, -4.2027e-05, -0.012109, -0.011319, -0.037382, -0.021548, 0.018482, -0.0052013, 0.027477, -0.013858, 0.043728, -0.025032, -0.029687, -0.019073, 0.033492, -0.065964, -0.062342, -0.075624, -0.053586, -0.028774, 0.0066218, -0.10036, -0.089046, -0.04614, 0.072975, 0.087251, 0.045168, -0.053337, -0.082409, -0.091444, -0.074426, -0.092126, -0.037675, -0.0056525, 0.067513, 0.093934, 0.0092897, 0.018516, 0.037298, -0.021567, -0.034819, -0.021783, -0.025809, -0.036853, 0.0050072, -0.0054865, 0.036889, 0.020304, 0.06235, 0.038517, 0.067308, 0.058616, -0.0042178, 0.054673, 0.039231, 0.031392, 0.043919, 0.043293, 0.018805, 0.017383, 0.059662, 0.033699, 0.013342, 0.08421, 0.025431, 0.012904, 0.065431, 0.011197, 0.029136, 0.062541, 0.045383, -0.0053463, -0.017267, 0.02042, 0.013123, 0.015259, -0.01873, 0.023824, 0.052818, 0.015447, -0.01249, 0.014684, -0.026853, 0.028989, -0.0048952, 0.024942, 0.080075, 0.013283, -0.03042, -0.0077059, 0.0057615, -0.022997, -0.031813, -0.0074071, 0.0074686, 0.066652, -0.04319, 0.0087486, 0.035607, 0.0093449, -0.060326, -0.029897],
|
||
[-0.021247, -0.022204, 0.086827, -0.025228, 0.046972, -0.032033, -0.018785, -0.0043159, -0.041827, -0.069289, -0.0081667, -0.017438, -0.024335, 0.028654, 0.072066, 0.016591, 0.024633, 0.07814, 0.056622, 0.037503, 0.03784, 0.032, 0.013106, 0.012369, -0.028706, 0.0050659, 0.013853, 0.00055953, 0.020323, 0.075276, 0.091913, 0.11099, 0.078217, 0.015546, -0.011745, 0.051738, -0.012734, 0.016769, -0.044366, -0.099554, -0.0501, -0.057248, 0.016222, 0.0676, -0.0086481, -0.0032869, 0.0085923, 0.046768, 0.072794, 0.045295, -0.084825, -0.14861, -0.051316, -0.12479, -0.085079, -0.0057128, 0.044163, -0.001048, 0.030855, 0.035139, 0.072277, 0.053918, -0.044672, -0.082685, -0.106, -0.15447, -0.011133, 0.028928, 0.0038564, 0.016248, 0.017416, -0.021407, 0.026964, 0.028131, 0.025158, 0.037924, -0.004685, -0.027697, -0.041379, 0.0087612, 0.0052052, 0.0439, 0.07761, 0.023416, 0.06086, 0.035574, 0.071928, 0.064071, 0.013358, -0.048366, 0.029793, 0.0052255, 0.0017724, 0.043271, 0.061872, 0.06025, 0.0059221, 0.067275, 0.1015, -0.030662, 0.00089429, -0.057645, 0.033295, 0.024006, 0.0049161, -0.018549, 0.028088, 0.023382, 0.034065, 0.076788, -0.05767, -0.034528, 0.02176, -0.072334, -0.00053618, 0.029546, 0.0043528, 0.0050097, 0.045672, 0.027025, 0.047575],
|
||
[8.4608e-05, -0.00051459, -0.00065583, 0.00020679, -0.0011087, 1.7283e-05, -0.00069139, -0.00067753, 7.4613e-06, -0.00070527, 0.00036511, -0.00022613, 0.00083733, -0.00038556, -0.00020677, 0.00010704, 0.00015849, -0.00023179, -0.00023816, -0.00042063, -0.00035892, -0.0010411, -0.00070995, 0.000723, -0.00024736, 0.00048919, 0.00024924, 0.00060669, 0.0014982, 0.0005362, 0.00050087, 0.00089807, 0.00023875, 0.0001569, -5.4315e-05, 0.00056173, -0.00015464, 0.0003081, 0.0010477, 0.00054031, 0.0020028, 0.00073696, 0.00041838, 0.0011534, -0.0014158, -1.7385e-05, -0.0003327, 0.00025909, -6.7895e-05, 0.0020025, -0.00060121, -0.00063729, 0.00088529, 0.00051385, 0.00080077, -0.00021374, -0.00012764, -0.00032299, -5.5464e-05, -0.00038413, 0.00098096, 0.0016769, -0.00023683, -0.00047131, -0.0011834, 0.00011653, -0.00069781, -0.00081516, 0.00031472, 3.2978e-05, -0.00074268, 9.2834e-05, 0.0016276, 0.00052039, 0.00032858, -0.00090914, -0.00066274, -0.00049429, 0.00081787, -0.00028647, -0.00047775, -0.0011287, -0.00014959, 0.00067728, 0.0018427, 0.00042127, -0.0011898, -0.0021021, 0.00025863, -0.00028165, -6.7871e-06, 0.00010673, -0.00081947, -0.00050656, -0.00045739, 0.0012233, 0.0012483, 0.00023367, -0.00049654, -0.00060431, 0.00048856, -0.00039402, -0.00030283, -0.00048298, -0.0004503, 6.8065e-05, 0.00029381, 0.0008075, 0.0010027, 0.0012118, -0.000315, -0.00096615, -0.00016521, -0.0002593, 0.00070445, -0.00051525, -4.9951e-05, 0.0002327, 0.00098128, 0.0017427, 0.0012749],
|
||
[-0.092167, 0.0056729, -0.0093745, -0.013062, 0.026811, 0.049001, -0.021651, 0.037001, 0.0042183, 0.0018621, -0.0002865, 0.0053573, -0.024952, -0.053963, 0.022201, -0.013351, 0.012385, -0.018031, 0.025522, 0.012537, -0.011992, 0.045187, -0.0094335, -0.0044184, -0.013784, 0.025926, -0.041054, -0.038893, -0.039896, 0.035441, 0.023677, -0.041022, -0.057696, -0.017627, -0.020217, 0.027628, -0.018841, -0.015264, -0.042663, -0.076632, -0.057529, -0.014905, -0.066898, -0.06533, -0.0076506, -0.048587, 0.085982, 0.023145, 0.069503, 0.023607, -0.037011, -0.086464, 0.0048593, -0.047933, -0.065202, -0.0083087, 0.0036049, -0.014176, 0.086525, 0.025019, 0.18351, 0.17731, 0.052646, 0.046296, 0.017268, 0.091744, -0.011477, -0.0031098, -0.044721, 0.035195, 0.035162, -0.085226, 0.059126, 0.14804, 0.094894, 0.10021, 0.0948, 0.016819, -0.0016208, 0.0056984, 0.02466, -0.0017441, -0.031929, -0.082346, -0.036632, -0.00060561, -0.0084924, 0.029093, 0.021734, -0.019869, 0.0049377, 0.035446, 0.03566, 0.057302, -0.038292, -0.061604, -0.062082, -0.043689, -0.019287, -0.015927, 0.020688, 0.0061875, 0.0079545, 0.03821, 0.017747, 0.018299, -0.071994, -0.048806, -0.041478, -0.074196, -0.04357, -0.02427, 0.048012, -0.0022007, -0.012801, 0.052876, 0.06225, 0.025342, 0.0028709, -0.041475, -0.016771],
|
||
[0.020792, -0.026685, 0.0052684, -0.034939, 0.021609, 0.07276, 0.041389, -0.022051, -0.037669, -0.038136, 0.056138, 0.018701, 0.024053, -0.044522, -0.0072803, 0.025522, 0.055898, 0.020086, 0.022258, -0.043113, 0.025461, -0.042, -0.022104, 0.020437, -0.0089104, -0.040754, -0.044989, 0.014514, -0.024973, 0.041776, -0.020618, -0.027452, -0.058121, -0.019728, -0.064864, -0.065429, -0.034021, -0.070154, -0.047186, -0.066865, -0.066928, -0.045242, -0.041527, 0.0090972, 0.066567, 0.092179, 0.035601, -0.031646, -0.084854, -0.078072, -0.058064, 0.027433, 0.038431, 0.093545, 0.02082, 0.053868, 0.080127, 0.12823, 0.10909, 0.12328, 0.10908, 0.1275, 0.08982, 0.13207, 0.040999, 0.05859, -0.028141, 0.011014, 0.010818, 0.057563, 0.043454, 0.063805, 0.039305, 0.014669, 0.031073, -0.064254, -0.058945, 0.011933, -0.088116, -0.1313, -0.083772, -0.057942, -0.054054, -0.052884, -0.09094, -0.054181, -0.048566, 0.041762, 0.052504, 0.04064, -0.017347, -0.07672, -0.061855, -0.020823, -0.062266, -0.047703, -0.040227, 0.046901, 0.057527, 0.025438, 0.069957, -0.0081337, -0.020792, -0.040002, -0.057585, -0.023269, -0.043727, -0.025274, 0.047882, 0.055113, 0.04126, 0.030578, 0.040162, 0.077326, 0.049074, 0.020718, 0.052627, 0.057604, 0.051058, 0.023973, 0.10154],
|
||
[0.038642, -0.0050245, 0.0046137, -0.0067584, 0.031421, 0.043864, -0.0015665, -0.080588, 0.023011, -0.031974, -0.045853, 0.0073322, 0.024538, 0.026494, 0.012817, 0.015873, 0.010885, -0.025022, 0.037514, -0.046295, 0.011215, -0.028657, -0.015741, 0.010582, -0.0060245, -0.0021638, -0.012232, -0.038573, -0.034197, 0.021759, 0.0040701, 0.033019, -0.051704, -0.053297, -0.087987, -0.036089, -0.024714, -0.045558, -0.063234, -0.0079876, -0.001269, 0.047525, 0.014455, -0.018257, -0.027678, -0.073305, -0.062178, -0.056046, -0.061583, -0.013982, 0.036486, -0.018427, 0.072797, -0.0075591, -0.024644, 0.061682, 0.060669, 0.037714, 0.078055, 0.14419, 0.1556, 0.067522, 0.019946, 0.026659, -0.01207, 0.0057426, 0.083145, 0.11628, 0.053997, 0.07441, 0.067029, -0.054231, 0.003903, 0.062433, 0.025821, -0.026727, -0.010193, 0.020416, 0.060395, 0.011092, -0.046966, -0.070524, -0.072562, -0.027651, 0.06845, 0.033, 0.041736, 0.011928, -0.054917, -0.051654, -0.028774, -0.037453, -0.08234, 0.012375, -0.0058925, 0.11105, 0.016941, 0.033194, -0.0018374, -0.095054, -0.058966, -0.040233, -0.046409, 0.0083077, 0.044775, 0.06359, -0.010509, 0.066094, -0.0027753, -0.010076, -0.050324, -0.0068444, -0.0041476, -0.0038945, 0.028367, 0.032085, 0.0293, 0.0032286, 0.071386, 0.023726, -0.071251],
|
||
[0.10873, 0.014278, 0.012274, -0.0081393, 0.057053, 0.042322, 0.033324, -0.0094696, 0.022832, -0.060308, -0.029388, 0.047863, -0.010046, -0.018988, -0.039886, -0.040504, -0.014329, 0.066888, 0.054681, 0.036468, 0.027426, -0.041157, -0.071084, -0.038858, -0.052405, -0.03744, -0.072142, -0.064832, -0.093371, 0.012493, -0.012993, 0.012828, 0.028496, -0.088967, -0.059145, -0.073604, 0.0014228, -0.061366, -0.054663, -0.10168, -0.086349, -0.013058, -0.020967, -0.024969, -0.0086781, -0.050928, -0.012321, -0.009796, -0.060386, -0.073566, -0.098901, -0.095045, -0.05081, -0.020639, 0.0068009, 0.15286, 0.097545, 0.11068, 0.11229, 0.18428, 0.11307, -0.0045716, 0.0064434, -0.052854, -0.020146, 0.0036235, 0.055737, 0.046046, 0.022877, 0.019702, -0.04451, 0.02626, 0.0012791, 0.11283, 0.045956, -0.036756, 0.013793, -0.00031411, -0.024157, -0.0076891, -0.018311, -0.036925, 0.015877, -0.00074296, 0.044351, 0.09355, 0.034107, 0.0074667, -0.055729, -0.024915, -0.040394, -0.014479, -0.021786, 0.034463, 0.019018, 0.019996, 0.057264, 0.040807, -0.028383, 0.012261, 0.036427, -0.022903, 0.006834, -0.0095408, 0.021714, -0.0024252, 0.026187, 0.062738, 0.0131, 0.021845, -0.0064556, -0.01806, -0.011501, 0.011069, -0.0076556, -0.060373, 0.018731, 0.010879, 0.039313, 0.050533, 0.0308],
|
||
[0.040803, 0.065104, 0.015718, -0.042967, 0.053812, 0.074783, 0.057112, -0.0020897, -0.031444, 0.036659, 0.079578, -0.014495, 0.023854, -0.08596, 0.016421, 0.053099, 0.044587, 0.075787, -0.020575, -0.052303, -0.0027126, -0.025365, -0.075564, -0.039845, -0.035504, -0.031983, 0.016275, -0.014983, 0.0085163, -0.010415, -0.080245, -0.068934, -0.082117, -0.10868, -0.11517, -0.05217, -0.078003, -0.084743, -0.090079, -0.045561, -0.099138, -0.089931, -0.071757, -0.1012, -0.026109, -0.028956, -0.052953, -0.040651, -0.062404, -0.062531, -0.04764, 0.02155, 0.042012, -0.0014168, -0.060018, 0.050239, 0.094413, 0.14253, 0.12071, 0.11698, 0.098976, 0.12841, 0.10926, 0.10934, 0.037269, 0.02278, 0.044474, -0.0060598, 0.0061609, -0.0064769, 0.03487, 0.03938, -0.0013958, -0.028963, 0.0046569, 0.043728, -0.006941, 0.018088, 0.0082024, -0.0099195, -0.060301, -0.049617, 0.032033, -0.017011, -0.040659, -0.017714, -0.017211, 0.05557, 0.064732, 0.014251, -0.026793, -0.03762, -0.035454, -0.0033597, -0.0018842, -0.035139, 0.0012996, -0.020445, 0.037428, 0.021313, 0.054608, 0.044538, -0.025503, -0.045072, 0.014586, -0.031781, 0.0068856, 0.0054809, 0.010448, 0.036007, 0.072978, 0.0081452, 0.018678, 0.002222, 0.038134, -0.022256, 0.018473, -0.019159, 0.053864, 0.0041179, 0.042052],
|
||
[-0.11959, 0.00046909, -0.017807, 0.060029, 0.010483, 0.11341, 0.060972, 0.0095573, 0.024172, 0.011559, 0.074094, -0.001533, -0.042434, 0.0093888, 0.054397, 0.049821, 0.0059163, 0.02311, -0.025328, -0.071392, 0.0028116, 0.04064, 0.023985, 0.00080593, -0.017294, 0.019318, -0.051786, -0.060402, -0.051631, -0.02641, -0.025387, -0.086705, -0.031667, -0.032597, 0.0060778, -0.03085, -0.1089, -0.059264, -0.058027, -0.065551, -0.076388, -0.014694, -0.1161, -0.13336, -0.013872, -0.071355, -0.046296, -0.046341, -0.059804, -0.05569, -0.088752, -0.0092767, -0.010766, -0.01369, -0.058954, 0.018927, -0.027282, -0.039857, 0.012549, 0.010688, 0.080319, 0.15262, 0.086961, 0.15253, 0.069464, 0.11198, 0.017371, 0.015813, 0.032806, 0.017747, 0.073545, -0.03211, 0.019567, 0.029618, 0.038786, 0.032628, 0.069817, -0.0062508, 0.051458, 0.030409, 0.046777, 0.040002, -0.020088, -0.012635, -0.04525, -0.034254, -0.021876, -0.045999, -0.024164, 0.0075637, -0.00091422, 0.035703, 0.088575, -0.013735, -0.0098033, -0.042826, -0.0012702, 0.0127, -0.043166, -0.032268, -0.0035433, 0.006758, -0.0053454, 0.023288, 0.074293, 0.019467, -0.017988, -0.0012524, 0.022264, 0.0012391, 0.0013565, -0.0046713, 0.016578, 0.036584, 0.0010972, 0.011357, 0.05343, -0.00068444, -0.038448, -0.0005839, 0.003291],
|
||
[0.0087137, 0.021185, 0.044118, 0.040648, 0.032447, -0.013324, -0.020142, -0.025882, -0.0024841, -0.01901, -0.0021128, 0.0091018, 0.039626, 0.01797, 0.03736, 0.019343, 0.014757, -0.0010528, -0.025962, -0.010286, -0.011165, -0.0019599, 0.0087082, 0.034494, 0.028652, 0.0403, 0.033374, 0.05035, 0.0063626, -0.024012, -0.042233, 0.022058, 0.053376, 0.02062, 0.02954, 0.057652, 0.067979, 0.062647, 0.04924, 0.02117, 0.011454, 0.010299, -0.0018357, 0.05593, -0.011232, 0.032042, 0.015713, -0.0070039, -0.0091016, 0.016511, -0.019705, -0.039092, -0.045771, -0.0077692, 0.049862, -0.067365, -0.076963, -0.040595, -0.030389, -0.092514, -0.057212, -0.00095436, -0.045682, -0.036819, -0.068244, -0.027588, -0.041645, -0.043031, -0.054498, -0.068638, -0.097786, -0.065713, -0.052882, -0.013397, -0.019034, -0.023493, -0.036063, 0.027782, 0.012907, -0.017337, -0.064488, -0.099835, -0.1029, -0.064664, -0.064124, 0.010795, 0.02495, 0.01812, 0.10433, 0.10219, 0.013337, -0.0236, -0.089888, -0.10446, -0.11164, -0.051552, 0.045267, 0.069677, 0.13697, 0.064483, 0.098551, 0.093606, 0.037819, -0.0035166, -0.0028484, -0.031609, 0.0046812, 0.017172, 0.10537, 0.082514, 0.01027, 0.047236, 0.079023, 0.073711, 0.040152, 0.077665, 0.044443, 0.014455, 0.0224, 0.017225, 0.064739],
|
||
[0.086172, 0.043276, 0.030057, -0.012273, -0.0084498, 0.033192, -0.034726, 0.018177, -0.0097128, 0.0085166, 0.030227, 0.052416, 0.051669, -0.01391, -0.014893, -0.030204, -0.023349, -0.039154, -0.020299, -0.02687, -0.021027, -0.048342, 0.050216, 0.0017508, 0.017848, -0.035663, -0.055701, -0.034566, -0.00014494, -0.011843, -0.030725, 0.037181, -0.014335, 0.026403, -0.021572, -0.050785, -0.0067591, -0.057082, 0.0016645, -0.0041547, -0.028756, -0.037141, -0.058967, -0.016029, -0.0031722, 0.0023078, -0.048022, -0.093376, -0.055543, -0.11398, -0.027457, 0.016614, 0.0027741, -0.016349, -0.072147, 0.0015395, -0.052683, -0.060379, -0.068267, -0.036772, 0.11935, 0.10245, 0.027543, -0.03207, -0.022385, 0.05629, -0.034119, -0.069687, -0.049956, 0.029733, 0.20069, 0.11621, -0.04341, -0.0030594, 0.00063196, -0.0015553, 0.065277, 0.010466, -0.020041, 0.061756, 0.12137, 0.078247, -0.080725, -0.075077, 0.012154, 0.036822, 0.024721, 0.040716, 0.021623, 0.038658, 0.052579, 0.083631, 0.047882, -0.075157, -0.050688, -0.008839, 0.091035, 0.078447, 0.062276, 0.060595, 0.016938, 0.064081, -0.014548, 0.065658, 0.018129, -0.087985, -0.026622, 0.060886, 0.077751, 0.066438, 0.019422, 0.048505, 0.070414, 0.035827, 0.083548, 0.060028, -0.0054325, -0.0020892, -0.030512, -0.00047303, -0.023512],
|
||
[-0.019836, -0.0017613, 0.020981, 0.032445, 0.035482, 0.051464, 0.013871, 0.012773, -0.0056081, -0.011615, -0.044318, -0.060123, -0.014777, -0.0053583, -0.05438, -0.041378, -0.048977, 0.076953, 0.026914, -0.0014017, 0.0097461, 0.0046964, -0.006913, -0.040628, 0.034129, 0.011114, 0.026924, -0.034902, -0.083572, -0.017956, -0.013806, -0.062394, -0.0041427, -0.037637, -0.037725, -0.013775, -0.057705, 0.0048236, 0.072282, 0.032162, -0.065745, -0.043635, 0.00026056, -0.019143, -0.028408, -0.057929, -0.050766, 0.034536, -0.092192, -0.10533, -0.012076, 0.047513, 0.0020512, -0.026305, 0.059014, -0.041219, -0.037909, -0.035254, -0.0037642, 0.10583, 0.15061, -0.044965, -0.038673, 0.032859, 0.036836, 0.091521, 0.06793, 0.0016575, 0.011255, 0.019715, -0.04603, -0.005182, 0.13027, 0.076244, -0.062532, -0.073584, 0.077175, 0.049433, 0.035864, 0.03572, 0.020318, 0.028617, -0.18445, -0.027969, 0.14692, 0.1481, -0.032906, -0.022817, 0.081643, 0.073319, 0.096552, 0.057497, 0.019593, -0.060101, -0.05529, 0.077753, 0.082231, 0.043013, -0.084999, 0.047227, 0.11708, 0.073958, 0.068482, -0.025788, -0.042548, -0.028797, -0.028665, -0.050465, 0.0099283, 0.0074795, 0.035767, 0.013423, 0.059917, -0.017252, 0.00014025, -0.028233, -0.037232, 0.038073, 0.017201, 0.048124, 0.082875],
|
||
[0.0081889, -0.058862, -0.043961, -0.063177, -0.018314, 0.034878, 0.035304, 0.014294, -0.027457, -0.068368, 0.0016691, -0.040968, -0.039439, -0.021638, -0.037684, -0.017748, -0.042289, -0.0018177, 0.030934, 0.011733, 0.02709, 0.0017191, 0.043276, -0.072533, -0.030224, 0.021072, -0.0074147, -0.043925, 0.020289, -0.034527, 3.0471e-05, 0.026067, 0.08854, 0.014139, 0.022766, -0.0018481, 0.042676, 0.017054, -0.096746, -0.10757, 0.070755, 0.015756, 0.0096692, -0.003229, -0.015101, 0.057926, 0.050109, 0.034385, 0.054202, -0.15713, -0.10755, 0.054216, 0.15266, 0.055888, -0.095941, 0.033287, 0.093531, 0.14384, 0.12025, 0.055497, 0.036285, 0.066833, 0.042161, 0.047588, 0.021868, -0.056412, 0.067603, 0.031338, 0.050713, 0.052148, 0.018648, -0.050759, -0.044588, -0.039313, -0.059936, -0.055185, -0.019957, 0.050193, -7.1757e-05, -0.033092, -0.034428, -0.034413, -0.023267, 0.031902, 0.020239, 0.0042221, 0.015602, 0.060847, 0.041402, -0.0034146, -0.007456, -0.015894, 0.056392, 0.063355, 0.0087304, 0.013014, -0.0020131, 0.045232, 0.035378, 0.0826, 0.033716, 0.016513, 0.015814, -0.016537, 0.022388, -0.012153, 0.02454, 0.023109, 0.0067064, 0.01196, 0.018086, 0.022565, 0.02924, 0.0070031, 0.042819, 0.063646, 0.071445, 0.025002, -0.029884, -0.044839, 0.0048106],
|
||
[0.0076044, -0.031647, -0.063172, -0.074495, -0.018994, 0.052827, 0.03289, -0.01363, -0.064808, -0.029394, -0.036471, -0.0098222, -0.035121, -0.039435, -0.028818, 0.038501, -0.0049329, -0.027625, -0.067847, -0.0011073, -0.051841, -0.055931, -0.017412, -0.057527, -0.055499, 0.028375, 0.035911, -0.014961, 0.011607, -0.0075877, -0.0045075, -0.0082003, 0.01378, -0.050073, -0.049085, 0.070063, 0.041211, 0.044222, -0.09251, -0.017246, 0.0054614, 0.0057318, 0.033493, 0.0086141, 0.019265, 0.0091442, 0.058445, 0.11213, 0.0075004, -0.14041, -0.13224, 0.046901, 0.043119, 0.08258, 0.068684, 0.041318, 0.085515, 0.023787, 0.088925, 0.13629, 0.0054698, -0.086543, 0.025965, 0.10588, 0.09446, 0.081346, 0.041592, 0.0066818, 0.077674, 0.0056684, 0.042096, 0.032191, 0.030453, -0.025984, 0.025271, 0.034212, -0.011964, 0.037077, 0.045086, 0.0051588, 0.028807, 0.0386, 0.024876, -0.013892, 0.021756, -0.065358, -0.061058, -0.024592, -0.0075328, 0.019987, 0.040909, 0.040437, 0.040035, 0.018813, -0.030276, -0.030271, -0.016191, 0.0068099, 0.037916, -0.038319, 0.010307, 0.015829, 0.0408, 0.056154, 0.047863, 0.034288, 0.060681, 0.0032703, 0.0013153, 0.060955, -0.040792, 0.016183, 0.019528, 0.028894, -0.0012919, 0.034618, 0.043406, 0.029089, 0.0088268, 0.01826, 0.075373],
|
||
[0.027451, 0.041263, -0.013145, 0.012208, 0.0092477, -0.012849, 0.0045636, 0.010876, 0.028905, 0.026392, 0.010733, 0.015032, -0.029908, 0.021412, -0.057537, -0.053416, -0.048866, -0.03557, -0.018461, -0.0029791, 0.032112, 0.051478, -0.0057662, -0.017767, -0.028238, 0.023529, -0.04216, -0.041032, -0.06681, -0.039632, -0.022227, -0.0041149, 0.032302, -0.013891, -0.034276, -0.0051503, -0.021066, 0.022152, -0.0022992, -0.06277, -0.019724, -0.057691, -0.042379, 0.028983, -0.019396, -0.029332, -0.010746, -0.013921, -0.029609, -0.12538, -0.095617, -0.035129, -0.039982, 0.0090953, -0.022087, 0.029136, -0.032594, -0.020184, 0.061602, 0.15458, 0.16957, -0.040428, -0.14425, -0.071643, -0.042253, -0.027875, 0.058879, -0.00047065, -0.04392, 0.054967, -0.069297, 0.11119, 0.23666, 0.12148, -0.011434, -0.048195, -0.079328, 0.0017254, 0.037709, 0.042182, 0.03583, -0.073358, -0.14576, 0.04829, 0.1488, 0.10065, 0.063705, -0.030693, 0.056256, 0.10255, 0.078604, 0.016466, -0.0056464, -0.13298, -0.028765, 0.059394, 0.14023, 0.01141, 0.01604, 0.032382, 0.10196, 0.061382, 0.082412, -0.063666, -0.018779, -0.038366, 0.077993, 0.037853, 0.040997, 0.011083, -0.0056645, -0.014755, 0.018865, 0.0075268, 0.014018, -0.010121, 0.019767, 0.039941, 0.099261, 0.052915, 0.022179],
|
||
[-0.097161, 0.021642, 0.029135, 0.013999, 0.059317, 0.033067, 0.0085646, 0.010286, -0.0083818, 0.018754, -0.030375, -0.041904, -0.055862, -0.010903, 0.068265, 0.026036, -0.0012924, -0.0017623, 0.0054685, -0.021756, -0.049506, -0.066112, -0.022252, -0.0081983, -0.037367, 0.012775, -0.062951, -0.045045, 0.048001, 0.030007, -0.0018969, -0.015723, -0.05512, -0.012097, 0.0026362, -0.072633, -0.068873, 0.017773, 0.072339, 0.018535, -0.045281, -0.011332, -0.02728, -0.058723, 0.026328, -0.010818, -0.030611, -0.028513, 0.0012489, -0.11197, -0.05527, 0.011156, 0.0082229, -0.032306, -0.015024, 0.049383, 0.015328, 0.037662, -0.035013, -0.02945, 0.12073, 0.02286, -0.023256, -0.083648, 0.0074002, 0.010004, 0.099372, -0.025222, -0.096641, 0.053094, 0.15894, 0.033387, -0.048085, -0.010054, 0.037824, 0.0397, 0.054256, -0.024015, -0.029043, 0.046139, 0.16217, 0.01609, -0.091199, -0.076361, 0.031988, 0.036455, 0.025465, 0.074147, -0.046979, -0.049629, 0.079772, 0.087758, 0.049829, -0.030455, -0.024452, 0.067009, 0.11752, 0.11427, 0.074067, 0.0062338, -0.043366, -0.03995, -0.03541, -0.035864, 0.017813, -0.024727, -0.022276, 0.076761, 0.062045, 0.069838, 0.073013, 0.060191, -0.025406, 0.023373, 0.030478, -0.00023012, -0.026087, -0.01902, -0.036715, 0.058818, 0.068381],
|
||
[-0.011512, -0.033324, -0.0776, 0.030092, 0.03689, 0.015053, 0.028017, -0.01019, -0.078318, -0.059233, -0.018527, 0.053961, -0.026974, -0.018041, 0.044307, 0.015819, -0.031954, -0.027401, -0.046791, -0.020608, -0.026272, -0.080187, 0.083846, 0.0014068, -0.049854, -0.021417, 0.066537, -0.0073245, -0.018145, -0.015182, -0.045131, 0.029948, 0.0064481, 0.042275, -0.074359, -0.014177, 0.077655, -0.010551, -0.12638, -0.033587, 0.062817, 0.0053909, 0.025795, 0.059722, -0.082995, 0.0042617, 0.10585, 0.071364, -0.026422, -0.16101, -0.05472, 0.048999, 0.075435, 0.010536, -0.048017, -0.08034, 0.039577, 0.036637, 0.12099, 0.13549, 0.051195, 0.018226, 0.085661, 0.18622, 0.10338, 0.023906, -0.0041823, -0.10643, -0.078125, -0.073469, -0.04842, 0.015109, -0.032646, 0.036236, 0.0080905, 0.11268, 0.10279, 0.044282, 0.010681, 0.048923, 0.054874, -0.018065, -0.018189, -0.071125, -0.10261, -0.05249, 0.024032, 0.019694, 0.049637, 0.032196, 0.008328, 0.070139, 0.06755, 0.057434, 0.020438, 0.0032421, -0.050695, -0.015384, 0.020203, -0.015663, 0.031709, 0.012506, 0.028623, 0.059463, 0.011987, 0.029656, -0.0016058, 0.032925, 0.031881, 0.050423, 0.015557, 0.021386, 0.0099933, 0.014351, 0.039479, 0.066852, 0.040297, 0.0099526, -0.0023558, 0.018149, 0.059119],
|
||
[-0.015757, -0.049129, -0.023998, -0.021003, -0.0015358, 0.0021065, -0.037107, -0.042352, -0.061163, -0.034051, -0.02272, -0.06074, -0.026757, 0.00055934, -0.022616, 0.0070862, 0.013566, -0.0028115, -0.03858, -0.014823, -0.034836, -0.026656, -0.019478, -0.012107, 0.0042484, 0.016085, 0.00066552, 0.0016008, 0.020524, 0.061833, 0.0036079, -0.069862, -0.027833, -0.032569, 0.045124, -0.020542, 0.006226, -0.017204, -0.067138, -0.02151, 0.10815, 0.03721, -0.0060277, -0.016395, 0.027666, 0.073069, 0.050576, 0.042568, -0.040728, -0.18025, -0.051804, 0.068699, 0.10469, 0.046931, -0.024345, 0.081519, 0.13438, 0.12767, 0.058828, -0.065397, -0.010972, 0.015965, 0.064316, 0.092048, 0.079924, 0.0045625, -0.018287, 0.01743, 0.076145, 0.042835, 0.080207, 0.036117, 0.047379, -0.019875, 0.037658, 0.026116, 0.071588, -0.057638, -0.083807, -0.020457, -0.0066816, -0.010482, 0.0098189, -0.018911, 0.027174, 0.0048187, 0.0084831, 0.046647, 0.074896, -0.0027052, -0.052391, -0.035811, -0.010963, 0.036472, 0.015668, 0.03188, 0.028321, 0.029977, -0.0029437, 0.03462, 0.085725, 0.014662, 0.057456, -0.007795, 0.056967, 0.039174, -4.3951e-05, 0.039525, 0.033815, -0.053148, 0.046135, 0.034368, 0.025851, 0.043642, 0.028915, -0.0046553, 0.040695, 0.050442, 0.023379, -0.0043674, -0.067829]
|
||
]
|
||
},
|
||
"numPatches": 71,
|
||
"patchSize": [11, 11],
|
||
"canvasSize": [114, 102]
|
||
},
|
||
"shapeModel": {
|
||
"eigenVectors": [
|
||
[-0.25918, -0.049312, -0.13804, -0.050836, 0.00068527, -0.019144, 0.023319, -0.016196, 0.0036094, -0.23833, 0.020658, -0.015932, 0.064262, -0.090635, 0.022056, -0.093726, 0.055118, -0.053233, 0.0062574, -0.094495],
|
||
[-0.015371, -0.27559, 0.043057, -0.017592, -0.095867, 0.037459, 0.028918, 0.13017, 0.063869, 0.093354, 0.031861, 0.020242, 0.27294, -0.13041, -0.0031444, 0.065211, 0.23797, -0.14727, 0.036057, -0.12952],
|
||
[-0.27439, -0.039853, -0.1345, -0.029787, -0.079526, -0.11665, 0.035666, 0.0024172, 0.071, -0.194, 0.047707, -0.060782, 0.075256, -0.086537, -0.010494, 0.0038623, 0.019089, -0.010833, 0.01729, -0.048709],
|
||
[-6.0611e-05, -0.29074, 0.061165, -0.040564, -0.096174, -0.006241, 0.098422, 0.12645, 0.05234, 0.14549, 0.019045, 0.11593, 0.11304, -0.22654, -0.026029, 0.14284, 0.10353, -0.031496, -0.047636, -0.031406],
|
||
[-0.28061, -0.0285, -0.13348, -0.048224, -0.11476, -0.16358, 0.04864, 0.010323, 0.044309, -0.1123, 0.056897, -0.04627, -0.037397, -0.13318, -0.010864, 0.039312, -0.010946, -0.012651, 0.011106, 0.030546],
|
||
[0.014069, -0.25865, 0.065608, -0.045936, -0.077032, -0.012717, 0.12471, 0.11892, -0.01367, 0.12043, 0.011009, 0.19013, -0.032169, -0.17265, -0.036627, 0.11829, -0.077253, 0.049108, -0.088365, 0.034692],
|
||
[-0.2649, -0.016038, -0.15478, -0.054519, -0.11072, -0.13807, 0.083151, -0.00084689, -0.066659, -0.014543, 0.052714, 0.027388, -0.14574, -0.06911, 0.0058712, 0.038653, 0.035449, -0.027971, -0.0058316, -0.01235],
|
||
[0.046354, -0.20341, 0.067449, -0.041981, -0.01392, -0.04931, 0.10476, 0.16149, -0.057377, 0.068718, -0.055875, 0.29988, -0.16587, -0.018902, -0.021824, 0.01015, -0.1561, 0.13122, -0.13142, 0.13137],
|
||
[-0.20187, 0.0034527, -0.14527, -0.054549, -0.07767, -0.099693, 0.11163, -0.027564, -0.17, 0.052817, 0.0046486, 0.13801, -0.22662, 0.025099, 0.05739, -0.010585, 0.062813, -0.066384, 0.029034, -0.11015],
|
||
[0.059919, -0.17456, 0.045547, -0.021382, 0.056054, -0.055753, 0.05095, 0.14366, -0.058304, -0.039882, -0.029734, 0.2412, -0.1539, 0.099337, -0.0079106, -0.091413, -0.17109, 0.079536, -0.07008, 0.10305],
|
||
[-0.11407, 0.0077005, -0.097128, -0.048798, -0.034682, -0.034999, 0.086921, -0.095836, -0.20896, 0.08204, -0.038157, 0.17097, -0.22949, 0.12077, 0.083445, -0.06885, 0.10657, -0.11112, 0.14357, -0.1473],
|
||
[0.050549, -0.13771, -0.008012, -0.0015715, 0.11898, -0.070033, 0.016791, 0.11156, -0.08231, -0.17681, 0.031785, 0.13575, -0.030875, 0.14057, 0.011927, -0.12276, -0.089723, 0.026135, -0.012285, 0.045456],
|
||
[-0.01028, -0.0013954, -0.0425, -0.040684, -3.7807e-05, 0.035049, 0.013909, -0.16422, -0.15344, 0.06372, -0.032069, 0.09303, -0.10431, 0.21548, 0.062045, -0.0975, 0.082375, -0.15218, 0.21188, -0.078833],
|
||
[0.020507, -0.080792, -0.076178, 0.048751, 0.16094, -0.0849, 0.019596, 0.042554, -0.092199, -0.29635, 0.068277, 0.016317, 0.097753, 0.078154, 0.043343, -0.075376, 0.033023, 0.059878, 0.024112, -0.088306],
|
||
[0.040972, -0.0012967, -0.0020002, 0.0014908, 0.0030003, -0.0021443, 0.00056119, -0.19612, -0.0017679, -0.0059159, 0.0012463, 0.02461, 0.0022007, 0.22488, -0.00058423, -0.082013, 0.00042633, 0.0033161, 0.27617, -0.0016609],
|
||
[-0.00080695, -0.065839, -0.10156, 0.075695, 0.15234, -0.10888, 0.028494, 0.0038627, -0.089766, -0.30037, 0.063282, -0.0004847, 0.11174, -0.004429, -0.029664, 0.0016153, 0.021647, 0.16837, -0.0054392, -0.084329],
|
||
[-0.011079, -0.0017869, 0.039468, 0.042572, 0.0063749, -0.038365, -0.013127, -0.16577, 0.14969, -0.07534, 0.034732, 0.092316, 0.10808, 0.21223, -0.060291, -0.094457, -0.081011, 0.15442, 0.21076, 0.075295],
|
||
[-0.020086, -0.080784, -0.077792, 0.047112, 0.16082, -0.083454, 0.020128, -0.036055, -0.09817, -0.29361, 0.066961, -0.019967, 0.09357, -0.086578, 0.045752, 0.079157, 0.036241, 0.053839, -0.032436, -0.091341],
|
||
[-0.11597, -0.013117, 0.096737, 0.048698, 0.03934, 0.032214, -0.086192, -0.10015, 0.20556, -0.088938, 0.039379, 0.1655, 0.2281, 0.11514, -0.082911, -0.063962, -0.11002, 0.11206, 0.14394, 0.14898],
|
||
[-0.046018, -0.1373, -0.01183, -0.0034917, 0.11752, -0.071357, 0.0202, -0.1077, -0.090474, -0.17344, 0.030258, -0.14237, -0.039887, -0.14521, 0.015204, 0.12538, -0.085457, 0.02174, 0.0066221, 0.03962],
|
||
[-0.20407, -0.010324, 0.14695, 0.053665, 0.079817, 0.097421, -0.10953, -0.0332, 0.16757, -0.054347, -0.0058158, 0.12841, 0.22039, 0.021169, -0.057657, -0.0069775, -0.069501, 0.069464, 0.031771, 0.11412],
|
||
[-0.051924, -0.17429, 0.039791, -0.023513, 0.052953, -0.059636, 0.055306, -0.14246, -0.064953, -0.037771, -0.029527, -0.24645, -0.1627, -0.10025, -0.0056447, 0.091759, -0.16848, 0.07686, 0.068882, 0.098631],
|
||
[-0.26652, 0.0080164, 0.15732, 0.052824, 0.11009, 0.13602, -0.078962, -0.0072047, 0.064348, 0.017238, -0.054873, 0.015559, 0.13909, -0.068312, -0.006726, 0.038223, -0.041568, 0.033116, -0.0006524, 0.017514],
|
||
[-0.035888, -0.20388, 0.061302, -0.044095, -0.018269, -0.054708, 0.10796, -0.16133, -0.059957, 0.068092, -0.053756, -0.30073, -0.17148, 0.021608, -0.021576, -0.011664, -0.15458, 0.13002, 0.13155, 0.13078],
|
||
[-0.28095, 0.018294, 0.13596, 0.046378, 0.11163, 0.16295, -0.043692, 0.005633, -0.044813, 0.11695, -0.056419, -0.053721, 0.036101, -0.12627, 0.0094131, 0.034624, 0.0078958, 0.014575, 0.014576, -0.029157],
|
||
[-0.0030095, -0.25957, 0.060302, -0.047799, -0.081491, -0.019148, 0.12653, -0.11923, -0.011915, 0.11592, 0.013241, -0.18816, -0.033617, 0.17776, -0.037026, -0.11975, -0.077625, 0.048572, 0.08786, 0.035868],
|
||
[-0.27417, 0.028374, 0.13681, 0.028167, 0.075677, 0.11631, -0.031763, -0.0025636, -0.068884, 0.19958, -0.04692, -0.0653, -0.070747, -0.07755, 0.009461, -0.0017651, -0.014997, 0.0095846, 0.019152, 0.047435],
|
||
[0.010865, -0.29209, 0.055821, -0.041705, -0.099231, -0.010829, 0.09975, -0.12644, 0.055095, 0.13774, 0.020908, -0.11345, 0.11591, 0.22977, -0.026422, -0.14288, 0.1042, -0.031898, 0.046918, -0.033299],
|
||
[-0.25838, 0.038423, 0.13963, 0.050104, -0.0044595, 0.020604, -0.022162, -0.021309, -0.0010918, 0.24182, -0.019387, -0.016717, -0.053465, -0.08543, -0.022163, -0.096221, -0.045705, 0.047393, 0.0048329, 0.089322],
|
||
[0.025564, -0.27732, 0.037589, -0.01958, -0.095765, 0.036676, 0.029814, -0.12944, 0.063961, 0.083898, 0.03265, -0.019599, 0.27526, 0.13388, -0.0022735, -0.06147, 0.23995, -0.14925, -0.036275, -0.13314],
|
||
[-0.041104, 0.03824, 0.089308, 0.10752, -0.15824, -0.20816, -0.05678, 0.031965, -0.036292, -0.010284, -0.22616, 0.0035659, 0.061195, -0.077357, 0.10906, -0.32123, -0.062437, 0.045061, -0.13893, -0.075947],
|
||
[-0.00058626, -0.028013, 0.033925, 0.096976, 0.12885, -0.13433, -0.054635, -0.18671, 0.12024, -0.016776, -0.37344, 0.16617, -0.043638, -0.021519, 0.08833, -0.099975, 0.11085, -0.017708, -0.082914, -0.0077089],
|
||
[0.02714, 0.023191, 0.068434, 0.071893, -0.1454, -0.16792, -0.070781, 0.066657, -0.076045, -0.03488, -0.278, 0.06132, 0.0723, -0.023705, -0.044019, -0.27111, -0.046476, 0.0004387, -0.12313, -0.15561],
|
||
[0.0076812, 0.027031, 0.05186, 0.093607, 0.237, -0.11818, 0.012899, -0.13978, 0.10628, 0.053512, -0.10841, 0.14453, -0.046948, -0.028787, -0.027495, 0.054014, 0.070313, -0.07865, -0.03377, 0.11646],
|
||
[0.059719, 0.019365, 0.039768, 0.02943, -0.099503, -0.095192, -0.037385, 0.08759, -0.063224, -0.023056, -0.11334, 0.070632, 0.04052, -0.01614, -0.20119, -0.13465, -0.11306, -0.21055, -0.043694, -0.053042],
|
||
[0.0041645, 0.070452, 0.057003, 0.12331, 0.23821, -0.13581, 0.032581, -0.092174, 0.027564, 0.12746, 0.12379, 0.10986, -0.021826, -0.040456, -0.0041165, 0.063285, -0.0047004, -0.052424, -0.01813, -0.030724],
|
||
[0.072669, 0.016043, 0.026274, 0.0035342, -0.059453, -0.049835, -0.02393, 0.10364, -0.062651, -0.008958, 0.013307, 0.06849, 0.042477, -0.012887, -0.32345, -0.10205, -0.17377, -0.23316, -0.011128, 0.0081902],
|
||
[0.00094691, 0.086262, 0.056562, 0.14777, 0.20316, -0.15155, 0.024606, -0.059728, -0.081607, 0.20453, 0.2079, 0.061226, 0.028169, -0.036131, 0.026537, 0.039991, -0.049029, -0.014036, -0.0096336, -0.23759],
|
||
[-0.041049, -0.039313, -0.087903, -0.10361, 0.16319, 0.20271, 0.054585, 0.039292, 0.040999, 0.0096154, 0.21128, -0.0029798, -0.062866, -0.076449, -0.10549, -0.31704, 0.066753, -0.045723, -0.13556, 0.075584],
|
||
[0.0022043, -0.026486, 0.037416, 0.10113, 0.12252, -0.14242, -0.056828, 0.1853, 0.11872, -0.017168, -0.38206, -0.16618, -0.041195, 0.024548, 0.092556, 0.11255, 0.10831, -0.01592, 0.08832, -0.010693],
|
||
[0.026817, -0.022109, -0.066339, -0.068152, 0.15462, 0.16314, 0.071234, 0.072109, 0.080171, 0.03696, 0.27352, 0.055582, -0.074092, -0.022553, 0.042902, -0.27302, 0.049209, -0.0035352, -0.12171, 0.16007],
|
||
[-0.0087439, 0.027923, 0.054514, 0.096365, 0.23109, -0.1247, 0.010102, 0.13705, 0.1032, 0.052097, -0.11927, -0.14683, -0.044065, 0.029698, -0.029207, -0.043298, 0.068429, -0.078571, 0.038592, 0.11024],
|
||
[0.059509, -0.016576, -0.037493, -0.024552, 0.10881, 0.089771, 0.038639, 0.091151, 0.06426, 0.028057, 0.11812, 0.066252, -0.041348, -0.014535, 0.20087, -0.13704, 0.11279, 0.20832, -0.042946, 0.051792],
|
||
[-0.0065127, 0.071159, 0.058524, 0.12437, 0.23411, -0.13946, 0.031083, 0.088654, 0.025053, 0.12646, 0.11923, -0.11255, -0.020213, 0.041061, -0.012035, -0.057934, -0.0091486, -0.060674, 0.019836, -0.032789],
|
||
[0.072575, -0.012634, -0.024026, 0.002287, 0.067406, 0.043829, 0.02488, 0.10591, 0.059389, 0.017004, -0.005111, 0.066026, -0.041334, -0.011454, 0.32424, -0.10355, 0.1717, 0.23243, -0.01074, -0.017539],
|
||
[-0.0038075, 0.086827, 0.057553, 0.1478, 0.20067, -0.1534, 0.023645, 0.0556, -0.084011, 0.20402, 0.20827, -0.063875, 0.029819, 0.036611, 0.013781, -0.035941, -0.055833, -0.023206, 0.010064, -0.23708],
|
||
[-0.023504, -0.039048, -0.085567, -0.07915, 0.12465, 0.13892, 0.024301, 0.066995, -0.036811, -0.0058879, -0.090783, -0.0042989, 0.043496, 0.062508, -0.078226, 0.043009, -0.006916, -0.04268, -0.019029, -0.015975],
|
||
[-0.0073613, -0.021107, 0.039763, 0.055626, -0.049656, 0.08481, -0.11232, 0.126, -0.023632, -0.057175, -0.0059589, -0.12646, -0.034427, 0.013453, 0.017897, -0.076871, 0.010909, -0.022518, 0.0081303, -0.034046],
|
||
[0.016949, -0.021935, -0.063152, -0.0528, 0.10435, 0.10825, 0.033041, 0.086335, -0.015563, 0.0087724, -0.09103, 0.0052611, 0.0074128, 0.12677, -0.010974, 0.12218, -0.032293, -0.041308, 0.0097002, -0.04612],
|
||
[-0.0066832, 0.0080822, 0.046932, 0.080999, -0.021246, 0.077223, -0.1208, 0.097572, -0.098662, -0.081072, -0.00075065, -0.10368, -0.10332, 0.018814, -0.010497, -0.061596, 0.18741, -0.10374, 0.0019642, 0.19297],
|
||
[0.0011333, -0.011109, -0.044177, -0.026938, 0.058203, 0.06766, 0.012523, 0.086955, 0.014537, -0.0024289, -0.067247, 0.010136, -0.021704, 0.059668, 0.090059, 0.058504, -0.095515, -0.060413, -0.017229, -0.065438],
|
||
[0.001501, 0.012001, 0.026456, 0.050506, -0.059044, 0.092763, -0.059216, 0.051446, -0.033728, -0.013303, 0.052355, -0.072966, -0.013674, 0.030573, -0.00012695, -0.036559, -0.077239, 0.00060169, 0.005698, -0.095808],
|
||
[0.0045411, -0.02974, -0.061285, -0.051929, 0.095879, 0.10777, 0.018083, 0.11657, -0.018095, 0.0028619, -0.11164, -0.0016145, 0.018507, 0.085963, -0.0049371, 0.10297, -0.034909, -0.032022, 0.026463, -0.058609],
|
||
[-0.003894, 0.012492, 0.035153, 0.021732, -0.075237, 0.11222, -0.12233, 0.089598, -0.025863, -0.0013533, 0.037452, -0.095172, -0.025294, 0.0092337, 0.045198, -0.060782, -0.10825, 0.10079, -0.015705, -0.15393],
|
||
[-0.0022817, -0.024061, -0.064375, -0.051684, 0.082587, 0.108, 0.011766, 0.13476, -0.02204, 0.0027266, -0.078308, -0.0085373, 0.018275, 0.14969, 0.011605, 0.20993, -0.039923, -0.056634, 0.061774, -0.1028],
|
||
[-0.0045582, -0.00066199, 0.030116, 0.052015, -0.057149, 0.10832, -0.12177, 0.094733, -0.053777, -0.066174, 0.026678, -0.096802, -0.073708, 0.014543, 0.0079362, -0.062351, 0.011446, -0.022934, -0.0045563, -0.014346],
|
||
[-0.023196, 0.038186, 0.087067, 0.081279, -0.12651, -0.13547, -0.028704, 0.061982, 0.035852, 0.003632, 0.090478, 0.00068386, -0.044818, 0.06193, 0.07887, 0.046002, 0.0073402, 0.04176, -0.019334, 0.014622],
|
||
[0.008281, -0.022628, 0.036363, 0.052466, -0.04471, 0.090214, -0.11127, -0.12854, -0.025063, -0.057363, -0.0095288, 0.12653, -0.032687, -0.015904, 0.014803, 0.075118, 0.010628, -0.024181, -0.0073747, -0.034648],
|
||
[0.017199, 0.022236, 0.064951, 0.055948, -0.10511, -0.10512, -0.037772, 0.082426, 0.011666, -0.011958, 0.09093, 0.0093392, -0.011475, 0.12593, 0.010552, 0.12451, 0.039647, 0.037191, 0.0096153, 0.053682],
|
||
[0.0060107, 0.0072123, 0.044409, 0.078858, -0.017121, 0.081425, -0.11941, -0.1009, -0.099198, -0.080664, -0.0043344, 0.10339, -0.10295, -0.023791, -0.010921, 0.056737, 0.186, -0.10529, -0.0023446, 0.191],
|
||
[0.0010733, 0.011572, 0.045184, 0.028906, -0.060482, -0.063955, -0.014845, 0.084862, -0.015854, 0.0019032, 0.069256, 0.013001, 0.021149, 0.058418, -0.089994, 0.059899, 0.0924, 0.06039, -0.01744, 0.061615],
|
||
[-0.0015445, 0.011555, 0.024696, 0.049406, -0.056706, 0.095356, -0.058677, -0.05483, -0.03313, -0.013389, 0.049667, 0.072511, -0.014518, -0.032899, 0.0034192, 0.034227, -0.08094, -0.0017775, -0.0050152, -0.09831],
|
||
[0.0046909, 0.030208, 0.062622, 0.052744, -0.098767, -0.10326, -0.022886, 0.11295, 0.017063, -0.0029129, 0.11303, 0.0021341, -0.019489, 0.085533, 0.0067129, 0.10528, 0.030619, 0.035966, 0.027061, 0.052503],
|
||
[0.0037122, 0.011312, 0.032713, 0.019671, -0.071403, 0.11638, -0.12153, -0.094118, -0.026556, -0.0012395, 0.033028, 0.095162, -0.024546, -0.012611, 0.044968, 0.056681, -0.10954, 0.099453, 0.014651, -0.15612],
|
||
[-0.0021004, 0.024016, 0.065511, 0.053692, -0.084773, -0.10365, -0.016552, 0.13092, 0.019906, -0.00533, 0.079298, -0.0047191, -0.021163, 0.149, -0.011283, 0.21223, 0.040343, 0.055687, 0.061906, 0.10216],
|
||
[0.0046445, -0.0016089, 0.027558, 0.04994, -0.053853, 0.11249, -0.12121, -0.099966, -0.054603, -0.066015, 0.023574, 0.097064, -0.072931, -0.020425, 0.008387, 0.054036, 0.0098649, -0.025146, 0.0021205, -0.018382],
|
||
[0.081811, 0.0013429, 0.00052034, 0.001415, -5.5785e-05, 0.00050437, 0.000145, 0.053461, -0.0023341, -0.00054674, 0.002414, 0.050804, 0.0020717, -0.043036, -0.0041825, -0.048411, -0.0026617, -0.002868, 0.023711, -0.00077901],
|
||
[-0.0016113, 0.068182, 0.02642, 0.071844, -0.0028325, 0.025609, 0.0073621, -0.0010529, -0.11851, -0.02776, 0.12257, -0.0010006, 0.10519, 0.0008476, -0.21236, 0.00095346, -0.13514, -0.14562, -0.00046699, -0.039553],
|
||
[0.093167, -0.014401, -0.024259, -0.036742, 0.00078129, 0.019454, -0.0039861, -0.020993, -0.038747, 0.022799, -0.026621, 0.0015937, 0.056985, -0.12003, -0.024168, -0.0052872, -0.066418, 0.13427, 0.12116, 0.017717],
|
||
[-0.0043277, 0.10938, 0.025032, -0.053334, -0.076358, 0.041667, 0.122, 0.019619, -0.0087275, -0.027906, -0.0020209, -0.03718, 0.085757, -0.0043895, 0.18879, -0.013536, -0.080459, -0.096481, 0.0087288, 0.10539],
|
||
[0.068926, -0.0038995, -0.038483, -0.053422, 0.020614, -0.024275, -0.033835, -0.0013678, -0.040894, -0.0036977, -0.022243, -0.0092916, 0.047029, -0.13509, 0.039419, -0.023948, -0.17002, -0.072578, 0.12021, 0.10088],
|
||
[-0.0035851, 0.098585, 0.036485, -0.07837, -0.060738, 0.024631, 0.11531, 0.025281, 0.020332, -0.017891, -0.012565, -0.029379, 0.056813, 0.016355, 0.1716, -0.027596, -0.057953, -0.014689, 0.0048945, 0.096282],
|
||
[0.082029, -0.0074757, -0.024317, -0.059451, 0.015388, -0.017755, -0.03101, 0.014233, -0.045998, 0.014614, -0.029813, -0.025341, 0.057084, -0.13354, 0.028972, -0.022875, -0.15035, -0.014709, 0.11573, 0.087448],
|
||
[0.0031065, 0.097355, 0.048803, -0.089657, -0.053981, 0.016189, 0.10551, 0.02838, 0.022379, -0.012573, -0.023347, -0.037642, 0.067804, 0.010192, 0.14003, -0.02179, -0.031733, 0.0074466, 0.0062393, 0.027541],
|
||
[0.13874, 0.0029894, 0.00093656, -0.00071957, -0.00088727, 0.00037084, 0.0039663, 0.011515, -0.0016058, -0.00059454, -0.00015463, -0.021428, 0.0017942, -0.18743, 0.00028053, -0.061963, 0.001006, -0.00058912, 0.18355, 0.0011045],
|
||
[-0.0027325, 0.15179, 0.047553, -0.036535, -0.045051, 0.018829, 0.20139, -0.0002268, -0.081533, -0.030187, -0.0078511, 0.00042203, 0.091097, 0.0036914, 0.014244, 0.0012204, 0.051077, -0.029912, -0.003615, 0.05608],
|
||
[0.081843, 0.011303, 0.02622, 0.055874, -0.017502, 0.018379, 0.03514, 0.013104, 0.046843, -0.015097, 0.028871, -0.023839, -0.05437, -0.13383, -0.023436, -0.021999, 0.14899, 0.014991, 0.1154, -0.086296],
|
||
[-0.006334, 0.096985, 0.047808, -0.091928, -0.053334, 0.015477, 0.10421, -0.028918, 0.02055, -0.011988, -0.024503, 0.038611, 0.069999, -0.0049259, 0.14106, 0.022674, -0.037629, 0.0068616, -0.010791, 0.030963],
|
||
[0.069014, 0.0077782, 0.03989, 0.050294, -0.02299, 0.025226, 0.038349, -0.0023622, 0.041663, 0.0029904, 0.021731, -0.0081276, -0.044755, -0.13563, -0.032631, -0.022843, 0.1676, 0.071943, 0.11993, -0.097015],
|
||
[0.00086837, 0.098355, 0.034941, -0.080413, -0.059879, 0.023656, 0.11389, -0.025207, 0.018706, -0.018023, -0.013432, 0.029722, 0.05862, -0.011023, 0.17302, 0.028518, -0.064602, -0.017535, -0.009624, 0.10018],
|
||
[0.093265, 0.018696, 0.025226, 0.034614, -0.0037873, -0.017798, 0.0087869, -0.021749, 0.038373, -0.02388, 0.026521, 0.0030565, -0.053564, -0.11976, 0.031583, -0.0047501, 0.063198, -0.13797, 0.12073, -0.013554],
|
||
[0.00065588, 0.10873, 0.024058, -0.05474, -0.076268, 0.042401, 0.12175, -0.018777, -0.010246, -0.026986, -0.0030676, 0.037088, 0.087934, 0.0091122, 0.1877, 0.013734, -0.083011, -0.091119, -0.013493, 0.106],
|
||
[0.15198, 0.0028006, 0.00074601, 0.00047878, -0.00028276, 0.00046544, 0.002781, 0.014577, -0.0023714, -7.4399e-05, 0.00042809, 0.032335, 0.0025661, -0.11258, -0.0019629, -0.068299, -0.00085204, -0.0010859, 0.1352, 0.00036773],
|
||
[-0.0029933, 0.1422, 0.037878, 0.024309, -0.014357, 0.023632, 0.1412, -0.0002871, -0.1204, -0.0037776, 0.021736, -0.00063685, 0.13029, 0.0022173, -0.099666, 0.0013452, -0.043261, -0.055136, -0.0026627, 0.018671],
|
||
[0.13164, -0.023622, -0.010986, -0.039968, 0.011571, 0.033206, -0.05117, -0.014142, -0.040076, 0.014048, -0.038612, -0.0061341, 0.01909, -0.16518, 0.030389, -0.0032825, -0.11074, -0.013924, 0.17523, 0.020528],
|
||
[-0.013331, 0.15174, 0.050439, -0.032634, -0.024682, 0.04785, 0.19726, 0.024422, -0.12826, -0.0096122, -0.051464, -0.034671, 0.12765, 0.0036732, 0.043964, -0.02446, 0.038083, 0.0069073, -0.0048465, 0.038265],
|
||
[0.13206, 0.029579, 0.012963, 0.038652, -0.012533, -0.031296, 0.058898, -0.015093, 0.034995, -0.014415, 0.036556, -0.0047642, -0.014049, -0.1652, -0.028634, -0.0023168, 0.11215, 0.014185, 0.17529, -0.019005],
|
||
[0.0081372, 0.15069, 0.049967, -0.034182, -0.024207, 0.04912, 0.1951, -0.023846, -0.12974, -0.0090517, -0.052945, 0.034885, 0.1283, 0.0028336, 0.045127, 0.02457, 0.033693, 0.0063537, -0.0020569, 0.039043],
|
||
[-0.0038309, -0.0063276, -0.052088, -0.1806, 0.06685, -0.12575, -0.21251, -0.073443, -0.16678, 0.074329, 0.013077, -0.062465, 0.12875, 0.012954, 0.029467, 0.0018815, 0.016686, -0.033447, -0.18253, 0.065849],
|
||
[0.0040364, 0.0054285, -0.044557, -0.17696, 0.004967, -0.10595, -0.15417, 0.058039, 0.23028, -0.0065144, 0.086591, -0.058097, -0.016971, 0.018176, 0.14783, -0.078001, -0.097636, -0.23239, 0.02167, 0.025891],
|
||
[0.066275, 0.010935, 0.014806, -0.12124, 0.028556, -0.036048, -0.10364, -0.075579, -0.14633, 0.0464, -0.037991, -0.052857, 0.077592, -0.036722, -0.060381, 0.04572, 0.040593, 0.17851, -0.11244, 0.010952],
|
||
[0.00064918, 0.075926, 0.017475, -0.19376, 0.0040828, -0.031841, -0.044577, 0.030139, 0.14151, -0.02134, 0.010565, -0.049083, -0.090521, 0.019608, -0.10736, -0.03545, 0.0033882, -0.0017409, 0.013727, -0.052914],
|
||
[0.10399, 0.0025553, 0.0092925, -0.039069, 0.0011162, -0.0035913, -0.04118, -0.062868, -0.065948, 0.030965, -0.014729, -0.042241, 0.06468, -0.073966, -0.027365, 0.0526, 0.011956, 0.12005, -0.032601, -0.0051692],
|
||
[-0.0023093, 0.11195, 0.046232, -0.16547, 0.0046114, -0.010781, 0.051679, 0.01146, 0.089804, -0.034391, -0.051201, -0.020257, -0.083425, 0.0026742, -0.23595, -0.023521, 0.05601, 0.075817, 0.0087274, -0.033058],
|
||
[0.11206, 0.002208, 0.00098929, -0.003301, 0.00025018, -0.00015106, 0.00091684, -0.06328, 0.0017043, -0.00032172, -0.0013785, -0.052335, -0.0015449, -0.053192, -0.0044537, 0.059986, 0.001468, 0.0015596, -0.0197, -0.0008542],
|
||
[-0.0022071, 0.11211, 0.05023, -0.16761, 0.012703, -0.0076701, 0.046552, 0.0012463, 0.086533, -0.016335, -0.069993, 0.0010307, -0.07844, 0.0010476, -0.22613, -0.0011814, 0.074535, 0.079185, 0.000388, -0.043371],
|
||
[0.104, 0.0018546, -0.007465, 0.032523, -0.00093374, 0.003164, 0.043183, -0.063271, 0.069433, -0.032295, 0.012701, -0.041411, -0.067914, -0.074014, 0.018054, 0.053485, -0.0097409, -0.11697, -0.032919, 0.0038635],
|
||
[-0.001787, 0.11196, 0.046562, -0.16688, 0.0046517, -0.010914, 0.050018, -0.008976, 0.087138, -0.033145, -0.051741, 0.021904, -0.080814, 0.00024026, -0.23685, 0.021431, 0.056437, 0.080485, -0.007437, -0.033236],
|
||
[0.066198, -0.0079373, -0.014107, 0.11351, -0.028373, 0.034766, 0.1018, -0.076707, 0.15179, -0.047204, 0.038378, -0.050883, -0.081096, -0.037466, 0.056107, 0.047081, -0.040428, -0.17844, -0.11289, -0.013027],
|
||
[-0.0032582, 0.076298, 0.018045, -0.19838, 0.005204, -0.033236, -0.048623, -0.02714, 0.13564, -0.019497, 0.0090612, 0.051126, -0.087396, -0.018147, -0.10965, 0.033622, 0.004984, 0.0052893, -0.0092889, -0.052441],
|
||
[-0.0039869, 0.0065364, 0.050294, 0.17349, -0.066602, 0.12149, 0.20627, -0.075671, 0.17571, -0.074528, -0.0096575, -0.060129, -0.12932, 0.012229, -0.023623, 0.0049513, -0.020517, 0.024271, -0.18324, -0.064778],
|
||
[-0.0038824, 0.0051751, -0.046574, -0.18393, 0.0075954, -0.11082, -0.16242, -0.055103, 0.22354, -0.0035826, 0.087039, 0.060512, -0.011888, -0.018672, 0.14888, 0.077867, -0.096904, -0.23352, -0.014466, 0.028463],
|
||
[0.03097, 0.0047092, -0.0075287, 0.16358, -0.05269, 0.089604, 0.14219, -0.10514, 0.1452, -0.054725, -0.029364, -0.050839, -0.06189, 0.044141, -0.050418, 0.025015, -0.016424, 0.044951, -0.20678, -0.068404],
|
||
[-0.0061911, 0.02549, -0.17773, -0.011649, -0.033779, -0.037805, -0.10673, -0.042821, 0.11269, 0.08733, 0.0073968, 0.043681, 0.017818, -0.025762, 0.053617, 0.053929, -0.045882, -0.054494, -0.01829, 0.050792],
|
||
[0.072542, 0.0064767, -0.026271, 0.11039, -0.034052, 0.048185, 0.068957, -0.088822, 0.083965, -0.032426, -0.026028, -0.062976, -0.033734, 0.05017, -0.0071563, 0.036377, -0.027785, 0.045788, -0.16057, -0.044454],
|
||
[-0.004648, 0.046087, -0.27901, 0.098064, -0.061904, 0.015661, -0.064718, -0.035866, 0.014465, 0.15614, -0.056402, 0.02919, 0.064899, -0.012066, 0.018025, 0.032618, 0.022591, 0.098127, -0.011371, 0.053108],
|
||
[0.092348, 0.0010952, -0.0059954, 0.002549, -0.0015526, 0.0006001, -0.00090017, -0.096894, -0.00043212, 0.0031098, -0.0013362, -0.068512, 0.0017058, 0.027411, -0.00020316, 0.051833, 0.00062915, 0.0030024, -0.12667, 0.0010261],
|
||
[-0.0018188, 0.055608, -0.30441, 0.12942, -0.078831, 0.03047, -0.045705, 0.0019083, -0.021941, 0.1579, -0.067846, 0.0013494, 0.08661, -0.00053986, -0.010315, -0.0010209, 0.031945, 0.15244, 0.0024948, 0.052101],
|
||
[0.072669, -0.004657, 0.015264, -0.10645, 0.031588, -0.047531, -0.071452, -0.087341, -0.083331, 0.038549, 0.023787, -0.064076, 0.036263, 0.050607, 0.0078605, 0.035065, 0.028653, -0.041889, -0.16, 0.046511],
|
||
[0.001788, 0.046306, -0.27983, 0.10233, -0.063197, 0.017546, -0.061952, 0.039336, 0.01776, 0.15474, -0.057383, -0.026688, 0.06352, 0.010081, 0.017729, -0.034025, 0.02148, 0.099853, 0.017685, 0.051316],
|
||
[0.03119, -0.0037019, 0.00052469, -0.16391, 0.051319, -0.091023, -0.14628, -0.10337, -0.14065, 0.058121, 0.029632, -0.052519, 0.062544, 0.045122, 0.05249, 0.022872, 0.014605, -0.047062, -0.2059, 0.070351],
|
||
[0.0049668, 0.025656, -0.17789, -0.0051996, -0.035828, -0.034248, -0.10105, 0.046928, 0.11832, 0.085108, 0.0062349, -0.041646, 0.015367, 0.024004, 0.05159, -0.054872, -0.046494, -0.052681, 0.026418, 0.04806],
|
||
[0.057822, 0.0015819, -0.0086989, -0.10254, 0.025957, -0.056268, -0.10132, -0.10023, -0.11389, 0.058429, 0.015547, -0.071095, 0.062314, 0.036858, -0.0011, 0.026105, 0.061097, 0.077304, -0.18756, 0.047389],
|
||
[0.0013806, 0.02828, -0.2478, 0.092947, -0.038758, 0.0028008, 0.012529, 0.044697, 0.077377, 0.071988, 0.010779, -0.031046, 0.0010044, 0.0066662, -0.12623, -0.045084, -0.044808, 0.017776, 0.016228, 0.056646],
|
||
[0.087439, 0.00080255, -0.0057786, 0.0027137, -0.00091803, 0.00011138, 0.00064189, -0.10812, 0.00033514, 0.0014623, -0.00028756, -0.059024, 0.0006845, 0.025379, -0.0033296, 0.027242, 2.5402e-05, 0.0016213, -0.13466, 0.0019404],
|
||
[-0.0017221, 0.040749, -0.29341, 0.13778, -0.046612, 0.0056551, 0.032591, 0.0021294, 0.017016, 0.074246, -0.014601, 0.0011625, 0.034755, -0.00049985, -0.16906, -0.00053653, 0.0012898, 0.082323, 0.0026522, 0.09852],
|
||
[0.057723, -0.00046713, -0.0010648, 0.10612, -0.027463, 0.056335, 0.10173, -0.10192, 0.11685, -0.055549, -0.01511, -0.069818, -0.062226, 0.036567, -0.0038711, 0.02786, -0.062814, -0.076544, -0.18805, -0.045122],
|
||
[-0.0036563, 0.02832, -0.24795, 0.088838, -0.037706, 0.00058311, 0.0085301, -0.040715, 0.072832, 0.074233, 0.011382, 0.033821, 0.0034572, -0.0081124, -0.12617, 0.044021, -0.042368, 0.020806, -0.0088305, 0.058468],
|
||
[0.066328, 0.00050249, 0.0006879, 0.099053, -0.027081, 0.043963, 0.085986, -0.064402, 0.11345, -0.045255, -0.0033627, -0.065527, -0.065674, -0.020838, 0.024403, 0.015466, -0.049327, -0.099549, -0.11056, -0.052035],
|
||
[-0.0034585, 0.08173, 0.042051, -0.20674, -0.019187, -0.017709, -0.062969, -0.020673, 0.1043, 0.0046453, 0.0023477, 0.04001, -0.060975, 0.0036578, -0.017463, 0.02278, 0.078178, 0.099432, -0.0024519, -0.126],
|
||
[0.097129, 0.0021092, 0.0011488, -0.0036647, -0.00020402, -0.00029506, 0.0001578, -0.08265, 0.0016066, -0.00015594, -5.4728e-05, -0.048474, -0.0013576, -0.037546, -0.0016562, 0.026719, 0.0026343, 0.0026627, -0.042088, -0.0029948],
|
||
[-0.001913, 0.10709, 0.058329, -0.18607, -0.010359, -0.014982, 0.0080122, 0.0016278, 0.081574, -0.0079178, -0.0027788, 0.00095469, -0.068929, 0.00073948, -0.08409, -0.00052623, 0.13375, 0.13519, 0.00082892, -0.15206],
|
||
[0.066413, 0.002716, 0.00096838, -0.10712, 0.026305, -0.044627, -0.088399, -0.063538, -0.10925, 0.045403, 0.0034526, -0.067051, 0.063222, -0.020966, -0.025072, 0.014557, 0.052367, 0.10339, -0.11038, 0.047034],
|
||
[0.00084414, 0.081687, 0.042045, -0.20268, -0.020238, -0.015965, -0.059534, 0.023193, 0.10869, 0.0028598, 0.0022134, -0.037398, -0.063514, -0.0028345, -0.016489, -0.023372, 0.076175, 0.095435, 0.0068033, -0.12795],
|
||
[0.20704, 0.0040955, 0.00091829, -0.00029318, -0.00055128, -0.00022805, 0.0051995, -0.007065, -0.0025938, -0.00022702, -0.00086173, 0.0039241, 0.0027605, -0.18349, -0.00045015, -0.021589, 0.00096281, -0.00018548, 0.23464, 0.001533],
|
||
[-0.0040776, 0.20795, 0.046625, -0.014886, -0.027991, -0.011579, 0.264, 0.00013915, -0.1317, -0.011527, -0.043754, -7.7284e-05, 0.14016, 0.0036138, -0.022856, 0.00042519, 0.048886, -0.0094174, -0.0046213, 0.077836],
|
||
[0.0016001, -0.029891, -0.0731, -0.058468, 0.1186, 0.12935, 0.032158, 0.082573, -0.0411, -0.0057089, -0.11638, -0.00536, 0.0098026, 0.099419, -0.049008, 0.096627, 0.019637, -0.043652, 0.0051687, 0.0072429],
|
||
[-0.0084656, -0.0046796, 0.045349, 0.07574, -0.034638, 0.082185, -0.12097, 0.11907, -0.077533, -0.078919, -0.012654, -0.1158, -0.086081, 0.014701, -0.0022791, -0.072634, 0.13958, -0.08019, 0.0020189, 0.12988],
|
||
[0.014244, -0.0142, -0.056192, -0.043173, 0.080962, 0.084431, 0.022293, 0.081954, 0.02152, 0.023645, -0.069978, 0.010578, 0.0055638, 0.10754, 0.047817, 0.10989, -0.10152, -0.038776, 0.0098529, -0.1048],
|
||
[-0.0019268, 0.0089254, 0.038396, 0.072665, -0.035316, 0.085966, -0.095828, 0.067001, -0.079359, -0.060241, 0.02296, -0.082724, -0.073347, 0.034409, -0.038908, -0.046993, 0.098013, -0.061029, 0.00076322, 0.10757],
|
||
[0.0059814, -0.019987, -0.05216, -0.04447, 0.076646, 0.092444, 0.004678, 0.10415, 0.0046581, 0.0051388, -0.096442, 0.0059707, -0.0081662, 0.083068, 0.047686, 0.097271, -0.082539, -0.026822, 0.0086197, -0.097325],
|
||
[-0.0021943, 0.014673, 0.029772, 0.032615, -0.070295, 0.11259, -0.099269, 0.067977, -0.030442, -0.007886, 0.04335, -0.085123, -0.024236, 0.010448, 0.034458, -0.043729, -0.1042, 0.051653, -0.0020921, -0.13234],
|
||
[-0.004206, -0.036745, -0.07115, -0.055276, 0.11733, 0.12551, 0.026702, 0.098002, -0.032058, -0.004739, -0.10681, 0.00206, 0.030173, 0.081617, -0.060518, 0.076499, 0.010561, -0.048468, 0.0058355, -0.010407],
|
||
[-0.0044632, -0.00045295, 0.035713, 0.033808, -0.072124, 0.10251, -0.12265, 0.11181, -0.025714, -0.01886, 0.019241, -0.11285, -0.030121, 0.016747, 0.051984, -0.066147, -0.080512, 0.05543, -0.0091079, -0.1189],
|
||
[0.0019322, 0.029684, 0.074829, 0.061405, -0.11987, -0.12601, -0.036896, 0.077821, 0.038016, 0.0025971, 0.11579, -0.0007963, -0.013184, 0.098763, 0.04888, 0.099412, -0.014125, 0.04046, 0.0050852, -0.0021232],
|
||
[0.008396, -0.0058529, 0.042436, 0.073379, -0.029941, 0.087214, -0.11961, -0.12223, -0.079091, -0.079083, -0.017226, 0.11592, -0.085628, -0.018604, -0.004207, 0.068773, 0.14025, -0.081846, -0.0022209, 0.13007],
|
||
[0.014309, 0.014541, 0.05766, 0.046001, -0.08229, -0.08098, -0.026049, 0.079252, -0.024628, -0.025998, 0.070828, 0.013827, -0.0084475, 0.1061, -0.049312, 0.11165, 0.1053, 0.036343, 0.0098152, 0.10895],
|
||
[0.0013644, 0.0083593, 0.036153, 0.070909, -0.032101, 0.089224, -0.094876, -0.070176, -0.07845, -0.059264, 0.020187, 0.082243, -0.073071, -0.038616, -0.036995, 0.04263, 0.093939, -0.062508, -0.0011506, 0.10336],
|
||
[0.0060632, 0.020549, 0.053291, 0.04572, -0.079355, -0.087939, -0.0085831, 0.1014, -0.0058532, -0.0054453, 0.098074, 0.0093178, 0.0072056, 0.082593, -0.046292, 0.098917, 0.078372, 0.028835, 0.0086953, 0.092038],
|
||
[0.0019571, 0.013874, 0.027695, 0.030838, -0.067223, 0.11615, -0.099008, -0.072025, -0.030235, -0.0076776, 0.039519, 0.084822, -0.024539, -0.013711, 0.036309, 0.039865, -0.10737, 0.050557, 0.0017511, -0.13607],
|
||
[-0.004027, 0.036698, 0.072501, 0.056564, -0.12008, -0.12138, -0.031511, 0.093524, 0.031021, 0.0039927, 0.10749, 0.0065019, -0.031336, 0.080895, 0.062517, 0.079044, -0.013723, 0.050613, 0.0061896, 0.0057174],
|
||
[0.0046253, -0.0018994, 0.032883, 0.031605, -0.067448, 0.10737, -0.1215, -0.11558, -0.026956, -0.019032, 0.01502, 0.11268, -0.02891, -0.019948, 0.04956, 0.063084, -0.080034, 0.053478, 0.0088711, -0.11922]
|
||
],
|
||
"numEvalues": 20,
|
||
"eigenValues": [
|
||
448.26,
|
||
152.88,
|
||
77.079,
|
||
38.34,
|
||
27.754,
|
||
15.293,
|
||
13.086,
|
||
10.197,
|
||
7.2365,
|
||
6.5965,
|
||
5.7389,
|
||
5.6223,
|
||
4.6227,
|
||
4.3931,
|
||
3.9714,
|
||
3.5791,
|
||
3.4264,
|
||
3.0788,
|
||
2.6396,
|
||
2.4414
|
||
],
|
||
"numPtsPerSample": 71,
|
||
"nonRegularizedVectors": [0],
|
||
"meanShape": [
|
||
[25.011, 34.815],
|
||
[24.382, 45.627],
|
||
[25.831, 56.165],
|
||
[28.675, 66.696],
|
||
[33.598, 75.549],
|
||
[40.333, 82.562],
|
||
[48.359, 88],
|
||
[57.764, 89.783],
|
||
[67.091, 87.631],
|
||
[74.897, 81.881],
|
||
[81.35, 74.609],
|
||
[85.921, 65.568],
|
||
[88.348, 54.934],
|
||
[89.382, 44.347],
|
||
[88.327, 33.568],
|
||
[81.567, 27.445],
|
||
[76.62, 25.173],
|
||
[69.154, 25.747],
|
||
[63.337, 27.341],
|
||
[31.525, 28.43],
|
||
[36.379, 25.966],
|
||
[43.862, 26.245],
|
||
[49.736, 27.609],
|
||
[35.982, 35.443],
|
||
[41.743, 32.491],
|
||
[48.057, 35.383],
|
||
[41.828, 37.011],
|
||
[41.961, 34.611],
|
||
[77.389, 34.628],
|
||
[71.516, 31.905],
|
||
[65.321, 35.043],
|
||
[71.61, 36.424],
|
||
[71.382, 34.031],
|
||
[56.646, 33.009],
|
||
[50.194, 46.941],
|
||
[47.457, 51.771],
|
||
[50.073, 55.035],
|
||
[57.101, 56.145],
|
||
[64.081, 54.759],
|
||
[66.566, 51.395],
|
||
[63.641, 46.676],
|
||
[56.826, 42.172],
|
||
[52.142, 53.256],
|
||
[61.943, 53.063],
|
||
[45.091, 66.457],
|
||
[49.307, 63.536],
|
||
[54.022, 62.36],
|
||
[57.236, 62.972],
|
||
[60.423, 62.234],
|
||
[65.181, 63.223],
|
||
[69.509, 65.977],
|
||
[66.693, 69.861],
|
||
[62.797, 72.43],
|
||
[57.439, 73.279],
|
||
[52.051, 72.642],
|
||
[48.057, 70.228],
|
||
[51.313, 68.335],
|
||
[57.355, 69.042],
|
||
[63.365, 68.097],
|
||
[63.303, 65.106],
|
||
[57.283, 65.373],
|
||
[51.258, 65.343],
|
||
[56.997, 50.867],
|
||
[38.345, 33.38],
|
||
[45.432, 33.213],
|
||
[45.103, 36.388],
|
||
[38.617, 36.562],
|
||
[74.947, 32.659],
|
||
[67.858, 32.771],
|
||
[68.312, 35.931],
|
||
[74.8, 35.849]
|
||
]
|
||
},
|
||
"hints": {
|
||
"rightEye": [71.382, 34.031],
|
||
"leftEye": [41.961, 34.611],
|
||
"nose": [56.997, 50.867]
|
||
}
|
||
};
|
||
|
||
// CommonJS and Node.js module support
|
||
{
|
||
// Support Node.js specific `module.exports` (which can be a function)
|
||
if ('object' !== 'undefined' && module.exports) {
|
||
exports = module.exports = pModel;
|
||
}
|
||
// But always support CommonJS module 1.1.1 spec (`exports` cannot be a function)
|
||
exports.pModel = pModel;
|
||
}
|
||
})(commonjsGlobal);
|
||
});
|
||
|
||
// webgl setup tests
|
||
|
||
/*
|
||
* Test whether we can render to floating point texture
|
||
*/
|
||
var canRenderToFloatTexture = function(webGLContext) {
|
||
var renderingSupported = false;
|
||
var gl = webGLContext;
|
||
|
||
// setup the texture
|
||
var texture = gl.createTexture();
|
||
gl.bindTexture(gl.TEXTURE_2D, texture);
|
||
gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, 2, 2, 0, gl.RGBA, gl.FLOAT, null);
|
||
gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.NEAREST);
|
||
gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.NEAREST);
|
||
|
||
// setup the framebuffer
|
||
var framebuffer = gl.createFramebuffer();
|
||
gl.bindFramebuffer(gl.FRAMEBUFFER, framebuffer);
|
||
gl.framebufferTexture2D(
|
||
gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.TEXTURE_2D, texture, 0);
|
||
|
||
// check the framebuffer
|
||
var check = gl.checkFramebufferStatus(gl.FRAMEBUFFER);
|
||
if (check == gl.FRAMEBUFFER_COMPLETE) {
|
||
renderingSupported = true;
|
||
}
|
||
|
||
// cleanup
|
||
gl.deleteTexture(texture);
|
||
gl.deleteFramebuffer(framebuffer);
|
||
gl.bindTexture(gl.TEXTURE_2D, null);
|
||
gl.bindFramebuffer(gl.FRAMEBUFFER, null);
|
||
|
||
return renderingSupported
|
||
};
|
||
|
||
var version = "1.1.2";
|
||
|
||
/**
|
||
* clmtrackr library (https://www.github.com/auduno/clmtrackr/)
|
||
*
|
||
* Copyright (c) 2013, Audun Mathias Øygard
|
||
*
|
||
* Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
||
*
|
||
* The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
||
*
|
||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||
*/
|
||
|
||
//import { drawPatches } from './utils.debugging.js';
|
||
|
||
var DEFAULT_MODEL = model_pca_20_svm;
|
||
|
||
// polyfills
|
||
raf_1.polyfill();
|
||
if (!window.Promise) window.Promise = promise;
|
||
|
||
var clm = {
|
||
tracker : function(params) {
|
||
|
||
if (!params) params = {};
|
||
if (params.constantVelocity === undefined) params.constantVelocity = true;
|
||
if (params.searchWindow === undefined) params.searchWindow = 11;
|
||
if (params.useWebGL === undefined) params.useWebGL = true;
|
||
if (params.scoreThreshold === undefined) params.scoreThreshold = 0.5;
|
||
if (params.stopOnConvergence === undefined) params.stopOnConvergence = false;
|
||
if (params.weightPoints === undefined) params.weightPoints = undefined;
|
||
if (params.sharpenResponse === undefined) params.sharpenResponse = false;
|
||
if (params.faceDetection === undefined) params.faceDetection = {};
|
||
if (params.eventDispatcher === undefined) params.eventDispatcher = document;
|
||
if (params.maxIterationsPerAnimFrame === undefined) params.maxIterationsPerAnimFrame = 3;
|
||
|
||
/** @type {Number} Minimum convergence before firing `clmtrackrConverged` event. */
|
||
var convergenceThreshold = 0.5;
|
||
|
||
var numPatches, patchSize, numParameters, patchType;
|
||
var gaussianPD;
|
||
var eigenVectors, eigenValues;
|
||
var sketchCC, sketchW, sketchH, sketchCanvas;
|
||
var weights, model, biases;
|
||
|
||
var sobelInit = false;
|
||
var lbpInit = false;
|
||
|
||
var currentParameters = [];
|
||
var currentPositions = [];
|
||
var previousParameters = [];
|
||
var previousPositions = [];
|
||
|
||
var patches = [];
|
||
var responses = [];
|
||
var meanShape = [];
|
||
|
||
var responseMode = 'single';
|
||
var responseList = ['raw'];
|
||
var responseIndex = 0;
|
||
|
||
/*
|
||
It's possible to experiment with the sequence of variances used for the finding the maximum in the KDE.
|
||
This sequence is pretty arbitrary, but was found to be okay using some manual testing.
|
||
*/
|
||
var varianceSeq = [10,5,1];
|
||
//var varianceSeq = [3,1.5,0.75];
|
||
//var varianceSeq = [6,3,0.75];
|
||
var PDMVariance = 0.7;
|
||
|
||
var relaxation = 0.1;
|
||
|
||
var first = true;
|
||
var detectingFace = false;
|
||
|
||
var convergenceLimit = 0.01;
|
||
|
||
var searchWindow;
|
||
var modelWidth, modelHeight;
|
||
var halfSearchWindow, vecProbs, responsePixels;
|
||
|
||
if(typeof Float64Array !== 'undefined') {
|
||
var updatePosition = new Float64Array(2);
|
||
var vecpos = new Float64Array(2);
|
||
} else {
|
||
var updatePosition = new Array(2);
|
||
var vecpos = new Array(2);
|
||
}
|
||
var pw, pl, pdataLength;
|
||
|
||
var facecheck_count = 0;
|
||
|
||
var webglFi, svmFi, mosseCalc;
|
||
|
||
var scoringCanvas = document.createElement('canvas');
|
||
var scoringContext = scoringCanvas.getContext('2d');
|
||
var msxmin, msymin, msxmax, msymax;
|
||
var msmodelwidth, msmodelheight;
|
||
var scoringWeights, scoringBias;
|
||
var scoringHistory = [];
|
||
var meanscore = 0;
|
||
|
||
var runnerTimeout, runnerElement, runnerBox;
|
||
|
||
var pointWeights;
|
||
|
||
var halfPI = Math.PI/2;
|
||
|
||
var faceDetector;
|
||
|
||
/*
|
||
* load model data, initialize filters, etc.
|
||
*
|
||
* @param <Object> pdm model object
|
||
*/
|
||
this.init = function(pdmmodel) {
|
||
// default model is pca 20 svm model
|
||
if (pdmmodel === undefined) pdmmodel = DEFAULT_MODEL;
|
||
|
||
model = pdmmodel;
|
||
|
||
// load from model
|
||
patchType = model.patchModel.patchType;
|
||
numPatches = model.patchModel.numPatches;
|
||
patchSize = model.patchModel.patchSize[0];
|
||
if (patchType == 'MOSSE') {
|
||
searchWindow = patchSize;
|
||
} else {
|
||
searchWindow = params.searchWindow;
|
||
}
|
||
numParameters = model.shapeModel.numEvalues;
|
||
modelWidth = model.patchModel.canvasSize[0];
|
||
modelHeight = model.patchModel.canvasSize[1];
|
||
|
||
// set up canvas to work on
|
||
sketchCanvas = document.createElement('canvas');
|
||
sketchCC = sketchCanvas.getContext('2d');
|
||
|
||
sketchW = sketchCanvas.width = modelWidth + (searchWindow-1) + patchSize-1;
|
||
sketchH = sketchCanvas.height = modelHeight + (searchWindow-1) + patchSize-1;
|
||
|
||
// load eigenvectors
|
||
eigenVectors = numeric1_2_6.rep([numPatches*2,numParameters],0.0);
|
||
for (var i = 0;i < numPatches*2;i++) {
|
||
for (var j = 0;j < numParameters;j++) {
|
||
eigenVectors[i][j] = model.shapeModel.eigenVectors[i][j];
|
||
}
|
||
}
|
||
|
||
// load mean shape
|
||
for (var i = 0; i < numPatches;i++) {
|
||
meanShape[i] = [model.shapeModel.meanShape[i][0], model.shapeModel.meanShape[i][1]];
|
||
}
|
||
|
||
// get max and mins, width and height of meanshape
|
||
msxmax = msymax = 0;
|
||
msxmin = msymin = 1000000;
|
||
for (var i = 0;i < numPatches;i++) {
|
||
if (meanShape[i][0] < msxmin) msxmin = meanShape[i][0];
|
||
if (meanShape[i][1] < msymin) msymin = meanShape[i][1];
|
||
if (meanShape[i][0] > msxmax) msxmax = meanShape[i][0];
|
||
if (meanShape[i][1] > msymax) msymax = meanShape[i][1];
|
||
}
|
||
msmodelwidth = msxmax-msxmin;
|
||
msmodelheight = msymax-msymin;
|
||
|
||
// get scoringweights if they exist
|
||
if (model.scoring) {
|
||
scoringWeights = new Float64Array(model.scoring.coef);
|
||
scoringBias = model.scoring.bias;
|
||
scoringCanvas.width = model.scoring.size[0];
|
||
scoringCanvas.height = model.scoring.size[1];
|
||
}
|
||
|
||
// load eigenvalues
|
||
eigenValues = model.shapeModel.eigenValues;
|
||
|
||
weights = model.patchModel.weights;
|
||
biases = model.patchModel.bias;
|
||
|
||
// precalculate gaussianPriorDiagonal
|
||
gaussianPD = numeric1_2_6.rep([numParameters+4, numParameters+4],0);
|
||
// set values and append manual inverse
|
||
for (var i = 0;i < numParameters;i++) {
|
||
if (model.shapeModel.nonRegularizedVectors.indexOf(i) >= 0) {
|
||
gaussianPD[i+4][i+4] = 1/10000000;
|
||
} else {
|
||
gaussianPD[i+4][i+4] = 1/eigenValues[i];
|
||
}
|
||
}
|
||
|
||
for (var i = 0;i < numParameters+4;i++) {
|
||
currentParameters[i] = 0;
|
||
}
|
||
|
||
if (patchType == 'SVM') {
|
||
var webGLContext;
|
||
var webGLTestCanvas = document.createElement('canvas');
|
||
if (window.WebGLRenderingContext) {
|
||
webGLContext = webGLTestCanvas.getContext('webgl') || webGLTestCanvas.getContext('experimental-webgl');
|
||
if (!webGLContext || !webGLContext.getExtension('OES_texture_float')) {
|
||
webGLContext = null;
|
||
} else {
|
||
// test whether it's possible to render to float texture
|
||
if (!canRenderToFloatTexture(webGLContext)) {
|
||
webGLContext = null;
|
||
}
|
||
}
|
||
}
|
||
|
||
if (webGLContext && params.useWebGL && (typeof(webglFilter) !== 'undefined')) {
|
||
webglFi = new webglFilter();
|
||
try {
|
||
webglFi.init(weights, biases, numPatches, searchWindow+patchSize-1, searchWindow+patchSize-1, patchSize, patchSize);
|
||
if ('lbp' in weights) lbpInit = true;
|
||
if ('sobel' in weights) sobelInit = true;
|
||
}
|
||
catch(err) {
|
||
console.error(err);
|
||
alert('There was a problem setting up webGL programs, falling back to slightly slower javascript version. :(');
|
||
webglFi = undefined;
|
||
svmFi = new svmFilter();
|
||
svmFi.init(weights['raw'], biases['raw'], numPatches, patchSize, searchWindow);
|
||
}
|
||
} else if (typeof(svmFilter) !== 'undefined') {
|
||
// use fft convolution if no webGL is available
|
||
svmFi = new svmFilter();
|
||
svmFi.init(weights['raw'], biases['raw'], numPatches, patchSize, searchWindow);
|
||
} else {
|
||
throw new Error('Could not initiate filters, please make sure that svmfilter.js or svmfilter_conv_js.js is loaded.');
|
||
}
|
||
} else if (patchType == 'MOSSE') {
|
||
mosseCalc = new mosseFilterResponses();
|
||
mosseCalc.init(weights, numPatches, patchSize, patchSize);
|
||
}
|
||
|
||
if (patchType == 'SVM') {
|
||
pw = pl = patchSize+searchWindow-1;
|
||
} else {
|
||
pw = pl = searchWindow;
|
||
}
|
||
pdataLength = pw*pl;
|
||
halfSearchWindow = (searchWindow-1)/2;
|
||
responsePixels = searchWindow*searchWindow;
|
||
if(typeof Float64Array !== 'undefined') {
|
||
vecProbs = new Float64Array(responsePixels);
|
||
for (var i = 0;i < numPatches;i++) {
|
||
patches[i] = new Float64Array(pdataLength);
|
||
}
|
||
} else {
|
||
vecProbs = new Array(responsePixels);
|
||
for (var i = 0;i < numPatches;i++) {
|
||
patches[i] = new Array(pdataLength);
|
||
}
|
||
}
|
||
|
||
if (params.weightPoints) {
|
||
// weighting of points
|
||
pointWeights = [];
|
||
for (var i = 0;i < numPatches;i++) {
|
||
if (i in params.weightPoints) {
|
||
pointWeights[(i*2)] = params.weightPoints[i];
|
||
pointWeights[(i*2)+1] = params.weightPoints[i];
|
||
} else {
|
||
pointWeights[(i*2)] = 1;
|
||
pointWeights[(i*2)+1] = 1;
|
||
}
|
||
}
|
||
pointWeights = numeric1_2_6.diag(pointWeights);
|
||
}
|
||
|
||
faceDetector = new faceDetection(model, params.faceDetection);
|
||
};
|
||
|
||
/*
|
||
* starts the tracker to run on a regular interval
|
||
*/
|
||
this.start = function(element, box) {
|
||
// check if model is initalized, else return false
|
||
if (typeof(model) === 'undefined') {
|
||
console.log('tracker needs to be initalized before starting to track.');
|
||
return false;
|
||
}
|
||
//check if a runnerelement already exists, if not, use passed parameters
|
||
if (typeof(runnerElement) === 'undefined') {
|
||
runnerElement = element;
|
||
runnerBox = box;
|
||
}
|
||
|
||
faceDetector.init(element);
|
||
|
||
// start named timeout function
|
||
runnerTimeout = requestAnimationFrame(runnerFunction);
|
||
};
|
||
|
||
var runnerFunction = function() {
|
||
runnerTimeout = requestAnimationFrame(runnerFunction);
|
||
// schedule as many iterations as we can during each request
|
||
var startTime = (new Date()).getTime();
|
||
var run_counter = 0;
|
||
|
||
while ((((new Date()).getTime() - startTime) < 16)
|
||
&& run_counter < params.maxIterationsPerAnimFrame) {
|
||
var tracking = this.track(runnerElement, runnerBox);
|
||
if (!tracking) break;
|
||
run_counter++;
|
||
}
|
||
}.bind(this);
|
||
|
||
/*
|
||
* stop the running tracker
|
||
*/
|
||
this.stop = function() {
|
||
// stop the running tracker if any exists
|
||
cancelAnimationFrame(runnerTimeout);
|
||
};
|
||
|
||
/*
|
||
* element : canvas or video element
|
||
* TODO: should be able to take img element as well
|
||
*/
|
||
this.track = function(element, box) {
|
||
emitEvent('clmtrackrBeforeTrack', params.eventDispatcher);
|
||
|
||
var scaling, translateX, translateY, rotation;
|
||
var ptch, px, py;
|
||
|
||
if (first) {
|
||
if (!detectingFace) {
|
||
detectingFace = true;
|
||
|
||
// this returns a Promise
|
||
faceDetector.getInitialPosition(box)
|
||
.then(function (result) {
|
||
scaling = result[0];
|
||
rotation = result[1];
|
||
translateX = result[2];
|
||
translateY = result[3];
|
||
|
||
currentParameters[0] = (scaling*Math.cos(rotation))-1;
|
||
currentParameters[1] = (scaling*Math.sin(rotation));
|
||
currentParameters[2] = translateX;
|
||
currentParameters[3] = translateY;
|
||
|
||
currentPositions = calculatePositions(currentParameters, true);
|
||
|
||
first = false;
|
||
detectingFace = false;
|
||
})
|
||
.catch(function (error) {
|
||
// send an event on no face found
|
||
emitEvent('clmtrackrNotFound', params.eventDispatcher);
|
||
|
||
detectingFace = false;
|
||
});
|
||
}
|
||
|
||
return false;
|
||
} else {
|
||
facecheck_count += 1;
|
||
|
||
if (params.constantVelocity) {
|
||
// calculate where to get patches via constant velocity prediction
|
||
if (previousParameters.length >= 2) {
|
||
for (var i = 0;i < currentParameters.length;i++) {
|
||
currentParameters[i] = (relaxation)*previousParameters[1][i] + (1-relaxation)*((2*previousParameters[1][i]) - previousParameters[0][i]);
|
||
//currentParameters[i] = (3*previousParameters[2][i]) - (3*previousParameters[1][i]) + previousParameters[0][i];
|
||
}
|
||
}
|
||
}
|
||
|
||
// change translation, rotation and scale parameters
|
||
rotation = halfPI - Math.atan((currentParameters[0]+1)/currentParameters[1]);
|
||
if (rotation > halfPI) {
|
||
rotation -= Math.PI;
|
||
}
|
||
scaling = currentParameters[1] / Math.sin(rotation);
|
||
translateX = currentParameters[2];
|
||
translateY = currentParameters[3];
|
||
}
|
||
|
||
// copy canvas to a new dirty canvas
|
||
sketchCC.save();
|
||
|
||
// clear canvas
|
||
sketchCC.clearRect(0, 0, sketchW, sketchH);
|
||
|
||
sketchCC.scale(1/scaling, 1/scaling);
|
||
sketchCC.rotate(-rotation);
|
||
sketchCC.translate(-translateX, -translateY);
|
||
|
||
sketchCC.drawImage(element, 0, 0, element.width, element.height);
|
||
|
||
sketchCC.restore();
|
||
// get cropped images around new points based on model parameters (not scaled and translated)
|
||
var patchPositions = calculatePositions(currentParameters, false);
|
||
|
||
// check whether tracking is ok
|
||
if (scoringWeights && (facecheck_count % 10 == 0)) {
|
||
if (!checkTracking()) {
|
||
// reset all parameters
|
||
resetParameters();
|
||
|
||
// send event to signal that tracking was lost
|
||
emitEvent('clmtrackrLost', params.eventDispatcher);
|
||
|
||
return false;
|
||
}
|
||
}
|
||
|
||
|
||
var pdata, pmatrix, grayscaleColor;
|
||
for (var i = 0; i < numPatches; i++) {
|
||
px = patchPositions[i][0]-(pw/2);
|
||
py = patchPositions[i][1]-(pl/2);
|
||
ptch = sketchCC.getImageData(Math.round(px), Math.round(py), pw, pl);
|
||
pdata = ptch.data;
|
||
|
||
// convert to grayscale
|
||
pmatrix = patches[i];
|
||
for (var j = 0;j < pdataLength;j++) {
|
||
grayscaleColor = pdata[j*4]*0.3 + pdata[(j*4)+1]*0.59 + pdata[(j*4)+2]*0.11;
|
||
pmatrix[j] = grayscaleColor;
|
||
}
|
||
}
|
||
|
||
// draw weights for debugging
|
||
//drawPatches(sketchCC, weights, patchSize, patchPositions, function(x) {return x*2000+127});
|
||
|
||
// draw patches for debugging
|
||
//drawPatches(sketchCC, patches, pw, patchPositions, false, [27,32,44,50]);
|
||
|
||
if (patchType == 'SVM') {
|
||
if (typeof(webglFi) !== 'undefined') {
|
||
responses = getWebGLResponses(patches);
|
||
} else if (typeof(svmFi) !== 'undefined') {
|
||
responses = svmFi.getResponses(patches);
|
||
} else {
|
||
throw new Error('SVM-filters do not seem to be initiated properly.');
|
||
}
|
||
} else if (patchType == 'MOSSE') {
|
||
responses = mosseCalc.getResponses(patches);
|
||
}
|
||
|
||
// option to increase sharpness of responses
|
||
if (params.sharpenResponse) {
|
||
for (var i = 0;i < numPatches;i++) {
|
||
for (var j = 0;j < responses[i].length;j++) {
|
||
responses[i][j] = Math.pow(responses[i][j], params.sharpenResponse);
|
||
}
|
||
}
|
||
}
|
||
|
||
// draw responses for debugging
|
||
//drawPatches(sketchCC, responses, searchWindow, patchPositions, function(x) {return x*255});
|
||
|
||
// iterate until convergence or max 10, 20 iterations?:
|
||
var originalPositions = currentPositions;
|
||
var jac;
|
||
var meanshiftVectors = [];
|
||
|
||
for (var i = 0; i < varianceSeq.length; i++) {
|
||
|
||
// calculate jacobian
|
||
jac = createJacobian(currentParameters, eigenVectors);
|
||
|
||
// for debugging
|
||
//var debugMVs = [];
|
||
|
||
var opj0, opj1;
|
||
|
||
for (var j = 0;j < numPatches;j++) {
|
||
opj0 = originalPositions[j][0]-((searchWindow-1)*scaling/2);
|
||
opj1 = originalPositions[j][1]-((searchWindow-1)*scaling/2);
|
||
|
||
// calculate PI x gaussians
|
||
var vpsum = gpopt(searchWindow, currentPositions[j], updatePosition, vecProbs, responses, opj0, opj1, j, varianceSeq[i], scaling);
|
||
|
||
// calculate meanshift-vector
|
||
gpopt2(searchWindow, vecpos, updatePosition, vecProbs, vpsum, opj0, opj1, scaling);
|
||
//var debugMatrixMV = gpopt2(searchWindow, vecpos, updatePosition, vecProbs, vpsum, opj0, opj1);
|
||
|
||
meanshiftVectors[j] = [vecpos[0] - currentPositions[j][0], vecpos[1] - currentPositions[j][1]];
|
||
|
||
//debugMVs[j] = debugMatrixMV;
|
||
}
|
||
|
||
// draw meanshiftVector for debugging
|
||
//drawPatches(sketchCC, debugMVs, searchWindow, patchPositions, function(x) {return x*255*500});
|
||
|
||
var meanShiftVector = numeric1_2_6.rep([numPatches*2, 1],0.0);
|
||
for (var k = 0;k < numPatches;k++) {
|
||
meanShiftVector[k*2][0] = meanshiftVectors[k][0];
|
||
meanShiftVector[(k*2)+1][0] = meanshiftVectors[k][1];
|
||
}
|
||
|
||
// compute pdm parameter update
|
||
//var prior = numeric.mul(gaussianPD, PDMVariance);
|
||
var prior = numeric1_2_6.mul(gaussianPD, varianceSeq[i]);
|
||
var jtj;
|
||
if (params.weightPoints) {
|
||
jtj = numeric1_2_6.dot(numeric1_2_6.transpose(jac), numeric1_2_6.dot(pointWeights, jac));
|
||
} else {
|
||
jtj = numeric1_2_6.dot(numeric1_2_6.transpose(jac), jac);
|
||
}
|
||
var cpMatrix = numeric1_2_6.rep([numParameters+4, 1],0.0);
|
||
for (var l = 0;l < (numParameters+4);l++) {
|
||
cpMatrix[l][0] = currentParameters[l];
|
||
}
|
||
var priorP = numeric1_2_6.dot(prior, cpMatrix);
|
||
var jtv;
|
||
if (params.weightPoints) {
|
||
jtv = numeric1_2_6.dot(numeric1_2_6.transpose(jac), numeric1_2_6.dot(pointWeights, meanShiftVector));
|
||
} else {
|
||
jtv = numeric1_2_6.dot(numeric1_2_6.transpose(jac), meanShiftVector);
|
||
}
|
||
var paramUpdateLeft = numeric1_2_6.add(prior, jtj);
|
||
var paramUpdateRight = numeric1_2_6.sub(priorP, jtv);
|
||
|
||
var paramUpdate = numeric1_2_6.dot(numeric1_2_6.inv(paramUpdateLeft), paramUpdateRight);
|
||
//var paramUpdate = numeric.solve(paramUpdateLeft, paramUpdateRight, true);
|
||
|
||
var oldPositions = currentPositions;
|
||
|
||
// update estimated parameters
|
||
for (var k = 0;k < numParameters+4;k++) {
|
||
currentParameters[k] -= paramUpdate[k];
|
||
}
|
||
|
||
// clipping of parameters if they're too high
|
||
var clip;
|
||
for (var k = 0;k < numParameters;k++) {
|
||
clip = Math.abs(3*Math.sqrt(eigenValues[k]));
|
||
if (Math.abs(currentParameters[k+4]) > clip) {
|
||
if (currentParameters[k+4] > 0) {
|
||
currentParameters[k+4] = clip;
|
||
} else {
|
||
currentParameters[k+4] = -clip;
|
||
}
|
||
}
|
||
|
||
}
|
||
|
||
// update current coordinates
|
||
currentPositions = calculatePositions(currentParameters, true);
|
||
|
||
// check if converged
|
||
// calculate norm of parameterdifference
|
||
var positionNorm = 0;
|
||
var pnsq_x, pnsq_y;
|
||
for (var k = 0;k < currentPositions.length;k++) {
|
||
pnsq_x = (currentPositions[k][0]-oldPositions[k][0]);
|
||
pnsq_y = (currentPositions[k][1]-oldPositions[k][1]);
|
||
positionNorm += ((pnsq_x*pnsq_x) + (pnsq_y*pnsq_y));
|
||
}
|
||
|
||
// if norm < limit, then break
|
||
if (positionNorm < convergenceLimit) {
|
||
break;
|
||
}
|
||
|
||
}
|
||
|
||
if (params.constantVelocity) {
|
||
// add current parameter to array of previous parameters
|
||
previousParameters.push(currentParameters.slice());
|
||
if (previousParameters.length == 3) {
|
||
previousParameters.shift();
|
||
}
|
||
}
|
||
|
||
// store positions, for checking convergence
|
||
if (previousPositions.length == 10) {
|
||
previousPositions.shift();
|
||
}
|
||
previousPositions.push(currentPositions.slice(0));
|
||
|
||
// send an event on each iteration
|
||
emitEvent('clmtrackrIteration', params.eventDispatcher);
|
||
|
||
// we must get a score before we can say we've converged
|
||
if (scoringHistory.length >= 5 && this.getConvergence() < convergenceThreshold) {
|
||
if (params.stopOnConvergence) {
|
||
this.stop();
|
||
}
|
||
|
||
emitEvent('clmtrackrConverged', params.eventDispatcher);
|
||
}
|
||
|
||
// return new points
|
||
return currentPositions;
|
||
};
|
||
|
||
function resetParameters() {
|
||
first = true;
|
||
scoringHistory = [];
|
||
previousParameters = [];
|
||
currentPositions = [];
|
||
previousPositions = [];
|
||
for (var i = 0;i < currentParameters.length;i++) {
|
||
currentParameters[i] = 0;
|
||
}
|
||
}
|
||
|
||
/*
|
||
* reset tracking, so that track() will start a new detection
|
||
*/
|
||
this.reset = function() {
|
||
resetParameters();
|
||
runnerElement = undefined;
|
||
runnerBox = undefined;
|
||
};
|
||
|
||
/*
|
||
* draw model on given canvas
|
||
*/
|
||
this.draw = function(canvas, pv, path) {
|
||
// if no previous points, just draw in the middle of canvas
|
||
|
||
var params;
|
||
if (pv === undefined) {
|
||
params = currentParameters.slice(0);
|
||
} else {
|
||
params = pv.slice(0);
|
||
}
|
||
|
||
var cc = canvas.getContext('2d');
|
||
cc.fillStyle = 'rgb(200,200,200)';
|
||
cc.strokeStyle = 'rgb(130,255,50)';
|
||
//cc.lineWidth = 1;
|
||
|
||
var paths;
|
||
if (path === undefined) {
|
||
paths = model.path.normal;
|
||
} else {
|
||
paths = model.path[path];
|
||
}
|
||
|
||
for (var i = 0;i < paths.length;i++) {
|
||
if (typeof(paths[i]) == 'number') {
|
||
drawPoint(cc, paths[i], params);
|
||
} else {
|
||
drawPath(cc, paths[i], params);
|
||
}
|
||
}
|
||
};
|
||
|
||
/*
|
||
* get the score of the current model fit
|
||
* (based on svm of face according to current model)
|
||
*/
|
||
this.getScore = function() {
|
||
return meanscore;
|
||
};
|
||
|
||
/*
|
||
* calculate positions based on parameters
|
||
*/
|
||
this.calculatePositions = function(parameters) {
|
||
return calculatePositions(parameters, true);
|
||
};
|
||
|
||
/*
|
||
* get coordinates of current model fit
|
||
*/
|
||
this.getCurrentPosition = function() {
|
||
if (first) {
|
||
return false;
|
||
} else {
|
||
return currentPositions;
|
||
}
|
||
};
|
||
|
||
/*
|
||
* get parameters of current model fit
|
||
*/
|
||
this.getCurrentParameters = function() {
|
||
return currentParameters;
|
||
};
|
||
|
||
/*
|
||
* Get the average of recent model movements
|
||
* Used for checking whether model fit has converged
|
||
*/
|
||
this.getConvergence = function() {
|
||
if (previousPositions.length < 10) return 999999;
|
||
|
||
var prevX = 0.0;
|
||
var prevY = 0.0;
|
||
var currX = 0.0;
|
||
var currY = 0.0;
|
||
|
||
// average 5 previous positions
|
||
for (var i = 0;i < 5;i++) {
|
||
for (var j = 0;j < numPatches;j++) {
|
||
prevX += previousPositions[i][j][0];
|
||
prevY += previousPositions[i][j][1];
|
||
}
|
||
}
|
||
prevX /= 5;
|
||
prevY /= 5;
|
||
|
||
// average 5 positions before that
|
||
for (var i = 5;i < 10;i++) {
|
||
for (var j = 0;j < numPatches;j++) {
|
||
currX += previousPositions[i][j][0];
|
||
currY += previousPositions[i][j][1];
|
||
}
|
||
}
|
||
currX /= 5;
|
||
currY /= 5;
|
||
|
||
// calculate difference
|
||
var diffX = currX-prevX;
|
||
var diffY = currY-prevY;
|
||
var msavg = ((diffX*diffX) + (diffY*diffY));
|
||
msavg /= previousPositions.length;
|
||
return msavg;
|
||
};
|
||
|
||
/*
|
||
* Set response mode (only useful if webGL is available)
|
||
* mode : either "single", "blend" or "cycle"
|
||
* list : array of values "raw", "sobel", "lbp"
|
||
*/
|
||
this.setResponseMode = function(mode, list) {
|
||
// clmtrackr must be initialized with model first
|
||
if (typeof(model) === 'undefined') {
|
||
console.log('Clmtrackr has not been initialized with a model yet. No changes made.');
|
||
return;
|
||
}
|
||
// must check whether webGL or not
|
||
if (typeof(webglFi) === 'undefined') {
|
||
console.log('Responsemodes are only allowed when using webGL. In pure JS, only "raw" mode is available.');
|
||
return;
|
||
}
|
||
if (['single', 'blend', 'cycle'].indexOf(mode) < 0) {
|
||
console.log('Tried to set an unknown responsemode : "'+mode+'". No changes made.');
|
||
return;
|
||
}
|
||
if (!(list instanceof Array)) {
|
||
console.log('List in setResponseMode must be an array of strings! No changes made.');
|
||
return;
|
||
} else {
|
||
for (var i = 0;i < list.length;i++) {
|
||
if (['raw', 'sobel', 'lbp'].indexOf(list[i]) < 0) {
|
||
console.log('Unknown element in responsemode list : "'+list[i]+'". No changes made.');
|
||
}
|
||
// check whether filters are initialized
|
||
if (list[i] == 'sobel' && sobelInit == false) {
|
||
console.log('The sobel filters have not been initialized! No changes made.');
|
||
}
|
||
if (list[i] == 'lbp' && lbpInit == false) {
|
||
console.log('The LBP filters have not been initialized! No changes made.');
|
||
}
|
||
}
|
||
}
|
||
// reset index
|
||
responseIndex = 0;
|
||
responseMode = mode;
|
||
responseList = list;
|
||
};
|
||
|
||
|
||
var getWebGLResponsesType = function(type, patches) {
|
||
if (type == 'lbp') {
|
||
return webglFi.getLBPResponses(patches);
|
||
} else if (type == 'raw') {
|
||
return webglFi.getRawResponses(patches);
|
||
} else if (type == 'sobel') {
|
||
return webglFi.getSobelResponses(patches);
|
||
}
|
||
};
|
||
|
||
var getWebGLResponses = function(patches) {
|
||
if (responseMode == 'single') {
|
||
return getWebGLResponsesType(responseList[0], patches);
|
||
} else if (responseMode == 'cycle') {
|
||
var response = getWebGLResponsesType(responseList[responseIndex], patches);
|
||
responseIndex++;
|
||
if (responseIndex >= responseList.length) responseIndex = 0;
|
||
return response;
|
||
} else {
|
||
// blend
|
||
var responses = [];
|
||
for (var i = 0;i < responseList.length;i++) {
|
||
responses[i] = getWebGLResponsesType(responseList[i], patches);
|
||
}
|
||
var blendedResponses = [];
|
||
var searchWindowSize = searchWindow * searchWindow;
|
||
for (var i = 0;i < numPatches;i++) {
|
||
var response = Array(searchWindowSize);
|
||
for (var k = 0;k < searchWindowSize;k++) response[k] = 0;
|
||
for (var j = 0;j < responseList.length;j++) {
|
||
for (var k = 0;k < searchWindowSize;k++) {
|
||
response[k] += (responses[j][i][k]/responseList.length);
|
||
}
|
||
}
|
||
blendedResponses[i] = response;
|
||
}
|
||
return blendedResponses;
|
||
}
|
||
};
|
||
|
||
// generates the jacobian matrix used for optimization calculations
|
||
var createJacobian = function(parameters, eigenVectors) {
|
||
|
||
var jacobian = numeric1_2_6.rep([2*numPatches, numParameters+4],0.0);
|
||
var j0,j1;
|
||
for (var i = 0;i < numPatches;i ++) {
|
||
// 1
|
||
j0 = meanShape[i][0];
|
||
j1 = meanShape[i][1];
|
||
for (var p = 0;p < numParameters;p++) {
|
||
j0 += parameters[p+4]*eigenVectors[i*2][p];
|
||
j1 += parameters[p+4]*eigenVectors[(i*2)+1][p];
|
||
}
|
||
jacobian[i*2][0] = j0;
|
||
jacobian[(i*2)+1][0] = j1;
|
||
// 2
|
||
j0 = meanShape[i][1];
|
||
j1 = meanShape[i][0];
|
||
for (var p = 0;p < numParameters;p++) {
|
||
j0 += parameters[p+4]*eigenVectors[(i*2)+1][p];
|
||
j1 += parameters[p+4]*eigenVectors[i*2][p];
|
||
}
|
||
jacobian[i*2][1] = -j0;
|
||
jacobian[(i*2)+1][1] = j1;
|
||
// 3
|
||
jacobian[i*2][2] = 1;
|
||
jacobian[(i*2)+1][2] = 0;
|
||
// 4
|
||
jacobian[i*2][3] = 0;
|
||
jacobian[(i*2)+1][3] = 1;
|
||
// the rest
|
||
for (var j = 0;j < numParameters;j++) {
|
||
j0 = parameters[0]*eigenVectors[i*2][j] - parameters[1]*eigenVectors[(i*2)+1][j] + eigenVectors[i*2][j];
|
||
j1 = parameters[0]*eigenVectors[(i*2)+1][j] + parameters[1]*eigenVectors[i*2][j] + eigenVectors[(i*2)+1][j];
|
||
jacobian[i*2][j+4] = j0;
|
||
jacobian[(i*2)+1][j+4] = j1;
|
||
}
|
||
}
|
||
|
||
return jacobian;
|
||
};
|
||
|
||
// calculate positions from parameters
|
||
var calculatePositions = function(parameters, useTransforms) {
|
||
var x, y, a, b;
|
||
var numParameters = parameters.length;
|
||
var positions = [];
|
||
for (var i = 0;i < numPatches;i++) {
|
||
x = meanShape[i][0];
|
||
y = meanShape[i][1];
|
||
for (var j = 0;j < numParameters-4;j++) {
|
||
x += model.shapeModel.eigenVectors[(i*2)][j]*parameters[j+4];
|
||
y += model.shapeModel.eigenVectors[(i*2)+1][j]*parameters[j+4];
|
||
}
|
||
if (useTransforms) {
|
||
a = parameters[0]*x - parameters[1]*y + parameters[2];
|
||
b = parameters[0]*y + parameters[1]*x + parameters[3];
|
||
x += a;
|
||
y += b;
|
||
}
|
||
positions[i] = [x,y];
|
||
}
|
||
|
||
return positions;
|
||
};
|
||
|
||
// part one of meanshift calculation
|
||
var gpopt = function(responseWidth, currentPositionsj, updatePosition, vecProbs, responses, opj0, opj1, j, variance, scaling) {
|
||
var pos_idx = 0;
|
||
var vpsum = 0;
|
||
var dx, dy;
|
||
for (var k = 0;k < responseWidth;k++) {
|
||
updatePosition[1] = opj1+(k*scaling);
|
||
for (var l = 0;l < responseWidth;l++) {
|
||
updatePosition[0] = opj0+(l*scaling);
|
||
|
||
dx = currentPositionsj[0] - updatePosition[0];
|
||
dy = currentPositionsj[1] - updatePosition[1];
|
||
vecProbs[pos_idx] = responses[j][pos_idx] * Math.exp(-0.5*((dx*dx)+(dy*dy))/(variance*scaling));
|
||
|
||
vpsum += vecProbs[pos_idx];
|
||
pos_idx++;
|
||
}
|
||
}
|
||
|
||
return vpsum;
|
||
};
|
||
|
||
// part two of meanshift calculation
|
||
var gpopt2 = function(responseWidth, vecpos, updatePosition, vecProbs, vpsum, opj0, opj1, scaling) {
|
||
//for debugging
|
||
//var vecmatrix = [];
|
||
|
||
var pos_idx = 0;
|
||
var vecsum = 0;
|
||
vecpos[0] = 0;
|
||
vecpos[1] = 0;
|
||
for (var k = 0;k < responseWidth;k++) {
|
||
updatePosition[1] = opj1+(k*scaling);
|
||
for (var l = 0;l < responseWidth;l++) {
|
||
updatePosition[0] = opj0+(l*scaling);
|
||
vecsum = vecProbs[pos_idx]/vpsum;
|
||
|
||
//vecmatrix[k*responseWidth + l] = vecsum;
|
||
|
||
vecpos[0] += vecsum*updatePosition[0];
|
||
vecpos[1] += vecsum*updatePosition[1];
|
||
pos_idx++;
|
||
}
|
||
}
|
||
//return vecmatrix;
|
||
};
|
||
|
||
// calculate score of current fit
|
||
var checkTracking = function() {
|
||
var trackingImgW = 20;
|
||
var trackingImgH = 22;
|
||
|
||
scoringContext.drawImage(sketchCanvas, Math.round(msxmin+(msmodelwidth/4.5)), Math.round(msymin-(msmodelheight/12)), Math.round(msmodelwidth-(msmodelwidth*2/4.5)), Math.round(msmodelheight-(msmodelheight/12)), 0, 0, trackingImgW, trackingImgH);
|
||
// getImageData of canvas
|
||
var imgData = scoringContext.getImageData(0,0,trackingImgW,trackingImgH);
|
||
// convert data to grayscale
|
||
var trackingImgSize = trackingImgW * trackingImgH;
|
||
var scoringData = new Array(trackingImgSize);
|
||
var scdata = imgData.data;
|
||
var scmax = 0;
|
||
for (var i = 0;i < trackingImgSize;i++) {
|
||
scoringData[i] = scdata[i*4]*0.3 + scdata[(i*4)+1]*0.59 + scdata[(i*4)+2]*0.11;
|
||
scoringData[i] = Math.log(scoringData[i]+1);
|
||
if (scoringData[i] > scmax) scmax = scoringData[i];
|
||
}
|
||
|
||
if (scmax > 0) {
|
||
// normalize & multiply by svmFilter
|
||
var mean = 0;
|
||
for (var i = 0;i < trackingImgSize;i++) {
|
||
mean += scoringData[i];
|
||
}
|
||
mean /= trackingImgSize;
|
||
var sd = 0;
|
||
for (var i = 0;i < trackingImgSize;i++) {
|
||
sd += (scoringData[i]-mean)*(scoringData[i]-mean);
|
||
}
|
||
sd /= trackingImgSize;
|
||
sd = Math.sqrt(sd);
|
||
|
||
var score = 0;
|
||
for (var i = 0;i < trackingImgSize;i++) {
|
||
scoringData[i] = (scoringData[i]-mean)/sd;
|
||
score += (scoringData[i])*scoringWeights[i];
|
||
}
|
||
score += scoringBias;
|
||
score = 1/(1+Math.exp(-score));
|
||
|
||
if (scoringHistory.length == 5) {
|
||
scoringHistory.shift();
|
||
}
|
||
scoringHistory.push(score);
|
||
|
||
if (scoringHistory.length > 4) {
|
||
// get average
|
||
meanscore = 0;
|
||
for (var i = 0;i < 5;i++) {
|
||
meanscore += scoringHistory[i];
|
||
}
|
||
meanscore /= 5;
|
||
// if below threshold, then reset (return false)
|
||
if (meanscore < params.scoreThreshold) return false;
|
||
}
|
||
}
|
||
return true;
|
||
};
|
||
|
||
// draw a parametrized line on a canvas
|
||
var drawPath = function(canvasContext, path, dp) {
|
||
canvasContext.beginPath();
|
||
var i, x, y, a, b;
|
||
for (var p = 0;p < path.length;p++) {
|
||
i = path[p]*2;
|
||
x = meanShape[i/2][0];
|
||
y = meanShape[i/2][1];
|
||
for (var j = 0;j < numParameters;j++) {
|
||
x += model.shapeModel.eigenVectors[i][j]*dp[j+4];
|
||
y += model.shapeModel.eigenVectors[i+1][j]*dp[j+4];
|
||
}
|
||
a = dp[0]*x - dp[1]*y + dp[2];
|
||
b = dp[0]*y + dp[1]*x + dp[3];
|
||
x += a;
|
||
y += b;
|
||
|
||
if (i == 0) {
|
||
canvasContext.moveTo(x,y);
|
||
} else {
|
||
canvasContext.lineTo(x,y);
|
||
}
|
||
}
|
||
canvasContext.moveTo(0,0);
|
||
canvasContext.closePath();
|
||
canvasContext.stroke();
|
||
};
|
||
|
||
// draw a point on a canvas
|
||
function drawPoint(canvasContext, point, dp) {
|
||
var i, x, y, a, b;
|
||
i = point*2;
|
||
x = meanShape[i/2][0];
|
||
y = meanShape[i/2][1];
|
||
for (var j = 0;j < numParameters;j++) {
|
||
x += model.shapeModel.eigenVectors[i][j]*dp[j+4];
|
||
y += model.shapeModel.eigenVectors[i+1][j]*dp[j+4];
|
||
}
|
||
a = dp[0]*x - dp[1]*y + dp[2];
|
||
b = dp[0]*y + dp[1]*x + dp[3];
|
||
x += a;
|
||
y += b;
|
||
canvasContext.beginPath();
|
||
canvasContext.arc(x, y, 1, 0, Math.PI*2, true);
|
||
canvasContext.closePath();
|
||
canvasContext.fill();
|
||
}
|
||
|
||
return true;
|
||
},
|
||
version : version
|
||
};
|
||
|
||
return clm;
|
||
|
||
})));
|