From d2a3c99894e200a6d8ed96d6430f7d6b0a9e552e Mon Sep 17 00:00:00 2001 From: GUNJ JOSHI Date: Fri, 8 May 2026 21:27:49 +0530 Subject: [PATCH 01/19] feat: copy older implementation, add radf3 --- type: pre_commit_static_analysis_report description: Results of running static analysis checks when committing changes. report: - task: lint_filenames status: passed - task: lint_editorconfig status: passed - task: lint_markdown status: na - task: lint_package_json status: na - task: lint_repl_help status: na - task: lint_javascript_src status: passed - task: lint_javascript_cli status: na - task: lint_javascript_examples status: na - task: lint_javascript_tests status: na - task: lint_javascript_benchmarks status: na - task: lint_python status: na - task: lint_r status: na - task: lint_c_src status: na - task: lint_c_examples status: na - task: lint_c_benchmarks status: na - task: lint_c_tests_fixtures status: na - task: lint_shell status: na - task: lint_typescript_declarations status: passed - task: lint_typescript_tests status: na - task: lint_license_headers status: passed --- --- .../fft/base/fftpack/rfftf/lib/index.js | 49 +++ .../fft/base/fftpack/rfftf/lib/main.js | 124 ++++++ .../fft/base/fftpack/rfftf/lib/radf2.js | 366 ++++++++++++++++ .../fft/base/fftpack/rfftf/lib/radf3.js | 397 ++++++++++++++++++ 4 files changed, 936 insertions(+) create mode 100644 lib/node_modules/@stdlib/fft/base/fftpack/rfftf/lib/index.js create mode 100644 lib/node_modules/@stdlib/fft/base/fftpack/rfftf/lib/main.js create mode 100644 lib/node_modules/@stdlib/fft/base/fftpack/rfftf/lib/radf2.js create mode 100644 lib/node_modules/@stdlib/fft/base/fftpack/rfftf/lib/radf3.js diff --git a/lib/node_modules/@stdlib/fft/base/fftpack/rfftf/lib/index.js b/lib/node_modules/@stdlib/fft/base/fftpack/rfftf/lib/index.js new file mode 100644 index 000000000000..d4e7f52daa0a --- /dev/null +++ b/lib/node_modules/@stdlib/fft/base/fftpack/rfftf/lib/index.js @@ -0,0 +1,49 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2026 The Stdlib Authors. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +'use strict'; + +/** +* Compute the forward real-valued fast Fourier transform (FFT). +* +* @module @stdlib/fft/base/fftpack/rfftf +* +* @example +* var Float64Array = require( '@stdlib/array/float64' ); +* var rffti = require( '@stdlib/fft/base/fftpack/rffti' ); +* var rfftf = require( '@stdlib/fft/base/fftpack/rfftf' ); +* +* var N = 4; +* +* var workspace = new Float64Array( ( 2*N ) + 34 ); +* rffti( N, workspace, 1, 0 ); +* +* var r = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); +* +* rfftf( N, r, 1, 0, workspace, 1, 0 ); +* // r => [ 10.0, -2.0, 2.0, -2.0 ] +*/ + +// MODULES // + +var main = require( './main.js' ); + + +// EXPORTS // + +module.exports = main; diff --git a/lib/node_modules/@stdlib/fft/base/fftpack/rfftf/lib/main.js b/lib/node_modules/@stdlib/fft/base/fftpack/rfftf/lib/main.js new file mode 100644 index 000000000000..0e54338933a1 --- /dev/null +++ b/lib/node_modules/@stdlib/fft/base/fftpack/rfftf/lib/main.js @@ -0,0 +1,124 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2026 The Stdlib Authors. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +* +* +* ## Notice +* +* The original C code and copyright notice are from the [PFFFT library]{@link https://github.com/marton78/pffft/blob/master/fftpack.c}. The implementation follows the original, but has been modified for JavaScript. +* +* ```text +* Copyright (c) 2004 the University Corporation for Atmospheric +* Research ("UCAR"). All rights reserved. Developed by NCAR's +* Computational and Information Systems Laboratory, UCAR, +* www.cisl.ucar.edu. +* +* Redistribution and use of the Software in source and binary forms, +* with or without modification, is permitted provided that the +* following conditions are met: +* +* - Neither the names of NCAR's Computational and Information Systems +* Laboratory, the University Corporation for Atmospheric Research, +* nor the names of its sponsors or contributors may be used to +* endorse or promote products derived from this Software without +* specific prior written permission. +* +* - Redistributions of source code must retain the above copyright +* notices, this list of conditions, and the disclaimer below. +* +* - Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions, and the disclaimer below in the +* documentation and/or other materials provided with the +* distribution. +* +* THIS 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 CONTRIBUTORS OR COPYRIGHT +* HOLDERS BE LIABLE FOR ANY CLAIM, INDIRECT, INCIDENTAL, SPECIAL, +* EXEMPLARY, OR CONSEQUENTIAL 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 WITH THE +* SOFTWARE. +* ``` +*/ + +'use strict'; + +// MODULES // + +var isNonNegativeInteger = require( '@stdlib/assert/is-nonnegative-integer' ); +var isFloat64Array = require( '@stdlib/assert/is-float64array' ); +var isInteger = require( '@stdlib/assert/is-integer' ); +var rfftf1 = require( './rfftf1.js' ); + + +// MAIN // + +/** +* Computes the forward real-valued fast Fourier transform (FFT). +* +* @param {NonNegativeInteger} N - length of the sequence to transform +* @param {Float64Array} r - input array containing the sequence to transform +* @param {integer} strideR - stride length for `r` +* @param {NonNegativeInteger} offsetR - starting index for `r` +* @param {Float64Array} workspace - workspace array containing pre-computed values +* @param {integer} strideW - stride length for `workspace` +* @param {NonNegativeInteger} offsetW - starting index for `workspace` +* @returns {void} +* +* @example +* var Float64Array = require( '@stdlib/array/float64' ); +* var rffti = require( '@stdlib/fft/base/fftpack/rffti' ); +* +* var N = 4; +* +* var workspace = new Float64Array( ( 2*N ) + 34 ); +* rffti( N, workspace, 1, 0 ); +* +* var r = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); +* +* rfftf( N, r, 1, 0, workspace, 1, 0 ); +* // r => [ 10.0, -2.0, 2.0, -2.0 ] +*/ +function rfftf( N, r, strideR, offsetR, workspace, strideW, offsetW ) { + var offsetT; + var offsetF; + + if ( !isNonNegativeInteger( N ) || !isFloat64Array( r ) || + !isInteger( strideR ) || !isNonNegativeInteger( offsetR ) || + !isFloat64Array( workspace ) || !isInteger( strideW ) || + !isNonNegativeInteger( offsetW ) || + workspace.length < offsetW + ( ( ( 2*N ) + 34 ) * strideW ) ) { + return; + } + + // When a sub-sequence is a single data point, the FFT is the identity, so no transformation necessary... + if ( N === 1 ) { + return; + } + + // Resolve the starting indices for storing twiddle factors and factorization results: + offsetT = offsetW + (N * strideW); // index offset for twiddle factors + offsetF = offsetT + (N * strideW); // index offset for factors describing the sub-transforms + + rfftf1( N, r, offsetR, workspace, offsetW, workspace, offsetT, workspace, offsetF ); // eslint-disable-line max-len +} + + +// EXPORTS // + +module.exports = rfftf; diff --git a/lib/node_modules/@stdlib/fft/base/fftpack/rfftf/lib/radf2.js b/lib/node_modules/@stdlib/fft/base/fftpack/rfftf/lib/radf2.js new file mode 100644 index 000000000000..0d0af15bbf79 --- /dev/null +++ b/lib/node_modules/@stdlib/fft/base/fftpack/rfftf/lib/radf2.js @@ -0,0 +1,366 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2026 The Stdlib Authors. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +* +* +* ## Notice +* +* The original C code and copyright notice are from the [PFFFT library]{@link https://github.com/marton78/pffft/blob/0b4ee12c4ba45a4a8e567550c16d96d1679f50ce/src/fftpack.c}. The implementation follows the original, but has been modified for JavaScript. +* +* ```text +* Copyright (c) 2004 the University Corporation for Atmospheric +* Research ("UCAR"). All rights reserved. Developed by NCAR's +* Computational and Information Systems Laboratory, UCAR, +* www.cisl.ucar.edu. +* +* Redistribution and use of the Software in source and binary forms, +* with or without modification, is permitted provided that the +* following conditions are met: +* +* - Neither the names of NCAR's Computational and Information Systems +* Laboratory, the University Corporation for Atmospheric Research, +* nor the names of its sponsors or contributors may be used to +* endorse or promote products derived from this Software without +* specific prior written permission. +* +* - Redistributions of source code must retain the above copyright +* notices, this list of conditions, and the disclaimer below. +* +* - Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions, and the disclaimer below in the +* documentation and/or other materials provided with the +* distribution. +* +* THIS 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 CONTRIBUTORS OR COPYRIGHT +* HOLDERS BE LIABLE FOR ANY CLAIM, INDIRECT, INCIDENTAL, SPECIAL, +* EXEMPLARY, OR CONSEQUENTIAL 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 WITH THE +* SOFTWARE. +* ``` +*/ + +/* eslint-disable max-len */ + +'use strict'; + +// FUNCTIONS // + +/** +* Resolves an index into the input array. +* +* ## Notes +* +* In a forward real FFT, the previous stage writes its results as two "rows" per sub-sequence. +* +* Thus, when reading from an input array stored in linear memory, we can reinterpret the array as a three-dimensional logical view containing `L` independent sub-sequences having two "rows" (`even + odd` and `even - odd`, respectively) and where each "row" is arranged as `M*L` contiguous elements corresponding to interleaved real and imaginary components. +* +* Accordingly, the following is a logical view of an input array (zero-based indexing) which contains `L = 3` transforms and in which each sub-sequence has length `M = 4`: +* +* ```text +* │ k = 0 k = 1 k = 2 +* │ ──────────────────────────────────────────────────────────────────────────→ k +* j = 0 (even+odd) │ cc(0,0,0) ... cc(3,0,0) cc(0,1,0) ... cc(3,1,0) cc(0,2,0) ... cc(3,2,0) +* │ +* j = 1 (even-odd) │ cc(0,0,1) ... cc(3,0,1) cc(0,1,1) ... cc(3,1,1) cc(0,2,1) ... cc(3,2,1) +* └───────────────────────────────────────────────────────────────────────────→ i +* ↑ ↑ ↑ ↑ ↑ ↑ +* i = 0 M-1 0 M-1 0 M-1 +* ``` +* +* In the above, +* +* - `i` is the fastest varying index, which walks within one short sub-sequence corresponding to either the `even + odd` or `even - odd` row. +* - `j` selects between the `even + odd` and `even - odd` row. +* - `k` specifies the index of one of the `L` independent transforms we are processing. +* +* In linear memory, the three-dimensional logical view is arranged as follows: +* +* ```text +* | cc(0,0,0)...cc(3,0,0) ... cc(0,2,0)...cc(3,2,0) | cc(0,0,1)...cc(3,0,1) ... cc(0,2,1)...cc(3,2,1) | +* ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ +* 0 M-1 LM LM-1 (L+1)M (L+1)M-1 (2L-1)M 2LM-1 +* ``` +* +* @private +* @param {NonNegativeInteger} i - index of an element within a sub-sequence +* @param {NonNegativeInteger} k - index of the sub-sequence being transformed +* @param {NonNegativeInteger} j - input row +* @param {NonNegativeInteger} L - number of sub-sequences +* @param {NonNegativeInteger} M - sub-sequence length +* @param {integer} stride - stride length of the input array +* @param {NonNegativeInteger} offset - index specifying the first indexed element in the output array +* @returns {NonNegativeInteger} computed index +* +* @example +* var stride = 1; +* var offset = 0; +* +* var M = 4; // sub-sequence length +* var L = 3; // number of sub-sequences +* +* var idx = iptr( 0, 0, 0, L, M, stride, offset ); +* // returns 0 +* +* idx = iptr( 1, 0, 0, L, M, stride, offset ); +* // returns 1 +* +* idx = iptr( M-1, 0, 0, L, M, stride, offset ); +* // returns 3 +* +* idx = iptr( 0, 1, 0, L, M, stride, offset ); +* // returns 4 +* +* // ... +* +* idx = iptr( M-1, L-1, 1, L, M, stride, offset ); +* // returns 23 +*/ +function iptr( i, k, j, L, M, stride, offset ) { + var n = i + ( ( k+(j*L) ) * M ); + return ( n*stride ) + offset; +} + +/** +* Resolves an index into the output array. +* +* ## Notes +* +* When writing to an output array stored in linear memory, we can reinterpret the array as a three-dimensional logical view containing `L` independent sub-sequences having two "columns" corresponding to the even and odd half-spectrum of a folded complex vector (with real and imaginary parts of each half-spectrum interleaved along each sub-sequence) and where each "column" has `M` elements. +* +* Accordingly, the following is a logical view of an output array (zero-based indexing) which contains `L = 3` transforms and in which each "column" sub-sequence has length `M = 4`: +* +* ```text +* j = 0 ("even" column) j = 1 ("odd" column) +* k = 0 ─┬───────────────────────────────────────┬───────────────────────────────────────┐ +* │ out(0,0,0) out(1,0,0) ... out(3,0,0) │ out(0,1,0) out(1,1,0) ... out(3,1,0) │ +* └───────────────────────────────────────┴───────────────────────────────────────┤ +* k = 1 ─┬───────────────────────────────────────┬───────────────────────────────────────┤ +* │ out(0,0,1) out(1,0,1) ... out(3,0,1) │ out(0,1,1) out(1,1,1) ... out(3,1,1) │ +* └───────────────────────────────────────┴───────────────────────────────────────┤ +* k = 2 ─┬───────────────────────────────────────┬───────────────────────────────────────┤ +* │ out(0,0,2) out(1,0,2) ... out(3,0,2) │ out(0,1,2) out(1,1,2) ... out(3,1,2) │ +* └───────────────────────────────────────┴───────────────────────────────────────┘ +* ↑ ↑ ↑ ↑ ↑ ↑ +* i = 0 1 M-1 0 1 M-1 +* ``` +* +* In the above, +* +* - `i` is the fastest varying index, which walks within one short "column" sub-sequence. +* - `j` selects between the even (0) and odd (1) column. +* - `k` specifies the index of one of the `L` independent transforms we are processing. +* +* In linear memory, the three-dimensional logical view is arranged as follows: +* +* ```text +* | out(0,0,0)...out(3,0,0) | out(0,1,0)...out(3,1,0) | out(0,0,1)...out(3,0,1) | ... | out(0,1,2)...out(3,1,2) | +* ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ +* 0 M-1 M 2M-1 2M 3M-1 (2L-1)M 2LM-1 +* ``` +* +* As may be observed, when resolving an index in the output array, the `j` and `k` dimensions are swapped relative index resolution in the input array. This stems from `radf2` being only one stage in a multi-stage driver which alternates between using `cc` and `out` as workspace buffers. After each stage, the next stage reads what the previous stage wrote. +* +* Each stage expects a transpose, and, in order to avoid explicit transposition between the stages, we swap the last two logical dimensions while still maintaining cache locality within the inner loop logical dimension, as indexed by `i`. +* +* @private +* @param {NonNegativeInteger} i - index of an element within a sub-sequence +* @param {NonNegativeInteger} j - index specifying which of the two complex halves we are in (either `0` or `1`) +* @param {NonNegativeInteger} k - index of the sub-sequence being transformed +* @param {NonNegativeInteger} M - sub-sequence length +* @param {integer} stride - stride length of the output array +* @param {NonNegativeInteger} offset - index specifying the first indexed element in the output array +* @returns {NonNegativeInteger} computed index +* +* @example +* var stride = 1; +* var offset = 0; +* +* var M = 4; // sub-sequence length +* var L = 3; // number of sub-sequences +* +* var idx = optr( 0, 0, 0, M, stride, offset ); +* // returns 0 +* +* idx = optr( 1, 0, 0, M, stride, offset ); +* // returns 1 +* +* idx = optr( M-1, 0, 0, M, stride, offset ); +* // returns 3 +* +* idx = optr( 0, 1, 0, M, stride, offset ); +* // returns 4 +* +* // ... +* +* idx = optr( M-1, 1, L-1, M, stride, offset ); +* // returns 23 +*/ +function optr( i, j, k, M, stride, offset ) { + var n = i + ( ( j+(k*2) ) * M ); + return ( n*stride ) + offset; +} + + +// MAIN // + +/** +* Performs one radix-2 stage within a forward Fourier transform for a real-valued sequence. +* +* @private +* @param {NonNegativeInteger} M - number of elements in each sub-sequence to be transformed +* @param {NonNegativeInteger} L - number of sub-sequences to be transformed +* @param {Float64Array} cc - input array containing the sub-sequences to be transformed +* @param {integer} sc - stride length for `cc` +* @param {NonNegativeInteger} oc - index offset for `cc` +* @param {Float64Array} out - output array containing transformed sub-sequences +* @param {integer} so - stride length for `out` +* @param {NonNegativeInteger} oo - index offset for `out` +* @param {Float64Array} twiddles - array containing twiddle factors +* @param {integer} st - stride length for `twiddles` +* @param {NonNegativeInteger} ot - index offset for `twiddles` +* @returns {void} +*/ +function radf2( M, L, cc, sc, oc, out, so, oo, twiddles, st, ot ) { // eslint-disable-line max-params + var tr2; + var ti2; + var ip1; + var ip2; + var it1; + var it2; + var io; + var im; + var i; + var k; + + /* + * First, perform the core butterfly for each sub-sequence being transformed. + * + * In the following loop, we handle harmonic `n = 0` for every transform. As described for `iptr`, the input array is interpreted as a three-dimensional array, containing two "rows" per sub-sequence. + * + * row0 = even + odd (j = 0) + * row1 = even - odd (j = 1) + * + * For a radix-2 forward FFT of a real-valued signal `x` and `n = 0`, + * + * x[0] = row0 + row1 = 2⋅even + * x[M] = row0 - row1 = 2⋅odd + * + * Because `W_2^0 = 1`, no twiddle multiplication is necessary. + */ + for ( k = 0; k < L; k++ ) { + ip1 = iptr( 0, k, 0, L, M, sc, oc ); // real part row 0 + ip2 = iptr( 0, k, 1, L, M, sc, oc ); // real part row 1 + + io = optr( 0, 0, k, M, so, oo ); + out[ io ] = cc[ ip1 ] + cc[ ip2 ]; // even + odd + + io = optr( M-1, 1, k, M, so, oo ); + out[ io ] = cc[ ip1 ] - cc[ ip2 ]; // even - odd + } + // When the number of elements in a sub-sequence is less than `2`, there is nothing more to do, as the above butterfly produced the full result... + if ( M < 2 ) { + return; + } + /* + * Next, apply the general case where we need to loop through the non-trivial harmonics. + * + * For each harmonic `n = 1, ..., M/2-1`, we need to + * + * - recover even/odd spectra from the two input rows. + * - multiply the odd part by the twiddle factor `W_n = cos(θ) - j sin(θ)`. + * - form the following + * + * x[2n] = E_n + W_n⋅O_n => column 0 + * x[2n+1] = E_n - W_n⋅O_n => column 1 + * + * The mirror index `im = M - i` selects the conjugate-symmetric partner, thus allowing the routine to read each symmetry pair only once. + */ + if ( M >= 3 ) { + // Loop over each sub-sequence to be transformed... + for ( k = 0; k < L; k++ ) { + // Loop over the elements in each sub-sequence... + for ( i = 2; i < M; i += 2 ) { + im = M - i; // "mirror" index + + // Resolve twiddle factor indices: + it1 = ( (i-2)*st ) + ot; // cos(θ) + it2 = ( (i-1)*st ) + ot; // sin(θ) + + // Load the `even-odd` row... + ip1 = iptr( i-1, k, 1, L, M, sc, oc ); // c = Re(row1) + ip2 = iptr( i, k, 1, L, M, sc, oc ); // d = Im(row1) + + // eslint-disable-next-line stdlib/capitalized-comments, stdlib/empty-line-before-comment + // tmp = W_n ⋅ (c + j⋅d) + tr2 = ( twiddles[ it1 ] * cc[ ip1 ] ) + ( twiddles[ it2 ] * cc[ ip2 ] ); // Re(tmp) + ti2 = ( twiddles[ it1 ] * cc[ ip2 ] ) - ( twiddles[ it2 ] * cc[ ip1 ] ); // Im(tmp) + + // Load the `even+odd` row... + ip1 = iptr( i, k, 0, L, M, sc, oc ); // b = Im(row0) + io = optr( i, 0, k, M, so, oo ); // Im(x[2n]) + out[ io ] = cc[ ip1 ] + ti2; + + io = optr( im, 1, k, M, so, oo ); // Im(x[2n+1]) + out[ io ] = ti2 - cc[ ip1 ]; + + ip1 = iptr( i-1, k, 0, L, M, sc, oc ); // a = Re(row0) + io = optr( i-1, 0, k, M, so, oo ); // Re(x[2n]) + out[ io ] = cc[ ip1 ] + tr2; + + io = optr( im-1, 1, k, M, so, oo ); // Re(x[2n+1]) + out[ io ] = cc[ ip1 ] - tr2; + } + } + // When `M` is odd, there is no Nyquist pair to process, so we do not need to perform any further transformations... + if ( M%2 === 1 ) { + return; + } + } + /* + * Lastly, handle the Nyquist frequency where `i = M-1` (i.e., the last element of each sub-sequence). + * + * When `M` is even, the Nyquist index is `i = M/2`. In this stage, we've stored that element at the end of each sub-sequence (i.e., `i = M-1` in the packed layout). + * + * At this point, the cosine term is -1 and the sine term is 0, so the twiddle multiplication collapses to simple addition/subtraction. + * + * In this case, + * + * W_n⋅O_n = ±Re(O_n) + * + * where + * + * row0 = Re(E_n) + * row1 = -Re(O_n) + */ + for ( k = 0; k < L; k++ ) { + ip1 = iptr( M-1, k, 1, L, M, sc, oc ); // -Re(O_n) + io = optr( 0, 1, k, M, so, oo ); + out[ io ] = -cc[ ip1 ]; // -(-Re(O_n)) = Re(O_n) + + ip1 = iptr( M-1, k, 0, L, M, sc, oc ); // Re(E_n) + io = optr( M-1, 0, k, M, so, oo ); + out[ io ] = cc[ ip1 ]; + } +} + + +// EXPORTS // + +module.exports = radf2; diff --git a/lib/node_modules/@stdlib/fft/base/fftpack/rfftf/lib/radf3.js b/lib/node_modules/@stdlib/fft/base/fftpack/rfftf/lib/radf3.js new file mode 100644 index 000000000000..2fced4b2c683 --- /dev/null +++ b/lib/node_modules/@stdlib/fft/base/fftpack/rfftf/lib/radf3.js @@ -0,0 +1,397 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2026 The Stdlib Authors. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +* +* +* ## Notice +* +* The original C code and copyright notice are from the [PFFFT library]{@link https://github.com/marton78/pffft/blob/0b4ee12c4ba45a4a8e567550c16d96d1679f50ce/src/fftpack.c}. The implementation follows the original, but has been modified for JavaScript. +* +* ```text +* Copyright (c) 2004 the University Corporation for Atmospheric +* Research ("UCAR"). All rights reserved. Developed by NCAR's +* Computational and Information Systems Laboratory, UCAR, +* www.cisl.ucar.edu. +* +* Redistribution and use of the Software in source and binary forms, +* with or without modification, is permitted provided that the +* following conditions are met: +* +* - Neither the names of NCAR's Computational and Information Systems +* Laboratory, the University Corporation for Atmospheric Research, +* nor the names of its sponsors or contributors may be used to +* endorse or promote products derived from this Software without +* specific prior written permission. +* +* - Redistributions of source code must retain the above copyright +* notices, this list of conditions, and the disclaimer below. +* +* - Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions, and the disclaimer below in the +* documentation and/or other materials provided with the +* distribution. +* +* THIS 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 CONTRIBUTORS OR COPYRIGHT +* HOLDERS BE LIABLE FOR ANY CLAIM, INDIRECT, INCIDENTAL, SPECIAL, +* EXEMPLARY, OR CONSEQUENTIAL 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 WITH THE +* SOFTWARE. +* ``` +*/ + +/* eslint-disable max-len */ + +'use strict'; + +// VARIABLES // + +var TAUR = -0.5; // cos( 2π/3 ) +var TAUI = 0.866025403784439; // sin( 2π/3 ) + + +// FUNCTIONS // + +/** +* Resolves an index into the input array. +* +* ## Notes +* +* In a forward real FFT, the previous stage writes its results as three "rows" per sub-sequence. +* +* Thus, when reading from an input array stored in linear memory, we can reinterpret the array as a three-dimensional logical view containing `L` independent sub-sequences having three "rows" (components 0, 1, and 2) and where each "row" is arranged as `M*L` contiguous elements corresponding to interleaved real and imaginary components. +* +* Accordingly, the following is a logical view of an input array (zero-based indexing) which contains `L = 3` transforms and in which each sub-sequence has length `M = 4`: +* +* ```text +* │ k = 0 k = 1 k = 2 +* │ ──────────────────────────────────────────────────────────────────────────→ k +* j = 0 │ cc(0,0,0) ... cc(3,0,0) cc(0,1,0) ... cc(3,1,0) cc(0,2,0) ... cc(3,2,0) +* │ +* j = 1 │ cc(0,0,1) ... cc(3,0,1) cc(0,1,1) ... cc(3,1,1) cc(0,2,1) ... cc(3,2,1) +* │ +* j = 2 │ cc(0,0,2) ... cc(3,0,2) cc(0,1,2) ... cc(3,1,2) cc(0,2,2) ... cc(3,2,2) +* └───────────────────────────────────────────────────────────────────────────→ i +* ↑ ↑ ↑ ↑ ↑ ↑ +* i = 0 M-1 0 M-1 0 M-1 +* ``` +* +* In the above, +* +* - `i` is the fastest varying index, which walks within one short sub-sequence corresponding to one of the three component rows. +* - `j` selects between the three component rows (0, 1, or 2). +* - `k` specifies the index of one of the `L` independent transforms we are processing. +* +* In linear memory, the three-dimensional logical view is arranged as follows: +* +* ```text +* | cc(0,0,0)...cc(3,0,0) ... cc(0,2,0)...cc(3,2,0) | cc(0,0,1)...cc(3,0,1) ... cc(0,2,1)...cc(3,2,1) | cc(0,0,2)...cc(3,0,2) ... cc(0,2,2)...cc(3,2,2) | +* ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ +* 0 M-1 LM LM-1 (L+1)M (L+1)M-1 (2L-1)M 2LM-1 2LM (2L+1)M-1 (3L-1)M 3LM-1 +* ``` +* +* @private +* @param {NonNegativeInteger} i - index of an element within a sub-sequence +* @param {NonNegativeInteger} k - index of the sub-sequence being transformed +* @param {NonNegativeInteger} j - input row +* @param {NonNegativeInteger} L - number of sub-sequences +* @param {NonNegativeInteger} M - sub-sequence length +* @param {integer} stride - stride length of the input array +* @param {NonNegativeInteger} offset - index specifying the first indexed element in the output array +* @returns {NonNegativeInteger} computed index +* +* @example +* var stride = 1; +* var offset = 0; +* +* var M = 4; // sub-sequence length +* var L = 3; // number of sub-sequences +* +* var idx = iptr( 0, 0, 0, L, M, stride, offset ); +* // returns 0 +* +* idx = iptr( 1, 0, 0, L, M, stride, offset ); +* // returns 1 +* +* idx = iptr( M-1, 0, 0, L, M, stride, offset ); +* // returns 3 +* +* idx = iptr( 0, 1, 0, L, M, stride, offset ); +* // returns 4 +* +* // ... +* +* idx = iptr( M-1, L-1, 1, L, M, stride, offset ); +* // returns 23 +*/ +function iptr( i, k, j, L, M, stride, offset ) { + var n = i + ( ( k+(j*L) ) * M ); + return ( n*stride ) + offset; +} + +/** +* Resolves an index into the output array. +* +* ## Notes +* +* When writing to an output array stored in linear memory, we can reinterpret the array as a three-dimensional logical view containing `L` independent sub-sequences having three "columns" corresponding to the three components of a radix-3 stage (with real and imaginary parts of each component interleaved along each sub-sequence) and where each "column" has `M` elements. +* +* Accordingly, the following is a logical view of an output array (zero-based indexing) which contains `L = 3` transforms and in which each "column" sub-sequence has length `M = 4`: +* +* ```text +* j = 0 (component 0) j = 1 (component 1) j = 2 (component 2) +* k = 0 ─┬───────────────────────────────────────┬───────────────────────────────────────┬───────────────────────────────────────┐ +* │ out(0,0,0) out(1,0,0) ... out(3,0,0) │ out(0,1,0) out(1,1,0) ... out(3,1,0) │ out(0,2,0) out(1,2,0) ... out(3,2,0) │ +* └───────────────────────────────────────┴───────────────────────────────────────┴───────────────────────────────────────┤ +* k = 1 ─┬───────────────────────────────────────┬───────────────────────────────────────┬───────────────────────────────────────┤ +* │ out(0,0,1) out(1,0,1) ... out(3,0,1) │ out(0,1,1) out(1,1,1) ... out(3,1,1) │ out(0,2,1) out(1,2,1) ... out(3,2,1) │ +* └───────────────────────────────────────┴───────────────────────────────────────┴───────────────────────────────────────┤ +* k = 2 ─┬───────────────────────────────────────┬───────────────────────────────────────┬───────────────────────────────────────┤ +* │ out(0,0,2) out(1,0,2) ... out(3,0,2) │ out(0,1,2) out(1,1,2) ... out(3,1,2) │ out(0,2,2) out(1,2,2) ... out(3,2,2) │ +* └───────────────────────────────────────┴───────────────────────────────────────┴───────────────────────────────────────┘ +* ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ +* i = 0 1 M-1 0 1 M-1 0 1 M-1 +* ``` +* +* In the above, +* +* - `i` is the fastest varying index, which walks within one short "column" sub-sequence. +* - `j` selects between one of the three components (0, 1, or 2). +* - `k` specifies the index of one of the `L` independent transforms we are processing. +* +* In linear memory, the three-dimensional logical view is arranged as follows: +* +* ```text +* | out(0,0,0)...out(3,0,0) | out(0,1,0)...out(3,1,0) | out(0,2,0)...out(3,2,0) | out(0,0,1)...out(3,0,1) | ... | out(0,2,2)...out(3,2,2) | +* ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ +* 0 M-1 M 2M-1 2M 3M-1 3M 4M-1 (3L-1)M 3LM-1 +* ``` +* +* As may be observed, when resolving an index in the output array, the `j` and `k` dimensions are swapped relative index resolution in the input array. This stems from `radf3` being only one stage in a multi-stage driver which alternates between using `cc` and `out` as workspace buffers. After each stage, the next stage reads what the previous stage wrote. +* +* Each stage expects a transpose, and, in order to avoid explicit transposition between the stages, we swap the last two logical dimensions while still maintaining cache locality within the inner loop logical dimension, as indexed by `i`. +* +* @private +* @param {NonNegativeInteger} i - index of an element within a sub-sequence +* @param {NonNegativeInteger} j - index specifying which of the three complex components we are in (0, 1, or 2) +* @param {NonNegativeInteger} k - index of the sub-sequence being transformed +* @param {NonNegativeInteger} M - sub-sequence length +* @param {integer} stride - stride length of the output array +* @param {NonNegativeInteger} offset - index specifying the first indexed element in the output array +* @returns {NonNegativeInteger} computed index +* +* @example +* var stride = 1; +* var offset = 0; +* +* var M = 4; // sub-sequence length +* var L = 3; // number of sub-sequences +* +* var idx = optr( 0, 0, 0, M, stride, offset ); +* // returns 0 +* +* idx = optr( 1, 0, 0, M, stride, offset ); +* // returns 1 +* +* idx = optr( M-1, 0, 0, M, stride, offset ); +* // returns 3 +* +* idx = optr( 0, 1, 0, M, stride, offset ); +* // returns 4 +* +* // ... +* +* idx = optr( M-1, 2, L-1, M, stride, offset ); +* // returns 35 +*/ +function optr( i, j, k, M, stride, offset ) { + var n = i + ( ( j+(k*3) ) * M ); + return ( n*stride ) + offset; +} + + +// MAIN // + +/** +* Performs one radix-3 stage within a forward Fourier transform for a real-valued sequence. +* +* @private +* @param {NonNegativeInteger} M - number of elements in each sub-sequence to be transformed +* @param {NonNegativeInteger} L - number of sub-sequences to be transformed +* @param {Float64Array} cc - input array containing the sub-sequences to be transformed +* @param {integer} sc - stride length for `cc` +* @param {NonNegativeInteger} oc - index offset for `cc` +* @param {Float64Array} out - output array containing transformed sub-sequences +* @param {integer} so - stride length for `out` +* @param {NonNegativeInteger} oo - index offset for `out` +* @param {Float64Array} twiddles1 - first array containing twiddle factors +* @param {integer} st1 - stride length for `twiddles1` +* @param {NonNegativeInteger} ot1 - index offset for `twiddles1` +* @param {Float64Array} twiddles2 - second array containing twiddle factors +* @param {integer} st2 - stride length for `twiddles2` +* @param {NonNegativeInteger} ot2 - index offset for `twiddles2` +* @returns {void} +*/ +function radf3( M, L, cc, sc, oc, out, so, oo, twiddles1, st1, ot1, twiddles2, st2, ot2 ) { // eslint-disable-line max-params + var it11; + var it12; + var it21; + var it22; + var tr2; + var ti2; + var tr3; + var ti3; + var cr2; + var ci2; + var dr2; + var di2; + var dr3; + var di3; + var ip1; + var ip2; + var ip3; + var io; + var im; + var i; + var k; + + /* + * First, perform the core butterfly for each sub-sequence being transformed. + * + * In the following loop, we handle harmonic `n = 0` for every transform. As described for `iptr`, the input array is interpreted as a three-dimensional array, containing three "rows" per sub-sequence. + * + * row0 = input component 0 (j = 0) + * row1 = input component 1 (j = 1) + * row2 = input component 2 (j = 2) + * + * For a radix-3 forward FFT of a real-valued signal `x` and `n = 0`, + * + * x[0] = row0 + row1 + row2 + * x[2M] = taui * ( row2-row1 ) + * x[M] = row0 + ( taur * ( row1+row2 ) ) + * + * where `taur = cos(2π/3)` and `taui = sin(2π/3)`. + * + * Because `W_3^0 = 1`, no twiddle multiplication is necessary beyond these constant factors (`taur` and `taui`). + */ + for ( k = 0; k < L; k++ ) { + ip1 = iptr( 0, k, 0, L, M, sc, oc ); // real part row 0 + ip2 = iptr( 0, k, 1, L, M, sc, oc ); // real part row 1 + ip3 = iptr( 0, k, 2, L, M, sc, oc ); // real part row 2 + + cr2 = cc[ ip2 ] + cc[ ip3 ]; + + io = optr( 0, 0, k, M, so, oo ); + out[ io ] = cc[ ip1 ] + cr2; // row0 + row1 + row2 + + io = optr( 0, 2, k, M, so, oo ); + out[ io ] = TAUI * ( cc[ ip3 ] - cc[ ip2 ] ); // taui * ( row2-row1 ) + + io = optr( M-1, 1, k, M, so, oo ); + out[ io ] = cc[ ip1 ] + ( TAUR * cr2 ); // row0 + ( taur * ( row1+row2 ) ) + } + // When the number of elements in a sub-sequence is less than `2`, there is nothing more to do, as the above butterfly produced the full result... + if ( M < 2 ) { + return; + } + /* + * Next, apply the general case where we need to loop through the non-trivial harmonics. + * + * For each harmonic `n = 1, ..., M/2-1`, we need to + * + * - recover three spectra from the three input rows. + * - apply radix-3 twiddle factors to rows 1 and 2, then combine with row 0 to form three output columns. + * - form the following + * + * x[3n] = X₀ + (W₁⋅X₁ + W₂⋅X₂) => column 0 + * x[3n+1] = X₀ + taur⋅(W₁⋅X₁ + W₂⋅X₂) + taui⋅i⋅(W₁⋅X₁ - W₂⋅X₂) => column 2 + * x[3n+2] = X₀ + taur⋅(W₁⋅X₁ + W₂⋅X₂) - taui⋅i⋅(W₁⋅X₁ - W₂⋅X₂) => column 1 + * + * The mirror index `im = M - i` selects the conjugate-symmetric partner, thus allowing the routine to read each symmetry pair only once. + */ + // Loop over each sub-sequence to be transformed... + for ( k = 0; k < L; k++ ) { + // Loop over the elements in each sub-sequence... + for ( i = 2; i < M; i += 2 ) { + im = M - i; // "mirror" index + + // Resolve twiddle factor indices for component 1: + it11 = ( (i-2)*st1 ) + ot1; // cos(θ) for component 1 + it12 = ( (i-1)*st1 ) + ot1; // sin(θ) for component 1 + + // Resolve twiddle factor indices for component 2: + it21 = ( (i-2)*st2 ) + ot2; // cos(θ) for component 2 + it22 = ( (i-1)*st2 ) + ot2; // sin(θ) for component 2 + + // Load component 1 data... + ip1 = iptr( i-1, k, 1, L, M, sc, oc ); // real part component 1 + ip2 = iptr( i, k, 1, L, M, sc, oc ); // imag part component 1 + + // Apply twiddle factor for component 1 + dr2 = ( twiddles1[ it11 ] * cc[ ip1 ] ) + ( twiddles1[ it12 ] * cc[ ip2 ] ); + di2 = ( twiddles1[ it11 ] * cc[ ip2 ] ) - ( twiddles1[ it12 ] * cc[ ip1 ] ); + + // Load component 2 data... + ip1 = iptr( i-1, k, 2, L, M, sc, oc ); // real part component 2 + ip2 = iptr( i, k, 2, L, M, sc, oc ); // imag part component 2 + + // Apply twiddle factor for component 2 + dr3 = ( twiddles2[ it21 ] * cc[ ip1 ] ) + ( twiddles2[ it22 ] * cc[ ip2 ] ); + di3 = ( twiddles2[ it21 ] * cc[ ip2 ] ) - ( twiddles2[ it22 ] * cc[ ip1 ] ); + + // Combine the twiddled components + cr2 = dr2 + dr3; // sum of real parts + ci2 = di2 + di3; // sum of imag parts + + // Load component 0 data... + ip1 = iptr( i-1, k, 0, L, M, sc, oc ); // real part component 0 + io = optr( i-1, 0, k, M, so, oo ); + out[ io ] = cc[ ip1 ] + cr2; + + ip2 = iptr( i, k, 0, L, M, sc, oc ); // imag part component 0 + io = optr( i, 0, k, M, so, oo ); + out[ io ] = cc[ ip2 ] + ci2; + + // Intermediate results for components 1 and 2 + tr2 = cc[ ip1 ] + ( TAUR * cr2 ); + ti2 = cc[ ip2 ] + ( TAUR * ci2 ); + tr3 = TAUI * ( di2 - di3 ); + ti3 = TAUI * ( dr3 - dr2 ); + + // Output component 1 + io = optr( i-1, 2, k, M, so, oo ); + out[ io ] = tr2 + tr3; + + io = optr( im-1, 1, k, M, so, oo ); + out[ io ] = tr2 - tr3; + + // Output component 2 + io = optr( i, 2, k, M, so, oo ); + out[ io ] = ti2 + ti3; + + io = optr( im, 1, k, M, so, oo ); + out[ io ] = ti3 - ti2; + } + } +} + + +// EXPORTS // + +module.exports = radf3; From dd7b9bcd3d95f62bf94112e07d0bc1739521ef9f Mon Sep 17 00:00:00 2001 From: GUNJ JOSHI Date: Mon, 11 May 2026 00:53:35 +0530 Subject: [PATCH 02/19] feat: add radf4 --- type: pre_commit_static_analysis_report description: Results of running static analysis checks when committing changes. report: - task: lint_filenames status: passed - task: lint_editorconfig status: passed - task: lint_markdown status: na - task: lint_package_json status: na - task: lint_repl_help status: na - task: lint_javascript_src status: passed - task: lint_javascript_cli status: na - task: lint_javascript_examples status: na - task: lint_javascript_tests status: na - task: lint_javascript_benchmarks status: na - task: lint_python status: na - task: lint_r status: na - task: lint_c_src status: na - task: lint_c_examples status: na - task: lint_c_benchmarks status: na - task: lint_c_tests_fixtures status: na - task: lint_shell status: na - task: lint_typescript_declarations status: passed - task: lint_typescript_tests status: na - task: lint_license_headers status: passed --- --- .../fft/base/fftpack/rfftf/lib/radf2.js | 14 +- .../fft/base/fftpack/rfftf/lib/radf3.js | 11 +- .../fft/base/fftpack/rfftf/lib/radf4.js | 492 ++++++++++++++++++ 3 files changed, 505 insertions(+), 12 deletions(-) create mode 100644 lib/node_modules/@stdlib/fft/base/fftpack/rfftf/lib/radf4.js diff --git a/lib/node_modules/@stdlib/fft/base/fftpack/rfftf/lib/radf2.js b/lib/node_modules/@stdlib/fft/base/fftpack/rfftf/lib/radf2.js index 0d0af15bbf79..4b41a74e2ae3 100644 --- a/lib/node_modules/@stdlib/fft/base/fftpack/rfftf/lib/radf2.js +++ b/lib/node_modules/@stdlib/fft/base/fftpack/rfftf/lib/radf2.js @@ -304,7 +304,7 @@ function radf2( M, L, cc, sc, oc, out, so, oo, twiddles, st, ot ) { // eslint-di it2 = ( (i-1)*st ) + ot; // sin(θ) // Load the `even-odd` row... - ip1 = iptr( i-1, k, 1, L, M, sc, oc ); // c = Re(row1) + ip1 = iptr( i-1, k, 1, L, M, sc, oc ); // c = Re(row1) ip2 = iptr( i, k, 1, L, M, sc, oc ); // d = Im(row1) // eslint-disable-next-line stdlib/capitalized-comments, stdlib/empty-line-before-comment @@ -314,17 +314,17 @@ function radf2( M, L, cc, sc, oc, out, so, oo, twiddles, st, ot ) { // eslint-di // Load the `even+odd` row... ip1 = iptr( i, k, 0, L, M, sc, oc ); // b = Im(row0) - io = optr( i, 0, k, M, so, oo ); // Im(x[2n]) + io = optr( i, 0, k, M, so, oo ); // Im(x[2n]) out[ io ] = cc[ ip1 ] + ti2; - io = optr( im, 1, k, M, so, oo ); // Im(x[2n+1]) + io = optr( im, 1, k, M, so, oo ); // Im(x[2n+1]) out[ io ] = ti2 - cc[ ip1 ]; - ip1 = iptr( i-1, k, 0, L, M, sc, oc ); // a = Re(row0) - io = optr( i-1, 0, k, M, so, oo ); // Re(x[2n]) + ip1 = iptr( i-1, k, 0, L, M, sc, oc ); // a = Re(row0) + io = optr( i-1, 0, k, M, so, oo ); // Re(x[2n]) out[ io ] = cc[ ip1 ] + tr2; - io = optr( im-1, 1, k, M, so, oo ); // Re(x[2n+1]) + io = optr( im-1, 1, k, M, so, oo ); // Re(x[2n+1]) out[ io ] = cc[ ip1 ] - tr2; } } @@ -352,7 +352,7 @@ function radf2( M, L, cc, sc, oc, out, so, oo, twiddles, st, ot ) { // eslint-di for ( k = 0; k < L; k++ ) { ip1 = iptr( M-1, k, 1, L, M, sc, oc ); // -Re(O_n) io = optr( 0, 1, k, M, so, oo ); - out[ io ] = -cc[ ip1 ]; // -(-Re(O_n)) = Re(O_n) + out[ io ] = -cc[ ip1 ]; // -(-Re(O_n)) = Re(O_n) ip1 = iptr( M-1, k, 0, L, M, sc, oc ); // Re(E_n) io = optr( M-1, 0, k, M, so, oo ); diff --git a/lib/node_modules/@stdlib/fft/base/fftpack/rfftf/lib/radf3.js b/lib/node_modules/@stdlib/fft/base/fftpack/rfftf/lib/radf3.js index 2fced4b2c683..3aae60305bf8 100644 --- a/lib/node_modules/@stdlib/fft/base/fftpack/rfftf/lib/radf3.js +++ b/lib/node_modules/@stdlib/fft/base/fftpack/rfftf/lib/radf3.js @@ -282,12 +282,13 @@ function radf3( M, L, cc, sc, oc, out, so, oo, twiddles1, st1, ot1, twiddles2, s * * For a radix-3 forward FFT of a real-valued signal `x` and `n = 0`, * + * taur = cos(2π/3) + * taui = sin(2π/3) + * * x[0] = row0 + row1 + row2 * x[2M] = taui * ( row2-row1 ) * x[M] = row0 + ( taur * ( row1+row2 ) ) * - * where `taur = cos(2π/3)` and `taui = sin(2π/3)`. - * * Because `W_3^0 = 1`, no twiddle multiplication is necessary beyond these constant factors (`taur` and `taui`). */ for ( k = 0; k < L; k++ ) { @@ -341,7 +342,7 @@ function radf3( M, L, cc, sc, oc, out, so, oo, twiddles1, st1, ot1, twiddles2, s // Load component 1 data... ip1 = iptr( i-1, k, 1, L, M, sc, oc ); // real part component 1 - ip2 = iptr( i, k, 1, L, M, sc, oc ); // imag part component 1 + ip2 = iptr( i, k, 1, L, M, sc, oc ); // imag part component 1 // Apply twiddle factor for component 1 dr2 = ( twiddles1[ it11 ] * cc[ ip1 ] ) + ( twiddles1[ it12 ] * cc[ ip2 ] ); @@ -349,7 +350,7 @@ function radf3( M, L, cc, sc, oc, out, so, oo, twiddles1, st1, ot1, twiddles2, s // Load component 2 data... ip1 = iptr( i-1, k, 2, L, M, sc, oc ); // real part component 2 - ip2 = iptr( i, k, 2, L, M, sc, oc ); // imag part component 2 + ip2 = iptr( i, k, 2, L, M, sc, oc ); // imag part component 2 // Apply twiddle factor for component 2 dr3 = ( twiddles2[ it21 ] * cc[ ip1 ] ) + ( twiddles2[ it22 ] * cc[ ip2 ] ); @@ -364,7 +365,7 @@ function radf3( M, L, cc, sc, oc, out, so, oo, twiddles1, st1, ot1, twiddles2, s io = optr( i-1, 0, k, M, so, oo ); out[ io ] = cc[ ip1 ] + cr2; - ip2 = iptr( i, k, 0, L, M, sc, oc ); // imag part component 0 + ip2 = iptr( i, k, 0, L, M, sc, oc ); // imag part component 0 io = optr( i, 0, k, M, so, oo ); out[ io ] = cc[ ip2 ] + ci2; diff --git a/lib/node_modules/@stdlib/fft/base/fftpack/rfftf/lib/radf4.js b/lib/node_modules/@stdlib/fft/base/fftpack/rfftf/lib/radf4.js new file mode 100644 index 000000000000..c3e52effe63f --- /dev/null +++ b/lib/node_modules/@stdlib/fft/base/fftpack/rfftf/lib/radf4.js @@ -0,0 +1,492 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2026 The Stdlib Authors. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +* +* +* ## Notice +* +* The original C code and copyright notice are from the [PFFFT library]{@link https://github.com/marton78/pffft/blob/0b4ee12c4ba45a4a8e567550c16d96d1679f50ce/src/fftpack.c}. The implementation follows the original, but has been modified for JavaScript. +* +* ```text +* Copyright (c) 2004 the University Corporation for Atmospheric +* Research ("UCAR"). All rights reserved. Developed by NCAR's +* Computational and Information Systems Laboratory, UCAR, +* www.cisl.ucar.edu. +* +* Redistribution and use of the Software in source and binary forms, +* with or without modification, is permitted provided that the +* following conditions are met: +* +* - Neither the names of NCAR's Computational and Information Systems +* Laboratory, the University Corporation for Atmospheric Research, +* nor the names of its sponsors or contributors may be used to +* endorse or promote products derived from this Software without +* specific prior written permission. +* +* - Redistributions of source code must retain the above copyright +* notices, this list of conditions, and the disclaimer below. +* +* - Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions, and the disclaimer below in the +* documentation and/or other materials provided with the +* distribution. +* +* THIS 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 CONTRIBUTORS OR COPYRIGHT +* HOLDERS BE LIABLE FOR ANY CLAIM, INDIRECT, INCIDENTAL, SPECIAL, +* EXEMPLARY, OR CONSEQUENTIAL 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 WITH THE +* SOFTWARE. +* ``` +*/ + +/* eslint-disable max-len, max-statements */ + +'use strict'; + +// MODULES // + +var SQRT_HALF = require( '@stdlib/constants/float64/sqrt-half' ); + + +// FUNCTIONS // + +/** +* Resolves an index into the input array. +* +* ## Notes +* +* In a forward real FFT, the previous stage writes its results as four "rows" per sub-sequence. +* +* Thus, when reading from an input array stored in linear memory, we can reinterpret the array as a three-dimensional logical view containing `L` independent sub-sequences having four "rows" (components 0, 1, 2, and 3) and where each "row" is arranged as `M*L` contiguous elements corresponding to interleaved real and imaginary components. +* +* Accordingly, the following is a logical view of an input array (zero-based indexing) which contains `L = 3` transforms and in which each sub-sequence has length `M = 4`: +* +* ```text +* │ k = 0 k = 1 k = 2 +* │ ──────────────────────────────────────────────────────────────────────────→ k +* j = 0 │ cc(0,0,0) ... cc(3,0,0) cc(0,1,0) ... cc(3,1,0) cc(0,2,0) ... cc(3,2,0) +* │ +* j = 1 │ cc(0,0,1) ... cc(3,0,1) cc(0,1,1) ... cc(3,1,1) cc(0,2,1) ... cc(3,2,1) +* │ +* j = 2 │ cc(0,0,2) ... cc(3,0,2) cc(0,1,2) ... cc(3,1,2) cc(0,2,2) ... cc(3,2,2) +* │ +* j = 3 │ cc(0,0,3) ... cc(3,0,3) cc(0,1,3) ... cc(3,1,3) cc(0,2,3) ... cc(3,2,3) +* └───────────────────────────────────────────────────────────────────────────→ i +* ↑ ↑ ↑ ↑ ↑ ↑ +* i = 0 M-1 0 M-1 0 M-1 +* ``` +* +* In the above, +* +* - `i` is the fastest varying index, which walks within one short sub-sequence corresponding to one of the four component rows. +* - `j` selects between the four component rows (0, 1, 2, or 3). +* - `k` specifies the index of one of the `L` independent transforms we are processing. +* +* In linear memory, the three-dimensional logical view is arranged as follows: +* +* ```text +* | cc(0,0,0)...cc(3,0,0) ... cc(0,2,0)...cc(3,2,0) | cc(0,0,1)...cc(3,0,1) ... cc(0,2,1)...cc(3,2,1) | ... | cc(0,0,3)...cc(3,0,3) ... cc(0,2,3)...cc(3,2,3) | +* ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ +* 0 M-1 LM LM-1 (L+1)M (L+1)M-1 (2L-1)M 2LM-1 3LM (3L+1)M-1 (4L-1)M 4LM-1 +* ``` +* +* @private +* @param {NonNegativeInteger} i - index of an element within a sub-sequence +* @param {NonNegativeInteger} k - index of the sub-sequence being transformed +* @param {NonNegativeInteger} j - input row +* @param {NonNegativeInteger} L - number of sub-sequences +* @param {NonNegativeInteger} M - sub-sequence length +* @param {integer} stride - stride length of the input array +* @param {NonNegativeInteger} offset - index specifying the first indexed element in the output array +* @returns {NonNegativeInteger} computed index +* +* @example +* var stride = 1; +* var offset = 0; +* +* var M = 4; // sub-sequence length +* var L = 3; // number of sub-sequences +* +* var idx = iptr( 0, 0, 0, L, M, stride, offset ); +* // returns 0 +* +* idx = iptr( 1, 0, 0, L, M, stride, offset ); +* // returns 1 +* +* idx = iptr( M-1, 0, 0, L, M, stride, offset ); +* // returns 3 +* +* idx = iptr( 0, 1, 0, L, M, stride, offset ); +* // returns 4 +* +* // ... +* +* idx = iptr( M-1, L-1, 1, L, M, stride, offset ); +* // returns 23 +*/ +function iptr( i, k, j, L, M, stride, offset ) { + var n = i + ( ( k+(j*L) ) * M ); + return ( n*stride ) + offset; +} + +/** +* Resolves an index into the output array. +* +* ## Notes +* +* When writing to an output array stored in linear memory, we can reinterpret the array as a three-dimensional logical view containing `L` independent sub-sequences having four "columns" corresponding to the four components of a radix-4 stage (with real and imaginary parts of each component interleaved along each sub-sequence) and where each "column" has `M` elements. +* +* Accordingly, the following is a logical view of an output array (zero-based indexing) which contains `L = 3` transforms and in which each "column" sub-sequence has length `M = 4`: +* +* ```text +* j = 0 (component 0) j = 1 (component 1) j = 2 (component 2) j = 3 (component 3) +* k = 0 ─┬───────────────────────────────────────┬───────────────────────────────────────┬───────────────────────────────────────┬───────────────────────────────────────┐ +* │ out(0,0,0) out(1,0,0) ... out(3,0,0) │ out(0,1,0) out(1,1,0) ... out(3,1,0) │ out(0,2,0) out(1,2,0) ... out(3,2,0) │ out(0,3,0) out(1,3,0) ... out(3,3,0) │ +* └───────────────────────────────────────┴───────────────────────────────────────┴───────────────────────────────────────┴───────────────────────────────────────┤ +* k = 1 ─┬───────────────────────────────────────┬───────────────────────────────────────┬───────────────────────────────────────┬───────────────────────────────────────┤ +* │ out(0,0,1) out(1,0,1) ... out(3,0,1) │ out(0,1,1) out(1,1,1) ... out(3,1,1) │ out(0,2,1) out(1,2,1) ... out(3,2,1) │ out(0,3,1) out(1,3,1) ... out(3,3,1) │ +* └───────────────────────────────────────┴───────────────────────────────────────┴───────────────────────────────────────┴───────────────────────────────────────┤ +* k = 2 ─┬───────────────────────────────────────┬───────────────────────────────────────┬───────────────────────────────────────┬───────────────────────────────────────┤ +* │ out(0,0,2) out(1,0,2) ... out(3,0,2) │ out(0,1,2) out(1,1,2) ... out(3,1,2) │ out(0,2,2) out(1,2,2) ... out(3,2,2) │ out(0,3,2) out(1,3,2) ... out(3,3,2) │ +* └───────────────────────────────────────┴───────────────────────────────────────┴───────────────────────────────────────┴───────────────────────────────────────┘ +* ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ +* i = 0 1 M-1 0 1 M-1 0 1 M-1 0 1 M-1 +* ``` +* +* In the above, +* +* - `i` is the fastest varying index, which walks within one short "column" sub-sequence. +* - `j` selects which of the four components (0, 1, 2, or 3). +* - `k` specifies the index of one of the `L` independent transforms we are processing. +* +* In linear memory, the three-dimensional logical view is arranged as follows: +* +* ```text +* | out(0,0,0)...out(3,0,0) | out(0,1,0)...out(3,1,0) | out(0,2,0)...out(3,2,0) | out(0,3,0)...out(3,3,0) | out(0,0,1)...out(3,0,1) | ... | out(0,3,2)...out(3,3,2) | +* ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ +* 0 M-1 M 2M-1 2M 3M-1 3M 4M-1 4M 5M-1 (4L-1)M 4LM-1 +* ``` +* +* As may be observed, when resolving an index in the output array, the `j` and `k` dimensions are swapped relative index resolution in the input array. This stems from `radf4` being only one stage in a multi-stage driver which alternates between using `cc` and `out` as workspace buffers. After each stage, the next stage reads what the previous stage wrote. +* +* Each stage expects a transpose, and, in order to avoid explicit transposition between the stages, we swap the last two logical dimensions while still maintaining cache locality within the inner loop logical dimension, as indexed by `i`. +* +* @private +* @param {NonNegativeInteger} i - index of an element within a sub-sequence +* @param {NonNegativeInteger} j - index specifying which of the four complex components we are in (0, 1, 2, or 3) +* @param {NonNegativeInteger} k - index of the sub-sequence being transformed +* @param {NonNegativeInteger} M - sub-sequence length +* @param {integer} stride - stride length of the output array +* @param {NonNegativeInteger} offset - index specifying the first indexed element in the output array +* @returns {NonNegativeInteger} computed index +* +* @example +* var stride = 1; +* var offset = 0; +* +* var M = 4; // sub-sequence length +* var L = 3; // number of sub-sequences +* +* var idx = optr( 0, 0, 0, M, stride, offset ); +* // returns 0 +* +* idx = optr( 1, 0, 0, M, stride, offset ); +* // returns 1 +* +* idx = optr( M-1, 0, 0, M, stride, offset ); +* // returns 3 +* +* idx = optr( 0, 1, 0, M, stride, offset ); +* // returns 4 +* +* // ... +* +* idx = optr( M-1, 3, L-1, M, stride, offset ); +* // returns 47 +*/ +function optr( i, j, k, M, stride, offset ) { + var n = i + ( ( j+(k*4) ) * M ); + return ( n*stride ) + offset; +} + + +// MAIN // + +/** +* Performs one radix-4 stage within a forward Fourier transform for a real-valued sequence. +* +* @private +* @param {NonNegativeInteger} M - number of elements in each sub-sequence to be transformed +* @param {NonNegativeInteger} L - number of sub-sequences to be transformed +* @param {Float64Array} cc - input array containing the sub-sequences to be transformed +* @param {integer} sc - stride length for `cc` +* @param {NonNegativeInteger} oc - index offset for `cc` +* @param {Float64Array} out - output array containing transformed sub-sequences +* @param {integer} so - stride length for `out` +* @param {NonNegativeInteger} oo - index offset for `out` +* @param {Float64Array} twiddles1 - first array containing twiddle factors +* @param {integer} st1 - stride length for `twiddles1` +* @param {NonNegativeInteger} ot1 - index offset for `twiddles1` +* @param {Float64Array} twiddles2 - second array containing twiddle factors +* @param {integer} st2 - stride length for `twiddles2` +* @param {NonNegativeInteger} ot2 - index offset for `twiddles2` +* @param {Float64Array} twiddles3 - third array containing twiddle factors +* @param {integer} st3 - stride length for `twiddles3` +* @param {NonNegativeInteger} ot3 - index offset for `twiddles3` +* @returns {void} +*/ +function radf4( M, L, cc, sc, oc, out, so, oo, twiddles1, st1, ot1, twiddles2, st2, ot2, twiddles3, st3, ot3 ) { // eslint-disable-line max-params + var it11; + var it12; + var it21; + var it22; + var it31; + var it32; + var tr1; + var tr2; + var tr3; + var tr4; + var ti1; + var ti2; + var ti3; + var ti4; + var cr2; + var cr3; + var cr4; + var ci2; + var ci3; + var ci4; + var ip1; + var ip2; + var ip3; + var ip4; + var io; + var im; + var i; + var k; + + /* + * First, perform the core butterfly for each sub-sequence being transformed. + * + * In the following loop, we handle harmonic `n = 0` for every transform. As described for `iptr`, the input array is interpreted as a three-dimensional array, containing four "rows" per sub-sequence. + * + * row0 = input component 0 (j = 0) + * row1 = input component 1 (j = 1) + * row2 = input component 2 (j = 2) + * row3 = input component 3 (j = 3) + * + * For a radix-4 forward FFT of a real-valued signal `x` and `n = 0`, + * + * tr1 = row1 + row3 + * tr2 = row0 + row2 + * + * x[0] = tr1 + tr2 + * x[2M-1] = row0 - row2 + * x[2M] = row3 - row1 + * x[4M-1] = tr2 - tr1 + * + * Because `W_4^0 = 1`, no twiddle multiplication is necessary. + */ + for ( k = 0; k < L; k++ ) { + ip1 = iptr( 0, k, 0, L, M, sc, oc ); // real part row 0 + ip2 = iptr( 0, k, 1, L, M, sc, oc ); // real part row 1 + ip3 = iptr( 0, k, 2, L, M, sc, oc ); // real part row 2 + ip4 = iptr( 0, k, 3, L, M, sc, oc ); // real part row 3 + + tr1 = cc[ ip2 ] + cc[ ip4 ]; // row1 + row3 + tr2 = cc[ ip1 ] + cc[ ip3 ]; // row0 + row2 + + io = optr( 0, 0, k, M, so, oo ); + out[ io ] = tr1 + tr2; + + io = optr( M-1, 3, k, M, so, oo ); + out[ io ] = tr2 - tr1; + + io = optr( M-1, 1, k, M, so, oo ); + out[ io ] = cc[ ip1 ] - cc[ ip3 ]; + + io = optr( 0, 2, k, M, so, oo ); + out[ io ] = cc[ ip4 ] - cc[ ip2 ]; + } + // When the number of elements in a sub-sequence is equal to `1`, there is nothing more to do, as the above butterfly produced the full result... + if ( M < 2 ) { + return; + } + /* + * Next, apply the general case where we need to loop through the non-trivial harmonics. + * + * For each harmonic `n = 1, ..., M/2-1`, we need to + * + * - recover four spectra from the four input rows. + * - apply radix-4 twiddle factors to rows 1, 2, and 3, then combine with row 0 to form four output columns. + * - form the following + * + * x[4n] = X₀ + W₂·X₂ + (W₁·X₁ + W₃·X₃) => column 0 + * x[4n+1] = X₀ + W₂·X₂ - (W₁·X₁ + W₃·X₃) => column 3 + * x[4n+2] = X₀ - W₂·X₂ + i·(W₁·X₁ - W₃·X₃) => column 2 + * x[4n+3] = X₀ - W₂·X₂ - i·(W₁·X₁ - W₃·X₃) => column 1 + * + * The mirror index `im = M - i` selects the conjugate-symmetric partner, thus allowing the routine to read each symmetry pair only once. + */ + if ( M >= 3 ) { + // Loop over each sub-sequence to be transformed... + for ( k = 0; k < L; k++ ) { + // Loop over the elements in each sub-sequence... + for ( i = 2; i < M; i += 2 ) { + im = M - i; // "mirror" index + + // Resolve twiddle factor indices for component 1: + it11 = ( (i-2)*st1 ) + ot1; // cos(θ) for component 1 + it12 = ( (i-1)*st1 ) + ot1; // sin(θ) for component 1 + + // Resolve twiddle factor indices for component 2: + it21 = ( (i-2)*st2 ) + ot2; // cos(θ) for component 2 + it22 = ( (i-1)*st2 ) + ot2; // sin(θ) for component 2 + + // Resolve twiddle factor indices for component 3: + it31 = ( (i-2)*st3 ) + ot3; // cos(θ) for component 3 + it32 = ( (i-1)*st3 ) + ot3; // sin(θ) for component 3 + + // Load component 1 data and apply twiddle... + ip1 = iptr( i-1, k, 1, L, M, sc, oc ); // real part component 1 + ip2 = iptr( i, k, 1, L, M, sc, oc ); // imag part component 1 + + // Apply the twiddle factors for component 1: + cr2 = ( twiddles1[ it11 ] * cc[ ip1 ] ) + ( twiddles1[ it12 ] * cc[ ip2 ] ); + ci2 = ( twiddles1[ it11 ] * cc[ ip2 ] ) - ( twiddles1[ it12 ] * cc[ ip1 ] ); + + // Load component 2 data and apply twiddle... + ip1 = iptr( i-1, k, 2, L, M, sc, oc ); // real part component 2 + ip2 = iptr( i, k, 2, L, M, sc, oc ); // imag part component 2 + + // Apply the twiddle factors for component 2: + cr3 = ( twiddles2[ it21 ] * cc[ ip1 ] ) + ( twiddles2[ it22 ] * cc[ ip2 ] ); + ci3 = ( twiddles2[ it21 ] * cc[ ip2 ] ) - ( twiddles2[ it22 ] * cc[ ip1 ] ); + + // Load component 3 data and apply twiddle... + ip1 = iptr( i-1, k, 3, L, M, sc, oc ); // real part component 3 + ip2 = iptr( i, k, 3, L, M, sc, oc ); // imag part component 3 + + // Apply the twiddle factors for component 3: + cr4 = ( twiddles3[ it31 ] * cc[ ip1 ] ) + ( twiddles3[ it32 ] * cc[ ip2 ] ); + ci4 = ( twiddles3[ it31 ] * cc[ ip2 ] ) - ( twiddles3[ it32 ] * cc[ ip1 ] ); + + // Radix-4 butterfly intermediate computations: + tr1 = cr2 + cr4; + tr4 = cr4 - cr2; + ti1 = ci2 + ci4; + ti4 = ci2 - ci4; + + // Load component 0 data and compute intermediates... + ip1 = iptr( i-1, k, 0, L, M, sc, oc ); // real part component 0 + tr2 = cc[ ip1 ] + cr3; + tr3 = cc[ ip1 ] - cr3; + + ip2 = iptr( i, k, 0, L, M, sc, oc ); // imag part component 0 + ti2 = cc[ ip2 ] + ci3; + ti3 = cc[ ip2 ] - ci3; + + // Output column 0 (real part) + io = optr( i-1, 0, k, M, so, oo ); + out[ io ] = tr1 + tr2; + + // Output column 3 (real part) + io = optr( im-1, 3, k, M, so, oo ); + out[ io ] = tr2 - tr1; + + // Output column 0 (imag part) + io = optr( i, 0, k, M, so, oo ); + out[ io ] = ti1 + ti2; + + // Output column 3 (imag part) + io = optr( im, 3, k, M, so, oo ); + out[ io ] = ti1 - ti2; + + // Output column 2 (real part) + io = optr( i-1, 2, k, M, so, oo ); + out[ io ] = ti4 + tr3; + + // Output column 1 (real part) + io = optr( im-1, 1, k, M, so, oo ); + out[ io ] = tr3 - ti4; + + // Output column 2 (imag part) + io = optr( i, 2, k, M, so, oo ); + out[ io ] = tr4 + ti3; + + // Output column 1 (imag part) + io = optr( im, 1, k, M, so, oo ); + out[ io ] = tr4 - ti3; + } + } + + // When `M` is odd, there is no Nyquist pair to process, so we do not need to perform any further transformations... + if ( M%2 === 1 ) { + return; + } + } + + /* + * Lastly, handle the Nyquist frequency where `i = M-1` (i.e., the last element of each sub-sequence). + * + * When `M` is even, the Nyquist index is `i = M/2`. In this stage, we've stored that element at the end of each sub-sequence (i.e., `i = M-1` in the packed layout). + * + * At this point, only real components exist for rows 1 and 3 (imaginary parts are zero due to symmetry), and the twiddle multiplication simplifies to involve √(1/2) factors. + * + * In this case, + * + * ti1 = -√(1/2) ⋅ (row1 + row3) + * tr1 = √(1/2) ⋅ (row1 - row3) + * + * where + * + * row0 = Re(X₀) + * row1 = Re(X₁) (imaginary part is zero) + * row2 = Re(X₂) + * row3 = Re(X₃) (imaginary part is zero) + */ + for ( k = 0; k < L; k++ ) { + ip1 = iptr( M-1, k, 1, L, M, sc, oc ); // Re(X₁) + ip2 = iptr( M-1, k, 3, L, M, sc, oc ); // Re(X₃) + + ti1 = -SQRT_HALF * ( cc[ ip1 ] + cc[ ip2 ] ); + tr1 = SQRT_HALF * ( cc[ ip1 ] - cc[ ip2 ] ); + + ip3 = iptr( M-1, k, 0, L, M, sc, oc ); // Re(X₀) + ip4 = iptr( M-1, k, 2, L, M, sc, oc ); // Re(X₂) + + io = optr( M-1, 0, k, M, so, oo ); + out[ io ] = cc[ ip3 ] + tr1; + + io = optr( M-1, 2, k, M, so, oo ); + out[ io ] = cc[ ip3 ] - tr1; + + io = optr( 0, 1, k, M, so, oo ); + out[ io ] = ti1 - cc[ ip4 ]; + + io = optr( 0, 3, k, M, so, oo ); + out[ io ] = cc[ ip4 ] + ti1; + } +} + + +// EXPORTS // + +module.exports = radf4; From b1762929a192685d9db7ad41ffc328ecea7a1357 Mon Sep 17 00:00:00 2001 From: GUNJ JOSHI Date: Tue, 12 May 2026 00:45:19 +0530 Subject: [PATCH 03/19] feat: add radf5 --- type: pre_commit_static_analysis_report description: Results of running static analysis checks when committing changes. report: - task: lint_filenames status: passed - task: lint_editorconfig status: passed - task: lint_markdown status: na - task: lint_package_json status: na - task: lint_repl_help status: na - task: lint_javascript_src status: passed - task: lint_javascript_cli status: na - task: lint_javascript_examples status: na - task: lint_javascript_tests status: na - task: lint_javascript_benchmarks status: na - task: lint_python status: na - task: lint_r status: na - task: lint_c_src status: na - task: lint_c_examples status: na - task: lint_c_benchmarks status: na - task: lint_c_tests_fixtures status: na - task: lint_shell status: na - task: lint_typescript_declarations status: passed - task: lint_typescript_tests status: na - task: lint_license_headers status: passed --- --- .../fft/base/fftpack/rfftf/lib/radf2.js | 2 +- .../fft/base/fftpack/rfftf/lib/radf3.js | 2 +- .../fft/base/fftpack/rfftf/lib/radf4.js | 2 +- .../fft/base/fftpack/rfftf/lib/radf5.js | 517 ++++++++++++++++++ 4 files changed, 520 insertions(+), 3 deletions(-) create mode 100644 lib/node_modules/@stdlib/fft/base/fftpack/rfftf/lib/radf5.js diff --git a/lib/node_modules/@stdlib/fft/base/fftpack/rfftf/lib/radf2.js b/lib/node_modules/@stdlib/fft/base/fftpack/rfftf/lib/radf2.js index 4b41a74e2ae3..d7ac34b18d32 100644 --- a/lib/node_modules/@stdlib/fft/base/fftpack/rfftf/lib/radf2.js +++ b/lib/node_modules/@stdlib/fft/base/fftpack/rfftf/lib/radf2.js @@ -105,7 +105,7 @@ * @param {NonNegativeInteger} L - number of sub-sequences * @param {NonNegativeInteger} M - sub-sequence length * @param {integer} stride - stride length of the input array -* @param {NonNegativeInteger} offset - index specifying the first indexed element in the output array +* @param {NonNegativeInteger} offset - index specifying the first indexed element in the input array * @returns {NonNegativeInteger} computed index * * @example diff --git a/lib/node_modules/@stdlib/fft/base/fftpack/rfftf/lib/radf3.js b/lib/node_modules/@stdlib/fft/base/fftpack/rfftf/lib/radf3.js index 3aae60305bf8..54783ad72d3b 100644 --- a/lib/node_modules/@stdlib/fft/base/fftpack/rfftf/lib/radf3.js +++ b/lib/node_modules/@stdlib/fft/base/fftpack/rfftf/lib/radf3.js @@ -113,7 +113,7 @@ var TAUI = 0.866025403784439; // sin( 2π/3 ) * @param {NonNegativeInteger} L - number of sub-sequences * @param {NonNegativeInteger} M - sub-sequence length * @param {integer} stride - stride length of the input array -* @param {NonNegativeInteger} offset - index specifying the first indexed element in the output array +* @param {NonNegativeInteger} offset - index specifying the first indexed element in the input array * @returns {NonNegativeInteger} computed index * * @example diff --git a/lib/node_modules/@stdlib/fft/base/fftpack/rfftf/lib/radf4.js b/lib/node_modules/@stdlib/fft/base/fftpack/rfftf/lib/radf4.js index c3e52effe63f..d657a5cf8005 100644 --- a/lib/node_modules/@stdlib/fft/base/fftpack/rfftf/lib/radf4.js +++ b/lib/node_modules/@stdlib/fft/base/fftpack/rfftf/lib/radf4.js @@ -114,7 +114,7 @@ var SQRT_HALF = require( '@stdlib/constants/float64/sqrt-half' ); * @param {NonNegativeInteger} L - number of sub-sequences * @param {NonNegativeInteger} M - sub-sequence length * @param {integer} stride - stride length of the input array -* @param {NonNegativeInteger} offset - index specifying the first indexed element in the output array +* @param {NonNegativeInteger} offset - index specifying the first indexed element in the input array * @returns {NonNegativeInteger} computed index * * @example diff --git a/lib/node_modules/@stdlib/fft/base/fftpack/rfftf/lib/radf5.js b/lib/node_modules/@stdlib/fft/base/fftpack/rfftf/lib/radf5.js new file mode 100644 index 000000000000..6ad5dea1f911 --- /dev/null +++ b/lib/node_modules/@stdlib/fft/base/fftpack/rfftf/lib/radf5.js @@ -0,0 +1,517 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2026 The Stdlib Authors. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +* +* +* ## Notice +* +* The original C code and copyright notice are from the [PFFFT library]{@link https://github.com/marton78/pffft/blob/0b4ee12c4ba45a4a8e567550c16d96d1679f50ce/src/fftpack.c}. The implementation follows the original, but has been modified for JavaScript. +* +* ```text +* Copyright (c) 2004 the University Corporation for Atmospheric +* Research ("UCAR"). All rights reserved. Developed by NCAR's +* Computational and Information Systems Laboratory, UCAR, +* www.cisl.ucar.edu. +* +* Redistribution and use of the Software in source and binary forms, +* with or without modification, is permitted provided that the +* following conditions are met: +* +* - Neither the names of NCAR's Computational and Information Systems +* Laboratory, the University Corporation for Atmospheric Research, +* nor the names of its sponsors or contributors may be used to +* endorse or promote products derived from this Software without +* specific prior written permission. +* +* - Redistributions of source code must retain the above copyright +* notices, this list of conditions, and the disclaimer below. +* +* - Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions, and the disclaimer below in the +* documentation and/or other materials provided with the +* distribution. +* +* THIS 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 CONTRIBUTORS OR COPYRIGHT +* HOLDERS BE LIABLE FOR ANY CLAIM, INDIRECT, INCIDENTAL, SPECIAL, +* EXEMPLARY, OR CONSEQUENTIAL 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 WITH THE +* SOFTWARE. +* ``` +*/ + +/* eslint-disable max-len, max-statements */ + +'use strict'; + +// MODULES // + +var cospi = require( '@stdlib/math/base/special/cospi' ); +var sinpi = require( '@stdlib/math/base/special/sinpi' ); + + +// VARIABLES // + +// cos( 2π/5 ) = 0.30901699437494734 +var TR11 = cospi( 2.0 / 5.0 ); + +// sin( 2π/5 ) = 0.9510565162951536 +var TI11 = sinpi( 2.0 / 5.0 ); + +// cos( 4π/5 ) = -0.8090169943749475 +var TR12 = cospi( 4.0 / 5.0 ); + +// sin( 4π/5 ) = 0.587785252292473 +var TI12 = sinpi( 4.0 / 5.0 ); + + +// FUNCTIONS // + +/** +* Resolves an index into the input array. +* +* ## Notes +* +* In a forward real FFT, the previous stage writes its results as five "rows" per sub-sequence. +* +* Thus, when reading from an input array stored in linear memory, we can reinterpret the array as a three-dimensional logical view containing `L` independent sub-sequences having five "rows" (components 0, 1, 2, 3, and 4) and where each "row" is arranged as `M*L` contiguous elements corresponding to interleaved real and imaginary components. +* +* Accordingly, the following is a logical view of an input array (zero-based indexing) which contains `L = 3` transforms and in which each sub-sequence has length `M = 4`: +* +* ```text +* │ k = 0 k = 1 k = 2 +* │ ──────────────────────────────────────────────────────────────────────────→ k +* j = 0 │ cc(0,0,0) ... cc(3,0,0) cc(0,1,0) ... cc(3,1,0) cc(0,2,0) ... cc(3,2,0) +* │ +* j = 1 │ cc(0,0,1) ... cc(3,0,1) cc(0,1,1) ... cc(3,1,1) cc(0,2,1) ... cc(3,2,1) +* │ +* j = 2 │ cc(0,0,2) ... cc(3,0,2) cc(0,1,2) ... cc(3,1,2) cc(0,2,2) ... cc(3,2,2) +* │ +* j = 3 │ cc(0,0,3) ... cc(3,0,3) cc(0,1,3) ... cc(3,1,3) cc(0,2,3) ... cc(3,2,3) +* │ +* j = 4 │ cc(0,0,4) ... cc(3,0,4) cc(0,1,4) ... cc(3,1,4) cc(0,2,4) ... cc(3,2,4) +* └───────────────────────────────────────────────────────────────────────────→ i +* ↑ ↑ ↑ ↑ ↑ ↑ +* i = 0 M-1 0 M-1 0 M-1 +* ``` +* +* In the above, +* +* - `i` is the fastest varying index, which walks within one short sub-sequence corresponding to one of the five component rows. +* - `j` selects between the five component rows (0, 1, 2, 3, or 4). +* - `k` specifies the index of one of the `L` independent transforms we are processing. +* +* In linear memory, the three-dimensional logical view is arranged as follows: +* +* ```text +* | cc(0,0,0)...cc(3,0,0) ... cc(0,2,0)...cc(3,2,0) | cc(0,0,1)...cc(3,0,1) ... cc(0,2,1)...cc(3,2,1) | ... | cc(0,0,4)...cc(3,0,4) ... cc(0,2,4)...cc(3,2,4) | +* ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ +* 0 M-1 LM LM-1 (L+1)M (L+1)M-1 (2L-1)M 2LM-1 4LM (4L+1)M-1 (5L-1)M 5LM-1 +* ``` +* +* @private +* @param {NonNegativeInteger} i - index of an element within a sub-sequence +* @param {NonNegativeInteger} k - index of the sub-sequence being transformed +* @param {NonNegativeInteger} j - input row +* @param {NonNegativeInteger} L - number of sub-sequences +* @param {NonNegativeInteger} M - sub-sequence length +* @param {integer} stride - stride length of the input array +* @param {NonNegativeInteger} offset - index specifying the first indexed element in the input array +* @returns {NonNegativeInteger} computed index +* +* @example +* var stride = 1; +* var offset = 0; +* +* var M = 4; // sub-sequence length +* var L = 3; // number of sub-sequences +* +* var idx = iptr( 0, 0, 0, L, M, stride, offset ); +* // returns 0 +* +* idx = iptr( 1, 0, 0, L, M, stride, offset ); +* // returns 1 +* +* idx = iptr( M-1, 0, 0, L, M, stride, offset ); +* // returns 3 +* +* idx = iptr( 0, 1, 0, L, M, stride, offset ); +* // returns 4 +* +* // ... +* +* idx = iptr( M-1, L-1, 1, L, M, stride, offset ); +* // returns 23 +*/ +function iptr( i, k, j, L, M, stride, offset ) { + var n = i + ( ( k+(j*L) ) * M ); + return ( n*stride ) + offset; +} + +/** +* Resolves an index into the output array. +* +* ## Notes +* +* When writing to an output array stored in linear memory, we can reinterpret the array as a three-dimensional logical view containing `L` independent sub-sequences having five "columns" corresponding to the five components of a radix-5 stage (with real and imaginary parts of each component interleaved along each sub-sequence) and where each "column" has `M` elements. +* +* Accordingly, the following is a logical view of an output array (zero-based indexing) which contains `L = 3` transforms and in which each "column" sub-sequence has length `M = 4`: +* +* ```text +* j = 0 (component 0) j = 1 (component 1) j = 2 (component 2) j = 3 (component 3) j = 4 (component 4) +* k = 0 ─┬───────────────────────────────────────┬───────────────────────────────────────┬───────────────────────────────────────┬───────────────────────────────────────┬───────────────────────────────────────┐ +* │ out(0,0,0) out(1,0,0) ... out(3,0,0) │ out(0,1,0) out(1,1,0) ... out(3,1,0) │ out(0,2,0) out(1,2,0) ... out(3,2,0) │ out(0,3,0) out(1,3,0) ... out(3,3,0) │ out(0,4,0) out(1,4,0) ... out(3,4,0) │ +* └───────────────────────────────────────┴───────────────────────────────────────┴───────────────────────────────────────┴───────────────────────────────────────┴───────────────────────────────────────┤ +* k = 1 ─┬───────────────────────────────────────┬───────────────────────────────────────┬───────────────────────────────────────┬───────────────────────────────────────┬───────────────────────────────────────┤ +* │ out(0,0,1) out(1,0,1) ... out(3,0,1) │ out(0,1,1) out(1,1,1) ... out(3,1,1) │ out(0,2,1) out(1,2,1) ... out(3,2,1) │ out(0,3,1) out(1,3,1) ... out(3,3,1) │ out(0,4,1) out(1,4,1) ... out(3,4,1) │ +* └───────────────────────────────────────┴───────────────────────────────────────┴───────────────────────────────────────┴───────────────────────────────────────┴───────────────────────────────────────┤ +* k = 2 ─┬───────────────────────────────────────┬───────────────────────────────────────┬───────────────────────────────────────┬───────────────────────────────────────┬───────────────────────────────────────┤ +* │ out(0,0,2) out(1,0,2) ... out(3,0,2) │ out(0,1,2) out(1,1,2) ... out(3,1,2) │ out(0,2,2) out(1,2,2) ... out(3,2,2) │ out(0,3,2) out(1,3,2) ... out(3,3,2) │ out(0,4,2) out(1,4,2) ... out(3,4,2) │ +* └───────────────────────────────────────┴───────────────────────────────────────┴───────────────────────────────────────┴───────────────────────────────────────┴───────────────────────────────────────┘ +* ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ +* i = 0 1 M-1 0 1 M-1 0 1 M-1 0 1 M-1 0 1 M-1 +* ``` +* +* In the above, +* +* - `i` is the fastest varying index, which walks within one short "column" sub-sequence. +* - `j` selects which of the five components (0, 1, 2, 3, or 4). +* - `k` specifies the index of one of the `L` independent transforms we are processing. +* +* In linear memory, the three-dimensional logical view is arranged as follows: +* +* ```text +* | out(0,0,0)...out(3,0,0) | out(0,1,0)...out(3,1,0) | out(0,2,0)...out(3,2,0) | out(0,3,0)...out(3,3,0) | out(0,4,0)...out(3,4,0) | out(0,0,1)...out(3,0,1) | ... | out(0,4,2)...out(3,4,2) | +* ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ +* 0 M-1 M 2M-1 2M 3M-1 3M 4M-1 4M 5M-1 5M 6M-1 (5L-1)M 5LM-1 +* ``` +* +* As may be observed, when resolving an index in the output array, the `j` and `k` dimensions are swapped relative index resolution in the input array. This stems from `radf5` being only one stage in a multi-stage driver which alternates between using `cc` and `out` as workspace buffers. After each stage, the next stage reads what the previous stage wrote. +* +* Each stage expects a transpose, and, in order to avoid explicit transposition between the stages, we swap the last two logical dimensions while still maintaining cache locality within the inner loop logical dimension, as indexed by `i`. +* +* @private +* @param {NonNegativeInteger} i - index of an element within a sub-sequence +* @param {NonNegativeInteger} j - index specifying which of the five complex components we are in (0, 1, 2, 3, or 4) +* @param {NonNegativeInteger} k - index of the sub-sequence being transformed +* @param {NonNegativeInteger} M - sub-sequence length +* @param {integer} stride - stride length of the output array +* @param {NonNegativeInteger} offset - index specifying the first indexed element in the output array +* @returns {NonNegativeInteger} computed index +* +* @example +* var stride = 1; +* var offset = 0; +* +* var M = 4; // sub-sequence length +* var L = 3; // number of sub-sequences +* +* var idx = optr( 0, 0, 0, M, stride, offset ); +* // returns 0 +* +* idx = optr( 1, 0, 0, M, stride, offset ); +* // returns 1 +* +* idx = optr( M-1, 0, 0, M, stride, offset ); +* // returns 3 +* +* idx = optr( 0, 1, 0, M, stride, offset ); +* // returns 4 +* +* // ... +* +* idx = optr( M-1, 4, L-1, M, stride, offset ); +* // returns 59 +*/ +function optr( i, j, k, M, stride, offset ) { + var n = i + ( ( j+(k*5) ) * M ); + return ( n*stride ) + offset; +} + + +// MAIN // + +/** +* Performs one radix-5 stage within a forward Fourier transform for a real-valued sequence. +* +* @private +* @param {NonNegativeInteger} M - number of elements in each sub-sequence to be transformed +* @param {NonNegativeInteger} L - number of sub-sequences to be transformed +* @param {Float64Array} cc - input array containing the sub-sequences to be transformed +* @param {integer} sc - stride length for `cc` +* @param {NonNegativeInteger} oc - index offset for `cc` +* @param {Float64Array} out - output array containing transformed sub-sequences +* @param {integer} so - stride length for `out` +* @param {NonNegativeInteger} oo - index offset for `out` +* @param {Float64Array} twiddles1 - first array containing twiddle factors +* @param {integer} st1 - stride length for `twiddles1` +* @param {NonNegativeInteger} ot1 - index offset for `twiddles1` +* @param {Float64Array} twiddles2 - second array containing twiddle factors +* @param {integer} st2 - stride length for `twiddles2` +* @param {NonNegativeInteger} ot2 - index offset for `twiddles2` +* @param {Float64Array} twiddles3 - third array containing twiddle factors +* @param {integer} st3 - stride length for `twiddles3` +* @param {NonNegativeInteger} ot3 - index offset for `twiddles3` +* @param {Float64Array} twiddles4 - fourth array containing twiddle factors +* @param {integer} st4 - stride length for `twiddles4` +* @param {NonNegativeInteger} ot4 - index offset for `twiddles4` +* @returns {void} +*/ +function radf5( M, L, cc, sc, oc, out, so, oo, twiddles1, st1, ot1, twiddles2, st2, ot2, twiddles3, st3, ot3, twiddles4, st4, ot4 ) { // eslint-disable-line max-params + var it11; + var it12; + var it21; + var it22; + var it31; + var it32; + var it41; + var it42; + var ci2; + var ci3; + var ci4; + var ci5; + var cr2; + var cr3; + var cr4; + var cr5; + var dr2; + var dr3; + var dr4; + var dr5; + var di2; + var di3; + var di4; + var di5; + var ti2; + var ti3; + var ti4; + var ti5; + var tr2; + var tr3; + var tr4; + var tr5; + var ip1; + var ip2; + var ip3; + var ip4; + var ip5; + var io; + var im; + var i; + var k; + + /* + * First, perform the core butterfly for each sub-sequence being transformed. + * + * In the following loop, we handle harmonic `n = 0` for every transform. As described for `iptr`, the input array is interpreted as a three-dimensional array, containing five "rows" per sub-sequence. + * + * row0 = input component 0 (j = 0) + * row1 = input component 1 (j = 1) + * row2 = input component 2 (j = 2) + * row3 = input component 3 (j = 3) + * row4 = input component 4 (j = 4) + * + * For a radix-5 forward FFT of a real-valued signal `x` and `n = 0`, + * + * cr2 = row4 + row1 + * ci5 = row4 - row1 + * cr3 = row3 + row2 + * ci4 = row3 - row2 + * + * x[0] = row0 + cr2 + cr3 + * x[M] = row0 + ( TR11*cr2 ) + ( TR12*cr3 ) + * x[2M] = ( TI11*ci5 ) + ( TI12*ci4 ) + * x[3M] = row0 + ( TR12*cr2 ) + ( TR11*cr3 ) + * x[4M] = ( TI12*ci5 ) - ( TI11*ci4 ) + * + * Because `W_5^0 = 1`, no frequency-dependent twiddle multiplication is necessary beyond these constant factors. + */ + for ( k = 0; k < L; k++ ) { + ip1 = iptr( 0, k, 0, L, M, sc, oc ); // row 0 + ip2 = iptr( 0, k, 1, L, M, sc, oc ); // row 1 + ip3 = iptr( 0, k, 2, L, M, sc, oc ); // row 2 + ip4 = iptr( 0, k, 3, L, M, sc, oc ); // row 3 + ip5 = iptr( 0, k, 4, L, M, sc, oc ); // row 4 + + cr2 = cc[ ip5 ] + cc[ ip2 ]; // row4 + row1 + ci5 = cc[ ip5 ] - cc[ ip2 ]; // row4 - row1 + cr3 = cc[ ip4 ] + cc[ ip3 ]; // row3 + row2 + ci4 = cc[ ip4 ] - cc[ ip3 ]; // row3 - row2 + + io = optr( 0, 0, k, M, so, oo ); + out[ io ] = cc[ ip1 ] + cr2 + cr3; + + io = optr( M-1, 1, k, M, so, oo ); + out[ io ] = cc[ ip1 ] + ( TR11 * cr2 ) + ( TR12 * cr3 ); + + io = optr( 0, 2, k, M, so, oo ); + out[ io ] = ( TI11 * ci5 ) + ( TI12 * ci4 ); + + io = optr( M-1, 3, k, M, so, oo ); + out[ io ] = cc[ ip1 ] + ( TR12 * cr2 ) + ( TR11 * cr3 ); + + io = optr( 0, 4, k, M, so, oo ); + out[ io ] = ( TI12 * ci5 ) - ( TI11 * ci4 ); + } + // When the number of elements in a sub-sequence is less than `2`, there is nothing more to do, as the above butterfly produced the full result... + if ( M < 2 ) { + return; + } + /* + * Next, apply the general case where we need to loop through the non-trivial harmonics. + * + * For each harmonic `n = 1, ..., M/2-1`, we need to + * + * - recover five spectra from the five input rows. + * - apply radix-5 twiddle factors to rows 1, 2, 3, and 4, then combine with row 0 to form five output columns. + * - form the following + * + * x[5n] = X₀ + (W₁⋅X₁ + W₄⋅X₄) + (W₂⋅X₂ + W₃⋅X₃) => column 0 + * x[5n+1] = X₀ + TR11⋅(W₁⋅X₁ + W₄⋅X₄) + TR12⋅(W₂⋅X₂ + W₃⋅X₃) - i⋅(TI11⋅(W₁⋅X₁ - W₄⋅X₄) + TI12⋅(W₂⋅X₂ - W₃⋅X₃)) => column 1 + * x[5n+2] = X₀ + TR11⋅(W₁⋅X₁ + W₄⋅X₄) + TR12⋅(W₂⋅X₂ + W₃⋅X₃) + i⋅(TI11⋅(W₁⋅X₁ - W₄⋅X₄) + TI12⋅(W₂⋅X₂ - W₃⋅X₃)) => column 2 + * x[5n+3] = X₀ + TR12⋅(W₁⋅X₁ + W₄⋅X₄) + TR11⋅(W₂⋅X₂ + W₃⋅X₃) - i⋅(TI12⋅(W₁⋅X₁ - W₄⋅X₄) - TI11⋅(W₂⋅X₂ - W₃⋅X₃)) => column 3 + * x[5n+4] = X₀ + TR12⋅(W₁⋅X₁ + W₄⋅X₄) + TR11⋅(W₂⋅X₂ + W₃⋅X₃) + i⋅(TI12⋅(W₁⋅X₁ - W₄⋅X₄) - TI11⋅(W₂⋅X₂ - W₃⋅X₃)) => column 4 + * + * The mirror index `im = M - i` selects the conjugate-symmetric partner, thus allowing the routine to read each symmetry pair only once. + */ + // Loop over each sub-sequence to be transformed... + for ( k = 0; k < L; k++ ) { + // Loop over the elements in each sub-sequence... + for ( i = 2; i < M; i += 2 ) { + im = M - i; // "mirror" index + + // Resolve twiddle factor indices for component 1: + it11 = ( (i-2)*st1 ) + ot1; // cos(θ) for component 1 + it12 = ( (i-1)*st1 ) + ot1; // sin(θ) for component 1 + + // Resolve twiddle factor indices for component 2: + it21 = ( (i-2)*st2 ) + ot2; // cos(θ) for component 2 + it22 = ( (i-1)*st2 ) + ot2; // sin(θ) for component 2 + + // Resolve twiddle factor indices for component 3: + it31 = ( (i-2)*st3 ) + ot3; // cos(θ) for component 3 + it32 = ( (i-1)*st3 ) + ot3; // sin(θ) for component 3 + + // Resolve twiddle factor indices for component 4: + it41 = ( (i-2)*st4 ) + ot4; // cos(θ) for component 4 + it42 = ( (i-1)*st4 ) + ot4; // sin(θ) for component 4 + + // Load component 1 data and apply twiddle... + ip1 = iptr( i-1, k, 1, L, M, sc, oc ); // real part component 1 + ip2 = iptr( i, k, 1, L, M, sc, oc ); // imag part component 1 + + // Apply the twiddle factors for component 1: + dr2 = ( twiddles1[ it11 ] * cc[ ip1 ] ) + ( twiddles1[ it12 ] * cc[ ip2 ] ); // Re(dr2) + di2 = ( twiddles1[ it11 ] * cc[ ip2 ] ) - ( twiddles1[ it12 ] * cc[ ip1 ] ); // Im(di2) + + // Load component 2 data and apply twiddle... + ip1 = iptr( i-1, k, 2, L, M, sc, oc ); // real part component 2 + ip2 = iptr( i, k, 2, L, M, sc, oc ); // imag part component 2 + + // Apply the twiddle factors for component 2: + dr3 = ( twiddles2[ it21 ] * cc[ ip1 ] ) + ( twiddles2[ it22 ] * cc[ ip2 ] ); // Re(dr3) + di3 = ( twiddles2[ it21 ] * cc[ ip2 ] ) - ( twiddles2[ it22 ] * cc[ ip1 ] ); // Im(di3) + + // Load component 3 data and apply twiddle... + ip1 = iptr( i-1, k, 3, L, M, sc, oc ); // real part component 3 + ip2 = iptr( i, k, 3, L, M, sc, oc ); // imag part component 3 + + // Apply the twiddle factors for component 3: + dr4 = ( twiddles3[ it31 ] * cc[ ip1 ] ) + ( twiddles3[ it32 ] * cc[ ip2 ] ); // Re(dr4) + di4 = ( twiddles3[ it31 ] * cc[ ip2 ] ) - ( twiddles3[ it32 ] * cc[ ip1 ] ); // Im(di4) + + // Load component 4 data and apply twiddle... + ip1 = iptr( i-1, k, 4, L, M, sc, oc ); // real part component 4 + ip2 = iptr( i, k, 4, L, M, sc, oc ); // imag part component 4 + + // Apply the twiddle factors for component 4: + dr5 = ( twiddles4[ it41 ] * cc[ ip1 ] ) + ( twiddles4[ it42 ] * cc[ ip2 ] ); // Re(dr5) + di5 = ( twiddles4[ it41 ] * cc[ ip2 ] ) - ( twiddles4[ it42 ] * cc[ ip1 ] ); // Im(di5) + + // Radix-5 butterfly intermediate computations (symmetric/antisymmetric combinations): + cr2 = dr2 + dr5; + ci5 = dr5 - dr2; + cr5 = di2 - di5; + ci2 = di5 + di2; + cr3 = dr3 + dr4; + ci4 = dr4 - dr3; + cr4 = di3 - di4; + ci3 = di3 + di4; + + // Output column 0 (real part) + ip1 = iptr( i-1, k, 0, L, M, sc, oc ); + io = optr( i-1, 0, k, M, so, oo ); + out[ io ] = cc[ ip1 ] + cr2 + cr3; + + // Output column 0 (imag part) + ip2 = iptr( i, k, 0, L, M, sc, oc ); + io = optr( i, 0, k, M, so, oo ); + out[ io ] = cc[ ip2 ] + ci2 + ci3; + + // Load component 0 data and compute intermediates... + tr2 = cc[ ip1 ] + ( TR11 * cr2 ) + ( TR12 * cr3 ); + ti2 = cc[ ip2 ] + ( TR11 * ci2 ) + ( TR12 * ci3 ); + tr3 = cc[ ip1 ] + ( TR12 * cr2 ) + ( TR11 * cr3 ); + ti3 = cc[ ip2 ] + ( TR12 * ci2 ) + ( TR11 * ci3 ); + + // Additional intermediates: + tr5 = ( TI11 * cr5 ) + ( TI12 * cr4 ); + ti5 = ( TI11 * ci5 ) + ( TI12 * ci4 ); + tr4 = ( TI12 * cr5 ) - ( TI11 * cr4 ); + ti4 = ( TI12 * ci5 ) - ( TI11 * ci4 ); + + // Output column 2 (real part) + io = optr( i-1, 2, k, M, so, oo ); + out[ io ] = tr2 + tr5; + + // Output column 1 (real part) + io = optr( im-1, 1, k, M, so, oo ); + out[ io ] = tr2 - tr5; + + // Output column 2 (imag part) + io = optr( i, 2, k, M, so, oo ); + out[ io ] = ti2 + ti5; + + // Output column 1 (imag part) + io = optr( im, 1, k, M, so, oo ); + out[ io ] = ti5 - ti2; + + // Output column 4 (real part) + io = optr( i-1, 4, k, M, so, oo ); + out[ io ] = tr3 + tr4; + + // Output column 3 (real part) + io = optr( im-1, 3, k, M, so, oo ); + out[ io ] = tr3 - tr4; + + // Output column 4 (imag part) + io = optr( i, 4, k, M, so, oo ); + out[ io ] = ti3 + ti4; + + // Output column 3 (imag part) + io = optr( im, 3, k, M, so, oo ); + out[ io ] = ti4 - ti3; + } + } +} + + +// EXPORTS // + +module.exports = radf5; From 5f3fc63cf0db06f23c35f665b887db06f0caac93 Mon Sep 17 00:00:00 2001 From: GUNJ JOSHI Date: Tue, 12 May 2026 00:49:35 +0530 Subject: [PATCH 04/19] refactor: use sinpi and cospi --- type: pre_commit_static_analysis_report description: Results of running static analysis checks when committing changes. report: - task: lint_filenames status: passed - task: lint_editorconfig status: passed - task: lint_markdown status: na - task: lint_package_json status: na - task: lint_repl_help status: na - task: lint_javascript_src status: passed - task: lint_javascript_cli status: na - task: lint_javascript_examples status: na - task: lint_javascript_tests status: na - task: lint_javascript_benchmarks status: na - task: lint_python status: na - task: lint_r status: na - task: lint_c_src status: na - task: lint_c_examples status: na - task: lint_c_benchmarks status: na - task: lint_c_tests_fixtures status: na - task: lint_shell status: na - task: lint_typescript_declarations status: passed - task: lint_typescript_tests status: na - task: lint_license_headers status: passed --- --- .../@stdlib/fft/base/fftpack/rfftf/lib/radf3.js | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/lib/node_modules/@stdlib/fft/base/fftpack/rfftf/lib/radf3.js b/lib/node_modules/@stdlib/fft/base/fftpack/rfftf/lib/radf3.js index 54783ad72d3b..914ca19853df 100644 --- a/lib/node_modules/@stdlib/fft/base/fftpack/rfftf/lib/radf3.js +++ b/lib/node_modules/@stdlib/fft/base/fftpack/rfftf/lib/radf3.js @@ -60,10 +60,19 @@ 'use strict'; +// MODULES // + +var cospi = require( '@stdlib/math/base/special/cospi' ); +var sinpi = require( '@stdlib/math/base/special/sinpi' ); + + // VARIABLES // -var TAUR = -0.5; // cos( 2π/3 ) -var TAUI = 0.866025403784439; // sin( 2π/3 ) +// cos( 2π/3 ) = -0.5 +var TAUR = cospi( 2.0 / 3.0 ); + +// sin( 2π/3 ) = 0.866025403784439 +var TAUI = sinpi( 2.0 / 3.0 ); // FUNCTIONS // From dd6338d1fdde9ebea792d0adccae7cb85b9750ed Mon Sep 17 00:00:00 2001 From: GUNJ JOSHI Date: Wed, 20 May 2026 01:55:20 +0530 Subject: [PATCH 05/19] feat: add radfg --- type: pre_commit_static_analysis_report description: Results of running static analysis checks when committing changes. report: - task: lint_filenames status: passed - task: lint_editorconfig status: passed - task: lint_markdown status: na - task: lint_package_json status: na - task: lint_repl_help status: na - task: lint_javascript_src status: passed - task: lint_javascript_cli status: na - task: lint_javascript_examples status: na - task: lint_javascript_tests status: na - task: lint_javascript_benchmarks status: na - task: lint_python status: na - task: lint_r status: na - task: lint_c_src status: na - task: lint_c_examples status: na - task: lint_c_benchmarks status: na - task: lint_c_tests_fixtures status: na - task: lint_shell status: na - task: lint_typescript_declarations status: passed - task: lint_typescript_tests status: na - task: lint_license_headers status: passed --- --- .../fft/base/fftpack/rfftf/lib/radfg.js | 761 ++++++++++++++++++ 1 file changed, 761 insertions(+) create mode 100644 lib/node_modules/@stdlib/fft/base/fftpack/rfftf/lib/radfg.js diff --git a/lib/node_modules/@stdlib/fft/base/fftpack/rfftf/lib/radfg.js b/lib/node_modules/@stdlib/fft/base/fftpack/rfftf/lib/radfg.js new file mode 100644 index 000000000000..c6f7dfc925a8 --- /dev/null +++ b/lib/node_modules/@stdlib/fft/base/fftpack/rfftf/lib/radfg.js @@ -0,0 +1,761 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2026 The Stdlib Authors. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +* +* +* ## Notice +* +* The original C code and copyright notice are from the [PFFFT library]{@link https://github.com/marton78/pffft/blob/0b4ee12c4ba45a4a8e567550c16d96d1679f50ce/src/fftpack.c}. The implementation follows the original, but has been modified for JavaScript. +* +* ```text +* Copyright (c) 2004 the University Corporation for Atmospheric +* Research ("UCAR"). All rights reserved. Developed by NCAR's +* Computational and Information Systems Laboratory, UCAR, +* www.cisl.ucar.edu. +* +* Redistribution and use of the Software in source and binary forms, +* with or without modification, is permitted provided that the +* following conditions are met: +* +* - Neither the names of NCAR's Computational and Information Systems +* Laboratory, the University Corporation for Atmospheric Research, +* nor the names of its sponsors or contributors may be used to +* endorse or promote products derived from this Software without +* specific prior written permission. +* +* - Redistributions of source code must retain the above copyright +* notices, this list of conditions, and the disclaimer below. +* +* - Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions, and the disclaimer below in the +* documentation and/or other materials provided with the +* distribution. +* +* THIS 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 CONTRIBUTORS OR COPYRIGHT +* HOLDERS BE LIABLE FOR ANY CLAIM, INDIRECT, INCIDENTAL, SPECIAL, +* EXEMPLARY, OR CONSEQUENTIAL 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 WITH THE +* SOFTWARE. +* ``` +*/ + +/* eslint-disable max-len, max-statements, max-lines-per-function */ + +'use strict'; + +// MODULES // + +var cospi = require( '@stdlib/math/base/special/cospi' ); +var sinpi = require( '@stdlib/math/base/special/sinpi' ); +var floor = require( '@stdlib/math/base/special/floor' ); + + +// FUNCTIONS // + +/** +* Resolves an index into the input array. +* +* ## Notes +* +* In a forward real FFT, the previous stage writes its results as `R` "rows" per sub-sequence. +* +* Thus, when reading from an input array stored in linear memory, we can reinterpret the array as a three-dimensional logical view containing `L` independent sub-sequences having `R` "rows" (components 0, 1, 2, ..., R-1) and where each "row" is arranged as `M*L` contiguous elements corresponding to interleaved real and imaginary components. +* +* Accordingly, the following is a logical view of an input array (zero-based indexing) which contains `L = 3` transforms and in which each sub-sequence has length `M = 4`: +* +* ```text +* │ k = 0 k = 1 k = 2 +* │ ─────────────────────────────────────────────────────────────────────────────────────→ k +* j = 0 │ cc(0,0,0) ... cc(3,0,0) cc(0,1,0) ... cc(3,1,0) cc(0,2,0) ... cc(3,2,0) +* │ +* j = 1 │ cc(0,0,1) ... cc(3,0,1) cc(0,1,1) ... cc(3,1,1) cc(0,2,1) ... cc(3,2,1) +* │ +* j = 2 │ cc(0,0,2) ... cc(3,0,2) cc(0,1,2) ... cc(3,1,2) cc(0,2,2) ... cc(3,2,2) +* │ +* j = 3 │ cc(0,0,3) ... cc(3,0,3) cc(0,1,3) ... cc(3,1,3) cc(0,2,3) ... cc(3,2,3) +* │ +* ... │ ... ... ... +* │ +* j=R-1 │ cc(0,0,R-1) ... cc(3,0,R-1) cc(0,1,R-1) ... cc(3,1,R-1) cc(0,2,R-1) ... cc(3,2,R-1) +* └──────────────────────────────────────────────────────────────────────────────────────→ i +* ↑ ↑ ↑ ↑ ↑ ↑ +* i = 0 M-1 0 M-1 0 M-1 +* ``` +* +* In the above, +* +* - `i` is the fastest varying index, which walks within one short sub-sequence corresponding to one of the R component rows. +* - `j` selects between the R component rows (0, 1, 2, ..., R-1). +* - `k` specifies the index of one of the `L` independent transforms we are processing. +* +* In linear memory, the three-dimensional logical view is arranged as follows: +* +* ```text +* | cc(0,0,0)...cc(3,0,0) ... cc(0,2,0)...cc(3,2,0) | cc(0,0,1)...cc(3,0,1) ... cc(0,2,1)...cc(3,2,1) | ... | cc(0,0,R-1)...cc(3,0,R-1) ... cc(0,2,R-1)...cc(3,2,R-1) | +* ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ +* 0 M-1 LM LM-1 (L+1)M (L+1)M-1 (2L-1)M 2LM-1 (R-1)LM ((R-1)L+1)M-1 (RL-1)M RLM-1 +* ``` +* +* @private +* @param {NonNegativeInteger} i - index of an element within a sub-sequence +* @param {NonNegativeInteger} k - index of the sub-sequence being transformed +* @param {NonNegativeInteger} j - input row +* @param {NonNegativeInteger} L - number of sub-sequences +* @param {NonNegativeInteger} M - sub-sequence length +* @param {integer} stride - stride length of the input array +* @param {NonNegativeInteger} offset - index specifying the first indexed element in the input array +* @returns {NonNegativeInteger} computed index +* +* @example +* var stride = 1; +* var offset = 0; +* +* var M = 4; // sub-sequence length +* var L = 3; // number of sub-sequences +* +* var idx = iptr( 0, 0, 0, L, M, stride, offset ); +* // returns 0 +* +* idx = iptr( 1, 0, 0, L, M, stride, offset ); +* // returns 1 +* +* idx = iptr( M-1, 0, 0, L, M, stride, offset ); +* // returns 3 +* +* idx = iptr( 0, 1, 0, L, M, stride, offset ); +* // returns 4 +* +* // ... +* +* idx = iptr( M-1, L-1, 6, L, M, stride, offset ); +* // returns 83 +*/ +function iptr( i, k, j, L, M, stride, offset ) { + var n = i + ( ( k+(j*L) ) * M ); + return ( n*stride ) + offset; +} + +/** +* Resolves an index into the output array. +* +* ## Notes +* +* When writing to an output array stored in linear memory, we can reinterpret the array as a three-dimensional logical view containing `L` independent sub-sequences having `R` "columns" corresponding to the `R` components of a radix-R stage (with real and imaginary parts of each component interleaved along each sub-sequence) and where each "column" has `M` elements. +* +* Accordingly, the following is a logical view of an output array (zero-based indexing) which contains `L = 3` transforms and in which each "column" sub-sequence has length `M = 4` for an arbitrary radix `R`: +* +* ```text +* j = 0 (component 0) j = 1 (component 1) j = 2 (component 2) ... j = R-1 (component R-1) +* k = 0 ─┬───────────────────────────────────────┬───────────────────────────────────────┬───────────────────────────────────────┬───────────────────────────────────────┬───────────────────────────────────────────────┐ +* │ out(0,0,0) out(1,0,0) ... out(3,0,0) │ out(0,1,0) out(1,1,0) ... out(3,1,0) │ out(0,2,0) out(1,2,0) ... out(3,2,0) │ ... │ out(0,R-1,0) out(1,R-1,0) ... out(3,R-1,0) │ +* └───────────────────────────────────────┴───────────────────────────────────────┴───────────────────────────────────────┴───────────────────────────────────────┴───────────────────────────────────────────────┤ +* k = 1 ─┬───────────────────────────────────────┬───────────────────────────────────────┬───────────────────────────────────────┬───────────────────────────────────────┬───────────────────────────────────────────────┤ +* │ out(0,0,1) out(1,0,1) ... out(3,0,1) │ out(0,1,1) out(1,1,1) ... out(3,1,1) │ out(0,2,1) out(1,2,1) ... out(3,2,1) │ ... │ out(0,R-1,1) out(1,R-1,1) ... out(3,R-1,1) │ +* └───────────────────────────────────────┴───────────────────────────────────────┴───────────────────────────────────────┴───────────────────────────────────────┴───────────────────────────────────────────────┤ +* k = 2 ─┬───────────────────────────────────────┬───────────────────────────────────────┬───────────────────────────────────────┬───────────────────────────────────────┬───────────────────────────────────────────────┤ +* │ out(0,0,2) out(1,0,2) ... out(3,0,2) │ out(0,1,2) out(1,1,2) ... out(3,1,2) │ out(0,2,2) out(1,2,2) ... out(3,2,2) │ ... │ out(0,R-1,2) out(1,R-1,2) ... out(3,R-1,2) │ +* └───────────────────────────────────────┴───────────────────────────────────────┴───────────────────────────────────────┴───────────────────────────────────────┴───────────────────────────────────────────────┘ +* ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ +* i = 0 1 M-1 0 1 M-1 0 1 M-1 0 1 M-1 +* ``` +* +* In the above, +* +* - `i` is the fastest varying index, which walks within one short "column" sub-sequence. +* - `j` selects which of the R components we are in (0, 1, 2, ..., R-1). +* - `k` specifies the index of one of the `L` independent transforms we are processing. +* +* In linear memory, the three-dimensional logical view is arranged as follows: +* +* ```text +* | out(0,0,0)...out(3,0,0) | out(0,1,0)...out(3,1,0) | out(0,2,0)...out(3,2,0) | ... | out(0,R-1,0)...out(3,R-1,0) | out(0,0,1)...out(3,0,1) | ... | out(0,R-1,2)...out(3,R-1,2) | +* ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ +* 0 M-1 M 2M-1 2M 3M-1 (R-1)M RM-1 RM (R+1)M-1 (RL-1)M RLM-1 +* ``` +* +* As may be observed, when resolving an index in the output array, the `j` and `k` dimensions are swapped relative index resolution in the input array. This stems from `radfg` being only one stage in a multi-stage driver which alternates between using `cc` and `out` as workspace buffers. After each stage, the next stage reads what the previous stage wrote. +* +* Each stage expects a transpose, and, in order to avoid explicit transposition between the stages, we swap the last two logical dimensions while still maintaining cache locality within the inner loop logical dimension, as indexed by `i`. +* +* @private +* @param {NonNegativeInteger} i - index of an element within a sub-sequence +* @param {NonNegativeInteger} j - index specifying which of the R complex components we are in (0, 1, ..., R-1) +* @param {NonNegativeInteger} k - index of the sub-sequence being transformed +* @param {NonNegativeInteger} R - radix +* @param {NonNegativeInteger} M - sub-sequence length +* @param {integer} stride - stride length of the output array +* @param {NonNegativeInteger} offset - index specifying the first indexed element in the output array +* @returns {NonNegativeInteger} computed index +* +* @example +* var stride = 1; +* var offset = 0; +* +* var M = 4; // sub-sequence length +* var L = 3; // number of sub-sequences +* +* var idx = optr( 0, 0, 0, 7, M, stride, offset ); +* // returns 0 +* +* idx = optr( 1, 0, 0, 7, M, stride, offset ); +* // returns 1 +* +* idx = optr( M-1, 0, 0, 7, M, stride, offset ); +* // returns 3 +* +* idx = optr( 0, 1, 0, 7, M, stride, offset ); +* // returns 4 +* +* // ... +* +* idx = optr( M-1, 6, L-1, 7, M, stride, offset ); +* // returns 83 +*/ +function optr( i, j, k, R, M, stride, offset ) { + var n = i + ( ( j+(k*R) ) * M ); + return ( n*stride ) + offset; +} + +/** +* Resolves an index into a flattened workspace array. +* +* ## Notes +* +* During the general radix stage, flattened workspace arrays store `ML = M * L` elements for each of the `R` component columns. Both the flattened input and output workspace arrays share the same `[ML, R]` logical layout. +* +* Thus, when accessing a flattened workspace array stored in linear memory, we can reinterpret the array as a two-dimensional logical view having `R` component columns, where each column has `ML` elements. +* +* Accordingly, the following is a logical view of a flattened workspace array (zero-based indexing) having flattened dimension `ML` and arbitrary radix `R`: +* +* ```text +* │ j = 0 j = 1 j = 2 ... j = R-1 +* │ ────────────────────────────────────────────────────────────────────────→ j +* ik = 0 │ ws(0,0) ws(0,1) ws(0,2) ... ws(0,R-1) +* │ +* ik = 1 │ ws(1,0) ws(1,1) ws(1,2) ... ws(1,R-1) +* │ +* ik = 2 │ ws(2,0) ws(2,1) ws(2,2) ... ws(2,R-1) +* │ +* ik = 3 │ ws(3,0) ws(3,1) ws(3,2) ... ws(3,R-1) +* │ +* ... │ ... ... ... ... ... +* │ +* ik = ML-1 │ ws(ML-1,0) ws(ML-1,1) ws(ML-1,2) ... ws(ML-1,R-1) +* ``` +* +* In the above, +* +* - `ik` is the fastest varying index, which walks along the flattened sub-sequence dimension. +* - `j` selects between the `R` workspace component columns (0, 1, 2, ..., R-1). +* +* In linear memory, the two-dimensional logical view is arranged as follows: +* +* ```text +* | ws(0,0)...ws(ML-1,0) | ws(0,1)...ws(ML-1,1) | ws(0,2)...ws(ML-1,2) | ... | ws(0,R-1)...ws(ML-1,R-1) | +* ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ +* 0 ML-1 ML 2ML-1 2ML 3ML-1 (R-1)ML RML-1 +* ``` +* +* Here, the original `M` and `L` dimensions have been collapsed into the single flattened `ik` dimension. Each workspace component `j` therefore occupies one contiguous block of `ML` elements in linear memory. +* +* @private +* @param {NonNegativeInteger} ik - index of an element within a flattened sub-sequence +* @param {NonNegativeInteger} j - index specifying which of the R workspace component columns we are in (0, 1, ..., R-1) +* @param {NonNegativeInteger} ML - flattened sub-sequence length +* @param {integer} stride - stride length of the flattened workspace array +* @param {NonNegativeInteger} offset - index specifying the first indexed element in the flattened workspace array +* @returns {NonNegativeInteger} computed index +* +* @example +* var stride = 1; +* var offset = 0; +* +* var M = 4; // sub-sequence length +* var L = 3; // number of sub-sequences +* var ML = M * L; // flattened dimension ( 4*3 = 12 ) +* +* var idx = fptr( 0, 0, ML, stride, offset ); +* // returns 0 +* +* idx = fptr( 1, 0, ML, stride, offset ); +* // returns 1 +* +* idx = fptr( ML-1, 0, ML, stride, offset ); +* // returns 11 +* +* idx = fptr( 0, 1, ML, stride, offset ); +* // returns 12 +* +* // ... +* +* idx = fptr( ML-1, 6, ML, stride, offset ); +* // returns 83 +*/ +function fptr( ik, j, ML, stride, offset ) { + var n = ik + ( j*ML ); + return ( n*stride ) + offset; +} + + +// MAIN // + +/** +* Performs one general radix stage within a forward Fourier transform for a real-valued sequence. +* +* @private +* @param {NonNegativeInteger} M - number of elements in each sub-sequence to be transformed +* @param {NonNegativeInteger} R - radix of the transform +* @param {NonNegativeInteger} L - number of sub-sequences to be transformed +* @param {NonNegativeInteger} ML - number of elements in each flattened sub-sequence (`M*L`) +* @param {Float64Array} cc - input array containing the sub-sequences to be transformed +* @param {integer} sc - stride length for `cc` +* @param {NonNegativeInteger} oc - index offset for `cc` +* @param {Float64Array} c1 - input workspace array containing intermediate sub-sequences to be transformed +* @param {integer} sc1 - stride length for `c1` +* @param {NonNegativeInteger} oc1 - index offset for `c1` +* @param {Float64Array} c2 - flattened input workspace array containing intermediate sub-sequences +* @param {integer} sc2 - stride length for `c2` +* @param {NonNegativeInteger} oc2 - index offset for `c2` +* @param {Float64Array} ch - output array containing transformed sequences +* @param {integer} sch - stride length for `ch` +* @param {NonNegativeInteger} och - index offset for `ch` +* @param {Float64Array} ch2 - flattened output workspace array containing intermediate sub-sequences +* @param {integer} sch2 - stride length for `ch2` +* @param {NonNegativeInteger} och2 - index offset for `ch2` +* @param {Float64Array} twiddles - array of twiddle factors +* @param {integer} stw - stride length for `twiddles` +* @param {NonNegativeInteger} otw - index offset for `twiddles` +* @returns {void} +*/ +function radfg( M, R, L, ML, cc, sc, oc, c1, sc1, oc1, c2, sc2, oc2, ch, sch, och, ch2, sch2, och2, twiddles, stw, otw ) { // eslint-disable-line max-params + var ar1h; + var ar2h; + var idij; + var ic2o; + var ic1o; + var ich; + var icc; + var Rph; + var Rp1; + var ih1; + var ih2; + var ih3; + var ih4; + var ic1; + var ic2; + var ic3; + var ic4; + var it1; + var it2; + var io1; + var io2; + var io3; + var io4; + var dc2; + var ai1; + var ai2; + var ar1; + var ar2; + var ds2; + var nbd; + var dcp; + var dsp; + var im; + var ik; + var is; + var jc; + var lc; + var j2; + var i; + var j; + var k; + var l; + + // Compute the basic rotation angle for the radix-R DFT matrix: + dcp = cospi( 2.0 / R ); // cos(2π/R) + dsp = sinpi( 2.0 / R ); // sin(2π/R) + + // Compute half the radix, rounded up, which is used as the exclusive upper bound for conjugate-symmetric component loops: + Rph = floor( ( R + 1 ) / 2 ); + Rp1 = R + 1; + + // Compute the number of non-DC complex harmonics in each sub-sequence: + nbd = floor( ( M - 1 ) / 2 ); + + /* + * First, initialize the work arrays for the general-radix butterfly. + * + * At this stage, each sub-sequence has already been split into `R` radix components. The `j = 0` component is carried in the flattened work arrays, while the remaining components `j = 1, ..., R-1` are carried in the three-dimensional work arrays. + * + * For harmonic `n = 0`, we only copy the DC terms. + * + * For harmonics `n = 1, ..., floor((M-1)/2)`, each nonzero radix component is multiplied by its stage twiddle factor and stored in `ch`. + */ + if ( M === 1 ) { + // Copy the DC column from the flattened output workspace back to the flattened input workspace... + for ( ik = 0; ik < ML; ik++ ) { + ic2o = fptr( ik, 0, ML, sc2, oc2 ); + ich = fptr( ik, 0, ML, sch2, och2 ); + c2[ ic2o ] = ch2[ ich ]; + } + } else { + // Copy the DC column into the flattened output workspace... + for ( ik = 0; ik < ML; ik++ ) { + ich = fptr( ik, 0, ML, sch2, och2 ); + ic2o = fptr( ik, 0, ML, sc2, oc2 ); + ch2[ ich ] = c2[ ic2o ]; + } + + // Copy the DC terms for the remaining radix components... + for ( j = 1; j < R; j++ ) { + for ( k = 0; k < L; k++ ) { + ih1 = optr( 0, k, j, L, M, sch, och ); + ic1 = iptr( 0, k, j, L, M, sc1, oc1 ); + ch[ ih1 ] = c1[ ic1 ]; + } + } + + // Apply twiddle factors to the non-DC harmonics of the remaining radix components... + if ( nbd <= L ) { + // Loop over harmonics before sub-sequences... + is = 0; + for ( j = 1; j < R; j++ ) { + idij = is; + for ( i = 2; i < M; i += 2 ) { + for ( k = 0; k < L; k++ ) { + // Resolve output indices in ch: + ih1 = optr( i-1, k, j, L, M, sch, och ); // real part + ih2 = optr( i, k, j, L, M, sch, och ); // imaginary part + + // Resolve indices in the input workspace: + ic1 = iptr( i-1, k, j, L, M, sc1, oc1 ); // real part + ic2 = iptr( i, k, j, L, M, sc1, oc1 ); // imaginary part + + // Resolve twiddle factor indices: + it1 = ( idij * stw ) + otw; // cos(θ) + it2 = ( (idij+1) * stw ) + otw; // sin(θ) + + // Apply the twiddle factor: + ch[ ih1 ] = ( twiddles[ it1 ] * c1[ ic1 ] ) + ( twiddles[ it2 ] * c1[ ic2 ] ); // Re(ch) + ch[ ih2 ] = ( twiddles[ it1 ] * c1[ ic2 ] ) - ( twiddles[ it2 ] * c1[ ic1 ] ); // Im(ch) + } + idij += 2; + } + is += M; + } + } else { + // Loop over sub-sequences before harmonics... + is = 0; + for ( j = 1; j < R; j++ ) { + for ( k = 0; k < L; k++ ) { + idij = is; + for ( i = 2; i < M; i += 2 ) { + // Resolve output indices in ch: + ih1 = optr( i-1, k, j, L, M, sch, och ); // real part + ih2 = optr( i, k, j, L, M, sch, och ); // imaginary part + + // Resolve indices in the input workspace: + ic1 = iptr( i-1, k, j, L, M, sc1, oc1 ); // real part + ic2 = iptr( i, k, j, L, M, sc1, oc1 ); // imaginary part + + // Resolve twiddle factor indices: + it1 = ( idij * stw ) + otw; // cos(θ) + it2 = ( (idij+1) * stw ) + otw; // sin(θ) + + // Apply the twiddle factor: + ch[ ih1 ] = ( twiddles[ it1 ] * c1[ ic1 ] ) + ( twiddles[ it2 ] * c1[ ic2 ] ); // Re(ch) + ch[ ih2 ] = ( twiddles[ it1 ] * c1[ ic2 ] ) - ( twiddles[ it2 ] * c1[ ic1 ] ); // Im(ch) + + idij += 2; + } + } + is += M; + } + } + + /* + * Next, combine mirrored radix components, storing their sums and differences in c1. + */ + if ( nbd >= L ) { + // Loop over sub-sequences before harmonics... + for ( j = 1; j < Rph; j++ ) { + jc = Rp1 - j - 1; // "mirror" index + for ( k = 0; k < L; k++ ) { + for ( i = 2; i < M; i += 2 ) { + // Resolve ch indices for component j: + ih1 = optr( i-1, k, j, L, M, sch, och ); // Re(ch[j]) + ih2 = optr( i, k, j, L, M, sch, och ); // Im(ch[j]) + + // Resolve ch indices for conjugate component jc: + ih3 = optr( i-1, k, jc, L, M, sch, och ); // Re(ch[jc]) + ih4 = optr( i, k, jc, L, M, sch, och ); // Im(ch[jc]) + + // Resolve input-workspace indices for component j: + ic1 = iptr( i-1, k, j, L, M, sc1, oc1 ); // Re(component j) + ic2 = iptr( i, k, j, L, M, sc1, oc1 ); // Im(component j) + + // Resolve input-workspace indices for component jc: + ic3 = iptr( i-1, k, jc, L, M, sc1, oc1 ); // Re(component jc) + ic4 = iptr( i, k, jc, L, M, sc1, oc1 ); // Im(component jc) + + // Form the sum and difference combinations: + c1[ ic1 ] = ch[ ih1 ] + ch[ ih3 ]; // Re(j) + Re(jc) + c1[ ic3 ] = ch[ ih2 ] - ch[ ih4 ]; // Im(j) - Im(jc) + c1[ ic2 ] = ch[ ih2 ] + ch[ ih4 ]; // Im(j) + Im(jc) + c1[ ic4 ] = ch[ ih3 ] - ch[ ih1 ]; // Re(jc) - Re(j) + } + } + } + } else { + // Loop over harmonics before sub-sequences... + for ( j = 1; j < Rph; j++ ) { + jc = Rp1 - j - 1; // "mirror" index + for ( i = 2; i < M; i += 2 ) { + for ( k = 0; k < L; k++ ) { + // Resolve ch indices for component j: + ih1 = optr( i-1, k, j, L, M, sch, och ); // Re(ch[j]) + ih2 = optr( i, k, j, L, M, sch, och ); // Im(ch[j]) + + // Resolve ch indices for conjugate component jc: + ih3 = optr( i-1, k, jc, L, M, sch, och ); // Re(ch[jc]) + ih4 = optr( i, k, jc, L, M, sch, och ); // Im(ch[jc]) + + // Resolve input-workspace indices for component j: + ic1 = iptr( i-1, k, j, L, M, sc1, oc1 ); // Re(component j) + ic2 = iptr( i, k, j, L, M, sc1, oc1 ); // Im(component j) + + // Resolve input-workspace indices for component jc: + ic3 = iptr( i-1, k, jc, L, M, sc1, oc1 ); // Re(component jc) + ic4 = iptr( i, k, jc, L, M, sc1, oc1 ); // Im(component jc) + + // Form the sum and difference combinations: + c1[ ic1 ] = ch[ ih1 ] + ch[ ih3 ]; // Re(j) + Re(jc) + c1[ ic3 ] = ch[ ih2 ] - ch[ ih4 ]; // Im(j) - Im(jc) + c1[ ic2 ] = ch[ ih2 ] + ch[ ih4 ]; // Im(j) + Im(jc) + c1[ ic4 ] = ch[ ih3 ] - ch[ ih1 ]; // Re(jc) - Re(j) + } + } + } + } + } + + // Combine the DC terms for each conjugate-symmetric component pair... + for ( j = 1; j < Rph; j++ ) { + jc = Rp1 - j - 1; // "mirror" index + for ( k = 0; k < L; k++ ) { + ih1 = optr( 0, k, j, L, M, sch, och ); + ih2 = optr( 0, k, jc, L, M, sch, och ); + + ic1 = iptr( 0, k, j, L, M, sc1, oc1 ); + ic2 = iptr( 0, k, jc, L, M, sc1, oc1 ); + + c1[ ic1 ] = ch[ ih1 ] + ch[ ih2 ]; + c1[ ic2 ] = ch[ ih2 ] - ch[ ih1 ]; + } + } + + /* + * Next, apply the radix-`R` DFT matrix. + * + * For each mirrored output pair, accumulate the contributions of the radix components in the flattened work array. + * + * The required rotation factors are generated recursively from the previous ones: + * + * W_l = W_{l-1} ⋅ W_1 + * W_{lj} = W_{l(j-1)} ⋅ W_l + * + * Here, `W_1` is the basic radix-`R` rotation, `W_{l-1}` and `W_l` are the previous and current outer factors, and `W_{l(j-1)}` and `W_{lj}` are the previous and current inner factors. + */ + ar1 = 1.0; // Re(W_0) + ai1 = 0.0; // Im(W_0) + for ( l = 1; l < Rph; l++ ) { + lc = Rp1 - l - 1; // "mirror" index + + // Advance the rotation factor by one step: W_l = W_{l-1} ⋅ W_1 + ar1h = ( dcp * ar1 ) - ( dsp * ai1 ); // Re(W_l) + ai1 = ( dcp * ai1 ) + ( dsp * ar1 ); // Im(W_l) + ar1 = ar1h; + + // Accumulate the contributions from components 1 and R-1: + for ( ik = 0; ik < ML; ik++ ) { + ich = fptr( ik, l, ML, sch2, och2 ); + ic1o = fptr( ik, lc, ML, sch2, och2 ); + + ic2o = fptr( ik, 0, ML, sc2, oc2 ); + ic1 = fptr( ik, 1, ML, sc2, oc2 ); + ic2 = fptr( ik, R-1, ML, sc2, oc2 ); + + ch2[ ich ] = c2[ ic2o ] + ( ar1 * c2[ ic1 ] ); + ch2[ ic1o ] = ai1 * c2[ ic2 ]; + } + + // Save W_l for the inner recurrence: + dc2 = ar1; + ds2 = ai1; + + // Initialize W_{l·1}: + ar2 = ar1; + ai2 = ai1; + + // Accumulate the remaining component pairs: + for ( j = 2; j < Rph; j++ ) { + jc = Rp1 - j - 1; // "mirror" index + + // Advance the nested rotation factor by one step: W_{l*j} = W_{l*(j-1)} ⋅ W_l + ar2h = ( dc2 * ar2 ) - ( ds2 * ai2 ); // Re(W_{l*j}) + ai2 = ( dc2 * ai2 ) + ( ds2 * ar2 ); // Im(W_{l*j}) + ar2 = ar2h; + + // Accumulate the contributions from components j and jc: + for ( ik = 0; ik < ML; ik++ ) { + ich = fptr( ik, l, ML, sch2, och2 ); + ic1o = fptr( ik, lc, ML, sch2, och2 ); + + ic1 = fptr( ik, j, ML, sc2, oc2 ); + ic2 = fptr( ik, jc, ML, sc2, oc2 ); + + ch2[ ich ] += ar2 * c2[ ic1 ]; + ch2[ ic1o ] += ai2 * c2[ ic2 ]; + } + } + } + + // Accumulate the nonzero radix components into the DC output... + for ( j = 1; j < Rph; j++ ) { + for ( ik = 0; ik < ML; ik++ ) { + ich = fptr( ik, 0, ML, sch2, och2 ); + ic1 = fptr( ik, j, ML, sc2, oc2 ); + ch2[ ich ] += c2[ ic1 ]; + } + } + + // Copy the first output column from ch to cc... + if ( M >= L ) { + for ( k = 0; k < L; k++ ) { + for ( i = 0; i < M; i++ ) { + icc = iptr( i, k, 0, L, M, sc, oc ); + ih1 = optr( i, k, 0, L, M, sch, och ); + cc[ icc ] = ch[ ih1 ]; + } + } + } else { + for ( i = 0; i < M; i++ ) { + for ( k = 0; k < L; k++ ) { + icc = iptr( i, k, 0, L, M, sc, oc ); + ih1 = optr( i, k, 0, L, M, sch, och ); + cc[ icc ] = ch[ ih1 ]; + } + } + } + + // Store DC harmonics for conjugate pairs in the output array... + for ( j = 1; j < Rph; j++ ) { + jc = Rp1 - j - 1; // "mirror" index + j2 = 2 * j; // output column index + for ( k = 0; k < L; k++ ) { + io1 = iptr( M-1, k, j2-1, L, M, sc, oc ); + io2 = iptr( 0, k, j2, L, M, sc, oc ); + + ih1 = optr( 0, k, j, L, M, sch, och ); + ih2 = optr( 0, k, jc, L, M, sch, och ); + + cc[ io1 ] = ch[ ih1 ]; + cc[ io2 ] = ch[ ih2 ]; + } + } + + // When M = 1, there are no non-DC harmonics to process, so we're done... + if ( M === 1 ) { + return; + } + + /* + * Finally, store the non-DC harmonics in folded format. + * + * For each mirror pair, write the non-DC harmonics from `ch` to the two output columns as the required sum and difference combinations. + */ + if ( nbd >= L ) { + // Loop over sub-sequences before harmonics... + for ( j = 1; j < Rph; j++ ) { + jc = Rp1 - j - 1; // "mirror" index + j2 = 2 * j; // output column index + for ( k = 0; k < L; k++ ) { + for ( i = 2; i < M; i += 2 ) { + im = M - i; // "mirror" harmonic index + + // Resolve ch indices for component j: + ih1 = optr( i-1, k, j, L, M, sch, och ); // Re(ch[j]) + ih2 = optr( i, k, j, L, M, sch, och ); // Im(ch[j]) + + // Resolve ch indices for conjugate component jc: + ih3 = optr( i-1, k, jc, L, M, sch, och ); // Re(ch[jc]) + ih4 = optr( i, k, jc, L, M, sch, och ); // Im(ch[jc]) + + // Resolve cc output indices: + io1 = iptr( i-1, k, j2, L, M, sc, oc ); + io2 = iptr( im-1, k, j2-1, L, M, sc, oc ); + io3 = iptr( i, k, j2, L, M, sc, oc ); + io4 = iptr( im, k, j2-1, L, M, sc, oc ); + + // Store the sum and difference combinations: + cc[ io1 ] = ch[ ih1 ] + ch[ ih3 ]; + cc[ io2 ] = ch[ ih1 ] - ch[ ih3 ]; + cc[ io3 ] = ch[ ih2 ] + ch[ ih4 ]; + cc[ io4 ] = ch[ ih4 ] - ch[ ih2 ]; + } + } + } + } else { + // Loop over harmonics before sub-sequences... + for ( j = 1; j < Rph; j++ ) { + jc = Rp1 - j - 1; // "mirror" index + j2 = 2 * j; // output column index + for ( i = 2; i < M; i += 2 ) { + im = M - i; // "mirror" harmonic index + for ( k = 0; k < L; k++ ) { + // Resolve ch indices for component j: + ih1 = optr( i-1, k, j, L, M, sch, och ); // Re(ch[j]) + ih2 = optr( i, k, j, L, M, sch, och ); // Im(ch[j]) + + // Resolve ch indices for conjugate component jc: + ih3 = optr( i-1, k, jc, L, M, sch, och ); // Re(ch[jc]) + ih4 = optr( i, k, jc, L, M, sch, och ); // Im(ch[jc]) + + // Resolve cc output indices: + io1 = iptr( i-1, k, j2, L, M, sc, oc ); + io2 = iptr( im-1, k, j2-1, L, M, sc, oc ); + io3 = iptr( i, k, j2, L, M, sc, oc ); + io4 = iptr( im, k, j2-1, L, M, sc, oc ); + + // Store the sum and difference combinations: + cc[ io1 ] = ch[ ih1 ] + ch[ ih3 ]; + cc[ io2 ] = ch[ ih1 ] - ch[ ih3 ]; + cc[ io3 ] = ch[ ih2 ] + ch[ ih4 ]; + cc[ io4 ] = ch[ ih4 ] - ch[ ih2 ]; + } + } + } + } +} + + +// EXPORTS // + +module.exports = radfg; From 2c9f317e5b70443f3d15909d7c7aef8ae8713fe1 Mon Sep 17 00:00:00 2001 From: Gunj Joshi Date: Sat, 23 May 2026 13:26:14 +0530 Subject: [PATCH 06/19] feat: add rfftf1 --- type: pre_commit_static_analysis_report description: Results of running static analysis checks when committing changes. report: - task: lint_filenames status: passed - task: lint_editorconfig status: passed - task: lint_markdown status: na - task: lint_package_json status: na - task: lint_repl_help status: na - task: lint_javascript_src status: passed - task: lint_javascript_cli status: na - task: lint_javascript_examples status: na - task: lint_javascript_tests status: na - task: lint_javascript_benchmarks status: na - task: lint_python status: na - task: lint_r status: na - task: lint_c_src status: na - task: lint_c_examples status: na - task: lint_c_benchmarks status: na - task: lint_c_tests_fixtures status: na - task: lint_shell status: na - task: lint_typescript_declarations status: passed - task: lint_typescript_tests status: na - task: lint_license_headers status: passed --- --- .../fft/base/fftpack/rfftf/lib/rfftf1.js | 178 ++++++++++++++++++ 1 file changed, 178 insertions(+) create mode 100644 lib/node_modules/@stdlib/fft/base/fftpack/rfftf/lib/rfftf1.js diff --git a/lib/node_modules/@stdlib/fft/base/fftpack/rfftf/lib/rfftf1.js b/lib/node_modules/@stdlib/fft/base/fftpack/rfftf/lib/rfftf1.js new file mode 100644 index 000000000000..73ecae7b4248 --- /dev/null +++ b/lib/node_modules/@stdlib/fft/base/fftpack/rfftf/lib/rfftf1.js @@ -0,0 +1,178 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2026 The Stdlib Authors. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +* +* +* ## Notice +* +* The original C code and copyright notice are from the [PFFFT library]{@link https://github.com/marton78/pffft/blob/0b4ee12c4ba45a4a8e567550c16d96d1679f50ce/src/fftpack.c}. The implementation follows the original, but has been modified for JavaScript. +* +* ```text +* Copyright (c) 2004 the University Corporation for Atmospheric +* Research ("UCAR"). All rights reserved. Developed by NCAR's +* Computational and Information Systems Laboratory, UCAR, +* www.cisl.ucar.edu. +* +* Redistribution and use of the Software in source and binary forms, +* with or without modification, is permitted provided that the +* following conditions are met: +* +* - Neither the names of NCAR's Computational and Information Systems +* Laboratory, the University Corporation for Atmospheric Research, +* nor the names of its sponsors or contributors may be used to +* endorse or promote products derived from this Software without +* specific prior written permission. +* +* - Redistributions of source code must retain the above copyright +* notices, this list of conditions, and the disclaimer below. +* +* - Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions, and the disclaimer below in the +* documentation and/or other materials provided with the +* distribution. +* +* THIS 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 CONTRIBUTORS OR COPYRIGHT +* HOLDERS BE LIABLE FOR ANY CLAIM, INDIRECT, INCIDENTAL, SPECIAL, +* EXEMPLARY, OR CONSEQUENTIAL 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 WITH THE +* SOFTWARE. +* ``` +*/ + +/* eslint-disable max-len */ + +'use strict'; + +// MODULES // + +var floor = require( '@stdlib/math/base/special/floor' ); +var dcopy = require( '@stdlib/blas/base/dcopy' ).ndarray; +var radf2 = require( './radf2.js' ); +var radf3 = require( './radf3.js' ); +var radf4 = require( './radf4.js' ); +var radf5 = require( './radf5.js' ); +var radfg = require( './radfg.js' ); + + +// MAIN // + +/** +* Performs the forward real-valued Fourier transform. +* +* @private +* @param {NonNegativeInteger} N - length of the sequence to transform +* @param {Float64Array} c - input array containing the sequence to be transformed +* @param {NonNegativeInteger} cOffset - starting index for `c` +* @param {Float64Array} ch - working array for intermediate results +* @param {NonNegativeInteger} chOffset - starting index for `ch` +* @param {Float64Array} wa - workspace array for storing twiddle factors +* @param {NonNegativeInteger} waOffset - starting index for `wa` +* @param {Int32Array} ifac - workspace array for storing factorization results +* @param {NonNegativeInteger} ifacOffset - starting index for `ifac` +* @returns {void} +*/ +function rfftf1( N, c, cOffset, ch, chOffset, wa, waOffset, ifac, ifacOffset ) { + var factor; + var idl1; + var FLG; + var ido; + var ix4; + var ix3; + var ix2; + var nf; + var l2; + var l1; + var kh; + var iw; + var k1; + + // Resolve the number of factors: + nf = ifac[ ifacOffset+1 ]; + + FLG = 1; // Flag to track whether the latest stage output resides in `c` or `ch`. + l2 = N; + + // Initialize an index offset to the last element in each workspace: + iw = N - 1; + + for ( k1 = 1; k1 <= nf; k1++ ) { + kh = nf - k1; + + // Resolve the next factor: + factor = ifac[ ifacOffset+kh+2 ]; + + // Compute a sub-transform length: + l1 = floor( l2 / factor ); + + ido = floor( N / l2 ); + idl1 = ido * l1; + + // Adjust the index offset + iw -= ( (factor-1) * ido ); + + // Toggle the flag to swap the input and output work buffers for the next stage: + FLG = 1 - FLG; + + switch ( factor ) { + case 4: + ix2 = iw + ido; + ix3 = ix2 + ido; + radf4( ido, l1, ( FLG ) ? ch : c, 1, ( FLG ) ? chOffset : cOffset, ( FLG ) ? c : ch, 1, ( FLG ) ? cOffset : chOffset, wa, 1, iw+waOffset, wa, 1, ix2+waOffset, wa, 1, ix3+waOffset ); + break; + case 2: + radf2( ido, l1, ( FLG ) ? ch : c, 1, ( FLG ) ? chOffset : cOffset, ( FLG ) ? c : ch, 1, ( FLG ) ? cOffset : chOffset, wa, 1, iw+waOffset ); + break; + case 3: + ix2 = iw + ido; + radf3( ido, l1, ( FLG ) ? ch : c, 1, ( FLG ) ? chOffset : cOffset, ( FLG ) ? c : ch, 1, ( FLG ) ? cOffset : chOffset, wa, 1, iw+waOffset, wa, 1, ix2+waOffset ); + break; + case 5: + ix2 = iw + ido; + ix3 = ix2 + ido; + ix4 = ix3 + ido; + radf5( ido, l1, ( FLG ) ? ch : c, 1, ( FLG ) ? chOffset : cOffset, ( FLG ) ? c : ch, 1, ( FLG ) ? cOffset : chOffset, wa, 1, iw+waOffset, wa, 1, ix2+waOffset, wa, 1, ix3+waOffset, wa, 1, ix4+waOffset ); + break; + default: + if ( ido === 1 ) { + FLG = 1 - FLG; + } + if ( FLG === 0 ) { + radfg( ido, factor, l1, idl1, c, 1, cOffset, c, 1, cOffset, c, 1, cOffset, ch, 1, chOffset, ch, 1, chOffset, wa, 1, iw+waOffset ); + FLG = 1; + } else { + radfg( ido, factor, l1, idl1, ch, 1, chOffset, ch, 1, chOffset, ch, 1, chOffset, c, 1, cOffset, c, 1, cOffset, wa, 1, iw+waOffset ); + FLG = 0; + } + break; + } + l2 = l1; + } + if ( FLG === 1 ) { + return; + } + + // Now that we've finished computing the transforms, copy over the final results to the input array... + dcopy( N, ch, 1, chOffset, c, 1, cOffset ); +} + + +// EXPORTS // + +module.exports = rfftf1; From ddd4f97fcb9432ffac59d8193c90b3ab9c627f0a Mon Sep 17 00:00:00 2001 From: Gunj Joshi Date: Sat, 23 May 2026 13:27:44 +0530 Subject: [PATCH 07/19] refactor: remove argument validation from main.js --- type: pre_commit_static_analysis_report description: Results of running static analysis checks when committing changes. report: - task: lint_filenames status: passed - task: lint_editorconfig status: passed - task: lint_markdown status: na - task: lint_package_json status: na - task: lint_repl_help status: na - task: lint_javascript_src status: passed - task: lint_javascript_cli status: na - task: lint_javascript_examples status: na - task: lint_javascript_tests status: na - task: lint_javascript_benchmarks status: na - task: lint_python status: na - task: lint_r status: na - task: lint_c_src status: na - task: lint_c_examples status: na - task: lint_c_benchmarks status: na - task: lint_c_tests_fixtures status: na - task: lint_shell status: na - task: lint_typescript_declarations status: passed - task: lint_typescript_tests status: na - task: lint_license_headers status: passed --- --- .../@stdlib/fft/base/fftpack/rfftf/lib/main.js | 17 +++-------------- 1 file changed, 3 insertions(+), 14 deletions(-) diff --git a/lib/node_modules/@stdlib/fft/base/fftpack/rfftf/lib/main.js b/lib/node_modules/@stdlib/fft/base/fftpack/rfftf/lib/main.js index 0e54338933a1..37577ba9f86c 100644 --- a/lib/node_modules/@stdlib/fft/base/fftpack/rfftf/lib/main.js +++ b/lib/node_modules/@stdlib/fft/base/fftpack/rfftf/lib/main.js @@ -18,7 +18,7 @@ * * ## Notice * -* The original C code and copyright notice are from the [PFFFT library]{@link https://github.com/marton78/pffft/blob/master/fftpack.c}. The implementation follows the original, but has been modified for JavaScript. +* The original C code and copyright notice are from the [PFFFT library]{@link https://github.com/marton78/pffft/blob/0b4ee12c4ba45a4a8e567550c16d96d1679f50ce/src/fftpack.c}. The implementation follows the original, but has been modified for JavaScript. * * ```text * Copyright (c) 2004 the University Corporation for Atmospheric @@ -60,9 +60,6 @@ // MODULES // -var isNonNegativeInteger = require( '@stdlib/assert/is-nonnegative-integer' ); -var isFloat64Array = require( '@stdlib/assert/is-float64array' ); -var isInteger = require( '@stdlib/assert/is-integer' ); var rfftf1 = require( './rfftf1.js' ); @@ -98,22 +95,14 @@ function rfftf( N, r, strideR, offsetR, workspace, strideW, offsetW ) { var offsetT; var offsetF; - if ( !isNonNegativeInteger( N ) || !isFloat64Array( r ) || - !isInteger( strideR ) || !isNonNegativeInteger( offsetR ) || - !isFloat64Array( workspace ) || !isInteger( strideW ) || - !isNonNegativeInteger( offsetW ) || - workspace.length < offsetW + ( ( ( 2*N ) + 34 ) * strideW ) ) { - return; - } - // When a sub-sequence is a single data point, the FFT is the identity, so no transformation necessary... if ( N === 1 ) { return; } // Resolve the starting indices for storing twiddle factors and factorization results: - offsetT = offsetW + (N * strideW); // index offset for twiddle factors - offsetF = offsetT + (N * strideW); // index offset for factors describing the sub-transforms + offsetT = offsetW + ( N * strideW ); // index offset for twiddle factors + offsetF = offsetT + ( N * strideW ); // index offset for factors describing the sub-transforms rfftf1( N, r, offsetR, workspace, offsetW, workspace, offsetT, workspace, offsetF ); // eslint-disable-line max-len } From 614570def5294999f891dbb511aa424bbc574718 Mon Sep 17 00:00:00 2001 From: Gunj Joshi Date: Mon, 4 May 2026 07:10:35 +0530 Subject: [PATCH 08/19] build: add recipes for installing fftpack PR-URL: https://github.com/stdlib-js/stdlib/pull/11819 Co-authored-by: Athan Reines Reviewed-by: Athan Reines --- deps/checksums/pffft_1_1_0_tar_gz/sha256 | 1 + deps/test/fftpack/test_install.c | 36 +++++ tools/make/common.mk | 11 ++ tools/make/lib/install/Makefile | 7 +- tools/make/lib/install/fftpack.mk | 177 +++++++++++++++++++++++ tools/make/lib/test-fixtures/c.mk | 4 +- 6 files changed, 231 insertions(+), 5 deletions(-) create mode 100644 deps/checksums/pffft_1_1_0_tar_gz/sha256 create mode 100644 deps/test/fftpack/test_install.c create mode 100644 tools/make/lib/install/fftpack.mk diff --git a/deps/checksums/pffft_1_1_0_tar_gz/sha256 b/deps/checksums/pffft_1_1_0_tar_gz/sha256 new file mode 100644 index 000000000000..d04a825080df --- /dev/null +++ b/deps/checksums/pffft_1_1_0_tar_gz/sha256 @@ -0,0 +1 @@ +ea0701a6bc256405b03975908a6a92d0ffecdd18579e8484b8d789c8bd561787 diff --git a/deps/test/fftpack/test_install.c b/deps/test/fftpack/test_install.c new file mode 100644 index 000000000000..356f0bbe334c --- /dev/null +++ b/deps/test/fftpack/test_install.c @@ -0,0 +1,36 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2026 The Stdlib Authors. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +#include +#include + +extern void rffti( int n, double *wsave ); + +int main( void ) { + double wsave[ 2*8 + 15 ]; // 2*n + 15 + int n = 8; + int i; + + rffti( n, wsave ); + + printf( "rffti( %d, wsave )\n", n ); + for ( i = n; i < 2*n; i++ ) { + printf( "wsave[%2d] = %f\n", i, wsave[i] ); + } + printf( "\n" ); +} diff --git a/tools/make/common.mk b/tools/make/common.mk index e5f8e49ba41c..f570982f637e 100644 --- a/tools/make/common.mk +++ b/tools/make/common.mk @@ -688,3 +688,14 @@ DEPS_CPPCHECK_BUILD_OUT ?= $(DEPS_BUILD_DIR)/cppcheck_$(deps_cppcheck_version_sl # Host platform: DEPS_CPPCHECK_PLATFORM := $(shell command -v $(NODE) >/dev/null 2>&1 && $(NODE_HOST_PLATFORM)) + +# FFTPACK... + +# Define the PFFFT version: +DEPS_FFTPACK_VERSION ?= 1.1.0 + +# Generate a version slug: +deps_fftpack_version_slug := $(subst .,_,$(DEPS_FFTPACK_VERSION)) + +# Define the output path when building FFTPACK: +DEPS_FFTPACK_BUILD_OUT ?= $(DEPS_BUILD_DIR)/pffft-$(DEPS_FFTPACK_VERSION) diff --git a/tools/make/lib/install/Makefile b/tools/make/lib/install/Makefile index e66e2bc5aaf8..be8363f97b9a 100644 --- a/tools/make/lib/install/Makefile +++ b/tools/make/lib/install/Makefile @@ -39,6 +39,7 @@ include $(TOOLS_MAKE_LIB_DIR)/install/cephes.mk include $(TOOLS_MAKE_LIB_DIR)/install/cppcheck.mk include $(TOOLS_MAKE_LIB_DIR)/install/electron.mk include $(TOOLS_MAKE_LIB_DIR)/install/emsdk.mk +include $(TOOLS_MAKE_LIB_DIR)/install/fftpack.mk include $(TOOLS_MAKE_LIB_DIR)/install/llvm.mk include $(TOOLS_MAKE_LIB_DIR)/install/node.mk include $(TOOLS_MAKE_LIB_DIR)/install/openblas.mk @@ -157,7 +158,7 @@ clean-deps-tests: clean-deps-openblas-tests # @example # make install-deps-dev #/ -install-deps-dev: install-deps-boost install-deps-cephes install-deps-cppcheck install-deps-python install-deps-r install-deps-shellcheck +install-deps-dev: install-deps-boost install-deps-cephes install-deps-cppcheck install-deps-fftpack install-deps-python install-deps-r install-deps-shellcheck .PHONY: install-deps-dev @@ -167,7 +168,7 @@ install-deps-dev: install-deps-boost install-deps-cephes install-deps-cppcheck i # @example # make clean-deps-dev #/ -clean-deps-dev: clean-deps-boost clean-deps-cephes clean-deps-cppcheck clean-deps-python clean-deps-r clean-deps-shellcheck +clean-deps-dev: clean-deps-boost clean-deps-cephes clean-deps-cppcheck clean-deps-fftpack clean-deps-python clean-deps-r clean-deps-shellcheck .PHONY: clean-deps-dev @@ -177,7 +178,7 @@ clean-deps-dev: clean-deps-boost clean-deps-cephes clean-deps-cppcheck clean-dep # @example # make clean-deps-dev-tests #/ -clean-deps-dev-tests: clean-deps-boost-tests clean-deps-cephes-tests clean-deps-cppcheck-tests clean-deps-shellcheck-tests +clean-deps-dev-tests: clean-deps-boost-tests clean-deps-cephes-tests clean-deps-cppcheck-tests clean-deps-fftpack-tests clean-deps-shellcheck-tests .PHONY: clean-deps-dev-tests diff --git a/tools/make/lib/install/fftpack.mk b/tools/make/lib/install/fftpack.mk new file mode 100644 index 000000000000..b697b4a947d7 --- /dev/null +++ b/tools/make/lib/install/fftpack.mk @@ -0,0 +1,177 @@ +#/ +# @license Apache-2.0 +# +# Copyright (c) 2026 The Stdlib Authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +#/ + +# VARIABLES # + +# Define the download URL: +DEPS_FFTPACK_URL ?= https://github.com/marton78/pffft/archive/refs/tags/v$(DEPS_FFTPACK_VERSION).tar.gz + +# Determine the basename for the download: +deps_fftpack_basename := pffft-$(DEPS_FFTPACK_VERSION).tar.gz + +# Define the path to the file containing a checksum to verify a download: +DEPS_FFTPACK_CHECKSUM ?= $(shell $(CAT) $(DEPS_CHECKSUMS_DIR)/$(subst .,_,$(subst -,_,$(deps_fftpack_basename)))/sha256) + +# Define the output path when downloading: +DEPS_FFTPACK_DOWNLOAD_OUT ?= $(DEPS_TMP_DIR)/$(deps_fftpack_basename) + +# Define a list of source files: +deps_fftpack_src := \ + src/fftpack.c + +# Resolve a list of source files to absolute filepaths: +DEPS_FFTPACK_SRC ?= $(addprefix $(DEPS_FFTPACK_BUILD_OUT)/,$(deps_fftpack_src)) + +# Define the path to the directory containing tests: +DEPS_FFTPACK_TEST_DIR ?= $(DEPS_DIR)/test/fftpack + +# Define the output directory path for compiled tests: +DEPS_FFTPACK_TEST_OUT ?= $(DEPS_FFTPACK_TEST_DIR)/build + +# Define the path to a test file for checking an installation: +DEPS_FFTPACK_TEST_INSTALL ?= $(DEPS_FFTPACK_TEST_DIR)/test_install.c + +# Define the output path for a test file: +DEPS_FFTPACK_TEST_INSTALL_OUT ?= $(DEPS_FFTPACK_TEST_OUT)/test_install + + +# RULES # + +#/ +# Downloads an FFTPACK distribution. +# +# @private +#/ +$(DEPS_FFTPACK_DOWNLOAD_OUT): | $(DEPS_TMP_DIR) + $(QUIET) echo 'Downloading FFTPACK...' >&2 + $(QUIET) $(DEPS_DOWNLOAD_BIN) $(DEPS_FFTPACK_URL) $(DEPS_FFTPACK_DOWNLOAD_OUT) + +#/ +# Extracts an FFTPACK gzipped tar archive. +# +# @private +#/ +$(DEPS_FFTPACK_BUILD_OUT): $(DEPS_FFTPACK_DOWNLOAD_OUT) | $(DEPS_BUILD_DIR) + $(QUIET) echo 'Extracting FFTPACK...' >&2 + $(QUIET) $(TAR) -zxf $(DEPS_FFTPACK_DOWNLOAD_OUT) -C $(DEPS_BUILD_DIR) + +#/ +# Creates a directory for storing compiled tests. +# +# @private +#/ +$(DEPS_FFTPACK_TEST_OUT): + $(QUIET) $(MKDIR_RECURSIVE) $(DEPS_FFTPACK_TEST_OUT) + +#/ +# Compiles a test file for testing an FFTPACK installation. +# +# @private +#/ +$(DEPS_FFTPACK_TEST_INSTALL_OUT): $(DEPS_FFTPACK_BUILD_OUT) $(DEPS_FFTPACK_TEST_OUT) + $(QUIET) $(CC) -I $(DEPS_FFTPACK_BUILD_OUT) $(DEPS_FFTPACK_TEST_INSTALL) $(DEPS_FFTPACK_SRC) -o $(DEPS_FFTPACK_TEST_INSTALL_OUT) + +#/ +# Downloads an FFTPACK distribution. +# +# @private +# +# @example +# make deps-download-fftpack +#/ +deps-download-fftpack: $(DEPS_FFTPACK_DOWNLOAD_OUT) + +.PHONY: deps-download-fftpack + +#/ +# Verifies a downloaded FFTPACK distribution. +# +# @private +# +# @example +# make deps-verify-fftpack +#/ +deps-verify-fftpack: deps-download-fftpack + $(QUIET) echo 'Verifying download...' >&2 + $(QUIET) $(DEPS_CHECKSUM_BIN) $(DEPS_FFTPACK_DOWNLOAD_OUT) $(DEPS_FFTPACK_CHECKSUM) >&2 + +.PHONY: deps-verify-fftpack + +#/ +# Extracts a downloaded FFTPACK distribution. +# +# @private +# +# @example +# make deps-extract-fftpack +#/ +deps-extract-fftpack: $(DEPS_FFTPACK_BUILD_OUT) + +.PHONY: deps-extract-fftpack + +#/ +# Tests an installed FFTPACK distribution. +# +# @private +# +# @example +# make deps-test-fftpack +#/ +deps-test-fftpack: $(DEPS_FFTPACK_TEST_INSTALL_OUT) + $(QUIET) echo 'Running tests...' >&2 + $(QUIET) $(DEPS_FFTPACK_TEST_INSTALL_OUT) + $(QUIET) echo '' >&2 + $(QUIET) echo 'Success.' >&2 + +.PHONY: deps-test-fftpack + +#/ +# Installs FFTPACK. +# +# @example +# make install-deps-fftpack +#/ +install-deps-fftpack: deps-download-fftpack deps-verify-fftpack deps-extract-fftpack deps-test-fftpack + +.PHONY: install-deps-fftpack + +#/ +# Removes an installed FFTPACK distribution. +# +# ## Notes +# +# - The rule does **not** remove an FFTPACK download (if one exists). +# +# @example +# make clean-deps-fftpack +#/ +clean-deps-fftpack: clean-deps-fftpack-tests + $(QUIET) $(DELETE) $(DELETE_FLAGS) $(DEPS_FFTPACK_BUILD_OUT) + +.PHONY: clean-deps-fftpack + +#/ +# Removes compiled FFTPACK installation tests. +# +# @example +# make clean-deps-fftpack-tests +#/ +clean-deps-fftpack-tests: + $(QUIET) $(DELETE) $(DELETE_FLAGS) $(DEPS_FFTPACK_TEST_OUT) + +.PHONY: clean-deps-fftpack-tests diff --git a/tools/make/lib/test-fixtures/c.mk b/tools/make/lib/test-fixtures/c.mk index 835c780d8f77..f48c82935cb1 100644 --- a/tools/make/lib/test-fixtures/c.mk +++ b/tools/make/lib/test-fixtures/c.mk @@ -28,7 +28,7 @@ test-fixtures-c: echo "Generating test fixtures: $$file"; \ cd `dirname $$file` && \ $(MAKE) clean && \ - CEPHES="$(DEPS_CEPHES_BUILD_OUT)" CEPHES_SRC="$(DEPS_CEPHES_SRC)" $(MAKE) && \ + CEPHES="$(DEPS_CEPHES_BUILD_OUT)" CEPHES_SRC="$(DEPS_CEPHES_SRC)" FFTPACK_SRC="$(DEPS_FFTPACK_SRC)" $(MAKE) && \ $(MAKE) run || exit 1; \ done @@ -45,7 +45,7 @@ test-fixtures-c-files: echo "Generating test fixtures: $$file"; \ cd `dirname $$file` && \ $(MAKE) clean && \ - CEPHES="$(DEPS_CEPHES_BUILD_OUT)" CEPHES_SRC="$(DEPS_CEPHES_SRC)" $(MAKE) && \ + CEPHES="$(DEPS_CEPHES_BUILD_OUT)" CEPHES_SRC="$(DEPS_CEPHES_SRC)" FFTPACK_SRC="$(DEPS_FFTPACK_SRC)" $(MAKE) && \ $(MAKE) run || exit 1; \ done From 79e83a3a493e2d4db65fe15d4984a740d0cde15f Mon Sep 17 00:00:00 2001 From: Gunj Joshi Date: Sun, 24 May 2026 11:44:13 +0530 Subject: [PATCH 09/19] feat: add initial fftpack fixtures --- type: pre_commit_static_analysis_report description: Results of running static analysis checks when committing changes. report: - task: lint_filenames status: passed - task: lint_editorconfig status: passed - task: lint_markdown status: na - task: lint_package_json status: na - task: lint_repl_help status: na - task: lint_javascript_src status: na - task: lint_javascript_cli status: na - task: lint_javascript_examples status: na - task: lint_javascript_tests status: na - task: lint_javascript_benchmarks status: na - task: lint_python status: na - task: lint_r status: na - task: lint_c_src status: na - task: lint_c_examples status: na - task: lint_c_benchmarks status: na - task: lint_c_tests_fixtures status: passed - task: lint_shell status: na - task: lint_typescript_declarations status: passed - task: lint_typescript_tests status: na - task: lint_license_headers status: passed --- --- .../rfftf/test/fixtures/c/fftpack/Makefile | 137 ++++++++ .../rfftf/test/fixtures/c/fftpack/large.json | 1 + .../rfftf/test/fixtures/c/fftpack/medium.json | 1 + .../rfftf/test/fixtures/c/fftpack/runner.c | 318 ++++++++++++++++++ .../rfftf/test/fixtures/c/fftpack/small.json | 1 + 5 files changed, 458 insertions(+) create mode 100644 lib/node_modules/@stdlib/fft/base/fftpack/rfftf/test/fixtures/c/fftpack/Makefile create mode 100644 lib/node_modules/@stdlib/fft/base/fftpack/rfftf/test/fixtures/c/fftpack/large.json create mode 100644 lib/node_modules/@stdlib/fft/base/fftpack/rfftf/test/fixtures/c/fftpack/medium.json create mode 100644 lib/node_modules/@stdlib/fft/base/fftpack/rfftf/test/fixtures/c/fftpack/runner.c create mode 100644 lib/node_modules/@stdlib/fft/base/fftpack/rfftf/test/fixtures/c/fftpack/small.json diff --git a/lib/node_modules/@stdlib/fft/base/fftpack/rfftf/test/fixtures/c/fftpack/Makefile b/lib/node_modules/@stdlib/fft/base/fftpack/rfftf/test/fixtures/c/fftpack/Makefile new file mode 100644 index 000000000000..7ce16281940d --- /dev/null +++ b/lib/node_modules/@stdlib/fft/base/fftpack/rfftf/test/fixtures/c/fftpack/Makefile @@ -0,0 +1,137 @@ +#/ +# @license Apache-2.0 +# +# Copyright (c) 2026 The Stdlib Authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +#/ + +# VARIABLES # + +ifndef VERBOSE + QUIET := @ +endif + +# Specify the path to FFTPACK: +FFTPACK ?= + +# Specify a list of FFTPACK source files: +FFTPACK_SRC ?= + +# Determine the OS: +# +# [1]: https://en.wikipedia.org/wiki/Uname#Examples +# [2]: http://stackoverflow.com/a/27776822/2225624 +OS ?= $(shell uname) +ifneq (, $(findstring MINGW,$(OS))) + OS := WINNT +else +ifneq (, $(findstring MSYS,$(OS))) + OS := WINNT +else +ifneq (, $(findstring CYGWIN,$(OS))) + OS := WINNT +endif +endif +endif + +# Define the program used for compiling C source files: +ifdef C_COMPILER + CC := $(C_COMPILER) +else + CC := gcc +endif + +# Define the command-line options when compiling C files: +CFLAGS ?= \ + -std=c99 \ + -O3 \ + -Wall \ + -pedantic + +# Determine whether to generate [position independent code][1]: +# +# [1]: https://gcc.gnu.org/onlinedocs/gcc/Code-Gen-Options.html#Code-Gen-Options +# [2]: http://stackoverflow.com/questions/5311515/gcc-fpic-option +ifeq ($(OS), WINNT) + fPIC ?= +else + fPIC ?= -fPIC +endif + +# List of C targets: +c_targets := runner.out + + +# RULES # + +#/ +# Compiles C source files. +# +# @param {string} [C_COMPILER] - C compiler +# @param {string} [CFLAGS] - C compiler flags +# @param {(string|void)} [fPIC] - flag indicating whether to generate position independent code +# +# @example +# make +# +# @example +# make all +#/ +all: $(c_targets) + +.PHONY: all + +#/ +# Compiles C source files. +# +# @private +# @param {string} CC - C compiler +# @param {string} CFLAGS - C compiler flags +# @param {(string|void)} fPIC - flag indicating whether to generate position independent code +#/ +$(c_targets): %.out: %.c + $(QUIET) $(CC) $(CFLAGS) -DFFTPACK_DOUBLE_PRECISION $(fPIC) -o $@ $(FFTPACK_SRC) $< -lm + +#/ +# Generates test fixtures. +# +# @example +# make run +#/ +run: $(c_targets) + $(QUIET) ./$< + +.PHONY: run + +#/ +# Removes generated files. +# +# @example +# make clean +#/ +clean: + $(QUIET) -rm -f *.o *.out + +.PHONY: clean + +#/ +# Removes generated test fixtures. +# +# @example +# make clean-fixtures +#/ +clean-fixtures: + $(QUIET) -rm -f *.json + +.PHONY: clean-fixtures diff --git a/lib/node_modules/@stdlib/fft/base/fftpack/rfftf/test/fixtures/c/fftpack/large.json b/lib/node_modules/@stdlib/fft/base/fftpack/rfftf/test/fixtures/c/fftpack/large.json new file mode 100644 index 000000000000..003f72d330e9 --- /dev/null +++ b/lib/node_modules/@stdlib/fft/base/fftpack/rfftf/test/fixtures/c/fftpack/large.json @@ -0,0 +1 @@ +{"lengths":[586,790,287,430,137,315,331,183,903,1020],"offsets":[0,586,1376,1663,2093,2230,2545,2876,3059,3962],"input":[3.2458647340536118,-6.751311095431447,-9.2855554912239313,-2.3311354126781225,0.60717913322150707,4.8597750626504421,-1.7604057397693396,-7.1392038185149431,-8.5985553916543722,4.0795434266328812,4.8864816036075354,7.0964283309876919,9.6710927039384842,2.0552290417253971,2.2345986217260361,-3.1008689012378454,3.6964308843016624,5.9139796439558268,-3.7439994886517525,-5.3993568103760481,-6.9898759853094816,1.1543384566903114,0.9665288869291544,4.4510884396731853,9.443518677726388,-2.7814312838017941,-7.5155303627252579,6.4812131132930517,9.7489240951836109,-9.8325776867568493,3.8668199814856052,9.6435373462736607,-1.0676674451678991,-4.2866810318082571,-6.2480568885803223,8.9079029858112335,-4.8743694927543402,-3.528024610131979,4.4904281571507454,-9.3738493602722883,-6.2861931975930929,7.9509571101516485,-8.2637091912329197,-8.1603634636849165,8.7712802365422249,-1.0929175280034542,-8.6648234445601702,-9.6876222733408213,0.1324544008821249,6.1611949186772108,-8.7968753091990948,-9.0833122935146093,-3.2297099288552999,-1.7347212880849838,4.5393758360296488,-6.7102100607007742,1.4995355438441038,2.6939753815531731,-2.3556628916412592,8.3738400042057037,-0.87090551853179932,2.6910214778035879,7.9980767611414194,3.6762653570622206,6.9919631723314524,-6.0748296417295933,0.33824216574430466,4.8361605685204268,1.3507912307977676,2.7483048476278782,-9.2403261456638575,-2.1615242306143045,-8.7376825883984566,5.7687466591596603,-4.6747760940343142,-8.9617707580327988,-0.48112213611602783,-6.2196672055870295,6.0533052776008844,-2.0980737265199423,-2.3250597808510065,2.7203232981264591,0.47377116046845913,2.6719759590923786,7.9000436328351498,-3.9665228500962257,-5.3494943492114544,-8.9514908008277416,-7.7058813069015741,7.2528928518295288,-0.62970427796244621,-3.4397263824939728,8.5187407582998276,-5.5239303223788738,-0.69689319469034672,7.316149640828371,2.5271489191800356,-6.2080173008143902,1.8532548844814301,7.6549362391233444,-3.4864908829331398,2.5477815140038729,0.56400406174361706,-0.78365160152316093,9.167605321854353,-0.057205585762858391,-1.4542021043598652,-0.77470109798014164,-0.40128155611455441,-4.3390384968370199,-6.2199720367789268,0.93000743538141251,-9.3649480026215315,3.3189249038696289,1.1709635704755783,0.38481640629470348,7.6094218622893095,-8.4466226864606142,-2.3874791897833347,-6.3626831118017435,2.3849684093147516,4.1641522757709026,6.9074097275733948,-7.1645763516426086,4.9652801267802715,-8.5367920808494091,2.1355086099356413,-8.5066978354007006,7.9294920992106199,-9.0261482447385788,-2.4735417030751705,7.18465531244874,-7.4980291817337275,0.62356217764317989,0.20960278809070587,2.7941393386572599,1.099964939057827,7.1108176093548536,-8.4883056581020355,-2.9531838931143284,5.8383635710924864,5.37666330114007,5.5802225973457098,6.8013155180960894,9.7100441250950098,-3.2882352732121944,-5.370184350758791,3.3116530254483223,-1.0474971123039722,-5.283896429464221,-6.4472530968487263,1.017229063436389,-3.431044602766633,-5.5665872897952795,2.3674551025032997,9.8180045560002327,-8.7972722016274929,4.2461166530847549,4.4826998841017485,0.73706544004380703,7.8589348401874304,5.117998793721199,-1.7941556125879288,5.6266834493726492,7.6688558980822563,-9.5387826487421989,1.6800261940807104,-3.7996646761894226,-0.96416419371962547,-4.7075331304222345,0.49071840941905975,7.5043892022222281,6.2694587372243404,-9.2068761400878429,0.032719746232032776,9.9208534322679043,-0.21620796993374825,6.1927258875221014,1.1441183090209961,9.1965069249272346,5.692037483677268,6.0741109680384398,7.5831656157970428,-9.7353576868772507,-2.1566412784159184,-6.6699049528688192,-1.0925168078392744,-1.929919645190239,3.8405864406377077,8.7364161107689142,-7.0542796701192856,-1.2783926445990801,-5.9451095201075077,0.54432728327810764,8.508732570335269,6.2684544734656811,-6.0855371411889791,0.37729866802692413,1.2587947398424149,-3.4367193561047316,-0.94216668978333473,5.0045156944543123,-9.1046058759093285,-1.1109494045376778,8.2734274957329035,-8.5039362031966448,-5.6557554192841053,3.7187020853161812,0.22605527192354202,-0.68896475248038769,0.56947792880237103,-8.784367898479104,1.128739770501852,-9.2705900780856609,9.1925633139908314,-0.58823155239224434,-6.4076273981481791,7.0063474308699369,-4.3185962736606598,-2.647526953369379,3.0145522579550743,5.5799013003706932,1.4012772589921951,-8.7330188881605864,4.1515565942972898,-4.7882088925689459,4.5731833763420582,1.4931202307343483,-5.128192100673914,-9.5245978981256485,0.083129918202757835,-2.8353858552873135,5.6699862517416477,-4.5409443415701389,0.34849395044147968,-2.8620939422398806,-3.2128313649445772,1.9433024898171425,1.0850398242473602,-3.7355871219187975,-4.0127090644091368,-1.6011986695230007,8.6540270503610373,8.2327814027667046,8.3571789879351854,-0.8926061075180769,-2.030777782201767,8.7178768962621689,1.3571419660001993,9.485111441463232,-3.7318508327007294,-1.2168961483985186,7.6265025977045298,-1.3707024324685335,2.6042850315570831,-9.7813759744167328,4.4139996822923422,6.0927730891853571,1.2374358810484409,-2.4150592740625143,-9.9011598061770201,-8.7928616441786289,-1.6256442666053772,-2.2031232994049788,-7.8932320792227983,-1.5515390131622553,3.2838718965649605,-7.9649304691702127,-6.5863794181495905,2.7211458701640368,-5.701260594651103,-1.0867806617170572,-5.5225117225199938,3.1455146428197622,6.6647047456353903,-6.3072096835821867,-5.2731230668723583,-5.3793479315936565,9.2993498593568802,-5.8267627470195293,9.5985434949398041,2.7206728328019381,6.3484004512429237,-2.4334880150854588,0.36698967218399048,7.9955015238374472,0.39425197057425976,6.1929507832974195,4.9239416047930717,-3.3133314456790686,-7.1615551970899105,-4.25817527808249,-7.151853796094656,-1.2067286763340235,-1.4887943305075169,-2.1662462316453457,-8.100353954359889,-2.648896062746644,0.003930944949388504,6.0674700513482094,-4.0307212434709072,-4.3318923003971577,-6.1138484161347151,4.5497004315257072,6.8152665160596371,4.1844670102000237,8.3371514361351728,2.5043306313455105,-9.7149811126291752,0.31244226731359959,-8.7827325519174337,8.6140094418078661,-4.3431658577173948,4.4114736095070839,3.6370677687227726,8.1980956438928843,5.3936293255537748,-9.2718049418181181,8.7743485532701015,-9.5237182546406984,-5.1327020209282637,-5.3228276502341032,-0.7642808835953474,-5.2687383070588112,8.3153102826327085,-4.5799364522099495,5.0080901198089123,-9.0292389132082462,5.5815932992845774,9.8387030139565468,-0.91828917153179646,6.3139651343226433,-1.1878597643226385,-4.3589900061488152,-1.5449891984462738,-6.6333921160548925,-7.4212681874632835,-9.254406513646245,1.1897309776395559,-4.1913712397217751,-4.3763805460184813,6.1722070723772049,-3.7156079895794392,-8.2234316784888506,8.7837935332208872,9.2180598434060812,7.9319385252892971,-7.9090651217848063,-7.6574854739010334,0.6416584737598896,4.354051761329174,-1.4519350044429302,-2.6715527754276991,-0.78743926249444485,5.5083873495459557,-0.53369481116533279,-9.8086171690374613,6.5712414775043726,2.8556421026587486,-5.2230800036340952,-4.3055836949497461,-3.9451164565980434,-5.5722386576235294,7.384915966540575,-1.7172142956405878,-1.220602011308074,5.3420646488666534,4.0806735679507256,3.8807667419314384,4.0467402711510658,-6.4361528307199478,7.5794019736349583,7.0091084577143192,2.0859819184988737,-0.90180120430886745,3.4272303804755211,1.4611097332090139,-3.1286242604255676,-2.7878911979496479,3.9126924984157085,0.62292975373566151,9.5804541651159525,-1.3066936563700438,-1.6002145782113075,5.193649735301733,9.6712201181799173,4.1966801974922419,-6.3958096411079168,5.6273900996893644,-0.45447221957147121,1.6854803636670113,7.8685635980218649,6.9485317915678024,3.9739535190165043,-9.7630965244024992,-8.3632837794721127,-1.7104687821120024,-7.848756080493331,5.9565719775855541,-7.8946478385478258,-5.3462059982120991,6.3158244639635086,-9.9381064716726542,-9.7554689180105925,-0.16610309481620789,8.3053623791784048,8.2256501074880362,8.5014991834759712,4.6969214733690023,1.1593179311603308,4.6565563417971134,2.7425512857735157,-5.9404402785003185,-0.97972898744046688,-6.3050213176757097,-8.4932572580873966,-6.1747248843312263,1.3988989777863026,-8.7047911342233419,-1.4245827589184046,-2.9623620305210352,-8.4185918886214495,8.7261403072625399,0.24029071442782879,-1.4338824711740017,0.73737401515245438,-6.9548432994633913,9.9486897420138121,7.6286501437425613,-5.2768961526453495,-8.7936005461961031,5.9556295163929462,-3.7345931120216846,-7.306384714320302,1.5921274945139885,-1.1131089832633734,-8.0226121563464403,3.957503754645586,-6.2342864368110895,0.3478859830647707,6.9197983480989933,1.0509689152240753,3.634644653648138,7.4728005658835173,-4.640752449631691,2.8736209776252508,-3.0521283019334078,2.8796837758272886,-1.1546788737177849,-6.6877613496035337,-1.2049768678843975,7.9538502916693687,0.36199259571731091,4.0096373111009598,9.9743973091244698,-0.30426922254264355,6.1472526006400585,-3.1254146713763475,-8.8443280197679996,-6.621019197627902,0.53037190809845924,-6.0392581764608622,-1.8121407832950354,3.3499192353338003,2.092692730948329,-8.1131763104349375,1.8457652814686298,1.7771783471107483,9.036572054028511,-2.3333389591425657,3.5721736866980791,-2.4767414480447769,-6.5934584103524685,3.744523860514164,-5.7873687706887722,-8.3068959973752499,5.9989853575825691,4.94703009724617,4.7349613904953003,0.49620537087321281,-0.27624959126114845,-2.9268042277544737,9.2013994790613651,7.9211948532611132,-8.4779609832912683,-9.0902342647314072,0.43271977454423904,-7.2786675859242678,7.4339046608656645,1.6357716079801321,-7.5864936131983995,-6.1981381382793188,7.8923396859318018,6.5532414801418781,0.32968629151582718,1.0375823453068733,-1.3534360472112894,-7.1995778102427721,-3.3042348362505436,5.7251595333218575,2.7563996054232121,6.8082681763917208,6.5633721556514502,-9.4040503352880478,6.1260194703936577,0.0093651097267866135,-2.6005224883556366,-6.9814038835465908,3.5449528507888317,0.022669211030006409,1.001508217304945,-7.6513056550174952,4.5058744959533215,-9.7672329843044281,2.115234611555934,-9.2517887614667416,5.1862918771803379,6.0076986160129309,-8.6092353891581297,4.5808252971619368,9.9308835063129663,8.3592465799301863,-6.1425874289125204,1.5331124514341354,7.0210615079849958,2.9808979108929634,-0.048710033297538757,1.330548245459795,2.5244501139968634,8.433163957670331,-3.8132191728800535,-8.7745901755988598,5.4629282932728529,-4.5640539471060038,-8.0546464677900076,5.5568310711532831,-6.3400653749704361,2.5212715100497007,-4.9896326009184122,-0.75508442707359791,9.296106519177556,-0.33758116886019707,6.2733705807477236,-3.4605220146477222,-0.9934490080922842,3.1025914754718542,5.255030794069171,1.3026753067970276,-5.9360302053391933,-6.8596293311566114,-9.7901441715657711,-2.9530898667871952,7.418664051219821,5.4868451692163944,-2.593119777739048,-2.5640464946627617,6.0706223919987679,8.9506680890917778,-6.1212783213704824,-0.32471692189574242,2.4827694147825241,7.9056519363075495,-9.707766342908144,1.571077024564147,5.091642402112484,-4.7660295851528645,-2.6591967046260834,6.8810427933931351,9.6863606665283442,-1.3361235894262791,3.7709003128111362,-2.4783348105847836,6.6268973611295223,-1.7359213717281818,4.3695700354874134,-0.63630110584199429,5.6873873900622129,7.9199875425547361,-8.7692320346832275,-4.4827972911298275,-2.3740288428962231,-0.3027028776705265,-7.527189115062356,-9.4674375001341105,0.77793940901756287,-5.1722682919353247,9.6868552174419165,6.9757936149835587,2.1634198818355799,0.59804920107126236,-8.5869946517050266,-1.6191001515835524,7.7838179189711809,2.6279033254832029,7.1712902188301086,7.8748422581702471,-7.526027038693428,-9.9364199582487345,-1.410237792879343,-1.8665177002549171,9.437075462192297,8.9274451788514853,3.5712690837681293,2.3195970989763737,5.4685389064252377,9.7335213422775269,-8.7066459003835917,7.4023623671382666,-8.4955593105405569,-4.8653204832226038,8.5586786549538374,5.7122990489006042,6.6102378349751234,-1.7325775790959597,0.56869283318519592,-1.979469945654273,-8.9513138402253389,-4.7317044623196125,-5.7568569760769606,4.5048362761735916,-7.2165928315371275,-9.275697860866785,3.3460580743849277,-2.8018393646925688,9.4858539383858442,8.7472949456423521,-4.21370186842978,0.31274258159101009,-3.7353504914790392,-0.035661263391375542,0.64122416079044342,-2.9454463161528111,-4.1161803714931011,-0.64345763996243477,5.4075183719396591,4.1613977681845427,0.61240070499479771,-7.3812680970877409,3.0271127354353666,-3.3161535859107971,5.406733900308609,-9.0232169348746538,6.7929831985384226,9.6687492541968822,2.6688692159950733,-4.3149876222014427,-1.9969218503683805,-2.2654765099287033,4.1363581549376249,-0.22837933152914047,1.6286514606326818,-7.2548101376742125,8.4060375858098269,0.2738487534224987,2.5760791730135679,-3.8372407387942076,7.4949513096362352,7.6467979699373245,-0.26638115756213665,2.9319610260426998,-2.5309340935200453,2.5907486584037542,2.7128003258258104,-5.9648243524134159,9.1971405595541,-3.6584653332829475,-7.8268068563193083,-5.1428171526640654,4.6721531823277473,4.8786502052098513,-4.5258845947682858,-6.5423414297401905,2.8676174115389585,-3.9540635608136654,4.0537807159125805,-8.1073976680636406,-1.0325923375785351,5.2206524927169085,3.5065642092376947,-5.175229636952281,-0.08447050116956234,0.30436444096267223,-4.5467600971460342,2.6030899398028851,-9.867283096536994,0.57299753651022911,-9.6303211245685816,3.1928622629493475,2.4361566361039877,4.4846803229302168,-5.977699151262641,-7.1896037925034761,4.3290813826024532,-1.1290904600173235,3.3767079096287489,-7.6700581796467304,9.3321929033845663,6.1662784777581692,-3.3574977982789278,-9.4654436875134706,-5.7120518572628498,-2.4555314611643553,9.8827912472188473,0.072647612541913986,0.98850281909108162,-6.2330335378646851,1.4053585845977068,-0.13817940838634968,-2.3812395706772804,-1.4934047497808933,0.3464370034635067,2.5667981803417206,0.17711535096168518,-3.2222167402505875,4.2032996471971273,4.8572815954685211,-3.6681086849421263,-9.9026182666420937,6.6947933007031679,-0.608864426612854,6.8156554084271193,-9.2794189602136612,0.80554132349789143,-1.2668914068490267,7.3561934288591146,-4.4569053314626217,-7.2078625112771988,-2.5452051870524883,2.7364795468747616,-7.98815599642694,3.0621837917715311,6.1230905260890722,-9.2174018360674381,3.1273473333567381,1.3267344608902931,-1.5738271735608578,8.6867599003016949,-1.6262093838304281,8.2989514898508787,0.47783313319087029,-9.0584484580904245,-5.3432277590036392,-3.6289091315120459,8.9242765307426453,-9.6841997001320124,-2.3443576507270336,-1.6189758572727442,9.8728324007242918,-7.3056854959577322,-6.6561094764620066,-9.231944726780057,-1.29501698538661,-5.35040526650846,-4.2612778209149837,0.70370879024267197,7.2337213717401028,-2.8447702899575233,7.9457926750183105,4.9376294761896133,6.7387232184410095,-2.278736662119627,1.2729801796376705,-5.022032605484128,-5.3019614145159721,9.9345429893583059,9.8641781508922577,7.2423375025391579,1.966540114954114,-8.3601943124085665,-9.7857958171516657,-9.8702971916645765,9.9151006992906332,3.0976088345050812,1.5117840282618999,8.5542530845850706,-8.6682621669024229,-7.4822287075221539,6.1821323726326227,3.0989134777337313,3.4389227814972401,-2.0247062016278505,-9.2370683420449495,-7.4076187796890736,0.15119004994630814,1.0512488894164562,8.3401709049940109,-6.7474562302231789,-4.496835907921195,1.6789386328309774,-2.0783066097646952,9.9008716735988855,3.9503739215433598,-6.0653914418071508,-1.0339316632598639,2.7106057573109865,-2.8489373996853828,-2.090820549055934,-0.42090608738362789,5.8314643055200577,9.420706769451499,-6.181173836812377,-6.9886454194784164,1.8364583887159824,5.3562317788600922,2.1876274794340134,7.4551422242075205,-1.4245011378079653,-1.5905560273677111,7.5249138381332159,-8.7729853391647339,-7.5645857397466898,2.0074911322444677,-0.09644639678299427,-0.97451322712004185,1.3562624249607325,-5.2973348088562489,7.6939043495804071,-8.5494581237435341,9.2573255859315395,7.8712734580039978,-7.5068514607846737,-7.652481896802783,4.7367788013070822,-8.9585710968822241,-6.7044171504676342,-1.1390221212059259,-3.5447217617183924,3.8614013139158487,-1.4280085358768702,-0.53939539939165115,-5.618403535336256,-8.5081841051578522,2.9497562814503908,-3.4460763167589903,1.7953955195844173,-4.787410032004118,-2.0003671012818813,-0.16980864107608795,6.0262463614344597,3.1227220501750708,3.5895999893546104,-9.5928725600242615,-7.4091131426393986,-4.9645680654793978,0.50456289201974869,0.18860838375985622,9.9411855824291706,1.5062399487942457,-4.6250905655324459,6.1029071547091007,-8.4393247775733471,0.26847553439438343,-7.7316130697727203,-5.2208459191024303,-6.7573249526321888,9.6395464800298214,-8.142156433314085,-5.2231601718813181,-5.652971426025033,-9.4907231815159321,9.4154922384768724,6.1782040260732174,-2.9248071741312742,2.7658797428011894,6.1409371625632048,-9.2689824756234884,-3.7884620856493711,7.3177750967442989,9.8461865074932575,4.8567867558449507,8.0151217523962259,-9.8485664837062359,-4.8568904679268599,-9.7580541949719191,-3.6168530024588108,-8.4483623690903187,8.3736748341470957,-3.6469186935573816,6.2375670950859785,-5.2097058109939098,0.47447211109101772,-5.5471469182521105,9.1017797775566578,-6.3871291093528271,-8.4789126180112362,-5.0843590125441551,7.1781146340072155,2.5727881956845522,0.85130326449871063,7.8540513478219509,3.0411425698548555,-7.5167263858020306,6.3796532526612282,2.8323456645011902,3.2336836960166693,8.5219825152307749,8.9602784346789122,-4.6001999638974667,4.4392490293830633,-9.5414501521736383,-3.1527039967477322,-7.4960197508335114,-5.6039326637983322,-5.2962460555136204,5.9925817884504795,-2.6777563523501158,-5.0509566441178322,8.5717210359871387,4.915597178041935,-3.5581119172275066,-1.1869424302130938,-8.9413556177169085,2.6361413113772869,5.627119205892086,-5.0073842704296112,0.89260595850646496,2.0284298621118069,-8.1792133487761021,-8.0387386307120323,-7.0801510289311409,3.9016795996576548,-4.470859756693244,-1.7398874741047621,-2.2887126356363297,-6.3932067900896072,9.3735071830451488,0.53537705913186073,-1.9176847208291292,9.4729602709412575,-7.9565738886594772,-6.1373307090252638,9.8828036338090897,0.28082903474569321,-0.1063325721770525,-7.1314631495624781,1.4988677483052015,-8.5296642407774925,1.9331167545169592,9.8933865502476692,-1.8520942982286215,-8.1488065607845783,3.0081473756581545,-2.0669555105268955,0.67879665642976761,8.5354881826788187,-4.0499686542898417,-7.823126083239913,-3.2800639793276787,-8.0352479685097933,-8.4125913679599762,9.5768911112099886,-1.1909406818449497,3.8600291684269905,-4.4896577764302492,2.3217946570366621,2.4028972443193197,5.4940823372453451,-0.95803665928542614,-1.7220618482679129,-2.6934190560132265,-8.294017231091857,2.4524103850126266,-2.3385616391897202,-4.2054099030792713,-0.32419570721685886,-8.7571754679083824,-1.8480794131755829,-0.67063344642519951,8.6637389380484819,-8.5395221505314112,-3.7487725540995598,-5.6202678289264441,0.15863350592553616,6.153413588181138,0.42230297811329365,-2.3537652846425772,0.26692084968090057,6.1388009320944548,-5.1726079825311899,3.9776753727346659,-7.2099010553210974,3.1929850485175848,4.4998136814683676,8.3686579111963511,-7.9663427639752626,9.6771817747503519,4.3942422233521938,-5.9708394668996334,8.1011113431304693,-4.6215143427252769,6.2084839027374983,5.9890801552683115,-1.5297052729874849,-9.7564568091183901,3.230411047115922,-6.4814275782555342,6.6467197891324759,-8.5803737677633762,9.6580963023006916,3.6247066128998995,0.44414963573217392,4.8230094835162163,0.32050546258687973,6.7353904619812965,1.7076254915446043,0.061728013679385185,-2.5371953472495079,-2.6421428192406893,-6.494305394589901,-9.7907394357025623,7.0423057768493891,0.033324882388114929,0.091376816853880882,-4.2297601606696844,-9.5789752155542374,6.1635554675012827,-9.1231312043964863,7.5338545627892017,1.4937740191817284,5.8600303344428539,9.5299550984054804,9.9554917402565479,1.9498346652835608,-9.1286870557814837,-5.8433397021144629,-9.0103409066796303,3.2003891747444868,8.9409632328897715,-9.2307965829968452,-1.9981644116342068,-3.1492037139832973,-8.6667673010379076,-2.3580181133002043,8.7896295636892319,7.3042239714413881,2.0924234390258789,7.360834339633584,-6.4571179077029228,-4.780647037550807,-8.334719268605113,-1.6267344169318676,-0.52527984604239464,-8.378298282623291,5.9407766349613667,6.6330285463482141,1.3109086453914642,-7.5583083834499121,7.5110184587538242,-2.3126266803592443,-8.3165566343814135,3.6326591204851866,-5.898055313155055,-8.6156160943210125,-2.6596864219754934,-1.3496366981416941,-3.3439179696142673,-1.2292632181197405,-0.22683830000460148,7.528768302872777,-3.9909964334219694,3.3229904994368553,9.5014282967895269,-9.4944632332772017,6.5564422588795424,-5.8748254366219044,1.8089189752936363,2.5013101752847433,-0.47978615388274193,-3.7658138014376163,7.967488020658493,9.5713038183748722,4.9034285917878151,-8.0755411833524704,-5.6206535454839468,-6.3241046760231256,-9.2272611521184444,-2.57817761041224,8.568959878757596,-1.4911723975092173,-2.1344183478504419,6.8308892287313938,6.7553990054875612,-2.0087836403399706,-1.6265806555747986,2.0589872822165489,5.3993465844541788,6.8181654345244169,-7.0934103243052959,1.0527021437883377,-7.2349828481674194,1.6432924848049879,-1.1831167619675398,-4.6433493867516518,-0.77310121618211269,6.4879318326711655,2.6704407390207052,2.0975998789072037,-5.6387405283749104,9.6879737265408039,5.774576049298048,-6.7002159915864468,9.469855222851038,-0.14311716891825199,-5.3701808676123619,3.3701942674815655,2.8551581967622042,6.643913583829999,4.255733685567975,6.1161649040877819,-5.6163308676332235,6.3271419890224934,0.27553727850317955,-9.0448797773569822,2.7055894304066896,-7.158343717455864,9.7171629499644041,-3.6421456374228001,6.4583215862512589,5.0110289268195629,0.36329053342342377,5.824076347053051,5.2512887585908175,-1.5897150058299303,1.6599628329277039,-1.0045757330954075,-3.9042757358402014,0.83775543607771397,0.15569897368550301,-3.1672697886824608,7.6967150811105967,-1.3094932772219181,-8.6534422542899847,1.5960426814854145,4.6894384734332561,-4.6074620448052883,2.3854551557451487,-7.6551004592329264,0.72660001926124096,-8.0333923269063234,2.7751770708709955,2.4011301063001156,-4.2062063608318567,6.2897388357669115,-8.3592597767710686,5.9209446422755718,-6.683272672817111,-5.7637860812246799,8.047366002574563,-7.9194534849375486,-2.2547050658613443,5.1720186788588762,6.1180543154478073,6.1390058696269989,-1.7282228730618954,-6.2417628150433302,-5.3076030220836401,-4.8839554376900196,-4.6390012186020613,-7.6934390887618065,-3.6307467706501484,-1.9609244726598263,2.7424509171396494,-7.6273359078913927,7.3654146306216717,-9.4761672336608171,-5.9426920395344496,1.1749232932925224,6.9358778186142445,-8.7013700045645237,-3.9256565552204847,1.4903239440172911,7.8746170178055763,8.6883581429719925,5.235455185174942,-7.704583527520299,9.0646709222346544,9.9243391957134008,-1.6309817135334015,8.090406134724617,-4.5439521037042141,9.7970357351005077,-1.2202452309429646,-8.6615277454257011,5.7031930983066559,-6.4334738627076149,-7.3951826151460409,9.1658076178282499,9.7287828288972378,-8.3468403201550245,-5.3452479094266891,2.4184226896613836,6.4302423223853111,-6.9171590823680162,3.3073267620056868,6.240993170067668,-7.6276635657995939,1.8584681674838066,-4.7254162933677435,-0.071601355448365211,-3.4039033204317093,-9.4030548725277185,2.8567620925605297,-6.3994097150862217,5.1209467183798552,7.7516141440719366,1.3790583424270153,-2.1663497760891914,-9.8406254220753908,8.6085324175655842,3.6044876556843519,0.62413555569946766,9.8463677801191807,7.903435779735446,-6.9547098688781261,-7.8087424021214247,-1.5335353091359138,5.8721256069839001,-7.1847992017865181,5.0798375997692347,-3.1693426612764597,-7.1420546155422926,3.4880989417433739,4.4790194369852543,-1.1202092748135328,-7.357212295755744,7.3329659085720778,5.1581610180437565,-6.7876511067152023,-0.052125426009297371,3.9280429109930992,-1.3826859369874001,1.1975244898349047,6.7941882833838463,9.9226102605462074,9.3108049128204584,6.6983208991587162,-1.3205171562731266,6.068222438916564,8.6146566178649664,6.5339221339672804,-4.3705650139600039,3.9138544257730246,0.15144285745918751,5.3001847583800554,0.20535383373498917,-8.6180365458130836,-3.3402146678417921,1.0121296998113394,-9.136049086228013,-9.5769854728132486,-0.39483826607465744,3.9533372502774,3.7392746098339558,5.9884750004857779,8.2994582876563072,8.9955838490277529,8.7778992671519518,-9.8468700144439936,3.6556684318929911,0.81944169476628304,-7.643351387232542,-1.8067467771470547,-5.9930193889886141,-4.6768393740057945,-3.6393172573298216,-6.0050941631197929,-7.617568289861083,-8.4702290501445532,0.86036618798971176,0.17460653558373451,-5.3878768160939217,5.9543879982084036,-4.6007892489433289,-5.4648647364228964,-7.9815895669162273,-6.5758353658020496,-0.064966240897774696,8.1124669779092073,6.232639467343688,-8.028345312923193,7.600341122597456,-1.0666147619485855,-6.5942341554909945,-9.2934246826916933,5.411363523453474,8.7868592888116837,0.74421408586204052,8.0062251631170511,0.62645742669701576,8.8700536545366049,-1.0080805234611034,-2.8092874400317669,4.3060516566038132,-8.1896954961121082,-4.2121889907866716,5.7396771386265755,6.7537920735776424,-9.0164882596582174,-0.11817238293588161,-6.1231626663357019,8.0050972290337086,1.6692692786455154,-4.5911424793303013,-3.3316077757626772,5.6681649386882782,4.8482471518218517,4.4899968709796667,3.3775239530950785,6.0451843589544296,1.4136465173214674,-0.8428940549492836,-6.5203098673373461,-6.8479131069034338,7.1244369354099035,0.41170745156705379,-0.43278003111481667,6.2660919222980738,-5.7929346337914467,-1.8523572105914354,7.4324253480881453,-3.2270382530987263,3.1681331712752581,6.8143126741051674,8.1532452721148729,-8.406569492071867,-9.2134407814592123,9.7007921617478132,1.2140166759490967,3.9783604349941015,4.3039403390139341,-3.6746102478355169,0.82561412826180458,-3.9032615814357996,-2.1173514798283577,-6.3262597844004631,-5.4481676686555147,-7.3539714701473713,1.8015219364315271,-1.8207220360636711,-0.87519611231982708,-9.4209883455187082,1.4488813932985067,-8.6503332294523716,-6.1505768448114395,7.2549993731081486,-5.2254011295735836,-3.3167473785579205,-4.5731391198933125,-0.74914557859301567,9.1103329788893461,-2.6334742456674576,-0.80158928409218788,7.6889742445200682,8.5902660805732012,-3.3978383149951696,-7.4685084540396929,-3.2215672358870506,-4.8804805055260658,-6.2358163110911846,-5.3647110518068075,-4.6986114419996738,-9.5624641980975866,3.6642259918153286,4.6463513746857643,-8.772331029176712,3.432402228936553,8.3843668550252914,-3.9461237099021673,-2.5011449493467808,3.2568950112909079,-1.3654414843767881,-8.9749603439122438,-2.1584921143949032,2.223094729706645,3.5532178357243538,-1.0677289124578238,-5.319761773571372,-9.236091785132885,9.0053732413798571,-6.6917833872139454,-8.8033630140125751,1.8778328504413366,0.73681032285094261,3.5711801797151566,0.82538668066263199,-7.7259733807295561,9.5654078666120768,5.8101672679185867,-8.5186043567955494,7.8165869228541851,-6.6234481520950794,-0.29306584037840366,-5.5575032718479633,-4.9574551824480295,0.05078805610537529,-6.4050623774528503,-9.8833497148007154,-9.4586557429283857,8.372932830825448,3.8822314701974392,8.6644282471388578,3.0456957314163446,9.0082600060850382,1.8260710313916206,-9.2240828461945057,-9.160389918833971,1.3266407232731581,-3.149275304749608,-9.8699933104217052,-4.9775672424584627,2.0273953024297953,-5.5670579336583614,-5.5426563043147326,4.575528260320425,0.9035852737724781,6.5577816218137741,-3.3641525916755199,-1.3125563599169254,-0.13467313721776009,-3.4513400122523308,-6.6715346742421389,-8.4832439385354519,2.1191368997097015,-3.6660317331552505,5.0047104246914387,-5.8317747805267572,5.3612963017076254,7.307063015177846,9.8082315362989902,6.9475855957716703,8.0712407641112804,-6.6563361510634422,6.9583352375775576,8.7404706794768572,1.0908566322177649,-5.9724955167621374,0.26788129471242428,2.2810005862265825,-3.2230511773377657,-9.8210844770073891,-2.9668036662042141,-3.0691628530621529,-3.4200171753764153,-0.2286150585860014,-2.3332131840288639,5.6860760226845741,5.8798360172659159,2.404066463932395,5.1451563835144043,-5.3565437439829111,-7.430668780580163,-7.2501751035451889,6.3070562295615673,2.6941778603941202,1.0473989881575108,3.634880417957902,-8.5647086706012487,-7.0586155634373426,5.8482483215630054,-8.4903354570269585,2.9319855570793152,-2.118640961125493,-7.9985719546675682,8.0011735577136278,-4.2758746258914471,-4.6247925609350204,-8.8885295670479536,-9.5164246764034033,-2.5495325308293104,-9.9931873381137848,4.5004083681851625,-1.6364424303174019,-3.6878608912229538,-1.8779493868350983,-2.6952809747308493,0.41271486319601536,-3.5012127738445997,-4.8830391466617584,-9.2388978973031044,1.8430459778755903,-3.926157159730792,-6.9233360607177019,-0.50914840772747993,2.7427855972200632,-2.0023677963763475,6.204508887603879,-0.81899922341108322,-4.9198760185390711,-8.3562038280069828,-2.7177244517952204,3.2051956653594971,9.7236510366201401,5.4031268320977688,-9.6472123824059963,-0.69850834086537361,0.1703878678381443,3.7089743465185165,-3.2680507749319077,-6.1293215956538916,4.4919721316546202,-3.4242698643356562,8.2964415661990643,-1.7064537014812231,-0.36729589104652405,6.8580345623195171,2.9870208352804184,2.8592801932245493,-4.0776918362826109,6.23335394077003,3.9798095636069775,8.6594449449330568,-0.70866447873413563,9.4761786237359047,6.134281549602747,-1.1298695579171181,-9.7175904922187328,-3.5434005130082369,6.0676283948123455,-1.3694426417350769,3.7775878980755806,9.9199107754975557,3.9405596815049648,8.9866761490702629,-0.93381398357450962,5.3884490113705397,3.6626545339822769,-1.7651404347270727,-6.7152220103889704,-2.7363029029220343,-9.042832562699914,-2.886873809620738,0.3119373694062233,2.7314483094960451,7.45183733291924,3.0301909521222115,8.4194342885166407,5.4322312492877245,-0.48927244730293751,-3.2019473891705275,4.8702834080904722,-5.1466438453644514,0.35692893899977207,-1.0952411778271198,-7.7184060495346785,-3.2504566758871078,9.5747011806815863,2.0028969086706638,2.6884379610419273,4.5769105292856693,4.1353797819465399,3.3281057979911566,-4.5257488545030355,-4.2609547916799784,6.1328611429780722,-5.002643708139658,0.567236403003335,-6.4576920215040445,5.5702222976833582,-1.2737209815531969,-7.4284686706960201,9.7270717285573483,2.8946962486952543,-8.8400472607463598,5.3256977070122957,9.0014816913753748,7.9029356501996517,4.6396130137145519,-2.0239639282226562,3.238320779055357,6.4574371837079525,-9.8531246185302734,-1.4654624927788973,9.9719506502151489,-1.4252655301243067,5.5623023025691509,5.6149210687726736,9.978525061160326,9.0708592720329762,-6.0680656880140305,-5.9799876809120178,-5.6529216282069683,-8.6537712533026934,-3.9334437251091003,-9.3886404298245907,5.1203007157891989,-3.1057513970881701,1.6363230906426907,1.6822754964232445,-5.9956401865929365,-8.7245847284793854,5.9044784214347601,-3.431046474725008,-5.5980492942035198,-6.4144532289355993,-7.7153906598687172,7.429197458550334,2.5218222569674253,4.2667708452790976,-8.3822917379438877,-1.1772269662469625,-5.6535526644438505,0.74040270410478115,3.9483319409191608,-0.38495981134474277,9.9805259704589844,2.7001418732106686,1.2845624424517155,9.6410585939884186,-2.7280571218580008,9.5440098363906145,6.1734731681644917,-2.4363360833376646,-7.50049346126616,-0.79358394257724285,2.2347491513937712,-0.57091677561402321,4.6018260437995195,2.8904324118047953,-0.50235391594469547,-3.0621909536421299,-6.2433035671710968,8.7969759479165077,-9.2250962555408478,-6.1927608121186495,-1.7309394851326942,8.1001380831003189,-0.97909567877650261,4.3389973975718021,5.5293732043355703,-7.8244331944733858,-5.248682489618659,5.3934341575950384,7.4480071663856506,-1.3434180058538914,1.1736433580517769,5.4240062180906534,1.2726281583309174,9.0615452826023102,-2.6082861237227917,2.5351764354854822,8.7104493007063866,-3.4784565959125757,-2.4199564661830664,7.7917321771383286,-4.3571595940738916,9.2187465541064739,-0.52651472389698029,-9.1328903939574957,3.5111555363982916,-8.0087940115481615,-3.800936508923769,-2.3398569691926241,-5.976021271198988,1.0105264466255903,3.9180746022611856,-8.9200508687645197,0.70505712181329727,9.8951300885528326,7.4515540059655905,-1.7316851578652859,-4.4323835335671902,4.9299949035048485,-1.5755399502813816,-0.099878450855612755,1.342953946441412,-8.9729333855211735,-8.0914024170488119,7.7995915897190571,7.7359877061098814,-1.2544846069067717,-4.1227198392152786,9.4477082975208759,7.6335086300969124,-3.620315957814455,-6.6502530593425035,9.196857837960124,-8.4101671632379293,-9.6795000974088907,-3.3581346459686756,-0.16894281841814518,0.57812778279185295,-3.4062718320637941,-9.2106298916041851,-3.0565820168703794,8.0260967928916216,-5.3910607937723398,-7.5587248615920544,0.51127032376825809,-7.0795861631631851,-6.6046214289963245,-3.8723305705934763,-2.259852010756731,-1.3326842151582241,1.5764636639505625,-4.3751093838363886,7.5366298761218786,8.1384652201086283,3.1850963179022074,-8.0860818270593882,-2.7772524114698172,2.7187769487500191,-5.515722818672657,-2.753378339111805,3.9703112561255693,9.0213910304009914,2.5191968120634556,0.14091832563281059,8.4143782686442137,0.45570521615445614,-0.96235026605427265,5.7791491504758596,-9.8401044588536024,-2.6356387045234442,2.8203507047146559,1.6343944706022739,9.2679584585130215,6.5779630187898874,-4.1754134558141232,3.8260937109589577,5.1571082882583141,-4.4808806199580431,9.8394635505974293,-8.1359498389065266,-0.90892791748046875,3.6485620494931936,1.3824726454913616,-4.7821581456810236,6.2680863682180643,7.7277179528027773,-0.24422850459814072,-4.7484004311263561,-6.366004841402173,6.5566589869558811,-2.2322766575962305,2.1262765675783157,-3.6696338094770908,4.4646136555820704,-3.2381774298846722,-4.0480111539363861,5.0765823666006327,2.1199534460902214,-9.9423367064446211,-0.85302476771175861,3.2128006499260664,-2.4593732878565788,5.3132100030779839,-0.87935842573642731,0.62301002442836761,-9.070436293259263,-6.8227735348045826,9.6452253963798285,7.3033906985074282,8.0876052286475897,8.3812194317579269,3.1551334075629711,8.3272838592529297,-3.3400341030210257,4.0468826424330473,-4.0433186944574118,3.9427488669753075,5.7803163677453995,9.777316190302372,7.3533651884645224,8.0088583286851645,4.8820711486041546,-7.0300889387726784,5.2952292840927839,-3.0813025496900082,-7.451898492872715,-4.0579497721046209,-1.9617732614278793,8.4768580831587315,-9.4460517447441816,0.2083304151892662,1.4093679748475552,7.2476425487548113,-8.8715480919927359,-4.1087732929736376,3.8473110925406218,1.7576406989246607,0.66731884144246578,-4.3721483927220106,-2.6979924365878105,-5.15882458537817,-4.3647685647010803,1.3347771670669317,-6.4000643976032734,-5.8823023457080126,-3.855492090806365,0.74447790160775185,-7.559823589399457,2.044952055439353,9.5092900283634663,2.6376593858003616,-8.8586039468646049,-6.5565260220319033,4.4671746529638767,-0.19549441523849964,-5.6745601817965508,7.667058389633894,0.25049284100532532,-9.9667409993708134,8.9840238261967897,-5.5114045366644859,9.8239874001592398,-8.2436103746294975,9.6404473390430212,6.998581001535058,5.1510258298367262,-6.7087593581527472,5.8814932778477669,-9.7423549182713032,0.24089062586426735,8.6488290410488844,0.86983885616064072,-0.61825944110751152,8.9136467222124338,-8.3393917512148619,-0.15714967623353004,-1.2145314272493124,7.3703709710389376,-6.1749538034200668,-2.4485441483557224,7.3185576777905226,2.9990261606872082,4.6327843982726336,3.2074962835758924,8.3901414182037115,-6.8930403236299753,8.6713050585240126,-1.3757352624088526,-1.9824878126382828,0.32739573158323765,2.5401415396481752,-7.8410449903458357,-4.4431358482688665,4.2158416286110878,-4.3496366776525974,-4.343597088009119,-2.8362139035016298,-8.247020086273551,-7.6665762811899185,7.8524602949619293,-3.6996828578412533,-0.56974243372678757,4.3389901518821716,5.4075948987156153,5.4475832916796207,-2.467495845630765,8.7973814271390438,-2.410206962376833,-8.348357267677784,9.1594150569289923,2.2890117485076189,-8.579446654766798,5.240084445104003,-9.9006118625402451,0.41642705909907818,-1.1103362031280994,-1.42049640417099,5.7170022372156382,5.6567238830029964,-7.4415758345276117,9.4349691085517406,-6.4740404672920704,-9.1981061827391386,7.429392971098423,5.8078016526997089,-8.2774993591010571,0.068285064771771431,7.6671624090522528,1.9987472053617239,-7.0556255802512169,-3.8991042412817478,7.7550645172595978,-0.63051946461200714,2.8594315890222788,-1.5331826638430357,-8.2009649462997913,6.3821616116911173,4.9903358984738588,-7.4244370311498642,-2.5131623819470406,1.2799052055925131,-8.6331213265657425,3.1298751011490822,3.8109277654439211,-9.7369380947202444,-8.7185559049248695,7.2309159487485886,-9.9955145269632339,5.3873453568667173,5.113533278927207,3.1539372075349092,8.2227499783039093,-0.24097203277051449,9.983121594414115,6.3247937057167292,0.80793973989784718,-0.95670695416629314,0.62629209831357002,6.091379513964057,-2.1843828726559877,7.0771204307675362,5.1632135547697544,-1.8696663156151772,-3.4817029163241386,3.0191363487392664,2.6247151475399733,-6.4124164916574955,6.516052782535553,-4.7007546667009592,-5.5836417712271214,-4.2672144528478384,0.92673584818840027,-4.3505139835178852,0.91152322478592396,-0.029075630009174347,-8.6740355286747217,-4.5151200611144304,-5.6228242255747318,-2.8067249804735184,7.3733094707131386,3.2124102395027876,-9.0210012719035149,4.0316307730972767,-0.38148674182593822,8.3524054009467363,-1.1222826596349478,-2.2045910079032183,7.4389911722391844,7.1247682999819517,5.980951813980937,1.8572626449167728,-4.986634086817503,9.6409420855343342,-4.6862147096544504,-1.2105835787951946,-6.2781400233507156,3.3006566669791937,-5.8632939867675304,-4.382003229111433,-8.3282277081161737,7.4769227672368288,4.6410857234150171,2.7278680168092251,7.277858117595315,-1.0384823568165302,6.2270991131663322,-1.1450780183076859,-5.3261843975633383,2.8188667260110378,-3.3068356104195118,2.0139480568468571,8.4250854421406984,0.41117025539278984,-9.4614361319690943,1.6429342050105333,-7.2047252673655748,-9.8175467364490032,-3.5079980734735727,1.0764299333095551,-8.4420241788029671,-5.1003609504550695,-1.7664559558033943,-8.8251847494393587,-4.8800746351480484,0.58564713224768639,2.9714345280081034,0.90021374635398388,9.8925202712416649,3.5883544385433197,9.4731549359858036,-4.6848384849727154,1.9196246564388275,3.1316940486431122,-5.6180216837674379,-2.0904047880321741,6.5667894389480352,8.0302300490438938,4.0765753854066133,-4.9973873049020767,8.911605654284358,-2.6436204370111227,8.6713727191090584,-0.23856380954384804,-9.5418706070631742,9.7807106655091047,4.4043100159615278,3.2385509926825762,-9.6733623743057251,-0.20142240449786186,-5.3062757104635239,-2.575829029083252,8.0415662936866283,-5.395160811021924,3.5322851873934269,7.1172504220157862,-0.37202321924269199,7.4058295320719481,9.777081748470664,3.4131013229489326,3.9940397720783949,7.8265588358044624,0.9744928777217865,-1.6981182433664799,-0.27325129136443138,7.4656221549957991,-5.2883042953908443,-0.53025576286017895,7.9914677143096924,-7.401984790340066,-5.1583509147167206,3.5962142422795296,1.5728763956576586,-4.6663276106119156,-6.9681098125874996,6.9784035626798868,6.0288108326494694,6.2237897794693708,3.2349505089223385,9.8133070301264524,-7.7485895995050669,9.4546187296509743,3.7771414965391159,2.4172401521354914,6.5553341154009104,-4.4993928913027048,-1.2962810788303614,-6.5960237849503756,0.62827297486364841,-0.61602829024195671,6.4125993382185698,-3.4427941124886274,-3.0405972804874182,-3.3184386882930994,7.0010181423276663,6.1120511498302221,5.2438012883067131,-7.4316281266510487,-3.3739045262336731,-5.2133205533027649,-0.27850190177559853,-0.78138706274330616,7.227708613499999,-3.9011980779469013,-7.4360483232885599,2.3358505498617887,-1.3597119320183992,7.3216261807829142,-5.4286440182477236,0.78002108260989189,9.8144197836518288,-9.0465410891920328,-5.2160785906016827,-6.6328348033130169,1.9454870652407408,-2.1988010127097368,4.7514404356479645,-2.5404826179146767,2.1086990833282471,0.90558825992047787,0.22196982987225056,-9.3529893364757299,4.3082269094884396,8.3697797451168299,-9.1116800531744957,-0.0066467560827732086,8.2880487199872732,-2.7650200482457876,8.3081057481467724,-5.6665476132184267,2.3342985473573208,-7.4442180339246988,5.0275238230824471,-2.4069878458976746,5.7553334161639214,9.888848764821887,1.8813460133969784,-0.21745985373854637,5.1523147709667683,-5.0455257762223482,-0.15168219804763794,-9.3226255103945732,-5.366947902366519,-2.2933588176965714,-4.481588713824749,-2.0614700671285391,-7.1273561008274555,-9.473964124917984,-8.9150433801114559,4.8659189511090517,1.4999276306480169,9.2837782949209213,-7.5380463432520628,8.0551282223314047,2.5401740241795778,-7.295077471062541,-8.3670349791646004,-4.7568820416927338,-8.9164336957037449,1.4988847821950912,-8.2433756534010172,-6.4145929645746946,9.9360724445432425,-4.4302685372531414,0.47673797234892845,-7.4648167379200459,-1.1748943850398064,-6.4498602971434593,-2.8019863087683916,7.0161648560315371,0.68286849185824394,-3.0291737336665392,8.6771128140389919,-3.7647882755845785,5.2035010419785976,-4.757868479937315,-5.4955012816935778,-2.890006173402071,7.6662992686033249,7.4919456709176302,-2.8689719922840595,1.1877814866602421,3.0435338523238897,-7.3264419101178646,4.4908375665545464,-2.4929055105894804,1.7371422704309225,-3.8497690111398697,-3.0677220970392227,0.79476931132376194,-2.312100101262331,0.53365824744105339,9.1942471731454134,7.7123892679810524,2.1265655755996704,1.1877240054309368,2.0774468313902617,-4.3510103039443493,-7.4301341827958822,1.7348098568618298,-3.0506438855081797,7.8282706439495087,9.7448523808270693,1.7341190855950117,5.3395634237676859,2.0425833109766245,9.6978018246591091,-9.044578792527318,7.7642414625734091,-6.3935995008796453,2.7732169348746538,9.4571243971586227,5.8898953162133694,-8.5292960423976183,8.1214269250631332,-3.1775286421179771,-4.7238346841186285,6.5105053037405014,2.062769178301096,8.9616741053760052,-1.1431625485420227,6.8671159632503986,-4.381873644888401,-6.1503056716173887,-8.187392745167017,-5.5098538380116224,-4.1134203225374222,5.7446851767599583,-9.0761109720915556,-2.1971007157117128,-6.6716678999364376,9.2776318080723286,9.157949136570096,-2.3487117327749729,5.2019671257585287,9.4616015907377005,1.1380878370255232,7.8423640504479408,6.6127355117350817,0.24587574414908886,-7.566287899389863,-6.6007059998810291,1.9342865981161594,9.5549479313194752,-9.9899652693420649,-1.3462817575782537,-6.9574318919330835,6.4422160852700472,-5.6741261854767799,-5.0387654546648264,-6.5309577248990536,-5.8064552303403616,-9.0930235106498003,-6.4461363945156336,-0.21435481496155262,-2.6612984761595726,-8.4434313792735338,-8.7511792685836554,-1.0699573159217834,-2.772538810968399,1.9402606133371592,9.9602217972278595,1.4479022193700075,-5.1073094550520182,1.4500272274017334,-9.392299447208643,3.6231955140829086,-4.9528881907463074,-3.1917823757976294,-4.286336749792099,-0.4617090430110693,0.056188758462667465,4.3645421788096428,-5.1394883263856173,0.61973647214472294,-4.0890295524150133,-4.3196411803364754,-0.20927346311509609,2.7409820444881916,7.6853214204311371,7.1972515899688005,4.2076071910560131,-2.7458287309855223,-9.1434249002486467,6.4577082172036171,-5.2978646568953991,-1.2112516444176435,2.4936810508370399,-8.7024808023124933,-2.5948343146592379,8.6197314690798521,-8.1730534508824348,-4.5093346852809191,-8.388012545183301,2.6731657143682241,7.8962605632841587,-7.5485728215426207,-8.8633924815803766,-7.0374290272593498,1.9303620327264071,3.5947773978114128,-2.5761685892939568,2.3345778323709965,-2.7502748090773821,-3.8686594273895025,-0.55894815362989902,5.7584558241069317,2.3671590909361839,4.8429381474852562,-4.7384390514343977,1.0549037158489227,9.7668387833982706,-8.7404127232730389,-0.1166301965713501,-0.20363642834126949,-2.5173744652420282,-9.5125787612050772,2.0887642353773117,5.8605985902249813,-0.91936996206641197,8.149118609726429,2.2366157080978155,-9.199698232114315,0.67181911319494247,-8.7360810115933418,-7.3135519586503506,1.1322519835084677,9.7591739427298307,2.436610097065568,-7.8940012864768505,5.5203946586698294,1.2731497269123793,-2.1724515594542027,7.6067015063017607,5.8323542028665543,4.3772114813327789,7.793479273095727,5.0062821712344885,0.58456937782466412,4.8576159309595823,1.9510679133236408,-8.4014872368425131,-3.7959771044552326,1.0128539707511663,3.0367725994437933,-0.96281912177801132,-2.1009089983999729,-9.9774742871522903,8.5896559990942478,6.3485222589224577,-0.38626634515821934,8.0216121580451727,-0.76431869529187679,-5.9042394906282425,7.4469130579382181,0.26790130883455276,2.6173779368400574,-9.7289167810231447,6.095663458108902,9.8158663976937532,-4.7332988772541285,7.4458112008869648,1.7489898391067982,-4.7276821825653315,1.8455988820642233,-1.0194964427500963,5.3233569767326117,9.6608278620988131,9.5340321585536003,-1.5213583130389452,-9.4691008888185024,-7.1786342188715935,8.6947054974734783,-8.0845576524734497,2.8395498637109995,4.314659871160984,-3.5114333685487509,3.3394255768507719,5.725774522870779,-6.9074710365384817,6.1343130934983492,-0.59971130453050137,0.6521783210337162,1.1611249763518572,-4.9724351055920124,8.2832196541130543,-3.9271302334964275,-3.2777868490666151,-9.7635196521878242,4.5252075232565403,-4.8370429500937462,3.8191781751811504,8.9276984147727489,7.8274052124470472,-4.8004548810422421,-1.2451449874788523,-7.1517360396683216,0.77240358106791973,1.7870713118463755,-4.6923695504665375,-4.6549931541085243,3.5301007237285376,-9.5970304030925035,2.7100183721631765,7.2788804117590189,-3.856784338131547,-0.97432290203869343,4.5550560671836138,-3.172564934939146,-1.29880809225142,-9.067538371309638,1.8826006911695004,0.86990947835147381,0.56868772022426128,-2.0654034800827503,6.7637723404914141,-1.2781421653926373,-1.7353054974228144,-5.2794305048882961,8.6115412786602974,-5.8255838975310326,9.4114668574184179,-1.4763754513114691,6.5578565094619989,-2.1055158879607916,-7.4054671730846167,-3.686757730320096,-3.3371240831911564,-7.0444140490144491,4.5331013388931751,7.83431651070714,-8.6422649677842855,9.4526970665901899,-8.5202495753765106,0.16539822332561016,-0.15198101289570332,5.6551933288574219,6.8344006221741438,5.7713886257261038,-0.27124399319291115,1.2022825423628092,6.7627771571278572,1.9958110339939594,3.5961422137916088,0.36229359917342663,9.0686023980379105,-3.9993469417095184,2.9759976454079151,-2.4074720777571201,-2.3831514455378056,6.3737144507467747,3.0189018417149782,-1.3166444096714258,-8.8425253890454769,3.6757953651249409,-0.90719131752848625,-7.1644025389105082,7.8865507151931524,9.2580102290958166,-0.621928870677948,7.2415439039468765,8.6285285651683807,-0.32025942578911781,-2.6000934839248657,0.22887358441948891,6.6784133855253458,4.0939010493457317,6.1950466502457857,0.1491774246096611,7.2250548377633095,-8.5032069031149149,6.6015910543501377,-7.0590196084231138,-0.94253575429320335,-1.1983515229076147,-0.6939766276627779,-3.6651082988828421,0.52487025037407875,1.4943804033100605,-3.9484716113656759,-1.9623248651623726,-0.79394588246941566,-3.8483746163547039,0.36787106655538082,2.8090967331081629,-7.5111064035445452,0.83469510078430176,8.7206436693668365,7.8582975547760725,-5.5928571149706841,0.85050317458808422,-5.5930597800761461,-2.5556892529129982,6.5307845454663038,2.895985022187233,-7.1796311717480421,-8.0610814969986677,-2.5967048853635788,-2.818950368091464,1.9012196827679873,-6.2006985768675804,4.8590483143925667,6.0251362808048725,4.4655968993902206,-6.7127987369894981,-2.0083468593657017,5.7143971789628267,1.8735098093748093,8.0794590804725885,-8.5310930013656616,-2.080062460154295,0.39029416628181934,-0.32586598768830299,3.1704206299036741,5.2596298605203629,-1.4008148107677698,-3.4944572765380144,8.6566041316837072,-8.4542127791792154,-9.9541675671935081,0.30569853261113167,-2.1246817521750927,-9.5261471718549728,-5.9555136598646641,5.6819503009319305,-3.4611695073544979,8.1241410598158836,2.4389341659843922,-8.8333749491721392,-2.5327616091817617,-8.1243070773780346,-5.2290348149836063,-4.3880980927497149,9.235399067401886,-0.64772363752126694,-6.2911026272922754,5.4381721187382936,-0.64107954502105713,5.3761600703001022,-2.877578129991889,-3.4555750340223312,2.1504544001072645,2.6871976908296347,3.7316890619695187,-1.5018280129879713,-1.2233477830886841,-0.80612168647348881,-8.4871126059442759,-2.9015562683343887,-6.4561463426798582,-8.4515536855906248,-5.2627816051244736,8.4295997396111488,-3.7170321214944124,7.8411832079291344,6.7663152888417244,1.461190776899457,-1.7665229551494122,-9.951242757961154,9.4629673194140196,4.0918897092342377,-7.6095466129481792,6.3500948809087276,6.0447913873940706,-5.1910264976322651,-5.5823080707341433,-1.851710258051753,-1.6942433081567287,4.8527848068624735,0.75436517596244812,-1.3844034355133772,-7.6684732455760241,-4.0298201516270638,-9.1872416716068983,-9.9707683362066746,1.2965735979378223,-8.4874510485678911,-8.5897614434361458,-8.1205687951296568,-2.3997250385582447,7.8213364258408546,-6.7985514178872108,-3.2536553777754307,-4.1858814749866724,7.8900953941047192,8.8334287237375975,3.4367072489112616,0.73883760720491409,-2.3562516644597054,-1.5216647554188967,5.380522022023797,-9.5662554726004601,-0.055724605917930603,3.4366261586546898,-0.6240463349968195,-8.3466789126396179,-2.6324717979878187,-3.9534511230885983,-5.6529784295707941,-9.6084317751228809,-8.9128414262086153,1.8741582147777081,-1.0227913036942482,9.9466290604323149,-7.0052252057939768,3.1799896527081728,6.0861962102353573,-9.3001686781644821,-7.9349684342741966,-3.0144586879760027,-4.0071141440421343,-7.5673720147460699,-4.821432800963521,6.1789547279477119,9.6922392304986715,-2.5350988935679197,-7.4070457741618156,9.781693946570158,0.93031481839716434,-4.1987616568803787,-8.5871217865496874,-3.7558554857969284,-4.6631009224802256,7.2628376353532076,6.5122724790126085,-8.236316004768014,-7.7630783338099718,5.9424611553549767,-5.0552371796220541,-3.371239211410284,-0.41737429797649384,5.1902488991618156,-7.4866329040378332,-7.8391984943300486,6.5909226983785629,-6.3620785064995289,-7.4534302670508623,-9.8024783935397863,9.7456413134932518,-5.0062895845621824,-0.70900865830481052,3.6915525794029236,3.9243091735988855,-4.1356103494763374,-7.203097753226757,-2.4639165960252285,8.953829575330019,7.0138209033757448,1.2880561873316765,8.3604288194328547,-6.2726880982518196,-5.0688381493091583,8.0372631456702948,2.2818304412066936,-9.2756785172969103,3.6711654532700777,1.2778801005333662,-2.6690620742738247,1.0737750492990017,6.9373402278870344,-4.1226573474705219,-9.5019929390400648,0.0046774465590715408,-1.3860773853957653,4.1974510625004768,6.5601185522973537,-4.0873619355261326,3.707995880395174,0.28686908073723316,1.4087204542011023,-3.635236956179142,2.5725273042917252,-3.5334983747452497,-7.5071337353438139,7.6033295784145594,9.1603621747344732,-1.7927792854607105,8.7586134858429432,6.0170033667236567,7.7757098712027073,6.3559444155544043,4.3579202238470316,3.5653145611286163,2.2419350501149893,0.20248308777809143,3.133336128666997,1.9804172869771719,4.8734359815716743,7.8386586718261242,4.3364369869232178,2.4965514149516821,-0.46027110889554024,4.2235474474728107,5.1620609872043133,-1.2408693972975016,4.7081081662327051,9.1740649752318859,8.510188776999712,-9.2570800986140966,-3.7452115956693888,-5.7712394651025534,2.7783431112766266,-4.3872287683188915,3.8461347855627537,1.987449312582612,3.0606903880834579,1.0234547313302755,1.2037557363510132,-8.4772514645010233,2.8346480429172516,1.9297577533870935,-6.5613454580307007,3.4669137839227915,8.420071778818965,-3.853469230234623,-5.2573044504970312,0.48413760960102081,-3.0991133861243725,-6.7986265849322081,-4.5169879030436277,2.984356451779604,-1.9210133235901594,-6.4708663523197174,4.1492441762238741,-3.6530194710940123,3.7017989903688431,-3.8642616383731365,-6.6453081183135509,-7.6935182418674231,-4.9610730167478323,-0.75415304861962795,4.9497842043638229,-8.9767602551728487,7.5903993099927902,-8.1586592830717564,-2.5865561794489622,7.7503500133752823,0.1328137144446373,-7.7998220268636942,8.3912117127329111,-8.9046001620590687,0.3850848414003849,-7.8789893072098494,-2.1732696797698736,-6.1434466391801834,7.0923654735088348,1.3866470288485289,5.3767029661685228,6.2468727305531502,-8.8098904397338629,-7.8286112938076258,4.530001962557435,-4.2569015827029943,-5.7448555435985327,6.2129120342433453,0.41268641129136086,-3.9794039353728294,-1.8418946955353022,3.2759159803390503,-1.680014543235302,3.9956369530409575,-5.3296207077801228,5.0648008845746517,4.1085849422961473,-7.012764411047101,-3.531433092430234,7.2040661424398422,-1.260209372267127,-0.33885129727423191,4.9263223167508841,-3.3007055521011353,5.0418382603675127,-1.8242402840405703,-0.0063898880034685135,-7.39476946182549,-3.8903245143592358,-4.6840650215744972,-5.0807760003954172,7.3977998457849026,-5.177855733782053,-4.2212799377739429,-7.0518689416348934,-0.76127898879349232,5.1841076463460922,9.297330966219306,0.24170027114450932,2.2565372753888369,5.6220833770930767,-9.6445589326322079,3.8980220258235931,-5.9437032137066126,4.1801189724355936,-4.7403192985802889,9.453589916229248,6.4858743082731962,8.0896281637251377,2.3806892987340689,-7.7548592817038298,4.0800699684768915,-6.2639296147972345,2.1349933370947838,2.8331115189939737,-3.8945998344570398,3.4606300573796034,2.809479720890522,-1.074230745434761,5.4039313271641731,3.8739361986517906,9.2457993142306805,-5.8507751021534204,6.0228905733674765,6.7219919804483652,-3.4806537348777056,0.65272892825305462,-9.5848194789141417,7.9390211310237646,-8.8717104867100716,-6.8381413072347641,-8.6409259494394064,-8.042421592399478,-8.9796881377696991,-1.6185235138982534,-2.5246324948966503,8.5017167683690786,8.3538707718253136,3.5062057059258223,8.7994051910936832,-8.3968061581254005,-5.1210870686918497,9.8896746709942818,-4.2376489378511906,-2.165653370320797,1.8638663273304701,6.0014562867581844,6.4759367704391479,1.069429712370038,-6.0947375651448965,5.7457731664180756,9.2097312118858099,7.9526284988969564,-0.17267853952944279,-2.2081369627267122,7.8421284258365631,2.6525926683098078,2.125075301155448,-3.8593185879290104,-3.5674592666327953,1.7121560405939817,-3.7933340761810541,5.4342301934957504,-6.8930171243846416,9.0612147748470306,-8.1631299667060375,2.2746639419347048,-9.7230318374931812,5.0039094127714634,0.70561787113547325,-0.68035604432225227,5.2560360077768564,-1.8026978988200426,2.0564786810427904,3.237286638468504,9.0766363311558962,-8.9730329625308514,-9.7649932187050581,-0.24102494120597839,9.093889519572258,1.0013048816472292,8.9312319364398718,7.2153038997203112,7.6127773243933916,7.9486289154738188,-7.3936771601438522,-5.5320101417601109,3.5055823996663094,-1.676503112539649,3.0122526828199625,6.9309419859200716,8.3420898579061031,5.5043853726238012,-7.7949209697544575,-9.2367214057594538,-1.5766606293618679,1.0648682340979576,-2.7595029212534428,1.0344591550529003,6.1551053263247013,8.8553459662944078,-8.2001969218254089,-0.70965103805065155,-7.1049238089472055,7.5455656740814447,-1.6775783989578485,4.9399138428270817,5.132073312997818,-5.2437100186944008,8.9657530188560486,7.4111363384872675,-1.031422782689333,4.8773615248501301,-6.1847354099154472,-6.8480045907199383,5.5868684314191341,-1.5021511539816856,-6.6543784644454718,-0.13882575556635857,6.7556033656001091,1.4258967712521553,5.0471238512545824,7.0106857921928167,8.5962425079196692,-2.9520238563418388,5.3351016156375408,7.0529740303754807,-0.66533802077174187,-2.3360420577228069,-1.8588041700422764,-0.92162218876183033,-9.7040554694831371,3.9397267065942287,-5.0131331756711006,4.2707555182278156,-1.4118934608995914,-9.6933301258832216,4.2005766741931438,-0.90772570110857487,3.8542126212269068,-2.2483666148036718,-8.2976343389600515,1.659678416326642,-5.7847655471414328,-4.5545178186148405,-7.7809348423033953,5.8281227666884661,-6.7405363917350769,-8.1951103825122118,4.7798152361065149,-5.6452110875397921,0.93728579580783844,-7.037544259801507,-0.0063513033092021942,-6.7462765052914619,-4.6691989712417126,4.7729320544749498,-1.3308448251336813,-7.508908174932003,-2.2196765895932913,-6.1043804045766592,3.6785707622766495,5.7389086298644543,-6.1625346913933754,6.2794717773795128,-0.91771017760038376,-3.9548838511109352,-9.7328383103013039,0.18652085214853287,-5.14395821839571,5.4942614212632179,2.0518284291028976,5.0805022474378347,8.0013907048851252,-0.62628211453557014,-5.9234256390482187,4.985316414386034,8.2130938582122326,-2.5313824880868196,-4.9454188253730536,2.345841508358717,6.5583276003599167,5.8121088333427906,4.1132857371121645,-8.0065059009939432,-5.3446624055504799,-7.7410136535763741,-3.2164579816162586,0.99075606092810631,-8.3627979643642902,6.4546257350593805,2.8948579169809818,-6.1228883825242519,-7.3850147426128387,0.057241367176175117,2.0557368360459805,-9.2309022229164839,-3.7736545410007238,-3.8118218723684549,-5.2901604678481817,8.2730537280440331,5.2141502406448126,-5.7767864130437374,9.5507890172302723,0.11116559617221355,8.3602539915591478,-9.2110201716423035,-9.6160186175256968,3.5750982444733381,6.6763010993599892,8.5927074495702982,-2.3657495621591806,-1.1528314650058746,4.3616368807852268,6.0311677493155003,5.8364882040768862,-6.1426301393657923,0.81527786329388618,2.3751330189406872,-1.1392538156360388,-7.4388100486248732,-4.0804671961814165,-0.41211989708244801,-6.4990352280437946,-9.2850503325462341,6.1590664833784103,-4.5694873947650194,0.62539868056774139,-8.9242925401777029,9.4152856431901455,2.7059570420533419,-0.97989477217197418,-9.0913653001189232,1.4234080072492361,3.2184672355651855,-7.2210684046149254,-4.4966546166688204,4.725900711491704,8.2133732829242945,2.1649086475372314,5.6197343580424786,-9.1245221346616745,4.1564895864576101,-1.8794096168130636,-7.2373662237077951,1.5858997590839863,-5.782658401876688,-9.1397273354232311,8.6026802659034729,5.2473746240139008,-7.3745748680084944,-4.4797860737890005,8.2355010230094194,-5.9341635648161173,4.5129979494959116,9.9566507525742054,1.4293546974658966,3.1644897535443306,5.5793908424675465,-7.1779887191951275,-0.45638143084943295,9.5973663963377476,2.9371766187250614,5.1275321561843157,-1.5669326204806566,4.5635135751217604,-1.0272289533168077,-4.6369481738656759,6.8120838049799204,-9.3073581252247095,-8.7680052313953638,-3.8639144226908684,-0.80965414643287659,-7.8571671713143587,4.5913684833794832,7.1302143484354019,-2.4873117823153734,-4.2490665800869465,5.9380334801971912,0.5288264062255621,7.9854918271303177,-7.8387206606566906,-5.3781267441809177,9.8238467145711184,9.3918869365006685,9.443893525749445,3.5186394397169352,-2.2268308792263269,-6.3465263228863478,-6.0678801592439413,-2.8618056420236826,1.632630368694663,-0.38130231201648712,-8.5478827822953463,-4.2659106757491827,2.8393175546079874,0.4102407768368721,-5.083182230591774,6.9562889169901609,-5.6520394422113895,6.1731287743896246,-8.2245622575283051,9.7821516077965498,8.6222270503640175,-6.2298187892884016,-4.5643620658665895,6.7668015137314796,9.6331724990159273,4.7303446102887392,2.9019804019480944,-6.4152834843844175,-1.6694939974695444,0.81444972194731236,8.4565613977611065,9.4275566097348928,8.9440918527543545,3.3519174996763468,-4.3224784452468157,-7.8951848298311234,5.6285814940929413,-0.43070646934211254,1.1164446547627449,4.085399592295289,3.3110579382628202,8.9508725516498089,-2.6848761085420847,-4.7126990184187889,-6.3323611859232187,-7.9944231081753969,-2.2691634111106396,2.170609962195158,1.4417298603802919,-8.8461470417678356,2.806678032502532,-8.1622075010091066,-2.22145508043468,4.0045240055769682,4.0350713301450014,-2.5560444127768278,0.56161271408200264,-0.97503176890313625,-7.3588693235069513,-0.51669951528310776,-4.1686791460961103,-2.9903628025203943,0.97243289463222027,3.679745951667428,5.4903167299926281,-4.246597783640027,7.4310953821986914,-5.5797749664634466,0.72217323817312717,-2.4343021120876074,6.68446134775877,5.7420023530721664,5.8336712792515755,6.5133142936974764,9.2734634038060904,-0.90042139403522015,6.6177016589790583,3.7119125109165907,6.1136782821267843,-7.408986184746027,-2.8307867515832186,2.9671222437173128,8.4236516337841749,-3.6868468020111322,-4.8341519944369793,-7.5925300735980272,-7.6529281213879585,-2.7629178017377853,3.6405628267675638,6.9395362306386232,-7.214439082890749,6.9223556481301785,4.0315105579793453,-2.401942228898406,-9.442981630563736,-8.1922605261206627,-7.3226483631879091,8.2489808462560177,0.62122584320604801,0.94282988458871841,6.1419559177011251,7.8532351274043322,9.3229260016232729,-9.582539489492774,6.25880335457623,-8.2918923906981945,-1.8353971000760794,-7.5189970806241035,8.216085359454155,7.746778903529048,0.11317050084471703,2.0566868409514427,6.7358302231878042,9.0986920893192291,1.7180946562439203,-3.9830208010971546,-2.6305569522082806,8.2293619029223919,-9.1143549140542746,-4.9630335811525583,6.2946409825235605,-5.9688792005181313,1.0473084356635809,2.1129646524786949,-7.4029909912496805,-2.0695696119219065,-3.25640550814569,9.5926773641258478,4.1286121960729361,9.5852899644523859,-0.031414171680808067,-7.9779054224491119,-4.6564192790538073,-0.43878124095499516,5.4037580918520689,0.96237030811607838,-5.442145699635148,-6.1427380982786417,-0.99918758496642113,6.6543299052864313,-0.67715151235461235,-0.88539518415927887,-0.83678883500397205,-3.9098781999200583,6.6771415993571281,2.7189909107983112,-1.9196626730263233,-3.7704823166131973,9.5037534274160862,9.584007216617465,-1.5905570425093174,7.5078523531556129,4.4746365025639534,5.2158118691295385,2.1502035390585661,-1.5290239546447992,1.6944605764001608,-1.2010009214282036,-5.2224175818264484,6.8277396261692047,-6.1799712758511305,-6.7772033344954252,-4.4564176443964243,0.98869401030242443,-3.0196828488260508,8.1904144026339054,-3.7049925699830055,-9.8100744374096394,2.078931936994195,0.60915959067642689,-1.8546764738857746,8.4525671415030956,2.29609165340662,-9.5874849613755941,3.1402573827654123,-1.6940650250762701,7.8491885401308537,1.3119336683303118,9.6692521497607231,-8.8789650332182646,-8.7653045263141394,1.5268358960747719,1.530995536595583,-8.5579261928796768,6.9344875495880842,7.9323784541338682,-0.5151810310781002,1.3524848967790604,-8.7862509861588478,9.4796851184219122,5.0679377652704716,-3.1698611751198769,4.1432832088321447,-3.8389984704554081,-2.0472447294741869,-8.042106032371521,-3.6760707478970289,-3.7210104148834944,0.97800618968904018,-2.6498839817941189,3.3999755047261715,3.3884127996861935,9.0540290996432304,-8.9327731728553772,6.8812921643257141,-6.122462060302496,-0.21981716156005859,5.5330421961843967,-6.1596871633082628,-5.8621236681938171,-4.7124589513987303,-2.2975547797977924,4.9968762136995792,2.4986410140991211,-5.3403782192617655,4.2633053287863731,-6.627227459102869,-3.8118787482380867,-6.2460732087492943,2.2476099245250225,-4.4199026562273502,-5.3038995433598757,-2.6395884994417429,-3.5638525150716305,2.3308295570313931,-5.7475384697318077,1.1209724936634302,0.18478803336620331,5.7325564883649349,7.0770230703055859,3.5268762707710266,-3.7904112879186869,-5.4424674529582262,8.4495537914335728,-8.3492829836905003,-6.3990939687937498,-9.5723053347319365,-1.7357574962079525,7.1238259039819241,-9.8578977584838867,-1.6876257304102182,-3.9255859516561031,2.6769580505788326,-8.3659447077661753,-6.4326906390488148,5.768457418307662,-9.5360470935702324,7.6565019879490137,2.82904963940382,7.8373898565769196,3.0114590842276812,-6.4070695545524359,-3.6179752461612225,-7.3099122848361731,2.304249806329608,7.5265912711620331,-0.58036841452121735,5.7481308560818434,8.835421409457922,-3.0722238309681416,5.1341271307319403,9.2748046480119228,1.6418699827045202,-5.091109573841095,-6.2785691302269697,-3.9113426022231579,2.0649320818483829,5.3135940432548523,5.5752048268914223,2.4676474556326866,-6.2491156067699194,-8.8859736267477274,-6.5587360318750143,7.3235392011702061,6.7234896402806044,1.690515074878931,-7.5130450166761875,8.2524241786450148,-1.5066866669803858,-2.8827454708516598,9.6969270892441273,-3.7462569214403629,-3.3400297071784735,4.1207635682076216,-2.3265986237674952,-3.1430096086114645,-4.5624382700771093,-0.89996263384819031,-5.6719158682972193,-7.8899645991623402,-6.6350016091018915,5.5279821529984474,8.7961669638752937,-2.821691045537591,-4.161346172913909,0.25491752661764622,4.3989501148462296,-6.8453070893883705,-9.0762266609817743,-4.1414838936179876,-5.9197541885077953,6.6913856752216816,2.1191740781068802,-3.0411744117736816,6.9817157741636038,1.6971492674201727,3.9878290705382824,3.4432980045676231,-8.4903320204466581,2.9897441621869802,8.630235530436039,8.3687058370560408,-7.1608528401702642,7.5463374704122543,-8.7059974577277899,-1.6992619074881077,0.50518580712378025,-9.342057453468442,8.0403846967965364,-5.2542597521096468,-8.3436165656894445,8.8363934122025967,-6.7357736919075251,-8.1484143435955048,9.6001416724175215,9.5812417101114988,-8.0704249069094658,0.36860466934740543,-4.8612411320209503,-2.8796656616032124,1.4592811558395624,6.1384758725762367,9.3641166854649782,2.7092841546982527,-5.0611125212162733,-2.1181054320186377,1.0020657442510128,1.7190497275441885,-7.9311374481767416,1.372924679890275,-5.2548160776495934,2.3062200751155615,0.64089877530932426,-8.414200097322464,2.5389767065644264,-7.4183946382254362,-0.95866445451974869,7.7265836391597986,0.69136208854615688,-0.27729413472115993,-0.48244616948068142,-8.4726959746330976,-0.60123370960354805,-4.934883750975132,-0.59116300195455551,4.3234997801482677,5.0609170459210873,-1.1670913361012936,4.6959832683205605,5.3909056726843119,4.9517612531781197,4.2514991760253906,-5.0532370060682297,-9.7543222736567259,-0.89445143006742001,6.9548861123621464,-9.2289768345654011,8.5863474849611521,-9.2576747946441174,6.2597322184592485,7.3195228911936283,-0.77863216400146484,-6.470708204433322,6.8072357028722763,9.2105897050350904,2.381322868168354,2.8935422003269196,-8.2361381966620684,-4.7746574971824884,-7.6685142517089844,-4.7190102282911539,7.5951344333589077,-8.5754408314824104,-7.4340435769408941,-3.970377566292882,9.8642904963344336,9.1305273491889238,-3.2266924623399973,8.979838453233242,4.1450320277363062,5.5534008610993624,-3.9916057791560888,-6.9182832539081573,4.4133756775408983,-4.3948747683316469,-4.6601874846965075,-3.771013505756855,0.57605748996138573,1.7983165476471186,4.3063086364418268,-3.8706353586167097,6.2315756920725107,-5.9072163049131632,-2.5844046473503113,3.9111500140279531,-5.3016053605824709,-4.0812585409730673,6.2877481803297997,-1.8162057269364595,-4.9695885740220547,-3.8751242216676474,-9.2127456329762936,1.3841527234762907,3.45491255633533,6.715439623221755,6.3938783016055822,1.9127433840185404,7.4781484249979258,5.2407157234847546,0.70928388275206089,0.9343012236058712,2.8007507137954235,-7.7826530579477549,-3.0499275773763657,-0.13273857533931732,9.0628414880484343,-0.82296118140220642,8.4914959874004126,-3.4267950430512428,5.8557628747075796,-2.193240700289607,-1.7963886726647615,8.0956427194178104,3.4673268720507622,-4.6371560450643301,3.3183925691992044,-7.7759852353483438,9.0161668974906206,-5.2828050497919321,-8.1044349353760481,8.7620559614151716,3.8746903371065855,1.920604333281517,-0.40287724696099758,8.842185428366065,-9.3893579859286547,-6.9396647252142429,5.0549872685223818,-0.82886012271046638,9.3479893729090691,-8.3424580935388803,8.3068348560482264,-7.0264311227947474,6.7721424531191587,-0.60165916569530964,7.9144757054746151,-1.4066778868436813,-2.0351769309490919,-5.2186161279678345,-9.2812253348529339,-9.5541972480714321,2.606855146586895,-6.5854526497423649,-1.70265750028193,3.4354576934129,-0.26244166307151318,9.1430449578911066,7.1567570883780718,3.6165186390280724,2.8288727067410946,4.8636825941503048,3.9134762063622475,-6.2052907794713974,7.6778991147875786,2.4505605828016996,6.5718125831335783,-7.5457855779677629,-2.018189700320363,0.28576917946338654,2.9226797353476286,1.4784131199121475,7.6893961895257235,-4.318104200065136,5.6227539665997028,1.6260389052331448,8.8359712343662977,6.1686834041029215,-2.9379007034003735,2.7029332146048546,8.1986372731626034,-5.503207528963685,7.5910958927124739,3.5488064866513014,4.7907271794974804,-2.248178431764245,-5.1348419953137636,-1.2893771659582853,9.4380399025976658,5.1367950811982155,-5.8849518373608589,-8.3854983188211918,4.9297682009637356,-5.3857295587658882,2.0433419290930033,2.4478965159505606,1.7968409974128008,-0.49326416105031967,9.7093196213245392,4.5350298471748829,0.24675521999597549,7.2150626592338085,3.5582484677433968,3.482103468850255,3.7131064757704735,6.1806455906480551,-1.8894313462078571,4.3274277541786432,-8.9216233883053064,-5.7242788095027208,-7.9539178498089314,-1.4972857292741537,-4.8811853677034378,1.9175650645047426,8.5161323938518763,-9.3627116177231073,0.90584591031074524,4.552299939095974,-9.4948097225278616,0.73299742303788662,-0.51222700625658035,-8.9992198999971151,-9.8888514190912247,-1.9257998000830412,-6.9171768054366112,3.0094551481306553,-0.087223555892705917,-5.9662263095378876,5.6344471592456102,-1.8464722018688917,6.341766994446516,6.0780035518109798,-6.9941788818687201,8.8355559483170509,-0.81102922558784485,9.0318774525076151,-1.2355067580938339,-5.1620146911591291,2.0191235467791557,-4.5904552191495895,8.2191740814596415,-0.34107032231986523,7.6311683561652899,-2.9532999452203512,3.8878758251667023,3.5291022621095181,-6.3781748432666063,2.0154375582933426,-6.5408637281507254,7.7033480349928141,-9.8294373229146004,-3.3530848938971758,4.7022402845323086,-9.4474228005856276,-2.8350051213055849,-7.9310177080333233,3.385397270321846,-1.6279729455709457,-1.3412306923419237,-2.0641784276813269,7.353228060528636,5.7041491102427244,9.6342187467962503,2.314631063491106,2.0043804682791233,7.62262430973351,-6.5530883893370628,2.2434673830866814,5.9564033523201942,9.2712673172354698,2.1899515949189663,6.5165511984378099,3.6761214025318623,4.5725193805992603,-9.6666562184691429,-7.4910612031817436,-2.2656222432851791,1.6870176326483488,-6.2945566140115261,7.3870173003524542,-6.4000969007611275,-6.4285829197615385,-5.1931044831871986,-0.50701131112873554,-1.3390318490564823,-5.1082193106412888,6.1580843292176723,-1.0765523836016655,6.3841586373746395,-1.4456534199416637,2.9030379839241505,-8.6405032034963369,-0.93733052723109722,6.2858997471630573,7.1171780209988356,-1.5888671111315489,-4.0894709620624781,8.2615868654102087,-7.5094101298600435,9.3439669255167246,4.0522685460746288,6.4775638468563557,8.4157030656933784,2.7215692307800055,1.4141612779349089,7.8086875751614571,0.61221511103212833,9.4994541630148888,-2.6737296022474766,2.6266323588788509,5.810154490172863,-8.7333599291741848,-1.5803197212517262,-0.43348918668925762,-5.6526858173310757,-4.690497862175107,6.8024719692766666,9.1465191263705492,5.5471067503094673,-9.776725871488452,2.5682796351611614,5.075926510617137,-8.9030180685222149,6.9753309246152639,-5.6130171380937099,2.0209943875670433,6.8527659121900797,-5.5631819274276495,-0.39861955679953098,0.40118400938808918,2.6997271832078695,-5.685132434591651,9.9792055785655975,0.50831531174480915,3.2555267307907343,-4.3621318601071835,5.6498712953180075,-2.6130171120166779,3.0214561428874731,1.6134954150766134,-1.982467919588089,0.66173822619020939,1.8344510160386562,-8.3816808182746172,9.0904999151825905,4.0322238765656948,9.5868032518774271,5.4024075902998447,-1.7355092894285917,-8.704562745988369,2.4139383062720299,-8.9387893304228783,5.7677318807691336,-1.7301565129309893,1.2595518864691257,9.2886439990252256,-5.7601574249565601,9.0341919288039207,-2.3361036274582148,-2.8936067130416632,7.1520295180380344,4.1602438967674971,1.219283789396286,-7.4972638115286827,-6.5128607768565416,-1.6510493401437998,-9.1861944552510977,7.6297969557344913,-6.0024269949644804,-2.7904730848968029,0.51891855895519257,1.4643026795238256,-9.4647755194455385,5.5178488604724407,-1.5140805952250957,-7.152497535571456,7.9739419277757406,-1.9578792061656713,-6.0757550876587629,4.7842724248766899,9.2667606007307768,6.4455672632902861,-9.350877171382308,-0.19261434674263,2.730751046910882,-4.2670549359172583,3.6077369004487991,-4.7658076602965593,1.0706943552941084,-4.8398839309811592,-3.9291876181960106,2.1437484864145517,9.9809062015265226,9.0906854253262281,7.1500928606837988,-8.3891562651842833,3.450663648545742,-4.6959536243230104,-4.8925224877893925,-8.6254123039543629,-7.3045818042010069,-8.1063621118664742,-3.627999322488904,4.2154367920011282,8.84627440944314,-0.6658529955893755,9.0087761729955673,-9.4987116940319538,-4.8474376741796732,9.1150503791868687,-3.3481274079531431,8.0227065831422806,-2.3703160788863897,2.0977218635380268,-3.5885448381304741,7.3269557114690542,4.144778260961175,1.288342671468854,-6.8246322777122259,-1.5946666616946459,-1.5625173225998878,-1.2285749055445194,-8.6583688389509916,-1.2050657533109188,6.4599529281258583,-7.5710081681609154,-5.9342632722109556,2.8372157644480467,5.0854535400867462,-8.7822336982935667,-3.0017576925456524,9.4585161469876766,9.2810347024351358,6.3503947202116251,-8.9158094394952059,-8.0092411115765572,8.6846533045172691,2.9682352486997843,7.1299263834953308,-7.3271385300904512,-7.2172543127089739,-0.39321192540228367,-8.7127550505101681,4.7258761432021856,7.8004540409892797,2.231206214055419,-0.11706464923918247,-7.5054824165999889,-4.6429562754929066,5.8339197095483541,-9.3113176990300417,4.6834377851337194,-5.4610303416848183,-3.5369171760976315,-4.9669280927628279,0.83958432078361511,-9.1062357556074858,-8.5043375007808208,7.5996360741555691,7.0836360659450293,-5.3285059612244368,3.8003462553024292,-7.5803791265934706,-3.4319617226719856,-0.98062154836952686,-1.306292861700058,5.1359414402395487,-0.23209543898701668,-0.82796661183238029,4.3652267102152109,6.3654310069978237,3.7990626879036427,-9.1532964073121548,0.54728892631828785,-1.7149328254163265,-2.8759319335222244,4.2120490409433842,-8.0916576366871595,3.5101151280105114,-5.4949377942830324,6.5805267356336117,-1.0870244447141886,-9.6197725553065538,0.48266593366861343,-7.8335707914084196,1.1757257487624884,0.42274691164493561,5.107425581663847,0.50186925567686558,-5.0833376497030258,4.3441599141806364,-7.7042101044207811,-4.659207034856081,-7.292593028396368,-6.6110070701688528,8.8041981868445873,-7.8409265354275703,-2.4522640369832516,4.7983894869685173,6.5322232898324728,7.0769615937024355,2.4936390016227961,-9.4092019461095333,-0.45710364356637001,-2.540862737223506,-4.279966140165925,6.609126990661025,-0.40253797546029091,-5.4556784499436617,6.4123273547738791,-8.0140198674052954,8.3681040536612272,2.7249736338853836,-1.368035702034831,7.424023449420929,-4.4377492181956768,-5.2510666847229004,5.3222670219838619,-8.658041600137949,4.2948369774967432,3.3251926582306623,6.513111162930727,5.8594446070492268,-0.31436520628631115,-3.5359462536871433,-8.6486351303756237,2.3893743474036455,-1.7852462269365788,-4.6332718338817358,8.6003299430012703,5.7454975880682468,4.5780858863145113,3.8896053750067949,-7.4023535568267107,8.6437907349318266,-3.8089720904827118,2.6061237044632435,1.121199568733573,4.0012387372553349,8.8195666205137968,-9.5436617359519005,-0.32279257662594318,-5.1747596170753241,7.8151535708457232,9.2862046230584383,-6.7587493173778057,5.7002481911331415,4.071471244096756,9.2173096537590027,-4.6764988731592894,2.0834804698824883,-2.9436481185257435,6.106127155944705,5.6792360078543425,-9.0802932810038328,7.5108333583921194,-5.4236084595322609,5.4126564506441355,-9.4829133991152048,0.67450511269271374,-3.592487433925271,1.0637481603771448,-1.5845819562673569,7.931126868352294,-1.5505832713097334,-0.65297477878630161,5.4529660847038031,8.0011065490543842,-5.402089161798358,7.0874936319887638,-0.49439343623816967,-9.2704084608703852,-7.7549961395561695,1.7799000442028046,-5.2198648918420076,9.7308002132922411,5.5593392159789801,-4.1856752708554268,-8.6442317627370358,-3.6032257135957479,0.58548165485262871,0.19025594927370548,-2.3681808076798916,-2.0147749502211809,-2.3225258756428957,5.307668149471283,5.9787079598754644,4.1448066756129265,1.7659077234566212,-0.38879978470504284,5.44209367595613,5.2685326430946589,8.2282519806176424,-7.7688190992921591,9.4574156496673822,-9.215023759752512,3.09567597694695,9.0262470301240683,4.1339841950684786,-0.12752287089824677,-3.2768139243125916,6.5884266886860132,-8.3125134278088808,-8.4131679777055979,-0.11418888345360756,0.82751316018402576,8.0137679446488619,7.3979866877198219,-2.0376033335924149,-5.9991653729230165,-7.9723914060741663,8.0176539719104767,-7.2895530890673399,4.4812532514333725,-3.5764898266643286,9.9355335161089897,6.5119612589478493,6.5330083575099707,0.27159405872225761,4.6814253274351358,0.71559309959411621,6.9733087345957756,0.400035185739398,3.3914481103420258,0.068495320156216621,-8.7990753352642059,-6.0591503884643316,3.8594519160687923,5.8084618300199509,2.8181008622050285,3.8212913926690817,4.4445447530597448,-0.53622228093445301,7.712198393419385,-1.0814631823450327,3.848364120349288,-0.5441209115087986,-5.0400857254862785,-8.7207494303584099,-9.6356660220772028,-6.6388302017003298,1.180826323106885,6.1480999551713467,-8.8839270547032356,7.8380003292113543,-6.72832733951509,-2.997569628059864,-0.15268400311470032,-6.1599632818251848,9.4971524085849524,-1.3593163248151541,-6.0294035449624062,3.8146508857607841,-7.1624549012631178,0.62049667350947857,8.6876747850328684,-6.2497416976839304,0.59131637215614319,-1.7456502839922905,0.85574153810739517,2.4481159262359142,5.4844696633517742,-2.5182468630373478,-4.1749685164541006,-8.6958104558289051,9.5136790815740824,-3.5955232661217451,-9.9594835843890905,-9.0406025107949972,-5.4063914250582457,-5.2206450048834085,-3.3805596735328436,2.9336187336593866,5.3301578294485807,3.9627595152705908,2.0992824248969555,2.6398099306970835,7.2856041416525841,9.148944029584527,6.302455086261034,5.3627623710781336,-8.0527090560644865,-1.8810900393873453,4.5197715517133474,3.8005832768976688,-3.5967571754008532,9.3022031430155039,2.1283757220953703,-8.3891438227146864,3.659784235060215,9.9937455542385578,4.8816865589469671,6.5061126835644245,8.2360018417239189,2.483096569776535,-6.5958540700376034,3.480671513825655,-0.35376163199543953,-5.6716734543442726,-3.8157132919877768,9.3067499529570341,-1.4533895533531904,-7.1181563194841146,5.1467609778046608,1.6118725016713142,-9.2587735317647457,7.7932574227452278,1.2776433303952217,-6.6484577860683203,-0.62998422421514988,-8.1447830516844988,-9.3687351420521736,-0.33152753487229347,8.016797062009573,-1.6916378028690815,8.6435121949762106,-8.4903931245207787,1.9627679884433746,8.2416753843426704,-2.1616725903004408,8.7688361573964357,-2.1705557499080896,-0.53042743355035782,5.1061984244734049,-0.12296165339648724,-6.6164313349872828,-2.3614206537604332,-8.3968679700046778,-6.1599593237042427,9.5636765472590923,-3.2881171070039272,-3.3841648884117603,2.3407722357660532,1.3590630982071161,1.7735804617404938,8.5669126082211733,4.1003516782075167,-5.3892340138554573,3.1439652107656002,0.62340020202100277,-2.5127214938402176,8.6899116169661283,-8.6553073767572641,-9.7510706353932619,-6.2441671080887318,-5.716556254774332,1.8390595261007547,9.0735478233546019,-0.88158360682427883,3.2243914622813463,-7.6525899395346642,2.9209046065807343,-8.3561760745942593,-2.2512728441506624,2.8573689982295036,3.8008538633584976,0.95098947174847126,3.2801373768597841,9.2689968086779118,4.0295142494142056,4.0460996981710196,2.7977370843291283,1.5672764740884304,1.2157905288040638,-6.2084946129471064,-6.1689301300793886,-1.2086662650108337,5.9461527597159147,-3.0104426573961973,3.4903118386864662,1.6711783781647682,7.4950931500643492,-9.9692899454385042,6.143887247890234,0.3131016343832016,2.2992497868835926,3.4912644047290087,-2.3190441355109215,3.8252745755016804,-8.6101013422012329,-9.9732474982738495,-0.37070328369736671,9.5899862516671419,-1.100914916023612,-3.0769239645451307,6.1389820650219917,-2.128306869417429,9.5465072989463806,8.1483263615518808,8.9213006291538477,0.29982226900756359,-0.88704418390989304,-8.5515276528894901,-5.5252507794648409,-2.8898154478520155,-9.1281764023005962,2.7392133511602879,-2.0411073509603739,-4.8911853041499853,-6.1513668671250343,-6.0229056514799595,-6.9752532988786697,6.9178294111043215,7.9590448271483183,7.6665504276752472,-8.2868237979710102,3.3524409029632807,4.4743605982512236,0.57868808507919312,6.0107287112623453,2.3175754863768816,-8.50870406255126,-5.7891676295548677,1.459683021530509,-7.1073674503713846,6.4752842392772436,-9.8976615257561207,-9.9972625821828842,-3.992218729108572,2.779866885393858,1.2228428293019533,-7.6804800890386105,-5.8288383204489946,-5.285619143396616,4.5990938227623701,-3.0300065781921148,-5.3205051273107529,-1.7296380922198296,9.9726487789303064,-9.6918162051588297,9.645042298361659,4.2260623071342707,7.4293073359876871,4.3685323465615511,1.9232611078768969,4.2495333962142467,1.9079016894102097,6.1037871055305004,6.3500086776912212,4.5959739107638597,4.5336324349045753,-3.23955281637609,-7.1641319245100021,-7.5652330461889505,-8.8717882428318262,-8.1449884455651045,7.1792098972946405,0.98087827675044537,5.6212832778692245,-3.0918265972286463,-4.3295655585825443,-7.0082987193018198,-8.4765518922358751,-5.4076408874243498,-6.2203590013086796,-5.5737054161727428,2.7331050205975771,-4.7038191650062799,2.9113351833075285,-9.1894731018692255,-7.4744167737662792,-2.522696927189827,1.0328032355755568,-1.675933338701725,-7.4115584138780832,-6.062241792678833,-8.0977787356823683,0.63280426897108555,-4.4585681892931461,4.8444859124720097,1.2748470902442932,6.3551339693367481,-9.2632493562996387,-7.4319255631417036,-8.37291962467134,-3.6601191200315952,4.3779992405325174,1.0333481524139643,7.4824839644134045,-1.8918732833117247,3.2857908308506012,4.2865980789065361,4.8540239874273539,1.5812729392200708,-3.5456198919564486,8.7665263935923576,-0.99075602367520332,8.3635805919766426,6.6991530638188124,-7.3343257047235966,-8.0120984278619289,0.66173847764730453,1.8386772554367781,2.6487247738987207,-2.8826260939240456,-8.2967048790305853,-2.7188885398209095,3.6403682082891464,3.6685834638774395,-2.1176156401634216,9.2339974548667669,-4.2046255245804787,-7.1411462686955929,-1.2453155964612961,9.9808387830853462,7.9575836844742298,3.1091254949569702,-4.9277036637067795,0.08456377312541008,1.2634138390421867,-5.8035190682858229,0.25505215860903263,6.6617099940776825,3.3600008580833673,-8.4654736332595348,0.78465781174600124,7.7439264114946127,-7.8286631405353546,3.6586140096187592,-9.674233440309763,5.1585712563246489,0.10722368024289608,2.1084729395806789,-2.8952097054570913,0.21053598262369633,-1.5216601360589266,5.4581596050411463,-4.7113970946520567,-4.4509284291416407,-6.7540651559829712,4.4269487913697958,3.7284494563937187,4.050121046602726,-9.6154597867280245,-7.0326325297355652,2.5450959522277117,-4.5722327288240194,-5.5154308676719666,2.1534421294927597,-7.0980344992130995,3.3341944310814142,-2.1940924599766731,3.8880862575024366,7.0658385287970304,-4.4517129473388195,0.060537494719028473,-2.546247523277998,5.2179345954209566,-2.1731356624513865,-3.8910175673663616,3.6677930783480406,4.5983747579157352,4.8846705351024866,-3.3422000426799059,7.6439347770065069,-8.3880647644400597,1.7955166660249233,-2.7513018064200878,-1.1294037755578756,-1.889186380431056,8.4445675648748875,7.847207197919488,8.0115151032805443,9.5344817917793989,6.0356273129582405,0.78837438486516476,-9.7916291374713182,-7.910911850631237,1.3045427855104208,5.4506845399737358,9.6551842521876097,-5.3181196562945843,-1.6370267048478127,6.4922370668500662,-4.9714883789420128,4.1948544699698687,2.9191878717392683,2.7906614262610674,2.6466912683099508,2.9402454569935799,-3.2945030368864536,9.287511520087719,-4.7937309369444847,-8.2358164805918932,0.63242449425160885,9.1585580911487341,7.8859878703951836,-0.20172229036688805,9.6535424795001745,7.0886067673563957,-1.7859273031353951,3.9198804832994938,1.4313917513936758,-2.5987448636442423,2.8951346501708031,-1.471833661198616,2.8917229734361172,1.188115430995822,8.6561363004148006,3.6829470749944448,-0.70840348489582539,-6.1372979264706373,-9.56621996127069,0.5411143135279417,-5.4916500393301249,1.8378242570906878,8.312381561845541,6.197053249925375,-6.1259017419070005,1.9694540835916996,0.61487659811973572,-5.7689323276281357,1.5544026624411345,4.845638070255518,0.63916296698153019,2.4120693188160658,-0.35086152143776417,3.0704847071319818,5.6365750543773174,-6.0829387046396732,4.049221770837903,-4.7295875754207373,9.8216611426323652,-7.3410206474363804,-0.53400065749883652,5.0510234944522381,-7.4480109475553036,1.2800244055688381,-6.6297273244708776,-5.8271160069853067,3.6613032501190901,-4.4761683326214552,9.0388768538832664,-3.5965677816420794,-7.5146559439599514,1.1775693111121655,-8.5925006587058306,5.8414401393383741,-2.9154541622847319,-0.038050077855587006,0.49241944216191769,-3.9063534699380398,5.9172784350812435,-8.3012170158326626,1.4456281904131174,-3.3269141521304846,4.5538973622024059,-2.6469195634126663,-6.7770447302609682,-1.7907562758773565,2.7593355719000101,-3.8469432201236486,4.4253475312143564,-3.1839299853891134,7.6887889020144939,5.4752145893871784,1.9317249394953251,6.5011514723300934,4.8529245890676975,3.1036846991628408,3.6288413777947426,9.9371432512998581,-6.4332193695008755,-3.1179152894765139,-2.8022163733839989,3.1494688615202904,-6.8767415173351765,2.605342585593462,7.9929347150027752,-2.7461041323840618,6.2279037851840258,-7.6209554076194763,-5.3975172434002161,3.927726186811924,-6.7058692499995232,-5.5444589629769325,-5.7217558845877647,-5.5511187855154276,2.3466066550463438,-0.5818520113825798,0.8133183978497982,9.4423972815275192,-1.6287372075021267,5.813819020986557,-7.1435905154794455,-2.3257713112980127,-9.2383689247071743,-9.2665115930140018,-2.2603380493819714,-9.501535389572382,7.6947113499045372,5.0137963239103556,6.8749334570020437,7.0067438948899508,2.3447745107114315,8.6252981331199408,5.3858691081404686,0.30222092755138874,-0.57279001921415329,-6.8817791528999805,-2.0621983893215656,0.63173279166221619,-2.466887328773737,-0.97527574747800827,8.5405827593058348,1.5745807532221079,3.9788099844008684,-8.140482772141695,2.9060631617903709,2.2036612126976252,-3.0659026838839054,-8.6263537686318159,-3.127778647467494,-8.5756742022931576,8.6436931975185871,-5.4482833947986364,-9.2989807575941086,-7.9695873986929655,-4.8553939443081617,-4.6059817261993885,7.2651699744164944,5.7118951342999935,-0.17835485748946667,2.3899870365858078,8.5122208576649427,4.8960996512323618,8.7469548359513283,-9.9299254454672337,7.743038572371006,-2.7505753003060818,-8.9190155081450939,-1.8936369381844997,-6.3559566251933575,-4.5629711076617241,-9.8553639184683561,0.89862342923879623,3.1640605069696903,-1.6349563375115395,1.2889009062200785,2.5576191861182451,5.9057593625038862,-1.9022699166089296,8.5495749209076166,-7.2941591311246157,7.0675043575465679,3.5458708554506302,-4.548426428809762,-5.4029463417828083,-7.3191303666681051,7.3759483825415373,7.5646013580262661,-1.7448381893336773,-5.4953835252672434,-0.91087391600012779,-9.057835079729557,4.9658223520964384,0.57638880796730518,7.3667782731354237,-6.5574274957180023,9.3161064013838768,-4.1995607689023018,-2.0177975483238697,6.8766677845269442,-3.8444133754819632,6.9444464426487684,-4.6885057911276817,0.28321008197963238,-0.088071692734956741,-0.22086222656071186,7.9686347208917141,8.8438946474343538,-0.66251309588551521,5.1424705237150192,9.5022105798125267,3.6533675342798233,2.1482554916292429,5.7301428820937872,6.5115424524992704,-0.50587162375450134,-2.1843061409890652,8.366749556735158,-0.040056211873888969,6.7753249779343605,-7.1129645686596632,-7.5954828690737486,2.7194382902234793,5.5994433257728815,9.8440983425825834,9.7609990835189819,-6.8882486410439014,9.2051143199205399,-9.6434747893363237,2.1192184090614319,-2.2961040586233139,9.3791470024734735,-4.6761777624487877,7.48038818128407,2.8842996433377266,-3.5757935885339975,1.6372077818959951,-3.4487185999751091,-2.6134585123509169,-4.3971592746675014,-3.0558854900300503,-0.26737659238278866,6.2016879860311747,-8.22989197447896,0.20559878088533878,-4.5012097898870707,8.1671043951064348,4.5237107295542955,-9.9936547130346298,-3.3547619264572859,-3.4836459625512362,-9.6376415994018316,0.15764168463647366,9.4838731735944748,-4.543418912217021,-1.241614930331707,-7.8220655396580696,-5.4555079899728298,9.2772480845451355,2.7087078150361776,5.2523467689752579,-3.807734465226531,3.4068913944065571,-0.37622928619384766,-3.2855377439409494,-0.032809870317578316,8.5645875707268715,5.0234464928507805,9.0653229132294655,0.88235185481607914,9.6877090539783239,1.3262242916971445,9.8517591878771782,-1.4831739850342274,-7.7050998155027628,0.38741880096495152,-8.6521308869123459,3.6361942067742348,-6.4838600251823664,5.7645842712372541,5.3679700568318367,-0.52713455632328987,0.44958600774407387,-3.8078860659152269,0.85893861949443817,-3.8185371737927198,1.8457684386521578,1.8302411306649446,0.86277566850185394,0.67074552178382874,-6.7799318674951792,9.6851282007992268,-2.0501751080155373,2.7070217952132225,-3.0845884047448635,-2.6772644277662039,3.2168198376893997,5.091115478426218,6.3779640104621649,-5.5587479844689369,-5.8773402124643326,-0.4569186270236969,0.56871029548346996,-1.685981098562479,3.7157415226101875,-9.5321221463382244,-6.3769098464399576,3.2762392330914736,3.7528944667428732,-5.1025898195803165,0.77294063754379749,-9.1866204887628555,0.46945172362029552,-9.9247991759330034,-6.099749319255352,1.5132217947393656,-7.2812057100236416,4.7756529040634632,4.3984742276370525,5.1564565766602755,4.5658025424927473,-2.5565543305128813,-8.0085746757686138,-0.11456006206572056,-5.4108857735991478,-0.7571609690785408,-5.6043349672108889,7.9422404803335667,5.2358933817595243,-0.33981353044509888,8.7540694046765566,9.644631166011095,-2.6838391087949276,-7.2838442586362362,0.42956635355949402,-0.27821410447359085,4.0556221920996904,2.8422926180064678,-9.58786865696311,-3.3085143566131592,-6.2007392290979624,4.1758062783628702,2.7762313839048147,0.12096927501261234,-6.8693156540393829,7.4118270538747311,-9.4225692562758923,-5.1214857120066881,3.1896764785051346,8.892677454277873,-0.76987809501588345,0.65892930142581463,-5.3751475177705288,-0.10429497808218002,7.1143808122724295,-8.6015541944652796,-6.3213354349136353,-2.684625806286931,-0.50586901605129242,-2.1404784731566906,4.9783631600439548,-8.6502519156783819,-4.783936245366931,-3.6164350621402264,-1.4240394346415997,6.1692890897393227,7.2418577875941992,-6.0960289649665356,4.041216354817152,0.72338529862463474,-2.0632020942866802,3.7624634336680174,-4.2769626341760159,-2.9109478089958429,-4.2997703142464161,-6.2396269291639328,-9.4097690284252167,-9.9880561232566833,-9.2592634819447994,-0.44133525341749191,2.478470616042614,-4.3442585133016109,6.0472111962735653,-4.5212986413389444,-9.4662221055477858,1.2050762306898832,-6.283703101798892,9.8019971419125795,2.1661190968006849,5.9637551382184029,-7.1672670263797045,-0.25689019821584225,2.4465148337185383,-1.4250922854989767,8.4740247204899788,2.9336218535900116,5.3825945034623146,5.265940073877573,4.6549411304295063,-4.4043061789125204,-3.1739051919430494,-3.8245075661689043,1.501383725553751,-6.2436346057802439,3.2332100439816713,0.56131276302039623,-6.0163092613220215,3.8902761321514845,3.8710617739707232,0.93534368090331554,0.32133052125573158,0.60215151868760586,0.36065755411982536,1.5715931728482246,-6.2334533780813217,-5.6508959364145994,5.3920307103544474,3.8602693844586611,-0.45234693214297295,-2.5948138069361448,8.964404771104455,4.7511363681405783,-7.6509452145546675,-9.4362026359885931,5.742301344871521,-9.1411735396832228,4.296325258910656,8.3387383911758661,9.176284009590745,5.8054992649704218,-6.9737299438565969,-7.479142714291811,-1.9515793770551682,-0.19452718086540699,-9.4182520639151335,7.4375663232058287,3.1773305870592594,1.3952798303216696,-9.5318026002496481,-1.0062987357378006,7.1372188348323107,-4.7629088535904884,9.7909386828541756,-3.6934023816138506,4.9862215667963028,3.4259904269129038,0.62121019698679447,0.67986387759447098,6.4722743071615696,-0.4855906218290329,-1.3215066213160753,9.4382834527641535,9.230142729356885,-8.9909971971064806,8.3101161196827888,8.1217668019235134,2.5347817502915859,2.0769752468913794,7.7230690140277147,1.621057465672493,5.1129165012389421,-7.2122453991323709,3.7915985938161612,5.397674199193716,-1.2896136473864317,5.4634965397417545,4.9864644557237625,7.508224630728364,-9.2684943228960037,4.4159208051860332,-1.6189144179224968,-9.0945564303547144,7.7900821063667536,7.9101009294390678,5.0664612464606762,-7.9857128206640482,4.1246388573199511,2.8053855150938034,-9.885547598823905,-6.3984925393015146,0.53592014126479626,7.2098966874182224,-3.2662398740649223,4.306489285081625,-0.83447366952896118,-4.9988920427858829,3.6214760318398476,6.1477737314999104,5.6332316901534796,-2.2748612426221371,6.4071557018905878,5.0660100765526295,4.4314745254814625,-0.20753729157149792,-8.0791828036308289,-6.8253655917942524,6.0805235523730516,-4.6405294165015221,6.6221387963742018,-1.7131192516535521,7.6048023067414761,-6.0874928161501884,7.5082695763558149,-8.5130931623280048,0.44323238544166088,9.4067838415503502,-0.18382318317890167,-9.5161628630012274,1.8507653195410967,5.8128182683140039,-3.9632406923919916,9.8137302044779062,-0.63629827462136745,5.7349717151373625,7.6697394531220198,5.3111269045621157,4.1100047994405031,-3.1492253765463829,-9.0308499988168478,-1.4959225337952375,-1.9699589442461729,-9.0999130997806787,-2.2394609730690718,1.3794863596558571,5.0273357890546322,-5.5672757513821125,-9.2035187873989344,-3.5402535833418369,-1.041924674063921,8.372073108330369,9.4328754860907793,-1.6615531872957945,-5.7243536226451397,-9.2113023344427347,5.6416711863130331,-0.43224922381341457,-4.8126297537237406,-5.8682302385568619,-7.3455870896577835,2.7178048901259899,-1.8531121220439672,-5.2553714346140623,-7.0276644267141819,6.0440034698694944,1.566443657502532,7.2186421602964401,3.7189228553324938,3.9365369360893965,1.3763939216732979,-6.9472694024443626,-2.756822993978858,6.0759968776255846,-0.7203519344329834,-6.954889390617609,9.1740357130765915,8.018379732966423,4.9083129782229662,-5.983658330515027,-7.3455295339226723,3.685144130140543,-3.782497625797987,7.5624518655240536,2.1286413073539734,-3.9254523813724518,4.9218738079071045,1.9332062732428312,-8.6020722147077322,4.9722983408719301,9.4183322042226791,-6.0904916562139988,-2.893235394731164,-6.6072236280888319,-7.6074907369911671,0.9032021090388298,0.11793194338679314,2.0822516828775406,-3.5958713199943304,4.1907749697566032,-5.6449722405523062,4.9515871144831181,1.3247501291334629,5.0755089707672596,4.0793896652758121,2.3022144753485918,-6.6812165360897779,8.7937039043754339,-4.2183320783078671,2.4928051233291626,-3.4241944365203381,9.5641568582504988,4.7844697255641222,-7.4172067362815142,-0.99359647370874882,0.62413685955107212,9.868281614035368,-3.7907574139535427,8.7401922699064016,-3.5883730184286833,-9.7852705512195826,-1.0421526711434126,4.5401261933147907,5.9010448306798935,-1.1394063197076321,9.9980540107935667,-2.7060840837657452,-1.1551387701183558,5.5827598366886377,9.4446971733123064,-2.9744559619575739,8.3187023550271988,-7.5693756900727749,1.5027959644794464,-2.5081349723041058,5.7755791116505861,-9.841747023165226,9.7577828913927078,-0.94278973527252674,-5.4670098423957825,-4.034385671839118,-5.9199399128556252,3.5699165612459183,-0.41224894113838673,-8.6678786762058735,-1.0369005706161261,-7.1878201980143785,-5.6940460205078125,0.16856702044606209,-6.8940077815204859,-7.5887597072869539,-4.284381503239274,-7.5998802110552788,8.8133115693926811,5.3276940155774355,2.5534397643059492,-4.3377830646932125,-5.1199239864945412,9.4375971704721451,-2.3042037524282932,-6.7524068336933851,-7.7016284689307213,-1.2696593347936869,0.83562844432890415,4.4073486328125,-5.6914155650883913,4.3786312732845545,-8.3440773747861385,1.0915749240666628,6.0998355876654387,-0.06315210834145546,-1.397407129406929,-6.2215566169470549,-5.702031459659338,5.9572911355644464,4.1922403126955032,-1.016953457146883,8.0633160285651684,0.15263346023857594,5.3106456808745861,-3.9779217168688774,3.0697517096996307,-6.6829127911478281,0.28474513441324234,5.7115545682609081,-5.9022482763975859,0.91325065121054649,9.003780297935009,6.5356161165982485,4.1002010740339756,-7.9204383585602045,1.1925239488482475,2.750095883384347,0.86161182262003422,1.1099877767264843,-4.4353496097028255,-4.9208467267453671,-4.6708966605365276,-3.7601319327950478,3.4626543428748846,-3.1683539412915707,9.4753621704876423,-7.5878481939435005,-8.964576730504632,-7.6411014888435602,-3.9927045349031687,-5.3850711043924093,-6.8900154065340757,-0.48891328275203705,2.8345312178134918,-0.033721765503287315,-6.7616348154842854,-2.7963185030966997,2.2749748267233372,-4.497991194948554,2.262029554694891,-2.0691782794892788,3.3207186870276928,-8.6809228733181953,-0.27072153985500336],"expected":[-38.260954692959785,8.1897740833900077,10.989047812595524,-61.128347622621163,44.551685968274079,63.248754974508955,123.63443335343018,-9.0847552649080612,2.4247877637950594,-12.404907665895578,-72.36091901730687,16.056629933838273,101.38428977478075,-20.459434340817758,12.205954071008168,26.609027372897533,-183.08344820806059,-24.061340472584334,116.07594128966392,-47.882099040344002,-55.078969757172224,-82.27982025146477,-39.436578089747691,-19.230311447193095,24.139515205122279,-118.52520885201122,-77.087807158474277,-146.63329428789964,35.584046967278901,-220.13411275653536,-55.618261341411852,-136.14610307551155,132.11352592641936,117.65471330295854,-43.214948328924379,-125.64194408052646,112.37768051628673,113.41917432699039,-117.08730672858644,-48.164791811105758,-18.772676111630169,73.411658569845258,-3.1616301307366541,-142.24003517882289,-107.94803443936217,-71.095578608154284,20.392904745830606,-195.6634419728415,-76.284034423722588,-82.207844176172657,-102.64493403560742,6.3715230728144974,-70.093458592269641,67.313016000164794,15.222611522244051,-204.62825737892081,148.97313517149607,218.11389000510351,-44.80292797422068,66.046765714712237,69.758811014126024,-311.47993698845653,-122.69614469286796,-151.9675238018724,-45.313489594903295,24.547594074405854,74.981122505501389,-136.50342618849248,-56.579154706386845,-91.346521783470564,-17.67080841604708,118.96008105345689,27.907883380397791,122.18889661581827,78.216011865298114,-98.001945331088194,-139.76122512687658,178.46978308239167,24.808968753914634,68.002013868067849,67.837343245615131,76.87102662049999,90.756333156805397,-149.86404549383468,24.667627893253858,172.67458372834295,-45.6883767689812,54.906790030697792,116.1860875509341,79.027438913635081,30.434805623620143,1.3330295449120371,54.585559695516906,-243.63238296265592,-64.356477186253272,77.308284525948181,-74.167434769063874,71.334531410632451,-0.85416227291854341,101.19065878591258,43.170407897363674,-46.922001633755563,-29.973563064261416,53.490123397289743,-103.47178310402734,83.174724127944998,-110.80936683244941,0.88679043682585501,-49.657169579785908,1.8815064643708155,12.990630894900789,86.308039691550448,-23.976122798023241,47.868604206139878,58.008204048977611,61.095869965401874,-113.47418471020275,-78.850978663427085,-46.343112368882146,-30.721209761041749,-116.23234247965367,10.233754331749886,100.76713127693088,106.3090913046662,-51.627884314652761,45.40188913701833,29.334339212150823,-173.32727571317031,47.134157592567519,10.870967176226259,36.13055356842132,22.454525844139788,-111.15563648576779,-69.729832340517021,47.847158726703732,-81.978544003915985,-78.12959202470978,154.93695084362506,-38.031715020273722,-73.45379709587634,69.592391783397417,87.958698833876809,60.983613610213887,-2.0633526081326323,92.411992608091793,4.9919400925251551,-21.624443504503077,-177.34338747211427,-19.965311870257615,134.53723181020149,40.325523629503593,-39.660033705520235,109.64385170446363,-22.262935477923165,131.33329666523051,79.167210461750102,-9.2207179261128083,-95.330849232356471,-26.94046718267764,-96.52357842034256,-82.936368317482987,-83.09630901372789,95.183847460055048,63.214831746720435,-1.9280978157667068,-157.5168056152412,-11.356675580281733,13.002217211944735,-87.375787126785326,23.021102054493738,-7.5222715185720546,-128.36624009314312,110.1815109251645,-17.547820463874473,-165.28037382372619,9.4094284290186749,-76.466482188279031,-176.97637005728393,-29.561939994504328,123.54301493689118,175.47850705397482,0.2812124589948084,119.91073754451665,-75.398381990528705,89.964444501133755,-92.228699046379262,73.487057213956675,44.650896601254523,49.859780053496671,-131.10260074980363,120.49966428467675,181.69290148136787,84.094241563006534,26.586999484944958,10.013490199429633,-8.6299542707272536,114.2631718020518,-49.82531845062806,-142.16716364573128,136.00708624104385,-56.303755431929275,-14.757929962972829,6.8770357918945564,136.75678805181224,45.639176159426903,103.29854814935956,190.64354018151749,135.1023913773378,-23.977305143257681,-35.354041908619514,120.90490121268145,85.227597361071844,68.132679977508147,171.32620107111026,-184.33051481756848,7.5537600545394916,109.3666909625811,6.3565776775923339,126.57893305710056,-118.6706166848266,55.49889481888971,21.323993131077458,85.037484524786791,83.824498513237344,-180.04274489122241,-33.772146266085571,-148.56385130602087,189.54414089890969,-204.68420061852376,-114.71869035308049,121.8894146480871,-38.716882141709284,-45.123835062079024,-0.34776654624651826,-3.8047828031896955,144.31130934453844,8.3877470573617998,76.306532420855362,38.486444438594738,54.024100214521638,87.93875362194845,149.03292454730845,-44.291874266279144,-74.476152401640206,-39.429860671527507,51.562450388605534,-28.758316386081415,54.393539383651031,-2.7768686577592447,-33.186013942842969,32.390895875914595,41.416402613992588,130.30755175146095,-103.09348182634544,174.75348865562495,-89.223265047000481,-40.701195164332653,95.999199472636647,124.18375127147456,224.14115435765154,29.776600627736869,71.801925127237894,-76.427387228478281,65.582066353270179,85.350489650236312,92.577732550087973,-186.53966570091166,128.50899261475757,38.408443165506874,-41.056113946165894,-9.0361938782213471,86.139358558873738,-97.8313106083409,73.387626340164957,165.1669592723307,-240.08741523812961,-116.73150370175161,56.633556670821747,59.393137450486016,-52.303452135753609,88.939661208537316,-33.082390110163402,66.174523270008777,-16.249131486288,8.1225733827305362,152.74916277732899,135.27377203375846,94.238583216412351,82.736494920957227,-92.66612381161201,216.08001620770497,-38.658691465747978,104.25299938156846,-95.756785503089958,44.617104900651782,-30.006958518229027,-243.81026613124877,-163.67682898527625,-41.576050630786924,-137.10484126141318,-96.179457284477706,138.58806650124859,-141.98358034370256,66.660270281142147,-6.6637359701965018,-39.783300246763453,-28.681205121471255,4.3721063338322459,88.590907792815131,19.39699422018667,-168.4554420476035,-44.638652086367792,-34.166890820388645,-65.439946568404025,-100.2490559731831,59.983641728324571,-38.134905162701436,82.99650164191938,-122.70778559688532,-32.792853282269483,2.3532497957671268,5.797661623462691,-105.93832214963265,-111.20033090403174,47.752657229251426,-68.278823304714948,109.93627779975414,-86.309293979045364,245.22992274175917,-114.32594067542,70.5390697525701,-65.14237063213254,147.34551250126611,98.559696207599117,149.36167134770511,-16.456815145015291,-57.044628458189038,-25.610722687598948,90.376458223855707,41.274111539019977,54.42108362971409,39.850780707748555,-8.1142718193263139,66.198226376746049,-157.83131082226723,-32.741617432346715,-124.39419771828454,-32.333444168069718,-83.516863213024607,198.58360694151625,-89.792192601588226,-158.10256624592785,-242.9239624868772,-33.575050380433076,-2.7895204458409211,39.559299221805752,165.22432423173814,-124.64646730734869,-174.04793722278711,-86.286288887820291,-113.72228938045659,94.947198052059193,-93.314323878717289,-81.592976269011771,167.3691266773738,-45.755095973114997,219.49383525664001,97.147977154378935,-78.917222294397533,-40.482807119352159,-31.755534620245427,191.53666447974118,-153.12114424725536,219.84813115901693,106.5260202829334,-47.810752561912629,10.747379922071403,28.50345980369466,123.91129500272713,45.416034539109035,33.33317033312251,-117.318299329949,-47.432073801722431,41.855906516439951,-106.47003015582962,82.083025563790969,-59.219823092199604,12.058128014999696,-5.4206258390533151,-127.11916276240576,106.33520365316761,76.584221334457951,64.388267336141354,207.29821272959884,68.858804882724939,-59.037712425503791,9.2923980435176574,-78.385500477805977,-160.96745721962355,-31.254112152217211,33.579119564032183,65.666356837646603,183.86561834056079,-19.010337261248115,-197.52392098243573,62.597628024241686,-204.75777918065759,49.64906009755726,26.548354018979225,79.805310165028502,-49.364584491389429,-227.31982292425454,14.945256372156223,9.523683977686467,-0.36484196101684319,154.08803095457995,43.465746057362253,-49.200056274148707,109.53522924739059,24.101632357016413,23.085634022690492,-94.248570995585297,27.660513104019032,80.939788800207666,-100.23253661046117,-27.272864193681841,29.332991027439153,-43.93022495627774,32.992166744389344,100.38039373535369,7.2645503856092164,221.89038960860086,8.8775406023841583,5.8942862242383463,-73.667039366766716,137.23503103605782,-5.609841123406337,33.219167504935854,-39.143164753911151,-140.53875556056983,-194.52571236945607,-65.816280989130846,11.983004561131068,-77.208003209753997,61.68399770985787,-90.803929400478367,21.308598059978966,-79.447049965137467,-43.566805223194905,-66.79687055535139,-91.593758104861934,-92.727714427572437,99.167121523595199,-28.749424727089455,-115.16978837135622,202.35750982151606,-31.621624222637923,51.608558752858769,113.24758801536034,112.43778405597966,74.702222751462557,-139.24354706835149,0.57833209372017436,86.55106815359045,8.5247393454826508,-74.657930689227214,-183.07561244557741,-164.07788532388724,-162.72038014105223,-38.91845312962748,154.18159983469832,-63.35165781256616,-176.93633404425694,115.64017355168701,157.18019611276117,132.11497751997592,-41.21029913641005,77.277447539862322,-122.22715094058378,69.752608241165504,8.2992921692445094,-77.008848568242456,54.664460416586444,-37.343332691293561,6.5017784793899089,137.38890264129404,-192.45890204366782,-51.916808886940842,141.69795516501222,-40.740259777084759,23.291384702032342,-34.57731627774173,154.43740181420205,64.847171146913311,60.877621367543696,4.5867521043360071,6.9805901972950064,197.51030223515619,-201.7153947622717,-67.968615286556144,-93.393955094072638,143.98957928873324,-37.879819809404331,33.5070052917156,-142.77111617473844,56.065353688380554,-32.356281932080634,139.61555527392656,129.73957477050939,114.39848486263131,-44.154962716721869,24.534016702194215,4.668850576481816,61.115707790259854,-92.305409086607895,3.8805694224719716,-15.917507292845789,-65.759158595165047,-6.4714785910246029,21.182440606263892,-35.647393124354068,46.463116867958846,0.27827341531080663,49.609485121518816,-67.9616139865619,-66.112540371323135,147.82195478795916,171.12591412755305,101.447246024823,83.4963926751591,87.078776322319555,-54.784679648366925,-154.24143694672242,-196.30850248511427,207.14191864780162,81.873783108482613,-74.025906346519761,32.528646217227831,74.622204121500701,51.835075349457497,-20.921643051941089,-10.021612675221377,27.576673759112914,-99.519504730901701,103.21335981856662,-27.895876088862764,-18.504152981182557,-54.823077687579755,-57.247512037155126,4.4669009184025654,-170.11139859067677,-103.34124107815664,-6.7787045396312529,-73.926741347925145,-119.35338970665643,97.717673702964959,88.417022857358717,108.10789444806487,-5.3606772220832539,50.987131101407776,11.907403805606698,-143.33568056960337,-76.466519344407502,-9.0898605581245562,132.62684700928702,47.895956684868722,-177.94830469644526,88.447514530925432,33.212449633981755,-87.486122427085121,-40.218211050607863,64.54893138757069,-61.752733551431092,42.450521846287693,80.440577806412634,147.65650196688102,29.087455670190185,-79.417790785928418,35.65152645846122,-113.20002703179773,-17.020357490027671,1.1301711509150003,-102.59344780077899,7.0871448201383398,39.968551997374888,138.97272476926446,-142.18821059912443,55.044609055536206,134.6785765278164,-16.918044031612595,-68.900495453101968,-12.223628745497489,-5.7240086304014852,23.045839123780226,-77.845455161610204,42.050607756260746,-132.79497807601115,29.274078213223092,-40.018583604054434,-194.01801826908547,79.56980192173134,72.292542507163319,-212.90231747507332,3.0187865090319477,-77.356930566129236,57.916476964340667,-78.155287403909995,212.94002720286556,-67.098412656542223,227.60920923567943,13.754825599003652,66.99544671025707,145.51709978025275,-48.817509891044118,-116.09478606261465,-17.816488091753229,-143.18495581926831,51.519358991669357,-131.66081725185134,-51.184879082504828,45.942464944668366,117.91767150031555,-5.0828364913256223,-98.842036147931339,-41.127325654302808,-30.904728810468754,22.358952285700283,-93.588925035818988,104.08339140647163,-56.2297431840054,-84.46795741084749,49.201529508336186,-160.58305178272906,-44.007637585064501,-96.271879469176554,-40.592621233578072,83.843476120588591,22.961303848389022,-113.45350214955027,61.758752110405133,-70.214413103545041,187.65042231348571,73.666843378216043,-141.01527575905516,89.237198089560948,-138.06256684355594,80.710127782059715,131.5690848905802,-0.5019860509659253,141.00230223629154,-85.498862762048844,73.861388483047961,64.445770922214223,188.02754936021404,138.21279306414866,0.77894397804399773,127.50808888173161,-41.813007058965297,344.41752852678098,7.6828708841795006,-227.01473068082862,54.740013444110588,-4.2622688380242835,-37.675098618192905,36.508973134001536,14.324297694502121,111.19576278172619,-116.30934171476122,168.4035967247076,19.813653631718623,-128.22946074273344,8.1248439343311798,-60.340956083400016,38.065707050242082,-82.217501654137038,22.523317807887839,-108.85387301686276,186.61669676875198,-59.413127612354849,-36.433571369344065,78.266875306448156,-154.97785152192864,-37.189631251543616,-120.60067900097384,19.368433393993122,-275.03507452508632,-183.11281004317527,215.01367470832415,5.7876902500764515,-45.973606154360127,-212.20236604394833,10.165726228404663,207.43782851199902,7.6446707405315877,-39.471132417268919,24.879689632097538,-143.39030889717208,9.3265616778068257,-21.271946994672387,33.760678863712172,-3.8631640024325691,65.703781387141447,15.952236932378586,160.46526893031552,-107.84291693338608,60.391015717173445,34.503841144932863,-95.382952799361604,-96.157107643669576,174.8445773280572,-67.212953483867125,-54.547582094110084,-80.208939287085826,142.11050715489523,-118.20054675208762,162.09851534072715,27.024379921585226,-29.498830566150723,-90.247694611713285,253.77803793474368,-35.718205704319871,-148.41374638250619,139.63312805497043,76.511230535019422,-121.54717898747806,60.579854033112284,-114.45273016909562,24.633411562555381,-49.029823560087621,-59.661376382559119,117.7423925362281,-72.156398766812259,23.181303490461104,-79.463626216836303,187.08602684889456,-128.20148464185286,141.74494772871452,-110.1990522412738,-194.99023769572301,-108.91426950991867,-0.54080502450170798,-23.181985819446908,288.47598988212508,128.9601347659883,13.534296075423697,-11.785175126750232,-37.627808921326107,-8.738460959877095,158.16300014470295,120.57139470129479,26.82580851235528,-68.477662915221046,234.05976646781983,160.21715904242194,100.80707250608511,-32.544492181516958,5.5781965633262445,-56.835357484995768,75.784231613384506,21.759733649964197,-100.80645433675627,183.59977755402207,23.990541106731818,140.65227378651184,46.456162898238709,-36.741732808958375,-173.84532397552493,-13.264719729114844,335.173587709554,6.3253105877430755,135.92419404697779,-11.475515589032952,201.44927308323312,-23.479865030104275,-75.364435088428564,214.0286276359779,-246.34394229105914,-56.724291787565789,112.21714779575122,199.90373323806836,32.050315742355238,125.21334026657627,-15.049734699993946,-39.725080245764694,-18.759325294893443,229.54799281534588,93.944591795440303,137.31558838105974,-7.5645100239293157,106.07934094108394,-100.97124118462237,13.296226830451062,-80.287233201364657,201.20940619576382,-131.65916093006842,-23.360299321025579,180.54019936903885,201.69202265623687,72.702959652472856,-220.45566086923674,132.55650333065861,-91.643644681747816,-83.666003557384073,119.19044436731502,125.08022533582074,-106.95857963656323,-138.12506629602663,53.989232719573124,11.642907305791688,7.8574014311914908,-52.549295595164537,-53.799891353704453,-133.10019120729194,38.876889001459801,186.86741977078839,347.23875531602431,-6.9579230621866266,24.887443874020001,-198.72549314853694,-116.02584033703633,22.136457831678186,-38.350441342708478,68.162848643132065,56.122961193484954,-4.2830434689525241,118.62901857703335,-25.090398110509316,-62.292197929691788,69.26012094623843,-73.750027085128423,132.35693419522858,223.89035111080091,-20.784634802195907,129.43584340257678,-276.28858577727988,-7.1118156338698952,24.347834462717294,15.025886861647495,-179.1351078841391,68.381282531653866,-39.692418353666575,264.92251920149175,-90.882394627104532,-22.2098892971472,-183.19388991294602,-53.146460164870824,209.22017639387619,30.577046819934328,-74.495266228549482,58.667647719494681,-42.224551676163941,-113.38678459546526,-313.00452822936745,-92.168457831128165,179.61233537970853,-69.177417548255619,-24.759345494110576,-105.43381621046183,-14.998433301174074,136.114577643383,-163.7254744355246,-135.42478681536338,-54.131022923441989,-138.27590477715034,85.603026543590062,-91.498939506601602,38.709441249070565,-23.112961952134953,50.434129567267888,-43.816391700043177,-174.95839972521438,123.3426641595054,106.08200117882217,49.690642032402565,-67.138008681488458,-62.540259453278935,-42.043464442737019,-115.53338826698655,-0.83130803498813499,208.35232788776054,12.133253154676041,-61.829053284163329,76.34599256550878,36.540402346384454,22.702529213359906,0.12517791942119061,28.813020308113735,-125.96360856916277,52.500167824797131,-138.67132093448095,90.999648405188978,-77.459279882353229,-45.994948137152782,-64.498141494523509,-101.00340313552655,74.374447689965734,123.61825843439436,-36.661913319726359,6.0258473722274246,-85.166381849283312,-231.79023947175398,-34.561106226462002,-78.877587202785563,-198.49606695678102,185.01616404054238,5.3441953245702791,23.140160475997909,-156.96433366001611,83.560006588537973,82.625045091499857,-0.74279195018587529,145.30035236209309,121.24703853259082,112.05553197047637,-92.799490031591333,113.34123620060491,-179.4573495987589,221.29724823509716,-21.483066003973065,125.77782152511774,94.809354211757849,-27.502953035633915,-199.21502429557623,-113.4363639272336,21.652238497901656,-25.670323441265779,136.42261682890077,80.72664585858368,17.845020917556525,-19.728683200896029,-214.25523494847667,-26.937816750940058,-188.13609029711967,24.072405309355332,-78.363403346027354,-195.69578346751814,22.502632442347704,124.04560907901538,83.183496565200727,85.886863247589602,112.1963985004395,179.51483501800683,59.144684850774567,110.39002248837356,160.62191726227167,-137.61713057964738,-20.56045313147288,-218.00048696588232,121.88076957086894,195.3316807458819,-133.92291043962993,-75.033465550980793,7.3831870900678069,11.203781060133046,60.693751558811044,-122.86305575826955,17.03310077020987,-199.62834734049011,3.5906072058494551,-208.65326725385614,-210.6349218448442,-44.493133936585828,-89.585308940044143,-4.2429908122489923,163.08691190019894,158.73826150190783,113.61369676329957,33.130674365976191,152.08302543366321,-30.574227422754355,-148.51872657898696,68.844863558345679,-79.427053808013497,-114.45765658058487,-147.0051148007247,-210.71394826085023,-155.43737140133675,101.64114873881343,-37.888771278328349,91.93828711057165,-47.46279990181489,-112.11835965755671,-132.25905831979452,-31.29363353087701,-3.2226290126335542,-49.186518993176577,7.4026115041958604,240.22937628281335,53.963158723636873,-87.859817881820021,-60.810359419439337,-105.67470684094621,-195.32358520036087,-64.253856727654835,-212.70114140481613,-96.820108758794348,49.026360182631414,-32.420008150367764,32.609439114802569,67.782543023572089,-42.941796999283504,200.40611344702654,59.782594290548161,-16.896375827971497,48.107354130429982,-144.05764525961521,214.48642945171935,39.328087674654462,-68.322423586686057,-129.12773762422205,73.30442311685691,-84.524775180252689,-44.501093448345479,13.153678460479213,-92.865725089020415,-165.69425869517346,-37.310759636520316,100.5132993709358,-130.94550710013743,44.579355485385491,67.959536464255947,-152.75942483072362,-18.209799545711064,-104.50174743906743,-65.768488090764265,-52.270657802518855,-163.77576384449208,277.01396429931845,-29.055118674636525,128.29495964425581,35.887984977129278,-95.188420646842971,-49.968663755175299,147.66131185997557,-149.2090915687161,157.36484031375386,-224.58810268223303,74.912985367249519,87.832947930635953,78.272644630013758,87.108457624799229,-90.106111829244568,-66.155629919802337,-183.93330498624849,-107.82678146071372,137.24917959333732,-100.02447633692876,103.75458331424109,145.20537175972669,-157.50035389222469,-278.34097228944296,-10.670134816993375,25.033441892573954,95.313374772964963,31.674017602035931,224.04484864177377,-42.134934328440885,-1.1598504806656109,49.348924899251713,-92.088329798465594,-28.491625690405655,153.94929593576722,158.29210832675841,-146.16542094028273,75.034702307679424,174.07687838233653,-68.72577820123081,54.348107297475565,38.889250626812945,91.996130063056683,172.21812950334203,-128.31217745522025,130.01625436188027,-114.28265992042157,50.479961052606754,144.58489458565995,-39.211150344505754,-175.60325593578881,14.439063526705862,134.72867472384786,173.37641566024593,-14.628507387387316,3.6995085407476269,13.238326688917368,19.242367387883228,88.698573120923669,51.395715976024263,184.05754978600149,271.24569800639165,12.994546210559513,-2.8290296413763301,124.22231804562725,75.684003379799407,-210.35517132576069,-63.523597670631389,-129.97652444471993,112.08949167876365,217.59975125909608,167.8906471678286,-147.93773849750491,159.95849327393302,-54.32534891452017,205.98948943653707,6.057242817754144,-140.36660878378257,-232.90684871500758,175.62703827232116,73.971995849130138,-59.759538262293887,54.063057350410482,-217.86041036175811,270.48596281686162,35.965693331613636,74.535441029837486,-54.805522384021586,151.8394454012064,79.870071729292562,-157.52452739366782,-91.581951679370604,167.23070138937624,132.87124717266721,19.881340049390818,-109.41649797038414,23.323885169120551,-28.765102573166502,5.7905491707740584,24.205214221415424,120.47319131377459,-198.77996325351546,-166.33368839035768,-70.486795625131109,83.569098964922446,87.326765013434638,25.532373561905054,-150.81496178708252,-19.331308507660189,-58.272796095473382,83.723471001790514,60.271135235483868,-240.35613979985035,194.27775356715119,56.998641945774949,-124.80981340685288,38.878988513326668,-76.618456968796636,-150.08119096032374,-30.66820488869902,-31.393459773351577,69.623923886104592,63.275474346551349,-178.20674331039876,27.441250697902404,21.519844676847953,-170.51270805045681,136.31782824253546,206.19891460080726,-20.96498794450838,22.40520891014495,-119.90652419497791,-46.29172384385592,-186.91332490675322,31.337172439167944,143.47454446427426,84.015669449506277,-44.470404765608571,-31.246845596698378,-161.64575927829716,239.50670596467941,82.854366508499481,-189.1778071025401,-39.433389406302467,154.65416038377728,-90.85949247940313,116.12582776838914,47.016759975979028,125.17071311060209,-68.350537290959906,-0.99411871627832937,-116.06808028889139,-128.42250743719117,-34.299344641085021,-38.733700155846989,8.1554532350712172,-35.437692369283894,-70.094943563943318,65.024123991802938,69.770174297982763,80.582962173826587,62.946045505419079,150.66819171416461,59.403032938114308,164.56530260870409,-135.27273241314549,-85.146554604977794,309.00631811549169,14.798221027879624,128.31765053042483,11.12152705546805,-60.908126940395057,62.59946645589843,-142.26746960786645,-80.99554180637773,11.628829849302782,-253.52079252523845,-29.405741537012148,46.26127766497423,-260.34082822017621,45.256850268400569,47.782667037251528,61.582244860185952,-22.817356275603302,-111.31038429060598,-177.34829991167902,-48.100405523005342,-89.018917579076771,109.33591295913241,-283.56933862895846,72.416965839507995,118.7866036842413,-87.782062515007325,-38.034485814193459,-123.86251038300445,79.263216462552663,-137.10934957361076,59.087931605967896,-13.809376678960504,-9.153806722347781,66.579586464121491,158.23437081211301,-15.628202623506006,196.83575875720754,-87.891504011854693,-39.071288080992076,162.58210599524762,41.861409698812494,-142.77368628549351,74.653412315136194,-68.027929484395969,30.832808977969208,-34.575958207678752,-12.757196175968531,177.58230763049681,97.692535752531995,-141.49449092619616,-136.77254313610777,150.36548835323771,-20.759969687871536,0.66860040651509678,305.32154295637389,-110.12397150832433,92.474225055076971,39.802338746248196,13.242771039585364,128.4776119143412,-125.49423623765924,106.7437222697074,-22.339726467750463,-41.144442193727279,-46.320170085029986,246.79505032444067,-70.431424422753167,-51.76395331273028,-274.72603013082312,-8.9513404032241972,-47.219984072332352,-247.00935412942897,32.965515741445088,49.41966739690951,-72.074497732571331,-32.326157963200586,6.7362910545290049,92.805540262773903,-126.14664051301568,41.157213034151169,-108.70182914518091,8.8658600936383323,-116.75925583039366,81.96177969540814,82.438555756877548,3.9387440617779674,-16.548800042001186,169.04155968609132,103.06272321330641,-99.557811800568345,164.37338378306919,-70.160211362358865,-243.2058367515896,37.210629196314784,32.814245150528464,39.551855928089324,41.715257792144484,-127.97280145893673,-93.01829940302666,126.93473323246263,-57.344887634956393,-126.19987676214393,-95.952345093552623,-42.745236155991662,70.136872021702516,-107.44340430689999,203.24542433078153,47.161623150964523,-5.4225334915411167,-202.0064237500263,14.445865435351379,196.40340601067925,-104.00662781913788,-78.172228624718528,-114.13445090236621,-19.053358584419939,-121.84209109581269,-58.444916196098568,35.251958180910663,136.11243402113712,202.99685113542677,-57.87600381148745,11.173496108078275,25.335190425170808,158.58512380606703,132.92295767141781,13.556326805178777,136.58795375502169,-47.00680557236452,-169.51216939333864,-38.081810588015799,97.442584685109367,-98.301456513298703,-74.6460674424183,40.383266864027405,-37.331975497543105,80.226147383053231,-27.243513847346236,48.729947267600963,65.205746191598791,-195.02111695129278,-14.171768990023311,98.954471687407093,150.90025425584619,27.993042309675616,-201.21327554616923,90.820027926117021,156.25894394145485,-46.846169958828874,-50.097640973418599,26.537184301493959,-134.2180273397318,-150.63525554564987,74.653637428543135,126.97788167424793,185.78803455875806,39.981760195875822,17.163227013438004,-118.9968508112548,167.23215963706735,-65.696902754091582,63.100440457401241,-253.95709331823019,-110.10683482599273,-34.333504924403911,93.099323223221262,185.75110450416182,-62.076472037090028,-15.084494724580594,35.05462243047441,-36.241021221209671,-71.567416839249248,-61.382613616241954,-214.33043286530159,88.559495431344402,-16.297093461734281,163.96197468461077,90.755650968423666,-93.320003117683797,-3.2399607399163486,196.19522447624632,159.0846623852849,-12.953397743403912,-65.815852543616785,116.22975755396666,80.26402381231928,-29.220759501005023,-146.03896279243889,65.046989475142539,-0.43463769421229159,121.91128302902754,41.52191057072757,-114.39854987836996,45.592529114799575,10.825313262592864,-70.772913323732979,10.15844757043633,-92.572865765532953,-88.816315301197605,35.215823779103168,-81.635696023639554,95.244307319571931,117.50675483435222,89.021035646412784,13.687927699583003,54.205863775423872,-25.493280033911425,-42.479061574868368,-5.1211386006983446,-74.694587502797233,16.629140292892505,13.324453769153946,45.916509885683425,35.120931699365059,19.57682300537472,-93.664204347628527,2.2262105495056286,-103.01991818248025,-28.597828508992375,-216.91909594093551,70.617611427577373,68.747778620919192,145.85491012868758,-66.748627248017556,198.78756058459044,58.742031449802425,-92.498744951641214,34.110550446455107,124.48624474162614,20.790564652975725,-81.127618389836371,1.6618382119928512,-35.703068806056748,7.1232520552253362,-73.954302839377576,-34.980598931176765,103.24349967969403,-185.91167953662605,-103.86017340995744,43.607395684586798,-40.814310498748014,109.55472811865096,-60.324746472427115,-136.16972881728361,32.449717757519139,14.764431714758791,57.28165822537396,49.462639876443163,72.132855260755463,0.41640739530387805,23.787535848289291,-40.416354635302667,-34.637822604070152,12.588853602930902,32.494208222564957,71.403445703065643,-49.093446143412535,35.690310915234782,-72.905901075606977,-58.242279814306499,-19.341386746390317,15.962308477393913,45.767648509875727,-127.00792635763553,-78.859291123726635,-14.33029201627061,2.8438950133725243,-20.963705104327293,-31.66655242124904,18.964349051032301,91.470499221307108,21.50144528109082,-1.8181585054172906,3.7191468058709862,-134.79041570773239,71.790154410170217,10.883814818141506,91.401692180777687,79.641240062933036,30.965870559606643,22.821121973022375,10.733710800210636,-6.5717671099485635,-61.522052566604302,-59.183091054458444,48.279507727824075,12.43727773805923,41.843571304221989,-92.733433165513063,-67.659416831201781,1.0348448968628858,111.96895720837173,31.656669595894698,80.237072781249566,-20.7172134520162,-95.092377937944406,29.205582205568252,-54.072698661251074,-65.920127984701494,-42.527257356333834,16.210916430315045,70.392176988936541,35.795781494004643,30.287755905794956,-0.66264563702914359,-52.366064008425482,-18.07871474385329,54.866913887040802,-76.587153070323836,-42.986428629409332,122.83120065902241,21.524606748825313,93.336747255172398,-43.14274594902605,26.01192146844685,55.048895008243754,4.7116983301567501,-120.47862314630538,-53.239914009109185,-100.04647323888972,28.001235191836098,-56.683708718419766,-56.780203628333467,-176.3909894095118,74.26357058014483,-129.64361979852669,-79.015499026033666,-24.822549747789129,79.424766766880765,-130.7762282268732,103.67872961227437,79.758991253095942,59.473615884682658,116.76276644186984,50.185564305988549,-145.36872069505165,93.040537971452963,-83.356624607111996,-80.011473084378139,-54.710944730069485,46.962143662267735,-48.931094422780049,-91.418692139582916,18.111871226285999,-40.812807854077647,-9.9128939290890266,-8.4857843116500629,-24.342179923637829,64.508818369827949,-25.764386953930767,85.506808856495567,-39.971342504859464,-12.025672039279637,5.5744552454588145,-42.805985277882705,21.541544853428867,-74.994522711674577,-12.923635966045204,-15.350651104917116,-19.617247495088975,-38.271897363558324,1.934708493506605,-1.6619059954007795,-2.5915595903883535,45.221591911977121,41.24664080762021,-49.03626135414126,-153.31006937825765,22.020222426780638,9.9616257348650628,4.2969474584498464,61.058812533972855,-36.293239429904773,-76.938603055869663,-77.422025954624047,40.879787502045296,-100.80821280657216,70.516432311805772,81.739282452862113,-57.066547152066669,66.343177508872671,-41.762057980745439,89.357228754520804,-38.037941250866787,85.237906638953518,45.974183519992721,132.40201363106107,-7.0891200518343922,19.350473244705121,-72.478567154455249,146.31176526626433,-157.11354191148757,109.08186510355586,38.92864899324276,-60.811363115190304,-29.68091189195847,96.945452711736905,-30.105503019703423,-20.983936874975569,77.413239850067441,-58.030866965950452,57.571550014062339,-25.296824086103385,-49.403714385316277,7.8895514598818171,177.20199842580348,-16.980711680373105,87.024652035738782,-67.960529178287828,16.266587547358245,16.682728336600587,-20.171938228481487,67.328945910845476,96.111394435483959,-43.464574084974103,88.616234869226489,-34.512369476962903,-38.227921761392537,90.053995205414935,32.241993542393111,-14.1567149828293,-29.815851101787587,-121.17293280522158,-86.355747327493333,-28.972111376182394,79.665714014697841,-74.199887330988346,-26.457927056361147,70.943163088619315,-22.393894913571529,82.765965124229311,-64.005830602953466,-6.6470556390108761,37.071406364742032,-8.4082114688329028,-35.184172883679643,-55.425347030904831,49.918769282496541,89.647525877221796,8.7875379640061482,-71.435393120319944,63.005228784227398,61.312326840921401,112.21532116230472,86.272690558000789,79.061800584961716,39.163468150258524,45.535436822497829,-30.362270344377862,43.06984613648811,-78.502359527400856,4.3044836635448007,-1.7691746962544319,-22.316102307840634,29.233428131135604,6.689734443996862,20.182732582963396,29.1395176946458,-47.407553610568698,35.879633351877928,91.678025920795463,-77.775038898224054,-69.603208949429145,-35.06312485804748,-5.1212479925537338,-2.8828948227265485,7.2755178088333139,96.907270563388664,7.0917191194382063,79.018764095380902,-33.36990652742476,22.587273645348446,-135.55414430832286,1.7205260608174768,-161.98202935840914,-31.024032102192706,-42.397675943918244,-14.911092124734701,74.571905611415119,112.95303166153133,-21.162327220114875,10.656415288833134,-141.99206891685887,56.836642542219664,48.881570084865579,115.95243528570171,130.79115311362162,51.547933607302362,-115.2648736225548,-179.88565118057323,68.295448637689702,-94.680003929736941,-110.86532546172259,21.694600779236232,43.786318907550914,-92.98010588723082,32.901673317832369,-80.428503271845216,6.9374933957036244,-125.28302089020036,-71.601091653593102,16.401360263873116,-154.88440084216296,-238.15805682447848,185.57403416565217,1.5432956130987159,35.580245782186481,-37.431418677474205,-133.60280006287519,-36.13116624082631,18.027856148876012,-46.736719548583835,-74.00908161651104,-39.182618816692639,61.232289781781454,-94.200123524976121,155.85957464289604,-52.091915025909486,-130.6134996022287,83.943897628398162,32.209972304876572,-36.526338449266454,-28.859911918601519,-108.21603555847906,65.848855259724218,-45.701311925562528,12.838655760955142,37.054360162945706,70.900317132510025,24.700985258793018,37.391418897449356,-72.97860610790687,-6.9197672062273803,67.929665012971185,-84.042846832451602,108.70416277221851,-50.366562090124546,-85.507999419330758,11.558817783087854,-19.621762781212219,-131.6470798078297,34.092772702485185,-3.2387443242260243,110.16560884383118,14.466565001435695,132.75709346864534,61.430270247479633,184.93496589657786,57.993771368063832,-45.312467138047154,14.462123206139079,34.760005315529689,-4.2469688411848736,78.392708977777858,56.161335627995086,-39.850614465378378,-81.724323940328603,-66.604865894935699,-74.284375953906192,-134.62551172682674,-51.216105391003467,48.071492972932838,-28.591137661988924,132.80987556787812,81.067525215611795,-68.97320326162972,19.590321031926493,-122.60288959530925,32.883735815378891,66.267459544496745,-18.322041259232265,2.3330548949797958,152.28730411048872,-2.0981340355011078,124.31530196369445,64.56971837728949,20.307036209924064,53.29341473376725,-66.339914365883317,-114.005600211565,39.886769520951887,123.3016064630164,42.05004250680426,10.087819729128347,5.8608747230658462,-39.690572111395689,19.969228336885692,47.539695842286875,10.335142995165185,-52.47897301488586,74.632802630533206,-8.6320056186487051,-4.5893189771044405,79.062986828846533,94.070050904432819,84.781749904404705,-36.974773798454663,20.219891870796801,-58.995726723223399,83.702932930860115,-24.64845932273866,91.09959191997315,-25.187206971126738,-41.1662036053092,46.172742966312171,-107.40374455456572,20.69613445768637,-45.180064941013924,70.110653326185414,-27.096285839421288,-60.37127337370903,153.74471545050113,-58.527582819062602,85.312189243792375,-38.441045206593557,158.81170069368386,96.147334597802484,-39.416134683612242,110.10382596936037,-37.031401830878089,-51.944369021139408,92.847559778760782,153.09809097197319,75.270134022887063,27.356745394882719,74.972089564275777,15.355964805701063,142.75760666374424,-8.3218088650930895,-11.340041546202327,-14.448866018032042,11.8468790761025,-29.074967077623938,-11.186631094287591,94.665375246875186,92.777854433230459,-17.158925463045556,-2.0143784189570724,35.37267631547622,-62.814791313419832,16.49991038357193,1.708906811810273,14.009773401953822,47.714760478797871,-119.36138914403803,96.270212124047404,-38.406300513466682,-19.020717292143935,-34.452453950004148,-45.44116096059993,28.637257635410649,133.27565756209091,10.143161953451049,7.0683832915491625,154.66850683307541,45.15535412038664,-46.291185173571876,-81.765486576617207,9.8223086223196532,89.630509897435331,-39.520888192549876,88.066866008177186,-45.627527892962917,-32.988471942798867,36.241241868610956,25.721713335195624,10.365928856560666,229.52505199734435,-54.589891167120122,-74.483754947877742,46.496775015452684,-1.3492480971768401,-23.438246547950257,-76.511012855003997,100.02746516878312,71.086393109201396,181.05557119228615,-13.06816664810964,83.442531336295076,-92.668570478572917,191.60121449298896,9.9547088213595742,141.59528283374948,47.354479483943443,87.158616796582564,-154.77338260408911,-4.2124803898507679,-57.530661730140636,-72.310156394006384,-4.6232281365817798,-129.18762647924859,-13.708834657545607,-14.835565730994205,-8.1164198024894958,24.879422727180419,-142.89531600898948,60.482289723946195,-116.86836014950858,-153.1507686585179,52.978591934514945,42.096737368979838,38.966885632628987,-81.292623912962156,-54.210117557963819,45.257544196101207,-30.48129702167768,-51.102575863136664,-48.621460729937475,188.75333298782573,-110.88670115475909,-178.08462302799478,-102.73152390447615,-232.95142575183274,15.475912605991995,81.61096361947844,-30.777736089336123,58.819955046831083,-20.063488963863996,-30.125880323975146,22.138815464430635,-104.10471281479269,88.982126087018372,64.761469798083127,-29.103310040469253,-285.41361120363888,-4.0897304543607333,119.34485120188482,-69.198940971746367,-36.912234956386165,-181.97234542969954,-61.644732086536102,88.401287665753159,-102.245398869382,-58.545063982092238,-95.266401946738029,-155.31701178536554,32.832331309305147,-13.936926066983307,61.669995999939985,-6.2902658836340404,-92.359624375464293,61.933548854474488,75.34067587306717,171.21802884465819,-152.17445536205349,-52.724485512727469,211.64931169004771,171.79573465006814,-59.156216370059745,78.818500423020396,28.812761117662937,64.079955384133541,-88.305627651910584,-96.216751073296734,65.531232896635515,10.700495132638885,-162.45026146145364,59.953299584896598,-84.500150115243358,-21.454133610977824,105.31828974681189,-40.118652285837911,76.385574528170096,-94.955409238361227,58.84222263240207,-107.02300659180875,69.974104701276417,-90.843451535064858,-42.882824607141472,-70.697827947257636,-100.66737776159786,-95.55681052218489,-19.479465181349966,60.260990468312947,-77.594789745576051,-133.14366357835135,-45.004324425486423,135.82167851863778,165.36085948053511,-160.83250964822625,-31.698197847799392,93.50047425992571,1.9827665722113912,-24.136455876824364,7.3465141193082069,5.258776152323966,-24.64268647114331,-123.78522781621648,-142.57393343772503,-14.85165029173718,91.833555448874165,146.37887727365745,-115.54943014003607,38.608778426496855,17.752902415134869,35.520646038541372,124.19449958380437,-124.28893960159355,-78.400193122484353,-101.25551737961601,121.09416356525273,-73.835684522113041,20.336127978363713,159.21517553551158,-3.1772082450189902,2.8154506359209961,-36.759854051421243,18.587944337562952,-4.666177766943008,50.854084345630639,-23.980013627152815,73.952035951104563,-135.69043398936566,91.340671910121728,-19.663092402533437,13.755216594474682,9.6027696575280288,-38.864632226309773,1.4564730123267644,73.78271183401462,-113.37315490112823,-57.348522746125312,13.9457815236771,-23.949830389464857,10.923637204313854,-83.22163613078375,66.52569769665476,70.104191104070509,-89.640193737640004,-13.155792825831163,-39.054310218980149,-175.31104742667452,-70.886581527959351,76.517941235564976,53.984442766012592,5.1314798184364925,42.676709079455563,-148.35208219377222,12.099983744641776,-123.33827868902543,135.09024402395201,93.805278701082216,111.73469820283165,29.724361994284703,-15.569690306123569,60.587886223035646,-74.398478359908879,-149.64144333256925,-36.369803177503648,-51.187422122911329,-94.070645669352047,186.70848523712064,63.208208364445049,-64.670189744095282,-82.915332562762089,-2.5632108185182894,-80.121350093430863,-44.416205580510365,19.023870935602851,-95.969497382678952,-13.934382045346563,-73.041696283753595,-34.374828128483827,5.9732577291748701,-16.245485773154826,41.631864593359566,98.134541488463213,153.63065626272936,-17.881821581624678,1.4540472415374168,-46.076166527293502,-10.871141560072608,147.14686554111086,-168.82862959298438,-106.50342564407168,-20.884161164050852,95.891912475988363,66.202758761995042,54.417650977621577,12.377196064369599,-11.244071490500296,18.395016115380422,83.058163921085225,129.81332462981206,-17.316032736502741,-68.762847585901113,-14.470671383049018,-61.528591942033046,110.4047886699838,229.12660813411833,64.696474752205162,10.375109028501306,-72.60823699792283,48.072015819279443,8.7401355056909935,144.94884524520404,-82.980499742874173,10.435992666589044,19.819765361025929,-40.696060732007027,-71.963801051840008,-79.992301156826727,40.864827302308846,48.764948275488379,24.438818193700701,68.775956249126281,-76.866088003800485,52.644004497616301,78.594734467459858,-13.640926569258578,28.856926323119151,104.34140014902256,-29.116836055801652,-16.373501754709096,15.387682611067756,14.40477761580822,-47.443880417779475,-35.970759622159967,118.31217564312661,-2.3374886660795484,-24.820939262499067,-14.497589026732188,-19.877897244574996,5.3858272636762345,66.041506703206508,2.3755601236581851,75.004959262992074,-98.113452272513726,17.844040278586949,-52.325675149848628,130.47122170042007,-14.679401936266679,-49.30941807424108,-28.35003669655482,-10.47331462707252,43.816125243039735,2.7166968767033435,17.978775255001153,54.509871630399509,21.744283792269698,-27.398374669851901,8.3811855721667659,-35.435221722497623,54.22390449861502,-69.769757606124045,-25.631582534219319,55.978584591650502,-42.494350183884094,30.606831894590876,28.156849134707166,-60.179704075847276,-73.14709850464989,10.344093689994683,5.358758791997837,-78.942437129219158,-9.8234523472108375,-22.781630561863995,3.5841791038624047,39.940116024704707,-2.5695214343481507,4.1973109587602524,-11.63371592733373,-22.2381732706938,18.398046894259615,33.821372012022017,-16.808647659848788,-12.964183919893355,100.36104763103528,-25.591195719816941,0.13514345794360402,94.423979735294225,20.142050912112243,35.262434024965145,37.555015423594938,-31.89706134563168,-0.28117062207429516,51.628168179365559,25.370199165685932,25.587893235483886,4.2388517213425825,61.210603318968836,-16.747595011194363,-88.431649212398881,45.650082759859814,5.2426411210878898,60.236510040387984,-33.372197613898564,19.730747428605053,23.419944551848616,108.49637213012993,63.176384856481036,9.3530484307962425,-41.490679657123344,60.157156471395403,-3.3875034326344897,-5.4941561219055961,3.6222565112322576,30.487256943935762,38.842547976991519,13.846859247832398,50.070595350593038,-0.86576346678716731,25.754065333587565,101.07857636669789,-15.550953189321282,-43.515372910976041,52.896566300716188,7.1307951921569606,-26.985288924887008,-118.78639888970727,-53.753742286479145,-37.019114076266092,-11.31784264847269,12.91209371348733,13.501876771016441,24.480182553130952,-35.81700199572893,-1.8584387572643986,50.309217733704401,-25.523419747691438,20.026960644367684,-7.1237131350931815,12.096806538528583,63.001017296553805,90.040948463649883,-57.87620544936334,-6.3890061895577919,77.044289087347252,65.278335134781983,1.6273361869288239,-26.025606164340608,-59.276991555649367,115.58655368462254,-78.835097506128193,-10.032319990123268,-7.0144822669839915,-65.63378406688571,-141.14315578802291,-118.15850018547037,-29.747898441371355,-100.27363503636957,-151.11733220600624,29.027002291667817,19.219464656451912,-10.670557728572057,-48.186022391564364,-16.419202112691178,30.064425738426483,-22.339277656115414,5.1236864272463549,66.067954844353352,-59.41250900147547,21.385231633181427,-53.345080135806448,-20.0882880039875,-99.700852908274285,42.347949633074599,-139.22776664246561,4.8864826283150151,-115.83811998364041,48.401423907003824,34.578861863963319,-171.69229465313418,96.612258445288489,18.750911270507899,41.133166455055211,-125.01753626843673,48.742513280370289,-7.5593844655356293,-5.7651128947231314,-13.285033590334535,-16.30788104863332,-9.324883630806557,82.260133165208828,1.5338502793229836,92.765041767625135,53.359742864409036,87.900964348544548,8.1478193044278839,-26.469592518076666,-59.840310405271993,-167.28376877183544,4.158654958943103,12.822763849702561,-57.730958118904425,27.003756515002038,-51.001797622655275,-35.628286903989398,45.602119765708238,7.3036906061060378,-16.348134056890267,54.725182513152376,-30.247988018368602,-35.826989730905012,67.323580355772776,-1.4838972887287909,-0.77006257765269837,59.495900451016041,-52.577904060533548,96.674595436569149,-56.983800125874865,104.35926048007042,27.856878959534225,-155.50836478800193,-72.631588707840621,-15.282624334101989,0.20071197256550377,14.19940295401258,-88.271422603543556,55.425791112949845,-3.3703271589039154,-20.141888621131308,127.5989444369099,13.112268166508859,125.96824840271336,160.04455095867834,66.170873588790272,-62.735916288078855,-63.356062148975887,-59.840414010005993,71.117081092957619,-10.166305995744379,-105.71847530085641,-18.095895828446746,64.753865817422167,2.6737974972630889,-45.664635720344769,46.255192957875366,82.369010180060926,-42.705533026610652,111.64098487133144,3.7830151064177926,17.491020809574756,108.97257554326916,-68.403672906061843,-47.698473665438513,39.128147296214394,48.662049759285104,-29.332302344674588,131.47922096086842,-142.71015883978387,35.767954361269538,-78.670980533980725,-24.063160490251008,22.232191424591718,63.404118144503329,44.660486560286216,40.162597427560762,-15.390429672553019,80.977460425022471,-51.55975305791803,2.3172229938711055,-14.802341095015592,-131.26684911767251,-12.297676151581697,-40.632894826382824,25.511372088235344,-123.86452928388911,-43.817918768279085,-10.007429808313605,-102.32993433711641,22.429818795465664,5.6212907067847482,-78.785517393274304,-62.669297003040697,-78.841018032798303,-78.254241968539489,76.58644327250893,47.009939975491257,-34.420024668960771,26.956744759285723,41.148316046991241,-96.327668913879592,-23.145122899262898,28.141064576896618,-112.5579399936035,63.978678357603819,2.2807563927099501,44.394350629250759,91.490301863888007,28.035055927844489,-72.140622385022994,82.012787856843971,-74.500974948038476,101.91255853857285,-128.76254160858278,-34.271739861216901,-98.865028181385838,-41.633203903921043,-166.33016753499942,-27.887794039760351,-50.284551187265144,67.418831853577586,-53.43413944381097,53.494924315505983,7.7976581224967703,2.5232455923213446,25.861250205357209,98.340891864116003,-23.551829270947582,42.913948207355567,-160.99219907043835,47.014812651640241,63.027078985090249,-18.567471657756609,6.2332043050350663,-51.249003935299115,-57.536341619773879,-22.238090198779318,104.01200508703224,7.9234048065953502,-101.25473171657075,14.104676409815221,0.66991072940278151,48.523925984416366,-43.439844409546836,-101.17545084388689,37.271818704434835,-129.84222857440145,-76.574312835945292,-77.596891491832238,-8.2762022313592389,75.73367128096676,0.33172258679088529,73.764270872139022,127.64458126331736,-18.959300904630332,-74.539817693821604,154.32019015286451,-65.18295404523856,-17.850847133611296,135.57644194943666,-28.586517952538781,61.976355401259639,-160.77531623141638,2.845879794882332,-8.0727227505235959,-154.16198500401379,-37.050147878165106,-108.80448601999854,29.599804673222923,92.037733779714131,55.743776140193461,-57.977353332170416,170.32280973829594,-116.19625273626298,-0.93043549299543493,40.129529241646715,4.2668453418076808,-61.572486340153148,-57.011524286590003,-90.503549127644646,42.472466355182853,106.26366993668255,18.967898707100964,2.8598479318569017,-96.938288546561907,-28.422678052283985,89.516773289781298,8.9190713222509217,-76.175542915407505,-93.303299689252682,-4.5567883020342075,-84.219984820960448,-70.701987243212841,-32.492274762624461,7.2250051301551181,56.58504985694546,-33.866242051905871,11.880477832931692,-44.458930798821321,-101.32446203757958,30.440554657875321,-91.246044441082134,43.900854545907386,62.521956414543453,27.056288791438512,-29.581235910693046,-197.88867197327932,-78.156129249768952,41.574266157911069,57.823305848600086,68.500262685643946,24.711478939029465,172.05492280054756,39.440319806038708,51.718279033372141,-13.179318756268124,16.619227374335953,22.61976404362504,40.152006425623938,-61.435564285992811,12.77311368451088,-33.781939422534343,-9.6100506562458179,-29.112036336097027,-7.1287473847254574,-26.783299926522979,-116.28358220835057,-57.164162878192819,85.030639413574761,-41.656652133482837,86.739269660345727,16.680342273236072,9.7086174771406473,34.089697761335572,-80.583563652714886,160.81374570246459,18.110645460844431,24.391687721782375,129.73457200698198,-5.6891026580604347,-9.3845630575620334,10.762291578812434,8.7087713602740422,72.608887960593989,18.030323289068711,-66.613546536836168,-46.144039958602768,61.205592274991787,1.2039293900616244,54.122312668496768,-64.342372922836915,22.717233767183561,44.130749081166393,-54.872339020552538,-117.36737586559384,51.705248652550367,178.92848621486718,3.7946375563842718,-118.67324750649665,-0.68997248730277683,14.381351912078372,36.949585462004187,72.773710552747659,19.994757053849465,13.905501905770901,49.580706939824765,69.210269712720986,-51.752498726083289,3.871807646533596,110.58352602355019,70.54344023916785,14.495944234201675,-86.407189698979295,-59.810090006022108,27.895422705937364,18.751299013646097,108.68550366764464,-39.656791196130008,-60.710533563327147,60.85108214057982,7.6727692573065855,53.542038909485882,-189.21661364049956,-12.680416509129328,-99.638953432716008,164.24478033068513,75.117796515441725,29.186660892134292,-18.355697781537401,-49.228616910379067,-109.47449223270107,6.5827284544765332,54.299688670848312,14.976778833796933,-37.023140148893447,28.509075606138587,-17.361619158654229,-195.35078685882399,56.553054418740118,-54.814952725758026,-72.749010699571471,59.583968420007892,-34.835614408633774,32.723719371102206,34.146611574060898,-41.993879344628937,19.486983429909781,56.381370357527572,49.624710663614884,-45.676588092526792,100.43458806840833,65.344417287269238,-41.097532395517327,31.797892155124888,64.238282484818001,31.425719789705049,-73.949152914059468,67.454772651343717,-114.72346703010906,-10.857292509005646,30.429779748655179,17.529695297741949,26.034860560264924,91.482304318718775,-54.246250118374903,-141.25088335441822,57.232708753227278,-61.360210444761897,40.559307135042658,74.068257509872879,120.80692332635523,-90.727982587062101,108.41435153560275,61.038673862982627,68.854857326354903,-54.797509788411155,-15.289296860326164,33.822771700317972,143.04433102747777,-13.23412527532138,44.615379954247025,40.961716149384394,-37.852344323619377,-21.948922862324462,44.980037894419233,-144.98591141232822,-54.733757279806333,-36.140548286852727,130.38446402824266,-42.921144307511291,205.94626927055714,103.21579767323681,-55.513035124546796,-30.600203223309503,-108.15783591761391,-88.639981238812837,35.206033081011157,-117.94588906141665,40.643654870807111,-136.87179163076783,-90.924107579068973,69.507799078148821,88.875856932884147,42.526248417942639,-68.412461996585108,127.78454332897755,-7.4679109268784094,-117.66955266869662,12.131072897333148,1.5403895485622265,97.443947397846813,15.337765997366045,74.378436217447586,-61.788859927977285,4.8119912840512153,45.213856816993278,15.116595824860131,23.972814715161391,-36.647307568990918,-8.9789847620330772,47.789094922524413,9.2700214088578647,-7.6808759680228018,19.792332493939607,36.085204970286583,10.447190792800662,43.465004666207022,-36.210526545834391,57.814456257000209,-26.647040231019545,-134.39931264224151,21.066767699639094,-71.704685689261979,29.824324314987187,-136.26603579153954,22.67186586784921,19.748371256745077,64.169921239406051,49.149005590272246,94.285274498626862,-45.989293784491011,-111.7296162030853,46.122479022517368,-8.4546023738237199,28.621525879975998,-26.842005739847437,67.153051079074572,118.26404340965745,51.764683151189175,12.284508159534022,34.896004910381158,28.264001392417349,13.943163217760782,-5.5882415345112664,22.893837286466322,-120.37037408561649,52.428812346459758,-75.350798049156879,49.220187946106535,4.2830625429942861,-36.227940005861946,-116.38930745975479,43.870304029374083,-107.88392630367071,42.400573458785637,98.668538191381984,-79.327056934935499,90.248885835408927,-20.922845970296493,-110.21865845361189,21.668072595561249,-48.795990761437778,-23.184412733606109,34.159518829638998,32.878177101113124,12.202703180200411,-10.684426307555267,45.503946115617488,-180.82776557046563,90.167162357399107,0.53370220650496225,95.281175170266394,30.2080992075851,9.3145398398832047,145.04197287441744,70.68823632476294,-3.4348224161880738,219.58497740429593,40.112921502615137,41.617716266917149,-90.931057627362947,38.500019915731279,14.586857770220048,85.407950340714109,-15.863697432539864,-82.827627794275443,-17.628427552355038,18.924357452726106,-118.92506498272712,-6.6574274958632413,-68.168586547198032,80.345638666760422,92.985388104230736,151.28640189921305,57.539185844151071,167.77226865624831,169.32297959157734,-34.367849166837992,58.626551992810818,66.421624988244005,168.13184688191976,-4.4262619432914985,104.21715694216115,-43.686508183411874,-75.329414599992987,49.192351361564569,-36.177105483866043,46.871515236649337,-15.564128180257093,-40.647099155477733,-49.195992864016965,17.06626373293987,28.837887694750936,14.744778327660617,-78.525099680928776,-164.9334571142345,-78.09162760992524,-37.211507526921046,47.452494149580545,117.00289470585631,45.68247442398782,81.031991425050592,113.69149508999182,109.35748605615022,26.654343098445384,-20.466166775747464,-50.656760131973691,29.89137653990527,37.981075923743425,-49.738312054869617,-85.212453975742065,194.10205343839306,113.65750804151085,-7.2253762044723278,-74.972606262776296,11.142114441995723,165.8508222983514,13.556596993082266,18.607240319919953,13.740916383653444,56.455273123945361,11.676718106396295,37.946583132350931,59.763107378421189,-138.08806924005984,33.428996993187752,-26.350511074994156,-50.207913007748509,-6.1602186246179889,15.980076756285293,10.85359798463011,-0.97444405726223515,78.689117528801489,-93.863234951337802,2.1184815466137659,-33.327872136277584,45.206049147599657,66.326330214318517,52.317097968635068,-156.66145460659158,56.504749892851201,45.920346395262186,1.3171922510717811,69.67052904185644,-44.057850790731088,-36.730981604558295,59.849599142238333,18.51460960091994,73.210079143025339,-79.449826466272825,22.436644742694693,-154.91538812323665,121.42293423617257,71.190381228336378,-31.61072882367699,4.686435582974716,84.443353358860819,80.235932087545706,0.93849216856548612,11.744190524462548,-0.97883558169521589,-9.2501365794251118,9.0345385769988127,112.21241516683703,-36.805145528727792,9.0519261519397887,132.45932692425421,45.30688755777188,59.636654670839242,116.66942844515185,37.079770301423579,16.394668863729063,28.277790760540473,49.404851122866376,-80.70634006729351,3.0066064292359527,73.648582647911212,28.124399049505303,-130.60740551553471,35.729152501707027,-43.44553369773746,-109.68810582423725,-18.661660394449228,-45.160746721290465,60.062675700710948,76.431933912235266,-103.57732138879652,97.571640721052091,-9.8176567191113939,-127.27011226775193,64.367105959284544,70.044828878825541,58.383802121150396,-111.88128276306651,39.760818247986315,-6.7313080294866552,-109.50206163785514,-102.28637550555722,76.766917346042646,-24.240031001174209,57.455318851855012,47.684821663796015,-165.66687376986309,89.688813656326872,-14.021086253687383,82.423493304316494,-65.231890940941028,-31.979296169414276,64.111352485788501,56.042400311193816,35.596830555860251,-19.46875864331281,-15.517391447557685,49.571359372238319,41.261263914110906,-64.012933292039421,-45.755839271048444,24.779297332905816,11.133735255541335,167.01153592978801,-24.463352551683784,-11.488312157689888,59.411466137216564,-32.863811217463777,25.793813342316895,-31.573904124118641,62.409643632046411,-120.24251261724311,13.922160002208457,-69.285081040361391,105.1056075535071,-8.0538580354261722,18.60582199027548,-7.5589715048932788,-129.3440600841808,41.379352622744605,67.862507390187233,-99.64652807716827,4.8440937621492459,-46.935287281687636,-8.1362385129948578,12.972840463570062,-4.1810278808719916,3.7364306560280731,4.970195333599591,-8.0691790317420171,35.367860221657502,23.104970599372638,-43.652043412854752,-106.7838143912645,-5.631889779347679,50.845912412317823,-35.66178923267789,-10.642172295952594,-26.534962291711565,-117.0139975261628,-59.25866698282298,-125.05936425711586,-51.766620950136257,81.949518145389021,23.55092903857124,10.018726482599353,-19.680895810932071,61.0877211234329,-55.438503554390905,49.314698731193864,-64.466350141379507,101.01603180275754,-58.601571159525392,16.112327722356532,64.77490496724468,13.131163667489202,20.34352602276536,-7.0250019546511666,-41.903238899016777,-93.929100745290782,5.2253272541362357,-37.029346097249402,32.067939901691474,-51.96516189801261,47.172770102319646,-41.882569733168921,-114.03888603485828,118.58125493815659,-62.028682516291482,30.278519168083172,10.514182207387137,-51.851055077444904,80.236225177528667,-5.3887325111779276,64.706296094648735,44.625001192617823,6.3969670095669962,-54.189003005205478,79.817196799848517,91.040470755974383,13.51659383061688,-51.763168069633238,-97.505342159456433,0.44730594568716575,41.784306043983889,-6.8949200286124359,137.2503946407312,68.342084275529842,-40.897872257249801,-57.554652684058709,-15.441581422874954,-19.070874158339954,13.89640589485024,-107.220713046497,-118.17588000098101,-46.5651196364431,-9.0207093880061997,68.118308207327587,-55.896912280019585,-59.24602596204641,129.71611007720196,-8.9096240239270408,2.5651892009651078,-17.471842426182963,18.446650496708187,49.391192509708446,-40.538849004981572,-50.683715148909677,-45.106701442837199,4.4832832356353745,18.845687928773042,62.582288435516986,117.87848420889694,-46.979730049206665,-20.273778843085086,41.509239467579548,-7.2724291216947385,-96.227393477145682,80.61899285137963,-19.309751055887979,-57.082183571949436,34.170485056624209,56.310482820060137,-60.900697069170619,-23.635579345388702,48.688250798732042,89.79961291266801,55.34410618983992,-35.374966521391343,114.90333688691746,25.881772945133669,-99.766042143095945,-15.224415054567011,11.204874451185447,-61.262846147230675,20.971190497929065,-28.029127130699603,-9.0976880899554082,-5.6587255354549164,0.71475385817122472,34.380043228178266,7.7056391939396729,41.271996860311802,-76.857357595842217,22.612650463707872,-29.713079176633041,90.705837678978654,-48.716459681534914,41.472998716772196,50.805072446837073,-65.191004493216269,-71.321970452498903,74.47493238639791,-24.575874514664619,122.26151609197498,3.2620886746883748,-19.954388083041145,-22.742409996733961,-5.6031704945455303,5.4324009946235368,15.623754071409515,6.2836590531105898,-68.932190883903814,22.283430136671502,56.07853228860084,-8.7745339678783445,-1.7345152885668398,-1.5648273308559044,33.008426505917456,-92.003269905957964,-25.90551048446823,-16.208183743002785,27.695105001199632,125.81160598097151,-10.637267425571061,26.097112888231372,65.770911654727158,77.410344284345427,15.129937338738049,2.463886242531899,37.475585708420958,47.649054166574352,-16.817887045363747,-68.906480877214207,-44.214034023079478,47.725830961510212,-9.5301662647651568,170.1939151622355,-59.389806528722488,58.885169022968242,265.91071361428322,-14.353603299521104,77.239935890419673,25.52767228963399,-94.055460858540059,96.030398881799712,-121.32270059408268,-117.21848762259395,-57.175655608682696,93.818991215303967,-54.790397226165638,-46.471527291954985,147.78024997171985,50.212856168027919,1.170674848182415,-4.4337900893128079,-54.708420559665981,51.823638501252212,-168.26930036344453,10.523701383023628,11.982007292597601,116.0918806933536,-130.94689594066742,-78.222429121682353,-3.296367367753831,-18.550938577635847,-198.24522694614512,-130.17951116261315,5.6043653712733814,124.7652700500963,15.578041676234776,-17.750616466706553,-57.680829989960102,-90.31880388816711,-60.299690636067339,59.534972398951069,-128.49301827232597,-17.730161281749588,9.5103491688991681,-31.713651480770796,-111.53430198420617,98.884699447485787,-324.7173304075427,155.70545812669616,-71.885368306451397,40.960202741867228,-117.69840031526161,256.44270642362619,-23.740684130988591,-107.77057154841577,88.736054899656409,192.29162202701275,-166.85159258436749,-11.181932345474969,114.0385419437967,74.897052754573792,-269.40271171983341,-92.141697649564563,181.90020639594456,-80.648282576024101,30.051159410045663,37.537478590016065,-163.57129211781887,6.5896437933521099,147.28199261430501,85.753452907037399,240.24519087780345,-166.67437101467053,118.13696430773464,-72.182758370801224,-65.082709239972175,-57.739033700993161,-7.5512384208947125,35.604002555119607,119.35915351892278,9.0091641808131016,-94.762781212262169,34.48321872771912,17.354910794401377,89.411814553977706,-128.1622541222473,17.341533844715858,61.690159085125501,-15.30501795269846,-80.811114708527754,120.6621036095125,102.69732762839726,-172.74421199709465,-187.62319831885659,-154.51965746499772,8.3381001388791418,-123.73287659009256,-114.58981233395428,-42.810470970797084,-163.79396877109218,145.18411265933233,-134.89102490541308,-101.0305738674094,195.95390321923389,125.59464649428715,-127.96836348931674,58.915113258146619,-103.65557658103953,73.38432695863591,-146.21623499624977,-38.799337656794911,-16.431333865492732,30.296220070777629,-29.745408531288003,-144.15982166808016,-197.6127800826053,-97.296392627017326,92.829442879951472,139.05425182966985,90.077988454759208,-113.73585318121037,-198.80317627919064,17.401163053229325,-58.968944626908765,-166.27786489961608,-154.94440591098308,131.49782313582313,-215.34085788597423,5.3952935440513041,250.86583654716003,-34.376114321111906,-168.63499162177291,-111.05218675135319,115.72519469114047,125.17578657810083,-80.248505759466141,-287.18562933895993,-93.433708899548705,20.969340785695337,300.89479264181733,-93.484431743638154,180.43109264916313,-102.0268566396521,-72.944924021928585,-70.605776850857779,-104.97460389501515,-301.91469820439522,24.003849774123552,-93.212555014990755,-160.51023216926384,-46.640715923896529,-140.66505033174411,-8.7635700116639441,119.05139924047104,-93.270644992150565,-22.787973514575743,137.17351596664261,-70.09038717683714,-74.524519525391867,-152.9590362046024,-74.339845801733361,25.384714241871816,27.572592438403483,61.637326768234864,57.363335776829274,81.900388837559078,-166.52992214980009,184.98152832548192,-48.144668262021895,116.81452212523243,298.02657244330516,111.08333219874294,136.23894582244412,-76.033149242741132,-48.606473218651502,-37.699023185815122,-70.646280388924936,79.220360326093299,2.7503016161788452,3.0786971515957759,-25.315956539164716,-68.926358062943947,14.888046806845821,-107.56883670601664,-112.98430690763168,-240.58551332830817,30.949960375504709,-140.789741081541,6.7469981292158252,-182.28615957400399,-149.51345415677582,200.94775208414839,77.975436099570516,-137.85648028133917,34.26153221700001,-145.18548960078431,79.263696813055674,129.19689800985194,303.96418365006502,205.90770862735712,-65.513798846233897,144.5478703408393,37.064727842697792,-120.40293660627304,79.577378453564435,81.679715762131309,84.881743234930639,132.45178975032428,-74.567769587264166,126.33918470559732,-122.97818929167282,117.16219176658676,-27.301041428005689,158.34776985446968,-67.915064154966046,129.26846683503729,186.86828310409973,10.096836331272989,-22.49203928049949,-127.73114985557996,-96.900128409357691,139.66568542428362,162.61331137452987,2.3029267476620845,-89.994719857238579,50.804689507528458,32.594202715409594,25.423953586788983,-31.067083072766494,143.28790864430971,26.308028147700071,-139.99371614839487,54.553755039152961,-202.08333429583271,67.553857785604208,-68.00340737330967,47.441668379777063,-244.36954263348537,-34.554228174668879,2.2519732300465733,-242.98120206306706,133.92376627584355,-12.664621952635684,-120.2334383121745,-94.735832016998856,82.267986309121198,-87.322353923673035,41.439336079086132,150.52849457336708,202.56489298307997,-186.32044845621502,66.040816259931603,-24.945465248155603,67.515958973492928,-9.1875485682002775,-35.298569294982286,-253.76145937176375,-4.4656381620243444,-227.02006775076433,30.391682000188155,177.67636998253849,59.169919925943375,237.29313257262839,47.154178041551376,-129.15904155459879,0.61853225483061181,-92.57183059992154,158.05791606098771,-139.43304059034384,33.520291388759169,-77.221820822401227,110.64564651946048,114.34306576510474,-35.920481993113242,-115.53705506670636,-38.942020583442527,-103.38291751558853,145.57691322996965,45.811426867938039,-36.405053547128091,81.36250306267209,-24.367690035434361,-105.41736443707805,-27.687813771720457,-150.05344433984877,-116.74515483605158,163.39051193477241,-45.759394448842237,234.39040193303077,37.108332169509843,-87.630625518164933,-56.192046291502798,-118.28924566044252,229.34251087720668,120.16771192588836,185.60908177455656,-153.04534834162018,249.52663070550753,-103.79933484172301,-38.682269828409645,-122.59002336782672,-69.693390158847563,184.24464581391504,21.12457514713202,-24.750837645697374,200.88020482539008,207.10292028794112,130.31282431033915,-17.66304765616831,-101.43950572065262,155.02554548181388,67.084273942247506,-36.387965600491405,190.87644518021315,78.388926550256926,-76.393597236923796,-5.0622514076414191,-134.55289266690673,-98.451656126444945,169.00906317349137,-35.647354120901561,194.97950158051685,-59.218489957292455,-141.26587717269305,-37.343014769103249,-49.616753341658438,83.218960231726513,-33.405976680368113,-200.15888366490799,153.86218157610958,47.045029535092482,127.75841763451309,132.2300462031755,-187.29361529776742,-49.057784878177301,18.35861751974042,80.558463070565594,26.508032535608749,30.509787681158684,43.381686655724593,-29.447341953177059,-244.58659336380637,95.711199375068901,-140.23041464017888,-225.48346440617274,-291.06018685818833,-112.75848762366562,-116.1548320226447,-21.569267924549287,75.704877313381616,171.89782232675503,44.036075008293821,125.54477286757871,47.296027160262554,4.8689713827151291,58.166152569441628,-121.52005383870977,179.99726517120916,-14.765179666566393,163.4232082212979,-126.87351148414123,109.97036389189283,-106.54756767154788,113.67012022744851,8.4616443335394678,50.922814110071599,-62.414763464358359,-112.55820528680978,-112.23497240011378,203.82506480211208,130.27375282519779,127.38183403074915,-45.798031373542706,-75.074127067491048,-86.180643440698205,24.488823318936497,223.34792230027762,-77.622710940851221,-26.013032874611412,-104.06059433488424,-166.76850318911227,13.926317529997448,-59.840010079548641,-158.28295818938227,-76.465179270548376,-37.410479892291377,109.81917501576417,7.9420925289661284,-109.22948457597917,-45.142824779884158,98.948194446156577,102.66638969535352,101.81537488088239,64.872876282817472,23.317577511496559,-114.26929489903348,-94.781487081476314,-46.224556646626894,186.22423123170816,1.1051166175544669,-130.58888806856459,-7.3769796637013769,-39.173903386214889,-208.4672241615969,-117.55280670153473,6.1718482781762871,29.871191275952562,317.36296994268014,-105.96080725896348,207.77076308732302,54.075366797668508,16.621443824648104,53.548339470339663,-51.969751054587036,-39.376178979767239,69.793240915534795,-37.298145815753408,42.131986344266323,53.746535610659627,7.2424497742842391,-30.582224508380847,-58.528053833021602,-154.11867362096831,161.73434681207868,-243.51224601523933,-92.06471692853205,155.54541700307757,-12.716847815079348,278.16657276922876,5.9841182246672462,121.28848467262736,-2.7230649464394219,32.173370196974759,58.603097696877178,26.799423185738107,-58.984168173900088,15.825929126649157,56.27231262157644,143.5224160412651,-72.025597830763758,-85.996936500818776,15.302129405040166,-136.23653850061814,129.90226140246926,105.54654358618234,75.975470848954842,49.419261780810203,67.425672919435058,-60.205283582707892,-79.487175640720238,67.040595266316615,-16.824211196005351,-270.3746318626757,-284.25220613017052,206.71445012183378,-144.40829797326964,26.744273920286744,63.591939064236897,-153.88831044589116,63.71715821002708,177.57146597786982,-87.110562854757276,137.9958668989978,-138.57810320851786,96.069583969935906,172.4914726041585,48.715232470779625,41.3655709540852,15.766269444183678,14.425795002937356,119.77728590155408,97.540579556852421,11.871403653059453,-59.999219898466798,-20.283982536715342,245.94503938369451,-87.542935343265071,-160.23461176528895,-78.624685576257818,-83.222915129184969,-55.358268506917753,25.825691935641956,98.015454015427338,150.14701128323142,-230.01006295800789,-20.297358235879258,-170.19346112236877,73.452988463497178,175.6809840534761,-129.46218656504243,-242.77807468255739,-131.30067026897467,37.98675947196908,-31.929240313973267,64.797840923167598,131.22229471721633,116.99259626924078,141.86354985899706,-105.69410277604797,11.295411044902153,-106.80633327652629,-67.19278681216052,93.106947026099476,66.536651035879473,-104.78495496699965,-36.655872077675561,-130.6066890658735,88.446939954128837,49.275443229899984,-75.961762061497907,116.12050214440444,-118.32982511871236,132.30470731579521,-141.45810804178504,75.511244430649512,77.303829110630048,8.8415221033747287,-82.270351262252376,128.33406544622167,-90.574627209912862,64.924525946806128,31.371324597413015,104.13859257112735,-46.581826149406162,-122.36607436835655,166.32510258240922,-69.980154032912225,-18.450980742480876,24.110695523894897,86.674854320005252,-103.23544802614435,-47.309640102392464,35.368359614879864,127.89063183610034,9.5453955571436104,219.233656392005,36.024945593986061,58.008042702586721,150.61554154805356,28.990267784251131,-143.48668914806495,183.59115386684687,167.96326790618591,-22.126383426614325,-43.808219583927922,-249.90659858630059,9.4992683279185499,84.195887491099839,137.2654824813356,-0.90243418003753462,26.04569191406253,115.15576071318212,2.452807381389718,85.433582407195246,-84.313939651706207,81.66208783415631,33.139519163867774,-61.781127364084497,97.793883525699343,-105.52826509233989,49.08679673690785,-32.740539165655633,-20.002174028977482,-24.051100980989531,243.33608348404894,-122.40983265918567,246.7348801182512,196.59991182067779,-97.108369032224843,65.009446921475501,-20.090399562170631,-118.12223579849767,-135.86588510869049,9.2856956098673038,-62.61965690382511,215.65745370476895,-139.31387073401095,1.8528838404957959,34.095046209340921,-38.803087095170994,-238.51938199865111,148.34771800259171,24.446217884189736,117.97067892303991,-128.69703702226948,39.840350934762341,77.063810905270486,-52.593518641606295,52.634866606923723,-159.94473358581763,119.00035827955824,-70.1781251345963,-27.462551890072486,208.40427710926713,131.5259434262409,-28.105895399469222,-81.711494949753757,26.513009167276785,141.41508151596884,39.129729037261271,-235.44923337017156,-3.5861437630400488,-117.08807171686331,-127.77500057127327,-12.911868874317149,-30.694648369470073,87.041529894285162,-41.382374507022845,-132.58960089273563,94.213253144879957,4.41332659341046,46.49485014103459,107.74354716565924,148.78816503350993,-214.19449801901933,153.38619340613224,-63.441720376795971,-144.65892371053098,54.256690421035962,-103.51594530220493,119.60185683590443,172.99711381587679,-101.13593550045312,-84.713840266579069,-77.132231822570702,8.8356249813277117,-55.615600215818532,125.19066296061764,-150.14091034299577,-41.478466963423728,-266.62510255863879,-13.237983878053356,43.198970337203498,250.18903379781077,137.11874403591187,-2.3977951934925983,-144.33586531270376,-361.40952671571085,162.29293437849938,123.52741606606797,-125.27471647275026,-144.0682730936345,31.380041401195257,181.32500495102121,98.850536800605397,211.65651142600171,35.17972316575711,21.122840641119765,-89.477614987007172,-104.81085522301733,-149.51780821412456,-28.124455992421147,-11.28215798712087,115.89512607487453,-86.015440365194976,92.609302763981773,-153.51155958070962,34.001186034985039,176.07745197899541,133.54187149093283,26.575612957553929,107.63847425276148,43.035123383365722,-175.3934798632593,-6.2394912732540995,-177.368344650393,-38.301617489350207,12.396064043371652,59.49128808591162,181.53878645385996,-158.05017193977704,16.70534145788865,184.85262266908347,26.917203554379391,37.323538075381535,-45.457700387937834,5.9139429956932652,76.424265247558864,-156.2404836376864,-74.727492130718872,88.703676598576266,-108.90282670222621,-272.03587828933655,163.79258975692738,97.317772719287234,-137.08802707736768,49.482382429312523,113.79873266070443,-45.72826467636385,124.81678458641269,149.44242537961438,-232.20742675975663,-87.021993077559699,108.79021510463792,-136.65971089685806,266.59904025581,5.8398192131770159,-107.35427343261283,160.38270295058135,120.23403630820913,55.332648206015286,47.942730572352183,-147.70953153594499,-204.77630546022124,0.28970842776600136,2.3320071750164431,-203.41315922287282,-175.6834608315657,-208.82705085490778,-16.335637339176742,25.364028741278766,10.305374128374446,138.85255597496405,166.84814157938632,-49.853468063308405,3.5989920228469217,-59.706854238572319,-196.59671013158959,149.04010714880528,-252.81523128922603,-39.290600041443952,82.396380537983646,-14.136394265293674,175.82774179856906,22.347923986045956,261.75912538778294,61.813730832017548,-82.142713394785346,80.694009904252582,26.046550156828232,-81.963465488689323,187.24699388539727,-62.972353708929582,106.57182004339498,120.35550108412008,-221.01102463732713,81.333920549203697,-82.489029777683669,29.449141860403159,93.022776655997035,-151.44283417609762,114.92859815018409,194.53729272756135,47.117502591640957,-98.226036994315479,-9.1393659399984131,409.97232856210286,50.294475186934463,204.87181109924597,-193.46216297406465,-108.8999293934489,-171.54729675172334,-176.39575728627813,39.292130476349328,-138.89414579501729,-144.62458606891266,15.407373703019474,78.027866672912126,-40.30570796879627,1.4452143259151455,282.64062873441458,70.764348712562793,-200.38902160392445,-30.42754680274335,-36.699575313663949,32.391097215942409,-46.58614472865947,147.51983713535756,137.89704359518581,106.67956249007045,-194.02947354757674,-80.837289489126334,-281.37410074895541,-71.553163050813765,49.074013430103079,223.49737531984385,-214.88937345333522,9.9566888156592697,-65.775630658213146,291.77878352873046,63.034177138802988,-223.01131119416351,207.9487542200084,-163.15639180036499,-36.079097705540335,77.569649278354547,342.79354161833061,-157.23716750221925,-86.693584893641585,3.1722718606930727,-156.87593343197324,-122.96820604951068,-33.656337600081308,0.7895033092660988,-88.464313389062596,-58.043433797735553,33.500626464289489,148.20469674849568,-186.44523194802321,-56.807082005387457,-101.46089513966973,13.722668866505767,-20.30674060943273,-81.591566785056955,-33.807322821688103,-296.40511651759272,102.9854181417325,-16.431480260135153,-238.68644513551664,-110.64598662639582,-56.637227774965794,-156.80014419850238,-46.312609084242581,9.892924126348003,73.161600781195574,113.94899975000165,-8.6230548760151962,36.80305477369955,-37.864828277085955,58.919772297899385,15.271273490610753,-78.356867826608422,113.16001728644839,-93.010147141750778,103.37163738486693,126.76166164072239,-66.750332159607382,-98.035421051428884,118.05586997378327,84.691749099001697,-350.15677154571483,-41.163228257230273,-61.830358282069881,-58.482161378499505,-232.68404671317035,-78.916917039666217,24.492037415177869,29.883464613558047,42.87787802650363,-57.224697136078916,-142.82412274526729,208.34872865159406,123.16975246086513,-130.93758022962638,-232.9021737981418,-166.98180109517193,-21.363256014732258,-7.0731728276892483,181.91647961912443,-26.119734320269345,65.250037918561034,43.557856868616504,235.81450172620407,-12.979752469342973,30.472879957343793,166.29826682316758,8.332304590963858,109.19783635631146,127.6756643992416,117.16770584888424,109.60500742704062,-91.012585378089298,8.6750784904956149,15.073480467220122,-44.802876044187087,156.55494492816226,35.479658175131057,-219.16559778210666,171.49908544469781,-272.47245834071043,-85.149427967986526,59.935819949287904,-94.251484963161332,-108.9572558576441,-169.07861837519692,-31.285442673585536,-177.85623262426446,97.754364628739069,-240.32238891346603,48.969185815075008,44.526285976816709,-114.22164104125122,-21.284517658972053,171.89036786943674,-64.05741696722211,43.043350794640915,16.253555411191563,49.632628843944204,-124.28420276460352,-43.646079701886258,-86.202415725596538,-28.898371123112288,-92.773833445907968,-180.12265590163739,-126.68726272829112,127.81027882100176,43.359985723423272,-155.34151264659226,-51.812838045918504,104.39599835552767,-109.81815772619066,-109.67065469344686,-233.84533028497066,130.83105502383268,171.82973313595195,18.846169365569949,-99.512097083770726,55.67892567190092,-29.778153620930468,111.95963589205958,-68.762812409846319,-137.89757961114316,41.687834097323801,-354.62974872920842,-149.39079097489639,202.03675272156602,-91.893064469666115,-35.707991818069544,-55.524643937346042,-135.9586980035879,77.01117759336276,-125.17511109415202,53.630739912498569,30.677905676393998,-96.913734434274119,-94.039848920877319,-169.8946055704086,210.63063503040746,4.7240711498695589,-24.716124745427202,-240.24948148069615,-24.531291799204567,-218.17705538928124,8.9491797508398605,-68.088727481181735,255.68565607211849,-37.734603027212231,-188.18834802500101,197.98304284413837,-59.348983357665915,-274.36756807008828,-89.33324376467732,-64.195642875524854,-68.002452701087904,167.02042164455756,-39.936986102269444,274.78474922308413,-21.383927957688485,212.41122745605418,114.12516899623731,-14.724149644996444,-148.80749825513965,-30.561522302870372,142.56146860762536,144.13157293642843,-41.751833344717042,117.35999635137635,6.0178363835667135,212.21491667099497,-268.79264858907072,-131.55702144293042,-153.90752567796,-8.6319343255074603,69.771252464301483,80.19462783298718,-156.36635813453782,-38.65305453329411,144.08773646283484,-68.705758043522749,-219.95174163250124,127.48159629503824,-143.10146170235774,11.428524879084456,143.11701608381671,-36.602515263920679,40.101074690312501,93.249496870841369,103.54742790536187,5.2577947045521523,-0.57747092052132132,93.57694198744116,91.953442027740763,-245.90755698211606,-138.80626118501434,-148.90066992093864,128.13368373380064,-123.86021690644381,186.59425730565175,58.753150345720329,23.013474647001427,186.47931678482595,-173.08033243898095,119.06646923021647,-30.787726115520229,-179.75645865745975,-140.28060091896717,-117.53517196057689,194.66288499022147,45.334321358534197,-7.0702273027668383,-142.02508301680967,141.26660698994905,96.093483728816238,37.978099273736433,6.3445811874571447,252.51149477356029,-110.02400091866132,102.34580047414082,-75.856484932845632,-70.790214549748455,86.343719188772326,201.01498002848632,150.6720884366548,113.09726358194838,192.54805129847816,5.3052532530883347,4.4240896723229923,1.2760544603644073,-21.020086287330116,-1.8125946987811261,-153.68393369291414,-206.85165655112095,106.65040324479989,-43.485096674803714,-156.6834056534843,-44.193089701891068,244.27482111118985,130.66178352882233,30.867198196103061,69.487930536097238,176.49452582044998,111.16811317270123,116.88176735661146,-305.14477293956611,-21.501089945598892,-23.47971347698973,-139.66514703605441,-205.29899265306216,195.64242834268023,109.37827193816965,88.152256535802465,-40.219423157030462,-100.92289404071352,120.78138029760774,-57.940388711101527,-233.07025308221415,-175.76421051952093,-177.66640162499164,-87.250554869863123,-52.235711879932182,-264.6545139570851,53.804450525497231,-16.639306574595935,112.75732054699877,-210.18389488722684,32.387358294754684,52.260192264091742,148.539074933732,104.39300963339699,-153.15319660049286,102.27813849108128,202.56855411764857,95.157396994618523,101.17696727548108,-125.14839691460466,-45.754684620289183,1.6424217363504106,90.313499512425167,-313.18746574452803,0.65046098325177582,85.83787038880746,-3.1141857426657538,21.103206222790387,80.862503379362323,-129.31301446744635,7.0524120956154661,246.4799047475833,-153.02454316375176,-218.89025131402542,-167.96240786279154,226.59421067744432,130.58798628543281,-71.870040845526219,-113.06425973782855,-83.431238752627436,-166.47851895553941,-2.049625922746749,-160.35569707311055,51.794584579611524,77.279551430967146,79.354553272168218,-85.097779754547446,126.09369242246174,102.85982834562364,258.52970143966638,68.017363649447333,-168.41386958840189,-78.515636949788941,167.85292723118351,103.53598536224749,125.27301596639012,-13.809421117566252,207.60799236627753,-91.347417407620839,-7.2191568660607572,3.9576437115251508,-219.39885666838171,40.000571322102104,78.79540072441236,134.57959359204833,-46.847521657498085,156.6314817016696,-30.299142433924516,-153.05783276407453,173.50413445749336,-141.78236400306304,-19.156075196616882,31.738947917685223,-167.85116695177604,-91.3149629166615,100.79521814321424,121.27952150928424,68.193368801170664,-200.45511307475437,-121.12695311398882,138.24816058788525,-238.51545304427623,239.66687664782211,283.32746561781664,-31.407806038586902,-0.64733066022699859,-40.056738062347094,90.93983554807717,139.6829302736316,48.420785007004376,-29.851260961391198,-118.25897978706436,-105.59653148872214,7.0607799879375222,104.31018834555738,54.049998126478584,-49.248869219959929,-60.17321327895236,72.306664656576032,1.9776553908382226,-27.505726377922116,104.53339585044225,-133.11049943849966,-114.57212551877348,162.07544381365364,98.346820795840614,209.22566035881493,103.73237511753375,58.891820106567422,-19.202770450250974,-53.145639782408402,-89.699207040513073,-146.36386098527311,56.279315687735398,-37.931477874733368,101.82189322635551,63.911530620091085,-12.016769678199481,202.85221930442196,-351.28033977920296,40.023623196342548,-141.8883922718762,-325.37881988035423,36.000215436685124,40.762069388131444,-90.402430327852386,235.31924021729918,71.270722252967531,-110.37420241525669,-51.236950148909671,-179.07643211465407,-63.368085969510972,247.38441015049867,-94.410511428069142,-111.75289960680144,170.43058265774334,39.898352224492633,126.3593552008968,-222.34789582022154,72.755629544955525,-147.55840733937671,-108.10353840867378,-35.189020739341274,39.79503389232616,203.8253604814374,19.052352964313457,-66.538267973518643,141.98943432061819,-253.04654370727422,-86.563808539023796,-49.616706316470356,44.646431448998484,-284.20873740220441,-17.152247155625489,-215.74332257640873,-96.701383175851618,-39.337222891880351,-80.920629904049903,-10.630149280324725,-144.65526585305182,186.89716803898745,189.81650565101302,135.29884243442964,-39.082325871535701,136.36044459882578,-90.667792543427936,-97.459062433328867,6.7768647398522752,-70.127843529995729,58.552443961175321,-234.1983275041639,8.4460107640012865,15.977177334198814,70.416886347042578,-105.54789116416748,339.27752420639774,188.88309084271222,120.2208672235594,132.12543442442825,15.119535391517644,-24.827371008626358,-98.135555871289313,127.07565722765266,74.965410668499516,-58.455162914318642,103.60025748624022,-117.00699056621697,2.3858597588371069,228.53678854362769,159.05707707971811,-49.346339422616452,186.11461097396079,-104.89334342384147,-116.79232718369356,-217.56040646088925,30.765155766724487,7.2747844614443107,-92.841814255756091,-13.815733079700962,236.51507060974842,235.40315332079587,-120.58995540859976,-95.274129108040469,21.192741529475143,-28.991228782929866,-182.53375646636715,-58.729008006295629,107.74318138857743,-69.370464548892627,-79.082717005663056,-158.38014457961594,-311.88133742024559,-81.977463515891003,-98.722716487147821,-188.14646999674716,-4.2624923276742379,-182.40596361076476,-135.85172198483468,-69.141609420024039,-81.781206368303188,-210.06854437880753,101.11877908560342,248.07275035159165,-108.28013836817505,168.85977598975771,310.04146188320698,-53.737591261613439,-42.095909771531943,-18.872707454785683,-136.80759857327695,-79.093853018608655,153.28537796208056,8.0659991576207375,88.669234201853143,-50.670130890828503,2.7134868919564923,11.923761056109271,-22.411173128245224,135.55299719820795,-0.28403610242247623,-27.299688161573371,-302.32508255940979,-116.53236946831403,-276.82014688062071,9.4848359462685465,22.003913973796251,44.796563729424612,184.09414372019842,115.05062443635737,-35.24283546423095,-14.979448102019242,141.98549828079604,-53.165049213884153,-100.70511612198518,-159.3755421676762,85.56805676322864,-82.635864599110619,174.19771423461938,15.130126695984657,110.39618841055406,229.04926390577097,46.964159390347035,45.524674995334479,-26.702306490023158,228.8600519336438,-98.097856687535312,1.8883850817567449,-18.129604468345374,119.58607662731433,-166.53975026793228,-154.80920330097723,-22.101488769239594,170.5476345110693,115.56603979811612,152.58961241466676,43.854659862665102,96.348545864290145,-127.00350293944729,-31.470210467556754,-202.67367278228463,-114.78956286814778,241.27707968214122,3.6722461862298985,58.779731347072335,-58.992180435993419,63.384949089029334,-76.127832729029393,68.400506545740541,77.098200220573958,-67.631665842218951,-36.350632864308352,-64.398129550752628,-84.171518835341004,294.5080919045941,9.7628445472053755,46.679192982597684,83.47835995660769,-7.6662730712621396,24.926837776281957,-45.223372757976207,-34.227339895936666,-44.991263860461068,-27.954351478077715,242.58753967974565,35.088035281788649,51.262125153561769,9.836934475182801,23.301080277126022,138.57631227221179,14.720046544567779,-175.93035770534817,-11.866024106354013,62.99897245955686,62.024693313264834,-161.37990101858503,5.819642340354072,148.38048121086359,-1.3843649888245295,-47.702919711638515,-82.382713191917333,22.864195918708589,-44.693702439804888,-28.954989428861246,-135.31168685422796,116.69867834757171,-153.38278736820018,10.912997225449416,48.735246749661961,-104.45963297181618,-102.56523481841541,94.458653818948605,71.204927023713225,-23.198742420444852,37.066920015706714,50.344319958056587,-309.48772894746986,58.352937463295916,-68.965048642415695,204.91476048261077,-11.851861962116047,98.199494281869633,-143.9181211119832,-270.21928212512836,-99.185637415507756,-124.90735536754772,159.04809688561716,24.802806277757675,63.985541313852664,4.2602857887116556,71.318598947888887,-46.956405782253569,137.58556756053846,52.665230870224143,-36.072878370195447,-91.309446821605803,-9.3326031118645396,-171.20828618920822,125.57319548067628,-6.0536679778352607,-30.470045982202194,-15.420674888306579,100.04588445319271,232.53555890246349,86.212534843573593,3.9264836263231189,223.47404612279701,-120.35310348458458,-166.02605056093103,73.5337407378032,-3.1170561257749796,-71.637669671326876,-136.39291330397828,-222.45835435316621,193.07599871376686,-14.817603667886544,0.14650270237039109,15.232102524630079,-29.210490760233817,53.87238618246964,110.17677390378041,-162.24077991020346,108.34640427249815,-101.02063399608872,16.813296621851098,43.779972087515063,97.642361622500971,-142.20296308874106,284.00815720130424,-37.842059560473608,-167.118062563905,66.131670559769276,-197.55529510801813,165.58629519585364,-1.7086173983393991,94.430683370441216,212.38662949553196,-225.17192658250809,23.622627192149373,21.244670300592531,-45.581266245288916,65.489827960834006,5.7259044438857707,-226.69660002601799,96.991381661974742,-94.625379812998062,-88.598911907618557,208.72895807970821,-45.649472944328245,49.533720168507081,15.577857765683696,-114.84537323056394,72.112548617293328,108.57517020025966,88.442364426166691,-105.00299550500851,-31.209636330771559,44.23731908179046,4.1590144047412636,-146.08716186863006,64.622501553469704,-243.97076818515413,67.164909590617924,79.766011691060328,101.05748653611488,144.98141404560624,-56.968452510893002,51.445724603836709,-17.048646675559311,64.226936324914931,146.78976921613992,-89.986287217674757,0.68504129993548801,138.28614614041533,-71.826967218235879,270.35514999942166,-149.89645174000293,32.378228360880613,66.715275288598804,67.129804649416855,275.7344187153775,26.859882918951651,285.30882705876894,144.2330357749085,-51.894997876002904,101.37938637332228,62.948254776315665,179.78059717466834,2.223558772248559,-74.011412367565043,112.02695812083954,45.468864154804635,-87.413609347357692,-4.8282862639345439,229.5995580965907,-182.67214868298069,55.625848334492538,-186.20632559682369,101.49312673872201,-41.234540725085296,-22.834201116567272,-108.93383856036752,-51.170232388598698,124.09403469793615,-112.01690842259552,-203.76386734352656,8.2413957436930616,8.2308430757512951,-215.7907510798758,-9.3557680153953697,-82.516248343921163,26.742600850627483,-64.062969732695763,0.91775398096826422,-95.704534528804004,-21.033242253312622,-10.084088784452764,-0.52174448616167979,62.608538036066918,-17.44753833386758,-12.415782617315649,55.414678224022367,144.73440059337483,-108.42459283244183,117.21735494037713,67.172550533646046,236.14371245310534,58.158262257555691,147.54272255399866,132.08232437167104,-56.695239719883006,-22.803566180943015,103.62759605175211,-128.9478288179449,-144.44354709705857,-103.76720363975747,-64.449080668065676,-216.65119836288648,2.5931938300733748,-63.211343438731106,-114.95551824097957,-17.104771860446021,-105.49125739670632,-41.518613600494845,-43.850201605306026,42.516660428632271,234.37252162298694,191.32614325244009,-191.24004459424586,121.6906685294699,-321.03911436616357,56.28137634688418,86.418190270138354,5.2083209105052504,196.26728401758251,-57.299158024677261,-30.454064644092377,-5.5453494122538416,-78.493728587847357,-53.003621307720039,3.5936305414160898,0.53701502754971386,-195.42830827399615,62.508752546097199,65.511434507970463,160.14009230343012,95.313744448220845,-47.270346065602538,164.41020208870097,23.427665348992257,212.97347301406793,-10.87997113237698,-102.56267156737727,-73.655630745316401,-210.63930474113027,107.71069470303863,151.39385661943055,36.656647427926075,91.190589548053566,80.844672222747946,-122.67617883160715,52.510593127340528,-69.503137281618038,-115.83076879038968,-68.288847597941853,37.531433677660914,213.99920636934962,-53.169616970505302,111.59708751698844,234.48913860720126,-26.059591026785498,202.05649494787326,-38.23865319565332,71.732608742394149,227.86716480715384,20.089234981000786,-177.67579062823646,-74.361719270960364,-11.838315335330385,-108.08387730254036,-88.388425538111477,-57.686013059327095,-158.09789172489374,-133.47765082720764,-127.08479235032034,-186.87875978017453,-72.220127914416054,69.18665146212669,-105.2080595101542,212.87947143695214,117.77408708218698,13.13768295961377,31.238034512234524,286.95512968637763,68.959196235651632,38.155554627756871,70.167311433286955,-92.366073382259344,175.52308316038693,-22.931537769066352,162.77901867985511,94.893191965418865,102.67289845094565,-42.122593546282523,192.04977729683429,116.52568261322457,-241.62813981343447,-117.09293517482202,81.855084124726375,-186.44530002614349,-22.97712522404413,-45.764485347993315,-12.43690242231574,22.044340091733105,-61.657205780373914,-22.057516637472844,256.68166474393541,154.78018468211073,132.294755503006,58.800492400748979,-60.278988283970477,39.234730072002868,106.68799125442661,14.795557295236748,-24.781340260847642,59.777210971382935,75.597936906368986,-127.81803238946938,-199.45439639508623,93.365664518603893,353.40431877847692,-170.52276809915813,40.859872987724032,11.982249731676617,10.23844922448648,-109.58440881983938,102.95043854979536,-35.950272709559307,20.468991058602079,-192.70004091168158,104.75669133921569,-114.58926825759488,148.43765592130256,28.5365381035827,66.584642484168086,2.5483037676374636,123.55538333779288,35.366411774747384,-18.592712293237319,186.03962793207234,-74.848170096434018,2.3691752642569881,56.472805764594469,-167.47321978480238,57.446422646283743,100.52936589548131,137.21649697757982,-180.64432451916798,-12.082909749366038,-108.49736360938843,-1.2677342971168031,-189.73764334888969,-85.493738999768524,-155.51236403584792,-121.3717861597838,-52.966769397415376,117.34364901296348,-121.24941856962261,224.18603632727692,-84.303480815905672,-64.996944297186033,-96.813141271350418,50.034095217823776,-59.714590903963661,112.6765336185105,10.8255319341974,30.793096104011511,14.558480573556988,254.06705787407884,234.00669214630403,-78.131843685088583,-194.28759575795203,-155.64990323704768,159.8371292661447,8.4506447375519329,-290.87335953437196,-197.3149548372476,149.73796739817172,-33.139891013571983,13.217318709054853,-67.342544568459161,-3.8436496883712863,-79.445482730487441,-45.248553977631907,-27.024291299603753,-14.693407263410734,-264.06612802740233,159.2003395650091,144.97762674602501,-152.56668886292178,7.2859582044177102,-256.47931632469977,-101.61554795403428,21.27340018581495,-85.766713720910019,-3.4810539569782222,-16.485621319854332,-79.68176243334463,-103.05523248607729,5.1346430810857413,22.694164996062796,-28.091974275559117,-153.09504437785216,4.29606558170547,109.82586796225219,-47.919345579597525,-74.369905499124428,-207.07223717347659,-44.368225417282567,-13.713306033600176,117.25380756060791,-38.340691481494119,-137.22180152657205,-168.56500306076731,12.396424976930035,115.28867918520928,262.67346374213236,-171.67575760192327,-7.7367912114542179,235.83000383163781,12.116726638017397,224.0050232530144,10.449665484983882,-174.26434260609054,186.03824347853549,164.00335644084026,-82.838130697742741,-351.14794866089795,36.76302605413008,48.541431965928339,-93.206197934416736,-66.054461177549683,162.68615603141512,-81.504839942913264,-124.02879206581403,-24.754554840431723,163.03372308576789,99.937402926654329,-35.572485877594787,85.197676507806932,-220.22205045988042,51.537928662731069,-142.99956666281798,-1.213517848161743,-74.401606173894777,187.29426758276881,12.308094952250912,-61.90843622327138,46.384030068670867,103.26835882472515,-76.025955375801288,-40.789898040240871,40.629365426816122,-183.85389973980116,75.508610747247232,72.77464212762797,148.60868842252299,77.48484922501963,-255.76327952002833,99.38973603522777,-268.38009485157903,-92.579234855167286,181.79269348471348,88.856134507701725,48.550810900485942,45.825470260852576,-33.401396665285532,-25.606774269372433,-160.10156293969834,64.763910506721032,-26.875299705769407,25.980600737639644,-177.9140725283788,77.352194317935769,106.46828872626082,161.84435702802162,25.415150676802455,-126.49743815602484,152.44289199971971,-6.2786747681601005,-95.9441022584368,-11.933440189851826,78.287148696878987,205.10851687984973,-133.06826256038707,-234.69788826981198,-161.5218852689145,-158.83903890608013,-56.32534049807829,68.652893769929847,-105.159214444094,215.68121312743352,0.07711846233383568,63.148492210499001,-21.211434178656248,83.95744783671816,87.722437253195579,149.66887328688171,-145.58725936606928,50.183224553686799,-82.517992010997048,-244.50194122130708,-118.74350461194642,107.86593978461548,-433.82820695977648,-230.98004809181944,257.64832887188561,59.719377483638652,213.29012333342607,-226.21531769622533,178.11001007957583,6.7377856801927294,-79.064146542913676,-104.78064240809837,-95.485036528390452,-47.65670441997203,4.6911722860438925,49.137197109341102,188.70335653219774,18.871991999873323,-280.95751303975379,78.096365472242198,32.378755115731146,-67.818626669407223,-156.60113362942587,-69.67919805882795,-227.47067278542994,6.6795301913771397,212.65230976647518,-31.628081202598963,126.18870944278243,7.7049260626352805,6.3210346682785126,39.042698077868316,-56.189605404222704,156.63194328707817,-121.86568603802522,-52.119341036991401,-190.7130965388057,-41.960894890180271,-123.03241602556653,-37.742129163233827,-37.508596249993332,83.247605115317498,-188.59606944492299,-58.971132090820049,-153.27171500699853,-153.93838623844229,119.90618182042505,-131.35772417619606,-60.188569186859802,121.36394928156467,-81.216699572339294,-11.513876513218619,116.62989894668408,158.83629868154577,-101.82342955957381,11.011374434283297,177.69987430611741,-30.410318189386473,-143.34067626200925,170.45337232893303,77.653789604001062,149.70450462993847,-164.87163654908221,116.95392845485013,126.20468138194411,60.080409662080875,-230.45302893417073,12.078198299397954,-12.039931469217812,207.75745795842164,68.866885722095418,93.922789817792648,-0.086323064806840932,-142.38758865340796,-19.577891695744682,-98.028048121580895,-92.677455383042769,-54.825252103107189,72.013933611727751,-118.31718815958152,-45.08617341547027,153.30625169213141,-48.382525000879866,256.62804349683728,-128.34499538475586,157.43314049153815,38.597550189537976,-109.60820223574555,-272.45411709882319]} diff --git a/lib/node_modules/@stdlib/fft/base/fftpack/rfftf/test/fixtures/c/fftpack/medium.json b/lib/node_modules/@stdlib/fft/base/fftpack/rfftf/test/fixtures/c/fftpack/medium.json new file mode 100644 index 000000000000..412133370358 --- /dev/null +++ b/lib/node_modules/@stdlib/fft/base/fftpack/rfftf/test/fixtures/c/fftpack/medium.json @@ -0,0 +1 @@ +{"lengths":[23,18,93,49,126,127,41,111,37,82],"offsets":[0,23,41,134,183,309,436,477,588,625],"input":[5.714040594175458,-4.1196107119321823,1.7028105724602938,-0.86261707358062267,1.9949158374220133,8.5505734197795391,9.4876114092767239,-1.7148917727172375,-2.1859592199325562,0.58345174416899681,6.0735470708459616,-1.8942544981837273,3.2647124584764242,-9.9776065722107887,6.366341020911932,-0.9063334483653307,7.2538044862449169,-5.3078646492213011,-9.2811227403581142,-7.8298915736377239,3.0123388487845659,8.37913335300982,8.094407869502902,2.7132043428719044,0.82549014128744602,-5.9871106594800949,-5.3688224777579308,6.2006525602191687,-5.6322936061769724,-1.9586048368364573,1.728570219129324,-7.9202353022992611,4.6052905265241861,1.1179935932159424,-9.8815918061882257,0.086514316499233246,-5.9538036584854126,-5.5780564993619919,9.6044498216360807,1.988305663689971,-2.5466165412217379,-0.9841499850153923,-0.6087275967001915,9.1153557505458593,1.784249022603035,7.8734151087701321,8.4878729749470949,-4.3187653739005327,-5.4895946849137545,-3.617834048345685,-4.9368005990982056,7.1923705749213696,2.1723872516304255,-8.6873665824532509,-8.5701410192996264,1.6398998163640499,1.7963047232478857,-9.5064240507781506,5.5309824272990227,-0.77822283841669559,0.40882689878344536,-8.8462306838482618,1.4009055867791176,5.0202862173318863,-4.0494277514517307,1.2678279168903828,8.3838873542845249,7.9949073307216167,-9.5923517271876335,1.3445243425667286,-2.5792856980115175,9.9453315883874893,-8.8118378724902868,-0.5591136496514082,2.9769641906023026,-6.162746986374259,2.7114300336688757,-8.9953246433287859,-4.4212725665420294,-8.3279822114855051,-8.3970153518021107,-8.6370051931589842,-2.1462707594037056,7.6274081598967314,-6.1509186588227749,1.5101312845945358,0.7765902578830719,-7.8474514186382294,7.8840237855911255,6.7879043892025948,4.3092007096856833,4.7364396695047617,5.341640692204237,-3.0447660572826862,6.6169296763837337,-9.2627989687025547,0.1377387810498476,-5.0242275558412075,-2.1924920845776796,-9.2144043929874897,-6.4946267940104008,4.8075004946440458,-0.3390706330537796,1.2399458698928356,-0.22967674769461155,-0.17702204175293446,4.7906211297959089,-4.0305557660758495,-1.5507137216627598,-2.8454538621008396,-3.5430043376982212,-7.2738531604409218,8.3499537967145443,-2.326395008713007,0.27914861217141151,-8.3491947874426842,-4.9167796317487955,3.6847689747810364,9.9122662376612425,-4.5411877892911434,-3.7431318964809179,9.1822648048400879,6.32472506724298,-0.34566708840429783,-9.626679252833128,4.4018005486577749,1.0619339998811483,7.9248225688934326,-7.5069443229585886,-9.2132164537906647,-6.5289327036589384,8.2280767615884542,9.2862746678292751,-5.5815068539232016,-8.3856593072414398,2.2240358218550682,-0.62984641641378403,-5.8286473341286182,-2.0757120568305254,-6.4924771338701248,0.93683849088847637,5.4446019511669874,7.4251141306012869,-6.1066706106066704,5.1870779972523451,-0.77998132444918156,-9.1460478585213423,2.3736485093832016,-6.0894059576094151,-4.6458989381790161,-3.623412074521184,1.3133134227246046,-7.1412157267332077,-2.412696834653616,9.8043593484908342,1.8677250761538744,-9.1445522010326385,7.5111639313399792,0.13233107514679432,4.0884592849761248,-5.2646871469914913,-3.5968424286693335,7.8693514596670866,0.19012247212231159,-4.6115312911570072,-6.0063683055341244,-9.0320798568427563,-2.1661463845521212,-6.4222238585352898,1.6836375929415226,-3.1028839945793152,9.8287570755928755,-8.0796753242611885,4.8968401644378901,1.1927602905780077,6.7222913354635239,1.5506060048937798,1.0352146439254284,-1.1473931837826967,-4.2371705546975136,5.8745322935283184,-6.7356184311211109,-5.5389463063329458,6.9294643681496382,3.5077679809182882,-4.9434389919042587,-4.3790973629802465,0.51066437736153603,2.736272569745779,8.5331793874502182,-2.8538900800049305,-5.3305187169462442,9.9719608202576637,-1.2543376255780458,-1.652404647320509,8.0351578071713448,6.8974062707275152,4.707324355840683,-3.9994362834841013,1.4744304399937391,0.75249477289617062,7.1797322109341621,9.7594036161899567,6.2967319414019585,9.1738666780292988,5.177407693117857,-3.3087829872965813,9.2843848653137684,2.6565822493284941,9.1779635101556778,-5.9671347215771675,-9.6332339849323034,-5.7635818887501955,-8.5207710694521666,-8.5993527062237263,-9.3209225405007601,3.2548671122640371,4.5516595523804426,-0.25778925977647305,7.3359871748834848,-4.0634160581976175,6.1663563270121813,-2.0490853860974312,1.0219780821353197,-3.6142872925847769,-5.3264764975756407,-2.0904581807553768,5.6694179400801659,5.9074415545910597,6.3703325018286705,6.1784863471984863,1.8201639782637358,-8.5039248131215572,-5.4643224272876978,1.1330000683665276,2.332236161455512,-2.1067379042506218,-7.9438949655741453,6.9573296792805195,-8.1599476188421249,-4.2396154813468456,4.7826500795781612,2.0000031590461731,-5.9468119964003563,-8.0691917799413204,1.0937696322798729,2.9862965457141399,-9.3138545472174883,2.0466302800923586,-2.2847882099449635,-0.43538416735827923,2.4983740597963333,-9.8270791862159967,-3.7198813818395138,-0.046335430815815926,1.2404921744018793,8.9520631358027458,-2.6747282408177853,5.8425138983875513,-4.8687858134508133,-9.6831265091896057,-4.3072374723851681,8.2598461676388979,3.2346824090927839,5.3073531948029995,0.68526485003530979,-2.7535818330943584,0.55018789134919643,7.0079724676907063,2.9933975823223591,-9.9667322169989347,9.1316291503608227,-4.7087201569229364,0.54036400280892849,1.8978776969015598,-2.369455061852932,-3.4311648458242416,-7.5875123590230942,-3.3201992232352495,-2.5882926397025585,-1.4343374781310558,-6.9099279120564461,4.8416062444448471,-7.1237334609031677,-8.5882548894733191,-2.7999163325875998,1.8062545452266932,-2.2797659784555435,3.9732605125755072,-1.4104557875543833,-5.5303542036563158,-8.6630658712238073,-0.14808719977736473,-8.9014895539730787,-7.3349250294268131,1.9150512758642435,6.2668866943567991,7.5647993572056293,1.5829340182244778,4.3721349444240332,2.4721234105527401,8.9782587625086308,-2.404829990118742,2.0224155113101006,-9.2624073196202517,6.7201849073171616,6.1478681303560734,7.2197932656854391,3.0655511375516653,2.7180710807442665,2.6207535993307829,7.0058427192270756,7.1987151354551315,8.8054161891341209,-7.3699620459228754,-6.952085243538022,-3.6966642923653126,-9.8367124516516924,-5.6261736340820789,0.89976620860397816,2.3707533068954945,5.2509258035570383,-7.6899002585560083,-4.1536274738609791,9.9830925650894642,5.8368978463113308,0.74222689494490623,-5.3924925904721022,8.3770679868757725,-6.6182007547467947,7.8999414294958115,-5.6842543743550777,4.73676398396492,-9.207606166601181,7.7631641272455454,-4.5003743655979633,2.2080804314464331,-8.7920931354165077,-8.7093174923211336,2.5009166542440653,-7.0936942845582962,-3.719817828387022,1.0218074452131987,-6.4821820426732302,-6.0335636790841818,-6.1047233268618584,-2.0849240850657225,-1.3190357573330402,-9.0339055564254522,7.1493207104504108,-1.3666852470487356,-9.8788795806467533,5.6708890106528997,-9.368275310844183,7.3968555778264999,-1.0481673199683428,3.4519233461469412,-3.5242160316556692,8.501206636428833,-0.21991674788296223,3.8592948671430349,3.1689405348151922,0.38367169909179211,8.3703278936445713,0.10105225257575512,-1.6147119086235762,1.5370173845440149,-7.3487276770174503,9.933953108265996,-0.049953367561101913,0.43382926844060421,-8.6314036604017019,-8.0013096611946821,1.9885399378836155,1.3908298313617706,-4.3229351565241814,4.4288687221705914,-4.003273556008935,-3.0186089128255844,6.2400567717850208,-3.3657095115631819,-7.4797089211642742,8.5321817081421614,0.37811378017067909,-5.0416154507547617,5.5691579636186361,0.83801638334989548,4.5414397772401571,7.9784498736262321,-6.1928332597017288,-2.9485660139471292,3.4510587714612484,1.9448772165924311,7.5514727458357811,-2.3974233772605658,6.5053578745573759,-4.4500731397420168,7.6207837834954262,2.5131871085613966,-0.86416848003864288,-4.0795725118368864,-5.3751601092517376,-0.31592000275850296,-9.66741057112813,-0.16946635209023952,-8.220902644097805,-8.7107254285365343,-1.1622673273086548,5.7730990834534168,8.4764190390706062,3.1749342568218708,1.1201575119048357,6.4873896073549986,-6.4427401497960091,-3.1336697842925787,-7.5880108680576086,8.301359424367547,0.94798857346177101,-7.1559601463377476,9.7778427507728338,-3.7967329751700163,8.3089348580688238,8.2683028466999531,5.3660874534398317,7.8319502156227827,-8.4125864692032337,9.6592245157808065,2.5865905825048685,-7.1719813346862793,0.50973005592823029,7.0331322308629751,5.8535374142229557,0.40344491600990295,0.69878479465842247,4.4761275500059128,-9.7241537552326918,6.1478379555046558,6.7126445379108191,-0.58312053792178631,-0.50680715590715408,2.0922049600630999,3.6888584122061729,-1.356558920815587,0.31428549438714981,2.1963848825544119,-5.359183456748724,8.2036787364631891,-0.77133379876613617,-3.8070836383849382,-5.6546618696302176,2.0979911275207996,0.93697492033243179,7.7375716157257557,5.366284316405654,-8.8593739084899426,0.50272893160581589,9.3652356881648302,1.5163625404238701,5.5053070280700922,7.6953421160578728,-4.384916927665472,2.7012406662106514,-0.24802359752357006,-8.532527256757021,-6.185592832043767,-1.2586983107030392,5.0575604196637869,2.4180911295115948,0.85771088488399982,-4.4530727807432413,-2.7941825427114964,-1.8259389605373144,-8.5560457780957222,-1.4613811578601599,-1.433053333312273,-5.3273059334605932,3.9692128915339708,-9.4388226605951786,1.7075477633625269,-1.2446495424956083,1.175207793712616,-8.2825236115604639,-4.3743260577321053,0.70199172012507915,-1.6250761039555073,7.3459863569587469,3.9928371552377939,7.6141775865107775,-8.5171656589955091,-8.0032191332429647,9.8960432037711143,2.7982814889401197,-9.2829152196645737,2.043908704072237,-8.0263163987547159,1.7003015708178282,-3.0314076971262693,-8.8691110629588366,-3.1496263016015291,4.2308025900274515,7.0992419589310884,-3.0402624234557152,2.3095034435391426,-4.1755281016230583,1.8992416001856327,0.55366744287312031,5.4887949582189322,-9.8230159934610128,4.570199279114604,-8.6606018897145987,1.2640500441193581,4.8891796637326479,-7.5572751183062792,4.8771057371050119,9.5162399485707283,-0.55503163486719131,-8.4166132938116789,1.9803832937031984,4.3021110258996487,5.5801242217421532,5.1479167491197586,1.0369210038334131,7.5313977990299463,0.20294549874961376,-9.0949226636439562,1.6347992140799761,-3.9295179024338722,-3.4073386993259192,-7.1414679754525423,-6.6522410605102777,-4.2154777981340885,-9.5353079680353403,0.078984862193465233,7.4986577592790127,9.9410971440374851,0.01985589973628521,-6.2818147148936987,1.5401158761233091,4.7276203148066998,-2.8852537833154202,7.5397194921970367,0.065642623230814934,3.255647411569953,-2.3338500037789345,-5.0169535167515278,0.062282951548695564,6.7896454222500324,-6.4292568434029818,3.4802608657628298,-7.2555236238986254,-3.5855253878980875,-1.9251442048698664,4.1014119423925877,-7.5693738460540771,1.5337883867323399,-1.6184939257800579,-2.0273449923843145,6.4127753861248493,-0.4839569516479969,6.1355881206691265,0.82967036403715611,4.2698931228369474,4.0938271954655647,4.9537844862788916,-1.7440220806747675,8.220954705029726,9.5858700294047594,9.7177374828606844,6.0140287503600121,-2.218667371198535,-9.1424468345940113,2.8960576839745045,-5.9584045130759478,-2.9046196397393942,2.0577704254537821,4.9476349633187056,-5.0990545190870762,0.19073605537414551,5.7009624224156141,-3.924443582072854,1.8767636455595493,2.7666838653385639,-0.34417534247040749,-4.5549053326249123,5.7061171811074018,2.7115857880562544,-6.3775606546550989,-7.6618944387882948,6.5401855763047934,0.89911039918661118,-8.6514355707913637,-4.6776277385652065,3.1106395833194256,0.51957945339381695,-7.42804448120296,-3.1435754522681236,5.9274273831397295,2.27215307764709,8.0768720526248217,7.9887299332767725,6.584129361435771,-0.53769255988299847,3.0012200959026814,1.5062535833567381,-4.3959344737231731,-2.4706560093909502,-4.3154909089207649,9.5443382486701012,-8.306901641190052,5.9041297622025013,-9.290962191298604,6.7984563857316971,1.6566064581274986,2.5848329719156027,3.2878574728965759,-0.979349035769701,0.080826412886381149,-1.5503997262567282,2.4318669270724058,-7.6124593988060951,-2.6050970517098904,-3.866090215742588,2.6217920146882534,4.4584896415472031,-6.1644813604652882,-6.4381953235715628,-6.7487753927707672,-6.6680008545517921,-9.090336374938488,-1.2834464758634567,9.1151483729481697,-1.7011462617665529,8.8348434306681156,7.2136866394430399,0.43148383498191833,-8.0511038191616535,5.0981265958398581,4.2138144373893738,1.5793604403734207,4.3110119737684727,-4.8216448724269867,2.6146696414798498,4.7527630720287561,-0.310932956635952,-5.8501263521611691,-3.0735682975500822,2.5376772787421942,-9.2578780557960272,2.8435220383107662,-8.9250015933066607,-2.5017702952027321,-7.2532927896827459,-6.0918947029858828,-6.4742424990981817,7.4063452426344156,-1.555370818823576,-1.1172858811914921,1.7762643285095692,-6.3253385759890079,-9.9654178880155087,-8.778443606570363,0.69831392727792263,-3.4377405140548944,1.8952316325157881,-6.8418592121452093,8.8722461834549904,-4.158246973529458,-7.6568383909761906,-8.4828187990933657,9.2644555028527975,7.7037872094660997,-2.4482319504022598,-7.4343313090503216,-8.8062911294400692,-7.3350031580775976,0.60194304212927818,-3.1432079616934061,-7.8961585182696581,9.2637998983263969,-3.3149580657482147,5.4998412821441889,-4.1674496978521347,-2.3270261567085981,9.6714442409574986,7.9635117202997208,2.7416236605495214,-1.5310374274849892,7.8540225327014923,2.5568468403071165,-7.0750566851347685,9.5223158225417137,1.5621822420507669,-4.4029673654586077,-0.67246746271848679,-2.1605729125440121,7.2511202190071344,9.5776558574289083,-8.337850971147418,5.7387409266084433,-8.9811233151704073,-5.7395500969141722,-4.6184454951435328,-2.2133947629481554,-0.52571993321180344,4.2251566518098116,-7.792041702196002,-0.84487153217196465],"expected":[26.397536424919963,13.26512711082767,-23.893383961974834,10.303834876744222,0.83502559597886172,18.126467243832192,36.175179338418538,3.6676653496378444,54.687139852001906,-11.414249562792238,-19.627161302477461,-13.453369471842919,-2.2902557211923069,1.4516026357688323,12.406748202428275,13.795288517659314,8.4158332305329342,-5.2592885798468805,5.6506305971794655,21.914957805157137,-11.630448831618336,0.11466269541262675,38.572542029697544,-21.956664202734828,11.238791192750057,2.4235281647677756,7.7996263188120558,18.588335665136629,-13.640701351687319,12.238320805308863,7.677111712580361,-9.3546958657702053,5.7281613383024901,-15.693032918342917,25.501379640772946,-37.631499674171749,-13.481634285686333,26.098516905724953,2.9334413414844693,5.6452956145998225,3.281990559771657,-48.674723813310266,34.179501174337062,10.949258486570551,22.80168418933291,-3.2498273168944163,-8.7265135992182916,49.874918561739705,76.024112261881129,-60.359745604391549,-55.009894736962025,-32.056332488363992,68.171792384373049,-56.970203094412881,8.8084750169246355,12.719833973909608,2.5730336900727,-28.510645809426023,24.847649028364827,-15.199001968550856,-44.016039157494589,14.555675234528746,19.658449556893789,-9.1237699502340774,-12.159426108273026,-44.789281420757618,-12.028481133622069,30.85138350994896,-57.702437347023235,26.520920319763537,-36.179595644040511,82.94985292157331,-27.716648971117429,7.1099788154630605,-12.251406684959651,62.54593524564676,-15.243128520370668,66.771222068505224,-59.816652394593213,-2.4754037133378475,-45.968109997534341,-81.73921794537182,-27.581331001076663,-52.406730513022431,43.67771963984395,-89.574236871979238,2.8788647544288821,-40.81229345187603,-82.039487658121914,53.288626788695659,22.567972648105115,29.618367119478918,25.8945128473006,-29.493007936554058,-11.586910209310753,-66.463909758948645,-27.128541278154021,-54.806956249684958,20.649123346386396,-6.3669995446200982,-20.251711415626502,-20.549882817233101,-8.3215416315943003,66.986248362824085,-41.423055777385009,-31.083106053410301,15.682651901694307,34.82322553095625,35.649943160989793,-6.8251245457441847,-2.7599680775286313,25.652591251851064,-31.910874512974356,-12.324292057097901,56.404011868634299,43.418274498083775,6.7544517602278447,-38.080681087596197,25.174620536901095,5.5854550189363295,66.441119688778301,-13.697395834080368,-45.646674568174618,-64.154195401727236,51.898616770382176,67.039372458534274,43.895285854730439,65.980612842668052,19.363795235311933,1.4200884620864116,-48.377640854046959,16.507164833379573,18.423071566746742,-33.123209429197594,-49.291008468717337,-3.0980504558620847,8.1651537820714299,-3.4744396912101285,19.74166237653187,-74.315860987476384,-19.063042053920611,-8.5575169053837339,2.5493765934373052,18.410729213139557,19.871229408968997,-4.643014819461758,-11.708424003478305,29.028616664904181,-17.593887223758603,-7.5922837891838544,-2.7670198374205111,-34.532494617792239,-25.313189789804195,-4.1050841633384021,-15.547429428538525,-44.245101631229069,-33.763417041401418,34.379951598001064,9.9279057601581187,-30.288888906794568,-15.165994462537469,17.657887524037307,13.593352183046651,24.048971735735009,-54.413746173302144,-22.117206407121294,-27.408482460511109,-1.8019468287125378,33.712921101261621,-20.503787953639502,1.1332088889846617,28.059179005438235,23.081489876787256,-7.7800385475934171,-31.028216119370757,-8.2480010846794301,42.694316057542764,-53.363214533131796,41.076993792185931,-20.03839931405204,2.832073985339175,16.316846102350318,-42.592471405218753,11.420669918879867,85.642576287848129,-62.703599443304654,51.846648336731903,-70.888120215113972,62.394068867687302,3.6969428100009623,-90.679096544858922,52.341643014070613,-19.436202569540857,84.296923879245455,61.259918863263081,36.231750542647639,6.0026076535782877,-18.003509157697739,-49.453868449813221,-44.544707855113174,-38.337531863283971,-21.266599582844712,34.482815671715954,63.0566689210616,119.40871017810593,-18.24817013170528,28.405337357240477,-11.954768269659004,-23.0814856304046,85.187507426747089,67.127407945828708,41.200312128767564,-54.554577954530089,33.658605521706072,-51.983432085624834,-23.605551518909888,24.682826980914836,35.572628727263805,-36.032619396022568,50.279716436975782,108.17440702832397,91.061049740832814,-3.2919478247171057,7.3926805394535258,-8.504341486841458,-27.586294088323839,54.050460924751754,24.659966001544596,-70.525106838229419,-1.2246027967784734,5.5129961532043001,22.219693669992061,-9.4938836325307427,20.20184351594294,-5.2986362245218004,-24.474855450043016,-1.6893163982973149,-77.883586257572006,34.688123185497432,-2.9247114720403751,23.860212604891814,-22.082465451492702,100.39360473229702,-43.428391789888977,-32.300668247183197,-41.567346959260071,17.904819548590229,-38.777549455524472,-53.329075275627886,-21.817792569783879,11.378786261477885,50.078581370740515,-35.630485133628483,-57.682914477876366,-46.324976144103864,-6.6587230959905099,77.229779065543724,-19.438803452408735,-1.804703548095862,87.354583581579007,22.423630279606265,0.54740552564941325,14.63600554987773,27.262247165179797,9.3524914601924252,11.323473653826078,27.999107036739606,-49.520536333495883,85.710550114591285,-23.464145668277421,-23.240354095471453,4.1080579908024077,-21.646403249947827,-20.502455326736644,30.060949366314684,-5.4467989623161976,-5.8376117105733627,-21.995822981890189,-3.2761685107957135,41.263044348436587,-59.680457341785036,-68.928130996212403,7.9579632839696028,11.172875199360497,-102.40038329086846,2.4078096177763619,16.938376831490153,62.48469300928474,44.58500480446186,-6.2721240197813124,-11.971684949929312,0.30783057688241655,-59.863880969682874,-5.7331638182247069,9.0992945167433064,-29.772338440535695,36.091206127099028,13.576333090535892,-55.561947461984573,-57.44447102348208,17.260461537093022,-58.63692936696485,60.333444630209534,-34.025357720953821,-15.057455504113154,0.73345136093850272,51.479508867264883,46.234176683110832,25.520241027697921,2.0601820666342974,23.677501850151859,63.481284807038037,73.331441773092038,31.277622101366372,10.048969856780575,3.4550271687719718,-119.35957108083697,64.451035687880534,48.897163134468983,12.260930012321523,31.626411608406737,17.566454565078264,23.008113334247017,20.263343652536939,8.2425164000369335,-60.621671685700555,73.708854096285293,-46.837796737453047,75.838182998547623,9.86010808326178,-15.916814183445323,25.79741699367311,-54.935404671079283,-46.687878726391091,-13.240440340772905,-55.240736829393178,-35.328722002903319,-50.292095585996783,6.9038285550612244,-13.397350302166421,-47.405790726254175,-27.941299252743725,-43.313169135867199,-77.848184117678031,-55.580209406224661,-58.335357295845313,10.680581777845157,10.116014624774262,-14.291550906000507,-27.698575781710385,-34.680983801304954,52.378507954645215,-70.334384934907845,-17.536283209604196,32.320225014094532,15.66110989804795,25.450819256098441,2.5703534292477768,6.5885140159472479,-13.295028651987641,55.110717852137853,-94.036422575710688,-27.987894565801948,41.913564729852411,-12.150626960189074,-0.73948536246265661,-45.338316379917302,54.53478240073423,-48.444464150069209,25.583419070044538,12.121240249399975,26.832871873902636,-0.88319702642644715,32.000517494395346,-2.4798391192259199,50.547638165969161,5.7316842696952488,16.291966718792061,-28.774262807876752,-90.551731932304776,-6.1244678578479643,-95.860203920368505,-8.6321803989677779,-32.955801523259431,58.714468542588598,8.4247408109241988,-8.7294838522716169,-47.193429647980722,51.080984467218023,-2.2103382914559466,6.2491822547625864,44.967124573457113,55.670871309247538,-93.558471440118595,-4.3002710877914403,-2.2377810697594991,-0.73267122326843703,-53.796100424889758,29.891499861707679,14.006713359052004,-92.260243189898262,18.393059145084685,60.760954781946197,12.255417861459762,-85.69238357370773,-53.165409537578071,-60.578483900208646,-1.4271630465903404,15.870295787444935,-18.766112576913571,50.493847407153282,-47.244913863924353,65.874248212566101,-73.016391267094747,46.022483945620365,134.50564587663138,43.721909022790541,49.43791821629663,-24.749550552359992,-25.649495339311954,49.320100792445707,11.873728988126103,-46.922982448863557,-61.697550932741066,-68.429995939416983,-11.966628278107695,59.557031864012551,64.73618913358905,71.322223629809329,47.146742550900633,17.543961802683977,-43.68005220110981,76.616161663790251,-41.201963220498463,-32.83121257043436,-80.957253969847542,11.724646557122469,-13.77037867029779,-25.341225706209769,36.232734410629995,-15.632366827190236,-5.5830038217998803,-21.54307717290898,38.487440848517871,-15.952285755207971,25.708656576654128,33.474513095891098,-12.387861100624539,-23.792057503826928,2.0439810715900384,11.692422658702368,57.297822058149158,-0.46722671151659778,-16.632974905205366,-7.6219725893532502,9.6816791370763458,-9.0486348979847282,20.861572248150999,-14.597085687947684,17.222479584137158,12.443911832465341,9.846194827270784,-42.584645601413257,-17.370505832706417,48.858664938008637,0.97379099912072364,-0.51819414205308523,-1.6871698160333226,24.354093011646381,-6.9348925352391904,-16.214292636671647,-10.699041142757643,-23.16745607983643,-18.27486399276242,13.532489905724976,5.1526948654135625,9.2456805439279535,-4.5783666335046291,-12.824945416881196,42.124639714648765,-59.547681242550638,35.087641160895942,-14.600404324126883,-22.488536668640485,-1.3463069281319475,-73.665707430257683,19.100470481385248,78.672242434767071,-74.089837455278285,-32.333094042596187,-86.118205100576176,52.619442258092491,-9.6552674914976109,-15.051595375647951,-13.76627678696839,13.636091076618193,55.63718617463892,-22.503511369152584,-22.432180796979807,22.393461911891922,-5.9121500666554487,42.469041807854069,-35.876448897366103,-6.5914287601864068,3.0028998018906421,-44.008393096659965,23.841968448790904,-10.826805807494125,69.353311354640681,-72.721838858714392,-79.643804542355412,15.645842321558682,-10.817091983388922,-41.720234949932717,-45.695897178779617,-9.7951053657679346,-34.09859294419244,-68.691470378074882,-20.554994035495863,-24.850019704267979,-39.884485673616119,8.5024370488524728,-53.327832885572803,51.847409973551933,57.920024317563076,-21.385171177875176,23.993549328784496,-45.740975571906446,1.8548647436164316,-53.703271148821571,19.271955582907474,3.4406172972205944,-69.694937659319521,-79.987497398844567,-46.003561851340301,44.927993935056406,10.078130173700977,-52.427783978484158,-4.5492700759275415,3.2104236898121332,12.973926040361263,16.545917116277224,62.580868221214139,16.323778592997197,46.877907787992513,38.253287445870541,16.79032889353676,50.857272052973123,18.761973571767555,-7.9472035946045256,-36.281178202480078,-37.050393469709043,-112.57651268528059,1.9387331884018004,53.862156033900298,6.7597242364023558,9.1779774809715633,30.70605329526218,-41.989914939598101,17.161422910105696,63.61596164481756,8.5062778953809683,12.334627022698154,-31.120364237164026,26.00715166105261,-45.108902975488448,-59.189148030234428,-24.031637857688235,14.238241516334082,9.7464229105113915,-30.331427947520012,-6.5052886984200828,-72.560584657059835,20.278954274248246,3.0597945872594803,-16.789016525163191,13.572135417024551,-33.704832898425344,-64.224516569961096,-30.624565380958796,-58.396002437364707,-13.601644178879992,76.532113189083361,41.287626189432657,-6.1117987312853703,34.056198062481634,-13.903740284427782,-32.618999833371575,9.7992989793419838,-19.269021706123446,-19.233805020959529,-29.443335284235584,7.6346095636945304,43.084532469735109,27.267038508543006,21.04919333835424,-0.71774634261854831,-17.889466118410073,6.4456825069524655,4.0083345048432788,17.528752482855769,-9.0934993013882632,25.011771529928357,20.120068871970226,-17.969265470098122,13.174598264256172,-6.1490282987095979,36.276126475758581,-33.618700051607846,1.1550531985984525,-29.448762224066137,-7.7474799288079286,-8.7979448809632501,-1.8807444991436448,-17.04900745368704,25.97272673097336,-10.881431260662293,-1.4174970358917007,-5.1048416558339778,43.244804677861616,-32.508061694812248,-15.377326066188871,49.761971091256711,10.126715079806123,-28.713578543199432,-79.435518467798829,32.497587381974384,43.466652033833931,-62.993960456314028,-51.10294612820087,-57.877162953516262,-65.153651670250767,-11.945697405997141,10.18005988278022,-46.208829918806302,21.693656223164609,9.3356871918387156,-37.307715202117478,-31.956574195437124,34.385295886551901,3.5424903040844669,46.849686341464484,-14.077690215613611,41.131866803331391,-65.399665512847065,66.003347831925424,47.492583525450861,13.984324471681694,-66.689748638910658,19.57098239970977,29.942482373194313,-30.49681071707149,33.723026121836767,-9.7743558728041666,30.955064832141289,-32.556904299670315,-18.582216985619642,24.126009679642664,-30.62105789139963,-42.430230749158994,15.478403245619369,59.245167891060035,-27.912452928426134,-25.958843422731391,98.326496955797552,-12.624329687027378,21.60098416440141,-24.803222234399897,-5.1085542717443229,45.441466764770254,-17.946585900708527,-44.589440992604693,0.95546995817756297,-25.954752626572091,1.9034281034181113,-19.185219581828513,-30.6619321628949,4.5544195770673426,-72.99642577935019,8.0904465861064931,64.934598558736553,18.499074937162362,36.382596320789872,30.704549151609044,-2.0185725448693859,43.717552248040718,10.180997965266052,58.884214383651752,-62.109275869282612,21.338416131355807,-21.509412938541452,-46.496347130771618,17.518635765292263,27.20480826422375,14.149940319333535,25.936609657746232,29.097048946067375,-15.095858736044981,45.453930511372477,-32.532452991492981,-68.779406279285311,38.488013268668048,36.798097561841402,10.742114794974874,-56.132134776357091,2.9838938259543184,-65.980883026495576]} diff --git a/lib/node_modules/@stdlib/fft/base/fftpack/rfftf/test/fixtures/c/fftpack/runner.c b/lib/node_modules/@stdlib/fft/base/fftpack/rfftf/test/fixtures/c/fftpack/runner.c new file mode 100644 index 000000000000..83735d958f19 --- /dev/null +++ b/lib/node_modules/@stdlib/fft/base/fftpack/rfftf/test/fixtures/c/fftpack/runner.c @@ -0,0 +1,318 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2026 The Stdlib Authors. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +/** +* Generate FFTPACK test fixtures. +* +* ## Notes +* +* - Run this script from the directory in which fixtures should be written. +* +*/ + +#include +#include +#include + +/** +* Define prototypes for external functions. +*/ +extern void rffti( int n, double *wsave ); +extern void rfftf( int n, double *r, double *wsave ); + +/** +* Generates a random number on the interval [0,1]. +* +* @return random number +*/ +double rand_double( void ) { + int r = rand(); + return (double)r / ( (double)RAND_MAX + 1.0 ); +} + +/** +* Generates an array of pseudorandom integers drawn from a uniform distribution. +* +* ## Notes +* +* - WARNING: the method used here is not particularly robust, as some integer values may be sampled more frequently than others. +* +* +* @param out output array +* @param len array length +* @param a lower bound (inclusive) +* @param b upper bound (exclusive) +*/ +void rand_array_i32( int *out, const unsigned int len, const int a, const int b ) { + unsigned int i; + unsigned int r; + double delta; + + delta = (double)b - (double)a; + + for ( i = 0; i < len; i++ ) { + r = (unsigned int)( delta * rand_double() ); // truncation + out[ i ] = (int)( a + r ); + } +} + +/** +* Generates an array of pseudorandom numbers drawn from a uniform distribution. +* +* @param out output array +* @param len array length +* @param a lower bound (inclusive) +* @param b upper bound (exclusive) +*/ +void rand_array_f64( double *out, const unsigned int len, const double a, const double b ) { + unsigned int i; + double delta; + + delta = b - a; + + for ( i = 0; i < len; i++ ) { + out[ i ] = a + ( rand_double()*delta ); + } +} + +/** +* Writes an array of doubles to a file as a series of comma-separated values. +* +* @param f file to write to +* @param x array of doubles +* @param len array length +*/ +void write_array_f64( FILE *f, const double *x, const unsigned int len ) { + unsigned int i; + + for ( i = 0; i < len; i++ ) { + fprintf( f, "%.17g", x[ i ] ); + if ( i < len-1 ) { + fprintf( f, "," ); + } + } +} + +/** +* Writes an array of integers to a file as a series of comma-separated values. +* +* @param f file to write to +* @param x array of integers +* @param len array length +*/ +void write_array_i32( FILE *f, const int *x, const unsigned int len ) { + unsigned int i; + + for ( i = 0; i < len; i++ ) { + fprintf( f, "%d", x[ i ] ); + if ( i < len-1 ) { + fprintf( f, "," ); + } + } +} + +/** +* Writes a named array of doubles to a file as JSON. +* +* @param f file to write to +* @param name array name +* @param x data +* @param len array length +*/ +void write_named_array_f64( FILE *f, const char *name, const double *x, const unsigned int len ) { + fprintf( f, "\"%s\":[", name ); + write_array_f64( f, x, len ); + fprintf( f, "]" ); +} + +/** +* Writes a named array of integers to a file as JSON. +* +* @param f file to write to +* @param name array name +* @param x data +* @param len array length +*/ +void write_named_array_i32( FILE *f, const char *name, const int *x, const unsigned int len ) { + fprintf( f, "\"%s\":[", name ); + write_array_i32( f, x, len ); + fprintf( f, "]" ); +} + +/** +* Writes data to a file as JSON. +* +* ## Notes +* +* - This function SHOULD be tailored to the input data (e.g., input types, output types, number of arguments, etc) and may vary from use case to use case. +* +* +* @param f file to write to +* @param lengths sequence lengths +* @param offsets offsets +* @param input input values +* @param expected results +* @param num number of sequence lengths +* @param total total array length +*/ +void write_data_as_json( FILE *f, const int *lengths, const int *offsets, const double *input, const double *expected, const unsigned int num, const unsigned int total ) { + fprintf( f, "{" ); + write_named_array_i32( f, "lengths", lengths, num ); + fprintf( f, "," ); + write_named_array_i32( f, "offsets", offsets, num ); + fprintf( f, "," ); + write_named_array_f64( f, "input", input, total ); + fprintf( f, "," ); + write_named_array_f64( f, "expected", expected, total ); + fprintf( f, "}\n" ); +} + +/** +* Generates test fixtures. +* +* @param lengths sequence lengths +* @param offsets input offsets into flat arrays +* @param num number of sequence lengths +* @param total total number of input and output values +* @param name output filename +*/ +void generate( const int *lengths, const int *offsets, const unsigned int num, const unsigned int total, const char *name ) { + unsigned int i; + unsigned int j; + double *expected; + double *input; + double *wsave; + FILE *f; + int off; + int n; + + // Allocate output arrays: + input = (double*) malloc( total * sizeof(double) ); + if ( input == NULL ) { + printf( "Error allocating memory.\n" ); + exit( 1 ); + } + expected = (double*) malloc( total * sizeof(double) ); + if ( expected == NULL ) { + printf( "Error allocating memory.\n" ); + exit( 1 ); + } + + // Generate fixture data: + for ( i = 0; i < num; i++ ) { + n = lengths[ i ]; + off = offsets[ i ]; + + rand_array_f64( input + off, (unsigned int)n, -10.0, 10.0 ); + for ( j = 0; j < (unsigned int)n; j++ ) { + expected[ off + j ] = input[ off + j ]; + } + + wsave = (double*) calloc( 2*n + 15, sizeof(double) ); + if ( wsave == NULL ) { + printf( "Error allocating memory.\n" ); + exit( 1 ); + } + rffti( n, wsave ); + rfftf( n, expected + off, wsave ); + free( wsave ); + } + // Open a new file: + f = fopen( name, "w" ); + if ( f == NULL ) { + printf( "Error opening file.\n" ); + exit( 1 ); + } + + // Write data as JSON: + write_data_as_json( f, lengths, offsets, input, expected, num, total ); + + // Close the file: + fclose( f ); + + // Free allocated memory: + free( input ); + free( expected ); +} + +/** +* Computes offsets into flat input and output arrays for each sequence length. +* +* @param offsets output array of offsets +* @param lengths sequence lengths +* @param num number of sequence lengths +* @return total number of values +*/ +unsigned int compute_offsets( int *offsets, const int *lengths, const unsigned int num ) { + unsigned int total; + unsigned int i; + + total = 0; + for ( i = 0; i < num; i++ ) { + offsets[ i ] = total; + total += lengths[ i ]; + } + return total; +} + +/** +* Main execution sequence. +*/ +int main( void ) { + unsigned int total; + unsigned int num; + int *lengths; + int *offsets; + + // Use the current time to seed the random number generator: + srand( time( NULL ) ); + + // Define the number of sequence lengths per range: + num = 10; + + // Allocate arrays: + lengths = (int*) malloc( num * sizeof(int) ); + if ( lengths == NULL ) { + printf( "Error allocating memory.\n" ); + exit( 1 ); + } + offsets = (int*) malloc( num * sizeof(int) ); + if ( offsets == NULL ) { + printf( "Error allocating memory.\n" ); + exit( 1 ); + } + + // Generate fixture data: + rand_array_i32( lengths, num, 2, 16 ); + total = compute_offsets( offsets, lengths, num ); + generate( lengths, offsets, num, total, "small.json" ); + + rand_array_i32( lengths, num, 16, 128 ); + total = compute_offsets( offsets, lengths, num ); + generate( lengths, offsets, num, total, "medium.json" ); + + rand_array_i32( lengths, num, 128, 1024 ); + total = compute_offsets( offsets, lengths, num ); + generate( lengths, offsets, num, total, "large.json" ); + + // Free allocated memory: + free( lengths ); + free( offsets ); + + return 0; +} diff --git a/lib/node_modules/@stdlib/fft/base/fftpack/rfftf/test/fixtures/c/fftpack/small.json b/lib/node_modules/@stdlib/fft/base/fftpack/rfftf/test/fixtures/c/fftpack/small.json new file mode 100644 index 000000000000..57b79850e380 --- /dev/null +++ b/lib/node_modules/@stdlib/fft/base/fftpack/rfftf/test/fixtures/c/fftpack/small.json @@ -0,0 +1 @@ +{"lengths":[13,13,11,2,10,5,2,10,10,9],"offsets":[0,13,26,37,39,49,54,56,66,76],"input":[0.89892103336751461,8.1658930983394384,4.1654459573328495,8.6503157485276461,5.8569314610213041,-2.5528105162084103,-5.0862876325845718,-5.2362023945897818,-4.8536085896193981,5.4004745371639729,5.7756666373461485,-8.3707026578485966,-6.3995577115565538,2.6335700415074825,2.4117864854633808,-5.1044416800141335,9.6487223077565432,6.0759802348911762,-1.0000663716346025,-8.1154376268386841,3.8398204650729895,-4.137335205450654,3.8072478678077459,8.4150222968310118,-8.7201130390167236,1.0601632576435804,-1.8360422272235155,1.6383509431034327,-4.2356081772595644,-7.8665900882333517,6.2204037513583899,6.3259760197252035,0.67909128963947296,-6.5126114524900913,2.5393452867865562,-1.2236668448895216,-6.1685933731496334,4.4512074533849955,-8.5562178585678339,-4.3535376526415348,-9.9072837550193071,8.2819301076233387,-5.600538095459342,-8.2437359541654587,7.5298320781439543,-6.1121254414319992,-6.4922637213021517,4.5236635208129883,9.212907962501049,1.3442761171609163,-6.75121009349823,-7.5880159996449947,8.2151128351688385,-8.5984367597848177,6.073389258235693,-4.546611038967967,5.1083107385784388,-4.6212984714657068,9.8366321623325348,4.2769075650721788,1.9855578988790512,-8.7282997369766235,3.4663305804133415,-1.3818296045064926,-4.4100954942405224,-0.47492795623838902,-2.1140859555453062,8.557406859472394,4.3372323829680681,-4.1352272499352694,-0.76434376649558544,-6.3256112113595009,5.452399430796504,-1.5226456709206104,8.8942751754075289,6.0830209404230118,-2.6669284421950579,-3.0662705842405558,5.1903449278324842,-5.8726790361106396,-2.1165276132524014,7.5204657576978207,-3.5318732541054487,-0.19373113289475441,3.960926178842783],"expected":[6.4144789706915617,13.387325639756353,-21.928023159213939,-29.072416633192926,-21.740203696122322,13.566472080239153,-16.552310855726809,18.878112433369161,-3.7491472312635481,-6.5631348955019266,1.4585744125270956,-7.5606113931267442,-1.1929519180426831,10.814919034019113,4.5240653055954922,-6.1690899057242099,-19.833546830362998,-5.7253623090062646,19.102546057824817,5.3466877778085831,31.495461146592756,-9.6332047876495039,-3.999038984352814,14.856967070745597,-19.578740942508169,-12.395630761446979,-10.439944872632623,-13.686801011432884,-2.3948586896435407,10.903168971775433,7.8994841094889532,-2.9993672325729852,-29.193233050805333,0.616389351330208,-1.7062234540582542,0.28835010748720563,10.029382864118968,-4.1050104051828384,13.007425311952829,-11.161150950938463,6.8630316157481648,8.0690905410139795,-2.0511453240953905,14.472190355472936,-36.248225998378459,22.944861839971143,15.572456863320673,12.711879949701993,-0.64645988866686821,-13.378273900598288,-3.9063576152150148,7.5320291111354711,13.956184858416449,-16.115441248286185,1.5267782192677259,10.62000029720366,5.0572876818478107,6.0852700183592532,-15.623670249201187,-10.242411035426388,-2.5127599655273629,15.048164125489459,17.051869870244605,-1.3362053014929742,9.7344634097243343,26.916184090077877,18.462420934811234,18.100303029150734,9.0184203948204562,-8.5940664319131805,-7.1228293551532778,-14.145756689340839,-0.65500619424010331,-21.736386952754454,-6.9578100280660662,13.148533599451184,-0.77627319842576981,-1.4896942678591465,4.5379582892306223,1.6350786910462221,-3.1427618177595837,-17.719084499403834,19.09435863406452,5.9606586855518833,-1.5991282893642211]} From ffeafb70f280ef6e12c53cc69237a2db712ced57 Mon Sep 17 00:00:00 2001 From: Gunj Joshi Date: Tue, 26 May 2026 02:49:02 +0530 Subject: [PATCH 10/19] refactor: handle strides correctly --- type: pre_commit_static_analysis_report description: Results of running static analysis checks when committing changes. report: - task: lint_filenames status: passed - task: lint_editorconfig status: passed - task: lint_markdown_pkg_readmes status: na - task: lint_markdown_docs status: na - task: lint_markdown status: na - task: lint_package_json status: na - task: lint_repl_help status: na - task: lint_javascript_src status: passed - task: lint_javascript_cli status: na - task: lint_javascript_examples status: na - task: lint_javascript_tests status: na - task: lint_javascript_benchmarks status: na - task: lint_python status: na - task: lint_r status: na - task: lint_c_src status: na - task: lint_c_examples status: na - task: lint_c_benchmarks status: na - task: lint_c_tests_fixtures status: na - task: lint_shell status: na - task: lint_typescript_declarations status: passed - task: lint_typescript_tests status: na - task: lint_license_headers status: passed --- --- .../fft/base/fftpack/rfftf/lib/main.js | 2 +- .../fft/base/fftpack/rfftf/lib/radfg.js | 27 ++++++++------- .../fft/base/fftpack/rfftf/lib/rfftf1.js | 34 +++++++++++-------- 3 files changed, 35 insertions(+), 28 deletions(-) diff --git a/lib/node_modules/@stdlib/fft/base/fftpack/rfftf/lib/main.js b/lib/node_modules/@stdlib/fft/base/fftpack/rfftf/lib/main.js index 37577ba9f86c..7383a0611504 100644 --- a/lib/node_modules/@stdlib/fft/base/fftpack/rfftf/lib/main.js +++ b/lib/node_modules/@stdlib/fft/base/fftpack/rfftf/lib/main.js @@ -104,7 +104,7 @@ function rfftf( N, r, strideR, offsetR, workspace, strideW, offsetW ) { offsetT = offsetW + ( N * strideW ); // index offset for twiddle factors offsetF = offsetT + ( N * strideW ); // index offset for factors describing the sub-transforms - rfftf1( N, r, offsetR, workspace, offsetW, workspace, offsetT, workspace, offsetF ); // eslint-disable-line max-len + rfftf1( N, r, strideR, offsetR, workspace, strideW, offsetW, workspace, strideW, offsetT, workspace, strideW, offsetF ); // eslint-disable-line max-len } diff --git a/lib/node_modules/@stdlib/fft/base/fftpack/rfftf/lib/radfg.js b/lib/node_modules/@stdlib/fft/base/fftpack/rfftf/lib/radfg.js index c6f7dfc925a8..49e8103f81af 100644 --- a/lib/node_modules/@stdlib/fft/base/fftpack/rfftf/lib/radfg.js +++ b/lib/node_modules/@stdlib/fft/base/fftpack/rfftf/lib/radfg.js @@ -650,7 +650,7 @@ function radfg( M, R, L, ML, cc, sc, oc, c1, sc1, oc1, c2, sc2, oc2, ch, sch, oc if ( M >= L ) { for ( k = 0; k < L; k++ ) { for ( i = 0; i < M; i++ ) { - icc = iptr( i, k, 0, L, M, sc, oc ); + icc = optr( i, 0, k, R, M, sc, oc ); ih1 = optr( i, k, 0, L, M, sch, och ); cc[ icc ] = ch[ ih1 ]; } @@ -658,20 +658,23 @@ function radfg( M, R, L, ML, cc, sc, oc, c1, sc1, oc1, c2, sc2, oc2, ch, sch, oc } else { for ( i = 0; i < M; i++ ) { for ( k = 0; k < L; k++ ) { - icc = iptr( i, k, 0, L, M, sc, oc ); + icc = optr( i, 0, k, R, M, sc, oc ); ih1 = optr( i, k, 0, L, M, sch, och ); cc[ icc ] = ch[ ih1 ]; } } } + /* + * `cc` is stored in output order, where the component index comes before the sub-sequence index. Accordingly, writes to `cc` use `optr`, not `iptr`. + */ // Store DC harmonics for conjugate pairs in the output array... for ( j = 1; j < Rph; j++ ) { jc = Rp1 - j - 1; // "mirror" index j2 = 2 * j; // output column index for ( k = 0; k < L; k++ ) { - io1 = iptr( M-1, k, j2-1, L, M, sc, oc ); - io2 = iptr( 0, k, j2, L, M, sc, oc ); + io1 = optr( M-1, j2-1, k, R, M, sc, oc ); + io2 = optr( 0, j2, k, R, M, sc, oc ); ih1 = optr( 0, k, j, L, M, sch, och ); ih2 = optr( 0, k, jc, L, M, sch, och ); @@ -709,10 +712,10 @@ function radfg( M, R, L, ML, cc, sc, oc, c1, sc1, oc1, c2, sc2, oc2, ch, sch, oc ih4 = optr( i, k, jc, L, M, sch, och ); // Im(ch[jc]) // Resolve cc output indices: - io1 = iptr( i-1, k, j2, L, M, sc, oc ); - io2 = iptr( im-1, k, j2-1, L, M, sc, oc ); - io3 = iptr( i, k, j2, L, M, sc, oc ); - io4 = iptr( im, k, j2-1, L, M, sc, oc ); + io1 = optr( i-1, j2, k, R, M, sc, oc ); + io2 = optr( im-1, j2-1, k, R, M, sc, oc ); + io3 = optr( i, j2, k, R, M, sc, oc ); + io4 = optr( im, j2-1, k, R, M, sc, oc ); // Store the sum and difference combinations: cc[ io1 ] = ch[ ih1 ] + ch[ ih3 ]; @@ -739,10 +742,10 @@ function radfg( M, R, L, ML, cc, sc, oc, c1, sc1, oc1, c2, sc2, oc2, ch, sch, oc ih4 = optr( i, k, jc, L, M, sch, och ); // Im(ch[jc]) // Resolve cc output indices: - io1 = iptr( i-1, k, j2, L, M, sc, oc ); - io2 = iptr( im-1, k, j2-1, L, M, sc, oc ); - io3 = iptr( i, k, j2, L, M, sc, oc ); - io4 = iptr( im, k, j2-1, L, M, sc, oc ); + io1 = optr( i-1, j2, k, R, M, sc, oc ); + io2 = optr( im-1, j2-1, k, R, M, sc, oc ); + io3 = optr( i, j2, k, R, M, sc, oc ); + io4 = optr( im, j2-1, k, R, M, sc, oc ); // Store the sum and difference combinations: cc[ io1 ] = ch[ ih1 ] + ch[ ih3 ]; diff --git a/lib/node_modules/@stdlib/fft/base/fftpack/rfftf/lib/rfftf1.js b/lib/node_modules/@stdlib/fft/base/fftpack/rfftf/lib/rfftf1.js index 73ecae7b4248..745341fa5551 100644 --- a/lib/node_modules/@stdlib/fft/base/fftpack/rfftf/lib/rfftf1.js +++ b/lib/node_modules/@stdlib/fft/base/fftpack/rfftf/lib/rfftf1.js @@ -79,16 +79,20 @@ var radfg = require( './radfg.js' ); * @private * @param {NonNegativeInteger} N - length of the sequence to transform * @param {Float64Array} c - input array containing the sequence to be transformed -* @param {NonNegativeInteger} cOffset - starting index for `c` +* @param {integer} sc - stride length for `c` +* @param {NonNegativeInteger} oc - starting index for `c` * @param {Float64Array} ch - working array for intermediate results -* @param {NonNegativeInteger} chOffset - starting index for `ch` +* @param {integer} sch - stride length for `ch` +* @param {NonNegativeInteger} och - starting index for `ch` * @param {Float64Array} wa - workspace array for storing twiddle factors -* @param {NonNegativeInteger} waOffset - starting index for `wa` +* @param {integer} swa - stride length for `wa` +* @param {NonNegativeInteger} owa - starting index for `wa` * @param {Int32Array} ifac - workspace array for storing factorization results -* @param {NonNegativeInteger} ifacOffset - starting index for `ifac` +* @param {integer} si - stride length for `ifac` +* @param {NonNegativeInteger} oi - starting index for `ifac` * @returns {void} */ -function rfftf1( N, c, cOffset, ch, chOffset, wa, waOffset, ifac, ifacOffset ) { +function rfftf1( N, c, sc, oc, ch, sch, och, wa, swa, owa, ifac, si, oi ) { // eslint-disable-line max-params var factor; var idl1; var FLG; @@ -104,7 +108,7 @@ function rfftf1( N, c, cOffset, ch, chOffset, wa, waOffset, ifac, ifacOffset ) { var k1; // Resolve the number of factors: - nf = ifac[ ifacOffset+1 ]; + nf = ifac[ oi + si ]; FLG = 1; // Flag to track whether the latest stage output resides in `c` or `ch`. l2 = N; @@ -116,7 +120,7 @@ function rfftf1( N, c, cOffset, ch, chOffset, wa, waOffset, ifac, ifacOffset ) { kh = nf - k1; // Resolve the next factor: - factor = ifac[ ifacOffset+kh+2 ]; + factor = ifac[ oi + ( ( kh + 2 ) * si ) ]; // Compute a sub-transform length: l1 = floor( l2 / factor ); @@ -125,7 +129,7 @@ function rfftf1( N, c, cOffset, ch, chOffset, wa, waOffset, ifac, ifacOffset ) { idl1 = ido * l1; // Adjust the index offset - iw -= ( (factor-1) * ido ); + iw -= ( ( factor - 1 ) * ido ); // Toggle the flag to swap the input and output work buffers for the next stage: FLG = 1 - FLG; @@ -134,30 +138,30 @@ function rfftf1( N, c, cOffset, ch, chOffset, wa, waOffset, ifac, ifacOffset ) { case 4: ix2 = iw + ido; ix3 = ix2 + ido; - radf4( ido, l1, ( FLG ) ? ch : c, 1, ( FLG ) ? chOffset : cOffset, ( FLG ) ? c : ch, 1, ( FLG ) ? cOffset : chOffset, wa, 1, iw+waOffset, wa, 1, ix2+waOffset, wa, 1, ix3+waOffset ); + radf4( ido, l1, ( FLG ) ? ch : c, ( FLG ) ? sch : sc, ( FLG ) ? och : oc, ( FLG ) ? c : ch, ( FLG ) ? sc : sch, ( FLG ) ? oc : och, wa, swa, owa + ( ( iw + 1 ) * swa ), wa, swa, owa + ( ( ix2 + 1 ) * swa ), wa, swa, owa + ( ( ix3 + 1 ) * swa ) ); break; case 2: - radf2( ido, l1, ( FLG ) ? ch : c, 1, ( FLG ) ? chOffset : cOffset, ( FLG ) ? c : ch, 1, ( FLG ) ? cOffset : chOffset, wa, 1, iw+waOffset ); + radf2( ido, l1, ( FLG ) ? ch : c, ( FLG ) ? sch : sc, ( FLG ) ? och : oc, ( FLG ) ? c : ch, ( FLG ) ? sc : sch, ( FLG ) ? oc : och, wa, swa, owa + ( ( iw + 1 ) * swa ) ); break; case 3: ix2 = iw + ido; - radf3( ido, l1, ( FLG ) ? ch : c, 1, ( FLG ) ? chOffset : cOffset, ( FLG ) ? c : ch, 1, ( FLG ) ? cOffset : chOffset, wa, 1, iw+waOffset, wa, 1, ix2+waOffset ); + radf3( ido, l1, ( FLG ) ? ch : c, ( FLG ) ? sch : sc, ( FLG ) ? och : oc, ( FLG ) ? c : ch, ( FLG ) ? sc : sch, ( FLG ) ? oc : och, wa, swa, owa + ( ( iw + 1 ) * swa ), wa, swa, owa + ( ( ix2 + 1 ) * swa ) ); break; case 5: ix2 = iw + ido; ix3 = ix2 + ido; ix4 = ix3 + ido; - radf5( ido, l1, ( FLG ) ? ch : c, 1, ( FLG ) ? chOffset : cOffset, ( FLG ) ? c : ch, 1, ( FLG ) ? cOffset : chOffset, wa, 1, iw+waOffset, wa, 1, ix2+waOffset, wa, 1, ix3+waOffset, wa, 1, ix4+waOffset ); + radf5( ido, l1, ( FLG ) ? ch : c, ( FLG ) ? sch : sc, ( FLG ) ? och : oc, ( FLG ) ? c : ch, ( FLG ) ? sc : sch, ( FLG ) ? oc : och, wa, swa, owa + ( ( iw + 1 ) * swa ), wa, swa, owa + ( ( ix2 + 1 ) * swa ), wa, swa, owa + ( ( ix3 + 1 ) * swa ), wa, swa, owa + ( ( ix4 + 1 ) * swa ) ); break; default: if ( ido === 1 ) { FLG = 1 - FLG; } if ( FLG === 0 ) { - radfg( ido, factor, l1, idl1, c, 1, cOffset, c, 1, cOffset, c, 1, cOffset, ch, 1, chOffset, ch, 1, chOffset, wa, 1, iw+waOffset ); + radfg( ido, factor, l1, idl1, c, sc, oc, c, sc, oc, c, sc, oc, ch, sch, och, ch, sch, och, wa, swa, owa + ( ( iw + 1 ) * swa ) ); FLG = 1; } else { - radfg( ido, factor, l1, idl1, ch, 1, chOffset, ch, 1, chOffset, ch, 1, chOffset, c, 1, cOffset, c, 1, cOffset, wa, 1, iw+waOffset ); + radfg( ido, factor, l1, idl1, ch, sch, och, ch, sch, och, ch, sch, och, c, sc, oc, c, sc, oc, wa, swa, owa + ( ( iw + 1 ) * swa ) ); FLG = 0; } break; @@ -169,7 +173,7 @@ function rfftf1( N, c, cOffset, ch, chOffset, wa, waOffset, ifac, ifacOffset ) { } // Now that we've finished computing the transforms, copy over the final results to the input array... - dcopy( N, ch, 1, chOffset, c, 1, cOffset ); + dcopy( N, ch, sch, och, c, sc, oc ); } From 19a6a79587e6ab37b948362bfe1416a82415e3f7 Mon Sep 17 00:00:00 2001 From: Gunj Joshi Date: Tue, 26 May 2026 02:49:55 +0530 Subject: [PATCH 11/19] test: add initial tests --- type: pre_commit_static_analysis_report description: Results of running static analysis checks when committing changes. report: - task: lint_filenames status: passed - task: lint_editorconfig status: passed - task: lint_markdown_pkg_readmes status: na - task: lint_markdown_docs status: na - task: lint_markdown status: na - task: lint_package_json status: passed - task: lint_repl_help status: na - task: lint_javascript_src status: na - task: lint_javascript_cli status: na - task: lint_javascript_examples status: na - task: lint_javascript_tests status: passed - task: lint_javascript_benchmarks status: na - task: lint_python status: na - task: lint_r status: na - task: lint_c_src status: na - task: lint_c_examples status: na - task: lint_c_benchmarks status: na - task: lint_c_tests_fixtures status: na - task: lint_shell status: na - task: lint_typescript_declarations status: passed - task: lint_typescript_tests status: na - task: lint_license_headers status: passed --- --- .../fft/base/fftpack/rfftf/package.json | 58 +++ .../fft/base/fftpack/rfftf/test/test.js | 368 ++++++++++++++++++ 2 files changed, 426 insertions(+) create mode 100644 lib/node_modules/@stdlib/fft/base/fftpack/rfftf/package.json create mode 100644 lib/node_modules/@stdlib/fft/base/fftpack/rfftf/test/test.js diff --git a/lib/node_modules/@stdlib/fft/base/fftpack/rfftf/package.json b/lib/node_modules/@stdlib/fft/base/fftpack/rfftf/package.json new file mode 100644 index 000000000000..11923965b83e --- /dev/null +++ b/lib/node_modules/@stdlib/fft/base/fftpack/rfftf/package.json @@ -0,0 +1,58 @@ +{ + "name": "@stdlib/fft/base/fftpack/rfftf", + "version": "0.0.0", + "description": "Compute the forward real-valued fast Fourier transform (FFT).", + "license": "Apache-2.0", + "author": { + "name": "The Stdlib Authors", + "url": "https://github.com/stdlib-js/stdlib/graphs/contributors" + }, + "contributors": [ + { + "name": "The Stdlib Authors", + "url": "https://github.com/stdlib-js/stdlib/graphs/contributors" + } + ], + "main": "./lib", + "directories": { + "lib": "./lib", + "test": "./test" + }, + "scripts": {}, + "homepage": "https://github.com/stdlib-js/stdlib", + "repository": { + "type": "git", + "url": "git://github.com/stdlib-js/stdlib.git" + }, + "bugs": { + "url": "https://github.com/stdlib-js/stdlib/issues" + }, + "dependencies": {}, + "devDependencies": {}, + "engines": { + "node": ">=0.10.0", + "npm": ">2.7.0" + }, + "os": [ + "aix", + "darwin", + "freebsd", + "linux", + "macos", + "openbsd", + "sunos", + "win32", + "windows" + ], + "keywords": [ + "stdlib", + "fft", + "fftpack", + "rfftf", + "fourier", + "transform", + "forward", + "real" + ], + "__stdlib__": {} +} diff --git a/lib/node_modules/@stdlib/fft/base/fftpack/rfftf/test/test.js b/lib/node_modules/@stdlib/fft/base/fftpack/rfftf/test/test.js new file mode 100644 index 000000000000..2443949b6998 --- /dev/null +++ b/lib/node_modules/@stdlib/fft/base/fftpack/rfftf/test/test.js @@ -0,0 +1,368 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2026 The Stdlib Authors. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +'use strict'; + +// MODULES // + +var tape = require( 'tape' ); +var Float64Array = require( '@stdlib/array/float64' ); +var isAlmostSameValue = require( '@stdlib/number/float64/base/assert/is-almost-same-value' ); +var rffti = require( '@stdlib/fft/base/fftpack/rffti' ); +var rfftf = require( './../lib' ); + + +// FIXTURES // + +var small = require( './fixtures/c/fftpack/small.json' ); +var medium = require( './fixtures/c/fftpack/medium.json' ); +var large = require( './fixtures/c/fftpack/large.json' ); + + +// TESTS // + +tape( 'main export is a function', function test( t ) { + t.ok( true, __filename ); + t.strictEqual( typeof rfftf, 'function', 'main export is a function' ); + t.end(); +}); + +tape( 'the function has an arity of 7', function test( t ) { + t.strictEqual( rfftf.length, 7, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns all zeros for a zero sequence', function test( t ) { + var workspace; + var expected; + var N; + var r; + + N = 4; + r = new Float64Array( [ 0.0, 0.0, 0.0, 0.0 ] ); + expected = new Float64Array( [ 0.0, 0.0, 0.0, 0.0 ] ); + workspace = new Float64Array( ( 2 * N ) + 34 ); + + rffti( N, workspace, 1, 0 ); + rfftf( N, r, 1, 0, workspace, 1, 0 ); + + t.deepEqual( r, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function returns only a zero-frequency term for a constant sequence', function test( t ) { + var workspace; + var expected; + var N; + var r; + + N = 4; + r = new Float64Array( [ 1.0, 1.0, 1.0, 1.0 ] ); + expected = new Float64Array( [ 4.0, 0.0, 0.0, 0.0 ] ); + workspace = new Float64Array( ( 2 * N ) + 34 ); + + rffti( N, workspace, 1, 0 ); + rfftf( N, r, 1, 0, workspace, 1, 0 ); + + t.deepEqual( r, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function computes the exact two-point real FFT', function test( t ) { + var workspace; + var expected; + var N; + var r; + + N = 2; + r = new Float64Array( [ 3.0, -1.0 ] ); + + // For [ a, b ], output is [ a+b, a-b ]... + expected = new Float64Array( [ 2.0, 4.0 ] ); + workspace = new Float64Array( ( 2 * N ) + 34 ); + + rffti( N, workspace, 1, 0 ); + rfftf( N, r, 1, 0, workspace, 1, 0 ); + + t.deepEqual( r, expected, 'returns expected value' ); + t.end(); +}); + +tape( 'the function computes a forward real-valued FFT (small sequence lengths)', function test( t ) { + var workspace; + var expected; + var lengths; + var offsets; + var input; + var ulps; + var off; + var y; + var e; + var N; + var i; + var k; + var r; + + lengths = small.lengths; + offsets = small.offsets; + input = small.input; + expected = small.expected; + + ulps = 32; + for ( k = 0; k < lengths.length; k++ ) { + N = lengths[ k ]; + off = offsets[ k ]; + r = new Float64Array( N ); + for ( i = 0; i < N; i++ ) { + r[ i ] = input[ off + i ]; + } + workspace = new Float64Array( ( 2 * N ) + 34 ); + + rffti( N, workspace, 1, 0 ); + rfftf( N, r, 1, 0, workspace, 1, 0 ); + + for ( i = 0; i < N; i++ ) { + y = r[ i ]; + e = expected[ off + i ]; + t.strictEqual( isAlmostSameValue( y, e, ulps ), true, 'within tolerance. N: '+N+'. index: '+i+'. y: '+y+'. E: '+e+'.' ); + } + } + t.end(); +}); + +tape( 'the function computes a forward real-valued FFT (medium sequence lengths)', function test( t ) { + var workspace; + var expected; + var lengths; + var offsets; + var input; + var ulps; + var off; + var y; + var e; + var N; + var i; + var k; + var r; + + lengths = medium.lengths; + offsets = medium.offsets; + input = medium.input; + expected = medium.expected; + + ulps = 8163; + for ( k = 0; k < lengths.length; k++ ) { + N = lengths[ k ]; + off = offsets[ k ]; + r = new Float64Array( N ); + for ( i = 0; i < N; i++ ) { + r[ i ] = input[ off + i ]; + } + workspace = new Float64Array( ( 2 * N ) + 34 ); + + rffti( N, workspace, 1, 0 ); + rfftf( N, r, 1, 0, workspace, 1, 0 ); + + for ( i = 0; i < N; i++ ) { + y = r[ i ]; + e = expected[ off + i ]; + t.strictEqual( isAlmostSameValue( y, e, ulps ), true, 'within tolerance. N: '+N+'. index: '+i+'. y: '+y+'. E: '+e+'.' ); + } + } + t.end(); +}); + +tape( 'the function computes a forward real-valued FFT (large sequence lengths)', function test( t ) { + var workspace; + var expected; + var lengths; + var offsets; + var input; + var ulps; + var off; + var y; + var e; + var N; + var i; + var k; + var r; + + lengths = large.lengths; + offsets = large.offsets; + input = large.input; + expected = large.expected; + + ulps = 40987; + for ( k = 0; k < lengths.length; k++ ) { + N = lengths[ k ]; + off = offsets[ k ]; + r = new Float64Array( N ); + for ( i = 0; i < N; i++ ) { + r[ i ] = input[ off + i ]; + } + workspace = new Float64Array( ( 2 * N ) + 34 ); + + rffti( N, workspace, 1, 0 ); + rfftf( N, r, 1, 0, workspace, 1, 0 ); + + for ( i = 0; i < N; i++ ) { + y = r[ i ]; + e = expected[ off + i ]; + t.strictEqual( isAlmostSameValue( y, e, ulps ), true, 'within tolerance. N: '+N+'. index: '+i+'. y: '+y+'. E: '+e+'.' ); + } + } + t.end(); +}); + +tape( 'the function leaves a length-one sequence unchanged', function test( t ) { + var workspace; + var N; + var r; + + N = 1; + r = new Float64Array( [ 5.0 ] ); + workspace = new Float64Array( ( 2 * N ) + 34 ); + + rffti( N, workspace, 1, 0 ); + rfftf( N, r, 1, 0, workspace, 1, 0 ); + t.strictEqual( r[ 0 ], 5.0, 'returns expected value' ); + t.end(); +}); + +tape( 'the function supports specifying a stride', function test( t ) { + var workspace; + var expected; + var v; + var i; + var N; + var r; + + N = 4; + r = new Float64Array([ + 1.0, // 0 + -999.0, + 2.0, // 1 + -999.0, + 3.0, // 2 + -999.0, + 4.0, // 3 + -999.0 + ]); + expected = new Float64Array([ + 10.0, // 0 + -999.0, + -2.0, // 1 + -999.0, + 2.0, // 2 + -999.0, + -2.0, // 3 + -999.0 + ]); + + workspace = new Float64Array( ( ( 2 * N ) + 34 ) * 2 ); + rffti( N, workspace, 2, 0 ); + rfftf( N, r, 2, 0, workspace, 2, 0 ); + + for ( i = 0; i < r.length; i++ ) { + v = r[ i ]; + t.strictEqual( isAlmostSameValue( v, expected[ i ], 1 ), true, 'within tolerance. index: '+i+'. y: '+v+'. E: '+expected[ i ]+'.' ); + } + t.end(); +}); + +tape( 'the function supports specifying a negative stride', function test( t ) { + var workspace; + var expected; + var v; + var i; + var N; + var r; + + N = 4; + r = new Float64Array([ + 4.0, // 3 + -999.0, + 3.0, // 2 + -999.0, + 2.0, // 1 + -999.0, + 1.0 // 0 + ]); + expected = new Float64Array([ + -2.0, // 3 + -999.0, + 2.0, // 2 + -999.0, + -2.0, // 1 + -999.0, + 10.0 // 0 + ]); + + workspace = new Float64Array( ( 2 * N ) + 34 ); + rffti( N, workspace, -1, workspace.length-1 ); + rfftf( N, r, -2, r.length-1, workspace, -1, workspace.length-1 ); + + for ( i = 0; i < r.length; i++ ) { + v = r[ i ]; + t.strictEqual( isAlmostSameValue( v, expected[ i ], 1 ), true, 'within tolerance. index: '+i+'. y: '+v+'. E: '+expected[ i ]+'.' ); + } + t.end(); +}); + +tape( 'the function supports an offset parameter', function test( t ) { + var workspace; + var expected; + var v; + var i; + var N; + var r; + + N = 4; + r = new Float64Array([ + -999.0, + 1.0, // 0 + -999.0, + 2.0, // 1 + -999.0, + 3.0, // 2 + -999.0, + 4.0, // 3 + -999.0 + ]); + expected = new Float64Array([ + -999.0, + 10.0, // 0 + -999.0, + -2.0, // 1 + -999.0, + 2.0, // 2 + -999.0, + -2.0, // 3 + -999.0 + ]); + + workspace = new Float64Array( 3 + ( ( ( 2 * N ) + 34 ) * 2 ) ); + rffti( N, workspace, 2, 3 ); + rfftf( N, r, 2, 1, workspace, 2, 3 ); + + for ( i = 0; i < r.length; i++ ) { + v = r[ i ]; + t.strictEqual( isAlmostSameValue( v, expected[ i ], 1 ), true, 'within tolerance. index: '+i+'. y: '+v+'. E: '+expected[ i ]+'.' ); + } + t.end(); +}); From 5baaac3e51450b6dc0e82ba5e071b31026fca0f3 Mon Sep 17 00:00:00 2001 From: Gunj Joshi Date: Wed, 27 May 2026 00:47:54 +0530 Subject: [PATCH 12/19] docs: add README --- type: pre_commit_static_analysis_report description: Results of running static analysis checks when committing changes. report: - task: lint_filenames status: passed - task: lint_editorconfig status: passed - task: lint_markdown_pkg_readmes status: passed - task: lint_markdown_docs status: na - task: lint_markdown status: na - task: lint_package_json status: na - task: lint_repl_help status: na - task: lint_javascript_src status: na - task: lint_javascript_cli status: na - task: lint_javascript_examples status: na - task: lint_javascript_tests status: na - task: lint_javascript_benchmarks status: na - task: lint_python status: na - task: lint_r status: na - task: lint_c_src status: na - task: lint_c_examples status: na - task: lint_c_benchmarks status: na - task: lint_c_tests_fixtures status: na - task: lint_shell status: na - task: lint_typescript_declarations status: passed - task: lint_typescript_tests status: na - task: lint_license_headers status: passed --- --- .../@stdlib/fft/base/fftpack/rfftf/README.md | 152 ++++++++++++++++++ 1 file changed, 152 insertions(+) create mode 100644 lib/node_modules/@stdlib/fft/base/fftpack/rfftf/README.md diff --git a/lib/node_modules/@stdlib/fft/base/fftpack/rfftf/README.md b/lib/node_modules/@stdlib/fft/base/fftpack/rfftf/README.md new file mode 100644 index 000000000000..9e0fa4cce33b --- /dev/null +++ b/lib/node_modules/@stdlib/fft/base/fftpack/rfftf/README.md @@ -0,0 +1,152 @@ + + +# rfftf + +> Compute the forward real-valued fast Fourier transform (FFT). + + + +
+ +
+ + + + + +
+ +## Usage + +```javascript +var rfftf = require( '@stdlib/fft/base/fftpack/rfftf' ); +``` + +#### rfftf( N, r, strideR, offsetR, workspace, strideW, offsetW ) + +Computes the forward real-valued fast Fourier transform (FFT). + +```javascript +var Float64Array = require( '@stdlib/array/float64' ); +var rffti = require( '@stdlib/fft/base/fftpack/rffti' ); + +var N = 4; +var workspace = new Float64Array( ( 2*N ) + 34 ); + +rffti( N, workspace, 1, 0 ); + +var r = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); + +rfftf( N, r, 1, 0, workspace, 1, 0 ); + +var out = r.slice( 0, N ); +// returns [ 10.0, -2.0, 2.0, -2.0 ] +``` + +The function accepts the following arguments: + +- **N**: length of the sequence to transform. +- **r**: input array containing the sequence to transform. +- **strideR**: stride length for `r`. +- **offsetR**: starting index for `r`. +- **workspace**: workspace array containing pre-computed values. +- **strideW**: stride length for `workspace`. +- **offsetW**: starting index for `workspace`. + +
+ + + + + +
+ +## Notes + +- Before calling this function, initialize the workspace by calling [`rffti`][@stdlib/fft/base/fftpack/rffti] with the same sequence length and workspace layout. + +- For `N = 4`, the output + + ```text + [ 10.0, -2.0, 2.0, -2.0 ] + ``` + + corresponds to a zero-frequency term `10.0`, a complex coefficient `-2.0 + 2.0i` at frequency `1`, and a Nyquist term `-2.0`. + +- If `N` equals `1`, the function returns early without modifying the input, as a single data point is its own Fourier transform. + +
+ + + +
+ +## Examples + + + +```javascript +var Float64Array = require( '@stdlib/array/float64' ); +var rffti = require( '@stdlib/fft/base/fftpack/rffti' ); +var rfftf = require( '@stdlib/fft/base/fftpack/rfftf' ); + +var N = 4; +var r = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); +var workspace = new Float64Array( ( 2*N ) + 34 ); + +rffti( N, workspace, 1, 0 ); + +console.log( 'Input sequence: %s', r ); + +rfftf( N, r, 1, 0, workspace, 1, 0 ); + +console.log( 'Packed output: %s', r.slice( 0, N ) ); +``` + +
+ + + + + +
+ +
+ + + + + + + + + + + + + + From 6ea739c0cbef861617d5ceb71ff7bd8a91c63c02 Mon Sep 17 00:00:00 2001 From: Gunj Joshi Date: Wed, 27 May 2026 22:01:58 +0530 Subject: [PATCH 13/19] docs: add examples --- type: pre_commit_static_analysis_report description: Results of running static analysis checks when committing changes. report: - task: lint_filenames status: passed - task: lint_editorconfig status: passed - task: lint_markdown_pkg_readmes status: na - task: lint_markdown_docs status: na - task: lint_markdown status: na - task: lint_package_json status: passed - task: lint_repl_help status: na - task: lint_javascript_src status: na - task: lint_javascript_cli status: na - task: lint_javascript_examples status: passed - task: lint_javascript_tests status: na - task: lint_javascript_benchmarks status: na - task: lint_python status: na - task: lint_r status: na - task: lint_c_src status: na - task: lint_c_examples status: na - task: lint_c_benchmarks status: na - task: lint_c_tests_fixtures status: na - task: lint_shell status: na - task: lint_typescript_declarations status: passed - task: lint_typescript_tests status: na - task: lint_license_headers status: passed --- --- .../fft/base/fftpack/rfftf/examples/index.js | 35 +++++++++++++++++++ .../fft/base/fftpack/rfftf/package.json | 1 + 2 files changed, 36 insertions(+) create mode 100644 lib/node_modules/@stdlib/fft/base/fftpack/rfftf/examples/index.js diff --git a/lib/node_modules/@stdlib/fft/base/fftpack/rfftf/examples/index.js b/lib/node_modules/@stdlib/fft/base/fftpack/rfftf/examples/index.js new file mode 100644 index 000000000000..a9561fc6155b --- /dev/null +++ b/lib/node_modules/@stdlib/fft/base/fftpack/rfftf/examples/index.js @@ -0,0 +1,35 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2026 The Stdlib Authors. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +'use strict'; + +var Float64Array = require( '@stdlib/array/float64' ); +var rffti = require( '@stdlib/fft/base/fftpack/rffti' ); +var rfftf = require( './../lib' ); + +var N = 4; +var r = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); +var workspace = new Float64Array( ( 2*N ) + 34 ); + +rffti( N, workspace, 1, 0 ); + +console.log( 'Input sequence: %s', r ); + +rfftf( N, r, 1, 0, workspace, 1, 0 ); + +console.log( 'Packed output: %s', r.slice( 0, N ) ); diff --git a/lib/node_modules/@stdlib/fft/base/fftpack/rfftf/package.json b/lib/node_modules/@stdlib/fft/base/fftpack/rfftf/package.json index 11923965b83e..f0617e07afbb 100644 --- a/lib/node_modules/@stdlib/fft/base/fftpack/rfftf/package.json +++ b/lib/node_modules/@stdlib/fft/base/fftpack/rfftf/package.json @@ -15,6 +15,7 @@ ], "main": "./lib", "directories": { + "example": "./examples", "lib": "./lib", "test": "./test" }, From 84c46609c90084b1785cabe82457eb844cb2c006 Mon Sep 17 00:00:00 2001 From: Gunj Joshi Date: Wed, 27 May 2026 22:03:30 +0530 Subject: [PATCH 14/19] refactor: replace functions by hardcoded fftpack constants --- type: pre_commit_static_analysis_report description: Results of running static analysis checks when committing changes. report: - task: lint_filenames status: passed - task: lint_editorconfig status: passed - task: lint_markdown_pkg_readmes status: na - task: lint_markdown_docs status: na - task: lint_markdown status: na - task: lint_package_json status: na - task: lint_repl_help status: na - task: lint_javascript_src status: passed - task: lint_javascript_cli status: na - task: lint_javascript_examples status: na - task: lint_javascript_tests status: na - task: lint_javascript_benchmarks status: na - task: lint_python status: na - task: lint_r status: na - task: lint_c_src status: na - task: lint_c_examples status: na - task: lint_c_benchmarks status: na - task: lint_c_tests_fixtures status: na - task: lint_shell status: na - task: lint_typescript_declarations status: passed - task: lint_typescript_tests status: na - task: lint_license_headers status: passed --- --- .../fft/base/fftpack/rfftf/lib/radf3.js | 14 ++++-------- .../fft/base/fftpack/rfftf/lib/radf5.js | 22 +++++++------------ .../fft/base/fftpack/rfftf/lib/radfg.js | 9 ++++---- 3 files changed, 17 insertions(+), 28 deletions(-) diff --git a/lib/node_modules/@stdlib/fft/base/fftpack/rfftf/lib/radf3.js b/lib/node_modules/@stdlib/fft/base/fftpack/rfftf/lib/radf3.js index 914ca19853df..2f2994203a2e 100644 --- a/lib/node_modules/@stdlib/fft/base/fftpack/rfftf/lib/radf3.js +++ b/lib/node_modules/@stdlib/fft/base/fftpack/rfftf/lib/radf3.js @@ -60,19 +60,13 @@ 'use strict'; -// MODULES // - -var cospi = require( '@stdlib/math/base/special/cospi' ); -var sinpi = require( '@stdlib/math/base/special/sinpi' ); - - // VARIABLES // -// cos( 2π/3 ) = -0.5 -var TAUR = cospi( 2.0 / 3.0 ); +// cos( 2π/3 ): +var TAUR = -0.5; -// sin( 2π/3 ) = 0.866025403784439 -var TAUI = sinpi( 2.0 / 3.0 ); +// sin( 2π/3 ): +var TAUI = 0.866025403784439; // FUNCTIONS // diff --git a/lib/node_modules/@stdlib/fft/base/fftpack/rfftf/lib/radf5.js b/lib/node_modules/@stdlib/fft/base/fftpack/rfftf/lib/radf5.js index 6ad5dea1f911..b2c119e9f673 100644 --- a/lib/node_modules/@stdlib/fft/base/fftpack/rfftf/lib/radf5.js +++ b/lib/node_modules/@stdlib/fft/base/fftpack/rfftf/lib/radf5.js @@ -60,25 +60,19 @@ 'use strict'; -// MODULES // - -var cospi = require( '@stdlib/math/base/special/cospi' ); -var sinpi = require( '@stdlib/math/base/special/sinpi' ); - - // VARIABLES // -// cos( 2π/5 ) = 0.30901699437494734 -var TR11 = cospi( 2.0 / 5.0 ); +// cos( 2π/5 ): +var TR11 = 0.309016994374947; -// sin( 2π/5 ) = 0.9510565162951536 -var TI11 = sinpi( 2.0 / 5.0 ); +// sin( 2π/5 ): +var TI11 = 0.951056516295154; -// cos( 4π/5 ) = -0.8090169943749475 -var TR12 = cospi( 4.0 / 5.0 ); +// cos( 4π/5 ): +var TR12 = -0.809016994374947; -// sin( 4π/5 ) = 0.587785252292473 -var TI12 = sinpi( 4.0 / 5.0 ); +// sin( 4π/5 ): +var TI12 = 0.587785252292473; // FUNCTIONS // diff --git a/lib/node_modules/@stdlib/fft/base/fftpack/rfftf/lib/radfg.js b/lib/node_modules/@stdlib/fft/base/fftpack/rfftf/lib/radfg.js index 49e8103f81af..890ae2120058 100644 --- a/lib/node_modules/@stdlib/fft/base/fftpack/rfftf/lib/radfg.js +++ b/lib/node_modules/@stdlib/fft/base/fftpack/rfftf/lib/radfg.js @@ -62,8 +62,9 @@ // MODULES // -var cospi = require( '@stdlib/math/base/special/cospi' ); -var sinpi = require( '@stdlib/math/base/special/sinpi' ); +var TWO_PI = require( '@stdlib/constants/float64/two-pi' ); +var cos = require( '@stdlib/math/base/special/cos' ); +var sin = require( '@stdlib/math/base/special/sin' ); var floor = require( '@stdlib/math/base/special/floor' ); @@ -389,8 +390,8 @@ function radfg( M, R, L, ML, cc, sc, oc, c1, sc1, oc1, c2, sc2, oc2, ch, sch, oc var l; // Compute the basic rotation angle for the radix-R DFT matrix: - dcp = cospi( 2.0 / R ); // cos(2π/R) - dsp = sinpi( 2.0 / R ); // sin(2π/R) + dcp = cos( TWO_PI / R ); // cos(2π/R) + dsp = sin( TWO_PI / R ); // sin(2π/R) // Compute half the radix, rounded up, which is used as the exclusive upper bound for conjugate-symmetric component loops: Rph = floor( ( R + 1 ) / 2 ); From b5c2ad393adf701a409e653154f589a78647e0a9 Mon Sep 17 00:00:00 2001 From: Gunj Joshi Date: Wed, 27 May 2026 22:05:15 +0530 Subject: [PATCH 15/19] test: regenerate fixtures with ffp contract off --- type: pre_commit_static_analysis_report description: Results of running static analysis checks when committing changes. report: - task: lint_filenames status: passed - task: lint_editorconfig status: passed - task: lint_markdown_pkg_readmes status: na - task: lint_markdown_docs status: na - task: lint_markdown status: na - task: lint_package_json status: na - task: lint_repl_help status: na - task: lint_javascript_src status: na - task: lint_javascript_cli status: na - task: lint_javascript_examples status: na - task: lint_javascript_tests status: passed - task: lint_javascript_benchmarks status: na - task: lint_python status: na - task: lint_r status: na - task: lint_c_src status: na - task: lint_c_examples status: na - task: lint_c_benchmarks status: na - task: lint_c_tests_fixtures status: na - task: lint_shell status: na - task: lint_typescript_declarations status: passed - task: lint_typescript_tests status: na - task: lint_license_headers status: passed --- --- .../fft/base/fftpack/rfftf/test/fixtures/c/fftpack/Makefile | 1 + .../fft/base/fftpack/rfftf/test/fixtures/c/fftpack/large.json | 2 +- .../base/fftpack/rfftf/test/fixtures/c/fftpack/medium.json | 2 +- .../fft/base/fftpack/rfftf/test/fixtures/c/fftpack/small.json | 2 +- lib/node_modules/@stdlib/fft/base/fftpack/rfftf/test/test.js | 4 ++-- 5 files changed, 6 insertions(+), 5 deletions(-) diff --git a/lib/node_modules/@stdlib/fft/base/fftpack/rfftf/test/fixtures/c/fftpack/Makefile b/lib/node_modules/@stdlib/fft/base/fftpack/rfftf/test/fixtures/c/fftpack/Makefile index 7ce16281940d..4b8cac6acbd2 100644 --- a/lib/node_modules/@stdlib/fft/base/fftpack/rfftf/test/fixtures/c/fftpack/Makefile +++ b/lib/node_modules/@stdlib/fft/base/fftpack/rfftf/test/fixtures/c/fftpack/Makefile @@ -56,6 +56,7 @@ endif CFLAGS ?= \ -std=c99 \ -O3 \ + -ffp-contract=off \ -Wall \ -pedantic diff --git a/lib/node_modules/@stdlib/fft/base/fftpack/rfftf/test/fixtures/c/fftpack/large.json b/lib/node_modules/@stdlib/fft/base/fftpack/rfftf/test/fixtures/c/fftpack/large.json index 003f72d330e9..bb503d1af6b9 100644 --- a/lib/node_modules/@stdlib/fft/base/fftpack/rfftf/test/fixtures/c/fftpack/large.json +++ b/lib/node_modules/@stdlib/fft/base/fftpack/rfftf/test/fixtures/c/fftpack/large.json @@ -1 +1 @@ -{"lengths":[586,790,287,430,137,315,331,183,903,1020],"offsets":[0,586,1376,1663,2093,2230,2545,2876,3059,3962],"input":[3.2458647340536118,-6.751311095431447,-9.2855554912239313,-2.3311354126781225,0.60717913322150707,4.8597750626504421,-1.7604057397693396,-7.1392038185149431,-8.5985553916543722,4.0795434266328812,4.8864816036075354,7.0964283309876919,9.6710927039384842,2.0552290417253971,2.2345986217260361,-3.1008689012378454,3.6964308843016624,5.9139796439558268,-3.7439994886517525,-5.3993568103760481,-6.9898759853094816,1.1543384566903114,0.9665288869291544,4.4510884396731853,9.443518677726388,-2.7814312838017941,-7.5155303627252579,6.4812131132930517,9.7489240951836109,-9.8325776867568493,3.8668199814856052,9.6435373462736607,-1.0676674451678991,-4.2866810318082571,-6.2480568885803223,8.9079029858112335,-4.8743694927543402,-3.528024610131979,4.4904281571507454,-9.3738493602722883,-6.2861931975930929,7.9509571101516485,-8.2637091912329197,-8.1603634636849165,8.7712802365422249,-1.0929175280034542,-8.6648234445601702,-9.6876222733408213,0.1324544008821249,6.1611949186772108,-8.7968753091990948,-9.0833122935146093,-3.2297099288552999,-1.7347212880849838,4.5393758360296488,-6.7102100607007742,1.4995355438441038,2.6939753815531731,-2.3556628916412592,8.3738400042057037,-0.87090551853179932,2.6910214778035879,7.9980767611414194,3.6762653570622206,6.9919631723314524,-6.0748296417295933,0.33824216574430466,4.8361605685204268,1.3507912307977676,2.7483048476278782,-9.2403261456638575,-2.1615242306143045,-8.7376825883984566,5.7687466591596603,-4.6747760940343142,-8.9617707580327988,-0.48112213611602783,-6.2196672055870295,6.0533052776008844,-2.0980737265199423,-2.3250597808510065,2.7203232981264591,0.47377116046845913,2.6719759590923786,7.9000436328351498,-3.9665228500962257,-5.3494943492114544,-8.9514908008277416,-7.7058813069015741,7.2528928518295288,-0.62970427796244621,-3.4397263824939728,8.5187407582998276,-5.5239303223788738,-0.69689319469034672,7.316149640828371,2.5271489191800356,-6.2080173008143902,1.8532548844814301,7.6549362391233444,-3.4864908829331398,2.5477815140038729,0.56400406174361706,-0.78365160152316093,9.167605321854353,-0.057205585762858391,-1.4542021043598652,-0.77470109798014164,-0.40128155611455441,-4.3390384968370199,-6.2199720367789268,0.93000743538141251,-9.3649480026215315,3.3189249038696289,1.1709635704755783,0.38481640629470348,7.6094218622893095,-8.4466226864606142,-2.3874791897833347,-6.3626831118017435,2.3849684093147516,4.1641522757709026,6.9074097275733948,-7.1645763516426086,4.9652801267802715,-8.5367920808494091,2.1355086099356413,-8.5066978354007006,7.9294920992106199,-9.0261482447385788,-2.4735417030751705,7.18465531244874,-7.4980291817337275,0.62356217764317989,0.20960278809070587,2.7941393386572599,1.099964939057827,7.1108176093548536,-8.4883056581020355,-2.9531838931143284,5.8383635710924864,5.37666330114007,5.5802225973457098,6.8013155180960894,9.7100441250950098,-3.2882352732121944,-5.370184350758791,3.3116530254483223,-1.0474971123039722,-5.283896429464221,-6.4472530968487263,1.017229063436389,-3.431044602766633,-5.5665872897952795,2.3674551025032997,9.8180045560002327,-8.7972722016274929,4.2461166530847549,4.4826998841017485,0.73706544004380703,7.8589348401874304,5.117998793721199,-1.7941556125879288,5.6266834493726492,7.6688558980822563,-9.5387826487421989,1.6800261940807104,-3.7996646761894226,-0.96416419371962547,-4.7075331304222345,0.49071840941905975,7.5043892022222281,6.2694587372243404,-9.2068761400878429,0.032719746232032776,9.9208534322679043,-0.21620796993374825,6.1927258875221014,1.1441183090209961,9.1965069249272346,5.692037483677268,6.0741109680384398,7.5831656157970428,-9.7353576868772507,-2.1566412784159184,-6.6699049528688192,-1.0925168078392744,-1.929919645190239,3.8405864406377077,8.7364161107689142,-7.0542796701192856,-1.2783926445990801,-5.9451095201075077,0.54432728327810764,8.508732570335269,6.2684544734656811,-6.0855371411889791,0.37729866802692413,1.2587947398424149,-3.4367193561047316,-0.94216668978333473,5.0045156944543123,-9.1046058759093285,-1.1109494045376778,8.2734274957329035,-8.5039362031966448,-5.6557554192841053,3.7187020853161812,0.22605527192354202,-0.68896475248038769,0.56947792880237103,-8.784367898479104,1.128739770501852,-9.2705900780856609,9.1925633139908314,-0.58823155239224434,-6.4076273981481791,7.0063474308699369,-4.3185962736606598,-2.647526953369379,3.0145522579550743,5.5799013003706932,1.4012772589921951,-8.7330188881605864,4.1515565942972898,-4.7882088925689459,4.5731833763420582,1.4931202307343483,-5.128192100673914,-9.5245978981256485,0.083129918202757835,-2.8353858552873135,5.6699862517416477,-4.5409443415701389,0.34849395044147968,-2.8620939422398806,-3.2128313649445772,1.9433024898171425,1.0850398242473602,-3.7355871219187975,-4.0127090644091368,-1.6011986695230007,8.6540270503610373,8.2327814027667046,8.3571789879351854,-0.8926061075180769,-2.030777782201767,8.7178768962621689,1.3571419660001993,9.485111441463232,-3.7318508327007294,-1.2168961483985186,7.6265025977045298,-1.3707024324685335,2.6042850315570831,-9.7813759744167328,4.4139996822923422,6.0927730891853571,1.2374358810484409,-2.4150592740625143,-9.9011598061770201,-8.7928616441786289,-1.6256442666053772,-2.2031232994049788,-7.8932320792227983,-1.5515390131622553,3.2838718965649605,-7.9649304691702127,-6.5863794181495905,2.7211458701640368,-5.701260594651103,-1.0867806617170572,-5.5225117225199938,3.1455146428197622,6.6647047456353903,-6.3072096835821867,-5.2731230668723583,-5.3793479315936565,9.2993498593568802,-5.8267627470195293,9.5985434949398041,2.7206728328019381,6.3484004512429237,-2.4334880150854588,0.36698967218399048,7.9955015238374472,0.39425197057425976,6.1929507832974195,4.9239416047930717,-3.3133314456790686,-7.1615551970899105,-4.25817527808249,-7.151853796094656,-1.2067286763340235,-1.4887943305075169,-2.1662462316453457,-8.100353954359889,-2.648896062746644,0.003930944949388504,6.0674700513482094,-4.0307212434709072,-4.3318923003971577,-6.1138484161347151,4.5497004315257072,6.8152665160596371,4.1844670102000237,8.3371514361351728,2.5043306313455105,-9.7149811126291752,0.31244226731359959,-8.7827325519174337,8.6140094418078661,-4.3431658577173948,4.4114736095070839,3.6370677687227726,8.1980956438928843,5.3936293255537748,-9.2718049418181181,8.7743485532701015,-9.5237182546406984,-5.1327020209282637,-5.3228276502341032,-0.7642808835953474,-5.2687383070588112,8.3153102826327085,-4.5799364522099495,5.0080901198089123,-9.0292389132082462,5.5815932992845774,9.8387030139565468,-0.91828917153179646,6.3139651343226433,-1.1878597643226385,-4.3589900061488152,-1.5449891984462738,-6.6333921160548925,-7.4212681874632835,-9.254406513646245,1.1897309776395559,-4.1913712397217751,-4.3763805460184813,6.1722070723772049,-3.7156079895794392,-8.2234316784888506,8.7837935332208872,9.2180598434060812,7.9319385252892971,-7.9090651217848063,-7.6574854739010334,0.6416584737598896,4.354051761329174,-1.4519350044429302,-2.6715527754276991,-0.78743926249444485,5.5083873495459557,-0.53369481116533279,-9.8086171690374613,6.5712414775043726,2.8556421026587486,-5.2230800036340952,-4.3055836949497461,-3.9451164565980434,-5.5722386576235294,7.384915966540575,-1.7172142956405878,-1.220602011308074,5.3420646488666534,4.0806735679507256,3.8807667419314384,4.0467402711510658,-6.4361528307199478,7.5794019736349583,7.0091084577143192,2.0859819184988737,-0.90180120430886745,3.4272303804755211,1.4611097332090139,-3.1286242604255676,-2.7878911979496479,3.9126924984157085,0.62292975373566151,9.5804541651159525,-1.3066936563700438,-1.6002145782113075,5.193649735301733,9.6712201181799173,4.1966801974922419,-6.3958096411079168,5.6273900996893644,-0.45447221957147121,1.6854803636670113,7.8685635980218649,6.9485317915678024,3.9739535190165043,-9.7630965244024992,-8.3632837794721127,-1.7104687821120024,-7.848756080493331,5.9565719775855541,-7.8946478385478258,-5.3462059982120991,6.3158244639635086,-9.9381064716726542,-9.7554689180105925,-0.16610309481620789,8.3053623791784048,8.2256501074880362,8.5014991834759712,4.6969214733690023,1.1593179311603308,4.6565563417971134,2.7425512857735157,-5.9404402785003185,-0.97972898744046688,-6.3050213176757097,-8.4932572580873966,-6.1747248843312263,1.3988989777863026,-8.7047911342233419,-1.4245827589184046,-2.9623620305210352,-8.4185918886214495,8.7261403072625399,0.24029071442782879,-1.4338824711740017,0.73737401515245438,-6.9548432994633913,9.9486897420138121,7.6286501437425613,-5.2768961526453495,-8.7936005461961031,5.9556295163929462,-3.7345931120216846,-7.306384714320302,1.5921274945139885,-1.1131089832633734,-8.0226121563464403,3.957503754645586,-6.2342864368110895,0.3478859830647707,6.9197983480989933,1.0509689152240753,3.634644653648138,7.4728005658835173,-4.640752449631691,2.8736209776252508,-3.0521283019334078,2.8796837758272886,-1.1546788737177849,-6.6877613496035337,-1.2049768678843975,7.9538502916693687,0.36199259571731091,4.0096373111009598,9.9743973091244698,-0.30426922254264355,6.1472526006400585,-3.1254146713763475,-8.8443280197679996,-6.621019197627902,0.53037190809845924,-6.0392581764608622,-1.8121407832950354,3.3499192353338003,2.092692730948329,-8.1131763104349375,1.8457652814686298,1.7771783471107483,9.036572054028511,-2.3333389591425657,3.5721736866980791,-2.4767414480447769,-6.5934584103524685,3.744523860514164,-5.7873687706887722,-8.3068959973752499,5.9989853575825691,4.94703009724617,4.7349613904953003,0.49620537087321281,-0.27624959126114845,-2.9268042277544737,9.2013994790613651,7.9211948532611132,-8.4779609832912683,-9.0902342647314072,0.43271977454423904,-7.2786675859242678,7.4339046608656645,1.6357716079801321,-7.5864936131983995,-6.1981381382793188,7.8923396859318018,6.5532414801418781,0.32968629151582718,1.0375823453068733,-1.3534360472112894,-7.1995778102427721,-3.3042348362505436,5.7251595333218575,2.7563996054232121,6.8082681763917208,6.5633721556514502,-9.4040503352880478,6.1260194703936577,0.0093651097267866135,-2.6005224883556366,-6.9814038835465908,3.5449528507888317,0.022669211030006409,1.001508217304945,-7.6513056550174952,4.5058744959533215,-9.7672329843044281,2.115234611555934,-9.2517887614667416,5.1862918771803379,6.0076986160129309,-8.6092353891581297,4.5808252971619368,9.9308835063129663,8.3592465799301863,-6.1425874289125204,1.5331124514341354,7.0210615079849958,2.9808979108929634,-0.048710033297538757,1.330548245459795,2.5244501139968634,8.433163957670331,-3.8132191728800535,-8.7745901755988598,5.4629282932728529,-4.5640539471060038,-8.0546464677900076,5.5568310711532831,-6.3400653749704361,2.5212715100497007,-4.9896326009184122,-0.75508442707359791,9.296106519177556,-0.33758116886019707,6.2733705807477236,-3.4605220146477222,-0.9934490080922842,3.1025914754718542,5.255030794069171,1.3026753067970276,-5.9360302053391933,-6.8596293311566114,-9.7901441715657711,-2.9530898667871952,7.418664051219821,5.4868451692163944,-2.593119777739048,-2.5640464946627617,6.0706223919987679,8.9506680890917778,-6.1212783213704824,-0.32471692189574242,2.4827694147825241,7.9056519363075495,-9.707766342908144,1.571077024564147,5.091642402112484,-4.7660295851528645,-2.6591967046260834,6.8810427933931351,9.6863606665283442,-1.3361235894262791,3.7709003128111362,-2.4783348105847836,6.6268973611295223,-1.7359213717281818,4.3695700354874134,-0.63630110584199429,5.6873873900622129,7.9199875425547361,-8.7692320346832275,-4.4827972911298275,-2.3740288428962231,-0.3027028776705265,-7.527189115062356,-9.4674375001341105,0.77793940901756287,-5.1722682919353247,9.6868552174419165,6.9757936149835587,2.1634198818355799,0.59804920107126236,-8.5869946517050266,-1.6191001515835524,7.7838179189711809,2.6279033254832029,7.1712902188301086,7.8748422581702471,-7.526027038693428,-9.9364199582487345,-1.410237792879343,-1.8665177002549171,9.437075462192297,8.9274451788514853,3.5712690837681293,2.3195970989763737,5.4685389064252377,9.7335213422775269,-8.7066459003835917,7.4023623671382666,-8.4955593105405569,-4.8653204832226038,8.5586786549538374,5.7122990489006042,6.6102378349751234,-1.7325775790959597,0.56869283318519592,-1.979469945654273,-8.9513138402253389,-4.7317044623196125,-5.7568569760769606,4.5048362761735916,-7.2165928315371275,-9.275697860866785,3.3460580743849277,-2.8018393646925688,9.4858539383858442,8.7472949456423521,-4.21370186842978,0.31274258159101009,-3.7353504914790392,-0.035661263391375542,0.64122416079044342,-2.9454463161528111,-4.1161803714931011,-0.64345763996243477,5.4075183719396591,4.1613977681845427,0.61240070499479771,-7.3812680970877409,3.0271127354353666,-3.3161535859107971,5.406733900308609,-9.0232169348746538,6.7929831985384226,9.6687492541968822,2.6688692159950733,-4.3149876222014427,-1.9969218503683805,-2.2654765099287033,4.1363581549376249,-0.22837933152914047,1.6286514606326818,-7.2548101376742125,8.4060375858098269,0.2738487534224987,2.5760791730135679,-3.8372407387942076,7.4949513096362352,7.6467979699373245,-0.26638115756213665,2.9319610260426998,-2.5309340935200453,2.5907486584037542,2.7128003258258104,-5.9648243524134159,9.1971405595541,-3.6584653332829475,-7.8268068563193083,-5.1428171526640654,4.6721531823277473,4.8786502052098513,-4.5258845947682858,-6.5423414297401905,2.8676174115389585,-3.9540635608136654,4.0537807159125805,-8.1073976680636406,-1.0325923375785351,5.2206524927169085,3.5065642092376947,-5.175229636952281,-0.08447050116956234,0.30436444096267223,-4.5467600971460342,2.6030899398028851,-9.867283096536994,0.57299753651022911,-9.6303211245685816,3.1928622629493475,2.4361566361039877,4.4846803229302168,-5.977699151262641,-7.1896037925034761,4.3290813826024532,-1.1290904600173235,3.3767079096287489,-7.6700581796467304,9.3321929033845663,6.1662784777581692,-3.3574977982789278,-9.4654436875134706,-5.7120518572628498,-2.4555314611643553,9.8827912472188473,0.072647612541913986,0.98850281909108162,-6.2330335378646851,1.4053585845977068,-0.13817940838634968,-2.3812395706772804,-1.4934047497808933,0.3464370034635067,2.5667981803417206,0.17711535096168518,-3.2222167402505875,4.2032996471971273,4.8572815954685211,-3.6681086849421263,-9.9026182666420937,6.6947933007031679,-0.608864426612854,6.8156554084271193,-9.2794189602136612,0.80554132349789143,-1.2668914068490267,7.3561934288591146,-4.4569053314626217,-7.2078625112771988,-2.5452051870524883,2.7364795468747616,-7.98815599642694,3.0621837917715311,6.1230905260890722,-9.2174018360674381,3.1273473333567381,1.3267344608902931,-1.5738271735608578,8.6867599003016949,-1.6262093838304281,8.2989514898508787,0.47783313319087029,-9.0584484580904245,-5.3432277590036392,-3.6289091315120459,8.9242765307426453,-9.6841997001320124,-2.3443576507270336,-1.6189758572727442,9.8728324007242918,-7.3056854959577322,-6.6561094764620066,-9.231944726780057,-1.29501698538661,-5.35040526650846,-4.2612778209149837,0.70370879024267197,7.2337213717401028,-2.8447702899575233,7.9457926750183105,4.9376294761896133,6.7387232184410095,-2.278736662119627,1.2729801796376705,-5.022032605484128,-5.3019614145159721,9.9345429893583059,9.8641781508922577,7.2423375025391579,1.966540114954114,-8.3601943124085665,-9.7857958171516657,-9.8702971916645765,9.9151006992906332,3.0976088345050812,1.5117840282618999,8.5542530845850706,-8.6682621669024229,-7.4822287075221539,6.1821323726326227,3.0989134777337313,3.4389227814972401,-2.0247062016278505,-9.2370683420449495,-7.4076187796890736,0.15119004994630814,1.0512488894164562,8.3401709049940109,-6.7474562302231789,-4.496835907921195,1.6789386328309774,-2.0783066097646952,9.9008716735988855,3.9503739215433598,-6.0653914418071508,-1.0339316632598639,2.7106057573109865,-2.8489373996853828,-2.090820549055934,-0.42090608738362789,5.8314643055200577,9.420706769451499,-6.181173836812377,-6.9886454194784164,1.8364583887159824,5.3562317788600922,2.1876274794340134,7.4551422242075205,-1.4245011378079653,-1.5905560273677111,7.5249138381332159,-8.7729853391647339,-7.5645857397466898,2.0074911322444677,-0.09644639678299427,-0.97451322712004185,1.3562624249607325,-5.2973348088562489,7.6939043495804071,-8.5494581237435341,9.2573255859315395,7.8712734580039978,-7.5068514607846737,-7.652481896802783,4.7367788013070822,-8.9585710968822241,-6.7044171504676342,-1.1390221212059259,-3.5447217617183924,3.8614013139158487,-1.4280085358768702,-0.53939539939165115,-5.618403535336256,-8.5081841051578522,2.9497562814503908,-3.4460763167589903,1.7953955195844173,-4.787410032004118,-2.0003671012818813,-0.16980864107608795,6.0262463614344597,3.1227220501750708,3.5895999893546104,-9.5928725600242615,-7.4091131426393986,-4.9645680654793978,0.50456289201974869,0.18860838375985622,9.9411855824291706,1.5062399487942457,-4.6250905655324459,6.1029071547091007,-8.4393247775733471,0.26847553439438343,-7.7316130697727203,-5.2208459191024303,-6.7573249526321888,9.6395464800298214,-8.142156433314085,-5.2231601718813181,-5.652971426025033,-9.4907231815159321,9.4154922384768724,6.1782040260732174,-2.9248071741312742,2.7658797428011894,6.1409371625632048,-9.2689824756234884,-3.7884620856493711,7.3177750967442989,9.8461865074932575,4.8567867558449507,8.0151217523962259,-9.8485664837062359,-4.8568904679268599,-9.7580541949719191,-3.6168530024588108,-8.4483623690903187,8.3736748341470957,-3.6469186935573816,6.2375670950859785,-5.2097058109939098,0.47447211109101772,-5.5471469182521105,9.1017797775566578,-6.3871291093528271,-8.4789126180112362,-5.0843590125441551,7.1781146340072155,2.5727881956845522,0.85130326449871063,7.8540513478219509,3.0411425698548555,-7.5167263858020306,6.3796532526612282,2.8323456645011902,3.2336836960166693,8.5219825152307749,8.9602784346789122,-4.6001999638974667,4.4392490293830633,-9.5414501521736383,-3.1527039967477322,-7.4960197508335114,-5.6039326637983322,-5.2962460555136204,5.9925817884504795,-2.6777563523501158,-5.0509566441178322,8.5717210359871387,4.915597178041935,-3.5581119172275066,-1.1869424302130938,-8.9413556177169085,2.6361413113772869,5.627119205892086,-5.0073842704296112,0.89260595850646496,2.0284298621118069,-8.1792133487761021,-8.0387386307120323,-7.0801510289311409,3.9016795996576548,-4.470859756693244,-1.7398874741047621,-2.2887126356363297,-6.3932067900896072,9.3735071830451488,0.53537705913186073,-1.9176847208291292,9.4729602709412575,-7.9565738886594772,-6.1373307090252638,9.8828036338090897,0.28082903474569321,-0.1063325721770525,-7.1314631495624781,1.4988677483052015,-8.5296642407774925,1.9331167545169592,9.8933865502476692,-1.8520942982286215,-8.1488065607845783,3.0081473756581545,-2.0669555105268955,0.67879665642976761,8.5354881826788187,-4.0499686542898417,-7.823126083239913,-3.2800639793276787,-8.0352479685097933,-8.4125913679599762,9.5768911112099886,-1.1909406818449497,3.8600291684269905,-4.4896577764302492,2.3217946570366621,2.4028972443193197,5.4940823372453451,-0.95803665928542614,-1.7220618482679129,-2.6934190560132265,-8.294017231091857,2.4524103850126266,-2.3385616391897202,-4.2054099030792713,-0.32419570721685886,-8.7571754679083824,-1.8480794131755829,-0.67063344642519951,8.6637389380484819,-8.5395221505314112,-3.7487725540995598,-5.6202678289264441,0.15863350592553616,6.153413588181138,0.42230297811329365,-2.3537652846425772,0.26692084968090057,6.1388009320944548,-5.1726079825311899,3.9776753727346659,-7.2099010553210974,3.1929850485175848,4.4998136814683676,8.3686579111963511,-7.9663427639752626,9.6771817747503519,4.3942422233521938,-5.9708394668996334,8.1011113431304693,-4.6215143427252769,6.2084839027374983,5.9890801552683115,-1.5297052729874849,-9.7564568091183901,3.230411047115922,-6.4814275782555342,6.6467197891324759,-8.5803737677633762,9.6580963023006916,3.6247066128998995,0.44414963573217392,4.8230094835162163,0.32050546258687973,6.7353904619812965,1.7076254915446043,0.061728013679385185,-2.5371953472495079,-2.6421428192406893,-6.494305394589901,-9.7907394357025623,7.0423057768493891,0.033324882388114929,0.091376816853880882,-4.2297601606696844,-9.5789752155542374,6.1635554675012827,-9.1231312043964863,7.5338545627892017,1.4937740191817284,5.8600303344428539,9.5299550984054804,9.9554917402565479,1.9498346652835608,-9.1286870557814837,-5.8433397021144629,-9.0103409066796303,3.2003891747444868,8.9409632328897715,-9.2307965829968452,-1.9981644116342068,-3.1492037139832973,-8.6667673010379076,-2.3580181133002043,8.7896295636892319,7.3042239714413881,2.0924234390258789,7.360834339633584,-6.4571179077029228,-4.780647037550807,-8.334719268605113,-1.6267344169318676,-0.52527984604239464,-8.378298282623291,5.9407766349613667,6.6330285463482141,1.3109086453914642,-7.5583083834499121,7.5110184587538242,-2.3126266803592443,-8.3165566343814135,3.6326591204851866,-5.898055313155055,-8.6156160943210125,-2.6596864219754934,-1.3496366981416941,-3.3439179696142673,-1.2292632181197405,-0.22683830000460148,7.528768302872777,-3.9909964334219694,3.3229904994368553,9.5014282967895269,-9.4944632332772017,6.5564422588795424,-5.8748254366219044,1.8089189752936363,2.5013101752847433,-0.47978615388274193,-3.7658138014376163,7.967488020658493,9.5713038183748722,4.9034285917878151,-8.0755411833524704,-5.6206535454839468,-6.3241046760231256,-9.2272611521184444,-2.57817761041224,8.568959878757596,-1.4911723975092173,-2.1344183478504419,6.8308892287313938,6.7553990054875612,-2.0087836403399706,-1.6265806555747986,2.0589872822165489,5.3993465844541788,6.8181654345244169,-7.0934103243052959,1.0527021437883377,-7.2349828481674194,1.6432924848049879,-1.1831167619675398,-4.6433493867516518,-0.77310121618211269,6.4879318326711655,2.6704407390207052,2.0975998789072037,-5.6387405283749104,9.6879737265408039,5.774576049298048,-6.7002159915864468,9.469855222851038,-0.14311716891825199,-5.3701808676123619,3.3701942674815655,2.8551581967622042,6.643913583829999,4.255733685567975,6.1161649040877819,-5.6163308676332235,6.3271419890224934,0.27553727850317955,-9.0448797773569822,2.7055894304066896,-7.158343717455864,9.7171629499644041,-3.6421456374228001,6.4583215862512589,5.0110289268195629,0.36329053342342377,5.824076347053051,5.2512887585908175,-1.5897150058299303,1.6599628329277039,-1.0045757330954075,-3.9042757358402014,0.83775543607771397,0.15569897368550301,-3.1672697886824608,7.6967150811105967,-1.3094932772219181,-8.6534422542899847,1.5960426814854145,4.6894384734332561,-4.6074620448052883,2.3854551557451487,-7.6551004592329264,0.72660001926124096,-8.0333923269063234,2.7751770708709955,2.4011301063001156,-4.2062063608318567,6.2897388357669115,-8.3592597767710686,5.9209446422755718,-6.683272672817111,-5.7637860812246799,8.047366002574563,-7.9194534849375486,-2.2547050658613443,5.1720186788588762,6.1180543154478073,6.1390058696269989,-1.7282228730618954,-6.2417628150433302,-5.3076030220836401,-4.8839554376900196,-4.6390012186020613,-7.6934390887618065,-3.6307467706501484,-1.9609244726598263,2.7424509171396494,-7.6273359078913927,7.3654146306216717,-9.4761672336608171,-5.9426920395344496,1.1749232932925224,6.9358778186142445,-8.7013700045645237,-3.9256565552204847,1.4903239440172911,7.8746170178055763,8.6883581429719925,5.235455185174942,-7.704583527520299,9.0646709222346544,9.9243391957134008,-1.6309817135334015,8.090406134724617,-4.5439521037042141,9.7970357351005077,-1.2202452309429646,-8.6615277454257011,5.7031930983066559,-6.4334738627076149,-7.3951826151460409,9.1658076178282499,9.7287828288972378,-8.3468403201550245,-5.3452479094266891,2.4184226896613836,6.4302423223853111,-6.9171590823680162,3.3073267620056868,6.240993170067668,-7.6276635657995939,1.8584681674838066,-4.7254162933677435,-0.071601355448365211,-3.4039033204317093,-9.4030548725277185,2.8567620925605297,-6.3994097150862217,5.1209467183798552,7.7516141440719366,1.3790583424270153,-2.1663497760891914,-9.8406254220753908,8.6085324175655842,3.6044876556843519,0.62413555569946766,9.8463677801191807,7.903435779735446,-6.9547098688781261,-7.8087424021214247,-1.5335353091359138,5.8721256069839001,-7.1847992017865181,5.0798375997692347,-3.1693426612764597,-7.1420546155422926,3.4880989417433739,4.4790194369852543,-1.1202092748135328,-7.357212295755744,7.3329659085720778,5.1581610180437565,-6.7876511067152023,-0.052125426009297371,3.9280429109930992,-1.3826859369874001,1.1975244898349047,6.7941882833838463,9.9226102605462074,9.3108049128204584,6.6983208991587162,-1.3205171562731266,6.068222438916564,8.6146566178649664,6.5339221339672804,-4.3705650139600039,3.9138544257730246,0.15144285745918751,5.3001847583800554,0.20535383373498917,-8.6180365458130836,-3.3402146678417921,1.0121296998113394,-9.136049086228013,-9.5769854728132486,-0.39483826607465744,3.9533372502774,3.7392746098339558,5.9884750004857779,8.2994582876563072,8.9955838490277529,8.7778992671519518,-9.8468700144439936,3.6556684318929911,0.81944169476628304,-7.643351387232542,-1.8067467771470547,-5.9930193889886141,-4.6768393740057945,-3.6393172573298216,-6.0050941631197929,-7.617568289861083,-8.4702290501445532,0.86036618798971176,0.17460653558373451,-5.3878768160939217,5.9543879982084036,-4.6007892489433289,-5.4648647364228964,-7.9815895669162273,-6.5758353658020496,-0.064966240897774696,8.1124669779092073,6.232639467343688,-8.028345312923193,7.600341122597456,-1.0666147619485855,-6.5942341554909945,-9.2934246826916933,5.411363523453474,8.7868592888116837,0.74421408586204052,8.0062251631170511,0.62645742669701576,8.8700536545366049,-1.0080805234611034,-2.8092874400317669,4.3060516566038132,-8.1896954961121082,-4.2121889907866716,5.7396771386265755,6.7537920735776424,-9.0164882596582174,-0.11817238293588161,-6.1231626663357019,8.0050972290337086,1.6692692786455154,-4.5911424793303013,-3.3316077757626772,5.6681649386882782,4.8482471518218517,4.4899968709796667,3.3775239530950785,6.0451843589544296,1.4136465173214674,-0.8428940549492836,-6.5203098673373461,-6.8479131069034338,7.1244369354099035,0.41170745156705379,-0.43278003111481667,6.2660919222980738,-5.7929346337914467,-1.8523572105914354,7.4324253480881453,-3.2270382530987263,3.1681331712752581,6.8143126741051674,8.1532452721148729,-8.406569492071867,-9.2134407814592123,9.7007921617478132,1.2140166759490967,3.9783604349941015,4.3039403390139341,-3.6746102478355169,0.82561412826180458,-3.9032615814357996,-2.1173514798283577,-6.3262597844004631,-5.4481676686555147,-7.3539714701473713,1.8015219364315271,-1.8207220360636711,-0.87519611231982708,-9.4209883455187082,1.4488813932985067,-8.6503332294523716,-6.1505768448114395,7.2549993731081486,-5.2254011295735836,-3.3167473785579205,-4.5731391198933125,-0.74914557859301567,9.1103329788893461,-2.6334742456674576,-0.80158928409218788,7.6889742445200682,8.5902660805732012,-3.3978383149951696,-7.4685084540396929,-3.2215672358870506,-4.8804805055260658,-6.2358163110911846,-5.3647110518068075,-4.6986114419996738,-9.5624641980975866,3.6642259918153286,4.6463513746857643,-8.772331029176712,3.432402228936553,8.3843668550252914,-3.9461237099021673,-2.5011449493467808,3.2568950112909079,-1.3654414843767881,-8.9749603439122438,-2.1584921143949032,2.223094729706645,3.5532178357243538,-1.0677289124578238,-5.319761773571372,-9.236091785132885,9.0053732413798571,-6.6917833872139454,-8.8033630140125751,1.8778328504413366,0.73681032285094261,3.5711801797151566,0.82538668066263199,-7.7259733807295561,9.5654078666120768,5.8101672679185867,-8.5186043567955494,7.8165869228541851,-6.6234481520950794,-0.29306584037840366,-5.5575032718479633,-4.9574551824480295,0.05078805610537529,-6.4050623774528503,-9.8833497148007154,-9.4586557429283857,8.372932830825448,3.8822314701974392,8.6644282471388578,3.0456957314163446,9.0082600060850382,1.8260710313916206,-9.2240828461945057,-9.160389918833971,1.3266407232731581,-3.149275304749608,-9.8699933104217052,-4.9775672424584627,2.0273953024297953,-5.5670579336583614,-5.5426563043147326,4.575528260320425,0.9035852737724781,6.5577816218137741,-3.3641525916755199,-1.3125563599169254,-0.13467313721776009,-3.4513400122523308,-6.6715346742421389,-8.4832439385354519,2.1191368997097015,-3.6660317331552505,5.0047104246914387,-5.8317747805267572,5.3612963017076254,7.307063015177846,9.8082315362989902,6.9475855957716703,8.0712407641112804,-6.6563361510634422,6.9583352375775576,8.7404706794768572,1.0908566322177649,-5.9724955167621374,0.26788129471242428,2.2810005862265825,-3.2230511773377657,-9.8210844770073891,-2.9668036662042141,-3.0691628530621529,-3.4200171753764153,-0.2286150585860014,-2.3332131840288639,5.6860760226845741,5.8798360172659159,2.404066463932395,5.1451563835144043,-5.3565437439829111,-7.430668780580163,-7.2501751035451889,6.3070562295615673,2.6941778603941202,1.0473989881575108,3.634880417957902,-8.5647086706012487,-7.0586155634373426,5.8482483215630054,-8.4903354570269585,2.9319855570793152,-2.118640961125493,-7.9985719546675682,8.0011735577136278,-4.2758746258914471,-4.6247925609350204,-8.8885295670479536,-9.5164246764034033,-2.5495325308293104,-9.9931873381137848,4.5004083681851625,-1.6364424303174019,-3.6878608912229538,-1.8779493868350983,-2.6952809747308493,0.41271486319601536,-3.5012127738445997,-4.8830391466617584,-9.2388978973031044,1.8430459778755903,-3.926157159730792,-6.9233360607177019,-0.50914840772747993,2.7427855972200632,-2.0023677963763475,6.204508887603879,-0.81899922341108322,-4.9198760185390711,-8.3562038280069828,-2.7177244517952204,3.2051956653594971,9.7236510366201401,5.4031268320977688,-9.6472123824059963,-0.69850834086537361,0.1703878678381443,3.7089743465185165,-3.2680507749319077,-6.1293215956538916,4.4919721316546202,-3.4242698643356562,8.2964415661990643,-1.7064537014812231,-0.36729589104652405,6.8580345623195171,2.9870208352804184,2.8592801932245493,-4.0776918362826109,6.23335394077003,3.9798095636069775,8.6594449449330568,-0.70866447873413563,9.4761786237359047,6.134281549602747,-1.1298695579171181,-9.7175904922187328,-3.5434005130082369,6.0676283948123455,-1.3694426417350769,3.7775878980755806,9.9199107754975557,3.9405596815049648,8.9866761490702629,-0.93381398357450962,5.3884490113705397,3.6626545339822769,-1.7651404347270727,-6.7152220103889704,-2.7363029029220343,-9.042832562699914,-2.886873809620738,0.3119373694062233,2.7314483094960451,7.45183733291924,3.0301909521222115,8.4194342885166407,5.4322312492877245,-0.48927244730293751,-3.2019473891705275,4.8702834080904722,-5.1466438453644514,0.35692893899977207,-1.0952411778271198,-7.7184060495346785,-3.2504566758871078,9.5747011806815863,2.0028969086706638,2.6884379610419273,4.5769105292856693,4.1353797819465399,3.3281057979911566,-4.5257488545030355,-4.2609547916799784,6.1328611429780722,-5.002643708139658,0.567236403003335,-6.4576920215040445,5.5702222976833582,-1.2737209815531969,-7.4284686706960201,9.7270717285573483,2.8946962486952543,-8.8400472607463598,5.3256977070122957,9.0014816913753748,7.9029356501996517,4.6396130137145519,-2.0239639282226562,3.238320779055357,6.4574371837079525,-9.8531246185302734,-1.4654624927788973,9.9719506502151489,-1.4252655301243067,5.5623023025691509,5.6149210687726736,9.978525061160326,9.0708592720329762,-6.0680656880140305,-5.9799876809120178,-5.6529216282069683,-8.6537712533026934,-3.9334437251091003,-9.3886404298245907,5.1203007157891989,-3.1057513970881701,1.6363230906426907,1.6822754964232445,-5.9956401865929365,-8.7245847284793854,5.9044784214347601,-3.431046474725008,-5.5980492942035198,-6.4144532289355993,-7.7153906598687172,7.429197458550334,2.5218222569674253,4.2667708452790976,-8.3822917379438877,-1.1772269662469625,-5.6535526644438505,0.74040270410478115,3.9483319409191608,-0.38495981134474277,9.9805259704589844,2.7001418732106686,1.2845624424517155,9.6410585939884186,-2.7280571218580008,9.5440098363906145,6.1734731681644917,-2.4363360833376646,-7.50049346126616,-0.79358394257724285,2.2347491513937712,-0.57091677561402321,4.6018260437995195,2.8904324118047953,-0.50235391594469547,-3.0621909536421299,-6.2433035671710968,8.7969759479165077,-9.2250962555408478,-6.1927608121186495,-1.7309394851326942,8.1001380831003189,-0.97909567877650261,4.3389973975718021,5.5293732043355703,-7.8244331944733858,-5.248682489618659,5.3934341575950384,7.4480071663856506,-1.3434180058538914,1.1736433580517769,5.4240062180906534,1.2726281583309174,9.0615452826023102,-2.6082861237227917,2.5351764354854822,8.7104493007063866,-3.4784565959125757,-2.4199564661830664,7.7917321771383286,-4.3571595940738916,9.2187465541064739,-0.52651472389698029,-9.1328903939574957,3.5111555363982916,-8.0087940115481615,-3.800936508923769,-2.3398569691926241,-5.976021271198988,1.0105264466255903,3.9180746022611856,-8.9200508687645197,0.70505712181329727,9.8951300885528326,7.4515540059655905,-1.7316851578652859,-4.4323835335671902,4.9299949035048485,-1.5755399502813816,-0.099878450855612755,1.342953946441412,-8.9729333855211735,-8.0914024170488119,7.7995915897190571,7.7359877061098814,-1.2544846069067717,-4.1227198392152786,9.4477082975208759,7.6335086300969124,-3.620315957814455,-6.6502530593425035,9.196857837960124,-8.4101671632379293,-9.6795000974088907,-3.3581346459686756,-0.16894281841814518,0.57812778279185295,-3.4062718320637941,-9.2106298916041851,-3.0565820168703794,8.0260967928916216,-5.3910607937723398,-7.5587248615920544,0.51127032376825809,-7.0795861631631851,-6.6046214289963245,-3.8723305705934763,-2.259852010756731,-1.3326842151582241,1.5764636639505625,-4.3751093838363886,7.5366298761218786,8.1384652201086283,3.1850963179022074,-8.0860818270593882,-2.7772524114698172,2.7187769487500191,-5.515722818672657,-2.753378339111805,3.9703112561255693,9.0213910304009914,2.5191968120634556,0.14091832563281059,8.4143782686442137,0.45570521615445614,-0.96235026605427265,5.7791491504758596,-9.8401044588536024,-2.6356387045234442,2.8203507047146559,1.6343944706022739,9.2679584585130215,6.5779630187898874,-4.1754134558141232,3.8260937109589577,5.1571082882583141,-4.4808806199580431,9.8394635505974293,-8.1359498389065266,-0.90892791748046875,3.6485620494931936,1.3824726454913616,-4.7821581456810236,6.2680863682180643,7.7277179528027773,-0.24422850459814072,-4.7484004311263561,-6.366004841402173,6.5566589869558811,-2.2322766575962305,2.1262765675783157,-3.6696338094770908,4.4646136555820704,-3.2381774298846722,-4.0480111539363861,5.0765823666006327,2.1199534460902214,-9.9423367064446211,-0.85302476771175861,3.2128006499260664,-2.4593732878565788,5.3132100030779839,-0.87935842573642731,0.62301002442836761,-9.070436293259263,-6.8227735348045826,9.6452253963798285,7.3033906985074282,8.0876052286475897,8.3812194317579269,3.1551334075629711,8.3272838592529297,-3.3400341030210257,4.0468826424330473,-4.0433186944574118,3.9427488669753075,5.7803163677453995,9.777316190302372,7.3533651884645224,8.0088583286851645,4.8820711486041546,-7.0300889387726784,5.2952292840927839,-3.0813025496900082,-7.451898492872715,-4.0579497721046209,-1.9617732614278793,8.4768580831587315,-9.4460517447441816,0.2083304151892662,1.4093679748475552,7.2476425487548113,-8.8715480919927359,-4.1087732929736376,3.8473110925406218,1.7576406989246607,0.66731884144246578,-4.3721483927220106,-2.6979924365878105,-5.15882458537817,-4.3647685647010803,1.3347771670669317,-6.4000643976032734,-5.8823023457080126,-3.855492090806365,0.74447790160775185,-7.559823589399457,2.044952055439353,9.5092900283634663,2.6376593858003616,-8.8586039468646049,-6.5565260220319033,4.4671746529638767,-0.19549441523849964,-5.6745601817965508,7.667058389633894,0.25049284100532532,-9.9667409993708134,8.9840238261967897,-5.5114045366644859,9.8239874001592398,-8.2436103746294975,9.6404473390430212,6.998581001535058,5.1510258298367262,-6.7087593581527472,5.8814932778477669,-9.7423549182713032,0.24089062586426735,8.6488290410488844,0.86983885616064072,-0.61825944110751152,8.9136467222124338,-8.3393917512148619,-0.15714967623353004,-1.2145314272493124,7.3703709710389376,-6.1749538034200668,-2.4485441483557224,7.3185576777905226,2.9990261606872082,4.6327843982726336,3.2074962835758924,8.3901414182037115,-6.8930403236299753,8.6713050585240126,-1.3757352624088526,-1.9824878126382828,0.32739573158323765,2.5401415396481752,-7.8410449903458357,-4.4431358482688665,4.2158416286110878,-4.3496366776525974,-4.343597088009119,-2.8362139035016298,-8.247020086273551,-7.6665762811899185,7.8524602949619293,-3.6996828578412533,-0.56974243372678757,4.3389901518821716,5.4075948987156153,5.4475832916796207,-2.467495845630765,8.7973814271390438,-2.410206962376833,-8.348357267677784,9.1594150569289923,2.2890117485076189,-8.579446654766798,5.240084445104003,-9.9006118625402451,0.41642705909907818,-1.1103362031280994,-1.42049640417099,5.7170022372156382,5.6567238830029964,-7.4415758345276117,9.4349691085517406,-6.4740404672920704,-9.1981061827391386,7.429392971098423,5.8078016526997089,-8.2774993591010571,0.068285064771771431,7.6671624090522528,1.9987472053617239,-7.0556255802512169,-3.8991042412817478,7.7550645172595978,-0.63051946461200714,2.8594315890222788,-1.5331826638430357,-8.2009649462997913,6.3821616116911173,4.9903358984738588,-7.4244370311498642,-2.5131623819470406,1.2799052055925131,-8.6331213265657425,3.1298751011490822,3.8109277654439211,-9.7369380947202444,-8.7185559049248695,7.2309159487485886,-9.9955145269632339,5.3873453568667173,5.113533278927207,3.1539372075349092,8.2227499783039093,-0.24097203277051449,9.983121594414115,6.3247937057167292,0.80793973989784718,-0.95670695416629314,0.62629209831357002,6.091379513964057,-2.1843828726559877,7.0771204307675362,5.1632135547697544,-1.8696663156151772,-3.4817029163241386,3.0191363487392664,2.6247151475399733,-6.4124164916574955,6.516052782535553,-4.7007546667009592,-5.5836417712271214,-4.2672144528478384,0.92673584818840027,-4.3505139835178852,0.91152322478592396,-0.029075630009174347,-8.6740355286747217,-4.5151200611144304,-5.6228242255747318,-2.8067249804735184,7.3733094707131386,3.2124102395027876,-9.0210012719035149,4.0316307730972767,-0.38148674182593822,8.3524054009467363,-1.1222826596349478,-2.2045910079032183,7.4389911722391844,7.1247682999819517,5.980951813980937,1.8572626449167728,-4.986634086817503,9.6409420855343342,-4.6862147096544504,-1.2105835787951946,-6.2781400233507156,3.3006566669791937,-5.8632939867675304,-4.382003229111433,-8.3282277081161737,7.4769227672368288,4.6410857234150171,2.7278680168092251,7.277858117595315,-1.0384823568165302,6.2270991131663322,-1.1450780183076859,-5.3261843975633383,2.8188667260110378,-3.3068356104195118,2.0139480568468571,8.4250854421406984,0.41117025539278984,-9.4614361319690943,1.6429342050105333,-7.2047252673655748,-9.8175467364490032,-3.5079980734735727,1.0764299333095551,-8.4420241788029671,-5.1003609504550695,-1.7664559558033943,-8.8251847494393587,-4.8800746351480484,0.58564713224768639,2.9714345280081034,0.90021374635398388,9.8925202712416649,3.5883544385433197,9.4731549359858036,-4.6848384849727154,1.9196246564388275,3.1316940486431122,-5.6180216837674379,-2.0904047880321741,6.5667894389480352,8.0302300490438938,4.0765753854066133,-4.9973873049020767,8.911605654284358,-2.6436204370111227,8.6713727191090584,-0.23856380954384804,-9.5418706070631742,9.7807106655091047,4.4043100159615278,3.2385509926825762,-9.6733623743057251,-0.20142240449786186,-5.3062757104635239,-2.575829029083252,8.0415662936866283,-5.395160811021924,3.5322851873934269,7.1172504220157862,-0.37202321924269199,7.4058295320719481,9.777081748470664,3.4131013229489326,3.9940397720783949,7.8265588358044624,0.9744928777217865,-1.6981182433664799,-0.27325129136443138,7.4656221549957991,-5.2883042953908443,-0.53025576286017895,7.9914677143096924,-7.401984790340066,-5.1583509147167206,3.5962142422795296,1.5728763956576586,-4.6663276106119156,-6.9681098125874996,6.9784035626798868,6.0288108326494694,6.2237897794693708,3.2349505089223385,9.8133070301264524,-7.7485895995050669,9.4546187296509743,3.7771414965391159,2.4172401521354914,6.5553341154009104,-4.4993928913027048,-1.2962810788303614,-6.5960237849503756,0.62827297486364841,-0.61602829024195671,6.4125993382185698,-3.4427941124886274,-3.0405972804874182,-3.3184386882930994,7.0010181423276663,6.1120511498302221,5.2438012883067131,-7.4316281266510487,-3.3739045262336731,-5.2133205533027649,-0.27850190177559853,-0.78138706274330616,7.227708613499999,-3.9011980779469013,-7.4360483232885599,2.3358505498617887,-1.3597119320183992,7.3216261807829142,-5.4286440182477236,0.78002108260989189,9.8144197836518288,-9.0465410891920328,-5.2160785906016827,-6.6328348033130169,1.9454870652407408,-2.1988010127097368,4.7514404356479645,-2.5404826179146767,2.1086990833282471,0.90558825992047787,0.22196982987225056,-9.3529893364757299,4.3082269094884396,8.3697797451168299,-9.1116800531744957,-0.0066467560827732086,8.2880487199872732,-2.7650200482457876,8.3081057481467724,-5.6665476132184267,2.3342985473573208,-7.4442180339246988,5.0275238230824471,-2.4069878458976746,5.7553334161639214,9.888848764821887,1.8813460133969784,-0.21745985373854637,5.1523147709667683,-5.0455257762223482,-0.15168219804763794,-9.3226255103945732,-5.366947902366519,-2.2933588176965714,-4.481588713824749,-2.0614700671285391,-7.1273561008274555,-9.473964124917984,-8.9150433801114559,4.8659189511090517,1.4999276306480169,9.2837782949209213,-7.5380463432520628,8.0551282223314047,2.5401740241795778,-7.295077471062541,-8.3670349791646004,-4.7568820416927338,-8.9164336957037449,1.4988847821950912,-8.2433756534010172,-6.4145929645746946,9.9360724445432425,-4.4302685372531414,0.47673797234892845,-7.4648167379200459,-1.1748943850398064,-6.4498602971434593,-2.8019863087683916,7.0161648560315371,0.68286849185824394,-3.0291737336665392,8.6771128140389919,-3.7647882755845785,5.2035010419785976,-4.757868479937315,-5.4955012816935778,-2.890006173402071,7.6662992686033249,7.4919456709176302,-2.8689719922840595,1.1877814866602421,3.0435338523238897,-7.3264419101178646,4.4908375665545464,-2.4929055105894804,1.7371422704309225,-3.8497690111398697,-3.0677220970392227,0.79476931132376194,-2.312100101262331,0.53365824744105339,9.1942471731454134,7.7123892679810524,2.1265655755996704,1.1877240054309368,2.0774468313902617,-4.3510103039443493,-7.4301341827958822,1.7348098568618298,-3.0506438855081797,7.8282706439495087,9.7448523808270693,1.7341190855950117,5.3395634237676859,2.0425833109766245,9.6978018246591091,-9.044578792527318,7.7642414625734091,-6.3935995008796453,2.7732169348746538,9.4571243971586227,5.8898953162133694,-8.5292960423976183,8.1214269250631332,-3.1775286421179771,-4.7238346841186285,6.5105053037405014,2.062769178301096,8.9616741053760052,-1.1431625485420227,6.8671159632503986,-4.381873644888401,-6.1503056716173887,-8.187392745167017,-5.5098538380116224,-4.1134203225374222,5.7446851767599583,-9.0761109720915556,-2.1971007157117128,-6.6716678999364376,9.2776318080723286,9.157949136570096,-2.3487117327749729,5.2019671257585287,9.4616015907377005,1.1380878370255232,7.8423640504479408,6.6127355117350817,0.24587574414908886,-7.566287899389863,-6.6007059998810291,1.9342865981161594,9.5549479313194752,-9.9899652693420649,-1.3462817575782537,-6.9574318919330835,6.4422160852700472,-5.6741261854767799,-5.0387654546648264,-6.5309577248990536,-5.8064552303403616,-9.0930235106498003,-6.4461363945156336,-0.21435481496155262,-2.6612984761595726,-8.4434313792735338,-8.7511792685836554,-1.0699573159217834,-2.772538810968399,1.9402606133371592,9.9602217972278595,1.4479022193700075,-5.1073094550520182,1.4500272274017334,-9.392299447208643,3.6231955140829086,-4.9528881907463074,-3.1917823757976294,-4.286336749792099,-0.4617090430110693,0.056188758462667465,4.3645421788096428,-5.1394883263856173,0.61973647214472294,-4.0890295524150133,-4.3196411803364754,-0.20927346311509609,2.7409820444881916,7.6853214204311371,7.1972515899688005,4.2076071910560131,-2.7458287309855223,-9.1434249002486467,6.4577082172036171,-5.2978646568953991,-1.2112516444176435,2.4936810508370399,-8.7024808023124933,-2.5948343146592379,8.6197314690798521,-8.1730534508824348,-4.5093346852809191,-8.388012545183301,2.6731657143682241,7.8962605632841587,-7.5485728215426207,-8.8633924815803766,-7.0374290272593498,1.9303620327264071,3.5947773978114128,-2.5761685892939568,2.3345778323709965,-2.7502748090773821,-3.8686594273895025,-0.55894815362989902,5.7584558241069317,2.3671590909361839,4.8429381474852562,-4.7384390514343977,1.0549037158489227,9.7668387833982706,-8.7404127232730389,-0.1166301965713501,-0.20363642834126949,-2.5173744652420282,-9.5125787612050772,2.0887642353773117,5.8605985902249813,-0.91936996206641197,8.149118609726429,2.2366157080978155,-9.199698232114315,0.67181911319494247,-8.7360810115933418,-7.3135519586503506,1.1322519835084677,9.7591739427298307,2.436610097065568,-7.8940012864768505,5.5203946586698294,1.2731497269123793,-2.1724515594542027,7.6067015063017607,5.8323542028665543,4.3772114813327789,7.793479273095727,5.0062821712344885,0.58456937782466412,4.8576159309595823,1.9510679133236408,-8.4014872368425131,-3.7959771044552326,1.0128539707511663,3.0367725994437933,-0.96281912177801132,-2.1009089983999729,-9.9774742871522903,8.5896559990942478,6.3485222589224577,-0.38626634515821934,8.0216121580451727,-0.76431869529187679,-5.9042394906282425,7.4469130579382181,0.26790130883455276,2.6173779368400574,-9.7289167810231447,6.095663458108902,9.8158663976937532,-4.7332988772541285,7.4458112008869648,1.7489898391067982,-4.7276821825653315,1.8455988820642233,-1.0194964427500963,5.3233569767326117,9.6608278620988131,9.5340321585536003,-1.5213583130389452,-9.4691008888185024,-7.1786342188715935,8.6947054974734783,-8.0845576524734497,2.8395498637109995,4.314659871160984,-3.5114333685487509,3.3394255768507719,5.725774522870779,-6.9074710365384817,6.1343130934983492,-0.59971130453050137,0.6521783210337162,1.1611249763518572,-4.9724351055920124,8.2832196541130543,-3.9271302334964275,-3.2777868490666151,-9.7635196521878242,4.5252075232565403,-4.8370429500937462,3.8191781751811504,8.9276984147727489,7.8274052124470472,-4.8004548810422421,-1.2451449874788523,-7.1517360396683216,0.77240358106791973,1.7870713118463755,-4.6923695504665375,-4.6549931541085243,3.5301007237285376,-9.5970304030925035,2.7100183721631765,7.2788804117590189,-3.856784338131547,-0.97432290203869343,4.5550560671836138,-3.172564934939146,-1.29880809225142,-9.067538371309638,1.8826006911695004,0.86990947835147381,0.56868772022426128,-2.0654034800827503,6.7637723404914141,-1.2781421653926373,-1.7353054974228144,-5.2794305048882961,8.6115412786602974,-5.8255838975310326,9.4114668574184179,-1.4763754513114691,6.5578565094619989,-2.1055158879607916,-7.4054671730846167,-3.686757730320096,-3.3371240831911564,-7.0444140490144491,4.5331013388931751,7.83431651070714,-8.6422649677842855,9.4526970665901899,-8.5202495753765106,0.16539822332561016,-0.15198101289570332,5.6551933288574219,6.8344006221741438,5.7713886257261038,-0.27124399319291115,1.2022825423628092,6.7627771571278572,1.9958110339939594,3.5961422137916088,0.36229359917342663,9.0686023980379105,-3.9993469417095184,2.9759976454079151,-2.4074720777571201,-2.3831514455378056,6.3737144507467747,3.0189018417149782,-1.3166444096714258,-8.8425253890454769,3.6757953651249409,-0.90719131752848625,-7.1644025389105082,7.8865507151931524,9.2580102290958166,-0.621928870677948,7.2415439039468765,8.6285285651683807,-0.32025942578911781,-2.6000934839248657,0.22887358441948891,6.6784133855253458,4.0939010493457317,6.1950466502457857,0.1491774246096611,7.2250548377633095,-8.5032069031149149,6.6015910543501377,-7.0590196084231138,-0.94253575429320335,-1.1983515229076147,-0.6939766276627779,-3.6651082988828421,0.52487025037407875,1.4943804033100605,-3.9484716113656759,-1.9623248651623726,-0.79394588246941566,-3.8483746163547039,0.36787106655538082,2.8090967331081629,-7.5111064035445452,0.83469510078430176,8.7206436693668365,7.8582975547760725,-5.5928571149706841,0.85050317458808422,-5.5930597800761461,-2.5556892529129982,6.5307845454663038,2.895985022187233,-7.1796311717480421,-8.0610814969986677,-2.5967048853635788,-2.818950368091464,1.9012196827679873,-6.2006985768675804,4.8590483143925667,6.0251362808048725,4.4655968993902206,-6.7127987369894981,-2.0083468593657017,5.7143971789628267,1.8735098093748093,8.0794590804725885,-8.5310930013656616,-2.080062460154295,0.39029416628181934,-0.32586598768830299,3.1704206299036741,5.2596298605203629,-1.4008148107677698,-3.4944572765380144,8.6566041316837072,-8.4542127791792154,-9.9541675671935081,0.30569853261113167,-2.1246817521750927,-9.5261471718549728,-5.9555136598646641,5.6819503009319305,-3.4611695073544979,8.1241410598158836,2.4389341659843922,-8.8333749491721392,-2.5327616091817617,-8.1243070773780346,-5.2290348149836063,-4.3880980927497149,9.235399067401886,-0.64772363752126694,-6.2911026272922754,5.4381721187382936,-0.64107954502105713,5.3761600703001022,-2.877578129991889,-3.4555750340223312,2.1504544001072645,2.6871976908296347,3.7316890619695187,-1.5018280129879713,-1.2233477830886841,-0.80612168647348881,-8.4871126059442759,-2.9015562683343887,-6.4561463426798582,-8.4515536855906248,-5.2627816051244736,8.4295997396111488,-3.7170321214944124,7.8411832079291344,6.7663152888417244,1.461190776899457,-1.7665229551494122,-9.951242757961154,9.4629673194140196,4.0918897092342377,-7.6095466129481792,6.3500948809087276,6.0447913873940706,-5.1910264976322651,-5.5823080707341433,-1.851710258051753,-1.6942433081567287,4.8527848068624735,0.75436517596244812,-1.3844034355133772,-7.6684732455760241,-4.0298201516270638,-9.1872416716068983,-9.9707683362066746,1.2965735979378223,-8.4874510485678911,-8.5897614434361458,-8.1205687951296568,-2.3997250385582447,7.8213364258408546,-6.7985514178872108,-3.2536553777754307,-4.1858814749866724,7.8900953941047192,8.8334287237375975,3.4367072489112616,0.73883760720491409,-2.3562516644597054,-1.5216647554188967,5.380522022023797,-9.5662554726004601,-0.055724605917930603,3.4366261586546898,-0.6240463349968195,-8.3466789126396179,-2.6324717979878187,-3.9534511230885983,-5.6529784295707941,-9.6084317751228809,-8.9128414262086153,1.8741582147777081,-1.0227913036942482,9.9466290604323149,-7.0052252057939768,3.1799896527081728,6.0861962102353573,-9.3001686781644821,-7.9349684342741966,-3.0144586879760027,-4.0071141440421343,-7.5673720147460699,-4.821432800963521,6.1789547279477119,9.6922392304986715,-2.5350988935679197,-7.4070457741618156,9.781693946570158,0.93031481839716434,-4.1987616568803787,-8.5871217865496874,-3.7558554857969284,-4.6631009224802256,7.2628376353532076,6.5122724790126085,-8.236316004768014,-7.7630783338099718,5.9424611553549767,-5.0552371796220541,-3.371239211410284,-0.41737429797649384,5.1902488991618156,-7.4866329040378332,-7.8391984943300486,6.5909226983785629,-6.3620785064995289,-7.4534302670508623,-9.8024783935397863,9.7456413134932518,-5.0062895845621824,-0.70900865830481052,3.6915525794029236,3.9243091735988855,-4.1356103494763374,-7.203097753226757,-2.4639165960252285,8.953829575330019,7.0138209033757448,1.2880561873316765,8.3604288194328547,-6.2726880982518196,-5.0688381493091583,8.0372631456702948,2.2818304412066936,-9.2756785172969103,3.6711654532700777,1.2778801005333662,-2.6690620742738247,1.0737750492990017,6.9373402278870344,-4.1226573474705219,-9.5019929390400648,0.0046774465590715408,-1.3860773853957653,4.1974510625004768,6.5601185522973537,-4.0873619355261326,3.707995880395174,0.28686908073723316,1.4087204542011023,-3.635236956179142,2.5725273042917252,-3.5334983747452497,-7.5071337353438139,7.6033295784145594,9.1603621747344732,-1.7927792854607105,8.7586134858429432,6.0170033667236567,7.7757098712027073,6.3559444155544043,4.3579202238470316,3.5653145611286163,2.2419350501149893,0.20248308777809143,3.133336128666997,1.9804172869771719,4.8734359815716743,7.8386586718261242,4.3364369869232178,2.4965514149516821,-0.46027110889554024,4.2235474474728107,5.1620609872043133,-1.2408693972975016,4.7081081662327051,9.1740649752318859,8.510188776999712,-9.2570800986140966,-3.7452115956693888,-5.7712394651025534,2.7783431112766266,-4.3872287683188915,3.8461347855627537,1.987449312582612,3.0606903880834579,1.0234547313302755,1.2037557363510132,-8.4772514645010233,2.8346480429172516,1.9297577533870935,-6.5613454580307007,3.4669137839227915,8.420071778818965,-3.853469230234623,-5.2573044504970312,0.48413760960102081,-3.0991133861243725,-6.7986265849322081,-4.5169879030436277,2.984356451779604,-1.9210133235901594,-6.4708663523197174,4.1492441762238741,-3.6530194710940123,3.7017989903688431,-3.8642616383731365,-6.6453081183135509,-7.6935182418674231,-4.9610730167478323,-0.75415304861962795,4.9497842043638229,-8.9767602551728487,7.5903993099927902,-8.1586592830717564,-2.5865561794489622,7.7503500133752823,0.1328137144446373,-7.7998220268636942,8.3912117127329111,-8.9046001620590687,0.3850848414003849,-7.8789893072098494,-2.1732696797698736,-6.1434466391801834,7.0923654735088348,1.3866470288485289,5.3767029661685228,6.2468727305531502,-8.8098904397338629,-7.8286112938076258,4.530001962557435,-4.2569015827029943,-5.7448555435985327,6.2129120342433453,0.41268641129136086,-3.9794039353728294,-1.8418946955353022,3.2759159803390503,-1.680014543235302,3.9956369530409575,-5.3296207077801228,5.0648008845746517,4.1085849422961473,-7.012764411047101,-3.531433092430234,7.2040661424398422,-1.260209372267127,-0.33885129727423191,4.9263223167508841,-3.3007055521011353,5.0418382603675127,-1.8242402840405703,-0.0063898880034685135,-7.39476946182549,-3.8903245143592358,-4.6840650215744972,-5.0807760003954172,7.3977998457849026,-5.177855733782053,-4.2212799377739429,-7.0518689416348934,-0.76127898879349232,5.1841076463460922,9.297330966219306,0.24170027114450932,2.2565372753888369,5.6220833770930767,-9.6445589326322079,3.8980220258235931,-5.9437032137066126,4.1801189724355936,-4.7403192985802889,9.453589916229248,6.4858743082731962,8.0896281637251377,2.3806892987340689,-7.7548592817038298,4.0800699684768915,-6.2639296147972345,2.1349933370947838,2.8331115189939737,-3.8945998344570398,3.4606300573796034,2.809479720890522,-1.074230745434761,5.4039313271641731,3.8739361986517906,9.2457993142306805,-5.8507751021534204,6.0228905733674765,6.7219919804483652,-3.4806537348777056,0.65272892825305462,-9.5848194789141417,7.9390211310237646,-8.8717104867100716,-6.8381413072347641,-8.6409259494394064,-8.042421592399478,-8.9796881377696991,-1.6185235138982534,-2.5246324948966503,8.5017167683690786,8.3538707718253136,3.5062057059258223,8.7994051910936832,-8.3968061581254005,-5.1210870686918497,9.8896746709942818,-4.2376489378511906,-2.165653370320797,1.8638663273304701,6.0014562867581844,6.4759367704391479,1.069429712370038,-6.0947375651448965,5.7457731664180756,9.2097312118858099,7.9526284988969564,-0.17267853952944279,-2.2081369627267122,7.8421284258365631,2.6525926683098078,2.125075301155448,-3.8593185879290104,-3.5674592666327953,1.7121560405939817,-3.7933340761810541,5.4342301934957504,-6.8930171243846416,9.0612147748470306,-8.1631299667060375,2.2746639419347048,-9.7230318374931812,5.0039094127714634,0.70561787113547325,-0.68035604432225227,5.2560360077768564,-1.8026978988200426,2.0564786810427904,3.237286638468504,9.0766363311558962,-8.9730329625308514,-9.7649932187050581,-0.24102494120597839,9.093889519572258,1.0013048816472292,8.9312319364398718,7.2153038997203112,7.6127773243933916,7.9486289154738188,-7.3936771601438522,-5.5320101417601109,3.5055823996663094,-1.676503112539649,3.0122526828199625,6.9309419859200716,8.3420898579061031,5.5043853726238012,-7.7949209697544575,-9.2367214057594538,-1.5766606293618679,1.0648682340979576,-2.7595029212534428,1.0344591550529003,6.1551053263247013,8.8553459662944078,-8.2001969218254089,-0.70965103805065155,-7.1049238089472055,7.5455656740814447,-1.6775783989578485,4.9399138428270817,5.132073312997818,-5.2437100186944008,8.9657530188560486,7.4111363384872675,-1.031422782689333,4.8773615248501301,-6.1847354099154472,-6.8480045907199383,5.5868684314191341,-1.5021511539816856,-6.6543784644454718,-0.13882575556635857,6.7556033656001091,1.4258967712521553,5.0471238512545824,7.0106857921928167,8.5962425079196692,-2.9520238563418388,5.3351016156375408,7.0529740303754807,-0.66533802077174187,-2.3360420577228069,-1.8588041700422764,-0.92162218876183033,-9.7040554694831371,3.9397267065942287,-5.0131331756711006,4.2707555182278156,-1.4118934608995914,-9.6933301258832216,4.2005766741931438,-0.90772570110857487,3.8542126212269068,-2.2483666148036718,-8.2976343389600515,1.659678416326642,-5.7847655471414328,-4.5545178186148405,-7.7809348423033953,5.8281227666884661,-6.7405363917350769,-8.1951103825122118,4.7798152361065149,-5.6452110875397921,0.93728579580783844,-7.037544259801507,-0.0063513033092021942,-6.7462765052914619,-4.6691989712417126,4.7729320544749498,-1.3308448251336813,-7.508908174932003,-2.2196765895932913,-6.1043804045766592,3.6785707622766495,5.7389086298644543,-6.1625346913933754,6.2794717773795128,-0.91771017760038376,-3.9548838511109352,-9.7328383103013039,0.18652085214853287,-5.14395821839571,5.4942614212632179,2.0518284291028976,5.0805022474378347,8.0013907048851252,-0.62628211453557014,-5.9234256390482187,4.985316414386034,8.2130938582122326,-2.5313824880868196,-4.9454188253730536,2.345841508358717,6.5583276003599167,5.8121088333427906,4.1132857371121645,-8.0065059009939432,-5.3446624055504799,-7.7410136535763741,-3.2164579816162586,0.99075606092810631,-8.3627979643642902,6.4546257350593805,2.8948579169809818,-6.1228883825242519,-7.3850147426128387,0.057241367176175117,2.0557368360459805,-9.2309022229164839,-3.7736545410007238,-3.8118218723684549,-5.2901604678481817,8.2730537280440331,5.2141502406448126,-5.7767864130437374,9.5507890172302723,0.11116559617221355,8.3602539915591478,-9.2110201716423035,-9.6160186175256968,3.5750982444733381,6.6763010993599892,8.5927074495702982,-2.3657495621591806,-1.1528314650058746,4.3616368807852268,6.0311677493155003,5.8364882040768862,-6.1426301393657923,0.81527786329388618,2.3751330189406872,-1.1392538156360388,-7.4388100486248732,-4.0804671961814165,-0.41211989708244801,-6.4990352280437946,-9.2850503325462341,6.1590664833784103,-4.5694873947650194,0.62539868056774139,-8.9242925401777029,9.4152856431901455,2.7059570420533419,-0.97989477217197418,-9.0913653001189232,1.4234080072492361,3.2184672355651855,-7.2210684046149254,-4.4966546166688204,4.725900711491704,8.2133732829242945,2.1649086475372314,5.6197343580424786,-9.1245221346616745,4.1564895864576101,-1.8794096168130636,-7.2373662237077951,1.5858997590839863,-5.782658401876688,-9.1397273354232311,8.6026802659034729,5.2473746240139008,-7.3745748680084944,-4.4797860737890005,8.2355010230094194,-5.9341635648161173,4.5129979494959116,9.9566507525742054,1.4293546974658966,3.1644897535443306,5.5793908424675465,-7.1779887191951275,-0.45638143084943295,9.5973663963377476,2.9371766187250614,5.1275321561843157,-1.5669326204806566,4.5635135751217604,-1.0272289533168077,-4.6369481738656759,6.8120838049799204,-9.3073581252247095,-8.7680052313953638,-3.8639144226908684,-0.80965414643287659,-7.8571671713143587,4.5913684833794832,7.1302143484354019,-2.4873117823153734,-4.2490665800869465,5.9380334801971912,0.5288264062255621,7.9854918271303177,-7.8387206606566906,-5.3781267441809177,9.8238467145711184,9.3918869365006685,9.443893525749445,3.5186394397169352,-2.2268308792263269,-6.3465263228863478,-6.0678801592439413,-2.8618056420236826,1.632630368694663,-0.38130231201648712,-8.5478827822953463,-4.2659106757491827,2.8393175546079874,0.4102407768368721,-5.083182230591774,6.9562889169901609,-5.6520394422113895,6.1731287743896246,-8.2245622575283051,9.7821516077965498,8.6222270503640175,-6.2298187892884016,-4.5643620658665895,6.7668015137314796,9.6331724990159273,4.7303446102887392,2.9019804019480944,-6.4152834843844175,-1.6694939974695444,0.81444972194731236,8.4565613977611065,9.4275566097348928,8.9440918527543545,3.3519174996763468,-4.3224784452468157,-7.8951848298311234,5.6285814940929413,-0.43070646934211254,1.1164446547627449,4.085399592295289,3.3110579382628202,8.9508725516498089,-2.6848761085420847,-4.7126990184187889,-6.3323611859232187,-7.9944231081753969,-2.2691634111106396,2.170609962195158,1.4417298603802919,-8.8461470417678356,2.806678032502532,-8.1622075010091066,-2.22145508043468,4.0045240055769682,4.0350713301450014,-2.5560444127768278,0.56161271408200264,-0.97503176890313625,-7.3588693235069513,-0.51669951528310776,-4.1686791460961103,-2.9903628025203943,0.97243289463222027,3.679745951667428,5.4903167299926281,-4.246597783640027,7.4310953821986914,-5.5797749664634466,0.72217323817312717,-2.4343021120876074,6.68446134775877,5.7420023530721664,5.8336712792515755,6.5133142936974764,9.2734634038060904,-0.90042139403522015,6.6177016589790583,3.7119125109165907,6.1136782821267843,-7.408986184746027,-2.8307867515832186,2.9671222437173128,8.4236516337841749,-3.6868468020111322,-4.8341519944369793,-7.5925300735980272,-7.6529281213879585,-2.7629178017377853,3.6405628267675638,6.9395362306386232,-7.214439082890749,6.9223556481301785,4.0315105579793453,-2.401942228898406,-9.442981630563736,-8.1922605261206627,-7.3226483631879091,8.2489808462560177,0.62122584320604801,0.94282988458871841,6.1419559177011251,7.8532351274043322,9.3229260016232729,-9.582539489492774,6.25880335457623,-8.2918923906981945,-1.8353971000760794,-7.5189970806241035,8.216085359454155,7.746778903529048,0.11317050084471703,2.0566868409514427,6.7358302231878042,9.0986920893192291,1.7180946562439203,-3.9830208010971546,-2.6305569522082806,8.2293619029223919,-9.1143549140542746,-4.9630335811525583,6.2946409825235605,-5.9688792005181313,1.0473084356635809,2.1129646524786949,-7.4029909912496805,-2.0695696119219065,-3.25640550814569,9.5926773641258478,4.1286121960729361,9.5852899644523859,-0.031414171680808067,-7.9779054224491119,-4.6564192790538073,-0.43878124095499516,5.4037580918520689,0.96237030811607838,-5.442145699635148,-6.1427380982786417,-0.99918758496642113,6.6543299052864313,-0.67715151235461235,-0.88539518415927887,-0.83678883500397205,-3.9098781999200583,6.6771415993571281,2.7189909107983112,-1.9196626730263233,-3.7704823166131973,9.5037534274160862,9.584007216617465,-1.5905570425093174,7.5078523531556129,4.4746365025639534,5.2158118691295385,2.1502035390585661,-1.5290239546447992,1.6944605764001608,-1.2010009214282036,-5.2224175818264484,6.8277396261692047,-6.1799712758511305,-6.7772033344954252,-4.4564176443964243,0.98869401030242443,-3.0196828488260508,8.1904144026339054,-3.7049925699830055,-9.8100744374096394,2.078931936994195,0.60915959067642689,-1.8546764738857746,8.4525671415030956,2.29609165340662,-9.5874849613755941,3.1402573827654123,-1.6940650250762701,7.8491885401308537,1.3119336683303118,9.6692521497607231,-8.8789650332182646,-8.7653045263141394,1.5268358960747719,1.530995536595583,-8.5579261928796768,6.9344875495880842,7.9323784541338682,-0.5151810310781002,1.3524848967790604,-8.7862509861588478,9.4796851184219122,5.0679377652704716,-3.1698611751198769,4.1432832088321447,-3.8389984704554081,-2.0472447294741869,-8.042106032371521,-3.6760707478970289,-3.7210104148834944,0.97800618968904018,-2.6498839817941189,3.3999755047261715,3.3884127996861935,9.0540290996432304,-8.9327731728553772,6.8812921643257141,-6.122462060302496,-0.21981716156005859,5.5330421961843967,-6.1596871633082628,-5.8621236681938171,-4.7124589513987303,-2.2975547797977924,4.9968762136995792,2.4986410140991211,-5.3403782192617655,4.2633053287863731,-6.627227459102869,-3.8118787482380867,-6.2460732087492943,2.2476099245250225,-4.4199026562273502,-5.3038995433598757,-2.6395884994417429,-3.5638525150716305,2.3308295570313931,-5.7475384697318077,1.1209724936634302,0.18478803336620331,5.7325564883649349,7.0770230703055859,3.5268762707710266,-3.7904112879186869,-5.4424674529582262,8.4495537914335728,-8.3492829836905003,-6.3990939687937498,-9.5723053347319365,-1.7357574962079525,7.1238259039819241,-9.8578977584838867,-1.6876257304102182,-3.9255859516561031,2.6769580505788326,-8.3659447077661753,-6.4326906390488148,5.768457418307662,-9.5360470935702324,7.6565019879490137,2.82904963940382,7.8373898565769196,3.0114590842276812,-6.4070695545524359,-3.6179752461612225,-7.3099122848361731,2.304249806329608,7.5265912711620331,-0.58036841452121735,5.7481308560818434,8.835421409457922,-3.0722238309681416,5.1341271307319403,9.2748046480119228,1.6418699827045202,-5.091109573841095,-6.2785691302269697,-3.9113426022231579,2.0649320818483829,5.3135940432548523,5.5752048268914223,2.4676474556326866,-6.2491156067699194,-8.8859736267477274,-6.5587360318750143,7.3235392011702061,6.7234896402806044,1.690515074878931,-7.5130450166761875,8.2524241786450148,-1.5066866669803858,-2.8827454708516598,9.6969270892441273,-3.7462569214403629,-3.3400297071784735,4.1207635682076216,-2.3265986237674952,-3.1430096086114645,-4.5624382700771093,-0.89996263384819031,-5.6719158682972193,-7.8899645991623402,-6.6350016091018915,5.5279821529984474,8.7961669638752937,-2.821691045537591,-4.161346172913909,0.25491752661764622,4.3989501148462296,-6.8453070893883705,-9.0762266609817743,-4.1414838936179876,-5.9197541885077953,6.6913856752216816,2.1191740781068802,-3.0411744117736816,6.9817157741636038,1.6971492674201727,3.9878290705382824,3.4432980045676231,-8.4903320204466581,2.9897441621869802,8.630235530436039,8.3687058370560408,-7.1608528401702642,7.5463374704122543,-8.7059974577277899,-1.6992619074881077,0.50518580712378025,-9.342057453468442,8.0403846967965364,-5.2542597521096468,-8.3436165656894445,8.8363934122025967,-6.7357736919075251,-8.1484143435955048,9.6001416724175215,9.5812417101114988,-8.0704249069094658,0.36860466934740543,-4.8612411320209503,-2.8796656616032124,1.4592811558395624,6.1384758725762367,9.3641166854649782,2.7092841546982527,-5.0611125212162733,-2.1181054320186377,1.0020657442510128,1.7190497275441885,-7.9311374481767416,1.372924679890275,-5.2548160776495934,2.3062200751155615,0.64089877530932426,-8.414200097322464,2.5389767065644264,-7.4183946382254362,-0.95866445451974869,7.7265836391597986,0.69136208854615688,-0.27729413472115993,-0.48244616948068142,-8.4726959746330976,-0.60123370960354805,-4.934883750975132,-0.59116300195455551,4.3234997801482677,5.0609170459210873,-1.1670913361012936,4.6959832683205605,5.3909056726843119,4.9517612531781197,4.2514991760253906,-5.0532370060682297,-9.7543222736567259,-0.89445143006742001,6.9548861123621464,-9.2289768345654011,8.5863474849611521,-9.2576747946441174,6.2597322184592485,7.3195228911936283,-0.77863216400146484,-6.470708204433322,6.8072357028722763,9.2105897050350904,2.381322868168354,2.8935422003269196,-8.2361381966620684,-4.7746574971824884,-7.6685142517089844,-4.7190102282911539,7.5951344333589077,-8.5754408314824104,-7.4340435769408941,-3.970377566292882,9.8642904963344336,9.1305273491889238,-3.2266924623399973,8.979838453233242,4.1450320277363062,5.5534008610993624,-3.9916057791560888,-6.9182832539081573,4.4133756775408983,-4.3948747683316469,-4.6601874846965075,-3.771013505756855,0.57605748996138573,1.7983165476471186,4.3063086364418268,-3.8706353586167097,6.2315756920725107,-5.9072163049131632,-2.5844046473503113,3.9111500140279531,-5.3016053605824709,-4.0812585409730673,6.2877481803297997,-1.8162057269364595,-4.9695885740220547,-3.8751242216676474,-9.2127456329762936,1.3841527234762907,3.45491255633533,6.715439623221755,6.3938783016055822,1.9127433840185404,7.4781484249979258,5.2407157234847546,0.70928388275206089,0.9343012236058712,2.8007507137954235,-7.7826530579477549,-3.0499275773763657,-0.13273857533931732,9.0628414880484343,-0.82296118140220642,8.4914959874004126,-3.4267950430512428,5.8557628747075796,-2.193240700289607,-1.7963886726647615,8.0956427194178104,3.4673268720507622,-4.6371560450643301,3.3183925691992044,-7.7759852353483438,9.0161668974906206,-5.2828050497919321,-8.1044349353760481,8.7620559614151716,3.8746903371065855,1.920604333281517,-0.40287724696099758,8.842185428366065,-9.3893579859286547,-6.9396647252142429,5.0549872685223818,-0.82886012271046638,9.3479893729090691,-8.3424580935388803,8.3068348560482264,-7.0264311227947474,6.7721424531191587,-0.60165916569530964,7.9144757054746151,-1.4066778868436813,-2.0351769309490919,-5.2186161279678345,-9.2812253348529339,-9.5541972480714321,2.606855146586895,-6.5854526497423649,-1.70265750028193,3.4354576934129,-0.26244166307151318,9.1430449578911066,7.1567570883780718,3.6165186390280724,2.8288727067410946,4.8636825941503048,3.9134762063622475,-6.2052907794713974,7.6778991147875786,2.4505605828016996,6.5718125831335783,-7.5457855779677629,-2.018189700320363,0.28576917946338654,2.9226797353476286,1.4784131199121475,7.6893961895257235,-4.318104200065136,5.6227539665997028,1.6260389052331448,8.8359712343662977,6.1686834041029215,-2.9379007034003735,2.7029332146048546,8.1986372731626034,-5.503207528963685,7.5910958927124739,3.5488064866513014,4.7907271794974804,-2.248178431764245,-5.1348419953137636,-1.2893771659582853,9.4380399025976658,5.1367950811982155,-5.8849518373608589,-8.3854983188211918,4.9297682009637356,-5.3857295587658882,2.0433419290930033,2.4478965159505606,1.7968409974128008,-0.49326416105031967,9.7093196213245392,4.5350298471748829,0.24675521999597549,7.2150626592338085,3.5582484677433968,3.482103468850255,3.7131064757704735,6.1806455906480551,-1.8894313462078571,4.3274277541786432,-8.9216233883053064,-5.7242788095027208,-7.9539178498089314,-1.4972857292741537,-4.8811853677034378,1.9175650645047426,8.5161323938518763,-9.3627116177231073,0.90584591031074524,4.552299939095974,-9.4948097225278616,0.73299742303788662,-0.51222700625658035,-8.9992198999971151,-9.8888514190912247,-1.9257998000830412,-6.9171768054366112,3.0094551481306553,-0.087223555892705917,-5.9662263095378876,5.6344471592456102,-1.8464722018688917,6.341766994446516,6.0780035518109798,-6.9941788818687201,8.8355559483170509,-0.81102922558784485,9.0318774525076151,-1.2355067580938339,-5.1620146911591291,2.0191235467791557,-4.5904552191495895,8.2191740814596415,-0.34107032231986523,7.6311683561652899,-2.9532999452203512,3.8878758251667023,3.5291022621095181,-6.3781748432666063,2.0154375582933426,-6.5408637281507254,7.7033480349928141,-9.8294373229146004,-3.3530848938971758,4.7022402845323086,-9.4474228005856276,-2.8350051213055849,-7.9310177080333233,3.385397270321846,-1.6279729455709457,-1.3412306923419237,-2.0641784276813269,7.353228060528636,5.7041491102427244,9.6342187467962503,2.314631063491106,2.0043804682791233,7.62262430973351,-6.5530883893370628,2.2434673830866814,5.9564033523201942,9.2712673172354698,2.1899515949189663,6.5165511984378099,3.6761214025318623,4.5725193805992603,-9.6666562184691429,-7.4910612031817436,-2.2656222432851791,1.6870176326483488,-6.2945566140115261,7.3870173003524542,-6.4000969007611275,-6.4285829197615385,-5.1931044831871986,-0.50701131112873554,-1.3390318490564823,-5.1082193106412888,6.1580843292176723,-1.0765523836016655,6.3841586373746395,-1.4456534199416637,2.9030379839241505,-8.6405032034963369,-0.93733052723109722,6.2858997471630573,7.1171780209988356,-1.5888671111315489,-4.0894709620624781,8.2615868654102087,-7.5094101298600435,9.3439669255167246,4.0522685460746288,6.4775638468563557,8.4157030656933784,2.7215692307800055,1.4141612779349089,7.8086875751614571,0.61221511103212833,9.4994541630148888,-2.6737296022474766,2.6266323588788509,5.810154490172863,-8.7333599291741848,-1.5803197212517262,-0.43348918668925762,-5.6526858173310757,-4.690497862175107,6.8024719692766666,9.1465191263705492,5.5471067503094673,-9.776725871488452,2.5682796351611614,5.075926510617137,-8.9030180685222149,6.9753309246152639,-5.6130171380937099,2.0209943875670433,6.8527659121900797,-5.5631819274276495,-0.39861955679953098,0.40118400938808918,2.6997271832078695,-5.685132434591651,9.9792055785655975,0.50831531174480915,3.2555267307907343,-4.3621318601071835,5.6498712953180075,-2.6130171120166779,3.0214561428874731,1.6134954150766134,-1.982467919588089,0.66173822619020939,1.8344510160386562,-8.3816808182746172,9.0904999151825905,4.0322238765656948,9.5868032518774271,5.4024075902998447,-1.7355092894285917,-8.704562745988369,2.4139383062720299,-8.9387893304228783,5.7677318807691336,-1.7301565129309893,1.2595518864691257,9.2886439990252256,-5.7601574249565601,9.0341919288039207,-2.3361036274582148,-2.8936067130416632,7.1520295180380344,4.1602438967674971,1.219283789396286,-7.4972638115286827,-6.5128607768565416,-1.6510493401437998,-9.1861944552510977,7.6297969557344913,-6.0024269949644804,-2.7904730848968029,0.51891855895519257,1.4643026795238256,-9.4647755194455385,5.5178488604724407,-1.5140805952250957,-7.152497535571456,7.9739419277757406,-1.9578792061656713,-6.0757550876587629,4.7842724248766899,9.2667606007307768,6.4455672632902861,-9.350877171382308,-0.19261434674263,2.730751046910882,-4.2670549359172583,3.6077369004487991,-4.7658076602965593,1.0706943552941084,-4.8398839309811592,-3.9291876181960106,2.1437484864145517,9.9809062015265226,9.0906854253262281,7.1500928606837988,-8.3891562651842833,3.450663648545742,-4.6959536243230104,-4.8925224877893925,-8.6254123039543629,-7.3045818042010069,-8.1063621118664742,-3.627999322488904,4.2154367920011282,8.84627440944314,-0.6658529955893755,9.0087761729955673,-9.4987116940319538,-4.8474376741796732,9.1150503791868687,-3.3481274079531431,8.0227065831422806,-2.3703160788863897,2.0977218635380268,-3.5885448381304741,7.3269557114690542,4.144778260961175,1.288342671468854,-6.8246322777122259,-1.5946666616946459,-1.5625173225998878,-1.2285749055445194,-8.6583688389509916,-1.2050657533109188,6.4599529281258583,-7.5710081681609154,-5.9342632722109556,2.8372157644480467,5.0854535400867462,-8.7822336982935667,-3.0017576925456524,9.4585161469876766,9.2810347024351358,6.3503947202116251,-8.9158094394952059,-8.0092411115765572,8.6846533045172691,2.9682352486997843,7.1299263834953308,-7.3271385300904512,-7.2172543127089739,-0.39321192540228367,-8.7127550505101681,4.7258761432021856,7.8004540409892797,2.231206214055419,-0.11706464923918247,-7.5054824165999889,-4.6429562754929066,5.8339197095483541,-9.3113176990300417,4.6834377851337194,-5.4610303416848183,-3.5369171760976315,-4.9669280927628279,0.83958432078361511,-9.1062357556074858,-8.5043375007808208,7.5996360741555691,7.0836360659450293,-5.3285059612244368,3.8003462553024292,-7.5803791265934706,-3.4319617226719856,-0.98062154836952686,-1.306292861700058,5.1359414402395487,-0.23209543898701668,-0.82796661183238029,4.3652267102152109,6.3654310069978237,3.7990626879036427,-9.1532964073121548,0.54728892631828785,-1.7149328254163265,-2.8759319335222244,4.2120490409433842,-8.0916576366871595,3.5101151280105114,-5.4949377942830324,6.5805267356336117,-1.0870244447141886,-9.6197725553065538,0.48266593366861343,-7.8335707914084196,1.1757257487624884,0.42274691164493561,5.107425581663847,0.50186925567686558,-5.0833376497030258,4.3441599141806364,-7.7042101044207811,-4.659207034856081,-7.292593028396368,-6.6110070701688528,8.8041981868445873,-7.8409265354275703,-2.4522640369832516,4.7983894869685173,6.5322232898324728,7.0769615937024355,2.4936390016227961,-9.4092019461095333,-0.45710364356637001,-2.540862737223506,-4.279966140165925,6.609126990661025,-0.40253797546029091,-5.4556784499436617,6.4123273547738791,-8.0140198674052954,8.3681040536612272,2.7249736338853836,-1.368035702034831,7.424023449420929,-4.4377492181956768,-5.2510666847229004,5.3222670219838619,-8.658041600137949,4.2948369774967432,3.3251926582306623,6.513111162930727,5.8594446070492268,-0.31436520628631115,-3.5359462536871433,-8.6486351303756237,2.3893743474036455,-1.7852462269365788,-4.6332718338817358,8.6003299430012703,5.7454975880682468,4.5780858863145113,3.8896053750067949,-7.4023535568267107,8.6437907349318266,-3.8089720904827118,2.6061237044632435,1.121199568733573,4.0012387372553349,8.8195666205137968,-9.5436617359519005,-0.32279257662594318,-5.1747596170753241,7.8151535708457232,9.2862046230584383,-6.7587493173778057,5.7002481911331415,4.071471244096756,9.2173096537590027,-4.6764988731592894,2.0834804698824883,-2.9436481185257435,6.106127155944705,5.6792360078543425,-9.0802932810038328,7.5108333583921194,-5.4236084595322609,5.4126564506441355,-9.4829133991152048,0.67450511269271374,-3.592487433925271,1.0637481603771448,-1.5845819562673569,7.931126868352294,-1.5505832713097334,-0.65297477878630161,5.4529660847038031,8.0011065490543842,-5.402089161798358,7.0874936319887638,-0.49439343623816967,-9.2704084608703852,-7.7549961395561695,1.7799000442028046,-5.2198648918420076,9.7308002132922411,5.5593392159789801,-4.1856752708554268,-8.6442317627370358,-3.6032257135957479,0.58548165485262871,0.19025594927370548,-2.3681808076798916,-2.0147749502211809,-2.3225258756428957,5.307668149471283,5.9787079598754644,4.1448066756129265,1.7659077234566212,-0.38879978470504284,5.44209367595613,5.2685326430946589,8.2282519806176424,-7.7688190992921591,9.4574156496673822,-9.215023759752512,3.09567597694695,9.0262470301240683,4.1339841950684786,-0.12752287089824677,-3.2768139243125916,6.5884266886860132,-8.3125134278088808,-8.4131679777055979,-0.11418888345360756,0.82751316018402576,8.0137679446488619,7.3979866877198219,-2.0376033335924149,-5.9991653729230165,-7.9723914060741663,8.0176539719104767,-7.2895530890673399,4.4812532514333725,-3.5764898266643286,9.9355335161089897,6.5119612589478493,6.5330083575099707,0.27159405872225761,4.6814253274351358,0.71559309959411621,6.9733087345957756,0.400035185739398,3.3914481103420258,0.068495320156216621,-8.7990753352642059,-6.0591503884643316,3.8594519160687923,5.8084618300199509,2.8181008622050285,3.8212913926690817,4.4445447530597448,-0.53622228093445301,7.712198393419385,-1.0814631823450327,3.848364120349288,-0.5441209115087986,-5.0400857254862785,-8.7207494303584099,-9.6356660220772028,-6.6388302017003298,1.180826323106885,6.1480999551713467,-8.8839270547032356,7.8380003292113543,-6.72832733951509,-2.997569628059864,-0.15268400311470032,-6.1599632818251848,9.4971524085849524,-1.3593163248151541,-6.0294035449624062,3.8146508857607841,-7.1624549012631178,0.62049667350947857,8.6876747850328684,-6.2497416976839304,0.59131637215614319,-1.7456502839922905,0.85574153810739517,2.4481159262359142,5.4844696633517742,-2.5182468630373478,-4.1749685164541006,-8.6958104558289051,9.5136790815740824,-3.5955232661217451,-9.9594835843890905,-9.0406025107949972,-5.4063914250582457,-5.2206450048834085,-3.3805596735328436,2.9336187336593866,5.3301578294485807,3.9627595152705908,2.0992824248969555,2.6398099306970835,7.2856041416525841,9.148944029584527,6.302455086261034,5.3627623710781336,-8.0527090560644865,-1.8810900393873453,4.5197715517133474,3.8005832768976688,-3.5967571754008532,9.3022031430155039,2.1283757220953703,-8.3891438227146864,3.659784235060215,9.9937455542385578,4.8816865589469671,6.5061126835644245,8.2360018417239189,2.483096569776535,-6.5958540700376034,3.480671513825655,-0.35376163199543953,-5.6716734543442726,-3.8157132919877768,9.3067499529570341,-1.4533895533531904,-7.1181563194841146,5.1467609778046608,1.6118725016713142,-9.2587735317647457,7.7932574227452278,1.2776433303952217,-6.6484577860683203,-0.62998422421514988,-8.1447830516844988,-9.3687351420521736,-0.33152753487229347,8.016797062009573,-1.6916378028690815,8.6435121949762106,-8.4903931245207787,1.9627679884433746,8.2416753843426704,-2.1616725903004408,8.7688361573964357,-2.1705557499080896,-0.53042743355035782,5.1061984244734049,-0.12296165339648724,-6.6164313349872828,-2.3614206537604332,-8.3968679700046778,-6.1599593237042427,9.5636765472590923,-3.2881171070039272,-3.3841648884117603,2.3407722357660532,1.3590630982071161,1.7735804617404938,8.5669126082211733,4.1003516782075167,-5.3892340138554573,3.1439652107656002,0.62340020202100277,-2.5127214938402176,8.6899116169661283,-8.6553073767572641,-9.7510706353932619,-6.2441671080887318,-5.716556254774332,1.8390595261007547,9.0735478233546019,-0.88158360682427883,3.2243914622813463,-7.6525899395346642,2.9209046065807343,-8.3561760745942593,-2.2512728441506624,2.8573689982295036,3.8008538633584976,0.95098947174847126,3.2801373768597841,9.2689968086779118,4.0295142494142056,4.0460996981710196,2.7977370843291283,1.5672764740884304,1.2157905288040638,-6.2084946129471064,-6.1689301300793886,-1.2086662650108337,5.9461527597159147,-3.0104426573961973,3.4903118386864662,1.6711783781647682,7.4950931500643492,-9.9692899454385042,6.143887247890234,0.3131016343832016,2.2992497868835926,3.4912644047290087,-2.3190441355109215,3.8252745755016804,-8.6101013422012329,-9.9732474982738495,-0.37070328369736671,9.5899862516671419,-1.100914916023612,-3.0769239645451307,6.1389820650219917,-2.128306869417429,9.5465072989463806,8.1483263615518808,8.9213006291538477,0.29982226900756359,-0.88704418390989304,-8.5515276528894901,-5.5252507794648409,-2.8898154478520155,-9.1281764023005962,2.7392133511602879,-2.0411073509603739,-4.8911853041499853,-6.1513668671250343,-6.0229056514799595,-6.9752532988786697,6.9178294111043215,7.9590448271483183,7.6665504276752472,-8.2868237979710102,3.3524409029632807,4.4743605982512236,0.57868808507919312,6.0107287112623453,2.3175754863768816,-8.50870406255126,-5.7891676295548677,1.459683021530509,-7.1073674503713846,6.4752842392772436,-9.8976615257561207,-9.9972625821828842,-3.992218729108572,2.779866885393858,1.2228428293019533,-7.6804800890386105,-5.8288383204489946,-5.285619143396616,4.5990938227623701,-3.0300065781921148,-5.3205051273107529,-1.7296380922198296,9.9726487789303064,-9.6918162051588297,9.645042298361659,4.2260623071342707,7.4293073359876871,4.3685323465615511,1.9232611078768969,4.2495333962142467,1.9079016894102097,6.1037871055305004,6.3500086776912212,4.5959739107638597,4.5336324349045753,-3.23955281637609,-7.1641319245100021,-7.5652330461889505,-8.8717882428318262,-8.1449884455651045,7.1792098972946405,0.98087827675044537,5.6212832778692245,-3.0918265972286463,-4.3295655585825443,-7.0082987193018198,-8.4765518922358751,-5.4076408874243498,-6.2203590013086796,-5.5737054161727428,2.7331050205975771,-4.7038191650062799,2.9113351833075285,-9.1894731018692255,-7.4744167737662792,-2.522696927189827,1.0328032355755568,-1.675933338701725,-7.4115584138780832,-6.062241792678833,-8.0977787356823683,0.63280426897108555,-4.4585681892931461,4.8444859124720097,1.2748470902442932,6.3551339693367481,-9.2632493562996387,-7.4319255631417036,-8.37291962467134,-3.6601191200315952,4.3779992405325174,1.0333481524139643,7.4824839644134045,-1.8918732833117247,3.2857908308506012,4.2865980789065361,4.8540239874273539,1.5812729392200708,-3.5456198919564486,8.7665263935923576,-0.99075602367520332,8.3635805919766426,6.6991530638188124,-7.3343257047235966,-8.0120984278619289,0.66173847764730453,1.8386772554367781,2.6487247738987207,-2.8826260939240456,-8.2967048790305853,-2.7188885398209095,3.6403682082891464,3.6685834638774395,-2.1176156401634216,9.2339974548667669,-4.2046255245804787,-7.1411462686955929,-1.2453155964612961,9.9808387830853462,7.9575836844742298,3.1091254949569702,-4.9277036637067795,0.08456377312541008,1.2634138390421867,-5.8035190682858229,0.25505215860903263,6.6617099940776825,3.3600008580833673,-8.4654736332595348,0.78465781174600124,7.7439264114946127,-7.8286631405353546,3.6586140096187592,-9.674233440309763,5.1585712563246489,0.10722368024289608,2.1084729395806789,-2.8952097054570913,0.21053598262369633,-1.5216601360589266,5.4581596050411463,-4.7113970946520567,-4.4509284291416407,-6.7540651559829712,4.4269487913697958,3.7284494563937187,4.050121046602726,-9.6154597867280245,-7.0326325297355652,2.5450959522277117,-4.5722327288240194,-5.5154308676719666,2.1534421294927597,-7.0980344992130995,3.3341944310814142,-2.1940924599766731,3.8880862575024366,7.0658385287970304,-4.4517129473388195,0.060537494719028473,-2.546247523277998,5.2179345954209566,-2.1731356624513865,-3.8910175673663616,3.6677930783480406,4.5983747579157352,4.8846705351024866,-3.3422000426799059,7.6439347770065069,-8.3880647644400597,1.7955166660249233,-2.7513018064200878,-1.1294037755578756,-1.889186380431056,8.4445675648748875,7.847207197919488,8.0115151032805443,9.5344817917793989,6.0356273129582405,0.78837438486516476,-9.7916291374713182,-7.910911850631237,1.3045427855104208,5.4506845399737358,9.6551842521876097,-5.3181196562945843,-1.6370267048478127,6.4922370668500662,-4.9714883789420128,4.1948544699698687,2.9191878717392683,2.7906614262610674,2.6466912683099508,2.9402454569935799,-3.2945030368864536,9.287511520087719,-4.7937309369444847,-8.2358164805918932,0.63242449425160885,9.1585580911487341,7.8859878703951836,-0.20172229036688805,9.6535424795001745,7.0886067673563957,-1.7859273031353951,3.9198804832994938,1.4313917513936758,-2.5987448636442423,2.8951346501708031,-1.471833661198616,2.8917229734361172,1.188115430995822,8.6561363004148006,3.6829470749944448,-0.70840348489582539,-6.1372979264706373,-9.56621996127069,0.5411143135279417,-5.4916500393301249,1.8378242570906878,8.312381561845541,6.197053249925375,-6.1259017419070005,1.9694540835916996,0.61487659811973572,-5.7689323276281357,1.5544026624411345,4.845638070255518,0.63916296698153019,2.4120693188160658,-0.35086152143776417,3.0704847071319818,5.6365750543773174,-6.0829387046396732,4.049221770837903,-4.7295875754207373,9.8216611426323652,-7.3410206474363804,-0.53400065749883652,5.0510234944522381,-7.4480109475553036,1.2800244055688381,-6.6297273244708776,-5.8271160069853067,3.6613032501190901,-4.4761683326214552,9.0388768538832664,-3.5965677816420794,-7.5146559439599514,1.1775693111121655,-8.5925006587058306,5.8414401393383741,-2.9154541622847319,-0.038050077855587006,0.49241944216191769,-3.9063534699380398,5.9172784350812435,-8.3012170158326626,1.4456281904131174,-3.3269141521304846,4.5538973622024059,-2.6469195634126663,-6.7770447302609682,-1.7907562758773565,2.7593355719000101,-3.8469432201236486,4.4253475312143564,-3.1839299853891134,7.6887889020144939,5.4752145893871784,1.9317249394953251,6.5011514723300934,4.8529245890676975,3.1036846991628408,3.6288413777947426,9.9371432512998581,-6.4332193695008755,-3.1179152894765139,-2.8022163733839989,3.1494688615202904,-6.8767415173351765,2.605342585593462,7.9929347150027752,-2.7461041323840618,6.2279037851840258,-7.6209554076194763,-5.3975172434002161,3.927726186811924,-6.7058692499995232,-5.5444589629769325,-5.7217558845877647,-5.5511187855154276,2.3466066550463438,-0.5818520113825798,0.8133183978497982,9.4423972815275192,-1.6287372075021267,5.813819020986557,-7.1435905154794455,-2.3257713112980127,-9.2383689247071743,-9.2665115930140018,-2.2603380493819714,-9.501535389572382,7.6947113499045372,5.0137963239103556,6.8749334570020437,7.0067438948899508,2.3447745107114315,8.6252981331199408,5.3858691081404686,0.30222092755138874,-0.57279001921415329,-6.8817791528999805,-2.0621983893215656,0.63173279166221619,-2.466887328773737,-0.97527574747800827,8.5405827593058348,1.5745807532221079,3.9788099844008684,-8.140482772141695,2.9060631617903709,2.2036612126976252,-3.0659026838839054,-8.6263537686318159,-3.127778647467494,-8.5756742022931576,8.6436931975185871,-5.4482833947986364,-9.2989807575941086,-7.9695873986929655,-4.8553939443081617,-4.6059817261993885,7.2651699744164944,5.7118951342999935,-0.17835485748946667,2.3899870365858078,8.5122208576649427,4.8960996512323618,8.7469548359513283,-9.9299254454672337,7.743038572371006,-2.7505753003060818,-8.9190155081450939,-1.8936369381844997,-6.3559566251933575,-4.5629711076617241,-9.8553639184683561,0.89862342923879623,3.1640605069696903,-1.6349563375115395,1.2889009062200785,2.5576191861182451,5.9057593625038862,-1.9022699166089296,8.5495749209076166,-7.2941591311246157,7.0675043575465679,3.5458708554506302,-4.548426428809762,-5.4029463417828083,-7.3191303666681051,7.3759483825415373,7.5646013580262661,-1.7448381893336773,-5.4953835252672434,-0.91087391600012779,-9.057835079729557,4.9658223520964384,0.57638880796730518,7.3667782731354237,-6.5574274957180023,9.3161064013838768,-4.1995607689023018,-2.0177975483238697,6.8766677845269442,-3.8444133754819632,6.9444464426487684,-4.6885057911276817,0.28321008197963238,-0.088071692734956741,-0.22086222656071186,7.9686347208917141,8.8438946474343538,-0.66251309588551521,5.1424705237150192,9.5022105798125267,3.6533675342798233,2.1482554916292429,5.7301428820937872,6.5115424524992704,-0.50587162375450134,-2.1843061409890652,8.366749556735158,-0.040056211873888969,6.7753249779343605,-7.1129645686596632,-7.5954828690737486,2.7194382902234793,5.5994433257728815,9.8440983425825834,9.7609990835189819,-6.8882486410439014,9.2051143199205399,-9.6434747893363237,2.1192184090614319,-2.2961040586233139,9.3791470024734735,-4.6761777624487877,7.48038818128407,2.8842996433377266,-3.5757935885339975,1.6372077818959951,-3.4487185999751091,-2.6134585123509169,-4.3971592746675014,-3.0558854900300503,-0.26737659238278866,6.2016879860311747,-8.22989197447896,0.20559878088533878,-4.5012097898870707,8.1671043951064348,4.5237107295542955,-9.9936547130346298,-3.3547619264572859,-3.4836459625512362,-9.6376415994018316,0.15764168463647366,9.4838731735944748,-4.543418912217021,-1.241614930331707,-7.8220655396580696,-5.4555079899728298,9.2772480845451355,2.7087078150361776,5.2523467689752579,-3.807734465226531,3.4068913944065571,-0.37622928619384766,-3.2855377439409494,-0.032809870317578316,8.5645875707268715,5.0234464928507805,9.0653229132294655,0.88235185481607914,9.6877090539783239,1.3262242916971445,9.8517591878771782,-1.4831739850342274,-7.7050998155027628,0.38741880096495152,-8.6521308869123459,3.6361942067742348,-6.4838600251823664,5.7645842712372541,5.3679700568318367,-0.52713455632328987,0.44958600774407387,-3.8078860659152269,0.85893861949443817,-3.8185371737927198,1.8457684386521578,1.8302411306649446,0.86277566850185394,0.67074552178382874,-6.7799318674951792,9.6851282007992268,-2.0501751080155373,2.7070217952132225,-3.0845884047448635,-2.6772644277662039,3.2168198376893997,5.091115478426218,6.3779640104621649,-5.5587479844689369,-5.8773402124643326,-0.4569186270236969,0.56871029548346996,-1.685981098562479,3.7157415226101875,-9.5321221463382244,-6.3769098464399576,3.2762392330914736,3.7528944667428732,-5.1025898195803165,0.77294063754379749,-9.1866204887628555,0.46945172362029552,-9.9247991759330034,-6.099749319255352,1.5132217947393656,-7.2812057100236416,4.7756529040634632,4.3984742276370525,5.1564565766602755,4.5658025424927473,-2.5565543305128813,-8.0085746757686138,-0.11456006206572056,-5.4108857735991478,-0.7571609690785408,-5.6043349672108889,7.9422404803335667,5.2358933817595243,-0.33981353044509888,8.7540694046765566,9.644631166011095,-2.6838391087949276,-7.2838442586362362,0.42956635355949402,-0.27821410447359085,4.0556221920996904,2.8422926180064678,-9.58786865696311,-3.3085143566131592,-6.2007392290979624,4.1758062783628702,2.7762313839048147,0.12096927501261234,-6.8693156540393829,7.4118270538747311,-9.4225692562758923,-5.1214857120066881,3.1896764785051346,8.892677454277873,-0.76987809501588345,0.65892930142581463,-5.3751475177705288,-0.10429497808218002,7.1143808122724295,-8.6015541944652796,-6.3213354349136353,-2.684625806286931,-0.50586901605129242,-2.1404784731566906,4.9783631600439548,-8.6502519156783819,-4.783936245366931,-3.6164350621402264,-1.4240394346415997,6.1692890897393227,7.2418577875941992,-6.0960289649665356,4.041216354817152,0.72338529862463474,-2.0632020942866802,3.7624634336680174,-4.2769626341760159,-2.9109478089958429,-4.2997703142464161,-6.2396269291639328,-9.4097690284252167,-9.9880561232566833,-9.2592634819447994,-0.44133525341749191,2.478470616042614,-4.3442585133016109,6.0472111962735653,-4.5212986413389444,-9.4662221055477858,1.2050762306898832,-6.283703101798892,9.8019971419125795,2.1661190968006849,5.9637551382184029,-7.1672670263797045,-0.25689019821584225,2.4465148337185383,-1.4250922854989767,8.4740247204899788,2.9336218535900116,5.3825945034623146,5.265940073877573,4.6549411304295063,-4.4043061789125204,-3.1739051919430494,-3.8245075661689043,1.501383725553751,-6.2436346057802439,3.2332100439816713,0.56131276302039623,-6.0163092613220215,3.8902761321514845,3.8710617739707232,0.93534368090331554,0.32133052125573158,0.60215151868760586,0.36065755411982536,1.5715931728482246,-6.2334533780813217,-5.6508959364145994,5.3920307103544474,3.8602693844586611,-0.45234693214297295,-2.5948138069361448,8.964404771104455,4.7511363681405783,-7.6509452145546675,-9.4362026359885931,5.742301344871521,-9.1411735396832228,4.296325258910656,8.3387383911758661,9.176284009590745,5.8054992649704218,-6.9737299438565969,-7.479142714291811,-1.9515793770551682,-0.19452718086540699,-9.4182520639151335,7.4375663232058287,3.1773305870592594,1.3952798303216696,-9.5318026002496481,-1.0062987357378006,7.1372188348323107,-4.7629088535904884,9.7909386828541756,-3.6934023816138506,4.9862215667963028,3.4259904269129038,0.62121019698679447,0.67986387759447098,6.4722743071615696,-0.4855906218290329,-1.3215066213160753,9.4382834527641535,9.230142729356885,-8.9909971971064806,8.3101161196827888,8.1217668019235134,2.5347817502915859,2.0769752468913794,7.7230690140277147,1.621057465672493,5.1129165012389421,-7.2122453991323709,3.7915985938161612,5.397674199193716,-1.2896136473864317,5.4634965397417545,4.9864644557237625,7.508224630728364,-9.2684943228960037,4.4159208051860332,-1.6189144179224968,-9.0945564303547144,7.7900821063667536,7.9101009294390678,5.0664612464606762,-7.9857128206640482,4.1246388573199511,2.8053855150938034,-9.885547598823905,-6.3984925393015146,0.53592014126479626,7.2098966874182224,-3.2662398740649223,4.306489285081625,-0.83447366952896118,-4.9988920427858829,3.6214760318398476,6.1477737314999104,5.6332316901534796,-2.2748612426221371,6.4071557018905878,5.0660100765526295,4.4314745254814625,-0.20753729157149792,-8.0791828036308289,-6.8253655917942524,6.0805235523730516,-4.6405294165015221,6.6221387963742018,-1.7131192516535521,7.6048023067414761,-6.0874928161501884,7.5082695763558149,-8.5130931623280048,0.44323238544166088,9.4067838415503502,-0.18382318317890167,-9.5161628630012274,1.8507653195410967,5.8128182683140039,-3.9632406923919916,9.8137302044779062,-0.63629827462136745,5.7349717151373625,7.6697394531220198,5.3111269045621157,4.1100047994405031,-3.1492253765463829,-9.0308499988168478,-1.4959225337952375,-1.9699589442461729,-9.0999130997806787,-2.2394609730690718,1.3794863596558571,5.0273357890546322,-5.5672757513821125,-9.2035187873989344,-3.5402535833418369,-1.041924674063921,8.372073108330369,9.4328754860907793,-1.6615531872957945,-5.7243536226451397,-9.2113023344427347,5.6416711863130331,-0.43224922381341457,-4.8126297537237406,-5.8682302385568619,-7.3455870896577835,2.7178048901259899,-1.8531121220439672,-5.2553714346140623,-7.0276644267141819,6.0440034698694944,1.566443657502532,7.2186421602964401,3.7189228553324938,3.9365369360893965,1.3763939216732979,-6.9472694024443626,-2.756822993978858,6.0759968776255846,-0.7203519344329834,-6.954889390617609,9.1740357130765915,8.018379732966423,4.9083129782229662,-5.983658330515027,-7.3455295339226723,3.685144130140543,-3.782497625797987,7.5624518655240536,2.1286413073539734,-3.9254523813724518,4.9218738079071045,1.9332062732428312,-8.6020722147077322,4.9722983408719301,9.4183322042226791,-6.0904916562139988,-2.893235394731164,-6.6072236280888319,-7.6074907369911671,0.9032021090388298,0.11793194338679314,2.0822516828775406,-3.5958713199943304,4.1907749697566032,-5.6449722405523062,4.9515871144831181,1.3247501291334629,5.0755089707672596,4.0793896652758121,2.3022144753485918,-6.6812165360897779,8.7937039043754339,-4.2183320783078671,2.4928051233291626,-3.4241944365203381,9.5641568582504988,4.7844697255641222,-7.4172067362815142,-0.99359647370874882,0.62413685955107212,9.868281614035368,-3.7907574139535427,8.7401922699064016,-3.5883730184286833,-9.7852705512195826,-1.0421526711434126,4.5401261933147907,5.9010448306798935,-1.1394063197076321,9.9980540107935667,-2.7060840837657452,-1.1551387701183558,5.5827598366886377,9.4446971733123064,-2.9744559619575739,8.3187023550271988,-7.5693756900727749,1.5027959644794464,-2.5081349723041058,5.7755791116505861,-9.841747023165226,9.7577828913927078,-0.94278973527252674,-5.4670098423957825,-4.034385671839118,-5.9199399128556252,3.5699165612459183,-0.41224894113838673,-8.6678786762058735,-1.0369005706161261,-7.1878201980143785,-5.6940460205078125,0.16856702044606209,-6.8940077815204859,-7.5887597072869539,-4.284381503239274,-7.5998802110552788,8.8133115693926811,5.3276940155774355,2.5534397643059492,-4.3377830646932125,-5.1199239864945412,9.4375971704721451,-2.3042037524282932,-6.7524068336933851,-7.7016284689307213,-1.2696593347936869,0.83562844432890415,4.4073486328125,-5.6914155650883913,4.3786312732845545,-8.3440773747861385,1.0915749240666628,6.0998355876654387,-0.06315210834145546,-1.397407129406929,-6.2215566169470549,-5.702031459659338,5.9572911355644464,4.1922403126955032,-1.016953457146883,8.0633160285651684,0.15263346023857594,5.3106456808745861,-3.9779217168688774,3.0697517096996307,-6.6829127911478281,0.28474513441324234,5.7115545682609081,-5.9022482763975859,0.91325065121054649,9.003780297935009,6.5356161165982485,4.1002010740339756,-7.9204383585602045,1.1925239488482475,2.750095883384347,0.86161182262003422,1.1099877767264843,-4.4353496097028255,-4.9208467267453671,-4.6708966605365276,-3.7601319327950478,3.4626543428748846,-3.1683539412915707,9.4753621704876423,-7.5878481939435005,-8.964576730504632,-7.6411014888435602,-3.9927045349031687,-5.3850711043924093,-6.8900154065340757,-0.48891328275203705,2.8345312178134918,-0.033721765503287315,-6.7616348154842854,-2.7963185030966997,2.2749748267233372,-4.497991194948554,2.262029554694891,-2.0691782794892788,3.3207186870276928,-8.6809228733181953,-0.27072153985500336],"expected":[-38.260954692959785,8.1897740833900077,10.989047812595524,-61.128347622621163,44.551685968274079,63.248754974508955,123.63443335343018,-9.0847552649080612,2.4247877637950594,-12.404907665895578,-72.36091901730687,16.056629933838273,101.38428977478075,-20.459434340817758,12.205954071008168,26.609027372897533,-183.08344820806059,-24.061340472584334,116.07594128966392,-47.882099040344002,-55.078969757172224,-82.27982025146477,-39.436578089747691,-19.230311447193095,24.139515205122279,-118.52520885201122,-77.087807158474277,-146.63329428789964,35.584046967278901,-220.13411275653536,-55.618261341411852,-136.14610307551155,132.11352592641936,117.65471330295854,-43.214948328924379,-125.64194408052646,112.37768051628673,113.41917432699039,-117.08730672858644,-48.164791811105758,-18.772676111630169,73.411658569845258,-3.1616301307366541,-142.24003517882289,-107.94803443936217,-71.095578608154284,20.392904745830606,-195.6634419728415,-76.284034423722588,-82.207844176172657,-102.64493403560742,6.3715230728144974,-70.093458592269641,67.313016000164794,15.222611522244051,-204.62825737892081,148.97313517149607,218.11389000510351,-44.80292797422068,66.046765714712237,69.758811014126024,-311.47993698845653,-122.69614469286796,-151.9675238018724,-45.313489594903295,24.547594074405854,74.981122505501389,-136.50342618849248,-56.579154706386845,-91.346521783470564,-17.67080841604708,118.96008105345689,27.907883380397791,122.18889661581827,78.216011865298114,-98.001945331088194,-139.76122512687658,178.46978308239167,24.808968753914634,68.002013868067849,67.837343245615131,76.87102662049999,90.756333156805397,-149.86404549383468,24.667627893253858,172.67458372834295,-45.6883767689812,54.906790030697792,116.1860875509341,79.027438913635081,30.434805623620143,1.3330295449120371,54.585559695516906,-243.63238296265592,-64.356477186253272,77.308284525948181,-74.167434769063874,71.334531410632451,-0.85416227291854341,101.19065878591258,43.170407897363674,-46.922001633755563,-29.973563064261416,53.490123397289743,-103.47178310402734,83.174724127944998,-110.80936683244941,0.88679043682585501,-49.657169579785908,1.8815064643708155,12.990630894900789,86.308039691550448,-23.976122798023241,47.868604206139878,58.008204048977611,61.095869965401874,-113.47418471020275,-78.850978663427085,-46.343112368882146,-30.721209761041749,-116.23234247965367,10.233754331749886,100.76713127693088,106.3090913046662,-51.627884314652761,45.40188913701833,29.334339212150823,-173.32727571317031,47.134157592567519,10.870967176226259,36.13055356842132,22.454525844139788,-111.15563648576779,-69.729832340517021,47.847158726703732,-81.978544003915985,-78.12959202470978,154.93695084362506,-38.031715020273722,-73.45379709587634,69.592391783397417,87.958698833876809,60.983613610213887,-2.0633526081326323,92.411992608091793,4.9919400925251551,-21.624443504503077,-177.34338747211427,-19.965311870257615,134.53723181020149,40.325523629503593,-39.660033705520235,109.64385170446363,-22.262935477923165,131.33329666523051,79.167210461750102,-9.2207179261128083,-95.330849232356471,-26.94046718267764,-96.52357842034256,-82.936368317482987,-83.09630901372789,95.183847460055048,63.214831746720435,-1.9280978157667068,-157.5168056152412,-11.356675580281733,13.002217211944735,-87.375787126785326,23.021102054493738,-7.5222715185720546,-128.36624009314312,110.1815109251645,-17.547820463874473,-165.28037382372619,9.4094284290186749,-76.466482188279031,-176.97637005728393,-29.561939994504328,123.54301493689118,175.47850705397482,0.2812124589948084,119.91073754451665,-75.398381990528705,89.964444501133755,-92.228699046379262,73.487057213956675,44.650896601254523,49.859780053496671,-131.10260074980363,120.49966428467675,181.69290148136787,84.094241563006534,26.586999484944958,10.013490199429633,-8.6299542707272536,114.2631718020518,-49.82531845062806,-142.16716364573128,136.00708624104385,-56.303755431929275,-14.757929962972829,6.8770357918945564,136.75678805181224,45.639176159426903,103.29854814935956,190.64354018151749,135.1023913773378,-23.977305143257681,-35.354041908619514,120.90490121268145,85.227597361071844,68.132679977508147,171.32620107111026,-184.33051481756848,7.5537600545394916,109.3666909625811,6.3565776775923339,126.57893305710056,-118.6706166848266,55.49889481888971,21.323993131077458,85.037484524786791,83.824498513237344,-180.04274489122241,-33.772146266085571,-148.56385130602087,189.54414089890969,-204.68420061852376,-114.71869035308049,121.8894146480871,-38.716882141709284,-45.123835062079024,-0.34776654624651826,-3.8047828031896955,144.31130934453844,8.3877470573617998,76.306532420855362,38.486444438594738,54.024100214521638,87.93875362194845,149.03292454730845,-44.291874266279144,-74.476152401640206,-39.429860671527507,51.562450388605534,-28.758316386081415,54.393539383651031,-2.7768686577592447,-33.186013942842969,32.390895875914595,41.416402613992588,130.30755175146095,-103.09348182634544,174.75348865562495,-89.223265047000481,-40.701195164332653,95.999199472636647,124.18375127147456,224.14115435765154,29.776600627736869,71.801925127237894,-76.427387228478281,65.582066353270179,85.350489650236312,92.577732550087973,-186.53966570091166,128.50899261475757,38.408443165506874,-41.056113946165894,-9.0361938782213471,86.139358558873738,-97.8313106083409,73.387626340164957,165.1669592723307,-240.08741523812961,-116.73150370175161,56.633556670821747,59.393137450486016,-52.303452135753609,88.939661208537316,-33.082390110163402,66.174523270008777,-16.249131486288,8.1225733827305362,152.74916277732899,135.27377203375846,94.238583216412351,82.736494920957227,-92.66612381161201,216.08001620770497,-38.658691465747978,104.25299938156846,-95.756785503089958,44.617104900651782,-30.006958518229027,-243.81026613124877,-163.67682898527625,-41.576050630786924,-137.10484126141318,-96.179457284477706,138.58806650124859,-141.98358034370256,66.660270281142147,-6.6637359701965018,-39.783300246763453,-28.681205121471255,4.3721063338322459,88.590907792815131,19.39699422018667,-168.4554420476035,-44.638652086367792,-34.166890820388645,-65.439946568404025,-100.2490559731831,59.983641728324571,-38.134905162701436,82.99650164191938,-122.70778559688532,-32.792853282269483,2.3532497957671268,5.797661623462691,-105.93832214963265,-111.20033090403174,47.752657229251426,-68.278823304714948,109.93627779975414,-86.309293979045364,245.22992274175917,-114.32594067542,70.5390697525701,-65.14237063213254,147.34551250126611,98.559696207599117,149.36167134770511,-16.456815145015291,-57.044628458189038,-25.610722687598948,90.376458223855707,41.274111539019977,54.42108362971409,39.850780707748555,-8.1142718193263139,66.198226376746049,-157.83131082226723,-32.741617432346715,-124.39419771828454,-32.333444168069718,-83.516863213024607,198.58360694151625,-89.792192601588226,-158.10256624592785,-242.9239624868772,-33.575050380433076,-2.7895204458409211,39.559299221805752,165.22432423173814,-124.64646730734869,-174.04793722278711,-86.286288887820291,-113.72228938045659,94.947198052059193,-93.314323878717289,-81.592976269011771,167.3691266773738,-45.755095973114997,219.49383525664001,97.147977154378935,-78.917222294397533,-40.482807119352159,-31.755534620245427,191.53666447974118,-153.12114424725536,219.84813115901693,106.5260202829334,-47.810752561912629,10.747379922071403,28.50345980369466,123.91129500272713,45.416034539109035,33.33317033312251,-117.318299329949,-47.432073801722431,41.855906516439951,-106.47003015582962,82.083025563790969,-59.219823092199604,12.058128014999696,-5.4206258390533151,-127.11916276240576,106.33520365316761,76.584221334457951,64.388267336141354,207.29821272959884,68.858804882724939,-59.037712425503791,9.2923980435176574,-78.385500477805977,-160.96745721962355,-31.254112152217211,33.579119564032183,65.666356837646603,183.86561834056079,-19.010337261248115,-197.52392098243573,62.597628024241686,-204.75777918065759,49.64906009755726,26.548354018979225,79.805310165028502,-49.364584491389429,-227.31982292425454,14.945256372156223,9.523683977686467,-0.36484196101684319,154.08803095457995,43.465746057362253,-49.200056274148707,109.53522924739059,24.101632357016413,23.085634022690492,-94.248570995585297,27.660513104019032,80.939788800207666,-100.23253661046117,-27.272864193681841,29.332991027439153,-43.93022495627774,32.992166744389344,100.38039373535369,7.2645503856092164,221.89038960860086,8.8775406023841583,5.8942862242383463,-73.667039366766716,137.23503103605782,-5.609841123406337,33.219167504935854,-39.143164753911151,-140.53875556056983,-194.52571236945607,-65.816280989130846,11.983004561131068,-77.208003209753997,61.68399770985787,-90.803929400478367,21.308598059978966,-79.447049965137467,-43.566805223194905,-66.79687055535139,-91.593758104861934,-92.727714427572437,99.167121523595199,-28.749424727089455,-115.16978837135622,202.35750982151606,-31.621624222637923,51.608558752858769,113.24758801536034,112.43778405597966,74.702222751462557,-139.24354706835149,0.57833209372017436,86.55106815359045,8.5247393454826508,-74.657930689227214,-183.07561244557741,-164.07788532388724,-162.72038014105223,-38.91845312962748,154.18159983469832,-63.35165781256616,-176.93633404425694,115.64017355168701,157.18019611276117,132.11497751997592,-41.21029913641005,77.277447539862322,-122.22715094058378,69.752608241165504,8.2992921692445094,-77.008848568242456,54.664460416586444,-37.343332691293561,6.5017784793899089,137.38890264129404,-192.45890204366782,-51.916808886940842,141.69795516501222,-40.740259777084759,23.291384702032342,-34.57731627774173,154.43740181420205,64.847171146913311,60.877621367543696,4.5867521043360071,6.9805901972950064,197.51030223515619,-201.7153947622717,-67.968615286556144,-93.393955094072638,143.98957928873324,-37.879819809404331,33.5070052917156,-142.77111617473844,56.065353688380554,-32.356281932080634,139.61555527392656,129.73957477050939,114.39848486263131,-44.154962716721869,24.534016702194215,4.668850576481816,61.115707790259854,-92.305409086607895,3.8805694224719716,-15.917507292845789,-65.759158595165047,-6.4714785910246029,21.182440606263892,-35.647393124354068,46.463116867958846,0.27827341531080663,49.609485121518816,-67.9616139865619,-66.112540371323135,147.82195478795916,171.12591412755305,101.447246024823,83.4963926751591,87.078776322319555,-54.784679648366925,-154.24143694672242,-196.30850248511427,207.14191864780162,81.873783108482613,-74.025906346519761,32.528646217227831,74.622204121500701,51.835075349457497,-20.921643051941089,-10.021612675221377,27.576673759112914,-99.519504730901701,103.21335981856662,-27.895876088862764,-18.504152981182557,-54.823077687579755,-57.247512037155126,4.4669009184025654,-170.11139859067677,-103.34124107815664,-6.7787045396312529,-73.926741347925145,-119.35338970665643,97.717673702964959,88.417022857358717,108.10789444806487,-5.3606772220832539,50.987131101407776,11.907403805606698,-143.33568056960337,-76.466519344407502,-9.0898605581245562,132.62684700928702,47.895956684868722,-177.94830469644526,88.447514530925432,33.212449633981755,-87.486122427085121,-40.218211050607863,64.54893138757069,-61.752733551431092,42.450521846287693,80.440577806412634,147.65650196688102,29.087455670190185,-79.417790785928418,35.65152645846122,-113.20002703179773,-17.020357490027671,1.1301711509150003,-102.59344780077899,7.0871448201383398,39.968551997374888,138.97272476926446,-142.18821059912443,55.044609055536206,134.6785765278164,-16.918044031612595,-68.900495453101968,-12.223628745497489,-5.7240086304014852,23.045839123780226,-77.845455161610204,42.050607756260746,-132.79497807601115,29.274078213223092,-40.018583604054434,-194.01801826908547,79.56980192173134,72.292542507163319,-212.90231747507332,3.0187865090319477,-77.356930566129236,57.916476964340667,-78.155287403909995,212.94002720286556,-67.098412656542223,227.60920923567943,13.754825599003652,66.99544671025707,145.51709978025275,-48.817509891044118,-116.09478606261465,-17.816488091753229,-143.18495581926831,51.519358991669357,-131.66081725185134,-51.184879082504828,45.942464944668366,117.91767150031555,-5.0828364913256223,-98.842036147931339,-41.127325654302808,-30.904728810468754,22.358952285700283,-93.588925035818988,104.08339140647163,-56.2297431840054,-84.46795741084749,49.201529508336186,-160.58305178272906,-44.007637585064501,-96.271879469176554,-40.592621233578072,83.843476120588591,22.961303848389022,-113.45350214955027,61.758752110405133,-70.214413103545041,187.65042231348571,73.666843378216043,-141.01527575905516,89.237198089560948,-138.06256684355594,80.710127782059715,131.5690848905802,-0.5019860509659253,141.00230223629154,-85.498862762048844,73.861388483047961,64.445770922214223,188.02754936021404,138.21279306414866,0.77894397804399773,127.50808888173161,-41.813007058965297,344.41752852678098,7.6828708841795006,-227.01473068082862,54.740013444110588,-4.2622688380242835,-37.675098618192905,36.508973134001536,14.324297694502121,111.19576278172619,-116.30934171476122,168.4035967247076,19.813653631718623,-128.22946074273344,8.1248439343311798,-60.340956083400016,38.065707050242082,-82.217501654137038,22.523317807887839,-108.85387301686276,186.61669676875198,-59.413127612354849,-36.433571369344065,78.266875306448156,-154.97785152192864,-37.189631251543616,-120.60067900097384,19.368433393993122,-275.03507452508632,-183.11281004317527,215.01367470832415,5.7876902500764515,-45.973606154360127,-212.20236604394833,10.165726228404663,207.43782851199902,7.6446707405315877,-39.471132417268919,24.879689632097538,-143.39030889717208,9.3265616778068257,-21.271946994672387,33.760678863712172,-3.8631640024325691,65.703781387141447,15.952236932378586,160.46526893031552,-107.84291693338608,60.391015717173445,34.503841144932863,-95.382952799361604,-96.157107643669576,174.8445773280572,-67.212953483867125,-54.547582094110084,-80.208939287085826,142.11050715489523,-118.20054675208762,162.09851534072715,27.024379921585226,-29.498830566150723,-90.247694611713285,253.77803793474368,-35.718205704319871,-148.41374638250619,139.63312805497043,76.511230535019422,-121.54717898747806,60.579854033112284,-114.45273016909562,24.633411562555381,-49.029823560087621,-59.661376382559119,117.7423925362281,-72.156398766812259,23.181303490461104,-79.463626216836303,187.08602684889456,-128.20148464185286,141.74494772871452,-110.1990522412738,-194.99023769572301,-108.91426950991867,-0.54080502450170798,-23.181985819446908,288.47598988212508,128.9601347659883,13.534296075423697,-11.785175126750232,-37.627808921326107,-8.738460959877095,158.16300014470295,120.57139470129479,26.82580851235528,-68.477662915221046,234.05976646781983,160.21715904242194,100.80707250608511,-32.544492181516958,5.5781965633262445,-56.835357484995768,75.784231613384506,21.759733649964197,-100.80645433675627,183.59977755402207,23.990541106731818,140.65227378651184,46.456162898238709,-36.741732808958375,-173.84532397552493,-13.264719729114844,335.173587709554,6.3253105877430755,135.92419404697779,-11.475515589032952,201.44927308323312,-23.479865030104275,-75.364435088428564,214.0286276359779,-246.34394229105914,-56.724291787565789,112.21714779575122,199.90373323806836,32.050315742355238,125.21334026657627,-15.049734699993946,-39.725080245764694,-18.759325294893443,229.54799281534588,93.944591795440303,137.31558838105974,-7.5645100239293157,106.07934094108394,-100.97124118462237,13.296226830451062,-80.287233201364657,201.20940619576382,-131.65916093006842,-23.360299321025579,180.54019936903885,201.69202265623687,72.702959652472856,-220.45566086923674,132.55650333065861,-91.643644681747816,-83.666003557384073,119.19044436731502,125.08022533582074,-106.95857963656323,-138.12506629602663,53.989232719573124,11.642907305791688,7.8574014311914908,-52.549295595164537,-53.799891353704453,-133.10019120729194,38.876889001459801,186.86741977078839,347.23875531602431,-6.9579230621866266,24.887443874020001,-198.72549314853694,-116.02584033703633,22.136457831678186,-38.350441342708478,68.162848643132065,56.122961193484954,-4.2830434689525241,118.62901857703335,-25.090398110509316,-62.292197929691788,69.26012094623843,-73.750027085128423,132.35693419522858,223.89035111080091,-20.784634802195907,129.43584340257678,-276.28858577727988,-7.1118156338698952,24.347834462717294,15.025886861647495,-179.1351078841391,68.381282531653866,-39.692418353666575,264.92251920149175,-90.882394627104532,-22.2098892971472,-183.19388991294602,-53.146460164870824,209.22017639387619,30.577046819934328,-74.495266228549482,58.667647719494681,-42.224551676163941,-113.38678459546526,-313.00452822936745,-92.168457831128165,179.61233537970853,-69.177417548255619,-24.759345494110576,-105.43381621046183,-14.998433301174074,136.114577643383,-163.7254744355246,-135.42478681536338,-54.131022923441989,-138.27590477715034,85.603026543590062,-91.498939506601602,38.709441249070565,-23.112961952134953,50.434129567267888,-43.816391700043177,-174.95839972521438,123.3426641595054,106.08200117882217,49.690642032402565,-67.138008681488458,-62.540259453278935,-42.043464442737019,-115.53338826698655,-0.83130803498813499,208.35232788776054,12.133253154676041,-61.829053284163329,76.34599256550878,36.540402346384454,22.702529213359906,0.12517791942119061,28.813020308113735,-125.96360856916277,52.500167824797131,-138.67132093448095,90.999648405188978,-77.459279882353229,-45.994948137152782,-64.498141494523509,-101.00340313552655,74.374447689965734,123.61825843439436,-36.661913319726359,6.0258473722274246,-85.166381849283312,-231.79023947175398,-34.561106226462002,-78.877587202785563,-198.49606695678102,185.01616404054238,5.3441953245702791,23.140160475997909,-156.96433366001611,83.560006588537973,82.625045091499857,-0.74279195018587529,145.30035236209309,121.24703853259082,112.05553197047637,-92.799490031591333,113.34123620060491,-179.4573495987589,221.29724823509716,-21.483066003973065,125.77782152511774,94.809354211757849,-27.502953035633915,-199.21502429557623,-113.4363639272336,21.652238497901656,-25.670323441265779,136.42261682890077,80.72664585858368,17.845020917556525,-19.728683200896029,-214.25523494847667,-26.937816750940058,-188.13609029711967,24.072405309355332,-78.363403346027354,-195.69578346751814,22.502632442347704,124.04560907901538,83.183496565200727,85.886863247589602,112.1963985004395,179.51483501800683,59.144684850774567,110.39002248837356,160.62191726227167,-137.61713057964738,-20.56045313147288,-218.00048696588232,121.88076957086894,195.3316807458819,-133.92291043962993,-75.033465550980793,7.3831870900678069,11.203781060133046,60.693751558811044,-122.86305575826955,17.03310077020987,-199.62834734049011,3.5906072058494551,-208.65326725385614,-210.6349218448442,-44.493133936585828,-89.585308940044143,-4.2429908122489923,163.08691190019894,158.73826150190783,113.61369676329957,33.130674365976191,152.08302543366321,-30.574227422754355,-148.51872657898696,68.844863558345679,-79.427053808013497,-114.45765658058487,-147.0051148007247,-210.71394826085023,-155.43737140133675,101.64114873881343,-37.888771278328349,91.93828711057165,-47.46279990181489,-112.11835965755671,-132.25905831979452,-31.29363353087701,-3.2226290126335542,-49.186518993176577,7.4026115041958604,240.22937628281335,53.963158723636873,-87.859817881820021,-60.810359419439337,-105.67470684094621,-195.32358520036087,-64.253856727654835,-212.70114140481613,-96.820108758794348,49.026360182631414,-32.420008150367764,32.609439114802569,67.782543023572089,-42.941796999283504,200.40611344702654,59.782594290548161,-16.896375827971497,48.107354130429982,-144.05764525961521,214.48642945171935,39.328087674654462,-68.322423586686057,-129.12773762422205,73.30442311685691,-84.524775180252689,-44.501093448345479,13.153678460479213,-92.865725089020415,-165.69425869517346,-37.310759636520316,100.5132993709358,-130.94550710013743,44.579355485385491,67.959536464255947,-152.75942483072362,-18.209799545711064,-104.50174743906743,-65.768488090764265,-52.270657802518855,-163.77576384449208,277.01396429931845,-29.055118674636525,128.29495964425581,35.887984977129278,-95.188420646842971,-49.968663755175299,147.66131185997557,-149.2090915687161,157.36484031375386,-224.58810268223303,74.912985367249519,87.832947930635953,78.272644630013758,87.108457624799229,-90.106111829244568,-66.155629919802337,-183.93330498624849,-107.82678146071372,137.24917959333732,-100.02447633692876,103.75458331424109,145.20537175972669,-157.50035389222469,-278.34097228944296,-10.670134816993375,25.033441892573954,95.313374772964963,31.674017602035931,224.04484864177377,-42.134934328440885,-1.1598504806656109,49.348924899251713,-92.088329798465594,-28.491625690405655,153.94929593576722,158.29210832675841,-146.16542094028273,75.034702307679424,174.07687838233653,-68.72577820123081,54.348107297475565,38.889250626812945,91.996130063056683,172.21812950334203,-128.31217745522025,130.01625436188027,-114.28265992042157,50.479961052606754,144.58489458565995,-39.211150344505754,-175.60325593578881,14.439063526705862,134.72867472384786,173.37641566024593,-14.628507387387316,3.6995085407476269,13.238326688917368,19.242367387883228,88.698573120923669,51.395715976024263,184.05754978600149,271.24569800639165,12.994546210559513,-2.8290296413763301,124.22231804562725,75.684003379799407,-210.35517132576069,-63.523597670631389,-129.97652444471993,112.08949167876365,217.59975125909608,167.8906471678286,-147.93773849750491,159.95849327393302,-54.32534891452017,205.98948943653707,6.057242817754144,-140.36660878378257,-232.90684871500758,175.62703827232116,73.971995849130138,-59.759538262293887,54.063057350410482,-217.86041036175811,270.48596281686162,35.965693331613636,74.535441029837486,-54.805522384021586,151.8394454012064,79.870071729292562,-157.52452739366782,-91.581951679370604,167.23070138937624,132.87124717266721,19.881340049390818,-109.41649797038414,23.323885169120551,-28.765102573166502,5.7905491707740584,24.205214221415424,120.47319131377459,-198.77996325351546,-166.33368839035768,-70.486795625131109,83.569098964922446,87.326765013434638,25.532373561905054,-150.81496178708252,-19.331308507660189,-58.272796095473382,83.723471001790514,60.271135235483868,-240.35613979985035,194.27775356715119,56.998641945774949,-124.80981340685288,38.878988513326668,-76.618456968796636,-150.08119096032374,-30.66820488869902,-31.393459773351577,69.623923886104592,63.275474346551349,-178.20674331039876,27.441250697902404,21.519844676847953,-170.51270805045681,136.31782824253546,206.19891460080726,-20.96498794450838,22.40520891014495,-119.90652419497791,-46.29172384385592,-186.91332490675322,31.337172439167944,143.47454446427426,84.015669449506277,-44.470404765608571,-31.246845596698378,-161.64575927829716,239.50670596467941,82.854366508499481,-189.1778071025401,-39.433389406302467,154.65416038377728,-90.85949247940313,116.12582776838914,47.016759975979028,125.17071311060209,-68.350537290959906,-0.99411871627832937,-116.06808028889139,-128.42250743719117,-34.299344641085021,-38.733700155846989,8.1554532350712172,-35.437692369283894,-70.094943563943318,65.024123991802938,69.770174297982763,80.582962173826587,62.946045505419079,150.66819171416461,59.403032938114308,164.56530260870409,-135.27273241314549,-85.146554604977794,309.00631811549169,14.798221027879624,128.31765053042483,11.12152705546805,-60.908126940395057,62.59946645589843,-142.26746960786645,-80.99554180637773,11.628829849302782,-253.52079252523845,-29.405741537012148,46.26127766497423,-260.34082822017621,45.256850268400569,47.782667037251528,61.582244860185952,-22.817356275603302,-111.31038429060598,-177.34829991167902,-48.100405523005342,-89.018917579076771,109.33591295913241,-283.56933862895846,72.416965839507995,118.7866036842413,-87.782062515007325,-38.034485814193459,-123.86251038300445,79.263216462552663,-137.10934957361076,59.087931605967896,-13.809376678960504,-9.153806722347781,66.579586464121491,158.23437081211301,-15.628202623506006,196.83575875720754,-87.891504011854693,-39.071288080992076,162.58210599524762,41.861409698812494,-142.77368628549351,74.653412315136194,-68.027929484395969,30.832808977969208,-34.575958207678752,-12.757196175968531,177.58230763049681,97.692535752531995,-141.49449092619616,-136.77254313610777,150.36548835323771,-20.759969687871536,0.66860040651509678,305.32154295637389,-110.12397150832433,92.474225055076971,39.802338746248196,13.242771039585364,128.4776119143412,-125.49423623765924,106.7437222697074,-22.339726467750463,-41.144442193727279,-46.320170085029986,246.79505032444067,-70.431424422753167,-51.76395331273028,-274.72603013082312,-8.9513404032241972,-47.219984072332352,-247.00935412942897,32.965515741445088,49.41966739690951,-72.074497732571331,-32.326157963200586,6.7362910545290049,92.805540262773903,-126.14664051301568,41.157213034151169,-108.70182914518091,8.8658600936383323,-116.75925583039366,81.96177969540814,82.438555756877548,3.9387440617779674,-16.548800042001186,169.04155968609132,103.06272321330641,-99.557811800568345,164.37338378306919,-70.160211362358865,-243.2058367515896,37.210629196314784,32.814245150528464,39.551855928089324,41.715257792144484,-127.97280145893673,-93.01829940302666,126.93473323246263,-57.344887634956393,-126.19987676214393,-95.952345093552623,-42.745236155991662,70.136872021702516,-107.44340430689999,203.24542433078153,47.161623150964523,-5.4225334915411167,-202.0064237500263,14.445865435351379,196.40340601067925,-104.00662781913788,-78.172228624718528,-114.13445090236621,-19.053358584419939,-121.84209109581269,-58.444916196098568,35.251958180910663,136.11243402113712,202.99685113542677,-57.87600381148745,11.173496108078275,25.335190425170808,158.58512380606703,132.92295767141781,13.556326805178777,136.58795375502169,-47.00680557236452,-169.51216939333864,-38.081810588015799,97.442584685109367,-98.301456513298703,-74.6460674424183,40.383266864027405,-37.331975497543105,80.226147383053231,-27.243513847346236,48.729947267600963,65.205746191598791,-195.02111695129278,-14.171768990023311,98.954471687407093,150.90025425584619,27.993042309675616,-201.21327554616923,90.820027926117021,156.25894394145485,-46.846169958828874,-50.097640973418599,26.537184301493959,-134.2180273397318,-150.63525554564987,74.653637428543135,126.97788167424793,185.78803455875806,39.981760195875822,17.163227013438004,-118.9968508112548,167.23215963706735,-65.696902754091582,63.100440457401241,-253.95709331823019,-110.10683482599273,-34.333504924403911,93.099323223221262,185.75110450416182,-62.076472037090028,-15.084494724580594,35.05462243047441,-36.241021221209671,-71.567416839249248,-61.382613616241954,-214.33043286530159,88.559495431344402,-16.297093461734281,163.96197468461077,90.755650968423666,-93.320003117683797,-3.2399607399163486,196.19522447624632,159.0846623852849,-12.953397743403912,-65.815852543616785,116.22975755396666,80.26402381231928,-29.220759501005023,-146.03896279243889,65.046989475142539,-0.43463769421229159,121.91128302902754,41.52191057072757,-114.39854987836996,45.592529114799575,10.825313262592864,-70.772913323732979,10.15844757043633,-92.572865765532953,-88.816315301197605,35.215823779103168,-81.635696023639554,95.244307319571931,117.50675483435222,89.021035646412784,13.687927699583003,54.205863775423872,-25.493280033911425,-42.479061574868368,-5.1211386006983446,-74.694587502797233,16.629140292892505,13.324453769153946,45.916509885683425,35.120931699365059,19.57682300537472,-93.664204347628527,2.2262105495056286,-103.01991818248025,-28.597828508992375,-216.91909594093551,70.617611427577373,68.747778620919192,145.85491012868758,-66.748627248017556,198.78756058459044,58.742031449802425,-92.498744951641214,34.110550446455107,124.48624474162614,20.790564652975725,-81.127618389836371,1.6618382119928512,-35.703068806056748,7.1232520552253362,-73.954302839377576,-34.980598931176765,103.24349967969403,-185.91167953662605,-103.86017340995744,43.607395684586798,-40.814310498748014,109.55472811865096,-60.324746472427115,-136.16972881728361,32.449717757519139,14.764431714758791,57.28165822537396,49.462639876443163,72.132855260755463,0.41640739530387805,23.787535848289291,-40.416354635302667,-34.637822604070152,12.588853602930902,32.494208222564957,71.403445703065643,-49.093446143412535,35.690310915234782,-72.905901075606977,-58.242279814306499,-19.341386746390317,15.962308477393913,45.767648509875727,-127.00792635763553,-78.859291123726635,-14.33029201627061,2.8438950133725243,-20.963705104327293,-31.66655242124904,18.964349051032301,91.470499221307108,21.50144528109082,-1.8181585054172906,3.7191468058709862,-134.79041570773239,71.790154410170217,10.883814818141506,91.401692180777687,79.641240062933036,30.965870559606643,22.821121973022375,10.733710800210636,-6.5717671099485635,-61.522052566604302,-59.183091054458444,48.279507727824075,12.43727773805923,41.843571304221989,-92.733433165513063,-67.659416831201781,1.0348448968628858,111.96895720837173,31.656669595894698,80.237072781249566,-20.7172134520162,-95.092377937944406,29.205582205568252,-54.072698661251074,-65.920127984701494,-42.527257356333834,16.210916430315045,70.392176988936541,35.795781494004643,30.287755905794956,-0.66264563702914359,-52.366064008425482,-18.07871474385329,54.866913887040802,-76.587153070323836,-42.986428629409332,122.83120065902241,21.524606748825313,93.336747255172398,-43.14274594902605,26.01192146844685,55.048895008243754,4.7116983301567501,-120.47862314630538,-53.239914009109185,-100.04647323888972,28.001235191836098,-56.683708718419766,-56.780203628333467,-176.3909894095118,74.26357058014483,-129.64361979852669,-79.015499026033666,-24.822549747789129,79.424766766880765,-130.7762282268732,103.67872961227437,79.758991253095942,59.473615884682658,116.76276644186984,50.185564305988549,-145.36872069505165,93.040537971452963,-83.356624607111996,-80.011473084378139,-54.710944730069485,46.962143662267735,-48.931094422780049,-91.418692139582916,18.111871226285999,-40.812807854077647,-9.9128939290890266,-8.4857843116500629,-24.342179923637829,64.508818369827949,-25.764386953930767,85.506808856495567,-39.971342504859464,-12.025672039279637,5.5744552454588145,-42.805985277882705,21.541544853428867,-74.994522711674577,-12.923635966045204,-15.350651104917116,-19.617247495088975,-38.271897363558324,1.934708493506605,-1.6619059954007795,-2.5915595903883535,45.221591911977121,41.24664080762021,-49.03626135414126,-153.31006937825765,22.020222426780638,9.9616257348650628,4.2969474584498464,61.058812533972855,-36.293239429904773,-76.938603055869663,-77.422025954624047,40.879787502045296,-100.80821280657216,70.516432311805772,81.739282452862113,-57.066547152066669,66.343177508872671,-41.762057980745439,89.357228754520804,-38.037941250866787,85.237906638953518,45.974183519992721,132.40201363106107,-7.0891200518343922,19.350473244705121,-72.478567154455249,146.31176526626433,-157.11354191148757,109.08186510355586,38.92864899324276,-60.811363115190304,-29.68091189195847,96.945452711736905,-30.105503019703423,-20.983936874975569,77.413239850067441,-58.030866965950452,57.571550014062339,-25.296824086103385,-49.403714385316277,7.8895514598818171,177.20199842580348,-16.980711680373105,87.024652035738782,-67.960529178287828,16.266587547358245,16.682728336600587,-20.171938228481487,67.328945910845476,96.111394435483959,-43.464574084974103,88.616234869226489,-34.512369476962903,-38.227921761392537,90.053995205414935,32.241993542393111,-14.1567149828293,-29.815851101787587,-121.17293280522158,-86.355747327493333,-28.972111376182394,79.665714014697841,-74.199887330988346,-26.457927056361147,70.943163088619315,-22.393894913571529,82.765965124229311,-64.005830602953466,-6.6470556390108761,37.071406364742032,-8.4082114688329028,-35.184172883679643,-55.425347030904831,49.918769282496541,89.647525877221796,8.7875379640061482,-71.435393120319944,63.005228784227398,61.312326840921401,112.21532116230472,86.272690558000789,79.061800584961716,39.163468150258524,45.535436822497829,-30.362270344377862,43.06984613648811,-78.502359527400856,4.3044836635448007,-1.7691746962544319,-22.316102307840634,29.233428131135604,6.689734443996862,20.182732582963396,29.1395176946458,-47.407553610568698,35.879633351877928,91.678025920795463,-77.775038898224054,-69.603208949429145,-35.06312485804748,-5.1212479925537338,-2.8828948227265485,7.2755178088333139,96.907270563388664,7.0917191194382063,79.018764095380902,-33.36990652742476,22.587273645348446,-135.55414430832286,1.7205260608174768,-161.98202935840914,-31.024032102192706,-42.397675943918244,-14.911092124734701,74.571905611415119,112.95303166153133,-21.162327220114875,10.656415288833134,-141.99206891685887,56.836642542219664,48.881570084865579,115.95243528570171,130.79115311362162,51.547933607302362,-115.2648736225548,-179.88565118057323,68.295448637689702,-94.680003929736941,-110.86532546172259,21.694600779236232,43.786318907550914,-92.98010588723082,32.901673317832369,-80.428503271845216,6.9374933957036244,-125.28302089020036,-71.601091653593102,16.401360263873116,-154.88440084216296,-238.15805682447848,185.57403416565217,1.5432956130987159,35.580245782186481,-37.431418677474205,-133.60280006287519,-36.13116624082631,18.027856148876012,-46.736719548583835,-74.00908161651104,-39.182618816692639,61.232289781781454,-94.200123524976121,155.85957464289604,-52.091915025909486,-130.6134996022287,83.943897628398162,32.209972304876572,-36.526338449266454,-28.859911918601519,-108.21603555847906,65.848855259724218,-45.701311925562528,12.838655760955142,37.054360162945706,70.900317132510025,24.700985258793018,37.391418897449356,-72.97860610790687,-6.9197672062273803,67.929665012971185,-84.042846832451602,108.70416277221851,-50.366562090124546,-85.507999419330758,11.558817783087854,-19.621762781212219,-131.6470798078297,34.092772702485185,-3.2387443242260243,110.16560884383118,14.466565001435695,132.75709346864534,61.430270247479633,184.93496589657786,57.993771368063832,-45.312467138047154,14.462123206139079,34.760005315529689,-4.2469688411848736,78.392708977777858,56.161335627995086,-39.850614465378378,-81.724323940328603,-66.604865894935699,-74.284375953906192,-134.62551172682674,-51.216105391003467,48.071492972932838,-28.591137661988924,132.80987556787812,81.067525215611795,-68.97320326162972,19.590321031926493,-122.60288959530925,32.883735815378891,66.267459544496745,-18.322041259232265,2.3330548949797958,152.28730411048872,-2.0981340355011078,124.31530196369445,64.56971837728949,20.307036209924064,53.29341473376725,-66.339914365883317,-114.005600211565,39.886769520951887,123.3016064630164,42.05004250680426,10.087819729128347,5.8608747230658462,-39.690572111395689,19.969228336885692,47.539695842286875,10.335142995165185,-52.47897301488586,74.632802630533206,-8.6320056186487051,-4.5893189771044405,79.062986828846533,94.070050904432819,84.781749904404705,-36.974773798454663,20.219891870796801,-58.995726723223399,83.702932930860115,-24.64845932273866,91.09959191997315,-25.187206971126738,-41.1662036053092,46.172742966312171,-107.40374455456572,20.69613445768637,-45.180064941013924,70.110653326185414,-27.096285839421288,-60.37127337370903,153.74471545050113,-58.527582819062602,85.312189243792375,-38.441045206593557,158.81170069368386,96.147334597802484,-39.416134683612242,110.10382596936037,-37.031401830878089,-51.944369021139408,92.847559778760782,153.09809097197319,75.270134022887063,27.356745394882719,74.972089564275777,15.355964805701063,142.75760666374424,-8.3218088650930895,-11.340041546202327,-14.448866018032042,11.8468790761025,-29.074967077623938,-11.186631094287591,94.665375246875186,92.777854433230459,-17.158925463045556,-2.0143784189570724,35.37267631547622,-62.814791313419832,16.49991038357193,1.708906811810273,14.009773401953822,47.714760478797871,-119.36138914403803,96.270212124047404,-38.406300513466682,-19.020717292143935,-34.452453950004148,-45.44116096059993,28.637257635410649,133.27565756209091,10.143161953451049,7.0683832915491625,154.66850683307541,45.15535412038664,-46.291185173571876,-81.765486576617207,9.8223086223196532,89.630509897435331,-39.520888192549876,88.066866008177186,-45.627527892962917,-32.988471942798867,36.241241868610956,25.721713335195624,10.365928856560666,229.52505199734435,-54.589891167120122,-74.483754947877742,46.496775015452684,-1.3492480971768401,-23.438246547950257,-76.511012855003997,100.02746516878312,71.086393109201396,181.05557119228615,-13.06816664810964,83.442531336295076,-92.668570478572917,191.60121449298896,9.9547088213595742,141.59528283374948,47.354479483943443,87.158616796582564,-154.77338260408911,-4.2124803898507679,-57.530661730140636,-72.310156394006384,-4.6232281365817798,-129.18762647924859,-13.708834657545607,-14.835565730994205,-8.1164198024894958,24.879422727180419,-142.89531600898948,60.482289723946195,-116.86836014950858,-153.1507686585179,52.978591934514945,42.096737368979838,38.966885632628987,-81.292623912962156,-54.210117557963819,45.257544196101207,-30.48129702167768,-51.102575863136664,-48.621460729937475,188.75333298782573,-110.88670115475909,-178.08462302799478,-102.73152390447615,-232.95142575183274,15.475912605991995,81.61096361947844,-30.777736089336123,58.819955046831083,-20.063488963863996,-30.125880323975146,22.138815464430635,-104.10471281479269,88.982126087018372,64.761469798083127,-29.103310040469253,-285.41361120363888,-4.0897304543607333,119.34485120188482,-69.198940971746367,-36.912234956386165,-181.97234542969954,-61.644732086536102,88.401287665753159,-102.245398869382,-58.545063982092238,-95.266401946738029,-155.31701178536554,32.832331309305147,-13.936926066983307,61.669995999939985,-6.2902658836340404,-92.359624375464293,61.933548854474488,75.34067587306717,171.21802884465819,-152.17445536205349,-52.724485512727469,211.64931169004771,171.79573465006814,-59.156216370059745,78.818500423020396,28.812761117662937,64.079955384133541,-88.305627651910584,-96.216751073296734,65.531232896635515,10.700495132638885,-162.45026146145364,59.953299584896598,-84.500150115243358,-21.454133610977824,105.31828974681189,-40.118652285837911,76.385574528170096,-94.955409238361227,58.84222263240207,-107.02300659180875,69.974104701276417,-90.843451535064858,-42.882824607141472,-70.697827947257636,-100.66737776159786,-95.55681052218489,-19.479465181349966,60.260990468312947,-77.594789745576051,-133.14366357835135,-45.004324425486423,135.82167851863778,165.36085948053511,-160.83250964822625,-31.698197847799392,93.50047425992571,1.9827665722113912,-24.136455876824364,7.3465141193082069,5.258776152323966,-24.64268647114331,-123.78522781621648,-142.57393343772503,-14.85165029173718,91.833555448874165,146.37887727365745,-115.54943014003607,38.608778426496855,17.752902415134869,35.520646038541372,124.19449958380437,-124.28893960159355,-78.400193122484353,-101.25551737961601,121.09416356525273,-73.835684522113041,20.336127978363713,159.21517553551158,-3.1772082450189902,2.8154506359209961,-36.759854051421243,18.587944337562952,-4.666177766943008,50.854084345630639,-23.980013627152815,73.952035951104563,-135.69043398936566,91.340671910121728,-19.663092402533437,13.755216594474682,9.6027696575280288,-38.864632226309773,1.4564730123267644,73.78271183401462,-113.37315490112823,-57.348522746125312,13.9457815236771,-23.949830389464857,10.923637204313854,-83.22163613078375,66.52569769665476,70.104191104070509,-89.640193737640004,-13.155792825831163,-39.054310218980149,-175.31104742667452,-70.886581527959351,76.517941235564976,53.984442766012592,5.1314798184364925,42.676709079455563,-148.35208219377222,12.099983744641776,-123.33827868902543,135.09024402395201,93.805278701082216,111.73469820283165,29.724361994284703,-15.569690306123569,60.587886223035646,-74.398478359908879,-149.64144333256925,-36.369803177503648,-51.187422122911329,-94.070645669352047,186.70848523712064,63.208208364445049,-64.670189744095282,-82.915332562762089,-2.5632108185182894,-80.121350093430863,-44.416205580510365,19.023870935602851,-95.969497382678952,-13.934382045346563,-73.041696283753595,-34.374828128483827,5.9732577291748701,-16.245485773154826,41.631864593359566,98.134541488463213,153.63065626272936,-17.881821581624678,1.4540472415374168,-46.076166527293502,-10.871141560072608,147.14686554111086,-168.82862959298438,-106.50342564407168,-20.884161164050852,95.891912475988363,66.202758761995042,54.417650977621577,12.377196064369599,-11.244071490500296,18.395016115380422,83.058163921085225,129.81332462981206,-17.316032736502741,-68.762847585901113,-14.470671383049018,-61.528591942033046,110.4047886699838,229.12660813411833,64.696474752205162,10.375109028501306,-72.60823699792283,48.072015819279443,8.7401355056909935,144.94884524520404,-82.980499742874173,10.435992666589044,19.819765361025929,-40.696060732007027,-71.963801051840008,-79.992301156826727,40.864827302308846,48.764948275488379,24.438818193700701,68.775956249126281,-76.866088003800485,52.644004497616301,78.594734467459858,-13.640926569258578,28.856926323119151,104.34140014902256,-29.116836055801652,-16.373501754709096,15.387682611067756,14.40477761580822,-47.443880417779475,-35.970759622159967,118.31217564312661,-2.3374886660795484,-24.820939262499067,-14.497589026732188,-19.877897244574996,5.3858272636762345,66.041506703206508,2.3755601236581851,75.004959262992074,-98.113452272513726,17.844040278586949,-52.325675149848628,130.47122170042007,-14.679401936266679,-49.30941807424108,-28.35003669655482,-10.47331462707252,43.816125243039735,2.7166968767033435,17.978775255001153,54.509871630399509,21.744283792269698,-27.398374669851901,8.3811855721667659,-35.435221722497623,54.22390449861502,-69.769757606124045,-25.631582534219319,55.978584591650502,-42.494350183884094,30.606831894590876,28.156849134707166,-60.179704075847276,-73.14709850464989,10.344093689994683,5.358758791997837,-78.942437129219158,-9.8234523472108375,-22.781630561863995,3.5841791038624047,39.940116024704707,-2.5695214343481507,4.1973109587602524,-11.63371592733373,-22.2381732706938,18.398046894259615,33.821372012022017,-16.808647659848788,-12.964183919893355,100.36104763103528,-25.591195719816941,0.13514345794360402,94.423979735294225,20.142050912112243,35.262434024965145,37.555015423594938,-31.89706134563168,-0.28117062207429516,51.628168179365559,25.370199165685932,25.587893235483886,4.2388517213425825,61.210603318968836,-16.747595011194363,-88.431649212398881,45.650082759859814,5.2426411210878898,60.236510040387984,-33.372197613898564,19.730747428605053,23.419944551848616,108.49637213012993,63.176384856481036,9.3530484307962425,-41.490679657123344,60.157156471395403,-3.3875034326344897,-5.4941561219055961,3.6222565112322576,30.487256943935762,38.842547976991519,13.846859247832398,50.070595350593038,-0.86576346678716731,25.754065333587565,101.07857636669789,-15.550953189321282,-43.515372910976041,52.896566300716188,7.1307951921569606,-26.985288924887008,-118.78639888970727,-53.753742286479145,-37.019114076266092,-11.31784264847269,12.91209371348733,13.501876771016441,24.480182553130952,-35.81700199572893,-1.8584387572643986,50.309217733704401,-25.523419747691438,20.026960644367684,-7.1237131350931815,12.096806538528583,63.001017296553805,90.040948463649883,-57.87620544936334,-6.3890061895577919,77.044289087347252,65.278335134781983,1.6273361869288239,-26.025606164340608,-59.276991555649367,115.58655368462254,-78.835097506128193,-10.032319990123268,-7.0144822669839915,-65.63378406688571,-141.14315578802291,-118.15850018547037,-29.747898441371355,-100.27363503636957,-151.11733220600624,29.027002291667817,19.219464656451912,-10.670557728572057,-48.186022391564364,-16.419202112691178,30.064425738426483,-22.339277656115414,5.1236864272463549,66.067954844353352,-59.41250900147547,21.385231633181427,-53.345080135806448,-20.0882880039875,-99.700852908274285,42.347949633074599,-139.22776664246561,4.8864826283150151,-115.83811998364041,48.401423907003824,34.578861863963319,-171.69229465313418,96.612258445288489,18.750911270507899,41.133166455055211,-125.01753626843673,48.742513280370289,-7.5593844655356293,-5.7651128947231314,-13.285033590334535,-16.30788104863332,-9.324883630806557,82.260133165208828,1.5338502793229836,92.765041767625135,53.359742864409036,87.900964348544548,8.1478193044278839,-26.469592518076666,-59.840310405271993,-167.28376877183544,4.158654958943103,12.822763849702561,-57.730958118904425,27.003756515002038,-51.001797622655275,-35.628286903989398,45.602119765708238,7.3036906061060378,-16.348134056890267,54.725182513152376,-30.247988018368602,-35.826989730905012,67.323580355772776,-1.4838972887287909,-0.77006257765269837,59.495900451016041,-52.577904060533548,96.674595436569149,-56.983800125874865,104.35926048007042,27.856878959534225,-155.50836478800193,-72.631588707840621,-15.282624334101989,0.20071197256550377,14.19940295401258,-88.271422603543556,55.425791112949845,-3.3703271589039154,-20.141888621131308,127.5989444369099,13.112268166508859,125.96824840271336,160.04455095867834,66.170873588790272,-62.735916288078855,-63.356062148975887,-59.840414010005993,71.117081092957619,-10.166305995744379,-105.71847530085641,-18.095895828446746,64.753865817422167,2.6737974972630889,-45.664635720344769,46.255192957875366,82.369010180060926,-42.705533026610652,111.64098487133144,3.7830151064177926,17.491020809574756,108.97257554326916,-68.403672906061843,-47.698473665438513,39.128147296214394,48.662049759285104,-29.332302344674588,131.47922096086842,-142.71015883978387,35.767954361269538,-78.670980533980725,-24.063160490251008,22.232191424591718,63.404118144503329,44.660486560286216,40.162597427560762,-15.390429672553019,80.977460425022471,-51.55975305791803,2.3172229938711055,-14.802341095015592,-131.26684911767251,-12.297676151581697,-40.632894826382824,25.511372088235344,-123.86452928388911,-43.817918768279085,-10.007429808313605,-102.32993433711641,22.429818795465664,5.6212907067847482,-78.785517393274304,-62.669297003040697,-78.841018032798303,-78.254241968539489,76.58644327250893,47.009939975491257,-34.420024668960771,26.956744759285723,41.148316046991241,-96.327668913879592,-23.145122899262898,28.141064576896618,-112.5579399936035,63.978678357603819,2.2807563927099501,44.394350629250759,91.490301863888007,28.035055927844489,-72.140622385022994,82.012787856843971,-74.500974948038476,101.91255853857285,-128.76254160858278,-34.271739861216901,-98.865028181385838,-41.633203903921043,-166.33016753499942,-27.887794039760351,-50.284551187265144,67.418831853577586,-53.43413944381097,53.494924315505983,7.7976581224967703,2.5232455923213446,25.861250205357209,98.340891864116003,-23.551829270947582,42.913948207355567,-160.99219907043835,47.014812651640241,63.027078985090249,-18.567471657756609,6.2332043050350663,-51.249003935299115,-57.536341619773879,-22.238090198779318,104.01200508703224,7.9234048065953502,-101.25473171657075,14.104676409815221,0.66991072940278151,48.523925984416366,-43.439844409546836,-101.17545084388689,37.271818704434835,-129.84222857440145,-76.574312835945292,-77.596891491832238,-8.2762022313592389,75.73367128096676,0.33172258679088529,73.764270872139022,127.64458126331736,-18.959300904630332,-74.539817693821604,154.32019015286451,-65.18295404523856,-17.850847133611296,135.57644194943666,-28.586517952538781,61.976355401259639,-160.77531623141638,2.845879794882332,-8.0727227505235959,-154.16198500401379,-37.050147878165106,-108.80448601999854,29.599804673222923,92.037733779714131,55.743776140193461,-57.977353332170416,170.32280973829594,-116.19625273626298,-0.93043549299543493,40.129529241646715,4.2668453418076808,-61.572486340153148,-57.011524286590003,-90.503549127644646,42.472466355182853,106.26366993668255,18.967898707100964,2.8598479318569017,-96.938288546561907,-28.422678052283985,89.516773289781298,8.9190713222509217,-76.175542915407505,-93.303299689252682,-4.5567883020342075,-84.219984820960448,-70.701987243212841,-32.492274762624461,7.2250051301551181,56.58504985694546,-33.866242051905871,11.880477832931692,-44.458930798821321,-101.32446203757958,30.440554657875321,-91.246044441082134,43.900854545907386,62.521956414543453,27.056288791438512,-29.581235910693046,-197.88867197327932,-78.156129249768952,41.574266157911069,57.823305848600086,68.500262685643946,24.711478939029465,172.05492280054756,39.440319806038708,51.718279033372141,-13.179318756268124,16.619227374335953,22.61976404362504,40.152006425623938,-61.435564285992811,12.77311368451088,-33.781939422534343,-9.6100506562458179,-29.112036336097027,-7.1287473847254574,-26.783299926522979,-116.28358220835057,-57.164162878192819,85.030639413574761,-41.656652133482837,86.739269660345727,16.680342273236072,9.7086174771406473,34.089697761335572,-80.583563652714886,160.81374570246459,18.110645460844431,24.391687721782375,129.73457200698198,-5.6891026580604347,-9.3845630575620334,10.762291578812434,8.7087713602740422,72.608887960593989,18.030323289068711,-66.613546536836168,-46.144039958602768,61.205592274991787,1.2039293900616244,54.122312668496768,-64.342372922836915,22.717233767183561,44.130749081166393,-54.872339020552538,-117.36737586559384,51.705248652550367,178.92848621486718,3.7946375563842718,-118.67324750649665,-0.68997248730277683,14.381351912078372,36.949585462004187,72.773710552747659,19.994757053849465,13.905501905770901,49.580706939824765,69.210269712720986,-51.752498726083289,3.871807646533596,110.58352602355019,70.54344023916785,14.495944234201675,-86.407189698979295,-59.810090006022108,27.895422705937364,18.751299013646097,108.68550366764464,-39.656791196130008,-60.710533563327147,60.85108214057982,7.6727692573065855,53.542038909485882,-189.21661364049956,-12.680416509129328,-99.638953432716008,164.24478033068513,75.117796515441725,29.186660892134292,-18.355697781537401,-49.228616910379067,-109.47449223270107,6.5827284544765332,54.299688670848312,14.976778833796933,-37.023140148893447,28.509075606138587,-17.361619158654229,-195.35078685882399,56.553054418740118,-54.814952725758026,-72.749010699571471,59.583968420007892,-34.835614408633774,32.723719371102206,34.146611574060898,-41.993879344628937,19.486983429909781,56.381370357527572,49.624710663614884,-45.676588092526792,100.43458806840833,65.344417287269238,-41.097532395517327,31.797892155124888,64.238282484818001,31.425719789705049,-73.949152914059468,67.454772651343717,-114.72346703010906,-10.857292509005646,30.429779748655179,17.529695297741949,26.034860560264924,91.482304318718775,-54.246250118374903,-141.25088335441822,57.232708753227278,-61.360210444761897,40.559307135042658,74.068257509872879,120.80692332635523,-90.727982587062101,108.41435153560275,61.038673862982627,68.854857326354903,-54.797509788411155,-15.289296860326164,33.822771700317972,143.04433102747777,-13.23412527532138,44.615379954247025,40.961716149384394,-37.852344323619377,-21.948922862324462,44.980037894419233,-144.98591141232822,-54.733757279806333,-36.140548286852727,130.38446402824266,-42.921144307511291,205.94626927055714,103.21579767323681,-55.513035124546796,-30.600203223309503,-108.15783591761391,-88.639981238812837,35.206033081011157,-117.94588906141665,40.643654870807111,-136.87179163076783,-90.924107579068973,69.507799078148821,88.875856932884147,42.526248417942639,-68.412461996585108,127.78454332897755,-7.4679109268784094,-117.66955266869662,12.131072897333148,1.5403895485622265,97.443947397846813,15.337765997366045,74.378436217447586,-61.788859927977285,4.8119912840512153,45.213856816993278,15.116595824860131,23.972814715161391,-36.647307568990918,-8.9789847620330772,47.789094922524413,9.2700214088578647,-7.6808759680228018,19.792332493939607,36.085204970286583,10.447190792800662,43.465004666207022,-36.210526545834391,57.814456257000209,-26.647040231019545,-134.39931264224151,21.066767699639094,-71.704685689261979,29.824324314987187,-136.26603579153954,22.67186586784921,19.748371256745077,64.169921239406051,49.149005590272246,94.285274498626862,-45.989293784491011,-111.7296162030853,46.122479022517368,-8.4546023738237199,28.621525879975998,-26.842005739847437,67.153051079074572,118.26404340965745,51.764683151189175,12.284508159534022,34.896004910381158,28.264001392417349,13.943163217760782,-5.5882415345112664,22.893837286466322,-120.37037408561649,52.428812346459758,-75.350798049156879,49.220187946106535,4.2830625429942861,-36.227940005861946,-116.38930745975479,43.870304029374083,-107.88392630367071,42.400573458785637,98.668538191381984,-79.327056934935499,90.248885835408927,-20.922845970296493,-110.21865845361189,21.668072595561249,-48.795990761437778,-23.184412733606109,34.159518829638998,32.878177101113124,12.202703180200411,-10.684426307555267,45.503946115617488,-180.82776557046563,90.167162357399107,0.53370220650496225,95.281175170266394,30.2080992075851,9.3145398398832047,145.04197287441744,70.68823632476294,-3.4348224161880738,219.58497740429593,40.112921502615137,41.617716266917149,-90.931057627362947,38.500019915731279,14.586857770220048,85.407950340714109,-15.863697432539864,-82.827627794275443,-17.628427552355038,18.924357452726106,-118.92506498272712,-6.6574274958632413,-68.168586547198032,80.345638666760422,92.985388104230736,151.28640189921305,57.539185844151071,167.77226865624831,169.32297959157734,-34.367849166837992,58.626551992810818,66.421624988244005,168.13184688191976,-4.4262619432914985,104.21715694216115,-43.686508183411874,-75.329414599992987,49.192351361564569,-36.177105483866043,46.871515236649337,-15.564128180257093,-40.647099155477733,-49.195992864016965,17.06626373293987,28.837887694750936,14.744778327660617,-78.525099680928776,-164.9334571142345,-78.09162760992524,-37.211507526921046,47.452494149580545,117.00289470585631,45.68247442398782,81.031991425050592,113.69149508999182,109.35748605615022,26.654343098445384,-20.466166775747464,-50.656760131973691,29.89137653990527,37.981075923743425,-49.738312054869617,-85.212453975742065,194.10205343839306,113.65750804151085,-7.2253762044723278,-74.972606262776296,11.142114441995723,165.8508222983514,13.556596993082266,18.607240319919953,13.740916383653444,56.455273123945361,11.676718106396295,37.946583132350931,59.763107378421189,-138.08806924005984,33.428996993187752,-26.350511074994156,-50.207913007748509,-6.1602186246179889,15.980076756285293,10.85359798463011,-0.97444405726223515,78.689117528801489,-93.863234951337802,2.1184815466137659,-33.327872136277584,45.206049147599657,66.326330214318517,52.317097968635068,-156.66145460659158,56.504749892851201,45.920346395262186,1.3171922510717811,69.67052904185644,-44.057850790731088,-36.730981604558295,59.849599142238333,18.51460960091994,73.210079143025339,-79.449826466272825,22.436644742694693,-154.91538812323665,121.42293423617257,71.190381228336378,-31.61072882367699,4.686435582974716,84.443353358860819,80.235932087545706,0.93849216856548612,11.744190524462548,-0.97883558169521589,-9.2501365794251118,9.0345385769988127,112.21241516683703,-36.805145528727792,9.0519261519397887,132.45932692425421,45.30688755777188,59.636654670839242,116.66942844515185,37.079770301423579,16.394668863729063,28.277790760540473,49.404851122866376,-80.70634006729351,3.0066064292359527,73.648582647911212,28.124399049505303,-130.60740551553471,35.729152501707027,-43.44553369773746,-109.68810582423725,-18.661660394449228,-45.160746721290465,60.062675700710948,76.431933912235266,-103.57732138879652,97.571640721052091,-9.8176567191113939,-127.27011226775193,64.367105959284544,70.044828878825541,58.383802121150396,-111.88128276306651,39.760818247986315,-6.7313080294866552,-109.50206163785514,-102.28637550555722,76.766917346042646,-24.240031001174209,57.455318851855012,47.684821663796015,-165.66687376986309,89.688813656326872,-14.021086253687383,82.423493304316494,-65.231890940941028,-31.979296169414276,64.111352485788501,56.042400311193816,35.596830555860251,-19.46875864331281,-15.517391447557685,49.571359372238319,41.261263914110906,-64.012933292039421,-45.755839271048444,24.779297332905816,11.133735255541335,167.01153592978801,-24.463352551683784,-11.488312157689888,59.411466137216564,-32.863811217463777,25.793813342316895,-31.573904124118641,62.409643632046411,-120.24251261724311,13.922160002208457,-69.285081040361391,105.1056075535071,-8.0538580354261722,18.60582199027548,-7.5589715048932788,-129.3440600841808,41.379352622744605,67.862507390187233,-99.64652807716827,4.8440937621492459,-46.935287281687636,-8.1362385129948578,12.972840463570062,-4.1810278808719916,3.7364306560280731,4.970195333599591,-8.0691790317420171,35.367860221657502,23.104970599372638,-43.652043412854752,-106.7838143912645,-5.631889779347679,50.845912412317823,-35.66178923267789,-10.642172295952594,-26.534962291711565,-117.0139975261628,-59.25866698282298,-125.05936425711586,-51.766620950136257,81.949518145389021,23.55092903857124,10.018726482599353,-19.680895810932071,61.0877211234329,-55.438503554390905,49.314698731193864,-64.466350141379507,101.01603180275754,-58.601571159525392,16.112327722356532,64.77490496724468,13.131163667489202,20.34352602276536,-7.0250019546511666,-41.903238899016777,-93.929100745290782,5.2253272541362357,-37.029346097249402,32.067939901691474,-51.96516189801261,47.172770102319646,-41.882569733168921,-114.03888603485828,118.58125493815659,-62.028682516291482,30.278519168083172,10.514182207387137,-51.851055077444904,80.236225177528667,-5.3887325111779276,64.706296094648735,44.625001192617823,6.3969670095669962,-54.189003005205478,79.817196799848517,91.040470755974383,13.51659383061688,-51.763168069633238,-97.505342159456433,0.44730594568716575,41.784306043983889,-6.8949200286124359,137.2503946407312,68.342084275529842,-40.897872257249801,-57.554652684058709,-15.441581422874954,-19.070874158339954,13.89640589485024,-107.220713046497,-118.17588000098101,-46.5651196364431,-9.0207093880061997,68.118308207327587,-55.896912280019585,-59.24602596204641,129.71611007720196,-8.9096240239270408,2.5651892009651078,-17.471842426182963,18.446650496708187,49.391192509708446,-40.538849004981572,-50.683715148909677,-45.106701442837199,4.4832832356353745,18.845687928773042,62.582288435516986,117.87848420889694,-46.979730049206665,-20.273778843085086,41.509239467579548,-7.2724291216947385,-96.227393477145682,80.61899285137963,-19.309751055887979,-57.082183571949436,34.170485056624209,56.310482820060137,-60.900697069170619,-23.635579345388702,48.688250798732042,89.79961291266801,55.34410618983992,-35.374966521391343,114.90333688691746,25.881772945133669,-99.766042143095945,-15.224415054567011,11.204874451185447,-61.262846147230675,20.971190497929065,-28.029127130699603,-9.0976880899554082,-5.6587255354549164,0.71475385817122472,34.380043228178266,7.7056391939396729,41.271996860311802,-76.857357595842217,22.612650463707872,-29.713079176633041,90.705837678978654,-48.716459681534914,41.472998716772196,50.805072446837073,-65.191004493216269,-71.321970452498903,74.47493238639791,-24.575874514664619,122.26151609197498,3.2620886746883748,-19.954388083041145,-22.742409996733961,-5.6031704945455303,5.4324009946235368,15.623754071409515,6.2836590531105898,-68.932190883903814,22.283430136671502,56.07853228860084,-8.7745339678783445,-1.7345152885668398,-1.5648273308559044,33.008426505917456,-92.003269905957964,-25.90551048446823,-16.208183743002785,27.695105001199632,125.81160598097151,-10.637267425571061,26.097112888231372,65.770911654727158,77.410344284345427,15.129937338738049,2.463886242531899,37.475585708420958,47.649054166574352,-16.817887045363747,-68.906480877214207,-44.214034023079478,47.725830961510212,-9.5301662647651568,170.1939151622355,-59.389806528722488,58.885169022968242,265.91071361428322,-14.353603299521104,77.239935890419673,25.52767228963399,-94.055460858540059,96.030398881799712,-121.32270059408268,-117.21848762259395,-57.175655608682696,93.818991215303967,-54.790397226165638,-46.471527291954985,147.78024997171985,50.212856168027919,1.170674848182415,-4.4337900893128079,-54.708420559665981,51.823638501252212,-168.26930036344453,10.523701383023628,11.982007292597601,116.0918806933536,-130.94689594066742,-78.222429121682353,-3.296367367753831,-18.550938577635847,-198.24522694614512,-130.17951116261315,5.6043653712733814,124.7652700500963,15.578041676234776,-17.750616466706553,-57.680829989960102,-90.31880388816711,-60.299690636067339,59.534972398951069,-128.49301827232597,-17.730161281749588,9.5103491688991681,-31.713651480770796,-111.53430198420617,98.884699447485787,-324.7173304075427,155.70545812669616,-71.885368306451397,40.960202741867228,-117.69840031526161,256.44270642362619,-23.740684130988591,-107.77057154841577,88.736054899656409,192.29162202701275,-166.85159258436749,-11.181932345474969,114.0385419437967,74.897052754573792,-269.40271171983341,-92.141697649564563,181.90020639594456,-80.648282576024101,30.051159410045663,37.537478590016065,-163.57129211781887,6.5896437933521099,147.28199261430501,85.753452907037399,240.24519087780345,-166.67437101467053,118.13696430773464,-72.182758370801224,-65.082709239972175,-57.739033700993161,-7.5512384208947125,35.604002555119607,119.35915351892278,9.0091641808131016,-94.762781212262169,34.48321872771912,17.354910794401377,89.411814553977706,-128.1622541222473,17.341533844715858,61.690159085125501,-15.30501795269846,-80.811114708527754,120.6621036095125,102.69732762839726,-172.74421199709465,-187.62319831885659,-154.51965746499772,8.3381001388791418,-123.73287659009256,-114.58981233395428,-42.810470970797084,-163.79396877109218,145.18411265933233,-134.89102490541308,-101.0305738674094,195.95390321923389,125.59464649428715,-127.96836348931674,58.915113258146619,-103.65557658103953,73.38432695863591,-146.21623499624977,-38.799337656794911,-16.431333865492732,30.296220070777629,-29.745408531288003,-144.15982166808016,-197.6127800826053,-97.296392627017326,92.829442879951472,139.05425182966985,90.077988454759208,-113.73585318121037,-198.80317627919064,17.401163053229325,-58.968944626908765,-166.27786489961608,-154.94440591098308,131.49782313582313,-215.34085788597423,5.3952935440513041,250.86583654716003,-34.376114321111906,-168.63499162177291,-111.05218675135319,115.72519469114047,125.17578657810083,-80.248505759466141,-287.18562933895993,-93.433708899548705,20.969340785695337,300.89479264181733,-93.484431743638154,180.43109264916313,-102.0268566396521,-72.944924021928585,-70.605776850857779,-104.97460389501515,-301.91469820439522,24.003849774123552,-93.212555014990755,-160.51023216926384,-46.640715923896529,-140.66505033174411,-8.7635700116639441,119.05139924047104,-93.270644992150565,-22.787973514575743,137.17351596664261,-70.09038717683714,-74.524519525391867,-152.9590362046024,-74.339845801733361,25.384714241871816,27.572592438403483,61.637326768234864,57.363335776829274,81.900388837559078,-166.52992214980009,184.98152832548192,-48.144668262021895,116.81452212523243,298.02657244330516,111.08333219874294,136.23894582244412,-76.033149242741132,-48.606473218651502,-37.699023185815122,-70.646280388924936,79.220360326093299,2.7503016161788452,3.0786971515957759,-25.315956539164716,-68.926358062943947,14.888046806845821,-107.56883670601664,-112.98430690763168,-240.58551332830817,30.949960375504709,-140.789741081541,6.7469981292158252,-182.28615957400399,-149.51345415677582,200.94775208414839,77.975436099570516,-137.85648028133917,34.26153221700001,-145.18548960078431,79.263696813055674,129.19689800985194,303.96418365006502,205.90770862735712,-65.513798846233897,144.5478703408393,37.064727842697792,-120.40293660627304,79.577378453564435,81.679715762131309,84.881743234930639,132.45178975032428,-74.567769587264166,126.33918470559732,-122.97818929167282,117.16219176658676,-27.301041428005689,158.34776985446968,-67.915064154966046,129.26846683503729,186.86828310409973,10.096836331272989,-22.49203928049949,-127.73114985557996,-96.900128409357691,139.66568542428362,162.61331137452987,2.3029267476620845,-89.994719857238579,50.804689507528458,32.594202715409594,25.423953586788983,-31.067083072766494,143.28790864430971,26.308028147700071,-139.99371614839487,54.553755039152961,-202.08333429583271,67.553857785604208,-68.00340737330967,47.441668379777063,-244.36954263348537,-34.554228174668879,2.2519732300465733,-242.98120206306706,133.92376627584355,-12.664621952635684,-120.2334383121745,-94.735832016998856,82.267986309121198,-87.322353923673035,41.439336079086132,150.52849457336708,202.56489298307997,-186.32044845621502,66.040816259931603,-24.945465248155603,67.515958973492928,-9.1875485682002775,-35.298569294982286,-253.76145937176375,-4.4656381620243444,-227.02006775076433,30.391682000188155,177.67636998253849,59.169919925943375,237.29313257262839,47.154178041551376,-129.15904155459879,0.61853225483061181,-92.57183059992154,158.05791606098771,-139.43304059034384,33.520291388759169,-77.221820822401227,110.64564651946048,114.34306576510474,-35.920481993113242,-115.53705506670636,-38.942020583442527,-103.38291751558853,145.57691322996965,45.811426867938039,-36.405053547128091,81.36250306267209,-24.367690035434361,-105.41736443707805,-27.687813771720457,-150.05344433984877,-116.74515483605158,163.39051193477241,-45.759394448842237,234.39040193303077,37.108332169509843,-87.630625518164933,-56.192046291502798,-118.28924566044252,229.34251087720668,120.16771192588836,185.60908177455656,-153.04534834162018,249.52663070550753,-103.79933484172301,-38.682269828409645,-122.59002336782672,-69.693390158847563,184.24464581391504,21.12457514713202,-24.750837645697374,200.88020482539008,207.10292028794112,130.31282431033915,-17.66304765616831,-101.43950572065262,155.02554548181388,67.084273942247506,-36.387965600491405,190.87644518021315,78.388926550256926,-76.393597236923796,-5.0622514076414191,-134.55289266690673,-98.451656126444945,169.00906317349137,-35.647354120901561,194.97950158051685,-59.218489957292455,-141.26587717269305,-37.343014769103249,-49.616753341658438,83.218960231726513,-33.405976680368113,-200.15888366490799,153.86218157610958,47.045029535092482,127.75841763451309,132.2300462031755,-187.29361529776742,-49.057784878177301,18.35861751974042,80.558463070565594,26.508032535608749,30.509787681158684,43.381686655724593,-29.447341953177059,-244.58659336380637,95.711199375068901,-140.23041464017888,-225.48346440617274,-291.06018685818833,-112.75848762366562,-116.1548320226447,-21.569267924549287,75.704877313381616,171.89782232675503,44.036075008293821,125.54477286757871,47.296027160262554,4.8689713827151291,58.166152569441628,-121.52005383870977,179.99726517120916,-14.765179666566393,163.4232082212979,-126.87351148414123,109.97036389189283,-106.54756767154788,113.67012022744851,8.4616443335394678,50.922814110071599,-62.414763464358359,-112.55820528680978,-112.23497240011378,203.82506480211208,130.27375282519779,127.38183403074915,-45.798031373542706,-75.074127067491048,-86.180643440698205,24.488823318936497,223.34792230027762,-77.622710940851221,-26.013032874611412,-104.06059433488424,-166.76850318911227,13.926317529997448,-59.840010079548641,-158.28295818938227,-76.465179270548376,-37.410479892291377,109.81917501576417,7.9420925289661284,-109.22948457597917,-45.142824779884158,98.948194446156577,102.66638969535352,101.81537488088239,64.872876282817472,23.317577511496559,-114.26929489903348,-94.781487081476314,-46.224556646626894,186.22423123170816,1.1051166175544669,-130.58888806856459,-7.3769796637013769,-39.173903386214889,-208.4672241615969,-117.55280670153473,6.1718482781762871,29.871191275952562,317.36296994268014,-105.96080725896348,207.77076308732302,54.075366797668508,16.621443824648104,53.548339470339663,-51.969751054587036,-39.376178979767239,69.793240915534795,-37.298145815753408,42.131986344266323,53.746535610659627,7.2424497742842391,-30.582224508380847,-58.528053833021602,-154.11867362096831,161.73434681207868,-243.51224601523933,-92.06471692853205,155.54541700307757,-12.716847815079348,278.16657276922876,5.9841182246672462,121.28848467262736,-2.7230649464394219,32.173370196974759,58.603097696877178,26.799423185738107,-58.984168173900088,15.825929126649157,56.27231262157644,143.5224160412651,-72.025597830763758,-85.996936500818776,15.302129405040166,-136.23653850061814,129.90226140246926,105.54654358618234,75.975470848954842,49.419261780810203,67.425672919435058,-60.205283582707892,-79.487175640720238,67.040595266316615,-16.824211196005351,-270.3746318626757,-284.25220613017052,206.71445012183378,-144.40829797326964,26.744273920286744,63.591939064236897,-153.88831044589116,63.71715821002708,177.57146597786982,-87.110562854757276,137.9958668989978,-138.57810320851786,96.069583969935906,172.4914726041585,48.715232470779625,41.3655709540852,15.766269444183678,14.425795002937356,119.77728590155408,97.540579556852421,11.871403653059453,-59.999219898466798,-20.283982536715342,245.94503938369451,-87.542935343265071,-160.23461176528895,-78.624685576257818,-83.222915129184969,-55.358268506917753,25.825691935641956,98.015454015427338,150.14701128323142,-230.01006295800789,-20.297358235879258,-170.19346112236877,73.452988463497178,175.6809840534761,-129.46218656504243,-242.77807468255739,-131.30067026897467,37.98675947196908,-31.929240313973267,64.797840923167598,131.22229471721633,116.99259626924078,141.86354985899706,-105.69410277604797,11.295411044902153,-106.80633327652629,-67.19278681216052,93.106947026099476,66.536651035879473,-104.78495496699965,-36.655872077675561,-130.6066890658735,88.446939954128837,49.275443229899984,-75.961762061497907,116.12050214440444,-118.32982511871236,132.30470731579521,-141.45810804178504,75.511244430649512,77.303829110630048,8.8415221033747287,-82.270351262252376,128.33406544622167,-90.574627209912862,64.924525946806128,31.371324597413015,104.13859257112735,-46.581826149406162,-122.36607436835655,166.32510258240922,-69.980154032912225,-18.450980742480876,24.110695523894897,86.674854320005252,-103.23544802614435,-47.309640102392464,35.368359614879864,127.89063183610034,9.5453955571436104,219.233656392005,36.024945593986061,58.008042702586721,150.61554154805356,28.990267784251131,-143.48668914806495,183.59115386684687,167.96326790618591,-22.126383426614325,-43.808219583927922,-249.90659858630059,9.4992683279185499,84.195887491099839,137.2654824813356,-0.90243418003753462,26.04569191406253,115.15576071318212,2.452807381389718,85.433582407195246,-84.313939651706207,81.66208783415631,33.139519163867774,-61.781127364084497,97.793883525699343,-105.52826509233989,49.08679673690785,-32.740539165655633,-20.002174028977482,-24.051100980989531,243.33608348404894,-122.40983265918567,246.7348801182512,196.59991182067779,-97.108369032224843,65.009446921475501,-20.090399562170631,-118.12223579849767,-135.86588510869049,9.2856956098673038,-62.61965690382511,215.65745370476895,-139.31387073401095,1.8528838404957959,34.095046209340921,-38.803087095170994,-238.51938199865111,148.34771800259171,24.446217884189736,117.97067892303991,-128.69703702226948,39.840350934762341,77.063810905270486,-52.593518641606295,52.634866606923723,-159.94473358581763,119.00035827955824,-70.1781251345963,-27.462551890072486,208.40427710926713,131.5259434262409,-28.105895399469222,-81.711494949753757,26.513009167276785,141.41508151596884,39.129729037261271,-235.44923337017156,-3.5861437630400488,-117.08807171686331,-127.77500057127327,-12.911868874317149,-30.694648369470073,87.041529894285162,-41.382374507022845,-132.58960089273563,94.213253144879957,4.41332659341046,46.49485014103459,107.74354716565924,148.78816503350993,-214.19449801901933,153.38619340613224,-63.441720376795971,-144.65892371053098,54.256690421035962,-103.51594530220493,119.60185683590443,172.99711381587679,-101.13593550045312,-84.713840266579069,-77.132231822570702,8.8356249813277117,-55.615600215818532,125.19066296061764,-150.14091034299577,-41.478466963423728,-266.62510255863879,-13.237983878053356,43.198970337203498,250.18903379781077,137.11874403591187,-2.3977951934925983,-144.33586531270376,-361.40952671571085,162.29293437849938,123.52741606606797,-125.27471647275026,-144.0682730936345,31.380041401195257,181.32500495102121,98.850536800605397,211.65651142600171,35.17972316575711,21.122840641119765,-89.477614987007172,-104.81085522301733,-149.51780821412456,-28.124455992421147,-11.28215798712087,115.89512607487453,-86.015440365194976,92.609302763981773,-153.51155958070962,34.001186034985039,176.07745197899541,133.54187149093283,26.575612957553929,107.63847425276148,43.035123383365722,-175.3934798632593,-6.2394912732540995,-177.368344650393,-38.301617489350207,12.396064043371652,59.49128808591162,181.53878645385996,-158.05017193977704,16.70534145788865,184.85262266908347,26.917203554379391,37.323538075381535,-45.457700387937834,5.9139429956932652,76.424265247558864,-156.2404836376864,-74.727492130718872,88.703676598576266,-108.90282670222621,-272.03587828933655,163.79258975692738,97.317772719287234,-137.08802707736768,49.482382429312523,113.79873266070443,-45.72826467636385,124.81678458641269,149.44242537961438,-232.20742675975663,-87.021993077559699,108.79021510463792,-136.65971089685806,266.59904025581,5.8398192131770159,-107.35427343261283,160.38270295058135,120.23403630820913,55.332648206015286,47.942730572352183,-147.70953153594499,-204.77630546022124,0.28970842776600136,2.3320071750164431,-203.41315922287282,-175.6834608315657,-208.82705085490778,-16.335637339176742,25.364028741278766,10.305374128374446,138.85255597496405,166.84814157938632,-49.853468063308405,3.5989920228469217,-59.706854238572319,-196.59671013158959,149.04010714880528,-252.81523128922603,-39.290600041443952,82.396380537983646,-14.136394265293674,175.82774179856906,22.347923986045956,261.75912538778294,61.813730832017548,-82.142713394785346,80.694009904252582,26.046550156828232,-81.963465488689323,187.24699388539727,-62.972353708929582,106.57182004339498,120.35550108412008,-221.01102463732713,81.333920549203697,-82.489029777683669,29.449141860403159,93.022776655997035,-151.44283417609762,114.92859815018409,194.53729272756135,47.117502591640957,-98.226036994315479,-9.1393659399984131,409.97232856210286,50.294475186934463,204.87181109924597,-193.46216297406465,-108.8999293934489,-171.54729675172334,-176.39575728627813,39.292130476349328,-138.89414579501729,-144.62458606891266,15.407373703019474,78.027866672912126,-40.30570796879627,1.4452143259151455,282.64062873441458,70.764348712562793,-200.38902160392445,-30.42754680274335,-36.699575313663949,32.391097215942409,-46.58614472865947,147.51983713535756,137.89704359518581,106.67956249007045,-194.02947354757674,-80.837289489126334,-281.37410074895541,-71.553163050813765,49.074013430103079,223.49737531984385,-214.88937345333522,9.9566888156592697,-65.775630658213146,291.77878352873046,63.034177138802988,-223.01131119416351,207.9487542200084,-163.15639180036499,-36.079097705540335,77.569649278354547,342.79354161833061,-157.23716750221925,-86.693584893641585,3.1722718606930727,-156.87593343197324,-122.96820604951068,-33.656337600081308,0.7895033092660988,-88.464313389062596,-58.043433797735553,33.500626464289489,148.20469674849568,-186.44523194802321,-56.807082005387457,-101.46089513966973,13.722668866505767,-20.30674060943273,-81.591566785056955,-33.807322821688103,-296.40511651759272,102.9854181417325,-16.431480260135153,-238.68644513551664,-110.64598662639582,-56.637227774965794,-156.80014419850238,-46.312609084242581,9.892924126348003,73.161600781195574,113.94899975000165,-8.6230548760151962,36.80305477369955,-37.864828277085955,58.919772297899385,15.271273490610753,-78.356867826608422,113.16001728644839,-93.010147141750778,103.37163738486693,126.76166164072239,-66.750332159607382,-98.035421051428884,118.05586997378327,84.691749099001697,-350.15677154571483,-41.163228257230273,-61.830358282069881,-58.482161378499505,-232.68404671317035,-78.916917039666217,24.492037415177869,29.883464613558047,42.87787802650363,-57.224697136078916,-142.82412274526729,208.34872865159406,123.16975246086513,-130.93758022962638,-232.9021737981418,-166.98180109517193,-21.363256014732258,-7.0731728276892483,181.91647961912443,-26.119734320269345,65.250037918561034,43.557856868616504,235.81450172620407,-12.979752469342973,30.472879957343793,166.29826682316758,8.332304590963858,109.19783635631146,127.6756643992416,117.16770584888424,109.60500742704062,-91.012585378089298,8.6750784904956149,15.073480467220122,-44.802876044187087,156.55494492816226,35.479658175131057,-219.16559778210666,171.49908544469781,-272.47245834071043,-85.149427967986526,59.935819949287904,-94.251484963161332,-108.9572558576441,-169.07861837519692,-31.285442673585536,-177.85623262426446,97.754364628739069,-240.32238891346603,48.969185815075008,44.526285976816709,-114.22164104125122,-21.284517658972053,171.89036786943674,-64.05741696722211,43.043350794640915,16.253555411191563,49.632628843944204,-124.28420276460352,-43.646079701886258,-86.202415725596538,-28.898371123112288,-92.773833445907968,-180.12265590163739,-126.68726272829112,127.81027882100176,43.359985723423272,-155.34151264659226,-51.812838045918504,104.39599835552767,-109.81815772619066,-109.67065469344686,-233.84533028497066,130.83105502383268,171.82973313595195,18.846169365569949,-99.512097083770726,55.67892567190092,-29.778153620930468,111.95963589205958,-68.762812409846319,-137.89757961114316,41.687834097323801,-354.62974872920842,-149.39079097489639,202.03675272156602,-91.893064469666115,-35.707991818069544,-55.524643937346042,-135.9586980035879,77.01117759336276,-125.17511109415202,53.630739912498569,30.677905676393998,-96.913734434274119,-94.039848920877319,-169.8946055704086,210.63063503040746,4.7240711498695589,-24.716124745427202,-240.24948148069615,-24.531291799204567,-218.17705538928124,8.9491797508398605,-68.088727481181735,255.68565607211849,-37.734603027212231,-188.18834802500101,197.98304284413837,-59.348983357665915,-274.36756807008828,-89.33324376467732,-64.195642875524854,-68.002452701087904,167.02042164455756,-39.936986102269444,274.78474922308413,-21.383927957688485,212.41122745605418,114.12516899623731,-14.724149644996444,-148.80749825513965,-30.561522302870372,142.56146860762536,144.13157293642843,-41.751833344717042,117.35999635137635,6.0178363835667135,212.21491667099497,-268.79264858907072,-131.55702144293042,-153.90752567796,-8.6319343255074603,69.771252464301483,80.19462783298718,-156.36635813453782,-38.65305453329411,144.08773646283484,-68.705758043522749,-219.95174163250124,127.48159629503824,-143.10146170235774,11.428524879084456,143.11701608381671,-36.602515263920679,40.101074690312501,93.249496870841369,103.54742790536187,5.2577947045521523,-0.57747092052132132,93.57694198744116,91.953442027740763,-245.90755698211606,-138.80626118501434,-148.90066992093864,128.13368373380064,-123.86021690644381,186.59425730565175,58.753150345720329,23.013474647001427,186.47931678482595,-173.08033243898095,119.06646923021647,-30.787726115520229,-179.75645865745975,-140.28060091896717,-117.53517196057689,194.66288499022147,45.334321358534197,-7.0702273027668383,-142.02508301680967,141.26660698994905,96.093483728816238,37.978099273736433,6.3445811874571447,252.51149477356029,-110.02400091866132,102.34580047414082,-75.856484932845632,-70.790214549748455,86.343719188772326,201.01498002848632,150.6720884366548,113.09726358194838,192.54805129847816,5.3052532530883347,4.4240896723229923,1.2760544603644073,-21.020086287330116,-1.8125946987811261,-153.68393369291414,-206.85165655112095,106.65040324479989,-43.485096674803714,-156.6834056534843,-44.193089701891068,244.27482111118985,130.66178352882233,30.867198196103061,69.487930536097238,176.49452582044998,111.16811317270123,116.88176735661146,-305.14477293956611,-21.501089945598892,-23.47971347698973,-139.66514703605441,-205.29899265306216,195.64242834268023,109.37827193816965,88.152256535802465,-40.219423157030462,-100.92289404071352,120.78138029760774,-57.940388711101527,-233.07025308221415,-175.76421051952093,-177.66640162499164,-87.250554869863123,-52.235711879932182,-264.6545139570851,53.804450525497231,-16.639306574595935,112.75732054699877,-210.18389488722684,32.387358294754684,52.260192264091742,148.539074933732,104.39300963339699,-153.15319660049286,102.27813849108128,202.56855411764857,95.157396994618523,101.17696727548108,-125.14839691460466,-45.754684620289183,1.6424217363504106,90.313499512425167,-313.18746574452803,0.65046098325177582,85.83787038880746,-3.1141857426657538,21.103206222790387,80.862503379362323,-129.31301446744635,7.0524120956154661,246.4799047475833,-153.02454316375176,-218.89025131402542,-167.96240786279154,226.59421067744432,130.58798628543281,-71.870040845526219,-113.06425973782855,-83.431238752627436,-166.47851895553941,-2.049625922746749,-160.35569707311055,51.794584579611524,77.279551430967146,79.354553272168218,-85.097779754547446,126.09369242246174,102.85982834562364,258.52970143966638,68.017363649447333,-168.41386958840189,-78.515636949788941,167.85292723118351,103.53598536224749,125.27301596639012,-13.809421117566252,207.60799236627753,-91.347417407620839,-7.2191568660607572,3.9576437115251508,-219.39885666838171,40.000571322102104,78.79540072441236,134.57959359204833,-46.847521657498085,156.6314817016696,-30.299142433924516,-153.05783276407453,173.50413445749336,-141.78236400306304,-19.156075196616882,31.738947917685223,-167.85116695177604,-91.3149629166615,100.79521814321424,121.27952150928424,68.193368801170664,-200.45511307475437,-121.12695311398882,138.24816058788525,-238.51545304427623,239.66687664782211,283.32746561781664,-31.407806038586902,-0.64733066022699859,-40.056738062347094,90.93983554807717,139.6829302736316,48.420785007004376,-29.851260961391198,-118.25897978706436,-105.59653148872214,7.0607799879375222,104.31018834555738,54.049998126478584,-49.248869219959929,-60.17321327895236,72.306664656576032,1.9776553908382226,-27.505726377922116,104.53339585044225,-133.11049943849966,-114.57212551877348,162.07544381365364,98.346820795840614,209.22566035881493,103.73237511753375,58.891820106567422,-19.202770450250974,-53.145639782408402,-89.699207040513073,-146.36386098527311,56.279315687735398,-37.931477874733368,101.82189322635551,63.911530620091085,-12.016769678199481,202.85221930442196,-351.28033977920296,40.023623196342548,-141.8883922718762,-325.37881988035423,36.000215436685124,40.762069388131444,-90.402430327852386,235.31924021729918,71.270722252967531,-110.37420241525669,-51.236950148909671,-179.07643211465407,-63.368085969510972,247.38441015049867,-94.410511428069142,-111.75289960680144,170.43058265774334,39.898352224492633,126.3593552008968,-222.34789582022154,72.755629544955525,-147.55840733937671,-108.10353840867378,-35.189020739341274,39.79503389232616,203.8253604814374,19.052352964313457,-66.538267973518643,141.98943432061819,-253.04654370727422,-86.563808539023796,-49.616706316470356,44.646431448998484,-284.20873740220441,-17.152247155625489,-215.74332257640873,-96.701383175851618,-39.337222891880351,-80.920629904049903,-10.630149280324725,-144.65526585305182,186.89716803898745,189.81650565101302,135.29884243442964,-39.082325871535701,136.36044459882578,-90.667792543427936,-97.459062433328867,6.7768647398522752,-70.127843529995729,58.552443961175321,-234.1983275041639,8.4460107640012865,15.977177334198814,70.416886347042578,-105.54789116416748,339.27752420639774,188.88309084271222,120.2208672235594,132.12543442442825,15.119535391517644,-24.827371008626358,-98.135555871289313,127.07565722765266,74.965410668499516,-58.455162914318642,103.60025748624022,-117.00699056621697,2.3858597588371069,228.53678854362769,159.05707707971811,-49.346339422616452,186.11461097396079,-104.89334342384147,-116.79232718369356,-217.56040646088925,30.765155766724487,7.2747844614443107,-92.841814255756091,-13.815733079700962,236.51507060974842,235.40315332079587,-120.58995540859976,-95.274129108040469,21.192741529475143,-28.991228782929866,-182.53375646636715,-58.729008006295629,107.74318138857743,-69.370464548892627,-79.082717005663056,-158.38014457961594,-311.88133742024559,-81.977463515891003,-98.722716487147821,-188.14646999674716,-4.2624923276742379,-182.40596361076476,-135.85172198483468,-69.141609420024039,-81.781206368303188,-210.06854437880753,101.11877908560342,248.07275035159165,-108.28013836817505,168.85977598975771,310.04146188320698,-53.737591261613439,-42.095909771531943,-18.872707454785683,-136.80759857327695,-79.093853018608655,153.28537796208056,8.0659991576207375,88.669234201853143,-50.670130890828503,2.7134868919564923,11.923761056109271,-22.411173128245224,135.55299719820795,-0.28403610242247623,-27.299688161573371,-302.32508255940979,-116.53236946831403,-276.82014688062071,9.4848359462685465,22.003913973796251,44.796563729424612,184.09414372019842,115.05062443635737,-35.24283546423095,-14.979448102019242,141.98549828079604,-53.165049213884153,-100.70511612198518,-159.3755421676762,85.56805676322864,-82.635864599110619,174.19771423461938,15.130126695984657,110.39618841055406,229.04926390577097,46.964159390347035,45.524674995334479,-26.702306490023158,228.8600519336438,-98.097856687535312,1.8883850817567449,-18.129604468345374,119.58607662731433,-166.53975026793228,-154.80920330097723,-22.101488769239594,170.5476345110693,115.56603979811612,152.58961241466676,43.854659862665102,96.348545864290145,-127.00350293944729,-31.470210467556754,-202.67367278228463,-114.78956286814778,241.27707968214122,3.6722461862298985,58.779731347072335,-58.992180435993419,63.384949089029334,-76.127832729029393,68.400506545740541,77.098200220573958,-67.631665842218951,-36.350632864308352,-64.398129550752628,-84.171518835341004,294.5080919045941,9.7628445472053755,46.679192982597684,83.47835995660769,-7.6662730712621396,24.926837776281957,-45.223372757976207,-34.227339895936666,-44.991263860461068,-27.954351478077715,242.58753967974565,35.088035281788649,51.262125153561769,9.836934475182801,23.301080277126022,138.57631227221179,14.720046544567779,-175.93035770534817,-11.866024106354013,62.99897245955686,62.024693313264834,-161.37990101858503,5.819642340354072,148.38048121086359,-1.3843649888245295,-47.702919711638515,-82.382713191917333,22.864195918708589,-44.693702439804888,-28.954989428861246,-135.31168685422796,116.69867834757171,-153.38278736820018,10.912997225449416,48.735246749661961,-104.45963297181618,-102.56523481841541,94.458653818948605,71.204927023713225,-23.198742420444852,37.066920015706714,50.344319958056587,-309.48772894746986,58.352937463295916,-68.965048642415695,204.91476048261077,-11.851861962116047,98.199494281869633,-143.9181211119832,-270.21928212512836,-99.185637415507756,-124.90735536754772,159.04809688561716,24.802806277757675,63.985541313852664,4.2602857887116556,71.318598947888887,-46.956405782253569,137.58556756053846,52.665230870224143,-36.072878370195447,-91.309446821605803,-9.3326031118645396,-171.20828618920822,125.57319548067628,-6.0536679778352607,-30.470045982202194,-15.420674888306579,100.04588445319271,232.53555890246349,86.212534843573593,3.9264836263231189,223.47404612279701,-120.35310348458458,-166.02605056093103,73.5337407378032,-3.1170561257749796,-71.637669671326876,-136.39291330397828,-222.45835435316621,193.07599871376686,-14.817603667886544,0.14650270237039109,15.232102524630079,-29.210490760233817,53.87238618246964,110.17677390378041,-162.24077991020346,108.34640427249815,-101.02063399608872,16.813296621851098,43.779972087515063,97.642361622500971,-142.20296308874106,284.00815720130424,-37.842059560473608,-167.118062563905,66.131670559769276,-197.55529510801813,165.58629519585364,-1.7086173983393991,94.430683370441216,212.38662949553196,-225.17192658250809,23.622627192149373,21.244670300592531,-45.581266245288916,65.489827960834006,5.7259044438857707,-226.69660002601799,96.991381661974742,-94.625379812998062,-88.598911907618557,208.72895807970821,-45.649472944328245,49.533720168507081,15.577857765683696,-114.84537323056394,72.112548617293328,108.57517020025966,88.442364426166691,-105.00299550500851,-31.209636330771559,44.23731908179046,4.1590144047412636,-146.08716186863006,64.622501553469704,-243.97076818515413,67.164909590617924,79.766011691060328,101.05748653611488,144.98141404560624,-56.968452510893002,51.445724603836709,-17.048646675559311,64.226936324914931,146.78976921613992,-89.986287217674757,0.68504129993548801,138.28614614041533,-71.826967218235879,270.35514999942166,-149.89645174000293,32.378228360880613,66.715275288598804,67.129804649416855,275.7344187153775,26.859882918951651,285.30882705876894,144.2330357749085,-51.894997876002904,101.37938637332228,62.948254776315665,179.78059717466834,2.223558772248559,-74.011412367565043,112.02695812083954,45.468864154804635,-87.413609347357692,-4.8282862639345439,229.5995580965907,-182.67214868298069,55.625848334492538,-186.20632559682369,101.49312673872201,-41.234540725085296,-22.834201116567272,-108.93383856036752,-51.170232388598698,124.09403469793615,-112.01690842259552,-203.76386734352656,8.2413957436930616,8.2308430757512951,-215.7907510798758,-9.3557680153953697,-82.516248343921163,26.742600850627483,-64.062969732695763,0.91775398096826422,-95.704534528804004,-21.033242253312622,-10.084088784452764,-0.52174448616167979,62.608538036066918,-17.44753833386758,-12.415782617315649,55.414678224022367,144.73440059337483,-108.42459283244183,117.21735494037713,67.172550533646046,236.14371245310534,58.158262257555691,147.54272255399866,132.08232437167104,-56.695239719883006,-22.803566180943015,103.62759605175211,-128.9478288179449,-144.44354709705857,-103.76720363975747,-64.449080668065676,-216.65119836288648,2.5931938300733748,-63.211343438731106,-114.95551824097957,-17.104771860446021,-105.49125739670632,-41.518613600494845,-43.850201605306026,42.516660428632271,234.37252162298694,191.32614325244009,-191.24004459424586,121.6906685294699,-321.03911436616357,56.28137634688418,86.418190270138354,5.2083209105052504,196.26728401758251,-57.299158024677261,-30.454064644092377,-5.5453494122538416,-78.493728587847357,-53.003621307720039,3.5936305414160898,0.53701502754971386,-195.42830827399615,62.508752546097199,65.511434507970463,160.14009230343012,95.313744448220845,-47.270346065602538,164.41020208870097,23.427665348992257,212.97347301406793,-10.87997113237698,-102.56267156737727,-73.655630745316401,-210.63930474113027,107.71069470303863,151.39385661943055,36.656647427926075,91.190589548053566,80.844672222747946,-122.67617883160715,52.510593127340528,-69.503137281618038,-115.83076879038968,-68.288847597941853,37.531433677660914,213.99920636934962,-53.169616970505302,111.59708751698844,234.48913860720126,-26.059591026785498,202.05649494787326,-38.23865319565332,71.732608742394149,227.86716480715384,20.089234981000786,-177.67579062823646,-74.361719270960364,-11.838315335330385,-108.08387730254036,-88.388425538111477,-57.686013059327095,-158.09789172489374,-133.47765082720764,-127.08479235032034,-186.87875978017453,-72.220127914416054,69.18665146212669,-105.2080595101542,212.87947143695214,117.77408708218698,13.13768295961377,31.238034512234524,286.95512968637763,68.959196235651632,38.155554627756871,70.167311433286955,-92.366073382259344,175.52308316038693,-22.931537769066352,162.77901867985511,94.893191965418865,102.67289845094565,-42.122593546282523,192.04977729683429,116.52568261322457,-241.62813981343447,-117.09293517482202,81.855084124726375,-186.44530002614349,-22.97712522404413,-45.764485347993315,-12.43690242231574,22.044340091733105,-61.657205780373914,-22.057516637472844,256.68166474393541,154.78018468211073,132.294755503006,58.800492400748979,-60.278988283970477,39.234730072002868,106.68799125442661,14.795557295236748,-24.781340260847642,59.777210971382935,75.597936906368986,-127.81803238946938,-199.45439639508623,93.365664518603893,353.40431877847692,-170.52276809915813,40.859872987724032,11.982249731676617,10.23844922448648,-109.58440881983938,102.95043854979536,-35.950272709559307,20.468991058602079,-192.70004091168158,104.75669133921569,-114.58926825759488,148.43765592130256,28.5365381035827,66.584642484168086,2.5483037676374636,123.55538333779288,35.366411774747384,-18.592712293237319,186.03962793207234,-74.848170096434018,2.3691752642569881,56.472805764594469,-167.47321978480238,57.446422646283743,100.52936589548131,137.21649697757982,-180.64432451916798,-12.082909749366038,-108.49736360938843,-1.2677342971168031,-189.73764334888969,-85.493738999768524,-155.51236403584792,-121.3717861597838,-52.966769397415376,117.34364901296348,-121.24941856962261,224.18603632727692,-84.303480815905672,-64.996944297186033,-96.813141271350418,50.034095217823776,-59.714590903963661,112.6765336185105,10.8255319341974,30.793096104011511,14.558480573556988,254.06705787407884,234.00669214630403,-78.131843685088583,-194.28759575795203,-155.64990323704768,159.8371292661447,8.4506447375519329,-290.87335953437196,-197.3149548372476,149.73796739817172,-33.139891013571983,13.217318709054853,-67.342544568459161,-3.8436496883712863,-79.445482730487441,-45.248553977631907,-27.024291299603753,-14.693407263410734,-264.06612802740233,159.2003395650091,144.97762674602501,-152.56668886292178,7.2859582044177102,-256.47931632469977,-101.61554795403428,21.27340018581495,-85.766713720910019,-3.4810539569782222,-16.485621319854332,-79.68176243334463,-103.05523248607729,5.1346430810857413,22.694164996062796,-28.091974275559117,-153.09504437785216,4.29606558170547,109.82586796225219,-47.919345579597525,-74.369905499124428,-207.07223717347659,-44.368225417282567,-13.713306033600176,117.25380756060791,-38.340691481494119,-137.22180152657205,-168.56500306076731,12.396424976930035,115.28867918520928,262.67346374213236,-171.67575760192327,-7.7367912114542179,235.83000383163781,12.116726638017397,224.0050232530144,10.449665484983882,-174.26434260609054,186.03824347853549,164.00335644084026,-82.838130697742741,-351.14794866089795,36.76302605413008,48.541431965928339,-93.206197934416736,-66.054461177549683,162.68615603141512,-81.504839942913264,-124.02879206581403,-24.754554840431723,163.03372308576789,99.937402926654329,-35.572485877594787,85.197676507806932,-220.22205045988042,51.537928662731069,-142.99956666281798,-1.213517848161743,-74.401606173894777,187.29426758276881,12.308094952250912,-61.90843622327138,46.384030068670867,103.26835882472515,-76.025955375801288,-40.789898040240871,40.629365426816122,-183.85389973980116,75.508610747247232,72.77464212762797,148.60868842252299,77.48484922501963,-255.76327952002833,99.38973603522777,-268.38009485157903,-92.579234855167286,181.79269348471348,88.856134507701725,48.550810900485942,45.825470260852576,-33.401396665285532,-25.606774269372433,-160.10156293969834,64.763910506721032,-26.875299705769407,25.980600737639644,-177.9140725283788,77.352194317935769,106.46828872626082,161.84435702802162,25.415150676802455,-126.49743815602484,152.44289199971971,-6.2786747681601005,-95.9441022584368,-11.933440189851826,78.287148696878987,205.10851687984973,-133.06826256038707,-234.69788826981198,-161.5218852689145,-158.83903890608013,-56.32534049807829,68.652893769929847,-105.159214444094,215.68121312743352,0.07711846233383568,63.148492210499001,-21.211434178656248,83.95744783671816,87.722437253195579,149.66887328688171,-145.58725936606928,50.183224553686799,-82.517992010997048,-244.50194122130708,-118.74350461194642,107.86593978461548,-433.82820695977648,-230.98004809181944,257.64832887188561,59.719377483638652,213.29012333342607,-226.21531769622533,178.11001007957583,6.7377856801927294,-79.064146542913676,-104.78064240809837,-95.485036528390452,-47.65670441997203,4.6911722860438925,49.137197109341102,188.70335653219774,18.871991999873323,-280.95751303975379,78.096365472242198,32.378755115731146,-67.818626669407223,-156.60113362942587,-69.67919805882795,-227.47067278542994,6.6795301913771397,212.65230976647518,-31.628081202598963,126.18870944278243,7.7049260626352805,6.3210346682785126,39.042698077868316,-56.189605404222704,156.63194328707817,-121.86568603802522,-52.119341036991401,-190.7130965388057,-41.960894890180271,-123.03241602556653,-37.742129163233827,-37.508596249993332,83.247605115317498,-188.59606944492299,-58.971132090820049,-153.27171500699853,-153.93838623844229,119.90618182042505,-131.35772417619606,-60.188569186859802,121.36394928156467,-81.216699572339294,-11.513876513218619,116.62989894668408,158.83629868154577,-101.82342955957381,11.011374434283297,177.69987430611741,-30.410318189386473,-143.34067626200925,170.45337232893303,77.653789604001062,149.70450462993847,-164.87163654908221,116.95392845485013,126.20468138194411,60.080409662080875,-230.45302893417073,12.078198299397954,-12.039931469217812,207.75745795842164,68.866885722095418,93.922789817792648,-0.086323064806840932,-142.38758865340796,-19.577891695744682,-98.028048121580895,-92.677455383042769,-54.825252103107189,72.013933611727751,-118.31718815958152,-45.08617341547027,153.30625169213141,-48.382525000879866,256.62804349683728,-128.34499538475586,157.43314049153815,38.597550189537976,-109.60820223574555,-272.45411709882319]} +{"lengths":[858,464,488,372,141,422,950,550,890,992],"offsets":[0,858,1322,1810,2182,2323,2745,3695,4245,5135],"input":[-1.3836292177438736,5.343804806470871,-6.6724975593388081,-4.666453767567873,-9.0884297713637352,-9.2391601763665676,-2.565078241750598,8.7300490774214268,5.9349908027797937,9.3905470240861177,6.9239855650812387,-8.5744752269238234,8.7948722392320633,-4.5821281336247921,8.1725005619227886,-4.7829135414212942,-6.4278498385101557,7.1277921088039875,-3.1978932861238718,-6.9924066495150328,-1.3785348646342754,-9.0354024339467287,1.9913002010434866,7.782572777941823,1.7008180357515812,5.6488184444606304,-0.30828148126602173,-1.2867797911167145,-6.9078811071813107,-0.757744200527668,4.5932940579950809,-0.50665306858718395,4.6819505468010902,9.542954983189702,8.4445554111152887,7.6429389603435993,-5.1247554272413254,8.2355725020170212,-4.7328158840537071,-4.4365220703184605,-4.6263923030346632,4.2246049456298351,2.9354325216263533,-4.1855077911168337,-5.8293997962027788,5.2776578534394503,1.5956623200327158,-1.7032964620739222,-7.3035731445997953,8.8461798056960106,-2.2558581735938787,5.7917370088398457,1.7240311577916145,-4.2082392424345016,-7.8769022691994905,-7.0964218210428953,-9.5615235436707735,-0.52619504742324352,-3.7600878998637199,4.2027158197015524,-4.9551071226596832,-0.4853710625320673,2.3686264827847481,9.5053929556161165,-2.8604423068463802,4.5462047029286623,8.0625559575855732,7.3781204968690872,4.0713268797844648,6.7909786570817232,-4.0215790178626776,9.3214935623109341,6.3424529694020748,-2.3928153607994318,3.9522905740886927,6.1477878969162703,5.8713098429143429,-0.89534592814743519,-8.0789431184530258,-2.7969768084585667,-8.7891633901745081,0.53091080859303474,3.0180424358695745,4.2393215373158455,-9.7228108905255795,8.7173650972545147,-7.2446639556437731,-1.067080944776535,5.5706310458481312,5.5961094237864017,-6.1887923628091812,4.9667880870401859,-3.1925039831548929,3.5856083873659372,3.3202727790921926,3.8247024454176426,1.7741083260625601,-2.5612717214971781,-7.2937649860978127,-6.3081001676619053,-0.23948900401592255,-5.0916141085326672,5.2417162992060184,-2.4740399606525898,-1.1895597912371159,7.06865762360394,2.9288134910166264,4.5684446953237057,1.8501083180308342,-5.229406114667654,9.3714681081473827,6.2646452337503433,9.8925709258764982,4.4397068861871958,-1.8462508451193571,-9.9378901068121195,-6.1190247070044279,-2.4482202529907227,-7.2377329133450985,-4.5770529750734568,-6.529309619218111,1.8932569585740566,-0.030204169452190399,-7.6413979567587376,-8.9754407852888107,9.7667296603322029,9.4255558960139751,-4.6819036640226841,-8.7548396084457636,-2.5892894063144922,1.8130060657858849,-8.8069598842412233,1.4252348896116018,-6.0771208815276623,1.8293748609721661,6.3033809326589108,0.92346278950572014,0.63918870873749256,2.8447110112756491,-8.9419329632073641,-7.0673043467104435,-0.18413221463561058,5.2899454347789288,8.1130419857800007,-4.1032032389193773,-2.5367903709411621,4.1642939951270819,9.2892869468778372,5.045867133885622,5.889036962762475,-2.9556425008922815,4.5165426284074783,9.5320692472159863,5.4879908170551062,-3.3382165431976318,-5.4053893871605396,-8.3793940488249063,7.5242340750992298,-0.19776266068220139,-3.796961372718215,4.4702572654932737,-8.3860256057232618,-3.9323427621275187,9.1152444016188383,-0.087192393839359283,-5.4424856789410114,8.1432296987622976,3.2616890873759985,-0.79140468500554562,-1.1384688224643469,5.7545701880007982,-2.9387269727885723,8.8158235978335142,7.5473560392856598,8.4130895975977182,-1.2029890716075897,1.3627423346042633,3.6105066165328026,1.7848105821758509,-2.6884531415998936,-4.8318936489522457,-9.6365174930542707,-0.94950292259454727,1.7044507805258036,6.7043598927557468,0.1768482755869627,-7.7109525632113218,2.0202880166471004,-5.0192101392894983,2.1352279372513294,6.776036350056529,4.8430666886270046,-2.5780480820685625,-9.254057239741087,7.0599775016307831,-2.9579965770244598,4.9515850562602282,1.2901575770229101,3.6784853786230087,4.3038655631244183,-4.9313686229288578,-1.5124059002846479,0.99410033784806728,7.844464248046279,1.9107565656304359,-5.9143082331866026,-1.7784431949257851,9.7052872180938721,-3.2375712785869837,6.1395737063139677,7.8154083248227835,-6.4321452751755714,-5.0656119547784328,2.2599146515130997,2.3856439255177975,-4.4824468903243542,3.5151574946939945,-0.74788090772926807,-9.634343795478344,-4.4161677453666925,-2.5312526803463697,-2.7637401316314936,9.8196642939001322,-0.90205730870366096,-0.87711618281900883,-1.6916132438927889,9.0562749095261097,8.8125535380095243,-7.4125394411385059,-2.5503669679164886,-4.0175714716315269,-3.3236768934875727,-1.0374965984374285,2.7947402000427246,-8.8013577461242676,-4.4196297321468592,-0.71686452254652977,-8.3419577870517969,-3.2845140062272549,-2.8268501069396734,9.1303087957203388,-6.8999206088483334,-6.965648652985692,8.3431130088865757,2.7004839107394218,7.0331871882081032,6.7772055137902498,4.4932015705853701,-2.7610897459089756,-5.6353028398007154,7.4652056209743023,7.71100839599967,-1.0817498248070478,-0.9692357387393713,-9.9449903145432472,-5.452216099947691,4.6040437649935484,0.16367253847420216,-9.1555663198232651,2.396869333460927,4.1829844936728477,3.42049615457654,8.2789749931544065,4.7328529972583055,5.0604402180761099,-9.1811369266360998,-7.3683195654302835,0.6530844047665596,-3.6103257164359093,1.2557338643819094,5.1191467512398958,-2.500433586537838,-4.7872302494943142,1.0212375409901142,3.9394376706331968,-9.8709605727344751,-1.2343449424952269,-5.6353799160569906,6.1697849817574024,-4.4236850552260876,-8.8746795430779457,3.2609282899647951,6.421873215585947,-7.5767371244728565,-2.2208320535719395,-5.5242635030299425,-6.2966603972017765,-7.9712667874991894,6.919118370860815,9.6225914638489485,6.8948864750564098,2.3571184929460287,-3.9093923475593328,-5.1571377646178007,3.9856279641389847,6.4493027329444885,-6.5688386652618647,-2.4714202061295509,2.8406544961035252,2.8802165016531944,7.7988440822809935,-4.8273698054254055,6.3957206904888153,-7.1222266368567944,-3.2630631327629089,-2.3020196240395308,9.9562390055507421,-5.4908775258809328,-5.1785421930253506,4.2413995508104563,5.202361922711134,-3.9030460175126791,1.5056313760578632,5.1466274447739124,-0.63241714611649513,-9.0349014662206173,-9.5889352168887854,-1.2341870367527008,-2.9814581014215946,-9.3662556633353233,1.3410712778568268,-0.61494430527091026,4.6311347559094429,-4.5180429238826036,5.2526212017983198,0.80465799197554588,3.8869556877762079,8.0643531307578087,-2.4167899787425995,1.0108866170048714,9.9714581668376923,-9.702433655038476,-8.8024379033595324,-2.5738323945552111,1.5990028250962496,-5.5594278313219547,2.6964737195521593,-0.3660961240530014,7.0225184317678213,7.467415938153863,4.8598092515021563,-1.1857937090098858,-9.6347983460873365,7.9442001599818468,-1.8277707509696484,0.65705240704119205,3.079888541251421,3.6868151742964983,4.3027415126562119,-3.8232848513871431,2.0515510719269514,0.41896019130945206,1.4640168752521276,5.7317120768129826,-7.1150018833577633,-1.8366310186684132,-8.257466871291399,-3.2456921599805355,9.6519200596958399,-0.17940289340913296,4.7756473254412413,4.3047143239527941,9.3337546195834875,-7.5859573483467102,2.8148652240633965,9.4399211183190346,-3.245612271130085,-9.0053880214691162,6.4435309451073408,-3.5752768907696009,-9.6786528825759888,-9.118994940072298,-2.947950903326273,-6.2107770144939423,-4.5292529463768005,-3.1542269419878721,6.9078395795077085,0.059945108368992805,7.497515082359314,-9.2638738453388214,2.0722871460020542,8.9301573298871517,9.1543915588408709,-2.1409206558018923,-2.4534005578607321,5.6968830898404121,7.514213789254427,-8.6087069287896156,-6.5373412799090147,6.9051356613636017,-5.3848071582615376,-2.4538727849721909,-2.2398379724472761,-4.9567421898245811,-7.9659449122846127,-3.6361248511821032,7.6496759802103043,8.1043375190347433,9.600824099034071,1.0507858637720346,0.55809889920055866,-0.031718509271740913,6.9070926774293184,7.5067618675529957,6.1468449700623751,-9.9764617905020714,5.6066872086375952,-8.4079622849822044,7.3778887558728456,0.17645595595240593,5.6953313294798136,1.4337773993611336,-2.5031594559550285,9.3990824278444052,-9.6214833948761225,-8.2714147213846445,2.3327912110835314,7.221981193870306,-0.1619398407638073,-1.7228267248719931,4.4512998498976231,-7.0033096708357334,-4.6256142854690552,-2.6992538198828697,-6.3588936347514391,6.0747092217206955,-2.3619847372174263,2.1225813589990139,-5.7750044297426939,-0.4994176235049963,6.2880760990083218,3.695123502984643,3.9408218394964933,-6.6072344779968262,-7.7898451406508684,-3.9272616244852543,-5.4860751982778311,-4.4658221304416656,2.9274969734251499,2.4417335260659456,-1.7845300398766994,7.4036840815097094,-6.281505860388279,6.7310335487127304,8.4809841495007277,-0.099254706874489784,-8.1737809535115957,3.2635286170989275,-9.8744286131113768,0.47830041497945786,-1.2048434372991323,-9.803581852465868,-8.8001928571611643,-4.8413409199565649,-8.4168013371527195,-1.1800611391663551,6.7125030513852835,-2.9610845725983381,-6.9483565725386143,-1.0288907773792744,7.4327747896313667,2.6460257638245821,-8.2448884285986423,8.1601942703127861,8.3852432668209076,-9.2162706516683102,2.139163538813591,-7.078308155760169,-5.1251509971916676,1.5872283466160297,-3.4530877415090799,3.9543796889483929,1.2595413625240326,9.1117680538445711,1.4858305361121893,-7.6460896711796522,-7.8290850948542356,-3.4331722278147936,-1.3255814928561449,0.95191745087504387,-1.1233174335211515,0.40396427735686302,9.4276909530162811,-8.7980006076395512,-7.9962031915783882,7.8129748161882162,-7.3321249149739742,8.9765749033540487,9.2945491801947355,-6.5117774624377489,-3.4437838941812515,0.32414180226624012,7.8513514809310436,-2.3355202842503786,6.9106425810605288,7.1699922252446413,6.0594640579074621,1.4125469326972961,0.67638715729117393,8.0390361417084932,-7.9194251261651516,-1.7780791781842709,-4.1766833979636431,2.4821759946644306,-2.067959988489747,3.7965355254709721,8.372684558853507,-0.29047556221485138,-2.0226981583982706,4.5121142268180847,-4.8960762936621904,-8.3542276360094547,-9.5038655307143927,8.5320291575044394,-2.1858047880232334,3.1789888441562653,9.2656068690121174,7.0547982584685087,9.9944635480642319,-3.050991203635931,1.9908948708325624,0.97018792293965816,5.9485066961497068,-3.4478329960256815,-7.7291129250079393,-3.2009128388017416,2.257971465587616,9.7265180572867393,-6.4108567964285612,-7.2701494861394167,-9.4023921806365252,-6.0053752828389406,7.6576525811105967,2.1670689154416323,1.9273570459336042,-6.9100356474518776,3.0308974534273148,0.29360173270106316,-5.4355979338288307,3.9055618550628424,0.77820686623454094,-0.67711484618484974,-0.26914686895906925,-3.5513504408299923,-7.5468085613101721,0.78852925449609756,-7.1887352503836155,-1.0733311995863914,0.52259841002523899,3.3115596417337656,-2.6169972028583288,-3.8719306606799364,4.4614339061081409,3.3197731338441372,-4.5728352386504412,4.3581864703446627,8.0401194468140602,-9.712316207587719,5.1015013176947832,0.93276468105614185,-3.0239199288189411,-3.0221890658140182,6.0684254672378302,-7.9730463773012161,-2.9904474411159754,-0.45008798129856586,-4.6286269463598728,6.6669545602053404,-8.4945761878043413,-8.3419766463339329,-3.6014819610863924,9.8927300889045,7.114759897813201,-2.2302635107189417,-4.0387638472020626,0.49606672488152981,-2.6064727734774351,-6.9878459721803665,-4.7272308636456728,9.4309159647673368,5.4047719109803438,-1.9983715936541557,-6.6313119232654572,7.5405320338904858,-6.2779691256582737,6.1729341838508844,8.5049545485526323,2.7712423447519541,-3.729811804369092,-6.9469469599425793,2.6624681334942579,8.1020187307149172,-9.3710512015968561,0.74245967902243137,-1.4800905995070934,4.117360757663846,0.48236453905701637,7.1008899621665478,4.6577279642224312,2.4340093974024057,8.3960394468158484,-7.7648733928799629,-4.2270966432988644,-4.8132387455552816,3.8964440394192934,7.5350792706012726,2.0774382259696722,-4.4956416077911854,1.7515409272164106,-1.8515443056821823,1.0949181672185659,2.2897232696413994,3.3790890406817198,-7.6503885537385941,-0.08040430024266243,8.6450034473091364,-3.426915155723691,3.8370291888713837,8.9496856462210417,-2.6331956591457129,3.8806143868714571,1.4861087780445814,-2.9696775134652853,8.6300862021744251,5.858945744112134,-8.6987545900046825,0.031615970656275749,-8.630302669480443,-9.4969552382826805,4.6733141131699085,4.3904148787260056,9.7029793635010719,-2.0256834384053946,-5.6614868715405464,7.3901839647442102,6.8220315501093864,-2.1156056597828865,3.0157377291470766,5.5041156336665154,7.6715763658285141,-3.8158812187612057,6.4844046719372272,3.3894502557814121,6.4905537012964487,6.7361867427825928,-4.9092830717563629,9.6794528234750032,2.5637581571936607,9.0834462735801935,5.4816694092005491,-9.5821184013038874,-6.6639674454927444,-1.3008302915841341,-3.0546425748616457,0.62229865230619907,-1.0264675598591566,8.1597916688770056,1.6187209356576204,5.8428565226495266,0.8897001575678587,-6.8093665316700935,-5.0232728105038404,-6.1460871901363134,2.7126255352050066,-8.9025303162634373,-4.8270168527960777,-7.6722044590860605,-6.7403256427496672,-4.6530521847307682,-3.8480269256979227,6.211507935076952,-3.1860082875937223,-7.2412362601608038,-3.4578029345721006,4.7061298415064812,-4.0756387077271938,0.74028559029102325,1.9800000730901957,-2.138677816838026,-4.7580060735344887,-7.808036869391799,-9.6756467130035162,1.4056970831006765,5.5509649310261011,-4.9322825390845537,3.1274052616208792,2.3003347963094711,1.7270178347826004,5.988840963691473,-5.5497981049120426,4.5432855654507875,-0.99938765168190002,3.2918086182326078,5.4275506548583508,0.843976940959692,4.7205315716564655,-2.0257599651813507,-6.9476723950356245,-9.5299194753170013,-9.3566179741173983,3.3217140380293131,8.0479414109140635,1.7514344770461321,-3.6406523175537586,-8.4434513561427593,-9.0869305096566677,-4.0410686563700438,1.7591390199959278,5.8496010955423117,-5.7542631775140762,8.09880874119699,-3.3213450573384762,-1.8463264219462872,8.7918901536613703,5.2979596517980099,2.8079874906688929,-6.1541440896689892,7.300315024331212,-3.6052506696432829,6.5520453453063965,0.22624810226261616,2.5519347563385963,-9.632451981306076,7.3795530572533607,8.1483692675828934,9.642422292381525,0.19162178039550781,0.58734286576509476,-8.5283722262829542,3.6480043735355139,-7.990387175232172,5.5627615936100483,-6.6657743975520134,8.329726429656148,-2.2877533175051212,9.7300530411303043,-6.9983833096921444,-1.8282625079154968,-7.6079065818339586,-6.0859021637588739,-5.7576356641948223,-8.5825749207288027,-7.3366815969347954,-7.6075788401067257,-0.57754695415496826,-6.8315847404301167,1.5552923828363419,-0.20083123818039894,4.6294565871357918,7.2769744787365198,4.1101993340998888,0.12031864374876022,2.1955246850848198,0.18347766250371933,3.7091533932834864,-0.25881179608404636,-9.8497805465012789,-5.2616438735276461,7.551454696804285,-2.7007734496146441,8.1006894446909428,8.2876385748386383,-9.6583295613527298,-7.5449349824339151,-7.7222305536270142,-7.5288969837129116,1.8284140713512897,-9.8446102254092693,1.6359427571296692,-4.709989856928587,-0.79948400147259235,3.0724592506885529,-1.1772713717073202,-6.3998752366751432,-2.7030746266245842,9.4248074200004339,2.7384599670767784,5.2967663481831551,2.7521336264908314,-4.8900397680699825,-6.8983419612050056,-0.43331770226359367,-2.7705470751971006,-4.5846362598240376,6.0184235125780106,-8.3558987360447645,2.409956157207489,4.1332313045859337,7.2186467796564102,3.796560438349843,8.7913953140377998,-3.0188099015504122,2.8620392736047506,2.2941721323877573,-1.848874744027853,5.9622409101575613,7.383101936429739,7.7943816129118204,0.17190746963024139,9.2489216756075621,6.6267525777220726,-4.1692961007356644,6.6404805611819029,6.556922011077404,2.1883697528392076,-0.069468645378947258,-7.5594451650977135,8.4051292948424816,5.0082024559378624,-7.1412055939435959,-2.2423950396478176,-7.9333706479519606,3.8395360391587019,-8.9176815468817949,0.52625002339482307,4.6842255722731352,7.7793081104755402,6.8315519019961357,-2.1070514246821404,6.7867671325802803,5.1953286491334438,-2.1112750936299562,-4.2004369013011456,3.2570452149957418,1.1590321827679873,-0.14601688832044601,5.8942351117730141,4.4096479564905167,-7.0466824900358915,6.4074130728840828,9.3916443642228842,5.366981253027916,2.8540399018675089,7.8487312793731689,-6.3732478860765696,4.8228070884943008,-3.0811476707458496,-4.8488480783998966,5.4103866405785084,-7.6316111907362938,-4.4892641715705395,8.937111534178257,6.0337031353265047,8.4487209096550941,-2.3475270438939333,5.1130331587046385,-5.2515833731740713,-3.3617157768458128,-0.35700949840247631,-0.25856418535113335,-5.6881869584321976,-1.3581766281276941,-6.8745213095098734,-0.079624475911259651,1.7515109945088625,-2.3546233214437962,5.8458963222801685,-8.0203874222934246,1.3486090023070574,6.0715905856341124,5.2230985276401043,4.6170731820166111,-0.850915452465415,-1.3359379861503839,6.8903345707803965,5.8532632887363434,-4.2037821374833584,7.0336606726050377,-5.264942217618227,-7.8838144522160292,-3.2694818358868361,9.8188369162380695,5.1922063156962395,5.4116667993366718,-6.1159829329699278,8.6748759634792805,-1.359535651281476,-9.715623464435339,9.5164354518055916,2.7307912334799767,-3.591639269143343,-4.681146340444684,3.9734977670013905,2.5770793482661247,-7.0272952597588301,-7.7514075022190809,2.0941277965903282,-3.9940280560404062,-7.6294908672571182,-8.8529874384403229,7.840131102129817,9.0835731104016304,7.6134158670902252,-1.3193839695304632,5.1136920321732759,5.822103014215827,-7.9145162459462881,0.72547069750726223,-7.0139030553400517,-2.6686277333647013,8.3737427089363337,-2.5061471108347178,-0.81443315371870995,-8.1779426615685225,-6.6822987236082554,-9.3946217186748981,4.5927789621055126,-9.1638696845620871,2.8422181028872728,9.1597557254135609,8.01462696865201,1.8356031179428101,-9.018304105848074,9.36290068551898,2.2719730529934168,5.0511976983398199,-4.5201662089675665,9.566568760201335,5.3213058318942785,-4.8127634450793266,-8.1151808518916368,8.1554370000958443,8.429802693426609,-0.30598734505474567,-2.729232469573617,9.7899407707154751,-0.46531170606613159,-0.49376923590898514,1.2205264717340469,-6.6115017514675856,0.49008959904313087,-3.0640267860144377,2.9018617328256369,-8.4097554255276918,-2.7594244014471769,2.3541415389627218,6.0569420270621777,-0.97522550262510777,9.3850480020046234,-5.4980785958468914,-6.2069251667708158,0.20875176414847374,8.4909799322485924,7.8998660109937191,-6.9518131390213966,0.87659631855785847,-7.0455888751894236,4.7877978067845106,8.5178543534129858,-0.42173726484179497,-8.1381352338939905,2.3611385095864534,3.6550273559987545,-9.9551208596676588,4.2837119102478027,-3.6538126785308123,-9.6296383999288082,-5.3325847070664167,-4.7511351387947798,7.6717633474618196,-0.67328090779483318,4.1678556799888611,9.1505244467407465,-7.1354737505316734,-5.9073027689009905,-4.0376048907637596,-0.025352407246828079,-6.0978305339813232,-6.2377540860325098,2.0671054907143116,1.8420768715441227,-0.21392728202044964,4.5242476649582386,-0.96938137896358967,7.6072344277054071,-5.2108357567340136,1.4834740478545427,-7.2515878360718489,2.5632606446743011,0.72175336070358753,-9.4911827426403761,1.6916484199464321,-8.46491445787251,-9.817281449213624,0.95068449154496193,-1.8456649035215378,-0.08996967226266861,7.8797958325594664,-4.2713022418320179,-7.7767336368560791,-3.5622172430157661,9.8148470092564821,-1.8661603517830372,-4.5569687616080046,-8.9739337470382452,-4.9044784437865019,-9.5691648405045271,-8.9534709881991148,-0.98689047619700432,-6.6681629046797752,8.1860871147364378,3.5662797000259161,-1.5369754936546087,8.0529443733394146,5.8362239971756935,9.4168444629758596,8.9050411898642778,7.0274259988218546,9.9488954525440931,-8.9139729645103216,2.8563939686864614,7.4135323241353035,-0.76209197752177715,-8.4797939099371433,0.10376757942140102,4.0217864047735929,-5.8357852324843407,-2.0423697773367167,-6.1087854206562042,9.6434654761105776,-2.2755892761051655,-5.8289030473679304,-6.3734844699501991,0.84654192440211773,7.8302083071321249,2.3111575096845627,3.6243616137653589,-5.3542508184909821,-8.8934700191020966,7.4493976030498743,2.0256510190665722,5.116771562024951,-2.4202387407422066,3.0475436616688967,0.066423779353499413,-3.6154616251587868,-5.0634840782731771,-1.9768649060279131,-5.168412821367383,-5.514250909909606,1.9849922508001328,1.7648529913276434,1.8843173142522573,9.7211936395615339,4.1016544494777918,-3.4935572650283575,3.7830975838005543,2.5211988016963005,-6.2116418965160847,0.93467489816248417,9.0810989867895842,6.0308203008025885,-0.003078952431678772,8.2521247118711472,-6.5398247353732586,5.1656996551901102,-0.08577653206884861,-1.6460968926548958,-5.950409471988678,-8.5319640208035707,3.2807138375937939,-1.0424276255071163,-0.081031797453761101,-1.9013421796262264,4.1420503985136747,-4.5588415022939444,-0.44908647425472736,-7.7962980512529612,7.618669830262661,6.9839751068502665,-0.33024624921381474,9.5513651333749294,9.7939496394246817,6.9117447175085545,5.6935995165258646,-7.6728029269725084,3.2012245804071426,2.9816262144595385,-7.8081119805574417,9.0619599167257547,4.360469589009881,6.4124948717653751,-5.1985617913305759,7.7720106765627861,4.1835800744593143,-6.5695775579661131,5.1100101042538881,3.939940445125103,-1.4208296872675419,0.11551323346793652,1.4309940580278635,-9.2827772628515959,4.3625488597899675,1.3587988913059235,-2.6669449266046286,-3.3433240558952093,8.7526446580886841,5.6989152543246746,1.6688022948801517,7.5602613668888807,5.3129307273775339,-5.5731451231986284,-7.8500509541481733,4.193630451336503,2.3471066914498806,7.8222598228603601,8.720982288941741,-6.4505232404917479,6.0559248272329569,1.928696958348155,-4.3901276867836714,-4.875987870618701,9.2718986049294472,-7.1999961230903864,9.6651811245828867,2.6993147656321526,7.383365361019969,-7.7782412897795439,-8.9013399370014668,-4.820312587544322,5.0063816737383604,2.2569079603999853,-8.147813631221652,-0.30368545092642307,-4.0412978362292051,-2.0926868729293346,8.2117885537445545,-4.469634685665369,-1.1501186992973089,9.9550901632755995,-4.7994696535170078,-4.6864259615540504,-4.7610942553728819,0.28889094479382038,-4.6098103281110525,2.9178576171398163,0.43307236395776272,-1.3526973128318787,5.2163309045135975,-9.1263687517493963,-6.8796038161963224,-5.5013143923133612,-0.59095640666782856,7.7957467641681433,3.1160046439617872,-9.3098462838679552,9.4135124236345291,-7.0965440385043621,8.3843675721436739,-3.9340711012482643,0.06704878993332386,6.8890911899507046,4.9557616747915745,-8.5134147293865681,-4.9613451678305864,-5.3281962964683771,9.0048818103969097,5.048736073076725,-5.8927020244300365,1.3571075443178415,8.9065862260758877,-7.0051503740251064,4.4376871921122074,4.2087508179247379,-3.5248919390141964,-2.8587683383375406,-7.3194065503776073,2.7341287769377232,-7.4975463468581438,8.7385679315775633,9.1113726701587439,-5.1593830715864897,6.2487537227571011,2.8039455413818359,5.9128142055124044,-3.3315234165638685,7.0859899930655956,-5.7660528272390366,9.9501657206565142,-7.5645767897367477,2.1579139493405819,8.0598417110741138,1.7597793601453304,-3.388202004134655,-5.5110317468643188,-3.9105344191193581,-4.3519344832748175,-2.9628161992877722,3.9481936395168304,-2.7093914803117514,3.2574474532157183,7.9194499459117651,2.1953811775892973,-2.2284528147429228,6.3936034310609102,-2.7070058602839708,3.3525632787495852,6.531130438670516,8.7094121053814888,-0.91059843078255653,-4.4277550280094147,2.7212878502905369,-3.3150006085634232,4.7848241869360209,-1.4597744587808847,5.5707381013780832,7.3953917156904936,-5.6512982491403818,-1.3696392718702555,0.47282521612942219,6.7734894435852766,2.0372096076607704,-0.61802984215319157,-7.2274836432188749,7.6824301108717918,-1.3969881925731897,0.81951474770903587,-6.4155505783855915,-6.15854287520051,-6.630073431879282,8.3558567706495523,-3.1151120364665985,4.3120569828897715,-7.2581765614449978,-8.173446748405695,8.8805138319730759,-5.2038782648742199,-1.5819602087140083,-8.0051619745790958,-2.75729114189744,-1.7921651899814606,-0.92028378508985043,-7.2095049452036619,9.8504077922552824,-4.1960802115499973,-3.5200701002031565,-1.8181234039366245,2.8000140655785799,-0.16349964775145054,-7.9385027755051851,-2.4161317851394415,-7.9268534854054451,-6.626512985676527,8.1962761282920837,-5.1869693864136934,2.6055602077394724,-8.3494898676872253,-9.8761933017522097,-9.180821580812335,-2.0683023054152727,-1.9567850418388844,-7.6861352380365133,-0.87492757476866245,-4.907677723094821,-3.3394522033631802,-6.1731297988444567,8.2075007632374763,3.4654702246189117,4.1581705491989851,6.3725311867892742,3.1317844986915588,-4.0978277195245028,7.8095641359686852,-4.6554273925721645,-3.7681451346725225,8.7847703229635954,5.6349650584161282,6.8578591570258141,0.038984064012765884,-4.7947575710713863,-5.490456260740757,1.901661017909646,1.2168211489915848,-8.8868611119687557,-1.4747001510113478,-5.2853713277727365,8.7641310133039951,-1.2499125488102436,-7.2801393736153841,2.6975689269602299,-1.958945207297802,-3.9920361246913671,5.8488993253558874,2.451085289940238,-4.6094345301389694,9.2338941339403391,-5.9411403350532055,7.2544205188751221,5.0457957666367292,4.6895676106214523,-2.4370533227920532,0.44486301951110363,-3.1871493346989155,-6.418814966455102,-1.0231131874024868,4.5367295760661364,8.8140987046062946,-1.442924439907074,8.7690054439008236,0.67464252933859825,-1.2829258665442467,-2.1349707897752523,-2.4540022015571594,-4.4149425160139799,-1.938822939991951,-5.7970893569290638,8.3192109782248735,0.97905439324676991,-5.0327267777174711,-5.0389142241328955,-9.0313261747360229,-9.4990112073719501,-9.8813583794981241,4.00971669703722,-8.69136325083673,4.2578534223139286,1.7425804119557142,7.5490756332874298,-2.685693996027112,1.5410660114139318,0.69654415361583233,6.8176735285669565,4.6391262393444777,9.7948192246258259,1.5268632024526596,1.989933829754591,4.8179705161601305,-4.369418928399682,3.176114447414875,0.95562081784009933,1.1191711761057377,9.9100438226014376,-1.8933177180588245,-0.99082397297024727,7.2215567901730537,-7.294892780482769,-5.2629404049366713,5.760651296004653,-0.73354470543563366,-8.6857917346060276,-2.1016732417047024,-2.8221115190535784,8.7717554345726967,6.8937357701361179,3.017220888286829,-9.568428685888648,3.4190796408802271,4.4716292899101973,-5.3264112211763859,-0.99335773847997189,4.6365598496049643,6.6615068539977074,-0.05417446605861187,9.4898267835378647,-4.4810965470969677,6.210376126691699,-2.208311827853322,4.9031702429056168,7.5823891442269087,-2.7855153754353523,3.8431415148079395,-8.320452282205224,-1.8414938822388649,-9.9876149371266365,-1.8442481942474842,3.7206631060689688,-6.8150689173489809,-0.86326896212995052,-8.9613750111311674,6.1701960396021605,2.4849641416221857,4.792425949126482,6.3030427321791649,-4.7606726735830307,7.3744160868227482,1.8113072030246258,2.6402536686509848,-5.2564920578151941,-5.8619785774499178,-2.2739188186824322,2.2464748658239841,-3.4968342538923025,8.7067457195371389,-5.7245453353971243,7.5665814336389303,-8.4657073486596346,-3.1433969177305698,8.9280573558062315,-6.1398728284984827,7.1574016287922859,-5.5506906099617481,9.542953185737133,8.4143456257879734,-0.092923268675804138,-1.7612991016358137,-2.153936717659235,-1.2143522966653109,-9.6189812943339348,-6.2186108902096748,3.8067978341132402,0.85130599327385426,7.8999138716608286,-6.1474189069122076,0.33046167343854904,-5.930573670193553,4.8483568988740444,6.3345155771821737,4.2034335341304541,7.1075192838907242,-3.9232617616653442,1.7396192438900471,-2.2192760650068521,0.62723631970584393,1.9609084632247686,-3.0113649740815163,7.988935299217701,-9.96428526006639,-9.7423656564205885,0.060414550825953484,-4.6125655341893435,-3.3888909593224525,2.9096984025090933,3.3011520002037287,2.4617715179920197,-5.0059995800256729,4.1650975868105888,2.7952523808926344,-0.19313420169055462,-6.0064510628581047,9.5770177897065878,0.93814481049776077,7.3999156337231398,-9.617807837203145,-6.496316883713007,-3.597837146371603,-8.8488689623773098,-2.9406416695564985,-3.364484990015626,-6.8991752620786428,5.5613945052027702,-9.6424292679876089,-0.30870427377521992,-8.3926534932106733,4.6727521810680628,-5.053977956995368,-2.2074845153838396,-1.192189073190093,2.8783158212900162,-4.1458907909691334,0.013521993532776833,7.2642236668616533,9.8073040507733822,-8.6406636331230402,-3.6336712632328272,8.8871286623179913,5.9715753886848688,4.2676826193928719,6.941895792260766,-7.5572868809103966,4.6794116497039795,6.871711453422904,-7.1454702783375978,6.081054313108325,4.2799662612378597,-6.6069356165826321,-2.7668813522905111,-2.9748313408344984,2.009709570556879,-2.8111536614596844,-7.0595318917185068,-9.5524810999631882,-8.5498435795307159,2.7789701707661152,6.151760071516037,-7.3683516215533018,0.1143171451985836,1.3283385057002306,5.3853539563715458,-8.3559348527342081,1.8029429577291012,2.0623829215764999,2.4698573350906372,-9.1076715383678675,7.3644616268575191,-5.4933015070855618,-5.9183943178504705,9.5467318221926689,-8.0781114287674427,-8.8187682535499334,2.9619718249887228,1.860564025118947,-9.5003370009362698,7.8360291663557291,0.14233852736651897,-7.7162911742925644,-7.705748463049531,9.485599473118782,4.4704972021281719,-4.3534105829894543,-7.7716241125017405,2.3135586176067591,3.9797824807465076,8.2042633090168238,9.0535771101713181,3.4706397633999586,-8.9573911111801863,-6.8723974470049143,-4.3838673364371061,0.34172045066952705,3.2956953346729279,-9.2484060954302549,2.0387599803507328,5.4390839673578739,-5.3156397864222527,0.042146258056163788,8.3522377349436283,-3.9402451738715172,-3.7005898356437683,4.186681630089879,5.5582679435610771,-2.1905508078634739,3.4126333519816399,-3.8711482752114534,-2.3890135157853365,7.8498997539281845,-6.7346960306167603,9.9638389702886343,2.2417298797518015,-3.2458152063190937,7.5838802475482225,2.2754581551998854,3.6253105103969574,-9.4061451219022274,-9.0810591634362936,-5.3613526839762926,-8.2545232865959406,6.2271358352154493,-0.52789053879678249,7.7437885664403439,9.8545750230550766,5.8425678685307503,-3.9617096167057753,-4.4534807186573744,-9.6503950655460358,5.8101360965520144,-9.0425015147775412,2.677048621699214,-6.843715887516737,-2.3328967951238155,-8.9963756408542395,-2.0853879861533642,-9.1158213373273611,-9.6092095412313938,-1.9847564212977886,2.1988899726420641,-3.2561343349516392,-5.8497147541493177,3.8441594876348972,8.7886170204728842,-9.7135898657143116,3.6951291747391224,4.036147017031908,-4.4769748952239752,-4.5170208066701889,2.4313452001661062,3.6188764777034521,2.4570673424750566,-4.069077530875802,-8.9860150124877691,-7.95430694706738,-8.0368433520197868,4.7737979609519243,-6.7775546573102474,9.6388997975736856,0.98905151709914207,2.9889338836073875,-4.9881165567785501,4.7250694409012794,-5.75779153034091,8.7977827526628971,4.3348711170256138,-3.8210239633917809,0.050295628607273102,5.3187086526304483,-8.4635553508996964,-6.9747705478221178,-4.96857357211411,-6.8159871455281973,3.7040700204670429,-5.6950587593019009,3.1474660988897085,-0.53717306815087795,-8.2676823530346155,5.0627060979604721,8.9015062991529703,7.616517785936594,-9.1854338906705379,0.41260587051510811,-5.3330527618527412,7.3822680581361055,-6.2206108681857586,-9.8068320192396641,-3.425745852291584,3.4895119816064835,8.227980425581336,7.6671553961932659,1.8808820843696594,-8.0147150158882141,-3.3152564987540245,0.48407775349915028,-4.1051148902624846,5.3340854868292809,9.9748971406370401,8.0963990092277527,-3.8217102829366922,8.5153230279684067,-2.9657240305095911,-4.9237257242202759,6.9417927507311106,-9.2891058698296547,-2.0023486670106649,6.5260161366313696,2.7533376961946487,-4.6532402466982603,-7.0087844133377075,3.3603884372860193,-1.9514299742877483,2.3164851311594248,-6.8343042116612196,-4.1508606169372797,-3.5143430903553963,-5.564268846064806,1.3335388991981745,-7.211632477119565,-5.907021127641201,0.69593976251780987,-3.3403276558965445,-0.88686053641140461,-5.4649641457945108,-9.6523628756403923,-7.2628481686115265,-6.6891484335064888,-4.5176960341632366,-8.9172032754868269,8.564557358622551,4.5156716555356979,-5.106371808797121,-2.7909521572291851,-7.5328501313924789,-4.6121390070766211,3.7797502242028713,6.2621260154992342,7.5520697608590126,7.6366081181913614,8.4727804642170668,2.0214066654443741,-6.2180797941982746,-7.2670714929699898,2.3294390365481377,-9.1180162411183119,-6.4989575743675232,-7.9799249954521656,1.4006172399967909,0.17404184676706791,5.1213982328772545,-4.659781688824296,3.049197718501091,7.866156967356801,6.500290185213089,-9.6227279864251614,-9.1892648953944445,-3.9750905521214008,-9.3468623515218496,7.2844630759209394,9.9710522685199976,3.4756333101540804,-5.0308507774025202,6.4910230785608292,-5.374989565461874,2.5504094734787941,4.7321189753711224,-7.2762656398117542,7.8034129925072193,-8.0376955959945917,-9.5498665235936642,-4.6066585183143616,-4.1096751019358635,8.6906078550964594,3.0463668797165155,0.28824949637055397,4.609366012737155,9.6146904025226831,-5.8982512913644314,8.090578131377697,-1.6532043553888798,-5.4055356979370117,9.1615607216954231,-1.648800503462553,8.6100036557763815,8.3315882738679647,9.0042623598128557,-5.3623698931187391,-5.3507573530077934,9.8212043754756451,4.9820937402546406,-5.9503902867436409,-8.2095176074653864,2.637585336342454,9.8968468047678471,-3.6955965496599674,8.1088391970843077,5.2605271153151989,-6.3206534646451473,8.7772484961897135,-0.78437758609652519,-3.0340174026787281,7.2695676889270544,-0.3757170494645834,5.3236249648034573,-5.8350966218858957,9.5311085507273674,9.3415649235248566,3.6818210501223803,0.36649648100137711,-0.29356268234550953,6.0920737776905298,9.4841075781732798,-0.60378115624189377,-7.7498194202780724,8.7850209884345531,9.847899628803134,-6.3507833704352379,2.3839216493070126,6.5712568163871765,3.1134427059441805,7.6316614262759686,5.3337294049561024,3.9902290981262922,3.7805616948753595,-0.099486382678151131,7.932443805038929,0.58317163027822971,1.3656729087233543,-7.1353341359645128,-3.560800738632679,-6.3779638055711985,5.5623481050133705,6.3847227487713099,8.0353668238967657,-9.5896496158093214,6.758910296484828,-2.9945158213376999,-8.8273543957620859,-1.3453203998506069,9.2001074366271496,6.2058376520872116,1.5135454572737217,-1.841409495100379,-8.5693203005939722,-4.5662808883935213,-5.4828487057238817,9.7618382424116135,7.2154948674142361,-9.1776286344975233,-8.4044535644352436,6.3489550165832043,6.8870916590094566,-8.6503548640757799,-6.5141899604350328,-3.9906377531588078,9.3513296823948622,7.7981234528124332,3.0610107071697712,6.4070576149970293,3.417463656514883,-2.6882199477404356,-0.91260445304214954,1.8570288363844156,-8.9162540901452303,4.5175154041498899,5.8815111592411995,-9.4418223388493061,-8.7080446723848581,3.89320133253932,-6.965095279738307,-2.356342813000083,-3.0535982735455036,-1.8261291179805994,8.247978063300252,3.7674526963382959,-0.42242489755153656,0.30482180416584015,3.1401432584971189,-3.6121516022831202,-9.4319295790046453,-2.4404298886656761,3.6949203535914421,0.5264899879693985,8.7173101771622896,-8.1677059456706047,5.3661854472011328,9.4789313618093729,-7.6004496216773987,-0.75677275657653809,0.92035255394876003,8.3654596749693155,-1.7190990597009659,7.1021684072911739,6.1445551831275225,-8.4609108231961727,-2.5281934160739183,8.6533145140856504,-3.7428157776594162,-5.5047261528670788,2.0675839390605688,9.8833582270890474,9.6018782909959555,-1.2314098235219717,3.6951646860688925,4.6329859364777803,6.5947488974779844,-2.0551502145826817,-0.90959431603550911,-7.5515984650701284,0.28461672365665436,3.5533549822866917,1.2372933607548475,-4.8103978484869003,-8.3565989043563604,-9.3577726557850838,3.9149792399257421,-0.94380566850304604,-2.5417996570467949,-0.026777619495987892,9.9486271757632494,6.5770991705358028,1.3058889284729958,8.0753093212842941,1.7239042837172747,-6.3406118098646402,-6.6626597568392754,0.67749291658401489,6.6235325857996941,1.712299631908536,-1.3799948524683714,6.4265820197761059,-8.4358650632202625,-1.5841053053736687,-4.0578015521168709,0.52936007268726826,-3.0451759416610003,-0.27199706993997097,8.5453216452151537,1.2210362683981657,1.9566507823765278,5.4297929722815752,-1.4693941082805395,3.8932888861745596,-5.4935813322663307,9.3785838596522808,5.859080832451582,-6.428324868902564,-0.85604369640350342,-7.5263338908553123,4.9063157476484776,0.44888738542795181,4.450368657708168,-2.6538568083196878,-3.3713199384510517,-1.7741536721587181,1.7992964014410973,0.7747113611549139,0.57393125258386135,6.0626449249684811,-5.1266203448176384,-3.1080972123891115,2.2102053090929985,6.920725479722023,-3.3667298872023821,-4.629162298515439,-2.3307091183960438,7.7719071321189404,2.4433086067438126,4.6878509223461151,8.7105668149888515,-1.5033940505236387,-7.5437406543642282,-7.6491586770862341,0.59013260528445244,-1.6412201058119535,-3.9862529654055834,3.0464574880897999,1.8111044261604548,-0.76781708747148514,-4.7017168812453747,-1.7555816285312176,-6.0603662021458149,3.4252713620662689,8.5358873102813959,2.658168962225318,-4.1541528142988682,1.1536958254873753,-9.8341737408190966,-2.9580606520175934,3.8746766466647387,1.6905090771615505,-7.613848652690649,-5.9542870987206697,6.2967634573578835,9.7035553492605686,7.6549092214554548,-3.9405768271535635,-9.2746865469962358,0.34321030601859093,8.335694195702672,-1.9875093270093203,-4.0691963396966457,9.0171651262789965,-8.5055737942457199,6.8212518002837896,4.7791390120983124,2.9894919972866774,4.3921000510454178,-1.9743294455111027,-2.55492789670825,-0.67310171201825142,7.1795990969985723,7.5221577007323503,4.9046133365482092,-8.1635359860956669,-4.5493039395660162,-0.15126963146030903,-2.3886188771575689,-5.5174088198691607,8.9099995326250792,-9.6377071738243103,-0.94446763396263123,6.3325468543916941,-8.8848904147744179,-8.3531923871487379,7.8955620713531971,0.71187328547239304,4.4543927628546953,4.9792784173041582,6.732476856559515,-7.2613408509641886,-1.3556607253849506,-4.5897438935935497,0.17442271113395691,-8.4774143435060978,0.097140604630112648,-7.3577789589762688,-2.1909428387880325,-3.1762303970754147,-2.9042302444577217,8.6023369245231152,-0.52316395565867424,7.1834714058786631,-7.3959469143301249,-3.6797687690705061,-5.8736523054540157,1.5257345233112574,3.0202234908938408,0.89631334878504276,4.3385383021086454,-2.1866442449390888,9.070236450061202,3.464165423065424,2.2283708304166794,-7.7713574841618538,6.7947811260819435,-0.11348250322043896,-7.3003542516380548,2.9461138416081667,-4.6645627729594707,2.6935166213661432,9.9339546356350183,-0.024282876402139664,-8.1222256179898977,9.7540531307458878,-3.6288769543170929,9.4650786463171244,-0.42303901165723801,9.9834060203284025,-8.8948599435389042,4.08893758431077,2.7740897703915834,4.1268709395080805,0.31999086961150169,-1.9133736751973629,1.9287042412906885,-4.2677232716232538,-7.6249813102185726,6.9391377363353968,6.0880671534687281,2.144774254411459,7.2209889348596334,3.1611629575490952,9.6659305226057768,-4.7055526543408632,-6.2234200723469257,2.9788736160844564,5.9289671014994383,8.1501995585858822,0.40412319824099541,-7.9013257380574942,2.4183368869125843,4.9881555233150721,-4.070002343505621,-4.5293408911675215,-4.6323150396347046,4.6811708621680737,-3.561204643920064,6.8336000200361013,-7.6843315083533525,9.440357219427824,4.0839390642940998,-1.2360361870378256,5.9398730378597975,-8.5537279397249222,-2.5054716411978006,-9.4618149567395449,-4.7239737119525671,4.1738644987344742,-9.8592588398605585,-4.5633204374462366,4.2734503839164972,3.8807141873985529,3.1634562369436026,8.2090773247182369,9.9627390410751104,3.755219578742981,-6.0244324151426554,7.3644298035651445,-6.0281555820256472,4.7891639731824398,-8.5209869779646397,7.771872915327549,1.8682269938290119,-0.70882183499634266,6.8314919248223305,-3.1150877848267555,4.719654293730855,3.2298299297690392,3.7517331633716822,-4.6206155885010958,1.3138461578637362,1.8124637566506863,2.078450471162796,-7.4828366376459599,-4.0353492181748152,-2.1142631862312555,5.5786907207220793,1.0550650954246521,-7.5208546780049801,-3.0045538302510977,2.4638297129422426,9.5860829576849937,-6.7035769019275904,-7.0169648993760347,5.8709595259279013,-6.7831235192716122,-3.9569632243365049,-4.680864131078124,8.716590590775013,-0.26179436594247818,0.022167814895510674,-7.425456615164876,0.35068906843662262,-5.9687457792460918,3.2897197548300028,-9.679976562038064,8.6339243222028017,-9.633770901709795,5.2124578226357698,5.7787440903484821,3.3520499709993601,-2.0960329193621874,-8.0252138618379831,0.23063953965902328,-3.6411768849939108,2.7401436679065228,-6.4052737876772881,6.5634786337614059,-7.6144727412611246,3.5566562879830599,-3.2776617724448442,-7.661356870085001,-4.4248972181230783,-9.2475013621151447,-2.7553871832787991,-9.7923326678574085,0.26485294103622437,-8.6165396682918072,1.8178058415651321,-8.1371283251792192,-0.71574671193957329,-9.5549149066209793,-9.4548320956528187,-7.3630273714661598,9.5989883970469236,-9.8018574435263872,0.18194819800555706,-1.9965564366430044,3.8760319724678993,4.4694698601961136,-1.6199464444071054,-6.4398255664855242,5.8517319336533546,-9.9412670265883207,-2.8749154135584831,1.2967000808566809,-6.3616526313126087,-0.29574600048363209,9.397045811638236,-3.8508919905871153,-1.9416376762092113,6.8956390116363764,-4.994999198243022,9.0485142916440964,-1.6201512608677149,-9.8821758199483156,-9.7290049493312836,4.6138187032192945,4.4510593730956316,8.9549967087805271,6.6298328153789043,7.6002582162618637,-2.4600215442478657,-5.5820351652801037,2.7350117079913616,7.341875871643424,-5.0920895673334599,-2.7493197657167912,-7.8172456566244364,-4.4477338064461946,6.9379585050046444,6.2687261682003736,-1.5191637352108955,7.4151686765253544,6.7400826513767242,0.56925269775092602,7.4301738105714321,-1.068629315122962,-0.45282937586307526,9.2967545799911022,-9.4456230662763119,7.4131294246762991,-7.5336231850087643,2.3951488547027111,-4.7331020049750805,-9.2453563958406448,-6.7049389891326427,-9.9095645640045404,9.9483734741806984,2.3131366726011038,-3.1118472293019295,-0.81632897257804871,-0.040970249101519585,-8.5868987068533897,-0.0065550301223993301,9.8296869359910488,7.548488387838006,7.4444717261940241,-0.76356133446097374,6.824723994359374,3.1363048683851957,-8.1239742413163185,0.36494087427854538,-6.4386448822915554,5.6954911909997463,4.1205699648708105,-5.5804899055510759,8.7061919830739498,4.9688059184700251,-9.2788111232221127,-8.9785423502326012,-2.3612723685801029,-5.9046389441937208,0.73329698294401169,4.5224763359874487,9.2598925903439522,-8.9850833546370268,7.7040665503591299,2.2466504387557507,-0.54597998969256878,3.7143872212618589,7.7061350736767054,-2.9876781441271305,6.0934865288436413,-6.7717837728559971,6.6301548667252064,-6.9870247971266508,9.0742582641541958,-8.9412050787359476,5.1662499643862247,9.1632701270282269,7.0811749342828989,-6.6927458252757788,-4.9790595285594463,-3.0534572061151266,0.54479118436574936,-3.6944818403571844,6.8437584582716227,3.0485399905592203,-3.1882765516638756,-5.3639505058526993,8.0838844086974859,5.8453985024243593,3.6127542518079281,-0.43918333016335964,-1.354155233129859,0.71306444704532623,4.4742453284561634,-1.3586513604968786,5.1466517522931099,-0.22388067096471786,-2.7623603958636522,-6.9911166373640299,0.3026993665844202,7.4683348089456558,0.30327065847814083,-2.9299623239785433,-3.8767237775027752,3.9035194274038076,6.4511251822113991,4.061066173017025,-5.660720057785511,0.27802275493741035,-7.2714773286134005,8.2805593404918909,-8.6390212830156088,3.9693070016801357,-7.8571134340018034,5.4945314954966307,6.5909660700708628,-5.6331304740160704,3.9761573821306229,7.2772308439016342,8.4189286641776562,-3.0657970160245895,-6.850394057109952,5.4271067958325148,-6.6159617062658072,5.5316292680799961,-9.9067698232829571,-3.0804191902279854,7.3947239853441715,3.1261578109115362,1.3344307150691748,7.7771168667823076,-9.9966808594763279,5.7847947999835014,5.0463268533349037,-6.3844582438468933,-3.5896760411560535,8.3148264512419701,7.2883093543350697,-5.3845463879406452,1.9288939982652664,-1.0784777998924255,-5.9763129707425833,-3.8920677825808525,6.0168259590864182,4.7940197121351957,-6.9105823617428541,-6.15772963501513,7.0380543638020754,8.579825758934021,1.1316758114844561,0.075450735166668892,8.1005847919732332,6.5287403482943773,8.5391631349921227,-2.2850450966507196,-4.7528790310025215,-1.637832997366786,-7.0591212995350361,-2.6516582723706961,-6.4205262251198292,-9.7842375747859478,-3.6809177417308092,-5.1844358164817095,5.1872700732201338,2.448239466175437,7.5608054269105196,-5.5430524796247482,-2.0829901751130819,-8.8158111646771431,-7.3382354620844126,6.2766095716506243,-9.0228018816560507,-6.2312173470854759,-8.0699229706078768,8.8046480901539326,-0.27940161526203156,4.0971283614635468,0.43648144230246544,-4.0563175454735756,5.4710597358644009,-7.8988982457667589,3.2171998359262943,-8.5222541447728872,6.4746003597974777,-1.3916239514946938,-9.0236853994429111,-1.0805008001625538,0.023121470585465431,8.6026345659047365,4.4792947452515364,3.5068967565894127,0.41389370337128639,-3.6884459387511015,8.289156798273325,-4.1415482852607965,-7.001984529197216,-2.3539587575942278,-2.9847790487110615,-5.1814167853444815,-4.0718735754489899,4.0208638180047274,-1.341701066121459,-9.9697505403310061,-1.5973311103880405,-6.3439065311104059,-2.0370397623628378,3.4727762825787067,6.9510867353528738,6.9148937333375216,-1.3808914180845022,-8.6419962905347347,-6.0316443908959627,6.1527532618492842,9.3241983093321323,-8.1988638173788786,1.6958354040980339,1.905728206038475,9.574052058160305,-8.9069053065031767,1.6425221506506205,5.8698770962655544,-4.9755188636481762,-3.5455020144581795,-9.2523064836859703,-3.515065461397171,2.2948410455137491,9.3935481645166874,-2.6358471903949976,-0.68367133848369122,9.5358870085328817,9.6531052980571985,-0.2591017447412014,5.2770523633807898,-8.5808090958744287,2.3415367398411036,-5.7919169031083584,-4.7473576106131077,-8.8393204659223557,-2.4590616766363382,-9.4495402090251446,1.5777112171053886,-3.4074835013598204,-9.5751557592302561,-9.6428420580923557,-7.2464675642549992,8.6196691077202559,-9.2211608216166496,-0.049922820180654526,0.94723909161984921,0.2474985271692276,-0.29217367060482502,9.437194112688303,-9.0783959254622459,-0.60031203553080559,-9.4443076010793447,9.5221529994159937,-1.1743860319256783,2.0940304920077324,-5.6294261757284403,6.2342987302690744,-0.14111331664025784,8.3085643779486418,2.0416434668004513,-6.0981592442840338,8.2376118469983339,9.5424552261829376,0.04513939842581749,-1.3420520443469286,4.131358414888382,-4.2590103764086962,-1.1873513739556074,4.1855268925428391,6.1505939811468124,-6.9668324664235115,8.4467605501413345,4.7047105897217989,-7.9290034621953964,-2.7611729130148888,-7.0330923888832331,-5.1837567426264286,-3.3995356317609549,4.0046886447817087,6.8021624442189932,3.944331482052803,-7.6206720061600208,-0.63438891433179379,-2.1744098793715239,-5.3067813534289598,8.925829641520977,-3.5810668393969536,-6.9903195090591908,-6.2999652046710253,-3.515165951102972,0.60591056011617184,3.5388668719679117,-2.2643768787384033,2.6178595796227455,-1.6339465323835611,-1.7393042985349894,7.5127191655337811,6.2711521796882153,-0.74518864043056965,-4.3854072876274586,-5.5402392148971558,5.1995501201599836,8.8389884773641825,-3.1205135025084019,-6.4703828189522028,-7.724010506644845,2.5554326269775629,9.1562598664313555,9.2597250267863274,8.1986759230494499,-4.8536188807338476,5.2275117766112089,-1.2094513233751059,-7.248323168605566,-2.5674732215702534,8.4776232298463583,3.4137686342000961,-4.7904600203037262,6.7384795192629099,-6.3745887484401464,2.286933334544301,-3.511350154876709,4.7379977628588676,-8.4714842867106199,-0.23639478720724583,6.9128878135234118,4.9056142475455999,8.6587751470506191,8.034042501822114,8.1524692568928003,-1.4490573387593031,5.6933743879199028,8.5434605833142996,9.9421688821166754,-1.9674421939998865,-6.8008916918188334,-2.5866393651813269,6.3522474095225334,2.2223398182541132,-9.1345789469778538,-4.8683550860732794,-2.4438914749771357,5.5160391889512539,8.0707701295614243,5.4337089601904154,4.3466147035360336,-6.4465653896331787,-7.4244757555425167,-3.164003249257803,2.5974432192742825,-4.7717150673270226,1.7849043477326632,-1.1125354282557964,1.6171268559992313,-0.94884030520915985,-7.1589388139545918,-0.28462390415370464,-3.6738810781389475,-6.9192307721823454,8.4884360339492559,5.1445672754198313,4.7423165012151003,4.1135512944310904,-3.5432840418070555,8.0251598730683327,-1.1378722731024027,-4.21922467648983,7.4909074697643518,-0.31801878474652767,-4.9416394624859095,5.8655935805290937,3.0314321164041758,9.2796823848038912,3.6219922825694084,-5.1756002474576235,-6.3133212644606829,-7.990462938323617,4.2894113156944513,-7.8639052901417017,-8.656194694340229,-4.6642172615975142,8.5005260817706585,8.3420011028647423,4.0126793924719095,1.1026589386165142,-7.6111317798495293,-0.29180523939430714,-4.3705825228244066,3.6195829417556524,-5.6693913228809834,-5.4599297698587179,-5.0396064855158329,-0.66616324707865715,3.7943793926388025,-7.8654399607330561,5.5505966581404209,8.8781550619751215,-4.8477256391197443,4.2752236314117908,-6.3163151405751705,1.6914611775428057,8.3881024550646544,-1.1618938203901052,-7.949370127171278,-5.0637113209813833,-5.7961331028491259,4.3909733090549707,-0.91148208826780319,0.72061360813677311,-8.6470041424036026,9.8013892024755478,-8.0515190213918686,-1.8801772873848677,-0.13960553333163261,-6.3501215353608131,-6.4926162455230951,-1.4012110605835915,9.8457720596343279,-2.1088384091854095,-3.2470814231783152,6.3025734852999449,7.3526950180530548,-3.2546957768499851,-1.6718687303364277,0.90231440961360931,5.1983676943928003,8.9659585990011692,-9.1336781531572342,-9.72871333360672,9.5150041859596968,-1.3244938477873802,-0.76803186908364296,-8.3115514367818832,7.7550152130424976,-1.4591754414141178,-4.3615770060569048,-5.0246966723352671,9.9230669904500246,-3.012935584411025,1.5916874818503857,-8.50840182043612,-0.70938440039753914,-2.6235447730869055,6.0830564517527819,-2.0700895227491856,8.0054532084614038,7.6522155199199915,-9.2136185523122549,6.7129974346607924,5.3480151388794184,4.090559259057045,-9.970422750338912,7.1048352774232626,-9.0333584789186716,-3.6559476237744093,-5.5116631276905537,5.4778480250388384,6.191877955570817,6.8929259944707155,9.4073212705552578,8.8487461023032665,0.87588892318308353,1.0652170516550541,3.1030737608671188,-6.6391985584050417,-5.0101448129862547,-5.5038328096270561,-2.9179962165653706,-2.7623563911765814,-6.9238098617643118,-8.4723225980997086,5.6741056870669127,4.694405198097229,-1.1317205801606178,-0.82772135734558105,8.4872188698500395,4.6876902505755424,6.0101563669741154,-7.301814965903759,-1.6041108313947916,-0.29067754745483398,-5.4174640867859125,8.6811292450875044,3.7393683847039938,7.5645492412149906,-2.6207654364407063,-7.2046325076371431,-8.2585339806973934,-1.1805999558418989,-2.3433888144791126,-5.3357450291514397,2.1333315502852201,-5.0965393986552954,2.4623651709407568,4.9715255293995142,-3.5703102126717567,-6.2036940548568964,-5.4859502706676722,-2.3661637865006924,-8.1146999727934599,-3.7624279875308275,4.8728623799979687,-1.8018629774451256,-3.910997761413455,7.8606715705245733,-5.692774411290884,1.5405031386762857,-8.7636579480022192,9.2008775938302279,-0.85013022646307945,-8.1386445555835962,-6.1990311276167631,-7.1161321084946394,-0.83232490345835686,-8.8845806755125523,-3.1474046129733324,1.570723382756114,-0.85201546549797058,0.17614296637475491,0.43491549789905548,9.6248548477888107,4.9355803709477186,-7.7005885913968086,-3.7924376130104065,0.50108671188354492,1.764448806643486,-4.9088146723806858,-2.448158860206604,-6.2059043906629086,-2.6350641809403896,-7.5236314255744219,-9.6733502484858036,0.0023762509226799011,-0.062272464856505394,-6.6132390685379505,-8.7089984118938446,7.8637013956904411,5.2294971700757742,-7.8409433458000422,-2.7347959671169519,-3.7157624773681164,9.1800920478999615,9.8071991559118032,9.5963684190064669,6.1641716025769711,1.2322510126978159,-9.5571416802704334,-6.8802168406546116,4.1955835279077291,-4.8275353573262691,3.6132898926734924,8.5633326973766088,3.9327900856733322,-1.5969210490584373,0.54799423553049564,-9.8608008865267038,9.5195012260228395,-5.7427414692938328,1.7441588919609785,-5.9214108996093273,-1.1529578175395727,2.2380298469215631,-5.4322670120745897,-0.11163619346916676,3.7305737473070621,-0.24692155420780182,9.9895147513598204,-6.2254174519330263,9.4089148938655853,-4.3672269023954868,0.017495518550276756,-5.952741326764226,-7.7234472520649433,-7.9779476393014193,-5.3659579157829285,-5.6546542979776859,2.2252478916198015,-0.25858987122774124,-6.1198894865810871,3.0174293927848339,-6.0640935879200697,0.77909862622618675,-5.6893046572804451,-0.14334117993712425,-9.1351340617984533,5.8018301147967577,-8.6411369405686855,8.4114504884928465,-8.7514958065003157,-6.3900100812315941,3.1005929876118898,-8.3335546776652336,-2.0534544810652733,7.5905989203602076,-4.8038078378885984,2.4017092678695917,5.5277621373534203,5.0983640179038048,8.204167066141963,7.4360231123864651,-2.7594136632978916,2.5346176140010357,-0.68166338838636875,3.2835043128579855,5.8570901583880186,0.11441612616181374,2.9919115547090769,5.0576016679406166,3.1113509181886911,-7.525015389546752,7.0663672499358654,4.4345032330602407,-9.3040489871054888,6.848679156973958,5.7507231179624796,-7.5964331347495317,6.748323068022728,-0.93406466767191887,1.1752013862133026,-8.3902144525200129,5.6657090876251459,3.5727583151310682,7.349108625203371,-3.5312004294246435,-8.8855667132884264,0.28025847859680653,-9.6956697665154934,4.8782365489751101,8.5217950586229563,5.8096952270716429,3.5478051193058491,7.9607461951673031,-3.7385572586208582,6.0682033561170101,8.2939320057630539,-3.8846359681338072,-9.0766685642302036,8.4314482007175684,7.3500537034124136,-7.6472709607332945,-7.6830186322331429,-8.494133809581399,-0.90692585334181786,-2.7027459535747766,-5.0511846225708723,4.7400871757417917,6.6452780459076166,7.1882478334009647,-7.1185295097529888,-1.1254478711634874,4.5976988039910793,-6.4760870765894651,-3.5954686626791954,-9.0417635254561901,-4.9195648450404406,-3.1263108365237713,-3.9061756618320942,8.9056992717087269,-1.9121924322098494,1.7818551417440176,7.6394594926387072,-3.6041691713035107,4.7287879511713982,-3.260789392516017,-4.0872672758996487,5.298940222710371,-0.71155717596411705,0.85861626081168652,-9.2364195547997952,3.4965484496206045,6.489898394793272,-4.2775496561080217,7.2229745704680681,-3.4662593528628349,2.5791075639426708,7.0609256252646446,-7.0228826534003019,6.4112675935029984,-5.8254275564104319,-7.9609079193323851,1.0206157341599464,-6.51126972399652,5.089776087552309,3.8668215833604336,9.6704600565135479,-8.5776762291789055,-5.0043726805597544,-8.4916030708700418,1.627199687063694,8.345231469720602,-1.6945448331534863,-0.21494581364095211,7.4057867098599672,9.0573688317090273,7.1981036756187677,-1.4713892806321383,-9.639572836458683,7.6993404515087605,2.8151070233434439,-6.4961583726108074,-0.93374105170369148,6.6142149642109871,5.1110335160046816,1.1404217500239611,7.0684398338198662,-0.73157940991222858,4.3449301365762949,5.2409176994115114,4.1038932837545872,-5.8654695563018322,-0.94680041074752808,7.1255674120038748,-0.58837242424488068,-8.7752606254070997,-5.8053216338157654,9.9593332782387733,6.5145635604858398,-9.730109665542841,6.0468533262610435,9.4639800488948822,1.1128341034054756,3.4028629027307034,-8.0830889102071524,7.5247011426836252,7.6522422302514315,-8.7646980118006468,-8.2794746663421392,6.8692962452769279,-7.7378736063838005,9.5583152025938034,6.6037630569189787,9.4458275754004717,-3.9757880568504333,-1.0698243416845798,-0.53764080628752708,3.871042774990201,0.61602781526744366,-6.4204257167875767,-8.0949940346181393,7.4352750740945339,4.6683067549020052,0.23174443282186985,-5.0712374877184629,7.7115824818611145,8.5669112484902143,4.0774986799806356,-9.479575389996171,-3.2235755957663059,1.365014985203743,1.8069452606141567,9.3290875386446714,-6.025586724281311,7.9639561008661985,-9.7896721493452787,4.9801875930279493,2.0129932556301355,-7.6222586072981358,-7.3003942519426346,2.2738287225365639,-3.7605642713606358,-3.8036599289625883,-8.11237758025527,-4.7299765795469284,3.2836687937378883,8.6215203069150448,1.8919440545141697,-2.0961827132850885,9.4571996666491032,7.1549496427178383,-6.7612205818295479,4.1657065320760012,-6.970204534009099,-8.2275793794542551,-0.92661662027239799,6.3545340858399868,0.65450870431959629,0.32787688076496124,-9.3731841538101435,4.8939318116754293,-7.6879246067255735,9.0511528495699167,2.7260918170213699,-2.5747317261993885,6.4839358720928431,-4.4896687287837267,2.1377184521406889,8.6341201141476631,-6.3430956844240427,-8.4091394953429699,7.5925142131745815,7.3865185026079416,5.2166093979030848,-4.4457303546369076,0.60997308231890202,-8.1823224294930696,-0.29305826872587204,-5.4302465077489614,-6.1530199740082026,6.1933269444853067,-8.7539173010736704,-7.0880693942308426,-9.1822860483080149,-6.6816075146198273,2.2225277498364449,-5.9760128427296877,1.1521837301552296,4.7520399931818247,7.5362808536738157,2.272444935515523,-7.0178727433085442,-9.3871734477579594,9.7758683189749718,3.0189917795360088,0.19494054839015007,-3.634123420342803,1.2877241149544716,2.7792883757501841,-8.50016875192523,-2.3362018726766109,-4.5448140986263752,-4.6905129216611385,6.5493671875447035,-4.7855494171380997,9.2709869612008333,-2.5219922792166471,-7.1241782698780298,3.9358406607061625,9.67409354634583,-7.5096125900745392,5.9412181004881859,-5.9472603350877762,4.3955798912793398,-3.4886546060442924,6.1820871662348509,2.3391295503824949,-6.2495501525700092,3.8106151018291712,5.0081245228648186,-8.4510267525911331,3.593381317332387,-6.0400932095944881,4.1534573305398226,7.1574651449918747,-4.483173843473196,-8.7027440778911114,-7.0197069644927979,-0.21492891013622284,7.6898839138448238,3.8790784310549498,-4.3287006393074989,7.5283995363861322,9.8111452162265778,-4.082195833325386,-9.4653243850916624,-3.7069360539317131,-2.4742091819643974,-4.0336623787879944,6.2364463973790407,-4.0452721808105707,-8.8894962798804045,-5.7639672607183456,5.002282252535224,-6.6420642286539078,6.8265352863818407,-6.4213100913912058,-2.9586780071258545,-6.5012106578797102,-5.8474996034055948,1.074198056012392,-5.9531859308481216,4.8040919005870819,2.3726890236139297,-2.2154832910746336,4.3723878264427185,6.7223114985972643,1.8894877936691046,-3.3785587549209595,-3.4369421377778053,-4.6864582691341639,-5.3040877543389797,-5.8028504252433777,-8.5070642177015543,1.7717047687619925,-2.9578592907637358,7.2589552402496338,1.2608579453080893,-8.7604250758886337,3.5357592348009348,5.5055652279406786,-7.9650926496833563,-9.3121473025530577,-9.2597086261957884,-7.9228746797889471,0.24527303874492645,2.3040423635393381,4.0401002950966358,1.9657695665955544,-1.3108005840331316,9.3746521510183811,-0.22114620544016361,3.1958016939461231,-8.1608265731483698,0.98779948428273201,1.9460183288902044,6.7301471438258886,-6.4168227836489677,-7.5404967460781336,6.8712079059332609,4.3914070539176464,6.3784678187221289,2.9087574407458305,7.4864076357334852,4.0532706212252378,3.3194409124553204,9.8435198701918125,0.038613611832261086,8.979052621871233,-9.0624356735497713,7.6436419785022736,6.6908707655966282,-6.5349119901657104,7.734208395704627,8.8406453933566809,4.7272735927253962,-8.7126118037849665,7.1334238536655903,-8.5451573505997658,1.5404198504984379,9.8365176375955343,2.352090310305357,-8.4180580265820026,-2.30124038644135,3.052885327488184,9.8438012413680553,4.7676189709454775,9.3721602484583855,-2.1025525499135256,2.3993554059416056,5.9664046950638294,-2.6361651066690683,-6.0268901567906141,6.0571659076958895,2.7875363081693649,-9.8771685175597668,-5.5712736677378416,3.603500984609127,4.0411547850817442,-0.31141724437475204,6.0104496125131845,-2.3732371907681227,-6.9974055513739586,-5.395078444853425,4.9166133813560009,-6.4787828084081411,-8.9026333577930927,-6.5588358417153358,5.6460352148860693,-7.0860209595412016,5.2457557898014784,5.4176785051822662,-5.0772427394986153,6.781315766274929,-6.425784882158041,1.8335135374218225,-4.1378839407116175,-5.4153456632047892,4.2854743916541338,5.9682123269885778,7.7447046618908644,5.2513912692666054,0.13318192213773727,-1.6113553289324045,-2.0489477179944515,3.3357658889144659,4.2173993494361639,1.830977238714695,-6.7654563300311565,-7.0245135203003883,-0.99871240556240082,-5.359329842031002,5.7433812972158194,9.0095855109393597,4.1038311272859573,-6.9101333245635033,1.3892382383346558,8.9271608181297779,-1.2079815659672022,-2.5461104046553373,7.522487286478281,-9.5560390222817659,-8.3478440158069134,-2.2143607400357723,3.2391031458973885,-0.39332329295575619,9.4154904689639807,6.1484638229012489,-2.7684021182358265,-8.5343445930629969,3.2704358547925949,6.2155153509229422,4.1666298639029264,8.5482334811240435,-9.8397375829517841,3.5304445773363113,-3.8178828172385693,-7.1564609464257956,1.3608956709504128,-7.4263694230467081,5.0091269891709089,8.397424453869462,-4.4870598334819078,5.9854218084365129,-3.0155405029654503,-2.1891786810010672,6.4739695377647877,8.0061501357704401,-0.63452718779444695,-4.4983719661831856,-4.1375925857573748,-0.5185429472476244,4.8487598076462746,-6.8937966786324978,-4.0407534688711166,7.056495314463973,-1.4831163175404072,-6.7358822468668222,-9.972897544503212,5.5109697394073009,2.8685316070914268,-8.5891789011657238,1.6702191438525915,-8.6267579346895218,-9.9205975793302059,4.5164848119020462,8.5603472404181957,-6.2437850330024958,0.70497971959412098,8.5942309908568859,3.2404088508337736,1.551659582182765,-1.2573118507862091,8.3597922511398792,3.0285085923969746,0.1440143771469593,0.44971609488129616,-1.6215115506201982,7.2554342914372683,2.084271227940917,-9.6533774212002754,-4.314315402880311,9.3010682798922062,3.0547311995178461,0.86737246252596378,-2.0709372777491808,-6.2427650764584541,-2.1526106353849173,1.0731124971061945,-4.1981744766235352,1.2816167902201414,0.13348151929676533,3.423974122852087,6.7331878282129765,4.6879597287625074,-9.4607237353920937,-6.3838165160268545,7.1958434302359819,0.54066655226051807,6.982826329767704,0.36225731484591961,8.4587717056274414,6.5762009378522635,6.2092922069132328,-0.42575155384838581,4.3937093950808048,5.0739157665520906,-2.6975935883820057,1.5446172095835209,0.38153181783854961,-7.5946563389152288,-3.3890693262219429,-0.088114077225327492,-0.93321835622191429,-4.6008420642465353,-6.3525315374135971,-6.9975207652896643,-7.331478726118803,-0.1629289984703064,1.652399692684412,-8.1182738579809666,-3.8287163618952036,-9.2358460742980242,-6.8649647478014231,0.53750823251903057,-6.0990535840392113,-6.7935564182698727,0.69730322808027267,-0.42456193827092648,4.3875784147530794,2.0305293519049883,7.1069116145372391,5.8636394049972296,-9.8123960569500923,3.0594723019748926,0.55108149535953999,2.0267750788480043,4.0088443178683519,-3.3534399513155222,-1.2652097456157207,-4.38012620434165,3.2189276069402695,0.51639329642057419,-0.97778475843369961,6.3716356083750725,8.0797980818897486,-2.8334961831569672,-2.5702942349016666,1.064852150157094,-3.0298257153481245,-2.280743308365345,7.547276709228754,7.0797893311828375,-9.9805771373212337,-3.5599468089640141,7.9740321356803179,-0.44175495393574238,-4.5754359941929579,0.64728804863989353,-1.0296831838786602,-5.8852012455463409,7.4226982984691858,-6.7095612734556198,-7.5962972175329924,9.0326837264001369,-7.6844614371657372,7.2566436696797609,2.4102913588285446,9.7669649496674538,-6.6199362371116877,-1.2683106865733862,3.5023590922355652,4.1493688710033894,-1.5572743117809296,6.890707965940237,-7.8710842505097389,-9.3129816558212042,-3.2826840132474899,7.9298419132828712,-3.1468231324106455,-8.656332790851593,-6.985205328091979,-0.34592565149068832,6.0276509448885918,6.7295561730861664,3.650731984525919,-2.1474292408674955,8.1568101886659861,-8.4910169895738363,-8.522531958296895,1.8053884617984295,3.1639698334038258,-3.1589069589972496,8.2507936656475067,-8.9107186254113913,-2.4479287676513195,-2.338738813996315,-7.1831868775188923,-7.8218284156173468,-1.4701642375439405,-9.0502736438065767,-7.9491240251809359,-0.92747516930103302,-8.0750994384288788,1.8037533853203058,-4.3167605437338352,8.2055859360843897,-8.7170297466218472,-7.1189414337277412,-8.0486541148275137,6.2703073583543301,5.055899191647768,-5.5021681450307369,5.0600216630846262,3.7842093221843243,1.2061858270317316,-7.6347173750400543,3.3050962071865797,8.7520583067089319,-4.1558923851698637,-8.0832718126475811,4.4506598263978958,2.2398153599351645,4.5768502168357372,3.1217084359377623,6.5537854935973883,9.4729204382747412,-8.6260415147989988,2.1202715206891298,-4.5964569225907326,7.3485442996025085,6.9841791875660419,3.0997383408248425,-2.6976032368838787,1.382454838603735,-5.0814385060220957,-3.7369322218000889,-6.6198027785867453,0.97472674213349819,2.2324409242719412,0.63470996916294098,7.5705349445343018,-2.0190497022122145,5.8317173738032579,-6.3259745854884386,-0.65482955425977707,-5.7202453073114157,-0.16284649260342121,3.0390757974237204,-2.2529706545174122,-5.6777298450469971,-5.6054718792438507,8.8341599330306053,-4.2738581541925669,9.266047291457653,-5.5430216901004314,-1.5655106399208307,8.4627408534288406,-6.7143319267779589,-7.7766676433384418,-2.4530641920864582,-8.6498173326253891,2.5201011262834072,-4.6602725703269243,-5.2010476961731911,5.9914079681038857,-2.406154926866293,-0.24579641409218311,8.8997446838766336,-1.9909501727670431,-1.8994910176843405,-4.7454708255827427,2.871875548735261,7.6124483253806829,2.4191425088793039,-1.4717560727149248,4.1957526188343763,-1.9856241531670094,7.614920437335968,3.967928159981966,8.9686941262334585,-3.1576719414442778,9.0077336877584457,-7.0197610836476088,-1.1245095450431108,0.36814591847360134,7.4285329226404428,-8.647032780572772,9.3200674932450056,2.3745101690292358,8.3925077132880688,-7.1227188222110271,8.464777609333396,7.5174245703965425,5.3548917453736067,-0.33431533724069595,1.162202637642622,-6.8601817823946476,0.92480786144733429,3.2458128407597542,-7.623481685295701,-7.8566661663353443,-6.9882408250123262,8.636477580294013,-6.7211621440947056,-2.5721301417797804,-9.7912347596138716,-1.2826032005250454,3.2880769949406385,2.7101579587906599,9.6249128598719835,5.9105894528329372,-0.72294171899557114,9.5186014380306005,-0.86547826416790485,-6.0931143816560507,-6.9733819179236889,-1.6298708599060774,6.7605230584740639,4.1111749410629272,-3.482655119150877,7.0154634304344654,8.8940084725618362,1.6005462128669024,0.38029043935239315,-8.4585045650601387,-2.0862129051238298,-2.9802344832569361,-8.8009051606059074,3.1869750749319792,3.490187581628561,-0.41720999404788017,7.951705027371645,4.3065355252474546,-0.057315202429890633,-3.2965294271707535,-4.7700299974530935,-9.8941262625157833,9.4199067167937756,0.37234113551676273,-2.0624541956931353,-3.6676048953086138,-1.4354258961975574,-5.202970365062356,-6.3228880614042282,-8.7796192429959774,0.93939251266419888,8.370045954361558,-4.6375012770295143,-2.4839210696518421,-7.2613588161766529,-1.6576020512729883,0.68238954059779644,8.9210924226790667,-3.1995039526373148,5.9371212404221296,5.1968124974519014,2.8277636040002108,6.2229928188025951,9.8404325731098652,8.1504115276038647,3.9666864834725857,8.0998370237648487,-6.038999930024147,2.528207078576088,-8.4235323220491409,5.6922756507992744,-9.9230142030864954,3.9002893213182688,-7.8372678160667419,-0.96016771160066128,2.4613418709486723,7.7729225531220436,-0.49051058478653431,-4.0113240852952003,1.6761453077197075,-9.0257217735052109,4.6941603161394596,-5.2474516443908215,6.0802499111741781,-9.239617045968771,9.7563143447041512,-5.6246539391577244,6.4412788115441799,-1.4268857054412365,-1.6679842583835125,6.1886345501989126,-7.6189881097525358,7.6668580155819654,-3.1171938497573137,9.3230209872126579,-7.9861166886985302,-2.6631711982190609,0.081728948280215263,-6.3814873527735472,6.3420902471989393,-8.4890874288976192,3.9075943361967802,-5.0618826970458031,4.9375493917614222,5.3927442338317633,-4.1475415229797363,-7.7303309179842472,-3.6717208009213209,9.3885484337806702,-6.6663217078894377,-0.86891841143369675,-3.9116695057600737,-3.4293356630951166,3.1555617786943913,-4.4730825256556273,0.90203455649316311,0.49487629905343056,-2.6139596756547689,7.1797890681773424,-9.2849966883659363,7.0606642216444016,8.5837066918611526,6.3585155457258224,7.5709050334990025,4.2010355275124311,6.8042220361530781,-1.440106863155961,-3.8759820722043514,-3.6306396126747131,-0.15992037951946259,-7.7817415725439787,-7.7305923867970705,-8.06622713804245,-9.0794939454644918,0.94526577740907669,7.0820065680891275,7.284523556008935,-9.0124588832259178,7.6035573426634073,-7.0116040855646133,-4.0298426989465952,-9.5661944709718227,0.96952976658940315,-5.1131270825862885,3.6731612123548985,-5.1793969422578812,9.8756291903555393,-0.30004214495420456,-2.8082543332129717,1.6694779694080353,-1.0836768336594105,6.6435264609754086,-2.2506401315331459,-6.5086300298571587,9.4551155064254999,-7.8735312446951866,9.5603870414197445,1.4251582231372595,-7.3656543157994747,5.4479349683970213,3.443134743720293,8.7657429091632366,5.8412211667746305,-6.595726041123271,5.6324534770101309,4.6457104478031397,0.45561084523797035,-2.5484422594308853,8.3310040552169085,-0.81470050849020481,7.3286256846040487,-7.7879832405596972,7.3656932171434164,-4.7939635626971722,7.8544424846768379,9.6149796899408102,-1.036197654902935,4.6260841935873032,-9.4028439093381166,6.4024204201996326,5.4801306594163179,4.5561139564961195,-5.3926192503422499,6.2482955493032932,-4.8965756967663765,3.252304382622242,1.4798624441027641,-7.9518121201545,-6.1062874086201191,-8.3724462054669857,4.2966374475508928,-6.4143071230500937,-5.2597890421748161,-1.2743947375565767,1.2477141711860895,-9.6678368467837572,-7.3338812962174416,-0.542924664914608,-4.93476920761168,1.3339673075824976,-0.011372761800885201,8.8580705784261227,-2.4076408054679632,-5.218958081677556,4.9715586565434933,-3.013542303815484,-8.6054455488920212,8.2766706775873899,6.0042212437838316,-7.0534304715692997,-7.0059126056730747,-8.3731401152908802,-7.365904962643981,1.2353134527802467,1.9132888037711382,-3.3549817837774754,-7.1787879429757595,6.1110644787549973,8.6608205176889896,2.4105868395417929,-5.2668906934559345,-0.63184787519276142,0.53283494897186756,-4.6429301984608173,6.2721963878720999,-3.1951816845685244,-1.418519290164113,-1.0536426305770874,-8.5716220922768116,-3.2524937205016613,-4.6619076654314995,7.317908862605691,-7.9056106507778168,-9.5981912314891815,3.1999754998832941,1.988329840824008,-2.1402714494615793,8.4578104037791491,-9.5803992263972759,2.2302052192389965,3.0592154618352652,-3.7656307313591242,-8.9556531608104706,2.3373344261199236,3.5797963477671146,5.6373231951147318,6.4910626690834761,-4.7095916513353586,5.8931574039161205,6.2966119963675737,7.1579504851251841,3.6739377770572901,7.872326010838151,-9.8165959678590298,-7.5284303724765778,9.670749120414257,-3.7193792499601841,8.3929950650781393,1.0682027135044336,-6.7169075086712837,8.9355274476110935,-0.59003980830311775,3.2010154891759157,-0.53257010877132416,9.0942559670656919,7.160187903791666,1.2782333232462406,3.2675520610064268,-2.25240683183074,3.7984380498528481,0.34841186366975307,-4.2417263146489859,9.305874751880765,3.8371059484779835,-9.7602156363427639,0.055801859125494957,-2.1380749810487032,5.3738550376147032,-1.618262492120266,1.8623605277389288,0.6934825424104929,-4.6388260181993246,-4.7488459199666977,6.146664209663868,6.9854981824755669,5.2680857945233583,0.71806804277002811,8.5696787107735872,-9.4097626954317093,-9.8816175013780594,-0.34534473903477192,-4.2089533992111683,0.12026477605104446,1.2901702895760536,3.8921452593058348,-4.7145181242376566,3.0939272977411747,-0.36380439065396786,5.539681687951088,5.4302510060369968,6.2287792190909386,7.0924622658640146,3.0134361423552036,6.8213464040309191,6.3691441901028156,6.206531161442399,-6.8306428007781506,-2.6135278772562742,-5.5629752390086651,3.0751927010715008,4.7638292331248522,5.6780366692692041,-9.2375768907368183,4.0452033467590809,7.7327588945627213,4.4788796920329332,-3.4689026884734631,-1.8474340625107288,-9.8242248129099607,4.2535707913339138,9.7644014935940504,-9.7039424814283848,5.8387169428169727,-8.6842181161046028,4.3461329210549593,5.4561164416372776,0.94915555790066719,-7.542452672496438,-6.0020474158227444,3.589113550260663,2.2315455786883831,5.5866367369890213,-5.3962394408881664,5.4037530161440372,0.87706288322806358,0.79596353694796562,-2.2407500259578228,-0.28562555089592934,-0.5085578840225935,-7.3322824854403734,6.3282880745828152,-0.46220269985496998,-8.2407018169760704,-1.4754241518676281,2.5463462714105844,-3.558118212968111,-1.2927549425512552,-7.332251314073801,6.8521852325648069,4.6773356013000011,-8.0204340815544128,0.56440680287778378,5.9852186404168606,-6.4301854092627764,7.8738544508814812,-4.1281041502952576,-1.0464080609381199,-6.9802101142704487,3.6086330842226744,-9.7036469634622335,-9.1945125907659531,7.8268932923674583,6.5957043319940567,-5.9971622936427593,5.6933620665222406,8.3363748528063297,9.4522946141660213,4.7157325223088264,-2.6833823882043362,0.39225870743393898,-7.3078228253871202,-2.5782052148133516,8.105012709274888,0.94874647445976734,5.5820819269865751,-1.9489311892539263,4.3135652132332325,-1.9093491695821285,9.5685701444745064,-1.0414286702871323,-3.2915914058685303,-1.7767059337347746,-1.0965639259666204,-9.9498340394347906,-6.8607003893703222,-7.7914195787161589,9.6111577935516834,-5.2708102948963642,-6.5085893124341965,-9.8605467565357685,-6.209336007013917,-0.31024022027850151,5.7926936075091362,-2.1984149981290102,-8.760812496766448,-2.9756234586238861,8.69658587500453,3.518947521224618,2.9510950203984976,-0.94589080661535263,2.413284070789814,0.065474910661578178,0.43690226040780544,3.0163723509758711,-3.8297952804714441,-7.3692305944859982,5.34141905605793,-6.7698047682642937,-0.10871494188904762,-7.1719509176909924,1.0209484957158566,-0.91854625381529331,1.9931831955909729,-0.56993784382939339,1.0547325573861599,6.8901784997433424,3.2301773689687252,9.5911437924951315,-1.6461262106895447,-6.4431576803326607,9.848894476890564,-9.630371555685997,2.3452664725482464,-3.1062992662191391,-7.5717133935540915,2.2130135353654623,-5.881415531039238,-8.9507979433983564,3.9389735087752342,2.3278710711747408,4.5291897095739841,2.0915625151246786,-7.1087136678397655,3.8494072388857603,-3.0124276597052813,-9.8716219794005156,7.6493932120501995,3.3518530521541834,-5.4056479502469301,7.2749361488968134,9.8519896995276213,2.3910353239625692,6.1307868082076311,0.13401178643107414,-7.6638261415064335,-5.9259420167654753,2.6925561018288136,-6.2094972282648087,-3.0198857840150595,4.7796826809644699,-7.873065359890461,-2.6094870362430811,2.3514396976679564,0.64709536731243134,-4.2680782545357943,6.4088208694010973,-6.9475195556879044,-6.9611485581845045,3.9762063696980476,8.1005648896098137,6.19424132630229,6.6140978969633579,3.1434842851012945,-7.4595174379646778,7.8904400020837784,-5.374744962900877,6.661444716155529,-1.0985251795500517,-2.9126230347901583,7.5447097420692444,3.9367722626775503,5.3315278887748718,6.9893466215580702,9.9488014820963144,9.5066657103598118,-1.4692533202469349,6.2595133669674397,3.6412858683615923,-0.90830368921160698,-5.8600334264338017,-9.5817656721919775,-0.73564926162362099,-4.0570676047354937,-7.1351862791925669,-1.0757719725370407,-0.49947259016335011,5.364251472055912,-3.0253889132291079,-7.7114100567996502,-5.6688067223876715,4.3654507212340832,-9.8696157895028591,1.3674268405884504,2.3429987300187349,-1.2202479783445597,-8.7077033240348101,9.6302430517971516,-4.5048748143017292,6.5690390300005674,5.8391068875789642,-2.130416501313448,-5.9100759867578745,9.35292256064713,-5.43037174269557,-8.2578437216579914,-9.5794162712991238,-1.2492684368044138,3.545451108366251,8.3968843147158623,6.4348214026540518,-9.9565569683909416,0.14703258872032166,-8.8232019636780024,8.444605665281415,8.4875607304275036,-9.5666590146720409,-6.8380562029778957,-7.2105787042528391,-8.1962605472654104,5.4489962197840214,1.2795868143439293,6.0156769491732121,5.4826100915670395,6.2279301322996616,-7.1781394351273775,-2.9894641041755676,-3.9231440145522356,3.7185949739068747,-1.5741661842912436,2.9890065547078848,-3.7667333707213402,-7.4877129308879375,-5.9912097733467817,5.737370727583766,7.9899416584521532,6.9495943933725357,1.8331020604819059,8.9464231207966805,2.5335395056754351,1.1985699739307165,4.365639491006732,-6.6969622205942869,4.155984316021204,9.6285101491957903,6.3702311459928751,4.4749988149851561,-8.6948032584041357,6.44164620898664,4.7479631099849939,-0.98389506340026855,3.6757399886846542,-1.8379031494259834,-9.6381685230880976,-8.6983647104352713,6.5843218937516212,2.6981980726122856,8.6151057668030262,-5.9172316547483206,9.0876105893403292,-4.5286755729466677,6.5496882982552052,0.61135829426348209,-4.9010652676224709,7.7960869669914246,8.8337934948503971,9.5674153417348862,-0.45019832439720631,-6.4831634052097797,-2.5273238401859999,3.26827647164464,9.9227627646178007,-8.1260591465979815,5.3239377867430449,-0.57749828323721886,-6.0135726258158684,9.8849091026932001,-4.3325554113835096,2.7412452269345522,-7.8913711942732334,9.7243543434888124,-2.7763946168124676,-2.8642682358622551,0.24381570518016815,-2.1893628686666489,3.3783274423331022,-0.45057200826704502,7.2363317850977182,1.0284470301121473,5.1093214005231857,-7.6351031567901373,-3.1787376664578915,-5.0439067743718624,7.0588819123804569,-1.3715651165693998,8.105153338983655,3.3123099897056818,9.9941011611372232,-9.141628285869956,-3.346593901515007,-6.2036506924778223,-4.7571587655693293,6.4326681010425091,-6.1470971722155809,5.7378567196428776,-3.8419897947460413,7.6775678899139166,-3.1163358688354492,3.7431063503026962,-9.6114629041403532,0.14297314919531345,2.9497979022562504,-2.746555432677269,-1.3571002427488565,-8.783712238073349,-7.851575780659914,-1.4341287408024073,-3.4016796294599771,7.9705192986875772,0.51799368113279343,5.9198811091482639,-4.558073952794075,-7.548882020637393,5.9398983232676983,-8.1287560891360044,-0.003575468435883522,-0.09281977079808712,-0.021810270845890045,-6.5651440154761076,-0.37544122897088528,9.9593400023877621,6.62757633253932,9.6755511127412319,-3.0122941732406616,-7.6281149685382843,-5.7282576616853476,5.1735134795308113,-8.7588307727128267,-9.6687872707843781,-3.3076574839651585,8.200719365850091,9.4905242789536715,7.2417089063674212,-8.5982757434248924,8.7795912194997072,-1.41022689640522,-1.6833806596696377,7.4213180132210255,-9.9080154486000538,-4.0156439039856195,9.0729525405913591,9.1134989820420742,-9.4224592298269272,-3.2722711842507124,2.938258945941925,3.3182056993246078,9.0832927729934454,2.901785047724843,-9.6986019145697355,-4.4023758172988892,9.2696824576705694,-4.4467831216752529,2.9161174595355988,-8.8137564994394779,7.1945231966674328,-1.6484990436583757,-6.3233614061027765,3.2648763991892338,-7.2222550120204687,-4.4399652909487486,-2.4966014642268419,-0.38075054064393044,0.72573867626488209,-2.5099840760231018,-5.3023071028292179,4.1245595086365938,1.4717721939086914,-3.9246471971273422,-1.5453945752233267,6.5534403827041388,3.6726416554301977,6.0884098149836063,7.9038863349705935,0.61777196824550629,2.8935533948242664,-8.047992279753089,-2.6062305364757776,-2.916568685323,1.2301612086594105,-4.6804781723767519,-4.7966015059500933,3.5185302142053843,-4.062584051862359,0.14988681301474571,-0.85225422866642475,-3.8367496058344841,-4.2505770269781351,0.55195257067680359,-3.3330620545893908,1.2261006888002157,7.0743645168840885,-1.1554311029613018,0.6695217452943325,-7.3479433357715607,3.1163764372467995,-3.0611165426671505,-8.1856783013790846,3.3048029150813818,3.8226978946477175,8.0836235173046589,1.4605968631803989,8.2515691593289375,4.1230036783963442,-4.6770666632801294,-7.4593680910766125,-9.5994868408888578,1.4246683102101088,4.4003791082650423,-2.8282146900892258,6.195759791880846,-7.8650511056184769,-7.9139154218137264,-9.1764780972152948,-9.0673734527081251,4.6543876267969608,6.2929582595825195,5.7495963107794523,-6.5346814692020416,-8.391425758600235,5.3072877880185843,-0.41402697563171387,1.4486955758184195,8.2266323734074831,5.0104425009340048,-9.4927693251520395,-4.9740438628941774,1.2448356673121452,1.953148515895009,6.5672001894563437,-5.0662861485034227,-9.0712592843919992,-0.6547855120152235,-4.9800273030996323,0.68115608766674995,8.1904490012675524,-3.1234933342784643,3.4475845936685801,3.5543710272759199,-1.6860384959727526,2.7510632481426001,-2.8798886761069298,-2.2889236081391573,-9.9390216451138258,-5.1367889530956745,5.988103374838829,2.0535460393875837,-6.0516216792166233,-9.6055316925048828,-0.17115284688770771,3.434179276227951,-1.7487992998212576,7.930232472717762,3.4173092897981405,-5.2826613560318947,-5.6893739104270935,-1.3072788156569004,8.5650132782757282,-7.8216867242008448,0.91124339960515499,-4.7320974431931973,7.6383134722709656,-2.8653335012495518,2.3399003315716982,6.7049692943692207,-9.5809387974441051,-6.8383653648197651,7.5933382101356983,1.2354354374110699,3.9634844940155745,-5.715999798849225,-8.8085857313126326,-5.9003768488764763,-7.6336669828742743,0.95903734676539898,-1.4592271484434605,-5.2306170482188463,9.019307903945446,7.5080904550850391,8.4764156304299831,3.1176452338695526,-1.7364516947418451,-4.5435688551515341,-3.7617058306932449,-2.9898476414382458,9.6307452023029327,3.9347687363624573,-8.341738898307085,0.39434912614524364,7.8258444648236036,8.9680597931146622,6.181091321632266,5.6019693054258823,-7.7017616014927626,-3.5072183050215244,-5.8180016838014126,-3.1542669236660004,6.235867515206337,6.2254551332443953,-8.7754485756158829,-8.9642007928341627,-1.3227170612663031,9.0944191999733448,9.9036433827131987,-9.4655109662562609,-6.8428056873381138,-7.0351623836904764,0.025840513408184052,-5.6984126847237349,6.7780415061861277,-1.4562742225825787,4.3992079142481089,-2.5124725420027971,-7.1259548421949148,-5.923010278493166,-8.0337187275290489,-2.7106381952762604,2.3039090353995562,1.7992542497813702,0.066268416121602058,-6.2266514636576176,8.6688798293471336,-2.1365620568394661,-9.1984277591109276,2.0246588904410601,8.4420657437294722,5.799099188297987,5.4601813666522503,9.2683503124862909,-6.8361472431570292,4.873309014365077,5.7047208305448294,-0.75687812641263008,-0.85059828124940395,3.9947586413472891,-0.091405352577567101,3.750316770747304,-8.425926435738802,5.454406850039959,-7.7839504275470972,-4.8548184428364038,5.0664715096354485,-7.8132196422666311,3.2174895331263542,-3.6533133033663034,-1.2366400100290775,-4.2085799761116505,6.3963868096470833,4.073238056153059,-1.0878800973296165,-4.0007260721176863,-0.20304713398218155,7.3868958279490471,-8.4416835848242044,0.62400205060839653,7.6025477144867182,-3.9804248604923487,0.99941681139171124,-2.8015648573637009,-5.9005013760179281,-9.7265946492552757,5.1237320993095636,-5.4344885423779488,2.5511039793491364,-3.5953208524733782,-6.55751739628613,7.8051475528627634,1.1150603089481592,0.81869947724044323,-0.11780135333538055,0.11273182928562164,-5.3160660527646542,-7.1221121586859226,-1.3390285149216652,-5.0521825067698956,7.9686474334448576,9.0575545281171799,-9.6808967832475901,-6.8322335463017225,-9.3491879012435675,8.198948884382844,-0.26595775038003922,-9.9518344551324844,-0.4816870391368866,4.2860077135264874,-5.0682469550520182,-2.026534965261817,0.026901243254542351,-7.8707261476665735,-3.294347170740366,-8.0928461533039808,3.5347163397818804,7.9776286333799362,0.004581911489367485,-2.9917353019118309,-2.0951643865555525,6.5722170192748308,-0.74842735193669796,1.1815684009343386,-1.3797979895025492,9.7352578863501549,0.47945033758878708,-1.878094132989645,-5.1280295941978693,-6.7933515552431345,4.1404361184686422,8.3099537622183561,5.3930248972028494,0.56956775486469269,-7.2746612690389156,-5.2319274097681046,6.9960613362491131,2.8030113503336906,-9.788134740665555,-9.1805847082287073,1.9128152076154947,8.685287619009614,-6.3708410691469908,5.2741792425513268,3.1306490954011679,-3.1805508304387331,4.4822461809962988,-6.8883226532489061,7.9611911904066801,3.740477729588747,6.2093087285757065,-0.14807197265326977,-8.6455672793090343,-6.0492527484893799,-9.7909129410982132,4.1262005921453238,9.0534627344459295,1.5483269467949867,2.7310851588845253,1.3483650051057339,1.970729622989893,2.0528672728687525,2.5403494294732809,-4.3470406997948885,-0.71299721486866474,-3.3441176172345877,-4.5847407728433609,4.2618731968104839,9.3029304035007954,-5.6485572922974825,4.6976224053651094,-7.0601180009543896,0.59678096324205399,-9.9022678565233946,-7.4158638250082731,1.5767133049666882,-0.17939282581210136,4.9448534287512302,8.1516939774155617,5.5208204779773951,8.4298948291689157,1.2425380758941174,3.3375295344740152,-6.1410097125917673,8.0497906636446714,-7.1681748609989882,4.485133346170187,1.6362624429166317,0.66296916455030441,2.5228320434689522,1.2382525857537985,-8.6887032818049192,8.9639529585838318,-2.8424766659736633,6.4947309903800488,-3.0561155918985605,-4.1346986964344978,8.1190549209713936,-3.0438014306128025,2.8294101264327765,-6.1039046384394169,-8.3252277597784996,-2.1029454935342073,-4.2048480268567801,9.119257964193821,7.368753831833601,6.6457875538617373,-4.2484519723802805,-3.7322547845542431,-8.0061149504035711,1.2260441668331623,6.1243998166173697,-7.2121559176594019,5.2955137100070715,1.6990437917411327,-4.1709006484597921,-0.32715304754674435,1.5388055797666311,2.7054694388061762,-9.1750425472855568,-4.9400857742875814,-8.0215688515454531,1.4923275541514158,1.5492925606667995,-1.0398424882441759,3.3673701994121075,-4.6089538652449846,-2.687570983543992,9.9945367965847254,-1.8199033197015524,-7.1150302048772573,-2.3126307968050241,-8.385741738602519,0.83861193619668484,-5.4491035174578428,-3.0827823001891375,7.6779348496347666,3.0511561594903469,0.7816746924072504,-2.3933603335171938,-5.2070658933371305,4.8435681872069836,5.8506385516375303,-8.317738575860858,3.7677686661481857,4.888079697266221,-6.0444115288555622,-8.4245345182716846,8.8483637291938066,-5.5506559275090694,-9.8741388227790594,5.3488065302371979,-2.6085261814296246,-1.4994734432548285,-1.6500942595303059,6.8658454157412052,-5.7359656412154436,-4.374498538672924,-2.1968954522162676,-3.2218043319880962,-8.8653546757996082,-0.016027288511395454,-9.370559873059392,9.0002184081822634,6.6709350142627954,-1.5950848162174225,-8.5904403869062662,0.46842829324305058,-7.1255935356020927,0.14946962706744671,-7.8638984449207783,-8.5411470662802458,8.9412684366106987,-4.1012376453727484,-9.5010596141219139,-4.3089306447654963,-0.19730203785002232,3.9447265677154064,-0.98046727478504181,1.2865832727402449,3.6051532719284296,-8.1888522207736969,9.9607396218925714,-9.849018631502986,7.5438615027815104,9.6804145444184542,-1.2725979369133711,-8.5534573998302221,2.0414923690259457,-8.637659540399909,6.8561151530593634,-9.2724906094372272,-2.7496671210974455,6.3447524514049292,-3.7454213201999664,-9.2960796505212784,0.78931919299066067,6.087761027738452,-3.0002808943390846,-5.7209363766014576,8.2223519403487444,-6.9307959452271461,-5.8874274138361216,-9.9925121571868658,-4.1518257837742567,0.26409787125885487,-1.3069974258542061,-6.7056682985275984,-2.1670675743371248,-1.9046605844050646,8.3696212526410818,8.2245368976145983,9.7917808312922716,-9.5394135732203722,-8.9239215105772018,-4.3488198518753052,9.3847937509417534,-9.7712762095034122,-5.8392513357102871,-0.29716672375798225,5.5189497303217649,-3.0117610283195972,1.3324517197906971,-5.483856787905097,-7.1809989772737026,8.950211014598608,6.1966706626117229,7.4439532682299614,-9.4772843364626169,-4.7178388386964798,7.2826793603599072,-0.0078551750630140305,7.9781509097665548,8.7824811413884163,7.1606903057545424,9.7221031133085489,-0.61282027512788773,0.32970938831567764,1.4257702603936195,2.9208558518439531,-9.1755969356745481,5.7423085626214743,-9.0198648162186146,3.1320414785295725,0.22123241797089577,-1.7466711718589067,3.6976791545748711,6.893658135086298,1.7124086059629917,0.45153208076953888,8.8997632823884487,-1.678364984691143,-8.2802325766533613,-5.8689023554325104,1.3581445720046759,6.3359105680137873,7.6490444503724575,-2.5097844656556845,-1.94745565764606,9.1128249559551477,-0.75081568211317062,1.0409031063318253,-5.5414054729044437,5.5982517823576927,9.8178281541913748,8.2379425875842571,-4.8987877368927002,6.0745459608733654,-5.1059097982943058,4.9740583635866642,-1.0009660106152296,-3.2356699835509062,-1.9053606037050486,-3.395603122189641,-9.9016229528933764,3.42303148470819,-9.1097314562648535,-7.2565784770995378,-1.3144431449472904,8.1541308388113976,6.4771499764174223,1.4597825985401869,-5.4337766487151384,-5.4840992204844952,8.744436651468277,7.7469479199498892,2.9538294859230518,5.0122712831944227,1.2435741350054741,0.75057502835988998,-5.085414219647646,9.4432488363236189,-7.3166557401418686,8.9669964276254177,8.3091075345873833,-8.8295228965580463,2.2086867038160563,1.3975265808403492,8.2293333765119314,-9.5937982946634293,-2.9679352324455976,-2.0873966813087463,-2.8759608324617147,3.7263445649296045,8.6732101906090975,-9.356180289760232,-9.3221249617636204,3.0457729380577803,-9.6941279619932175,-9.2086548265069723,-9.8616629093885422,-4.9685170128941536,-5.8653963357210159,0.28381789103150368,-9.8726249486207962,-9.2075104732066393,9.3714830093085766,6.5150890499353409,-0.89820848777890205,3.8100171275436878,-5.0420292932540178,-1.3862929213792086,0.57493778876960278,2.9794986080378294,-3.5667931288480759,-7.0920662023127079,3.6433604825288057,-6.0402633622288704,1.2937020044773817,3.2496776338666677,-2.6679039094597101,0.53905108943581581,-0.16825737431645393,-7.9016131907701492,-2.4128808546811342,6.71153474599123,0.7646066602319479,-9.2557772342115641,-1.8479695729911327,1.1754505336284637,-4.2027938459068537,3.6438772082328796,2.6443455461412668,3.5156929492950439,8.2515045721083879,3.0374862626194954,-8.9682821184396744,-9.9175565410405397,-4.3727846257388592,6.6088392399251461,-5.2387645933777094,-7.9164836369454861,7.6595301553606987,-6.276540644466877,-9.8185824137181044,-0.91462594456970692,7.8818207141011953,9.7608818393200636,-8.8587718922644854,-9.3791843578219414,4.0485029388219118,3.1890027225017548,-2.4311396945267916,-0.16478667967021465,-9.5696482434868813,2.921975078061223,9.6352380979806185,-0.55313357152044773,3.4841373842209578,-2.1028778702020645,-3.068302683532238,-8.9631478767842054,-3.6263570003211498,-8.18205451592803,4.2097650188952684,-6.4792162179946899,3.8130517117679119,5.960227781906724,-6.4515445847064257,8.8901926018297672,-2.5327932089567184,-8.655404495075345,8.6166617833077908,0.23473775014281273,5.2374467439949512,5.7675455696880817,-4.8614868521690369,-7.0094841904938221,-8.4007662255316973,8.3220599964261055,8.862503319978714,-7.9065534938126802,-5.4445541277527809,-6.6211894899606705,-2.331731328740716,-9.4083821307867765,-6.6784675046801567,-5.0033251661807299,9.113971097394824,-1.4876164961606264,-2.3703843541443348,0.95021960325539112,-9.6590423863381147,0.47461547888815403,-3.1375643517822027,6.9559932965785265,9.3794682901352644,0.72370396926999092,3.2926954422146082,0.33240132965147495,6.6692283097654581,9.7203326784074306,9.631480323150754,-3.7100551649928093,5.1028911862522364,4.2922855354845524,0.44310674071311951,7.2950728889554739,8.2901800237596035,-6.9441975280642509,8.8721697311848402,-5.4431802779436111,-3.5308957379311323,-3.7646167818456888,8.0857963114976883,-2.0212511159479618,8.8325566984713078,8.7805785890668631,-4.8155065719038248,5.7810865808278322,2.7222874760627747,-6.5142902452498674,-5.6761246360838413,1.3732751738280058,0.63593553379178047,8.168599670752883,9.6548085287213326,8.3670960366725922,5.7832320965826511,-1.2180292140692472,8.5830678604543209,-4.3783239088952541,-6.4898928068578243,4.3716226052492857,-6.1387610994279385,5.8422321267426014,-9.6045218501240015,-3.198731942102313,-1.0876976884901524,-0.93498070724308491,5.7793243043124676,-6.8962939269840717,-6.0120065324008465,-3.7937588524073362,-1.7049838416278362,4.3366386741399765,5.886308467015624,-8.8134705368429422,-7.9993034340441227,-4.2928003240376711,-9.0950014349073172,0.31089059077203274,5.1382397953420877,-1.6036412119865417,7.6022158470004797,-9.5581217017024755,-3.3514370582997799,-7.6025868114084005,3.3234794158488512,-2.2813535574823618,-2.7091802004724741,6.8084277119487524,9.2446862626820803,-4.5578324887901545,-3.4905965067446232,-6.4554379135370255,3.455014917999506,8.4358321130275726,1.0304679349064827,-0.92533170245587826,7.9501478374004364,-1.8651563301682472,-7.6823774725198746,2.2818374913185835,-9.1571872867643833,-4.8467220552265644,1.1424581333994865,1.2939352449029684,7.169749466702342,1.9794212374836206,8.132832134142518,8.5098204389214516,4.5522618107497692,9.8643671534955502,-9.5810957346111536,-9.4760083314031363,-3.2720217946916819,7.1297492645680904,9.6960236504673958,1.0696475487202406,-2.4335620272904634,-0.87693345732986927,1.3794540520757437,4.4843422900885344,8.3409828692674637,6.8992273136973381,-4.6864064317196608,-4.4328563287854195,-3.0162743292748928,5.4774025268852711,-1.2956095114350319,4.6910094283521175,1.795577285811305,-1.7324650567024946,2.4598567001521587,2.8116569668054581,-4.4812586344778538,3.4861735161393881,-7.8816086985170841,-6.1973793990910053,0.64446923322975636,-8.4055138006806374,8.529564430937171,-3.6104642227292061,-1.0721414070576429,0.51944145001471043,-9.7474672738462687,-5.6824695598334074,-5.265858331695199,-3.2809437531977892,-2.8216074127703905,-2.7557302545756102,4.4416680373251438,-8.8851836510002613,6.7183863557875156,-4.0803874377161264,0.92838062904775143,3.2933179289102554,-9.2054647672921419,3.7536623328924179,7.8029365558177233,3.9548329543322325,8.8775726687163115,5.3639908507466316,-7.4056512583047152,-6.7806780245155096,-2.8555328398942947,7.0596158038824797,-9.0370506327599287,-5.7099772617220879,-7.5878041889518499,-8.2249848358333111,2.6798780355602503,0.71024289354681969,-2.9476043395698071,-0.38607995957136154,-8.845805274322629,8.5507634840905666,-7.3179777059704065,6.7487167380750179,5.6823479011654854,3.2212976180016994,0.34916922450065613,8.4872371703386307,4.9952665623277426,-4.5547696016728878,7.9873472917824984,3.3460737578570843,-2.5382472481578588,-0.32144139520823956,-2.4654535204172134,3.1227413099259138,3.9132986217737198,-9.1899549588561058,4.4270128384232521,4.8048882838338614,-4.2424977384507656,-3.659445084631443,-4.2934877797961235,-0.64907037653028965,-8.9257451612502337,5.001083267852664,-6.7933997977524996,3.3296242635697126,0.99510213360190392,4.6816454920917749,4.4159004837274551,-1.9604571722447872,-9.4036309979856014,-6.826178478077054,-7.581656202673912,-4.8957794159650803,-3.3646041806787252,-8.9024127367883921,-2.8508586157113314,5.6193016842007637,3.6035285983234644,4.5052584819495678,-0.12058035470545292,-6.5939442161470652,-4.4204141292721033,6.099772984161973,-1.1153291910886765,-5.3376450948417187,-9.8010725155472755,-6.6257672477513552,0.72989344596862793,7.3192303627729416,-5.6951573304831982,1.4907802548259497,-4.4561672117561102,5.1977153960615396,-1.9972194544970989,-7.2673091012984514,-1.664044139906764,-7.5897941738367081,-1.6706608142703772,1.203759741038084,-8.4099446889013052,-5.9403739217668772,0.13552863150835037,-2.1702109184116125,5.2651555277407169,-8.5309257917106152,0.73023021221160889,-7.0207393821328878,2.4332278035581112,-4.7402082942426205,-8.68076017126441,2.4638118781149387,9.2863330151885748,-4.6008627861738205,-6.7008049692958593,-0.42909313924610615,8.2316835876554251,9.9062004033476114,-6.4896651450544596,8.1979345344007015,2.6858620904386044,1.2842532806098461,4.4449755176901817,6.7036388628184795,8.0584981106221676,-0.82211344502866268,2.739401226863265,1.1165195889770985,5.3448189329355955,-9.6280740574002266,0.95932018011808395,3.2943530101329088,8.1911453418433666,8.5799027234315872,2.4252181220799685,0.64107503741979599,-5.4517628066241741,-7.7774553373456001,4.3081626202911139,7.289271205663681,-9.2187110986560583,1.1225709971040487,7.0508353691548109,3.3901828248053789,-1.1971587035804987,-0.64626218751072884,-1.7285122908651829,8.893992155790329,1.32631023414433,-8.7038060929626226,-4.8689942806959152,6.8131644930690527,8.8557665888220072,-1.1307941004633904,-5.2563770767301321,-3.9294914808124304,-2.9632705077528954,-3.6873687338083982,6.3937402796000242,-0.4069924633949995,-0.32225720584392548,3.8232171162962914,-3.1898182258009911,8.7251322530210018,3.2979230675846338,8.1931009609252214,1.4479926507920027,-3.5874285455793142,6.0884846281260252,9.1612708196043968,-6.5211849473416805,-1.5553827490657568,-1.3177974615246058,-8.2218678947538137,-4.9336932133883238,-0.5817977711558342,1.7249338887631893,-9.0360397938638926,-8.7208079267293215,9.3811854626983404,9.5842232462018728,2.0402521826326847,-9.4814722612500191,4.8957092221826315,2.185013797134161,3.526983791962266,-1.9833026267588139,6.6328147985041142,-2.2815513703972101,-6.0338218603283167,9.5560244936496019,8.1038178130984306,0.86612642742693424,-3.0130491964519024,-0.31779008917510509,-1.0979529935866594,6.7041064519435167,-4.0827314555644989,1.5324726328253746,-3.7323698494583368,-9.9400107935070992,-1.7614060081541538,-3.9507145714014769,0.34024579450488091,-1.4888508338481188,-3.1158978771418333,-8.8955672457814217,-7.7986912056803703,7.3969233501702547,0.09088246151804924,7.4616097006946802,7.2743762284517288,0.44140677899122238,-1.2761837802827358,-8.8207269366830587,-9.957615602761507,2.3545647133141756,-6.8307666387408972,-4.6948725171387196,-6.722354032099247,-2.6041918434202671,-8.6522544827312231,1.5589192789047956,0.75641101226210594,-7.0000327285379171,-9.550045058131218,-7.6072884909808636,4.3023508042097092,9.6100782789289951,-3.4142125677317381,-2.6705743279308081,-4.3426721729338169,-7.2911662235856056,-2.6306986063718796,5.8485803753137589,-2.9095080681145191,-0.10204531252384186,4.9245098698884249,6.237500011920929,-6.3371725659817457,-8.8592877890914679,1.9501376617699862,-4.0362251084297895,3.1646492891013622,8.2607049494981766,-2.3317708726972342,9.9270025826990604,3.1325633730739355,8.992714025080204,0.54476816207170486,-4.0814175363630056,3.6155126616358757,5.9214106667786837,1.149201150983572,-5.3761681634932756,2.7417123503983021,-0.040427139028906822,0.54115228354930878,-4.853487890213728,7.4290694482624531,0.37035334855318069,4.5288102887570858,-4.2853631544858217,-4.0984927210956812,-3.3671172708272934,8.8600811082869768,-8.6166654154658318,-0.29562691226601601,-8.6014385055750608,-4.3769522570073605,-3.4365395177155733,2.0803771167993546,4.8982965853065252,5.6708258390426636,9.5699994266033173,2.9805160779505968,-6.4661762956529856,2.975026611238718,1.2723566312342882,4.4979893695563078,-2.2925524041056633,9.0718045085668564,9.8185247369110584,-0.054591633379459381,2.4784956220537424,-3.9239824842661619,9.6264344826340675,-8.5154967661947012,0.04586217924952507,-9.1942747309803963,-8.1753972824662924,-3.9021121338009834,-2.7985850721597672,4.1807485651224852,5.8412449900060892,-6.1953289899975061,-4.8943051137030125,1.4139939472079277,4.9963600467890501,-6.1765762511640787,-9.717023391276598,5.9878650214523077,-1.9524593278765678,5.0161393545567989,6.2542495504021645,-4.827679181471467,1.1960374843329191,1.8020868021994829,7.6729769259691238,-0.27666692622005939,-9.9409528821706772,2.4049098137766123,-0.68066277541220188,0.1008065789937973,-5.7437478005886078,4.8307488113641739,-9.6046113315969706,-4.7026470582932234,2.610932718962431,1.9463062938302755,-8.4300260990858078,-3.4486350510269403,-1.2092513404786587,-3.8872106280177832,7.6510227378457785,-9.2607068829238415,-4.7005755174905062,-2.5726809911429882,0.95063998363912106,-2.5937092769891024,7.5282396003603935,7.1231004316359758,-2.0509114861488342,-9.6692854911088943,8.3187535125762224,-6.7095707636326551,-7.7557986229658127,8.2925613690167665,-6.9209277722984552,-0.033044926822185516,4.6139928977936506,7.3787475842982531,-5.389214688912034,3.4687595348805189,-0.55839185602962971,-4.8918503988534212,2.6703864429146051,1.1850452236831188,-2.944838022813201,6.1074057873338461,7.1691937744617462,-7.3600982502102852,-1.171270627528429,-5.5453677754849195,-0.99616771563887596,-2.5907262787222862,-2.3365085013210773,-9.6983217261731625,0.30675056390464306,-4.4431917928159237,3.2755816262215376,-7.2995041962713003,-2.7670056000351906,-5.0630631856620312,5.0970772095024586,6.5767782554030418,-4.0877317078411579,-2.5067674182355404,8.7600603513419628,-9.6655281726270914,-8.5319947265088558,2.7646430488675833,5.3558222111314535,-4.6959773357957602,-5.2910412102937698,-6.5295845549553633,-2.727587977424264,-2.5710796564817429,7.8642716445028782,-5.1863310299813747,-6.6655832249671221,-8.4572359267622232,-0.76420902274549007,-4.0609730035066605,7.2267765365540981,0.43338468298316002,3.8964485470205545,7.6108385249972343,-4.6367725450545549,9.7638772334903479,1.4848179463297129,-4.6646861545741558,0.61984182335436344,-2.3183917719870806,-5.2104516699910164,7.9388199374079704,7.7468284033238888,0.94511355273425579,4.5235664583742619,7.5815795548260212,3.6077155545353889,-5.1245684269815683,-8.6215141229331493,-1.7878533527255058,-8.4512349870055914,0.093585513532161713,-7.1081950701773167,-7.4345218390226364,7.99147161655128,-7.3363998159766197,-2.8716862760484219,-4.4311857596039772,5.0609819125384092,-0.076878098770976067,7.9098716098815203,1.2122874427586794,-5.0848618056625128,-1.272329306229949,-4.0385815035551786,3.5607163980603218,4.9606083240360022,-7.055780841037631,-6.5085722785443068,-9.5742581691592932,5.4429542645812035,-0.26755432598292828,3.2145193684846163,6.4271295350044966,0.76622338034212589,-2.083562333136797,1.567928921431303,-7.8185269702225924,-5.982771459966898,7.5601037684828043,2.6641743164509535,-3.2221642974764109,5.0847053527832031,-1.3570177182555199,-7.3967230785638094,3.2752389460802078,6.9410706590861082,-1.4253001566976309,4.9803334847092628,4.4649947434663773,3.1667666416615248,3.8470494467765093,-2.6398396585136652,-7.7850830368697643,-3.8905833382159472,-9.0341175813227892,3.5858182609081268,6.8476174026727676,7.9058185685425997,-6.9071783684194088,-8.9468138199299574,-9.0998633205890656,-1.4028220996260643,2.7690388634800911,-0.76372155919671059,4.1318268608301878,3.614160567522049,3.1967648863792419,8.0275486502796412,-0.98969366401433945,6.218659421429038,-2.9909771122038364,-9.3522699549794197,-3.6011282727122307,-4.1628293972462416,-4.673633836209774,-9.7638434916734695,-0.91756271198391914,-1.4764292351901531,5.6539108604192734,5.2799535728991032,0.17981929704546928,2.2230051085352898,2.0469548087567091,3.1695650517940521,-9.1200714278966188,-1.0404817759990692,-7.3771390970796347,-7.5767840910702944,-3.0101996567100286,7.5744243711233139,3.3505430072546005,-7.4235725868493319,-7.9844470135867596,5.3990584146231413,1.9748950842767954,-7.9382248409092426,2.2551149688661098,1.7173776403069496,3.966092336922884,-1.8859840370714664,2.2663524374365807,-9.4144880026578903,-9.2998560890555382,-2.6812832802534103,-4.3280339427292347,-1.26643106341362,-4.9068144429475069,-8.8303027581423521,9.1015530470758677,9.8022116906940937,5.7720404677093029,-9.3157357722520828,-9.5711188856512308,-1.7951077874749899,9.6234801132231951,1.8304165173321962,3.8104993849992752,3.0632717628031969,4.4086196646094322,-4.3291841447353363,-0.59787618927657604,-8.5050395876169205,-4.2003373801708221,4.9296968523412943,-6.5848858561366796,7.823442630469799,8.6004297900944948,7.4236276838928461,8.9106195420026779,0.78279043547809124,-3.6410665325820446,4.5948366541415453,5.4197603743523359,9.9127324111759663,3.2937904726713896,-1.2634217739105225,5.6703142542392015,0.9717936348170042,-7.0642937626689672,-9.5852462016046047,0.76709287241101265,-7.470009122043848,-8.4432943910360336,-6.4488179609179497,-5.2834413573145866,1.2011445220559835,7.6360698509961367,-0.57387628592550755,-5.1386637799441814,-5.522111477330327,9.8724355455487967,6.0243695601820946,-8.4206766076385975,-6.3117322232574224,-1.2834474258124828,9.0991825796663761,9.9617659207433462,7.3999861534684896,-8.4325824771076441,-6.4136804826557636,5.2721560653299093,9.1271095164120197,-0.67020797170698643,-4.1853074636310339,-2.4624957423657179,-7.1658829506486654,3.0052706226706505,9.5834570005536079,9.1619615629315376,5.0881381519138813,-3.6619627010077238,-6.6070662345737219,-4.9621779285371304,0.67559449933469296,-5.2831661328673363,5.8268418069928885,-8.2696260046213865,-7.6042461302131414,-4.5646917447447777,1.2258886080235243,3.5099229030311108,-8.7256630230695009,7.7815812360495329,5.0359734427183867,-0.39423055946826935,-5.8329378068447113,5.8143129665404558,1.1581524088978767,5.0676236674189568,-8.4489037655293941,-0.72557511739432812,5.2590745314955711,9.2657702602446079,9.800914702937007,3.9735672250390053,3.7444605864584446,-6.8508158251643181,-1.6615488938987255,-5.6521944981068373,3.5671043395996094,-7.6772581692785025,8.3219671063125134,7.3012991808354855,-7.0645322930067778,6.4057744015008211,1.8504944164305925,1.2597496900707483,-7.3868708591908216,8.8614900223910809,-4.9370460584759712,3.0669348128139973,5.9735012240707874,-3.3648020308464766,7.7723194845020771,9.3737151101231575,4.0300074592232704,-7.6645230315625668,2.3614268004894257,8.5003325622528791,5.0895185675472021,-0.4613171424716711,6.6428611241281033,6.5670434664934874,-7.7003289852291346,0.57076324708759785,-7.1820234693586826,-8.2684274576604366,-7.4602673482149839,-4.7133015748113394,3.5404735151678324,4.7384753916412592,-0.44397734105587006,-1.9270963408052921,-8.7081367336213589,2.345928130671382,8.0141888093203306,-5.5285407695919275,1.8153204582631588,-9.9089655000716448,0.01684100367128849,3.0468270927667618,8.0230502318590879,3.4053879044950008,-5.6453842390328646,-1.9728713482618332,1.9513125810772181,-4.2893563024699688,8.7886690720915794,-8.838758310303092,6.9890878163278103,5.5990619771182537,3.434771504253149,8.2047771196812391,-2.3108070436865091,2.2660769335925579,5.9551188815385103,7.6831668801605701,-9.014106746762991,-0.092085134238004684,-7.674773596227169,-9.9198135919868946,-2.307039899751544,5.5804650764912367,-9.1233374737203121,4.067086037248373,-4.4848618749529123,2.9265108238905668,5.8675182890146971,-4.6199923474341631,-8.2113412208855152,-8.0118854250758886,4.241676302626729,9.8537296988070011,-8.36479676887393,-7.1392816677689552,-9.9069678038358688,-6.4078783430159092,2.7887170389294624,9.9673733673989773,1.644342141225934,-3.5415412858128548,-2.684340113773942,4.2957650497555733,-1.0766968782991171,3.9556362573057413,2.3786857537925243,-1.4284391328692436,-7.7764390502125025,1.38890047557652,3.2503821421414614,9.1727666649967432,6.6894886456429958,-9.7642020601779222,-6.9440235663205385,-8.2040552329272032,-5.5562857538461685,-4.494630116969347,-1.2483328208327293,-0.72965124621987343,-3.2484226673841476,3.7602821085602045,-0.93849373981356621,6.7357858642935753,8.3531521540135145,-8.5716038569808006,-2.9460131004452705,6.3578760158270597,-3.1776739750057459,-7.1664445288479328,-6.4331741724163294,-2.3582878895103931,4.2555007990449667,2.2020411118865013,9.7050629649311304,-7.0065941847860813,0.17155972309410572,3.4043456427752972,-3.1626769714057446,4.8881950881332159,-4.1050372272729874,6.639367351308465,7.8472036588937044,7.9520346969366074,9.8472919035702944,3.4351786319166422,-4.952628230676055,1.1773665249347687,7.9992720484733582,3.7654595542699099,6.078836340457201,7.002499895170331,-8.9841288048774004,3.747184369713068,-1.0721906460821629,-0.30811883509159088,1.4468144625425339,-3.3892384637147188,-2.9308079183101654,1.9113722816109657,4.4340302515774965,2.7465512230992317,1.2865063827484846,2.3128631804138422,-7.7084304206073284,4.4099387805908918,-2.1588018350303173,-2.9823799896985292,-4.8604319430887699,-9.2796272691339254,-2.6955066993832588,-3.3810393698513508,-5.1286372914910316,2.9930800292640924,4.6961535234004259,8.2523827999830246,-2.2021378390491009,8.6694001220166683,6.6079968400299549,0.60302035883069038,-5.0367461517453194,7.4074664525687695,-2.7111954428255558,-7.0617505256086588,-6.8410609103739262,2.2893040627241135,-3.666521618142724,-3.2287865597754717,-6.2156571540981531,-6.5497593116015196,-1.8047230876982212,8.0191291868686676,-2.4956152774393559,-3.8059091940522194,-5.9157759603112936,-6.4465329889208078,-6.8799169827252626,9.2352957464754581,-2.3842384479939938,8.1044641602784395,-8.2707165088504553,-5.932350717484951,-5.0184769369661808,-5.5418406054377556,-1.7150207050144672,-4.3529243394732475,0.40067066438496113,-5.9280622843652964,7.0572185330092907,-9.3279822170734406,4.6028828993439674,0.65300355665385723,-4.9691399466246367,3.664956446737051,-3.0768927466124296,6.6636618599295616,-3.8349897507578135,5.3273072559386492,-3.9468294847756624,5.6368967425078154,-0.67632629536092281,-7.015973161906004,2.5390911940485239,-5.4942034929990768,-1.0780715756118298,0.85109851323068142,4.4127967860549688,5.8756960183382034,-7.1768955420702696,-2.0833534840494394,5.0780555326491594,6.8794552329927683,3.0042330082505941,-7.8557285573333502,8.770153671503067,-0.027096150442957878,4.5950775500386953,9.4684977177530527,-2.9587053600698709,-6.9609315879642963,7.6228248607367277,-3.1824276782572269,-7.0619351137429476,-9.9434336833655834,0.71008411236107349,-5.6162397284060717,7.8589189797639847,4.8514326568692923,-1.9712197687476873,9.7094094846397638,6.0453625861555338,4.4091110862791538,3.9301398582756519,-6.1392929404973984,-3.0964207276701927,-1.5431159269064665,4.8506826627999544,5.4236298985779285,-5.0521738920360804,8.1134352646768093,2.5066351797431707,9.0175638161599636,-1.8047929648309946,6.8447042163461447,-1.0561040416359901,-9.9405577778816223,9.0454275999218225,6.5018209349364042,-3.8954173773527145,9.7201866004616022,7.1763482876121998,-7.1141956746578217,-8.2866813894361258,5.7459011487662792,-8.6392694525420666,-0.20167822949588299,-9.6059264522045851,-6.8058791197836399,-6.4103412069380283,1.3953630812466145,-8.1326043047010899,-4.6805344987660646,-5.743279131129384,-7.2923235781490803,-2.0823567640036345,1.8299293518066406,-4.3772916030138731,-9.1399278491735458,5.2326456643640995,5.0758001767098904,8.9736879430711269,0.77340768650174141,-1.3369286525994539,-9.7597964387387037,7.1012559905648232,-9.1904327366501093,-3.6029985453933477,4.4034976325929165,9.5848237071186304,-7.8678011801093817,5.8655825816094875,2.8465732745826244,2.3571264464408159,-3.7757179606705904,1.5082837175577879,9.72453105263412,0.19355598837137222,-6.9044236652553082,-2.6485177222639322,6.3626994378864765,-2.1104193851351738,-9.8185442201793194,-0.27270713821053505,-3.3887957781553268,4.5094082783907652,9.6250484604388475,8.189628180116415,3.080965569242835,1.7884246353060007,-1.9470621552318335,-4.2735799588263035,-6.0583231784403324,-2.2376292012631893,-7.8339248802512884,-4.7754454333335161,-0.91135715134441853,2.820428479462862,2.9415546637028456,-1.290665864944458,7.7788760326802731,-0.43037960305809975,6.610086290165782,-4.2795911896973848,-7.0890804752707481,-6.1755250953137875,7.9497529845684767,-8.5014478769153357,-3.8344555906951427,-5.6950645614415407,3.0499495379626751,0.50198666751384735,-3.1099969055503607,-9.7179376613348722,-9.3782718479633331,-0.61494385823607445,4.6386480703949928,1.7582336906343699,-9.3662694841623306,1.1087846383452415,-4.6564963925629854,-1.7348279897123575,2.7460415847599506,-7.2789851855486631,2.0960077736526728,7.6027464400976896,-0.64044351689517498,-3.9341152086853981,-0.67426490597426891,7.6297982688993216,-5.9803566336631775,8.1460894737392664,-8.6740728467702866,-5.1423252932727337,-7.0611660182476044,2.9827543068677187,-8.8482628669589758,7.2460040263831615,3.5898063890635967,-6.123912651091814,-4.5998965669423342,9.5384416542947292,-7.4109633546322584,3.9389189518988132,1.4109336491674185,-6.4380691386759281,-4.6279858518391848,-2.5581698212772608,4.8398720286786556,3.7293021380901337,-1.6188576724380255,-8.1408350728452206,-3.0150547623634338,5.9746636170893908,-3.8284625578671694,-4.9701617751270533,6.4910847973078489,-4.3376825843006372,-3.4311500284820795,-7.3384772893041372,2.2122194897383451,0.77305960468947887,-7.1871396712958813,5.7435665372759104,-7.8770847897976637,9.8359544761478901,-7.1129641402512789,-7.5882826093584299,3.7342033814638853,0.75633974745869637,-8.197780279442668,-0.093142492696642876,-5.4457972198724747,-7.513838754966855,-5.0879352726042271,7.0719117764383554,-2.3786397930234671,2.2010582964867353,-6.8131154589354992,-8.0314933881163597,-5.3093586675822735,5.6089106481522322,8.9613856468349695,-5.9912852477282286,4.4688727986067533,8.3452394139021635,-1.5610269736498594,3.8197199068963528,-1.9674166385084391,-6.3713805470615625,-3.7928260676562786,-6.0276705212891102,-7.058420218527317,9.1314102243632078,-8.3882093988358974,-0.63535362482070923,1.6117009241133928,7.8575224429368973,1.3798381946980953,-9.0593726467341185,-0.8760663028806448,-4.0462811104953289,-5.846577500924468,-3.428025534376502,5.1748951617628336,-5.5368974898010492,1.3639238383620977,3.4680402837693691,7.3531547095626593,4.4713394250720739,9.8018304351717234,-0.63572109676897526,-4.5644001103937626,6.1273871455341578,2.9958812054246664,-8.224478717893362,-8.8137977384030819,6.501419935375452,9.3649829924106598,-2.7306949999183416,5.2091932576149702,-9.0888002328574657,4.5344934891909361,-8.767813416197896,-0.6400763988494873,2.2360377851873636,1.0871514026075602,-8.2462896034121513,4.6106491703540087,-8.8192795123904943,-5.6307555083185434,3.8922058790922165,-3.6956813745200634,6.6831877734512091,4.3370389565825462,-7.3861445114016533,1.069217324256897,-9.6643445827066898,-8.6393989250063896,-2.3777219373732805,-2.372541781514883,4.6903377678245306,-9.4930212013423443,-9.2073269933462143,-7.5447709672152996,-4.9656267743557692,2.7108427975326777,1.1349976062774658,-4.0951441507786512,-7.087695924565196,-2.9053813777863979,9.2552390601485968,-7.1969653852283955,0.60279239900410175,-8.8680669572204351,-5.6013411469757557,-1.7406227998435497,5.3526676632463932,2.2855363320559263,-6.9907709863036871,6.1120567377656698,5.3377177193760872,-8.978170407935977,3.8899618107825518,-1.4117374736815691,-7.0716529525816441,6.7288488708436489,-8.2368968054652214,2.4754043389111757,4.1208217106759548,-1.3493981584906578,0.66521794535219669,0.31809099949896336,6.1555093247443438,-4.3546525854617357,-8.6459596734493971,7.3557789251208305,8.5765303298830986,5.7453997246921062,2.9332961235195398,-0.091950790956616402,-5.4168660659343004,-1.2679342925548553,9.8284133616834879,6.1435249913483858,-5.7753440644592047,-6.2076583039015532,7.8869159985333681,-4.6026726625859737,2.880602153018117,-5.7195134181529284,-7.8619853965938091,3.611456174403429,-2.2559702768921852,3.9076168742030859,-4.6830864250659943,-8.6335044726729393,-3.3096615225076675,-5.4811564274132252,-1.7960401717573404,-6.0471025202423334,6.3479732163250446,-9.61402527987957,-2.9228759184479713,-4.7755059693008661,-1.9287851545959711,2.907969867810607,-5.7503306865692139,-5.8078159112483263,8.0380124505609274,-5.1246022526174784,-9.1900215856730938,3.3072159253060818,4.378160759806633,3.7480025924742222,-7.3203206900507212,7.3701832816004753,-9.3294501956552267,-0.06943313404917717,-6.9626062456518412,-0.52314690314233303,7.4700730480253696,9.517854880541563,6.5871300082653761,9.8941787239164114,-8.5380314383655787,1.3056268263608217,3.6701591219753027,4.3644700199365616,-6.3522625062614679,-2.475914191454649,7.3102430999279022,3.2559159584343433,2.1796171460300684,-7.174531351774931,-2.3484071716666222,-9.6792743168771267,0.43655875138938427,-2.7569837216287851,3.3746472653001547,-2.3033074289560318,8.3121017646044493,1.494501018896699,-1.9212854467332363,8.9555599726736546,-3.9033909235149622,-4.2912038043141365,-2.2622944321483374,-2.3824605625122786,-2.0146145299077034,0.37365833297371864,0.0756834726780653,-7.9877958446741104,9.1152543015778065,0.07919621653854847,-8.9491097535938025,-7.6876204274594784,-5.8365062158554792,5.8400626946240664,-6.0661674849689007,5.9231109078973532,9.7251536417752504,-9.3425883073359728,-0.88167625479400158,1.667257035151124,1.5890810918062925,7.6860006805509329,-1.3864235673099756,-1.6208283696323633,-1.2623428367078304,3.8040118291974068,-5.9730786457657814,-9.5327678695321083,2.7704204246401787,2.4561768677085638,0.96471305936574936,-6.067525427788496,3.1001659296452999,4.4888820685446262,4.6410394180566072,1.9496138580143452,7.1602051611989737,1.5682785678654909,-1.9420193508267403,0.48083371482789516,1.372327134013176,4.7022303566336632,-9.6142809931188822,-7.2206483315676451,2.5635130889713764,4.9645846616476774,-0.22547457367181778,-9.5510832034051418,-5.055396119132638,-6.0425355657935143,3.1047766748815775,1.9816772919148207,6.0503389779478312,8.0473279766738415,-8.5585547983646393,-3.6304848361760378,2.4414082337170839,-7.2517185471951962,0.36639879457652569,-1.9353784248232841,-7.9051228892058134,-1.4003824908286333,3.7715439405292273,8.3391162473708391,-4.4730869121849537,0.82831015810370445,1.4089119900017977,-0.41609475389122963,6.6955463495105505,-7.9523731116205454,4.4651290122419596,5.4234219528734684,-8.5471173468977213,8.5987620521336794,-0.6060442328453064,-5.7853479124605656,5.6576682534068823,8.4304575435817242,-9.299920778721571,-3.768522497266531,2.4424372054636478,-9.9577903933823109,-0.58314125053584576,-0.85492406040430069,-8.7086116429418325,-5.6358728185296059,-2.1144268754869699,2.8275653999298811,2.8917770087718964,2.0962873194366693,-7.6989275589585304,4.1245345864444971,1.052904911339283,-3.8270686194300652,-1.5422384534031153,-0.40162015706300735,9.9700953532010317,7.3927575349807739,-9.9239734560251236,7.7781251724809408,6.9499130174517632,7.1882169600576162,-7.6374177914112806,-2.0808017626404762,7.964837271720171,5.0201663933694363,-6.0633090883493423,-6.0358170792460442,-3.9776198659092188,8.1429607886821032,-1.2578826304525137,-1.2333016004413366,-8.0999300070106983,4.4763870351016521,-5.3629877511411905,4.2649028543382883,0.2223845012485981,-2.3836075142025948,-1.2914315983653069,-5.090805571526289,-1.1692022252827883,9.2182687763124704,-8.5565261077135801,-9.5342810451984406,-2.6615230087190866,7.7828498836606741,6.358133852481842,1.15578668192029,5.3068503364920616,-7.7662747818976641,-7.7802418731153011,-2.5251440797001123,-0.096489023417234421,-1.6909390687942505,0.38713579997420311,6.5914714522659779,2.8608280792832375,1.9376291614025831,5.7334091141819954,1.4071051869541407,9.2169664055109024,9.5545278117060661,2.9490843787789345,5.2612554747611284,5.9208837430924177,-7.7068052440881729,-8.2757194433361292,9.9833293352276087,9.8162935581058264,2.4459861684590578,9.689630689099431,-6.3768542092293501,4.2113338317722082,-0.11217818595468998,-5.3786939568817616,0.29070285148918629,5.8429055102169514,1.7130342032760382,-9.0340538695454597,4.656622102484107,3.8477911520749331,9.8260012920945883,5.6038713920861483,4.2666089069098234,8.8960100803524256,-4.7584316320717335,5.0396007858216763,0.57052500545978546,8.8138494826853275,-5.6315972656011581,9.7447912208735943,0.70620374754071236,9.1664686985313892,0.83956621587276459,-9.4105249922722578,-2.6935405097901821,9.6647091303020716,-5.2334931120276451,0.68130345083773136,-9.3328181747347116,3.3249424491077662,2.3078464344143867,7.9751195199787617,-2.1660870406776667,-5.424831360578537,4.8593585565686226,-8.7606234569102526,0.20156940445303917,7.7770604752004147,9.0555458143353462,-3.4413493331521749],"expected":[84.544963967055082,112.07656698900159,-17.586067063232143,30.958146975844613,-60.632538882281054,88.156054139456842,-19.083688620631374,61.398478543996703,195.32569594434003,19.183868216160811,75.805159713912403,-189.27647129148599,-34.5925623336705,9.1646681460046544,-22.137149469018226,-197.64207904242204,267.03618327235301,-199.1638347667066,-30.781825902411555,-5.9575092986035649,-14.436700390670318,31.147797070590215,-252.29374931287282,109.93574337821826,0.50530023688978787,-25.601187615928886,-8.9006807383132838,-144.77724478894481,-15.147854849033244,-30.871781534491458,-55.798633755983829,-59.642905324065062,62.599472027926637,63.663405713844689,119.69528256705927,-196.03940763786289,-156.88929065499195,-170.15681500341057,-9.3483301769262237,-0.54856497357176437,102.93297541309389,-171.97426490689989,110.31956396966733,-213.72126748063465,-2.8641217164166548,47.754830114930471,-35.061120357742652,240.82127965736183,-171.70640613097316,267.70463813242503,-46.907218903577544,161.71812121986278,-16.522106104757206,-102.36494270546807,-71.757463220154307,-35.482686800915317,-87.77696980531465,-27.917147515677932,58.870546138123117,-10.391770687502547,-231.90797905417733,91.721272900373719,15.374959703313735,-63.706278590453095,-134.19534573191589,-126.63917884981988,178.64112203750662,-120.48822436410445,88.785059973411421,10.359546507147414,5.6386216673619609,-114.26518205013051,-1.1359838760320713,-216.15540192060482,-35.601744642602362,-22.259415578718507,68.321346103616307,63.875730028421053,-270.37262519979197,172.5647080736573,-62.148183294084362,44.48797555238977,-158.08889194367089,-38.713381610933524,-75.981518166960257,-85.289408117215203,-86.783381977168503,-518.140260222488,321.02030087218196,79.690578248928432,32.556822095420159,-43.431361834041496,3.7784465023430727,88.984005927932927,50.812678645118588,-3.6497136888362149,81.056451808834709,-90.582689808674132,153.36722268373177,161.19383287745222,-175.9946674458198,-163.25493099864553,21.78988911034984,15.602067892795514,204.88221112162384,-8.1264003208673188,-63.160241155280183,44.221829509918848,47.602738671530958,-91.715286959852421,-57.713132162292617,278.63049396672017,-17.344040502801413,-143.64668855464726,-53.510733286646591,-21.276937922670221,-35.308973394540672,-114.28941278125514,-178.10296565278605,71.581395394970087,-69.086452130570677,41.419900329093196,76.545114538898673,83.851739923919411,104.57403794053302,86.797920763028145,152.83674268008014,155.88552700821219,77.993009246726217,-36.55157658647633,227.86346544729815,25.999823111119824,231.58804764184708,-355.61609435958758,107.08509418890718,47.529833502958716,150.01617986378056,327.75558801148566,118.48346873563185,16.10789819940161,28.55067181839371,115.46408432363336,120.58442303862883,1.5880267290899539,30.261086538290854,33.879650582567265,282.13760280688524,-115.4980322057793,72.081985385920476,-69.954700530722391,-89.576437768793184,150.3188586523429,74.082355016380433,-59.899795934228649,-37.767463503067759,95.290543107812226,54.821965361291859,-144.03279450817013,156.02011997677758,26.446474565926422,-109.33838374464777,-114.27784506157305,89.702468395976936,78.623603607821764,-68.168332579963945,129.85677620623346,9.9133814998262864,67.980139283314983,-169.09833181775633,22.286671131987347,-40.761822391662918,54.048054267627968,-12.299478932122568,-232.01066410592566,-38.793061556779136,49.51499204079132,173.86789104915778,59.357777768948061,-0.73253658183564596,-111.27737079307835,76.167552319491293,-129.18891816143935,225.80851582227805,-63.141571891113045,-163.43546425285979,-81.942151978581961,-99.929824164533329,-67.989948380327689,30.669660998475297,121.6805801005266,-75.609370276391587,-37.156893702345492,75.228469971134729,-91.030521282958503,-59.642564971297787,241.72636480887189,183.43434554558988,74.506362674227319,154.57209305299205,33.618916915835705,155.31785477148242,-50.717039140918288,-5.2821473727313872,272.08062372761486,-147.68198660202299,159.47145953704145,25.645482512176049,170.88043426656344,-120.74944784806344,177.77465942495451,-6.5766747844097715,-30.771996292375718,171.20326484703727,59.459587303594304,125.61699105410712,49.268103686541053,-207.55837045562885,184.26882209592773,-50.67667439773254,-37.666698660695985,-136.68763348657126,-77.192251869228258,87.622498987439599,-169.02133722874146,135.92596164268855,56.898748146853706,-219.1493097032226,144.8168542054612,164.67333221195091,213.57030277786706,-38.379673634928935,28.298727635398439,21.962357202681808,30.299177504360735,-36.092310773478502,-113.69587689426834,-44.135859440225516,49.926620603656332,-113.49583450041861,-109.23718231836051,-103.01844796042104,13.183725879665687,65.564568456979742,42.037522701297448,-196.03487484185789,48.020141579529245,65.79308807478111,51.229412193587052,-116.30426673810521,61.135926891709865,124.15407408656748,-1.9170445287696971,-49.929271302658378,66.163715585537602,120.024624104241,-114.88519108679381,-80.345676813813682,-44.883770144388336,66.103694259504863,-65.249375542535802,33.447560244346604,-14.300454199485252,-108.62806623390107,184.37314019833909,-108.39495268494913,-276.87631500147393,331.82746227435393,-124.38477780909841,-118.24036873800779,51.681936624188452,-86.45157778353385,214.10198999157217,63.263000830067753,65.914879775350215,-123.58744066160327,-118.77546354256557,-118.46105116509645,18.978877059435476,209.78640558010829,12.950352195283244,-114.21763422237217,-69.945206776748961,-256.97028737312075,-240.48799349942351,36.29606175377674,27.762258513830673,386.78794816603147,-130.85379642198839,35.439258021319276,-16.220802284587492,-169.25174103375133,-49.030636162561201,-166.42981614950941,170.56150458483768,-211.50101264781563,61.143101063696385,-21.758895043403641,-30.938093745601542,-93.180046528855073,-85.657666327733864,-4.074116258353186,112.39662313432032,120.10966036936938,-168.03212055333765,-288.11505501241851,21.334246539726024,-79.591024300837503,22.780415742235938,-141.83503678590247,66.535995762321363,-179.1360469197985,-98.493837375804048,34.451498849461046,17.375995730160209,-26.117568659176143,170.45579659913477,-220.45517714470401,-92.44086584257505,-28.802043824243569,40.691709023644322,38.702492355488488,-205.87987555285611,60.698601047770218,-112.41922927118208,176.71062834442506,36.335054208323932,25.576369647096868,118.07531063093003,-77.977051500187969,-169.85261454956557,-243.53862760495622,-17.164567175052795,19.807484186841549,-2.3899432621828218,106.01807790937737,37.982547045211845,152.22650301863078,107.42898842897033,60.640842909354923,-18.674447532596233,-108.48811571848512,-37.86901775116435,-133.92429906775732,-145.82530089135713,-56.255921623791835,-17.631433202758451,-35.263077482586851,-42.509110810381877,184.33060041958956,-84.528585573776709,-32.722290935993129,1.8409553909288654,-83.935473775382036,-28.594862222344997,380.84954817981645,-117.11121093330129,-148.952468715511,69.969059054698846,-104.93122672841957,50.499744721194944,-12.028010494044224,-4.115762442880623,115.77835115752995,-28.641348564518822,-41.551253918796213,-27.374096445126945,-33.698386664806073,-87.206693556446965,54.267234998316525,199.49861830248733,6.7327975186946389,49.553512404975315,-105.32395158987821,94.798697805113349,10.398170055020181,-164.6510813666313,27.288125595287095,94.538551255847139,170.4608676797892,-51.718639000862154,72.422732243953661,49.976233971928046,-20.089873724194284,215.8004369391486,81.451051961358772,-151.0067254566161,-10.394178059880204,-4.3538087783215076,-190.91110757316352,-103.16800244664988,-40.901295354926525,-54.512188675403543,-190.11713391640237,-12.614893759833972,296.01025756087699,32.064536654355607,-128.22303302783618,-136.98543536948046,-143.86293351724731,65.325682193850071,-24.787793599092687,-47.63678179206012,12.481377770601895,-67.005444582447467,19.737670098925989,119.56518218425779,7.3700173251449002,111.07642206059755,103.59798013913921,313.43445088707585,-81.856101518675615,5.3002861755502835,-110.8992084244635,177.59821141024685,115.87422813771906,-18.108080795329276,-142.55629108244864,-51.919392327459356,-28.681284064763751,-85.686240482743472,94.379293784569199,49.391078202609705,-21.649118287166569,55.87250232259322,-76.837904979046044,-123.93347711664653,-62.301590379492851,-109.32527387499721,-230.58148359391174,-134.76084531785071,-28.449026610713517,146.14368529359564,171.52807675951902,-250.16857636011247,-226.64169213135571,36.330153079310321,27.45054238145352,203.06359361789328,-69.981863049746494,-74.092944360899764,102.46990001910353,22.502719054515932,-61.106036824096904,69.407039306633536,110.29048225532875,-149.64535042396625,38.336948751982071,64.012399728905606,194.92388403120876,119.43131006609569,228.09914694149472,-98.916084422253192,-70.930266808484973,-21.108718377465458,101.49682143282035,-81.214437189166333,85.183557658241938,-47.117847867676048,-46.288169194729697,57.381101458681236,-30.629521905857601,-107.6615825313236,59.791279056972733,-2.3053015865250934,33.678495513343393,68.439642209770113,-213.15521958714564,-55.232722420149642,-69.064020640179535,-117.19696529768569,27.290301532760978,-152.02306197427771,-287.29048287653097,79.119595346805241,-2.9352417360708927,13.772086477726809,-5.7388700806001935,-30.739063915224957,-29.833191179119002,-180.66375668444414,115.03154789485201,142.63446853042464,-20.45007362992131,-77.74071568184074,57.560554039976786,-9.7951405379642367,-203.5527904814395,11.749820074318123,168.68810286107029,-115.95084240325423,-247.59970024426596,-6.8922455566820915,161.52189399496658,277.39808838856993,135.92926333953949,-78.402278081133147,-267.47253572678653,34.993009855965127,141.90421558264137,193.72446762943878,-51.266500778633947,-19.738109997595785,286.52264123666532,-32.183031111860672,-99.626372583599078,42.140448811989117,54.49562943898033,82.478858512871923,-215.39583409481853,-82.996354757711686,-207.54717656835911,-72.758335867016342,76.909239991829025,-27.071384467536618,207.9655587356329,157.10618769416652,-48.949867318894391,-174.53786126654245,-8.5484230136617541,-79.899936280975837,-18.175344030663787,220.9888366554855,99.849909431251021,48.058547910749823,-83.243742330453713,95.614841276147118,-207.8341552467466,-17.038623590493472,-71.336751685365201,130.92803818159189,-2.0184158575263567,66.272701476592403,-250.09907016939187,54.773717093920936,35.791656102031652,52.026833625550537,-0.83177072891417225,-6.1228042766706174,-29.587077307775814,-66.839526897797157,195.91242939991713,-84.724068834206932,-184.30459506008464,20.364909270382494,179.60968797931611,55.282040568220047,-39.507625941095213,173.13991745711749,-58.191181167593712,48.379440589024391,-126.77626883315449,-136.71675162804513,78.696054318421417,-207.36717114483773,26.021314106030331,251.62660962173968,13.985428627748952,-122.64904460673739,87.909567254967513,88.113736321860443,74.43325435974397,-159.56394201141805,56.655114805189456,-133.30941105784348,92.928364671945516,-15.828940880599397,-29.674614617593292,-110.84532227678035,5.2365293397856902,-86.388850159607841,-76.477346688653952,-28.164378297515285,36.28338921205625,-141.5854458344453,-181.22088766591244,-38.596249156376025,-43.160403251558861,161.20700372416786,-143.20005723526265,7.2954991961177615,-3.8665639808351955,-145.38588175521519,-24.055583490365116,195.31807922406253,-72.435816136883233,-3.9885277681545972,236.74914299883119,-11.719085286301706,49.884568338810176,-52.283395179269974,-206.02750708102164,16.559576759484145,-143.72144992584202,-177.47333620440085,41.074266637809799,49.589700269332589,-83.656112449993188,201.86635176846249,35.302516815489511,126.78637715314582,-30.769986017371444,118.19643161331439,93.586826553151226,94.506376451975854,-91.542546672917311,60.17720498989398,-129.87286866560152,31.734931388286093,37.223634504669086,-67.558426402903052,-110.61047482379396,0.52277402296740405,-292.05479693209071,32.857375442320105,-82.601872875769885,-107.84378889872134,29.341092270419267,-68.002643502101449,195.74161784089614,-101.46763517788666,62.853859097939377,185.09674022709373,72.920951304425245,-11.401716463387068,-193.91539462823465,-23.972788827465255,1.4208776608858429,-209.12712084810696,-95.962679969986596,152.76526318190935,-102.35754834753229,-257.57336081323604,4.2345364901770779,30.137475508877671,-69.203478249033637,30.700851124691436,-48.192158780289219,-173.32302991397131,-15.657897326724068,-145.50601915561029,-40.832882875301379,-29.218051489463704,-140.45735947118203,-21.864290244339941,-14.481613594225294,-159.51130589177214,-147.09932682624387,29.104218529123912,-40.639854360665865,-24.82354380890726,-45.010254726051031,-5.9600307193519768,-76.958183413548625,-125.57224270359421,85.465497570121045,-55.254317818028412,-48.782662736276151,-52.290748626698651,24.739203021585141,-255.24531611591755,-109.57835307137488,-66.479585134266458,-47.025653564745738,-13.47319970575559,-87.916248608626688,109.8582708490172,-85.713149454276248,-168.46874412953292,-5.947001917786082,-2.3172558593712367,45.646747701532263,224.12462956763395,-145.85614055803433,66.550748386733659,50.894613670667702,26.772023107942175,122.96923080077786,-31.1076739537111,-82.064289416676544,39.19723682295345,173.57642691771377,-12.946160827785043,-41.095001541277341,-39.026667607764892,97.974139189071749,164.29794299912064,114.25450820280184,93.458247934668975,152.68148060031479,89.246470927697814,48.703122164471893,-109.93266951141207,-27.044645966031709,-7.7328016357706133,12.554242402365688,96.366880133113298,38.553861737883679,165.46127884239056,85.501619649706967,45.413600729156101,-74.311739128480383,18.898185875322021,-168.86913640343033,145.13258554759142,-175.0698759487322,291.46047528484365,47.449681093867376,-3.1462473564101501,-11.805852010197398,-11.623582173114627,-78.899427269668237,-56.457737138486934,-69.365532000581936,44.188187654422656,284.46274604956875,-69.595558736219203,-161.65317492812306,-50.160571216321991,167.31117104737331,85.388146990542367,-53.354353689544688,-17.868739766604399,70.543488856906393,-170.44471290175207,-44.556419688545404,115.9562096722846,21.662088371913015,-69.065079670807776,-16.433486883980734,-37.764065414075198,-172.25787581878816,-45.68705941636815,161.74171397307612,-144.25468144449712,15.291791154703034,211.79676607480258,-324.06527020086003,-96.638774857213321,24.511958207458388,203.02269979784938,-169.66057656728788,0.60143007709700136,-19.116968842919611,185.38527217200266,-61.186623983843099,-9.0643337049633033,-61.610444115620673,-82.194501719009423,19.117675490657895,27.851877574662581,-6.8959631306237164,11.372753129445925,-156.66946302657541,6.9463310628688681,-151.34981376196768,136.35511237706731,-76.873881410000223,-88.502403099468808,43.615815050284979,-80.498697882680574,-24.285924905413026,-21.959814987234715,-49.927611437074518,41.492845037285988,-89.961841967100526,92.87754752915879,-27.569195881124529,146.25326318387226,53.400042309964391,-110.54152274700866,29.714151302022344,15.299846735599431,-74.360599644436391,-177.65922079904834,-134.68438752500518,-137.14358002747656,-79.311726137781818,123.82139091220154,21.639842149171884,-28.565858529743316,-57.789607449606152,18.670462680361911,-196.16639215251149,93.048943983271357,103.88406839036654,94.797655169070964,118.26877073891453,-49.354914782802169,-0.40296368136752303,107.31199332412071,55.296483060009251,-96.639289223475302,-20.612420381110155,19.192404832975711,152.22564420633995,-25.216207188276826,-144.92072002923089,-63.725213548268442,-70.62850554052946,-150.81467912071946,-53.701118146160738,6.6878376298763982,174.10524901985605,-204.7493190790463,43.205358201960877,65.443227276435678,68.524504066023354,51.823591969053325,-111.53608788632944,79.527281910642358,-114.28160517643413,123.94089239632227,-15.49595894499333,-125.23726342775677,66.922382646687055,44.040904561495864,16.302244041257254,-104.58490704578227,120.13064259983051,-80.927019886968708,41.248855282235716,-17.083006523098788,-198.5147549024756,79.103120431232483,124.63046268581154,120.0331497796206,152.86692794227679,69.608037601579312,147.00908299457097,46.297325170654759,52.358320221677367,-86.096511578440214,76.828777825550503,-153.34001252918432,-61.338339240648956,142.08176226834473,-19.666181456061679,41.747417454001663,136.74325286912025,194.9251474765415,210.94068351567572,30.279408538251701,86.071885395215418,-41.04424511578641,198.39702394112678,-42.35296609615105,-71.230757607126165,87.286116428661131,-150.32149027692856,-2.2879998039780141,-202.97669784122397,46.471238636550254,2.3792845802787603,-98.173338774037887,-223.19611001697587,-191.94370990081603,140.86605910642842,-42.176507133990526,23.986865049228072,-95.406265025002995,-13.280127076979674,142.21885630568318,-50.324461469924387,37.74292706403179,-116.81894720933091,22.565407303094194,146.01343292001559,-151.17788978055734,79.967508108788934,71.228582156523061,-62.604655194033818,25.162347347957795,-137.01619467404183,78.52406523656505,-62.989228279368717,97.409739399038386,7.9262582576503746,-16.606752261296862,-113.62324061839891,-44.969824859620353,-61.409049949980101,20.120780341103085,17.572290740838554,74.258231104441606,-150.78673764899426,-70.286479671085644,-68.794293654748657,245.90653469816107,5.8478816204660014,179.24424249968803,3.1256811958041268,87.032655794260947,0.36748628413553242,-108.84621798068849,-33.409849983929156,49.30409596939095,32.975792429449356,-141.29942573689087,-91.24065696987833,-27.186691191410777,66.734787230711291,246.35311452841788,40.815824303319062,-23.600265481695139,36.017670351923897,62.199077423431859,148.45797053235452,156.57373479455467,47.611155822218734,51.151554601081735,27.470914125872703,-1.6995517086950755,56.994306736831412,129.52178802889875,-28.576649404110171,122.60671647839065,-98.130515633451637,-181.45709283233691,1.3364103815640362,-13.247403760423076,1.347422663260744,12.03519246840651,12.824551073669543,-43.663917497543331,-91.412090507059503,-131.11924147952618,80.100935741703367,112.06221177454898,64.861927492629462,39.846484176623264,-70.747150940185506,58.422615117675626,-7.3484100770513265,-72.27569631447605,39.495936670591135,-78.72419507876441,23.368508856826914,30.807409707864963,58.500776028894961,63.682901889082721,17.859377778194084,10.04130398918177,-78.147911797487609,80.08982229184096,93.858875364787053,-189.38673311529965,41.944217066791069,-9.2332095568035584,1.1675031657574806,-100.2828734312109,-147.71453176617803,-168.62724966245517,-40.319753452221121,-75.986897941971179,-64.873225979054126,-106.53888760787709,-97.463087203466188,11.437395024639763,47.358240458313553,-119.71596230970634,-179.90636370698911,36.373804763185326,135.12904183341951,36.255178594364565,56.496394777883644,45.053841900421986,74.101752301439006,107.32279782537931,-102.62283612757055,107.69188438834226,-26.260947447775695,-2.8329868397357245,-105.31674217491889,111.7412643265516,31.709562774299833,82.169213044174782,-113.63154229747278,63.88037463787834,112.1627833059775,-148.62286966218548,141.65720148761005,3.1337409084130599,-1.8413736182283031,12.747857207166714,80.192384647722434,50.599573876888826,-52.21093762567083,144.2785188438026,83.393760909952192,60.850643495061938,-89.022845922826576,126.25142119717799,-22.179125066994008,-60.995323214672453,40.252035416168937,4.55349716924718,-43.170684377501189,82.835374116705722,-90.080349803467129,-14.496599226568982,56.903426787230337,134.0038823825314,39.242802202491639,156.24063738191575,-91.037853525762529,-165.50231392912121,-36.10176701510575,-37.243633040349295,35.478598065002132,-1.7009036338422696,-25.447446422513814,-19.506815468469561,-7.3148425291479668,56.502519817549747,-151.87764585093214,-70.558145095948831,40.975393998097566,-183.78296844429673,-31.038026576228354,1.0765656574583815,-80.852055433477403,70.935330977476653,-91.451354492243411,143.57273553127774,45.936860416637906,-42.859612177968906,-18.823610282927323,-103.96681721604675,-49.513873464952184,-85.416456059527292,120.21980957175199,93.747399372460563,-39.574267965635649,3.9328091179473894,65.097313247086134,18.7157481399746,-140.91808720130103,-17.242427804004084,-69.627895894769594,-17.113753683026403,-10.239346084005035,55.265055377567847,28.741239968111167,-59.768618224012201,131.33386043918529,29.413107238112659,99.564734431752996,26.277606245903428,-78.843030126020409,-48.167291481501444,62.949295982986591,-59.933730041914266,152.97109031128048,16.502016031223555,-60.797554186854718,47.553028561091246,-19.473760240021907,125.99631139942164,-15.213025642668129,173.8644586387137,11.832484635768072,-183.51032791620685,-11.123509786337294,40.147745537404582,-24.042780279247111,-30.187230825495256,-13.400365609809203,-183.89805136048361,-35.074587506085599,5.9287089214523654,19.104262858138618,-165.88582767691298,134.45015144485245,102.14283941026086,25.142319325951661,173.86961995904409,50.803079938022947,-27.34413003206987,15.252253002899145,60.550906652958858,-17.971981452661243,0.16444872518423637,7.1529897226335235,-58.11363589412737,-29.248248589888263,-155.00649563525249,45.311160220307464,222.57624399510112,14.707037724513881,19.289430398494005,-57.456858428195119,36.037885126676798,-70.688784093124653,-109.45248798814404,-92.82833658272591,61.250923493966056,-223.86035206516345,-83.161988103357089,-9.4908948872100005,-32.984405612535198,52.546316291691213,-179.39911434624639,-21.949785413715709,-177.19902082134502,175.68351416084579,-16.436592768898251,125.1365623210674,38.553301109728906,47.91220622394745,-36.617699067038799,59.955789720305425,-144.14152154193167,35.387901577501005,3.9511777346453396,22.483625168036109,-133.27859015445821,139.18317122165297,27.632819907483778,7.1180444473775708,-46.291722791669812,1.3673705459948851,1.7220437275536753,207.06253085820725,43.026762303802066,-7.9631159192723651,63.616641304812084,-146.63905806746348,1.6015162437427364,8.1842820242608241,-91.002440534794772,-38.769721283919118,-35.353080693637381,-37.889292737861162,73.8904886006314,92.817066570929157,52.247412650265787,-108.3859638139101,226.07605799250993,-21.576607799298479,-110.98966956948018,-148.42609808443478,23.58129305935255,224.7472562492672,-1.7689140721476129,56.543395658216795,-33.8665685925112,-26.290624976008502,-55.041745137808903,-120.45418833727177,114.8572767426335,-31.431302869367904,-72.593525041212118,-56.10970811070743,42.175854322933482,-46.673878181405513,-35.364046271749409,43.548198623219797,14.126400789968709,111.86388002093122,-59.88701375982064,-161.60245045568379,156.30195655999268,76.709168756562235,-9.6603114021168182,58.754581242297768,145.30711029585976,83.570104635939799,120.83632091442996,11.847486765673366,-17.705869480752671,-20.61142220366424,-44.111672557473213,80.062573170791055,2.6030621155341294,-70.450431761397795,-6.4013714238490138,54.915950434528952,-73.913086632920937,-42.895939102700432,73.924528815037462,-69.379051357388875,-63.681744258118684,-14.791835014438014,186.31405358421335,-52.476535763039763,17.401034810504513,172.78524675804897,11.711775455621144,26.655762988926032,-5.4079609373682658,-2.4920640996388173,-94.412741608686261,-102.61555910213238,-12.705276903266618,-55.81283258567067,-75.740419983333794,17.097860827784253,-65.948130620060098,-227.21795743415794,-72.508557534093455,-169.88391560510792,-44.874154567999646,127.70598104092157,-55.272346110090851,-14.758061946352996,85.938837477883652,37.265163559018823,-143.60425134474337,-28.457506191797506,112.77614168995467,-28.805822733351501,75.182199656251342,3.7623050043413713,-136.03562860268244,230.54071977645046,-5.120398591600587,-29.494288062997661,-7.4972571873718774,4.658683880149141,-38.100443723751326,-47.052879258224209,-53.513770444372248,20.819799030849929,-14.611848137092402,63.18372877161746,-52.841439398276989,19.660029145916535,55.292664328229769,48.480541041224015,-53.17179487903951,-60.407506204010467,153.02503783206666,86.362951711595258,12.597417491711255,64.38447670711902,-9.3136893533926468,-69.236235303541662,-167.18662870482154,-60.417056238576627,-45.618380593710235,-48.64222887067406,140.65531288348552,59.133896136456542,62.470933494392227,-103.26120991954963,-61.300970350486296,-181.50580245978139,-12.129454731675089,149.36685228464671,-18.671659819220022,-103.40155174384329,-90.108813485233981,-20.735667692140545,-0.44352955093368962,5.4609068062270438,-28.802320887164392,-24.990145542993261,38.910268351200841,55.889645523689595,46.845917456283424,185.24353374960739,41.183428559474748,9.0892344788569375,100.02540204377264,-106.47776424059475,103.87506947839478,101.22290829542591,-72.198985638034912,-67.674441793282654,-43.112985751239101,71.568622640292119,-30.400939957789127,105.49518949293886,-79.306742453293609,-16.021678370133316,-44.600244205563435,-102.16689459287093,175.46272732679464,-17.234202560244825,-3.42523853078605,173.11680282469308,180.99368742228583,100.4878981877024,69.035725522657742,-15.435480225191917,173.88521108466489,17.719231850652143,-93.457223711264035,-4.5464718968166888,72.267610000380273,64.171478624915324,-182.4800170679481,29.694014608677275,-99.393877738879368,-1.5626158368525793,174.18172727876163,152.29941716807909,-69.890252749062768,58.868573559307038,-71.976270910046907,-139.65408463241414,-141.84365864345713,-52.974848102965638,8.6285746474439406,-142.50911133443884,-33.420689160567193,-0.73195003224453359,-48.407734606232069,25.759509524537073,-77.852022544282875,44.597170539630405,-102.92076315922002,30.175269661807455,-5.4397168673269114,-30.17066033833774,-24.685838764475577,-53.534257162573297,-57.089480647150069,142.88025527781082,-111.07871126145511,-99.52677974032909,101.13497790880501,-16.177984373643994,223.98500401310815,111.74935361481815,-30.75773724181397,109.66945562013481,-86.775505774636059,-102.88801353512321,10.516042107686076,-170.64217057434487,164.7078322732574,40.873295280319439,-10.547494071420083,-20.388579317889125,147.73222093437232,60.797461685890234,-16.574938809698828,-48.226210045874083,-86.240542558234011,-38.963193398367963,86.000037947737525,60.617675776886287,-24.868606406804233,12.398030008840159,131.60421453736183,-144.91587714015148,-4.2125461367247183,159.92186625714419,46.768833084441994,116.08375350234148,97.312347310959893,5.6634402185346673,3.5103710102598278,21.777814241260707,-26.265855552461129,6.5200045930582107,130.30312605475291,66.929306504337575,58.408527861227419,-50.81942781808965,-111.85751713506234,-137.57848073291757,-14.146270384016148,-44.743963809542862,84.010868014432802,78.054150044608676,-52.779339813740478,-144.96872710950279,-66.66201226972629,-88.875420964253379,121.1741596769028,-95.007081246006592,-176.99504124080937,124.13407626135564,140.97301209250648,95.073223495031087,44.931154315266241,192.93890570919297,120.36427605961207,-49.121422854166696,-72.582163210377104,-2.5654094693792331,-0.74151202474136468,-42.132528398631138,-110.50627886121728,-8.3497270989419299,-2.6181877748958513,-91.546752399340193,-19.940072645692148,28.373021868552648,-143.50294710760485,62.210562603824229,-38.403911088368972,-94.869802009862582,-66.419259771065441,11.770865214450303,61.547112309441346,48.50349240896054,-92.236187666078706,-139.18442193063046,166.64097617238963,77.477741634678068,105.99102315789762,114.49887026718694,-101.83954915295432,22.257769669257115,77.537029095958829,-103.88559040885806,58.02237641404939,-32.654350119528402,51.962612857797822,144.61465371696096,-125.57406151140682,-61.432093056706293,130.37219451828966,-3.4591051790791809,45.560821620463983,137.37658372114512,71.140197042839759,-31.322076018233862,169.70637210920952,10.174688310667591,-100.19217379662382,-2.5897480229457557,96.164951707020251,-124.28649028560116,-63.267170800954396,29.516941361839706,127.81852416045075,207.75127419159347,-85.147572654548526,-46.354096930066333,-69.775319468812,94.407422337355115,-3.8949656002392032,-11.008004183711666,-154.43686427563645,17.44118100291189,-12.54490758752857,-215.05675670631143,-174.6894428226552,-63.723128607161982,-49.385823047378238,-154.0879734692825,107.50271869911708,164.42933341566058,-64.351801276967961,20.70947139677741,150.90816685015145,-52.651867994613909,11.268355878610592,85.238227367646516,-141.17218641067211,12.527333427093048,-103.94050539681727,23.924348972768016,185.57489496700512,-81.605385522140239,7.1126918149232523,-5.2048399334284881,83.180306104775596,-112.45829114605689,-4.2565435963240006,-154.91892769110297,28.577565672913579,118.7599226786231,-91.098672050250755,-13.0172785135981,-11.79369150661779,-46.602093772027217,-74.815551447231655,-69.484739904848482,41.674587225051368,-112.63134038547585,-34.163683521576388,-90.395812049724412,14.624867622703007,-71.672688129440417,42.146357369143416,68.450702975057652,-5.6884316809332063,204.24913230279441,52.332102913868496,-11.228804364442531,-56.232968682521616,-167.26416966356197,-63.356028729685391,73.345838099081618,-28.62444310804301,23.566369323222546,-206.16132856225812,-248.06794861225325,-1.4291434771801406,42.656940788928452,-16.074627227093458,-52.020306630337174,6.3814002433506936,33.638234303404268,-72.040714011912087,88.26577812010845,46.772086357658971,-42.671090072992122,13.601574599534466,135.28211039384701,131.10229040230985,-82.066917296942108,-33.039328008318719,97.783836138490827,-120.68979181829317,67.704936438993499,22.363423925676045,-181.53335926494816,-55.684999526888511,-108.60326489793717,41.190698682672561,-35.243123826728045,60.168978282001028,28.833900049095533,155.05389878482677,-89.703988889050251,99.921427757881602,76.586906818865145,39.46079437011042,-49.597179542168831,-139.28063323121057,15.326181147181046,1.6260019986003265,-67.904930974873565,47.5305976695373,-46.34931660915548,-160.00298989362091,-103.29974371912866,66.939647547568484,-155.13446195143777,-74.337682109515711,33.115907928868808,-69.732069488948227,-209.98958568845296,48.582827958939944,-53.18082838623684,151.58054081578467,124.09284836516036,72.210398779095485,112.57376544500971,-13.508748445800379,131.95839295269872,-31.281852288916014,15.609666052391823,145.08111413062312,-2.9901121884646873,-45.000856867685755,-52.14917084255309,-39.495343833838554,306.71420704813568,-95.340852177248479,159.57298277637557,26.332805000124299,-91.02321997008309,-50.921140200049976,-53.485654243397065,68.874037975280942,91.919891373713767,64.627656336116786,-34.783488132554567,87.028916394338012,-74.998520724475384,-37.948735156690347,44.620355264545736,-59.48266929881072,23.301811886368995,-124.19528205848617,62.416964133523877,63.616088996934764,-60.29663611189887,-10.052949929538194,-172.05095072392345,-96.700958517547747,-39.002978592251452,62.131885871156499,-179.37047106216892,-161.30181033063627,-22.326556584651208,26.940188834915922,-60.52640589838564,89.05504349238187,-39.159898294830512,93.707622353099751,52.299177173260944,-29.766367636973897,146.66909896618614,-154.13437037623817,-27.108846349840761,-105.08191386657741,127.84160188350683,83.338132630203418,-239.93519814035699,-72.421758949491107,-85.345753051343394,-7.7382700330913394,-35.011413315738366,15.171257379825114,-114.28613791427257,26.749390457066429,-46.172175066604865,19.914571835042935,-82.562026272052634,3.1133252213448053,-52.702667889390128,-209.23258040908814,-93.862284320031108,31.018071267673754,50.076868224433341,61.805697472227486,-172.73083877503035,27.473832715484757,-6.3650750408726751,-30.053182262534683,181.06025920593186,-99.918619813307316,-62.7043200729902,-83.05932618368459,-230.88276222370837,8.1227586591013612,266.26652050816358,36.465242077947835,-70.44319073196985,-35.401927909863339,-29.145098382206129,-89.409661362423037,17.090962798180556,58.154242143461325,-60.243097815442638,-18.544307548095659,-42.631024747202694,192.99074441637401,-10.908605161313741,93.656435386479785,-47.395636173306826,46.963887021048876,65.559490960714129,155.00089618822653,-158.32630492448098,47.804306854896652,-47.256298699581244,144.74888031888742,-71.189037914674827,189.17581240379195,30.964767779348655,101.03650858144267,-38.802675834527278,64.359669575555529,60.529878854936243,-102.74433003397219,161.00291424796706,149.11262590776877,-175.98895174250677,-98.019856012688422,-23.687816323187633,-95.347434976603722,33.948256245921222,8.0279009881737409,-165.08767850590527,-21.073687697360739,-89.684453974921027,79.652284426684702,56.641449983476463,-43.063375162231488,-14.169438928969569,10.882183577389682,-15.783408345850155,43.244688070674414,-216.86729382683194,81.761204086171375,31.293316410223547,-119.57043445333737,116.08561109527865,26.771204166796061,-40.685477287536678,-73.256842134764852,-129.15978253224841,66.012014875681331,-52.819367817995058,-49.854449069195681,48.33935878356565,1.5207332100259592,-97.990644902909395,-68.87043921404225,22.252803734158164,-45.8750986215355,79.23260098602799,-164.59901596984085,-152.56338792814057,-126.21113579449012,-27.452448383363617,14.726878017545967,62.09579649972909,83.081800179601686,55.992789277010651,-12.96502897595898,-138.68471080055335,-150.3838652012883,-86.013424923544534,29.400945995449526,-23.728934276014606,-7.8533011462889846,5.0846843214067334,-35.398528538887255,68.586576922300608,-31.744458712143398,-116.59885910062789,66.19328540186504,-45.2631597278247,197.58368136057584,31.789883016687611,26.335095510786033,-99.117679080560123,111.59570110778046,52.88566569553609,-140.03469805039879,-181.59416047986986,-33.608746294278617,-45.195094425601368,41.700424455648289,-12.121330768257927,-50.437082914983066,165.58015314919658,77.066961775972942,155.9304364408743,23.620223638405136,126.09448997731997,197.08724595120799,-93.578540792155735,190.53331460283431,-149.79153394899626,-133.23895875357653,32.336171790504714,-50.962782759468013,-34.924758156499955,74.345422376845676,68.28971454797616,55.248573377173194,-56.305793422797002,42.83997229266712,13.64613984123546,-108.87774869901418,-24.473603452352972,21.105514031806205,-8.7713779226524942,-49.334616967408678,185.6801578822537,-65.559064461517224,98.602626963142086,-60.383398900651216,69.451605254898652,81.471209916290363,73.712713824705631,243.89216039999712,26.934191957521463,-52.068857432500749,50.802630499605627,117.92553087978479,-118.80434033846845,60.426335893783659,-10.462106066291454,103.3600057410123,-1.3318605288121574,-119.03738160234364,85.223325169601168,16.511409943870504,-4.9384966333554559,-140.07127004529158,84.627407373602296,-71.19420153730762,4.7919363481931043,71.05443050101718,-28.988234336519334,-38.01736740360775,-106.50753818488747,1.8702114317579586,46.998428836249154,-28.610459125546683,-70.121689609155979,-72.238935974591868,9.7823743078323986,-154.79463235289279,129.06103332233991,68.916612697711003,48.528977135186913,-19.763076870122369,-107.58130003667738,101.23071551960234,88.064797784783465,-12.339055271112425,-74.173317014918581,54.764010323056205,45.454436411397246,79.505278000519695,-61.947441220473692,-30.886627200498012,104.06332571209407,-113.148511393587,-59.646034864853895,7.2342666220412681,190.03832423132758,74.540050485641657,-116.68587145056819,32.751958806453374,-133.08679292529484,-35.401762994006276,12.568934541195631,-0.21411658706502279,-100.73465225852908,177.50836380523879,-4.9154904820255876,-45.288390616304333,97.919789093955956,-55.29543220092728,-6.6686853889954385,-44.928692604723594,-124.01833855914046,86.919445397230234,61.492377480967733,101.39539249010738,-28.494739325531263,3.3694844200278382,52.875062708043771,-76.670350712723319,15.367336699070645,99.62474104481808,-37.645934354969206,-3.4402239445595626,48.813212375880696,-55.022605479508123,-58.251345702234119,-51.787443812914375,-41.696350865931464,27.575885366999316,-86.588458909872131,49.580504213255693,-70.839089180683033,5.7540385228952715,-60.375298181899161,97.527000326345188,-176.78947680190606,49.489834240221981,-164.10856929766194,18.357206264337378,-3.280124355839213,59.847906645477075,-13.67126238555057,-121.55347112409009,41.480768413584201,13.067466247590474,50.626677987797379,-134.84586973146628,22.853311193146403,-32.79252441584854,-42.228680086658905,-55.279129879814072,123.97475107461766,70.145849107736169,-127.518017771074,36.837045810968128,-11.43438085913979,-24.713409827830205,39.088697354898756,46.702039583114008,43.034291427190801,-76.344268634339159,149.85486022490375,46.10449099475769,-116.31952951015899,-15.799677762603917,-52.390434185102045,42.142796264231237,-52.761713307933263,184.14921753810907,-32.449228198211699,-43.542062947603192,46.647167135983409,21.049746356099128,9.0508311238568808,-88.699482545007172,-116.67727838468281,101.73124604970513,-21.198205445308915,-16.616775253085727,17.644115328499861,-37.233032070886225,113.36633804995604,135.45463059123512,97.202248715620968,148.7458513927069,119.43455520873907,-48.959195988436974,72.17046668136544,47.434483824748419,141.35158752827709,93.373340416758438,134.91216530395042,109.93937744914399,63.533162864077497,-34.798853095158954,32.65027447804259,-16.743357788349151,-3.240205088089283,-145.52002939682708,-27.021904631892898,-46.017832137182552,64.818676926609484,63.227169316137086,-61.460939910919166,13.645452619117009,-9.2935555829674641,-25.753365921237034,52.278382267871436,135.7965885298085,87.154919473655895,-73.372512844052665,8.118849414384357,84.013535874681025,22.001249694388711,-14.462369839209423,-104.32840628566501,-26.016956584407311,32.759813062342339,41.073478427195482,95.770735508022113,55.508629565964384,145.86145946823399,-52.871154161019994,19.634115046621055,-192.30190240312373,-93.882005653225093,-38.057651214304094,0.20739462312679713,-18.15988544431616,-17.391813403812861,-67.687926033127312,-48.902674318720941,26.276372259754776,168.4384231364734,127.65086364383735,161.89885800013445,64.104317626160594,-78.958805387004134,-48.530293988892304,-9.580335450507274,15.532023988331467,32.92502554445273,68.240734766512077,65.878389321429538,140.32314185056006,-89.169294296028355,2.7605924281113658,112.14106907154189,44.865426961199844,-7.375642413306096,-45.237404272461845,54.826514116329562,58.352253044789478,-131.3755112110988,51.979408485642175,-64.860794490431999,-70.789227100928258,55.499923792158711,42.684353128172475,-79.23355140701058,19.149254775630354,-139.7951533630181,52.532620740111838,26.012722464757459,-16.829125589497266,-42.741323143769272,151.30741977766141,21.065349372552518,-187.20016638412775,-77.812909514942206,-48.346498832910633,-75.290305596953999,10.031106691709404,-61.424580143067487,-33.297780894830424,-64.51715083594101,-28.086155543975984,-46.266616960043734,126.01251848422609,80.525882087202561,27.26222651324241,-13.628231478046317,128.59944599353818,-92.287338654246128,-63.457164412626163,83.622557312864274,-1.3452699780464172,9.9525315500795841,66.818621708837597,23.713824121960865,185.04252885473747,-13.818994822093629,-52.592083784481218,87.66225329153481,-8.4186480444385836,-35.980231480617263,-38.217018170253375,-5.3317434173623539,-122.78137491320169,19.913772081432501,-16.965476163727015,-94.419470121629985,-44.714166373828171,39.700931810834646,-159.00526336302769,-27.793965574221087,-112.38248942744283,20.342446743283503,-92.089584278042395,36.329275760366492,102.11831154887199,139.98106756246648,-4.4166370190134945,-62.624200167036214,3.2110753106741186,-66.199222565588585,48.271807457047338,4.4155941499602278,-42.65750031998649,-1.5332338459827675,-20.981487826215371,53.468564240017734,-87.37302389510532,90.453509093106319,-40.151668973420811,-187.59032490176969,-158.01814118126475,63.127821600964985,41.207780647784006,29.676753697740679,-11.754924861250682,-80.544906619159903,-104.85102209120117,52.004628343933454,-109.1627351981993,15.033371591614671,-65.476720355522616,-45.056831134551459,25.461685858425071,-96.521153120024977,-12.909448476282233,-52.436795414194314,30.145759132969104,-43.436020258206625,-23.757759345853167,87.964710924516012,72.335977002899511,18.517591617217853,-106.78739887196571,-101.11040422105989,20.158039507194935,87.111272424656789,94.274415695503052,-33.003734567367339,-70.885468322711745,-24.98959752205154,-39.117237431205893,-13.072152458507981,20.8643090863334,-86.905920254652159,57.096570477778847,-142.41134999317433,72.720465625126707,-36.977928627408858,106.41570845902329,166.41083427472572,-142.45662915899914,-69.469461624418798,-60.618279367578481,28.166235199384182,33.044846140217224,-79.865104295539965,147.70544224774949,-8.845475773300862,-2.2929372229957892,-8.5614873560464027,9.3222679822024404,36.003267341900994,6.9260762341554667,38.736007198348474,4.4128130931198584,58.471497087432795,-14.409924812341998,80.376703009464848,-30.901016295583553,39.090952035559773,-52.103301936696923,81.542583119089613,-76.322804941332862,-70.991870244233965,-149.25013697144578,-67.826821751102543,-15.964398516795892,53.678393306722924,-35.404380670938913,-47.096004748796062,-59.562186091602904,40.442671783176152,52.53489325582531,-44.497791341274052,115.60145291288237,157.93303587330621,-83.658247511897201,-99.400126066571943,114.64288688321935,21.988592208291738,-113.8207603139783,-80.530951490868404,-45.760318343954097,-117.37152417923892,-101.90385342138134,12.446984092760829,-79.387219422824643,-7.5413297122826464,46.289772635180107,-58.06929019055513,-2.4896451404589754,-83.719430816097542,148.85986437258478,62.484302076183951,30.053687877414841,-16.473156133593612,21.693461655127912,-2.5257607614654063,-2.4120083576301141,53.205649340965486,-103.53737627761974,98.023486151302308,-102.78671084121147,36.503249310346703,15.771416738514013,-32.376784602600779,-91.720537913168442,81.181085373254234,74.688740538671368,6.8383060795527442,-147.39950500652589,-127.56494451583157,-53.253718762271227,-61.99968747402211,148.00346901739294,93.875176825313616,-181.85871424534614,80.178450135017528,166.24921120917975,-111.41298241748042,-51.180849195588621,65.648702192321892,-33.096224612906717,102.21118761398614,-200.52344180261116,-104.37400332441247,-28.822984241295764,-9.7736989000130077,31.257467154120583,62.141975255541269,-53.613022781046951,131.32925917236727,-134.16771699908602,-27.741808504283263,77.507674889165841,22.552076811718521,14.473557320564245,-95.578698405125664,8.3154353877684457,15.825818827972125,142.53227206753766,127.29420685477643,-129.19084460018519,6.2557688132347327,-1.2707527623058128,-64.761346190285536,-13.595522549003363,-0.88971934281289577,-23.847473739716417,-65.663455576493817,34.233581648464323,-25.958277602363641,-27.877191400896681,27.325076085087886,-54.750214778760821,-23.055556100342493,21.742602553565362,-49.297109706196395,-16.132913983501588,-15.19337509001744,-56.705522027991819,-65.031144561189137,32.93682765371377,-38.373959522777781,-71.815141507484725,8.8764042869700752,71.300663630330206,-65.423568670876705,98.467499611106987,-21.570083025818271,-41.407803660298093,73.64837987904869,-9.9755478263422432,-49.060078578441676,-33.071425547339047,-39.192030467954133,-13.716718911826881,16.613806195655215,-82.526443610541804,5.169134191362506,-20.148660231807433,7.4240030696666182,-39.862667578248519,-11.608368331143877,17.274535281360084,17.970733568113733,-14.216857668906336,3.6797616178773973,44.454605771952295,-15.875425563290243,17.883337213157724,26.918753427719885,-41.512344103078533,-45.960829694816447,-129.36415546017921,-60.188989637180192,-34.303368876994554,-6.0964330304954402,46.566412901990816,55.307038963401993,-40.150713846915728,-35.045828646013867,47.731813213827124,-63.287179317664453,-2.0330853750184477,38.452938373429866,99.09089604112053,-52.647903711926311,-70.550349354447036,24.11601266219008,-45.317654269826335,43.016517634942076,13.499845464739874,-126.97443208972953,-38.092538426803145,-27.047304230866267,-52.465495274363015,-79.11208049123691,-31.743589759692256,33.538569626116129,-62.223641963508094,8.9559199259342606,77.485969184067514,-55.693307012857986,-39.031031236854751,4.2042780152251158,59.799794944421087,-76.979296351980409,-32.918825467495978,-49.293063564053028,13.96603864223796,-104.24016332620853,10.886093215060544,-4.2362345541523787,-5.6787410093879398,-13.747338335179251,-10.406813723587476,62.217570077889746,-3.9440021862584906,-53.018511272723714,-35.061796642839909,20.153534455516983,24.325966616110488,-14.315560159030696,-74.081344083544451,45.117047927696163,14.994263267258722,-31.463282243112815,-4.738011905939703,-0.61343303369628188,16.169890411712633,-3.3143138213307708,-43.972307755940619,-27.583868412928457,2.3309372336778935,-4.1559197464718096,-65.348545803450463,-31.315065227988306,37.587965247734033,4.8337388252352333,-5.2743777056073853,-68.236968417736961,-24.163305504358021,77.379112158703876,89.151202085182092,24.449617170337337,-10.808685648153451,93.879095808188026,-63.461778995492821,84.96150329877787,-0.4567781287638546,-77.287087390387683,5.860834000158178,-41.47468269440153,109.96690489844256,28.480293021806027,-1.1384546120510568,-31.66124506539655,-30.295089992984529,-22.003919585867738,-17.040209780633496,-39.727159804697116,35.293963147656982,-75.433253121062506,-110.97760927092584,-94.511333894780307,-43.396732070794506,19.184443388257286,-79.566290965303779,-14.445093241065567,-130.21494723020714,24.028436998064304,27.574191315461512,99.006846163494316,148.34837156586067,3.1164547138571956,-66.581102445403388,108.93798490560027,27.860978155348192,99.263057481532087,137.67683605492289,98.238476729614376,82.050080835628677,-30.846771528780394,-38.848943697011407,-151.52580265678898,-23.085452524497573,-103.20505965923358,-69.695557958326603,-151.94931321556138,-56.698770899962568,-44.244268246518949,96.431220796645974,54.636649459394619,65.916085384038951,-99.691591502766613,-105.32378204731303,117.89556852479058,23.561827130038658,69.670983653183498,-26.496708760125806,100.16306384415586,-23.986015522122312,-8.9205419588190438,27.269591938192473,-49.948900730150044,-21.636178849143221,40.251745850601388,-175.88566446471202,121.02127006349639,-58.705707679402565,-131.74698611746521,94.428480403963292,23.407472803464771,-12.969250633874029,-156.00462201687304,-19.893387902305872,-126.36832634339356,82.109617665627141,81.175997149397702,131.28298213066748,-111.54433496254336,53.913203070377577,-47.874126144994435,-157.26213849507931,98.970939959962209,64.785509921499056,74.949832666417734,2.3943053024580863,71.943861559683398,-54.064716441336614,119.9470895626408,102.64444873301193,-41.43924251814493,-153.17923335205302,-30.157381701159125,162.54078734846553,-73.218532781930847,-98.902035585088612,168.56466972816787,-103.47902821533133,105.06675058139163,-32.441282640701473,-124.24153637379339,-9.3384026356082437,58.949297151994216,1.1361940487115199,-143.63443245111748,-39.990039188890464,-135.94775680647041,24.98204083033454,24.854440491032292,-30.304864119269187,-60.335538148695917,-13.710668040106732,-25.199536365736037,23.808788449438126,-114.88020888945202,-155.66053750311079,9.0046911591556551,113.12815716042138,122.63533991656894,-33.482055831114451,61.123100881636937,-109.59008080515775,67.338081878636814,91.09220861431514,-75.950423698077827,92.907958881581536,-116.25680641396622,-181.18547629835007,-30.048421095222892,-2.430483522465515,42.19940196970569,78.763499401013803,97.388741946285563,25.46591298811569,5.8100475046727951,60.446728672289161,-79.746213871810838,-51.24353246629115,-98.543324624424571,-45.710991764998866,46.23552608323358,106.4545463039031,80.164495323704585,-40.236005976096045,-57.678856357054087,73.335908161250671,-73.823595032719922,4.0779625649603677,-78.634878372347018,-4.1439557397619211,-61.496409755590868,-77.452650340685935,13.966721374594425,41.896848309353636,-38.299419380606807,75.450909077261002,-12.769250369128709,-41.619507166370127,-14.358672551956118,78.093343643023502,-190.32934126820089,-59.953595409903599,19.979619361285174,106.9411237467083,147.84430735934981,41.835753557539412,70.498344484801891,54.953209127062507,-161.6168972649516,-57.29103422170391,-11.120932947379096,200.27362023727099,170.34705622991839,51.170934277021573,-35.769404808577818,-1.2617357946309085,5.7733635971920236,145.44495765575286,-129.97231511254623,-12.048828208839371,-58.043246812282504,63.862399496522599,157.19066152342219,139.58459754798326,60.296129220070881,-12.722363164197503,-32.735170295150155,-54.075676117233087,42.918559843778411,-19.949518233881033,47.268857334069523,0.57102375373373349,1.8660472834751118,-130.62557032535196,-155.44647876835842,125.58575533919966,41.251809614615091,148.23955118833496,-102.78293654934606,70.879233054849863,121.84042592983329,95.453309080252922,2.8379782514438139,-26.685311052776868,175.82016495143463,155.95545525114633,-4.7495948332295939,28.898629396828994,100.55148583558642,32.555836631053033,-38.449269109233484,32.839177766909053,-2.7607425243413126,30.575838003990292,184.13494643010765,50.212890478314741,102.28933582405148,-59.495124505651475,-73.012905574191493,7.2364341626763178,50.824146708493039,-56.511569477308456,56.863766603900146,-3.0725547025755056,-41.193976122107841,-122.23861507115561,53.045004330050674,35.424723024065102,-125.66311782804777,-72.307000486922561,151.53571429072798,-134.30617999138303,-12.258035763561242,12.463941158702514,82.254238193952645,87.797015338568841,-260.88903090995723,-80.278470504183602,27.788169157095329,-74.548746209856276,20.912345936097253,46.17675226826762,26.091447071051221,-17.341605132206759,-61.530732681311065,226.10503423881778,-35.524624704206033,-77.681432817613057,77.872081969406608,18.041755320159638,-54.899531173731752,75.849446333657824,30.295323973494245,-57.391133032665124,-68.279314760038233,-24.010359856354725,-100.99115086588935,137.76475778729804,-5.1299337737093698,16.71712273186057,-16.882900230006488,34.191176680690553,32.687871272617684,-0.74099342206544883,-171.71827883823312,186.66238938309431,-49.724473072138835,132.5285181102831,-2.1617068172205292,68.101953330376134,-16.031280394055052,102.25569402947315,6.2103723258133314,10.088865046883623,6.6571168775211973,-57.458276416549815,-150.15421933509901,-37.354725052834425,-111.75698157935143,25.299371839802113,-61.872740624833327,115.29938107507198,151.87064571127388,-75.641270440907306,-2.3692480948370296,71.940185070177534,-2.686600933670956,-112.67464182282328,123.52630822609738,-30.567793832620737,-70.274748315635108,-71.611110315891622,-38.932265377077272,-18.680495495325985,-87.561606580877168,-55.720003020617554,91.279291776234601,-74.419560874086045,-56.89347996022839,-115.4734426572608,-39.81306316227225,1.3175897145011675,-55.842624215916757,-70.036194635494468,-88.086798562817563,-17.337570976996133,-1.7519627646127844,-110.11425062478565,74.793598749861744,41.789594679278323,112.1410480654625,10.093142833681583,52.287716854677939,18.55733102340082,27.253802427982603,-107.25963649015493,60.963224863300951,23.949608610164105,38.768426824035799,56.305272659966427,101.73394384182393,93.378686106027558,125.53123029472967,143.15754946609917,-108.43167454250421,-23.160379995452097,74.442740163219639,62.584486313465078,-140.90039337184862,-48.444369316234621,-0.5810619689434624,17.467698649293098,37.007565039342715,-58.132538824943978,-76.897079976841027,-81.94896654479399,-127.72385296276032,-18.876972341023652,69.359268696872874,22.891112913449973,17.806139423379793,89.109950543583579,193.89033666605286,70.518181264447094,51.940650640674107,-18.059277217638581,-85.859610926824303,114.42537557373826,-34.289084377239746,20.556316100310539,-114.18091288488827,-68.422198667056648,-7.503315802643975,52.133711857264089,-100.4110464765853,-70.433959114011145,-24.942164294074317,40.461817376029103,-29.390014722985242,-4.5283140034731755,-79.720347074984318,101.74746393546064,-122.28031830725625,21.079971236577197,-30.842734642366636,-41.536223925442656,36.683055020054695,-71.256451605475192,79.925455742561411,52.838172760208607,-1.4500184181747002,-51.91959643024839,-4.6115747110892684,54.122021380550621,29.853949124570633,88.218070903389489,-200.26674089088186,16.814823910842939,38.620730279666617,-105.02863337629175,32.68729274104286,-0.27012863407121301,162.60343312640194,-25.445962315995303,-52.768553051341691,-106.1922053884385,88.375485438939961,-97.534526529664873,5.2345626714706768,-17.1947234629314,71.911319262898203,-41.663831746252974,9.9493756828863482,-82.590763129044419,-96.625249132426276,-72.681607098958295,110.45881236639974,-15.827896791660365,60.96347880652587,1.706264805976911,-113.5819724701378,57.578506586574591,18.001246991424125,-11.941887553751357,-28.609495434594855,36.762911817928881,-80.716718705420249,-211.35994771319679,-116.53376517865676,15.91903870947184,135.17409147583288,-38.101936542477517,70.6369327336146,18.191160252773916,-52.642511932805405,-99.152394656637767,78.504601813700077,-88.546071168289586,-78.46700807387333,58.645600478530881,-117.90484700554748,-22.896437013883236,-76.713967955012407,156.55185971625991,-123.77776700196924,100.32510111686682,116.07341957303591,11.059594406080862,-64.495351045312105,9.7190087247743584,225.19719951315989,-178.393552843962,209.71236317776828,-6.6187516053724806,128.74725008401975,-101.49293513682883,-20.262061422731506,93.238460451082815,-3.0428853037846126,-5.1622161058199723,-42.339302418043701,81.173549497899842,-11.190182146677973,10.77194899122572,30.294562505383023,-12.288130566509302,90.922837508842349,60.015887962654233,103.70207551134064,-4.2697245940954787,55.783468673080378,28.666069087288292,212.58213685402038,-167.70383620672703,-59.729972282541539,-16.650198591848266,-70.922627300597071,41.525302458758716,139.58052365342115,173.2533707980844,9.3166752934875205,104.41826193346846,-77.074601894000764,183.98790025949376,38.964419889658259,274.46999084732806,-45.51394701835639,-73.495549173174879,-115.20902088559916,-121.48195379670236,-6.4555446496898909,-59.50868272033928,348.80282549778201,67.371270438249127,-94.49743868264845,-265.62191964659797,169.74812519107354,117.22286724924911,-40.971198380212101,89.84587341386306,11.450319360873474,-41.453497223245407,47.226067843622758,-19.148369043327143,105.2371009014787,-90.452856873904182,273.66917064853362,-159.67011537859582,-24.942138418813101,336.2468604244512,-29.812570403259286,38.432318094325133,114.37707834890304,120.81234789727459,23.281652783321782,-24.887058315700152,11.688763159901214,33.11761399015154,-27.201600631416319,-234.42355015417806,165.52243012664246,92.261269124384583,-163.05303850216353,-93.325977552309041,-91.432306721070532,29.425601973779024,264.57697249780051,-128.0186044181944,-68.454011943620529,66.781439246269201,-32.189750882112328,42.985761329955842,-242.98776944724301,139.18764002841937,94.716045677990991,-173.90343170021339,-37.171266535848034,72.82627532528889,126.99401347052209,119.9111222798528,-155.26603218244597,54.505856328113126,-70.153779418464993,96.596153647339449,42.897977567507589,-40.904649959784308,-86.0105185642186,79.739788064655315,-11.727783126939208,-99.922293329541588,37.991698790461129,-150.11160847179798,-42.72373787290168,-30.544502931486601,-176.15182065002566,178.5399977782163,94.48916175225294,-19.384926599054072,368.54650506910559,109.3300853711703,-198.20122956819336,82.121586500572931,-161.48857618058236,18.613613145534345,-254.08832951255897,20.066739058044121,-37.69679215597391,28.306692281821988,-62.258954080389124,50.420867899083497,39.703046013432711,44.755529407047355,-82.225708041749343,69.920947867202088,-168.64102163490531,-40.98627638218089,10.919001523342512,108.62499000809663,-191.40362522750007,-27.574529982723533,-159.53853517983961,80.63958120075165,-72.073592914218864,46.342160964160087,-237.62342661785192,-56.598508608834521,-167.58379939761073,-145.65834898384713,81.227724528405759,-78.45730117474335,-103.58945427991567,-70.599475780214831,-196.40338178072153,43.638512781046501,-188.66396341510745,-40.065900417301336,-51.060533038483698,158.03622002398401,137.77179200250691,135.12253194471413,-100.16779373239061,130.80815927646822,31.004495925098936,234.7110622699098,-252.30252389738513,-41.929482882161778,25.972546022627704,-51.038579418347496,48.353171856578179,185.59643569479829,-12.185750849267063,-30.200798911584197,99.932566187883864,-90.658596881933391,-67.710899333609177,-35.98805728071887,-276.02501529858642,204.95946363376518,237.21062725674597,-122.51602074613334,-7.8175950669449632,-52.194523556209717,110.21121070061645,264.51826301337934,259.33259449812005,213.12951978388753,86.021004868746346,-315.72145961622368,12.892605264696527,-220.35108814457391,95.591166354342747,47.442631873578428,11.029631204253022,-108.13123118945339,27.735638490969873,59.274376188033855,-131.50331497149972,73.179187087480898,-205.94201524958675,13.362196584457564,115.56597093957254,-18.591015838795016,14.862364346642195,-47.822638964499397,-192.54530080892698,-0.68224340643430992,-8.4147403489872801,3.9169912098454134,-64.735330286313214,83.547943532322563,-138.50359191574555,-43.666562803427112,81.607945450932604,106.64402849346898,120.33173823595699,43.076346604084748,13.109679154173229,223.01493270821129,-196.30922561481702,-76.721832776445154,86.120408775035699,-75.273861644007908,-20.768175046460058,129.37558220684022,-190.89751996772185,-21.296520774639163,-44.360893002047064,12.719112268306503,-203.32958041657923,29.925537187679964,-84.991157711722238,76.143179547377997,-258.36694108747474,2.2580361173353225,138.85202301956184,49.72521714117525,56.976672817666412,96.233056117042338,-39.40037594603271,-44.054969859793005,52.431028339398878,135.15483840662628,62.732383826662776,149.8197389747958,-67.523155262399101,-132.81634653150701,39.495381049395995,-25.332830798083883,32.255423689298709,-81.036643440843676,-0.29971852233957463,129.38326323458585,122.07395484288587,-145.58253189624298,37.769022794831493,-186.89358549214961,122.01534724227919,-38.867946227507097,-160.85086735605316,66.592104471827554,-43.062101135674155,106.25023851280042,114.12869662981534,176.52064669843273,-74.229183734570213,-98.377047702518894,38.679080999850648,-70.956011578802716,-41.377697974700169,-33.194136564728282,152.00391941878681,-97.781084174932474,83.32309645351998,177.91346985974545,122.4018771979943,115.8823969835889,132.7030532676454,-44.61472796580739,174.67392874518052,-109.31858063347643,-142.4671030727888,-91.810440386262712,87.03649550898183,-3.4640096253720642,59.562298627260162,40.182342387096746,203.68421663709279,104.12057254405805,-34.559304534998894,-171.68440982995665,60.076323046690355,-7.1607018172384684,228.48827416024187,117.09585996802048,3.219410066821581,147.89373247082278,64.135777575871316,-5.1007014197765983,-3.5301025414576515,-28.050749236651061,-190.95062849756306,215.48059529761042,120.18797133667238,57.35869051549669,-154.2544400367477,113.617581735267,77.806301294266063,-3.8865811514000335,-19.136284804419411,15.449306995363376,-222.12049108167253,-54.963442687453856,314.44422976606643,-83.81211337398905,-268.19424491194883,-190.80983875027417,-166.52697866265399,175.32230787121941,-102.87267272901533,-169.79348261117178,-54.089570846662497,-227.69381783736392,8.2020672741760947,69.495496482877769,80.584590302162297,13.224462253469909,95.662633530074245,57.295962686050473,-78.694136370421148,60.382105824543956,49.786330019319252,-12.538736092407248,-145.5992102643587,154.33413656630057,-105.05916095655789,-103.821981575932,68.175739041406004,100.89435275240126,28.310887166582745,26.463912218284456,22.890164731801082,-24.226672049974027,92.14361107871342,-125.00002634453867,165.99578501681663,-28.531838069353938,-110.7133208044971,-117.73363766101792,109.00743320170352,171.63698628783766,158.35358250040309,-227.08595535663528,-25.508982188424458,11.047435295070422,44.706489410560621,58.362004756617239,-31.904388070013997,-3.0241908960843773,-162.26881664784813,59.486918218017678,53.777881190401885,-42.294930805620041,82.742705749522003,106.69701822711286,89.70755209465338,-26.142480857437619,187.49267868144221,26.333548824146206,43.213689891197014,-51.842143601332523,19.893732028041082,99.07105945738391,-84.961186045528521,130.63930168800709,-7.4510491290980241,-5.5224432328732256,-23.54568500560579,-92.12221422055525,98.623545292905291,-243.79543149420542,-125.30523195573163,-60.09814940361553,103.80079667961974,-170.05614088440944,-8.1617776525596959,-53.212254407596561,140.67758656845695,-249.02558035220008,189.43712288686518,150.16389226719349,64.094531069404837,-102.32258368719845,-191.64725613725827,-8.5754627696042789,-39.179827057450218,122.00817587398519,-6.6012885552856382,152.65602820479447,413.2941641318252,48.918744874171409,101.75874815320296,-98.557663831478223,-251.59128936288465,-33.321995601281884,82.470758415268804,-91.129681689783268,-36.937043192495629,-35.624772976576381,-178.23755132886924,-153.6186779790113,65.684117392172595,-21.145473447912451,193.89241432588886,83.82820581586256,-1.3902984153881519,100.52085587794578,110.07208134164739,-107.93286899461339,150.22101640879524,-125.69772626838618,-202.03457758823004,-205.20811202090164,-241.30458072226844,53.253354591197315,430.36190909630176,10.988591039908016,104.76398328765899,-33.98338274058365,81.986098017511381,275.00660347410025,-17.927566666822955,-110.67644243526152,161.91138259596704,18.998827533661384,-86.706219900235396,-287.984010514293,-141.67359622927475,-247.04202433217478,-134.65683887319594,-108.18848833715251,-224.3851908593557,-219.97933832044276,48.45577622030779,-13.023950854247254,-92.007534506415595,-40.161145811984397,-40.626600868672796,257.74013491974137,38.808720754589849,-140.83154297891818,-10.153255731215225,91.618032265233694,-101.92678546058249,8.0578699959039852,57.328983615741258,196.09919339913151,56.050964365127612,109.02337262300554,-14.030891643341457,-136.96387663459129,30.317509941162751,-226.61904663239625,-48.250162951457597,-316.89580038732271,35.997120561377088,196.71428214948941,-106.77473243777413,51.492042046202855,-6.9257743077085161,-44.544941935134034,-4.3575421655936211,124.09905595506154,-50.994380876943303,35.366393346883712,56.459552286458411,261.57760490534304,69.013348130983076,215.711462290741,97.746247499286781,88.124732808454013,39.460539929295848,-21.529112521414337,-246.03619772223752,-143.05997384242983,95.162641432841383,-74.584112673167283,-124.04811054480216,80.012169279882642,-110.06890015388086,8.2060842241795129,85.546793814429734,45.932745981219867,175.93753418354336,90.065412746970551,-7.9694883972347839,60.667099096092635,74.414891250837769,54.285391932255536,259.82072683437315,2.5702621798067007,176.2812124221677,-27.243868921943488,-5.974501325569392,-232.9926733529735,81.241081899468625,64.904281728301171,-58.449926381428867,163.83691842060114,200.77681085920901,121.9004754738767,174.29260712907822,161.91206542872402,126.74743745823311,-113.92954916432639,260.39877134445447,133.520014123919,-156.62542696765405,-316.29899238183248,179.23377063318765,39.529779589643759,-62.797561964459618,-164.23030046105697,-147.74190211850515,-6.0927207130787941,-37.617453596105705,68.61449477288005,-40.569966337205237,11.750902999686232,22.124926371150117,-122.7057875263326,-132.86054030688689,-93.163788597256911,82.009584294826908,154.8000394878199,1.104219481571648,-46.428251844100998,-93.407167719032628,-90.527065740268128,179.46619380959646,-99.275098749970937,34.32306971844335,-233.82644564589481,-77.43295778222452,-162.21439469447665,-9.9682710746169132,115.70347616865588,-99.165898367295341,-14.772039072238265,-63.983178231469857,72.929223992747467,-58.086867534916685,-119.86106447614202,84.492405514878769,-107.49713406055213,-22.177774228125571,-47.021233455560441,394.76048380513043,-71.713067797396022,116.34841024529726,69.972512205900301,-26.362882460978462,87.591465714793884,-6.8974128035608544,-247.38570872851301,-152.33555964628462,116.3314851911467,129.07564282103502,17.595762901186788,-57.174520242681162,-78.109376008547898,-27.42506205505633,152.44313024886731,95.724800580484171,68.285428155675618,46.314488031353228,63.370996481806003,298.26569521019985,206.99053810958787,-108.30691914120649,124.86891813944743,-89.739374735147351,11.50115637048949,-155.39584026268216,156.01148507433919,102.88247513129309,-21.62103861141911,25.744150287645397,-259.58890772148067,-93.765495309421595,74.337657726761861,-3.9335475784990308,63.867944637774372,249.22611558134747,-211.94916171854263,-185.40259141916874,106.70136163667252,-62.134274083242467,156.28190682506789,4.0488576678192914,177.95654259040677,-136.79709885104558,46.953070451677306,-28.617337343546438,276.95720334308277,-72.247821349745493,-361.24004230664656,-53.00517849626803,170.75443223084969,95.655866741633616,-144.6996711578725,-130.97436886535397,14.925293453175193,-48.701881793902373,40.52377221169651,100.07284517726518,97.257065589823085,-53.276828911246056,38.828282872048334,58.240408712375171,96.742523665575504,-190.33478463505429,104.48762157581785,174.90037577821397,10.013747384895346,-137.74313818269758,179.34185315090011,70.232727197148066,76.609868729920819,145.78309884762308,-53.594700272381928,86.478857225733734,-140.55005759801958,75.176331024794351,-40.88092739461144,-64.003343878409822,0.86641078014169892,44.397174789546582,88.430450109278794,32.395558038723998,220.45310744938971,453.93391214266876,-3.8004573709909337,-30.173298421421691,-49.761019610208166,-7.6986466542385585,-11.948178629839052,-38.028681149602932,29.663815679667195,115.95481600592696,54.876638395970502,-46.901290831519304,-72.382989144936261,-25.890641781774718,86.93687016858496,138.32021312361627,-21.654499195690747,39.245813432683612,65.203708970193645,-79.77560407784496,-122.42922960117912,87.107907425479155,-225.17259333435223,35.215877187856535,-153.61595375821264,269.73816406728071,80.974707505469837,147.07395909212971,-52.874079855377602,44.513395183327361,12.217244542102804,104.61927650804937,207.91143887417473,27.696836148354635,173.47931825047857,176.00386337431516,230.56478353585436,75.028759531252419,-6.3044382822782268,206.0172138360829,183.71491525651291,-80.447171656201732,-7.0995075331553963,83.536457067281702,-36.727095993357892,10.396520966322534,-21.14019038965364,-36.286489024003373,-221.14810603860533,-122.74650744948832,-133.25956182082447,-102.14159613804506,-55.89629044869524,27.213201501313861,42.08488108003548,-88.692571694638104,38.954029745808711,-25.482665222251832,27.168807787934721,214.8047155036991,-42.900264471430162,96.554631641332321,-42.380905478596418,-309.73835917986338,-84.887545296692124,201.46140901867136,-6.7891513805569836,169.48198163852331,110.2120931523915,-95.161236729775339,165.39072201742238,121.38548121199443,-37.377654197122474,-121.78589981833312,98.89333114104349,30.641936903285064,-92.714628245609816,33.527474655231615,-80.181657881621291,24.76387350956038,-12.782409276434743,72.289784642644662,-109.52420584158673,-60.544338955409543,-26.349007667655918,3.000035032873285,-195.45421753445959,5.1985137743425014,69.649979082389351,99.578342334462249,126.79674157231059,-127.09126034518957,72.016040601057739,-26.557312287267251,138.62744591580866,71.685142665125824,32.506546597605862,-138.19663747592475,-188.7791400706235,259.87010502890109,-146.8479951045685,-137.83462141812277,74.321468109981026,271.0486885101256,41.167215314950305,123.93362412672624,-131.80247425728641,-160.1493633378085,-16.488552570194166,-158.68024727172715,51.045604754483762,-17.058908019089372,-58.763382557886985,21.285851273978672,-17.015370726370001,257.01916669743389,-74.831852995329911,-81.941165043018998,129.25983289245829,-24.585206584377769,6.1027952036023905,-54.78358869604542,-33.192445454375367,-225.5623363272818,-286.9891257466511,-67.86498084234654,-310.94898130033539,-2.7764531825142456,170.58403689907732,-1.6098229676073856,239.22169964639849,267.69964526685635,104.4237384503745,84.401266301544737,-4.8921514146447791,19.238457911292642,-170.29099581155353,30.934745172059323,77.629234395343531,269.70070955484772,272.62197825280828,42.090236235436251,186.68129710253905,180.64772489253073,165.41765055472695,103.47368262784711,-74.508044332431524,-107.54039725225698,48.091943314942,-4.7589310595242438,0.73182089902880421,183.08751772748457,-46.9745307681995,-87.382885816655119,-108.2983723312495,189.4684997214016,-162.92200271210604,-177.41851723444137,-117.94384898372775,7.6984108953054147,-132.99568357418795,-89.675600835375874,-112.5451559541948,-178.0954267153478,-126.27682416485297,-121.07450428318491,-26.66396047210921,-91.877465249512582,-39.501785716214101,-52.773363963833319,-74.430833938663241,-134.11778103468714,-4.7917490413246853,-114.99771553796974,68.693938905233068,207.58835084649425,-95.901679318760728,216.91327593556571,51.609613948132392,11.383209555256201,-24.633023436644848,17.009491690572553,166.88367020035301,3.8621274286228795,7.0372182863551167,76.101676251987286,-128.21122009597343,87.0681797736395,222.75887306404698,207.76642435887754,81.167826270013336,-232.68108554979693,17.878715912238853,-62.006040689287516,-21.848227806382329,48.094663297934538,-220.22553180668262,-85.597581536286015,89.186571595521116,35.312298914904375,89.972322533911097,-63.560070367281938,-100.14907354534274,128.5857204902463,-70.257669833930009,-35.838097415448601,64.975730213542533,229.26129356358837,-7.8420510999636122,-58.285983767956239,13.229567509080645,-68.548148433152789,-39.202546678452634,206.56309206845219,39.479218866434479,191.32755957254466,173.08184539051234,-110.70850780109059,209.2585200510477,-28.498051019058337,118.05665352553123,144.16748493695155,-199.36754082154721,167.56001085486756,-285.44459802583179,-14.593059273002552,158.97326560021591,-15.929642674319592,123.83231255432224,-18.970559564447441,38.335378947771588,-218.04560025278266,-32.456962764830919,-31.875059431018954,109.07346003133145,-118.46398657022041,-37.97195531059743,-71.933107214709864,-37.939692796352666,170.103462542984,-133.46834657484243,297.97669162630876,-63.549726604872973,-150.50854328335021,143.41963279710089,-2.5019524592823927,40.47462187898028,-43.202333600117683,37.485363305332243,126.71713553836624,-20.074695789447475,124.84612333701703,69.871080830097569,-138.18872902670253,4.5971015346527366,-71.187192607902688,-371.46148717715914,58.17257176847356,47.112461441320036,-53.804779201908111,244.29071934667223,-117.14046310902732,249.70164409429236,-306.81332665504067,-165.12054161427091,34.104269942266612,-284.70542873441951,127.20146371841018,140.53634073717859,-152.88516758040561,-68.729715867573987,163.79582088345273,-29.351358040688396,-70.635153143197641,169.40948274861375,54.580044602562651,30.197991729187439,-38.492274108537543,83.753141240054333,-7.3516263309235086,-267.81469842574228,-55.539977927329289,-213.05336448772289,-105.21018200828833,108.52760594212025,-39.475385516086611,60.761618852646137,-242.14946011595416,-257.79766468103793,149.19082219832094,-10.260565948518028,-69.18434382071365,67.967031640876272,-78.150613549534626,-107.32875473825646,103.05497460028926,-22.014574033191366,164.65294405843167,-176.62821441970505,-122.95466214933339,-37.342269584234408,65.569889923947997,-75.162937428156766,10.673415108243324,142.96914650784498,-152.99113682689131,-5.6383879602257139,80.758616533712967,68.347069902285199,43.898559940097797,169.33648028850547,28.49055214894247,-179.09839317065453,71.428138152411151,-89.291732839856039,139.047799865359,-1.2857330942780507,-242.17564580986308,-65.854987882045805,-229.3760751104187,-43.947175553616631,-84.668249467011933,163.91205203794686,86.260253933377442,-91.161552881590993,182.23364977910643,-76.937594672894619,-0.80556965648173673,57.81875961416435,-178.4334457808468,123.29153674775804,8.3823563495014071,50.416440765831659,-60.069578581064931,47.304132414120602,-101.58180823174348,-213.81641577308238,105.52194855175912,-47.338955160230398,-71.133249746687738,-76.180555753136304,85.789787908850826,57.945929022421403,8.822430322319466,0.30521093055671145,53.389645525182452,56.22344407407212,-21.316339454265027,-146.29721400046526,-47.898787146266756,111.92661425628955,96.505453527734801,-23.985321752537438,30.134103021876236,9.233446251798302,0.30269598115051366,101.9106700496352,137.95227718513553,40.760891448977688,-10.985280164334899,-4.6480101792248121,-108.68363295242054,-91.749090927934361,-121.4074710623226,18.873019307241982,-75.009980455272711,-62.729391356209518,-111.87849117320033,-79.625618600136931,-73.854809463007172,94.17977173789518,166.93680974306329,-51.121580020427515,91.657927642096382,-189.59887767194428,50.926221321853276,92.812603664781676,-71.093214893028318,-37.62427887517353,83.58708236049344,-150.19942887751864,-20.911502226224343,-67.179595697958149,-53.166019524424541,82.014249416681935,149.14196319960547,-58.735067050426174,120.4017257081685,62.429356731346616,187.61413403574718,12.340425386663256,-57.995787389838782,-109.678219903447,-53.341709260560592,21.442749652728715,9.0790540761103813,65.180110686346978,148.4544446446661,12.016303433255878,50.23257642855873,-12.246376235071025,-158.58776148544564,-17.362458980795495,41.584135388081101,-85.001883619495004,-48.517800928201964,10.622313980406709,-143.10684923931967,110.55689098553898,-7.0529956322559428,39.908525522934745,84.209394869868845,-54.340696033279315,57.707601017312413,-16.512492862633756,42.035116523956752,66.537732322794142,35.751302268323514,99.098172815146967,105.45853157880212,-2.453670244861847,-213.02517069412323,-123.05975412790536,9.2623665759911251,-130.4225276566041,48.008413498068251,-64.897637299468983,-150.33397677141298,6.7674802511251677,246.15824449565756,224.82495137438846,-68.577185099180809,-81.253759227315712,13.174791981905974,65.971820997132255,-24.595405890891627,159.61910045979727,29.395646526968939,-158.8868829212972,-29.699106174244402,-92.131308904870863,-114.29520182262146,-211.19442056842945,21.28584171706288,65.442065034377336,18.686145677393547,-14.780643111100016,67.432813406375459,37.652597559961094,-3.9367813525493816,130.05593643646139,-173.10575511355259,140.4660747527241,76.175826160959929,-80.656274721738185,-49.437169198994255,66.35798441729861,-82.007791036994178,-25.041058615684499,-150.99944451268689,-17.154524397655763,85.037970638282701,-44.798860175314296,7.2660844724150637,89.162311496439983,-218.24640538116432,-21.086412270635677,4.4442511094135355,-67.327615647642176,15.064592311985876,-37.949082031279531,106.59788598084508,-4.0916603411999333,64.279759558918016,-31.501546627906976,156.56665317570653,49.946710765658075,2.7905546555791467,-6.7579547634969188,54.459034867013123,154.81079412737881,-74.929571884940117,-35.364947952617172,160.8030311446928,-137.7356055658893,-107.76497252273035,196.70951382590863,91.408719223900789,132.46182227501168,-227.53103050562686,-4.2424016946511465,73.127211341308865,38.99858840568556,41.097371212636858,-84.587126889944031,-199.29275943726753,108.61293046506576,21.430360603368285,-109.88887137366737,-104.02897284676395,-178.5808526422652,116.66014904022387,105.10206787677063,62.695228206478298,64.22758919270521,-5.1749574617219594,60.244492709150322,50.753775759375827,74.054038317842142,85.355710136337407,31.791198200262016,3.6345577723266871,92.72913383426436,-232.99722475931836,-102.46366913896156,-140.4126183623857,-169.84260290741014,15.261839604849467,193.61977570542578,121.55801068012076,-34.578196604948296,-40.694835925105757,-10.882456315234151,119.35881310543159,-71.534424646326713,271.53782684675821,-2.8538283248017748,62.45701143723263,108.92930409905722,10.51293890357276,160.67720805270238,-250.1218406503055,47.53514614235624,-85.02943194461092,-14.444158767180667,59.993986979519768,-189.24623821680387,58.67071298071842,-124.6321059181609,43.371353411566005,31.429381741618812,-13.090423046740476,-26.718398926871437,54.490523526851902,-57.899494983495913,-127.38246456026758,116.57976581915797,194.94866684885258,-169.00485174919962,-100.95653351933657,-90.301748890488838,-21.801933776658636,-12.443906355763758,-75.292241092528315,-293.35427443061479,-159.25325171326267,142.89460235090542,-136.6288387795467,-175.80597811421748,47.218412692812983,24.863045778226482,-49.704186417417361,-45.903434172380969,81.924589899084623,-292.36441268957412,-49.361916343846701,-51.960852954060215,-179.62398773854957,-85.674352463507404,58.092036176151836,55.198787062272743,-140.50205890111499,170.64119034875065,37.0272858707079,25.503427247579538,-62.949913574277396,117.16071045804316,-78.667412922309879,58.316254804482469,-83.589646759962704,4.928805517736393,-73.889881029684361,97.876438356934642,-91.861047364807078,1.1166754880299763,68.79210126758079,-2.4026375597092748,-145.53607674627335,-137.92312400304326,54.376208592846837,-20.387367286631161,59.395893947366602,-65.017812311934193,-18.99285128878962,-24.026818121832036,-155.6560781441093,33.476651413293588,-110.86833722473398,-1.0647560710649904,-7.4373277377353588,68.198762065613266,-65.070564612450596,96.869807374381224,-23.804688218206714,69.866885828718296,-22.287525647663536,-279.34395627522986,88.593294387768466,-42.684447364958629,141.68152135136972,84.203804169287324,-19.056668930171902,-116.28875029347557,13.611316058369276,-16.493000045810895,-102.32430954450592,74.743089996958119,-48.49484359946446,-49.229798110944927,-74.391640742938506,56.896051155158816,-31.754079032315353,9.7105919945034529,-65.547401340755499,3.1534270858486124,-85.808283090929407,0.66171208769647905,-89.726446733603382,-1.2718652991837152,22.558171849882683,-107.47446768173378,24.843484410934391,-12.45647833122085,-72.132699524803542,56.958127425569508,4.6791260528946879,168.68052714274864,17.836831257103547,-10.610512593627767,-62.520796785026619,-19.206805635015215,118.38398151523158,-101.48971734395218,150.80206200654675,106.36283838883722,36.188657058441066,175.77384761837789,-86.884630958896523,-24.228392719031003,53.218821456576784,-3.9726568165826563,-122.776823874877,-175.39239791509013,-16.808229012374071,-49.101281357959039,-145.93117111251718,-81.59751929343895,-158.38477499103769,12.769433695095472,18.22547314201309,124.01472283545627,-211.41555131855679,96.753084651414184,72.130010743258438,29.684357449226098,72.577176603843469,-41.27300362554368,-125.17786646672819,-175.60144600700593,8.8407303145431086,30.798575566279339,-19.082510660149147,-57.963104936726168,37.441335003657116,-129.87594182546241,-25.935150689839162,-104.32682463522779,-18.476261483506647,0.76819996880135477,-4.2928406805506896,-1.3204447186912915,86.157542424305646,78.613238218634706,63.448430057829647,-97.662257618846525,-4.3006126722758644,122.35590948651972,16.848597792633353,170.47564340504249,69.957314880049495,-76.08759891039324,97.521480112030574,-139.68646176533269,-122.99307483494947,192.97874417525315,121.9625327791011,-20.875921226023991,-29.737023613645825,84.450737610321085,-83.404649942566408,-6.4299151547947773,-33.503882451784719,68.43066566035229,-120.36536237300501,162.69536727173335,17.530960611775953,-4.7993086394770543,-9.8409231842802107,-71.38973116268258,-51.458751490476089,31.789485916834238,276.46649956154482,218.61992083682856,69.019727757454106,-99.635261844084027,24.994315506966089,-41.53521241260529,162.86818797239107,50.198431305705938,39.000346491060725,-27.761332089894623,97.790528713387403,-8.1014322849164984,12.516118680864359,38.512061756745254,-161.50591284035994,-139.3337009053422,58.680318638088892,20.575873315020594,89.514798864786499,29.512033484528402,173.25358403862208,48.830527138167824,92.215340825466811,-51.755024755032359,-77.295905338826628,-27.61354087441212,14.668019086740287,96.732245675560364,13.861800735495265,184.89904040686372,12.866579572370597,0.50960464207020095,-6.4532076601683599,-162.20242589619463,12.331398680052224,7.3818517279784857,10.140025749662126,47.91635287581682,51.483928291239458,48.545862915230366,-61.715793006804383,-159.89342256947191,-142.33418035602818,-30.879823957978665,-62.645145713933147,-221.03311161871068,-71.729714080905779,42.560725154776982,-44.264917481181726,17.293743984335492,0.11043960344935311,-118.21376294523562,-125.9633083780175,120.644544132655,-95.328499279465575,-1.2984977830387567,-46.430971313638715,92.552070752988669,56.760231248433627,-39.325154941571071,-28.415236691219039,-131.1488635653167,-6.0592713050122882,56.868510895577657,57.626720607701493,-105.52932890302165,40.91080286740543,-61.021515410947259,-105.69558014673774,44.692955203123006,-177.42147650977327,-57.627236179891881,-10.276008795385508,-253.20259414681607,-12.357632526224013,146.0903980182764,124.64309004045211,61.493422271532886,78.290068916238411,0.020646218921683612,4.6563259871760803,-94.223188032327243,24.537637012725739,-128.12305099542448,52.774909743520794,75.309426984691839,13.814553022536103,1.0930038847946939,155.06636968625742,73.272516417599263,28.240279135321877,76.800953289186481,141.93156231684668,71.140767041149331,-258.9424872476273,-48.279983383993503,277.27364477077759,107.70365185714402,-26.227275969894571,48.15889344660301,76.738383283348639,-6.2346047838914789,-46.851490435570859,-3.9722497738186355,70.28705107462342,38.836671436125847,53.983782075862138,-51.011842952772042,101.02309796010478,9.5751552202592265,150.59290242598482,-83.946247501771069,47.154780710587659,-18.414313065305194,56.642934683568598,-137.1702474998134,-98.025400645514978,-25.906164367966774,172.19361729283071,30.889201510646757,-95.134907089811733,-46.016796362526371,27.235723152483093,-97.087767682274176,-37.524247179123478,138.56772024342621,-127.39910480833612,76.360325450724048,-35.768665103492872,-35.10505469810041,-18.036448165523613,-59.772900232248567,-130.44097403357989,7.0767741868347329,103.10065833378391,-101.07654060834346,-84.350786869245212,90.122731345917899,-141.53431155376484,-95.210357410640341,-67.588218806561144,281.22399619641112,-78.943033004630919,-96.160780642757473,-69.378562936354541,170.26169910634997,-45.12607747845999,23.391189567683238,-16.877254716470109,94.425742015892965,-156.62550607016266,-98.224103690489841,-26.949057989829988,36.048167438077478,-18.547129058772807,-138.04189264166104,-45.707147872572271,-8.693504959213687,94.097239196543256,-45.022164251073207,-46.046749679184551,-72.461298439653788,-50.105096655783683,113.09755709974277,65.394535790777951,-89.44288132032159,-143.32208247811892,-81.418246597191796,18.157029471550253,3.3386940449598832,-57.509784366856096,106.18034240421335,-63.322872083564562,91.181182679191039,57.242902995183861,189.11038970578105,96.074395347386599,-284.15654418990016,-57.783687265928776,38.752385155661869,38.226617665774015,17.478955478396067,-74.52180560872975,-3.6870722882012927,34.017683213238662,-247.37959688686539,-233.73889928525881,184.15261382157601,-44.185881845032696,274.18924341506693,-159.22408397778182,-164.21752947614817,24.73372699518697,-115.33910005884287,83.670120291799194,0.27578833708511041,170.15285627625039,60.014683359573596,-129.64594056860781,-92.640072481419153,295.83255741450375,88.130972439973561,-221.46620274085498,236.40289062895229,69.119956537050342,-73.328797261967495,-41.298578942103262,-40.499473305766969,118.68925310666719,-20.553586391127638,199.19580902924855,57.889186396812505,44.357230216864266,-94.96189027211112,-119.77819878658251,55.961879007340649,108.56485103372026,87.123051103179023,-82.379782948018047,24.563268867325739,-14.928158864801979,7.6108499471685285,-2.0105492428872083,-247.34014326174423,50.119806486581496,52.187806847439454,138.56259623785826,118.9209744823992,-63.125584527370776,-115.49549468960163,103.58865022765933,-39.925968179998307,18.608022277328686,255.18368984902767,-120.17777679197386,-70.294320870019476,-168.99189599459572,348.37279974385552,-19.474551025899601,38.452723270775373,-181.22147779678954,-40.40796148268214,40.229652678686328,59.028735482875021,9.2288945878729507,39.681841285399841,94.85636614306965,-239.50480005965423,-164.16008013405744,119.04434369204371,-29.826078039790609,-143.63517774844573,141.689210097645,-113.11291232302167,249.02033388472159,35.639902173222282,-48.669753031395146,40.918071589982439,164.19300497801331,174.80243452602426,-126.33135024480384,-37.740216916894781,42.832937495955967,-137.08203277239801,131.25676408933512,-82.648530565623133,-107.5646155955007,70.149103097672381,23.730733871624693,44.317555867250789,-68.096610878763755,-18.609207400595871,-58.722978743497599,183.4674247665809,59.27771728362044,-118.20220759200583,24.995886059477883,-39.080747155904568,-88.719706935585123,104.54682559381615,273.62840339620124,-58.544096250858175,108.81302530867166,-82.577532992264139,-5.7891474280365856,27.951859409634139,-12.718788114490781,130.9709631077406,-164.13155663657665,-63.761170935867597,-43.058008754669622,-13.127147626240095,-14.9380111981352,-11.056535923364052,93.837922896223546,84.282147148829381,120.1609028670222,96.825439170545934,-5.7502718681107652,-14.222042434285711,-30.569774642874492,-188.19025435521775,37.128409062845186,-46.29664571779098,52.559274844651739,94.39185959057626,51.68482168676401,45.059772990997914,9.2359296830616344,-238.17662767749337,-97.098889731961592,210.08542087306409,-106.65456529517739,-140.3611656046368,57.673872091804327,-123.95347966574579,11.977354402989535,-41.172561774903144,28.907085413331064,24.273009593132159,-154.49871556624072,97.302213949138235,122.85940005253428,-68.060689111064647,-299.31446769349066,319.9503333217769,40.567081588446115,218.24410701025857,92.980187700082439,-127.31618281260248,-118.46742567504148,-73.849418063090042,-142.82155938002722,-199.96639185193439,22.156354043926115,-126.28226227719176,-27.787182021714635,-133.26077154556191,-177.37426935716945,32.68726146831348,-93.56313585491182,-105.1487253128537,177.23172745528544,-47.743364425729993,-72.920429021728069,133.49175459279533,16.506936253409211,-188.40185635552635,70.462224676794193,144.66585484835608,-121.76474912373672,-73.00955874961322,-2.6023020802807508,128.63020664809869,-28.08378912043419,-91.598287571876824,-177.70896314483701,-131.51767039810505,-72.684593827410339,-51.589793418413691,-206.53349968552126,125.54001551452274,-184.08633703397408,76.457743089485959,-62.844891512943548,103.38672503823696,241.7820817355769,-228.43120907639224,104.18924819552018,-96.454642735206932,82.722767655182608,-96.135474379203828,-46.477836499722947,17.094236017563588,60.806731067712604,-96.351370632204237,-94.814918986315575,191.02705595690514,-192.45472281595005,-75.951214912623186,19.50212671464589,210.0209738569888,-66.916365452030391,-139.76109514419869,284.26137325207117,5.7981986489860553,95.016840148059487,41.744455136916059,86.560112390681709,33.571822948733306,9.9765360064456843,25.267196466108842,-14.702515276785121,14.849551985120517,158.12268335886495,45.642111827107414,-1.735760074700238,-141.13688113644838,231.45937585282778,-115.51234950109371,-26.759373359401607,-211.42825656340048,-34.230445724197395,188.71276639473942,52.043138206923729,-81.423807464023724,-202.94188797490386,-80.976881756567181,-89.164644573903956,43.685319499329985,36.422395321774154,-41.119512498684067,46.640105092464815,-78.187937752356248,-143.63524708193404,-26.951735869695092,155.1030429115435,126.42508718232146,-33.460532626217265,-13.590595226438893,15.629196903875467,193.21310130172344,-20.024941489239467,18.481512380419247,173.0486238686284,9.0939237698996607,-309.60203266114434,1.1064976071180581,-82.171453410828633,131.79579083715967,-221.20000444800291,-5.9832170677974901,160.69881322947981,-94.852599679896286,0.49075895115595358,18.299546784675414,-128.02098888145321,100.33204737075067,229.65347796197116,24.852920239601055,76.714281141828479,-5.2683942338324243,111.79241421089461,-107.13775625294687,-331.02568334602961,25.038260566696025,109.89664320834112,7.0387618803303553,-37.50313061717236,14.802356734126221,-15.126501384535196,99.199777145650799,-14.121256826572974,175.75676039781385,-241.62638154110749,-10.306966085798678,-60.971539638591352,11.67184106912314,44.619676028229037,-70.735937406784501,-26.322344158924508,81.948215239444522,479.35111622382334,156.29999297662494,41.174536957770151,96.07418060011041,202.1347716044946,-182.87166390791947,114.15848326687791,-27.784109212628191,-221.92900671939901,-222.66139903627061,59.610773550566165,-71.131063743330373,56.932273996502673,-21.953680560400855,119.586573721778,-70.154778889115846,53.315812933797737,132.4583659055138,21.613059868107563,-34.76044462467754,-137.03393298234988,-168.4182902620847,17.998441636480592,-19.862958369429506,207.14247815178337,-21.376151490681195,34.82648367786615,110.61555796718903,35.02053772912501,-62.113277475151577,-54.4372176730418,-68.591104434801778,207.06771312270828,-129.1431317743149,-44.024606669232895,-70.961569300107428,-26.477371885847305,93.124601276206818,-27.913258255225699,-85.172957037953523,162.65774333264048,253.11020560072666,-137.94117111168282,-277.43128512206368,189.4859805631072,195.69779167626848,147.49634919459854,300.31166138745652,-244.55489890630997,-20.264909020874079,-277.29366775025085,100.85080748502511,-76.292418121694837,-3.1912225959913272,113.78593413705153,90.360987191573741,-69.144474957791303,36.557630695319084,5.5104708620135341,113.80114762981296,-138.21661380829892,129.48177963720534,158.20358650163794,-40.694486582389871,92.153380314238291,-117.81384196853492,55.039010839257884,-139.78138078150337,-57.878371461112749,-112.4519166708306,216.86037526520295,-283.66292742343217,134.74062369900972,-106.59479073969896,-82.613157710417994,94.782191745699464,5.586825357672204,-165.47588436255899,200.56381908691554,-156.89223240243541,-360.50434867850265,38.787608862692885,-104.93973507119503,201.65571906074311,86.835211180543979,-193.53941681591007,-48.230698126047457,-11.633299483574049,69.963641806436144,268.77855673536158,58.738881008542762,30.018121795341649,-109.93320737853438,93.133548329650253,-76.484541149598869,-85.941524133277511,-77.230695556545413,-31.248497189926365,-57.968981009928854,-107.71913236424709,161.3074359698752,0.38508864498534479,-156.0050168692818,-223.24846169254997,-88.193740404393026,12.386921193965236,105.36397646124523,-172.11706208792276,-138.6506496402512,227.47671391309137,-56.576267866292994,135.76056038383209,-151.42015787003973,-98.806077756966857,33.473955429161236,51.589943231588833,-133.53023611103697,-24.652173370857611,-179.06783566916036,264.48716278864214,153.2074806701811,5.30447954906262,210.93164564934341,-75.958139738788503,32.112217389193432,-15.191593471502344,-5.1995931865422449,128.71772963585462,-47.297624206281078,84.327819394921164,78.128178211401419,-40.348712683994158,-90.037800131616748,143.7179765051898,71.364767959155785,-3.5113898796412926,-177.58249045904805,-55.08378595177124,107.47678895600492,23.127239776114507,166.98151904855609,-217.99301138890596,-144.92529897579419,-94.804536343809573,77.324971020503199,-102.29495000561035,17.67658492487103,116.84074846456507,243.24514945860278,-286.82125992599947,-27.177916923317053,-29.542238917631444,154.48477094269825,111.58500054537438,-26.621870630178506,-1.0296611800529973,-85.088987360292293,-51.801814740644133,35.625626696067002,-313.81521095962506,-87.337800353078507,-90.964541372370093,-26.09646072813732,179.87277256636781,-170.85416661707575,232.76328923508277,-98.476014877705694,-191.72037592895396,6.317854927464527,-34.950517983851277,-141.93164684272745,146.64232747314227,-4.2770539365423517,123.50728029052836,142.82538938037453,22.756519201622396,103.62296167969185,165.8632786294877,40.594122915737998,-5.2118039977828232,129.19842786684669,-56.939603556043707,22.465235124632756,-156.09655629066944,6.8064084514065826,108.36591640152503,-9.7146166873551323,211.05367907994011,-68.540225612212751,-10.981560399198123,-11.944123837233413,-204.5249182132701,-169.08719065204619,-47.151831915974668,-21.136731963364774,262.29760653947716,-162.83241926528666,-156.60891281211755,-134.24790524869076,-191.59609757844751,45.159676167780901,-193.08045073792826,11.237908920660701,-115.02307742635944,184.16979361369553,-62.167817062402676,-88.437775886888488,-26.309765211635757,-105.93394394671799,36.979081090543104,-57.162661888553053,-76.866433517742166,46.045194586450251,-238.04324990611866,-25.289820150187488,-132.67675852649916,105.78324645754547,-22.984935264729216,38.468569221064712,142.24622940921995,-189.59712306320702,-192.7141650084009,-12.472297519210798,6.4089245809322115,-52.372884136408864,124.84231249847053,-105.13238540778406,65.61257110786805,105.10380621629713,76.279766442098207,-87.934255842050405,-145.7459386220049,-8.2975245876112389,-66.008546245071315,27.165130231921413,-25.753457133327146,-102.20057617816897,216.20258144113589,183.58657949658178,27.897625090533516,-80.845142875845184,-169.30608551553269,-102.41482043344487,-65.751511754132039,-122.28947212198455,-81.672651364696748,60.193476550710194,28.118889759028718,-44.208996952505331,-113.31590444854479,177.59020655964724,-95.152405330428053,188.54686634120992,-89.628863906074088,45.458823654897714,18.849156538697798,76.918282758005887,42.329712529374817,52.742129696449346,-70.715587214751949,196.64103279897162,84.249793810607656,207.37965756750117,-75.639770706149619,-172.9884062994019,64.413358104271083,119.62498564137415,32.631896164104425,125.52158740664694,42.297428080669732,3.2693077830026311,8.934178822541293,23.156504110282192,-42.409216794815165,-62.318639627540918,-120.48263700026313,-183.11962435315627,253.16150588462182,197.31380728391005,-182.46755712275944,-182.17327820298874,239.42599054365368,144.93498277464886,113.17408441957386,-11.785805213359648,7.8688348678981157,-160.99993468331431,125.14493395698786,67.400912094029636,300.10442095449582,18.097690827104842,19.050314479112107,44.487538073701856,-31.742515490282294,-54.091882803637446,-133.81696141719866,-135.19379961611315,69.86038433157826,-54.230371658952649,176.19004548428998,-44.494105801929585,-3.4497525722038986,26.522611947063631,41.291125861031681,-196.84364474188584,115.05136497437729,-179.63056914020194,175.23254754115072,-150.43178245799726,108.14768825738187,-1.2519411450295621,-213.75051642210394,-146.60806500526024,-32.391585625687085,-73.654796051811246,-73.331082170987088,30.121740507915995,262.56260891911762,-18.628926818217622,-22.86380650706316,-128.30689841050986,-58.974273932532235,-27.413750836973051,-19.455381938638006,-132.06168805360824,82.624467472081164,-71.509125912978405,-141.29049514887285,3.2686254396499104,318.12095353782274,-60.384521574929828,99.674226634034184,-37.125248083023308,56.982425669052404,34.37289618771652,167.46118558632566,-143.86315366317135,-28.82291528292005,-6.5127869924391391,-77.496032647134257,-75.447541908412433,334.88244516524878,102.37116720429023,119.79284400722511,-73.141857246770712,-39.201766238980213,-82.094118682535182,81.708867725330322,-1.2448208216343488,132.00294241002598,-109.83712748049875,27.880183570688821,83.431693978294931,35.415560550232264,90.877059372693225,100.41480897304189,111.79958908807463,77.344344899533851,-27.937307158152962,-237.93216800587709,-248.15495619905391,8.9986460678028806,30.723048753452666,-120.44118198416916,-47.341263683854351,144.02890013352894,144.18666045188809,68.38730184228092,-138.59369235706097,-79.801223413087513,116.79668650528046,-80.32342103787343,-74.841082070295585,-33.269669000633279,104.24472144573878,52.665481656095309,-175.33651887113899,-4.4189274596058965,-191.87092840387231,-137.93702755817506,56.415636889001391,-137.07249999836634,-228.21602533235622,258.71802661480979,324.20787375075747,92.958595292422785,-73.14082573755951,4.0439973018215802,65.735328559125279,35.08708417554206,-111.083549761325,205.34819893246862,117.36223522254464,-127.49293356474345,-34.939034659797336,-1.4066855872126958,-38.720693417494203,11.678543662220751,7.8854022306657185,10.050197450704289,57.532183623097218,-82.51238767157929,238.79066866024016,-129.35083229872296,93.332179361165743,-91.25824121128106,-198.6071503110978,30.245363502370488,52.730331342407929,72.738118853661987,170.59397607914781,182.61866241626686,5.4369260538208337,39.883201833185893,132.55712659869769,-100.5146146143946,-87.166272564437747,28.529509948656852,304.57656414328557,24.76771561552631,16.780453717618883,-13.488667053193637,-10.96388428963612,102.78762959913057,49.902786912598643,54.852261668651444,-87.907541553102092,195.72049059745763,-167.8922910693816,-163.04668153258746,48.117383191435316,-166.33976735619967,-123.03648754847001,216.25188977962884,-72.359495985132511,-48.165234529946332,-24.421897068413013,-79.414440973997472,-307.74735537084587,44.541379607721524,-54.743283921739042,-4.3044134825067459,65.253180244389057,151.9693290830956,19.17500887170776,108.46247551853253,274.49233312725914,-127.02515636781339,-24.44825007858509,107.98085492331651,20.439710270805733,-140.48839357023834,-99.922992950178298,35.970670148135433,-98.629576320419062,45.89063617343254,-122.03113658209398,210.061875279047,-115.68667662053764,153.31532504333248,-55.187580062427578,193.67017515924184,-60.5453311644536,232.62854863261896,-37.536813090103635,-172.65181966872535,-106.88724091962803,-5.195475735281633,-70.122777090456438,-78.649362977605932,45.452572937929361,38.98549886536442,57.683221620666139,-21.424324139728043,77.900703945655906,301.69271510615738,-21.258548864223027,-218.45407120456758,-90.746733152884218,157.37434404336966,-72.607302212865747,32.266308599012149,-40.249980874776348,85.044273791097211,31.657497471268726,19.330382745497559,42.984372265353592,17.797432505649795,40.605133321560714,50.296959771362211,129.35272031885827,128.78145141654298,3.501462553931006,-251.80501604317277,38.668312920231926,-2.2541927902999817,58.521182431725265,107.36837335510602,234.34587840491562,-73.17878602570218,-79.543605818866581,-4.0094241514917748,77.912403811363106,-68.950973286371948,138.50022287095533,-124.86691619492126,-77.620752314370577,38.47880188662878,-133.6539332642692,48.358113541439025,-160.25721969888031,105.67861613933158,-105.67943078601945,184.52147493475627,-123.4059782117244,-51.892200398801592,28.959912302606512,-22.219353238687809,92.782846565565421,-68.744780843572258,-90.214681528840686,-10.685930926011789,-106.18561215899851,-57.674767705432963,-12.587592782909059,15.52957611693261,110.87077018157608,-265.64005363625847,-23.64869080747259,69.069076624205223,86.519518593729828,123.07144714586943,-146.9869929009071,-147.91895367268586,133.56087370801561,-72.675134692892385,105.65061020541648,19.617286790124695,-27.76427062905271,-144.52436492726065,18.44633412322635,-161.67888264836941,165.79797833266713,-59.01212955118293,-60.423146816749586,53.702881289793368,-22.321384000141762,-12.836036576751852,125.57251148367489,-117.18311520201783,21.207714250615041,-108.79851835387757,-104.25789864353025,-203.17495706505287,-4.5732180640704314,65.517698782363823,93.393586858217731,-41.626900821758476,180.44529662608718,-187.52067480147531,-49.782528938322805,39.537698930233461,163.28909366746973,67.817273347092453,93.940936851039652,48.833724431233598,98.969209644315228,137.00081852738654,-116.77843538601097,-53.821922763275509,30.189506464652425,-25.955305050568555,-230.53511268670587,159.23089655225152,11.765272032822029,-13.573933989399066,6.1114253909088596,-0.12960442885575674,-25.058327750987672,-176.1562195984047,-6.8785217760592161,-75.935240323871909,-43.074631034816065,-43.095189147937546,193.48733667858144,-2.6601097866936527,52.377813626824562,-36.552275642219506,-308.23584734905899,95.6627708904591,-154.07390131362652,175.28324611889133,136.85423894925802,72.825939972336727,53.363204308776687,-50.826293241115394,-84.423071526532937,1.94689067479176,250.14019136671843,-9.4341425010265851,-71.657189302199328,-89.502671528878182,-30.56607489350742,-110.88043921902113,-69.320870134979486,-275.01606680452824,143.77341044438401,-170.2569578390808,52.279219414464073,203.23463564759589,-11.972320042203442,134.69597211952876,153.15744969099185,118.48845197238003,29.993793979916674,45.773382013083385,29.468734313847747,80.051768791352032,-167.27164994301407,187.00045834650834,51.886594972719145,116.29853327227615,-128.6485469760525,10.156589593465668,-123.25813507759494,316.44306813115554,118.59188607688868,-88.484494736441491,-92.96591108154999,111.53540921048214,-27.38252521522103,-3.7721828286495835,-281.45538582402361,-95.169350639787467,55.180520759021562,83.425475420184398,-101.2956634552841,280.00432030085796,-129.22406032210239,-179.95360121089593,56.208548858679421,-17.908169199308357,182.1855165238461,-23.753307097192547,24.697198661399554,172.25132512794559,-106.54587926554478,-84.633209648109201,126.98372044068276,58.486553132616692,180.58934510757325,39.590525435606381,278.71913904569476,51.708671124107923,-82.367060011351498,-170.67240599343501,-151.01041247480646,228.4242779555274,39.313158508742973,-126.23588545964472,-119.52885305730737,46.121958015122388,-39.700852582955598,-36.766439345281654,16.870683995129532,-234.11092792744799,-87.072476308897137,-266.92423435237947,-5.9628012620857511,179.1344199999163,48.993326079929993,15.182223966796634,193.60342278256513,73.998869259649908,-136.87673870200618,-176.48805601690935,-81.079165125719783,90.006142910650539,18.667275914828707,97.106017003492113,-11.00003971166398,8.19096266348852,139.0639268634103,-32.99337234120911,65.601466187080945,79.43674959599106,33.262075955824585,82.981845371142953,248.85624722461245,110.53384735511399,151.76739279919735,141.99632743320601,66.902673639235474,189.18916299702533,157.27390141620964,-64.219197821082673,150.08999955257161,-4.5047179420809016,-175.81287821502235,18.724381667231,-43.534813987211614,70.830103570966116,-77.852211220113205,118.32113349769863,102.05421009485676,-145.68508117742959,85.340892555684292,12.258730042437811,23.994932163173928,-50.802457668212753,-121.06915379993359,240.65136200079712,77.179164765183302,29.566261195528796,-121.72703766287222,-144.41551794428921,285.41812447627387,23.003586836753684,22.019548290188791,-310.90065376654979,-134.22906922181218,195.04812961419918,16.424931333037989,185.90362108980383,70.006634956481804,82.568947309860789,85.23097738215688,-111.7297672259195,210.61420908420331,-17.54319607640576,36.548585630556161,-134.43898253530412,57.468582139072865,-220.16376324709265,-178.91739944857173,-43.673685638116773,-36.247288419979959,55.939526423812119,-156.27781847470601,-7.4368263781878738,-137.47839431842129,41.991593937203568,72.726371171514899,19.988095522203238,42.896671759501665,-69.557512920897139,105.38442307624311,138.55633147024781,-116.35547388516304,-157.76700382574589,119.72340605905367,187.47299461960205,-130.39348818467698,-60.993969519461459,173.87010994005277,-100.09766824135664,127.75805953700061,170.27931339096614,224.13311055950351,-19.495523517784918,54.253964981053187,29.259675389135907,278.91284196614879,-87.240513855651869,-211.81588212387601,-47.126908077033931,-232.88361314352085,30.745113389892566,116.10087126527807,54.100154004042423,-228.22296733869464,-44.782624968415412,-181.49408822741759,-163.50569329479359,-21.640016165401288,112.47594148791218,119.52102798559723,-97.674033948876129,-70.740440941064719,-141.91166105087342,133.94617486141669,-64.792471414044314,-254.9630793023359,-55.251780954293991,-148.02289744579298,-89.961526452109268,7.9994930073500541,159.17129938708086,45.322074857409831,-202.78530110867806,71.428695486105738,49.638293299207334,144.82666475911606,164.02478105455805,-49.088107638019792,112.89564849308272,318.12382820478263,32.132051595810267,135.96451765088705,-130.73012611543527,-6.5840573243564364,135.72938427833148,-98.774995104165043,7.017007330174124,115.79163812813931,70.823237787679133,-133.18462060100549,-22.418504480314738,418.14319349140254,231.76379191196196,140.34231562952937,-99.556427584932464,-5.2474704446535725,-186.76647774329945,-201.8204999360571,-80.901678241815645,-30.712996531029788,-100.80049349372763,209.5588695809877,89.343296508215332,118.38058928142453,55.199996221234954,-204.24931878523216,116.41170815192888,-108.32812412106824,-20.37475595032242,-32.127209480856074,16.359968712759958,-30.794300365319828,40.26645176079203,-107.60956200099525,206.99629104515617,73.645951289509554,85.220009459552386,254.08528484871712,-88.456347098136149,30.762912213456531,-140.09088409731066,-137.21978779194521,-108.47247889975334,-55.162910725890242,53.807377440594557,-47.017002038453576,26.390058449361021,-153.20895839027594,79.101227305828786,239.59921337999333,-57.501782350912343,6.1065520363018848,46.511454120881609,81.584147886446516,174.98303540917627,131.01603124957057,-10.486454007793785,18.691657951285904,-18.801624598714341,13.78195883378261,81.52895535937796,-79.403533772557694,-147.44788317581126,-78.949463081179971,43.734745893055447,-187.71099485374936,-106.84804826552229,-72.376987547762823,31.397593399894703,-118.12898632639944,147.27368118061207,-116.77649512535987,105.16782781659377,-87.032609895203322,-162.51738788536181,155.44387876332888,-250.82736143119502,143.1631338950906,13.405888511888577,-23.860651205073168,57.598170090761087,142.274470957413,-96.486296823589413,113.26363137194753,-111.69696918027856,-134.79341543798526,-36.134582271709604,141.31587918883486,-7.7056404898686068,-62.672282527334097,-54.336160407090304,-97.14720990739103,217.36274099273265,42.394527695770122,37.481783911436168,38.791786756181189,109.16998561823503,-272.8763511101821,40.217185650270771,-31.594961765802637,121.42462676076482,57.233667137064742,169.44286674903742,-156.89683645937549,8.3789109092254677,-157.31016057923392,168.89064225097425,-137.32384548331322,65.297904363767628,54.823720094667621,182.51486029280525,134.41086279008596,20.512925156150956,-82.05222744121545,-205.23393651448646,-22.473170069380117,-54.184698380928069,-218.98641834772985,78.429174594595452,109.19131950580132,-181.89238370659891,41.401737107956691,107.56674093196899,-55.34743915163304,225.53777697383171,-73.236736473359656,28.986863872657722,-154.61473059864619,162.25658614796345,325.8271757386089,-42.368089324532349,-78.160705232958904,-160.66414530189897,-83.636564412521039,-27.214956533110652,310.51733863943804,128.18464656952904,152.63295717544227,-115.2948631407957,-71.057865814507323,-93.69888086681965,-213.71962937921626,-229.97204548885978,-43.617041575030903,0.14267821132679614,-69.842425064367518,-8.5897027428662867,121.35091706600403,115.0173075694466,222.62590380385677,-184.42144992509762,-195.33362981404915,-3.6312742891265177,-168.45386400841437,97.382631300611507,-133.56585712541437,42.077487108589921,-208.86826329611699,-41.044935255839221,12.427271771519834,-66.373825952118153,-208.38199261589222,-121.54686901065446,-340.19882003351415,36.452672713446077,12.347924777106329,86.357477151872885,7.1199948975249896,-173.78097097050761,-94.54004965164755,-137.76959023597141,160.69544993509956,204.8777695271026,-211.01964888456854,-466.84985435610002,100.10563438462223,-106.8972284763783,207.73957632839148,144.54303696964791,-278.14388620668763,126.24938245704547,-242.4482065572829,-48.622047098746307,-214.76497639103718,327.94591206201881,143.30611198329481,99.132717522087788,158.25160817368302,-215.29881808272086,-28.582833449044571,-320.02415152014009,-32.381229628299941,154.13240993582903,-53.00898064793131,-79.729171259177619,-106.72965744715468,-56.552986003303545,75.492942875320409,-122.66559913815431,268.12792281151241,-205.83171945343486,-112.72826928402259,-19.286359350955692,-53.124604792564298,-163.76692938087115,80.010647183828553,68.7754784611258,-39.807537109600219,-130.7921284779882,-85.633057426979178,280.71755691988278,-58.890767295941501,-102.20431830430343,-11.490062140080965,140.77902530068002,45.250493325192309,-76.628806429167412,23.638830563682667,-56.122672549246779,-66.907619335068404,-79.280622237934978,-110.50378571422219,-60.629233856386577,167.5845299233207,13.930830680001907,162.36133762270978,144.24765018339195,235.25646969059011,76.967183989847996,-205.55396913692135,-67.48714888026602,-107.23000669414982,-77.165113676618375,-291.60793311713888,268.22551093642642,-101.29836753834991,43.138334834553042,116.21548792097011,1.6337471056170081,-74.865191982970401,-35.868437772051784,-131.12932476497403,-51.846125677115992,-120.21453314250223,121.0134397706023,68.521566649995208,176.86842197163543,46.593401861882569,262.06942800843689,-125.18197164972887,-108.50075309342327,-168.17192657217402,22.859771651641331,-29.455414283519502,175.24670771048955,-0.85768953806486437,-20.127608642320752,-181.9656470715436,148.1489606897193,-54.131984241539527,-57.147800404657588,175.5698863068788,3.4905018470435323,105.93416421160865,-30.154237015863181,50.380976151963516,85.039906559865273,-16.205059723698014,-29.525758155792282,148.28039106809206,97.243726097134683,90.579310179760512,102.03293277116926,14.320142539567701,52.086130269658618,-248.17337472422471,195.29335916206128,-172.12862174910697,79.426462550349299,-179.51436639097579,-151.07654350584767,-91.640596078265958,-135.9879628571548,95.665938500919367,86.898638570385089,-60.26547224846523,-87.612088998737974,165.93800606224036,41.654857626317401,-172.67446574553901,-12.875547545558895,-169.02845640666337,65.46779559670432,37.030006128164302,-52.376118927463928,-20.900142291568457,126.4311244269032,7.705424114198081,17.67734198866339,132.07579451315658,16.248029649406931,-274.61380324355929,-199.56986916286624,-72.196835335344076,-547.7879535779357,70.840212074631765,-39.957824158911791,-12.057235132341908,-286.90566716974962,-34.864797429060232,-45.864009123445655,148.05752534513243,80.029342127783693,64.787552937064589,58.221594730832116,52.312054868350486,-78.030844008262648,-42.132674625892307,-74.074209622855051,-68.931849899004959,-77.18645895954316,-8.2103258803117249,275.92577680902781,49.280695808389908,-49.778759780575946,-30.576968766383779,69.132948682977343,-224.69994955180084,-30.362192379933809,78.28964595077305,-28.515340703698577,-13.314184114247126,-40.809660100554922,17.768782781567477,-50.238703038259182,-190.43695474346202,155.20320234678422,0.93539168556711161,21.178776153769661,-96.810133728347395,-61.010957434352086,136.05241168817395,-10.506691713479945,-170.57267154423212,-62.243472041352327,-80.228289848436972,-7.5406717969980974,-42.333430988834181,-119.85903133095697,117.11690312364519,7.7617351317046825,21.698727156093174,244.9050734658606,-353.90412430278923,142.8676216270498,31.806101659485364,-3.7963071600692544,109.14662174719217,117.60249235629246,-16.656257436499288,-111.72954287897063,-44.313806502107894,-19.221717731195028,-22.127484995326654,-6.4024988277425265,-66.928466766044693,170.70738319342064,244.47703784039564,-50.570859238902038,-75.585207820979804,39.737859753051893,-32.772350455329807,-110.97358626194435,73.695364819308466,-38.182638537106641,94.45675916951113,-28.75022937760793,26.942764727701515,69.786346627802473,129.7070316979553,-42.120323526665359,134.77776663299531,101.30629720583546,-8.0548267616205038,-18.584682480220035,176.72465609780403,22.968986252682299,-113.92488587020063,-79.056047648767304,48.220920003614999,-62.236645591279604,-117.16033636546996,-367.10828912140892,-171.07188809758134,-120.68068565024282,83.267071854728002,85.537254722587903,256.60064030368352,29.060115125343515,-69.816248907680617,45.736885518512544,-127.72502496069995,-0.9710145633530658,-39.157255946078024,-179.08583166331823,103.64623235521697,26.30488436567893,-166.63157020676533,21.267693760429239,-83.397236641306222,59.781325967670078,256.59638244452321,-82.669675474226636,-279.90862763368693,50.674968325445391,-49.367045387191773,-180.50302044682499,-35.949916832365517,110.64917858469525,83.123715356353244,-4.5921864227263569,-258.45700308432419,93.8860439994247,-153.15364990486188,-125.73866024419551,-113.34269969178058,-52.247218707135985,256.92737566864935,-59.978007759165791,157.64084901528548,-149.86097942137337,-118.75246314509111,-117.46708895430601,51.42589169920285,-49.897567580131806,255.62209089901407,-17.226591237948767,-263.53634805606964,-179.09340852696255,262.39455719797854,34.68227373083019,-237.41523759363756,287.70388980236669,-23.043103444815216,-16.166903043606258,13.840009325391648,193.44360114868459,37.569804047880261,94.542494177735733,162.26831141087587,135.58489477098172,89.094582756593908,224.08475379187962,147.58201842580667,35.760043371844894,126.76526799927703,25.067777728350784,-99.713399140030575,123.48776174725228,49.981732421358835,-236.66025599765783,-2.1265080576351707,-14.337642540602538,72.436856874239595,-241.04443231333786,176.85732064343318,62.338027946062397,27.258782128246093,-30.099721173168426,227.06787003576753,15.928592255982565,-110.16273545159146,-17.651296834714287,70.639848102653616,230.70294377008281,12.508801772640012,-232.7731704651051,-87.392983024225103,5.8530837653198908,72.501369202744868,-80.928405452568157,244.17199232047165,-79.760224918210554,207.9031404844948,-115.79580409545073,-2.6819939029479514,275.8822400824593,-99.24497362736966,-27.244308845478741,0.28784099706348343,204.97135669486136,102.74130605052495,316.08037176324029,-140.81246618550111,88.919946152664352,112.96842864776822,-65.180725197239141,54.877787789675523,-174.82784582809435,129.96903857793262,162.62690540471536,-1.3130493078006253,58.711417695013758,-107.62887257362529,131.34218657712205,-106.14187284717087,100.77745293402916,34.510136884157831,-182.4860584622464,-142.10188739869932,20.297925905670034,-90.873767903394366,20.27202913235017,5.9914709846349687,64.853331954520243,147.27133017951616,-65.224143657273956,-8.2828492744265461,-59.536627136431974,135.90215374633948,-61.092393027560469,120.07598425200823,-71.574327801720301,-29.916291163002455,-61.339422511735357,-125.00469113895575,112.84614230706225,-58.582606850266444,8.1804687595139001,0.69226268392286272,-155.98180730054153,-77.232114016349016,42.843636025100821,-59.678172848726504,-153.14878975069774,8.6885516098154199,65.49325997496085,-14.488192165859189,255.77730632392428,13.221664018297435,-260.02825762973305,127.93485353128467,120.0434737847082,-71.074524706506651,219.22539442261308,-7.6885750124107801,103.84185590194645,144.10705967650506,-8.6966750940006747,34.58842371075373,184.50552741987002,15.847344671231767,51.040879046897771,136.31891568784465,-89.105256717138587,108.78319301222564,24.515185589563757,16.664620922994104,26.039558372734326,10.583511150787729,-28.29633440364676,-52.624847334712676,-170.95286060299256,140.71191337970654,-38.677161213691853,219.80651194365677,46.627683232396308,29.329608884216299,-89.449611597543992,6.4977138866157986,112.87893924568542,39.284327324438465,29.821197617337312,35.958745978424815,-16.365675225461288,-0.66730193719567588,24.632308404409621,-78.322862303232142,-128.17119251287022,10.349685856097231,69.91105980474488,129.7242454560473,94.978918506999094,-18.421147419667243,-117.10694113148853,53.145476213036972,35.793792138359265,184.90100398386329,118.2108750310056,-136.22604715192085,37.771119882182035,-161.48603668980752,-84.554938018000414,86.939189599462011,146.00729967412477,122.86969862195161,70.536250344130323,-111.50993995782592,-92.992658075505943,274.38803629214044,-160.05560629585437,129.72296757386596,172.67882457874987,-89.660948373048072,41.390850910350999,-194.3387527149518,96.573342049011316,-5.7498993382255037,-28.127818647130272,39.565850375117506,-219.21734291649648,32.484970742026356,-56.715828228839754,-245.50615953057823,54.765045528180707,80.929122440468532,154.96538115415129,-225.31588309260769,-85.194692634659546,-64.935019532191987,25.821550372713808,314.6253645875974,-112.59867511819243,-135.78307154012435,22.720173264350741,-16.152253029512259,-158.84638764200145,207.4191148058427,84.697842589676767,-3.5540219427902677,-98.678248013957202,-39.341581594033173,302.72208820282151,-89.644233050050815,-8.82334695553876,-16.761042373257453,73.412004742880143,-45.03428407038524,63.460880336251165,-413.64383938144761,-109.57530263005134,17.186832404633236,-93.760307544031406,-37.76730369064218,-176.62242192049337,-58.046042069563796,19.672625225043802,-49.288914372219232,127.29009891293462,-138.21451717154815,153.02220042083542,14.326800358596984,-46.274329431588896,88.447515557143277,-89.009181023549502,30.385595354149757,69.963626130528638,61.066538566086479,-76.759598731019537,81.426223545975148,-99.864032456635627,-5.3579003295708816,-226.52658222415278,-13.203467640804945,-115.2498161979951,62.680549095962533,-203.19113734004227,25.541357982817011,22.338747469450091,201.33353024908004,-75.794335047532229,-299.07792308191273,3.4062456905466263,122.69534380943519,-133.07070233677175,51.64384720999611,-46.169048513643446,15.216013556119613,-30.4304947891316,8.6697304597151046,5.4824199753194236,10.466240315513957,115.61847999190591,71.457591320350986,-112.42602129621719,16.385863105940491,196.47722939794897,66.976383257689903,199.19893517732282,19.740987093867517,-27.825388154098341,168.67113731968374,-154.79693704332752,-52.871300084101279,-92.928496389174995,-68.404780125122812,232.73487994980621,209.09434873483227,-83.104034544681753,-90.903210528370323,117.11117140878952,-101.05099186879083,-10.999912082629024,10.555401346067718,7.358326783877061,146.48281756345403,35.192783112022823,-41.54328671991685,-183.62133684035683,-30.576998905486548,-47.727889726524943,-126.15503071296334,57.432645040885404,44.118833262079995,124.22212521980251,156.57746230426022,-344.93012542616879,94.571123681596205,-104.8210708561279,-71.308182963452538,41.620819685293668,148.95551027645854,-129.52740785637491,-41.383302751998947,-54.47615672968999,51.670993474174196,-237.31049679748298,90.463524918717155,131.60976575294941,28.270845906350814,-107.06329715998704,-62.314852288764982,-73.461381890077277,153.12981602437893,-108.42664682110336,51.759012000953405,1.1732388361228914,71.974871697980632,-78.357247452086682,-89.907435138932897,22.045876466803492,1.5418611571952923,-170.8782523985862,38.669774624489406,-46.788513931760818,-28.963012668672956,181.33351505935363,276.12825272751769,37.079238934893198,23.912148267211698,47.173080153605554,44.937997669564311,-171.75371482789583,149.09274615245863,29.672688761751488,209.81183766528824,166.14030858756445,-25.479861743096642,43.474936437922835,-10.389006337526894,61.931143854680052,91.182930541616486,-167.43806843392554,230.74156837741936,53.812616977000943,-284.50143837480863,-9.085902401017421,204.20495265911342,-84.528287856172426,-100.65806644142847,-27.128800180770405,51.055357936286427,-125.35787399467358,-3.5790457084238714,98.092196014239022,231.07367225288735,-83.609824038232048,-190.49046077558057,13.000200138921606,42.866714878586741,-25.911835708370347,61.034160719932025,124.69419113853519,-162.01277867722769,219.35440279951303,-41.948217562157573,-20.579445803850689,-54.621340582447104,108.37345425287734,-120.79075141248485,-56.653068688773978,-119.54492239625867,-184.46966650484003,-87.275072806589122,32.669077128144011,-145.63257370319454,-237.96809701621169,-116.402512588592,83.239453636417267,-45.759165659546852]} diff --git a/lib/node_modules/@stdlib/fft/base/fftpack/rfftf/test/fixtures/c/fftpack/medium.json b/lib/node_modules/@stdlib/fft/base/fftpack/rfftf/test/fixtures/c/fftpack/medium.json index 412133370358..6f956976e745 100644 --- a/lib/node_modules/@stdlib/fft/base/fftpack/rfftf/test/fixtures/c/fftpack/medium.json +++ b/lib/node_modules/@stdlib/fft/base/fftpack/rfftf/test/fixtures/c/fftpack/medium.json @@ -1 +1 @@ -{"lengths":[23,18,93,49,126,127,41,111,37,82],"offsets":[0,23,41,134,183,309,436,477,588,625],"input":[5.714040594175458,-4.1196107119321823,1.7028105724602938,-0.86261707358062267,1.9949158374220133,8.5505734197795391,9.4876114092767239,-1.7148917727172375,-2.1859592199325562,0.58345174416899681,6.0735470708459616,-1.8942544981837273,3.2647124584764242,-9.9776065722107887,6.366341020911932,-0.9063334483653307,7.2538044862449169,-5.3078646492213011,-9.2811227403581142,-7.8298915736377239,3.0123388487845659,8.37913335300982,8.094407869502902,2.7132043428719044,0.82549014128744602,-5.9871106594800949,-5.3688224777579308,6.2006525602191687,-5.6322936061769724,-1.9586048368364573,1.728570219129324,-7.9202353022992611,4.6052905265241861,1.1179935932159424,-9.8815918061882257,0.086514316499233246,-5.9538036584854126,-5.5780564993619919,9.6044498216360807,1.988305663689971,-2.5466165412217379,-0.9841499850153923,-0.6087275967001915,9.1153557505458593,1.784249022603035,7.8734151087701321,8.4878729749470949,-4.3187653739005327,-5.4895946849137545,-3.617834048345685,-4.9368005990982056,7.1923705749213696,2.1723872516304255,-8.6873665824532509,-8.5701410192996264,1.6398998163640499,1.7963047232478857,-9.5064240507781506,5.5309824272990227,-0.77822283841669559,0.40882689878344536,-8.8462306838482618,1.4009055867791176,5.0202862173318863,-4.0494277514517307,1.2678279168903828,8.3838873542845249,7.9949073307216167,-9.5923517271876335,1.3445243425667286,-2.5792856980115175,9.9453315883874893,-8.8118378724902868,-0.5591136496514082,2.9769641906023026,-6.162746986374259,2.7114300336688757,-8.9953246433287859,-4.4212725665420294,-8.3279822114855051,-8.3970153518021107,-8.6370051931589842,-2.1462707594037056,7.6274081598967314,-6.1509186588227749,1.5101312845945358,0.7765902578830719,-7.8474514186382294,7.8840237855911255,6.7879043892025948,4.3092007096856833,4.7364396695047617,5.341640692204237,-3.0447660572826862,6.6169296763837337,-9.2627989687025547,0.1377387810498476,-5.0242275558412075,-2.1924920845776796,-9.2144043929874897,-6.4946267940104008,4.8075004946440458,-0.3390706330537796,1.2399458698928356,-0.22967674769461155,-0.17702204175293446,4.7906211297959089,-4.0305557660758495,-1.5507137216627598,-2.8454538621008396,-3.5430043376982212,-7.2738531604409218,8.3499537967145443,-2.326395008713007,0.27914861217141151,-8.3491947874426842,-4.9167796317487955,3.6847689747810364,9.9122662376612425,-4.5411877892911434,-3.7431318964809179,9.1822648048400879,6.32472506724298,-0.34566708840429783,-9.626679252833128,4.4018005486577749,1.0619339998811483,7.9248225688934326,-7.5069443229585886,-9.2132164537906647,-6.5289327036589384,8.2280767615884542,9.2862746678292751,-5.5815068539232016,-8.3856593072414398,2.2240358218550682,-0.62984641641378403,-5.8286473341286182,-2.0757120568305254,-6.4924771338701248,0.93683849088847637,5.4446019511669874,7.4251141306012869,-6.1066706106066704,5.1870779972523451,-0.77998132444918156,-9.1460478585213423,2.3736485093832016,-6.0894059576094151,-4.6458989381790161,-3.623412074521184,1.3133134227246046,-7.1412157267332077,-2.412696834653616,9.8043593484908342,1.8677250761538744,-9.1445522010326385,7.5111639313399792,0.13233107514679432,4.0884592849761248,-5.2646871469914913,-3.5968424286693335,7.8693514596670866,0.19012247212231159,-4.6115312911570072,-6.0063683055341244,-9.0320798568427563,-2.1661463845521212,-6.4222238585352898,1.6836375929415226,-3.1028839945793152,9.8287570755928755,-8.0796753242611885,4.8968401644378901,1.1927602905780077,6.7222913354635239,1.5506060048937798,1.0352146439254284,-1.1473931837826967,-4.2371705546975136,5.8745322935283184,-6.7356184311211109,-5.5389463063329458,6.9294643681496382,3.5077679809182882,-4.9434389919042587,-4.3790973629802465,0.51066437736153603,2.736272569745779,8.5331793874502182,-2.8538900800049305,-5.3305187169462442,9.9719608202576637,-1.2543376255780458,-1.652404647320509,8.0351578071713448,6.8974062707275152,4.707324355840683,-3.9994362834841013,1.4744304399937391,0.75249477289617062,7.1797322109341621,9.7594036161899567,6.2967319414019585,9.1738666780292988,5.177407693117857,-3.3087829872965813,9.2843848653137684,2.6565822493284941,9.1779635101556778,-5.9671347215771675,-9.6332339849323034,-5.7635818887501955,-8.5207710694521666,-8.5993527062237263,-9.3209225405007601,3.2548671122640371,4.5516595523804426,-0.25778925977647305,7.3359871748834848,-4.0634160581976175,6.1663563270121813,-2.0490853860974312,1.0219780821353197,-3.6142872925847769,-5.3264764975756407,-2.0904581807553768,5.6694179400801659,5.9074415545910597,6.3703325018286705,6.1784863471984863,1.8201639782637358,-8.5039248131215572,-5.4643224272876978,1.1330000683665276,2.332236161455512,-2.1067379042506218,-7.9438949655741453,6.9573296792805195,-8.1599476188421249,-4.2396154813468456,4.7826500795781612,2.0000031590461731,-5.9468119964003563,-8.0691917799413204,1.0937696322798729,2.9862965457141399,-9.3138545472174883,2.0466302800923586,-2.2847882099449635,-0.43538416735827923,2.4983740597963333,-9.8270791862159967,-3.7198813818395138,-0.046335430815815926,1.2404921744018793,8.9520631358027458,-2.6747282408177853,5.8425138983875513,-4.8687858134508133,-9.6831265091896057,-4.3072374723851681,8.2598461676388979,3.2346824090927839,5.3073531948029995,0.68526485003530979,-2.7535818330943584,0.55018789134919643,7.0079724676907063,2.9933975823223591,-9.9667322169989347,9.1316291503608227,-4.7087201569229364,0.54036400280892849,1.8978776969015598,-2.369455061852932,-3.4311648458242416,-7.5875123590230942,-3.3201992232352495,-2.5882926397025585,-1.4343374781310558,-6.9099279120564461,4.8416062444448471,-7.1237334609031677,-8.5882548894733191,-2.7999163325875998,1.8062545452266932,-2.2797659784555435,3.9732605125755072,-1.4104557875543833,-5.5303542036563158,-8.6630658712238073,-0.14808719977736473,-8.9014895539730787,-7.3349250294268131,1.9150512758642435,6.2668866943567991,7.5647993572056293,1.5829340182244778,4.3721349444240332,2.4721234105527401,8.9782587625086308,-2.404829990118742,2.0224155113101006,-9.2624073196202517,6.7201849073171616,6.1478681303560734,7.2197932656854391,3.0655511375516653,2.7180710807442665,2.6207535993307829,7.0058427192270756,7.1987151354551315,8.8054161891341209,-7.3699620459228754,-6.952085243538022,-3.6966642923653126,-9.8367124516516924,-5.6261736340820789,0.89976620860397816,2.3707533068954945,5.2509258035570383,-7.6899002585560083,-4.1536274738609791,9.9830925650894642,5.8368978463113308,0.74222689494490623,-5.3924925904721022,8.3770679868757725,-6.6182007547467947,7.8999414294958115,-5.6842543743550777,4.73676398396492,-9.207606166601181,7.7631641272455454,-4.5003743655979633,2.2080804314464331,-8.7920931354165077,-8.7093174923211336,2.5009166542440653,-7.0936942845582962,-3.719817828387022,1.0218074452131987,-6.4821820426732302,-6.0335636790841818,-6.1047233268618584,-2.0849240850657225,-1.3190357573330402,-9.0339055564254522,7.1493207104504108,-1.3666852470487356,-9.8788795806467533,5.6708890106528997,-9.368275310844183,7.3968555778264999,-1.0481673199683428,3.4519233461469412,-3.5242160316556692,8.501206636428833,-0.21991674788296223,3.8592948671430349,3.1689405348151922,0.38367169909179211,8.3703278936445713,0.10105225257575512,-1.6147119086235762,1.5370173845440149,-7.3487276770174503,9.933953108265996,-0.049953367561101913,0.43382926844060421,-8.6314036604017019,-8.0013096611946821,1.9885399378836155,1.3908298313617706,-4.3229351565241814,4.4288687221705914,-4.003273556008935,-3.0186089128255844,6.2400567717850208,-3.3657095115631819,-7.4797089211642742,8.5321817081421614,0.37811378017067909,-5.0416154507547617,5.5691579636186361,0.83801638334989548,4.5414397772401571,7.9784498736262321,-6.1928332597017288,-2.9485660139471292,3.4510587714612484,1.9448772165924311,7.5514727458357811,-2.3974233772605658,6.5053578745573759,-4.4500731397420168,7.6207837834954262,2.5131871085613966,-0.86416848003864288,-4.0795725118368864,-5.3751601092517376,-0.31592000275850296,-9.66741057112813,-0.16946635209023952,-8.220902644097805,-8.7107254285365343,-1.1622673273086548,5.7730990834534168,8.4764190390706062,3.1749342568218708,1.1201575119048357,6.4873896073549986,-6.4427401497960091,-3.1336697842925787,-7.5880108680576086,8.301359424367547,0.94798857346177101,-7.1559601463377476,9.7778427507728338,-3.7967329751700163,8.3089348580688238,8.2683028466999531,5.3660874534398317,7.8319502156227827,-8.4125864692032337,9.6592245157808065,2.5865905825048685,-7.1719813346862793,0.50973005592823029,7.0331322308629751,5.8535374142229557,0.40344491600990295,0.69878479465842247,4.4761275500059128,-9.7241537552326918,6.1478379555046558,6.7126445379108191,-0.58312053792178631,-0.50680715590715408,2.0922049600630999,3.6888584122061729,-1.356558920815587,0.31428549438714981,2.1963848825544119,-5.359183456748724,8.2036787364631891,-0.77133379876613617,-3.8070836383849382,-5.6546618696302176,2.0979911275207996,0.93697492033243179,7.7375716157257557,5.366284316405654,-8.8593739084899426,0.50272893160581589,9.3652356881648302,1.5163625404238701,5.5053070280700922,7.6953421160578728,-4.384916927665472,2.7012406662106514,-0.24802359752357006,-8.532527256757021,-6.185592832043767,-1.2586983107030392,5.0575604196637869,2.4180911295115948,0.85771088488399982,-4.4530727807432413,-2.7941825427114964,-1.8259389605373144,-8.5560457780957222,-1.4613811578601599,-1.433053333312273,-5.3273059334605932,3.9692128915339708,-9.4388226605951786,1.7075477633625269,-1.2446495424956083,1.175207793712616,-8.2825236115604639,-4.3743260577321053,0.70199172012507915,-1.6250761039555073,7.3459863569587469,3.9928371552377939,7.6141775865107775,-8.5171656589955091,-8.0032191332429647,9.8960432037711143,2.7982814889401197,-9.2829152196645737,2.043908704072237,-8.0263163987547159,1.7003015708178282,-3.0314076971262693,-8.8691110629588366,-3.1496263016015291,4.2308025900274515,7.0992419589310884,-3.0402624234557152,2.3095034435391426,-4.1755281016230583,1.8992416001856327,0.55366744287312031,5.4887949582189322,-9.8230159934610128,4.570199279114604,-8.6606018897145987,1.2640500441193581,4.8891796637326479,-7.5572751183062792,4.8771057371050119,9.5162399485707283,-0.55503163486719131,-8.4166132938116789,1.9803832937031984,4.3021110258996487,5.5801242217421532,5.1479167491197586,1.0369210038334131,7.5313977990299463,0.20294549874961376,-9.0949226636439562,1.6347992140799761,-3.9295179024338722,-3.4073386993259192,-7.1414679754525423,-6.6522410605102777,-4.2154777981340885,-9.5353079680353403,0.078984862193465233,7.4986577592790127,9.9410971440374851,0.01985589973628521,-6.2818147148936987,1.5401158761233091,4.7276203148066998,-2.8852537833154202,7.5397194921970367,0.065642623230814934,3.255647411569953,-2.3338500037789345,-5.0169535167515278,0.062282951548695564,6.7896454222500324,-6.4292568434029818,3.4802608657628298,-7.2555236238986254,-3.5855253878980875,-1.9251442048698664,4.1014119423925877,-7.5693738460540771,1.5337883867323399,-1.6184939257800579,-2.0273449923843145,6.4127753861248493,-0.4839569516479969,6.1355881206691265,0.82967036403715611,4.2698931228369474,4.0938271954655647,4.9537844862788916,-1.7440220806747675,8.220954705029726,9.5858700294047594,9.7177374828606844,6.0140287503600121,-2.218667371198535,-9.1424468345940113,2.8960576839745045,-5.9584045130759478,-2.9046196397393942,2.0577704254537821,4.9476349633187056,-5.0990545190870762,0.19073605537414551,5.7009624224156141,-3.924443582072854,1.8767636455595493,2.7666838653385639,-0.34417534247040749,-4.5549053326249123,5.7061171811074018,2.7115857880562544,-6.3775606546550989,-7.6618944387882948,6.5401855763047934,0.89911039918661118,-8.6514355707913637,-4.6776277385652065,3.1106395833194256,0.51957945339381695,-7.42804448120296,-3.1435754522681236,5.9274273831397295,2.27215307764709,8.0768720526248217,7.9887299332767725,6.584129361435771,-0.53769255988299847,3.0012200959026814,1.5062535833567381,-4.3959344737231731,-2.4706560093909502,-4.3154909089207649,9.5443382486701012,-8.306901641190052,5.9041297622025013,-9.290962191298604,6.7984563857316971,1.6566064581274986,2.5848329719156027,3.2878574728965759,-0.979349035769701,0.080826412886381149,-1.5503997262567282,2.4318669270724058,-7.6124593988060951,-2.6050970517098904,-3.866090215742588,2.6217920146882534,4.4584896415472031,-6.1644813604652882,-6.4381953235715628,-6.7487753927707672,-6.6680008545517921,-9.090336374938488,-1.2834464758634567,9.1151483729481697,-1.7011462617665529,8.8348434306681156,7.2136866394430399,0.43148383498191833,-8.0511038191616535,5.0981265958398581,4.2138144373893738,1.5793604403734207,4.3110119737684727,-4.8216448724269867,2.6146696414798498,4.7527630720287561,-0.310932956635952,-5.8501263521611691,-3.0735682975500822,2.5376772787421942,-9.2578780557960272,2.8435220383107662,-8.9250015933066607,-2.5017702952027321,-7.2532927896827459,-6.0918947029858828,-6.4742424990981817,7.4063452426344156,-1.555370818823576,-1.1172858811914921,1.7762643285095692,-6.3253385759890079,-9.9654178880155087,-8.778443606570363,0.69831392727792263,-3.4377405140548944,1.8952316325157881,-6.8418592121452093,8.8722461834549904,-4.158246973529458,-7.6568383909761906,-8.4828187990933657,9.2644555028527975,7.7037872094660997,-2.4482319504022598,-7.4343313090503216,-8.8062911294400692,-7.3350031580775976,0.60194304212927818,-3.1432079616934061,-7.8961585182696581,9.2637998983263969,-3.3149580657482147,5.4998412821441889,-4.1674496978521347,-2.3270261567085981,9.6714442409574986,7.9635117202997208,2.7416236605495214,-1.5310374274849892,7.8540225327014923,2.5568468403071165,-7.0750566851347685,9.5223158225417137,1.5621822420507669,-4.4029673654586077,-0.67246746271848679,-2.1605729125440121,7.2511202190071344,9.5776558574289083,-8.337850971147418,5.7387409266084433,-8.9811233151704073,-5.7395500969141722,-4.6184454951435328,-2.2133947629481554,-0.52571993321180344,4.2251566518098116,-7.792041702196002,-0.84487153217196465],"expected":[26.397536424919963,13.26512711082767,-23.893383961974834,10.303834876744222,0.83502559597886172,18.126467243832192,36.175179338418538,3.6676653496378444,54.687139852001906,-11.414249562792238,-19.627161302477461,-13.453369471842919,-2.2902557211923069,1.4516026357688323,12.406748202428275,13.795288517659314,8.4158332305329342,-5.2592885798468805,5.6506305971794655,21.914957805157137,-11.630448831618336,0.11466269541262675,38.572542029697544,-21.956664202734828,11.238791192750057,2.4235281647677756,7.7996263188120558,18.588335665136629,-13.640701351687319,12.238320805308863,7.677111712580361,-9.3546958657702053,5.7281613383024901,-15.693032918342917,25.501379640772946,-37.631499674171749,-13.481634285686333,26.098516905724953,2.9334413414844693,5.6452956145998225,3.281990559771657,-48.674723813310266,34.179501174337062,10.949258486570551,22.80168418933291,-3.2498273168944163,-8.7265135992182916,49.874918561739705,76.024112261881129,-60.359745604391549,-55.009894736962025,-32.056332488363992,68.171792384373049,-56.970203094412881,8.8084750169246355,12.719833973909608,2.5730336900727,-28.510645809426023,24.847649028364827,-15.199001968550856,-44.016039157494589,14.555675234528746,19.658449556893789,-9.1237699502340774,-12.159426108273026,-44.789281420757618,-12.028481133622069,30.85138350994896,-57.702437347023235,26.520920319763537,-36.179595644040511,82.94985292157331,-27.716648971117429,7.1099788154630605,-12.251406684959651,62.54593524564676,-15.243128520370668,66.771222068505224,-59.816652394593213,-2.4754037133378475,-45.968109997534341,-81.73921794537182,-27.581331001076663,-52.406730513022431,43.67771963984395,-89.574236871979238,2.8788647544288821,-40.81229345187603,-82.039487658121914,53.288626788695659,22.567972648105115,29.618367119478918,25.8945128473006,-29.493007936554058,-11.586910209310753,-66.463909758948645,-27.128541278154021,-54.806956249684958,20.649123346386396,-6.3669995446200982,-20.251711415626502,-20.549882817233101,-8.3215416315943003,66.986248362824085,-41.423055777385009,-31.083106053410301,15.682651901694307,34.82322553095625,35.649943160989793,-6.8251245457441847,-2.7599680775286313,25.652591251851064,-31.910874512974356,-12.324292057097901,56.404011868634299,43.418274498083775,6.7544517602278447,-38.080681087596197,25.174620536901095,5.5854550189363295,66.441119688778301,-13.697395834080368,-45.646674568174618,-64.154195401727236,51.898616770382176,67.039372458534274,43.895285854730439,65.980612842668052,19.363795235311933,1.4200884620864116,-48.377640854046959,16.507164833379573,18.423071566746742,-33.123209429197594,-49.291008468717337,-3.0980504558620847,8.1651537820714299,-3.4744396912101285,19.74166237653187,-74.315860987476384,-19.063042053920611,-8.5575169053837339,2.5493765934373052,18.410729213139557,19.871229408968997,-4.643014819461758,-11.708424003478305,29.028616664904181,-17.593887223758603,-7.5922837891838544,-2.7670198374205111,-34.532494617792239,-25.313189789804195,-4.1050841633384021,-15.547429428538525,-44.245101631229069,-33.763417041401418,34.379951598001064,9.9279057601581187,-30.288888906794568,-15.165994462537469,17.657887524037307,13.593352183046651,24.048971735735009,-54.413746173302144,-22.117206407121294,-27.408482460511109,-1.8019468287125378,33.712921101261621,-20.503787953639502,1.1332088889846617,28.059179005438235,23.081489876787256,-7.7800385475934171,-31.028216119370757,-8.2480010846794301,42.694316057542764,-53.363214533131796,41.076993792185931,-20.03839931405204,2.832073985339175,16.316846102350318,-42.592471405218753,11.420669918879867,85.642576287848129,-62.703599443304654,51.846648336731903,-70.888120215113972,62.394068867687302,3.6969428100009623,-90.679096544858922,52.341643014070613,-19.436202569540857,84.296923879245455,61.259918863263081,36.231750542647639,6.0026076535782877,-18.003509157697739,-49.453868449813221,-44.544707855113174,-38.337531863283971,-21.266599582844712,34.482815671715954,63.0566689210616,119.40871017810593,-18.24817013170528,28.405337357240477,-11.954768269659004,-23.0814856304046,85.187507426747089,67.127407945828708,41.200312128767564,-54.554577954530089,33.658605521706072,-51.983432085624834,-23.605551518909888,24.682826980914836,35.572628727263805,-36.032619396022568,50.279716436975782,108.17440702832397,91.061049740832814,-3.2919478247171057,7.3926805394535258,-8.504341486841458,-27.586294088323839,54.050460924751754,24.659966001544596,-70.525106838229419,-1.2246027967784734,5.5129961532043001,22.219693669992061,-9.4938836325307427,20.20184351594294,-5.2986362245218004,-24.474855450043016,-1.6893163982973149,-77.883586257572006,34.688123185497432,-2.9247114720403751,23.860212604891814,-22.082465451492702,100.39360473229702,-43.428391789888977,-32.300668247183197,-41.567346959260071,17.904819548590229,-38.777549455524472,-53.329075275627886,-21.817792569783879,11.378786261477885,50.078581370740515,-35.630485133628483,-57.682914477876366,-46.324976144103864,-6.6587230959905099,77.229779065543724,-19.438803452408735,-1.804703548095862,87.354583581579007,22.423630279606265,0.54740552564941325,14.63600554987773,27.262247165179797,9.3524914601924252,11.323473653826078,27.999107036739606,-49.520536333495883,85.710550114591285,-23.464145668277421,-23.240354095471453,4.1080579908024077,-21.646403249947827,-20.502455326736644,30.060949366314684,-5.4467989623161976,-5.8376117105733627,-21.995822981890189,-3.2761685107957135,41.263044348436587,-59.680457341785036,-68.928130996212403,7.9579632839696028,11.172875199360497,-102.40038329086846,2.4078096177763619,16.938376831490153,62.48469300928474,44.58500480446186,-6.2721240197813124,-11.971684949929312,0.30783057688241655,-59.863880969682874,-5.7331638182247069,9.0992945167433064,-29.772338440535695,36.091206127099028,13.576333090535892,-55.561947461984573,-57.44447102348208,17.260461537093022,-58.63692936696485,60.333444630209534,-34.025357720953821,-15.057455504113154,0.73345136093850272,51.479508867264883,46.234176683110832,25.520241027697921,2.0601820666342974,23.677501850151859,63.481284807038037,73.331441773092038,31.277622101366372,10.048969856780575,3.4550271687719718,-119.35957108083697,64.451035687880534,48.897163134468983,12.260930012321523,31.626411608406737,17.566454565078264,23.008113334247017,20.263343652536939,8.2425164000369335,-60.621671685700555,73.708854096285293,-46.837796737453047,75.838182998547623,9.86010808326178,-15.916814183445323,25.79741699367311,-54.935404671079283,-46.687878726391091,-13.240440340772905,-55.240736829393178,-35.328722002903319,-50.292095585996783,6.9038285550612244,-13.397350302166421,-47.405790726254175,-27.941299252743725,-43.313169135867199,-77.848184117678031,-55.580209406224661,-58.335357295845313,10.680581777845157,10.116014624774262,-14.291550906000507,-27.698575781710385,-34.680983801304954,52.378507954645215,-70.334384934907845,-17.536283209604196,32.320225014094532,15.66110989804795,25.450819256098441,2.5703534292477768,6.5885140159472479,-13.295028651987641,55.110717852137853,-94.036422575710688,-27.987894565801948,41.913564729852411,-12.150626960189074,-0.73948536246265661,-45.338316379917302,54.53478240073423,-48.444464150069209,25.583419070044538,12.121240249399975,26.832871873902636,-0.88319702642644715,32.000517494395346,-2.4798391192259199,50.547638165969161,5.7316842696952488,16.291966718792061,-28.774262807876752,-90.551731932304776,-6.1244678578479643,-95.860203920368505,-8.6321803989677779,-32.955801523259431,58.714468542588598,8.4247408109241988,-8.7294838522716169,-47.193429647980722,51.080984467218023,-2.2103382914559466,6.2491822547625864,44.967124573457113,55.670871309247538,-93.558471440118595,-4.3002710877914403,-2.2377810697594991,-0.73267122326843703,-53.796100424889758,29.891499861707679,14.006713359052004,-92.260243189898262,18.393059145084685,60.760954781946197,12.255417861459762,-85.69238357370773,-53.165409537578071,-60.578483900208646,-1.4271630465903404,15.870295787444935,-18.766112576913571,50.493847407153282,-47.244913863924353,65.874248212566101,-73.016391267094747,46.022483945620365,134.50564587663138,43.721909022790541,49.43791821629663,-24.749550552359992,-25.649495339311954,49.320100792445707,11.873728988126103,-46.922982448863557,-61.697550932741066,-68.429995939416983,-11.966628278107695,59.557031864012551,64.73618913358905,71.322223629809329,47.146742550900633,17.543961802683977,-43.68005220110981,76.616161663790251,-41.201963220498463,-32.83121257043436,-80.957253969847542,11.724646557122469,-13.77037867029779,-25.341225706209769,36.232734410629995,-15.632366827190236,-5.5830038217998803,-21.54307717290898,38.487440848517871,-15.952285755207971,25.708656576654128,33.474513095891098,-12.387861100624539,-23.792057503826928,2.0439810715900384,11.692422658702368,57.297822058149158,-0.46722671151659778,-16.632974905205366,-7.6219725893532502,9.6816791370763458,-9.0486348979847282,20.861572248150999,-14.597085687947684,17.222479584137158,12.443911832465341,9.846194827270784,-42.584645601413257,-17.370505832706417,48.858664938008637,0.97379099912072364,-0.51819414205308523,-1.6871698160333226,24.354093011646381,-6.9348925352391904,-16.214292636671647,-10.699041142757643,-23.16745607983643,-18.27486399276242,13.532489905724976,5.1526948654135625,9.2456805439279535,-4.5783666335046291,-12.824945416881196,42.124639714648765,-59.547681242550638,35.087641160895942,-14.600404324126883,-22.488536668640485,-1.3463069281319475,-73.665707430257683,19.100470481385248,78.672242434767071,-74.089837455278285,-32.333094042596187,-86.118205100576176,52.619442258092491,-9.6552674914976109,-15.051595375647951,-13.76627678696839,13.636091076618193,55.63718617463892,-22.503511369152584,-22.432180796979807,22.393461911891922,-5.9121500666554487,42.469041807854069,-35.876448897366103,-6.5914287601864068,3.0028998018906421,-44.008393096659965,23.841968448790904,-10.826805807494125,69.353311354640681,-72.721838858714392,-79.643804542355412,15.645842321558682,-10.817091983388922,-41.720234949932717,-45.695897178779617,-9.7951053657679346,-34.09859294419244,-68.691470378074882,-20.554994035495863,-24.850019704267979,-39.884485673616119,8.5024370488524728,-53.327832885572803,51.847409973551933,57.920024317563076,-21.385171177875176,23.993549328784496,-45.740975571906446,1.8548647436164316,-53.703271148821571,19.271955582907474,3.4406172972205944,-69.694937659319521,-79.987497398844567,-46.003561851340301,44.927993935056406,10.078130173700977,-52.427783978484158,-4.5492700759275415,3.2104236898121332,12.973926040361263,16.545917116277224,62.580868221214139,16.323778592997197,46.877907787992513,38.253287445870541,16.79032889353676,50.857272052973123,18.761973571767555,-7.9472035946045256,-36.281178202480078,-37.050393469709043,-112.57651268528059,1.9387331884018004,53.862156033900298,6.7597242364023558,9.1779774809715633,30.70605329526218,-41.989914939598101,17.161422910105696,63.61596164481756,8.5062778953809683,12.334627022698154,-31.120364237164026,26.00715166105261,-45.108902975488448,-59.189148030234428,-24.031637857688235,14.238241516334082,9.7464229105113915,-30.331427947520012,-6.5052886984200828,-72.560584657059835,20.278954274248246,3.0597945872594803,-16.789016525163191,13.572135417024551,-33.704832898425344,-64.224516569961096,-30.624565380958796,-58.396002437364707,-13.601644178879992,76.532113189083361,41.287626189432657,-6.1117987312853703,34.056198062481634,-13.903740284427782,-32.618999833371575,9.7992989793419838,-19.269021706123446,-19.233805020959529,-29.443335284235584,7.6346095636945304,43.084532469735109,27.267038508543006,21.04919333835424,-0.71774634261854831,-17.889466118410073,6.4456825069524655,4.0083345048432788,17.528752482855769,-9.0934993013882632,25.011771529928357,20.120068871970226,-17.969265470098122,13.174598264256172,-6.1490282987095979,36.276126475758581,-33.618700051607846,1.1550531985984525,-29.448762224066137,-7.7474799288079286,-8.7979448809632501,-1.8807444991436448,-17.04900745368704,25.97272673097336,-10.881431260662293,-1.4174970358917007,-5.1048416558339778,43.244804677861616,-32.508061694812248,-15.377326066188871,49.761971091256711,10.126715079806123,-28.713578543199432,-79.435518467798829,32.497587381974384,43.466652033833931,-62.993960456314028,-51.10294612820087,-57.877162953516262,-65.153651670250767,-11.945697405997141,10.18005988278022,-46.208829918806302,21.693656223164609,9.3356871918387156,-37.307715202117478,-31.956574195437124,34.385295886551901,3.5424903040844669,46.849686341464484,-14.077690215613611,41.131866803331391,-65.399665512847065,66.003347831925424,47.492583525450861,13.984324471681694,-66.689748638910658,19.57098239970977,29.942482373194313,-30.49681071707149,33.723026121836767,-9.7743558728041666,30.955064832141289,-32.556904299670315,-18.582216985619642,24.126009679642664,-30.62105789139963,-42.430230749158994,15.478403245619369,59.245167891060035,-27.912452928426134,-25.958843422731391,98.326496955797552,-12.624329687027378,21.60098416440141,-24.803222234399897,-5.1085542717443229,45.441466764770254,-17.946585900708527,-44.589440992604693,0.95546995817756297,-25.954752626572091,1.9034281034181113,-19.185219581828513,-30.6619321628949,4.5544195770673426,-72.99642577935019,8.0904465861064931,64.934598558736553,18.499074937162362,36.382596320789872,30.704549151609044,-2.0185725448693859,43.717552248040718,10.180997965266052,58.884214383651752,-62.109275869282612,21.338416131355807,-21.509412938541452,-46.496347130771618,17.518635765292263,27.20480826422375,14.149940319333535,25.936609657746232,29.097048946067375,-15.095858736044981,45.453930511372477,-32.532452991492981,-68.779406279285311,38.488013268668048,36.798097561841402,10.742114794974874,-56.132134776357091,2.9838938259543184,-65.980883026495576]} +{"lengths":[123,80,26,29,73,68,21,58,26,115],"offsets":[0,123,203,229,258,331,399,420,478,504],"input":[-7.8569456655532122,8.3142158109694719,-2.9747217055410147,3.8523499481379986,6.445686761289835,-7.3424742929637432,-4.9654210451990366,6.1685327347368002,-5.47020073980093,2.3362016119062901,4.5405878499150276,-6.3398926798254251,5.4237588122487068,-2.8855218272656202,3.0347048211842775,4.2840316519141197,1.7200855072587729,9.4772122148424387,3.5058472864329815,2.7754487749189138,6.9676600396633148,5.4624194093048573,6.8831331934779882,4.8197149112820625,4.9486298952251673,-8.3772339578717947,3.8288827426731586,-7.9676356632262468,7.947424054145813,-7.6437815092504025,-9.0358075313270092,-4.8171714693307877,-2.2008444834500551,-9.5931723061949015,7.5530529581010342,4.1612041741609573,-2.6413340494036674,7.0986892562359571,7.6704633701592684,-2.5219994410872459,-7.2445478290319443,0.88465902023017406,8.4642381872981787,-1.5486415755003691,-8.0188932921737432,6.4604539331048727,0.84938251413404942,-4.4280000403523445,-1.3966345973312855,6.7623899783939123,-4.5115019474178553,-4.8131872992962599,4.7611013147979975,-0.17008666880428791,1.3534343335777521,7.1709332894533873,1.8759302236139774,8.7593612167984247,-1.4158824551850557,3.2636428810656071,-7.9539941251277924,-2.77924501337111,9.2291167750954628,-6.2342104781419039,1.6245233360677958,3.3638002630323172,-4.6088746283203363,-1.3558359909802675,-7.5354327540844679,-8.0182786099612713,-3.2085821125656366,-6.6395127400755882,9.7094038408249617,5.950506990775466,-9.8288812022656202,5.9936348535120487,-4.9788918532431126,-0.23533816449344158,4.6715457737445831,-5.3300658520311117,-2.4167385417968035,1.8753873649984598,-0.36446353420615196,-5.5385439936071634,-6.3088656403124332,6.8952121492475271,7.830724623054266,-9.0111207775771618,-9.9069010000675917,-5.285107409581542,-6.8001959379762411,9.1068954672664404,-0.40773211978375912,7.2463378589600325,9.2005305085331202,-6.6835928149521351,8.8555850461125374,-4.1819824185222387,-6.5784625709056854,-4.2204024363309145,7.6962978113442659,-8.3225462399423122,2.9653584118932486,-1.2210698425769806,-2.5207754876464605,-6.6735623404383659,-2.5622297171503305,-3.3947979379445314,3.6311086546629667,8.0432655941694975,3.1649824138730764,-6.1404670029878616,-2.8288890141993761,-5.1376055274158716,-7.7360612247139215,0.019013946875929832,-0.43251644819974899,-9.3038700148463249,9.8566659167408943,0.98421806469559669,1.753099299967289,4.3400265276432037,2.8259623236954212,-4.0511252731084824,-7.2624185774475336,0.53099025972187519,4.3533775582909584,7.2167345229536295,-8.3427379745990038,3.6028738785535097,-6.4986166916787624,-2.2507096454501152,-7.6769504323601723,-6.5058984979987144,-4.6360285207629204,2.2686935123056173,9.9319573305547237,6.4070106204599142,2.627626471221447,2.5182006414979696,3.3982796221971512,-5.1142848748713732,4.2141462676227093,7.1564311720430851,-1.8611572030931711,-0.46904869377613068,-3.3013217058032751,-5.3138570114970207,-9.9947555549442768,-1.8566119112074375,-4.076327932998538,9.1564764454960823,-7.100230623036623,6.4239413104951382,7.1817340236157179,3.4038693737238646,8.8326690718531609,-9.3307619728147984,-2.1164718642830849,8.4574386849999428,4.1721232421696186,0.87544205598533154,-6.4452799409627914,-5.8199399430304766,4.2694101948291063,-4.0227438323199749,9.7444569692015648,-4.9115641042590141,-8.6578604578971863,7.3392946179956198,-8.4752196446061134,-3.0165549647063017,0.76076283119618893,6.1409881245344877,-8.4124646242707968,-8.2929276954382658,0.76423612423241138,4.5166242122650146,-9.0967508498579264,-9.0915264934301376,-1.285767974331975,-9.9022763967514038,-7.5593994371592999,9.1736787557601929,2.0189981162548065,-6.6985660418868065,-2.7994401566684246,9.8093432188034058,5.6316334567964077,-9.1363692842423916,5.041446490213275,-8.4087212663143873,-5.3783104941248894,6.7355614062398672,4.5806856453418732,7.5837553665041924,0.1765824481844902,7.8212862741202116,-7.6414513867348433,-9.8734383936971426,-2.8790818806737661,-8.7291127536445856,9.8019594326615334,1.5323397144675255,-5.9663286898285151,3.9137416146695614,-1.7445733584463596,-1.0443708021193743,7.2599988617002964,-1.1989963240921497,8.4688498545438051,-4.0403501410037279,-6.1647732090204954,8.6567059997469187,-6.7421162407845259,5.2523666247725487,-3.4740180801600218,-7.8218221757560968,-1.3652908895164728,-6.4439125265926123,-2.8378066141158342,4.9842926021665335,-8.9941181149333715,-4.1431498154997826,6.081096725538373,4.992791973054409,-6.1451915372163057,-2.2341358289122581,-9.1208157502114773,6.4496930688619614,-0.0084629002958536148,-2.2358870785683393,1.4459312614053488,1.7668000143021345,-5.3920675348490477,-4.4790221471339464,1.0748163238167763,4.4380410574376583,-9.8438346479088068,-5.328926183283329,-3.2623258884996176,-9.9111552815884352,3.213183032348752,3.9673280902206898,-1.1166783515363932,-8.012984748929739,5.765340281650424,-1.9257629197090864,-6.2973283603787422,0.80227608792483807,3.8542942889034748,-0.87577797472476959,0.79965020529925823,-0.27891501784324646,-7.7246288117021322,-7.8364204708486795,-6.718836622312665,-3.4870855323970318,-7.446492025628686,6.8085452355444431,-8.7800946552306414,-7.0508609153330326,-3.8193809241056442,7.6648569200187922,3.2503930013626814,9.3552775960415602,-5.8492918498814106,-9.0480884723365307,8.7770528811961412,-4.0720787830650806,0.57193941436707973,-7.4141799937933683,9.876864543184638,0.46253286302089691,-6.2100893259048462,7.0287291705608368,-8.1486971117556095,4.8476572055369616,-5.4252303391695023,-1.846274621784687,9.662495469674468,-2.4384872987866402,-3.6559715308248997,-5.9134689252823591,-7.6721952389925718,-6.5853635314851999,-0.20484695211052895,-2.8626474644988775,7.4841200187802315,5.6052924692630768,8.1506530288606882,8.025598106905818,6.2275238335132599,5.9931968525052071,7.6596252154558897,-4.6788656245917082,2.3054891265928745,8.3558469451963902,-3.2802484277635813,8.8647271599620581,9.4695251155644655,-5.691230334341526,7.4918044358491898,-5.2427097875624895,5.7766376622021198,7.9493120964616537,4.0885457023978233,-3.8122695405036211,7.1858811751008034,-6.8949555791914463,-3.518395172432065,6.3323876541107893,8.4394304547458887,1.507797222584486,1.5480100363492966,-2.5952287018299103,1.9912662915885448,7.2126565687358379,3.1190854497253895,2.4692562036216259,0.78911185264587402,2.6029918529093266,8.4841704741120338,-6.546696936711669,9.664611704647541,-6.8709260877221823,0.3452681377530098,2.9216721747070551,4.5443414244800806,-3.2535649370402098,-2.6658440381288528,-4.8406914342194796,2.4991054460406303,2.4653294216841459,-5.2083121985197067,3.8969169743359089,-4.516303576529026,-5.514167807996273,3.381686108186841,-4.0014749765396118,7.2101162374019623,0.42373670265078545,1.7428430262953043,-8.0371651519089937,-0.63469277694821358,-7.2814288735389709,1.0249437019228935,6.2288844957947731,8.8618478272110224,1.076579550281167,-5.927411736920476,-2.0090305525809526,-5.7764346897602081,-4.5377977471798658,-6.7666941042989492,-7.8277856484055519,-1.5933757554739714,0.13374353758990765,7.8277155756950378,0.41582022793591022,8.6906524281948805,3.7955069448798895,-8.9146694354712963,-8.8491934724152088,-8.3946818765252829,-9.4182861968874931,6.8638934567570686,1.457459693774581,-4.4748370628803968,-8.5864725895226002,7.1551989484578371,-2.5711390096694231,6.8667226191610098,9.0071922354400158,3.880049791187048,-8.0030508898198605,-7.2762895748019218,7.401137612760067,-9.0800061542540789,-7.6634273491799831,0.77656061388552189,-8.3456780854612589,-5.8115694019943476,4.9530934542417526,6.6418024618178606,8.7741060089319944,6.3998390454798937,2.0949657261371613,-9.9109461531043053,6.7280054651200771,-2.412016810849309,1.2335194367915392,-8.238737927749753,-8.468337906524539,-7.3551829718053341,1.4398135617375374,-1.0533783491700888,-4.1298444848507643,9.7037890460342169,-8.4173490945249796,9.6137806959450245,-1.1876897513866425,-1.5015825908631086,2.9014618694782257,4.8697412852197886,5.7418970577418804,4.0639726631343365,3.1886593624949455,-8.2019913289695978,9.1317480709403753,-2.7100219763815403,-7.3392999917268753,8.3850598614662886,7.701235543936491,-5.3340745251625776,-9.7905078902840614,-9.0661103650927544,5.883101187646389,-2.7182149235159159,-5.0381625443696976,3.6021556053310633,1.429365249350667,3.341835280880332,6.2256701663136482,-5.1613877806812525,-7.44439204223454,2.1029661595821381,4.5523388125002384,-8.8414644170552492,1.5075516141951084,-2.5799301639199257,-0.88620693422853947,5.5201277416199446,-3.2129251305013895,0.36738477647304535,-5.3639806807041168,7.5767356809228659,2.1967268269509077,0.38787601515650749,-0.96773196943104267,-4.6711395401507616,-7.8422096092253923,-4.0168853662908077,8.2076955679804087,6.739553539082408,-8.3235376328229904,6.303018257021904,-5.1720266416668892,-6.2517287116497755,7.195572629570961,-4.0106802247464657,-7.5024904403835535,5.6431880127638578,5.0610529445111752,1.1169562675058842,-7.3159250244498253,1.2481350731104612,-2.5937382038682699,7.042065542191267,-4.0042990166693926,-0.25352624244987965,-1.0154805798083544,-7.1820345241576433,-8.4542254637926817,9.8326421249657869,-2.7836504857987165,-4.8136583436280489,-3.1557407695800066,1.4649392291903496,1.2337147258222103,-4.9565151892602444,-4.1507464274764061,-1.5951608214527369,-9.8678603768348694,-9.1293524298816919,2.9737177863717079,-0.72506291791796684,-6.1323888599872589,-7.0595395378768444,-9.680990083143115,-8.4003248903900385,-4.2604202684015036,-4.8834061063826084,4.5936100650578737,4.8044776357710361,8.8557402603328228,-1.5732970181852579,-2.4029186926782131,-5.8544083870947361,4.9582705367356539,-6.3469720166176558,6.441345289349556,-0.30959323048591614,-3.3333489391952753,-3.5955688823014498,9.2738452740013599,5.5176709778606892,-4.5037536509335041,5.4124317690730095,6.7408634256571531,-6.3082739617675543,-3.1604465376585722,2.3750950954854488,-1.7766333278268576,0.12372356839478016,-0.57790676131844521,7.1211362536996603,4.9371499195694923,-1.3211848959326744,-5.1544780191034079,8.6879708431661129,-1.2738926522433758,9.6862620301544666,-2.9939051251858473,1.4366158284246922,5.2023178339004517,-4.6440466586500406,7.5078499782830477,4.4347220193594694,-5.6269076559692621,8.5630603414028883,-0.64469676464796066,4.5815497729927301,2.1071488037705421,-5.1499602757394314,4.6176835987716913,9.4083589501678944,6.2890273611992598,-0.317012844607234,-8.034803532063961,-0.94294802285730839,-8.127349279820919,3.6406686995178461,8.7189395446330309,-0.78292685560882092,1.3484099134802818,2.7255046740174294,7.5571557972580194,-6.88237807713449,7.8716819919645786,-0.64062118530273438,-6.9201881345361471,-7.6019530463963747,-6.0248320177197456,0.64830929040908813,-3.8656727597117424,9.63797552511096,5.4548042267560959,-1.1052399594336748,4.2320714052766562,8.4242198616266251,5.8633585460484028,5.4672075808048248,7.3579316306859255,4.757052781060338,-8.2137932255864143,-9.2227284517139196,-6.3970818743109703,4.244966646656394,5.1545418333262205,-7.615288682281971,9.8431355413049459,-6.4208019897341728,5.5809865426272154,-0.35905612632632256,5.3437602799385786,-7.4208549875766039,-2.3097560182213783,-0.069338064640760422,-5.3647746983915567,-5.7683195918798447,-8.1473476067185402,7.5287883728742599,-3.6536799184978008,-7.3983405251055956,-3.9091850910335779,-1.6737773362547159,8.8243747223168612,-8.733894694596529,9.4318778160959482,1.5706072002649307,-2.8046945948153734,1.4980012457817793,-3.0929721612483263,-3.5830600466579199,-0.49015396274626255,1.9824225455522537,-1.4241831284016371,3.7542280647903681,-2.688807426020503,9.213648084551096,-6.2164925783872604,-0.59073534794151783,-8.4889192134141922,6.7347919661551714,-8.351293858140707,-0.19586087204515934,8.166400259360671,-7.3106987494975328,9.0861382335424423,-9.2745594773441553,2.4788699485361576,2.3673227056860924,7.5928112491965294,-7.6211970672011375,-9.459089832380414,1.0771914105862379,4.356124410405755,-6.6169219557195902,9.3927166890352964,3.3895443845540285,8.0725759826600552,-4.2153179924935102,-6.8494545668363571,1.2171198334544897,-3.8668713439255953,9.49337063357234,-4.9196089897304773,-3.8682506419718266],"expected":[-2.2085090912878513,26.237317848867761,-64.167847869611023,10.247914659448554,-22.69250263214315,-26.845502234815179,-68.984934119821332,-19.842035273387204,28.952150487738908,16.881098143406547,41.550940825134056,56.576834048434073,80.704958489680507,43.836408870892882,-92.463443632161443,21.537528903009026,-24.982085981226867,13.650962945253401,49.659374336614192,15.409559517730557,60.413807126591202,-17.814095648117629,10.588697806933856,-17.100957157325904,-32.787413012341418,7.380335616029182,92.816680860811005,-59.499306985813035,-39.629682186559911,-40.929987043008801,-42.094585481010917,3.5204714356974627,-73.566767445466013,73.519844488012552,40.215826513025881,-31.409088247058641,-29.144368578114864,-25.522723894937858,-30.952237310449863,-17.300551551318158,51.456371273476279,-58.878406022784418,19.038054149306248,-18.166391325799147,-13.223629739080188,0.099963984712452714,-26.606478461490148,-5.2643007261751933,-18.269548226655125,-76.243198682230471,15.401094501464838,54.891026576925739,-27.452540563134935,39.316034302746118,41.517068278095508,-47.642409732579253,9.5439485131564243,3.8322256364611809,10.287850622704855,34.375793857707052,11.682273271755871,-61.838815540722251,-1.8144597344861992,58.638316374830865,18.536386522966648,30.005612803781652,-25.830322916351562,-68.883813264466795,50.460454435348097,13.025335077869505,46.194906598539106,92.360406491524714,-80.473807892709416,-53.934804486230107,48.222155643373704,28.601935470177743,5.6314600530036927,-40.324870045693203,15.293622829954334,-60.824859785677511,-53.500163832142235,-47.270525591447949,-106.86021624839698,7.2690047568626781,-11.295084848416511,11.229681086675942,-44.50196777956053,-35.555847666995795,-75.074929010657556,-138.84188126799995,-67.729867119648191,37.2159028191262,-62.10884059197371,-22.981849557091437,98.662345965897529,-38.399304701147457,-59.155492916379629,-0.72167177501114566,55.648175041627823,26.6039246778261,-9.0903074122367613,8.9304842572320524,53.820839202461244,24.828073551071562,0.51518630672157162,-7.8531187564510416,-58.831343257502652,29.055950698559485,-12.793983925003067,-66.972661293704377,45.970655290233182,-42.086997329215336,35.901936187090897,-18.747241894091896,-4.2515530200741285,13.694806980209137,-57.767471986903267,-44.914467637981609,14.281909891380147,-44.098668956705303,96.26145304490916,-28.160305690976717,23.858421773710781,-49.653363227844238,-0.68399244226584077,-39.56657555198715,1.7529709761888519,43.336195896606462,-61.860041349640028,3.1213346213609778,-16.74450627186598,28.505071549427619,73.29252792519199,-17.068705043240097,-17.603882048152371,-56.926375191779947,-42.507952183334048,-43.330627509676681,15.707337066746323,-80.290383056166959,0.93006898714275898,-36.316022651103509,-9.0881341028993088,40.407232756117381,54.018553930455141,51.721205801574094,17.769080442605624,21.351386254072718,22.365393323933599,33.163194753297056,-91.958575863940808,-3.9826727703467686,34.163808450400701,2.6702790456768479,-10.141078171917719,18.316989937705241,-8.7488694902422246,93.718493020319869,-10.095921547904002,-7.8111555506780164,-18.374773701754357,59.055045883975247,17.085918402299285,-3.0307211633771658,35.265025352882553,14.693360453945935,-62.496132694187082,71.031325981541102,-52.591212061759634,-43.855388700089151,107.23439895340144,-2.3161255284725684,31.279360192029309,13.460813399668391,25.261488519215028,25.571100305789784,-23.520187894549881,18.300335947770826,7.6301100358878919,20.280356400407104,18.524205860084773,22.710379608207738,-27.254558626186373,-62.352172692915403,22.713274633225893,76.667007509504245,-10.875067977568563,-10.512983957836454,-53.944876584309959,87.937239156658279,-59.757676646477861,-1.1852542157813346,-44.511653675165945,-5.0177338786954806,-57.418340766959126,41.840756773377684,49.712603016137678,2.2239546954885068,-10.771329405078415,17.303882963562941,-0.14496889002263291,15.279721445511948,38.338554035872221,-28.33958612754941,5.1289939460762826,-22.389722317040107,-25.114869010485499,4.9897114739528163,-19.288379516304225,-9.9003606931911072,-3.8708059452249177,1.5333754073594559,13.048897502579214,-34.590895720664989,12.215570646511731,-2.9444290061001954,1.4608028635786408,26.649217843445264,-13.708215465569383,5.1283895522256024,-16.615712098852313,-28.364575766626686,26.911484159514757,44.493140078492345,32.231428989325238,-24.935509889299347,5.115719302026803,-11.358734773856721,33.1505879573524,-51.158746760338545,-0.10246840256324319,5.553890893451662,2.6208884740111626,-29.9787171050219,-2.2487369460096436,-20.60476189176644,40.66704037541512,-8.3813611685355554,5.0181384549518917,-12.5071286780897,-2.9418030334479739,23.335429687579982,19.960921034873575,2.1726729389608597,27.130907683236046,26.490475249904243,-9.8817449180249728,-45.417210624868844,13.521418004159965,9.5823160223257542,15.080134471741069,2.2273683670500137,2.8989636065562459,-13.751849163458623,-2.9760595101604959,19.385803321646161,10.352323583928966,-10.0437665074317,81.41750562004745,-55.450782286226904,56.63893647397159,23.053660677289166,-4.7875041788294954,-71.049329563862273,-5.9626052906174394,5.9159915820481128,18.935649399035498,-11.811551573935791,-45.646319574168757,-42.251599437672461,43.989072888055354,16.23566937241106,-7.6179744494285249,-45.773814033041894,12.350038466122092,7.7912072248973256,69.227726491202077,-9.8761873202056591,8.4533962134462026,26.827825571979769,-24.891008820667349,15.52891947661054,53.068187319172132,-5.3884142001370314,-14.790719068869983,13.349801843920615,-50.654673752059345,21.363671354454635,-47.047652860902197,28.104573464000733,-31.507540837772829,-15.972535383816588,-36.475975375718392,-61.001059332408474,-29.371831520523394,12.793299307760032,3.2312979554035817,14.782042504736294,19.697442756820585,29.574117996565231,-39.990726983768369,21.002399557644083,-25.041582433563967,26.300034515450694,-8.7072394444958494,-62.150918965776611,3.2908822652876282,-18.997571353317099,-34.007085139902124,-0.63705432107137971,83.311174658260981,-50.688772847553068,-60.384098236329493,-48.141840004573659,7.4854926028273709,-27.174199881967933,12.105554670836066,75.880720100257363,-9.6035944561026358,34.693508474205657,-48.606735412860942,1.5988010253877862,-53.905830519770603,-47.508290306773183,45.797700939876968,-36.323544180569321,19.914143193965415,-16.755818399711401,11.09581015513915,-60.348672402469631,52.29244561094044,-62.377935349941254,10.183814950562541,8.100717127093187,-12.127939928975541,-16.65440481383839,-16.926367872734993,-9.1657543910838335,-6.9838953548543703,-34.120654811464327,119.59049877395796,-26.532250607798495,-47.505613452696423,43.202542296111446,23.813062287419626,64.185348166972361,46.936784981023429,-44.101459678086762,2.2429958499061242,0.025541637233965631,14.155474045490202,-27.111204636367365,-73.763668349357744,81.619719302017685,-17.503117824426155,-30.01938507418145,14.5787914175169,-4.3015146072859878,-2.1912379256402694,-40.148939491354938,15.808093831794499,21.640873098591037,38.465300492640324,14.560387544727691,-15.605808701366186,6.8269659951329231,1.6143423479861561,-16.109831055253427,11.884863374210314,46.252026710354748,-45.464442296977253,-0.89378067331452016,65.494333034572705,-33.840237074139651,-27.914281813273533,41.800339376062148,-34.952715936152202,14.195199916314678,-60.291815503837277,-12.256755609440571,-7.5251204362494288,8.8390760688496055,-44.340658543072045,19.273079017103775,-21.383709216401328,19.127656220574654,11.761604178211051,8.8589089172463176,-45.625400094271868,72.510636589602285,-11.448567756926602,18.27240143110285,9.2338541769087126,-0.074543685195866516,-31.005394246876605,-46.060717700834253,20.771593875040523,-43.29650268663373,-34.74038690328598,0.17565261572599411,-13.965589662271469,-30.671366663612439,-6.5924941721801584,-13.514142665023357,14.914230496391372,18.167176291253863,-21.301544198356112,-2.0833520650084099,-23.961320660406493,-50.420810535108785,24.510437526512842,-10.363214556594908,-28.841775236651301,-20.637081217777219,14.133013125764837,6.3569885825494445,-27.794987436856715,-2.9144507022449027,-19.569961582322087,17.863569713933249,-57.505097333341837,-16.88341910206946,-23.601918131758481,3.9106352795485186,-22.56144810419179,10.736355180571923,-4.2799887079082879,19.8479861796996,-19.699153811740182,36.53623878641222,-29.963017004320552,3.6626906058452562,2.3342326452540618,33.272741279806858,12.776330006609296,-13.457864697811354,-37.15832243774102,4.4262801731397801,29.508017586293469,4.6529281837512011,8.4826403683971936,-40.750782782348857,-68.066445925623881,-5.7437518739606013,3.9626989390135847,-31.607388230630171,-11.887494823751197,-15.245249553806023,35.646797543084681,-44.591021416346607,-4.8298671444138677,8.6595811097719686,-53.099366951627175,23.919829031064001,39.726719439924857,70.853938274048275,-10.992952525212015,-13.529303882776972,-2.3676915060683026,73.719086927618235,-41.325481858461934,-0.034910765240443453,5.2676125930631592,8.791715234078346,9.0134886965164611,-41.538708759764191,-14.039516808510246,30.895412671007058,35.686866812969242,23.711524774346781,-10.574511831669994,22.701326755170573,-12.292594076936254,-22.625582436868896,0.47377379653097051,-27.928827022211692,-16.679600791368181,53.707202598452568,-14.476545201614499,-30.350720961468671,11.134525935812015,-45.240498853382519,3.2231787908433729,-10.254916756851891,24.558141248667454,25.008661296409699,26.191811160921212,-2.9440251494707965,-9.7604155913286981,1.4018707225115268,18.782130927282363,-29.356453496010147,30.928163052559579,-12.919131957717468,-33.677561599568719,11.731764716184998,1.6567104791079998,15.384086405033326,-0.15103645714184033,-7.5979637772504773,7.3612712578933648,19.585022372525327,-16.88819963915401,-37.966871904209256,42.566117960959673,38.860927051000139,-61.17852617839862,3.1046270582899833,5.0384566506880262,-1.9337729309236593,-56.552661057674506,-23.472310948097871,40.7982558786765,1.5917117948157724,-20.335313584876165,-16.348570729064772,-21.990777141951217,-8.9769747959244555,48.050652010408605,28.884123742842288,-89.589641780379964,-98.013557077754683,23.589383216448756,38.203603325283126,-11.057650251438318,42.568125615111661,-49.928143703804011,40.404460584196073,-0.16824972017960249,-41.850592128976565,11.915071270365658,30.157898387923503,25.03858279253123,20.227685664071366,24.156246551180111,-5.3463904675169447,41.85981143369721,-3.0384512331387317,-65.505836472936949,-123.27011766775914,-2.4014730884486406,11.831173413997902,-11.532735257411534,7.3408877081501034,-39.467998636347474,4.4803537116640815,-40.136424070798043,-45.821476515624795,-49.47689628250469,-53.091801572822156,9.5163325383754085,-52.43826415737972,-27.930158012682192,6.4345000245140529,17.353729856777218,-18.860321782721069,-86.153170887378934,55.018926347098159,-17.162646996407506,18.619096218673725,16.567158838484307,-11.155446135235856,20.281961220956891,-6.5961462778592894,57.259287593558078,-68.304506309637674,2.5999948580621393,73.088055763505906,47.524254360593744,-50.511658914215836,-46.249442701148141,-28.011195266685842,-19.114942825685528,62.116813270306061,14.888239451454904,69.109072202328576,-19.168614658861525,-2.5602412619034958,-9.7277613546151791,2.1373854276240678,41.469028225422548,-53.701419606291012,4.548009981865353,26.131448919980198,-6.8327621605372144,36.407724647100636,15.348183968995087,30.158038606907425,63.634083523452617,47.127166023535835,-34.539227778194942,73.832870709740163,-32.85218084513285,7.004221816349288,-63.922198300301481,52.614565114721785,-51.38552493259126,-0.90823787997593364,44.98002704888038,-78.532396445297096,131.53861964154373,20.510041906319639,-4.0125112729229251,-74.837515011558509,26.620001034953617,5.5683599324587902,-33.389123590529707,57.084456972920592,136.33440007821901,-61.574636287223285,16.768822608060344,-88.72227841116019,14.03121397926836,17.455174793261808,-42.092391362578454,35.818004764740976,31.232942394250788,39.817824497534751,-28.551892805227705]} diff --git a/lib/node_modules/@stdlib/fft/base/fftpack/rfftf/test/fixtures/c/fftpack/small.json b/lib/node_modules/@stdlib/fft/base/fftpack/rfftf/test/fixtures/c/fftpack/small.json index 57b79850e380..8d557d1163b5 100644 --- a/lib/node_modules/@stdlib/fft/base/fftpack/rfftf/test/fixtures/c/fftpack/small.json +++ b/lib/node_modules/@stdlib/fft/base/fftpack/rfftf/test/fixtures/c/fftpack/small.json @@ -1 +1 @@ -{"lengths":[13,13,11,2,10,5,2,10,10,9],"offsets":[0,13,26,37,39,49,54,56,66,76],"input":[0.89892103336751461,8.1658930983394384,4.1654459573328495,8.6503157485276461,5.8569314610213041,-2.5528105162084103,-5.0862876325845718,-5.2362023945897818,-4.8536085896193981,5.4004745371639729,5.7756666373461485,-8.3707026578485966,-6.3995577115565538,2.6335700415074825,2.4117864854633808,-5.1044416800141335,9.6487223077565432,6.0759802348911762,-1.0000663716346025,-8.1154376268386841,3.8398204650729895,-4.137335205450654,3.8072478678077459,8.4150222968310118,-8.7201130390167236,1.0601632576435804,-1.8360422272235155,1.6383509431034327,-4.2356081772595644,-7.8665900882333517,6.2204037513583899,6.3259760197252035,0.67909128963947296,-6.5126114524900913,2.5393452867865562,-1.2236668448895216,-6.1685933731496334,4.4512074533849955,-8.5562178585678339,-4.3535376526415348,-9.9072837550193071,8.2819301076233387,-5.600538095459342,-8.2437359541654587,7.5298320781439543,-6.1121254414319992,-6.4922637213021517,4.5236635208129883,9.212907962501049,1.3442761171609163,-6.75121009349823,-7.5880159996449947,8.2151128351688385,-8.5984367597848177,6.073389258235693,-4.546611038967967,5.1083107385784388,-4.6212984714657068,9.8366321623325348,4.2769075650721788,1.9855578988790512,-8.7282997369766235,3.4663305804133415,-1.3818296045064926,-4.4100954942405224,-0.47492795623838902,-2.1140859555453062,8.557406859472394,4.3372323829680681,-4.1352272499352694,-0.76434376649558544,-6.3256112113595009,5.452399430796504,-1.5226456709206104,8.8942751754075289,6.0830209404230118,-2.6669284421950579,-3.0662705842405558,5.1903449278324842,-5.8726790361106396,-2.1165276132524014,7.5204657576978207,-3.5318732541054487,-0.19373113289475441,3.960926178842783],"expected":[6.4144789706915617,13.387325639756353,-21.928023159213939,-29.072416633192926,-21.740203696122322,13.566472080239153,-16.552310855726809,18.878112433369161,-3.7491472312635481,-6.5631348955019266,1.4585744125270956,-7.5606113931267442,-1.1929519180426831,10.814919034019113,4.5240653055954922,-6.1690899057242099,-19.833546830362998,-5.7253623090062646,19.102546057824817,5.3466877778085831,31.495461146592756,-9.6332047876495039,-3.999038984352814,14.856967070745597,-19.578740942508169,-12.395630761446979,-10.439944872632623,-13.686801011432884,-2.3948586896435407,10.903168971775433,7.8994841094889532,-2.9993672325729852,-29.193233050805333,0.616389351330208,-1.7062234540582542,0.28835010748720563,10.029382864118968,-4.1050104051828384,13.007425311952829,-11.161150950938463,6.8630316157481648,8.0690905410139795,-2.0511453240953905,14.472190355472936,-36.248225998378459,22.944861839971143,15.572456863320673,12.711879949701993,-0.64645988866686821,-13.378273900598288,-3.9063576152150148,7.5320291111354711,13.956184858416449,-16.115441248286185,1.5267782192677259,10.62000029720366,5.0572876818478107,6.0852700183592532,-15.623670249201187,-10.242411035426388,-2.5127599655273629,15.048164125489459,17.051869870244605,-1.3362053014929742,9.7344634097243343,26.916184090077877,18.462420934811234,18.100303029150734,9.0184203948204562,-8.5940664319131805,-7.1228293551532778,-14.145756689340839,-0.65500619424010331,-21.736386952754454,-6.9578100280660662,13.148533599451184,-0.77627319842576981,-1.4896942678591465,4.5379582892306223,1.6350786910462221,-3.1427618177595837,-17.719084499403834,19.09435863406452,5.9606586855518833,-1.5991282893642211]} +{"lengths":[4,13,5,5,15,10,10,2,10,15],"offsets":[0,4,17,22,27,42,52,62,64,74],"input":[-9.116728724911809,-4.8596726823598146,3.4812678024172783,9.668060727417469,-8.9032003656029701,3.9114638883620501,-0.026319427415728569,-2.3505385220050812,-5.5008794739842415,6.7187159508466721,1.4591167215257883,3.3748283609747887,0.74036757461726665,3.3579106442630291,-3.5956973303109407,7.115019578486681,2.1341895684599876,9.3241720646619797,-8.6399579886347055,8.2260956522077322,-4.010230703279376,0.05261685699224472,4.3315941374748945,1.1027806997299194,-5.564692746847868,-5.7909615617245436,-8.6909349635243416,-8.5439217090606689,2.3078472074121237,7.9881112929433584,-3.8133587222546339,8.8800034765154123,6.2185775488615036,-4.3670093547552824,3.6738187074661255,5.8711233921349049,-4.0290241781622171,4.1906843520700932,-7.1679836977273226,7.6980144530534744,0.52905097603797913,-8.2401633262634277,7.5749892555177212,-7.1554449666291475,-1.5635318774729967,1.7198013328015804,4.7010921128094196,-8.7447449564933777,7.0715260319411755,-8.8618475571274757,-1.0718837380409241,4.8500846140086651,-4.6277761366218328,0.96651383675634861,4.1981401853263378,-1.8577941041439772,-3.9454446267336607,8.9122058637440205,7.4440999515354633,-7.0119780208915472,9.685426251962781,2.9591707978397608,-5.2162992861121893,9.6579357422888279,0.92617449350655079,6.2147978693246841,-7.8920833580195904,-2.2449817415326834,8.5919307451695204,4.5801795646548271,-0.92194274067878723,4.9084284529089928,-4.0428752824664116,-8.6048257909715176,-1.3070579431951046,-7.7227832470089197,3.1819853372871876,-0.37233305163681507,2.1984764840453863,9.7943628113716841,-6.1440743599087,-3.4577368106693029,5.8174742758274078,-5.7097223773598671,-3.3039627131074667,-9.7012667916715145,-9.1909652855247259,7.446452509611845,-7.4725344125181437],"expected":[-0.8270728774368763,-12.597996527329087,14.527733409777284,-10.443848967552185,8.4349771682173014,-9.7567153511884861,8.5923802120769253,4.57425773203913,4.0866333108592272,-14.22715060271884,-6.6576554982603335,-26.372765919953665,2.8296022954701328,-8.980587583926571,-6.8431158070115705,-7.3253292347795274,-19.352006438403265,4.952695881947875,3.259831328816762,1.0747977763238268,17.574250891864249,16.746805214608187,-14.612214434891939,11.173642831905873,-9.4473745727180862,6.9614497292273327,-5.541407201183806,11.195770418271422,-14.991257708546126,-15.946231614575851,-17.300471915627686,-4.6130790288011587,-19.788622037389842,-4.3067661197842559,-5.5157193718121711,-30.002457820459789,-25.180834475904703,-12.913945229888764,18.854087307931454,19.383661310646723,-5.7544798257416492,19.640630053430741,-1.47995974868536,6.3230358066860246,-1.1461816305236983,9.6659206372041417,15.672241202115009,17.024128064244636,19.603107401239232,-11.850330015300589,-4.8679641623852099,34.904343318194151,16.722563998773694,-6.1633397371209089,8.1826596782807925,2.5224321416795537,-2.68207208227156,-32.079778889875975,12.531437445164677,-0.17263982326092409,-15.643991329488166,8.7863272521644831,4.4416364561766386,-14.874235028401017,1.5148022118955851,-16.303884263575817,-3.8387589572180141,14.638762167581284,-6.9882295533190071,11.265068834141644,-29.609707780796953,-1.6302781281256387,0.023841251436460542,-8.1923944968730211,-25.943685574457049,-6.2112734554560713,-26.110422946311445,-2.2624743686374584,8.8755320203980546,-8.2645672629549143,25.11030762650708,-12.000561912417531,-15.582412082646586,-21.114386739209294,5.5941560454209212,34.194765437856233,-13.8671250199453,18.827406514084274,-0.55489016140835545]} diff --git a/lib/node_modules/@stdlib/fft/base/fftpack/rfftf/test/test.js b/lib/node_modules/@stdlib/fft/base/fftpack/rfftf/test/test.js index 2443949b6998..fce285b902ea 100644 --- a/lib/node_modules/@stdlib/fft/base/fftpack/rfftf/test/test.js +++ b/lib/node_modules/@stdlib/fft/base/fftpack/rfftf/test/test.js @@ -165,7 +165,7 @@ tape( 'the function computes a forward real-valued FFT (medium sequence lengths) input = medium.input; expected = medium.expected; - ulps = 8163; + ulps = 150; for ( k = 0; k < lengths.length; k++ ) { N = lengths[ k ]; off = offsets[ k ]; @@ -207,7 +207,7 @@ tape( 'the function computes a forward real-valued FFT (large sequence lengths)' input = large.input; expected = large.expected; - ulps = 40987; + ulps = 1800; for ( k = 0; k < lengths.length; k++ ) { N = lengths[ k ]; off = offsets[ k ]; From fa5a56ae7ba2bb42d91d3f34bcbe280e928ff362 Mon Sep 17 00:00:00 2001 From: Gunj Joshi Date: Sun, 31 May 2026 16:11:24 +0530 Subject: [PATCH 16/19] refactor: return the input array and use Collection --- type: pre_commit_static_analysis_report description: Results of running static analysis checks when committing changes. report: - task: lint_filenames status: passed - task: lint_editorconfig status: passed - task: lint_markdown_pkg_readmes status: na - task: lint_markdown_docs status: na - task: lint_markdown status: na - task: lint_package_json status: na - task: lint_repl_help status: na - task: lint_javascript_src status: passed - task: lint_javascript_cli status: na - task: lint_javascript_examples status: na - task: lint_javascript_tests status: na - task: lint_javascript_benchmarks status: na - task: lint_python status: na - task: lint_r status: na - task: lint_c_src status: na - task: lint_c_examples status: na - task: lint_c_benchmarks status: na - task: lint_c_tests_fixtures status: na - task: lint_shell status: na - task: lint_typescript_declarations status: passed - task: lint_typescript_tests status: na - task: lint_license_headers status: passed --- --- .../@stdlib/fft/base/fftpack/rfftf/lib/main.js | 10 ++++++---- .../@stdlib/fft/base/fftpack/rfftf/lib/radf2.js | 6 +++--- .../@stdlib/fft/base/fftpack/rfftf/lib/radf3.js | 8 ++++---- .../@stdlib/fft/base/fftpack/rfftf/lib/radf4.js | 10 +++++----- .../@stdlib/fft/base/fftpack/rfftf/lib/radf5.js | 12 ++++++------ .../@stdlib/fft/base/fftpack/rfftf/lib/radfg.js | 12 ++++++------ .../@stdlib/fft/base/fftpack/rfftf/lib/rfftf1.js | 8 ++++---- 7 files changed, 34 insertions(+), 32 deletions(-) diff --git a/lib/node_modules/@stdlib/fft/base/fftpack/rfftf/lib/main.js b/lib/node_modules/@stdlib/fft/base/fftpack/rfftf/lib/main.js index 7383a0611504..1dbfbd084cfb 100644 --- a/lib/node_modules/@stdlib/fft/base/fftpack/rfftf/lib/main.js +++ b/lib/node_modules/@stdlib/fft/base/fftpack/rfftf/lib/main.js @@ -69,13 +69,13 @@ var rfftf1 = require( './rfftf1.js' ); * Computes the forward real-valued fast Fourier transform (FFT). * * @param {NonNegativeInteger} N - length of the sequence to transform -* @param {Float64Array} r - input array containing the sequence to transform +* @param {Collection} r - input array * @param {integer} strideR - stride length for `r` * @param {NonNegativeInteger} offsetR - starting index for `r` -* @param {Float64Array} workspace - workspace array containing pre-computed values +* @param {Collection} workspace - workspace array containing pre-computed values * @param {integer} strideW - stride length for `workspace` * @param {NonNegativeInteger} offsetW - starting index for `workspace` -* @returns {void} +* @returns {Collection} input array * * @example * var Float64Array = require( '@stdlib/array/float64' ); @@ -97,7 +97,7 @@ function rfftf( N, r, strideR, offsetR, workspace, strideW, offsetW ) { // When a sub-sequence is a single data point, the FFT is the identity, so no transformation necessary... if ( N === 1 ) { - return; + return r; } // Resolve the starting indices for storing twiddle factors and factorization results: @@ -105,6 +105,8 @@ function rfftf( N, r, strideR, offsetR, workspace, strideW, offsetW ) { offsetF = offsetT + ( N * strideW ); // index offset for factors describing the sub-transforms rfftf1( N, r, strideR, offsetR, workspace, strideW, offsetW, workspace, strideW, offsetT, workspace, strideW, offsetF ); // eslint-disable-line max-len + + return r; } diff --git a/lib/node_modules/@stdlib/fft/base/fftpack/rfftf/lib/radf2.js b/lib/node_modules/@stdlib/fft/base/fftpack/rfftf/lib/radf2.js index d7ac34b18d32..7e7871ca0ebf 100644 --- a/lib/node_modules/@stdlib/fft/base/fftpack/rfftf/lib/radf2.js +++ b/lib/node_modules/@stdlib/fft/base/fftpack/rfftf/lib/radf2.js @@ -226,13 +226,13 @@ function optr( i, j, k, M, stride, offset ) { * @private * @param {NonNegativeInteger} M - number of elements in each sub-sequence to be transformed * @param {NonNegativeInteger} L - number of sub-sequences to be transformed -* @param {Float64Array} cc - input array containing the sub-sequences to be transformed +* @param {Collection} cc - input array containing the sub-sequences to be transformed * @param {integer} sc - stride length for `cc` * @param {NonNegativeInteger} oc - index offset for `cc` -* @param {Float64Array} out - output array containing transformed sub-sequences +* @param {Collection} out - output array containing transformed sub-sequences * @param {integer} so - stride length for `out` * @param {NonNegativeInteger} oo - index offset for `out` -* @param {Float64Array} twiddles - array containing twiddle factors +* @param {Collection} twiddles - array containing twiddle factors * @param {integer} st - stride length for `twiddles` * @param {NonNegativeInteger} ot - index offset for `twiddles` * @returns {void} diff --git a/lib/node_modules/@stdlib/fft/base/fftpack/rfftf/lib/radf3.js b/lib/node_modules/@stdlib/fft/base/fftpack/rfftf/lib/radf3.js index 2f2994203a2e..e0361c31120c 100644 --- a/lib/node_modules/@stdlib/fft/base/fftpack/rfftf/lib/radf3.js +++ b/lib/node_modules/@stdlib/fft/base/fftpack/rfftf/lib/radf3.js @@ -237,16 +237,16 @@ function optr( i, j, k, M, stride, offset ) { * @private * @param {NonNegativeInteger} M - number of elements in each sub-sequence to be transformed * @param {NonNegativeInteger} L - number of sub-sequences to be transformed -* @param {Float64Array} cc - input array containing the sub-sequences to be transformed +* @param {Collection} cc - input array containing the sub-sequences to be transformed * @param {integer} sc - stride length for `cc` * @param {NonNegativeInteger} oc - index offset for `cc` -* @param {Float64Array} out - output array containing transformed sub-sequences +* @param {Collection} out - output array containing transformed sub-sequences * @param {integer} so - stride length for `out` * @param {NonNegativeInteger} oo - index offset for `out` -* @param {Float64Array} twiddles1 - first array containing twiddle factors +* @param {Collection} twiddles1 - first array containing twiddle factors * @param {integer} st1 - stride length for `twiddles1` * @param {NonNegativeInteger} ot1 - index offset for `twiddles1` -* @param {Float64Array} twiddles2 - second array containing twiddle factors +* @param {Collection} twiddles2 - second array containing twiddle factors * @param {integer} st2 - stride length for `twiddles2` * @param {NonNegativeInteger} ot2 - index offset for `twiddles2` * @returns {void} diff --git a/lib/node_modules/@stdlib/fft/base/fftpack/rfftf/lib/radf4.js b/lib/node_modules/@stdlib/fft/base/fftpack/rfftf/lib/radf4.js index d657a5cf8005..65fa22ef79c3 100644 --- a/lib/node_modules/@stdlib/fft/base/fftpack/rfftf/lib/radf4.js +++ b/lib/node_modules/@stdlib/fft/base/fftpack/rfftf/lib/radf4.js @@ -235,19 +235,19 @@ function optr( i, j, k, M, stride, offset ) { * @private * @param {NonNegativeInteger} M - number of elements in each sub-sequence to be transformed * @param {NonNegativeInteger} L - number of sub-sequences to be transformed -* @param {Float64Array} cc - input array containing the sub-sequences to be transformed +* @param {Collection} cc - input array containing the sub-sequences to be transformed * @param {integer} sc - stride length for `cc` * @param {NonNegativeInteger} oc - index offset for `cc` -* @param {Float64Array} out - output array containing transformed sub-sequences +* @param {Collection} out - output array containing transformed sub-sequences * @param {integer} so - stride length for `out` * @param {NonNegativeInteger} oo - index offset for `out` -* @param {Float64Array} twiddles1 - first array containing twiddle factors +* @param {Collection} twiddles1 - first array containing twiddle factors * @param {integer} st1 - stride length for `twiddles1` * @param {NonNegativeInteger} ot1 - index offset for `twiddles1` -* @param {Float64Array} twiddles2 - second array containing twiddle factors +* @param {Collection} twiddles2 - second array containing twiddle factors * @param {integer} st2 - stride length for `twiddles2` * @param {NonNegativeInteger} ot2 - index offset for `twiddles2` -* @param {Float64Array} twiddles3 - third array containing twiddle factors +* @param {Collection} twiddles3 - third array containing twiddle factors * @param {integer} st3 - stride length for `twiddles3` * @param {NonNegativeInteger} ot3 - index offset for `twiddles3` * @returns {void} diff --git a/lib/node_modules/@stdlib/fft/base/fftpack/rfftf/lib/radf5.js b/lib/node_modules/@stdlib/fft/base/fftpack/rfftf/lib/radf5.js index b2c119e9f673..dec092981317 100644 --- a/lib/node_modules/@stdlib/fft/base/fftpack/rfftf/lib/radf5.js +++ b/lib/node_modules/@stdlib/fft/base/fftpack/rfftf/lib/radf5.js @@ -247,22 +247,22 @@ function optr( i, j, k, M, stride, offset ) { * @private * @param {NonNegativeInteger} M - number of elements in each sub-sequence to be transformed * @param {NonNegativeInteger} L - number of sub-sequences to be transformed -* @param {Float64Array} cc - input array containing the sub-sequences to be transformed +* @param {Collection} cc - input array containing the sub-sequences to be transformed * @param {integer} sc - stride length for `cc` * @param {NonNegativeInteger} oc - index offset for `cc` -* @param {Float64Array} out - output array containing transformed sub-sequences +* @param {Collection} out - output array containing transformed sub-sequences * @param {integer} so - stride length for `out` * @param {NonNegativeInteger} oo - index offset for `out` -* @param {Float64Array} twiddles1 - first array containing twiddle factors +* @param {Collection} twiddles1 - first array containing twiddle factors * @param {integer} st1 - stride length for `twiddles1` * @param {NonNegativeInteger} ot1 - index offset for `twiddles1` -* @param {Float64Array} twiddles2 - second array containing twiddle factors +* @param {Collection} twiddles2 - second array containing twiddle factors * @param {integer} st2 - stride length for `twiddles2` * @param {NonNegativeInteger} ot2 - index offset for `twiddles2` -* @param {Float64Array} twiddles3 - third array containing twiddle factors +* @param {Collection} twiddles3 - third array containing twiddle factors * @param {integer} st3 - stride length for `twiddles3` * @param {NonNegativeInteger} ot3 - index offset for `twiddles3` -* @param {Float64Array} twiddles4 - fourth array containing twiddle factors +* @param {Collection} twiddles4 - fourth array containing twiddle factors * @param {integer} st4 - stride length for `twiddles4` * @param {NonNegativeInteger} ot4 - index offset for `twiddles4` * @returns {void} diff --git a/lib/node_modules/@stdlib/fft/base/fftpack/rfftf/lib/radfg.js b/lib/node_modules/@stdlib/fft/base/fftpack/rfftf/lib/radfg.js index 890ae2120058..8e00218e2186 100644 --- a/lib/node_modules/@stdlib/fft/base/fftpack/rfftf/lib/radfg.js +++ b/lib/node_modules/@stdlib/fft/base/fftpack/rfftf/lib/radfg.js @@ -325,22 +325,22 @@ function fptr( ik, j, ML, stride, offset ) { * @param {NonNegativeInteger} R - radix of the transform * @param {NonNegativeInteger} L - number of sub-sequences to be transformed * @param {NonNegativeInteger} ML - number of elements in each flattened sub-sequence (`M*L`) -* @param {Float64Array} cc - input array containing the sub-sequences to be transformed +* @param {Collection} cc - input array containing the sub-sequences to be transformed * @param {integer} sc - stride length for `cc` * @param {NonNegativeInteger} oc - index offset for `cc` -* @param {Float64Array} c1 - input workspace array containing intermediate sub-sequences to be transformed +* @param {Collection} c1 - input workspace array containing intermediate sub-sequences to be transformed * @param {integer} sc1 - stride length for `c1` * @param {NonNegativeInteger} oc1 - index offset for `c1` -* @param {Float64Array} c2 - flattened input workspace array containing intermediate sub-sequences +* @param {Collection} c2 - flattened input workspace array containing intermediate sub-sequences * @param {integer} sc2 - stride length for `c2` * @param {NonNegativeInteger} oc2 - index offset for `c2` -* @param {Float64Array} ch - output array containing transformed sequences +* @param {Collection} ch - output array containing transformed sequences * @param {integer} sch - stride length for `ch` * @param {NonNegativeInteger} och - index offset for `ch` -* @param {Float64Array} ch2 - flattened output workspace array containing intermediate sub-sequences +* @param {Collection} ch2 - flattened output workspace array containing intermediate sub-sequences * @param {integer} sch2 - stride length for `ch2` * @param {NonNegativeInteger} och2 - index offset for `ch2` -* @param {Float64Array} twiddles - array of twiddle factors +* @param {Collection} twiddles - array of twiddle factors * @param {integer} stw - stride length for `twiddles` * @param {NonNegativeInteger} otw - index offset for `twiddles` * @returns {void} diff --git a/lib/node_modules/@stdlib/fft/base/fftpack/rfftf/lib/rfftf1.js b/lib/node_modules/@stdlib/fft/base/fftpack/rfftf/lib/rfftf1.js index 745341fa5551..01854653d35d 100644 --- a/lib/node_modules/@stdlib/fft/base/fftpack/rfftf/lib/rfftf1.js +++ b/lib/node_modules/@stdlib/fft/base/fftpack/rfftf/lib/rfftf1.js @@ -78,16 +78,16 @@ var radfg = require( './radfg.js' ); * * @private * @param {NonNegativeInteger} N - length of the sequence to transform -* @param {Float64Array} c - input array containing the sequence to be transformed +* @param {Collection} c - input array containing the sequence to be transformed * @param {integer} sc - stride length for `c` * @param {NonNegativeInteger} oc - starting index for `c` -* @param {Float64Array} ch - working array for intermediate results +* @param {Collection} ch - working array for intermediate results * @param {integer} sch - stride length for `ch` * @param {NonNegativeInteger} och - starting index for `ch` -* @param {Float64Array} wa - workspace array for storing twiddle factors +* @param {Collection} wa - workspace array for storing twiddle factors * @param {integer} swa - stride length for `wa` * @param {NonNegativeInteger} owa - starting index for `wa` -* @param {Int32Array} ifac - workspace array for storing factorization results +* @param {Collection} ifac - workspace array for storing factorization results * @param {integer} si - stride length for `ifac` * @param {NonNegativeInteger} oi - starting index for `ifac` * @returns {void} From 3ad34a01322ed8bf675e44dcb79678dc47dc2648 Mon Sep 17 00:00:00 2001 From: Gunj Joshi Date: Sun, 31 May 2026 16:18:29 +0530 Subject: [PATCH 17/19] docs: add docs, update README and examples --- type: pre_commit_static_analysis_report description: Results of running static analysis checks when committing changes. report: - task: lint_filenames status: passed - task: lint_editorconfig status: passed - task: lint_markdown_pkg_readmes status: passed - task: lint_markdown_docs status: na - task: lint_markdown status: na - task: lint_package_json status: na - task: lint_repl_help status: passed - task: lint_javascript_src status: na - task: lint_javascript_cli status: na - task: lint_javascript_examples status: passed - task: lint_javascript_tests status: na - task: lint_javascript_benchmarks status: na - task: lint_python status: na - task: lint_r status: na - task: lint_c_src status: na - task: lint_c_examples status: na - task: lint_c_benchmarks status: na - task: lint_c_tests_fixtures status: na - task: lint_shell status: na - task: lint_typescript_declarations status: passed - task: lint_typescript_tests status: passed - task: lint_license_headers status: passed --- --- .../@stdlib/fft/base/fftpack/rfftf/README.md | 26 +-- .../fft/base/fftpack/rfftf/docs/repl.txt | 54 +++++++ .../base/fftpack/rfftf/docs/types/index.d.ts | 56 +++++++ .../fft/base/fftpack/rfftf/docs/types/test.ts | 148 ++++++++++++++++++ .../fft/base/fftpack/rfftf/examples/index.js | 17 +- 5 files changed, 283 insertions(+), 18 deletions(-) create mode 100644 lib/node_modules/@stdlib/fft/base/fftpack/rfftf/docs/repl.txt create mode 100644 lib/node_modules/@stdlib/fft/base/fftpack/rfftf/docs/types/index.d.ts create mode 100644 lib/node_modules/@stdlib/fft/base/fftpack/rfftf/docs/types/test.ts diff --git a/lib/node_modules/@stdlib/fft/base/fftpack/rfftf/README.md b/lib/node_modules/@stdlib/fft/base/fftpack/rfftf/README.md index 9e0fa4cce33b..60f25003f647 100644 --- a/lib/node_modules/@stdlib/fft/base/fftpack/rfftf/README.md +++ b/lib/node_modules/@stdlib/fft/base/fftpack/rfftf/README.md @@ -57,14 +57,13 @@ var r = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); rfftf( N, r, 1, 0, workspace, 1, 0 ); -var out = r.slice( 0, N ); -// returns [ 10.0, -2.0, 2.0, -2.0 ] +// r => [ 10.0, -2.0, 2.0, -2.0 ] ``` The function accepts the following arguments: - **N**: length of the sequence to transform. -- **r**: input array containing the sequence to transform. +- **r**: input array. - **strideR**: stride length for `r`. - **offsetR**: starting index for `r`. - **workspace**: workspace array containing pre-computed values. @@ -83,6 +82,8 @@ The function accepts the following arguments: - Before calling this function, initialize the workspace by calling [`rffti`][@stdlib/fft/base/fftpack/rffti] with the same sequence length and workspace layout. +- The function performs the transform in-place and returns the same input array reference. + - For `N = 4`, the output ```text @@ -91,7 +92,7 @@ The function accepts the following arguments: corresponds to a zero-frequency term `10.0`, a complex coefficient `-2.0 + 2.0i` at frequency `1`, and a Nyquist term `-2.0`. -- If `N` equals `1`, the function returns early without modifying the input, as a single data point is its own Fourier transform. +- If `N` equals `1`, the function returns early without modifying the input, as a single data point is its own Fourier transform. In that case, the function still returns the same input array reference. @@ -104,21 +105,24 @@ The function accepts the following arguments: ```javascript -var Float64Array = require( '@stdlib/array/float64' ); +var zeros = require( '@stdlib/array/zeros' ); +var discreteUniform = require( '@stdlib/random/array/discrete-uniform' ); var rffti = require( '@stdlib/fft/base/fftpack/rffti' ); var rfftf = require( '@stdlib/fft/base/fftpack/rfftf' ); var N = 4; -var r = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); -var workspace = new Float64Array( ( 2*N ) + 34 ); +var opts = { + 'dtype': 'float64' +}; +var r = discreteUniform( N, -10, 10, opts ); +var workspace = zeros( ( 2*N ) + 34 ); -rffti( N, workspace, 1, 0 ); - -console.log( 'Input sequence: %s', r ); +console.log( r ); +rffti( N, workspace, 1, 0 ); rfftf( N, r, 1, 0, workspace, 1, 0 ); -console.log( 'Packed output: %s', r.slice( 0, N ) ); +console.log( r ); ``` diff --git a/lib/node_modules/@stdlib/fft/base/fftpack/rfftf/docs/repl.txt b/lib/node_modules/@stdlib/fft/base/fftpack/rfftf/docs/repl.txt new file mode 100644 index 000000000000..c117bdc2cd0f --- /dev/null +++ b/lib/node_modules/@stdlib/fft/base/fftpack/rfftf/docs/repl.txt @@ -0,0 +1,54 @@ + +{{alias}}( N, r, strideR, offsetR, workspace, strideW, offsetW ) + Computes the forward real-valued fast Fourier transform (FFT). + + Before calling this function, initialize the workspace by calling + `@stdlib/fft/base/fftpack/rffti` with the same sequence length and workspace + layout. + + Parameters + ---------- + N: integer + Length of the sequence to transform. + + r: ArrayLikeObject + Input array. + + strideR: integer + Stride length for `r`. + + offsetR: integer + Starting index for `r`. + + workspace: ArrayLikeObject + Workspace array containing pre-computed values. + + strideW: integer + Stride length for `workspace`. + + offsetW: integer + Starting index for `workspace`. + + Returns + ------- + r: ArrayLikeObject + Input array. + + Examples + -------- + > var rffti = require( '@stdlib/fft/base/fftpack/rffti' ); + > var N = 4; + > var r = new {{alias:@stdlib/array/float64}}( [ 1.0, 2.0, 3.0, 4.0 ] ); + > var workspace = new {{alias:@stdlib/array/float64}}( ( 2*N ) + 34 ); + > rffti( N, workspace, 1, 0 ) + + > var out = {{alias}}( N, r, 1, 0, workspace, 1, 0 ) + + > var bool = ( out === r ) + true + > r + [ 10.0, -2.0, 2.0, -2.0 ] + + See Also + -------- + diff --git a/lib/node_modules/@stdlib/fft/base/fftpack/rfftf/docs/types/index.d.ts b/lib/node_modules/@stdlib/fft/base/fftpack/rfftf/docs/types/index.d.ts new file mode 100644 index 000000000000..a95ed2ed1a44 --- /dev/null +++ b/lib/node_modules/@stdlib/fft/base/fftpack/rfftf/docs/types/index.d.ts @@ -0,0 +1,56 @@ +/* +* @license Apache-2.0 +* +* Copyright (c) 2026 The Stdlib Authors. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +// TypeScript Version: 4.1 + +/// + +import { Collection } from '@stdlib/types/array'; + +/** +* Computes the forward real-valued fast Fourier transform (FFT). +* +* @param N - length of the sequence to transform +* @param r - input array +* @param strideR - stride length for `r` +* @param offsetR - starting index for `r` +* @param workspace - workspace array containing pre-computed values +* @param strideW - stride length for `workspace` +* @param offsetW - starting index for `workspace` +* @returns input array +* +* @example +* var Float64Array = require( '@stdlib/array/float64' ); +* var rffti = require( '@stdlib/fft/base/fftpack/rffti' ); +* +* var N = 4; +* +* var workspace = new Float64Array( ( 2*N ) + 34 ); +* rffti( N, workspace, 1, 0 ); +* +* var r = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); +* +* rfftf( N, r, 1, 0, workspace, 1, 0 ); +* // r => [ 10.0, -2.0, 2.0, -2.0 ] +*/ +declare function rfftf>( N: number, r: T, strideR: number, offsetR: number, workspace: Collection, strideW: number, offsetW: number ): T; + + +// EXPORTS // + +export = rfftf; diff --git a/lib/node_modules/@stdlib/fft/base/fftpack/rfftf/docs/types/test.ts b/lib/node_modules/@stdlib/fft/base/fftpack/rfftf/docs/types/test.ts new file mode 100644 index 000000000000..135116bb4667 --- /dev/null +++ b/lib/node_modules/@stdlib/fft/base/fftpack/rfftf/docs/types/test.ts @@ -0,0 +1,148 @@ +/* +* @license Apache-2.0 +* +* Copyright (c) 2026 The Stdlib Authors. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +import rfftf = require( './index' ); + + +// TESTS // + +// The function returns a collection... +{ + const r = new Float64Array( 4 ); + const workspace = new Float64Array( ( 2*4 ) + 34 ); + + rfftf( 4, r, 1, 0, workspace, 1, 0 ); // $ExpectType Float64Array +} + +// The compiler throws an error if the function is provided a first argument which is not a number... +{ + const r = new Float64Array( 4 ); + const workspace = new Float64Array( ( 2*4 ) + 34 ); + + rfftf( '4', r, 1, 0, workspace, 1, 0 ); // $ExpectError + rfftf( true, r, 1, 0, workspace, 1, 0 ); // $ExpectError + rfftf( false, r, 1, 0, workspace, 1, 0 ); // $ExpectError + rfftf( null, r, 1, 0, workspace, 1, 0 ); // $ExpectError + rfftf( void 0, r, 1, 0, workspace, 1, 0 ); // $ExpectError + rfftf( [], r, 1, 0, workspace, 1, 0 ); // $ExpectError + rfftf( {}, r, 1, 0, workspace, 1, 0 ); // $ExpectError + rfftf( ( x: number ): number => x, r, 1, 0, workspace, 1, 0 ); // $ExpectError +} + +// The compiler throws an error if the function is provided a second argument which is not a collection... +{ + const workspace = new Float64Array( ( 2*4 ) + 34 ); + + rfftf( 4, '4', 1, 0, workspace, 1, 0 ); // $ExpectError + rfftf( 4, 4, 1, 0, workspace, 1, 0 ); // $ExpectError + rfftf( 4, true, 1, 0, workspace, 1, 0 ); // $ExpectError + rfftf( 4, false, 1, 0, workspace, 1, 0 ); // $ExpectError + rfftf( 4, null, 1, 0, workspace, 1, 0 ); // $ExpectError + rfftf( 4, void 0, 1, 0, workspace, 1, 0 ); // $ExpectError + rfftf( 4, {}, 1, 0, workspace, 1, 0 ); // $ExpectError + rfftf( 4, ( x: number ): number => x, 1, 0, workspace, 1, 0 ); // $ExpectError +} + +// The compiler throws an error if the function is provided a third argument which is not a number... +{ + const r = new Float64Array( 4 ); + const workspace = new Float64Array( ( 2*4 ) + 34 ); + + rfftf( 4, r, '1', 0, workspace, 1, 0 ); // $ExpectError + rfftf( 4, r, true, 0, workspace, 1, 0 ); // $ExpectError + rfftf( 4, r, false, 0, workspace, 1, 0 ); // $ExpectError + rfftf( 4, r, null, 0, workspace, 1, 0 ); // $ExpectError + rfftf( 4, r, void 0, 0, workspace, 1, 0 ); // $ExpectError + rfftf( 4, r, [], 0, workspace, 1, 0 ); // $ExpectError + rfftf( 4, r, {}, 0, workspace, 1, 0 ); // $ExpectError + rfftf( 4, r, ( x: number ): number => x, 0, workspace, 1, 0 ); // $ExpectError +} + +// The compiler throws an error if the function is provided a fourth argument which is not a number... +{ + const r = new Float64Array( 4 ); + const workspace = new Float64Array( ( 2*4 ) + 34 ); + + rfftf( 4, r, 1, '0', workspace, 1, 0 ); // $ExpectError + rfftf( 4, r, 1, true, workspace, 1, 0 ); // $ExpectError + rfftf( 4, r, 1, false, workspace, 1, 0 ); // $ExpectError + rfftf( 4, r, 1, null, workspace, 1, 0 ); // $ExpectError + rfftf( 4, r, 1, void 0, workspace, 1, 0 ); // $ExpectError + rfftf( 4, r, 1, [], workspace, 1, 0 ); // $ExpectError + rfftf( 4, r, 1, {}, workspace, 1, 0 ); // $ExpectError + rfftf( 4, r, 1, ( x: number ): number => x, workspace, 1, 0 ); // $ExpectError +} + +// The compiler throws an error if the function is provided a fifth argument which is not a collection... +{ + const r = new Float64Array( 4 ); + + rfftf( 4, r, 1, 0, '42', 1, 0 ); // $ExpectError + rfftf( 4, r, 1, 0, 42, 1, 0 ); // $ExpectError + rfftf( 4, r, 1, 0, true, 1, 0 ); // $ExpectError + rfftf( 4, r, 1, 0, false, 1, 0 ); // $ExpectError + rfftf( 4, r, 1, 0, null, 1, 0 ); // $ExpectError + rfftf( 4, r, 1, 0, void 0, 1, 0 ); // $ExpectError + rfftf( 4, r, 1, 0, {}, 1, 0 ); // $ExpectError + rfftf( 4, r, 1, 0, ( x: number ): number => x, 1, 0 ); // $ExpectError +} + +// The compiler throws an error if the function is provided a sixth argument which is not a number... +{ + const r = new Float64Array( 4 ); + const workspace = new Float64Array( ( 2*4 ) + 34 ); + + rfftf( 4, r, 1, 0, workspace, '1', 0 ); // $ExpectError + rfftf( 4, r, 1, 0, workspace, true, 0 ); // $ExpectError + rfftf( 4, r, 1, 0, workspace, false, 0 ); // $ExpectError + rfftf( 4, r, 1, 0, workspace, null, 0 ); // $ExpectError + rfftf( 4, r, 1, 0, workspace, void 0, 0 ); // $ExpectError + rfftf( 4, r, 1, 0, workspace, [], 0 ); // $ExpectError + rfftf( 4, r, 1, 0, workspace, {}, 0 ); // $ExpectError + rfftf( 4, r, 1, 0, workspace, ( x: number ): number => x, 0 ); // $ExpectError +} + +// The compiler throws an error if the function is provided a seventh argument which is not a number... +{ + const r = new Float64Array( 4 ); + const workspace = new Float64Array( ( 2*4 ) + 34 ); + + rfftf( 4, r, 1, 0, workspace, 1, '0' ); // $ExpectError + rfftf( 4, r, 1, 0, workspace, 1, true ); // $ExpectError + rfftf( 4, r, 1, 0, workspace, 1, false ); // $ExpectError + rfftf( 4, r, 1, 0, workspace, 1, null ); // $ExpectError + rfftf( 4, r, 1, 0, workspace, 1, void 0 ); // $ExpectError + rfftf( 4, r, 1, 0, workspace, 1, [] ); // $ExpectError + rfftf( 4, r, 1, 0, workspace, 1, {} ); // $ExpectError + rfftf( 4, r, 1, 0, workspace, 1, ( x: number ): number => x ); // $ExpectError +} + +// The compiler throws an error if the function is provided an unsupported number of arguments... +{ + const r = new Float64Array( 4 ); + const workspace = new Float64Array( ( 2*4 ) + 34 ); + + rfftf(); // $ExpectError + rfftf( 4 ); // $ExpectError + rfftf( 4, r ); // $ExpectError + rfftf( 4, r, 1 ); // $ExpectError + rfftf( 4, r, 1, 0 ); // $ExpectError + rfftf( 4, r, 1, 0, workspace ); // $ExpectError + rfftf( 4, r, 1, 0, workspace, 1 ); // $ExpectError + rfftf( 4, r, 1, 0, workspace, 1, 0, 123 ); // $ExpectError +} diff --git a/lib/node_modules/@stdlib/fft/base/fftpack/rfftf/examples/index.js b/lib/node_modules/@stdlib/fft/base/fftpack/rfftf/examples/index.js index a9561fc6155b..b2b4f1218523 100644 --- a/lib/node_modules/@stdlib/fft/base/fftpack/rfftf/examples/index.js +++ b/lib/node_modules/@stdlib/fft/base/fftpack/rfftf/examples/index.js @@ -18,18 +18,21 @@ 'use strict'; -var Float64Array = require( '@stdlib/array/float64' ); +var zeros = require( '@stdlib/array/zeros' ); +var discreteUniform = require( '@stdlib/random/array/discrete-uniform' ); var rffti = require( '@stdlib/fft/base/fftpack/rffti' ); var rfftf = require( './../lib' ); var N = 4; -var r = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); -var workspace = new Float64Array( ( 2*N ) + 34 ); +var opts = { + 'dtype': 'float64' +}; +var r = discreteUniform( N, -10, 10, opts ); +var workspace = zeros( ( 2*N ) + 34 ); -rffti( N, workspace, 1, 0 ); - -console.log( 'Input sequence: %s', r ); +console.log( r ); +rffti( N, workspace, 1, 0 ); rfftf( N, r, 1, 0, workspace, 1, 0 ); -console.log( 'Packed output: %s', r.slice( 0, N ) ); +console.log( r ); From d4af2f606739e8e14acdbcbca6fadce7d73d4002 Mon Sep 17 00:00:00 2001 From: Gunj Joshi Date: Sun, 31 May 2026 16:20:26 +0530 Subject: [PATCH 18/19] bench: add benchmark, update package.json --- type: pre_commit_static_analysis_report description: Results of running static analysis checks when committing changes. report: - task: lint_filenames status: passed - task: lint_editorconfig status: passed - task: lint_markdown_pkg_readmes status: na - task: lint_markdown_docs status: na - task: lint_markdown status: na - task: lint_package_json status: passed - task: lint_repl_help status: na - task: lint_javascript_src status: na - task: lint_javascript_cli status: na - task: lint_javascript_examples status: na - task: lint_javascript_tests status: na - task: lint_javascript_benchmarks status: passed - task: lint_python status: na - task: lint_r status: na - task: lint_c_src status: na - task: lint_c_examples status: na - task: lint_c_benchmarks status: na - task: lint_c_tests_fixtures status: na - task: lint_shell status: na - task: lint_typescript_declarations status: passed - task: lint_typescript_tests status: na - task: lint_license_headers status: passed --- --- .../base/fftpack/rfftf/benchmark/benchmark.js | 138 ++++++++++++++++++ .../fft/base/fftpack/rfftf/package.json | 3 + 2 files changed, 141 insertions(+) create mode 100644 lib/node_modules/@stdlib/fft/base/fftpack/rfftf/benchmark/benchmark.js diff --git a/lib/node_modules/@stdlib/fft/base/fftpack/rfftf/benchmark/benchmark.js b/lib/node_modules/@stdlib/fft/base/fftpack/rfftf/benchmark/benchmark.js new file mode 100644 index 000000000000..ec2747300307 --- /dev/null +++ b/lib/node_modules/@stdlib/fft/base/fftpack/rfftf/benchmark/benchmark.js @@ -0,0 +1,138 @@ +/** +* @license Apache-2.0 +* +* Copyright (c) 2026 The Stdlib Authors. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +'use strict'; + +// MODULES // + +var bench = require( '@stdlib/bench' ); +var slice = require( '@stdlib/array/slice' ); +var uniform = require( '@stdlib/random/array/uniform' ); +var floor = require( '@stdlib/math/base/special/floor' ); +var pow = require( '@stdlib/math/base/special/pow' ); +var format = require( '@stdlib/string/format' ); +var isnan = require( '@stdlib/math/base/assert/is-nan' ); +var Float64Array = require( '@stdlib/array/float64' ); +var dcopy = require( '@stdlib/blas/base/dcopy' ); +var rffti = require( '@stdlib/fft/base/fftpack/rffti' ); +var pkg = require( './../package.json' ).name; +var rfftf = require( './../lib' ); + + +// VARIABLES // + +var options = { + 'dtype': 'float64' +}; + + +// FUNCTIONS // + +/** +* Creates a benchmark function. +* +* @private +* @param {PositiveInteger} iter - number of iterations +* @param {PositiveInteger} N - sequence length +* @returns {Function} benchmark function +*/ +function createBenchmark( iter, N ) { + var workspace = new Float64Array( ( 2*N ) + 34 ); + var x; + var i; + + x = []; + for ( i = 0; i < iter; i++ ) { + x.push( uniform( N, -100.0, 100.0, options ) ); + } + + rffti( N, workspace, 1, 0 ); + return benchmark; + + /** + * Benchmark function. + * + * @private + * @param {Benchmark} b - benchmark instance + */ + function benchmark( b ) { + var xc; + var y; + var i; + + xc = slice( x ); + for ( i = 0; i < iter; i++ ) { + xc[ i ] = dcopy( N, x[ i ], 1, new Float64Array( N ), 1 ); + } + b.tic(); + for ( i = 0; i < b.iterations; i++ ) { + y = rfftf( N, xc[ i ], 1, 0, workspace, 1, 0 ); + if ( isnan( y[ i%N ] ) ) { + b.fail( 'should not return NaN' ); + } + } + b.toc(); + if ( isnan( y[ i%N ] ) ) { + b.fail( 'should not return NaN' ); + } + b.pass( 'benchmark finished' ); + b.end(); + } +} + + +// MAIN // + +/** +* Main execution sequence. +* +* @private +*/ +function main() { + var lengths; + var opts; + var iter; + var N; + var f; + var i; + + lengths = [ + 8, + 16, + 32, + 64, + 128, + 256, + 512, + 1024 + ]; + + iter = 1e6; + + for ( i = 0; i < lengths.length; i++ ) { + N = lengths[ i ]; + f = createBenchmark( iter, N ); + opts = { + 'iterations': iter + }; + bench( format( '%s:N=%d', pkg, N ), opts, f ); + iter = floor( pow( iter, 3.0/4.0 ) ); + } +} + +main(); diff --git a/lib/node_modules/@stdlib/fft/base/fftpack/rfftf/package.json b/lib/node_modules/@stdlib/fft/base/fftpack/rfftf/package.json index f0617e07afbb..1ef3db1b49a7 100644 --- a/lib/node_modules/@stdlib/fft/base/fftpack/rfftf/package.json +++ b/lib/node_modules/@stdlib/fft/base/fftpack/rfftf/package.json @@ -15,10 +15,13 @@ ], "main": "./lib", "directories": { + "benchmark": "./benchmark", + "doc": "./docs", "example": "./examples", "lib": "./lib", "test": "./test" }, + "types": "./docs/types", "scripts": {}, "homepage": "https://github.com/stdlib-js/stdlib", "repository": { From 88aacde32eb914c26ff4e8907750871a1504509d Mon Sep 17 00:00:00 2001 From: Gunj Joshi Date: Sun, 31 May 2026 16:43:03 +0530 Subject: [PATCH 19/19] test: reduce tolerance, add a test --- type: pre_commit_static_analysis_report description: Results of running static analysis checks when committing changes. report: - task: lint_filenames status: passed - task: lint_editorconfig status: passed - task: lint_markdown_pkg_readmes status: na - task: lint_markdown_docs status: na - task: lint_markdown status: na - task: lint_package_json status: na - task: lint_repl_help status: na - task: lint_javascript_src status: na - task: lint_javascript_cli status: na - task: lint_javascript_examples status: na - task: lint_javascript_tests status: passed - task: lint_javascript_benchmarks status: na - task: lint_python status: na - task: lint_r status: na - task: lint_c_src status: na - task: lint_c_examples status: na - task: lint_c_benchmarks status: na - task: lint_c_tests_fixtures status: na - task: lint_shell status: na - task: lint_typescript_declarations status: passed - task: lint_typescript_tests status: na - task: lint_license_headers status: passed --- --- .../fft/base/fftpack/rfftf/test/test.js | 27 ++++++++++++++++--- 1 file changed, 23 insertions(+), 4 deletions(-) diff --git a/lib/node_modules/@stdlib/fft/base/fftpack/rfftf/test/test.js b/lib/node_modules/@stdlib/fft/base/fftpack/rfftf/test/test.js index fce285b902ea..344e70a53fef 100644 --- a/lib/node_modules/@stdlib/fft/base/fftpack/rfftf/test/test.js +++ b/lib/node_modules/@stdlib/fft/base/fftpack/rfftf/test/test.js @@ -47,6 +47,23 @@ tape( 'the function has an arity of 7', function test( t ) { t.end(); }); +tape( 'the function returns a reference to the input array', function test( t ) { + var workspace; + var out; + var N; + var r; + + N = 4; + r = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); + workspace = new Float64Array( ( 2 * N ) + 34 ); + + rffti( N, workspace, 1, 0 ); + out = rfftf( N, r, 1, 0, workspace, 1, 0 ); + + t.strictEqual( out, r, 'same reference' ); + t.end(); +}); + tape( 'the function returns all zeros for a zero sequence', function test( t ) { var workspace; var expected; @@ -123,7 +140,7 @@ tape( 'the function computes a forward real-valued FFT (small sequence lengths)' input = small.input; expected = small.expected; - ulps = 32; + ulps = 20; for ( k = 0; k < lengths.length; k++ ) { N = lengths[ k ]; off = offsets[ k ]; @@ -165,7 +182,7 @@ tape( 'the function computes a forward real-valued FFT (medium sequence lengths) input = medium.input; expected = medium.expected; - ulps = 150; + ulps = 130; for ( k = 0; k < lengths.length; k++ ) { N = lengths[ k ]; off = offsets[ k ]; @@ -207,7 +224,7 @@ tape( 'the function computes a forward real-valued FFT (large sequence lengths)' input = large.input; expected = large.expected; - ulps = 1800; + ulps = 800; for ( k = 0; k < lengths.length; k++ ) { N = lengths[ k ]; off = offsets[ k ]; @@ -231,6 +248,7 @@ tape( 'the function computes a forward real-valued FFT (large sequence lengths)' tape( 'the function leaves a length-one sequence unchanged', function test( t ) { var workspace; + var out; var N; var r; @@ -239,7 +257,8 @@ tape( 'the function leaves a length-one sequence unchanged', function test( t ) workspace = new Float64Array( ( 2 * N ) + 34 ); rffti( N, workspace, 1, 0 ); - rfftf( N, r, 1, 0, workspace, 1, 0 ); + out = rfftf( N, r, 1, 0, workspace, 1, 0 ); + t.strictEqual( out, r, 'same reference' ); t.strictEqual( r[ 0 ], 5.0, 'returns expected value' ); t.end(); });