From de5a61fbd7e9b49d0c994a00f0ead356cb02c475 Mon Sep 17 00:00:00 2001 From: Mathieu Sylvain Date: Wed, 26 Mar 2025 08:56:03 +0100 Subject: [PATCH 01/16] implement delayLTI and PartionedStateSpace classes and first algorithm to solve delay ODE in timeresp. Add litlle tests about timereps --- control/delaylti.py | 193 +++++++++++++++ control/partitionedssp.py | 199 +++++++++++++++ control/tests/delay_test.py | 66 +++++ control/timeresp.py | 481 ++++++++++++++++++++++++------------ 4 files changed, 776 insertions(+), 163 deletions(-) create mode 100644 control/delaylti.py create mode 100644 control/partitionedssp.py diff --git a/control/delaylti.py b/control/delaylti.py new file mode 100644 index 000000000..cf4e91a2a --- /dev/null +++ b/control/delaylti.py @@ -0,0 +1,193 @@ +import numpy as np +from .lti import LTI +from .partitionedssp import PartitionedStateSpace +from .statesp import ss, StateSpace, tf2ss +from .xferfcn import TransferFunction +from .iosys import _process_iosys_keywords + + + +class DelayLTISystem(LTI): + + def __init__(self, P: PartitionedStateSpace, tau: np.ndarray = [], **kwargs): + self.P = P + self.tau = tau + + self.A = P.A + self.B = P.B + self.C = P.C + self.D = P.D + + self.B1 = P.B1 + self.B2 = P.B2 + self.C1 = P.C1 + self.C2 = P.C2 + self.D11 = P.D11 + self.D12 = P.D12 + self.D21 = P.D21 + self.D22 = P.D22 + + static = (self.A.size == 0) + + self.ninputs = self.P.sys.ninputs - len(self.tau) + self.noutputs = self.P.sys.noutputs - len(self.tau) + self.nstates = self.P.sys.nstates + + defaults = {'inputs': self.B1.shape[1], 'outputs': self.C1.shape[0], + 'states': self.A.shape[0]} + name, inputs, outputs, states, dt = _process_iosys_keywords( + kwargs, defaults, static=static) + + super().__init__(inputs, outputs, states, name) + + @classmethod + def from_ss(cls, sys: StateSpace, tau: np.ndarray = []): + nu = sys.D.shape[1] - len(tau) + ny = sys.D.shape[0] - len(tau) + + if nu < 0 or ny < 0: + raise ValueError("tau is too long") + + psys = PartitionedStateSpace(sys, nu, ny) + return cls(psys, tau) + + def size(self): + return (self.noutputs, self.ninputs) + + def __mul__(self, other): + if isinstance(other, (int, float, complex)): + new_C = np.block([[self.P.C1 * other], [self.P.C2]]) + new_D = np.block([[self.P.D11 * other, self.P.D12 * other], [self.P.D21, self.P.D22]]) + new_P = PartitionedStateSpace(ss(self.P.A, self.P.B, new_C, new_D), self.P.nu1, self.P.ny1) + return DelayLTISystem(new_P, self.tau) + + elif isinstance(other, DelayLTISystem): + psys_new = self.P * other.P + tau_new = np.concatenate([self.tau, other.tau]) + return DelayLTISystem(psys_new, tau_new) + + elif isinstance(other, TransferFunction): + dlti = tf2dlti(other) + return self * dlti + else: + raise TypeError("Unsupported operand type(s) for *: '{}' and '{}'".format(type(self), type(other))) + + def __rmul__(self, other): # Handle System * Number + if isinstance(other, (int, float, complex)): + new_B = np.block([self.P.B1 * other, self.P.B2]) + new_D = np.block([[self.P.D11 * other, self.P.D12], [self.P.D21 * other, self.P.D22]]) + new_P = PartitionedStateSpace(ss(self.P.A, new_B, self.P.C, new_D), self.P.nu1, self.P.ny1) + return DelayLTISystem(new_P, self.tau) + + elif isinstance(other, TransferFunction): + dlti = tf2dlti(other) + return dlti * self + else: + raise TypeError("Unsupported operand type(s) for *: '{}' and '{}'".format(type(other), type(self))) + + def __add__(self, other): + if isinstance(other, (int, float, complex)): + # Add to direct term from input to output + new_D = self.P.sys.D.copy() + new_D[:self.noutputs(), :self.ninputs()] += other + pnew = PartitionedStateSpace(ss(self.P.sys.A, self.P.sys.B, self.P.sys.C, new_D), self.P.nu1, self.P.ny1) + return DelayLTISystem(pnew, self.tau) + + elif isinstance(other, DelayLTISystem): + psys_new = self.P + other.P + tau_new = np.concatenate([self.tau, other.tau]) + return DelayLTISystem(psys_new.P, tau_new) + else: + raise TypeError("unsupported operand type(s) for +: '{}' and '{}'".format(type(self), type(other))) + + def __sub__(self, other): + return self + (-other) + + def __neg__(self): + return self * -1 + + def __rsub__(self, other): + return -self + other + + def __eq__(self, other): + if not isinstance(other, DelayLTISystem): + return False + return (np.array_equal(self.P.A, other.P.A) and + np.array_equal(self.P.B, other.P.B) and + np.array_equal(self.P.C, other.P.C) and + np.array_equal(self.P.D, other.P.D) and + np.array_equal(self.tau, other.tau)) + + def feedback(self, other): + psys_new = self.P.feedback(other.P) + tau_new = np.concatenate([self.tau, other.tau]) + return DelayLTISystem(psys_new.P, tau_new) + + def __str__(self): + s = "DelayLTISystem\n" + s += "P:\n" + str(self.P) + "\n" + s += "A =\n" + str(self.P.A) + "\n" + s += "B =\n" + str(self.P.B) + "\n" + s += "C =\n" + str(self.P.C) + "\n" + s += "D =\n" + str(self.P.D) + "\n" + "\n" + s += "delays: " + str(self.tau) + return s + + +def delay(tau): + """ + Pure delay + """ + + if isinstance(tau, (int, float)): + tau_arr = [float(tau)] + num_delays = 1 + elif isinstance(tau, (list, np.ndarray)): + tau_arr = [float(t) for t in tau] + num_delays = len(tau_arr) + else: + raise TypeError("tau must be a number, list, or NumPy array") + + D = np.array([ + [0, 1], + [1, 0] + ]) + + ny, nu = D.shape[0], D.shape[1] + + A = np.zeros((0,0)) + B = np.zeros((0, nu)) + C = np.zeros((ny, 0)) + + P = PartitionedStateSpace(ss(A, B, C, D), 1, 1) + return DelayLTISystem(P, tau_arr) + + +def exp(G): + """ + create delay in the form of exp(-τ*s) where s=tf("s") + """ + num = G.num[0][0] + den = G.den[0][0] + + if not (len(den) == 1 and len(num) == 2 and num[0] < 0 and num[1] == 0): + raise ValueError("Input must be of the form -τ*s, τ>0.") + + return delay(-num[0] / den[0]) + + +def tf2dlti(tf: TransferFunction): + """ + Convert a TransferFunction to a DelayLTISystem + """ + if not isinstance(tf, TransferFunction): + raise TypeError("Input must be a TransferFunction") + + ss_tf = tf2ss(tf) + + if hasattr(tf, 'delays'): + tau = tf.delays + delay_tau= delay(tau) + return DelayLTISystem.from_ss(ss_tf) * delay_tau + else: + return DelayLTISystem.from_ss(ss_tf) \ No newline at end of file diff --git a/control/partitionedssp.py b/control/partitionedssp.py new file mode 100644 index 000000000..e872edbd6 --- /dev/null +++ b/control/partitionedssp.py @@ -0,0 +1,199 @@ +import numpy as np +from scipy.linalg import block_diag, inv + +from .statesp import ss, StateSpace + +class PartitionedStateSpace: + def __init__(self, sys: StateSpace, nu1: int, ny1: int): + self.sys = sys + self.nu1 = nu1 + self.ny1 = ny1 + + self.A = self.sys.A + self.B = self.sys.B + self.C = self.sys.C + self.D = self.sys.D + + @property + def B1(self): + return self.B[:, :self.nu1] + + @property + def B2(self): + return self.B[:, self.nu1:] + + @property + def C1(self): + return self.C[:self.ny1, :] + + @property + def C2(self): + return self.C[self.ny1:, :] + + @property + def D11(self): + return self.D[:self.ny1, :self.nu1] + + @property + def D12(self): + return self.D[:self.ny1, self.nu1:] + + @property + def D21(self): + return self.D[self.ny1:, :self.nu1] + + @property + def D22(self): + return self.D[self.ny1:, self.nu1:] + + + @classmethod + def from_matrices(cls, A, B1, B2, C1, C2, D11, D12, D21, D22): + nx = A.shape[0] + nw = B1.shape[1] + nu = B2.shape[1] + nz = C1.shape[0] + ny = C2.shape[0] + + # Shape validations + if A.shape[1] != nx and nx != 0: + raise ValueError("A must be square") + if B1.shape[0] != nx: + raise ValueError("B1 must have the same row size as A") + if B2.shape[0] != nx: + raise ValueError("B2 must have the same row size as A") + if C1.shape[1] != nx: + raise ValueError("C1 must have the same column size as A") + if C2.shape[1] != nx: + raise ValueError("C2 must have the same column size as A") + if D11.shape[1] != nw: + raise ValueError("D11 must have the same column size as B1") + if D21.shape[1] != nw: + raise ValueError("D21 must have the same column size as B1") + if D12.shape[1] != nu: + raise ValueError("D12 must have the same column size as B2") + if D22.shape[1] != nu: + raise ValueError("D22 must have the same column size as B2") + if D11.shape[0] != nz: + raise ValueError("D11 must have the same row size as C1") + if D12.shape[0] != nz: + raise ValueError("D12 must have the same row size as C1") + if D21.shape[0] != ny: + raise ValueError("D21 must have the same row size as C2") + if D22.shape[0] != ny: + raise ValueError("D22 must have the same row size as C2") + + B = np.hstack((B1, B2)) + C = np.vstack((C1, C2)) + D = np.block([[D11, D12], [D21, D22]]) + + sys = ss(A, B, C, D) + + return cls(sys, nw, nz) + + + def __add__(self, other): + if not isinstance(other, PartitionedStateSpace): + raise TypeError("Can only add PartitionedStateSpace objects") + + A = block_diag(self.A, other.A) + B1 = np.vstack((self.B1, other.B1)) + B2 = block_diag(self.B2, other.B2) + B = np.hstack((B1, B2)) + + C1 = np.hstack((self.C1, other.C1)) + C2 = block_diag(self.C2, other.C2) + C = np.vstack((C1, C2)) + + D11 = self.D11 + other.D11 + D12 = np.hstack((self.D12, other.D12)) + D21 = np.vstack((self.D21, other.D21)) + D22 = block_diag(self.D22, other.D22) + D = np.block([[D11, D12], [D21, D22]]) + + P = ss(A, B, C, D) + return PartitionedStateSpace(P, self.nu1 + other.nu1, self.ny1 + other.ny1) + + def __mul__(self, other): + if not isinstance(other, PartitionedStateSpace): + raise TypeError("Can only multiply PartitionedStateSpace objects") + + A = np.block([ + [self.A, self.B1 @ other.C1], + [np.zeros((other.A.shape[0], self.A.shape[1])), other.A] + ]) + + B = np.block([ + [self.B1 @ other.D11, self.B2, self.B1 @ other.D12], + [other.B1, np.zeros((other.B2.shape[0], self.B2.shape[1])), other.B2] + ]) + + C = np.block([ + [self.C1, self.D11 @ other.C1], + [self.C2, self.D21 @ other.C1], + [np.zeros((other.C2.shape[0], self.C2.shape[1])), other.C2] + ]) + + D = np.block([ + [self.D11 @ other.D11, self.D12, self.D11 @ other.D12], + [self.D21 @ other.D11, self.D22, self.D21 @ other.D12], + [other.D21, np.zeros((other.D22.shape[0], self.D22.shape[1])), other.D22] + ]) + + P = ss(A, B, C, D) + return PartitionedStateSpace(P, other.nu1, self.ny1) + + def feedback(self, other): + """ + Feedback connection of two PartitionedStateSpace systems. + """ + if not isinstance(other, PartitionedStateSpace): + raise TypeError("Feedback connection only defined for PartitionedStateSpace objects.") + + # Pre-calculate repeated inverses + I1 = np.eye(other.D11.shape[0]) + I2 = np.eye(self.D11.shape[0]) + + try: + inv_I_plus_D211_D111 = inv(I1 + other.D11 @ self.D11) + inv_I_plus_D111_D211 = inv(I2 + self.D11 @ other.D11) + except np.linalg.LinAlgError: + raise ValueError("Singular matrix encountered. Feedback connection may not be well-posed.") + + + X_11 = inv_I_plus_D211_D111 @ (-other.D11 @ self.C1 - other.C1) + X_21 = inv_I_plus_D111_D211 @ (self.C1 - self.D11 @ other.C1) + X_12 = inv_I_plus_D211_D111 @ (I1 - other.D11 @ self.D12 - other.D12) + X_22 = inv_I_plus_D111_D211 @ (self.D11 + self.D12 - self.D11 @ other.D12) + + + A = np.block([ + [self.A + self.B1 @ X_11, self.B1 @ X_11[ : , self.C1.shape[1]:]], + [other.B1 @ X_21[:other.C1.shape[0], :], other.A + other.B1 @ X_21] + ]) + + + B = np.block([ + [self.B1 @ X_12, self.B1 @ X_12[:, I1.shape[1]: ] + self.B2], + [other.B1 @ X_22[:, :self.D11.shape[0]], other.B1 @ X_22[:, self.D11.shape[0]:] + other.B2] + ]) + + C = np.block([ + [self.C1 + self.D11 @ X_11, self.D11 @ X_11[:, self.C1.shape[1]:]], + [self.C2 + self.D21 @ X_11, self.D21 @ X_11[:, self.C1.shape[1]:]], + [other.D21 @ X_21, other.C2 + other.D21 @ X_21[:, other.C1.shape[1]:]] + ]) + + D = np.block([ + [self.D11 @ X_12, self.D11 @ X_12[:, I1.shape[1]:] + self.D12], + [self.D21 @ X_12, self.D21 @ X_12[:, I1.shape[1]:] + self.D22], + [other.D21 @ X_22[:, :self.D11.shape[0]], other.D21 @ X_22[:, self.D11.shape[0]:] + other.D22] + ]) + + + P = ss(A, B, C, D) + return PartitionedStateSpace(P, other.nu1, self.ny1) + + + + diff --git a/control/tests/delay_test.py b/control/tests/delay_test.py index 24263c3b8..90f936f60 100644 --- a/control/tests/delay_test.py +++ b/control/tests/delay_test.py @@ -9,6 +9,9 @@ from control.delay import pade +from control.delaylti import delay +from control.xferfcn import tf + class TestPade: """Test Pade approx @@ -92,3 +95,66 @@ def testT0(self): np.array(refnum), np.array(num)) np.testing.assert_array_almost_equal_nulp( np.array(refden), np.array(den)) + + +class TestDelayLTI: + # comparison with julia controlSystems package + def test_pure_delay(self): + pure_delay = delay(1) + A = [] + B = np.zeros((0,2)) + C = [] + D = [[0., 1.], [1., 0.]] + + assert(np.all(pure_delay.P.A == A)) + assert(np.all(pure_delay.P.B == B)) + assert(np.all(pure_delay.P.C == C)) + assert(np.all(pure_delay.P.D == D)) + + + def test_delay(self): + tf_test = tf([1], [1,1]) * delay(1) + A = [[-1]] + B = [[0,1]] + C = [[1],[0]] + D = [[0,0], [1,0]] + + assert(np.all(tf_test.P.A == A)) + assert(np.all(tf_test.P.B == B)) + assert(np.all(tf_test.P.C == C)) + assert(np.all(tf_test.P.D == D)) + + + def test_forced_response(self): + from control.delaylti import DelayLTISystem, tf2dlti + from control.xferfcn import tf + from control.timeresp import forced_response + import matplotlib.pyplot as plt + + tf1 = tf([1], [1.5,1]) * delay(1) + + timepts = np.linspace(0, 10, 100) + input1 = np.zeros(100) + input1[31:] = 1 + resp = forced_response(tf1, timepts=timepts, inputs=input1) + t, y = resp.t, resp.y[0] + + #plt.figure() + #plt.plot(t, input1) + #plt.plot(t, y) + #plt.show() + + + def test_exp(self): + from control.delaylti import exp + from control.xferfcn import tf + + s = tf([1,0], [1]) + exp_delay = exp(-2*s) + print(exp_delay) + + + + + + \ No newline at end of file diff --git a/control/timeresp.py b/control/timeresp.py index bd549589a..e3d1e0cda 100644 --- a/control/timeresp.py +++ b/control/timeresp.py @@ -43,6 +43,7 @@ import scipy as sp from numpy import einsum, maximum, minimum from scipy.linalg import eig, eigvals, matrix_balance, norm +from scipy.integrate import LSODA from . import config from . config import _process_kwargs, _process_param @@ -921,6 +922,7 @@ def forced_response( sysdata, timepts=None, inputs=0., initial_state=0., transpose=False, params=None, interpolate=False, return_states=None, squeeze=None, **kwargs): + from .delaylti import DelayLTISystem """Compute the output of a linear system given the input. As a convenience for parameters `U`, `X0`: Numbers (scalars) are @@ -1061,7 +1063,7 @@ def forced_response( else: sys = sysdata - if not isinstance(sys, (StateSpace, TransferFunction)): + if not isinstance(sys, (StateSpace, TransferFunction, DelayLTISystem)): if isinstance(sys, NonlinearIOSystem): if interpolate: warnings.warn( @@ -1090,176 +1092,323 @@ def forced_response( "Internal conversion to state space used; may not be consistent " "with given X0.") - sys = _convert_to_statespace(sys) - A, B, C, D = np.asarray(sys.A), np.asarray(sys.B), np.asarray(sys.C), \ - np.asarray(sys.D) - # d_type = A.dtype - n_states = A.shape[0] - n_inputs = B.shape[1] - n_outputs = C.shape[0] - - # Convert inputs to numpy arrays for easier shape checking - if U is not None: - U = np.asarray(U) - if T is not None: - # T must be array_like - T = np.asarray(T) - - # Set and/or check time vector in discrete-time case - if isdtime(sys): - if T is None: - if U is None or (U.ndim == 0 and U == 0.): - raise ValueError('Parameters `T` and `U` can\'t both be ' - 'zero for discrete-time simulation') - # Set T to equally spaced samples with same length as U - if U.ndim == 1: - n_steps = U.shape[0] + if isinstance(sys, DelayLTISystem): + P = sys.P + n_states = P.A.shape[0] + n_inputs = P.B1.shape[1] + n_outputs = P.C1.shape[0] + # Convert inputs to numpy arrays for easier shape checking + if U is not None: + U = np.asarray(U) + if T is not None: + # T must be array_like + T = np.asarray(T) + # Set and/or check time vector in discrete-time case + # if isdtime(sys): + # if T is None: + # if U is None or (U.ndim == 0 and U == 0.): + # raise ValueError('Parameters `T` and `U` can\'t both be ' + # 'zero for discrete-time simulation') + # # Set T to equally spaced samples with same length as U + # if U.ndim == 1: + # n_steps = U.shape[0] + # else: + # n_steps = U.shape[1] + # dt = 1. if sys.dt in [True, None] else sys.dt + # T = np.array(range(n_steps)) * dt + # else: + # if U.ndim == 0: + # U = np.full((n_inputs, T.shape[0]), U) + # else: + # if T is None: + # raise ValueError('Parameter `T` is mandatory for continuous ' + # 'time systems.') + + # Test if T has shape (n,) or (1, n); + T = _check_convert_array(T, [('any',), (1, 'any')], + 'Parameter `T`: ', squeeze=True, + transpose=transpose) + + n_steps = T.shape[0] # number of simulation steps + + # equally spaced also implies strictly monotonic increase, + dt = (T[-1] - T[0]) / (n_steps - 1) + if not np.allclose(np.diff(T), dt): + raise ValueError("Parameter `T`: time values must be equally " + "spaced.") + + # create X0 if not given, test if X0 has correct shape + X0 = _check_convert_array(X0, [(n_states,), (n_states, 1)], + 'Parameter `X0`: ', squeeze=True) + + # Test if U has correct shape and type + legal_shapes = [(n_steps,), (1, n_steps)] if n_inputs == 1 else \ + [(n_inputs, n_steps)] + U = _check_convert_array(U, legal_shapes, + 'Parameter `U`: ', squeeze=False, + transpose=transpose) + + xout = np.zeros((n_states, n_steps)) + xout[:, 0] = X0 + yout = np.zeros((n_outputs, n_steps)) + # adaptation of robust control from Python Skotesgrad + # keep tracks delays + dtss = [int(np.round(delay / dt)) for delay in sys.tau] + zs = [] + def wf(zs): + ws = [] + for i, dts in enumerate(dtss): + if len(zs) <= dts: + ws.append(0) + elif dts == 0: + ws.append(zs[-1][i]) + else: + ws.append(zs[-dts][i]) + return np.array(ws) + + def inter_u(t): + if np.ndim(U) == 1: + return np.array([np.interp(t, T, U)]) + elif np.ndim(U) == 0: + print("U is a scalar !") + return U else: - n_steps = U.shape[1] - dt = 1. if sys.dt in [True, None] else sys.dt - T = np.array(range(n_steps)) * dt - else: - if U.ndim == 0: - U = np.full((n_inputs, T.shape[0]), U) - else: - if T is None: - raise ValueError('Parameter `T` is mandatory for continuous ' - 'time systems.') - - # Test if T has shape (n,) or (1, n); - T = _check_convert_array(T, [('any',), (1, 'any')], - 'Parameter `T`: ', squeeze=True, - transpose=transpose) - - n_steps = T.shape[0] # number of simulation steps - - # equally spaced also implies strictly monotonic increase, - dt = (T[-1] - T[0]) / (n_steps - 1) - if not np.allclose(np.diff(T), dt): - raise ValueError("Parameter `T`: time values must be equally " - "spaced.") - - # create X0 if not given, test if X0 has correct shape - X0 = _check_convert_array(X0, [(n_states,), (n_states, 1)], - 'Parameter `X0`: ', squeeze=True) - - # Test if U has correct shape and type - legal_shapes = [(n_steps,), (1, n_steps)] if n_inputs == 1 else \ - [(n_inputs, n_steps)] - U = _check_convert_array(U, legal_shapes, - 'Parameter `U`: ', squeeze=False, - transpose=transpose) - - xout = np.zeros((n_states, n_steps)) - xout[:, 0] = X0 - yout = np.zeros((n_outputs, n_steps)) - - # Separate out the discrete and continuous-time cases - if isctime(sys, strict=True): - # Solve the differential equation, copied from scipy.signal.ltisys. - - # Faster algorithm if U is zero - # (if not None, it was converted to array above) - if U is None or np.all(U == 0): - # Solve using matrix exponential - expAdt = sp.linalg.expm(A * dt) - for i in range(1, n_steps): - xout[:, i] = expAdt @ xout[:, i-1] - yout = C @ xout - - # General algorithm that interpolates U in between output points - else: - # convert input from 1D array to 2D array with only one row - if U.ndim == 1: - U = U.reshape(1, -1) # pylint: disable=E1103 - - # Algorithm: to integrate from time 0 to time dt, with linear - # interpolation between inputs u(0) = u0 and u(dt) = u1, we solve - # xdot = A x + B u, x(0) = x0 - # udot = (u1 - u0) / dt, u(0) = u0. - # - # Solution is - # [ x(dt) ] [ A*dt B*dt 0 ] [ x0 ] - # [ u(dt) ] = exp [ 0 0 I ] [ u0 ] - # [u1 - u0] [ 0 0 0 ] [u1 - u0] - - M = np.block([[A * dt, B * dt, np.zeros((n_states, n_inputs))], - [np.zeros((n_inputs, n_states + n_inputs)), - np.identity(n_inputs)], - [np.zeros((n_inputs, n_states + 2 * n_inputs))]]) - expM = sp.linalg.expm(M) - Ad = expM[:n_states, :n_states] - Bd1 = expM[:n_states, n_states+n_inputs:] - Bd0 = expM[:n_states, n_states:n_states + n_inputs] - Bd1 - - for i in range(1, n_steps): - xout[:, i] = (Ad @ xout[:, i-1] - + Bd0 @ U[:, i-1] + Bd1 @ U[:, i]) - yout = C @ xout + D @ U + return np.array([np.interp(t, T, ui) for ui in U]) + + def f(t, x): + # TODO: verify interp + return P.A @ x + P.B1 @ inter_u(t) + P.B2 @ wf(zs) + + solver = LSODA(f, T[0], X0, t_bound=T[-1], max_step=dt) + + xs = [X0] + ts = [T[0]] + while solver.status == "running": + t = ts[-1] + x = xs[-1] + #print("C1", sys.C1) + ##print("D11", sys.D11) + #print("D12", sys.D12) + #print("x", x) + print("U", U) + print("ndim U", np.ndim(U)) + #print("wf(zs)", wf(zs)) + #print("interp U", np.interp(t, T, U)) + + print("C1", P.C1) + print("x", np.array(x)) + + print("D11", P.D11) + print("inter U", inter_u(t)) + + print("D12", P.D12) + print("wf(zs)", wf(zs)) + + print("") + + y = P.C1 @ np.array(x) + P.D11 @ inter_u(t) + P.D12 @ wf(zs) + + z = P.C2 @ np.array(x) + P.D21 @ inter_u(t) + P.D22 @ wf(zs) + zs.append(list(z)) + + solver.step() + t = solver.t + ts.append(t) + + x = solver.y.copy() + xs.append(list(x)) + + for it, ti in enumerate(T): + if ts[-2] < ti <= ts[-1]: + xi = solver.dense_output()(ti) + xout[:, it] = xi + yout[:, it] = P.C1 @ np.array(xi) + P.D11 @ inter_u(t) + P.D12 @ wf(zs) + + #xout = np.transpose(xout) + #yout = np.transpose(yout) tout = T else: - # Discrete type system => use SciPy signal processing toolbox - - # sp.signal.dlsim assumes T[0] == 0 - spT = T - T[0] - - if sys.dt is not True and sys.dt is not None: - # Make sure that the time increment is a multiple of sampling time - - # First make sure that time increment is bigger than sampling time - # (with allowance for small precision errors) - if dt < sys.dt and not np.isclose(dt, sys.dt): - raise ValueError("Time steps `T` must match sampling time") - - # Now check to make sure it is a multiple (with check against - # sys.dt because floating point mod can have small errors - if not (np.isclose(dt % sys.dt, 0) or - np.isclose(dt % sys.dt, sys.dt)): - raise ValueError("Time steps `T` must be multiples of " - "sampling time") - sys_dt = sys.dt - - # sp.signal.dlsim returns not enough samples if - # T[-1] - T[0] < sys_dt * decimation * (n_steps - 1) - # due to rounding errors. - # https://github.com/scipyscipy/blob/v1.6.1/scipy/signal/ltisys.py#L3462 - scipy_out_samples = int(np.floor(spT[-1] / sys_dt)) + 1 - if scipy_out_samples < n_steps: - # parentheses: order of evaluation is important - spT[-1] = spT[-1] * (n_steps / (spT[-1] / sys_dt + 1)) - + sys = _convert_to_statespace(sys) + A, B, C, D = np.asarray(sys.A), np.asarray(sys.B), np.asarray(sys.C), \ + np.asarray(sys.D) + # d_type = A.dtype + n_states = A.shape[0] + n_inputs = B.shape[1] + n_outputs = C.shape[0] + + # Convert inputs to numpy arrays for easier shape checking + if U is not None: + U = np.asarray(U) + if T is not None: + # T must be array_like + T = np.asarray(T) + + # Set and/or check time vector in discrete-time case + if isdtime(sys): + if T is None: + if U is None or (U.ndim == 0 and U == 0.): + raise ValueError('Parameters `T` and `U` can\'t both be ' + 'zero for discrete-time simulation') + # Set T to equally spaced samples with same length as U + if U.ndim == 1: + n_steps = U.shape[0] + else: + n_steps = U.shape[1] + dt = 1. if sys.dt in [True, None] else sys.dt + T = np.array(range(n_steps)) * dt + else: + if U.ndim == 0: + U = np.full((n_inputs, T.shape[0]), U) else: - sys_dt = dt # For unspecified sampling time, use time incr - - # Discrete time simulation using signal processing toolbox - dsys = (A, B, C, D, sys_dt) - - # Use signal processing toolbox for the discrete-time simulation - # Transpose the input to match toolbox convention - tout, yout, xout = sp.signal.dlsim(dsys, np.transpose(U), spT, X0) - tout = tout + T[0] - - if not interpolate: - # If dt is different from sys.dt, resample the output - inc = int(round(dt / sys_dt)) - tout = T # Return exact list of time steps - yout = yout[::inc, :] - xout = xout[::inc, :] + if T is None: + raise ValueError('Parameter `T` is mandatory for continuous ' + 'time systems.') + + # Test if T has shape (n,) or (1, n); + T = _check_convert_array(T, [('any',), (1, 'any')], + 'Parameter `T`: ', squeeze=True, + transpose=transpose) + + n_steps = T.shape[0] # number of simulation steps + + # equally spaced also implies strictly monotonic increase, + dt = (T[-1] - T[0]) / (n_steps - 1) + if not np.allclose(np.diff(T), dt): + raise ValueError("Parameter `T`: time values must be equally " + "spaced.") + + # create X0 if not given, test if X0 has correct shape + X0 = _check_convert_array(X0, [(n_states,), (n_states, 1)], + 'Parameter `X0`: ', squeeze=True) + + # Test if U has correct shape and type + legal_shapes = [(n_steps,), (1, n_steps)] if n_inputs == 1 else \ + [(n_inputs, n_steps)] + U = _check_convert_array(U, legal_shapes, + 'Parameter `U`: ', squeeze=False, + transpose=transpose) + + + xout = np.zeros((n_states, n_steps)) + xout[:, 0] = X0 + yout = np.zeros((n_outputs, n_steps)) + + # Separate out the discrete and continuous-time cases + if isctime(sys, strict=True): + # Solve the differential equation, copied from scipy.signal.ltisys. + + # Faster algorithm if U is zero + # (if not None, it was converted to array above) + if U is None or np.all(U == 0): + # Solve using matrix exponential + expAdt = sp.linalg.expm(A * dt) + for i in range(1, n_steps): + xout[:, i] = expAdt @ xout[:, i-1] + yout = C @ xout + + # General algorithm that interpolates U in between output points + else: + # convert input from 1D array to 2D array with only one row + if U.ndim == 1: + U = U.reshape(1, -1) # pylint: disable=E1103 + + # Algorithm: to integrate from time 0 to time dt, with linear + # interpolation between inputs u(0) = u0 and u(dt) = u1, we solve + # xdot = A x + B u, x(0) = x0 + # udot = (u1 - u0) / dt, u(0) = u0. + # + # Solution is + # [ x(dt) ] [ A*dt B*dt 0 ] [ x0 ] + # [ u(dt) ] = exp [ 0 0 I ] [ u0 ] + # [u1 - u0] [ 0 0 0 ] [u1 - u0] + + M = np.block([[A * dt, B * dt, np.zeros((n_states, n_inputs))], + [np.zeros((n_inputs, n_states + n_inputs)), + np.identity(n_inputs)], + [np.zeros((n_inputs, n_states + 2 * n_inputs))]]) + expM = sp.linalg.expm(M) + Ad = expM[:n_states, :n_states] + Bd1 = expM[:n_states, n_states+n_inputs:] + Bd0 = expM[:n_states, n_states:n_states + n_inputs] - Bd1 + + for i in range(1, n_steps): + xout[:, i] = (Ad @ xout[:, i-1] + + Bd0 @ U[:, i-1] + Bd1 @ U[:, i]) + yout = C @ xout + D @ U + tout = T + else: - # Interpolate the input to get the right number of points - U = sp.interpolate.interp1d(T, U)(tout) + # Discrete type system => use SciPy signal processing toolbox + + # sp.signal.dlsim assumes T[0] == 0 + spT = T - T[0] + + if sys.dt is not True and sys.dt is not None: + # Make sure that the time increment is a multiple of sampling time + + # First make sure that time increment is bigger than sampling time + # (with allowance for small precision errors) + if dt < sys.dt and not np.isclose(dt, sys.dt): + raise ValueError("Time steps `T` must match sampling time") + + # Now check to make sure it is a multiple (with check against + # sys.dt because floating point mod can have small errors + if not (np.isclose(dt % sys.dt, 0) or + np.isclose(dt % sys.dt, sys.dt)): + raise ValueError("Time steps `T` must be multiples of " + "sampling time") + sys_dt = sys.dt + + # sp.signal.dlsim returns not enough samples if + # T[-1] - T[0] < sys_dt * decimation * (n_steps - 1) + # due to rounding errors. + # https://github.com/scipyscipy/blob/v1.6.1/scipy/signal/ltisys.py#L3462 + scipy_out_samples = int(np.floor(spT[-1] / sys_dt)) + 1 + if scipy_out_samples < n_steps: + # parentheses: order of evaluation is important + spT[-1] = spT[-1] * (n_steps / (spT[-1] / sys_dt + 1)) - # Transpose the output and state vectors to match local convention - xout = np.transpose(xout) - yout = np.transpose(yout) + else: + sys_dt = dt # For unspecified sampling time, use time incr + + # Discrete time simulation using signal processing toolbox + dsys = (A, B, C, D, sys_dt) + + # Use signal processing toolbox for the discrete-time simulation + # Transpose the input to match toolbox convention + tout, yout, xout = sp.signal.dlsim(dsys, np.transpose(U), spT, X0) + tout = tout + T[0] + + if not interpolate: + # If dt is different from sys.dt, resample the output + inc = int(round(dt / sys_dt)) + tout = T # Return exact list of time steps + yout = yout[::inc, :] + xout = xout[::inc, :] + else: + # Interpolate the input to get the right number of points + U = sp.interpolate.interp1d(T, U)(tout) + + # Transpose the output and state vectors to match local convention + xout = np.transpose(xout) + yout = np.transpose(yout) return TimeResponseData( - tout, yout, xout, U, params=params, issiso=sys.issiso(), - output_labels=sys.output_labels, input_labels=sys.input_labels, - state_labels=sys.state_labels, sysname=sys.name, plot_inputs=True, - title="Forced response for " + sys.name, trace_types=['forced'], - transpose=transpose, return_x=return_x, squeeze=squeeze) + tout, yout, xout, U, + params=params, + issiso=sys.issiso(), + output_labels=sys.output_labels, + input_labels=sys.input_labels, + state_labels=sys.state_labels, + sysname=sys.name, + plot_inputs=True, + title="Forced response for " + sys.name, + trace_types=['forced'], + transpose=transpose, + return_x=return_x, + squeeze=squeeze + ) # Process time responses in a uniform way @@ -1467,7 +1616,11 @@ def step_response( # Convert to state space so that we can simulate if isinstance(sys, LTI) and sys.nstates is None: - sys = _convert_to_statespace(sys) + if (isinstance(sys, TransferFunction) and hasattr(sys, 'delays')): + from .delayssp import _convert_to_delaystatespace + sys = _convert_to_delaystatespace(sys) + else: + sys = _convert_to_statespace(sys) # Only single input and output are allowed for now if isinstance(input, (list, tuple)): @@ -1506,6 +1659,8 @@ def step_response( U = np.zeros((sys.ninputs, T.size)) U[i, :] = np.ones_like(T) + print(U) + response = forced_response(sys, T, U, X0, squeeze=True, params=params) inpidx = i if input is None else 0 yout[:, inpidx, :] = response.y if output is None \ From 2c74ca110edf0a83d8a6ddcee64b34509e28859a Mon Sep 17 00:00:00 2001 From: Mathieu Sylvain Date: Wed, 26 Mar 2025 19:33:53 +0100 Subject: [PATCH 02/16] ongoing tests with julia notebooks, feedback bug solved --- control/delaylti.py | 266 ++++++++++++++-- control/partitionedssp.py | 72 +++-- control/tests/delay_lti_test.py | 231 ++++++++++++++ control/tests/delay_test.py | 55 ---- control/tests/julia_tests.ipynb | 522 ++++++++++++++++++++++++++++++++ control/timeresp.py | 20 +- 6 files changed, 1030 insertions(+), 136 deletions(-) create mode 100644 control/tests/delay_lti_test.py create mode 100644 control/tests/julia_tests.ipynb diff --git a/control/delaylti.py b/control/delaylti.py index cf4e91a2a..12a217887 100644 --- a/control/delaylti.py +++ b/control/delaylti.py @@ -4,12 +4,14 @@ from .statesp import ss, StateSpace, tf2ss from .xferfcn import TransferFunction from .iosys import _process_iosys_keywords +from scipy.linalg import solve, LinAlgError class DelayLTISystem(LTI): def __init__(self, P: PartitionedStateSpace, tau: np.ndarray = [], **kwargs): + self.P = P self.tau = tau @@ -50,6 +52,10 @@ def from_ss(cls, sys: StateSpace, tau: np.ndarray = []): psys = PartitionedStateSpace(sys, nu, ny) return cls(psys, tau) + + @classmethod + def from_tf(cls, sys: TransferFunction, tau: np.ndarray = []): + return DelayLTISystem.from_ss(tf2ss(sys), tau) def size(self): return (self.noutputs, self.ninputs) @@ -69,36 +75,41 @@ def __mul__(self, other): elif isinstance(other, TransferFunction): dlti = tf2dlti(other) return self * dlti + + elif isinstance(other, StateSpace): + return self * DelayLTISystem.from_ss(other) + else: raise TypeError("Unsupported operand type(s) for *: '{}' and '{}'".format(type(self), type(other))) - def __rmul__(self, other): # Handle System * Number + def __rmul__(self, other): if isinstance(other, (int, float, complex)): - new_B = np.block([self.P.B1 * other, self.P.B2]) - new_D = np.block([[self.P.D11 * other, self.P.D12], [self.P.D21 * other, self.P.D22]]) - new_P = PartitionedStateSpace(ss(self.P.A, new_B, self.P.C, new_D), self.P.nu1, self.P.ny1) - return DelayLTISystem(new_P, self.tau) + return self * other elif isinstance(other, TransferFunction): dlti = tf2dlti(other) return dlti * self + + elif isinstance(other, StateSpace): + return DelayLTISystem.from_ss(other) * self + else: raise TypeError("Unsupported operand type(s) for *: '{}' and '{}'".format(type(other), type(self))) def __add__(self, other): if isinstance(other, (int, float, complex)): - # Add to direct term from input to output new_D = self.P.sys.D.copy() - new_D[:self.noutputs(), :self.ninputs()] += other - pnew = PartitionedStateSpace(ss(self.P.sys.A, self.P.sys.B, self.P.sys.C, new_D), self.P.nu1, self.P.ny1) + new_D[:self.noutputs, :self.ninputs] += other + pnew = PartitionedStateSpace(ss(self.A, self.B, self.C, new_D), self.P.nu1, self.P.ny1) return DelayLTISystem(pnew, self.tau) - elif isinstance(other, DelayLTISystem): psys_new = self.P + other.P tau_new = np.concatenate([self.tau, other.tau]) - return DelayLTISystem(psys_new.P, tau_new) + return DelayLTISystem(psys_new, tau_new) else: - raise TypeError("unsupported operand type(s) for +: '{}' and '{}'".format(type(self), type(other))) + sys = _convert_to_delay_lti(other) + return self + sys + def __sub__(self, other): return self + (-other) @@ -112,27 +123,194 @@ def __rsub__(self, other): def __eq__(self, other): if not isinstance(other, DelayLTISystem): return False - return (np.array_equal(self.P.A, other.P.A) and - np.array_equal(self.P.B, other.P.B) and - np.array_equal(self.P.C, other.P.C) and - np.array_equal(self.P.D, other.P.D) and - np.array_equal(self.tau, other.tau)) - - def feedback(self, other): - psys_new = self.P.feedback(other.P) - tau_new = np.concatenate([self.tau, other.tau]) - return DelayLTISystem(psys_new.P, tau_new) + return (np.allclose(self.A, other.A) and + np.allclose(self.B, other.B) and + np.allclose(self.C, other.C) and + np.allclose(self.D, other.D) and + np.allclose(self.tau, other.tau)) + def feedback(self, other=1, sign=-1): + """Standard or LFT feedback interconnection for DelayLTISystem. + + If `other` is a static gain (scalar, matrix, or static LTI system), + computes the standard feedback loop: u = r + sign*other*y, y = self*u. + The resulting system maps the external input `r` and the internal + delay input `w` to the external output `y` and the internal delay + output `z`. + + If `other` is also a `DelayLTISystem`, computes the LFT feedback + interconnection by calling `feedback` on the underlying + `PartitionedStateSpace` objects and concatenating the delay vectors. + + Parameters + ---------- + other : scalar, array, LTI system, or DelayLTISystem + The system or gain in the feedback path. + sign : int, optional {-1, 1} + Sign of the feedback. Default is -1 (negative feedback). + + Returns + ------- + DelayLTISystem + The closed-loop system. + """ + + if isinstance(other, DelayLTISystem): + psys_new = self.P.feedback(other.P) # Use PartitionedStateSpace.feedback + + # Concatenate the delay vectors + tau_new = np.concatenate([self.tau, other.tau]) + + # Determine result types and construct the new DelayLTISystem + T, S = _promote_delay_system_types(self, other) + ResType = type(self)._most_specific_constructor(T, S) + return ResType(psys_new, tau_new) + + elif isinstance(other, (StateSpace, TransferFunction)): + other_delay_lti = _convert_to_delay_lti(other) + return self.feedback(other_delay_lti) + + else: + # Convert feedback 'other' to a static gain matrix K + if isinstance(other, (int, float, complex, np.number)): + if not self.issiso(): + raise ValueError("Scalar feedback gain requires SISO system G.") + K = np.array([[other]], dtype=float) + elif isinstance(other, np.ndarray): + K = np.asarray(other, dtype=float) + if K.ndim == 0: K = K.reshape(1,1) + elif K.ndim == 1: + if self.noutputs != 1: raise ValueError("1D array feedback requires SISO system G.") + K = K.reshape(self.ninputs, 1) + elif K.ndim != 2: raise ValueError("Feedback gain must be scalar, 1D, or 2D array.") + else: + raise TypeError(f"Unsupported type for static feedback: {type(other)}") + + # Check dimensions of K + if K.shape != (self.ninputs, self.noutputs): + raise ValueError(f"Feedback gain K has incompatible shape. Expected ({self.ninputs}, {self.noutputs}), got {K.shape}.") + + # Get matrices from self's underlying PartitionedStateSpace + P_g = self.P + A_g, B1_g, B2_g = P_g.A, P_g.B1, P_g.B2 + C1_g, C2_g = P_g.C1, P_g.C2 + D11_g, D12_g = P_g.D11, P_g.D12 + D21_g, D22_g = P_g.D21, P_g.D22 + taus = self.tau + n_states = self.nstates + n_u = self.ninputs # G's external input dimension + n_y = self.noutputs # G's external output dimension + n_w = B2_g.shape[1] # Delay input dimension + n_z = C2_g.shape[0] # Delay output dimension + n_r = n_u # Reference input dimension + + # Promote types, handle empty states + T = np.promote_types(A_g.dtype if A_g.size > 0 else float, K.dtype) + if n_states == 0: A_g = np.zeros((0,0), dtype=T) + + # Calculate closed-loop matrices for map [r, w] -> [y, z] + F = np.eye(n_u, dtype=T) - sign * K @ D11_g + try: + invF_signK = solve(F, sign * K) + invF = solve(F, np.eye(n_u, dtype=T)) + except LinAlgError: + raise ValueError("Algebraic loop; I - sign*K*D11 is singular.") + + A_new = A_g + B1_g @ invF_signK @ C1_g + B1_new = B1_g @ invF + B2_new = B2_g + B1_g @ invF_signK @ D12_g + C1_new = C1_g + D11_g @ invF_signK @ C1_g + C2_new = C2_g + D21_g @ invF_signK @ C1_g + D11_new = D11_g @ invF + D12_new = D12_g + D11_g @ invF_signK @ D12_g + D21_new = D21_g @ invF + D22_new = D22_g + D21_g @ invF_signK @ D12_g + + B_new = np.hstack([B1_new, B2_new]) if B1_new.size > 0 or B2_new.size > 0 else np.zeros((n_states, n_r + n_w), dtype=T) + C_new = np.vstack([C1_new, C2_new]) if C1_new.size > 0 or C2_new.size > 0 else np.zeros((n_y + n_z, n_states), dtype=T) + D_new = np.block([[D11_new, D12_new], [D21_new, D22_new]]) if D11_new.size>0 or D12_new.size>0 or D21_new.size>0 or D22_new.size>0 else np.zeros((n_y + n_z, n_r + n_w), dtype=T) + + # Create the new StateSpace system + clsys_ss = StateSpace(A_new, B_new, C_new, D_new, self.dt) + + # Partition it correctly: inputs [r, w], outputs [y, z] + clsys_part = PartitionedStateSpace(clsys_ss, nu1=n_r, ny1=n_y) + + # Determine result types and construct the new DelayLTISystem + # Need to promote delay type S with potential default float + _, S = _promote_delay_system_types(self, self) + ResType = type(self)._most_specific_constructor(T, S) + return ResType(clsys_part, taus) + + # Helper to get the most specific constructor like DelayLtiSystem{T,S} + @classmethod + def _most_specific_constructor(cls, T_num, S_delay): + # This is a bit of a workaround for Python's type system. + # It assumes the class name is DelayLTISystem and reconstructs it. + # If you rename your class, you'll need to change this. + # It also doesn't handle potential subclasses gracefully. + base_name = cls.__name__ + if base_name == "DelayLTISystem": + # Need to create the types dynamically if they don't exist? No, just use them. + # This relies on the generic class DelayLTISystem being available. + # We might need to import it specifically if this method is called + # from outside the class definition scope in some contexts. + return DelayLTISystem # Return the generic type, __init__ will handle types + else: + # Fallback or error for subclasses? + return cls # Return the current class type + + def __str__(self): - s = "DelayLTISystem\n" - s += "P:\n" + str(self.P) + "\n" - s += "A =\n" + str(self.P.A) + "\n" - s += "B =\n" + str(self.P.B) + "\n" - s += "C =\n" + str(self.P.C) + "\n" - s += "D =\n" + str(self.P.D) + "\n" + "\n" - s += "delays: " + str(self.tau) + # ... (existing string representation) ... + s = f"DelayLTISystem with {self.noutputs} outputs, {self.ninputs} inputs, " \ + f"{self.nstates} states, and {len(self.tau)} delays.\n" + s += f"Delays: {self.tau}\n" + s += "Underlying PartitionedStateSpace P:\n" + str(self.P) return s + def __repr__(self): + return (f"{type(self).__name__}(" + f"P={self.P.__repr__()}, tau={self.tau.__repr__()})") + + + + + +def delay(tau): + # ... (keep existing implementation) ... + if isinstance(tau, (int, float)): + tau_arr = np.array([float(tau)]) + elif isinstance(tau, (list, np.ndarray)): + tau_arr = np.asarray(tau, dtype=float) + else: + raise TypeError("tau must be a number, list, or NumPy array") + + n_delays = len(tau_arr) + if n_delays == 0: + # Should return identity? Or error? Let's return identity for now. + # A static gain system is StateSpace with empty A, B, C. + return DelayLTISystem.from_ss(StateSpace(np.eye(1))) + + # Create the P matrix for a pure delay block w(t) = z(t-tau) + # y = w, z = u + # P maps [u, w] -> [y, z] + # y = 0*u + 1*w => D11=0, D12=I + # z = 1*u + 0*w => D21=I, D22=0 + D = np.block([ + [np.zeros((n_delays, n_delays)), np.eye(n_delays)], + [np.eye(n_delays) , np.zeros((n_delays, n_delays))] + ]) + # No states needed for pure delay block representation + A = np.zeros((0,0)) + B = np.zeros((0, 2 * n_delays)) + C = np.zeros((2 * n_delays, 0)) + + # Partition: external input u -> nu1, external output y -> ny1 + P = PartitionedStateSpace(StateSpace(A, B, C, D), nu1=n_delays, ny1=n_delays) + return DelayLTISystem(P, tau_arr) + + def delay(tau): """ @@ -184,10 +362,32 @@ def tf2dlti(tf: TransferFunction): raise TypeError("Input must be a TransferFunction") ss_tf = tf2ss(tf) + return DelayLTISystem.from_ss(ss_tf) + + - if hasattr(tf, 'delays'): - tau = tf.delays - delay_tau= delay(tau) - return DelayLTISystem.from_ss(ss_tf) * delay_tau +def _promote_delay_system_types(sys1, sys2): + """Determine the numeric and delay types for combined systems.""" + # Promote numeric types based on underlying StateSpace + T = np.promote_types( + sys1.P.sys.A.dtype if sys1.P.sys.A.size > 0 else float, + sys2.P.sys.A.dtype if sys2.P.sys.A.size > 0 else float + ) + # Promote delay types + S = np.promote_types( + np.asarray(sys1.tau).dtype if len(sys1.tau) > 0 else float, + np.asarray(sys2.tau).dtype if len(sys2.tau) > 0 else float + ) + return T, S + + +def _convert_to_delay_lti(sys): + """Convert a system to a DelayLTISystem if necessary.""" + if isinstance(sys, DelayLTISystem): + return sys + elif isinstance(sys, StateSpace): + return DelayLTISystem.from_ss(sys) + elif isinstance(sys, TransferFunction): + return tf2dlti(sys) else: - return DelayLTISystem.from_ss(ss_tf) \ No newline at end of file + raise TypeError("Unsupported system type for DelayLTISystem conversion: {}".format(type(sys))) diff --git a/control/partitionedssp.py b/control/partitionedssp.py index e872edbd6..9cf4a990b 100644 --- a/control/partitionedssp.py +++ b/control/partitionedssp.py @@ -1,5 +1,5 @@ import numpy as np -from scipy.linalg import block_diag, inv +from scipy.linalg import block_diag, inv, solve, LinAlgError from .statesp import ss, StateSpace @@ -14,6 +14,12 @@ def __init__(self, sys: StateSpace, nu1: int, ny1: int): self.C = self.sys.C self.D = self.sys.D + self.nstates = sys.nstates + self.noutputs_total = sys.noutputs + self.ninputs_total = sys.ninputs + self.nu2 = self.ninputs_total - self.nu1 # Dimension of external input w + self.ny2 = self.noutputs_total - self.ny1 # Dimension of external output z + @property def B1(self): return self.B[:, :self.nu1] @@ -144,56 +150,46 @@ def __mul__(self, other): return PartitionedStateSpace(P, other.nu1, self.ny1) def feedback(self, other): - """ - Feedback connection of two PartitionedStateSpace systems. - """ if not isinstance(other, PartitionedStateSpace): raise TypeError("Feedback connection only defined for PartitionedStateSpace objects.") # Pre-calculate repeated inverses - I1 = np.eye(other.D11.shape[0]) - I2 = np.eye(self.D11.shape[0]) + I_self = np.eye(self.D11.shape[0]) + I_other = np.eye(other.D11.shape[0]) - try: - inv_I_plus_D211_D111 = inv(I1 + other.D11 @ self.D11) - inv_I_plus_D111_D211 = inv(I2 + self.D11 @ other.D11) - except np.linalg.LinAlgError: - raise ValueError("Singular matrix encountered. Feedback connection may not be well-posed.") + X_11 = solve(I_other + other.D11 @ self.D11, np.hstack((-other.D11 @ self.C1, -other.C1))) + X_21 = solve(I_self + self.D11 @ other.D11, np.hstack((self.C1, -self.D11 @ other.C1))) + X_12 = solve(I_other + other.D11 @ self.D11, np.hstack((I_other, -other.D11 @ self.D12, -other.D12))) # maybe I_other + X_22 = solve(I_self + self.D11 @ other.D11, np.hstack((self.D11, self.D12, -self.D11 @ other.D12))) - X_11 = inv_I_plus_D211_D111 @ (-other.D11 @ self.C1 - other.C1) - X_21 = inv_I_plus_D111_D211 @ (self.C1 - self.D11 @ other.C1) - X_12 = inv_I_plus_D211_D111 @ (I1 - other.D11 @ self.D12 - other.D12) - X_22 = inv_I_plus_D111_D211 @ (self.D11 + self.D12 - self.D11 @ other.D12) + A_new = np.vstack((self.B1 @ X_11, other.B1 @ X_21)) + block_diag(self.A, other.A) + B_new = np.vstack((self.B1 @ X_12, other.B1 @ X_22)) + tmp = block_diag(self.B2, other.B2) + B_new[:, -tmp.shape[1]:] += tmp - A = np.block([ - [self.A + self.B1 @ X_11, self.B1 @ X_11[ : , self.C1.shape[1]:]], - [other.B1 @ X_21[:other.C1.shape[0], :], other.A + other.B1 @ X_21] + C_new = np.vstack([ + self.D11 @ X_11, + self.D21 @ X_11, + other.D21 @ X_21, + ]) + np.vstack([ + np.hstack([self.C1, np.zeros((self.C1.shape[0], other.C1.shape[1]))]), + block_diag(self.C2, other.C2), ]) - - B = np.block([ - [self.B1 @ X_12, self.B1 @ X_12[:, I1.shape[1]: ] + self.B2], - [other.B1 @ X_22[:, :self.D11.shape[0]], other.B1 @ X_22[:, self.D11.shape[0]:] + other.B2] - ]) - - C = np.block([ - [self.C1 + self.D11 @ X_11, self.D11 @ X_11[:, self.C1.shape[1]:]], - [self.C2 + self.D21 @ X_11, self.D21 @ X_11[:, self.C1.shape[1]:]], - [other.D21 @ X_21, other.C2 + other.D21 @ X_21[:, other.C1.shape[1]:]] + D_new = np.vstack([ + self.D11 @ X_12, + self.D21 @ X_12, + other.D21 @ X_22, ]) - - D = np.block([ - [self.D11 @ X_12, self.D11 @ X_12[:, I1.shape[1]:] + self.D12], - [self.D21 @ X_12, self.D21 @ X_12[:, I1.shape[1]:] + self.D22], - [other.D21 @ X_22[:, :self.D11.shape[0]], other.D21 @ X_22[:, self.D11.shape[0]:] + other.D22] + tmp = np.vstack([ + np.hstack([self.D12, np.zeros((self.D12.shape[0], other.D12.shape[1]))]), + block_diag(self.D22, other.D22), ]) + D_new[:, -tmp.shape[1]:] += tmp + P_new = StateSpace(A_new, B_new, C_new, D_new) - P = ss(A, B, C, D) - return PartitionedStateSpace(P, other.nu1, self.ny1) - - - + return PartitionedStateSpace(P_new, other.nu1, self.ny1) diff --git a/control/tests/delay_lti_test.py b/control/tests/delay_lti_test.py new file mode 100644 index 000000000..1bc6e4b46 --- /dev/null +++ b/control/tests/delay_lti_test.py @@ -0,0 +1,231 @@ +import numpy as np +import pytest + +from control.delaylti import delay, tf2dlti +from control.statesp import ss +from control.xferfcn import tf + +s = tf('s') + +@pytest.fixture +def simple_siso_tf(): + return tf([1], [1, 1]) + +@pytest.fixture +def tf_one(): + return tf([1], [1]) + +@pytest.fixture +def pure_delay(): + return delay(1) + + +@pytest.fixture +def delay_siso_tf(): + P_tf = 1 / (s + 1) + D = delay(1.5) + return P_tf * D + +@pytest.fixture +def delay_siso_tf2(): + P_tf = 3 / (2*s + 5) + D = delay(0.5) + return P_tf * D + + +class TestConstructors: + def test_from_ss(self, simple_siso_tf): + pass + + def test_from_tf(self, tf_one): + delay_lti_tf_one = tf2dlti(tf_one) + julia_A = [] + julia_B = [] + julia_C = [] + julia_D = [[1.]] + assert(np.allclose(delay_lti_tf_one.A, julia_A)) + assert(np.allclose(delay_lti_tf_one.B, julia_B)) + assert(np.allclose(delay_lti_tf_one.C, julia_C)) + assert(np.allclose(delay_lti_tf_one.D, julia_D)) + + +class TestOperators: + def test_add(self, delay_siso_tf, delay_siso_tf2): + G = delay_siso_tf + delay_siso_tf2 + julia_A = [[-1., 0.], [0., -2.5]] + julia_B = [[0., 1., 0.], [0., 0., 1.]] + julia_C = [[1., 1.5], [0., 0.], [0., 0.]] + julia_D = [[0., 0., 0.], [1., 0., 0.], [1., 0., 0.]] + julia_delays = [1.5, 0.5] + assert(np.allclose(G.A , julia_A)) + assert(np.allclose(G.B , julia_B)) + assert(np.allclose(G.C , julia_C)) + assert(np.allclose(G.D , julia_D)) + assert(np.allclose(G.tau , julia_delays)) + + def test_add_constant(self, delay_siso_tf): + G = delay_siso_tf + 2.5 + julia_A = [[-1.]] + julia_B = [[0., 1.]] + julia_C = [[1.], [0.]] + julia_D = [[2.5, 0.], [1., 0.]] + julia_delays = [1.5] + assert(np.allclose(G.A , julia_A)) + assert(np.allclose(G.B , julia_B)) + assert(np.allclose(G.C , julia_C)) + assert(np.allclose(G.D , julia_D)) + assert(np.allclose(G.tau , julia_delays)) + + def test_mul(self, delay_siso_tf, delay_siso_tf2): + G = delay_siso_tf * delay_siso_tf2 + julia_A = [[-1., 0.], [0., -2.5]] + julia_B = [[0., 1., 0.], [0., 0., 1.]] + julia_C = [[1., 0.], [0., 1.5], [0., 0.]] + julia_D = [[0., 0., 0.], [0., 0., 0.], [1., 0., 0.]] + julia_delays = [1.5, 0.5] + assert(np.allclose(G.A , julia_A)) + assert(np.allclose(G.B , julia_B)) + assert(np.allclose(G.C , julia_C)) + assert(np.allclose(G.D , julia_D)) + assert(np.allclose(G.tau , julia_delays)) + + def test_gain_mul(self, delay_siso_tf): + G2 = 2 * delay_siso_tf + julia_A = [[-1.]] + julia_B = [[0., 1.]] + julia_C = [[2.], [0.]] + julia_D = [[0., 0.], [1., 0.]] + julia_delays = [1.5] + assert(np.allclose(G2.A , julia_A)) + assert(np.allclose(G2.B , julia_B)) + assert(np.allclose(G2.C , julia_C)) + assert(np.allclose(G2.D , julia_D)) + assert(np.allclose(G2.tau , julia_delays)) + + def test_tf_mul_delay(self, simple_siso_tf): + G = simple_siso_tf * delay(0.5) + julia_A = [[-1.]] + julia_B = [[0., 1.]] + julia_C = [[1.], [0.]] + julia_D = [[0., 0.], [1., 0.]] + julia_delays = [0.5] + assert(np.allclose(G.A , julia_A)) + assert(np.allclose(G.B , julia_B)) + assert(np.allclose(G.C , julia_C)) + assert(np.allclose(G.D , julia_D)) + assert(np.allclose(G.tau , julia_delays)) + + +class TestFeedback: + def test_feedback_one(self, delay_siso_tf): + G = delay_siso_tf + H = G.feedback() + julia_A = [[-1.]] + julia_B = [[0., 1.]] + julia_C = [[1.], [-1.]] + julia_D = [[0., 0.], [1., 0.]] + julia_delays = [1.5] + assert(np.allclose(H.A , julia_A)) + assert(np.allclose(H.B , julia_B)) + assert(np.allclose(H.C , julia_C)) + assert(np.allclose(H.D , julia_D)) + assert(np.allclose(H.tau , julia_delays)) + + #@pytest.mark.skip() + def test_feedback_tf_one(self, delay_siso_tf, tf_one): + G = delay_siso_tf + H = G.feedback(tf_one) + julia_A = [[-1.]] + julia_B = [[0., 1.]] + julia_C = [[1.], [-1.]] + julia_D = [[0., 0.], [1., 0.]] + julia_delays = [1.5] + + print("HA", H.A) + print("HB", H.B) + print("HC", H.C) + print("HD", H.D) + print("Htau", H.tau) + + assert(np.allclose(H.A , julia_A)) + assert(np.allclose(H.B , julia_B)) + assert(np.allclose(H.C , julia_C)) + assert(np.allclose(H.D , julia_D)) + assert(np.allclose(H.tau , julia_delays)) + + + def test_complex_feedback(self, delay_siso_tf): + G = delay_siso_tf + H = G.feedback(G) + julia_A = [[-1., 0.], [0., -1.]] + julia_B = [[0., 1., 0.], [0., 0., 1.]] + julia_C = [[1., 0.], [0., -1.], [1., 0.]] + julia_D = [[0., 0., 0.], [1., 0., 0], [0., 0., 0.]] + julia_delays = [1.5, 1.5] + + assert(np.allclose(H.A , julia_A)) + assert(np.allclose(H.B , julia_B)) + assert(np.allclose(H.C , julia_C)) + assert(np.allclose(H.D , julia_D)) + assert(np.allclose(H.tau , julia_delays)) + + + + + +class TestPureDelay: + def test_unit_delay(self, pure_delay): + A = [] + B = np.zeros((0,2)) + C = [] + D = [[0., 1.], [1., 0.]] + + assert(np.allclose(pure_delay.A , A)) + assert(np.allclose(pure_delay.B , B)) + assert(np.allclose(pure_delay.C , C)) + assert(np.allclose(pure_delay.D , D)) + + + +class TestDelayLTI: + # comparison with julia controlSystems package + + def test_delay(self): + tf_test = tf([1], [1,1]) * delay(1) + A = [[-1]] + B = [[0,1]] + C = [[1],[0]] + D = [[0,0], [1,0]] + + assert(np.allclose(tf_test.P.A , A)) + assert(np.allclose(tf_test.P.B , B)) + assert(np.allclose(tf_test.P.C , C)) + assert(np.allclose(tf_test.P.D , D)) + + + def test_forced_response(self): + from control.delaylti import DelayLTISystem, tf2dlti + from control.xferfcn import tf + from control.timeresp import forced_response + import matplotlib.pyplot as plt + + tf1 = tf([1], [1.5,1]) * delay(1) + + timepts = np.linspace(0, 10, 100) + input1 = np.zeros(100) + input1[31:] = 1 + resp = forced_response(tf1, timepts=timepts, inputs=input1) + t, y = resp.t, resp.y[0] + + #plt.figure() + #plt.plot(t, input1) + #plt.plot(t, y) + #plt.show() + + + def test_exp(self): + from control.delaylti import exp + from control.xferfcn import tf + + s = tf([1,0], [1]) + exp_delay = exp(-2*s) diff --git a/control/tests/delay_test.py b/control/tests/delay_test.py index 90f936f60..995efb128 100644 --- a/control/tests/delay_test.py +++ b/control/tests/delay_test.py @@ -97,61 +97,6 @@ def testT0(self): np.array(refden), np.array(den)) -class TestDelayLTI: - # comparison with julia controlSystems package - def test_pure_delay(self): - pure_delay = delay(1) - A = [] - B = np.zeros((0,2)) - C = [] - D = [[0., 1.], [1., 0.]] - - assert(np.all(pure_delay.P.A == A)) - assert(np.all(pure_delay.P.B == B)) - assert(np.all(pure_delay.P.C == C)) - assert(np.all(pure_delay.P.D == D)) - - - def test_delay(self): - tf_test = tf([1], [1,1]) * delay(1) - A = [[-1]] - B = [[0,1]] - C = [[1],[0]] - D = [[0,0], [1,0]] - - assert(np.all(tf_test.P.A == A)) - assert(np.all(tf_test.P.B == B)) - assert(np.all(tf_test.P.C == C)) - assert(np.all(tf_test.P.D == D)) - - - def test_forced_response(self): - from control.delaylti import DelayLTISystem, tf2dlti - from control.xferfcn import tf - from control.timeresp import forced_response - import matplotlib.pyplot as plt - - tf1 = tf([1], [1.5,1]) * delay(1) - - timepts = np.linspace(0, 10, 100) - input1 = np.zeros(100) - input1[31:] = 1 - resp = forced_response(tf1, timepts=timepts, inputs=input1) - t, y = resp.t, resp.y[0] - - #plt.figure() - #plt.plot(t, input1) - #plt.plot(t, y) - #plt.show() - - - def test_exp(self): - from control.delaylti import exp - from control.xferfcn import tf - - s = tf([1,0], [1]) - exp_delay = exp(-2*s) - print(exp_delay) diff --git a/control/tests/julia_tests.ipynb b/control/tests/julia_tests.ipynb new file mode 100644 index 000000000..c264924d6 --- /dev/null +++ b/control/tests/julia_tests.ipynb @@ -0,0 +1,522 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 58, + "metadata": {}, + "outputs": [], + "source": [ + "using ControlSystems\n", + "using Plots\n", + "\n", + "s = tf(\"s\")\n", + "simple_siso_tf = tf([1], [1, 1])\n", + "tf_one = tf([1], [1])\n", + "delay_siso_tf = 1 / (s + 1) * delay(1.5)\n", + "delay_siso_tf2 = 3 / (2 * s + 5) * delay(0.5)\n", + "print(\"\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### TestConstructors" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# test_from_ss" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "DelayLtiSystem{Int64, Float64}\n", + "\n", + "P: StateSpace{Continuous, Int64}\n", + "D = \n", + " 1\n", + "\n", + "Continuous-time state-space model\n", + "\n", + "Delays: Float64[]" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# test_from_tf\n", + "DelayLtiSystem(tf_one)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### TestOperators" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "DelayLtiSystem{Float64, Float64}\n", + "\n", + "P: StateSpace{Continuous, Float64}\n", + "A = \n", + " -1.0 0.0\n", + " 0.0 -2.5\n", + "B = \n", + " 0.0 1.0 0.0\n", + " 0.0 0.0 1.0\n", + "C = \n", + " 1.0 1.5\n", + " 0.0 0.0\n", + " 0.0 0.0\n", + "D = \n", + " 0.0 0.0 0.0\n", + " 1.0 0.0 0.0\n", + " 1.0 0.0 0.0\n", + "\n", + "Continuous-time state-space model\n", + "\n", + "Delays: [1.5, 0.5]" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# test_add\n", + "delay_siso_tf + delay_siso_tf2" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "DelayLtiSystem{Float64, Float64}\n", + "\n", + "P: StateSpace{Continuous, Float64}\n", + "A = \n", + " -1.0\n", + "B = \n", + " 0.0 1.0\n", + "C = \n", + " 1.0\n", + " 0.0\n", + "D = \n", + " 2.5 0.0\n", + " 1.0 0.0\n", + "\n", + "Continuous-time state-space model\n", + "\n", + "Delays: [1.5]" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# test_add_constant\n", + "delay_siso_tf + 2.5" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "DelayLtiSystem{Float64, Float64}\n", + "\n", + "P: StateSpace{Continuous, Float64}\n", + "A = \n", + " -1.0 0.0\n", + " 0.0 -2.5\n", + "B = \n", + " 0.0 1.0 0.0\n", + " 0.0 0.0 1.0\n", + "C = \n", + " 1.0 0.0\n", + " 0.0 1.5\n", + " 0.0 0.0\n", + "D = \n", + " 0.0 0.0 0.0\n", + " 0.0 0.0 0.0\n", + " 1.0 0.0 0.0\n", + "\n", + "Continuous-time state-space model\n", + "\n", + "Delays: [1.5, 0.5]" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# test_mul\n", + "delay_siso_tf * delay_siso_tf2" + ] + }, + { + "cell_type": "code", + "execution_count": 56, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "DelayLtiSystem{Float64, Float64}\n", + "\n", + "P: StateSpace{Continuous, Float64}\n", + "A = \n", + " -1.0\n", + "B = \n", + " 0.0 1.0\n", + "C = \n", + " 2.0\n", + " 0.0\n", + "D = \n", + " 0.0 0.0\n", + " 1.0 0.0\n", + "\n", + "Continuous-time state-space model\n", + "\n", + "Delays: [1.5]" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# test_gain_mul\n", + "2 * delay_siso_tf" + ] + }, + { + "cell_type": "code", + "execution_count": 59, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "DelayLtiSystem{Float64, Float64}\n", + "\n", + "P: StateSpace{Continuous, Float64}\n", + "A = \n", + " -1.0\n", + "B = \n", + " 0.0 1.0\n", + "C = \n", + " 1.0\n", + " 0.0\n", + "D = \n", + " 0.0 0.0\n", + " 1.0 0.0\n", + "\n", + "Continuous-time state-space model\n", + "\n", + "Delays: [0.5]" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# test_tf_mul_delay\n", + "simple_siso_tf * delay(0.5)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### TestFeedback" + ] + }, + { + "cell_type": "code", + "execution_count": 61, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "DelayLtiSystem{Float64, Float64}\n", + "\n", + "P: StateSpace{Continuous, Float64}\n", + "A = \n", + " -1.0\n", + "B = \n", + " 0.0 1.0\n", + "C = \n", + " 1.0\n", + " -1.0\n", + "D = \n", + " 0.0 0.0\n", + " 1.0 0.0\n", + "\n", + "Continuous-time state-space model\n", + "\n", + "Delays: [1.5]" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# test_feedback_one\n", + "feedback(delay_siso_tf, 1)" + ] + }, + { + "cell_type": "code", + "execution_count": 62, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "DelayLtiSystem{Float64, Float64}\n", + "\n", + "P: StateSpace{Continuous, Float64}\n", + "A = \n", + " -1.0\n", + "B = \n", + " 0.0 1.0\n", + "C = \n", + " 1.0\n", + " -1.0\n", + "D = \n", + " 0.0 0.0\n", + " 1.0 0.0\n", + "\n", + "Continuous-time state-space model\n", + "\n", + "Delays: [1.5]" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# test_feedback_tf_one\n", + "feedback(delay_siso_tf, tf_one)" + ] + }, + { + "cell_type": "code", + "execution_count": 43, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "DelayLtiSystem{Float64, Float64}\n", + "\n", + "P: StateSpace{Continuous, Float64}\n", + "A = \n", + " -1.0\n", + "B = \n", + " 0.0 1.0\n", + "C = \n", + " 1.0\n", + " -1.0\n", + "D = \n", + " 0.0 0.0\n", + " 1.0 0.0\n", + "\n", + "Continuous-time state-space model\n", + "\n", + "Delays: [1.5]" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "tf_one = tf([1], [1])\n", + "ss_one = ss(tf_one)\n", + "\n", + "GF = feedback(G, ss_one) " + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "DelayLtiSystem{Float64, Float64}\n", + "\n", + "P: StateSpace{Continuous, Float64}\n", + "D = \n", + " 0.0 1.0\n", + " 1.0 0.0\n", + "\n", + "Continuous-time state-space model\n", + "\n", + "Delays: [2.5]" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "delay(2.5)" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "ControlSystemsBase.PartitionedStateSpace{Continuous, StateSpace{Continuous, Float64}}(StateSpace{Continuous, Float64}\n", + "A = \n", + " -1.0\n", + "B = \n", + " 0.0 1.0\n", + "C = \n", + " 1.0\n", + " 0.0\n", + "D = \n", + " 0.0 0.0\n", + " 1.0 0.0\n", + "\n", + "Continuous-time state-space model, 1, 1)" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "test = tf([1], [1, 1]) * delay(1)\n", + "test.P" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "StateSpace{Continuous, Float64}\n", + "A = \n", + " -1.0\n", + "B = \n", + " 1.0\n", + "C = \n", + " 1.0\n", + "D = \n", + " 0.0\n", + "\n", + "Continuous-time state-space model" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "ss1 = ss(tf([1], [1, 1]))" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "DelayLtiSystem{Int64, Float64}\n", + "\n", + "P: StateSpace{Continuous, Int64}\n", + "A = \n", + " -1\n", + "B = \n", + " 1\n", + "C = \n", + " 1\n", + "D = \n", + " 0\n", + "\n", + "Continuous-time state-space model\n", + "\n", + "Delays: [2.0]" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "ss_ = ss([-1], [1], [1], [0])\n", + "DelayLtiSystem(ss_, [2.])" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Julia 1.11.3", + "language": "julia", + "name": "julia-1.11" + }, + "language_info": { + "file_extension": ".jl", + "mimetype": "application/julia", + "name": "julia", + "version": "1.11.3" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/control/timeresp.py b/control/timeresp.py index e3d1e0cda..56b9eedc7 100644 --- a/control/timeresp.py +++ b/control/timeresp.py @@ -1190,21 +1190,21 @@ def f(t, x): ##print("D11", sys.D11) #print("D12", sys.D12) #print("x", x) - print("U", U) - print("ndim U", np.ndim(U)) + #print("U", U) + #print("ndim U", np.ndim(U)) #print("wf(zs)", wf(zs)) #print("interp U", np.interp(t, T, U)) - print("C1", P.C1) - print("x", np.array(x)) + #print("C1", P.C1) + #print("x", np.array(x)) - print("D11", P.D11) - print("inter U", inter_u(t)) + #print("D11", P.D11) + #print("inter U", inter_u(t)) - print("D12", P.D12) - print("wf(zs)", wf(zs)) + #print("D12", P.D12) + #print("wf(zs)", wf(zs)) - print("") + #print("") y = P.C1 @ np.array(x) + P.D11 @ inter_u(t) + P.D12 @ wf(zs) @@ -1659,7 +1659,7 @@ def step_response( U = np.zeros((sys.ninputs, T.size)) U[i, :] = np.ones_like(T) - print(U) + #print(U) response = forced_response(sys, T, U, X0, squeeze=True, params=params) inpidx = i if input is None else 0 From b6c0cdeaa69405a1590383bb4b6ef2644dc5d982 Mon Sep 17 00:00:00 2001 From: Mathieu Sylvain Date: Fri, 28 Mar 2025 11:31:32 +0100 Subject: [PATCH 03/16] mimo building of delay systems --- control/delaylti.py | 68 ++++++-------- control/partitionedssp.py | 46 +++++++++ control/tests/delay_lti_test.py | 106 +++++++++++++++++---- control/tests/julia_tests.ipynb | 161 +++++++++++++++++++++++++++++++- 4 files changed, 324 insertions(+), 57 deletions(-) diff --git a/control/delaylti.py b/control/delaylti.py index 12a217887..02d5d3c2e 100644 --- a/control/delaylti.py +++ b/control/delaylti.py @@ -274,44 +274,6 @@ def __repr__(self): f"P={self.P.__repr__()}, tau={self.tau.__repr__()})") - - - -def delay(tau): - # ... (keep existing implementation) ... - if isinstance(tau, (int, float)): - tau_arr = np.array([float(tau)]) - elif isinstance(tau, (list, np.ndarray)): - tau_arr = np.asarray(tau, dtype=float) - else: - raise TypeError("tau must be a number, list, or NumPy array") - - n_delays = len(tau_arr) - if n_delays == 0: - # Should return identity? Or error? Let's return identity for now. - # A static gain system is StateSpace with empty A, B, C. - return DelayLTISystem.from_ss(StateSpace(np.eye(1))) - - # Create the P matrix for a pure delay block w(t) = z(t-tau) - # y = w, z = u - # P maps [u, w] -> [y, z] - # y = 0*u + 1*w => D11=0, D12=I - # z = 1*u + 0*w => D21=I, D22=0 - D = np.block([ - [np.zeros((n_delays, n_delays)), np.eye(n_delays)], - [np.eye(n_delays) , np.zeros((n_delays, n_delays))] - ]) - # No states needed for pure delay block representation - A = np.zeros((0,0)) - B = np.zeros((0, 2 * n_delays)) - C = np.zeros((2 * n_delays, 0)) - - # Partition: external input u -> nu1, external output y -> ny1 - P = PartitionedStateSpace(StateSpace(A, B, C, D), nu1=n_delays, ny1=n_delays) - return DelayLTISystem(P, tau_arr) - - - def delay(tau): """ Pure delay @@ -365,7 +327,6 @@ def tf2dlti(tf: TransferFunction): return DelayLTISystem.from_ss(ss_tf) - def _promote_delay_system_types(sys1, sys2): """Determine the numeric and delay types for combined systems.""" # Promote numeric types based on underlying StateSpace @@ -391,3 +352,32 @@ def _convert_to_delay_lti(sys): return tf2dlti(sys) else: raise TypeError("Unsupported system type for DelayLTISystem conversion: {}".format(type(sys))) + + +def vcat(*systems: list[DelayLTISystem]) -> DelayLTISystem: + from .partitionedssp import vcat_pss + + if not all(isinstance(sys, DelayLTISystem) for sys in systems): + raise TypeError("All inputs must be DelayLTISystems") + + part_ssp = [sys.P for sys in systems] + P = vcat_pss(*part_ssp) + tau = np.concatenate([sys.tau for sys in systems]) + return DelayLTISystem(P, tau) + + +def hcat(*systems: list[DelayLTISystem]) -> DelayLTISystem: + from .partitionedssp import hcat_pss + + if not(all(isinstance(sys, DelayLTISystem) for sys in systems)): + raise TypeError("All inputs must be DelayLTISystems") + + part_ssp = [sys.P for sys in systems] + P = hcat_pss(*part_ssp) + tau = np.concatenate([sys.tau for sys in systems]) + return DelayLTISystem(P, tau) + + +def mimo_delay(array: np.ndarray[DelayLTISystem]): + rows = [hcat(*row) for row in array] + return vcat(*rows) \ No newline at end of file diff --git a/control/partitionedssp.py b/control/partitionedssp.py index 9cf4a990b..1f54f6b3c 100644 --- a/control/partitionedssp.py +++ b/control/partitionedssp.py @@ -193,3 +193,49 @@ def feedback(self, other): return PartitionedStateSpace(P_new, other.nu1, self.ny1) + +def vcat_pss(*systems: list[PartitionedStateSpace]) -> PartitionedStateSpace: + + if not all(isinstance(pss, PartitionedStateSpace) for pss in systems): + raise TypeError("All arguments must be PartitionedStateSpace objects") + + # Not used, to be checked + nu1 = systems[0].nu1 + ny1 = sum(space.ny1 for space in systems) + + if not (all(space.nu1 == nu1 for space in systems)): + raise ValueError("All PartitionedStateSpace objects must have the same input dimension") + + A = block_diag(*[space.A for space in systems]) + B1 = np.vstack([space.B1 for space in systems]) + B2 = block_diag(*[space.B2 for space in systems]) + C1 = block_diag(*[space.C1 for space in systems]) + C2 = block_diag(*[space.C2 for space in systems]) + D11 = np.vstack([space.D11 for space in systems]) + D12 = block_diag(*[space.D12 for space in systems]) + D21 = np.vstack([space.D21 for space in systems]) + D22 = block_diag(*[space.D22 for space in systems]) + + return PartitionedStateSpace.from_matrices(A, B1, B2, C1, C2, D11, D12, D21, D22) + + +def hcat_pss(*systems: list[PartitionedStateSpace]) -> PartitionedStateSpace: + + nu1 = sum(space.nu1 for space in systems) + ny1 = systems[0].ny1 + if not (all(space.ny1 == ny1 for space in systems)): + raise ValueError("All PartitionedStateSpace objects must have the same output dimension") + + A = block_diag(*[space.A for space in systems]) + B1 = block_diag(*[space.B1 for space in systems]) + B2 = block_diag(*[space.B2 for space in systems]) + C1 = np.hstack([space.C1 for space in systems]) + C2 = block_diag(*[space.C2 for space in systems]) + D11 = np.hstack([space.D11 for space in systems]) + D12 = np.hstack([space.D12 for space in systems]) + D21 = block_diag(*[space.D21 for space in systems]) + D22 = block_diag(*[space.D22 for space in systems]) + + return PartitionedStateSpace.from_matrices(A, B1, B2, C1, C2, D11, D12, D21, D22) + + diff --git a/control/tests/delay_lti_test.py b/control/tests/delay_lti_test.py index 1bc6e4b46..aa4cf5636 100644 --- a/control/tests/delay_lti_test.py +++ b/control/tests/delay_lti_test.py @@ -1,10 +1,19 @@ import numpy as np import pytest -from control.delaylti import delay, tf2dlti +from dataclasses import dataclass +from control.delaylti import delay, tf2dlti, exp, hcat, vcat, mimo_delay from control.statesp import ss from control.xferfcn import tf +@dataclass +class JuliaResults: + A: np.ndarray + B: np.ndarray + C: np.ndarray + D: np.ndarray + tau: np.ndarray + s = tf('s') @pytest.fixture @@ -32,6 +41,55 @@ def delay_siso_tf2(): D = delay(0.5) return P_tf * D +@pytest.fixture +def wood_berry(): + P11_tf = 12.8 / (16.7*s + 1) + P12_tf = -18.9 / (21.0*s + 1) + P21_tf = 6.6 / (10.9*s + 1) + P22_tf = -19.4 / (14.4*s + 1) + G11 = P11_tf * delay(1.0) + G12 = P12_tf * delay(3.0) + G21 = P21_tf * delay(7.0) + G22 = P22_tf * delay(3.0) + Row1 = hcat(G11, G12) + Row2 = hcat(G21, G22) + G_wb = vcat(Row1, Row2) + return G_wb + +@pytest.fixture +def array_wood_berry(): + G_wb = mimo_delay([ + [12.8 / (16.7*s + 1) * exp(-s), -18.9 / (21.0*s + 1) * exp(-3*s)], + [6.6 / (10.9*s + 1) * exp(-7*s), -19.4 / (14.4*s + 1) * exp(-3*s)] + ]) + return G_wb + +@pytest.fixture +def julia_wood_berry(): + return JuliaResults( + A = [[-0.059880239520958084, 0.0, 0.0, 0.0], + [0.0, -0.047619047619047616, 0.0 , 0.0], + [0.0, 0.0, -0.09174311926605504, 0.0], + [0.0, 0.0, 0.0, -0.06944444444444445]], + B = [[0.0, 0.0, 1.0, 0.0, 0.0, 0.0], + [0.0, 0.0, 0.0, 1.0, 0.0, 0.0], + [0.0, 0.0, 0.0, 0.0, 1.0, 0.0], + [0.0, 0.0, 0.0, 0.0, 0.0, 1.0]], + C = [[0.7664670658682635, -0.8999999999999999, 0.0, 0.0], + [0.0, 0.0, 0.6055045871559632, -1.347222222222222], + [0.0, 0.0, 0.0, 0.0], + [0.0, 0.0, 0.0, 0.0], + [0.0, 0.0, 0.0, 0.0], + [0.0, 0.0, 0.0, 0.0]], + D = [[0.0, 0.0, 0.0, 0.0, 0.0, 0.0], + [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], + [1.0, 0.0, 0.0, 0.0, 0.0, 0.0], + [0.0, 1.0, 0.0, 0.0, 0.0, 0.0], + [1.0, 0.0, 0.0, 0.0, 0.0, 0.0], + [0.0, 1.0, 0.0, 0.0, 0.0, 0.0]], + tau= [1.0, 3.0, 7.0, 3.0] + ) + class TestConstructors: def test_from_ss(self, simple_siso_tf): @@ -48,6 +106,19 @@ def test_from_tf(self, tf_one): assert(np.allclose(delay_lti_tf_one.C, julia_C)) assert(np.allclose(delay_lti_tf_one.D, julia_D)) + def test_hcat_vcat(self, wood_berry, julia_wood_berry): + assert(np.allclose(wood_berry.A, julia_wood_berry.A)) + assert(np.allclose(wood_berry.B, julia_wood_berry.B)) + assert(np.allclose(wood_berry.C, julia_wood_berry.C)) + assert(np.allclose(wood_berry.D, julia_wood_berry.D)) + assert(np.allclose(wood_berry.tau, julia_wood_berry.tau)) + + def test_mimo_delay(self, array_wood_berry, julia_wood_berry): + assert(np.allclose(array_wood_berry.A, julia_wood_berry.A)) + assert(np.allclose(array_wood_berry.B, julia_wood_berry.B)) + assert(np.allclose(array_wood_berry.C, julia_wood_berry.C)) + assert(np.allclose(array_wood_berry.D, julia_wood_berry.D)) + assert(np.allclose(array_wood_berry.tau, julia_wood_berry.tau)) class TestOperators: def test_add(self, delay_siso_tf, delay_siso_tf2): @@ -131,7 +202,6 @@ def test_feedback_one(self, delay_siso_tf): assert(np.allclose(H.D , julia_D)) assert(np.allclose(H.tau , julia_delays)) - #@pytest.mark.skip() def test_feedback_tf_one(self, delay_siso_tf, tf_one): G = delay_siso_tf H = G.feedback(tf_one) @@ -140,13 +210,6 @@ def test_feedback_tf_one(self, delay_siso_tf, tf_one): julia_C = [[1.], [-1.]] julia_D = [[0., 0.], [1., 0.]] julia_delays = [1.5] - - print("HA", H.A) - print("HB", H.B) - print("HC", H.C) - print("HD", H.D) - print("Htau", H.tau) - assert(np.allclose(H.A , julia_A)) assert(np.allclose(H.B , julia_B)) assert(np.allclose(H.C , julia_C)) @@ -162,7 +225,6 @@ def test_complex_feedback(self, delay_siso_tf): julia_C = [[1., 0.], [0., -1.], [1., 0.]] julia_D = [[0., 0., 0.], [1., 0., 0], [0., 0., 0.]] julia_delays = [1.5, 1.5] - assert(np.allclose(H.A , julia_A)) assert(np.allclose(H.B , julia_B)) assert(np.allclose(H.C , julia_C)) @@ -170,21 +232,31 @@ def test_complex_feedback(self, delay_siso_tf): assert(np.allclose(H.tau , julia_delays)) - - - class TestPureDelay: def test_unit_delay(self, pure_delay): - A = [] - B = np.zeros((0,2)) - C = [] + A = np.empty((0,0)) + B = np.empty((0,2)) + C = np.empty((2,0)) D = [[0., 1.], [1., 0.]] - + julia_delays = [1.0] assert(np.allclose(pure_delay.A , A)) assert(np.allclose(pure_delay.B , B)) assert(np.allclose(pure_delay.C , C)) assert(np.allclose(pure_delay.D , D)) + assert(np.allclose(pure_delay.tau , julia_delays)) + def test_exp_delay(self): + G = exp(-2*s) + A = np.empty((0,0)) + B = np.empty((0,2)) + C = np.empty((2,0)) + D = [[0., 1.], [1., 0.]] + julia_delays = [2.0] + assert(np.allclose(G.A , A)) + assert(np.allclose(G.B , B)) + assert(np.allclose(G.C , C)) + assert(np.allclose(G.D , D)) + assert(np.allclose(G.tau , julia_delays)) class TestDelayLTI: diff --git a/control/tests/julia_tests.ipynb b/control/tests/julia_tests.ipynb index c264924d6..a451503b8 100644 --- a/control/tests/julia_tests.ipynb +++ b/control/tests/julia_tests.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "code", - "execution_count": 58, + "execution_count": 89, "metadata": {}, "outputs": [], "source": [ @@ -12,8 +12,12 @@ "s = tf(\"s\")\n", "simple_siso_tf = tf([1], [1, 1])\n", "tf_one = tf([1], [1])\n", + "pure_delay = delay(1)\n", "delay_siso_tf = 1 / (s + 1) * delay(1.5)\n", "delay_siso_tf2 = 3 / (2 * s + 5) * delay(0.5)\n", + "delay_tito_tf = [1/(s+1)*exp(-0.5*s) 1/(s+2)*exp(-s); 1/(s+3)*exp(-s) 1/(s+4)*exp(-s)]\n", + "wood_berry = [12.8/(16.7s+1)*exp(-s) -18.9/(21s+1)*exp(-3s); 6.6/(10.9s+1)*exp(-7s) -19.4/(14.4s+1)*exp(-3s)]\n", + "\n", "print(\"\")" ] }, @@ -61,6 +65,56 @@ "DelayLtiSystem(tf_one)" ] }, + { + "cell_type": "code", + "execution_count": 90, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "DelayLtiSystem{Float64, Float64}\n", + "\n", + "P: StateSpace{Continuous, Float64}\n", + "A = \n", + " -0.059880239520958084 0.0 0.0 0.0\n", + " 0.0 -0.047619047619047616 0.0 0.0\n", + " 0.0 0.0 -0.09174311926605504 0.0\n", + " 0.0 0.0 0.0 -0.06944444444444445\n", + "B = \n", + " 0.0 0.0 1.0 0.0 0.0 0.0\n", + " 0.0 0.0 0.0 1.0 0.0 0.0\n", + " 0.0 0.0 0.0 0.0 1.0 0.0\n", + " 0.0 0.0 0.0 0.0 0.0 1.0\n", + "C = \n", + " 0.7664670658682635 -0.8999999999999999 0.0 0.0\n", + " 0.0 0.0 0.6055045871559632 -1.347222222222222\n", + " 0.0 0.0 0.0 0.0\n", + " 0.0 0.0 0.0 0.0\n", + " 0.0 0.0 0.0 0.0\n", + " 0.0 0.0 0.0 0.0\n", + "D = \n", + " 0.0 0.0 0.0 0.0 0.0 0.0\n", + " 0.0 0.0 0.0 0.0 0.0 0.0\n", + " 1.0 0.0 0.0 0.0 0.0 0.0\n", + " 0.0 1.0 0.0 0.0 0.0 0.0\n", + " 1.0 0.0 0.0 0.0 0.0 0.0\n", + " 0.0 1.0 0.0 0.0 0.0 0.0\n", + "\n", + "Continuous-time state-space model\n", + "\n", + "Delays: [1.0, 3.0, 7.0, 3.0]" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# test_wood_berry\n", + "wood_berry" + ] + }, { "cell_type": "markdown", "metadata": {}, @@ -335,6 +389,111 @@ "feedback(delay_siso_tf, tf_one)" ] }, + { + "cell_type": "code", + "execution_count": 79, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "DelayLtiSystem{Float64, Float64}\n", + "\n", + "P: StateSpace{Continuous, Float64}\n", + "A = \n", + " -1.0 0.0\n", + " 0.0 -1.0\n", + "B = \n", + " 0.0 1.0 0.0\n", + " 0.0 0.0 1.0\n", + "C = \n", + " 1.0 0.0\n", + " 0.0 -1.0\n", + " 1.0 0.0\n", + "D = \n", + " 0.0 0.0 0.0\n", + " 1.0 0.0 0.0\n", + " 0.0 0.0 0.0\n", + "\n", + "Continuous-time state-space model\n", + "\n", + "Delays: [1.5, 1.5]" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# test_complext_feedback\n", + "feedback(delay_siso_tf, delay_siso_tf)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### TestPureDelay" + ] + }, + { + "cell_type": "code", + "execution_count": 87, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "DelayLtiSystem{Float64, Float64}\n", + "\n", + "P: StateSpace{Continuous, Float64}\n", + "D = \n", + " 0.0 1.0\n", + " 1.0 0.0\n", + "\n", + "Continuous-time state-space model\n", + "\n", + "Delays: [1.0]" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# test_unit_delay\n", + "pure_delay" + ] + }, + { + "cell_type": "code", + "execution_count": 88, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "DelayLtiSystem{Float64, Float64}\n", + "\n", + "P: StateSpace{Continuous, Float64}\n", + "D = \n", + " 0.0 1.0\n", + " 1.0 0.0\n", + "\n", + "Continuous-time state-space model\n", + "\n", + "Delays: [2.0]" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# test_exp_delay\n", + "exp(-2*s)" + ] + }, { "cell_type": "code", "execution_count": 43, From 8dcab549ec36bda02d411ee12942b4a8086ec714 Mon Sep 17 00:00:00 2001 From: Mathieu Sylvain Date: Sat, 29 Mar 2025 08:59:34 +0100 Subject: [PATCH 04/16] implementation of working frequency response for delayed siso system --- control/delaylti.py | 65 ++++++++++--------- control/tests/delay_lti_test.py | 21 +++++++ control/tests/julia_tests.ipynb | 107 +++++++++++++++++++++++++------- 3 files changed, 143 insertions(+), 50 deletions(-) diff --git a/control/delaylti.py b/control/delaylti.py index 02d5d3c2e..77e84d5f5 100644 --- a/control/delaylti.py +++ b/control/delaylti.py @@ -4,7 +4,7 @@ from .statesp import ss, StateSpace, tf2ss from .xferfcn import TransferFunction from .iosys import _process_iosys_keywords -from scipy.linalg import solve, LinAlgError +from scipy.linalg import solve, LinAlgError, inv @@ -156,15 +156,9 @@ def feedback(self, other=1, sign=-1): """ if isinstance(other, DelayLTISystem): - psys_new = self.P.feedback(other.P) # Use PartitionedStateSpace.feedback - - # Concatenate the delay vectors + psys_new = self.P.feedback(other.P) tau_new = np.concatenate([self.tau, other.tau]) - - # Determine result types and construct the new DelayLTISystem - T, S = _promote_delay_system_types(self, other) - ResType = type(self)._most_specific_constructor(T, S) - return ResType(psys_new, tau_new) + return DelayLTISystem(psys_new, tau_new) elif isinstance(other, (StateSpace, TransferFunction)): other_delay_lti = _convert_to_delay_lti(other) @@ -239,27 +233,42 @@ def feedback(self, other=1, sign=-1): # Determine result types and construct the new DelayLTISystem # Need to promote delay type S with potential default float _, S = _promote_delay_system_types(self, self) - ResType = type(self)._most_specific_constructor(T, S) - return ResType(clsys_part, taus) + return DelayLTISystem(clsys_part, taus) + + def frequency_response(self, omega=None, squeeze=None): + from .frdata import FrequencyResponseData - # Helper to get the most specific constructor like DelayLtiSystem{T,S} - @classmethod - def _most_specific_constructor(cls, T_num, S_delay): - # This is a bit of a workaround for Python's type system. - # It assumes the class name is DelayLTISystem and reconstructs it. - # If you rename your class, you'll need to change this. - # It also doesn't handle potential subclasses gracefully. - base_name = cls.__name__ - if base_name == "DelayLTISystem": - # Need to create the types dynamically if they don't exist? No, just use them. - # This relies on the generic class DelayLTISystem being available. - # We might need to import it specifically if this method is called - # from outside the class definition scope in some contexts. - return DelayLTISystem # Return the generic type, __init__ will handle types - else: - # Fallback or error for subclasses? - return cls # Return the current class type + if omega is None: + # Use default frequency range + from .freqplot import _default_frequency_range + omega = _default_frequency_range(self) + + omega = np.sort(np.array(omega, ndmin=1)) + + ny = self.noutputs + nu = self.ninputs + response = np.empty((ny, nu, len(omega)), dtype=complex) + P_fr = self.P.sys(1j * omega) + + for i,w in enumerate(omega): + P11_fr = P_fr[:ny, :nu, i] + P12_fr = P_fr[:ny, nu:, i] + P21_fr = P_fr[ny:, :nu, i] + P22_fr = P_fr[ny:, nu:, i] + delay_term_inv = np.exp(1j * w * self.tau) + delay_term_fr = np.diag(delay_term_inv) + response[:,:,i] = P11_fr + P12_fr @ inv(delay_term_fr - P22_fr) @ P21_fr + + return FrequencyResponseData( + response, omega, return_magphase=True, squeeze=squeeze, + dt=self.dt, sysname=self.name, inputs=self.input_labels, + outputs=self.output_labels, plot_type='bode') + + def issiso(self): + """Check if the system is single-input, single-output.""" + # Based on EXTERNAL dimensions + return self.ninputs == 1 and self.noutputs == 1 def __str__(self): # ... (existing string representation) ... diff --git a/control/tests/delay_lti_test.py b/control/tests/delay_lti_test.py index aa4cf5636..88d27a3a4 100644 --- a/control/tests/delay_lti_test.py +++ b/control/tests/delay_lti_test.py @@ -301,3 +301,24 @@ def test_exp(self): s = tf([1,0], [1]) exp_delay = exp(-2*s) + + + +class TestFreqResp: + + def test_siso_freq_resp(self, delay_siso_tf): + w = np.logspace(-2, 2, 10, base=10) + resp = delay_siso_tf.frequency_response(w) + julia_freq_resp = np.array([ + 0.9996375439798979 - 0.024995812946127068*1j, + 0.9971959288676081 - 0.06947384247065888*1j, + 0.9784258086709292 - 0.1916345960427577*1j, + 0.8407906760670428 - 0.4987123630856*1j, + 0.11248651027122411 - 0.8502796738335039*1j, + -0.47530358539375506 + 0.19610650928623855*1j, + -0.09481872294498477 - 0.18805963874096887*1j, + -0.033328025868165176 - 0.06963017462205673*1j, + 0.01265424121150209 + 0.02476963547555173*1j, + 0.007217967580181465 - 0.006920328388981937*1j + ], dtype=complex) + assert(np.allclose(np.array(resp.complex), julia_freq_resp)) \ No newline at end of file diff --git a/control/tests/julia_tests.ipynb b/control/tests/julia_tests.ipynb index a451503b8..424f1c66b 100644 --- a/control/tests/julia_tests.ipynb +++ b/control/tests/julia_tests.ipynb @@ -1,8 +1,21 @@ { "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Julia tests\n", + "\n", + "This notebook is using ControlSystems.jl library to produce results about delay systems. Theses results are then compared to python-control new delays implementation, as a way to benchmark it. The notebook follows the test progression of the delay_lti_test.py file. \n", + "\n", + "In order to run this notebook, the user should install julia and the ControlSystems.jl library:\n", + "- https://julialang.org/downloads/ \n", + "- https://github.com/JuliaControl/ControlSystems.jl" + ] + }, { "cell_type": "code", - "execution_count": 89, + "execution_count": 97, "metadata": {}, "outputs": [], "source": [ @@ -30,7 +43,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 98, "metadata": {}, "outputs": [], "source": [ @@ -39,7 +52,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 99, "metadata": {}, "outputs": [ { @@ -67,7 +80,7 @@ }, { "cell_type": "code", - "execution_count": 90, + "execution_count": 100, "metadata": {}, "outputs": [ { @@ -124,7 +137,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 101, "metadata": {}, "outputs": [ { @@ -164,7 +177,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 102, "metadata": {}, "outputs": [ { @@ -200,7 +213,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 103, "metadata": {}, "outputs": [ { @@ -240,7 +253,7 @@ }, { "cell_type": "code", - "execution_count": 56, + "execution_count": 104, "metadata": {}, "outputs": [ { @@ -276,7 +289,7 @@ }, { "cell_type": "code", - "execution_count": 59, + "execution_count": 105, "metadata": {}, "outputs": [ { @@ -319,7 +332,7 @@ }, { "cell_type": "code", - "execution_count": 61, + "execution_count": 106, "metadata": {}, "outputs": [ { @@ -355,7 +368,7 @@ }, { "cell_type": "code", - "execution_count": 62, + "execution_count": 107, "metadata": {}, "outputs": [ { @@ -391,7 +404,7 @@ }, { "cell_type": "code", - "execution_count": 79, + "execution_count": 108, "metadata": {}, "outputs": [ { @@ -438,7 +451,7 @@ }, { "cell_type": "code", - "execution_count": 87, + "execution_count": 109, "metadata": {}, "outputs": [ { @@ -467,7 +480,7 @@ }, { "cell_type": "code", - "execution_count": 88, + "execution_count": 110, "metadata": {}, "outputs": [ { @@ -496,7 +509,7 @@ }, { "cell_type": "code", - "execution_count": 43, + "execution_count": 111, "metadata": {}, "outputs": [ { @@ -534,7 +547,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 112, "metadata": {}, "outputs": [ { @@ -562,7 +575,7 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 113, "metadata": {}, "outputs": [ { @@ -594,7 +607,7 @@ }, { "cell_type": "code", - "execution_count": 15, + "execution_count": 114, "metadata": {}, "outputs": [ { @@ -623,7 +636,7 @@ }, { "cell_type": "code", - "execution_count": 26, + "execution_count": 115, "metadata": {}, "outputs": [ { @@ -655,12 +668,62 @@ "DelayLtiSystem(ss_, [2.])" ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### TestFreqResp" + ] + }, { "cell_type": "code", - "execution_count": null, + "execution_count": 116, "metadata": {}, - "outputs": [], - "source": [] + "outputs": [ + { + "data": { + "text/plain": [ + "1×1×10 Array{ComplexF64, 3}:\n", + "[:, :, 1] =\n", + " 0.9996375439798979 - 0.024995812946127068im\n", + "\n", + "[:, :, 2] =\n", + " 0.9971959288676081 - 0.06947384247065888im\n", + "\n", + "[:, :, 3] =\n", + " 0.9784258086709292 - 0.1916345960427577im\n", + "\n", + "[:, :, 4] =\n", + " 0.8407906760670428 - 0.4987123630856im\n", + "\n", + "[:, :, 5] =\n", + " 0.11248651027122411 - 0.8502796738335039im\n", + "\n", + "[:, :, 6] =\n", + " -0.47530358539375506 + 0.19610650928623855im\n", + "\n", + "[:, :, 7] =\n", + " -0.09481872294498477 - 0.18805963874096887im\n", + "\n", + "[:, :, 8] =\n", + " -0.033328025868165176 - 0.06963017462205673im\n", + "\n", + "[:, :, 9] =\n", + " 0.01265424121150209 + 0.02476963547555173im\n", + "\n", + "[:, :, 10] =\n", + " 0.007217967580181465 - 0.006920328388981937im" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# test_siso_freq_resp\n", + "w = exp10.(LinRange(-2,2,10))\n", + "freqresp(delay_siso_tf, w)" + ] } ], "metadata": { From 9b7b0624192862e93ce5b7eb97518fb5fa40b187 Mon Sep 17 00:00:00 2001 From: Mathieu Sylvain Date: Sun, 30 Mar 2025 07:47:11 +0200 Subject: [PATCH 05/16] __call__ implementation to use lti frequency response function --- control/delaylti.py | 51 +++++++++++++++++++-------------------------- 1 file changed, 21 insertions(+), 30 deletions(-) diff --git a/control/delaylti.py b/control/delaylti.py index 77e84d5f5..a49c8abbb 100644 --- a/control/delaylti.py +++ b/control/delaylti.py @@ -234,41 +234,32 @@ def feedback(self, other=1, sign=-1): # Need to promote delay type S with potential default float _, S = _promote_delay_system_types(self, self) return DelayLTISystem(clsys_part, taus) - - def frequency_response(self, omega=None, squeeze=None): - from .frdata import FrequencyResponseData - - if omega is None: - # Use default frequency range - from .freqplot import _default_frequency_range - omega = _default_frequency_range(self) - - omega = np.sort(np.array(omega, ndmin=1)) - - ny = self.noutputs - nu = self.ninputs - response = np.empty((ny, nu, len(omega)), dtype=complex) - - P_fr = self.P.sys(1j * omega) - - for i,w in enumerate(omega): - P11_fr = P_fr[:ny, :nu, i] - P12_fr = P_fr[:ny, nu:, i] - P21_fr = P_fr[ny:, :nu, i] - P22_fr = P_fr[ny:, nu:, i] - delay_term_inv = np.exp(1j * w * self.tau) - delay_term_fr = np.diag(delay_term_inv) - response[:,:,i] = P11_fr + P12_fr @ inv(delay_term_fr - P22_fr) @ P21_fr - - return FrequencyResponseData( - response, omega, return_magphase=True, squeeze=squeeze, - dt=self.dt, sysname=self.name, inputs=self.input_labels, - outputs=self.output_labels, plot_type='bode') def issiso(self): """Check if the system is single-input, single-output.""" # Based on EXTERNAL dimensions return self.ninputs == 1 and self.noutputs == 1 + + def __call__(self, x, squeeze=None, warn_infinite=True): + x_arr = np.atleast_1d(x).astype(complex, copy=False) + + if len(x_arr.shape) > 1: + raise ValueError("input list must be 1D") + + out = np.empty((self.noutputs, self.ninputs, len(x_arr)), dtype=complex) + + sys_call = self.P.sys(x, squeeze=squeeze, warn_infinite=warn_infinite) + ny = self.noutputs + nu = self.ninputs + for i, xi in enumerate(x): + P11_fr = sys_call[:ny, :nu, i] + P12_fr = sys_call[:ny, nu:, i] + P21_fr = sys_call[ny:, :nu, i] + P22_fr = sys_call[ny:, nu:, i] + delay_term_inv = np.exp(xi * self.tau) + delay_term_fr = np.diag(delay_term_inv) + out[:,:,i] = P11_fr + P12_fr @ inv(delay_term_fr - P22_fr) @ P21_fr + return out def __str__(self): # ... (existing string representation) ... From e8a197bd03649448f74dfe68fa5c8fa1b3ecb1a7 Mon Sep 17 00:00:00 2001 From: Mathieu Sylvain Date: Sun, 30 Mar 2025 17:12:50 +0200 Subject: [PATCH 06/16] delay systems handle freq plots (julia comparison ok). Time to work on the DDE integration --- control/delaylti.py | 128 +++++--- control/freqplot.py | 3 +- control/statesp.py | 3 +- control/tests/delay_lti_test.py | 132 ++++----- control/tests/julia_tests.ipynb | 503 +++++++++++++++++++++++++------- control/timeresp.py | 11 +- 6 files changed, 566 insertions(+), 214 deletions(-) diff --git a/control/delaylti.py b/control/delaylti.py index a49c8abbb..8ba9e5e03 100644 --- a/control/delaylti.py +++ b/control/delaylti.py @@ -4,11 +4,11 @@ from .statesp import ss, StateSpace, tf2ss from .xferfcn import TransferFunction from .iosys import _process_iosys_keywords -from scipy.linalg import solve, LinAlgError, inv +from scipy.linalg import solve, LinAlgError, inv, eigvals -class DelayLTISystem(LTI): +class DelayLTI(LTI): def __init__(self, P: PartitionedStateSpace, tau: np.ndarray = [], **kwargs): @@ -55,29 +55,83 @@ def from_ss(cls, sys: StateSpace, tau: np.ndarray = []): @classmethod def from_tf(cls, sys: TransferFunction, tau: np.ndarray = []): - return DelayLTISystem.from_ss(tf2ss(sys), tau) + return DelayLTI.from_ss(tf2ss(sys), tau) def size(self): return (self.noutputs, self.ninputs) + + def poles(self): + """Compute the poles of a delay lti system.""" + + return eigvals(self.A).astype(complex) if self.nstates \ + else np.array([]) + + def zeros(self): + """Compute the zeros of a delay lti system.""" + + if not self.nstates: + return np.array([]) + + # Use AB08ND from Slycot if it's available, otherwise use + # scipy.lingalg.eigvals(). + try: + from slycot import ab08nd + + out = ab08nd(self.A.shape[0], self.B.shape[1], self.C.shape[0], + self.A, self.B, self.C, self.D) + nu = out[0] + if nu == 0: + return np.array([]) + else: + # Use SciPy generalized eigenvalue function + return eigvals(out[8][0:nu, 0:nu], + out[9][0:nu, 0:nu]).astype(complex) + + except ImportError: # Slycot unavailable. Fall back to SciPy. + if self.C.shape[0] != self.D.shape[1]: + raise NotImplementedError( + "StateSpace.zero only supports systems with the same " + "number of inputs as outputs.") + + # This implements the QZ algorithm for finding transmission zeros + # from + # https://dspace.mit.edu/bitstream/handle/1721.1/841/P-0802-06587335.pdf. + # The QZ algorithm solves the generalized eigenvalue problem: given + # `L = [A, B; C, D]` and `M = [I_nxn 0]`, find all finite lambda + # for which there exist nontrivial solutions of the equation + # `Lz - lamba Mz`. + # + # The generalized eigenvalue problem is only solvable if its + # arguments are square matrices. + L = np.concatenate((np.concatenate((self.A, self.B), axis=1), + np.concatenate((self.C, self.D), axis=1)), axis=0) + M = np.pad(np.eye(self.A.shape[0]), ((0, self.C.shape[0]), + (0, self.B.shape[1])), "constant") + return np.array([x for x in eigvals(L, M, + overwrite_a=True) + if not np.isinf(x)], dtype=complex) + + def _isstatic(self): + return self.nstates == 0 def __mul__(self, other): if isinstance(other, (int, float, complex)): new_C = np.block([[self.P.C1 * other], [self.P.C2]]) new_D = np.block([[self.P.D11 * other, self.P.D12 * other], [self.P.D21, self.P.D22]]) new_P = PartitionedStateSpace(ss(self.P.A, self.P.B, new_C, new_D), self.P.nu1, self.P.ny1) - return DelayLTISystem(new_P, self.tau) + return DelayLTI(new_P, self.tau) - elif isinstance(other, DelayLTISystem): + elif isinstance(other, DelayLTI): psys_new = self.P * other.P tau_new = np.concatenate([self.tau, other.tau]) - return DelayLTISystem(psys_new, tau_new) + return DelayLTI(psys_new, tau_new) elif isinstance(other, TransferFunction): dlti = tf2dlti(other) return self * dlti elif isinstance(other, StateSpace): - return self * DelayLTISystem.from_ss(other) + return self * DelayLTI.from_ss(other) else: raise TypeError("Unsupported operand type(s) for *: '{}' and '{}'".format(type(self), type(other))) @@ -91,7 +145,7 @@ def __rmul__(self, other): return dlti * self elif isinstance(other, StateSpace): - return DelayLTISystem.from_ss(other) * self + return DelayLTI.from_ss(other) * self else: raise TypeError("Unsupported operand type(s) for *: '{}' and '{}'".format(type(other), type(self))) @@ -101,11 +155,11 @@ def __add__(self, other): new_D = self.P.sys.D.copy() new_D[:self.noutputs, :self.ninputs] += other pnew = PartitionedStateSpace(ss(self.A, self.B, self.C, new_D), self.P.nu1, self.P.ny1) - return DelayLTISystem(pnew, self.tau) - elif isinstance(other, DelayLTISystem): + return DelayLTI(pnew, self.tau) + elif isinstance(other, DelayLTI): psys_new = self.P + other.P tau_new = np.concatenate([self.tau, other.tau]) - return DelayLTISystem(psys_new, tau_new) + return DelayLTI(psys_new, tau_new) else: sys = _convert_to_delay_lti(other) return self + sys @@ -121,7 +175,7 @@ def __rsub__(self, other): return -self + other def __eq__(self, other): - if not isinstance(other, DelayLTISystem): + if not isinstance(other, DelayLTI): return False return (np.allclose(self.A, other.A) and np.allclose(self.B, other.B) and @@ -130,7 +184,7 @@ def __eq__(self, other): np.allclose(self.tau, other.tau)) def feedback(self, other=1, sign=-1): - """Standard or LFT feedback interconnection for DelayLTISystem. + """Standard or LFT feedback interconnection for DelayLTI. If `other` is a static gain (scalar, matrix, or static LTI system), computes the standard feedback loop: u = r + sign*other*y, y = self*u. @@ -138,27 +192,27 @@ def feedback(self, other=1, sign=-1): delay input `w` to the external output `y` and the internal delay output `z`. - If `other` is also a `DelayLTISystem`, computes the LFT feedback + If `other` is also a `DelayLTI`, computes the LFT feedback interconnection by calling `feedback` on the underlying `PartitionedStateSpace` objects and concatenating the delay vectors. Parameters ---------- - other : scalar, array, LTI system, or DelayLTISystem + other : scalar, array, LTI system, or DelayLTI The system or gain in the feedback path. sign : int, optional {-1, 1} Sign of the feedback. Default is -1 (negative feedback). Returns ------- - DelayLTISystem + DelayLTI The closed-loop system. """ - if isinstance(other, DelayLTISystem): + if isinstance(other, DelayLTI): psys_new = self.P.feedback(other.P) tau_new = np.concatenate([self.tau, other.tau]) - return DelayLTISystem(psys_new, tau_new) + return DelayLTI(psys_new, tau_new) elif isinstance(other, (StateSpace, TransferFunction)): other_delay_lti = _convert_to_delay_lti(other) @@ -230,10 +284,10 @@ def feedback(self, other=1, sign=-1): # Partition it correctly: inputs [r, w], outputs [y, z] clsys_part = PartitionedStateSpace(clsys_ss, nu1=n_r, ny1=n_y) - # Determine result types and construct the new DelayLTISystem + # Determine result types and construct the new DelayLTI # Need to promote delay type S with potential default float _, S = _promote_delay_system_types(self, self) - return DelayLTISystem(clsys_part, taus) + return DelayLTI(clsys_part, taus) def issiso(self): """Check if the system is single-input, single-output.""" @@ -263,7 +317,7 @@ def __call__(self, x, squeeze=None, warn_infinite=True): def __str__(self): # ... (existing string representation) ... - s = f"DelayLTISystem with {self.noutputs} outputs, {self.ninputs} inputs, " \ + s = f"DelayLTI with {self.noutputs} outputs, {self.ninputs} inputs, " \ f"{self.nstates} states, and {len(self.tau)} delays.\n" s += f"Delays: {self.tau}\n" s += "Underlying PartitionedStateSpace P:\n" + str(self.P) @@ -300,7 +354,7 @@ def delay(tau): C = np.zeros((ny, 0)) P = PartitionedStateSpace(ss(A, B, C, D), 1, 1) - return DelayLTISystem(P, tau_arr) + return DelayLTI(P, tau_arr) def exp(G): @@ -318,13 +372,13 @@ def exp(G): def tf2dlti(tf: TransferFunction): """ - Convert a TransferFunction to a DelayLTISystem + Convert a TransferFunction to a DelayLTI """ if not isinstance(tf, TransferFunction): raise TypeError("Input must be a TransferFunction") ss_tf = tf2ss(tf) - return DelayLTISystem.from_ss(ss_tf) + return DelayLTI.from_ss(ss_tf) def _promote_delay_system_types(sys1, sys2): @@ -343,41 +397,41 @@ def _promote_delay_system_types(sys1, sys2): def _convert_to_delay_lti(sys): - """Convert a system to a DelayLTISystem if necessary.""" - if isinstance(sys, DelayLTISystem): + """Convert a system to a DelayLTI if necessary.""" + if isinstance(sys, DelayLTI): return sys elif isinstance(sys, StateSpace): - return DelayLTISystem.from_ss(sys) + return DelayLTI.from_ss(sys) elif isinstance(sys, TransferFunction): return tf2dlti(sys) else: - raise TypeError("Unsupported system type for DelayLTISystem conversion: {}".format(type(sys))) + raise TypeError("Unsupported system type for DelayLTI conversion: {}".format(type(sys))) -def vcat(*systems: list[DelayLTISystem]) -> DelayLTISystem: +def vcat(*systems: list[DelayLTI]) -> DelayLTI: from .partitionedssp import vcat_pss - if not all(isinstance(sys, DelayLTISystem) for sys in systems): - raise TypeError("All inputs must be DelayLTISystems") + if not all(isinstance(sys, DelayLTI) for sys in systems): + raise TypeError("All inputs must be DelayLTIs") part_ssp = [sys.P for sys in systems] P = vcat_pss(*part_ssp) tau = np.concatenate([sys.tau for sys in systems]) - return DelayLTISystem(P, tau) + return DelayLTI(P, tau) -def hcat(*systems: list[DelayLTISystem]) -> DelayLTISystem: +def hcat(*systems: list[DelayLTI]) -> DelayLTI: from .partitionedssp import hcat_pss - if not(all(isinstance(sys, DelayLTISystem) for sys in systems)): - raise TypeError("All inputs must be DelayLTISystems") + if not(all(isinstance(sys, DelayLTI) for sys in systems)): + raise TypeError("All inputs must be DelayLTIs") part_ssp = [sys.P for sys in systems] P = hcat_pss(*part_ssp) tau = np.concatenate([sys.tau for sys in systems]) - return DelayLTISystem(P, tau) + return DelayLTI(P, tau) -def mimo_delay(array: np.ndarray[DelayLTISystem]): +def mimo_delay(array: np.ndarray[DelayLTI]): rows = [hcat(*row) for row in array] return vcat(*rows) \ No newline at end of file diff --git a/control/freqplot.py b/control/freqplot.py index 048979960..fd1c27051 100644 --- a/control/freqplot.py +++ b/control/freqplot.py @@ -33,6 +33,7 @@ from .margins import stability_margins from .statesp import StateSpace from .xferfcn import TransferFunction +from .delaylti import DelayLTI __all__ = ['bode_plot', 'NyquistResponseData', 'nyquist_response', 'nyquist_plot', 'singular_values_response', @@ -350,7 +351,7 @@ def bode_plot( # If we were passed a list of systems, convert to data if any([isinstance( - sys, (StateSpace, TransferFunction)) for sys in data]): + sys, (StateSpace, TransferFunction, DelayLTI)) for sys in data]): data = frequency_response( data, omega=omega, omega_limits=omega_limits, omega_num=omega_num, Hz=Hz) diff --git a/control/statesp.py b/control/statesp.py index 65529b99d..bdc565669 100644 --- a/control/statesp.py +++ b/control/statesp.py @@ -2383,8 +2383,9 @@ def _convert_to_statespace(sys, use_prefix_suffix=False, method=None): import itertools from .xferfcn import TransferFunction + from .delaylti import DelayLTI - if isinstance(sys, StateSpace): + if isinstance(sys, StateSpace) or isinstance(sys, DelayLTI): return sys elif isinstance(sys, TransferFunction): diff --git a/control/tests/delay_lti_test.py b/control/tests/delay_lti_test.py index 88d27a3a4..440770c9c 100644 --- a/control/tests/delay_lti_test.py +++ b/control/tests/delay_lti_test.py @@ -1,5 +1,6 @@ import numpy as np import pytest +import matplotlib.pyplot as plt from dataclasses import dataclass from control.delaylti import delay, tf2dlti, exp, hcat, vcat, mimo_delay @@ -43,21 +44,6 @@ def delay_siso_tf2(): @pytest.fixture def wood_berry(): - P11_tf = 12.8 / (16.7*s + 1) - P12_tf = -18.9 / (21.0*s + 1) - P21_tf = 6.6 / (10.9*s + 1) - P22_tf = -19.4 / (14.4*s + 1) - G11 = P11_tf * delay(1.0) - G12 = P12_tf * delay(3.0) - G21 = P21_tf * delay(7.0) - G22 = P22_tf * delay(3.0) - Row1 = hcat(G11, G12) - Row2 = hcat(G21, G22) - G_wb = vcat(Row1, Row2) - return G_wb - -@pytest.fixture -def array_wood_berry(): G_wb = mimo_delay([ [12.8 / (16.7*s + 1) * exp(-s), -18.9 / (21.0*s + 1) * exp(-3*s)], [6.6 / (10.9*s + 1) * exp(-7*s), -19.4 / (14.4*s + 1) * exp(-3*s)] @@ -106,20 +92,13 @@ def test_from_tf(self, tf_one): assert(np.allclose(delay_lti_tf_one.C, julia_C)) assert(np.allclose(delay_lti_tf_one.D, julia_D)) - def test_hcat_vcat(self, wood_berry, julia_wood_berry): + def test_mimo_delay(self, wood_berry, julia_wood_berry): assert(np.allclose(wood_berry.A, julia_wood_berry.A)) assert(np.allclose(wood_berry.B, julia_wood_berry.B)) assert(np.allclose(wood_berry.C, julia_wood_berry.C)) assert(np.allclose(wood_berry.D, julia_wood_berry.D)) assert(np.allclose(wood_berry.tau, julia_wood_berry.tau)) - def test_mimo_delay(self, array_wood_berry, julia_wood_berry): - assert(np.allclose(array_wood_berry.A, julia_wood_berry.A)) - assert(np.allclose(array_wood_berry.B, julia_wood_berry.B)) - assert(np.allclose(array_wood_berry.C, julia_wood_berry.C)) - assert(np.allclose(array_wood_berry.D, julia_wood_berry.D)) - assert(np.allclose(array_wood_berry.tau, julia_wood_berry.tau)) - class TestOperators: def test_add(self, delay_siso_tf, delay_siso_tf2): G = delay_siso_tf + delay_siso_tf2 @@ -259,56 +238,13 @@ def test_exp_delay(self): assert(np.allclose(G.tau , julia_delays)) -class TestDelayLTI: - # comparison with julia controlSystems package - - def test_delay(self): - tf_test = tf([1], [1,1]) * delay(1) - A = [[-1]] - B = [[0,1]] - C = [[1],[0]] - D = [[0,0], [1,0]] - - assert(np.allclose(tf_test.P.A , A)) - assert(np.allclose(tf_test.P.B , B)) - assert(np.allclose(tf_test.P.C , C)) - assert(np.allclose(tf_test.P.D , D)) - - - def test_forced_response(self): - from control.delaylti import DelayLTISystem, tf2dlti - from control.xferfcn import tf - from control.timeresp import forced_response - import matplotlib.pyplot as plt - - tf1 = tf([1], [1.5,1]) * delay(1) - - timepts = np.linspace(0, 10, 100) - input1 = np.zeros(100) - input1[31:] = 1 - resp = forced_response(tf1, timepts=timepts, inputs=input1) - t, y = resp.t, resp.y[0] - - #plt.figure() - #plt.plot(t, input1) - #plt.plot(t, y) - #plt.show() - - - def test_exp(self): - from control.delaylti import exp - from control.xferfcn import tf - - s = tf([1,0], [1]) - exp_delay = exp(-2*s) - - - class TestFreqResp: def test_siso_freq_resp(self, delay_siso_tf): + from control.lti import frequency_response w = np.logspace(-2, 2, 10, base=10) resp = delay_siso_tf.frequency_response(w) + fun_resp = frequency_response(delay_siso_tf, w) julia_freq_resp = np.array([ 0.9996375439798979 - 0.024995812946127068*1j, 0.9971959288676081 - 0.06947384247065888*1j, @@ -321,4 +257,62 @@ def test_siso_freq_resp(self, delay_siso_tf): 0.01265424121150209 + 0.02476963547555173*1j, 0.007217967580181465 - 0.006920328388981937*1j ], dtype=complex) - assert(np.allclose(np.array(resp.complex), julia_freq_resp)) \ No newline at end of file + assert(np.allclose(np.array(resp.complex), julia_freq_resp)) + assert(np.allclose(np.array(fun_resp.complex), julia_freq_resp)) + + def test_bode_plot(self, delay_siso_tf): + from control.freqplot import bode_plot + import matplotlib.pyplot as plt + w = np.logspace(-2, 2, 100, base=10) + #bode_plot(delay_siso_tf, w) + #plt.show() comparison with julia notebook + + def test_mimo_freq_resp(self, wood_berry): + from control.lti import frequency_response + w = np.logspace(-2, 2, 10, base=10) + fresp = frequency_response(wood_berry, w) + julia_freq_resp = np.array([ + [[12.4313-2.20402*1j, 10.3867-5.1827*1j, 4.29712-6.54633*1j, 0.190665-3.42239*1j, -0.609851-1.11652*1j, + -0.458323+0.0281868*1j, 0.164539+0.0138042*1j, -0.0200415-0.0558575*1j, 0.0209361+0.0040665*1j, 0.00388508-0.00660706*1j], + [-17.9795+4.34262*1j, -13.3537+9.37895*1j, -3.10627+9.40135*1j, 1.69596+3.70969*1j, 1.48013-0.221262*1j, + -0.520719+0.140405*1j, 0.189103+0.0428153*1j, 0.0602249+0.035053*1j, 0.0210585+0.0135532*1j, -0.00899771-0.000203154*1j]], + [[6.45681-1.16541*1j, 5.57492-2.9683*1j, 1.62412-4.7752*1j, -2.31095-1.16016*1j, 0.783909+0.618326*1j, + 0.293676-0.212413*1j, -0.113486-0.0642809*1j, -0.0303737+0.0357106*1j, -0.00395567-0.0163775*1j, -0.00329842+0.00507779*1j], + [-18.9152+3.30571*1j, -16.0995+8.06846*1j, -6.19676+11.3748*1j, 1.954+5.6218*1j, 2.2183-0.250236*1j, + -0.781793+0.199879*1j, 0.282749+0.0654171*1j, 0.090062+0.0526232*1j, 0.0315105+0.0203071*1j, -0.0134687-0.000307044*1j]] + ],dtype=complex) + assert(np.allclose(fresp.complex, julia_freq_resp)) + + + +class TestTimeResp: + + def test_siso_step_response(self, delay_siso_tf): + from control.timeresp import step_response + timepts1 = np.arange(0, 11, 1) + t1, y1 = step_response(delay_siso_tf) + timepts2 = np.arange(0, 10.1, 0.1) + t2, y2 = step_response(delay_siso_tf, timepts=timepts2) + julia_resp = [0.0, 0.0, 0.3934701171707952, 0.7768701219836066, 0.917915094373695, 0.9698026491618251, 0.9888910143620181, 0.9959132295791787, 0.9984965605514581, 0.9994469148973136, 0.9997965302422651] + plt.figure() + plt.plot(t1, y1, label="python step 1") + plt.plot(timepts1, julia_resp, label="julia") + plt.plot(t2, y2, label="python step 0.1") + plt.legend() + plt.show() + + + + + def test_forced_response(self, delay_siso_tf): + from control.timeresp import forced_response + + timepts = np.arange(0, 10.1, 0.1) + input1 = np.zeros(101) + input1[31:] = 1 + resp = forced_response(delay_siso_tf, timepts=timepts, inputs=input1) + t, y = resp.t, resp.y[0] + #plt.figure() + #plt.plot(t, input1) + #plt.plot(t, y) + #plt.show() \ No newline at end of file diff --git a/control/tests/julia_tests.ipynb b/control/tests/julia_tests.ipynb index 424f1c66b..b7cd3612f 100644 --- a/control/tests/julia_tests.ipynb +++ b/control/tests/julia_tests.ipynb @@ -15,7 +15,7 @@ }, { "cell_type": "code", - "execution_count": 97, + "execution_count": 2, "metadata": {}, "outputs": [], "source": [ @@ -43,7 +43,7 @@ }, { "cell_type": "code", - "execution_count": 98, + "execution_count": 3, "metadata": {}, "outputs": [], "source": [ @@ -52,35 +52,7 @@ }, { "cell_type": "code", - "execution_count": 99, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "DelayLtiSystem{Int64, Float64}\n", - "\n", - "P: StateSpace{Continuous, Int64}\n", - "D = \n", - " 1\n", - "\n", - "Continuous-time state-space model\n", - "\n", - "Delays: Float64[]" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "# test_from_tf\n", - "DelayLtiSystem(tf_one)" - ] - }, - { - "cell_type": "code", - "execution_count": 100, + "execution_count": 5, "metadata": {}, "outputs": [ { @@ -137,7 +109,7 @@ }, { "cell_type": "code", - "execution_count": 101, + "execution_count": 6, "metadata": {}, "outputs": [ { @@ -177,7 +149,7 @@ }, { "cell_type": "code", - "execution_count": 102, + "execution_count": 7, "metadata": {}, "outputs": [ { @@ -213,7 +185,7 @@ }, { "cell_type": "code", - "execution_count": 103, + "execution_count": 8, "metadata": {}, "outputs": [ { @@ -253,7 +225,7 @@ }, { "cell_type": "code", - "execution_count": 104, + "execution_count": 9, "metadata": {}, "outputs": [ { @@ -289,7 +261,7 @@ }, { "cell_type": "code", - "execution_count": 105, + "execution_count": 10, "metadata": {}, "outputs": [ { @@ -332,7 +304,7 @@ }, { "cell_type": "code", - "execution_count": 106, + "execution_count": 11, "metadata": {}, "outputs": [ { @@ -368,7 +340,7 @@ }, { "cell_type": "code", - "execution_count": 107, + "execution_count": 12, "metadata": {}, "outputs": [ { @@ -404,7 +376,7 @@ }, { "cell_type": "code", - "execution_count": 108, + "execution_count": 13, "metadata": {}, "outputs": [ { @@ -451,7 +423,7 @@ }, { "cell_type": "code", - "execution_count": 109, + "execution_count": 14, "metadata": {}, "outputs": [ { @@ -480,7 +452,7 @@ }, { "cell_type": "code", - "execution_count": 110, + "execution_count": 15, "metadata": {}, "outputs": [ { @@ -509,33 +481,21 @@ }, { "cell_type": "code", - "execution_count": 111, + "execution_count": 16, "metadata": {}, "outputs": [ { - "data": { - "text/plain": [ - "DelayLtiSystem{Float64, Float64}\n", - "\n", - "P: StateSpace{Continuous, Float64}\n", - "A = \n", - " -1.0\n", - "B = \n", - " 0.0 1.0\n", - "C = \n", - " 1.0\n", - " -1.0\n", - "D = \n", - " 0.0 0.0\n", - " 1.0 0.0\n", - "\n", - "Continuous-time state-space model\n", - "\n", - "Delays: [1.5]" - ] - }, - "metadata": {}, - "output_type": "display_data" + "ename": "UndefVarError", + "evalue": "UndefVarError: `G` not defined in `Main`\nSuggestion: check for spelling errors or missing imports.", + "output_type": "error", + "traceback": [ + "UndefVarError: `G` not defined in `Main`\n", + "Suggestion: check for spelling errors or missing imports.\n", + "\n", + "Stacktrace:\n", + " [1] top-level scope\n", + " @ ~/Documents/Code-perso/python-control/control/tests/jl_notebook_cell_df34fa98e69747e1a8f8a730347b8e2f_X25sZmlsZQ==.jl:4" + ] } ], "source": [ @@ -547,7 +507,7 @@ }, { "cell_type": "code", - "execution_count": 112, + "execution_count": 17, "metadata": {}, "outputs": [ { @@ -575,7 +535,7 @@ }, { "cell_type": "code", - "execution_count": 113, + "execution_count": 18, "metadata": {}, "outputs": [ { @@ -607,7 +567,7 @@ }, { "cell_type": "code", - "execution_count": 114, + "execution_count": 19, "metadata": {}, "outputs": [ { @@ -634,29 +594,51 @@ "ss1 = ss(tf([1], [1, 1]))" ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### TestFreqResp" + ] + }, { "cell_type": "code", - "execution_count": 115, + "execution_count": 21, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "DelayLtiSystem{Int64, Float64}\n", + "1×1×10 Array{ComplexF64, 3}:\n", + "[:, :, 1] =\n", + " 0.9996375439798979 - 0.024995812946127068im\n", "\n", - "P: StateSpace{Continuous, Int64}\n", - "A = \n", - " -1\n", - "B = \n", - " 1\n", - "C = \n", - " 1\n", - "D = \n", - " 0\n", + "[:, :, 2] =\n", + " 0.9971959288676081 - 0.06947384247065888im\n", "\n", - "Continuous-time state-space model\n", + "[:, :, 3] =\n", + " 0.9784258086709292 - 0.1916345960427577im\n", "\n", - "Delays: [2.0]" + "[:, :, 4] =\n", + " 0.8407906760670428 - 0.4987123630856im\n", + "\n", + "[:, :, 5] =\n", + " 0.11248651027122411 - 0.8502796738335039im\n", + "\n", + "[:, :, 6] =\n", + " -0.47530358539375506 + 0.19610650928623855im\n", + "\n", + "[:, :, 7] =\n", + " -0.09481872294498477 - 0.18805963874096887im\n", + "\n", + "[:, :, 8] =\n", + " -0.033328025868165176 - 0.06963017462205673im\n", + "\n", + "[:, :, 9] =\n", + " 0.01265424121150209 + 0.02476963547555173im\n", + "\n", + "[:, :, 10] =\n", + " 0.007217967580181465 - 0.006920328388981937im" ] }, "metadata": {}, @@ -664,55 +646,223 @@ } ], "source": [ - "ss_ = ss([-1], [1], [1], [0])\n", - "DelayLtiSystem(ss_, [2.])" + "# test_siso_freq_resp\n", + "w = exp10.(LinRange(-2,2,10))\n", + "freqresp(delay_siso_tf, w)" ] }, { - "cell_type": "markdown", + "cell_type": "code", + "execution_count": 22, "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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", + "image/svg+xml": [ + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n" + ], + "text/html": [ + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ - "### TestFreqResp" + "w = exp10.(LinRange(-2,2,100))\n", + "bodeplot(delay_siso_tf, w)" ] }, { "cell_type": "code", - "execution_count": 116, + "execution_count": 23, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "1×1×10 Array{ComplexF64, 3}:\n", + "2×2×10 Array{ComplexF64, 3}:\n", "[:, :, 1] =\n", - " 0.9996375439798979 - 0.024995812946127068im\n", + " 12.4313-2.20402im -17.9795+4.34262im\n", + " 6.45681-1.16541im -18.9152+3.30571im\n", "\n", "[:, :, 2] =\n", - " 0.9971959288676081 - 0.06947384247065888im\n", + " 10.3867-5.1827im -13.3537+9.37895im\n", + " 5.57492-2.9683im -16.0995+8.06846im\n", "\n", "[:, :, 3] =\n", - " 0.9784258086709292 - 0.1916345960427577im\n", + " 4.29712-6.54633im -3.10627+9.40135im\n", + " 1.62412-4.7752im -6.19676+11.3748im\n", "\n", "[:, :, 4] =\n", - " 0.8407906760670428 - 0.4987123630856im\n", + " 0.190665-3.42239im 1.69596+3.70969im\n", + " -2.31095-1.16016im 1.954+5.6218im\n", "\n", "[:, :, 5] =\n", - " 0.11248651027122411 - 0.8502796738335039im\n", + " -0.609851-1.11652im 1.48013-0.221262im\n", + " 0.783909+0.618326im 2.2183-0.250236im\n", "\n", "[:, :, 6] =\n", - " -0.47530358539375506 + 0.19610650928623855im\n", + " -0.458323+0.0281868im -0.520719+0.140405im\n", + " 0.293676-0.212413im -0.781793+0.199879im\n", "\n", "[:, :, 7] =\n", - " -0.09481872294498477 - 0.18805963874096887im\n", + " 0.164539+0.0138042im 0.189103+0.0428153im\n", + " -0.113486-0.0642809im 0.282749+0.0654171im\n", "\n", "[:, :, 8] =\n", - " -0.033328025868165176 - 0.06963017462205673im\n", + " -0.0200415-0.0558575im 0.0602249+0.035053im\n", + " -0.0303737+0.0357106im 0.090062+0.0526232im\n", "\n", "[:, :, 9] =\n", - " 0.01265424121150209 + 0.02476963547555173im\n", + " 0.0209361+0.0040665im 0.0210585+0.0135532im\n", + " -0.00395567-0.0163775im 0.0315105+0.0203071im\n", "\n", "[:, :, 10] =\n", - " 0.007217967580181465 - 0.006920328388981937im" + " 0.00388508-0.00660706im -0.00899771-0.000203154im\n", + " -0.00329842+0.00507779im -0.0134687-0.000307044im" ] }, "metadata": {}, @@ -720,9 +870,164 @@ } ], "source": [ - "# test_siso_freq_resp\n", + "# testmimo_freq_resp\n", "w = exp10.(LinRange(-2,2,10))\n", - "freqresp(delay_siso_tf, w)" + "freqresp(wood_berry, w)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### TestTimeResp" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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0dHRROTn5zdlypScnBypVPree+9FRkaKXbWl1NTUeHt7T5s2remuHR8fn6ioqPDwcA8PDxcXl/LycsbYzJkzV61a1XRbgr3TaDR6vT4mJmbIkCHBwcHdunUTxrtJSUkSieTGjRszZsxYtGiRsMvQy8vrkUceESZSRkVF9e/fPysrKzIy8v3333eAtb9arXZzcxsxYkSfPn2Cg4Mffvhh4dJscXFxwb+LiIgQjpcPDAwcMGCAv79/QEBAQ0NDWVlZhw4dli1b9sc//lHsz2FOjnZAPQAAwD1xnF98AAAA9wFBCAAATg1BCAAATg1BCAAATg1BCAAATg1BCAAATg1BCGAr6urqPv300xs3bljtHa9fv96eyykcPny42UV9ARwJghDASnJzc7u07dFHHy0vL589e7ZwBhPrePrpp3/88ce7NktLS5s0aZJjn28anBkOqAewklu3bjW93NWqVau6d+8+bdo04a63t/esWbM++OCDyZMn9+zZ0wr1fPvtt9OmTSssLAwICLhzy7q6utDQ0H/84x9z5syxQmEAVoYgBBCHh4dHYmJiSkrKXVvyPH/r1i0fHx+5XC4sMRgM1dXVfn5+rbavqKiQSCRtPWoyatSoDh067Nq1q+lCxlh5ebm7u7uHh0fT5XPnzk1LS7tw4cJdqwWwO9g0CmArCgoKVCqVaafdnDlzhg4dunPnzrCwsMDAQF9f340bNzLGVq5c6ePj4+/vHx4e3uyK6lu2bAkPDw8ICPD39+/Zs+eRI0faei/hekxJSUmmJY2NjfPmzXNzcwsKCvL09AwKCvr8889Nj06ePDkjIwNBCA4JQQhgKwwGQ2lpqXBNDCKqr6/PzMx84403NmzYkJqa+sQTTyxcuPD5558/derUd999d+zYsQ4dOsycOVOv1wvt33vvveeeey45OTktLe306dO9e/ceN25cRkZGq+919OhRxtjgwYNNS1avXv3ll19+8sknV65cSU9Pf+utt1xdXU2PxsXFcRx39OhRi316APEwABCDu7t7cnJy0yV5eXlElJKSItydNm2aRCLJysoS7lZWVkokkrCwMK1WKyzZs2cPEZ0+fZoxVldX5+Xl9dxzz5leTafTdevW7dlnn2313V966SWZTMbzvGnJmDFjEhIS7lBwYGDg008/fa8fE8D2OdT1CAEcTFhYWK9evYTbvr6+/v7+jz32mEKhEJZ0796diAoLCwcOHHj69Onq6upOnTo13RwaHh5+8eLFVl+5oqLCx8dHuOqQIDo6+u9///uf/vSnadOmDR482MXFpdlTfH19KyoqzPjpAGwEghDAdgmXjTRxcXFpukTIKp1OR0RlZWVEtHbtWuGCiyYhISGtvrJMJmt2OMTy5cv1ev1nn3320UcfeXp6Tpo06e233w4MDDQ10Ov1ptk6AI4E+wgBHIGXlxcRbd++Xf1/ZWZmtto+MDCwurq6aRYqlcq///3vJSUl6enpS5cu3blz51NPPdX0KWq1umkuAjgMBCGAI4iNjXV1dd2xY0c72w8YMIDn+aysrGbLJRJJVFTUa6+9Nnv27NTUVNPyoqIitVo9cOBAs1UMYDMQhACOwM/Pb8mSJVu3bl22bNn169e1Wu2VK1c2btz4r3/9q9X2Q4cOdXFx+eWXX0xLXn755e++++7mzZtGozEjI+Pw4cP9+/c3PfrLL79wHDdy5EiLfxIAq0MQAjiIlStXrlmz5qOPPurSpYubm1tkZOTf/vY3Nze3Vhv7+PgkJSVt377dtKSkpGTq1KnBwcEymSwqKiooKGjr1q2mR7/66quRI0eGh4db+lMAWB/OLAMgDp7nOY5rOm+TiIxGY7PZLvfKYDBcunRJq9WGhIQEBwc3e/2mTp8+PXjw4KysrB49eghLNBpNfn5+fX19WFhYUFCQqWVJSUlERMQ333yTmJj4ILUB2CYEIYDzmjFjBhF9+eWXd2725z//OTs7+4cffrBKUQDWhiAEcF719fUVFRV33eBZWFjo5eXVoUMHqxQFYG0IQgAAcGqYLAMAAE4NQQgAAE4NQQgAAE4NQQgAAE7t/wP9JFPbufwb2gAAAABJRU5ErkJggg==", + "image/svg+xml": [ + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n" + ], + "text/html": [ + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "res = step(delay_siso_tf)\n", + "u = 0:10:100\n", + "plot(res)" + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "ControlSystemsBase.SimResult{Matrix{Float64}, StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}, Matrix{Float64}, Matrix{Float64}, DelayLtiSystem{Float64, Float64}}([0.0 0.0 … 0.9999960031532982 0.9999962733648371], 0.0:0.07:14.000000000000002, [0.0 0.0 … 0.9999960031532982 0.9999962733648371], [1.0 1.0 … 1.0 1.0], DelayLtiSystem{Float64, Float64}\n", + "\n", + "P: StateSpace{Continuous, Float64}\n", + "A = \n", + " -1.0\n", + "B = \n", + " 0.0 1.0\n", + "C = \n", + " 1.0\n", + " 0.0\n", + "D = \n", + " 0.0 0.0\n", + " 1.0 0.0\n", + "\n", + "Continuous-time state-space model\n", + "\n", + "Delays: [1.5])" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "res" ] } ], diff --git a/control/timeresp.py b/control/timeresp.py index 56b9eedc7..ddabba873 100644 --- a/control/timeresp.py +++ b/control/timeresp.py @@ -922,7 +922,7 @@ def forced_response( sysdata, timepts=None, inputs=0., initial_state=0., transpose=False, params=None, interpolate=False, return_states=None, squeeze=None, **kwargs): - from .delaylti import DelayLTISystem + from .delaylti import DelayLTI """Compute the output of a linear system given the input. As a convenience for parameters `U`, `X0`: Numbers (scalars) are @@ -1063,7 +1063,7 @@ def forced_response( else: sys = sysdata - if not isinstance(sys, (StateSpace, TransferFunction, DelayLTISystem)): + if not isinstance(sys, (StateSpace, TransferFunction, DelayLTI)): if isinstance(sys, NonlinearIOSystem): if interpolate: warnings.warn( @@ -1092,7 +1092,7 @@ def forced_response( "Internal conversion to state space used; may not be consistent " "with given X0.") - if isinstance(sys, DelayLTISystem): + if isinstance(sys, DelayLTI): P = sys.P n_states = P.A.shape[0] n_inputs = P.B1.shape[1] @@ -1616,10 +1616,6 @@ def step_response( # Convert to state space so that we can simulate if isinstance(sys, LTI) and sys.nstates is None: - if (isinstance(sys, TransferFunction) and hasattr(sys, 'delays')): - from .delayssp import _convert_to_delaystatespace - sys = _convert_to_delaystatespace(sys) - else: sys = _convert_to_statespace(sys) # Only single input and output are allowed for now @@ -2296,6 +2292,7 @@ def _ideal_tfinal_and_dt(sys, is_step=True): """ from .statesp import _convert_to_statespace + from .delaylti import DelayLTI sqrt_eps = np.sqrt(np.spacing(1.)) default_tfinal = 5 # Default simulation horizon From 29081b598155750cf16215d5e272656560e122d5 Mon Sep 17 00:00:00 2001 From: Mathieu Sylvain Date: Mon, 31 Mar 2025 07:44:46 +0200 Subject: [PATCH 07/16] add dde.py file to improve readibility in timeresp.py implemented only basic dde solving based on Skogestad python --- control/dde.py | 170 ++++++++++++++++++++++++++ control/tests/delay_lti_test.py | 4 +- control/tests/julia_tests.ipynb | 206 ++++++++++++++++++-------------- control/timeresp.py | 141 +--------------------- 4 files changed, 293 insertions(+), 228 deletions(-) create mode 100644 control/dde.py diff --git a/control/dde.py b/control/dde.py new file mode 100644 index 000000000..2f6a113b3 --- /dev/null +++ b/control/dde.py @@ -0,0 +1,170 @@ +import numpy as np + +from scipy.integrate import LSODA + + +def dde_response(delay_sys, T, U=0, X0=0, params=None, + transpose=False, return_x=False, squeeze=None, + method=None): + + from .timeresp import TimeResponseData, _check_convert_array + from .delaylti import DelayLTI + if not isinstance(delay_sys, DelayLTI): + raise TypeError("Input must be a DelayLTI") + + A, B1, B2 = delay_sys.A, delay_sys.B1, delay_sys.B2 + C1, C2 = delay_sys.C1, delay_sys.C2 + D11, D12 = delay_sys.D11, delay_sys.D12 + D21, D22 = delay_sys.D21, delay_sys.D22 + tau = delay_sys.tau + + n_states = A.shape[0] + n_inputs = B1.shape[1] # External inputs u + n_outputs = C1.shape[0] # External outputs y + n_internal_outputs = C2.shape[0] # 'z' outputs feeding delays + n_internal_inputs = B2.shape[1] # 'w' inputs from delays + + if U is not None: + U = np.asarray(U) + if T is not None: + T = np.asarray(T) + + T = _check_convert_array(T, [('any',), (1, 'any')], + 'Parameter `T`: ', squeeze=True, + transpose=transpose) + + n_steps = T.shape[0] + dt = (T[-1] - T[0]) / (n_steps - 1) + if not np.allclose(np.diff(T), dt): + raise ValueError("Parameter `T`: time values must be equally " + "spaced.") + + X0 = _check_convert_array( + X0, [(n_states,), (n_states, 1)], 'Parameter `X0`: ', squeeze=True) + + # Test if U has correct shape and type + legal_shapes = [(n_steps,), (1, n_steps)] if n_inputs == 1 else \ + [(n_inputs, n_steps)] + U = _check_convert_array(U, legal_shapes, + 'Parameter `U`: ', squeeze=False, + transpose=transpose) + + xout = np.zeros((n_states, n_steps)) + xout[:, 0] = X0 + yout = np.zeros((n_outputs, n_steps)) + tout = T + + # Solver here depending on the method + if method == 'LSODA': + xout, yout = Skogestad_Python_LSODA(delay_sys, dt, T, U, X0, xout, yout) + else: + xout, yout = Skogestad_Python_solver(delay_sys, dt, T, U, X0, xout, yout) + + return TimeResponseData( + tout, yout, xout, U, + params=params, + issiso=delay_sys.issiso(), + output_labels=delay_sys.output_labels, + input_labels=delay_sys.input_labels, + state_labels=delay_sys.state_labels, + sysname=delay_sys.name, + plot_inputs=True, + title="Forced response for " + delay_sys.name, + trace_types=['forced'], + transpose=transpose, + return_x=return_x, + squeeze=squeeze + ) + + +def Skogestad_Python_solver(delay_sys, dt, T, U, X0, xout, yout): + """ + Method from Skogestad-Python: https://github.com/alchemyst/Skogestad-Python/blob/master/robustcontrol/InternalDelay.py#L446 + RK integration. + """ + dtss = [int(np.round(delay / dt)) for delay in delay_sys.tau] + zs = [] + + def f(t, x): + return delay_sys.A @ x + delay_sys.B1 @ linear_interp_u(t, T, U) + delay_sys.B2 @ wf(zs, dtss) + + xs = [X0] + ys = [] + for i,t in enumerate(T): + x = xs[-1] + + y = delay_sys.C1 @ np.array(x) + delay_sys.D11 @ linear_interp_u(t, T, U) + delay_sys.D12 @ wf(zs, dtss) + ys.append(list(y)) + + z = delay_sys.C2 @ np.array(x) + delay_sys.D21 @ linear_interp_u(t, T, U) + delay_sys.D22 @ wf(zs, dtss) + zs.append(list(z)) + + # x integration + k1 = f(t, x) * dt + k2 = f(t + 0.5 * dt, x + 0.5 * k1) * dt + k3 = f(t + 0.5 * dt, x + 0.5 * k2) * dt + k4 = f(t + dt, x + k3) * dt + dx = (k1 + k2 + k2 + k3 + k3 + k4) / 6 + x = [xi + dxi for xi, dxi in zip(x, dx)] + xs.append(list(x)) + + xout[:, i] = x + yout[:, i] = y + + return xout, yout + + +def Skogestad_Python_LSODA(delay_sys, dt, T, U, X0, xout, yout): + dtss = [int(np.round(delay / dt)) for delay in delay_sys.tau] + zs = [] + + def f(t, x): + return delay_sys.A @ x + delay_sys.B1 @ linear_interp_u(t, T, U) + delay_sys.B2 @ wf(zs, dtss) + + solver = LSODA(f, T[0], X0, t_bound=T[-1], max_step=dt) + + xs = [X0] + ts = [T[0]] + while solver.status == "running": + t = ts[-1] + x = xs[-1] + y = delay_sys.C1 @ np.array(x) + delay_sys.D11 @ linear_interp_u(t, T, U) + delay_sys.D12 @ wf(zs, dtss) + z = delay_sys.C2 @ np.array(x) + delay_sys.D21 @ linear_interp_u(t, T, U) + delay_sys.D22 @ wf(zs, dtss) + zs.append(list(z)) + + solver.step() + t = solver.t + ts.append(t) + + x = solver.y.copy() + xs.append(list(x)) + + for it, ti in enumerate(T): + if ts[-2] < ti <= ts[-1]: + xi = solver.dense_output()(ti) + xout[:, it] = xi + yout[:, it] = delay_sys.C1 @ np.array(xi) + delay_sys.D11 @ linear_interp_u(t, T, U) + delay_sys.D12 @ wf(zs, dtss) + + return xout, yout + + +def linear_interp_u(t, T, U): + if np.ndim(U) == 1: + return np.array([np.interp(t, T, U)]) + elif np.ndim(U) == 0: + print("U is a scalar !") + return U + else: + return np.array([np.interp(t, T, ui) for ui in U]) + + +def wf(zs, dtss): + ws = [] + for i, dts in enumerate(dtss): + if len(zs) <= dts: + ws.append(0) + elif dts == 0: + ws.append(zs[-1][i]) + else: + ws.append(zs[-dts][i]) + return np.array(ws) \ No newline at end of file diff --git a/control/tests/delay_lti_test.py b/control/tests/delay_lti_test.py index 440770c9c..f898facdc 100644 --- a/control/tests/delay_lti_test.py +++ b/control/tests/delay_lti_test.py @@ -239,7 +239,6 @@ def test_exp_delay(self): class TestFreqResp: - def test_siso_freq_resp(self, delay_siso_tf): from control.lti import frequency_response w = np.logspace(-2, 2, 10, base=10) @@ -286,11 +285,10 @@ def test_mimo_freq_resp(self, wood_berry): class TestTimeResp: - def test_siso_step_response(self, delay_siso_tf): from control.timeresp import step_response timepts1 = np.arange(0, 11, 1) - t1, y1 = step_response(delay_siso_tf) + t1, y1 = step_response(delay_siso_tf, timepts=timepts1) timepts2 = np.arange(0, 10.1, 0.1) t2, y2 = step_response(delay_siso_tf, timepts=timepts2) julia_resp = [0.0, 0.0, 0.3934701171707952, 0.7768701219836066, 0.917915094373695, 0.9698026491618251, 0.9888910143620181, 0.9959132295791787, 0.9984965605514581, 0.9994469148973136, 0.9997965302422651] diff --git a/control/tests/julia_tests.ipynb b/control/tests/julia_tests.ipynb index b7cd3612f..7e5199aac 100644 --- a/control/tests/julia_tests.ipynb +++ b/control/tests/julia_tests.ipynb @@ -884,104 +884,138 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 32, + "metadata": {}, + "outputs": [ + { + "ename": "ErrorException", + "evalue": "type DelayLtiSystem has no field nu1", + "output_type": "error", + "traceback": [ + "type DelayLtiSystem has no field nu1\n", + "\n", + "Stacktrace:\n", + " [1] getproperty(sys::DelayLtiSystem{Float64, Float64}, s::Symbol)\n", + " @ ControlSystemsBase ~/.julia/packages/ControlSystemsBase/ua2Cx/src/types/Lti.jl:94\n", + " [2] lsim(sys::DelayLtiSystem{Float64, Float64}, u::Vector{Float64}, t::StepRange{Int64, Int64}; x0::Vector{Float64}, alg::DelayDiffEq.MethodOfSteps{OrdinaryDiffEqTsit5.Tsit5{typeof(OrdinaryDiffEqCore.trivial_limiter!), typeof(OrdinaryDiffEqCore.trivial_limiter!), Static.False}, OrdinaryDiffEqNonlinearSolve.NLFunctional{Rational{Int64}, Rational{Int64}}, false}, abstol::Float64, reltol::Float64, force_dtmin::Bool, kwargs::@Kwargs{})\n", + " @ ControlSystems ~/.julia/packages/ControlSystems/RyPse/src/timeresp.jl:92\n", + " [3] lsim(sys::DelayLtiSystem{Float64, Float64}, u::Vector{Float64}, t::StepRange{Int64, Int64})\n", + " @ ControlSystems ~/.julia/packages/ControlSystems/RyPse/src/timeresp.jl:84\n", + " [4] top-level scope\n", + " @ ~/Documents/Code-perso/python-control/control/tests/jl_notebook_cell_df34fa98e69747e1a8f8a730347b8e2f_X41sZmlsZQ==.jl:3" + ] + } + ], + "source": [ + "t = 0:10:100\n", + "u = ones(100)\n", + "y, t, x, uout = lsim(delay_siso_tf,u,t)" + ] + }, + { + "cell_type": "code", + "execution_count": 49, "metadata": {}, "outputs": [ { "data": { - "image/png": "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0dHRROTn5zdlypScnBypVPree+9FRkaKXbWl1NTUeHt7T5s2remuHR8fn6ioqPDwcA8PDxcXl/LycsbYzJkzV61a1XRbgr3TaDR6vT4mJmbIkCHBwcHdunUTxrtJSUkSieTGjRszZsxYtGiRsMvQy8vrkUceESZSRkVF9e/fPysrKzIy8v3333eAtb9arXZzcxsxYkSfPn2Cg4Mffvhh4dJscXFxwb+LiIgQjpcPDAwcMGCAv79/QEBAQ0NDWVlZhw4dli1b9sc//lHsz2FOjnZAPQAAwD1xnF98AAAA9wFBCAAATg1BCAAATg1BCAAATg1BCAAATg1BCAAATg1BCGAr6urqPv300xs3bljtHa9fv96eyykcPny42UV9ARwJghDASnJzc7u07dFHHy0vL589e7ZwBhPrePrpp3/88ce7NktLS5s0aZJjn28anBkOqAewklu3bjW93NWqVau6d+8+bdo04a63t/esWbM++OCDyZMn9+zZ0wr1fPvtt9OmTSssLAwICLhzy7q6utDQ0H/84x9z5syxQmEAVoYgBBCHh4dHYmJiSkrKXVvyPH/r1i0fHx+5XC4sMRgM1dXVfn5+rbavqKiQSCRtPWoyatSoDh067Nq1q+lCxlh5ebm7u7uHh0fT5XPnzk1LS7tw4cJdqwWwO9g0CmArCgoKVCqVaafdnDlzhg4dunPnzrCwsMDAQF9f340bNzLGVq5c6ePj4+/vHx4e3uyK6lu2bAkPDw8ICPD39+/Zs+eRI0faei/hekxJSUmmJY2NjfPmzXNzcwsKCvL09AwKCvr8889Nj06ePDkjIwNBCA4JQQhgKwwGQ2lpqXBNDCKqr6/PzMx84403NmzYkJqa+sQTTyxcuPD5558/derUd999d+zYsQ4dOsycOVOv1wvt33vvveeeey45OTktLe306dO9e/ceN25cRkZGq+919OhRxtjgwYNNS1avXv3ll19+8sknV65cSU9Pf+utt1xdXU2PxsXFcRx39OhRi316APEwABCDu7t7cnJy0yV5eXlElJKSItydNm2aRCLJysoS7lZWVkokkrCwMK1WKyzZs2cPEZ0+fZoxVldX5+Xl9dxzz5leTafTdevW7dlnn2313V966SWZTMbzvGnJmDFjEhIS7lBwYGDg008/fa8fE8D2OdT1CAEcTFhYWK9evYTbvr6+/v7+jz32mEKhEJZ0796diAoLCwcOHHj69Onq6upOnTo13RwaHh5+8eLFVl+5oqLCx8dHuOqQIDo6+u9///uf/vSnadOmDR482MXFpdlTfH19KyoqzPjpAGwEghDAdgmXjTRxcXFpukTIKp1OR0RlZWVEtHbtWuGCiyYhISGtvrJMJmt2OMTy5cv1ev1nn3320UcfeXp6Tpo06e233w4MDDQ10Ov1ptk6AI4E+wgBHIGXlxcRbd++Xf1/ZWZmtto+MDCwurq6aRYqlcq///3vJSUl6enpS5cu3blz51NPPdX0KWq1umkuAjgMBCGAI4iNjXV1dd2xY0c72w8YMIDn+aysrGbLJRJJVFTUa6+9Nnv27NTUVNPyoqIitVo9cOBAs1UMYDMQhACOwM/Pb8mSJVu3bl22bNn169e1Wu2VK1c2btz4r3/9q9X2Q4cOdXFx+eWXX0xLXn755e++++7mzZtGozEjI+Pw4cP9+/c3PfrLL79wHDdy5EiLfxIAq0MQAjiIlStXrlmz5qOPPurSpYubm1tkZOTf/vY3Nze3Vhv7+PgkJSVt377dtKSkpGTq1KnBwcEymSwqKiooKGjr1q2mR7/66quRI0eGh4db+lMAWB/OLAMgDp7nOY5rOm+TiIxGY7PZLvfKYDBcunRJq9WGhIQEBwc3e/2mTp8+PXjw4KysrB49eghLNBpNfn5+fX19WFhYUFCQqWVJSUlERMQ333yTmJj4ILUB2CYEIYDzmjFjBhF9+eWXd2725z//OTs7+4cffrBKUQDWhiAEcF719fUVFRV33eBZWFjo5eXVoUMHqxQFYG0IQgAAcGqYLAMAAE4NQQgAAE4NQQgAAE4NQQgAAE7t/wP9JFPbufwb2gAAAABJRU5ErkJggg==", + "image/png": "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YcNw25p7dOTIEeeNScPDw3v37n17n+rq6gMHDojF4okTJ2LA75HRaDx69GjjloSEhCYXRRcUFNy8edO5OGLECB6P56Z8vqW8vPz69evx8fGNb/BuMpn279/f0NAwduzYyMjIZlc8derU1atXk5OT23rbIl+7anTNmjWLFy+ePn16RkbG6NGjv/766yYd8vPzhw4dOmbMGJVKVVJScvz4calUykhU31BcXNyrV68hQ4ZERkbu27fvoYce+vLLL5v0+eCDD7755psePXo4Fjds2BAaGur2pD4lNDQ0Pj7e8TVuxIgRt09Pf/ny5bS0tMmTJ5eVldXV1R09ehTf+e5FVVXVo48+6nhst9vT09O3bds2c+bMxn3++c9/rlmzJj4+3rG4bds2/G9ph6FDh168eNFuty9fvvzpp592NBqNxpEjR/L5/K5du+7atevAgQP9+vVrsuI//vGPdevWTZw4cffu3a+99tprr73Whlft2KlLmWWxWBQKxf79+2marqqqEovFeXl5Tfo89dRTixYtomnabrePGTPms88+YyCoD9FqtRUVFY7HN27coCiqoKCgSZ/333//ueeec3s0XxYSEnL9+vU7dJgzZ87ixYtpmrbZbKmpqStXrnRXNN934MCB4OBgo9HYpP0f//jHX/7yF0Yi+ZKbN29ardZhw4Y1/tCuW7euX79+FouFpuklS5Y8+OCDTdaqqqoSCoWOf/jnz58PDAzUaDStf1GfOkeYlZWl1+vHjh1LCAkLCxs2bNiePXua9Nm1a5fjexxFUTNnzty9ezcDQX2IWCyOiIhwPA4NDWWz2Waz+fZutbW1+/bty87Opn3rCASDzp07d/Dgwerq6maf3b17t+NzzmKxpk+fjs95B1q1atWjjz7K5/Nvf6qqqmrfvn2XL192fyqfERcXx2azmzTu3r37wQcf5HA4hJCHHnpo7969dru9cYcDBw4kJiY6bnzbt2/f0NDQNt2SzKcKYVlZmUKhYLFuvamoqKjy8vLGHSwWS01NTXR0tLNDWVmZu1P6rg8//HDw4MEJCQlN2lksVlFR0TfffDNp0qS0tDSNRsNIPF8il8vXrVv3/vvvd+3adeXKlU2ebWho0Gq1+Jy7Qn19/Y4dOxYsWHD7UywW68aNG9988824cePGjh2r1+vdns5nlZWVOc8XRkVFmc3mmpqaJh2cH3jS9s+8TxVCm81GUZRzkc1mW63Wxh3sdjtN084+t3eAdlu/fv26devWrVvX+E/g8Le//e306dM7d+7Mz883mUzLli1jJKEvuXr16t69ew8fPvzLL7+8/PLLlZWVjZ+12WyEEHzOXWH9+vVJSUnNXhT29ttvnzx5cufOnQUFBSqV6t///rf74/kqm83m3MNx7C82+Ug3+efP4XDa9Jn3qUIYGRnZ+GtCVVVVk4uL+Hy+TCZz9qmqqlIoFG6N6KO2bt26ePHi/fv3d+7c+fZnnQc6hELh9OnTz58/7950Psg5pGPGjJFKpVevXm38rEwmEwgE+Jy7wurVq5988slmn3L+UUQi0dSpU/E570CRkZHOswBVVVVsNjs8PLylDqTtn3mfKoT9+vUzmUyOz5/BYMjMzBw1ahQhxGw219fXO/qMGjVq//79jse//fZbWloaQ2F9x88//7xo0aLdu3f37NnT2Wi1WlUq1e2dz507h5m4O1BRUZFSqXQMqclkamhoIIRQFDVy5Eh8zjvcuXPncnJy5syZ42yxWCx1dXXN9sTnvAOlpaU1/jwPGzbMcb6woaHBaDQSQkaMGHH+/HmlUkkIKSkpKSgoGDJkSOu372s/n3jnnXc2btz43HPP7d69m8fj7d27lxCycePGN998s7CwkBBy+vTpcePGvf7663V1dT/++OOFCxfwZfle3LhxIzExceDAgUlJSY6Wl156qVevXocPH548ebLBYCCETJ8+PSEhITg4+Pjx45mZmadPn+7SpQujqb3boUOHvvnmm/79+5tMptWrV48bN27VqlWEkO+++2758uWOKzUyMjIefPDBN954o7S0dMeOHRcvXgwJCWE6uNdbtGiRWq1ev369s2Xfvn1z58511MIpU6b06dMnKCjI8SE/e/YsamE7fPvtt+fOndu5c2d8fHyPHj0WLVrUp0+f+vr6Pn36jB8/vnv37h999NHGjRsnTJhACElJSXn88cdfeuklQshjjz2Wn58/Z86ctWvXDhs27Isvvmj9i7KXLFniovfDiLS0tOjo6OvXrw8bNuzDDz90fGsQiUQ9e/bs1asXISQqKmrKlClXr16VSqVfffVV4/Or0A42m61z587JycmK/+nVq5dUKhUIBAkJCY7f+igUiurq6oaGhgEDBqxYsQLfPO6RXC632+1VVVU8Hu/55593/l5KIpEkJSU59svj4uLGjx9/+fLl0NDQr776qslxJGgfrVY7e/bs4OBgZ4tQKOzRo0dycjIhJCIiorq6WqPRDBw48Ntvvw0LC2MuqRerq6sTCoWjRo3q06ePQqFISkoKCgoSCARz584tKyvTaDT/+te/RowY4egcFhaWkpLiGOqpU6cKBIKbN2/OnDnz9ddfv/1ihTvwtT1CAACANvGpc4QAAABthUIIAAB+DYUQAAD8GgohAAD4NRRCAADwayiEAADg11AIATyFVqtdu3ZtUVGR217x5s2brbkxxYEDB3JyctyQB4ARKIQAbpKXl9elZcOHD6+url6wYMHp06fdFunxxx/PyMi4a7czFmyuIAAABLxJREFUZ87MmDEDM3eDr8IP6gHcpLa2dsWKFc7F9957Lz4+fvbs2Y7FoKCgRx999Msvv5w5c2ZiYqIb8vzyyy+zZ88uKSm56xwojps6ffrppwsXLnRDMAA3QyEEYIZEIpk8efKWLVvu2tNut9fW1spkMi6X62ixWq0NDQ2N5/pqrKamhsVitfSs09ixYwMDA3/66afGjTRNV1dXi8ViiUTSuP2pp546c+bMxYsX75oWwOvg0CiApyguLo6MjHSetFu4cOHIkSO3b98eExMTHh4ul8u//vprmqbfeecdmUwWEhISFxd3/PjxxltYtWpVXFxcWFhYSEhIYmLiwYMHW3qt0tLS9PT06dOnO1tMJtOzzz4rEokiIiICAgIiIiIazy49c+bM7OxsFELwSSiEAJ7CarVWVlY6btlBCNHpdJcuXfrnP//51VdfnTx5csKECS+++OIzzzxz4sSJHTt2HD58ODAwcO7cuRaLxdH/iy++ePrppx9++OEzZ86cOnUqKSlpypQp2dnZzb5Weno6TdONb1Xz/vvvb9y48fvvv8/Nzb1w4cKHH37I5/Odz6amplIUlZ6e7rJ3D8AcGgCYIBaLH3744cYtBQUFhJAtW7Y4FmfPns1isa5cueJYVCqVLBYrJibGYDA4Wnbt2kUIOXXqFE3TWq1WKpU+/fTTzq2ZzeZu3bo9+eSTzb76X//6Vw6HY7fbnS2TJk2aOHHiHQKHh4c//vjjbX2bAJ6Pw3QhBoAWxcTEOG93LJfLQ0JCRowYIRAIHC3x8fGEkJKSkkGDBp06daqhoSE2Nrbx4dC4uDjH7QlvV1NTI5PJGt+qpl+/fh9//PHzzz8/e/bsIUOG8Hi8JqvI5XLnXe8BfAkKIYDnkslkjRd5PF7jFketMpvNhJCqqipCyLJly9hsduNVoqKimt0yh8Np8nOIt99+22KxrFu3bsWKFQEBATNmzPjoo48a38jQYrE4r9YB8CU4RwjgC6RSKSFk8+bNqj+7dOlSs/3Dw8MbGhoa10KhUPjxxx+Xl5dfuHBh8eLF27dvnz9/fuNVVCoVbvALPgmFEMAX3HfffXw+f+vWra3sP3DgQLvdfuXKlSbtLBYrOTn573//+4IFC06ePOlsLy0tValUgwYN6rDEAB4DhRDAFwQHB7/xxhurV69+8803b968aTAYcnNzv/766++++67Z/iNHjuTxeMeOHXO2/O1vf9uxY0dFRYXNZsvOzj5w4EBKSorz2WPHjlEUNWbMGJe/EwC3QyEE8BHvvPPOBx98sGLFii5duohEooSEhKVLl4pEomY7y2Sy6dOnb9682dlSXl4+a9YshULB4XCSk5MjIiJWr17tfHbTpk1jxoyJi4tz9bsAcD/MLAPADLvdTlFU4+s2CSE2m63J1S5tZbVar127ZjAYoqKiFApFk+03durUqSFDhly5cqVHjx6OFr1eX1hYqNPpYmJiIiIinD3Ly8s7d+78888/T548+V6yAXgmFEIA//XII48QQjZu3Hjnbi+99NLVq1cPHTrkllAA7oZCCOC/dDpdTU3NXQ94lpSUSKXSwMBAt4QCcDcUQgAA8Gu4WAYAAPwaCiEAAPg1FEIAAPBrKIQAAODX/j+0QnF65iE2tAAAAABJRU5ErkJggg==", "image/svg+xml": [ "\n", "\n", "\n", - " \n", + " \n", " \n", " \n", "\n", - "\n", + "\n", "\n", - " \n", + " \n", " \n", " \n", "\n", - "\n", + "\n", "\n", - " \n", + " \n", " \n", " \n", "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", "\n" ], "text/html": [ "\n", "\n", "\n", - " \n", + " \n", " \n", " \n", "\n", - "\n", + "\n", "\n", - " \n", + " \n", " \n", " \n", "\n", - "\n", + "\n", "\n", - " \n", + " \n", " \n", " \n", "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", "\n" ] }, @@ -990,45 +1024,37 @@ } ], "source": [ - "res = step(delay_siso_tf)\n", - "u = 0:10:100\n", - "plot(res)" + "res1 = step(delay_siso_tf, 0:0.1:10)\n", + "res2 = step(delay_siso_tf, 0:1:10)\n", + "res3 = step(delay_siso_tf, 0:0.01:10)\n", + "res.y\n", + "plot!(res)\n", + "plot!(res2)" ] }, { "cell_type": "code", - "execution_count": 29, + "execution_count": 54, "metadata": {}, "outputs": [ { - "data": { - "text/plain": [ - "ControlSystemsBase.SimResult{Matrix{Float64}, StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}, Matrix{Float64}, Matrix{Float64}, DelayLtiSystem{Float64, Float64}}([0.0 0.0 … 0.9999960031532982 0.9999962733648371], 0.0:0.07:14.000000000000002, [0.0 0.0 … 0.9999960031532982 0.9999962733648371], [1.0 1.0 … 1.0 1.0], DelayLtiSystem{Float64, Float64}\n", - "\n", - "P: StateSpace{Continuous, Float64}\n", - "A = \n", - " -1.0\n", - "B = \n", - " 0.0 1.0\n", - "C = \n", - " 1.0\n", - " 0.0\n", - "D = \n", - " 0.0 0.0\n", - " 1.0 0.0\n", - "\n", - "Continuous-time state-space model\n", - "\n", - "Delays: [1.5])" - ] - }, - "metadata": {}, - "output_type": "display_data" + "name": "stdout", + "output_type": "stream", + "text": [ + "[0.0 0.0 0.3934701171707952 0.7768701219836066 0.917915094373695 0.9698026491618251 0.9888910143620181 0.9959132295791787 0.9984965605514581 0.9994469148973136 0.9997965302422651]" + ] } ], "source": [ - "res" + "show(res2.y)" ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] } ], "metadata": { diff --git a/control/timeresp.py b/control/timeresp.py index ddabba873..595870442 100644 --- a/control/timeresp.py +++ b/control/timeresp.py @@ -50,6 +50,7 @@ from .exception import pandas_check from .iosys import NamedSignal, isctime, isdtime from .timeplot import time_response_plot +from .dde import dde_response __all__ = ['forced_response', 'step_response', 'step_info', 'initial_response', 'impulse_response', 'TimeResponseData', @@ -1093,141 +1094,11 @@ def forced_response( "with given X0.") if isinstance(sys, DelayLTI): - P = sys.P - n_states = P.A.shape[0] - n_inputs = P.B1.shape[1] - n_outputs = P.C1.shape[0] - # Convert inputs to numpy arrays for easier shape checking - if U is not None: - U = np.asarray(U) - if T is not None: - # T must be array_like - T = np.asarray(T) - # Set and/or check time vector in discrete-time case - # if isdtime(sys): - # if T is None: - # if U is None or (U.ndim == 0 and U == 0.): - # raise ValueError('Parameters `T` and `U` can\'t both be ' - # 'zero for discrete-time simulation') - # # Set T to equally spaced samples with same length as U - # if U.ndim == 1: - # n_steps = U.shape[0] - # else: - # n_steps = U.shape[1] - # dt = 1. if sys.dt in [True, None] else sys.dt - # T = np.array(range(n_steps)) * dt - # else: - # if U.ndim == 0: - # U = np.full((n_inputs, T.shape[0]), U) - # else: - # if T is None: - # raise ValueError('Parameter `T` is mandatory for continuous ' - # 'time systems.') - - # Test if T has shape (n,) or (1, n); - T = _check_convert_array(T, [('any',), (1, 'any')], - 'Parameter `T`: ', squeeze=True, - transpose=transpose) - - n_steps = T.shape[0] # number of simulation steps - - # equally spaced also implies strictly monotonic increase, - dt = (T[-1] - T[0]) / (n_steps - 1) - if not np.allclose(np.diff(T), dt): - raise ValueError("Parameter `T`: time values must be equally " - "spaced.") - - # create X0 if not given, test if X0 has correct shape - X0 = _check_convert_array(X0, [(n_states,), (n_states, 1)], - 'Parameter `X0`: ', squeeze=True) - - # Test if U has correct shape and type - legal_shapes = [(n_steps,), (1, n_steps)] if n_inputs == 1 else \ - [(n_inputs, n_steps)] - U = _check_convert_array(U, legal_shapes, - 'Parameter `U`: ', squeeze=False, - transpose=transpose) - - xout = np.zeros((n_states, n_steps)) - xout[:, 0] = X0 - yout = np.zeros((n_outputs, n_steps)) - # adaptation of robust control from Python Skotesgrad - # keep tracks delays - dtss = [int(np.round(delay / dt)) for delay in sys.tau] - zs = [] - def wf(zs): - ws = [] - for i, dts in enumerate(dtss): - if len(zs) <= dts: - ws.append(0) - elif dts == 0: - ws.append(zs[-1][i]) - else: - ws.append(zs[-dts][i]) - return np.array(ws) - - def inter_u(t): - if np.ndim(U) == 1: - return np.array([np.interp(t, T, U)]) - elif np.ndim(U) == 0: - print("U is a scalar !") - return U - else: - return np.array([np.interp(t, T, ui) for ui in U]) - - def f(t, x): - # TODO: verify interp - return P.A @ x + P.B1 @ inter_u(t) + P.B2 @ wf(zs) - - solver = LSODA(f, T[0], X0, t_bound=T[-1], max_step=dt) - - xs = [X0] - ts = [T[0]] - while solver.status == "running": - t = ts[-1] - x = xs[-1] - #print("C1", sys.C1) - ##print("D11", sys.D11) - #print("D12", sys.D12) - #print("x", x) - #print("U", U) - #print("ndim U", np.ndim(U)) - #print("wf(zs)", wf(zs)) - #print("interp U", np.interp(t, T, U)) - - #print("C1", P.C1) - #print("x", np.array(x)) - - #print("D11", P.D11) - #print("inter U", inter_u(t)) - - #print("D12", P.D12) - #print("wf(zs)", wf(zs)) - - #print("") - - y = P.C1 @ np.array(x) + P.D11 @ inter_u(t) + P.D12 @ wf(zs) - - z = P.C2 @ np.array(x) + P.D21 @ inter_u(t) + P.D22 @ wf(zs) - zs.append(list(z)) - - solver.step() - t = solver.t - ts.append(t) - - x = solver.y.copy() - xs.append(list(x)) - - for it, ti in enumerate(T): - if ts[-2] < ti <= ts[-1]: - xi = solver.dense_output()(ti) - xout[:, it] = xi - yout[:, it] = P.C1 @ np.array(xi) + P.D11 @ inter_u(t) + P.D12 @ wf(zs) - - #xout = np.transpose(xout) - #yout = np.transpose(yout) - tout = T - + # step size must be small enough to ensure accuracy. + # Stiff problems may require very small step size or specific dde solver + return dde_response( + sysdata, T=timepts, U=inputs, X0=initial_state, params=params, + transpose=transpose, return_x=return_states, squeeze=squeeze, method="LSODA") else: sys = _convert_to_statespace(sys) A, B, C, D = np.asarray(sys.A), np.asarray(sys.B), np.asarray(sys.C), \ From 8f43ab9cb693e2d225d67b5dd8657481681a3997 Mon Sep 17 00:00:00 2001 From: Mathieu Sylvain Date: Mon, 31 Mar 2025 22:56:05 +0200 Subject: [PATCH 08/16] add tests and docstrings, tests are all passing. ToDo: refine tests, improve doc and julia notebook. Clean the code --- control/dde.py | 162 ++++++++++-- control/delaylti.py | 400 ++++++++++++++++++++++------- control/partitionedssp.py | 240 +++++++++++++++++ control/tests/delay_lti_test.py | 210 ++++++++++----- control/tests/partionedssp_test.py | 307 ++++++++++++++++++++++ 5 files changed, 1146 insertions(+), 173 deletions(-) create mode 100644 control/tests/partionedssp_test.py diff --git a/control/dde.py b/control/dde.py index 2f6a113b3..19069d538 100644 --- a/control/dde.py +++ b/control/dde.py @@ -6,16 +6,59 @@ def dde_response(delay_sys, T, U=0, X0=0, params=None, transpose=False, return_x=False, squeeze=None, method=None): - + """Compute the output of a delay linear system given the input. + + Parameters + ---------- + delay_sys : DelayLTI + Delay I/O system for which forced response is computed. + T : array_like + An array representing the time points where the input is specified. + The time points must be uniformly spaced. + U : array_like or float, optional + Input array giving input at each time in `T`. + X0 : array_like or float, default=0. + Initial condition. + params : dict, optional + If system is a nonlinear I/O system, set parameter values. + transpose : bool, default=False + If set to True, the input and output arrays will be transposed + to match the format used in certain legacy systems or libraries. + return_x : bool, default=None + Used if the time response data is assigned to a tuple. If False, + return only the time and output vectors. If True, also return the + the state vector. If None, determine the returned variables by + `config.defaults['forced_response.return_x']`, which was True + before version 0.9 and is False since then. + squeeze : bool, optional + By default, if a system is single-input, single-output (SISO) then + the output response is returned as a 1D array (indexed by time). + If `squeeze` is True, remove single-dimensional entries from + the shape of the output even if the system is not SISO. If + `squeeze` is False, keep the output as a 2D array (indexed by + the output number and time) even if the system is SISO. The default + behavior can be overridden by + `config.defaults['control.squeeze_time_response']`. + method : str, default=None + Method used to solve the DDE. If None, use the Skogestad-Python + solver. If 'LSODA', use the LSODA solver. + + Returns + ------- + resp : `TimeResponseData` + Input/output response data object. When accessed as a tuple, + returns ``(time, outputs)`` (default) or ``(time, outputs, states)`` + if `return_ + """ from .timeresp import TimeResponseData, _check_convert_array from .delaylti import DelayLTI if not isinstance(delay_sys, DelayLTI): raise TypeError("Input must be a DelayLTI") - A, B1, B2 = delay_sys.A, delay_sys.B1, delay_sys.B2 - C1, C2 = delay_sys.C1, delay_sys.C2 - D11, D12 = delay_sys.D11, delay_sys.D12 - D21, D22 = delay_sys.D21, delay_sys.D22 + A, B1, B2 = delay_sys.P.A, delay_sys.P.B1, delay_sys.P.B2 + C1, C2 = delay_sys.P.C1, delay_sys.P.C2 + D11, D12 = delay_sys.P.D11, delay_sys.P.D12 + D21, D22 = delay_sys.P.D21, delay_sys.P.D22 tau = delay_sys.tau n_states = A.shape[0] @@ -64,9 +107,6 @@ def dde_response(delay_sys, T, U=0, X0=0, params=None, tout, yout, xout, U, params=params, issiso=delay_sys.issiso(), - output_labels=delay_sys.output_labels, - input_labels=delay_sys.input_labels, - state_labels=delay_sys.state_labels, sysname=delay_sys.name, plot_inputs=True, title="Forced response for " + delay_sys.name, @@ -81,22 +121,48 @@ def Skogestad_Python_solver(delay_sys, dt, T, U, X0, xout, yout): """ Method from Skogestad-Python: https://github.com/alchemyst/Skogestad-Python/blob/master/robustcontrol/InternalDelay.py#L446 RK integration. + + Parameters + ---------- + delay_sys : DelayLTI + Delay I/O system for which forced response is computed. + dt : float + Time step for the integration. + T : array_like + An array representing the time points where the input is specified. + The time points must be uniformly spaced. + U : array_like or float, optional + Input array giving input at each time in `T`. + X0 : array_like or float, default=0. + Initial condition. + xout : array_like + Array to store the state vector at each time step. + yout : array_like + Array to store the output vector at each time step. + + Returns + ------- + xout : array_like + Array containing the state vector at each time step. + yout : array_like + Array containing the output vector at each time step. + """ dtss = [int(np.round(delay / dt)) for delay in delay_sys.tau] zs = [] def f(t, x): - return delay_sys.A @ x + delay_sys.B1 @ linear_interp_u(t, T, U) + delay_sys.B2 @ wf(zs, dtss) + return delay_sys.P.A @ x + delay_sys.P.B1 @ linear_interp_u(t, T, U) + delay_sys.P.B2 @ wf(zs, dtss) xs = [X0] ys = [] for i,t in enumerate(T): x = xs[-1] - y = delay_sys.C1 @ np.array(x) + delay_sys.D11 @ linear_interp_u(t, T, U) + delay_sys.D12 @ wf(zs, dtss) + y = delay_sys.P.C1 @ np.array(x) + delay_sys.P.D11 @ linear_interp_u(t, T, U) + delay_sys.P.D12 @ wf(zs, dtss) ys.append(list(y)) - z = delay_sys.C2 @ np.array(x) + delay_sys.D21 @ linear_interp_u(t, T, U) + delay_sys.D22 @ wf(zs, dtss) + z = delay_sys.P.C2 @ np.array(x) + delay_sys.P.D21 @ linear_interp_u(t, T, U) + delay_sys.P.D22 @ wf(zs, dtss) zs.append(list(z)) # x integration @@ -115,11 +181,41 @@ def f(t, x): def Skogestad_Python_LSODA(delay_sys, dt, T, U, X0, xout, yout): + """ + Method using LSODA solver. + + Parameters + ---------- + delay_sys : DelayLTI + Delay I/O system for which forced response is computed. + dt : float + Time step for the integration. + T : array_like + An array representing the time points where the input is specified. + The time points must be uniformly spaced. + U : array_like or float, optional + Input array giving input at each time in `T`. + X0 : array_like or float, default=0. + Initial condition. + xout : array_like + Array to store the state vector at each time step. + yout : array_like + Array to store the output vector at each time step. + + Returns + ------- + xout : array_like + Array containing the state vector at each time step. + yout : array_like + Array containing the output vector at each time step. + + """ + dtss = [int(np.round(delay / dt)) for delay in delay_sys.tau] zs = [] def f(t, x): - return delay_sys.A @ x + delay_sys.B1 @ linear_interp_u(t, T, U) + delay_sys.B2 @ wf(zs, dtss) + return delay_sys.P.A @ x + delay_sys.P.B1 @ linear_interp_u(t, T, U) + delay_sys.P.B2 @ wf(zs, dtss) solver = LSODA(f, T[0], X0, t_bound=T[-1], max_step=dt) @@ -128,8 +224,8 @@ def f(t, x): while solver.status == "running": t = ts[-1] x = xs[-1] - y = delay_sys.C1 @ np.array(x) + delay_sys.D11 @ linear_interp_u(t, T, U) + delay_sys.D12 @ wf(zs, dtss) - z = delay_sys.C2 @ np.array(x) + delay_sys.D21 @ linear_interp_u(t, T, U) + delay_sys.D22 @ wf(zs, dtss) + y = delay_sys.P.C1 @ np.array(x) + delay_sys.P.D11 @ linear_interp_u(t, T, U) + delay_sys.P.D12 @ wf(zs, dtss) + z = delay_sys.P.C2 @ np.array(x) + delay_sys.P.D21 @ linear_interp_u(t, T, U) + delay_sys.P.D22 @ wf(zs, dtss) zs.append(list(z)) solver.step() @@ -143,12 +239,31 @@ def f(t, x): if ts[-2] < ti <= ts[-1]: xi = solver.dense_output()(ti) xout[:, it] = xi - yout[:, it] = delay_sys.C1 @ np.array(xi) + delay_sys.D11 @ linear_interp_u(t, T, U) + delay_sys.D12 @ wf(zs, dtss) + yout[:, it] = delay_sys.P.C1 @ np.array(xi) + delay_sys.P.D11 @ linear_interp_u(t, T, U) + delay_sys.P.D12 @ wf(zs, dtss) return xout, yout def linear_interp_u(t, T, U): + """ + Linearly interpolate the input U at time t. + + Parameters + ---------- + t : float + Time at which to interpolate. + T : array_like + Array of time points. + U : array_like + Array of input values. + + Returns + ------- + u : array_like + Interpolated input value at time t. + + """ + if np.ndim(U) == 1: return np.array([np.interp(t, T, U)]) elif np.ndim(U) == 0: @@ -159,6 +274,23 @@ def linear_interp_u(t, T, U): def wf(zs, dtss): + """ + Compute the delayed inputs. + + Parameters + ---------- + zs : list of list + List of internal outputs at each time step. + dtss : list of int + List of time delays in number of time steps. + + Returns + ------- + ws : array_like + Array of delayed inputs. + + """ + ws = [] for i, dts in enumerate(dtss): if len(zs) <= dts: diff --git a/control/delaylti.py b/control/delaylti.py index 8ba9e5e03..dfb4a4946 100644 --- a/control/delaylti.py +++ b/control/delaylti.py @@ -9,41 +9,117 @@ class DelayLTI(LTI): - - def __init__(self, P: PartitionedStateSpace, tau: np.ndarray = [], **kwargs): + """Delay Linear Time Invariant (DelayLTI) class. + + The DelayLTI class is a subclass of the LTI class that represents a + linear time-invariant (LTI) system with time delays. It is designed to + handle systems where the output depends not only on the current input + but also on past inputs. + + Parameters + ---------- + P : PartitionedStateSpace + The underlying partitioned state-space representation of the system. + tau : array_like, optional + An array of time delays associated with the system. + **kwargs : keyword arguments + Additional keyword arguments for the LTI system. + + Attributes + ---------- + P : PartitionedStateSpace + The underlying partitioned state-space representation of the system. + tau : array_like + An array of time delays associated with the system. + A : array_like + The state matrix. + B : array_like + The input matrix. + C : array_like + The output matrix. + D : array_like + The direct feedthrough matrix. + B1 : array_like + The input matrix for external inputs. + B2 : array_like + The input matrix for delayed inputs. + C1 : array_like + The output matrix for external outputs. + C2 : array_like + The output matrix for delayed outputs. + D11 : array_like + The direct feedthrough matrix for external inputs to external outputs. + D12 : array_like + The direct feedthrough matrix for delayed inputs to external outputs. + D21 : array_like + The direct feedthrough matrix for external inputs to delayed outputs. + D22 : array_like + The direct feedthrough matrix for delayed inputs to delayed outputs. + ninputs : int + The number of external inputs. + noutputs : int + The number of external outputs. + nstates : int + The number of states. + + Methods + ------- + from_ss(sys, tau) + Create a DelayLTI system from a StateSpace system. + from_tf(sys, tau) + Create a DelayLTI system from a TransferFunction system. + size() + Return the number of outputs and inputs. + """ - self.P = P - self.tau = tau + def __init__(self, P: PartitionedStateSpace, tau = None, **kwargs): + """Initialize the DelayLTI object. + + Parameters + ---------- + P : PartitionedStateSpace + The underlying partitioned state-space representation of the system. + tau : array_like, optional + An array of time delays associated with the system. + **kwargs : keyword arguments + Additional keyword arguments for the LTI system. - self.A = P.A - self.B = P.B - self.C = P.C - self.D = P.D + """ + if not isinstance(P, PartitionedStateSpace): + raise TypeError("Input must be a PartitionedStateSpace") + + self.P = P + self.tau = np.array([]) if tau is None else np.array(tau) + + static = (self.P.A.size == 0) - self.B1 = P.B1 - self.B2 = P.B2 - self.C1 = P.C1 - self.C2 = P.C2 - self.D11 = P.D11 - self.D12 = P.D12 - self.D21 = P.D21 - self.D22 = P.D22 + self.nu = self.P.sys.ninputs - len(self.tau) + self.ny = self.P.sys.noutputs - len(self.tau) - static = (self.A.size == 0) + super().__init__(self.nu, self.ny, self.P.sys.nstates) - self.ninputs = self.P.sys.ninputs - len(self.tau) - self.noutputs = self.P.sys.noutputs - len(self.tau) - self.nstates = self.P.sys.nstates + @classmethod + def from_ss(cls, sys: StateSpace, tau: np.ndarray = None): + """Create a DelayLTI system from a StateSpace system. - defaults = {'inputs': self.B1.shape[1], 'outputs': self.C1.shape[0], - 'states': self.A.shape[0]} - name, inputs, outputs, states, dt = _process_iosys_keywords( - kwargs, defaults, static=static) + Parameters + ---------- + sys : StateSpace + The underlying state-space representation of the system. + tau : array_like, optional + An array of time delays associated with the system. - super().__init__(inputs, outputs, states, name) + Returns + ------- + DelayLTI + The DelayLTI system. - @classmethod - def from_ss(cls, sys: StateSpace, tau: np.ndarray = []): + """ + if not isinstance(sys, StateSpace): + raise TypeError("Input must be a StateSpace") + + tau = np.array([]) if tau is None else np.array(tau) + nu = sys.D.shape[1] - len(tau) ny = sys.D.shape[0] - len(tau) @@ -54,16 +130,34 @@ def from_ss(cls, sys: StateSpace, tau: np.ndarray = []): return cls(psys, tau) @classmethod - def from_tf(cls, sys: TransferFunction, tau: np.ndarray = []): + def from_tf(cls, sys: TransferFunction, tau: np.ndarray = None): + """Create a DelayLTI system from a TransferFunction system. + + Parameters + ---------- + sys : TransferFunction + The underlying transfer function representation of the system. + tau : array_like, optional + An array of time delays associated with the system. + + Returns + ------- + DelayLTI + The DelayLTI system. + + """ + if not isinstance(sys, TransferFunction): + raise TypeError("Input must be a TransferFunction") return DelayLTI.from_ss(tf2ss(sys), tau) def size(self): + """Return the number of outputs and inputs.""" return (self.noutputs, self.ninputs) def poles(self): """Compute the poles of a delay lti system.""" - return eigvals(self.A).astype(complex) if self.nstates \ + return eigvals(self.P.A).astype(complex) if self.nstates \ else np.array([]) def zeros(self): @@ -77,8 +171,8 @@ def zeros(self): try: from slycot import ab08nd - out = ab08nd(self.A.shape[0], self.B.shape[1], self.C.shape[0], - self.A, self.B, self.C, self.D) + out = ab08nd(self.P.A.shape[0], self.P.B.shape[1], self.P.C.shape[0], + self.P.A, self.P.B, self.P.C, self.P.D) nu = out[0] if nu == 0: return np.array([]) @@ -88,7 +182,7 @@ def zeros(self): out[9][0:nu, 0:nu]).astype(complex) except ImportError: # Slycot unavailable. Fall back to SciPy. - if self.C.shape[0] != self.D.shape[1]: + if self.P.C.shape[0] != self.P.D.shape[1]: raise NotImplementedError( "StateSpace.zero only supports systems with the same " "number of inputs as outputs.") @@ -103,18 +197,37 @@ def zeros(self): # # The generalized eigenvalue problem is only solvable if its # arguments are square matrices. - L = np.concatenate((np.concatenate((self.A, self.B), axis=1), - np.concatenate((self.C, self.D), axis=1)), axis=0) - M = np.pad(np.eye(self.A.shape[0]), ((0, self.C.shape[0]), - (0, self.B.shape[1])), "constant") + L = np.concatenate((np.concatenate((self.P.A, self.P.B), axis=1), + np.concatenate((self.P.C, self.P.D), axis=1)), axis=0) + M = np.pad(np.eye(self.P.A.shape[0]), ((0, self.P.C.shape[0]), + (0, self.P.B.shape[1])), "constant") return np.array([x for x in eigvals(L, M, overwrite_a=True) if not np.isinf(x)], dtype=complex) def _isstatic(self): + """Check if the system is static.""" return self.nstates == 0 def __mul__(self, other): + """Multiply two DelayLTI systems or a DelayLTI system with a scalar. + + Parameters + ---------- + other : DelayLTI, scalar, TransferFunction, StateSpace + The other system or scalar to multiply with. + + Returns + ------- + DelayLTI + The resulting DelayLTI system. + + Raises + ------ + TypeError + If the operand type is not supported. + """ + if isinstance(other, (int, float, complex)): new_C = np.block([[self.P.C1 * other], [self.P.C2]]) new_D = np.block([[self.P.D11 * other, self.P.D12 * other], [self.P.D21, self.P.D22]]) @@ -137,6 +250,7 @@ def __mul__(self, other): raise TypeError("Unsupported operand type(s) for *: '{}' and '{}'".format(type(self), type(other))) def __rmul__(self, other): + if isinstance(other, (int, float, complex)): return self * other @@ -151,10 +265,28 @@ def __rmul__(self, other): raise TypeError("Unsupported operand type(s) for *: '{}' and '{}'".format(type(other), type(self))) def __add__(self, other): + """Add two DelayLTI systems or a DelayLTI system with a scalar. + + Parameters + ---------- + other : DelayLTI, scalar, TransferFunction, StateSpace + The other system or scalar to add. + + Returns + ------- + DelayLTI + The resulting DelayLTI system. + + Raises + ------ + TypeError + If the operand type is not supported. + """ + if isinstance(other, (int, float, complex)): new_D = self.P.sys.D.copy() - new_D[:self.noutputs, :self.ninputs] += other - pnew = PartitionedStateSpace(ss(self.A, self.B, self.C, new_D), self.P.nu1, self.P.ny1) + new_D[:self.ny, :self.nu] += other + pnew = PartitionedStateSpace(ss(self.P.A, self.P.B, self.P.C, new_D), self.P.nu1, self.P.ny1) return DelayLTI(pnew, self.tau) elif isinstance(other, DelayLTI): psys_new = self.P + other.P @@ -176,12 +308,8 @@ def __rsub__(self, other): def __eq__(self, other): if not isinstance(other, DelayLTI): - return False - return (np.allclose(self.A, other.A) and - np.allclose(self.B, other.B) and - np.allclose(self.C, other.C) and - np.allclose(self.D, other.D) and - np.allclose(self.tau, other.tau)) + raise TypeError(f"{other} is not a DelayLTI object, is {type(other)}") + return (self.P == other.P) and (self.tau == other.tau) def feedback(self, other=1, sign=-1): """Standard or LFT feedback interconnection for DelayLTI. @@ -228,15 +356,15 @@ def feedback(self, other=1, sign=-1): K = np.asarray(other, dtype=float) if K.ndim == 0: K = K.reshape(1,1) elif K.ndim == 1: - if self.noutputs != 1: raise ValueError("1D array feedback requires SISO system G.") + if self.nu != 1: raise ValueError("1D array feedback requires SISO system G.") K = K.reshape(self.ninputs, 1) elif K.ndim != 2: raise ValueError("Feedback gain must be scalar, 1D, or 2D array.") else: raise TypeError(f"Unsupported type for static feedback: {type(other)}") # Check dimensions of K - if K.shape != (self.ninputs, self.noutputs): - raise ValueError(f"Feedback gain K has incompatible shape. Expected ({self.ninputs}, {self.noutputs}), got {K.shape}.") + if K.shape != (self.nu, self.ny): + raise ValueError(f"Feedback gain K has incompatible shape. Expected ({self.nu}, {self.ny}), got {K.shape}.") # Get matrices from self's underlying PartitionedStateSpace P_g = self.P @@ -246,21 +374,19 @@ def feedback(self, other=1, sign=-1): D21_g, D22_g = P_g.D21, P_g.D22 taus = self.tau n_states = self.nstates - n_u = self.ninputs # G's external input dimension - n_y = self.noutputs # G's external output dimension n_w = B2_g.shape[1] # Delay input dimension n_z = C2_g.shape[0] # Delay output dimension - n_r = n_u # Reference input dimension + n_r = self.nu # Reference input dimension # Promote types, handle empty states T = np.promote_types(A_g.dtype if A_g.size > 0 else float, K.dtype) if n_states == 0: A_g = np.zeros((0,0), dtype=T) # Calculate closed-loop matrices for map [r, w] -> [y, z] - F = np.eye(n_u, dtype=T) - sign * K @ D11_g + F = np.eye(self.nu, dtype=T) - sign * K @ D11_g try: invF_signK = solve(F, sign * K) - invF = solve(F, np.eye(n_u, dtype=T)) + invF = solve(F, np.eye(self.nu, dtype=T)) except LinAlgError: raise ValueError("Algebraic loop; I - sign*K*D11 is singular.") @@ -275,52 +401,67 @@ def feedback(self, other=1, sign=-1): D22_new = D22_g + D21_g @ invF_signK @ D12_g B_new = np.hstack([B1_new, B2_new]) if B1_new.size > 0 or B2_new.size > 0 else np.zeros((n_states, n_r + n_w), dtype=T) - C_new = np.vstack([C1_new, C2_new]) if C1_new.size > 0 or C2_new.size > 0 else np.zeros((n_y + n_z, n_states), dtype=T) - D_new = np.block([[D11_new, D12_new], [D21_new, D22_new]]) if D11_new.size>0 or D12_new.size>0 or D21_new.size>0 or D22_new.size>0 else np.zeros((n_y + n_z, n_r + n_w), dtype=T) + C_new = np.vstack([C1_new, C2_new]) if C1_new.size > 0 or C2_new.size > 0 else np.zeros((self.ny + n_z, n_states), dtype=T) + D_new = np.block([[D11_new, D12_new], [D21_new, D22_new]]) if D11_new.size>0 or D12_new.size>0 or D21_new.size>0 or D22_new.size>0 else np.zeros((self.ny + n_z, n_r + n_w), dtype=T) - # Create the new StateSpace system clsys_ss = StateSpace(A_new, B_new, C_new, D_new, self.dt) - - # Partition it correctly: inputs [r, w], outputs [y, z] - clsys_part = PartitionedStateSpace(clsys_ss, nu1=n_r, ny1=n_y) - - # Determine result types and construct the new DelayLTI - # Need to promote delay type S with potential default float - _, S = _promote_delay_system_types(self, self) + clsys_part = PartitionedStateSpace(clsys_ss, nu1=n_r, ny1=self.ny) return DelayLTI(clsys_part, taus) def issiso(self): """Check if the system is single-input, single-output.""" # Based on EXTERNAL dimensions - return self.ninputs == 1 and self.noutputs == 1 + return self.nu == 1 and self.ny == 1 - def __call__(self, x, squeeze=None, warn_infinite=True): + def __call__(self, x, squeeze=False, warn_infinite=True): + """Evaluate the frequency response of the system. + + Parameters + ---------- + x : array_like + Complex frequencies at which to evaluate the frequency response. + squeeze : bool, optional + If squeeze=True, access to the output response will remove + single-dimensional entries from the shape of the inputs, + outputs, and states even if the system is not SISO. If + squeeze=False, keep the input as a 2D or 3D array (indexed + by the input (if multi-input), trace (if single input) and + time) and the output and states as a 3D array (indexed by the + output/state, trace, and time) even if the system is SISO. + warn_infinite : bool, optional + If True, issue a warning if an infinite value is found in the + frequency response. + + Returns + ------- + out : array_like + Frequency response of the system. + """ x_arr = np.atleast_1d(x).astype(complex, copy=False) if len(x_arr.shape) > 1: raise ValueError("input list must be 1D") - out = np.empty((self.noutputs, self.ninputs, len(x_arr)), dtype=complex) - - sys_call = self.P.sys(x, squeeze=squeeze, warn_infinite=warn_infinite) - ny = self.noutputs - nu = self.ninputs - for i, xi in enumerate(x): - P11_fr = sys_call[:ny, :nu, i] - P12_fr = sys_call[:ny, nu:, i] - P21_fr = sys_call[ny:, :nu, i] - P22_fr = sys_call[ny:, nu:, i] + out = np.empty((self.ny, self.nu, len(x_arr)), dtype=complex) + + sys_call = self.P.sys(x_arr, squeeze=squeeze, warn_infinite=warn_infinite) + for i, xi in enumerate(x_arr): + P11_fr = sys_call[:self.ny, :self.nu, i] + P12_fr = sys_call[:self.ny, self.nu:, i] + P21_fr = sys_call[self.ny:, :self.nu, i] + P22_fr = sys_call[self.ny:, self.nu:, i] delay_term_inv = np.exp(xi * self.tau) delay_term_fr = np.diag(delay_term_inv) out[:,:,i] = P11_fr + P12_fr @ inv(delay_term_fr - P22_fr) @ P21_fr return out def __str__(self): - # ... (existing string representation) ... + # To be improved s = f"DelayLTI with {self.noutputs} outputs, {self.ninputs} inputs, " \ f"{self.nstates} states, and {len(self.tau)} delays.\n" s += f"Delays: {self.tau}\n" s += "Underlying PartitionedStateSpace P:\n" + str(self.P) + s += "\n" return s def __repr__(self): @@ -330,7 +471,24 @@ def __repr__(self): def delay(tau): """ - Pure delay + Create a pure delay system. + + Parameters + ---------- + tau : float, list, or NumPy array + The time delay(s) for the system. If a list or NumPy array is + provided, each element represents a separate delay. + + Returns + ------- + DelayLTI + A DelayLTI system representing the pure delay. + + Raises + ------ + TypeError + If tau is not a number, list, or NumPy array. + """ if isinstance(tau, (int, float)): @@ -359,7 +517,22 @@ def delay(tau): def exp(G): """ - create delay in the form of exp(-τ*s) where s=tf("s") + Create delay in the form of exp(-τ*s) where s=tf("s") + + Parameters + ---------- + G : TransferFunction + The transfer function representing the delay. + + Returns + ------- + DelayLTI + A DelayLTI system representing the pure delay. + + Raises + ------ + ValueError + If the input is not of the form -τ*s, τ>0. """ num = G.num[0][0] den = G.den[0][0] @@ -379,21 +552,13 @@ def tf2dlti(tf: TransferFunction): ss_tf = tf2ss(tf) return DelayLTI.from_ss(ss_tf) - -def _promote_delay_system_types(sys1, sys2): - """Determine the numeric and delay types for combined systems.""" - # Promote numeric types based on underlying StateSpace - T = np.promote_types( - sys1.P.sys.A.dtype if sys1.P.sys.A.size > 0 else float, - sys2.P.sys.A.dtype if sys2.P.sys.A.size > 0 else float - ) - # Promote delay types - S = np.promote_types( - np.asarray(sys1.tau).dtype if len(sys1.tau) > 0 else float, - np.asarray(sys2.tau).dtype if len(sys2.tau) > 0 else float - ) - return T, S + +def ss2dlti(ss: StateSpace): + """ + Convert a StateSpace to a DelayLTI + """ + return DelayLTI.from_ss(ss) def _convert_to_delay_lti(sys): @@ -409,6 +574,24 @@ def _convert_to_delay_lti(sys): def vcat(*systems: list[DelayLTI]) -> DelayLTI: + """Vertically concatenate a list of DelayLTI systems. + + Parameters + ---------- + *systems : list of DelayLTI + The systems to be concatenated. + + Returns + ------- + DelayLTI + The resulting DelayLTI system. + + Raises + ------ + TypeError + If any of the inputs are not DelayLTI systems. + """ + from .partitionedssp import vcat_pss if not all(isinstance(sys, DelayLTI) for sys in systems): @@ -421,6 +604,24 @@ def vcat(*systems: list[DelayLTI]) -> DelayLTI: def hcat(*systems: list[DelayLTI]) -> DelayLTI: + """Horizontally concatenate a list of DelayLTI systems. + + Parameters + ---------- + *systems : list of DelayLTI + The systems to be concatenated. + + Returns + ------- + DelayLTI + The resulting DelayLTI system. + + Raises + ------ + TypeError + If any of the inputs are not DelayLTI systems. + """ + from .partitionedssp import hcat_pss if not(all(isinstance(sys, DelayLTI) for sys in systems)): @@ -433,5 +634,22 @@ def hcat(*systems: list[DelayLTI]) -> DelayLTI: def mimo_delay(array: np.ndarray[DelayLTI]): + """Create a MIMO delay system from an array of DelayLTI systems. + + Parameters + ---------- + array : np.ndarray of DelayLTI + An array of DelayLTI systems. + + Returns + ------- + DelayLTI + The resulting DelayLTI system. + + """ + + if not all(isinstance(item, DelayLTI) for row in array for item in row): + raise TypeError("All elements in the array must be DelayLTI systems") + rows = [hcat(*row) for row in array] return vcat(*rows) \ No newline at end of file diff --git a/control/partitionedssp.py b/control/partitionedssp.py index 1f54f6b3c..40651b6c3 100644 --- a/control/partitionedssp.py +++ b/control/partitionedssp.py @@ -4,7 +4,96 @@ from .statesp import ss, StateSpace class PartitionedStateSpace: + """Partitioned State Space class. + + The PartitionedStateSpace class represents a state-space system + partitioned into two parts: external and internal. It is used to + handle systems with time delays. + + Parameters + ---------- + sys : StateSpace + The underlying state-space representation of the system. + nu1 : int + The number of external inputs. + ny1 : int + The number of external outputs. + + Attributes + ---------- + sys : StateSpace + The underlying state-space representation of the system. + nu1 : int + The number of external inputs. + ny1 : int + The number of external outputs. + A : array_like + The state matrix. + B : array_like + The input matrix. + C : array_like + The output matrix. + D : array_like + The direct feedthrough matrix. + B1 : array_like + The input matrix for external inputs. + B2 : array_like + The input matrix for delayed inputs. + C1 : array_like + The output matrix for external outputs. + C2 : array_like + The output matrix for delayed outputs. + D11 : array_like + The direct feedthrough matrix for external inputs to external outputs. + D12 : array_like + The direct feedthrough matrix for delayed inputs to external outputs. + D21 : array_like + The direct feedthrough matrix for external inputs to delayed outputs. + D22 : array_like + The direct feedthrough matrix for delayed inputs to delayed outputs. + nstates : int + The number of states. + noutputs_total : int + The total number of outputs. + ninputs_total : int + The total number of inputs. + nu2 : int + The number of delayed inputs. + ny2 : int + The number of delayed outputs. + + Methods + ------- + from_matrices(A, B1, B2, C1, C2, D11, D12, D21, D22) + Create a PartitionedStateSpace system from matrices. + """ + def __init__(self, sys: StateSpace, nu1: int, ny1: int): + """Initialize the PartitionedStateSpace object. + + Parameters + ---------- + sys : StateSpace + The underlying state-space representation of the system. + nu1 : int + The number of external inputs. + ny1 : int + The number of external outputs. + + Raises + ------ + TypeError + If the input is not a StateSpace object. + ValueError + If the number of external inputs or outputs is invalid. + """ + if not isinstance(sys, StateSpace): + raise TypeError("Input must be a StateSpace") + if nu1 > sys.ninputs or nu1 < 0: + raise ValueError("Invalid number of external inputs") + if ny1 > sys.noutputs or ny1 < 0: + raise ValueError("Invalid number of external outputs") + self.sys = sys self.nu1 = nu1 self.ny1 = ny1 @@ -17,6 +106,7 @@ def __init__(self, sys: StateSpace, nu1: int, ny1: int): self.nstates = sys.nstates self.noutputs_total = sys.noutputs self.ninputs_total = sys.ninputs + self.nu2 = self.ninputs_total - self.nu1 # Dimension of external input w self.ny2 = self.noutputs_total - self.ny1 # Dimension of external output z @@ -55,6 +145,40 @@ def D22(self): @classmethod def from_matrices(cls, A, B1, B2, C1, C2, D11, D12, D21, D22): + """Create a PartitionedStateSpace system from matrices. + + Parameters + ---------- + A : array_like + The state matrix. + B1 : array_like + The input matrix for external inputs. + B2 : array_like + The input matrix for delayed inputs. + C1 : array_like + The output matrix for external outputs. + C2 : array_like + The output matrix for delayed outputs. + D11 : array_like + The direct feedthrough matrix for external inputs to external outputs. + D12 : array_like + The direct feedthrough matrix for delayed inputs to external outputs. + D21 : array_like + The direct feedthrough matrix for external inputs to delayed outputs. + D22 : array_like + The direct feedthrough matrix for delayed inputs to delayed outputs. + + Returns + ------- + PartitionedStateSpace + The PartitionedStateSpace system. + + Raises + ------ + ValueError + If the matrices have incompatible shapes. + """ + nx = A.shape[0] nw = B1.shape[1] nu = B2.shape[1] @@ -99,6 +223,24 @@ def from_matrices(cls, A, B1, B2, C1, C2, D11, D12, D21, D22): def __add__(self, other): + """Add two PartitionedStateSpace systems. + + Parameters + ---------- + other : PartitionedStateSpace + The other system to add. + + Returns + ------- + PartitionedStateSpace + The resulting PartitionedStateSpace system. + + Raises + ------ + TypeError + If the operand type is not supported. + """ + if not isinstance(other, PartitionedStateSpace): raise TypeError("Can only add PartitionedStateSpace objects") @@ -121,6 +263,24 @@ def __add__(self, other): return PartitionedStateSpace(P, self.nu1 + other.nu1, self.ny1 + other.ny1) def __mul__(self, other): + """Multiply two PartitionedStateSpace systems. + + Parameters + ---------- + other : PartitionedStateSpace + The other system to multiply with. + + Returns + ------- + PartitionedStateSpace + The resulting PartitionedStateSpace system. + + Raises + ------ + TypeError + If the operand type is not supported. + """ + if not isinstance(other, PartitionedStateSpace): raise TypeError("Can only multiply PartitionedStateSpace objects") @@ -148,8 +308,34 @@ def __mul__(self, other): P = ss(A, B, C, D) return PartitionedStateSpace(P, other.nu1, self.ny1) + + def __eq__(self, other): + return (np.allclose(self.A, other.A) and + np.allclose(self.B, other.B) and + np.allclose(self.C, other.C) and + np.allclose(self.D, other.D) and + self.nu1 == other.nu1 and + self.ny1 == other.ny1) def feedback(self, other): + """Feedback interconnection for PartitionedStateSpace. + + Parameters + ---------- + other : PartitionedStateSpace + The system in the feedback path. + + Returns + ------- + PartitionedStateSpace + The resulting PartitionedStateSpace system. + + Raises + ------ + TypeError + If the operand type is not supported. + """ + if not isinstance(other, PartitionedStateSpace): raise TypeError("Feedback connection only defined for PartitionedStateSpace objects.") @@ -192,9 +378,42 @@ def feedback(self, other): P_new = StateSpace(A_new, B_new, C_new, D_new) return PartitionedStateSpace(P_new, other.nu1, self.ny1) + + def __str__(self): + s = "PartitionedStateSpace\n" + s += "A = \n" + s += str(self.A) + s += "\nB = \n" + s += str(self.B) + s += "\nC = \n" + s += str(self.C) + s += "\nD = \n" + s += str(self.D) + s += "\n" + return s def vcat_pss(*systems: list[PartitionedStateSpace]) -> PartitionedStateSpace: + """Vertically concatenate a list of PartitionedStateSpace systems. + + Parameters + ---------- + *systems : list of PartitionedStateSpace + The systems to be concatenated. + + Returns + ------- + PartitionedStateSpace + The resulting PartitionedStateSpace system. + + Raises + ------ + TypeError + If any of the inputs are not PartitionedStateSpace systems. + ValueError + If the systems do not have the same number of inputs. + """ + if not all(isinstance(pss, PartitionedStateSpace) for pss in systems): raise TypeError("All arguments must be PartitionedStateSpace objects") @@ -220,6 +439,27 @@ def vcat_pss(*systems: list[PartitionedStateSpace]) -> PartitionedStateSpace: def hcat_pss(*systems: list[PartitionedStateSpace]) -> PartitionedStateSpace: + """Horizontally concatenate a list of PartitionedStateSpace systems. + + Parameters + ---------- + *systems : list of PartitionedStateSpace + The systems to be concatenated. + + Returns + ------- + PartitionedStateSpace + The resulting PartitionedStateSpace system. + + Raises + ------ + TypeError + If any of the inputs are not PartitionedStateSpace systems. + ValueError + If the systems do not have the same number of outputs. + """ + if not all(isinstance(pss, PartitionedStateSpace) for pss in systems): + raise TypeError("All arguments must be PartitionedStateSpace objects") nu1 = sum(space.nu1 for space in systems) ny1 = systems[0].ny1 diff --git a/control/tests/delay_lti_test.py b/control/tests/delay_lti_test.py index f898facdc..1e66c6f7d 100644 --- a/control/tests/delay_lti_test.py +++ b/control/tests/delay_lti_test.py @@ -3,7 +3,7 @@ import matplotlib.pyplot as plt from dataclasses import dataclass -from control.delaylti import delay, tf2dlti, exp, hcat, vcat, mimo_delay +from control.delaylti import delay, tf2dlti, exp, hcat, vcat, mimo_delay, ss2dlti from control.statesp import ss from control.xferfcn import tf @@ -29,7 +29,6 @@ def tf_one(): def pure_delay(): return delay(1) - @pytest.fixture def delay_siso_tf(): P_tf = 1 / (s + 1) @@ -77,26 +76,78 @@ def julia_wood_berry(): ) -class TestConstructors: - def test_from_ss(self, simple_siso_tf): - pass +class TestDelayLti: + def test_from_tf(self): + sys = tf([1], [1, 1]) + dlti = tf2dlti(sys) + assert np.allclose(dlti.P.A, [[-1]]) + assert np.allclose(dlti.P.B1, [[1]]) + assert np.allclose(dlti.P.C1, [[1]]) + assert np.allclose(dlti.P.D11, [[0]]) + assert np.allclose(dlti.tau, []) - def test_from_tf(self, tf_one): + def test_tf2dlti(self, tf_one): delay_lti_tf_one = tf2dlti(tf_one) julia_A = [] julia_B = [] julia_C = [] julia_D = [[1.]] - assert(np.allclose(delay_lti_tf_one.A, julia_A)) - assert(np.allclose(delay_lti_tf_one.B, julia_B)) - assert(np.allclose(delay_lti_tf_one.C, julia_C)) - assert(np.allclose(delay_lti_tf_one.D, julia_D)) + assert(np.allclose(delay_lti_tf_one.P.A, julia_A)) + assert(np.allclose(delay_lti_tf_one.P.B, julia_B)) + assert(np.allclose(delay_lti_tf_one.P.C, julia_C)) + assert(np.allclose(delay_lti_tf_one.P.D, julia_D)) + + def test_poles(self): + sys = ss([[-1]], [[1]], [[1]], [[0]]) + dlti = ss2dlti(sys) + assert np.allclose(dlti.poles(), [-1]) + + def test_zeros(self): + sys = ss([[-1]], [[1]], [[1]], [[0]]) + dlti = ss2dlti(sys) + assert np.allclose(dlti.zeros(), []) + + def test_issiso(self, delay_siso_tf, delay_siso_tf2): + assert delay_siso_tf.issiso() == True + assert delay_siso_tf.issiso() == True + + def test_call(self): + sys = tf([1], [1, 1]) + dlti = tf2dlti(sys) * delay(1) + freq_resp = dlti(1j*2*np.pi) + assert np.allclose(freq_resp, 1/(2*np.pi*1j + 1)) + + def test_vcat(self): + sys1 = ss([[-1]], [[1]], [[1]], [[0]]) + dlti1 = ss2dlti(sys1) * delay(1) + dlti2 = ss2dlti(sys1) * delay(2) + dlti3 = vcat(dlti1, dlti2) + assert np.allclose(dlti3.P.A, [[-1, 0], [0, -1]]) + assert np.allclose(dlti3.tau, [1, 2]) + + def test_hcat(self): + sys1 = ss([[-1]], [[1]], [[1]], [[0]]) + dlti1 = ss2dlti(sys1) * delay(1) + dlti2 = ss2dlti(sys1) * delay(2) + dlti3 = hcat(dlti1, dlti2) + assert np.allclose(dlti3.P.A, [[-1, 0], [0, -1]]) + assert np.allclose(dlti3.tau, [1, 2]) + + def test_mimo_delay(self): + sys1 = ss([[-1]], [[1]], [[1]], [[0]]) + dlti1 = ss2dlti(sys1) * delay(1) + dlti2 = ss2dlti(sys1) * delay(2) + dlti3 = mimo_delay(np.array([[dlti1, dlti2]])) + assert np.allclose(dlti3.P.A, [[-1, 0], [0, -1]]) + assert np.allclose(dlti3.tau, [1, 2]) + +class TestConstructors: def test_mimo_delay(self, wood_berry, julia_wood_berry): - assert(np.allclose(wood_berry.A, julia_wood_berry.A)) - assert(np.allclose(wood_berry.B, julia_wood_berry.B)) - assert(np.allclose(wood_berry.C, julia_wood_berry.C)) - assert(np.allclose(wood_berry.D, julia_wood_berry.D)) + assert(np.allclose(wood_berry.P.A, julia_wood_berry.A)) + assert(np.allclose(wood_berry.P.B, julia_wood_berry.B)) + assert(np.allclose(wood_berry.P.C, julia_wood_berry.C)) + assert(np.allclose(wood_berry.P.D, julia_wood_berry.D)) assert(np.allclose(wood_berry.tau, julia_wood_berry.tau)) class TestOperators: @@ -107,10 +158,10 @@ def test_add(self, delay_siso_tf, delay_siso_tf2): julia_C = [[1., 1.5], [0., 0.], [0., 0.]] julia_D = [[0., 0., 0.], [1., 0., 0.], [1., 0., 0.]] julia_delays = [1.5, 0.5] - assert(np.allclose(G.A , julia_A)) - assert(np.allclose(G.B , julia_B)) - assert(np.allclose(G.C , julia_C)) - assert(np.allclose(G.D , julia_D)) + assert(np.allclose(G.P.A , julia_A)) + assert(np.allclose(G.P.B , julia_B)) + assert(np.allclose(G.P.C , julia_C)) + assert(np.allclose(G.P.D , julia_D)) assert(np.allclose(G.tau , julia_delays)) def test_add_constant(self, delay_siso_tf): @@ -120,10 +171,13 @@ def test_add_constant(self, delay_siso_tf): julia_C = [[1.], [0.]] julia_D = [[2.5, 0.], [1., 0.]] julia_delays = [1.5] - assert(np.allclose(G.A , julia_A)) - assert(np.allclose(G.B , julia_B)) - assert(np.allclose(G.C , julia_C)) - assert(np.allclose(G.D , julia_D)) + + print("D", G.P.D) + + assert(np.allclose(G.P.A , julia_A)) + assert(np.allclose(G.P.B , julia_B)) + assert(np.allclose(G.P.C , julia_C)) + assert(np.allclose(G.P.D , julia_D)) assert(np.allclose(G.tau , julia_delays)) def test_mul(self, delay_siso_tf, delay_siso_tf2): @@ -133,23 +187,23 @@ def test_mul(self, delay_siso_tf, delay_siso_tf2): julia_C = [[1., 0.], [0., 1.5], [0., 0.]] julia_D = [[0., 0., 0.], [0., 0., 0.], [1., 0., 0.]] julia_delays = [1.5, 0.5] - assert(np.allclose(G.A , julia_A)) - assert(np.allclose(G.B , julia_B)) - assert(np.allclose(G.C , julia_C)) - assert(np.allclose(G.D , julia_D)) + assert(np.allclose(G.P.A , julia_A)) + assert(np.allclose(G.P.B , julia_B)) + assert(np.allclose(G.P.C , julia_C)) + assert(np.allclose(G.P.D , julia_D)) assert(np.allclose(G.tau , julia_delays)) - def test_gain_mul(self, delay_siso_tf): + def test_constant_mul(self, delay_siso_tf): G2 = 2 * delay_siso_tf julia_A = [[-1.]] julia_B = [[0., 1.]] julia_C = [[2.], [0.]] julia_D = [[0., 0.], [1., 0.]] julia_delays = [1.5] - assert(np.allclose(G2.A , julia_A)) - assert(np.allclose(G2.B , julia_B)) - assert(np.allclose(G2.C , julia_C)) - assert(np.allclose(G2.D , julia_D)) + assert(np.allclose(G2.P.A , julia_A)) + assert(np.allclose(G2.P.B , julia_B)) + assert(np.allclose(G2.P.C , julia_C)) + assert(np.allclose(G2.P.D , julia_D)) assert(np.allclose(G2.tau , julia_delays)) def test_tf_mul_delay(self, simple_siso_tf): @@ -159,15 +213,15 @@ def test_tf_mul_delay(self, simple_siso_tf): julia_C = [[1.], [0.]] julia_D = [[0., 0.], [1., 0.]] julia_delays = [0.5] - assert(np.allclose(G.A , julia_A)) - assert(np.allclose(G.B , julia_B)) - assert(np.allclose(G.C , julia_C)) - assert(np.allclose(G.D , julia_D)) + assert(np.allclose(G.P.A , julia_A)) + assert(np.allclose(G.P.B , julia_B)) + assert(np.allclose(G.P.C , julia_C)) + assert(np.allclose(G.P.D , julia_D)) assert(np.allclose(G.tau , julia_delays)) class TestFeedback: - def test_feedback_one(self, delay_siso_tf): + def test_feedback_siso(self, delay_siso_tf): G = delay_siso_tf H = G.feedback() julia_A = [[-1.]] @@ -175,10 +229,10 @@ def test_feedback_one(self, delay_siso_tf): julia_C = [[1.], [-1.]] julia_D = [[0., 0.], [1., 0.]] julia_delays = [1.5] - assert(np.allclose(H.A , julia_A)) - assert(np.allclose(H.B , julia_B)) - assert(np.allclose(H.C , julia_C)) - assert(np.allclose(H.D , julia_D)) + assert(np.allclose(H.P.A , julia_A)) + assert(np.allclose(H.P.B , julia_B)) + assert(np.allclose(H.P.C , julia_C)) + assert(np.allclose(H.P.D , julia_D)) assert(np.allclose(H.tau , julia_delays)) def test_feedback_tf_one(self, delay_siso_tf, tf_one): @@ -189,10 +243,10 @@ def test_feedback_tf_one(self, delay_siso_tf, tf_one): julia_C = [[1.], [-1.]] julia_D = [[0., 0.], [1., 0.]] julia_delays = [1.5] - assert(np.allclose(H.A , julia_A)) - assert(np.allclose(H.B , julia_B)) - assert(np.allclose(H.C , julia_C)) - assert(np.allclose(H.D , julia_D)) + assert(np.allclose(H.P.A , julia_A)) + assert(np.allclose(H.P.B , julia_B)) + assert(np.allclose(H.P.C , julia_C)) + assert(np.allclose(H.P.D , julia_D)) assert(np.allclose(H.tau , julia_delays)) @@ -204,24 +258,28 @@ def test_complex_feedback(self, delay_siso_tf): julia_C = [[1., 0.], [0., -1.], [1., 0.]] julia_D = [[0., 0., 0.], [1., 0., 0], [0., 0., 0.]] julia_delays = [1.5, 1.5] - assert(np.allclose(H.A , julia_A)) - assert(np.allclose(H.B , julia_B)) - assert(np.allclose(H.C , julia_C)) - assert(np.allclose(H.D , julia_D)) + assert(np.allclose(H.P.A , julia_A)) + assert(np.allclose(H.P.B , julia_B)) + assert(np.allclose(H.P.C , julia_C)) + assert(np.allclose(H.P.D , julia_D)) assert(np.allclose(H.tau , julia_delays)) class TestPureDelay: + def test_delay(self): + dlti = delay(1) + assert np.allclose(dlti.tau, [1.0]) + def test_unit_delay(self, pure_delay): A = np.empty((0,0)) B = np.empty((0,2)) C = np.empty((2,0)) D = [[0., 1.], [1., 0.]] julia_delays = [1.0] - assert(np.allclose(pure_delay.A , A)) - assert(np.allclose(pure_delay.B , B)) - assert(np.allclose(pure_delay.C , C)) - assert(np.allclose(pure_delay.D , D)) + assert(np.allclose(pure_delay.P.A , A)) + assert(np.allclose(pure_delay.P.B , B)) + assert(np.allclose(pure_delay.P.C , C)) + assert(np.allclose(pure_delay.P.D , D)) assert(np.allclose(pure_delay.tau , julia_delays)) def test_exp_delay(self): @@ -231,12 +289,17 @@ def test_exp_delay(self): C = np.empty((2,0)) D = [[0., 1.], [1., 0.]] julia_delays = [2.0] - assert(np.allclose(G.A , A)) - assert(np.allclose(G.B , B)) - assert(np.allclose(G.C , C)) - assert(np.allclose(G.D , D)) + assert(np.allclose(G.P.A , A)) + assert(np.allclose(G.P.B , B)) + assert(np.allclose(G.P.C , C)) + assert(np.allclose(G.P.D , D)) assert(np.allclose(G.tau , julia_delays)) + def test_two_ways(self): + delay_exp = exp(-3.5 * s) + delay_pure = delay(3.5) + assert(delay_exp == delay_pure) + class TestFreqResp: def test_siso_freq_resp(self, delay_siso_tf): @@ -283,7 +346,6 @@ def test_mimo_freq_resp(self, wood_berry): assert(np.allclose(fresp.complex, julia_freq_resp)) - class TestTimeResp: def test_siso_step_response(self, delay_siso_tf): from control.timeresp import step_response @@ -292,16 +354,13 @@ def test_siso_step_response(self, delay_siso_tf): timepts2 = np.arange(0, 10.1, 0.1) t2, y2 = step_response(delay_siso_tf, timepts=timepts2) julia_resp = [0.0, 0.0, 0.3934701171707952, 0.7768701219836066, 0.917915094373695, 0.9698026491618251, 0.9888910143620181, 0.9959132295791787, 0.9984965605514581, 0.9994469148973136, 0.9997965302422651] - plt.figure() - plt.plot(t1, y1, label="python step 1") - plt.plot(timepts1, julia_resp, label="julia") - plt.plot(t2, y2, label="python step 0.1") - plt.legend() - plt.show() +# plt.figure() +# plt.plot(t1, y1, label="python step 1") +# plt.plot(timepts1, julia_resp, label="julia") +# plt.plot(t2, y2, label="python step 0.1") +# plt.legend() +# plt.show() - - - def test_forced_response(self, delay_siso_tf): from control.timeresp import forced_response @@ -313,4 +372,21 @@ def test_forced_response(self, delay_siso_tf): #plt.figure() #plt.plot(t, input1) #plt.plot(t, y) - #plt.show() \ No newline at end of file + #plt.show() + + def test_compare_step_responses(self, delay_siso_tf, simple_siso_tf): + from control.timeresp import step_response + + timepts = np.linspace(0,10,1001) + step = step_response(simple_siso_tf, timepts=timepts) + delay_step = step_response(delay_siso_tf, timepts=timepts) + + + hand_delayed_step = np.zeros_like(step.y[0][0]) + count = 0 + for i, t in enumerate(step.t): + if t >= 1.5: + hand_delayed_step[i] = step.y[0][0][count] + count += 1 + + assert(np.allclose(delay_step.y[0][0], hand_delayed_step)) \ No newline at end of file diff --git a/control/tests/partionedssp_test.py b/control/tests/partionedssp_test.py new file mode 100644 index 000000000..6959fb15e --- /dev/null +++ b/control/tests/partionedssp_test.py @@ -0,0 +1,307 @@ +import numpy as np +import pytest +from control.statesp import ss +from control.partitionedssp import PartitionedStateSpace, vcat_pss, hcat_pss + + +class TestPartitionedStateSpace: + def test_init(self): + A = np.array([[1, 2], [3, 4]]) + B = np.array([[5, 6], [7, 8]]) + C = np.array([[9, 10], [11, 12]]) + D = np.array([[13, 14], [15, 16]]) + sys = ss(A, B, C, D) + pss = PartitionedStateSpace(sys, 1, 1) + + assert np.array_equal(pss.A, A) + assert np.array_equal(pss.B, B) + assert np.array_equal(pss.C, C) + assert np.array_equal(pss.D, D) + assert np.array_equal(pss.B1, B[:, :1]) + assert np.array_equal(pss.B2, B[:, 1:]) + assert np.array_equal(pss.C1, C[:1, :]) + assert np.array_equal(pss.C2, C[1:, :]) + assert np.array_equal(pss.D11, D[:1, :1]) + assert np.array_equal(pss.D12, D[:1, 1:]) + assert np.array_equal(pss.D21, D[1:, :1]) + assert np.array_equal(pss.D22, D[1:, 1:]) + assert pss.nu1 == 1 + assert pss.ny1 == 1 + assert pss.nu2 == 1 + assert pss.ny2 == 1 + assert pss.nstates == 2 + assert pss.ninputs_total == 2 + assert pss.noutputs_total == 2 + + def test_init_invalid_input(self): + with pytest.raises(TypeError): + PartitionedStateSpace("not a StateSpace", 1, 1) + + def test_init_invalid_nu1(self): + A = np.array([[1, 2], [3, 4]]) + B = np.array([[5, 6], [7, 8]]) + C = np.array([[9, 10], [11, 12]]) + D = np.array([[13, 14], [15, 16]]) + sys = ss(A, B, C, D) + with pytest.raises(ValueError): + PartitionedStateSpace(sys, 3, 1) + with pytest.raises(ValueError): + PartitionedStateSpace(sys, -1, 1) + + def test_init_invalid_ny1(self): + A = np.array([[1, 2], [3, 4]]) + B = np.array([[5, 6], [7, 8]]) + C = np.array([[9, 10], [11, 12]]) + D = np.array([[13, 14], [15, 16]]) + sys = ss(A, B, C, D) + with pytest.raises(ValueError): + PartitionedStateSpace(sys, 1, 3) + with pytest.raises(ValueError): + PartitionedStateSpace(sys, 1, -1) + + def test_from_matrices(self): + A = np.array([[1, 2], [3, 4]]) + B1 = np.array([[5], [7]]) + B2 = np.array([[6], [8]]) + C1 = np.array([[9, 10]]) + C2 = np.array([[11, 12]]) + D11 = np.array([[13]]) + D12 = np.array([[14]]) + D21 = np.array([[15]]) + D22 = np.array([[16]]) + + pss = PartitionedStateSpace.from_matrices(A, B1, B2, C1, C2, D11, D12, D21, D22) + + assert np.array_equal(pss.A, A) + assert np.array_equal(pss.B1, B1) + assert np.array_equal(pss.B2, B2) + assert np.array_equal(pss.C1, C1) + assert np.array_equal(pss.C2, C2) + assert np.array_equal(pss.D11, D11) + assert np.array_equal(pss.D12, D12) + assert np.array_equal(pss.D21, D21) + assert np.array_equal(pss.D22, D22) + assert pss.nu1 == 1 + assert pss.ny1 == 1 + assert pss.nu2 == 1 + assert pss.ny2 == 1 + assert pss.nstates == 2 + assert pss.ninputs_total == 2 + assert pss.noutputs_total == 2 + + def test_from_matrices_invalid_shapes(self): + A = np.array([[1, 2], [3, 4]]) + B1 = np.array([[5], [7]]) + B2 = np.array([[6], [8]]) + C1 = np.array([[9, 10]]) + C2 = np.array([[11, 12]]) + D11 = np.array([[13]]) + D12 = np.array([[14]]) + D21 = np.array([[15]]) + D22 = np.array([[16]]) + + with pytest.raises(ValueError): + PartitionedStateSpace.from_matrices(A, B1, B2, C1, C2, D11, D12, D21, np.array([[16, 17]])) + with pytest.raises(ValueError): + PartitionedStateSpace.from_matrices(A, B1, B2, C1, C2, D11, D12, np.array([[15, 16]]), D22) + with pytest.raises(ValueError): + PartitionedStateSpace.from_matrices(A, B1, B2, C1, C2, D11, np.array([[14, 15]]), D21, D22) + with pytest.raises(ValueError): + PartitionedStateSpace.from_matrices(A, B1, B2, C1, C2, np.array([[13, 14]]), D12, D21, D22) + with pytest.raises(ValueError): + PartitionedStateSpace.from_matrices(A, B1, B2, C1, np.array([[11, 12, 13]]), D11, D12, D21, D22) + with pytest.raises(ValueError): + PartitionedStateSpace.from_matrices(A, B1, B2, np.array([[9, 10, 11]]), C2, D11, D12, D21, D22) + with pytest.raises(ValueError): + PartitionedStateSpace.from_matrices(A, B1, np.array([[6, 7], [8, 9]]), C1, C2, D11, D12, D21, D22) + with pytest.raises(ValueError): + PartitionedStateSpace.from_matrices(A, np.array([[5, 6], [7, 8]]), B2, C1, C2, D11, D12, D21, D22) + with pytest.raises(ValueError): + PartitionedStateSpace.from_matrices(np.array([[1, 2, 3], [4, 5, 6]]), B1, B2, C1, C2, D11, D12, D21, D22) + + def test_add_invalid_type(self): + A = np.array([[1, 2], [3, 4]]) + B = np.array([[5, 6], [7, 8]]) + C = np.array([[9, 10], [11, 12]]) + D = np.array([[13, 14], [15, 16]]) + sys = ss(A, B, C, D) + pss = PartitionedStateSpace(sys, 1, 1) + with pytest.raises(TypeError): + pss + "not a PartitionedStateSpace" + + def test_mul_invalid_type(self): + A = np.array([[1, 2], [3, 4]]) + B = np.array([[5, 6], [7, 8]]) + C = np.array([[9, 10], [11, 12]]) + D = np.array([[13, 14], [15, 16]]) + sys = ss(A, B, C, D) + pss = PartitionedStateSpace(sys, 1, 1) + with pytest.raises(TypeError): + pss * "not a PartitionedStateSpace" + + def test_feedback_invalid_type(self): + A = np.array([[1, 2], [3, 4]]) + B = np.array([[5, 6], [7, 8]]) + C = np.array([[9, 10], [11, 12]]) + D = np.array([[13, 14], [15, 16]]) + sys = ss(A, B, C, D) + pss = PartitionedStateSpace(sys, 1, 1) + with pytest.raises(TypeError): + pss.feedback("not a PartitionedStateSpace") + + def test_vcat_pss(self): + A1 = np.array([[1, 2], [3, 4]]) + B1_1 = np.array([[5], [7]]) + B1_2 = np.array([[6], [8]]) + C1_1 = np.array([[9, 10]]) + C1_2 = np.array([[11, 12]]) + D11_1 = np.array([[13]]) + D12_1 = np.array([[14]]) + D21_1 = np.array([[15]]) + D22_1 = np.array([[16]]) + pss1 = PartitionedStateSpace.from_matrices(A1, B1_1, B1_2, C1_1, C1_2, D11_1, D12_1, D21_1, D22_1) + + A2 = np.array([[1, 2], [3, 4]]) + B2_1 = np.array([[5], [7]]) + B2_2 = np.array([[6], [8]]) + C2_1 = np.array([[9, 10]]) + C2_2 = np.array([[11, 12]]) + D11_2 = np.array([[13]]) + D12_2 = np.array([[14]]) + D21_2 = np.array([[15]]) + D22_2 = np.array([[16]]) + pss2 = PartitionedStateSpace.from_matrices(A2, B2_1, B2_2, C2_1, C2_2, D11_2, D12_2, D21_2, D22_2) + + pss_vcat = vcat_pss(pss1, pss2) + + assert np.array_equal(pss_vcat.A, np.block([[A1, np.zeros_like(A1)], [np.zeros_like(A2), A2]])) + assert np.array_equal(pss_vcat.B1, np.vstack((B1_1, B2_1))) + assert np.array_equal(pss_vcat.B2, np.block([[B1_2, np.zeros_like(B2_2)], [np.zeros_like(B1_2), B2_2]])) + assert np.array_equal(pss_vcat.C1, np.block([[C1_1, np.zeros_like(C2_1)], [np.zeros_like(C1_1), C2_1]])) + assert np.array_equal(pss_vcat.C2, np.block([[C1_2, np.zeros_like(C2_2)], [np.zeros_like(C1_2), C2_2]])) + assert np.array_equal(pss_vcat.D11, np.vstack((D11_1, D11_2))) + assert np.array_equal(pss_vcat.D12, np.block([[D12_1, np.zeros_like(D12_2)], [np.zeros_like(D12_1), D12_2]])) + assert np.array_equal(pss_vcat.D21, np.vstack((D21_1, D21_2))) + assert np.array_equal(pss_vcat.D22, np.block([[D22_1, np.zeros_like(D22_2)], [np.zeros_like(D22_1), D22_2]])) + assert pss_vcat.nu1 == 1 + assert pss_vcat.ny1 == 2 + assert pss_vcat.nu2 == 2 + assert pss_vcat.ny2 == 2 + assert pss_vcat.nstates == 4 + assert pss_vcat.ninputs_total == 3 + assert pss_vcat.noutputs_total == 4 + + def test_vcat_pss_invalid_type(self): + A = np.array([[1, 2], [3, 4]]) + B = np.array([[5, 6], [7, 8]]) + C = np.array([[9, 10], [11, 12]]) + D = np.array([[13, 14], [15, 16]]) + sys = ss(A, B, C, D) + pss = PartitionedStateSpace(sys, 1, 1) + with pytest.raises(TypeError): + vcat_pss(pss, "not a PartitionedStateSpace") + + def test_vcat_pss_invalid_input_dimension(self): + A1 = np.array([[1, 2], [3, 4]]) + B1_1 = np.array([[5], [7]]) + B1_2 = np.array([[6], [8]]) + C1_1 = np.array([[9, 10]]) + C1_2 = np.array([[11, 12]]) + D11_1 = np.array([[13]]) + D12_1 = np.array([[14]]) + D21_1 = np.array([[15]]) + D22_1 = np.array([[16]]) + pss1 = PartitionedStateSpace.from_matrices(A1, B1_1, B1_2, C1_1, C1_2, D11_1, D12_1, D21_1, D22_1) + + A2 = np.array([[1, 2], [3, 4]]) + B2_1 = np.array([[5, 6], [7, 8]]) + B2_2 = np.array([[6, 7], [8, 9]]) + C2_1 = np.array([[9, 10]]) + C2_2 = np.array([[11, 12]]) + D11_2 = np.array([[13, 14]]) + D12_2 = np.array([[14, 15]]) + D21_2 = np.array([[15, 16]]) + D22_2 = np.array([[16, 17]]) + pss2 = PartitionedStateSpace.from_matrices(A2, B2_1, B2_2, C2_1, C2_2, D11_2, D12_2, D21_2, D22_2) + + with pytest.raises(ValueError): + vcat_pss(pss1, pss2) + + def test_hcat_pss(self): + A1 = np.array([[1, 2], [3, 4]]) + B1_1 = np.array([[5], [7]]) + B1_2 = np.array([[6], [8]]) + C1_1 = np.array([[9, 10]]) + C1_2 = np.array([[11, 12]]) + D11_1 = np.array([[13]]) + D12_1 = np.array([[14]]) + D21_1 = np.array([[15]]) + D22_1 = np.array([[16]]) + pss1 = PartitionedStateSpace.from_matrices(A1, B1_1, B1_2, C1_1, C1_2, D11_1, D12_1, D21_1, D22_1) + + A2 = np.array([[1, 2], [3, 4]]) + B2_1 = np.array([[5], [7]]) + B2_2 = np.array([[6], [8]]) + C2_1 = np.array([[9, 10]]) + C2_2 = np.array([[11, 12]]) + D11_2 = np.array([[13]]) + D12_2 = np.array([[14]]) + D21_2 = np.array([[15]]) + D22_2 = np.array([[16]]) + pss2 = PartitionedStateSpace.from_matrices(A2, B2_1, B2_2, C2_1, C2_2, D11_2, D12_2, D21_2, D22_2) + + pss_hcat = hcat_pss(pss1, pss2) + + assert np.array_equal(pss_hcat.A, np.block([[A1, np.zeros_like(A1)], [np.zeros_like(A2), A2]])) + assert np.array_equal(pss_hcat.B1, np.block([[B1_1, np.zeros_like(B2_1)], [np.zeros_like(B1_1), B2_1]])) + assert np.array_equal(pss_hcat.B2, np.block([[B1_2, np.zeros_like(B2_2)], [np.zeros_like(B1_2), B2_2]])) + assert np.array_equal(pss_hcat.C1, np.hstack((C1_1, C2_1))) + assert np.array_equal(pss_hcat.C2, np.block([[C1_2, np.zeros_like(C2_2)], [np.zeros_like(C1_2), C2_2]])) + assert np.array_equal(pss_hcat.D11, np.hstack((D11_1, D11_2))) + assert np.array_equal(pss_hcat.D12, np.hstack((D12_1, D12_2))) + assert np.array_equal(pss_hcat.D21, np.block([[D21_1, np.zeros_like(D21_2)], [np.zeros_like(D21_1), D21_2]])) + assert np.array_equal(pss_hcat.D22, np.block([[D22_1, np.zeros_like(D22_2)], [np.zeros_like(D22_1), D22_2]])) + assert pss_hcat.nu1 == 2 + assert pss_hcat.ny1 == 1 + assert pss_hcat.nu2 == 2 + assert pss_hcat.ny2 == 2 + assert pss_hcat.nstates == 4 + assert pss_hcat.ninputs_total == 4 + assert pss_hcat.noutputs_total == 3 + + def test_hcat_pss_invalid_type(self): + A = np.array([[1, 2], [3, 4]]) + B = np.array([[5, 6], [7, 8]]) + C = np.array([[9, 10], [11, 12]]) + D = np.array([[13, 14], [15, 16]]) + sys = ss(A, B, C, D) + pss = PartitionedStateSpace(sys, 1, 1) + with pytest.raises(TypeError): + hcat_pss(pss, "not a PartitionedStateSpace") + + def test_hcat_pss_invalid_output_dimension(self): + A1 = np.array([[1, 2], [3, 4]]) + B1_1 = np.array([[5], [7]]) + B1_2 = np.array([[6], [8]]) + C1_1 = np.array([[9, 10]]) + C1_2 = np.array([[11, 12]]) + D11_1 = np.array([[13]]) + D12_1 = np.array([[14]]) + D21_1 = np.array([[15]]) + D22_1 = np.array([[16]]) + pss1 = PartitionedStateSpace.from_matrices(A1, B1_1, B1_2, C1_1, C1_2, D11_1, D12_1, D21_1, D22_1) + + A2 = np.array([[1, 2], [3, 4]]) + B2_1 = np.array([[5], [7]]) + B2_2 = np.array([[6], [8]]) + C2_1 = np.array([[9, 10], [11, 12]]) + C2_2 = np.array([[11, 12], [13, 14]]) + D11_2 = np.array([[13], [14]]) + D12_2 = np.array([[14], [15]]) + D21_2 = np.array([[15], [16]]) + D22_2 = np.array([[16], [17]]) + pss2 = PartitionedStateSpace.from_matrices(A2, B2_1, B2_2, C2_1, C2_2, D11_2, D12_2, D21_2, D22_2) + + with pytest.raises(ValueError): + hcat_pss(pss1, pss2) + From 30c05b93e957442ac85f3a26a9207bf12bfe7690 Mon Sep 17 00:00:00 2001 From: Mathieu Sylvain Date: Thu, 3 Apr 2025 21:22:59 +0200 Subject: [PATCH 09/16] improve tests by scripting julia code to mimic python tests, and serialize with json file. Fix scalar multiplication --- control/dde.py | 6 + control/delaylti.py | 43 +- control/julia_utils.py | 55 + control/tests/delay_lti_test.py | 507 ++-- control/tests/julia_results.json | 4125 ++++++++++++++++++++++++++++++ control/tests/julia_test.jl | 171 ++ control/tests/julia_tests.ipynb | 1075 -------- 7 files changed, 4570 insertions(+), 1412 deletions(-) create mode 100644 control/julia_utils.py create mode 100644 control/tests/julia_results.json create mode 100644 control/tests/julia_test.jl delete mode 100644 control/tests/julia_tests.ipynb diff --git a/control/dde.py b/control/dde.py index 19069d538..2513a413c 100644 --- a/control/dde.py +++ b/control/dde.py @@ -244,6 +244,12 @@ def f(t, x): return xout, yout + +def dde23_solver(delay_sys, dt, T, U, X0, xout, yout): + # Plans for implementing a python version matlab dde23 solver + raise NotImplementedError + + def linear_interp_u(t, T, U): """ Linearly interpolate the input U at time t. diff --git a/control/delaylti.py b/control/delaylti.py index dfb4a4946..9ce4b37d3 100644 --- a/control/delaylti.py +++ b/control/delaylti.py @@ -70,6 +70,22 @@ class DelayLTI(LTI): Create a DelayLTI system from a TransferFunction system. size() Return the number of outputs and inputs. + + Notes + ----- + The preferred way to create a DelayLTI object is by multiplying a transfert + function object with a delay(tau) or exp(-tau*s). For example + + >>> ct.tf([1], [1,1]) * delay(1.5) + + Or + + >>> s = ct.tf('s') + >>> ct.tf([1], [1,1]) * exp(-1.5*s) + + It's possible to MIMO delayed systems from arrays of SISO delayed systems, + see function mimo_delay + """ def __init__(self, P: PartitionedStateSpace, tau = None, **kwargs): @@ -154,6 +170,10 @@ def size(self): """Return the number of outputs and inputs.""" return (self.noutputs, self.ninputs) + # Poles and zeros functions for DelayLTI are not supported by julia ControlSystems.jl + # might not be accurate for delayLTI, to be discussed + # Here the poles and zeros computed are the ones of the system without taking the delay + def poles(self): """Compute the poles of a delay lti system.""" @@ -229,9 +249,10 @@ def __mul__(self, other): """ if isinstance(other, (int, float, complex)): - new_C = np.block([[self.P.C1 * other], [self.P.C2]]) - new_D = np.block([[self.P.D11 * other, self.P.D12 * other], [self.P.D21, self.P.D22]]) - new_P = PartitionedStateSpace(ss(self.P.A, self.P.B, new_C, new_D), self.P.nu1, self.P.ny1) + new_B = np.hstack([self.P.B1 * other, self.P.B2]) + new_D = np.block([[self.P.D11 * other, self.P.D12], [self.P.D21 * other, self.P.D22]]) + + new_P = PartitionedStateSpace(ss(self.P.A, new_B, self.P.C, new_D), self.P.nu1, self.P.ny1) return DelayLTI(new_P, self.tau) elif isinstance(other, DelayLTI): @@ -249,10 +270,14 @@ def __mul__(self, other): else: raise TypeError("Unsupported operand type(s) for *: '{}' and '{}'".format(type(self), type(other))) + def __rmul__(self, other): - if isinstance(other, (int, float, complex)): - return self * other + new_C = np.hstack([self.P.C1 * other, self.P.C2]) + new_D = np.block([[self.P.D11 * other, self.P.D12 * other], [self.P.D21, self.P.D22]]) + + new_P = PartitionedStateSpace(ss(self.P.A, self.P.B, new_C, new_D), self.P.nu1, self.P.ny1) + return DelayLTI(new_P, self.tau) elif isinstance(other, TransferFunction): dlti = tf2dlti(other) @@ -467,6 +492,14 @@ def __str__(self): def __repr__(self): return (f"{type(self).__name__}(" f"P={self.P.__repr__()}, tau={self.tau.__repr__()})") + + # Some functions from LTI that are not currently supported with delayLTI + def to_ss(self, *args, **kwargs): + return NotImplementedError + + def to_tf(self, *args, **kwargs): + raise NotImplementedError + def delay(tau): diff --git a/control/julia_utils.py b/control/julia_utils.py new file mode 100644 index 000000000..1b02e3d1f --- /dev/null +++ b/control/julia_utils.py @@ -0,0 +1,55 @@ +import numpy as np +import json + +from pathlib import Path + +def _recursive_reshape(node): + if isinstance(node, dict) and ("data" in node) and ("dim" in node): + data = node["data"] + dim = tuple(node["dim"]) + + array_data = np.array(data) + + if len(dim) == 1: + return array_data + + elif len(dim) > 1 and (np.shape(array_data) == dim) and (dim[0] != dim[1]): + return array_data + else: + return np.transpose(array_data) + + elif isinstance(node, dict): + new_node = {} + for key, value in node.items(): + new_node[key] = _recursive_reshape(value) + return new_node + + elif isinstance(node, list) and any(isinstance(item, dict) for item in node): + new_node = [] + for i, item in enumerate(node): + new_node[i] = _recursive_reshape(item) + return new_node + + else: + return node + + +def load_julia_results(json_path): + with open(json_path, "r") as f: + json_content = json.load(f) + + reshaped_julia = _recursive_reshape(json_content) + return reshaped_julia + + +def assert_delayLTI(dlti, julia_results): + assert np.allclose(dlti.P.A, julia_results["A"]) + assert np.allclose(dlti.P.B, julia_results["B"]) + assert np.allclose(dlti.P.C, julia_results["C"]) + assert np.allclose(dlti.P.D, julia_results["D"]) + assert np.allclose(dlti.tau, julia_results["tau"]) + + +# Load julia results file +script_dir = Path(__file__).parent +julia_json = load_julia_results(f"{script_dir}/tests/julia_results.json") \ No newline at end of file diff --git a/control/tests/delay_lti_test.py b/control/tests/delay_lti_test.py index 1e66c6f7d..d4be7409a 100644 --- a/control/tests/delay_lti_test.py +++ b/control/tests/delay_lti_test.py @@ -1,20 +1,16 @@ import numpy as np import pytest +import json import matplotlib.pyplot as plt - from dataclasses import dataclass -from control.delaylti import delay, tf2dlti, exp, hcat, vcat, mimo_delay, ss2dlti + +from control.delaylti import ( + delay, tf2dlti, exp, hcat, vcat, mimo_delay, ss2dlti +) from control.statesp import ss from control.xferfcn import tf +from control.julia_utils import julia_json, assert_delayLTI -@dataclass -class JuliaResults: - A: np.ndarray - B: np.ndarray - C: np.ndarray - D: np.ndarray - tau: np.ndarray - s = tf('s') @pytest.fixture @@ -25,368 +21,215 @@ def simple_siso_tf(): def tf_one(): return tf([1], [1]) -@pytest.fixture -def pure_delay(): - return delay(1) - @pytest.fixture def delay_siso_tf(): - P_tf = 1 / (s + 1) - D = delay(1.5) + P_tf = 1 / (s + 1) + D = delay(1.5) return P_tf * D @pytest.fixture def delay_siso_tf2(): - P_tf = 3 / (2*s + 5) + P_tf = 3 / (2 * s + 5) D = delay(0.5) return P_tf * D @pytest.fixture def wood_berry(): + # Construct a 2x2 MIMO system with delays G_wb = mimo_delay([ - [12.8 / (16.7*s + 1) * exp(-s), -18.9 / (21.0*s + 1) * exp(-3*s)], - [6.6 / (10.9*s + 1) * exp(-7*s), -19.4 / (14.4*s + 1) * exp(-3*s)] + [12.8 / (16.7 * s + 1) * exp(-s), -18.9 / (21.0 * s + 1) * exp(-3 * s)], + [6.6 / (10.9 * s + 1) * exp(-7 * s), -19.4 / (14.4 * s + 1) * exp(-3 * s)] ]) return G_wb - -@pytest.fixture -def julia_wood_berry(): - return JuliaResults( - A = [[-0.059880239520958084, 0.0, 0.0, 0.0], - [0.0, -0.047619047619047616, 0.0 , 0.0], - [0.0, 0.0, -0.09174311926605504, 0.0], - [0.0, 0.0, 0.0, -0.06944444444444445]], - B = [[0.0, 0.0, 1.0, 0.0, 0.0, 0.0], - [0.0, 0.0, 0.0, 1.0, 0.0, 0.0], - [0.0, 0.0, 0.0, 0.0, 1.0, 0.0], - [0.0, 0.0, 0.0, 0.0, 0.0, 1.0]], - C = [[0.7664670658682635, -0.8999999999999999, 0.0, 0.0], - [0.0, 0.0, 0.6055045871559632, -1.347222222222222], - [0.0, 0.0, 0.0, 0.0], - [0.0, 0.0, 0.0, 0.0], - [0.0, 0.0, 0.0, 0.0], - [0.0, 0.0, 0.0, 0.0]], - D = [[0.0, 0.0, 0.0, 0.0, 0.0, 0.0], - [0.0, 0.0, 0.0, 0.0, 0.0, 0.0], - [1.0, 0.0, 0.0, 0.0, 0.0, 0.0], - [0.0, 1.0, 0.0, 0.0, 0.0, 0.0], - [1.0, 0.0, 0.0, 0.0, 0.0, 0.0], - [0.0, 1.0, 0.0, 0.0, 0.0, 0.0]], - tau= [1.0, 3.0, 7.0, 3.0] - ) - - -class TestDelayLti: - def test_from_tf(self): - sys = tf([1], [1, 1]) - dlti = tf2dlti(sys) - assert np.allclose(dlti.P.A, [[-1]]) - assert np.allclose(dlti.P.B1, [[1]]) - assert np.allclose(dlti.P.C1, [[1]]) - assert np.allclose(dlti.P.D11, [[0]]) - assert np.allclose(dlti.tau, []) - - def test_tf2dlti(self, tf_one): - delay_lti_tf_one = tf2dlti(tf_one) - julia_A = [] - julia_B = [] - julia_C = [] - julia_D = [[1.]] - assert(np.allclose(delay_lti_tf_one.P.A, julia_A)) - assert(np.allclose(delay_lti_tf_one.P.B, julia_B)) - assert(np.allclose(delay_lti_tf_one.P.C, julia_C)) - assert(np.allclose(delay_lti_tf_one.P.D, julia_D)) - - def test_poles(self): - sys = ss([[-1]], [[1]], [[1]], [[0]]) - dlti = ss2dlti(sys) - assert np.allclose(dlti.poles(), [-1]) - - def test_zeros(self): - sys = ss([[-1]], [[1]], [[1]], [[0]]) - dlti = ss2dlti(sys) - assert np.allclose(dlti.zeros(), []) - - def test_issiso(self, delay_siso_tf, delay_siso_tf2): - assert delay_siso_tf.issiso() == True - assert delay_siso_tf.issiso() == True - def test_call(self): - sys = tf([1], [1, 1]) - dlti = tf2dlti(sys) * delay(1) - freq_resp = dlti(1j*2*np.pi) - assert np.allclose(freq_resp, 1/(2*np.pi*1j + 1)) - def test_vcat(self): - sys1 = ss([[-1]], [[1]], [[1]], [[0]]) - dlti1 = ss2dlti(sys1) * delay(1) - dlti2 = ss2dlti(sys1) * delay(2) - dlti3 = vcat(dlti1, dlti2) - assert np.allclose(dlti3.P.A, [[-1, 0], [0, -1]]) - assert np.allclose(dlti3.tau, [1, 2]) +class TestConstructors: + @pytest.mark.parametrize("key", ["simple_siso_tf", "tf_one"]) + def test_tf2dlti(self, request, key): + tf = request.getfixturevalue(key) + delay_lti = tf2dlti(tf) + julia_results = julia_json["TestConstructors"]["test_tf2dlti"] + assert_delayLTI(delay_lti, julia_results[key]) + + @pytest.mark.parametrize("tau", [1, 1.5, 10]) + def test_delay_function(self, tau): + dlti = delay(tau) + julia_results = julia_json["TestConstructors"]["test_delay_function"] + assert_delayLTI(dlti, julia_results[str(tau)]) + + @pytest.mark.parametrize("tau", [1, 1.5, 10]) + def test_exp_delay(self, tau): + G = exp(-tau * s) + julia_results = julia_json["TestConstructors"]["test_exp_delay"] + assert_delayLTI(G, julia_results[str(tau)]) + + @pytest.mark.parametrize("tau", [1, 1.5, 10]) + def test_two_ways_delay(self, tau): + delay_exp = exp(-tau * s) + delay_pure = delay(tau) + assert delay_exp == delay_pure - def test_hcat(self): - sys1 = ss([[-1]], [[1]], [[1]], [[0]]) - dlti1 = ss2dlti(sys1) * delay(1) - dlti2 = ss2dlti(sys1) * delay(2) - dlti3 = hcat(dlti1, dlti2) - assert np.allclose(dlti3.P.A, [[-1, 0], [0, -1]]) - assert np.allclose(dlti3.tau, [1, 2]) + def test_siso_delay(self, delay_siso_tf): + assert_delayLTI(delay_siso_tf, julia_json["TestConstructors"]["test_siso_delay"]) - def test_mimo_delay(self): - sys1 = ss([[-1]], [[1]], [[1]], [[0]]) - dlti1 = ss2dlti(sys1) * delay(1) - dlti2 = ss2dlti(sys1) * delay(2) - dlti3 = mimo_delay(np.array([[dlti1, dlti2]])) - assert np.allclose(dlti3.P.A, [[-1, 0], [0, -1]]) - assert np.allclose(dlti3.tau, [1, 2]) + def test_build_wood_berry(self, wood_berry): + assert_delayLTI(wood_berry, julia_json["TestConstructors"]["test_build_wood_berry"]) -class TestConstructors: - def test_mimo_delay(self, wood_berry, julia_wood_berry): - assert(np.allclose(wood_berry.P.A, julia_wood_berry.A)) - assert(np.allclose(wood_berry.P.B, julia_wood_berry.B)) - assert(np.allclose(wood_berry.P.C, julia_wood_berry.C)) - assert(np.allclose(wood_berry.P.D, julia_wood_berry.D)) - assert(np.allclose(wood_berry.tau, julia_wood_berry.tau)) - -class TestOperators: - def test_add(self, delay_siso_tf, delay_siso_tf2): +class TestOperators: + def test_siso_add(self, delay_siso_tf, delay_siso_tf2): G = delay_siso_tf + delay_siso_tf2 - julia_A = [[-1., 0.], [0., -2.5]] - julia_B = [[0., 1., 0.], [0., 0., 1.]] - julia_C = [[1., 1.5], [0., 0.], [0., 0.]] - julia_D = [[0., 0., 0.], [1., 0., 0.], [1., 0., 0.]] - julia_delays = [1.5, 0.5] - assert(np.allclose(G.P.A , julia_A)) - assert(np.allclose(G.P.B , julia_B)) - assert(np.allclose(G.P.C , julia_C)) - assert(np.allclose(G.P.D , julia_D)) - assert(np.allclose(G.tau , julia_delays)) - - def test_add_constant(self, delay_siso_tf): + assert_delayLTI(G, julia_json["TestOperators"]["test_siso_add"]) + + def test_siso_add_constant(self, delay_siso_tf): G = delay_siso_tf + 2.5 - julia_A = [[-1.]] - julia_B = [[0., 1.]] - julia_C = [[1.], [0.]] - julia_D = [[2.5, 0.], [1., 0.]] - julia_delays = [1.5] - - print("D", G.P.D) - - assert(np.allclose(G.P.A , julia_A)) - assert(np.allclose(G.P.B , julia_B)) - assert(np.allclose(G.P.C , julia_C)) - assert(np.allclose(G.P.D , julia_D)) - assert(np.allclose(G.tau , julia_delays)) + assert_delayLTI(G, julia_json["TestOperators"]["test_siso_add_constant"]) + + def test_siso_sub(self, delay_siso_tf, delay_siso_tf2): + G = delay_siso_tf - delay_siso_tf2 + print(G.P.C) + print(julia_json["TestOperators"]["test_siso_sub"]["C"]) + assert_delayLTI(G, julia_json["TestOperators"]["test_siso_sub"]) - def test_mul(self, delay_siso_tf, delay_siso_tf2): + def test_siso_sub_constant(self, delay_siso_tf): + G = delay_siso_tf - 2.5 + assert_delayLTI(G, julia_json["TestOperators"]["test_siso_sub_constant"]) + + def test_siso_mul(self, delay_siso_tf, delay_siso_tf2): G = delay_siso_tf * delay_siso_tf2 - julia_A = [[-1., 0.], [0., -2.5]] - julia_B = [[0., 1., 0.], [0., 0., 1.]] - julia_C = [[1., 0.], [0., 1.5], [0., 0.]] - julia_D = [[0., 0., 0.], [0., 0., 0.], [1., 0., 0.]] - julia_delays = [1.5, 0.5] - assert(np.allclose(G.P.A , julia_A)) - assert(np.allclose(G.P.B , julia_B)) - assert(np.allclose(G.P.C , julia_C)) - assert(np.allclose(G.P.D , julia_D)) - assert(np.allclose(G.tau , julia_delays)) - - def test_constant_mul(self, delay_siso_tf): - G2 = 2 * delay_siso_tf - julia_A = [[-1.]] - julia_B = [[0., 1.]] - julia_C = [[2.], [0.]] - julia_D = [[0., 0.], [1., 0.]] - julia_delays = [1.5] - assert(np.allclose(G2.P.A , julia_A)) - assert(np.allclose(G2.P.B , julia_B)) - assert(np.allclose(G2.P.C , julia_C)) - assert(np.allclose(G2.P.D , julia_D)) - assert(np.allclose(G2.tau , julia_delays)) - - def test_tf_mul_delay(self, simple_siso_tf): - G = simple_siso_tf * delay(0.5) - julia_A = [[-1.]] - julia_B = [[0., 1.]] - julia_C = [[1.], [0.]] - julia_D = [[0., 0.], [1., 0.]] - julia_delays = [0.5] - assert(np.allclose(G.P.A , julia_A)) - assert(np.allclose(G.P.B , julia_B)) - assert(np.allclose(G.P.C , julia_C)) - assert(np.allclose(G.P.D , julia_D)) - assert(np.allclose(G.tau , julia_delays)) - - -class TestFeedback: - def test_feedback_siso(self, delay_siso_tf): - G = delay_siso_tf - H = G.feedback() - julia_A = [[-1.]] - julia_B = [[0., 1.]] - julia_C = [[1.], [-1.]] - julia_D = [[0., 0.], [1., 0.]] - julia_delays = [1.5] - assert(np.allclose(H.P.A , julia_A)) - assert(np.allclose(H.P.B , julia_B)) - assert(np.allclose(H.P.C , julia_C)) - assert(np.allclose(H.P.D , julia_D)) - assert(np.allclose(H.tau , julia_delays)) - - def test_feedback_tf_one(self, delay_siso_tf, tf_one): - G = delay_siso_tf - H = G.feedback(tf_one) - julia_A = [[-1.]] - julia_B = [[0., 1.]] - julia_C = [[1.], [-1.]] - julia_D = [[0., 0.], [1., 0.]] - julia_delays = [1.5] - assert(np.allclose(H.P.A , julia_A)) - assert(np.allclose(H.P.B , julia_B)) - assert(np.allclose(H.P.C , julia_C)) - assert(np.allclose(H.P.D , julia_D)) - assert(np.allclose(H.tau , julia_delays)) + assert_delayLTI(G, julia_json["TestOperators"]["test_siso_mul"]) + + def test_siso_mul_constant(self, delay_siso_tf): + G = delay_siso_tf * 2. + assert_delayLTI(G, julia_json["TestOperators"]["test_siso_mul_constant"]) + def test_siso_rmul_constant(self, delay_siso_tf): + G = 2. * delay_siso_tf + assert_delayLTI(G, julia_json["TestOperators"]["test_siso_mul_constant"]) - def test_complex_feedback(self, delay_siso_tf): + def test_mimo_add(self, wood_berry): + G = wood_berry + wood_berry + assert_delayLTI(G, julia_json["TestOperators"]["test_mimo_add"]) + + def test_mimo_add_constant(self, wood_berry): + G = wood_berry + 2.7 + assert_delayLTI(G, julia_json["TestOperators"]["test_mimo_add_constant"]) + + def test_mimo_mul(self, wood_berry): + G = wood_berry * wood_berry + assert_delayLTI(G, julia_json["TestOperators"]["test_mimo_mul"]) + + def test_mimo_mul_constant(self, wood_berry): + G = wood_berry * 2.7 + assert_delayLTI(G, julia_json["TestOperators"]["test_mimo_mul_constant"]) + + +class TestDelayLtiMethods: + + @pytest.mark.parametrize("key", ["empty", "tf_one", "delay_siso_tf"]) + def test_feedback(self, request, key, delay_siso_tf): G = delay_siso_tf - H = G.feedback(G) - julia_A = [[-1., 0.], [0., -1.]] - julia_B = [[0., 1., 0.], [0., 0., 1.]] - julia_C = [[1., 0.], [0., -1.], [1., 0.]] - julia_D = [[0., 0., 0.], [1., 0., 0], [0., 0., 0.]] - julia_delays = [1.5, 1.5] - assert(np.allclose(H.P.A , julia_A)) - assert(np.allclose(H.P.B , julia_B)) - assert(np.allclose(H.P.C , julia_C)) - assert(np.allclose(H.P.D , julia_D)) - assert(np.allclose(H.tau , julia_delays)) - - -class TestPureDelay: - def test_delay(self): - dlti = delay(1) - assert np.allclose(dlti.tau, [1.0]) - - def test_unit_delay(self, pure_delay): - A = np.empty((0,0)) - B = np.empty((0,2)) - C = np.empty((2,0)) - D = [[0., 1.], [1., 0.]] - julia_delays = [1.0] - assert(np.allclose(pure_delay.P.A , A)) - assert(np.allclose(pure_delay.P.B , B)) - assert(np.allclose(pure_delay.P.C , C)) - assert(np.allclose(pure_delay.P.D , D)) - assert(np.allclose(pure_delay.tau , julia_delays)) - - def test_exp_delay(self): - G = exp(-2*s) - A = np.empty((0,0)) - B = np.empty((0,2)) - C = np.empty((2,0)) - D = [[0., 1.], [1., 0.]] - julia_delays = [2.0] - assert(np.allclose(G.P.A , A)) - assert(np.allclose(G.P.B , B)) - assert(np.allclose(G.P.C , C)) - assert(np.allclose(G.P.D , D)) - assert(np.allclose(G.tau , julia_delays)) - - def test_two_ways(self): - delay_exp = exp(-3.5 * s) - delay_pure = delay(3.5) - assert(delay_exp == delay_pure) - - -class TestFreqResp: + julia_results = julia_json["TestDelayLtiMethods"]["test_feedback"] + if key == "empty": + H = G.feedback() + else: + tf = request.getfixturevalue(key) + H = G.feedback(tf) + assert_delayLTI(H, julia_results[key]) + + def test_mimo_feedback(self, wood_berry): + H = wood_berry.feedback(wood_berry) + assert_delayLTI(H, julia_json["TestDelayLtiMethods"]["test_mimo_feedback"]) + def test_siso_freq_resp(self, delay_siso_tf): from control.lti import frequency_response - w = np.logspace(-2, 2, 10, base=10) - resp = delay_siso_tf.frequency_response(w) - fun_resp = frequency_response(delay_siso_tf, w) - julia_freq_resp = np.array([ - 0.9996375439798979 - 0.024995812946127068*1j, - 0.9971959288676081 - 0.06947384247065888*1j, - 0.9784258086709292 - 0.1916345960427577*1j, - 0.8407906760670428 - 0.4987123630856*1j, - 0.11248651027122411 - 0.8502796738335039*1j, - -0.47530358539375506 + 0.19610650928623855*1j, - -0.09481872294498477 - 0.18805963874096887*1j, - -0.033328025868165176 - 0.06963017462205673*1j, - 0.01265424121150209 + 0.02476963547555173*1j, - 0.007217967580181465 - 0.006920328388981937*1j - ], dtype=complex) - assert(np.allclose(np.array(resp.complex), julia_freq_resp)) - assert(np.allclose(np.array(fun_resp.complex), julia_freq_resp)) - - def test_bode_plot(self, delay_siso_tf): - from control.freqplot import bode_plot - import matplotlib.pyplot as plt w = np.logspace(-2, 2, 100, base=10) - #bode_plot(delay_siso_tf, w) - #plt.show() comparison with julia notebook - - def test_mimo_freq_resp(self, wood_berry): + resp = frequency_response(delay_siso_tf, w).complex + assert(np.allclose(np.real(resp), julia_json["TestDelayLtiMethods"]["test_siso_freq_resp"]["real"])) + assert(np.allclose(np.imag(resp), julia_json["TestDelayLtiMethods"]["test_siso_freq_resp"]["imag"])) + + def test_tito_freq_response(self, wood_berry): from control.lti import frequency_response - w = np.logspace(-2, 2, 10, base=10) - fresp = frequency_response(wood_berry, w) - julia_freq_resp = np.array([ - [[12.4313-2.20402*1j, 10.3867-5.1827*1j, 4.29712-6.54633*1j, 0.190665-3.42239*1j, -0.609851-1.11652*1j, - -0.458323+0.0281868*1j, 0.164539+0.0138042*1j, -0.0200415-0.0558575*1j, 0.0209361+0.0040665*1j, 0.00388508-0.00660706*1j], - [-17.9795+4.34262*1j, -13.3537+9.37895*1j, -3.10627+9.40135*1j, 1.69596+3.70969*1j, 1.48013-0.221262*1j, - -0.520719+0.140405*1j, 0.189103+0.0428153*1j, 0.0602249+0.035053*1j, 0.0210585+0.0135532*1j, -0.00899771-0.000203154*1j]], - [[6.45681-1.16541*1j, 5.57492-2.9683*1j, 1.62412-4.7752*1j, -2.31095-1.16016*1j, 0.783909+0.618326*1j, - 0.293676-0.212413*1j, -0.113486-0.0642809*1j, -0.0303737+0.0357106*1j, -0.00395567-0.0163775*1j, -0.00329842+0.00507779*1j], - [-18.9152+3.30571*1j, -16.0995+8.06846*1j, -6.19676+11.3748*1j, 1.954+5.6218*1j, 2.2183-0.250236*1j, - -0.781793+0.199879*1j, 0.282749+0.0654171*1j, 0.090062+0.0526232*1j, 0.0315105+0.0203071*1j, -0.0134687-0.000307044*1j]] - ],dtype=complex) - assert(np.allclose(fresp.complex, julia_freq_resp)) + w = np.logspace(-2, 2, 100, base=10) + resp = frequency_response(wood_berry, w).complex + assert(np.allclose(np.real(resp[0][0]), julia_json["TestDelayLtiMethods"]["test_tito_freq_response"]["r11"]["real"])) + assert(np.allclose(np.imag(resp[0][0]), julia_json["TestDelayLtiMethods"]["test_tito_freq_response"]["r11"]["imag"])) + + assert(np.allclose(np.real(resp[0][1]), julia_json["TestDelayLtiMethods"]["test_tito_freq_response"]["r12"]["real"])) + assert(np.allclose(np.imag(resp[0][1]), julia_json["TestDelayLtiMethods"]["test_tito_freq_response"]["r12"]["imag"])) + + assert(np.allclose(np.real(resp[1][0]), julia_json["TestDelayLtiMethods"]["test_tito_freq_response"]["r21"]["real"])) + assert(np.allclose(np.imag(resp[1][0]), julia_json["TestDelayLtiMethods"]["test_tito_freq_response"]["r21"]["imag"])) + + assert(np.allclose(np.real(resp[1][1]), julia_json["TestDelayLtiMethods"]["test_tito_freq_response"]["r22"]["real"])) + assert(np.allclose(np.imag(resp[1][1]), julia_json["TestDelayLtiMethods"]["test_tito_freq_response"]["r22"]["imag"])) + def test_call(self): + sys = tf([1], [1, 1]) + dlti = tf2dlti(sys) * delay(1) + freq_resp = dlti(1j * 2 * np.pi) + expected = 1 / (2 * np.pi * 1j + 1) + assert np.allclose(freq_resp, expected) -class TestTimeResp: - def test_siso_step_response(self, delay_siso_tf): - from control.timeresp import step_response - timepts1 = np.arange(0, 11, 1) - t1, y1 = step_response(delay_siso_tf, timepts=timepts1) - timepts2 = np.arange(0, 10.1, 0.1) - t2, y2 = step_response(delay_siso_tf, timepts=timepts2) - julia_resp = [0.0, 0.0, 0.3934701171707952, 0.7768701219836066, 0.917915094373695, 0.9698026491618251, 0.9888910143620181, 0.9959132295791787, 0.9984965605514581, 0.9994469148973136, 0.9997965302422651] -# plt.figure() -# plt.plot(t1, y1, label="python step 1") -# plt.plot(timepts1, julia_resp, label="julia") -# plt.plot(t2, y2, label="python step 0.1") -# plt.legend() -# plt.show() - - def test_forced_response(self, delay_siso_tf): - from control.timeresp import forced_response + @pytest.mark.parametrize("cat_func, expected_A, expected_tau", [ + (vcat, [[-1, 0], [0, -1]], [1, 2]), + (hcat, [[-1, 0], [0, -1]], [1, 2]) + ]) + def test_cat(self, cat_func, expected_A, expected_tau): + # Create two simple delayed state-space systems + sys1 = ss([[-1]], [[1]], [[1]], [[0]]) + dlti1 = ss2dlti(sys1) * delay(1) + dlti2 = ss2dlti(sys1) * delay(2) + dlti_cat = cat_func(dlti1, dlti2) + assert np.allclose(dlti_cat.P.A, np.array(expected_A)) + assert np.allclose(dlti_cat.tau, np.array(expected_tau)) - timepts = np.arange(0, 10.1, 0.1) - input1 = np.zeros(101) - input1[31:] = 1 - resp = forced_response(delay_siso_tf, timepts=timepts, inputs=input1) - t, y = resp.t, resp.y[0] - #plt.figure() - #plt.plot(t, input1) - #plt.plot(t, y) - #plt.show() - - def test_compare_step_responses(self, delay_siso_tf, simple_siso_tf): - from control.timeresp import step_response - timepts = np.linspace(0,10,1001) +class TestTimeResp: + def test_siso_delayed_step_response(self, delay_siso_tf, simple_siso_tf): + from control.timeresp import step_response + timepts = np.linspace(0, 10, 1001) step = step_response(simple_siso_tf, timepts=timepts) delay_step = step_response(delay_siso_tf, timepts=timepts) - - + # Construct a manually delayed step response by shifting the step response hand_delayed_step = np.zeros_like(step.y[0][0]) count = 0 for i, t in enumerate(step.t): if t >= 1.5: hand_delayed_step[i] = step.y[0][0][count] count += 1 - - assert(np.allclose(delay_step.y[0][0], hand_delayed_step)) \ No newline at end of file + assert np.allclose(delay_step.y[0][0], hand_delayed_step) + + def test_forced_response(self, delay_siso_tf, simple_siso_tf, plot=False): + from control.timeresp import forced_response + # the test does not pass for 1001 in linspace, + # since the implemented solver is not very good. + # Fewer step size is needed + timepts = np.linspace(0, 10, 10001) + inputs = np.sin(timepts) + resp = forced_response(simple_siso_tf, timepts=timepts, inputs=inputs) + delay_resp = forced_response(delay_siso_tf, timepts=timepts, inputs=inputs) + hand_delayed_resp = np.zeros_like(resp.y[0]) + count = 0 + for i, t in enumerate(resp.t): + if t >= 1.5: + hand_delayed_resp[i] = resp.y[0][count] + count += 1 + + timepts_few = np.linspace(0, 10, 1001) + inputs_few = np.sin(timepts_few) + delay_resp_few = forced_response(delay_siso_tf, timepts=timepts_few, inputs=inputs_few) + + + # Optionally, inspect the plot: + if plot: + plt.figure() + plt.plot(resp.t, inputs, label="input") + plt.plot(resp.t, resp.y[0], label="response") + plt.plot(resp.t, delay_resp.y[0], label="delay LTI smaller step size") + plt.plot(delay_resp_few.t, delay_resp_few.y[0], label="delay LTI bigger step size") + plt.plot(resp.t, hand_delayed_resp, label="hand delay") + plt.legend() + plt.show() + + assert np.allclose(delay_resp.y[0], hand_delayed_resp) \ No newline at end of file diff --git a/control/tests/julia_results.json b/control/tests/julia_results.json new file mode 100644 index 000000000..d6fec1bb4 --- /dev/null +++ b/control/tests/julia_results.json @@ -0,0 +1,4125 @@ +{ + "TestOperators": { + "test_mimo_add": { + "B": { + "data": [ + [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + 1.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 1.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 1.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0, + 1.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0, + 0.0, + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 1.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 1.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 1.0 + ] + ], + "dim": [ + 8, + 10 + ] + }, + "A": { + "data": [ + [ + -0.059880239520958084, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + -0.047619047619047616, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + -0.09174311926605504, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0, + -0.06944444444444445, + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0, + 0.0, + -0.059880239520958084, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + -0.047619047619047616, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + -0.09174311926605504, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + -0.06944444444444445 + ] + ], + "dim": [ + 8, + 8 + ] + }, + "C": { + "data": [ + [ + 0.7664670658682635, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + -0.8999999999999999, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.6055045871559632, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + -1.347222222222222, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.7664670658682635, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + -0.8999999999999999, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.6055045871559632, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + -1.347222222222222, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ] + ], + "dim": [ + 10, + 8 + ] + }, + "D": { + "data": [ + [ + 0.0, + 0.0, + 1.0, + 0.0, + 1.0, + 0.0, + 1.0, + 0.0, + 1.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0, + 1.0, + 0.0, + 1.0, + 0.0, + 1.0, + 0.0, + 1.0 + ], + [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ] + ], + "dim": [ + 10, + 10 + ] + }, + "tau": { + "data": [ + 1.0, + 3.0, + 7.0, + 3.0, + 1.0, + 3.0, + 7.0, + 3.0 + ], + "dim": [ + 8 + ] + } + }, + "test_mimo_mul_constant": { + "B": { + "data": [ + [ + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 1.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 1.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0, + 1.0 + ] + ], + "dim": [ + 4, + 6 + ] + }, + "A": { + "data": [ + [ + -0.059880239520958084, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + -0.047619047619047616, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + -0.09174311926605504, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0, + -0.06944444444444445 + ] + ], + "dim": [ + 4, + 4 + ] + }, + "C": { + "data": [ + [ + 0.7664670658682635, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + -0.8999999999999999, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.6055045871559632, + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + -1.347222222222222, + 0.0, + 0.0, + 0.0, + 0.0 + ] + ], + "dim": [ + 6, + 4 + ] + }, + "D": { + "data": [ + [ + 0.0, + 0.0, + 2.7, + 0.0, + 2.7, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0, + 2.7, + 0.0, + 2.7 + ], + [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ] + ], + "dim": [ + 6, + 6 + ] + }, + "tau": { + "data": [ + 1.0, + 3.0, + 7.0, + 3.0 + ], + "dim": [ + 4 + ] + } + }, + "test_siso_sub": { + "B": { + "data": [ + [ + 0.0, + -0.0 + ], + [ + 1.0, + 0.0 + ], + [ + 0.0, + 1.0 + ] + ], + "dim": [ + 2, + 3 + ] + }, + "A": { + "data": [ + [ + -1.0, + 0.0 + ], + [ + 0.0, + -2.5 + ] + ], + "dim": [ + 2, + 2 + ] + }, + "C": { + "data": [ + [ + 1.0, + 0.0, + 0.0 + ], + [ + 1.5, + 0.0, + 0.0 + ] + ], + "dim": [ + 3, + 2 + ] + }, + "D": { + "data": [ + [ + 0.0, + 1.0, + -1.0 + ], + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0 + ] + ], + "dim": [ + 3, + 3 + ] + }, + "tau": { + "data": [ + 1.5, + 0.5 + ], + "dim": [ + 2 + ] + } + }, + "test_siso_sub_constant": { + "B": { + "data": [ + [ + 0.0 + ], + [ + 1.0 + ] + ], + "dim": [ + 1, + 2 + ] + }, + "A": { + "data": [ + [ + -1.0 + ] + ], + "dim": [ + 1, + 1 + ] + }, + "C": { + "data": [ + [ + 1.0, + 0.0 + ] + ], + "dim": [ + 2, + 1 + ] + }, + "D": { + "data": [ + [ + -2.5, + 1.0 + ], + [ + 0.0, + 0.0 + ] + ], + "dim": [ + 2, + 2 + ] + }, + "tau": { + "data": [ + 1.5 + ], + "dim": [ + 1 + ] + } + }, + "test_siso_rmul_constant": { + "B": { + "data": [ + [ + 0.0 + ], + [ + 1.0 + ] + ], + "dim": [ + 1, + 2 + ] + }, + "A": { + "data": [ + [ + -1.0 + ] + ], + "dim": [ + 1, + 1 + ] + }, + "C": { + "data": [ + [ + 2.0, + 0.0 + ] + ], + "dim": [ + 2, + 1 + ] + }, + "D": { + "data": [ + [ + 0.0, + 1.0 + ], + [ + 0.0, + 0.0 + ] + ], + "dim": [ + 2, + 2 + ] + }, + "tau": { + "data": [ + 1.5 + ], + "dim": [ + 1 + ] + } + }, + "test_siso_mul_constant": { + "B": { + "data": [ + [ + 0.0 + ], + [ + 1.0 + ] + ], + "dim": [ + 1, + 2 + ] + }, + "A": { + "data": [ + [ + -1.0 + ] + ], + "dim": [ + 1, + 1 + ] + }, + "C": { + "data": [ + [ + 1.0, + 0.0 + ] + ], + "dim": [ + 2, + 1 + ] + }, + "D": { + "data": [ + [ + 0.0, + 2.0 + ], + [ + 0.0, + 0.0 + ] + ], + "dim": [ + 2, + 2 + ] + }, + "tau": { + "data": [ + 1.5 + ], + "dim": [ + 1 + ] + } + }, + "test_mimo_mul": { + "B": { + "data": [ + [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + 1.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 1.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 1.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0, + 1.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0, + 0.0, + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 1.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 1.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 1.0 + ] + ], + "dim": [ + 8, + 10 + ] + }, + "A": { + "data": [ + [ + -0.059880239520958084, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + -0.047619047619047616, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + -0.09174311926605504, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0, + -0.06944444444444445, + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0, + 0.0, + -0.059880239520958084, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + -0.047619047619047616, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + -0.09174311926605504, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + -0.06944444444444445 + ] + ], + "dim": [ + 8, + 8 + ] + }, + "C": { + "data": [ + [ + 0.7664670658682635, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + -0.8999999999999999, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.6055045871559632, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + -1.347222222222222, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.7664670658682635, + 0.0, + 0.7664670658682635, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + -0.8999999999999999, + 0.0, + -0.8999999999999999, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0, + 0.6055045871559632, + 0.0, + 0.6055045871559632, + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0, + -1.347222222222222, + 0.0, + -1.347222222222222, + 0.0, + 0.0, + 0.0, + 0.0 + ] + ], + "dim": [ + 10, + 8 + ] + }, + "D": { + "data": [ + [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 1.0, + 0.0, + 1.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 1.0, + 0.0, + 1.0 + ], + [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ] + ], + "dim": [ + 10, + 10 + ] + }, + "tau": { + "data": [ + 1.0, + 3.0, + 7.0, + 3.0, + 1.0, + 3.0, + 7.0, + 3.0 + ], + "dim": [ + 8 + ] + } + }, + "test_siso_add": { + "B": { + "data": [ + [ + 0.0, + 0.0 + ], + [ + 1.0, + 0.0 + ], + [ + 0.0, + 1.0 + ] + ], + "dim": [ + 2, + 3 + ] + }, + "A": { + "data": [ + [ + -1.0, + 0.0 + ], + [ + 0.0, + -2.5 + ] + ], + "dim": [ + 2, + 2 + ] + }, + "C": { + "data": [ + [ + 1.0, + 0.0, + 0.0 + ], + [ + 1.5, + 0.0, + 0.0 + ] + ], + "dim": [ + 3, + 2 + ] + }, + "D": { + "data": [ + [ + 0.0, + 1.0, + 1.0 + ], + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0 + ] + ], + "dim": [ + 3, + 3 + ] + }, + "tau": { + "data": [ + 1.5, + 0.5 + ], + "dim": [ + 2 + ] + } + }, + "test_siso_mul": { + "B": { + "data": [ + [ + 0.0, + 0.0 + ], + [ + 1.0, + 0.0 + ], + [ + 0.0, + 1.0 + ] + ], + "dim": [ + 2, + 3 + ] + }, + "A": { + "data": [ + [ + -1.0, + 0.0 + ], + [ + 0.0, + -2.5 + ] + ], + "dim": [ + 2, + 2 + ] + }, + "C": { + "data": [ + [ + 1.0, + 0.0, + 0.0 + ], + [ + 0.0, + 1.5, + 0.0 + ] + ], + "dim": [ + 3, + 2 + ] + }, + "D": { + "data": [ + [ + 0.0, + 0.0, + 1.0 + ], + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0 + ] + ], + "dim": [ + 3, + 3 + ] + }, + "tau": { + "data": [ + 1.5, + 0.5 + ], + "dim": [ + 2 + ] + } + }, + "test_siso_add_constant": { + "B": { + "data": [ + [ + 0.0 + ], + [ + 1.0 + ] + ], + "dim": [ + 1, + 2 + ] + }, + "A": { + "data": [ + [ + -1.0 + ] + ], + "dim": [ + 1, + 1 + ] + }, + "C": { + "data": [ + [ + 1.0, + 0.0 + ] + ], + "dim": [ + 2, + 1 + ] + }, + "D": { + "data": [ + [ + 2.5, + 1.0 + ], + [ + 0.0, + 0.0 + ] + ], + "dim": [ + 2, + 2 + ] + }, + "tau": { + "data": [ + 1.5 + ], + "dim": [ + 1 + ] + } + }, + "test_mimo_add_constant": { + "B": { + "data": [ + [ + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 1.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 1.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0, + 1.0 + ] + ], + "dim": [ + 4, + 6 + ] + }, + "A": { + "data": [ + [ + -0.059880239520958084, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + -0.047619047619047616, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + -0.09174311926605504, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0, + -0.06944444444444445 + ] + ], + "dim": [ + 4, + 4 + ] + }, + "C": { + "data": [ + [ + 0.7664670658682635, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + -0.8999999999999999, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.6055045871559632, + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + -1.347222222222222, + 0.0, + 0.0, + 0.0, + 0.0 + ] + ], + "dim": [ + 6, + 4 + ] + }, + "D": { + "data": [ + [ + 2.7, + 2.7, + 1.0, + 0.0, + 1.0, + 0.0 + ], + [ + 2.7, + 2.7, + 0.0, + 1.0, + 0.0, + 1.0 + ], + [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ] + ], + "dim": [ + 6, + 6 + ] + }, + "tau": { + "data": [ + 1.0, + 3.0, + 7.0, + 3.0 + ], + "dim": [ + 4 + ] + } + } + }, + "TestConstructors": { + "test_tf2dlti": { + "simple_siso_tf": { + "B": { + "data": [ + [ + 1 + ] + ], + "dim": [ + 1, + 1 + ] + }, + "A": { + "data": [ + [ + -1 + ] + ], + "dim": [ + 1, + 1 + ] + }, + "C": { + "data": [ + [ + 1 + ] + ], + "dim": [ + 1, + 1 + ] + }, + "D": { + "data": [ + [ + 0 + ] + ], + "dim": [ + 1, + 1 + ] + }, + "tau": { + "data": [], + "dim": [ + 0 + ] + } + }, + "tf_one": { + "B": { + "data": [ + [] + ], + "dim": [ + 0, + 1 + ] + }, + "A": { + "data": [], + "dim": [ + 0, + 0 + ] + }, + "C": { + "data": [], + "dim": [ + 1, + 0 + ] + }, + "D": { + "data": [ + [ + 1 + ] + ], + "dim": [ + 1, + 1 + ] + }, + "tau": { + "data": [], + "dim": [ + 0 + ] + } + } + }, + "test_build_wood_berry": { + "B": { + "data": [ + [ + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 1.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 1.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0, + 1.0 + ] + ], + "dim": [ + 4, + 6 + ] + }, + "A": { + "data": [ + [ + -0.059880239520958084, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + -0.047619047619047616, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + -0.09174311926605504, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0, + -0.06944444444444445 + ] + ], + "dim": [ + 4, + 4 + ] + }, + "C": { + "data": [ + [ + 0.7664670658682635, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + -0.8999999999999999, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.6055045871559632, + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + -1.347222222222222, + 0.0, + 0.0, + 0.0, + 0.0 + ] + ], + "dim": [ + 6, + 4 + ] + }, + "D": { + "data": [ + [ + 0.0, + 0.0, + 1.0, + 0.0, + 1.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0, + 1.0, + 0.0, + 1.0 + ], + [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ] + ], + "dim": [ + 6, + 6 + ] + }, + "tau": { + "data": [ + 1.0, + 3.0, + 7.0, + 3.0 + ], + "dim": [ + 4 + ] + } + }, + "test_exp_delay": { + "1": { + "B": { + "data": [ + [], + [] + ], + "dim": [ + 0, + 2 + ] + }, + "A": { + "data": [], + "dim": [ + 0, + 0 + ] + }, + "C": { + "data": [], + "dim": [ + 2, + 0 + ] + }, + "D": { + "data": [ + [ + 0.0, + 1.0 + ], + [ + 1.0, + 0.0 + ] + ], + "dim": [ + 2, + 2 + ] + }, + "tau": { + "data": [ + 1.0 + ], + "dim": [ + 1 + ] + } + }, + "1.5": { + "B": { + "data": [ + [], + [] + ], + "dim": [ + 0, + 2 + ] + }, + "A": { + "data": [], + "dim": [ + 0, + 0 + ] + }, + "C": { + "data": [], + "dim": [ + 2, + 0 + ] + }, + "D": { + "data": [ + [ + 0.0, + 1.0 + ], + [ + 1.0, + 0.0 + ] + ], + "dim": [ + 2, + 2 + ] + }, + "tau": { + "data": [ + 1.5 + ], + "dim": [ + 1 + ] + } + }, + "10": { + "B": { + "data": [ + [], + [] + ], + "dim": [ + 0, + 2 + ] + }, + "A": { + "data": [], + "dim": [ + 0, + 0 + ] + }, + "C": { + "data": [], + "dim": [ + 2, + 0 + ] + }, + "D": { + "data": [ + [ + 0.0, + 1.0 + ], + [ + 1.0, + 0.0 + ] + ], + "dim": [ + 2, + 2 + ] + }, + "tau": { + "data": [ + 10.0 + ], + "dim": [ + 1 + ] + } + } + }, + "test_siso_delay": { + "B": { + "data": [ + [ + 0.0 + ], + [ + 1.0 + ] + ], + "dim": [ + 1, + 2 + ] + }, + "A": { + "data": [ + [ + -1.0 + ] + ], + "dim": [ + 1, + 1 + ] + }, + "C": { + "data": [ + [ + 1.0, + 0.0 + ] + ], + "dim": [ + 2, + 1 + ] + }, + "D": { + "data": [ + [ + 0.0, + 1.0 + ], + [ + 0.0, + 0.0 + ] + ], + "dim": [ + 2, + 2 + ] + }, + "tau": { + "data": [ + 1.5 + ], + "dim": [ + 1 + ] + } + }, + "test_delay_function": { + "1": { + "B": { + "data": [ + [], + [] + ], + "dim": [ + 0, + 2 + ] + }, + "A": { + "data": [], + "dim": [ + 0, + 0 + ] + }, + "C": { + "data": [], + "dim": [ + 2, + 0 + ] + }, + "D": { + "data": [ + [ + 0.0, + 1.0 + ], + [ + 1.0, + 0.0 + ] + ], + "dim": [ + 2, + 2 + ] + }, + "tau": { + "data": [ + 1.0 + ], + "dim": [ + 1 + ] + } + }, + "1.5": { + "B": { + "data": [ + [], + [] + ], + "dim": [ + 0, + 2 + ] + }, + "A": { + "data": [], + "dim": [ + 0, + 0 + ] + }, + "C": { + "data": [], + "dim": [ + 2, + 0 + ] + }, + "D": { + "data": [ + [ + 0.0, + 1.0 + ], + [ + 1.0, + 0.0 + ] + ], + "dim": [ + 2, + 2 + ] + }, + "tau": { + "data": [ + 1.5 + ], + "dim": [ + 1 + ] + } + }, + "10": { + "B": { + "data": [ + [], + [] + ], + "dim": [ + 0, + 2 + ] + }, + "A": { + "data": [], + "dim": [ + 0, + 0 + ] + }, + "C": { + "data": [], + "dim": [ + 2, + 0 + ] + }, + "D": { + "data": [ + [ + 0.0, + 1.0 + ], + [ + 1.0, + 0.0 + ] + ], + "dim": [ + 2, + 2 + ] + }, + "tau": { + "data": [ + 10.0 + ], + "dim": [ + 1 + ] + } + } + } + }, + "TestDelayLtiMethods": { + "test_feedback": { + "delay_siso_tf": { + "B": { + "data": [ + [ + 0.0, + 0.0 + ], + [ + 1.0, + 0.0 + ], + [ + 0.0, + 1.0 + ] + ], + "dim": [ + 2, + 3 + ] + }, + "A": { + "data": [ + [ + -1.0, + 0.0 + ], + [ + 0.0, + -1.0 + ] + ], + "dim": [ + 2, + 2 + ] + }, + "C": { + "data": [ + [ + 1.0, + 0.0, + 1.0 + ], + [ + 0.0, + -1.0, + 0.0 + ] + ], + "dim": [ + 3, + 2 + ] + }, + "D": { + "data": [ + [ + 0.0, + 1.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0 + ] + ], + "dim": [ + 3, + 3 + ] + }, + "tau": { + "data": [ + 1.5, + 1.5 + ], + "dim": [ + 2 + ] + } + }, + "empty": { + "B": { + "data": [ + [ + 0.0 + ], + [ + 1.0 + ] + ], + "dim": [ + 1, + 2 + ] + }, + "A": { + "data": [ + [ + -1.0 + ] + ], + "dim": [ + 1, + 1 + ] + }, + "C": { + "data": [ + [ + 1.0, + -1.0 + ] + ], + "dim": [ + 2, + 1 + ] + }, + "D": { + "data": [ + [ + 0.0, + 1.0 + ], + [ + 0.0, + 0.0 + ] + ], + "dim": [ + 2, + 2 + ] + }, + "tau": { + "data": [ + 1.5 + ], + "dim": [ + 1 + ] + } + }, + "tf_one": { + "B": { + "data": [ + [ + 0.0 + ], + [ + 1.0 + ] + ], + "dim": [ + 1, + 2 + ] + }, + "A": { + "data": [ + [ + -1.0 + ] + ], + "dim": [ + 1, + 1 + ] + }, + "C": { + "data": [ + [ + 1.0, + -1.0 + ] + ], + "dim": [ + 2, + 1 + ] + }, + "D": { + "data": [ + [ + 0.0, + 1.0 + ], + [ + 0.0, + 0.0 + ] + ], + "dim": [ + 2, + 2 + ] + }, + "tau": { + "data": [ + 1.5 + ], + "dim": [ + 1 + ] + } + } + }, + "test_tito_freq_response": { + "r12": { + "real": [ + -17.979545539270337, + -17.80080817901333, + -17.589543229062834, + -17.340734466620393, + -17.048957615295066, + -16.708499550214572, + -16.313549184302005, + -15.85847403757536, + -15.338191130105187, + -14.748630247557251, + -14.08727096524883, + -13.353712684114113, + -12.550212327912854, + -11.682103225679397, + -10.757999400210041, + -9.789700467177209, + -8.791748364345382, + -7.780645194703653, + -6.77380915756393, + -5.788403697114647, + -4.840204761966178, + -3.9426621489255704, + -3.1062664297028433, + -2.3382679838953697, + -1.6427292312041606, + -1.0208420507548333, + -0.47141780912310505, + 0.008543516095805998, + 0.42328288926552626, + 0.7777646148050352, + 1.0772417273196127, + 1.3269146985415978, + 1.5316799912700436, + 1.6959570779212823, + 1.8235793487446414, + 1.9177344287645302, + 1.9809415354656503, + 2.0150567185922394, + 2.0213005671394275, + 2.000306979192757, + 1.9521957986742915, + 1.876676552975799, + 1.773195175210415, + 1.6411402870531193, + 1.4801297857673967, + 1.2904008490539232, + 1.0733246148715239, + 0.8320565474178327, + 0.5723083770628592, + 0.3031784490352936, + 0.03789368577303131, + -0.20581021359933915, + -0.4061097563642434, + -0.5389263752494392, + -0.5818615439788665, + -0.5207189981398878, + -0.35829769632735353, + -0.12340172886874234, + 0.12471652477431537, + 0.30405438482750385, + 0.337218273380767, + 0.19791349643592104, + -0.044297017426789584, + -0.22785970586314502, + -0.1987689909970892, + 0.023380727220823967, + 0.1891025115903759, + 0.07443232450773135, + -0.14010548935163072, + -0.06374423002896482, + 0.13027604265184586, + -0.02115043562649843, + -0.0799551758147477, + 0.10109741710217417, + -0.07902323999789639, + 0.05706777985256912, + -0.05172517399847418, + 0.06022493217155967, + -0.063113533631419, + 0.025510508873653734, + 0.042948208793136704, + -0.01586729960159359, + -0.039742826401768565, + -0.03933889763172318, + -0.03217778287538818, + -0.004144263303007504, + 0.030152922601707346, + -0.020569563815090952, + 0.02105854171182995, + -0.01985575909205607, + -0.018100973985880973, + -0.017304131428496097, + -0.010587177486381905, + 0.014138679495106879, + -0.00125338200821709, + -0.00701808799857972, + 0.008054751670420123, + -0.008347457720106043, + -0.0002937462920334337, + -0.008997705819017333 + ], + "imag": [ + 4.342619517073938, + 4.724806025295414, + 5.1320049788371085, + 5.563264561669552, + 6.0167350654387, + 6.489458865311868, + 6.977156784848183, + 7.47403252587984, + 7.9726262655251645, + 8.463757497363597, + 8.936602956557591, + 9.378954217211833, + 9.77768719682191, + 10.119449552768986, + 10.39153249827225, + 10.582847011872238, + 10.684882562976957, + 10.692504111813498, + 10.60445242341483, + 10.423456838554033, + 10.155939321390012, + 9.81136446358357, + 9.401350225600211, + 8.938683031177717, + 8.436374837908431, + 7.906866892809745, + 7.361439206777721, + 6.809840335440722, + 6.260118216093046, + 5.718613088203613, + 5.190066761550856, + 4.677805073756644, + 4.183958198230711, + 3.709693144937356, + 3.2554421118370738, + 2.8211181410407695, + 2.4063154322809384, + 2.0104957343351835, + 1.633164717731685, + 1.2740433679830578, + 0.9332393422808171, + 0.6114218194820902, + 0.31000030646136595, + 0.03130251550821797, + -0.22126213298716477, + -0.4430797725510945, + -0.6282950189646908, + -0.7699291694610503, + -0.8602530433171849, + -0.891543586581522, + -0.8573704891952135, + -0.7545384045814909, + -0.5857090205738471, + -0.36248350379729893, + -0.10827268519038567, + 0.14040513344632233, + 0.3363551529643246, + 0.43046783977153713, + 0.3885172347024771, + 0.21399293082315407, + -0.03259372445101514, + -0.2369105024545742, + -0.2777733827223607, + -0.11734338273808059, + 0.12259355794171213, + 0.21150216001254316, + 0.042815335500071765, + -0.16022073343676937, + -0.07926308000029737, + 0.13209726900244684, + 0.029813061197126362, + -0.11992090546801883, + 0.07692870294914742, + 0.0002460820330156346, + -0.047337232293552876, + 0.061547514039147905, + -0.056331748719427095, + 0.03505301648345487, + 0.006930040610082755, + -0.05192410443961511, + 0.030563211032726, + 0.04533346400354927, + 0.018323043007691008, + 0.006519737860931946, + 0.016872569062135863, + 0.032844945067921655, + 0.0008315092285931376, + -0.01822910195093327, + 0.013553239570347883, + 0.011243753574243587, + -0.010228726967818413, + -0.007710188908937525, + 0.013633054898708348, + -0.006889112211002009, + 0.014275623961371196, + 0.0110110669406258, + 0.008756181807002703, + -0.0069164327516228466, + -0.009873118718470351, + -0.0002031541953267352 + ] + }, + "r11": { + "real": [ + 12.43128816593835, + 12.358336017309398, + 12.271526787736379, + 12.168474760438365, + 12.046487013817968, + 11.902567694673207, + 11.733444253944395, + 11.535624284042607, + 11.305492545778371, + 11.03945759523041, + 10.734155293680907, + 10.386711487150423, + 9.995057527806516, + 9.558279961265896, + 9.076970731718406, + 8.553529508386978, + 7.9923598284576105, + 7.399901173356435, + 6.784454211939663, + 6.155786883835384, + 5.524549715424967, + 4.901569353408882, + 4.297117266395177, + 3.7202564479360047, + 3.1783506935058363, + 2.67678493929047, + 2.2189029587527584, + 1.8061323869336094, + 1.4382443975577974, + 1.1136883264828072, + 0.8299472071288009, + 0.5838732961066524, + 0.37197800734332626, + 0.19066450836993976, + 0.03640167197906004, + -0.0941552704761483, + -0.20408864510080785, + -0.29617709607461673, + -0.3728799669104546, + -0.43633935541928387, + -0.48839344774672594, + -0.5305962610425458, + -0.5642402662307592, + -0.5903794670954846, + -0.6098513835989521, + -0.6232970609174918, + -0.6311787493735481, + -0.6337953263702912, + -0.6312959113341831, + -0.6236925086108341, + -0.6108729494412299, + -0.592615938023275, + -0.5686106773811407, + -0.5384843820952704, + -0.5018419665619038, + -0.45832325041490285, + -0.4076839409591818, + -0.3499070106515678, + -0.2853501091502618, + -0.21493104034257932, + -0.14034512731244936, + -0.06429281708532214, + 0.009329833022601843, + 0.07536304799547297, + 0.1275707621265259, + 0.15926229807770054, + 0.16453854037701823, + 0.14026912274052408, + 0.08863643541612089, + 0.019534790750579276, + -0.04869104635601392, + -0.092394501101518, + -0.09155486655554447, + -0.0434769399816274, + 0.026101954727285753, + 0.06872592822762003, + 0.04687264185681756, + -0.02004148721876953, + -0.054042185885970415, + -0.00760858694647483, + 0.04391738001863822, + 0.004676403552874922, + -0.03689569846489549, + 0.018507911982609565, + 0.011027350572800474, + -0.025005640080616162, + 0.02568741788980782, + -0.022718741343590407, + 0.020936102056912178, + -0.019150495349870126, + 0.011353412196151337, + 0.0060283956243197875, + -0.014031994776318462, + -0.008359158992222976, + 0.0003647585514889078, + 0.002097797791679799, + -0.0024804124923506685, + -0.008986537350776683, + 7.933603945029554e-5, + 0.0038850821975851724 + ], + "imag": [ + -2.2040229903890376, + -2.4055411951240657, + -2.622616000974477, + -2.85556679125228, + -3.104423705408224, + -3.368829959399902, + -3.6479282700501523, + -3.940234259116282, + -4.243503180665107, + -4.554600971794905, + -4.869396254455911, + -5.182695808987789, + -5.488250819095851, + -5.778862753451961, + -6.046613544822822, + -6.283232484744117, + -6.480591217427942, + -6.631290529780363, + -6.729274093428178, + -6.770383614186616, + -6.752765832314651, + -6.6770594956126015, + -6.546327677096264, + -6.365748044418277, + -6.14211724946262, + -5.883253351144822, + -5.59738624874044, + -5.292612374589998, + -4.976463903965641, + -4.655613706471871, + -4.335712580263525, + -4.021338835031188, + -3.716032488507119, + -3.4223854912612466, + -3.1421629510837734, + -2.876435915373175, + -2.625712157695306, + -2.390056595787404, + -2.169197019619673, + -1.9626136880188965, + -1.769613219791124, + -1.589388292447561, + -1.421065199357977, + -1.2637414988835867, + -1.1165159645363287, + -0.9785129170246855, + -0.8489028540035857, + -0.7269211295418373, + -0.6118862883468039, + -0.5032195261724143, + -0.4004666052505409, + -0.30332335753676204, + -0.2116655854439276, + -0.1255836063196159, + -0.04542071727069005, + 0.028186750103759775, + 0.09427266059654694, + 0.1515163005144927, + 0.1982437502790757, + 0.23247672554088666, + 0.25205861922894385, + 0.25489537675413476, + 0.2393521051741667, + 0.2048370128253847, + 0.15256927604902282, + 0.08644864759570142, + 0.013804166087691448, + -0.05440439297514317, + -0.10457637205481073, + -0.12337208659177808, + -0.10287214507188865, + -0.04709161986773513, + 0.02337238224858419, + 0.07431334452580744, + 0.07397907485865568, + 0.019649866356320482, + -0.04522020590124208, + -0.05585753112977387, + 0.0018029905731695305, + 0.04867765452571895, + 0.00930283737574529, + -0.040635634813495615, + 0.005269385356166265, + 0.028472443316663185, + -0.028910630235054184, + 0.013022728954821837, + 0.0002739603091159187, + -0.005633390817610891, + 0.004066499552758985, + 0.003299818509018253, + -0.013587326528977543, + 0.01496477639672639, + 0.004381468082663159, + -0.010465641522816949, + -0.012198865550599444, + -0.010920454476846246, + -0.009823942617634675, + -0.0021152295724793505, + 0.008411590638668729, + -0.006607063762326209 + ] + }, + "r22": { + "real": [ + -18.915248629777597, + -18.818534114344438, + -18.703099779307514, + -18.56557164596919, + -18.402074259132487, + -18.208201859070403, + -17.979009410718177, + -17.709034484525514, + -17.39236372394293, + -17.022759941957233, + -16.593866906740217, + -16.09950736255759, + -15.534084233759618, + -14.893083706713258, + -14.173660998046055, + -13.375265641208296, + -12.500236173898468, + -11.554270529040117, + -10.546667266457904, + -9.490243399120851, + -8.400872516165366, + -7.296649472144543, + -6.196762029325518, + -5.120214750087282, + -4.084585207909633, + -3.1049852213637728, + -2.193352903396712, + -1.3581307879964102, + -0.6043130562713402, + 0.06621028692877973, + 0.6541129610793954, + 1.1619987569828307, + 1.5937614254004508, + 1.9539994708602446, + 2.247521127673765, + 2.4789532966265373, + 2.652453532218505, + 2.7715163096256807, + 2.83886263318731, + 2.856404112264212, + 2.825277610586564, + 2.745953463682208, + 2.6184282855501837, + 2.442521783680849, + 2.218304628237282, + 1.9466892163218188, + 1.6302134222701334, + 1.274032847897525, + 0.8870999077566379, + 0.4834346471115818, + 0.0832663877776031, + -0.2863656314421349, + -0.592215501389611, + -0.7975604149836688, + -0.8681036951379899, + -0.7817926580954525, + -0.5420923486781136, + -0.1916436398555898, + 0.18088124386770826, + 0.4521390152227134, + 0.5050788781522239, + 0.29886027938423637, + -0.06346372251295096, + -0.33995294864148573, + -0.298548670216058, + 0.03336255780611403, + 0.2827489113412085, + 0.1124396193941759, + -0.20925252751482462, + -0.09611902663619168, + 0.19486083771447865, + -0.03112943158137676, + -0.11999306230537929, + 0.1513302993825827, + -0.11813079757157524, + 0.08523688835308758, + -0.07727088490118084, + 0.0900620330224121, + -0.0944907652968597, + 0.03829583158913529, + 0.06423094002368505, + -0.02383091329396667, + -0.059520471883937213, + -0.05889619223177922, + -0.048189494636034655, + -0.006243062570851471, + 0.0451353319873735, + -0.030772628489114603, + 0.03151045910869639, + -0.02973163989482227, + -0.02708785188700699, + -0.02589746974521368, + -0.015856623313825167, + 0.021168304744243527, + -0.0018836301481688117, + -0.01051068708161923, + 0.012053482281977366, + -0.012492698320439748, + -0.00043617262123654433, + -0.01346871961822188 + ], + "imag": [ + 3.3057085066163894, + 3.6127066683888227, + 3.9448932964715984, + 4.303301496861762, + 4.688665057110565, + 5.101291532899661, + 5.540907154072057, + 6.0064728005435715, + 6.495973433590731, + 7.006188266663765, + 7.532455914625273, + 8.068457729697327, + 8.60605282858416, + 9.135208246763947, + 9.644074269124324, + 10.119254163772386, + 10.546304788874558, + 10.910476650458309, + 11.197659441319944, + 11.395448224345893, + 11.494198865734404, + 11.487915235628803, + 11.374818752128508, + 11.157497224503725, + 10.842605272426276, + 10.440172050557381, + 9.962639433492598, + 9.423787620051547, + 8.837700623968608, + 8.217889420325198, + 7.576640947440485, + 6.9246122263956575, + 6.270651185565627, + 5.621803549252459, + 4.983457316690631, + 4.359579024376977, + 3.7530046063985885, + 3.1657584070746108, + 2.5993841211339794, + 2.05527961245246, + 1.5350329158289715, + 1.040758815637163, + 0.5754337582168062, + 0.14322075082034663, + -0.2502358297888014, + -0.59758449923624, + -0.8896766723199003, + -1.1157164056493167, + -1.2637990501111944, + -1.3220333735152963, + -1.2804683113287971, + -1.1340154137464138, + -0.88640658320664, + -0.554860630026135, + -0.17444989092003704, + 0.19987912382739384, + 0.4968823626101177, + 0.6421273661314307, + 0.5832415712776812, + 0.3243473310657503, + -0.044634454292340926, + -0.3523544542322688, + -0.4161933510076372, + -0.17775066371050088, + 0.18180859432346044, + 0.3167542014546065, + 0.06541708656994971, + -0.23934531099900216, + -0.11946282946002104, + 0.19739087287740992, + 0.045258051819745994, + -0.17959973875774188, + 0.11483094765323414, + 0.0007393596109930061, + -0.07112285728405465, + 0.09230396672039123, + -0.08446643160708937, + 0.05262319880749238, + 0.010228129558354596, + -0.0776718367975225, + 0.04583242917601909, + 0.06783232011089697, + 0.02736477699097288, + 0.009702511942248014, + 0.025214275687164233, + 0.04916096313704033, + 0.0012777124020500739, + -0.02730787420615017, + 0.02030714844230243, + 0.016814464106062334, + -0.01532516934899406, + -0.011553378545014457, + 0.020400859776369875, + -0.01030432866217134, + 0.021368715140975353, + 0.016479283832946556, + 0.013110722732914588, + -0.010356584726514444, + -0.01477930811683578, + -0.0003070438427949238 + ] + }, + "r21": { + "real": [ + 6.456806400453239, + 6.427947543700158, + 6.393375187644098, + 6.3520033875310515, + 6.302559582114024, + 6.243561185721288, + 6.173293184574207, + 6.089788971763697, + 5.990817654307498, + 5.873882295096301, + 5.736234963092649, + 5.574915919520709, + 5.38682549445441, + 5.168837755957292, + 4.917964289115123, + 4.631573468179081, + 4.307664696686308, + 3.945187695254357, + 3.54438432387941, + 3.107116276438488, + 2.6371296124949817, + 2.140201237541224, + 1.6241180010507852, + 1.0984589157170876, + 0.5741836118341503, + 0.06306857633940752, + -0.4229340023244604, + -0.87232292725337, + -1.2745739500550426, + -1.6205056618900473, + -1.902466073019002, + -2.1143625297700295, + -2.2515916074280087, + -2.3109466650560067, + -2.2905887437386045, + -2.1901642152430094, + -2.011142769994167, + -1.7574319609882518, + -1.43629495018049, + -1.059546023807074, + -0.6449079422317704, + -0.217267078039979, + 0.19065856733144365, + 0.539010885682689, + 0.7839085163923682, + 0.8841851479059631, + 0.8125726987668168, + 0.570745116654013, + 0.20462486628832652, + -0.1883096737969229, + -0.47258838733403585, + -0.5215193912709415, + -0.2950753357426149, + 0.08807371097372083, + 0.36366476720648777, + 0.2936758995637603, + -0.065213907506587, + -0.29894808264680284, + -0.08464081617289526, + 0.23257255905525748, + 0.06546978557363038, + -0.20738983126284408, + 0.0693028678671942, + 0.09454966382289584, + -0.15230407730456613, + 0.1382481044318476, + -0.11348587852796453, + 0.10500719542317855, + -0.10706254145905894, + 0.08538746943129889, + 0.00013864408952014246, + -0.0813929789208096, + -0.016229963142076916, + 0.03421325121458908, + 0.0414996295586669, + 0.019260377444086856, + -0.03265666650530345, + -0.030373714038262407, + 0.04131819644827307, + -0.034035166413741165, + -0.0045548343631747635, + 0.022830165960750277, + 0.01568611666883509, + -0.021142120421470317, + 0.01388370864325637, + -0.021678743689387228, + -0.020252878853129867, + -0.002225073071142497, + -0.0039556697184909085, + 0.005523570519956949, + -0.013825527551196603, + 0.005590083344374726, + -0.006110247250606604, + 0.010580702734716462, + 0.0019535150617730115, + 0.008518115523435644, + -0.00789601807963814, + -0.00031678243823877306, + 0.00046223762258196515, + -0.0032984249938573704 + ], + "imag": [ + -1.1654146900771192, + -1.275504238261316, + -1.3952134196613368, + -1.525135808951057, + -1.6658201654080644, + -1.8177375696952263, + -1.9812386527804906, + -2.1564990566329816, + -2.3434513830761534, + -2.5417023327129895, + -2.750434686598742, + -2.9682954506970254, + -3.193274083068084, + -3.4225784106657136, + -3.652520595183895, + -3.878430964204859, + -4.09462279613827, + -4.294434683997667, + -4.470376744370216, + -4.614400329401237, + -4.718296377229871, + -4.77420537768458, + -4.775195494266592, + -4.715841328265156, + -4.592722629460435, + -4.404767107002289, + -4.153386506328756, + -3.8423952808674433, + -3.477745466690269, + -3.0671469410490886, + -2.619659661993002, + -2.1453409330780775, + -1.655009861622837, + -1.160160091069027, + -0.6730173636788513, + -0.2067042699366139, + 0.22455931737729504, + 0.6053278390248329, + 0.9190231112104983, + 1.148445888648517, + 1.2769494556619931, + 1.2905432853897645, + 1.1811539349425253, + 0.95108947819774, + 0.6183260582168065, + 0.22144631435988973, + -0.1781274695182204, + -0.5003173814745683, + -0.6614123257925069, + -0.6026930010439868, + -0.3289112898796782, + 0.060078050919870604, + 0.3767993822520846, + 0.4272844139867687, + 0.16087163389218007, + -0.21241277082103482, + -0.3238275987635541, + -0.0354905375588738, + 0.260968871928572, + 0.09174878459265134, + -0.21822340897568573, + -0.0096386578331521, + 0.17603512013437658, + -0.14414934018593165, + 0.038461529606795115, + 0.03709086724495221, + -0.06428091620840329, + 0.055653602887128506, + -0.016251565429515925, + -0.049446661519207374, + 0.08990705949458201, + -0.009289289705677327, + -0.07285886178018194, + -0.05878249121079965, + -0.04602582479906211, + -0.053081217945457324, + -0.03975912940617042, + 0.03571064977033943, + -0.010839061154228356, + 0.01888116666641433, + -0.035170300514430236, + -0.022868109139146643, + -0.024916560173710044, + -0.016514231492333612, + 0.02011863433012642, + 0.005109029532660125, + -0.0012914392803147683, + 0.018356801049832554, + -0.016377533873436455, + -0.014323584392833242, + -0.002125184924407931, + -0.011453942942727047, + -0.0098755776488937, + -0.00011712878439016248, + -0.00944135163937912, + -0.0021482303801674697, + 0.0013128032711124604, + 0.007286436828345648, + 0.006629306459054316, + 0.0050777891062560015 + ] + } + }, + "test_mimo_feedback": { + "B": { + "data": [ + [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + 1.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 1.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 1.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0, + 1.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0, + 0.0, + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 1.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 1.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 1.0 + ] + ], + "dim": [ + 8, + 10 + ] + }, + "A": { + "data": [ + [ + -0.059880239520958084, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + -0.047619047619047616, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + -0.09174311926605504, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0, + -0.06944444444444445, + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0, + 0.0, + -0.059880239520958084, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + -0.047619047619047616, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + -0.09174311926605504, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + -0.06944444444444445 + ] + ], + "dim": [ + 8, + 8 + ] + }, + "C": { + "data": [ + [ + 0.7664670658682635, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.7664670658682635, + 0.0, + 0.7664670658682635, + 0.0 + ], + [ + -0.8999999999999999, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + -0.8999999999999999, + 0.0, + -0.8999999999999999, + 0.0 + ], + [ + 0.0, + 0.6055045871559632, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.6055045871559632, + 0.0, + 0.6055045871559632 + ], + [ + 0.0, + -1.347222222222222, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + -1.347222222222222, + 0.0, + -1.347222222222222 + ], + [ + 0.0, + 0.0, + -0.7664670658682635, + 0.0, + -0.7664670658682635, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.8999999999999999, + 0.0, + 0.8999999999999999, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0, + -0.6055045871559632, + 0.0, + -0.6055045871559632, + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0, + 1.347222222222222, + 0.0, + 1.347222222222222, + 0.0, + 0.0, + 0.0, + 0.0 + ] + ], + "dim": [ + 10, + 8 + ] + }, + "D": { + "data": [ + [ + 0.0, + 0.0, + 1.0, + 0.0, + 1.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0, + 1.0, + 0.0, + 1.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ] + ], + "dim": [ + 10, + 10 + ] + }, + "tau": { + "data": [ + 1.0, + 3.0, + 7.0, + 3.0, + 1.0, + 3.0, + 7.0, + 3.0 + ], + "dim": [ + 8 + ] + } + }, + "test_siso_freq_resp": { + "real": [ + 0.9996375439798979, + 0.9995634312726295, + 0.9994741671370168, + 0.9993666552530321, + 0.999237167083981, + 0.99908121303276, + 0.9988933874503182, + 0.9986671822395532, + 0.9983947627635261, + 0.9980666985392813, + 0.9976716397463046, + 0.9971959288676081, + 0.9966231347756939, + 0.9959334942394207, + 0.9951032431288468, + 0.9941038165099754, + 0.9929008933437563, + 0.9914532576576418, + 0.9897114439166157, + 0.9876161300348277, + 0.9850962373081802, + 0.9820666929589262, + 0.9784258086709292, + 0.9740522285356137, + 0.9688014038241506, + 0.9625015622730949, + 0.9549491594125434, + 0.9459038334419049, + 0.9350829394272876, + 0.9221558212063877, + 0.9067381004379472, + 0.8883864336722017, + 0.8665944230560981, + 0.8407906760670428, + 0.8103404009543473, + 0.7745523915091108, + 0.7326937684053461, + 0.6840153376849258, + 0.6277907774720298, + 0.5633728780129739, + 0.4902694689018042, + 0.40824015081694337, + 0.3174122070875165, + 0.21840995593936785, + 0.11248651027122411, + 0.001641155706260852, + -0.11129935164175528, + -0.22265962734415376, + -0.32797697505164664, + -0.4221611357112527, + -0.4997585058263344, + -0.55531619758517, + -0.5838334214868793, + -0.5812849089473644, + -0.5452026982257325, + -0.47530358539375506, + -0.37414093002783655, + -0.24772998226030973, + -0.10603460602502184, + 0.03689544850765837, + 0.163475443354048, + 0.25428260135266945, + 0.29137658766182767, + 0.2634742255584535, + 0.17246061536666463, + 0.03927095986185361, + -0.09481872294498477, + -0.17692182848634166, + -0.16507730459105968, + -0.060032676072388685, + 0.07413268414875133, + 0.13395334052399674, + 0.0610174960974431, + -0.06975679846479863, + -0.09313772876012177, + 0.025934061526366826, + 0.08116736041226703, + -0.033328025868165176, + -0.050456466352268005, + 0.06145146603825666, + -0.023790764711986843, + -0.01164993683455088, + 0.028094619517517096, + -0.030057717552314775, + 0.02221753549779696, + -0.003620320024132159, + -0.022559742304732594, + 0.028197022583963373, + 0.01265424121150209, + -0.013302129669150599, + -0.02020475258354317, + -0.017882613190878055, + -0.006554881991346374, + 0.014655691602204724, + 0.000944019041138025, + -0.004257696080973819, + -0.004643396819873846, + 0.010959344674057785, + 0.010974231856788667, + 0.007217967580181465 + ], + "imag": [ + -0.024995812946127068, + -0.027431934219113052, + -0.030105271862338058, + -0.03303885684441913, + -0.036257934309874534, + -0.03979016938930197, + -0.043665869841421755, + -0.04791822613112859, + -0.0525835692753272, + -0.05770164638426992, + -0.06331591324456566, + -0.06947384247065888, + -0.07622724461511865, + -0.08363259807084238, + -0.09175138148508818, + -0.10065039956078467, + -0.11040208931859637, + -0.12108478884384631, + -0.13278294387710093, + -0.14558721886237722, + -0.15959446766698268, + -0.1749075044296957, + -0.1916345960427577, + -0.2098885736642593, + -0.22978543033607415, + -0.25144223418842526, + -0.27497414094902234, + -0.300490235110327, + -0.3280878666756117, + -0.3578450821924996, + -0.3898106800313958, + -0.4239913604759359, + -0.4603354080288266, + -0.4987123630856, + -0.5388882523855643, + -0.5804962073952337, + -0.6230027775548482, + -0.6656710221748017, + -0.7075226177394369, + -0.7473027903910795, + -0.7834538397594977, + -0.8141051786018723, + -0.8370897798193744, + -0.8499980576452956, + -0.8502796738335039, + -0.8354007066554325, + -0.8030575539931093, + -0.751440156357626, + -0.6795270170911017, + -0.5873854352991381, + -0.47644491995156885, + -0.3497113918344513, + -0.21189364718913414, + -0.06941810951605784, + 0.06969206393078606, + 0.19610650928623855, + 0.299698110811019, + 0.37035124841572953, + 0.39916086952467084, + 0.3800982171863752, + 0.3121302920468994, + 0.20157093976443763, + 0.06406865232764666, + -0.07489134372736657, + -0.18262004861081965, + -0.22672820233378352, + -0.18805963874096887, + -0.07618454336708898, + 0.061240135678342605, + 0.14923045517330516, + 0.12680648132772035, + 0.005894971987373343, + -0.1060585765190556, + -0.08715109760964115, + 0.0411449750223617, + 0.08916232616058803, + -0.024101915560650607, + -0.06963017462205673, + 0.049056299066853694, + 0.01840452262643518, + -0.05341105609671893, + 0.052002178488688384, + -0.039618229956131325, + 0.032491972651787646, + -0.03366719746221515, + 0.036580224069183376, + -0.02476129275952057, + -0.011690266278196328, + 0.02476963547555173, + 0.02157423746489494, + 0.01118719108988631, + 0.011094055800076006, + 0.018020439623851116, + 0.009513307662500076, + -0.015892797519920294, + 0.013867881656646677, + -0.012375830184461655, + -0.004995457554294962, + -4.563593820485174e-5, + -0.006920328388981937 + ] + } + } +} diff --git a/control/tests/julia_test.jl b/control/tests/julia_test.jl new file mode 100644 index 000000000..178d771e1 --- /dev/null +++ b/control/tests/julia_test.jl @@ -0,0 +1,171 @@ +""" +This file is using ControlSystems.jl library to produce results and plots about delay systems. +Theses results are then exported to json format, and compared to python-control pure delays implementation, +as a way to benchmark it. The script and the json follows the test progression of the delay_lti_test.py file. + +In order to run this notebook, the user should install julia and the ControlSystems.jl library: +- https://julialang.org/downloads/ +- https://github.com/JuliaControl/ControlSystems.jl +- https://github.com/JuliaIO/JSON.jl +- https://github.com/JuliaPlots/Plots.jl +""" + +using ControlSystems +using Plots +using JSON + +# ------------------ +# Transfer functions +# ------------------ + +s = tf("s") + +simple_siso_tf = tf([1], [1, 1]) + +tf_one = tf([1], [1]) + +delay_siso_tf = 1 / (s + 1) * delay(1.5) + +delay_siso_tf2 = 3 / (2 * s + 5) * delay(0.5) + +delay_tito_tf = [1/(s+1)*exp(-0.5*s) 1/(s+2)*exp(-s); 1/(s+3)*exp(-s) 1/(s+4)*exp(-s)] + +wood_berry = [12.8/(16.7s+1)*exp(-s) -18.9/(21s+1)*exp(-3s); 6.6/(10.9s+1)*exp(-7s) -19.4/(14.4s+1)*exp(-3s)] + + +function dlti2dict(dlti) + return Dict( + "A" => Dict( + "data" => dlti.P.A, + "dim" => size(dlti.P.A) + ), + "B" => Dict( + "data" => dlti.P.B, + "dim" => size(dlti.P.B) + ), + "C" => Dict( + "data" => dlti.P.C, + "dim" => size(dlti.P.C) + ), + "D" => Dict( + "data" => dlti.P.D, + "dim" => size(dlti.P.D) + ), + "tau" => Dict( + "data" => dlti.Tau, + "dim" => size(dlti.Tau) + ) + ) +end + + +function test_tf2dlti(tf) + dlti = DelayLtiSystem(tf) + return dlti2dict(dlti) +end + + +function test_delay_function(tau) + dlti = delay(tau) + return dlti2dict(dlti) +end + + +function test_exp_delay(tau) + dlti = exp(-tau * s) + return dlti2dict(dlti) +end + +function complex_array_to_dict(arr) + return Dict( + "real" => real(arr), + "imag" => imag(arr) + ) +end + +function test_siso_freq_resp(tf) + w = exp10.(LinRange(-2,2,100)) + arr = collect(Iterators.Flatten(freqresp(tf, w))) + return complex_array_to_dict(arr) +end + +function test_tito_freq_response(tf) + w = exp10.(LinRange(-2,2,100)) + resp = freqresp(tf, w) + resp_11 = resp[1, 1, :] + resp_12 = resp[1, 2, :] + resp_21 = resp[2, 1, :] + resp_22 = resp[2, 2, :] + + return Dict( + "r11" => complex_array_to_dict(resp_11), + "r12" => complex_array_to_dict(resp_12), + "r21" => complex_array_to_dict(resp_21), + "r22" => complex_array_to_dict(resp_22), + ) +end + +function main() + + results_TestConstructors = Dict( + "test_tf2dlti" => Dict( + "simple_siso_tf" => test_tf2dlti(simple_siso_tf), + "tf_one" => test_tf2dlti(tf_one) + ), + "test_delay_function" => Dict( + "1" => test_delay_function(1), + "1.5" => test_delay_function(1.5), + "10" => test_delay_function(10) + ), + "test_exp_delay" => Dict( + "1" => test_exp_delay(1), + "1.5" => test_exp_delay(1.5), + "10" => test_exp_delay(10) + ), + "test_siso_delay" => dlti2dict(delay_siso_tf), + "test_build_wood_berry" => dlti2dict(wood_berry) + ) + + results_TestOperators = Dict( + "test_siso_add" => dlti2dict(delay_siso_tf + delay_siso_tf2), + "test_siso_add_constant" => dlti2dict(delay_siso_tf + 2.5), + "test_siso_sub" => dlti2dict(delay_siso_tf - delay_siso_tf2), + "test_siso_sub_constant" => dlti2dict(delay_siso_tf - 2.5), + "test_siso_mul" => dlti2dict(delay_siso_tf * delay_siso_tf2), + "test_siso_mul_constant" => dlti2dict(delay_siso_tf * 2.), + "test_siso_rmul_constant" => dlti2dict(2. * delay_siso_tf), + "test_mimo_add" => dlti2dict(wood_berry + wood_berry), + "test_mimo_add_constant" => dlti2dict(wood_berry + 2.7), + "test_mimo_mul" => dlti2dict(wood_berry * wood_berry), + "test_mimo_mul_constant" => dlti2dict(wood_berry * 2.7) + ) + + results_TestDelayLtiMethods = Dict( + "test_feedback" => Dict( + "empty" => dlti2dict(feedback(delay_siso_tf, 1)), + "tf_one" => dlti2dict(feedback(delay_siso_tf, tf_one)), + "delay_siso_tf" => dlti2dict(feedback(delay_siso_tf, delay_siso_tf)) + ), + "test_mimo_feedback" => dlti2dict(feedback(wood_berry, wood_berry)), + + "test_siso_freq_resp" => test_siso_freq_resp(delay_siso_tf), + "test_tito_freq_response" => test_tito_freq_response(wood_berry), + + ) + + results = Dict( + "TestConstructors" => results_TestConstructors, + "TestOperators" => results_TestOperators, + "TestDelayLtiMethods" => results_TestDelayLtiMethods, + ) + + script_dir = @__DIR__ + output_file = joinpath(script_dir, "julia_results.json") + open(output_file, "w") do io + JSON.print(io, results, 4) + end + + println("Expected results exported to julia_results.json") +end + +main() \ No newline at end of file diff --git a/control/tests/julia_tests.ipynb b/control/tests/julia_tests.ipynb deleted file mode 100644 index 7e5199aac..000000000 --- a/control/tests/julia_tests.ipynb +++ /dev/null @@ -1,1075 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Julia tests\n", - "\n", - "This notebook is using ControlSystems.jl library to produce results about delay systems. Theses results are then compared to python-control new delays implementation, as a way to benchmark it. The notebook follows the test progression of the delay_lti_test.py file. \n", - "\n", - "In order to run this notebook, the user should install julia and the ControlSystems.jl library:\n", - "- https://julialang.org/downloads/ \n", - "- https://github.com/JuliaControl/ControlSystems.jl" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": {}, - "outputs": [], - "source": [ - "using ControlSystems\n", - "using Plots\n", - "\n", - "s = tf(\"s\")\n", - "simple_siso_tf = tf([1], [1, 1])\n", - "tf_one = tf([1], [1])\n", - "pure_delay = delay(1)\n", - "delay_siso_tf = 1 / (s + 1) * delay(1.5)\n", - "delay_siso_tf2 = 3 / (2 * s + 5) * delay(0.5)\n", - "delay_tito_tf = [1/(s+1)*exp(-0.5*s) 1/(s+2)*exp(-s); 1/(s+3)*exp(-s) 1/(s+4)*exp(-s)]\n", - "wood_berry = [12.8/(16.7s+1)*exp(-s) -18.9/(21s+1)*exp(-3s); 6.6/(10.9s+1)*exp(-7s) -19.4/(14.4s+1)*exp(-3s)]\n", - "\n", - "print(\"\")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### TestConstructors" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": {}, - "outputs": [], - "source": [ - "# test_from_ss" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "DelayLtiSystem{Float64, Float64}\n", - "\n", - "P: StateSpace{Continuous, Float64}\n", - "A = \n", - " -0.059880239520958084 0.0 0.0 0.0\n", - " 0.0 -0.047619047619047616 0.0 0.0\n", - " 0.0 0.0 -0.09174311926605504 0.0\n", - " 0.0 0.0 0.0 -0.06944444444444445\n", - "B = \n", - " 0.0 0.0 1.0 0.0 0.0 0.0\n", - " 0.0 0.0 0.0 1.0 0.0 0.0\n", - " 0.0 0.0 0.0 0.0 1.0 0.0\n", - " 0.0 0.0 0.0 0.0 0.0 1.0\n", - "C = \n", - " 0.7664670658682635 -0.8999999999999999 0.0 0.0\n", - " 0.0 0.0 0.6055045871559632 -1.347222222222222\n", - " 0.0 0.0 0.0 0.0\n", - " 0.0 0.0 0.0 0.0\n", - " 0.0 0.0 0.0 0.0\n", - " 0.0 0.0 0.0 0.0\n", - "D = \n", - " 0.0 0.0 0.0 0.0 0.0 0.0\n", - " 0.0 0.0 0.0 0.0 0.0 0.0\n", - " 1.0 0.0 0.0 0.0 0.0 0.0\n", - " 0.0 1.0 0.0 0.0 0.0 0.0\n", - " 1.0 0.0 0.0 0.0 0.0 0.0\n", - " 0.0 1.0 0.0 0.0 0.0 0.0\n", - "\n", - "Continuous-time state-space model\n", - "\n", - "Delays: [1.0, 3.0, 7.0, 3.0]" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "# test_wood_berry\n", - "wood_berry" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### TestOperators" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "DelayLtiSystem{Float64, Float64}\n", - "\n", - "P: StateSpace{Continuous, Float64}\n", - "A = \n", - " -1.0 0.0\n", - " 0.0 -2.5\n", - "B = \n", - " 0.0 1.0 0.0\n", - " 0.0 0.0 1.0\n", - "C = \n", - " 1.0 1.5\n", - " 0.0 0.0\n", - " 0.0 0.0\n", - "D = \n", - " 0.0 0.0 0.0\n", - " 1.0 0.0 0.0\n", - " 1.0 0.0 0.0\n", - "\n", - "Continuous-time state-space model\n", - "\n", - "Delays: [1.5, 0.5]" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "# test_add\n", - "delay_siso_tf + delay_siso_tf2" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "DelayLtiSystem{Float64, Float64}\n", - "\n", - "P: StateSpace{Continuous, Float64}\n", - "A = \n", - " -1.0\n", - "B = \n", - " 0.0 1.0\n", - "C = \n", - " 1.0\n", - " 0.0\n", - "D = \n", - " 2.5 0.0\n", - " 1.0 0.0\n", - "\n", - "Continuous-time state-space model\n", - "\n", - "Delays: [1.5]" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "# test_add_constant\n", - "delay_siso_tf + 2.5" - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "DelayLtiSystem{Float64, Float64}\n", - "\n", - "P: StateSpace{Continuous, Float64}\n", - "A = \n", - " -1.0 0.0\n", - " 0.0 -2.5\n", - "B = \n", - " 0.0 1.0 0.0\n", - " 0.0 0.0 1.0\n", - "C = \n", - " 1.0 0.0\n", - " 0.0 1.5\n", - " 0.0 0.0\n", - "D = \n", - " 0.0 0.0 0.0\n", - " 0.0 0.0 0.0\n", - " 1.0 0.0 0.0\n", - "\n", - "Continuous-time state-space model\n", - "\n", - "Delays: [1.5, 0.5]" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "# test_mul\n", - "delay_siso_tf * delay_siso_tf2" - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "DelayLtiSystem{Float64, Float64}\n", - "\n", - "P: StateSpace{Continuous, Float64}\n", - "A = \n", - " -1.0\n", - "B = \n", - " 0.0 1.0\n", - "C = \n", - " 2.0\n", - " 0.0\n", - "D = \n", - " 0.0 0.0\n", - " 1.0 0.0\n", - "\n", - "Continuous-time state-space model\n", - "\n", - "Delays: [1.5]" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "# test_gain_mul\n", - "2 * delay_siso_tf" - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "DelayLtiSystem{Float64, Float64}\n", - "\n", - "P: StateSpace{Continuous, Float64}\n", - "A = \n", - " -1.0\n", - "B = \n", - " 0.0 1.0\n", - "C = \n", - " 1.0\n", - " 0.0\n", - "D = \n", - " 0.0 0.0\n", - " 1.0 0.0\n", - "\n", - "Continuous-time state-space model\n", - "\n", - "Delays: [0.5]" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "# test_tf_mul_delay\n", - "simple_siso_tf * delay(0.5)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### TestFeedback" - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "DelayLtiSystem{Float64, Float64}\n", - "\n", - "P: StateSpace{Continuous, Float64}\n", - "A = \n", - " -1.0\n", - "B = \n", - " 0.0 1.0\n", - "C = \n", - " 1.0\n", - " -1.0\n", - "D = \n", - " 0.0 0.0\n", - " 1.0 0.0\n", - "\n", - "Continuous-time state-space model\n", - "\n", - "Delays: [1.5]" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "# test_feedback_one\n", - "feedback(delay_siso_tf, 1)" - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "DelayLtiSystem{Float64, Float64}\n", - "\n", - "P: StateSpace{Continuous, Float64}\n", - "A = \n", - " -1.0\n", - "B = \n", - " 0.0 1.0\n", - "C = \n", - " 1.0\n", - " -1.0\n", - "D = \n", - " 0.0 0.0\n", - " 1.0 0.0\n", - "\n", - "Continuous-time state-space model\n", - "\n", - "Delays: [1.5]" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "# test_feedback_tf_one\n", - "feedback(delay_siso_tf, tf_one)" - ] - }, - { - "cell_type": "code", - "execution_count": 13, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "DelayLtiSystem{Float64, Float64}\n", - "\n", - "P: StateSpace{Continuous, Float64}\n", - "A = \n", - " -1.0 0.0\n", - " 0.0 -1.0\n", - "B = \n", - " 0.0 1.0 0.0\n", - " 0.0 0.0 1.0\n", - "C = \n", - " 1.0 0.0\n", - " 0.0 -1.0\n", - " 1.0 0.0\n", - "D = \n", - " 0.0 0.0 0.0\n", - " 1.0 0.0 0.0\n", - " 0.0 0.0 0.0\n", - "\n", - "Continuous-time state-space model\n", - "\n", - "Delays: [1.5, 1.5]" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "# test_complext_feedback\n", - "feedback(delay_siso_tf, delay_siso_tf)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### TestPureDelay" - ] - }, - { - "cell_type": "code", - "execution_count": 14, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "DelayLtiSystem{Float64, Float64}\n", - "\n", - "P: StateSpace{Continuous, Float64}\n", - "D = \n", - " 0.0 1.0\n", - " 1.0 0.0\n", - "\n", - "Continuous-time state-space model\n", - "\n", - "Delays: [1.0]" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "# test_unit_delay\n", - "pure_delay" - ] - }, - { - "cell_type": "code", - "execution_count": 15, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "DelayLtiSystem{Float64, Float64}\n", - "\n", - "P: StateSpace{Continuous, Float64}\n", - "D = \n", - " 0.0 1.0\n", - " 1.0 0.0\n", - "\n", - "Continuous-time state-space model\n", - "\n", - "Delays: [2.0]" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "# test_exp_delay\n", - "exp(-2*s)" - ] - }, - { - "cell_type": "code", - "execution_count": 16, - "metadata": {}, - "outputs": [ - { - "ename": "UndefVarError", - "evalue": "UndefVarError: `G` not defined in `Main`\nSuggestion: check for spelling errors or missing imports.", - "output_type": "error", - "traceback": [ - "UndefVarError: `G` not defined in `Main`\n", - "Suggestion: check for spelling errors or missing imports.\n", - "\n", - "Stacktrace:\n", - " [1] top-level scope\n", - " @ ~/Documents/Code-perso/python-control/control/tests/jl_notebook_cell_df34fa98e69747e1a8f8a730347b8e2f_X25sZmlsZQ==.jl:4" - ] - } - ], - "source": [ - "tf_one = tf([1], [1])\n", - "ss_one = ss(tf_one)\n", - "\n", - "GF = feedback(G, ss_one) " - ] - }, - { - "cell_type": "code", - "execution_count": 17, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "DelayLtiSystem{Float64, Float64}\n", - "\n", - "P: StateSpace{Continuous, Float64}\n", - "D = \n", - " 0.0 1.0\n", - " 1.0 0.0\n", - "\n", - "Continuous-time state-space model\n", - "\n", - "Delays: [2.5]" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "delay(2.5)" - ] - }, - { - "cell_type": "code", - "execution_count": 18, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "ControlSystemsBase.PartitionedStateSpace{Continuous, StateSpace{Continuous, Float64}}(StateSpace{Continuous, Float64}\n", - "A = \n", - " -1.0\n", - "B = \n", - " 0.0 1.0\n", - "C = \n", - " 1.0\n", - " 0.0\n", - "D = \n", - " 0.0 0.0\n", - " 1.0 0.0\n", - "\n", - "Continuous-time state-space model, 1, 1)" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "test = tf([1], [1, 1]) * delay(1)\n", - "test.P" - ] - }, - { - "cell_type": "code", - "execution_count": 19, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "StateSpace{Continuous, Float64}\n", - "A = \n", - " -1.0\n", - "B = \n", - " 1.0\n", - "C = \n", - " 1.0\n", - "D = \n", - " 0.0\n", - "\n", - "Continuous-time state-space model" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "ss1 = ss(tf([1], [1, 1]))" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### TestFreqResp" - ] - }, - { - "cell_type": "code", - "execution_count": 21, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "1×1×10 Array{ComplexF64, 3}:\n", - "[:, :, 1] =\n", - " 0.9996375439798979 - 0.024995812946127068im\n", - "\n", - "[:, :, 2] =\n", - " 0.9971959288676081 - 0.06947384247065888im\n", - "\n", - "[:, :, 3] =\n", - " 0.9784258086709292 - 0.1916345960427577im\n", - "\n", - "[:, :, 4] =\n", - " 0.8407906760670428 - 0.4987123630856im\n", - "\n", - "[:, :, 5] =\n", - " 0.11248651027122411 - 0.8502796738335039im\n", - "\n", - "[:, :, 6] =\n", - " -0.47530358539375506 + 0.19610650928623855im\n", - "\n", - "[:, :, 7] =\n", - " -0.09481872294498477 - 0.18805963874096887im\n", - "\n", - "[:, :, 8] =\n", - " -0.033328025868165176 - 0.06963017462205673im\n", - "\n", - "[:, :, 9] =\n", - " 0.01265424121150209 + 0.02476963547555173im\n", - "\n", - "[:, :, 10] =\n", - " 0.007217967580181465 - 0.006920328388981937im" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "# test_siso_freq_resp\n", - "w = exp10.(LinRange(-2,2,10))\n", - "freqresp(delay_siso_tf, w)" - ] - }, - { - "cell_type": "code", - "execution_count": 22, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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", - "image/svg+xml": [ - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n" - ], - "text/html": [ - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "w = exp10.(LinRange(-2,2,100))\n", - "bodeplot(delay_siso_tf, w)" - ] - }, - { - "cell_type": "code", - "execution_count": 23, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "2×2×10 Array{ComplexF64, 3}:\n", - "[:, :, 1] =\n", - " 12.4313-2.20402im -17.9795+4.34262im\n", - " 6.45681-1.16541im -18.9152+3.30571im\n", - "\n", - "[:, :, 2] =\n", - " 10.3867-5.1827im -13.3537+9.37895im\n", - " 5.57492-2.9683im -16.0995+8.06846im\n", - "\n", - "[:, :, 3] =\n", - " 4.29712-6.54633im -3.10627+9.40135im\n", - " 1.62412-4.7752im -6.19676+11.3748im\n", - "\n", - "[:, :, 4] =\n", - " 0.190665-3.42239im 1.69596+3.70969im\n", - " -2.31095-1.16016im 1.954+5.6218im\n", - "\n", - "[:, :, 5] =\n", - " -0.609851-1.11652im 1.48013-0.221262im\n", - " 0.783909+0.618326im 2.2183-0.250236im\n", - "\n", - "[:, :, 6] =\n", - " -0.458323+0.0281868im -0.520719+0.140405im\n", - " 0.293676-0.212413im -0.781793+0.199879im\n", - "\n", - "[:, :, 7] =\n", - " 0.164539+0.0138042im 0.189103+0.0428153im\n", - " -0.113486-0.0642809im 0.282749+0.0654171im\n", - "\n", - "[:, :, 8] =\n", - " -0.0200415-0.0558575im 0.0602249+0.035053im\n", - " -0.0303737+0.0357106im 0.090062+0.0526232im\n", - "\n", - "[:, :, 9] =\n", - " 0.0209361+0.0040665im 0.0210585+0.0135532im\n", - " -0.00395567-0.0163775im 0.0315105+0.0203071im\n", - "\n", - "[:, :, 10] =\n", - " 0.00388508-0.00660706im -0.00899771-0.000203154im\n", - " -0.00329842+0.00507779im -0.0134687-0.000307044im" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "# testmimo_freq_resp\n", - "w = exp10.(LinRange(-2,2,10))\n", - "freqresp(wood_berry, w)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### TestTimeResp" - ] - }, - { - "cell_type": "code", - "execution_count": 32, - "metadata": {}, - "outputs": [ - { - "ename": "ErrorException", - "evalue": "type DelayLtiSystem has no field nu1", - "output_type": "error", - "traceback": [ - "type DelayLtiSystem has no field nu1\n", - "\n", - "Stacktrace:\n", - " [1] getproperty(sys::DelayLtiSystem{Float64, Float64}, s::Symbol)\n", - " @ ControlSystemsBase ~/.julia/packages/ControlSystemsBase/ua2Cx/src/types/Lti.jl:94\n", - " [2] lsim(sys::DelayLtiSystem{Float64, Float64}, u::Vector{Float64}, t::StepRange{Int64, Int64}; x0::Vector{Float64}, alg::DelayDiffEq.MethodOfSteps{OrdinaryDiffEqTsit5.Tsit5{typeof(OrdinaryDiffEqCore.trivial_limiter!), typeof(OrdinaryDiffEqCore.trivial_limiter!), Static.False}, OrdinaryDiffEqNonlinearSolve.NLFunctional{Rational{Int64}, Rational{Int64}}, false}, abstol::Float64, reltol::Float64, force_dtmin::Bool, kwargs::@Kwargs{})\n", - " @ ControlSystems ~/.julia/packages/ControlSystems/RyPse/src/timeresp.jl:92\n", - " [3] lsim(sys::DelayLtiSystem{Float64, Float64}, u::Vector{Float64}, t::StepRange{Int64, Int64})\n", - " @ ControlSystems ~/.julia/packages/ControlSystems/RyPse/src/timeresp.jl:84\n", - " [4] top-level scope\n", - " @ ~/Documents/Code-perso/python-control/control/tests/jl_notebook_cell_df34fa98e69747e1a8f8a730347b8e2f_X41sZmlsZQ==.jl:3" - ] - } - ], - "source": [ - "t = 0:10:100\n", - "u = ones(100)\n", - "y, t, x, uout = lsim(delay_siso_tf,u,t)" - ] - }, - { - "cell_type": "code", - "execution_count": 49, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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YcNw25p7dOTIEeeNScPDw3v37n17n+rq6gMHDojF4okTJ2LA75HRaDx69GjjloSEhCYXRRcUFNy8edO5OGLECB6P56Z8vqW8vPz69evx8fGNb/BuMpn279/f0NAwduzYyMjIZlc8derU1atXk5OT23rbIl+7anTNmjWLFy+ePn16RkbG6NGjv/766yYd8vPzhw4dOmbMGJVKVVJScvz4calUykhU31BcXNyrV68hQ4ZERkbu27fvoYce+vLLL5v0+eCDD7755psePXo4Fjds2BAaGur2pD4lNDQ0Pj7e8TVuxIgRt09Pf/ny5bS0tMmTJ5eVldXV1R09ehTf+e5FVVXVo48+6nhst9vT09O3bds2c+bMxn3++c9/rlmzJj4+3rG4bds2/G9ph6FDh168eNFuty9fvvzpp592NBqNxpEjR/L5/K5du+7atevAgQP9+vVrsuI//vGPdevWTZw4cffu3a+99tprr73Whlft2KlLmWWxWBQKxf79+2marqqqEovFeXl5Tfo89dRTixYtomnabrePGTPms88+YyCoD9FqtRUVFY7HN27coCiqoKCgSZ/333//ueeec3s0XxYSEnL9+vU7dJgzZ87ixYtpmrbZbKmpqStXrnRXNN934MCB4OBgo9HYpP0f//jHX/7yF0Yi+ZKbN29ardZhw4Y1/tCuW7euX79+FouFpuklS5Y8+OCDTdaqqqoSCoWOf/jnz58PDAzUaDStf1GfOkeYlZWl1+vHjh1LCAkLCxs2bNiePXua9Nm1a5fjexxFUTNnzty9ezcDQX2IWCyOiIhwPA4NDWWz2Waz+fZutbW1+/bty87Opn3rCASDzp07d/Dgwerq6maf3b17t+NzzmKxpk+fjs95B1q1atWjjz7K5/Nvf6qqqmrfvn2XL192fyqfERcXx2azmzTu3r37wQcf5HA4hJCHHnpo7969dru9cYcDBw4kJiY6bnzbt2/f0NDQNt2SzKcKYVlZmUKhYLFuvamoqKjy8vLGHSwWS01NTXR0tLNDWVmZu1P6rg8//HDw4MEJCQlN2lksVlFR0TfffDNp0qS0tDSNRsNIPF8il8vXrVv3/vvvd+3adeXKlU2ebWho0Gq1+Jy7Qn19/Y4dOxYsWHD7UywW68aNG9988824cePGjh2r1+vdns5nlZWVOc8XRkVFmc3mmpqaJh2cH3jS9s+8TxVCm81GUZRzkc1mW63Wxh3sdjtN084+t3eAdlu/fv26devWrVvX+E/g8Le//e306dM7d+7Mz883mUzLli1jJKEvuXr16t69ew8fPvzLL7+8/PLLlZWVjZ+12WyEEHzOXWH9+vVJSUnNXhT29ttvnzx5cufOnQUFBSqV6t///rf74/kqm83m3MNx7C82+Ug3+efP4XDa9Jn3qUIYGRnZ+GtCVVVVk4uL+Hy+TCZz9qmqqlIoFG6N6KO2bt26ePHi/fv3d+7c+fZnnQc6hELh9OnTz58/7950Psg5pGPGjJFKpVevXm38rEwmEwgE+Jy7wurVq5988slmn3L+UUQi0dSpU/E570CRkZHOswBVVVVsNjs8PLylDqTtn3mfKoT9+vUzmUyOz5/BYMjMzBw1ahQhxGw219fXO/qMGjVq//79jse//fZbWloaQ2F9x88//7xo0aLdu3f37NnT2Wi1WlUq1e2dz507h5m4O1BRUZFSqXQMqclkamhoIIRQFDVy5Eh8zjvcuXPncnJy5syZ42yxWCx1dXXN9sTnvAOlpaU1/jwPGzbMcb6woaHBaDQSQkaMGHH+/HmlUkkIKSkpKSgoGDJkSOu372s/n3jnnXc2btz43HPP7d69m8fj7d27lxCycePGN998s7CwkBBy+vTpcePGvf7663V1dT/++OOFCxfwZfle3LhxIzExceDAgUlJSY6Wl156qVevXocPH548ebLBYCCETJ8+PSEhITg4+Pjx45mZmadPn+7SpQujqb3boUOHvvnmm/79+5tMptWrV48bN27VqlWEkO+++2758uWOKzUyMjIefPDBN954o7S0dMeOHRcvXgwJCWE6uNdbtGiRWq1ev369s2Xfvn1z58511MIpU6b06dMnKCjI8SE/e/YsamE7fPvtt+fOndu5c2d8fHyPHj0WLVrUp0+f+vr6Pn36jB8/vnv37h999NHGjRsnTJhACElJSXn88cdfeuklQshjjz2Wn58/Z86ctWvXDhs27Isvvmj9i7KXLFniovfDiLS0tOjo6OvXrw8bNuzDDz90fGsQiUQ9e/bs1asXISQqKmrKlClXr16VSqVfffVV4/Or0A42m61z587JycmK/+nVq5dUKhUIBAkJCY7f+igUiurq6oaGhgEDBqxYsQLfPO6RXC632+1VVVU8Hu/55593/l5KIpEkJSU59svj4uLGjx9/+fLl0NDQr776qslxJGgfrVY7e/bs4OBgZ4tQKOzRo0dycjIhJCIiorq6WqPRDBw48Ntvvw0LC2MuqRerq6sTCoWjRo3q06ePQqFISkoKCgoSCARz584tKyvTaDT/+te/RowY4egcFhaWkpLiGOqpU6cKBIKbN2/OnDnz9ddfv/1ihTvwtT1CAACANvGpc4QAAABthUIIAAB+DYUQAAD8GgohAAD4NRRCAADwayiEAADg11AIATyFVqtdu3ZtUVGR217x5s2brbkxxYEDB3JyctyQB4ARKIQAbpKXl9elZcOHD6+url6wYMHp06fdFunxxx/PyMi4a7czFmyuIAAABLxJREFUZ87MmDEDM3eDr8IP6gHcpLa2dsWKFc7F9957Lz4+fvbs2Y7FoKCgRx999Msvv5w5c2ZiYqIb8vzyyy+zZ88uKSm56xwojps6ffrppwsXLnRDMAA3QyEEYIZEIpk8efKWLVvu2tNut9fW1spkMi6X62ixWq0NDQ2N5/pqrKamhsVitfSs09ixYwMDA3/66afGjTRNV1dXi8ViiUTSuP2pp546c+bMxYsX75oWwOvg0CiApyguLo6MjHSetFu4cOHIkSO3b98eExMTHh4ul8u//vprmqbfeecdmUwWEhISFxd3/PjxxltYtWpVXFxcWFhYSEhIYmLiwYMHW3qt0tLS9PT06dOnO1tMJtOzzz4rEokiIiICAgIiIiIazy49c+bM7OxsFELwSSiEAJ7CarVWVlY6btlBCNHpdJcuXfrnP//51VdfnTx5csKECS+++OIzzzxz4sSJHTt2HD58ODAwcO7cuRaLxdH/iy++ePrppx9++OEzZ86cOnUqKSlpypQp2dnZzb5Weno6TdONb1Xz/vvvb9y48fvvv8/Nzb1w4cKHH37I5/Odz6amplIUlZ6e7rJ3D8AcGgCYIBaLH3744cYtBQUFhJAtW7Y4FmfPns1isa5cueJYVCqVLBYrJibGYDA4Wnbt2kUIOXXqFE3TWq1WKpU+/fTTzq2ZzeZu3bo9+eSTzb76X//6Vw6HY7fbnS2TJk2aOHHiHQKHh4c//vjjbX2bAJ6Pw3QhBoAWxcTEOG93LJfLQ0JCRowYIRAIHC3x8fGEkJKSkkGDBp06daqhoSE2Nrbx4dC4uDjH7QlvV1NTI5PJGt+qpl+/fh9//PHzzz8/e/bsIUOG8Hi8JqvI5XLnXe8BfAkKIYDnkslkjRd5PF7jFketMpvNhJCqqipCyLJly9hsduNVoqKimt0yh8Np8nOIt99+22KxrFu3bsWKFQEBATNmzPjoo48a38jQYrE4r9YB8CU4RwjgC6RSKSFk8+bNqj+7dOlSs/3Dw8MbGhoa10KhUPjxxx+Xl5dfuHBh8eLF27dvnz9/fuNVVCoVbvALPgmFEMAX3HfffXw+f+vWra3sP3DgQLvdfuXKlSbtLBYrOTn573//+4IFC06ePOlsLy0tValUgwYN6rDEAB4DhRDAFwQHB7/xxhurV69+8803b968aTAYcnNzv/766++++67Z/iNHjuTxeMeOHXO2/O1vf9uxY0dFRYXNZsvOzj5w4EBKSorz2WPHjlEUNWbMGJe/EwC3QyEE8BHvvPPOBx98sGLFii5duohEooSEhKVLl4pEomY7y2Sy6dOnb9682dlSXl4+a9YshULB4XCSk5MjIiJWr17tfHbTpk1jxoyJi4tz9bsAcD/MLAPADLvdTlFU4+s2CSE2m63J1S5tZbVar127ZjAYoqKiFApFk+03durUqSFDhly5cqVHjx6OFr1eX1hYqNPpYmJiIiIinD3Ly8s7d+78888/T548+V6yAXgmFEIA//XII48QQjZu3Hjnbi+99NLVq1cPHTrkllAA7oZCCOC/dDpdTU3NXQ94lpSUSKXSwMBAt4QCcDcUQgAA8Gu4WAYAAPwaCiEAAPg1FEIAAPBrKIQAAODX/j+0QnF65iE2tAAAAABJRU5ErkJggg==", - "image/svg+xml": [ - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n" - ], - "text/html": [ - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "res1 = step(delay_siso_tf, 0:0.1:10)\n", - "res2 = step(delay_siso_tf, 0:1:10)\n", - "res3 = step(delay_siso_tf, 0:0.01:10)\n", - "res.y\n", - "plot!(res)\n", - "plot!(res2)" - ] - }, - { - "cell_type": "code", - "execution_count": 54, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[0.0 0.0 0.3934701171707952 0.7768701219836066 0.917915094373695 0.9698026491618251 0.9888910143620181 0.9959132295791787 0.9984965605514581 0.9994469148973136 0.9997965302422651]" - ] - } - ], - "source": [ - "show(res2.y)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Julia 1.11.3", - "language": "julia", - "name": "julia-1.11" - }, - "language_info": { - "file_extension": ".jl", - "mimetype": "application/julia", - "name": "julia", - "version": "1.11.3" - } - }, - "nbformat": 4, - "nbformat_minor": 2 -} From 53641f4d5b1968cd79eeeec67c3f27dbceb8932e Mon Sep 17 00:00:00 2001 From: MythasNauveili Date: Thu, 1 May 2025 09:42:43 +0200 Subject: [PATCH 10/16] methods of steps implemented, 1E-5 accuracy against julia for first tests. TODO: clean dde file, test functions in it, and reloacate dde response tests. More tests also like mimo force response are needed --- control/dde.py | 209 +- control/delaylti.py | 8 +- control/julia/README.md | 12 + .../julia_test.jl => julia/compute_tests.jl} | 113 +- control/julia/julia_results.json | 44141 ++++++++++++++++ control/julia/test.ipynb | 119 + control/{julia_utils.py => julia/utils.py} | 47 +- control/tests/dde_test.py | 9 + control/tests/delay_lti_test.py | 74 +- control/tests/julia_results.json | 4125 -- control/timeresp.py | 25 +- 11 files changed, 44700 insertions(+), 4182 deletions(-) create mode 100644 control/julia/README.md rename control/{tests/julia_test.jl => julia/compute_tests.jl} (64%) create mode 100644 control/julia/julia_results.json create mode 100644 control/julia/test.ipynb rename control/{julia_utils.py => julia/utils.py} (53%) create mode 100644 control/tests/dde_test.py delete mode 100644 control/tests/julia_results.json diff --git a/control/dde.py b/control/dde.py index 2513a413c..300dc20d3 100644 --- a/control/dde.py +++ b/control/dde.py @@ -1,7 +1,7 @@ import numpy as np -from scipy.integrate import LSODA - +from scipy.integrate import LSODA, solve_ivp +from scipy.interpolate import PchipInterpolator def dde_response(delay_sys, T, U=0, X0=0, params=None, transpose=False, return_x=False, squeeze=None, @@ -91,7 +91,7 @@ def dde_response(delay_sys, T, U=0, X0=0, params=None, U = _check_convert_array(U, legal_shapes, 'Parameter `U`: ', squeeze=False, transpose=transpose) - + print("U shape: ", U.shape) xout = np.zeros((n_states, n_steps)) xout[:, 0] = X0 yout = np.zeros((n_outputs, n_steps)) @@ -100,8 +100,18 @@ def dde_response(delay_sys, T, U=0, X0=0, params=None, # Solver here depending on the method if method == 'LSODA': xout, yout = Skogestad_Python_LSODA(delay_sys, dt, T, U, X0, xout, yout) + elif method == 'mos': + B2C2 = B2 @ C2 + B2D21 = B2 @ D21 + D12C2 = D12 @ C2 + D12D21 = D12 @ D21 + system_params = A, B2C2, B1, B2D21, tau, C1, D11, D12C2, D12D21 + u_func = pchip_interp_u(T, U) + xout, yout = solve_dde_mos(delay_sys, T, U, X0, dt) else: xout, yout = Skogestad_Python_solver(delay_sys, dt, T, U, X0, xout, yout) + + return TimeResponseData( tout, yout, xout, U, @@ -210,7 +220,7 @@ def Skogestad_Python_LSODA(delay_sys, dt, T, U, X0, xout, yout): Array containing the output vector at each time step. """ - + print("LSODA solver") dtss = [int(np.round(delay / dt)) for delay in delay_sys.tau] zs = [] @@ -224,7 +234,7 @@ def f(t, x): while solver.status == "running": t = ts[-1] x = xs[-1] - y = delay_sys.P.C1 @ np.array(x) + delay_sys.P.D11 @ linear_interp_u(t, T, U) + delay_sys.P.D12 @ wf(zs, dtss) + #y = delay_sys.P.C1 @ np.array(x) + delay_sys.P.D11 @ linear_interp_u(t, T, U) + delay_sys.P.D12 @ wf(zs, dtss) z = delay_sys.P.C2 @ np.array(x) + delay_sys.P.D21 @ linear_interp_u(t, T, U) + delay_sys.P.D22 @ wf(zs, dtss) zs.append(list(z)) @@ -244,10 +254,19 @@ def f(t, x): return xout, yout +def pchip_interp_u(T, U): + def negative_wrapper(interp): + return lambda t: interp(t) if t >= T[0] else 0 + + if np.ndim(U) == 1: + return np.array([negative_wrapper(PchipInterpolator(T, U))]) + elif np.ndim(U) == 0: + print("U is a scalar !") + return U + else: + return np.array([negative_wrapper(PchipInterpolator(T, ui)) for ui in U]) + -def dde23_solver(delay_sys, dt, T, U, X0, xout, yout): - # Plans for implementing a python version matlab dde23 solver - raise NotImplementedError def linear_interp_u(t, T, U): @@ -305,4 +324,176 @@ def wf(zs, dtss): ws.append(zs[-1][i]) else: ws.append(zs[-dts][i]) - return np.array(ws) \ No newline at end of file + return np.array(ws) + + + + + + + +#### Implementation of Methods of Steps, TO TEST #### +from scipy.integrate import OdeSolution +from typing import Callable, List + +class DdeHistory: + """ + Stores the computed solution history for a DDE and provides a callable + interface to retrieve the state x(t) at any requested past time t. + + Handles three regimes: + 1. t <= t0: Uses the provided initial history function. + 2. t0 < t <= t_last_computed: Interpolates using dense output from solve_ivp segments. + 3. t > t_last_computed: Performs constant extrapolation using the last computed state. + """ + + def __init__(self, initial_history_func, t0): + self.initial_history_func = initial_history_func + self.t0: float = t0 + self.segments: List[OdeSolution] = [] # Stores OdeResult objects from solve_ivp + self.last_valid_time: float = t0 + + initial_state = np.asarray(initial_history_func(t0)) + self.last_state = initial_state + + def add_segment(self, segment: OdeSolution): + """ + Adds a new computed solution segment (from solve_ivp) to the history. + """ + + self.segments.append(segment) + self.last_valid_time = segment.t[-1] + self.last_state = segment.y[:, -1] + + def __call__(self, t): + if t <= self.t0: + return np.asarray(self.initial_history_func(self.t0)) + elif t > self.last_valid_time: + return self.last_state + else: + for segment in self.segments: + if segment.t[0] <= t <= segment.t[-1]: + return segment.sol(t) + return np.zeros_like(self.last_state) # Deal with first call + + +def dde_wrapper_mos(t, x, A, B1, B2, C2, D21, tau_list, u_func, history_x): + """ + Wrapper function for DDE solver using scipy's solve_ivp. + + y is the current state vector. + history is an object of History class that contains the history of the system. + A is the system matrix. + B1 is the input matrix. + B2 is the delayed system matrix. + + dx/dt = A @ x + B1 @ u(t) + B2 @ z(t - tau) + """ + #print(t) + z_delayed = [] + for i,tau in enumerate(tau_list): + u_delayed = np.array([u_func[i](t - tau) for i in range(len(u_func))]) + z = C2 @ history_x(t - tau) + D21 @ u_delayed + z_delayed.append(z[i]) + z_delayed = np.array(z_delayed).flatten() + + u_current = np.array([u_func[i](t) for i in range(len(u_func))]) + dxdt = A @ x + B1 @ u_current + B2 @ z_delayed + return dxdt.flatten() + + +def solve_dde_mos(delay_sys, T, U, X0, dt): + """ + Method using MOS solver. + + Parameters + ---------- + delay_sys : DelayLTI + Delay I/O system for which forced response is computed. + T : array_like + An array representing the time points where the input is specified. + The time points must be uniformly spaced. + U : array_like or float, optional + Input array giving input at each time in `T`. + X0 : array_like or float, default=0. + Initial condition. + xout : array_like + Array to store the state vector at each time step. + yout : array_like + Array to store the output vector at each time step. + + Returns + ------- + xout : array_like + Array containing the state vector at each time step. + yout : array_like + Array containing the output vector at each time step. + + """ + intial_history_func = lambda t: np.zeros(X0.shape) + t0, tf = T[0], T[-1] + u_func = pchip_interp_u(T, U) + + history_x = DdeHistory(intial_history_func, t0) # to access x(t-tau) + current_t = 0 + current_x = np.asarray(X0).flatten() + + A, B1, B2, C1, C2 = delay_sys.P.A, delay_sys.P.B1, delay_sys.P.B2, delay_sys.P.C1, delay_sys.P.C2 + D11, D12, D21, D22 = delay_sys.P.D11, delay_sys.P.D12, delay_sys.P.D21, delay_sys.P.D22 + tau_list = delay_sys.tau + + solution_ts = [current_t] + solution_xs = [current_x] + + # TODO: handle discontinuity propagation + discontinuity_times = set(tau_list) + print("discontinuity times:", discontinuity_times) + while current_t < tf: + t_stop = min(discontinuity_times) if discontinuity_times else tf + if not np.isclose(t_stop, tf): + discontinuity_times.remove(t_stop) + local_t_eval = [t for t in T if current_t < t <= t_stop] + + print("Integrate bewtween ", current_t, " and ", t_stop) + sol_segment = solve_ivp( + fun = dde_wrapper_mos, + t_span=(current_t, t_stop), + t_eval=local_t_eval, + y0=current_x, + method='LSODA', + dense_output=True, + args=(A, B1, B2, C2, D21, tau_list, u_func, history_x), + max_step=dt, + ) + + # --- Update History and Store Results --- + history_x.add_segment(sol_segment) + print(history_x) + segment_ts = sol_segment.t + segment_xs = sol_segment.y + + solution_ts.extend(segment_ts) + new_x = [segment_xs[:, i] for i in range(segment_xs.shape[1])] + solution_xs.extend(new_x) + + current_t = sol_segment.t[-1] + current_x = segment_xs[:, -1] + + solution_xs = np.array(solution_xs) + solution_ts = np.array(solution_ts) + + z_delayed = [] + u_current = [] + for i, ti in enumerate(solution_ts): + z_delayed.append([]) + for j,tau in enumerate(tau_list): + z = C2 @ history_x(ti - tau) + D21 @ np.array([u_func[i](ti - tau) for i in range(len(u_func))]) + z_delayed[i].append(z[j]) + u_current.append([u_func[i](ti) for i in range(len(u_func))]) + + z_delayed = np.array(z_delayed) + u_current = np.array(u_current) + + + solution_ys = C1 @ solution_xs.T + D11 @ u_current.T + D12 @ z_delayed.T + return solution_xs.T, solution_ys \ No newline at end of file diff --git a/control/delaylti.py b/control/delaylti.py index 9ce4b37d3..da78b7db7 100644 --- a/control/delaylti.py +++ b/control/delaylti.py @@ -111,7 +111,6 @@ def __init__(self, P: PartitionedStateSpace, tau = None, **kwargs): self.nu = self.P.sys.ninputs - len(self.tau) self.ny = self.P.sys.noutputs - len(self.tau) - super().__init__(self.nu, self.ny, self.P.sys.nstates) @classmethod @@ -270,10 +269,13 @@ def __mul__(self, other): else: raise TypeError("Unsupported operand type(s) for *: '{}' and '{}'".format(type(self), type(other))) - def __rmul__(self, other): + """ + Right multiply a DelayLTI system with a scalar, TransferFunction, StateSpace. + Note that this function does not call __mul__ for scalar multiplication. + """ if isinstance(other, (int, float, complex)): - new_C = np.hstack([self.P.C1 * other, self.P.C2]) + new_C = np.vstack([self.P.C1 * other, self.P.C2]) new_D = np.block([[self.P.D11 * other, self.P.D12 * other], [self.P.D21, self.P.D22]]) new_P = PartitionedStateSpace(ss(self.P.A, self.P.B, new_C, new_D), self.P.nu1, self.P.ny1) diff --git a/control/julia/README.md b/control/julia/README.md new file mode 100644 index 000000000..9d069884a --- /dev/null +++ b/control/julia/README.md @@ -0,0 +1,12 @@ +# Use of Julia for time delay implementation + +The implementation of continuous time delays was done by porting some functionalities of ControlSystems.jl to python. So it seemed natural to compare results from python to this library. + +The ``compute_tests.jl`` file follows the structure of the ``delay_lti_test.py`` file to produce results and plots about delay systems. Theses results are then exported to json format, and compared to python-control pure delays implementation, as a way to benchmark it. + +In order to run the ``compute_tests.jl`` file, the user should install: +- the julia REPL from https://julialang.org/downloads/ +- the ControlSystems.jl package from https://github.com/JuliaControl/ControlSystems.jl +- the JSON.jl package from https://github.com/JuliaIO/JSON.jl + +The ``utils.py`` file contains helper functions to deserialize data from json to python. \ No newline at end of file diff --git a/control/tests/julia_test.jl b/control/julia/compute_tests.jl similarity index 64% rename from control/tests/julia_test.jl rename to control/julia/compute_tests.jl index 178d771e1..133eebc40 100644 --- a/control/tests/julia_test.jl +++ b/control/julia/compute_tests.jl @@ -1,17 +1,4 @@ -""" -This file is using ControlSystems.jl library to produce results and plots about delay systems. -Theses results are then exported to json format, and compared to python-control pure delays implementation, -as a way to benchmark it. The script and the json follows the test progression of the delay_lti_test.py file. - -In order to run this notebook, the user should install julia and the ControlSystems.jl library: -- https://julialang.org/downloads/ -- https://github.com/JuliaControl/ControlSystems.jl -- https://github.com/JuliaIO/JSON.jl -- https://github.com/JuliaPlots/Plots.jl -""" - using ControlSystems -using Plots using JSON # ------------------ @@ -34,6 +21,16 @@ wood_berry = [12.8/(16.7s+1)*exp(-s) -18.9/(21s+1)*exp(-3s); 6.6/(10.9s+1)*exp( function dlti2dict(dlti) + """ + Convert a DelayLtiSystem to a dictionary for JSON serialization. + + Args: + dlti: The DelayLtiSystem to convert. + + Returns: + A dictionary representation of the DelayLtiSystem. + """ + return Dict( "A" => Dict( "data" => dlti.P.A, @@ -60,37 +57,97 @@ end function test_tf2dlti(tf) + """ + Convert a TransferFunction to a DelayLtiSystem and then to a dictionary. + + Args: + tf: The TransferFunction to convert. + + Returns: + A dictionary representation of the DelayLtiSystem. + """ + dlti = DelayLtiSystem(tf) return dlti2dict(dlti) end function test_delay_function(tau) + """ + Convert a delay to a DelayLtiSystem and then to a dictionary. + + Args: + tau: The delay to convert. + + Returns: + A dictionary representation of the DelayLtiSystem. + """ + dlti = delay(tau) return dlti2dict(dlti) end function test_exp_delay(tau) + """ + Convert an exponential delay to a DelayLtiSystem and then to a dictionary. + + Args: + tau: The delay to convert. + + Returns: + A dictionary representation of the DelayLtiSystem. + """ + dlti = exp(-tau * s) return dlti2dict(dlti) end function complex_array_to_dict(arr) + """ + Convert a complex array to a dictionary for JSON serialization. + + Args: + arr: The complex array to convert. + + Returns: + A dictionary representation of the complex array. + """ + return Dict( "real" => real(arr), "imag" => imag(arr) ) end -function test_siso_freq_resp(tf) - w = exp10.(LinRange(-2,2,100)) +function test_siso_freq_resp(tf, w) + """ + Convert a SISO frequency response to a dictionary for JSON serialization. + + Args: + tf: The TransferFunction to convert. + w: The frequency vector. + + Returns: + A dictionary representation of the frequency response. + """ + arr = collect(Iterators.Flatten(freqresp(tf, w))) return complex_array_to_dict(arr) end -function test_tito_freq_response(tf) - w = exp10.(LinRange(-2,2,100)) +function test_tito_freq_response(tf, w) + """ + Convert a TITO frequency response to a dictionary for JSON serialization. + + Args: + tf: The TransferFunction to convert. + w: The frequency vector. + + Returns: + A dictionary representation of the frequency response. + """ + resp = freqresp(tf, w) resp_11 = resp[1, 1, :] resp_12 = resp[1, 2, :] @@ -105,7 +162,14 @@ function test_tito_freq_response(tf) ) end +function test_step_response(tf, t) + return step(tf, t).y +end + function main() + """ + Main function to compute and export test results. + """ results_TestConstructors = Dict( "test_tf2dlti" => Dict( @@ -148,15 +212,25 @@ function main() ), "test_mimo_feedback" => dlti2dict(feedback(wood_berry, wood_berry)), - "test_siso_freq_resp" => test_siso_freq_resp(delay_siso_tf), - "test_tito_freq_response" => test_tito_freq_response(wood_berry), + "test_siso_freq_resp" => test_siso_freq_resp(delay_siso_tf, exp10.(LinRange(-2,2,100))), + "test_tito_freq_response" => test_tito_freq_response(wood_berry, exp10.(LinRange(-2,2,100))), ) + results_TestTimeResp = Dict( + "test_mimo_step_response" => Dict( + "y11" => test_step_response(wood_berry, 0:0.01:100)[1, :, 1], + "y12" => test_step_response(wood_berry, 0:0.01:100)[1, :, 2], + "y21" => test_step_response(wood_berry, 0:0.01:100)[2, :, 1], + "y22" => test_step_response(wood_berry, 0:0.01:100)[2, :, 2] + ) + ) + results = Dict( "TestConstructors" => results_TestConstructors, "TestOperators" => results_TestOperators, "TestDelayLtiMethods" => results_TestDelayLtiMethods, + "TestTimeResp" => results_TestTimeResp, ) script_dir = @__DIR__ @@ -168,4 +242,5 @@ function main() println("Expected results exported to julia_results.json") end +# Run the main function main() \ No newline at end of file diff --git a/control/julia/julia_results.json b/control/julia/julia_results.json new file mode 100644 index 000000000..b4ae294d9 --- /dev/null +++ b/control/julia/julia_results.json @@ -0,0 +1,44141 @@ +{ + "TestTimeResp": { + "test_mimo_step_response": { + "y12": [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + -3.995661779810511e-6, + -0.009001851242489535, + -0.017995423150069044, + -0.026984713423875872, + -0.035969724102299365, + -0.04495045722275572, + -0.05392691482169369, + -0.06289909893458989, + -0.07186701159595495, + -0.08083065483932703, + -0.08979003069728002, + -0.09874514120141754, + -0.10769598838237765, + -0.11664257426983006, + -0.1255849008924801, + -0.13452297027806512, + -0.14345678445335966, + -0.15238634544417048, + -0.1613116552753428, + -0.1702327159707551, + -0.17914952955332494, + -0.18806209804500437, + -0.19697042346678517, + -0.2058745078386945, + -0.2147743531798006, + -0.22366996150820756, + -0.23256133484106112, + -0.24144847519454574, + -0.25033138458388565, + -0.259210065023347, + -0.2680845185262344, + -0.2769547471048971, + -0.28582075277072366, + -0.29468253753414747, + -0.3035401034046423, + -0.31239345239072797, + -0.3212425864999651, + -0.3300875077389613, + -0.33892821811336676, + -0.34776471962787864, + -0.3565970142862379, + -0.36542510409123374, + -0.374248991044699, + -0.3830686771475166, + -0.3918841643996141, + -0.4006954547999695, + -0.4095025503466066, + -0.418305453036601, + -0.42710416486607355, + -0.43589868783019897, + -0.44468902392319865, + -0.4534751751383472, + -0.4622571434679689, + -0.4710349309034398, + -0.4798085394351881, + -0.48857797105269396, + -0.4973432277444908, + -0.506104311498165, + -0.5148612243003577, + -0.5236139681367623, + -0.5323625449921291, + -0.5411069568502613, + -0.5498472056940199, + -0.5585832935053198, + -0.567315222265134, + -0.5760429939534911, + -0.5847666105494786, + -0.5934860740312399, + -0.6022013863759784, + -0.6109125495599547, + -0.6196195655584903, + -0.628322436345964, + -0.6370211638958172, + -0.6457157501805494, + -0.6544061971717233, + -0.6630925068399607, + -0.671774681154947, + -0.6804527220854293, + -0.6891266315992172, + -0.6977964116631836, + -0.7064620642432651, + -0.7151235913044625, + -0.7237809948108405, + -0.73243427672553, + -0.7410834390107255, + -0.7497284836276892, + -0.7583694125367478, + -0.7670062276972966, + -0.7756389310677964, + -0.7842675246057769, + -0.7928920102678345, + -0.801512390009636, + -0.810128665785915, + -0.8187408395504767, + -0.8273489132561936, + -0.8359528888550114, + -0.8445527682979436, + -0.8531485535350775, + -0.8617402465155696, + -0.870327849187651, + -0.8789113634986225, + -0.8874907913948603, + -0.8960661348218125, + -0.9046373957240027, + -0.9132045760450251, + -0.9217676777275527, + -0.9303267027133313, + -0.9388816529431844, + -0.9474325303570076, + -0.9559793368937768, + -0.964522074491543, + -0.9730607450874365, + -0.9815953506176612, + -0.9901258930175033, + -0.998652374221326, + -1.0071747961625728, + -1.015693160773764, + -1.0242074699865023, + -1.0327177257314697, + -1.0412239299384314, + -1.0497260845362293, + -1.0582241914527903, + -1.0667182526151233, + -1.0752082699493206, + -1.083694245380554, + -1.0921761808330814, + -1.100654078230245, + -1.10912793949447, + -1.1175977665472685, + -1.1260635613092336, + -1.134525325700048, + -1.1429830616384793, + -1.1514367710423825, + -1.159886455828696, + -1.16833211791345, + -1.17677375921176, + -1.1852113816378318, + -1.1936449871049561, + -1.2020745775255166, + -1.2105001548109846, + -1.2189217208719234, + -1.227339277617983, + -1.235752826957907, + -1.2441623707995302, + -1.2525679110497796, + -1.260969449614672, + -1.2693669883993177, + -1.2777605293079222, + -1.2861500742437828, + -1.2945356251092894, + -1.3029171838059275, + -1.311294752234278, + -1.3196683322940161, + -1.3280379258839141, + -1.336403534901837, + -1.344765161244749, + -1.3531228068087109, + -1.3614764734888816, + -1.3698261631795141, + -1.3781718777739635, + -1.3865136191646819, + -1.3948513892432217, + -1.4031851899002319, + -1.4115150230254643, + -1.4198408905077697, + -1.4281627942351012, + -1.43648073609451, + -1.444794717972151, + -1.4531047417532814, + -1.4614108093222615, + -1.4697129225625516, + -1.478011083356717, + -1.4863052935864278, + -1.4945955551324583, + -1.5028818698746842, + -1.5111642396920892, + -1.5194426664627623, + -1.527717152063897, + -1.535987698371796, + -1.5442543072618635, + -1.552516980608616, + -1.5607757202856756, + -1.5690305281657726, + -1.5772814061207443, + -1.5855283560215387, + -1.5937713797382127, + -1.6020104791399339, + -1.6102456560949763, + -1.6184769124707286, + -1.6267042501336884, + -1.6349276709494664, + -1.6431471767827823, + -1.6513627694974697, + -1.6595744509564756, + -1.66778222302186, + -1.675986087554794, + -1.684186046415565, + -1.6923821014635745, + -1.7005742545573392, + -1.7087625075544886, + -1.7169468623117694, + -1.7251273206850457, + -1.7333038845292958, + -1.7414765556986174, + -1.7496453360462219, + -1.7578102274244414, + -1.7659712316847247, + -1.7741283506776417, + -1.7822815862528767, + -1.7904309402592369, + -1.7985764145446486, + -1.8067180109561591, + -1.8148557313399334, + -1.822989577541261, + -1.8311195514045506, + -1.8392456547733358, + -1.8473678894902679, + -1.8554862573971245, + -1.863600760334805, + -1.8717114001433348, + -1.8798181786618584, + -1.8879210977286491, + -1.8960201591811028, + -1.9041153648557436, + -1.9122067165882162, + -1.9202942162132954, + -1.9283778655648818, + -1.9364576664760016, + -1.9445336207788113, + -1.9526057303045903, + -1.9606739968837503, + -1.96873842234583, + -1.9767990085194989, + -1.984855757232552, + -1.9929086703119174, + -2.0009577495836526, + -2.0090029968729466, + -2.017044414004117, + -2.0250820028006147, + -2.033115765085023, + -2.041145702679057, + -2.049171817403563, + -2.0571941110785215, + -2.065212585523048, + -2.073227242555391, + -2.0812380839929316, + -2.0892451116521875, + -2.097248327348812, + -2.1052477328975936, + -2.1132433301124554, + -2.121235120806458, + -2.1292231067917995, + -2.137207289879814, + -2.1451876718809757, + -2.153164254604893, + -2.161137039860315, + -2.16910602945513, + -2.1770712251963666, + -2.1850326288901893, + -2.192990242341906, + -2.200944067355964, + -2.2088941057359537, + -2.2168403592846024, + -2.2247828298037824, + -2.2327215190945076, + -2.2406564289569357, + -2.2485875611903636, + -2.256514917593235, + -2.2644384999631364, + -2.2723583100968003, + -2.280274349790099, + -2.288186620838055, + -2.2960951250348325, + -2.3039998641737456, + -2.3119008400472496, + -2.3197980544469505, + -2.327691509163599, + -2.3355812059870944, + -2.343467146706485, + -2.3513493331099644, + -2.3592277669848767, + -2.367102450117715, + -2.3749733842941234, + -2.382840571298891, + -2.3907040129159634, + -2.398563710928432, + -2.406419667118543, + -2.4142718832676913, + -2.422120361156425, + -2.4299651025644433, + -2.437806109270602, + -2.445643383052904, + -2.453476925688511, + -2.4613067389537355, + -2.469132824624047, + -2.4769551844740656, + -2.4847738202775704, + -2.492588733807495, + -2.500399926835929, + -2.508207401134117, + -2.5160111584724616, + -2.523811200620522, + -2.531607529347016, + -2.53940014641982, + -2.5471890536059645, + -2.5549742526716424, + -2.562755745382206, + -2.5705335335021666, + -2.578307618795193, + -2.5860780030241175, + -2.5938446879509316, + -2.6016076753367905, + -2.6093669669420057, + -2.617122564526055, + -2.6248744698475774, + -2.6326226846643763, + -2.6403672107334137, + -2.6481080498108196, + -2.6558452036518854, + -2.6635786740110694, + -2.671308462641991, + -2.679034571297438, + -2.686757001729362, + -2.6944757556888828, + -2.7021908349262818, + -2.7099022411910116, + -2.7176099762316905, + -2.7253140417961044, + -2.7330144396312077, + -2.7407111714831203, + -2.7484042390971344, + -2.756093644217709, + -2.763779388588475, + -2.77146147395223, + -2.7791399020509435, + -2.786814674625756, + -2.79448579341698, + -2.8021532601640966, + -2.809817076605761, + -2.8174772444797997, + -2.8251337655232143, + -2.8327866414721745, + -2.8404358740620275, + -2.848081465027293, + -2.8557234161016676, + -2.863361729018016, + -2.870996405508384, + -2.8786274473039906, + -2.8862548561352326, + -2.893878633731678, + -2.901498781822076, + -2.909115302134352, + -2.916728196395607, + -2.9243374663321227, + -2.931943113669355, + -2.939545140131941, + -2.9471435474436967, + -2.9547383373276186, + -2.9623295115058785, + -2.9699170716998324, + -2.977501019630015, + -2.9850813570161447, + -2.992658085577116, + -3.000231207031009, + -3.0078007230950843, + -3.0153666354857878, + -3.022928945918743, + -3.0304876561087606, + -3.038042767769834, + -3.0455942826151414, + -3.0531422023570425, + -3.0606865287070852, + -3.0682272633760004, + -3.075764408073707, + -3.0832979645093066, + -3.090827934391088, + -3.0983543194265284, + -3.1058771213222904, + -3.1133963417842274, + -3.120911982517375, + -3.1284240452259606, + -3.135932531613401, + -3.1434374433823007, + -3.150938782234453, + -3.1584365498708413, + -3.165930747991641, + -3.1734213782962177, + -3.1809084424831244, + -3.1883919422501097, + -3.1958718792941117, + -3.203348255311263, + -3.2108210719968846, + -3.218290331045494, + -3.2257560341507996, + -3.2332181830057074, + -3.240676779302312, + -3.248131824731906, + -3.255583320984976, + -3.2630312697512047, + -3.2704756727194675, + -3.2779165315778385, + -3.285353848013587, + -3.2927876237131803, + -3.3002178603622814, + -3.3076445596457504, + -3.315067723247647, + -3.3224873528512284, + -3.3299034501389504, + -3.337316016792467, + -3.3447250544926326, + -3.352130564919501, + -3.359532549752327, + -3.366931010669565, + -3.37432594934887, + -3.381717367467099, + -3.389105266700312, + -3.3964896487237675, + -3.4038705152119295, + -3.4112478678384646, + -3.418621708276241, + -3.4259920381973314, + -3.4333588592730124, + -3.440722173173766, + -3.448081981569277, + -3.455438286128436, + -3.46279108851934, + -3.470140390409291, + -3.4774861934647965, + -3.4848284993515732, + -3.492167309734542, + -3.4995026262778324, + -3.5068344506447815, + -3.5141627844979353, + -3.521487629499046, + -3.528808987309077, + -3.5361268595882005, + -3.543441247995798, + -3.550752154190461, + -3.5580595798299903, + -3.5653635265714, + -3.5726639960709132, + -3.5799609899839653, + -3.5872545099652036, + -3.594544557668487, + -3.601831134746888, + -3.6091142428526917, + -3.6163938836373966, + -3.6236700587517143, + -3.6309427698455723, + -3.638212018568111, + -3.645477806567685, + -3.652740135491867, + -3.659999006987443, + -3.6672544227004162, + -3.674506384276004, + -3.6817548933586437, + -3.6889999515919873, + -3.6962415606189065, + -3.7034797220814877, + -3.7107144376210384, + -3.717945708878084, + -3.7251735374923682, + -3.7323979251028536, + -3.7396188733477245, + -3.7468363838643834, + -3.754050458289455, + -3.761261098258783, + -3.768468305407434, + -3.7756720813696942, + -3.7828724277790746, + -3.790069346268305, + -3.7972628384693405, + -3.804452906013359, + -3.8116395505307605, + -3.81882277365117, + -3.826002577003437, + -3.833178962215633, + -3.8403519309150584, + -3.8475214847282366, + -3.8546876252809144, + -3.8618503541980695, + -3.869009673103903, + -3.8761655836218423, + -3.883318087374543, + -3.890467185983889, + -3.8976128810709905, + -3.904755174256187, + -3.911894067159045, + -3.9190295613983626, + -3.926161658592165, + -3.9332903603577076, + -3.9404156683114766, + -3.9475375840691878, + -3.9546561092457884, + -3.9617712454554566, + -3.9688829943116017, + -3.9759913574268646, + -3.9830963364131198, + -3.9901979328814745, + -3.997296148442266, + -4.0043909847050685, + -4.011482443278688, + -4.018570525771165, + -4.0256552337897755, + -4.0327365689410275, + -4.039814532830667, + -4.046889127063675, + -4.053960353244266, + -4.061028212975893, + -4.068092707861248, + -4.075153839502255, + -4.082211609500078, + -4.08926601945512, + -4.096317070967018, + -4.103364765634652, + -4.110409105056136, + -4.117450090828828, + -4.124487724549323, + -4.131522007813457, + -4.138552942216305, + -4.145580529352182, + -4.152604770814649, + -4.1596256681965, + -4.166643223089777, + -4.1736574370857635, + -4.1806683117749825, + -4.187675848747203, + -4.194680049591433, + -4.201680915895931, + -4.208678449248192, + -4.215672651234961, + -4.222663523442221, + -4.229651067455205, + -4.236635284858392, + -4.243616177235502, + -4.250593746169507, + -4.2575679932426205, + -4.264538920036305, + -4.27150652813127, + -4.278470819107469, + -4.2854317945441105, + -4.292389456019643, + -4.299343805111771, + -4.306294843397443, + -4.313242572452858, + -4.320186993853465, + -4.327128109173964, + -4.334065919988301, + -4.3410004278696785, + -4.347931634390546, + -4.3548595411226065, + -4.361784149636813, + -4.368705461503373, + -4.375623478291743, + -4.382538201570636, + -4.3894496329080175, + -4.396357773871102, + -4.403262626026363, + -4.410164190939527, + -4.417062470175576, + -4.423957465298743, + -4.430849177872521, + -4.437737609459657, + -4.444622761622153, + -4.451504635921267, + -4.458383233917514, + -4.465258557170669, + -4.4721306072397615, + -4.47899938568308, + -4.48586489405817, + -4.492727133921837, + -4.499586106830144, + -4.506441814338412, + -4.513294258001226, + -4.520143439372426, + -4.526989360005115, + -4.533832021451656, + -4.540671425263674, + -4.547507572992053, + -4.55434046618694, + -4.561170106397747, + -4.567996495173141, + -4.574819634061057, + -4.581639524608692, + -4.588456168362508, + -4.595269566868227, + -4.60207972167084, + -4.608886634314598, + -4.615690306343021, + -4.622490739298888, + -4.629287934724249, + -4.6360818941604185, + -4.642872619147977, + -4.649660111226771, + -4.656444371935915, + -4.66322540281379, + -4.670003205398046, + -4.676777781225597, + -4.6835491318326286, + -4.690317258754595, + -4.697082163526219, + -4.703843847681493, + -4.710602312753679, + -4.717357560275307, + -4.7241095917781815, + -4.730858408793376, + -4.7376040128512305, + -4.744346405481362, + -4.75108558821266, + -4.757821562573282, + -4.764554330090661, + -4.771283892291501, + -4.778010250701779, + -4.784733406846749, + -4.791453362250934, + -4.798170118438132, + -4.8048836769314205, + -4.811594039253146, + -4.818301206924933, + -4.825005181467682, + -4.831705964401569, + -4.838403557246045, + -4.845097961519839, + -4.8517891787409555, + -4.8584772104266785, + -4.865162058093568, + -4.871843723257462, + -4.878522207433479, + -4.885197512136013, + -4.89186963887874, + -4.898538589174613, + -4.905204364535866, + -4.911866966474011, + -4.9185263964998445, + -4.92518265612344, + -4.931835746854155, + -4.938485670200625, + -4.94513242767077, + -4.951776020771793, + -4.958416451010175, + -4.965053719891681, + -4.971687828921364, + -4.978318779603557, + -4.984946573441875, + -4.991571211939222, + -4.998192696597782, + -5.004811028919025, + -5.011426210403706, + -5.018038242551868, + -5.024647126862837, + -5.031252864835228, + -5.037855457966938, + -5.044454907755155, + -5.0510512156963525, + -5.057644383286293, + -5.064234412020028, + -5.070821303391889, + -5.077405058895506, + -5.083985680023794, + -5.090563168268957, + -5.0971375251224895, + -5.103708752075174, + -5.110276850617086, + -5.116841822237592, + -5.123403668425343, + -5.129962390668289, + -5.136517990453667, + -5.143070469268011, + -5.149619828597141, + -5.156166069926172, + -5.162709194739515, + -5.169249204520871, + -5.175786100753235, + -5.182319884918894, + -5.1888505584994356, + -5.195378122975736, + -5.20190257982797, + -5.208423930535606, + -5.2149421765774076, + -5.221457319431435, + -5.227969360575047, + -5.234478301484894, + -5.240984143636928, + -5.247486888506396, + -5.253986537567844, + -5.2604830922951145, + -5.266976554161349, + -5.27346692463899, + -5.279954205199777, + -5.286438397314746, + -5.292919502454235, + -5.299397522087885, + -5.305872457684633, + -5.31234431071272, + -5.318813082639685, + -5.325278774932371, + -5.331741389056921, + -5.338200926478779, + -5.344657388662693, + -5.351110777072714, + -5.357561093172197, + -5.364008338423796, + -5.370452514289473, + -5.376893622230492, + -5.383331663707422, + -5.389766640180138, + -5.396198553107815, + -5.402627403948938, + -5.409053194161297, + -5.415475925201986, + -5.421895598527408, + -5.42831221559327, + -5.43472577785459, + -5.441136286765689, + -5.447543743780194, + -5.453948150351047, + -5.460349507930493, + -5.466747817970088, + -5.4731430819206945, + -5.479535301232486, + -5.485924477354948, + -5.492310611736872, + -5.498693705826358, + -5.505073761070822, + -5.511450778916989, + -5.5178247608108935, + -5.524195708197884, + -5.53056362252262, + -5.5369285052290715, + -5.543290357760525, + -5.549649181559577, + -5.556004978068135, + -5.562357748727424, + -5.568707494977982, + -5.575054218259662, + -5.581397920011628, + -5.587738601672363, + -5.5940762646796625, + -5.60041091047064, + -5.60674254048172, + -5.613071156148648, + -5.619396758906485, + -5.625719350189606, + -5.632038931431707, + -5.6383555040658, + -5.644669069524213, + -5.650979629238595, + -5.65728718463991, + -5.663591737158443, + -5.669893288223799, + -5.6761918392649005, + -5.68248739170999, + -5.688779946986631, + -5.695069506521707, + -5.701356071741423, + -5.707639644071303, + -5.713920224936193, + -5.720197815760259, + -5.726472417966995, + -5.73274403297921, + -5.739012662219041, + -5.745278307107945, + -5.7515409690667045, + -5.757800649515424, + -5.764057349873531, + -5.770311071559779, + -5.7765618159922445, + -5.782809584588332, + -5.789054378764766, + -5.795296199937604, + -5.801535049522222, + -5.807770928933326, + -5.814003839584947, + -5.820233782890443, + -5.8264607602625, + -5.832684773113132, + -5.83890582285368, + -5.84512391089481, + -5.8513390386465245, + -5.857551207518145, + -5.8637604189183286, + -5.869966674255059, + -5.87616997493565, + -5.8823703223667465, + -5.888567717954323, + -5.894762163103685, + -5.900953659219468, + -5.90714220770564, + -5.9133278099655, + -5.919510467401678, + -5.925690181416137, + -5.931866953410173, + -5.938040784784416, + -5.944211676938826, + -5.950379631272699, + -5.956544649184665, + -5.962706732072688, + -5.968865881334062, + -5.975022098365422, + -5.981175384562734, + -5.987325741321304, + -5.993473170035768, + -5.999617672100102, + -6.005759248907618, + -6.011897901850962, + -6.018033632322122, + -6.024166441712416, + -6.030296331412505, + -6.036423302812389, + -6.0425473573014, + -6.048668496268216, + -6.054786721100848, + -6.060902033186651, + -6.067014433912316, + -6.073123924663874, + -6.079230506826698, + -6.0853341817855, + -6.0914349509243335, + -6.097532815626593, + -6.103627777275015, + -6.109719837251676, + -6.115808996937997, + -6.121895257714739, + -6.127978620962004, + -6.134059088059243, + -6.140136660385245, + -6.146211339318145, + -6.152283126235421, + -6.1583520225138955, + -6.164418029529735, + -6.170481148658453, + -6.176541381274904, + -6.182598728753292, + -6.188653192467164, + -6.194704773789417, + -6.200753474092289, + -6.206799294747368, + -6.212842237125589, + -6.218882302597234, + -6.2249194925319316, + -6.2309538082986595, + -6.236985251265742, + -6.243013822800855, + -6.249039524271021, + -6.255062357042612, + -6.261082322481351, + -6.267099421952309, + -6.2731136568199055, + -6.279125028447914, + -6.285133538199458, + -6.291139187437012, + -6.297141977522399, + -6.303141909816798, + -6.309138985680737, + -6.315133206474098, + -6.321124573556114, + -6.327113088285371, + -6.333098752019809, + -6.3390815661167235, + -6.345061531932759, + -6.351038650823917, + -6.357012924145557, + -6.362984353252385, + -6.368952939498469, + -6.37491868423723, + -6.380881588821443, + -6.3868416546032405, + -6.392798882934113, + -6.398753275164906, + -6.404704832645821, + -6.410653556726418, + -6.4165994487556155, + -6.422542510081684, + -6.42848274205226, + -6.434420146014335, + -6.440354723314257, + -6.446286475297736, + -6.452215403309841, + -6.458141508695001, + -6.464064792797002, + -6.469985256958996, + -6.475902902523487, + -6.481817730832347, + -6.487729743226807, + -6.49363894104746, + -6.4995453256342595, + -6.505448898326522, + -6.511349660462926, + -6.517247613381514, + -6.523142758419688, + -6.529035096914217, + -6.534924630201231, + -6.540811359616226, + -6.546695286494063, + -6.552576412168962, + -6.5584547379745155, + -6.564330265243676, + -6.570202995308762, + -6.576072929501457, + -6.5819400691528145, + -6.58780441559325, + -6.593665970152548, + -6.599524734159859, + -6.605380708943701, + -6.61123389583196, + -6.617084296151889, + -6.622931911230109, + -6.628776742392609, + -6.6346187909647485, + -6.640458058271255, + -6.646294545636227, + -6.652128254383129, + -6.657959185834798, + -6.6637873413134425, + -6.669612722140636, + -6.675435329637329, + -6.68125516512384, + -6.687072229919861, + -6.692886525344452, + -6.698698052716049, + -6.704506813352459, + -6.710312808570861, + -6.7161160396878055, + -6.72191650801922, + -6.727714214880402, + -6.733509161586025, + -6.739301349450136, + -6.745090779786157, + -6.750877453906882, + -6.756661373124484, + -6.762442538750509, + -6.768220952095878, + -6.77399661447089, + -6.779769527185217, + -6.785539691547911, + -6.791307108867401, + -6.797071780451488, + -6.802833707607356, + -6.808592891641566, + -6.814349333860051, + -6.820103035568129, + -6.825853998070495, + -6.831602222671221, + -6.83734771067376, + -6.843090463380944, + -6.848830482094984, + -6.854567768117472, + -6.860302322749379, + -6.866034147291058, + -6.871763243042244, + -6.877489611302049, + -6.88321325336897, + -6.888934170540887, + -6.894652364115058, + -6.900367835388127, + -6.906080585656119, + -6.911790616214441, + -6.917497928357886, + -6.923202523380628, + -6.928904402576226, + -6.934603567237624, + -6.940300018657149, + -6.945993758126514, + -6.951684786936817, + -6.957373106378539, + -6.963058717741549, + -6.968741622315101, + -6.974421821387836, + -6.980099316247781, + -6.9857741081823495, + -6.991446198478343, + -6.997115588421951, + -7.002782279298747, + -7.008446272393695, + -7.0141075689911485, + -7.019766170374849, + -7.0254220778279235, + -7.031075292632893, + -7.036725816071665, + -7.042373649425537, + -7.048018793975198, + -7.053661251000724, + -7.059301021781586, + -7.0649381075966415, + -7.070572509724142, + -7.076204229441731, + -7.0818332680264415, + -7.087459626754699, + -7.093083306902323, + -7.098704309744524, + -7.104322636555905, + -7.109938288610463, + -7.115551267181591, + -7.121161573542071, + -7.126769208964081, + -7.132374174719195, + -7.137976472078381, + -7.143576102311998, + -7.149173066689807, + -7.154767366480958, + -7.160359002954002, + -7.1659479773768835, + -7.171534291016942, + -7.1771179451409175, + -7.182698941014943, + -7.188277279904553, + -7.193852963074673, + -7.199425991789633, + -7.204996367313157, + -7.21056409090837, + -7.216129163837794, + -7.22169158736335, + -7.227251362746358, + -7.232808491247542, + -7.238362974127016, + -7.243914812644304, + -7.249464008058324, + -7.255010561627398, + -7.260554474609248, + -7.266095748260996, + -7.271634383839169, + -7.277170382599693, + -7.282703745797895, + -7.2882344746885055, + -7.293762570525659, + -7.299288034562893, + -7.304810868053146, + -7.310331072248762, + -7.315848648401488, + -7.321363597762475, + -7.326875921582279, + -7.3323856211108565, + -7.337892697597576, + -7.343397152291207, + -7.3488989864399255, + -7.354398201291311, + -7.359894798092355, + -7.3653887780894465, + -7.3708801425283905, + -7.376368892654391, + -7.381855029712063, + -7.38733855494543, + -7.392819469597921, + -7.398297774912374, + -7.403773472131036, + -7.40924656249556, + -7.414717047247011, + -7.4201849276258605, + -7.425650204871991, + -7.4311128802246955, + -7.436572954922675, + -7.442030430204042, + -7.4474853073063185, + -7.45293758746644, + -7.458387271920749, + -7.463834361905004, + -7.469278858654369, + -7.474720763403427, + -7.48016007738617, + -7.485596801836002, + -7.49103093798574, + -7.496462487067613, + -7.501891450313268, + -7.507317828953761, + -7.512741624219562, + -7.518162837340558, + -7.523581469546049, + -7.528997522064749, + -7.53441099612479, + -7.539821892953715, + -7.545230213778486, + -7.550635959825479, + -7.556039132320487, + -7.5614397324887195, + -7.566837761554801, + -7.572233220742776, + -7.5776261112761025, + -7.583016434377661, + -7.588404191269745, + -7.593789383174069, + -7.599172011311765, + -7.604552076903383, + -7.609929581168894, + -7.6153045253276845, + -7.620676910598563, + -7.6260467381997605, + -7.631414009348921, + -7.636778725263117, + -7.642140887158833, + -7.647500496251983, + -7.652857553757894, + -7.658212060891319, + -7.663564018866435, + -7.668913428896834, + -7.674260292195538, + -7.6796046099749855, + -7.684946383447041, + -7.690285613822988, + -7.695622302313541, + -7.700956450128829, + -7.706288058478413, + -7.711617128571271, + -7.716943661615812, + -7.722267658819866, + -7.727589121390687, + -7.732908050534959, + -7.738224447458785, + -7.743538313367699, + -7.748849649466659, + -7.754158456960049, + -7.7594647370516805, + -7.764768490944793, + -7.77006971984205, + -7.775368424945547, + -7.7806646074568, + -7.785958268576761, + -7.791249409505806, + -7.796538031443738, + -7.8018241355897935, + -7.807107723142635, + -7.812388795300355, + -7.817667353260477, + -7.822943398219949, + -7.828216931375156, + -7.83348795392191, + -7.838756467055455, + -7.844022471970464, + -7.849285969861042, + -7.854546961920727, + -7.859805449342488, + -7.865061433318726, + -7.870314915041273, + -7.875565895701396, + -7.880814376489791, + -7.886060358596592, + -7.8913038432113645, + -7.896544831523106, + -7.90178332472025, + -7.907019323990663, + -7.912252830521647, + -7.9174838454999374, + -7.922712370111705, + -7.927938405542558, + -7.933161952977536, + -7.938383013601119, + -7.943601588597221, + -7.948817679149193, + -7.95403128643982, + -7.959242411651326, + -7.964451055965374, + -7.969657220563061, + -7.974860906624923, + -7.980062115330936, + -7.98526084786051, + -7.990457105392497, + -7.995650889105187, + -8.000842200176308, + -8.006031039783029, + -8.011217409101958, + -8.01640130930914, + -8.021582741580065, + -8.02676170708966, + -8.031938207012296, + -8.03711224252178, + -8.042283814791363, + -8.047452924993737, + -8.052619574301035, + -8.057783763884835, + -8.062945494916153, + -8.068104768565451, + -8.073261586002632, + -8.078415948397042, + -8.083567856917472, + -8.088717312732154, + -8.093864317008766, + -8.099008870914428, + -8.104150975615704, + -8.10929063227861, + -8.114427842068594, + -8.119562606150561, + -8.124694925688855, + -8.129824801847269, + -8.134952235789036, + -8.140077228676843, + -8.145199781672819, + -8.15031989593854, + -8.155437572635032, + -8.160552812922763, + -8.165665617961654, + -8.170775988911068, + -8.175883926929822, + -8.180989433176178, + -8.186092508807848, + -8.19119315498199, + -8.196291372855214, + -8.201387163583579, + -8.206480528322594, + -8.211571468227215, + -8.21665998445185, + -8.221746078150359, + -8.226829750476051, + -8.231911002581686, + -8.236989835619475, + -8.242066250741082, + -8.247140249097622, + -8.252211831839661, + -8.257281000117215, + -8.262347755079757, + -8.267412097876212, + -8.272474029654957, + -8.277533551563822, + -8.28259066475009, + -8.2876453703605, + -8.292697669541244, + -8.297747563437968, + -8.30279505319577, + -8.307840139959207, + -8.312882824872293, + -8.31792310907849, + -8.32296099372072, + -8.327996479941362, + -8.33302956888225, + -8.33806026168467, + -8.343088559489374, + -8.348114463436563, + -8.353137974665898, + -8.358159094316497, + -8.363177823526936, + -8.36819416343525, + -8.37320811517893, + -8.378219679894926, + -8.383228858719647, + -8.388235652788964, + -8.393240063238201, + -8.398242091202146, + -8.40324173781505, + -8.408239004210612, + -8.413233891522005, + -8.418226400881855, + -8.423216533422247, + -8.428204290274735, + -8.433189672570327, + -8.438172681439497, + -8.443153318012179, + -8.448131583417767, + -8.453107478785121, + -8.458081005242562, + -8.463052163917872, + -8.4680209559383, + -8.472987382430555, + -8.477951444520812, + -8.482913143334706, + -8.487872479997343, + -8.492829455633284, + -8.497784071366565, + -8.50273632832068, + -8.507686227618587, + -8.512633770382715, + -8.517578957734955, + -8.522521790796663, + -8.527462270688666, + -8.532400398531253, + -8.537336175444182, + -8.542269602546675, + -8.547200680957422, + -8.552129411794583, + -8.557055796175785, + -8.561979835218121, + -8.566901530038153, + -8.571820881751911, + -8.576737891474895, + -8.581652560322075, + -8.586564889407885, + -8.591474879846235, + -8.596382532750498, + -8.601287849233524, + -8.606190830407627, + -8.611091477384594, + -8.615989791275686, + -8.620885773191631, + -8.625779424242626, + -8.630670745538346, + -8.635559738187931, + -8.640446403299997, + -8.645330741982633, + -8.650212755343398, + -8.655092444489323, + -8.659969810526917, + -8.664844854562157, + -8.669717577700494, + -8.674587981046853, + -8.679456065705638, + -8.68432183278072, + -8.689185283375448, + -8.694046418592643, + -8.698905239534609, + -8.703761747303115, + -8.708615942999412, + -8.713467827724223, + -8.718317402577748, + -8.723164668659667, + -8.728009627069133, + -8.73285227890477, + -8.737692625264696, + -8.742530667246484, + -8.747366405947204, + -8.752199842463389, + -8.75703097789106, + -8.761859813325714, + -8.766686349862322, + -8.77151058859534, + -8.776332530618694, + -8.7811521770258, + -8.785969528909547, + -8.790784587362305, + -8.795597353475921, + -8.800407828341731, + -8.805216013050543, + -8.810021908692647, + -8.814825516357818, + -8.819626837135305, + -8.824425872113848, + -8.829222622381659, + -8.834017089026439, + -8.838809273135368, + -8.843599175795111, + -8.848386798091813, + -8.8531721411111, + -8.857955205938087, + -8.862735993657367, + -8.86751450535302, + -8.872290742108607, + -8.87706470500718, + -8.881836395131264, + -8.886605813562879, + -8.891372961383526, + -8.896137839674186, + -8.900900449515335, + -8.905660791986929, + -8.91041886816841, + -8.915174679138707, + -8.919928225976236, + -8.924679509758898, + -8.92942853156408, + -8.934175292468662, + -8.938919793549003, + -8.943662035880957, + -8.948402020539858, + -8.953139748600536, + -8.957875221137304, + -8.962608439223969, + -8.967339403933819, + -8.972068116339635, + -8.976794577513692, + -8.981518788527742, + -8.986240750453044, + -8.990960464360331, + -8.995677931319834, + -9.000393152401275, + -9.005106128673866, + -9.009816861206309, + -9.014525351066792, + -9.019231599323009, + -9.023935607042127, + -9.02863737529082, + -9.033336905135247, + -9.038034197641062, + -9.042729253873413, + -9.04742207489693, + -9.052112661775755, + -9.056801015573507, + -9.061487137353307, + -9.066171028177765, + -9.070852689108994, + -9.075532121208587, + -9.080209325537647, + -9.08488430315676, + -9.089557055126013, + -9.094227582504988, + -9.098895886352759, + -9.103561967727902, + -9.10822582768848, + -9.112887467292065, + -9.11754688759571, + -9.122204089655979, + -9.126859074528927, + -9.131511843270099, + -9.136162396934553, + -9.140810736576833, + -9.145456863250983, + -9.150100778010549, + -9.15474248190857, + -9.15938197599759, + -9.164019261329646, + -9.168654338956278, + -9.173287209928521, + -9.177917875296917, + -9.1825463361115, + -9.187172593421812, + -9.191796648276885, + -9.196418501725264, + -9.201038154814984, + -9.205655608593586, + -9.210270864108113, + -9.214883922405104, + -9.21949478453061, + -9.224103451530175, + -9.228709924448848, + -9.233314204331183, + -9.237916292221232, + -9.242516189162552, + -9.247113896198204, + -9.251709414370755, + -9.256302744722268, + -9.26089388829432, + -9.265482846127979, + -9.270069619263833, + -9.27465420874196, + -9.279236615601953, + -9.283816840882908, + -9.28839488562342, + -9.2929707508616, + -9.297544437635056, + -9.302115946980907, + -9.30668527993577, + -9.311252437535785, + -9.315817420816584, + -9.320380230813306, + -9.32494086856061, + -9.329499335092649, + -9.334055631443093, + -9.338609758645108, + -9.343161717731384, + -9.347711509734108, + -9.352259135684978, + -9.356804596615206, + -9.361347893555502, + -9.365889027536099, + -9.370427999586727, + -9.374964810736635, + -9.379499462014577, + -9.384031954448819, + -9.388562289067139, + -9.393090466896819, + -9.39761648896466, + -9.40214035629697, + -9.40666206991957, + -9.41118163085779, + -9.415699040136477, + -9.420214298779984, + -9.42472740781218, + -9.429238368256447, + -9.433747181135676, + -9.438253847472277, + -9.442758368288166, + -9.44726074460478, + -9.451760977443062, + -9.456259067823478, + -9.460755016765997, + -9.465248825290116, + -9.469740494414834, + -9.47423002515867, + -9.478717418539661, + -9.483202675575354, + -9.487685797282817, + -9.492166784678625, + -9.496645638778883, + -9.501122360599199, + -9.505596951154702, + -9.510069411460044, + -9.514539742529383, + -9.5190079453764, + -9.523474021014295, + -9.527937970455783, + -9.532399794713093, + -9.536859494797985, + -9.541317071721727, + -9.545772526495101, + -9.550225860128421, + -9.554677073631508, + -9.559126168013712, + -9.563573144283893, + -9.56801800345044, + -9.572460746521257, + -9.576901374503768, + -9.581339888404917, + -9.585776289231172, + -9.590210577988518, + -9.594642755682463, + -9.599072823318037, + -9.603500781899788, + -9.60792663243179, + -9.612350375917638, + -9.616772013360446, + -9.621191545762857, + -9.62560897412703, + -9.630024299454647, + -9.634437522746918, + -9.638848645004575, + -9.64325766722787, + -9.647664590416586, + -9.65206941557002, + -9.656472143687001, + -9.660872775765881, + -9.665271312804533, + -9.66966775580036, + -9.674062105750286, + -9.678454363650763, + -9.68284453049777, + -9.687232607286807, + -9.691618595012905, + -9.696002494670616, + -9.700384307254023, + -9.704764033756733, + -9.709141675171887, + -9.71351723249214, + -9.717890706709689, + -9.722262098816246, + -9.726631409803057, + -9.7309986406609, + -9.735363792380069, + -9.7397268659504, + -9.744087862361253, + -9.748446782601514, + -9.752803627659597, + -9.757158398523455, + -9.761511096180561, + -9.765861721617922, + -9.770210275822073, + -9.774556759779083, + -9.778901174474548, + -9.783243520893596, + -9.787583800020887, + -9.791922012840608, + -9.796258160336485, + -9.800592243491772, + -9.80492426328925, + -9.809254220711239, + -9.813582116739585, + -9.817907952355679, + -9.822231728540427, + -9.826553446274282, + -9.830873106537226, + -9.835190710308769, + -9.839506258567965, + -9.843819752293394, + -9.848131192463171, + -9.85244058005495, + -9.856747916045913, + -9.861053201412782, + -9.865356437131814, + -9.869657624178796, + -9.873956763529055, + -9.878253856157455, + -9.882548903038389, + -9.886841905145795, + -9.891132863453139, + -9.895421778933432, + -9.899708652559212, + -9.903993485302564, + -9.908276278135103, + -9.912557032027982, + -9.916835747951897, + -9.921112426877075, + -9.925387069773288, + -9.92965967760984, + -9.933930251355578, + -9.938198791978886, + -9.942465300447687, + -9.946729777729441, + -9.950992224791152, + -9.955252642599364, + -9.959511032120153, + -9.963767394319142, + -9.968021730161492, + -9.972274040611907, + -9.97652432663463, + -9.98077258919344, + -9.985018829251668, + -9.989263047772175, + -9.993505245717373, + -9.997745424049208, + -10.001983583729174, + -10.006219725718305, + -10.010453850977179, + -10.014685960465911, + -10.018916055144166, + -10.023144135971148, + -10.027370203905605, + -10.03159425990583, + -10.035816304929657, + -10.04003633993447, + -10.044254365877192, + -10.048470383714289, + -10.052684394401775, + -10.056896398895205, + -10.06110639814969, + -10.06531439311987, + -10.069520384759944, + -10.07372437402365, + -10.077926361864275, + -10.082126349234649, + -10.08632433708715, + -10.090520326373705, + -10.09471431804578, + -10.0989063130544, + -10.103096312350125, + -10.107284316883076, + -10.111470327602907, + -10.11565434545883, + -10.1198363713996, + -10.124016406373524, + -10.128194451328454, + -10.132370507211792, + -10.136544574970495, + -10.140716655551056, + -10.14488674989953, + -10.149054858961515, + -10.153220983682159, + -10.157385125006167, + -10.16154728387778, + -10.165707461240808, + -10.169865658038594, + -10.174021875214043, + -10.17817611370961, + -10.182328374467295, + -10.186478658428657, + -10.1906269665348, + -10.194773299726387, + -10.198917658943628, + -10.203060045126287, + -10.20720045921368, + -10.21133890214468, + -10.215475374857704, + -10.219609878290733, + -10.223742413381293, + -10.227872981066467, + -10.232001582282892, + -10.236128217966758, + -10.240252889053812, + -10.244375596479353, + -10.248496341178233, + -10.252615124084866, + -10.25673194613321, + -10.260846808256789, + -10.264959711388677, + -10.269070656461507, + -10.273179644407463, + -10.277286676158292, + -10.281391752645291, + -10.28549487479932, + -10.289596043550787, + -10.293695259829663, + -10.29779252456548, + -10.301887838687318, + -10.305981203123823, + -10.310072618803192, + -10.31416208665319, + -10.318249607601127, + -10.322335182573882, + -10.32641881249789, + -10.330500498299141, + -10.334580240903191, + -10.338658041235151, + -10.34273390021969, + -10.34680781878104, + -10.350879797842994, + -10.354949838328901, + -10.359017941161673, + -10.363084107263784, + -10.367148337557264, + -10.371210632963711, + -10.375270994404278, + -10.379329422799684, + -10.383385919070204, + -10.387440484135682, + -10.391493118915518, + -10.395543824328676, + -10.399592601293687, + -10.403639450728638, + -10.407684373551186, + -10.411727370678541, + -10.415768443027488, + -10.419807591514367, + -10.423844817055086, + -10.427880120565113, + -10.431913502959487, + -10.435944965152803, + -10.439974508059228, + -10.44400213259249, + -10.44802783966588, + -10.45205163019226, + -10.456073505084053, + -10.460093465253246, + -10.4641115116114, + -10.468127645069632, + -10.472141866538633, + -10.476154176928656, + -10.480164577149521, + -10.484173068110618, + -10.488179650720902, + -10.492184325888893, + -10.496187094522679, + -10.500187957529922, + -10.504186915817844, + -10.50818397029324, + -10.51217912186247, + -10.516172371431466, + -10.520163719905725, + -10.524153168190317, + -10.528140717189878, + -10.53212636780861, + -10.536110120950294, + -10.540091977518273, + -10.544071938415462, + -10.548050004544347, + -10.552026176806985, + -10.556000456105002, + -10.559972843339592, + -10.563943339411528, + -10.567911945221146, + -10.571878661668359, + -10.575843489652646, + -10.579806430073065, + -10.583767483828238, + -10.587726651816366, + -10.591683934935219, + -10.595639334082138, + -10.599592850154043, + -10.603544484047417, + -10.607494236658328, + -10.611442108882407, + -10.615388101614867, + -10.619332215750488, + -10.62327445218363, + -10.627214811808221, + -10.631153295517766, + -10.63508990420535, + -10.639024638763622, + -10.642957500084817, + -10.64688848906074, + -10.65081760658277, + -10.654744853541864, + -10.658670230828552, + -10.662593739332944, + -10.666515379944725, + -10.670435153553157, + -10.674353061047073, + -10.678269103314893, + -10.682183281244605, + -10.68609559572378, + -10.690006047639562, + -10.693914637878674, + -10.697821367327421, + -10.701726236871679, + -10.70562924739691, + -10.709530399788147, + -10.713429694930008, + -10.717327133706684, + -10.72122271700195, + -10.72511644569916, + -10.72900832068124, + -10.732898342830708, + -10.73678651302965, + -10.740672832159738, + -10.744557301102224, + -10.748439920737944, + -10.752320691947306, + -10.756199615610303, + -10.760076692606512, + -10.763951923815089, + -10.76782531011477, + -10.771696852383872, + -10.775566551500301, + -10.779434408341535, + -10.783300423784642, + -10.787164598706267, + -10.791026933982643, + -10.794887430489583, + -10.798746089102478, + -10.802602910696313, + -10.806457896145647, + -10.810311046324628, + -10.814162362106988, + -10.818011844366039, + -10.82185949397468, + -10.825705311805391, + -10.829549298730246, + -10.833391455620893, + -10.837231783348571, + -10.841070282784099, + -10.84490695479789, + -10.848741800259937, + -10.852574820039814, + -10.856406015006693, + -10.860235386029323, + -10.864062933976042, + -10.867888659714774, + -10.871712564113034, + -10.875534648037917, + -10.87935491235611, + -10.883173357933886, + -10.886989985637106, + -10.890804796331217, + -10.894617790881258, + -10.898428970151851, + -10.90223833500721, + -10.906045886311139, + -10.909851624927024, + -10.913655551717847, + -10.917457667546175, + -10.921257973274166, + -10.92505646976357, + -10.92885315787572, + -10.932648038471548, + -10.936441112411565, + -10.940232380555884, + -10.944021843764201, + -10.947809502895803, + -10.951595358809572, + -10.955379412363976, + -10.959161664417081, + -10.962942115826538, + -10.966720767449594, + -10.970497620143083, + -10.974272674763437, + -10.978045932166678, + -10.981817393208415, + -10.98558705874386, + -10.98935492962781, + -10.993121006714658, + -10.99688529085839, + -11.000647782912585, + -11.004408483730415, + -11.00816739416465, + -11.011924515067646, + -11.01567984729136, + -11.01943339168734, + -11.02318514910673, + -11.026935120400275, + -11.030683306418299, + -11.034429708010736, + -11.03817432602711, + -11.04191716131654, + -11.045658214727743, + -11.049397487109026, + -11.053134979308302, + -11.05687069217307, + -11.060604626550438, + -11.064336783287093, + -11.068067163229337, + -11.071795767223058, + -11.075522596113744, + -11.079247650746481, + -11.082970931965955, + -11.086692440616446, + -11.09041217754183, + -11.094130143585593, + -11.097846339590804, + -11.101560766400143, + -11.105273424855879, + -11.108984315799885, + -11.112693440073636, + -11.1164007985182, + -11.12010639197425, + -11.123810221282056, + -11.12751228728149, + -11.131212590812023, + -11.134911132712721, + -11.138607913822263, + -11.142302934978916, + -11.145996197020555, + -11.149687700784654, + -11.153377447108289, + -11.157065436828137, + -11.16075167078048, + -11.164436149801194, + -11.168118874725762, + -11.171799846389273, + -11.175479065626412, + -11.17915653327147, + -11.182832250158338, + -11.186506217120513, + -11.190178434991093, + -11.193848904602785, + -11.19751762678789, + -11.20118460237832, + -11.204849832205587, + -11.208513317100811, + -11.212175057894713, + -11.215835055417621, + -11.219493310499464, + -11.223149823969782, + -11.226804596657713, + -11.230457629392006, + -11.23410892300101, + -11.237758478312687, + -11.241406296154596, + -11.245052377353911, + -11.248696722737405, + -11.25233933313146, + -11.255980209362068, + -11.25961935225482, + -11.263256762634922, + -11.266892441327181, + -11.270526389156018, + -11.274158606945452, + -11.277789095519118, + -11.281417855700257, + -11.285044888311717, + -11.288670194175953, + -11.292293774115029, + -11.29591562895062, + -11.299535759504009, + -11.303154166596087, + -11.306770851047352, + -11.310385813677918, + -11.313999055307502, + -11.317610576755431, + -11.32122037884065, + -11.324828462381703, + -11.328434828196752, + -11.332039477103564, + -11.335642409919526, + -11.33924362746162, + -11.34284313054646, + -11.34644091999025, + -11.350036996608821, + -11.35363136121761, + -11.357224014631662, + -11.36081495766564, + -11.364404191133817, + -11.367991715850076, + -11.371577532627919, + -11.375161642280451, + -11.3787440456204, + -11.3823247434601, + -11.3859037366115, + -11.389481025886164, + -11.39305661209527, + -11.396630496049605, + -11.400202678559578, + -11.403773160435206, + -11.40734194248612, + -11.41090902552157, + -11.414474410350419, + -11.418038097781142, + -11.421600088621831, + -11.425160383680199, + -11.428718983763561, + -11.432275889678863, + -11.435831102232656, + -11.43938462223111, + -11.442936450480016, + -11.44648658778477, + -11.450035034950401, + -11.453581792781538, + -11.45712686208244, + -11.460670243656972, + -11.464211938308628, + -11.46775194684051, + -11.47129027005534, + -11.47482690875546, + -11.478361863742828, + -11.481895135819023, + -11.485426725785238, + -11.488956634442292, + -11.492484862590615, + -11.496011411030256, + -11.49953628056089, + -11.503059471981803, + -11.506580986091908, + -11.510100823689733, + -11.513618985573428, + -11.51713547254076, + -11.520650285389122, + -11.524163424915521, + -11.527674891916586, + -11.531184687188572, + -11.534692811527348, + -11.538199265728409, + -11.541704050586867, + -11.54520716689746, + -11.548708615454546, + -11.552208397052102, + -11.555706512483729, + -11.559202962542651, + -11.562697748021717, + -11.566190869713392, + -11.569682328409767, + -11.573172124902557, + -11.5766602599831, + -11.580146734442357, + -11.583631549070907, + -11.587114704658962, + -11.59059620199635, + -11.594076041872531, + -11.59755422507658, + -11.601030752397202, + -11.604505624622725, + -11.607978842541103, + -11.611450406939912, + -11.614920318606355, + -11.618388578327263, + -11.621855186889086, + -11.625320145077904, + -11.628783453679421, + -11.632245113478971, + -11.635705125261508, + -11.639163489811615, + -11.642620207913504, + -11.64607528035101, + -11.649528707907596, + -11.65298049136635, + -11.656430631509995, + -11.65987912912087, + -11.663325984980952, + -11.666771199871839, + -11.670214774574754, + -11.673656709870562, + -11.67709700653974, + -11.680535665362402, + -11.683972687118294, + -11.68740807258678, + -11.690841822546862, + -11.694273937777169, + -11.697704419055956, + -11.70113326716111, + -11.70456048287015, + -11.70798606696022, + -11.7114100202081, + -11.714832343390192, + -11.718253037282535, + -11.721672102660797, + -11.725089540300276, + -11.728505350975903, + -11.731919535462234, + -11.735332094533465, + -11.738743028963414, + -11.742152339525543, + -11.74556002699293, + -11.748966092138298, + -11.752370535733997, + -11.755773358552009, + -11.759174561363949, + -11.762574144941064, + -11.765972110054237, + -11.769368457473979, + -11.77276318797044, + -11.776156302313398, + -11.779547801272267, + -11.782937685616094, + -11.786325956113561, + -11.789712613532982, + -11.793097658642308, + -11.796481092209122, + -11.799862915000643, + -11.803243127783725, + -11.806621731324855, + -11.809998726390159, + -11.813374113745391, + -11.816747894155947, + -11.820120068386858, + -11.823490637202788, + -11.826859601368039, + -11.830226961646547, + -11.833592718801889, + -11.83695687359727, + -11.84031942679554, + -11.843680379159185, + -11.84703973145032, + -11.850397484430708, + -11.853753638861743, + -11.857108195504457, + -11.860461155119522, + -11.863812518467244, + -11.86716228630757, + -11.870510459400085, + -11.873857038504013, + -11.877202024378214, + -11.880545417781187, + -11.883887219471074, + -11.887227430205652, + -11.890566050742336, + -11.893903081838188, + -11.897238524249902, + -11.900572378733811, + -11.903904646045897, + -11.907235326941771, + -11.910564422176693, + -11.913891932505557, + -11.917217858682902, + -11.920542201462906, + -11.923864961599389, + -11.92718613984581, + -11.93050573695527, + -11.933823753680516, + -11.937140190773928, + -11.940455048987538, + -11.943768329073007, + -11.947080031781654, + -11.950390157864426, + -11.953698708071922, + -11.957005683154378, + -11.960311083861674, + -11.963614910943338, + -11.966917165148535, + -11.970217847226076, + -11.973516957924412, + -11.976814497991645, + -11.980110468175514, + -11.983404869223403, + -11.986697701882346, + -11.989988966899013, + -11.993278665019727, + -11.996566796990447, + -11.999853363556785, + -12.00313836546399, + -12.006421803456963, + -12.00970367828025, + -12.012983990678034, + -12.016262741394156, + -12.019539931172092, + -12.022815560754976, + -12.026089630885574, + -12.029362142306308, + -12.032633095759245, + -12.035902491986096, + -12.039170331728226, + -12.042436615726634, + -12.045701344721978, + -12.048964519454557, + -12.052226140664327, + -12.055486209090876, + -12.058744725473455, + -12.062001690550952, + -12.065257105061908, + -12.068510969744516, + -12.071763285336608, + -12.075014052575678, + -12.078263272198857, + -12.08151094494293, + -12.084757071544331, + -12.088001652739143, + -12.091244689263098, + -12.094486181851579, + -12.09772613123962, + -12.100964538161902, + -12.104201403352757, + -12.107436727546167, + -12.11067051147577, + -12.113902755874847, + -12.117133461476334, + -12.120362629012817, + -12.123590259216533, + -12.126816352819372, + -12.130040910552873, + -12.133263933148232, + -12.136485421336289, + -12.139705375847543, + -12.142923797412141, + -12.146140686759884, + -12.149356044620225, + -12.15256987172227, + -12.15578216879478, + -12.158992936566163, + -12.16220217576449, + -12.165409887117475, + -12.16861607135249, + -12.171820729196565, + -12.175023861376376, + -12.17822546861826, + -12.181425551648202, + -12.184624111191846, + -12.18782114797449, + -12.191016662721083, + -12.194210656156235, + -12.197403129004202, + -12.200594081988907, + -12.203783515833917, + -12.206971431262463, + -12.210157828997428, + -12.213342709761351, + -12.216526074276425, + -12.219707923264505, + -12.222888257447098, + -12.226067077545363, + -12.229244384280126, + -12.232420178371862, + -12.23559446054071, + -12.23876723150646, + -12.24193849198856, + -12.245108242706117, + -12.248276484377893, + -12.251443217722315, + -12.25460844345746, + -12.25777216230107, + -12.260934374970535, + -12.264095082182916, + -12.267254284654925, + -12.270411983102932, + -12.273568178242972, + -12.276722870790731, + -12.279876061461563, + -12.283027750970476, + -12.286177940032138, + -12.289326629360879, + -12.292473819670686, + -12.295619511675207, + -12.298763706087756, + -12.301906403621299, + -12.305047604988463, + -12.308187310901541, + -12.311325522072483, + -12.314462239212904, + -12.317597463034076, + -12.320731194246937, + -12.32386343356208, + -12.326994181689765, + -12.33012343933991, + -12.333251207222101, + -12.336377486045581, + -12.339502276519257, + -12.342625579351697, + -12.345747395251133, + -12.34886772492546, + -12.35198656908224, + -12.355103928428687, + -12.35821980367169, + -12.361334195517792, + -12.364447104673209, + -12.367558531843814, + -12.370668477735148, + -12.37377694305241, + -12.376883928500474, + -12.379989434783866, + -12.383093462606784, + -12.38619601267309, + -12.389297085686309, + -12.392396682349634, + -12.395494803365919, + -12.398591449437689, + -12.40168662126713, + -12.40478031955609, + -12.407872545006096, + -12.410963298318329, + -12.41405258019364, + -12.417140391332547, + -12.420226732435234, + -12.423311604201551, + -12.426395007331015, + -12.429476942522815, + -12.432557410475795, + -12.435636411888478, + -12.43871394745905, + -12.441790017885364, + -12.444864623864943, + -12.447937766094975, + -12.451009445272321, + -12.454079662093504, + -12.457148417254718, + -12.460215711451827, + -12.463281545380363, + -12.466345919735524, + -12.469408835212183, + -12.472470292504875, + -12.47553029230781, + -12.478588835314868, + -12.48164592221959, + -12.4847015537152, + -12.487755730494579, + -12.490808453250287, + -12.49385972267455, + -12.496909539459269, + -12.499957904296009, + -12.503004817876011, + -12.506050280890186, + -12.509094294029111, + -12.512136857983045, + -12.515177973441906, + -12.518217641095292, + -12.521255861632467, + -12.524292635742375, + -12.527327964113624, + -12.530361847434499, + -12.533394286392951, + -12.536425281676612, + -12.539454833972782, + -12.542482943968432, + -12.54550961235021, + -12.548534839804436, + -12.551558627017101, + -12.554580974673874, + -12.557601883460089, + -12.560621354060766, + -12.563639387160588, + -12.566655983443917, + -12.569671143594789, + -12.572684868296914, + -12.575697158233677, + -12.578708014088134, + -12.581717436543022, + -12.584725426280746, + -12.587731983983394, + -12.590737110332721, + -12.59374080601017, + -12.596743071696839, + -12.599743908073522, + -12.602743315820678, + -12.605741295618447, + -12.608737848146642, + -12.61173297408475, + -12.614726674111944, + -12.617718948907061, + -12.620709799148628, + -12.623699225514837, + -12.626687228683567, + -12.629673809332365, + -12.632658968138463, + -12.635642705778768, + -12.638625022929862, + -12.64160592026801, + -12.644585398469152, + -12.647563458208907, + -12.65054010016257, + -12.653515325005118, + -12.656489133411206, + -12.659461526055166, + -12.66243250361101, + -12.665402066752428, + -12.668370216152791, + -12.671336952485149, + -12.674302276422232, + -12.67726618863645, + -12.68022868979989, + -12.68318978058432, + -12.686149461661191, + -12.689107733701633, + -12.692064597376454, + -12.695020053356147, + -12.697974102310882, + -12.700926744910511, + -12.703877981824569, + -12.706827813722267, + -12.709776241272507, + -12.712723265143863, + -12.715668886004595, + -12.718613104522642, + -12.721555921365633, + -12.724497337200868, + -12.727437352695338, + -12.73037596851571, + -12.733313185328338, + -12.73624900379926, + -12.739183424594192, + -12.742116448378537, + -12.745048075817378, + -12.747978307575485, + -12.750907144317308, + -12.753834586706985, + -12.756760635408334, + -12.759685291084855, + -12.762608554399739, + -12.765530426015854, + -12.768450906595762, + -12.771369996801695, + -12.774287697295588, + -12.777204008739044, + -12.780118931793359, + -12.783032467119515, + -12.785944615378176, + -12.788855377229696, + -12.791764753334109, + -12.79467274435114, + -12.797579350940191, + -12.800484573760365, + -12.803388413470438, + -12.806290870728878, + -12.809191946193838, + -12.812091640523159, + -12.814989954374369, + -12.81788688840468, + -12.820782443270993, + -12.823676619629897, + -12.826569418137671, + -12.829460839450276, + -12.83235088422336, + -12.835239553112267, + -12.83812684677202, + -12.841012765857338, + -12.84389731102262, + -12.846780482921961, + -12.84966228220914, + -12.852542709537628, + -12.855421765560582, + -12.858299450930847, + -12.861175766300965, + -12.864050712323156, + -12.866924289649338, + -12.869796498931116, + -12.872667340819783, + -12.875536815966326, + -12.878404925021416, + -12.881271668635423, + -12.884137047458395, + -12.887001062140087, + -12.889863713329929, + -12.89272500167705, + -12.895584927830265, + -12.89844349243809, + -12.901300696148722, + -12.904156539610051, + -12.907011023469666, + -12.909864148374835, + -12.912715914972532, + -12.915566323909411, + -12.918415375831827, + -12.921263071385821, + -12.924109411217131, + -12.926954395971183, + -12.9297980262931, + -12.932640302827695, + -12.935481226219476, + -12.938320797112643, + -12.94115901615109, + -12.943995883978406, + -12.94683140123787, + -12.949665568572454, + -12.95249838662483, + -12.955329856037357, + -12.958159977452095, + -12.960988751510792, + -12.963816178854895, + -12.966642260125544, + -12.969466995963574, + -12.972290387009515, + -12.975112433903588, + -12.977933137285719, + -12.98075249779552, + -12.983570516072302, + -12.98638719275507, + -12.989202528482528, + -12.992016523893074, + -12.994829179624801, + -12.997640496315501, + -13.00045047460266, + -13.003259115123463, + -13.006066418514786, + -13.00887238541321, + -13.011677016455005, + -13.014480312276145, + -13.017282273512297, + -13.020082900798824, + -13.022882194770792, + -13.02568015606296, + -13.028476785309786, + -13.031272083145428, + -13.034066050203739, + -13.036858687118272, + -13.03964999452228, + -13.04243997304871, + -13.045228623330209, + -13.048015945999127, + -13.050801941687508, + -13.0535866110271, + -13.056369954649343, + -13.059151973185385, + -13.061932667266067, + -13.064712037521929, + -13.067490084583218, + -13.070266809079875, + -13.073042211641544, + -13.075816292897567, + -13.078589053476987, + -13.081360494008548, + -13.084130615120698, + -13.086899417441577, + -13.089666901599033, + -13.092433068220615, + -13.09519791793357, + -13.09796145136485, + -13.100723669141104, + -13.103484571888687, + -13.106244160233654, + -13.109002434801763, + -13.111759396218472, + -13.11451504510894, + -13.117269382098034, + -13.12002240781032, + -13.122774122870064, + -13.125524527901241, + -13.128273623527523, + -13.131021410372291, + -13.133767889058623, + -13.136513060209305, + -13.139256924446823, + -13.14199948239337, + -13.14474073467084, + -13.147480681900834, + -13.150219324704654, + -13.152956663703307, + -13.155692699517505, + -13.158427432767665, + -13.161160864073908, + -13.163892994056058, + -13.166623823333648, + -13.169353352525912, + -13.172081582251792, + -13.174808513129934, + -13.177534145778688, + -13.180258480816116, + -13.182981518859973, + -13.185703260527736, + -13.188423706436575, + -13.191142857203376, + -13.193860713444721, + -13.196577275776907, + -13.199292544815933, + -13.202006521177507, + -13.204719205477044, + -13.207430598329664, + -13.210140700350196, + -13.212849512153175, + -13.215557034352845, + -13.218263267563154, + -13.220968212397764, + -13.22367186947004, + -13.226374239393055, + -13.229075322779591, + -13.231775120242142, + -13.234473632392902, + -13.237170859843783, + -13.239866803206398, + -13.242561463092073, + -13.245254840111844, + -13.247946934876452, + -13.25063774799635, + -13.253327280081699, + -13.25601553174237, + -13.258702503587948, + -13.261388196227717, + -13.26407261027068, + -13.266755746325552, + -13.269437605000748, + -13.272118186904404, + -13.274797492644357, + -13.277475522828164, + -13.280152278063085, + -13.282827758956095, + -13.285501966113879, + -13.288174900142833, + -13.290846561649065, + -13.293516951238393, + -13.296186069516349, + -13.298853917088174, + -13.30152049455882, + -13.304185802532958, + -13.306849841614962, + -13.309512612408925, + -13.31217411551865, + -13.31483435154765, + -13.317493321099155, + -13.320151024776107, + -13.322807463181157, + -13.325462636916674, + -13.328116546584738, + -13.330769192787143, + -13.333420576125395, + -13.336070697200714, + -13.33871955661404, + -13.341367154966013, + -13.344013492857004, + -13.346658570887081, + -13.34930238965604, + -13.351944949763386, + -13.354586251808339, + -13.357226296389834, + -13.359865084106518, + -13.362502615556759, + -13.365138891338633, + -13.36777391204994, + -13.370407678288185, + -13.373040190650597, + -13.375671449734117, + -13.378301456135404, + -13.380930210450828, + -13.38355771327648, + -13.386183965208167, + -13.388808966841408, + -13.391432718771444, + -13.394055221593229, + -13.396676475901437, + -13.399296482290453, + -13.401915241354386, + -13.404532753687057, + -13.407149019882006, + -13.409764040532494, + -13.412377816231492, + -13.414990347571695, + -13.417601635145513, + -13.420211679545075, + -13.42282048136223, + -13.425428041188539, + -13.428034359615287, + -13.430639437233477, + -13.43324327463383, + -13.435845872406782, + -13.438447231142495, + -13.441047351430845, + -13.443646233861427, + -13.44624387902356, + -13.448840287506275, + -13.451435459898331, + -13.454029396788199, + -13.456622098764075, + -13.459213566413872, + -13.461803800325226, + -13.464392801085493, + -13.466980569281743, + -13.469567105500776, + -13.472152410329105, + -13.47473648435297, + -13.477319328158327, + -13.479900942330856, + -13.482481327455956, + -13.485060484118748, + -13.487638412904078, + -13.490215114396506, + -13.49279058918032, + -13.495364837839528, + -13.49793786095786, + -13.500509659118766, + -13.503080232905424, + -13.505649582900729, + -13.5082177096873, + -13.510784613847475, + -13.513350295963324, + -13.515914756616631, + -13.518477996388908, + -13.521040015861388, + -13.523600815615026, + -13.526160396230507, + -13.52871875828823, + -13.531275902368323, + -13.53383182905064, + -13.536386538914755, + -13.538940032539966, + -13.541492310505298, + -13.544043373389497, + -13.546593221771037, + -13.549141856228115, + -13.551689277338653, + -13.554235485680296, + -13.556780481830417, + -13.55932426636611, + -13.561866839864201, + -13.564408202901234, + -13.566948356053484, + -13.569487299896945, + -13.57202503500735, + -13.57456156196014, + -13.577096881330496, + -13.579630993693318, + -13.582163899623238, + -13.584695599694607, + -13.58722609448151, + -13.589755384557755, + -13.592283470496874, + -13.594810352872132, + -13.597336032256518, + -13.599860509222745, + -13.602383784343264, + -13.60490585819024, + -13.607426731335575, + -13.609946404350893, + -13.612464877807552, + -13.614982152276632, + -13.617498228328941, + -13.620013106535023, + -13.622526787465143, + -13.625039271689296, + -13.627550559777205, + -13.630060652298328, + -13.632569549821842, + -13.635077252916659, + -13.637583762151422, + -13.640089078094498, + -13.642593201313987, + -13.645096132377715, + -13.647597871853243, + -13.650098420307858, + -13.652597778308579, + -13.65509594642215, + -13.657592925215052, + -13.660088715253494, + -13.662583317103412, + -13.665076731330478, + -13.667568958500091, + -13.670059999177381, + -13.67254985392721, + -13.675038523314175, + -13.677526007902594, + -13.680012308256526, + -13.682497424939758, + -13.684981358515808, + -13.687464109547925, + -13.689945678599091, + -13.692426066232024, + -13.694905273009166, + -13.697383299492696, + -13.699860146244527, + -13.7023358138263, + -13.704810302799391, + -13.707283613724911, + -13.7097557471637, + -13.71222670367633, + -13.714696483823113, + -13.717165088164087, + -13.719632517259026, + -13.722098771667442, + -13.72456385194857, + -13.727027758661391, + -13.729490492364608, + -13.73195205361667, + -13.73441244297575, + -13.736871660999762, + -13.73932970824635, + -13.741786585272894, + -13.744242292636512, + -13.74669683089405, + -13.749150200602097, + -13.751602402316967, + -13.754053436594722, + -13.756503303991146, + -13.758952005061765, + -13.761399540361845, + -13.763845910446376, + -13.766291115870095, + -13.76873515718747, + -13.771178034952703, + -13.773619749719735, + -13.776060302042247, + -13.778499692473648, + -13.780937921567087, + -13.783374989875453, + -13.78581089795137, + -13.788245646347194, + -13.790679235615027, + -13.793111666306702, + -13.795542938973789, + -13.797973054167597, + -13.800402012439172, + -13.8028298143393, + -13.805256460418503, + -13.807681951227039, + -13.810106287314909, + -13.812529469231844, + -13.814951497527325, + -13.81737237275056, + -13.819792095450502, + -13.822210666175842, + -13.824628085475007, + -13.827044353896166, + -13.829459471987223, + -13.831873440295826, + -13.83428625936936, + -13.83669792975495, + -13.839108451999458, + -13.841517826649488, + -13.843926054251387, + -13.846333135351234, + -13.848739070494856, + -13.851143860227813, + -13.85354750509541, + -13.855950005642693, + -13.858351362414446, + -13.860751575955193, + -13.863150646809201, + -13.865548575520478, + -13.867945362632769, + -13.870341008689566, + -13.872735514234098, + -13.875128879809338, + -13.877521105957998, + -13.879912193222534, + -13.882302142145143, + -13.88469095326776, + -13.887078627132071, + -13.889465164279494, + -13.891850565251197, + -13.894234830588085, + -13.89661796083081, + -13.898999956519763, + -13.90138081819508, + -13.903760546396638, + -13.906139141664056, + -13.908516604536702, + -13.910892935553681, + -13.913268135253844, + -13.915642204175786, + -13.918015142857842, + -13.920386951838095, + -13.92275763165437, + -13.925127182844237, + -13.92749560594501, + -13.929862901493744, + -13.93222907002724, + -13.934594112082047, + -13.936958028194454, + -13.939320818900496, + -13.941682484735956, + -13.944043026236358, + -13.94640244393697, + -13.94876073837281, + -13.951117910078636, + -13.953473959588957, + -13.95582888743802, + -13.958182694159829, + -13.960535380288121, + -13.96288694635639, + -13.965237392897865, + -13.967586720445533, + -13.969934929532117, + -13.972282020690095, + -13.974627994451682, + -13.97697285134885, + -13.979316591913308, + -13.981659216676519, + -13.98400072616969, + -13.986341120923775, + -13.988680401469479, + -13.991018568337246, + -13.993355622057276, + -13.995691563159513, + -13.998026392173646, + -14.000360109629117, + -14.002692716055115, + -14.005024211980574, + -14.007354597934176, + -14.009683874444358, + -14.012012042039295, + -14.014339101246922, + -14.016665052594913, + -14.018989896610695, + -14.021313633821444, + -14.023636264754083, + -14.025957789935289, + -14.02827820989148, + -14.030597525148835, + -14.03291573623327, + -14.035232843670462, + -14.037548847985828, + -14.039863749704539, + -14.04217754935152, + -14.044490247451435, + -14.046801844528712, + -14.049112341107518, + -14.051421737711781, + -14.053730034865167, + -14.056037233091104, + -14.058343332912765, + -14.060648334853074, + -14.06295223943471, + -14.065255047180095, + -14.067556758611412, + -14.069857374250589, + -14.072156894619312, + -14.074455320239009, + -14.076752651630866, + -14.079048889315821, + -14.081344033814561, + -14.08363808564753, + -14.08593104533492, + -14.088222913396677, + -14.090513690352497, + -14.09280337672183, + -14.095091973023884, + -14.09737947977761, + -14.099665897501719, + -14.101951226714673, + -14.10423546793469, + -14.106518621679731, + -14.108800688467525, + -14.111081668815546, + -14.113361563241023, + -14.115640372260938, + -14.117918096392025, + -14.120194736150781, + -14.122470292053446, + -14.124744764616022, + -14.12701815435426, + -14.129290461783672, + -14.131561687419515, + -14.133831831776808, + -14.136100895370324, + -14.138368878714589, + -14.140635782323887, + -14.142901606712252, + -14.14516635239348, + -14.147430019881115, + -14.149692609688463, + -14.151954122328581, + -14.154214558314287, + -14.156473918158147, + -14.158732202372489, + -14.160989411469396, + -14.16324554596071, + -14.165500606358021, + -14.167754593172683, + -14.170007506915807, + -14.172259348098251, + -14.174510117230641, + -14.176759814823354, + -14.179008441386529, + -14.181255997430053, + -14.183502483463581, + -14.185747899996516, + -14.187992247538027, + -14.190235526597032, + -14.192477737682216, + -14.194718881302013, + -14.196958957964618, + -14.19919796817799, + -14.201435912449835, + -14.20367279128763, + -14.205908605198598, + -14.20814335468973, + -14.210377040267769, + -14.212609662439222, + -14.214841221710351, + -14.21707171858718, + -14.21930115357549, + -14.221529527180822, + -14.223756839908473, + -14.22598309226351, + -14.228208284750743, + -14.230432417874756, + -14.232655492139887, + -14.234877508050236, + -14.237098466109659, + -14.239318366821774, + -14.24153721068996, + -14.243754998217362, + -14.245971729906874, + -14.248187406261154, + -14.25040202778263, + -14.252615594973477, + -14.254828108335643, + -14.257039568370827, + -14.2592499755805, + -14.261459330465883, + -14.263667633527964, + -14.265874885267497, + -14.268081086184985, + -14.270286236780704, + -14.272490337554688, + -14.274693389006737, + -14.276895391636401, + -14.279096345943007, + -14.281296252425635, + -14.28349511158313, + -14.2856929239141, + -14.287889689916915, + -14.29008541008971, + -14.292280084930374, + -14.294473714936574, + -14.296666300605727, + -14.29885784243502, + -14.3010483409214, + -14.303237796561577, + -14.305426209852032, + -14.307613581288999, + -14.30979991136848, + -14.311985200586244, + -14.314169449437822, + -14.316352658418506, + -14.318534828023354, + -14.320715958747195, + -14.32289605108461, + -14.325075105529953, + -14.327253122577341, + -14.329430102720659, + -14.331606046453548, + -14.33378095426942, + -14.335954826661455, + -14.33812766412259, + -14.340299467145535, + -14.34247023622276, + -14.344639971846506, + -14.346808674508774, + -14.348976344701333, + -14.351142982915722, + -14.353308589643238, + -14.35547316537495, + -14.35763671060169, + -14.359799225814063, + -14.361960711502428, + -14.364121168156922, + -14.366280596267444, + -14.368438996323661, + -14.370596368815004, + -14.372752714230673, + -14.37490803305964, + -14.377062325790634, + -14.379215592912159, + -14.381367834912481, + -14.383519052279645, + -14.385669245501447, + -14.387818415065462, + -14.389966561459032, + -14.392113685169262, + -14.39425978668303, + -14.396404866486977, + -14.398548925067523, + -14.400691962910841, + -14.402833980502885, + -14.404974978329372, + -14.407114956875791, + -14.409253916627394, + -14.411391858069209, + -14.413528781686033, + -14.415664687962423, + -14.417799577382711, + -14.419933450431003, + -14.422066307591173, + -14.424198149346855, + -14.426328976181464, + -14.428458788578181, + -14.430587587019955, + -14.432715371989506, + -14.434842143969325, + -14.436967903441678, + -14.439092650888592, + -14.441216386791869, + -14.443339111633087, + -14.445460825893582, + -14.447581530054473, + -14.449701224596645, + -14.451819910000754, + -14.453937586747227, + -14.45605425531626, + -14.458169916187828, + -14.460284569841674, + -14.462398216757306, + -14.464510857414009, + -14.466622492290846, + -14.468733121866638, + -14.47084274661999, + -14.472951367029275, + -14.475058983572637, + -14.477165596727998, + -14.479271206973044, + -14.481375814785238, + -14.483479420641816, + -14.485582025019783, + -14.487683628395924, + -14.489784231246793, + -14.491883834048712, + -14.49398243727779, + -14.496080041409895, + -14.498176646920673, + -14.500272254285546, + -14.502366863979711, + -14.504460476478137, + -14.506553092255562, + -14.508644711786504, + -14.51073533554525, + -14.512824964005873, + -14.5149135976422, + -14.517001236927854, + -14.519087882336219, + -14.521173534340457, + -14.523258193413502, + -14.525341860028071, + -14.527424534656648, + -14.529506217771496, + -14.53158690984465, + -14.533666611347927, + -14.535745322752907, + -14.537823044530958, + -14.539899777153218, + -14.541975521090603, + -14.544050276813802, + -14.546124044793281, + -14.548196825499284, + -14.550268619401825, + -14.5523394269707, + -14.55440924867548, + -14.556478084985514, + -14.558545936369926, + -14.560612803297614, + -14.562678686237259, + -14.564743585657315, + -14.566807502026009, + -14.568870435811352, + -14.570932387481129, + -14.572993357502904, + -14.575053346344015, + -14.57711235447158, + -14.579170382352496, + -14.581227430453435, + -14.583283499240846, + -14.58533858918096, + -14.587392700739782, + -14.589445834383097, + -14.591497990576471, + -14.593549169785247, + -14.595599372474538, + -14.597648599109247, + -14.599696850154052, + -14.601744126073408, + -14.603790427331548, + -14.605835754392487, + -14.60788010772002, + -14.609923487777717, + -14.611965895028929, + -14.614007329936788, + -14.616047792964208, + -14.618087284573873, + -14.620125805228255, + -14.622163355389606, + -14.624199935519952, + -14.626235546081105, + -14.628270187534655, + -14.630303860341972, + -14.632336564964202, + -14.634368301862278, + -14.636399071496914, + -14.638428874328598, + -14.640457710817607, + -14.64248558142399, + -14.644512486607589, + -14.64653842682801, + -14.648563402544658, + -14.650587414216707, + -14.652610462303118, + -14.65463254726263, + -14.656653669553766, + -14.658673829634832, + -14.660693027963916, + -14.662711264998883, + -14.664728541197384, + -14.666744857016852, + -14.6687602129145, + -14.670774609347323, + -14.672788046772107, + -14.674800525645407, + -14.676812046423569, + -14.678822609562724, + -14.68083221551878, + -14.682840864747426, + -14.684848557704143, + -14.68685529484419, + -14.688861076622604, + -14.690865903494215, + -14.692869775913634, + -14.69487269433525, + -14.696874659213243, + -14.69887567100157, + -14.700875730153978, + -14.702874837123993, + -14.704872992364926, + -14.706870196329879, + -14.708866449471731, + -14.71086175224314, + -14.712856105096563, + -14.714849508484232, + -14.716841962858169, + -14.718833468670173, + -14.720824026371835, + -14.722813636414529, + -14.724802299249411, + -14.726790015327428, + -14.728776785099305, + -14.730762609015564, + -14.732747487526499, + -14.734731421082197, + -14.736714410132533, + -14.73869645512716, + -14.740677556515525, + -14.742657714746851, + -14.744636930270163, + -14.746615203534255, + -14.748592534987717, + -14.750568925078928, + -14.752544374256043, + -14.754518882967012, + -14.756492451659568, + -14.758465080781237, + -14.76043677077932, + -14.762407522100917, + -14.76437733519291, + -14.76634621050197, + -14.76831414847455, + -14.770281149556899, + -14.772247214195044, + -14.774212342834806, + -14.776176535921794, + -14.778139793901405, + -14.780102117218822, + -14.78206350631901, + -14.784023961646735, + -14.785983483646541, + -14.787942072762768, + -14.789899729439536, + -14.791856454120762, + -14.793812247250147, + -14.795767109271177, + -14.797721040627135, + -14.799674041761092, + -14.801626113115898, + -14.803577255134206, + -14.805527468258452, + -14.80747675293086, + -14.809425109593443, + -14.811372538688003, + -14.81331904065614, + -14.815264615939233, + -14.817209264978459, + -14.819152988214778, + -14.821095786088947, + -14.823037659041505, + -14.824978607512792, + -14.82691863194293, + -14.82885773277183, + -14.830795910439202, + -14.83273316538454, + -14.834669498047134, + -14.83660490886606, + -14.838539398280183, + -14.840472966728166, + -14.842405614648461, + -14.844337342479308, + -14.84626815065874, + -14.848198039624588, + -14.850127009814463, + -14.852055061665773, + -14.85398219561572, + -14.855908412101295, + -14.85783371155928, + -14.859758094426251, + -14.86168156113858, + -14.863604112132425, + -14.865525747843739, + -14.867446468708264, + -14.869366275161543, + -14.871285167638902, + -14.873203146575465, + -14.875120212406147, + -14.87703636556566, + -14.878951606488501, + -14.880865935608968, + -14.882779353361153, + -14.88469186017893, + -14.886603456495981, + -14.888514142745771, + -14.890423919361565, + -14.892332786776413, + -14.894240745423167, + -14.896147795734477, + -14.898053938142771, + -14.899959173080287, + -14.90186350097905, + -14.903766922270881, + -14.90566943738739, + -14.907571046759992, + -14.909471750819888, + -14.911371549998078, + -14.913270444725356, + -14.915168435432308, + -14.917065522549322, + -14.91896170650657, + -14.920856987734032, + -14.92275136666147, + -14.924644843718458, + -14.92653741933435, + -14.928429093938302, + -14.930319867959266, + -14.932209741825986, + -14.934098715967005, + -14.935986790810666, + -14.937873966785101, + -14.93976024431824, + -14.941645623837816, + -14.943530105771346, + -14.945413690546152, + -14.947296378589355, + -14.949178170327862, + -14.95105906618839, + -14.952939066597438, + -14.954818171981316, + -14.956696382766124, + -14.958573699377757, + -14.960450122241914, + -14.962325651784086, + -14.964200288429563, + -14.966074032603434, + -14.967946884730583, + -14.969818845235691, + -14.971689914543246, + -14.97356009307752, + -14.975429381262593, + -14.977297779522338, + -14.979165288280429, + -14.981031907960338, + -14.982897638985333, + -14.984762481778487, + -14.98662643676266, + -14.988489504360519, + -14.990351684994533, + -14.99221297908696, + -14.994073387059865, + -14.995932909335107, + -14.99779154633435, + -14.99964929847905, + -15.001506166190469, + -15.003362149889664, + -15.005217249997493, + -15.007071466934613, + -15.008924801121484, + -15.010777252978361, + -15.0126288229253, + -15.014479511382161, + -15.0163293187686, + -15.018178245504075, + -15.020026292007842, + -15.021873458698959, + -15.023719745996287, + -15.025565154318484, + -15.027409684084008, + -15.029253335711124, + -15.031096109617891, + -15.032938006222173, + -15.03477902594163, + -15.03661916919373, + -15.038458436395738, + -15.040296827964722, + -15.042134344317551, + -15.043970985870898, + -15.04580675304123, + -15.047641646244822, + -15.049475665897749, + -15.051308812415893, + -15.053141086214927, + -15.054972487710335, + -15.056803017317408, + -15.058632675451221, + -15.06046146252667, + -15.06228937895844, + -15.064116425161032, + -15.065942601548734, + -15.06776790853565, + -15.069592346535682, + -15.071415915962532, + -15.07323861722971, + -15.075060450750529, + -15.076881416938098, + -15.078701516205337, + -15.080520748964966, + -15.082339115629512, + -15.084156616611303, + -15.085973252322464, + -15.08778902317494, + -15.089603929580468, + -15.091417971950584, + -15.093231150696642, + -15.095043466229795, + -15.096854918960995, + -15.098665509301004, + -15.100475237660389, + -15.102284104449515, + -15.104092110078556, + -15.105899254957494, + -15.10770553949611, + -15.109510964103995, + -15.11131552919054, + -15.113119235164943, + -15.114922082436209, + -15.116724071413145, + -15.118525202504369, + -15.120325476118296, + -15.122124892663155, + -15.123923452546974, + -15.125721156177594, + -15.127518003962656, + -15.129313996309603, + -15.131109133625696, + -15.132903416317992, + -15.134696844793364, + -15.13648941945848, + -15.138281140719817, + -15.140072008983665, + -15.141862024656117, + -15.14365118814307, + -15.145439499850228, + -15.147226960183112, + -15.149013569547035, + -15.150799328347125, + -15.152584236988316, + -15.15436829587535, + -15.156151505412778, + -15.157933866004951, + -15.159715378056033, + -15.161496041969999, + -15.163275858150623, + -15.165054827001493, + -15.166832948926006, + -15.16861022432736, + -15.170386653608569, + -15.172162237172449, + -15.17393697542163, + -15.175710868758541, + -15.177483917585429, + -15.17925612230435, + -15.181027483317157, + -15.182798001025525, + -15.184567675830928, + -15.186336508134657, + -15.1881044983378, + -15.189871646841269, + -15.191637954045776, + -15.193403420351846, + -15.195168046159807, + -15.196931831869804, + -15.198694777881789, + -15.20045688459552, + -15.202218152410568, + -15.203978581726316, + -15.205738172941956, + -15.207496926456482, + -15.20925484266871, + -15.211011921977258, + -15.212768164780556, + -15.214523571476846, + -15.216278142464182, + -15.218031878140424, + -15.21978477890324, + -15.22153684515012, + -15.223288077278355, + -15.225038475685047, + -15.226788040767119, + -15.22853677292129, + -15.230284672544101, + -15.232031740031903, + -15.233777975780853, + -15.235523380186928, + -15.237267953645906, + -15.239011696553385, + -15.24075460930477, + -15.24249669229528, + -15.244237945919943, + -15.245978370573603, + -15.247717966650915, + -15.249456734546344, + -15.25119467465417, + -15.252931787368484, + -15.254668073083185, + -15.256403532191992, + -15.25813816508843, + -15.259871972165847, + -15.261604953817388, + -15.263337110436023, + -15.265068442414533, + -15.266798950145507, + -15.268528634021354, + -15.27025749443429, + -15.271985531776348, + -15.273712746439374, + -15.275439138815022, + -15.277164709294768, + -15.2788894582699, + -15.280613386131511, + -15.28233649327052, + -15.284058780077652, + -15.285780246943451, + -15.287500894258269, + -15.289220722412278, + -15.290939731795458, + -15.292657922797613, + -15.294375295808347, + -15.296091851217094, + -15.297807589413095, + -15.299522510785403, + -15.301236615722889, + -15.302949904614243, + -15.304662377847961, + -15.306374035812365, + -15.30808487889558, + -15.309794907485557, + -15.311504121970053, + -15.31321252273665, + -15.31492011017274, + -15.316626884665526, + -15.318332846602035, + -15.320037996369106, + -15.321742334353393, + -15.323445860941373, + -15.325148576519323, + -15.326850481473356, + -15.328551576189389, + -15.330251861053153, + -15.331951336450203, + -15.33365000276591, + -15.335347860385458, + -15.337044909693846, + -15.338741151075896, + -15.34043658491624, + -15.342131211599332, + -15.343825031509443, + -15.345518045030655, + -15.347210252546873, + -15.34890165444182, + -15.35059225109903, + -15.352282042901862, + -15.353971030233485, + -15.35565921347689, + -15.357346593014888, + -15.359033169230104, + -15.360718942504977, + -15.362403913221774, + -15.364088081762574, + -15.365771448509271, + -15.367454013843583, + -15.369135778147042, + -15.370816741801006, + -15.37249690518664, + -15.374176268684936, + -15.375854832676703, + -15.377532597542565, + -15.379209563662972, + -15.380885731418182, + -15.382561101188285, + -15.38423567335318, + -15.385909448292587, + -15.38758242638605, + -15.389254608012928, + -15.390925993552399, + -15.392596583383465, + -15.394266377884945, + -15.395935377435473, + -15.39760358241351, + -15.399270993197334, + -15.40093761016504, + -15.402603433694548, + -15.404268464163593, + -15.405932701949737, + -15.407596147430354, + -15.409258800982647, + -15.410920662983632, + -15.41258173381015, + -15.41424201383886, + -15.415901503446243, + -15.4175602030086, + -15.419218112902055, + -15.420875233502548, + -15.422531565185848, + -15.424187108327537, + -15.425841863303024, + -15.427495830487535, + -15.429149010256118, + -15.430801402983645, + -15.432453009044808, + -15.434103828814123, + -15.435753862665925, + -15.437403110974367, + -15.439051574113435, + -15.440699252456927, + -15.442346146378464, + -15.443992256251496, + -15.445637582449283, + -15.447282125344925, + -15.448925885311326, + -15.450568862721223, + -15.452211057947174, + -15.453852471361559, + -15.455493103336579, + -15.457132954244264, + -15.45877202445646, + -15.460410314344834, + -15.462047824280885, + -15.463684554635929, + -15.465320505781108, + -15.466955678087382, + -15.468590071925542, + -15.470223687666197, + -15.471856525679783, + -15.473488586336558, + -15.475119870006603, + -15.476750377059822, + -15.478380107865949, + -15.480009062794531, + -15.481637242214953, + -15.483264646496412, + -15.484891276007934, + -15.48651713111837, + -15.488142212196399, + -15.489766519610514, + -15.49139005372904, + -15.493012814920126, + -15.494634803551747, + -15.496256019991696, + -15.497876464607598, + -15.499496137766902, + -15.50111503983688, + -15.502733171184632, + -15.504350532177078, + -15.505967123180968, + -15.507582944562877, + -15.509197996689203, + -15.510812279926173, + -15.512425794639832, + -15.514038541196062, + -15.515650519960564, + -15.517261731298868, + -15.518872175576321, + -15.520481853158111, + -15.52209076440924, + -15.523698909694543, + -15.525306289378674, + -15.526912903826123, + -15.528518753401201, + -15.530123838468043, + -15.531728159390617, + -15.533331716532716, + -15.534934510257955, + -15.536536540929779, + -15.538137808911463, + -15.539738314566106, + -15.541338058256635, + -15.542937040345798, + -15.544535261196181, + -15.546132721170194, + -15.547729420630068, + -15.549325359937871, + -15.55092053945549, + -15.552514959544647, + -15.554108620566886, + -15.555701522883583, + -15.55729366685594, + -15.558885052844987, + -15.560475681211583, + -15.562065552316415, + -15.563654666519998, + -15.565243024182674, + -15.566830625664617, + -15.568417471325825, + -15.570003561526127, + -15.57158889662518, + -15.573173476982472, + -15.57475730295732, + -15.576340374908867, + -15.577922693196083, + -15.579504258177774, + -15.581085070212572, + -15.582665129658935, + -15.584244436875155, + -15.58582299221935, + -15.58740079604947, + -15.588977848723294, + -15.590554150598432, + -15.592129702032317, + -15.59370450338222, + -15.59527855500524, + -15.596851857258308, + -15.598424410498174, + -15.599996215081427, + -15.601567271364491, + -15.603137579703612, + -15.604707140454865, + -15.606275953974166, + -15.607844020617252, + -15.609411340739692, + -15.610977914696889, + -15.612543742844078, + -15.614108825536317, + -15.615673163128504, + -15.617236755975359, + -15.618799604431445, + -15.620361708851144, + -15.621923069588677, + -15.623483686998094, + -15.625043561433278, + -15.626602693247941, + -15.628161082795625, + -15.629718730429712, + -15.631275636503403, + -15.63283180136974, + -15.6343872253816, + -15.63594190889168, + -15.637495852252519, + -15.639049055816484, + -15.640601519935778, + -15.642153244962433, + -15.643704231248313, + -15.645254479145114, + -15.646803989004372, + -15.648352761177442, + -15.649900796015526, + -15.651448093869647, + -15.652994655090671, + -15.654540480029288, + -15.65608556903603, + -15.657629922461252, + -15.659173540655148, + -15.66071642396775, + -15.662258572748916, + -15.663799987348337, + -15.665340668115542, + -15.666880615399892, + -15.668419829550581, + -15.669958310916636, + -15.67149605984692, + -15.673033076690128, + -15.674569361794791, + -15.676104915509276, + -15.677639738181773, + -15.679173830160321, + -15.680707191792788, + -15.682239823426869, + -15.683771725410102, + -15.685302898089859, + -15.686833341813342, + -15.688363056927592, + -15.689892043779482, + -15.691420302715725, + -15.692947834082858, + -15.694474638227264, + -15.69600071549516, + -15.69752606623259, + -15.699050690785445, + -15.700574589499437, + -15.702097762720125, + -15.7036202107929, + -15.705141934062986, + -15.706662932875451, + -15.708183207575185, + -15.709702758506928, + -15.711221586015247, + -15.712739690444545, + -15.714257072139066, + -15.715773731442887, + -15.71728966869992, + -15.718804884253919, + -15.720319378448465, + -15.721833151626985, + -15.723346204132739, + -15.724858536308817, + -15.726370148498157, + -15.727881041043524, + -15.729391214287526, + -15.730900668572609, + -15.732409404241048, + -15.733917421634963, + -15.735424721096308, + -15.736931302966871, + -15.738437167588284, + -15.739942315302013, + -15.741446746449357, + -15.74295046137146, + -15.744453460409304, + -15.745955743903696, + -15.747457312195298, + -15.748958165624598, + -15.750458304531927, + -15.751957729257452, + -15.753456440141177, + -15.75495443752295, + -15.756451721742453, + -15.7579482931392, + -15.759444152052554, + -15.760939298821711, + -15.762433733785707, + -15.763927457283415, + -15.76542046965355, + -15.766912771234663, + -15.768404362365144, + -15.769895243383223, + -15.771385414626968, + -15.772874876434283, + -15.774363629142917, + -15.775851673090457, + -15.777339008614328, + -15.778825636051792, + -15.780311555739953, + -15.781796768015758, + -15.783281273215984, + -15.784765071677256, + -15.786248163736039, + -15.787730549728632, + -15.789212229991175, + -15.790693204859654, + -15.79217347466989, + -15.793653039757542, + -15.795131900458117, + -15.796610057106955, + -15.79808751003924, + -15.799564259589992, + -15.801040306094082, + -15.802515649886208, + -15.803990291300918, + -15.805464230672595, + -15.80693746833547, + -15.808410004623607, + -15.809881839870915, + -15.811352974411145, + -15.812823408577882, + -15.814293142704567, + -15.815762177124466, + -15.817230512170696, + -15.818698148176214, + -15.820165085473816, + -15.82163132439614, + -15.823096865275666, + -15.82456170844472, + -15.826025854235464, + -15.8274893029799, + -15.828952055009882, + -15.830414110657099, + -15.831875470253074, + -15.833336134129192, + -15.834796102616663, + -15.836255376046548, + -15.837713954749749, + -15.839171839057006, + -15.840629029298912, + -15.842085525805887, + -15.843541328908207, + -15.844996438935988, + -15.846450856219182, + -15.847904581087592, + -15.849357613870856, + -15.850809954898468, + -15.85226160449975, + -15.85371256300388, + -15.85516283073987, + -15.856612408036579, + -15.858061295222708, + -15.859509492626808, + -15.860957000577264, + -15.86240381940231, + -15.863849949430024, + -15.865295390988326, + -15.866740144404982, + -15.868184210007595, + -15.86962758812362, + -15.871070279080358, + -15.872512283204946, + -15.87395360082437, + -15.875394232265458, + -15.876834177854887, + -15.878273437919171, + -15.879712012784676, + -15.881149902777612, + -15.882587108224024, + -15.884023629449814, + -15.885459466780722, + -15.886894620542336, + -15.888329091060085, + -15.889762878659246, + -15.891195983664947, + -15.892628406402148, + -15.894060147195665, + -15.895491206370155, + -15.896921584250121, + -15.898351281159913, + -15.899780297423725, + -15.901208633365592, + -15.902636289309408, + -15.904063265578898, + -15.905489562497642, + -15.906915180389063, + -15.90834011957643, + -15.909764380382859, + -15.91118796313131, + -15.912610868144595, + -15.914033095745365, + -15.91545464625612, + -15.916875519999213, + -15.918295717296829, + -15.919715238471012, + -15.92113408384365, + -15.922552253736475, + -15.923969748471068, + -15.925386568368856, + -15.926802713751114, + -15.928218184938965, + -15.929632982253375, + -15.93104710601516, + -15.932460556544985, + -15.93387333416336, + -15.935285439190638, + -15.93669687194703, + -15.938107632752589, + -15.93951772192721, + -15.940927139790643, + -15.942335886662487, + -15.943743962862182, + -15.945151368709023, + -15.946558104522147, + -15.947964170620544, + -15.94936956732305, + -15.950774294948344, + -15.952178353814967, + -15.953581744241289, + -15.954984466545547, + -15.956386521045815, + -15.957787908060023, + -15.959188627905943, + -15.9605886809012, + -15.961988067363265, + -15.96338678760946, + -15.964784841956954, + -15.966182230722769, + -15.96757895422377, + -15.968975012776674, + -15.97037040669805, + -15.971765136304313, + -15.973159201911729, + -15.97455260383641, + -15.975945342394322, + -15.977337417901278, + -15.978728830672946, + -15.980119581024832, + -15.981509669272302, + -15.98289909573057, + -15.984287860714698, + -15.985675964539597, + -15.987063407520031, + -15.988450189970616, + -15.989836312205808, + -15.991221774539927, + -15.992606577287132, + -15.993990720761444, + -15.995374205276718, + -15.996757031146677, + -15.998139198684886, + -15.999520708204757, + -16.000901560019564, + -16.00228175444242, + -16.003661291786297, + -16.005040172364016, + -16.006418396488243, + -16.00779596447151, + -16.00917287662618, + -16.010549133264483, + -16.0119247346985, + -16.013299681240152, + -16.01467397320122, + -16.01604761089333, + -16.01742059462798, + -16.018792924716486, + -16.020164601470047, + -16.021535625199693, + -16.022905996216316, + -16.02427571483066, + -16.02564478135332, + -16.02701319609474, + -16.02838095936521, + -16.029748071474895, + -16.031114532733785, + -16.03248034345174, + -16.03384550393847, + -16.035210014503534, + -16.03657387545634, + -16.03793708710616, + -16.03929964976211, + -16.04066156373316, + -16.04202282932814, + -16.043383446855717, + -16.044743416624428, + -16.046102738942654, + -16.04746141411863, + -16.04881944246045, + -16.05017682427605, + -16.051533559873235, + -16.05288964955965, + -16.0542450936428, + -16.055599892430035, + -16.056954046228576, + -16.058307555345483, + -16.05966042008767, + -16.061012640761916, + -16.062364217674844, + -16.063715151132932, + -16.06506544144252, + -16.066415088909793, + -16.06776409384079, + -16.069112456541408, + -16.070460177317404, + -16.07180725647438, + -16.073153694317796, + -16.074499491152967, + -16.075844647285066, + -16.07718916301911, + -16.07853303865998, + -16.079876274512415, + -16.081218870881, + -16.082560828070175, + -16.083902146384244, + -16.085242826127363, + -16.086582867603532, + -16.08792227111662, + -16.089261036970353, + -16.090599165468298, + -16.091936656913884, + -16.093273511610402, + -16.09460972986099, + -16.095945311968652, + -16.097280258236236, + -16.09861456896645, + -16.099948244461864, + -16.10128128502489, + -16.10261369095781, + -16.10394546256276, + -16.10527660014172, + -16.106607103996545, + -16.107936974428934, + -16.109266211740444, + -16.110594816232485, + -16.111922788206336, + -16.113250127963116, + -16.114576835803813, + -16.115902912029274, + -16.117228356940185, + -16.11855317083711, + -16.119877354020453, + -16.121200906790488, + -16.122523829447342, + -16.123846122290985, + -16.125167785621272, + -16.12648881973789, + -16.127809224940396, + -16.129129001528202, + -16.13044814980058, + -16.13176667005665, + -16.1330845625954, + -16.13440182771567, + -16.135718465716167, + -16.13703447689544, + -16.138349861551905, + -16.139664619983837, + -16.140978752489367, + -16.142292259366485, + -16.14360514091304, + -16.14491739742673, + -16.14622902920513, + -16.147540036545653, + -16.148850419745585, + -16.15016017910206, + -16.15146931491208, + -16.1527778274725, + -16.154085717080036, + -16.15539298403126, + -16.156699628622604, + -16.15800565115036, + -16.159311051910677, + -16.16061583119957, + -16.1619199893129, + -16.163223526546396, + -16.164526443195648, + -16.165828739556098, + -16.16713041592305, + -16.168431472591678, + -16.169731909856996, + -16.171031728013894, + -16.172330927357113, + -16.173629508181254, + -16.174927470780784, + -16.176224815450023, + -16.177521542483152, + -16.17881765217422, + -16.180113144817124, + -16.181408020705625, + -16.18270228013335, + -16.183995923393777, + -16.185288950780254, + -16.186581362585986, + -16.18787315910403, + -16.189164340627315, + -16.190454907448622, + -16.191744859860602, + -16.193034198155758, + -16.19432292262646, + -16.195611033564926, + -16.196898531263262, + -16.198185416013402, + -16.199471688107163, + -16.200757347836216, + -16.202042395492096, + -16.20332683136619, + -16.20461065574976, + -16.20589386893392, + -16.20717647120965, + -16.20845846286779, + -16.209739844199035, + -16.21102061549395, + -16.21230077704297, + -16.213580329136366, + -16.21485927206429, + -16.21613760611676, + -16.21741533158364, + -16.218692448754666, + -16.21996895791943, + -16.221244859367395, + -16.222520153387876, + -16.223794840270063, + -16.225068920302995, + -16.226342393775578, + -16.227615260976584, + -16.228887522194647, + -16.230159177718253, + -16.23143022783577, + -16.232700672835414, + -16.233970513005268, + -16.235239748633273, + -16.236508380007244, + -16.23777640741485, + -16.239043831143626, + -16.240310651480968, + -16.241576868714137, + -16.24284248313026, + -16.24410749501632, + -16.24537190465917, + -16.246635712345526, + -16.247898918361965, + -16.249161522994925, + -16.250423526530714, + -16.2516849292555, + -16.252945731455316, + -16.254205933416056, + -16.255465535423482, + -16.256724537763215, + -16.25798294072075, + -16.259240744581437, + -16.260497949630487, + -16.261754556152983, + -16.26301056443387, + -16.264265974757958, + -16.265520787409923, + -16.266775002674297, + -16.268028620835487, + -16.26928164217776, + -16.270534066985245, + -16.27178589554194, + -16.273037128131705, + -16.274287765038274, + -16.275537806545223, + -16.27678725293602, + -16.27803610449399, + -16.279284361502306, + -16.280532024244028, + -16.28177909300207, + -16.283025568059212, + -16.28427144969811, + -16.28551673820127, + -16.28676143385107, + -16.288005536929756, + -16.289249047719437, + -16.290491966502085, + -16.29173429355955, + -16.29297602917353, + -16.2942171736256, + -16.295457727197203, + -16.296697690169633, + -16.297937062824072, + -16.299175845441553, + -16.30041403830298, + -16.30165164168912, + -16.302888655880608, + -16.30412508115795, + -16.305360917801508, + -16.306596166091527, + -16.3078308263081, + -16.309064898731197, + -16.31029838364066, + -16.31153128131618, + -16.312763592037335, + -16.313995316083556, + -16.31522645373414, + -16.31645700526827, + -16.31768697096497, + -16.318916351103155, + -16.320145145961586, + -16.321373355818906, + -16.32260098095362, + -16.3238280216441, + -16.325054478168585, + -16.32628035080519, + -16.327505639831884, + -16.328730345526512, + -16.329954468166786, + -16.331178008030285, + -16.33240096539446, + -16.333623340536615, + -16.33484513373394, + -16.336066345263482, + -16.33728697540216, + -16.338507024426768, + -16.339726492613952, + -16.34094538024024, + -16.342163687582023, + -16.34338141491556, + -16.344598562516982, + -16.34581513066228, + -16.34703111962733, + -16.34824652968786, + -16.349461361119474, + -16.35067561419764, + -16.35188928919771, + -16.353102386394884, + -16.354314906064246, + -16.355526848480736, + -16.35673821391918, + -16.35794900265426, + -16.359159214960528, + -16.360368851112415, + -16.36157791138421, + -16.362786396050083, + -16.363994305384058, + -16.365201639660043, + -16.36640839915181, + -16.367614584132994, + -16.368820194877117, + -16.37002523165755, + -16.37122969474755, + -16.37243358442024, + -16.373636900948604, + -16.37483964460551, + -16.376041815663676, + -16.377243414395718, + -16.3784444410741, + -16.37964489597117, + -16.380844779359133, + -16.382044091510075, + -16.38324283269594, + -16.384441003188567, + -16.385638603259636, + -16.386835633180723, + -16.38803209322326, + -16.389227983658547, + -16.390423304757764, + -16.39161805679196, + -16.392812240032054, + -16.39400585474884, + -16.395198901212968, + -16.396391379694983, + -16.397583290465278, + -16.398774633794133, + -16.399965409951694, + -16.401155619207977, + -16.402345261832867, + -16.403534338096126, + -16.40472284826739, + -16.40591079261616, + -16.40709817141181, + -16.40828498492359, + -16.409471233420618, + -16.410656917171877, + -16.41184203644624, + -16.41302659151244, + -16.41421058263908, + -16.415394010094637, + -16.416576874147466, + -16.41775917506579, + -16.418940913117698, + -16.420122088571166, + -16.42130270169403, + -16.422482752754007, + -16.423662242018676, + -16.4248411697555, + -16.42601953623181, + -16.427197341714802, + -16.42837458647156, + -16.429551270769025, + -16.43072739487403, + -16.43190295905326, + -16.43307796357329, + -16.434252408700555, + -16.435426294701372, + -16.43659962184193, + -16.437772390388286, + -16.438944600606373, + -16.440116252762003, + -16.441287347120852, + -16.442457883948478, + -16.44362786351031, + -16.444797286071644, + -16.445966151897657, + -16.447134461253405, + -16.4483022144038, + -16.44946941161364, + -16.450636053147605, + -16.451802139270235, + -16.452967670245943, + -16.45413264633903, + -16.455297067813657, + -16.456460934933865, + -16.457624247963572, + -16.45878700716657, + -16.45994921280652, + -16.46111086514696, + -16.462271964451308, + -16.463432510982845, + -16.464592505004738, + -16.46575194678002, + -16.46691083657161, + -16.46806917464229, + -16.469226961254723, + -16.470384196671446, + -16.47154088115487, + -16.472697014967277, + -16.473852598370836, + -16.475007631627584, + -16.47616211499943, + -16.477316048748158, + -16.47846943313544, + -16.479622268422805, + -16.48077455487168, + -16.48192629274334, + -16.483077482298956, + -16.48422812379957, + -16.485378217506096, + -16.48652776367933, + -16.487676762579937, + -16.488825214468463, + -16.489973119605324, + -16.49112047825082, + -16.492267290665122, + -16.49341355710828, + -16.494559277840214, + -16.495704453120723, + -16.496849083209494, + -16.49799316836607, + -16.499136708849885, + -16.500279704920246, + -16.501422156836334, + -16.50256406485721, + -16.50370542924181, + -16.504846250248946, + -16.505986528137306, + -16.50712626316546, + -16.50826545559185, + -16.509404105674793, + -16.51054221367249, + -16.511679779843014, + -16.512816804444316, + -16.51395328773423, + -16.515089229970453, + -16.516224631410573, + -16.517359492312053, + -16.518493812932224, + -16.519627593528313, + -16.5207608343574, + -16.521893535676465, + -16.52302569774235, + -16.52415732081179, + -16.525288405141378, + -16.5264189509876, + -16.527548958606822, + -16.528678428255276, + -16.529807360189075, + -16.530935754664213, + -16.532063611936568, + -16.533190932261885, + -16.534317715895792, + -16.535443963093797, + -16.536569674111284, + -16.53769484920352, + -16.53881948862564, + -16.53994359263267, + -16.541067161479507, + -16.54219019542093, + -16.54331269471159, + -16.544434659606026, + -16.545556090358655, + -16.546676987223762, + -16.547797350455525, + -16.548917180307992, + -16.550036477035093, + -16.551155240890637, + -16.552273472128313, + -16.553391171001685, + -16.5545083377642, + -16.555624972669186, + -16.55674107596985, + -16.557856647919273, + -16.55897168877042, + -16.560086198776133, + -16.56120017818914, + -16.56231362726204, + -16.563426546247317, + -16.56453893539733, + -16.56565079496433, + -16.56676212520043, + -16.56787292635764, + -16.56898319868784, + -16.57009294244279, + -16.571202157874136, + -16.5723108452334, + -16.57341900477198, + -16.574526636741165, + -16.575633741392117, + -16.576740318975883, + -16.57784636974338, + -16.57895189394542, + -16.580056891832687, + -16.58116136365575, + -16.58226530966505, + -16.58336873011092, + -16.584471625243566, + -16.58557399531308, + -16.58667584056943, + -16.58777716126247, + -16.58887795764193, + -16.589978229957424, + -16.591077978458447, + -16.592177203394375, + -16.59327590501447, + -16.594374083567864, + -16.59547173930358, + -16.59656887247052, + -16.59766548331747, + -16.59876157209309, + -16.599857139045923, + -16.600952184424404, + -16.60204670847684, + -16.603140711451424, + -16.604234193596227, + -16.605327155159202, + -16.60641959638819, + -16.60751151753091, + -16.60860291883496, + -16.609693800547827, + -16.610784162916875, + -16.61187400618935, + -16.612963330612384, + -16.61405213643299, + -16.61514042389806, + -16.616228193254372, + -16.617315444748588, + -16.61840217862725, + -16.61948839513678, + -16.620574094523487, + -16.621659277033565, + -16.622743942913083, + -16.623828092407997, + -16.624911725764143, + -16.62599484322725, + -16.62707744504292, + -16.628159531456642, + -16.62924110271378, + -16.6303221590596, + -16.631402700739226, + -16.63248272799769, + -16.63356224107989, + -16.634641240230618, + -16.635719725694543, + -16.63679769771622, + -16.63787515654008, + -16.638952102410457, + -16.64002853557155, + -16.641104456267445, + -16.642179864742126, + -16.643254761239437, + -16.644329146003123, + -16.64540301927681, + -16.64647638130401, + -16.647549232328107, + -16.648621572592386, + -16.649693402340006, + -16.650764721814014, + -16.651835531257333, + -16.65290583091278, + -16.653975621023058, + -16.655044901830742, + -16.656113673578307, + -16.6571819365081, + -16.658249690862355, + -16.6593169368832, + -16.66038367481264, + -16.661449904892564, + -16.662515627364744, + -16.663580842470843, + -16.66464555045241, + -16.66570975155087, + -16.666773446007543, + -16.667836634063626, + -16.668899315960203, + -16.669961491938253, + -16.671023162238626, + -16.672084327102063, + -16.67314498676919, + -16.674205141480527, + -16.675264791476465, + -16.676323936997292, + -16.677382578283176, + -16.678440715574165, + -16.679498349110208, + -16.680555479131126, + -16.681612105876635, + -16.68266822958633, + -16.683723850499696, + -16.684778968856104, + -16.68583358489481, + -16.68688769885495, + -16.687941310975553, + -16.688994421495543, + -16.690047030653712, + -16.69109913868875, + -16.69215074583923, + -16.693201852343606, + -16.694252458440236, + -16.695302564367342, + -16.69635217036305, + -16.69740127666536, + -16.698449883512172, + -16.699497991141257, + -16.70054559979029, + -16.701592709696815, + -16.702639321098275, + -16.703685434232, + -16.7047310493352, + -16.70577616664498, + -16.70682078639833, + -16.707864908832114, + -16.708908534183102, + -16.70995166268795, + -16.71099429458318, + -16.71203643010523, + -16.713078069490404, + -16.714119212974904, + -16.715159860794817, + -16.716200013186118, + -16.71723967038467, + -16.718278832626222, + -16.71931750014641, + -16.720355673180762, + -16.72139335196469, + -16.722430536733498, + -16.723467227722367, + -16.724503425166386, + -16.72553912930051, + -16.726574340359605, + -16.727609058578402, + -16.72864328419153, + -16.729677017433517, + -16.73071025853876, + -16.73174300774156, + -16.7327752652761, + -16.733807031376447, + -16.73483830627657, + -16.735869090210304, + -16.7368993834114, + -16.737929186113483, + -16.738958498550065, + -16.73998732095455, + -16.741015653560236, + -16.7420434966003, + -16.743070850307813, + -16.744097714915736, + -16.74512409065692, + -16.746149977764098, + -16.747175376469905, + -16.748200287006853, + -16.749224709607347, + -16.75024864450369, + -16.751272091928055, + -16.752295052112526, + -16.753317525289063, + -16.754339511689516, + -16.75536101154563, + -16.756382025089042, + -16.757402552551273, + -16.758422594163733, + -16.759442150157724, + -16.760461220764437, + -16.761479806214957, + -16.762497906740254, + -16.76351552257119, + -16.764532653938513, + -16.765549301072866, + -16.766565464204792, + -16.7675811435647, + -16.768596339382913, + -16.769611051889626, + -16.770625281314935, + -16.771639027888824, + -16.77265229184117, + -16.773665073401734, + -16.774677372800177, + -16.77568919026604, + -16.776700526028762, + -16.777711380317673, + -16.778721753361992, + -16.77973164539082, + -16.780741056633172, + -16.781749987317927, + -16.78275843767387, + -16.78376640792968, + -16.784773898313915, + -16.78578090905504, + -16.78678744038139, + -16.787793492521214, + -16.788799065702634, + -16.789804160153675, + -16.79080877610225, + -16.79181291377616, + -16.792816573403105, + -16.793819755210667, + -16.79482245942633, + -16.795824686277463, + -16.796826435991328, + -16.797827708795076, + -16.79882850491576, + -16.79982882458031, + -16.80082866801556, + -16.80182803544823, + -16.802826927104938, + -16.803825343212186, + -16.804823283996374, + -16.805820749683793, + -16.806817740500627, + -16.807814256672945, + -16.808810298426717, + -16.80980586598781, + -16.81080095958196, + -16.811795579434833, + -16.81278972577195, + -16.813783398818746, + -16.81477659880054, + -16.815769325942558, + -16.8167615804699, + -16.81775336260757, + -16.818744672580458, + -16.81973551061336, + -16.820725876930943, + -16.821715771757788, + -16.822705195318356, + -16.823694147837013, + -16.82468262953801, + -16.825670640645487, + -16.826658181383486, + -16.827645251975937, + -16.82863185264667, + -16.8296179836194, + -16.83060364511774, + -16.831588837365203, + -16.83257356058518, + -16.83355781500096, + -16.834541600835745, + -16.835524918312604, + -16.836507767654517, + -16.83749014908435, + -16.838472062824863, + -16.839453509098718, + -16.840434488128462, + -16.841415000136536, + -16.842395045345285, + -16.843374623976935, + -16.844353736253616, + -16.84533238239735, + -16.84631056263005, + -16.847288277173526, + -16.84826552624948, + -16.849242310079514, + -16.85021862888512, + -16.851194482887685, + -16.852169872308497, + -16.85314479736872, + -16.854119258289433, + -16.855093255291607, + -16.85606678859609, + -16.85703985842365, + -16.858012464994935, + -16.858984608530488, + -16.859956289250754, + -16.86092750737606, + -16.861898263126644, + -16.86286855672263, + -16.863838388384043, + -16.86480775833079, + -16.865776666782693, + -16.866745113959453, + -16.867713100080678, + -16.86868062536586, + -16.869647690034398, + -16.870614294305575, + -16.871580438398578, + -16.87254612253249, + -16.873511346926286, + -16.87447611179883, + -16.875440417368903, + -16.87640426385516, + -16.877367651476163, + -16.878330580450367, + -16.87929305099612, + -16.880255063331674, + -16.881216617675168, + -16.882177714244644, + -16.88313835325804, + -16.884098534933184, + -16.885058259487803, + -16.88601752713953, + -16.886976338105875, + -16.88793469260426, + -16.888892590852006, + -16.889850033066313, + -16.890807019464294, + -16.89176355026295, + -16.892719625679185, + -16.893675245929792, + -16.894630411231468, + -16.895585121800803, + -16.89653937785428, + -16.89749317960829, + -16.898446527279113, + -16.899399421082926, + -16.900351861235805, + -16.90130384795372, + -16.902255381452548, + -16.903206461948052, + -16.904157089655897, + -16.905107264791646, + -16.906056987570754, + -16.907006258208586, + -16.907955076920384, + -16.908903443921314, + -16.909851359426412, + -16.910798823650634, + -16.91174583680882, + -16.912692399115713, + -16.913638510785955, + -16.91458417203408, + -16.915529383074524, + -16.916474144121626, + -16.917418455389612, + -16.918362317092612, + -16.919305729444655, + -16.920248692659673, + -16.921191206951477, + -16.9221332725338, + -16.923074889620256, + -16.924016058424368, + -16.924956779159544, + -16.92589705203911, + -16.926836877276276, + -16.927776255084154, + -16.928715185675753, + -16.92965366926399, + -16.930591706061662, + -16.931529296281482, + -16.932466440136057, + -16.933403137837885, + -16.934339389599373, + -16.935275195632823, + -16.93621055615044, + -16.937145471364317, + -16.938079941486457, + -16.939013966728755, + -16.93994754730301, + -16.940880683420918, + -16.94181337529408, + -16.942745623133977, + -16.943677427152014, + -16.944608787559485, + -16.945539704567576, + -16.946470178387386, + -16.947400209229905, + -16.94832979730602, + -16.949258942826525, + -16.950187646002114, + -16.951115907043373, + -16.952043726160788, + -16.95297110356476, + -16.95389803946557, + -16.95482453407341, + -16.95575058759837, + -16.956676200250442, + -16.95760137223951, + -16.958526103775363, + -16.959450395067694, + -16.960374246326097, + -16.961297657760056, + -16.96222062957896, + -16.963143161992107, + -16.964065255208684, + -16.96498690943778, + -16.96590812488839, + -16.966828901769404, + -16.967749240289617, + -16.968669140657724, + -16.969588603082315, + -16.970507627771887, + -16.971426214934837, + -16.97234436477946, + -16.973262077513954, + -16.974179353346415, + -16.975096192484845, + -16.976012595137142, + -16.97692856151111, + -16.977844091814443, + -16.978759186254752, + -16.979673845039542, + -16.980588068376214, + -16.98150185647208, + -16.98241520953434, + -16.98332812777011, + -16.984240611386404, + -16.985152660590128, + -16.986064275588095, + -16.98697545658703, + -16.987886203793536, + -16.98879651741414, + -16.98970639765526, + -16.990615844723223, + -16.99152485882425, + -16.992433440164465, + -16.993341588949896, + -16.99424930538647, + -16.995156589680025, + -16.996063442036288, + -16.996969862660897, + -16.997875851759392, + -16.99878140953721, + -16.999686536199693, + -17.000591231952086, + -17.001495496999535, + -17.00239933154709, + -17.0033027357997, + -17.004205709962214, + -17.0051082542394, + -17.00601036883591, + -17.006912053956302, + -17.00781330980504, + -17.008714136586498, + -17.009614534504937, + -17.010514503764533, + -17.01141404456936, + -17.012313157123394, + -17.01321184163052, + -17.014110098294516, + -17.015007927319072, + -17.015905328907774, + -17.016802303264118, + -17.017698850591497, + -17.01859497109321, + -17.01949066497246, + -17.02038593243235, + -17.02128077367589, + -17.022175188905994, + -17.02306917832548, + -17.023962742137055, + -17.02485588054335, + -17.025748593746886, + -17.026640881950097, + -17.027532745355316, + -17.028424184164777, + -17.02931519858062, + -17.030205788804885, + -17.03109595503953, + -17.0319856974864, + -17.032875016347255, + -17.03376391182375, + -17.03465238411745, + -17.035540433429826, + -17.036428059962244, + -17.037315263915985, + -17.038202045492227, + -17.039088404892052, + -17.03997434231645, + -17.040859857966318, + -17.04174495204245, + -17.042629624745544, + -17.043513876276208, + -17.044397706834957, + -17.045281116622203, + -17.046164105838265, + -17.04704667468337, + -17.04792882335764, + -17.048810552061116, + -17.049691860993736, + -17.050572750355343, + -17.051453220345678, + -17.052333271164404, + -17.053212903011076, + -17.05409211608515, + -17.054970910586004, + -17.055849286712906, + -17.056727244665037, + -17.057604784641477, + -17.058481906841216, + -17.059358611463146, + -17.06023489870607, + -17.061110768768692, + -17.061986221849622, + -17.062861258147375, + -17.063735877860367, + -17.06461008118693, + -17.0654838683253, + -17.066357239473607, + -17.067230194829897, + -17.068102734592117, + -17.068974858958125, + -17.06984656812568, + -17.07071786229245, + -17.071588741656008, + -17.072459206413825, + -17.073329256763294, + -17.074198892901705, + -17.075068115026248, + -17.07593692333403, + -17.07680531802206, + -17.07767329928725, + -17.078540867326428, + -17.079408022336313, + -17.080274764513543, + -17.081141094054654, + -17.0820070111561, + -17.082872516014227, + -17.083737608825302, + -17.084602289785483, + -17.08546655909085, + -17.086330416937376, + -17.087193863520948, + -17.088056899037362, + -17.08891952368232, + -17.089781737651425, + -17.09064354114019, + -17.091504934344034, + -17.092365917458284, + -17.09322649067818, + -17.09408665419886, + -17.09494640821537, + -17.095805752922672, + -17.096664688515624, + -17.097523215188996, + -17.098381333137464, + -17.099239042555617, + -17.100096343637944, + -17.100953236578842, + -17.101809721572618, + -17.102665798813494, + -17.103521468495586, + -17.104376730812923, + -17.10523158595944, + -17.10608603412899, + -17.106940075515315, + -17.107793710312084, + -17.10864693871286, + -17.109499760911117, + -17.110352177100246, + -17.111204187473533, + -17.112055792224183, + -17.112906991545294, + -17.11375778562989, + -17.114608174670895, + -17.115458158861134, + -17.116307738393356, + -17.1171569134602, + -17.11800568425423, + -17.118854050967908, + -17.119702013793606, + -17.120549572923608, + -17.121396728550106, + -17.122243480865198, + -17.123089830060888, + -17.12393577632909, + -17.12478131986164, + -17.125626460850263, + -17.1264711994866, + -17.127315535962207, + -17.128159470468535, + -17.12900300319696, + -17.129846134338756, + -17.130688864085112, + -17.13153119262712, + -17.132373120155787, + -17.133214646862022, + -17.134055772936655, + -17.134896498570406, + -17.135736823953927, + -17.136576749277765, + -17.137416274732374, + -17.13825540050813, + -17.139094126795303, + -17.139932453784084, + -17.14077038166457, + -17.14160791062677, + -17.142445040860597, + -17.143281772555877, + -17.144118105902347, + -17.144954041089647, + -17.145789578307337, + -17.146624717744878, + -17.147459459591644, + -17.148293804036918, + -17.149127751269894, + -17.149961301479678, + -17.150794454855284, + -17.151627211585634, + -17.152459571859563, + -17.153291535865815, + -17.154123103793037, + -17.1549542758298, + -17.155785052164582, + -17.15661543298576, + -17.15744541848163, + -17.1582750088404, + -17.159104204250184, + -17.15993300489901, + -17.160761410974814, + -17.161589422665447, + -17.162417040158658, + -17.16324426364212, + -17.164071093303416, + -17.16489752933003, + -17.165723571909364, + -17.166549221228728, + -17.16737447747535, + -17.168199340836352, + -17.16902381149879, + -17.16984788964961, + -17.17067157547568, + -17.17149486916378, + -17.172317770900598, + -17.17314028087273, + -17.173962399266685, + -17.17478412626889, + -17.17560546206567, + -17.176426406843273, + -17.177246960787855, + -17.178067124085484, + -17.178886896922133, + -17.179706279483696, + -17.180525271955972, + -17.181343874524675, + -17.182162087375428, + -17.182979910693767, + -17.18379734466514, + -17.184614389474905, + -17.18543104530833, + -17.186247312350606, + -17.187063190786823, + -17.187878680801987, + -17.188693782581016, + -17.189508496308743, + -17.190322822169907, + -17.191136760349163, + -17.19195031103108, + -17.192763474400135, + -17.193576250640717, + -17.194388639937134, + -17.195200642473598, + -17.196012258434237, + -17.196823488003087, + -17.197634331364107, + -17.198444788701156, + -17.199254860198014, + -17.200064546038373, + -17.20087384640583, + -17.2016827614839, + -17.202491291456017, + -17.203299436505517, + -17.204107196815656, + -17.204914572569592, + -17.20572156395041, + -17.2065281711411, + -17.207334394324562, + -17.20814023368362, + -17.208945689400995, + -17.20975076165934, + -17.210555450641202, + -17.21135975652906, + -17.212163679505288, + -17.212967219752183, + -17.213770377451958, + -17.214573152786734, + -17.21537554593854, + -17.21617755708933, + -17.216979186420964, + -17.21778043411522, + -17.218581300353783, + -17.219381785318255, + -17.220181889190158, + -17.22098161215092, + -17.221780954381877, + -17.222579916064294, + -17.223378497379336, + -17.22417669850809, + -17.22497451963155, + -17.225771960930633, + -17.226569022586162, + -17.22736570477888, + -17.228162007689434, + -17.228957931498396, + -17.229753476386247, + -17.230548642533382, + -17.231343430120113, + -17.23213783932666, + -17.232931870333164, + -17.233725523319677, + -17.23451879846617, + -17.235311695952515, + -17.236104215958512, + -17.236896358663873, + -17.237688124248216, + -17.238479512891086, + -17.239270524771936, + -17.240061160070127, + -17.240851418964947, + -17.241641301635592, + -17.242430808261176, + -17.24321993902072, + -17.244008694093168, + -17.244797073657377, + -17.245585077892116, + -17.246372706976075, + -17.24715996108785, + -17.24794684040596, + -17.24873334510883, + -17.24951947537481, + -17.250305231382164, + -17.25109061330906, + -17.251875621333596, + -17.252660255633778, + -17.253444516387525, + -17.254228403772675, + -17.255011917966982, + -17.25579505914811, + -17.25657782749364, + -17.257360223181074, + -17.258142246387827, + -17.25892389729123, + -17.259705176068522, + -17.26048608289687, + -17.261266617953346, + -17.262046781414945, + -17.26282657345857, + -17.263605994261056, + -17.264385043999127, + -17.26516372284945, + -17.26594203098859, + -17.266719968593037, + -17.267497535839194, + -17.268274732903375, + -17.269051559961827, + -17.269828017190687, + -17.270604104766033, + -17.271379822863842, + -17.27215517166002, + -17.272930151330378, + -17.27370476205065, + -17.274479003996483, + -17.275252877343448, + -17.276026382267016, + -17.276799518942596, + -17.277572287545496, + -17.27834468825095, + -17.279116721234104, + -17.27988838667002, + -17.28065968473368, + -17.281430615599984, + -17.28220117944375, + -17.282971376439697, + -17.283741206762482, + -17.28451067058667, + -17.28527976808674, + -17.286048499437086, + -17.28681686481203, + -17.287584864385803, + -17.288352498332557, + -17.289119766826353, + -17.289886670041177, + -17.290653208150932, + -17.291419381329437, + -17.29218518975042, + -17.29295063358754, + -17.29371571301437, + -17.294480428204395, + -17.295244779331014, + -17.296008766567553, + -17.296772390087252, + -17.297535650063267, + -17.298298546668676, + -17.299061080076473, + -17.29982325045956, + -17.300585057990773, + -17.30134650284285, + -17.302107585188462, + -17.302868305200185, + -17.303628663050517, + -17.30438865891188, + -17.305148292956606, + -17.305907565356943, + -17.306666476285066, + -17.30742502591307, + -17.30818321441295, + -17.308941041956636, + -17.30969850871597, + -17.310455614862718, + -17.311212360568554, + -17.311968746005075, + -17.312724771343802, + -17.313480436756162, + -17.314235742413516, + -17.314990688487132, + -17.315745275148196, + -17.31649950256782, + -17.317253370917033, + -17.318006880366774, + -17.31876003108791, + -17.319512823251223, + -17.320265257027412, + -17.321017332587104, + -17.32176905010083, + -17.322520409739052, + -17.323271411672145, + -17.324022056070405, + -17.324772343104044, + -17.325522272943193, + -17.32627184575791, + -17.327021061718163, + -17.32776992099384, + -17.328518423754755, + -17.32926657017064, + -17.330014360411127, + -17.3307617946458, + -17.331508873044136, + -17.332255595775546, + -17.33300196300935, + -17.333747974914797, + -17.334493631661044, + -17.33523893341718, + -17.335983880352206, + -17.336728472635045, + -17.337472710434533, + -17.33821659391944, + -17.338960123258445, + -17.339703298620144, + -17.340446120173063, + -17.34118858808564, + -17.34193070252623, + -17.342672463663124, + -17.343413871664513, + -17.34415492669852, + -17.34489562893318, + -17.34563597853646, + -17.346375975676235, + -17.34711562052031, + -17.347854913236397, + -17.34859385399214, + -17.3493324429551, + -17.350070680292756, + -17.35080856617251, + -17.351546100761684, + -17.352283284227518, + -17.353020116737174, + -17.353756598457736, + -17.354492729556203, + -17.355228510199503, + -17.35596394055447, + -17.35669902078788, + -17.357433751066413, + -17.35816813155667, + -17.358902162425185, + -17.3596358438384, + -17.36036917596269, + -17.36110215896433, + -17.36183479300954, + -17.362567078264448, + -17.3632990148951, + -17.364030603067476, + -17.364761842947466, + -17.36549273470088, + -17.366223278493457, + -17.366953474490852, + -17.367683322858642, + -17.36841282376233, + -17.36914197736733, + -17.369870783838987, + -17.37059924334256, + -17.37132735604323, + -17.37205512210611, + -17.37278254169622, + -17.373509614978513, + -17.374236342117854, + -17.374962723279033, + -17.37568875862676, + -17.37641444832568, + -17.37713979254034, + -17.37786479143522, + -17.37858944517471, + -17.379313753923142, + -17.380037717844754, + -17.380761337103714, + -17.3814846118641, + -17.382207542289926, + -17.382930128545123, + -17.383652370793538, + -17.384374269198947, + -17.38509582392504, + -17.385817035135446, + -17.3865379029937, + -17.387258427663262, + -17.387978609307517, + -17.388698448089773, + -17.389417944173257, + -17.39013709772112, + -17.390855908896437, + -17.391574377862206, + -17.392292504781338, + -17.393010289816683, + -17.393727733130994, + -17.394444834886965, + -17.395161595247195, + -17.395878014374222, + -17.3965940924305, + -17.397309829578404, + -17.398025225980227, + -17.398740281798194, + -17.399454997194454, + -17.400169372331067, + -17.400883407370024, + -17.401597102473243, + -17.402310457802553, + -17.403023473519717, + -17.403736149786415, + -17.404448486764252, + -17.405160484614754, + -17.405872143499373, + -17.406583463579484, + -17.407294445016383, + -17.40800508797129, + -17.408715392605348, + -17.409425359079627, + -17.410134987555114, + -17.410844278192723, + -17.41155323115329, + -17.412261846597577, + -17.412970124686268, + -17.413678065579973, + -17.414385669439216, + -17.415092936424458, + -17.41579986669607, + -17.416506460414357, + -17.41721271773955, + -17.417918638831786, + -17.418624223851147, + -17.419329472957628, + -17.420034386311148, + -17.420738964071553, + -17.42144320639861, + -17.42214711345201, + -17.42285068539137, + -17.423553922376232, + -17.42425682456606, + -17.42495939212024, + -17.42566162519808, + -17.426363523958827, + -17.427065088561637, + -17.427766319165595, + -17.428467215929707, + -17.42916777901291, + -17.429868008574065, + -17.430567904771948, + -17.431267467765267, + -17.431966697712653, + -17.43266559477266, + -17.43336415910378, + -17.4340623908644, + -17.434760290212864, + -17.435457857307416, + -17.436155092306237, + -17.43685199536743, + -17.437548566649028, + -17.438244806308976, + -17.438940714505154, + -17.439636291395367, + -17.44033153713734, + -17.441026451888728, + -17.441721035807102, + -17.442415289049972, + -17.443109211774757, + -17.443802804138816, + -17.444496066299422, + -17.445188998413776, + -17.445881600639012, + -17.446573873132174, + -17.447265816050248, + -17.447957429550133, + -17.448648713788657, + -17.449339668922576, + -17.450030295108565, + -17.45072059250323, + -17.451410561263103, + -17.452100201544642, + -17.452789513504225, + -17.453478497298153, + -17.454167153082672, + -17.454855481013926, + -17.455543481248004, + -17.456231153940916, + -17.456918499248598, + -17.457605517326908, + -17.45829220833163, + -17.458978572418484, + -17.4596646097431, + -17.460350320461043, + -17.46103570472781, + -17.461720762698807, + -17.462405494529385, + -17.463089900374808, + -17.463773980390272, + -17.464457734730892, + -17.465141163551724, + -17.46582426700773, + -17.46650704525381, + -17.467189498444796, + -17.467871626735437, + -17.468553430280405, + -17.46923490923431, + -17.46991606375168, + -17.470596893986972, + -17.47127740009457, + -17.471957582228782, + -17.47263744054385, + -17.473316975193928, + -17.47399618633311, + -17.474675074115414, + -17.475353638694777, + -17.476031880225076, + -17.476709798860103, + -17.47738739475358, + -17.47806466805916, + -17.47874161893042, + -17.47941824752086, + -17.480094553983914, + -17.480770538472935, + -17.48144620114121, + -17.48212154214195, + -17.482796561628298, + -17.483471259753316, + -17.484145636669997, + -17.484819692531257, + -17.48549342748995, + -17.486166841698846, + -17.48683993531065, + -17.487512708477986, + -17.488185161353414, + -17.488857294089417, + -17.489529106838404, + -17.49020059975272, + -17.490871772984622, + -17.49154262668631, + -17.4922131610099, + -17.492883376107446, + -17.49355327213092, + -17.49422284923223, + -17.494892107563203, + -17.4955610472756, + -17.49622966852111, + -17.496897971451343, + -17.497565956217848, + -17.49823362297209, + -17.49890097186547, + -17.499568003049315, + -17.50023471667488, + -17.50090111289334, + -17.501567191855813, + -17.502232953713335, + -17.502898398616875, + -17.50356352671732, + -17.5042283381655, + -17.504892833112162, + -17.505557011707992, + -17.506220874103587, + -17.506884420449488, + -17.50754765089616, + -17.50821056559399, + -17.50887316469331, + -17.509535448344355, + -17.510197416697313, + -17.51085906990229, + -17.511520408109313, + -17.51218143146835, + -17.512842140129294, + -17.513502534241965, + -17.51416261395611, + -17.51482237942141, + -17.515481830787472, + -17.51614096820383, + -17.516799791819945, + -17.517458301785215, + -17.51811649824896, + -17.51877438136043, + -17.519431951268807, + -17.5200892081232, + -17.520746152072643, + -17.521402783266108, + -17.522059101852488, + -17.52271510798061, + -17.52337080179922, + -17.524026183457014, + -17.524681253102596, + -17.525336010884512, + -17.52599045695123, + -17.526644591451156, + -17.527298414532613, + -17.527951926343864, + -17.5286051270331, + -17.529258016748432, + -17.52991059563791, + -17.530562863849518, + -17.531214821531155, + -17.531866468830657, + -17.532517805895797, + -17.533168832874264, + -17.533819549913684, + -17.534469957161612, + -17.53512005476553, + -17.535769842872863, + -17.536419321630948, + -17.537068491187057, + -17.537717351688396, + -17.5383659032821, + -17.53901414611523, + -17.539662080334782, + -17.540309706087683, + -17.540957023520782, + -17.541604032780864, + -17.542250734014644, + -17.542897127368768, + -17.543543212989807, + -17.544188991024267, + -17.544834461618585, + -17.54547962491912, + -17.546124481072177, + -17.546769030223977, + -17.547413272520675, + -17.548057208108354, + -17.54870083713304, + -17.549344159740677, + -17.549987176077142, + -17.55062988628824, + -17.551272290519716, + -17.55191438891724, + -17.552556181626414, + -17.553197668792762, + -17.553838850561753, + -17.55447972707878, + -17.555120298489157, + -17.555760564938144, + -17.556400526570933, + -17.557040183532628, + -17.557679535968287, + -17.558318584022878, + -17.558957327841316, + -17.55959576756844, + -17.56023390334902, + -17.56087173532776, + -17.561509263649285, + -17.562146488458172, + -17.56278340989891, + -17.56342002811592, + -17.564056343253572, + -17.564692355456145, + -17.565328064867863, + -17.565963471632884, + -17.56659857589528, + -17.56723337779907, + -17.567867877488204, + -17.568502075106554, + -17.56913597079793, + -17.56976956470608, + -17.57040285697466, + -17.57103584774729, + -17.5716685371675, + -17.57230092537875, + -17.572933012524448, + -17.57356479874792, + -17.57419628419243, + -17.57482746900117, + -17.575458353317266, + -17.57608893728378, + -17.576719221043696, + -17.57734920473994, + -17.57797888851536, + -17.57860827251275, + -17.579237356874817, + -17.57986614174422, + -17.58049462726353, + -17.58112281357527, + -17.581750700821882, + -17.582378289145748, + -17.583005578689168, + -17.583632569594396, + -17.584259262003602, + -17.58488565605889, + -17.58551175190231, + -17.586137549675822, + -17.586763049521334, + -17.587388251580688, + -17.588013155995647, + -17.588637762907915, + -17.589262072459128, + -17.589886084790848, + -17.59050980004458, + -17.591133218361747, + -17.591756339883723, + -17.5923791647518, + -17.593001693107215, + -17.593623925091123, + -17.594245860844627, + -17.594867500508748, + -17.59548884422445, + -17.59610989213263, + -17.596730644374112, + -17.59735110108966, + -17.59797126241996, + -17.59859112850565, + -17.599210699487276, + -17.599829975505337, + -17.60044895670026, + -17.6010676432124, + -17.60168603518205, + -17.60230413274943, + -17.60292193605471, + -17.60353944523797, + -17.60415666043924, + -17.604773581798483, + -17.60539020945558, + -17.60600654355036, + -17.606622584222585, + -17.60723833161194, + -17.607853785858055, + -17.608468947100487, + -17.60908381547873, + -17.60969839113221, + -17.610312674200287, + -17.61092666482225, + -17.61154036313733, + -17.61215376928468, + -17.61276688340341, + -17.613379705632536, + -17.61399223611102, + -17.614604474977764, + -17.615216422371596, + -17.615828078431274, + -17.6164394432955, + -17.617050517102907, + -17.617661299992054, + -17.61827179210145, + -17.61888199356952, + -17.619491904534634, + -17.620101525135098, + -17.620710855509145, + -17.621319895794944, + -17.621928646130602, + -17.622537106654153, + -17.623145277503575, + -17.623753158816776, + -17.62436075073159, + -17.624968053385803, + -17.625575066917115, + -17.62618179146318, + -17.62678822716157, + -17.627394374149805, + -17.628000232565327, + -17.628605802545525, + -17.629211084227713, + -17.62981607774914, + -17.630420783247004, + -17.631025200858414, + -17.63162933072043, + -17.632233172970047, + -17.632836727744188, + -17.63343999517971, + -17.63404297541341, + -17.634645668582024, + -17.63524807482221, + -17.635850194270574, + -17.636452027063648, + -17.637053573337898, + -17.637654833229735, + -17.6382558068755, + -17.63885649441146, + -17.639456895973833, + -17.64005701169876, + -17.640656841722326, + -17.64125638618054, + -17.641855645209365, + -17.642454618944676, + -17.643053307522298, + -17.64365171107799, + -17.644249829747444, + -17.644847663666287, + -17.64544521297008, + -17.646042477794325, + -17.646639458274457, + -17.647236154545844, + -17.647832566743787, + -17.648428695003535, + -17.64902453946026, + -17.649620100249077, + -17.650215377505027, + -17.650810371363104, + -17.651405081958217, + -17.651999509425227, + -17.652593653898926, + -17.653187515514034, + -17.65378109440522, + -17.654374390707076, + -17.65496740455414, + -17.655560136080883, + -17.65615258542171, + -17.656744752710967, + -17.657336638082924, + -17.657928241671804, + -17.65851956361175, + -17.659110604036858, + -17.65970136308114, + -17.660291840878564, + -17.66088203756302, + -17.66147195326834, + -17.662061588128296, + -17.662650942276585, + -17.663240015846856, + -17.663828808972678, + -17.664417321787564, + -17.665005554424972, + -17.66559350701828, + -17.666181179700814, + -17.666768572605832, + -17.66735568586653, + -17.667942519616037, + -17.66852907398743, + -17.669115349113707, + -17.669701345127812, + -17.67028706216263, + -17.670872500350963, + -17.67145765982558, + -17.67204254071916, + -17.672627143164334, + -17.673211467293658, + -17.67379551323964, + -17.67437928113471, + -17.674962771111243, + -17.67554598330155, + -17.676128917837882, + -17.676711574852423, + -17.67729395447729, + -17.677876056844546, + -17.678457882086185, + -17.679039430334143, + -17.679620701720285, + -17.68020169637643, + -17.68078241443431, + -17.681362856025615, + -17.68194302128196, + -17.6825229103349, + -17.683102523315934, + -17.683681860356494, + -17.684260921587946, + -17.684839707141595, + -17.68541821714869, + -17.68599645174041, + -17.68657441104787, + -17.687152095202137, + -17.687729504334193, + -17.688306638574975, + -17.688883498055354, + -17.689460082906134, + -17.690036393258058, + -17.690612429241817, + -17.691188190988026, + -17.691763678627243, + -17.692338892289964, + -17.692913832106623, + -17.693488498207596, + -17.694062890723185, + -17.694637009783644, + -17.695210855519157, + -17.695784428059845, + -17.696357727535776, + -17.69693075407694, + -17.697503507813288, + -17.698075988874685, + -17.698648197390952, + -17.69922013349184, + -17.699791797307036, + -17.700363188966172, + -17.700934308598818, + -17.701505156334473, + -17.70207573230259, + -17.70264603663254, + -17.703216069453653, + -17.703785830895185, + -17.704355321086332, + -17.704924540156235, + -17.705493488233962, + -17.70606216544853, + -17.70663057192889, + -17.707198707803933, + -17.707766573202488, + -17.70833416825332, + -17.708901493085136, + -17.70946854782658, + -17.710035332606246, + -17.710601847552645, + -17.711168092794246, + -17.711734068459442, + -17.712299774676577, + -17.71286521157393, + -17.713430379279714, + -17.713995277922084, + -17.71455990762914, + -17.715124268528914, + -17.71568836074938, + -17.716252184418448, + -17.71681573966397, + -17.717379026613735, + -17.717942045395475, + -17.71850479613686, + -17.71906727896549, + -17.719629494008917, + -17.72019144139463, + -17.720753121250056, + -17.72131453370255, + -17.721875678879428, + -17.722436556907926, + -17.72299716791523, + -17.723557512028467, + -17.724117589374693, + -17.724677400080907, + -17.725236944274062, + -17.725796222081026, + -17.726355233628627, + -17.726913979043623, + -17.727472458452713, + -17.728030671982538, + -17.728588619759677, + -17.729146301910646, + -17.729703718561904, + -17.730260869839853, + -17.730817755870827, + -17.73137437678111, + -17.73193073269691, + -17.73248682374439, + -17.73304265004965, + -17.733598211738727, + -17.734153508937595, + -17.73470854177218, + -17.735263310368328, + -17.735817814851845, + -17.736372055348465, + -17.73692603198387, + -17.73747974488368, + -17.738033194173443, + -17.738586379978667, + -17.739139302424793, + -17.73969196163719, + -17.740244357741187, + -17.74079649086204, + -17.74134836112495, + -17.74189996865505, + -17.742451313577433, + -17.743002396017115, + -17.743553216099063, + -17.744103773948172, + -17.744654069689286, + -17.745204103447193, + -17.745753875346615, + -17.746303385512217, + -17.746852634068603, + -17.747401621140323, + -17.74795034685186, + -17.748498811327647, + -17.749047014692046, + -17.749594957069366, + -17.75014263858386, + -17.75069005935972, + -17.751237219521073, + -17.751784119191996, + -17.7523307584965, + -17.752877137558546, + -17.75342325650202, + -17.753969115450765, + -17.754514714528554, + -17.755060053859108, + -17.755605133566085, + -17.75614995377309, + -17.756694514603662, + -17.757238816181285, + -17.757782858629383, + -17.758326642071324, + -17.75887016663041, + -17.75941343242989, + -17.75995643959296, + -17.76049918824274, + -17.761041678502313, + -17.761583910494686, + -17.762125884342815, + -17.7626676001696, + -17.763209058097875, + -17.763750258250425, + -17.764291200749966, + -17.76483188571916, + -17.765372313280615, + -17.765912483556875, + -17.766452396670427, + -17.7669920527437, + -17.767531451899067, + -17.76807059425884, + -17.76860947994528, + -17.769148109080568, + -17.769686481786856, + -17.770224598186218, + -17.770762458400675, + -17.771300062552196, + -17.77183741076268, + -17.77237450315398, + -17.772911339847884, + -17.77344792096612, + -17.77398424663037, + -17.774520316962242, + -17.775056132083293, + -17.77559169211503, + -17.776126997178892, + -17.776662047396265, + -17.777196842888472, + -17.777731383776782, + -17.77826567018241, + -17.778799702226504, + -17.779333480030168, + -17.779867003714433, + -17.780400273400282, + -17.780933289208637, + -17.781466051260363, + -17.78199855967627, + -17.782530814577104, + -17.783062816083564, + -17.783594564316278, + -17.784126059395824, + -17.784657301442728, + -17.785188290577448, + -17.785719026920397, + -17.78624951059192, + -17.7867797417123, + -17.787309720401783, + -17.787839446780538, + -17.78836892096869, + -17.788898143086293, + -17.78942711325336, + -17.789955831589836, + -17.79048429821561, + -17.79101251325052, + -17.791540476814337, + -17.792068189026786, + -17.792595650007524, + -17.793122859876163, + -17.793649818752247, + -17.794176526755265, + -17.79470298400466, + -17.795229190619807, + -17.795755146720023, + -17.79628085242458, + -17.79680630785268, + -17.797331513123478, + -17.797856468356063, + -17.798381173669476, + -17.798905629182695, + -17.799429835014646, + -17.7999537912842, + -17.800477498110162, + -17.80100095561129, + -17.80152416390628, + -17.802047123113773, + -17.802569833352358, + -17.80309229474056, + -17.803614507396844, + -17.80413647143964, + -17.8046581869873, + -17.805179654158128, + -17.805700873070364, + -17.80622184384221, + -17.80674256659179, + -17.807263041437185, + -17.80778326849642, + -17.808303247887455, + -17.8088229797282, + -17.809342464136513, + -17.809861701230187, + -17.81038069112696, + -17.81089943394452, + -17.8114179298005, + -17.811936178812466, + -17.812454181097937, + -17.812971936774375, + -17.813489445959185, + -17.814006708769714, + -17.814523725323255, + -17.815040495737048, + -17.81555702012827, + -17.81607329861405, + -17.81658933131146, + -17.81710511833751, + -17.817620659809158, + -17.818135955843314, + -17.81865100655682, + -17.81916581206647, + -17.819680372488993, + -17.820194687941076, + -17.820708758539343, + -17.821222584400363, + -17.821736165640647, + -17.822249502376657, + -17.822762594724793, + -17.823275442801407, + -17.82378804672279, + -17.824300406605172, + -17.82481252256474, + -17.82532439471762, + -17.825836023179882, + -17.82634740806754, + -17.826858549496556, + -17.827369447582832, + -17.827880102442226, + -17.828390514190527, + -17.828900682943473, + -17.82941060881675, + -17.82992029192599, + -17.83042973238677, + -17.830938930314595, + -17.831447885824943, + -17.831956599033223, + -17.83246507005478, + -17.832973299004927, + -17.833481285998896, + -17.833989031151884, + -17.834496534579024, + -17.835003796395398, + -17.835510816716027, + -17.83601759565589, + -17.836524133329892, + -17.8370304298529, + -17.83753648533972, + -17.838042299905105, + -17.838547873663746, + -17.839053206730295, + -17.839558299219334, + -17.840063151245396, + -17.840567762922962, + -17.84107213436646, + -17.841576265690254, + -17.842080157008663, + -17.842583808435943, + -17.843087220086304, + -17.8435903920739, + -17.844093324512826, + -17.844596017517134, + -17.8450984712008, + -17.845600685677766, + -17.846102661061916, + -17.846604397467072, + -17.847105895007008, + -17.847607153795437, + -17.84810817394603, + -17.848608955572395, + -17.849109498788092, + -17.849609803706617, + -17.85010987044142, + -17.850609699105892, + -17.851109289813373, + -17.851608642677153, + -17.852107757810465, + -17.85260663532648, + -17.85310527533833, + -17.85360367795908, + -17.854101843301745, + -17.854599771479293, + -17.85509746260463, + -17.855594916790608, + -17.85609213415004, + -17.85658911479566, + -17.857085858840172, + -17.85758236639621, + -17.858078637576362, + -17.858574672493162, + -17.859070471259088, + -17.85956603398657, + -17.86006136078798, + -17.860556451775633, + -17.861051307061796, + -17.86154592675868, + -17.86204031097845, + -17.862534459833206, + -17.863028373435, + -17.86352205189583, + -17.864015495327646, + -17.864508703842333, + -17.86500167755173, + -17.865494416567632, + -17.86598692100176, + -17.8664791909658, + -17.866971226571376, + -17.867463027930054, + -17.867954595153364, + -17.86844592835277, + -17.86893702763968, + -17.869427893125465, + -17.86991852492142, + -17.870408923138804, + -17.870899087888823, + -17.871389019282617, + -17.87187871743129, + -17.87236818244588, + -17.872857414437377, + -17.873346413516717, + -17.87383517979479, + -17.87432371338242, + -17.87481201439039, + -17.875300082929424, + -17.8757879191102, + -17.87627552304333, + -17.876762894839384, + -17.877250034608885, + -17.87773694246229, + -17.878223618510003, + -17.87871006286239, + -17.879196275629752, + -17.87968225692234, + -17.88016800685036, + -17.88065352552395, + -17.881138813053216, + -17.88162386954819, + -17.88210869511887, + -17.88259328987519, + -17.883077653927035, + -17.88356178738424, + -17.884045690356587, + -17.8845293629538, + -17.885012805285562, + -17.88549601746149, + -17.88597899959116, + -17.886461751784093, + -17.88694427414975, + -17.887426566797554, + -17.887908629836865, + -17.888390463376993, + -17.888872067527203, + -17.889353442396697, + -17.88983458809463, + -17.890315504730108, + -17.890796192412182, + -17.89127665124985, + -17.891756881352062, + -17.89223688282771, + -17.892716655785637, + -17.893196200334643, + -17.89367551658346, + -17.894154604640782, + -17.894633464615243, + -17.89511209661543, + -17.895590500749876, + -17.89606867712706, + -17.896546625855418, + -17.897024347043317, + -17.897501840799094, + -17.89797910723102, + -17.89845614644732, + -17.898932958556166, + -17.899409543665676, + -17.899885901883927, + -17.900362033318928, + -17.900837938078652, + -17.901313616271008, + -17.90178906800386, + -17.902264293385027, + -17.902739292522263, + -17.90321406552328, + -17.90368861249574, + -17.90416293354724, + -17.90463702878535, + -17.90511089831756, + -17.905584542251333, + -17.906057960694064, + -17.90653115375311, + -17.90700412153577, + -17.907476864149295, + -17.907949381700877, + -17.908421674297667, + -17.90889374204676, + -17.909365585055202, + -17.909837203429984, + -17.91030859727805, + -17.910779766706295, + -17.911250711821552, + -17.91172143273062, + -17.91219192954024, + -17.91266220235709, + -17.913132251287816, + -17.913602076439002, + -17.914071677917185, + -17.914541055828856, + -17.91501021028044, + -17.915479141378324, + -17.915947849228846, + -17.916416333938287, + -17.916884595612878, + -17.9173526343588, + -17.91782045028219, + -17.91828804348912, + -17.918755414085627, + -17.91922256217769, + -17.91968948787124, + -17.920156191272145, + -17.920622672486243, + -17.921088931619312, + -17.92155496877708, + -17.92202078406522, + -17.92248637758936, + -17.92295174945508, + -17.923416899767904, + -17.923881828633306, + -17.92434653615672, + -17.924811022443514, + -17.925275287599018, + -17.925739331728504, + -17.9262031549372, + -17.926666757330278, + -17.927130139012867, + -17.927593300090045, + -17.92805624066683, + -17.9285189608482, + -17.928981460739084, + -17.929443740444352, + -17.92990580006883, + -17.930367639717296, + -17.930829259494473, + -17.93129065950504, + -17.93175183985362, + -17.93221280064479, + -17.932673541983082, + -17.93313406397296, + -17.93359436671886, + -17.934054450325156, + -17.934514314896173, + -17.934973960536194, + -17.935433387349445, + -17.9358925954401, + -17.9363515849123, + -17.93681035587011, + -17.93726890841757, + -17.93772724265865, + -17.93818535869729, + -17.938643256637366, + -17.93910093658271, + -17.93955839863711, + -17.940015642904292, + -17.940472669487946, + -17.9409294784917, + -17.94138607001914, + -17.941842444173805, + -17.94229860105918, + -17.942754540778694, + -17.943210263435745, + -17.94366576913367, + -17.944121057975757, + -17.94457613006524, + -17.94503098550532, + -17.945485624399133, + -17.94594004684977, + -17.946394252960282, + -17.946848242833656, + -17.94730201657284, + -17.947755574280734, + -17.94820891606018, + -17.948662042013986, + -17.949114952244887, + -17.949567646855595, + -17.950020125948758, + -17.95047238962698, + -17.950924437992814, + -17.951376271148767, + -17.951827889197293, + -17.9522792922408, + -17.95273048038165, + -17.953181453722152, + -17.953632212364568, + -17.954082756411108, + -17.954533085963934, + -17.95498320112517, + -17.955433101996878, + -17.955882788681077, + -17.956332261279737, + -17.95678151989478, + -17.957230564628073, + -17.957679395581447, + -17.958128012856676, + -17.958576416555484, + -17.959024606779554, + -17.959472583630514, + -17.95992034720995, + -17.96036789761939, + -17.96081523496032, + -17.96126235933418, + -17.961709270842363, + -17.962155969586203, + -17.962602455666993, + -17.963048729185974, + -17.963494790244347, + -17.963940638943257, + -17.964386275383806, + -17.964831699667045, + -17.965276911893973, + -17.96572191216555, + -17.966166700582683, + -17.966611277246226, + -17.967055642256994, + -17.96749979571575, + -17.96794373772321, + -17.968387468380037, + -17.968830987786852, + -17.96927429604423, + -17.96971739325269, + -17.97016027951271, + -17.97060295492472, + -17.971045419589093, + -17.971487673606163, + -17.97192971707622, + -17.972371550099496, + -17.972813172776178, + -17.973254585206412, + -17.97369578749029, + -17.974136779727857, + -17.974577562019114, + -17.97501813446401, + -17.975458497162442, + -17.975898650214273, + -17.97633859371931, + -17.97677832777731, + -17.97721785248799, + -17.977657167951012, + -17.978096274265997, + -17.978535171532513, + -17.978973859850086, + -17.979412339318184, + -17.979850610036248, + -17.980288672103654, + -17.98072652561973, + -17.98116417068377, + -17.98160160739501, + -17.98203883585264, + -17.98247585615581, + -17.982912668403614, + -17.9833492726951, + -17.983785669129276, + -17.984221857805096, + -17.98465783882147, + -17.98509361227726, + -17.98552917827128, + -17.985964536902298, + -17.98639968826903, + -17.98683463247016, + -17.98726936960431, + -17.987703899770054, + -17.988138223065935, + -17.98857233959043, + -17.98900624944199, + -17.989439952718993, + -17.98987344951979, + -17.99030673994268, + -17.99073982408592, + -17.99117270204771, + -17.99160537392621, + -17.992037839819524, + -17.992470099825727, + -17.99290215404283, + -17.993334002568808, + -17.99376564550159, + -17.994197082939046, + -17.99462831497901, + -17.995059341719266, + -17.99549016325756, + -17.99592077969158, + -17.99635119111897, + -17.996781397637324, + -17.997211399344202, + -17.99764119633711, + -17.998070788713505, + -17.998500176570804, + -17.998929360006365, + -17.999358339117517, + -17.999787114001528, + -18.000215684755627, + -18.000644051477003, + -18.00107221426278, + -18.00150017321006, + -18.001927928415878, + -18.00235547997723, + -18.002782827991066, + -18.00320997255429, + -18.003636913763767, + -18.004063651716304, + -18.004490186508665, + -18.004916518237575, + -18.005342646999704, + -18.00576857289168, + -18.00619429601009, + -18.00661981645146, + -18.00704513431229, + -18.007470249689018, + -18.007895162678047, + -18.008319873375722, + -18.008744381878355, + -18.0091686882822, + -18.009592792683485, + -18.01001669517836, + -18.010440395862965, + -18.010863894833367, + -18.011287192185605, + -18.011710288015657, + -18.012133182419465, + -18.012555875492925, + -18.01297836733189, + -18.013400658032158, + -18.013822747689485, + -18.014244636399585, + -18.01466632425813, + -18.01508781136073, + -18.01550909780297, + -18.01593018368037, + -18.01635106908843, + -18.01677175412257, + -18.017192238878195, + -18.01761252345065, + -18.018032607935243, + -18.018452492427222, + -18.0188721770218, + -18.019291661814155, + -18.019710946899394, + -18.020130032372602, + -18.020548918328807, + -18.02096760486299, + -18.0213860920701, + -18.021804380045026, + -18.022222468882617, + -18.02264035867768, + -18.02305804952498, + -18.023475541519222, + -18.023892834755085, + -18.024309929327185, + -18.0247268253301, + -18.02514352285837, + -18.025560022006484, + -18.025976322868885, + -18.026392425539974, + -18.0268083301141, + -18.02722403668558, + -18.027639545348674, + -18.0280548561976, + -18.028469969326537, + -18.028884884829612, + -18.02929960280091, + -18.02971412333447, + -18.030128446524298, + -18.03054257246433, + -18.03095650124848, + -18.03137023297061, + -18.031783767724537, + -18.032197105604027, + -18.032610246702816, + -18.03302319111458, + -18.03343593893296, + -18.03384849025155, + -18.034260845163896, + -18.03467300376351, + -18.03508496614384, + -18.035496732398315, + -18.035908302620296, + -18.03631967690311, + -18.036730855340043, + -18.037141838024333, + -18.037552625049177, + -18.037963216507713, + -18.038373612493054, + -18.038783813098256, + -18.03919381841634, + -18.039603628540274, + -18.040013243562985, + -18.040422663577356, + -18.04083188867623, + -18.041240918952397, + -18.041649754498614, + -18.04205839540758, + -18.04246684177196, + -18.042875093684376, + -18.043283151237397, + -18.043691014523557, + -18.04409868363534, + -18.044506158665186, + -18.0449134397055, + -18.045320526848627, + -18.045727420186882, + -18.04613411981253, + -18.04654062581779, + -18.04694693829485, + -18.047353057335837, + -18.04775898303284, + -18.04816471547791, + -18.048570254763046, + -18.04897560098021, + -18.049380754221318, + -18.049785714578235, + -18.050190482142796, + -18.05059505700678, + -18.050999439261933, + -18.051403628999946, + -18.051807626312478, + -18.05221143129113, + -18.052615044027476, + -18.053018464613036, + -18.053421693139285, + -18.053824729697663, + -18.054227574379556, + -18.054630227276316, + -18.055032688479244, + -18.055434958079605, + -18.055837036168615, + -18.056238922837448, + -18.056640618177237, + -18.057042122279064, + -18.057443435233974, + -18.057844557132974, + -18.05824548806702, + -18.058646228127017, + -18.059046777403847, + -18.05944713598833, + -18.059847303971253, + -18.06024728144336, + -18.060647068495342, + -18.061046665217862, + -18.061446071701525, + -18.0618452880369, + -18.062244314314512, + -18.062643150624847, + -18.063041797058343, + -18.063440253705394, + -18.063838520656354, + -18.064236598001532, + -18.064634485831196, + -18.06503218423557, + -18.065429693304832, + -18.065827013129127, + -18.066224143798543, + -18.06662108540314, + -18.067017838032918, + -18.067414401777853, + -18.06781077672786, + -18.068206962972827, + -18.068602960602586, + -18.068998769706937, + -18.069394390375635, + -18.069789822698382, + -18.07018506676485, + -18.070580122664666, + -18.070974990487404, + -18.07136967032261, + -18.07176416225978, + -18.072158466388363, + -18.072552582797776, + -18.072946511577385, + -18.073340252816518, + -18.073733806604455, + -18.074127173030444, + -18.07452035218368, + -18.074913344153313, + -18.075306149028464, + -18.075698766898206, + -18.076091197851564, + -18.076483441977526, + -18.076875499365038, + -18.077267370102994, + -18.077659054280264, + -18.078050551985662, + -18.078441863307955, + -18.07883298833589, + -18.079223927158147, + -18.07961467986338, + -18.080005246540185, + -18.080395627277138, + -18.080785822162756, + -18.081175831285517, + -18.08156565473386, + -18.08195529259618, + -18.08234474496083, + -18.082734011916127, + -18.08312309355033, + -18.08351198995167, + -18.083900701208336, + -18.084289227408465, + -18.084677568640164, + -18.085065724991487, + -18.085453696550456, + -18.085841483405044, + -18.086229085643183, + -18.08661650335277, + -18.087003736621647, + -18.087390785537632, + -18.08777765018848, + -18.088164330661925, + -18.088550827045644, + -18.08893713942728, + -18.08932326789443, + -18.089709212534654, + -18.090094973435466, + -18.090480550684344, + -18.090865944368712, + -18.09125115457597, + -18.091636181393465, + -18.0920210249085, + -18.092405685208348, + -18.09279016238023, + -18.093174456511328, + -18.093558567688785, + -18.0939424959997, + -18.09432624153113, + -18.094709804370098, + -18.095093184603574, + -18.09547638231849, + -18.09585939760175, + -18.096242230540195, + -18.09662488122064, + -18.097007349729854, + -18.09738963615456, + -18.09777174058145, + -18.098153663097165, + -18.09853540378831, + -18.098916962741452, + -18.099298340043106, + -18.099679535779757, + -18.100060550037835, + -18.100441382903746, + -18.100822034463846, + -18.101202504804448, + -18.101582794011833, + -18.101962902172225, + -18.10234282937182, + -18.102722575696774, + -18.103102141233187, + -18.10348152606714, + -18.10386073028465, + -18.104239753971715, + -18.104618597214273, + -18.104997260098234, + -18.10537574270946, + -18.10575404513378, + -18.106132167456966, + -18.106510109764773, + -18.106887872142895, + -18.10726545467699, + -18.10764285745269, + -18.108020080555555, + -18.10839712407114, + -18.108773988084934, + -18.109150672682397, + -18.10952717794894, + -18.109903503969946, + -18.110279650830744, + -18.110655618616626, + -18.111031407412852, + -18.111407017304632, + -18.111782448377134, + -18.1121577007155, + -18.112532774404812, + -18.112907669530124, + -18.113282386176447, + -18.11365692442875, + -18.11403128437196, + -18.11440546609097, + -18.114779469670626, + -18.115153295195736, + -18.115526942751067, + -18.115900412421354, + -18.116273704291274, + -18.116646818445478, + -18.11701975496857, + -18.11739251394512, + -18.11776509545965, + -18.118137499596646, + -18.118509726440557, + -18.118881776075785, + -18.119253648586696, + -18.119625344057614, + -18.119996862572822, + -18.12036820421657, + -18.120739369073057, + -18.121110357226453, + -18.121481168760877, + -18.121851803760418, + -18.122222262309116, + -18.122592544490974, + -18.12296265038996, + -18.12333258009, + -18.123702333674974, + -18.124071911228725, + -18.124441312835064, + -18.12481053857775, + -18.12517958854051, + -18.12554846280703, + -18.12591716146095, + -18.12628568458588, + -18.126654032265385, + -18.127022204582985, + -18.127390201622173, + -18.12775802346639, + -18.12812567019905, + -18.12849314190351, + -18.128860438663104, + -18.12922756056111, + -18.129594507680785, + -18.129961280105334, + -18.130327877917924, + -18.13069430120169, + -18.13106055003971, + -18.131426624515043, + -18.131792524710697, + -18.132158250709637, + -18.1325238025948, + -18.132889180449077, + -18.133254384355315, + -18.133619414396335, + -18.133984270654903, + -18.13434895321376, + -18.13471346215559, + -18.13507779756306, + -18.13544195951878, + -18.135805948105325, + -18.136169763405235, + -18.136533405501005, + -18.136896874475095, + -18.137260170409924, + -18.137623293387872, + -18.13798624349128, + -18.13834902080245, + -18.138711625403644, + -18.139074057377087, + -18.139436316804957, + -18.139798403769408, + -18.14016031835254, + -18.14052206063642, + -18.14088363070308, + -18.141245028634504, + -18.141606254512645, + -18.14196730841941, + -18.14232819043667, + -18.142688900646263, + -18.14304943912998, + -18.143409805969576, + -18.143770001246764, + -18.144130025043225, + -18.1444898774406, + -18.144849558520477, + -18.145209068364426, + -18.14556840705397, + -18.14592757467058, + -18.146286571295708, + -18.146645397010758, + -18.1470040518971, + -18.147362536036056, + -18.147720849508914, + -18.14807899239693, + -18.148436964781315, + -18.14879476674324, + -18.149152398363835, + -18.1495098597242, + -18.149867150905397, + -18.150224271988435, + -18.1505812230543, + -18.150938004183928, + -18.151294615458227, + -18.15165105695806, + -18.152007328764252, + -18.152363430957585, + -18.152719363618818, + -18.153075126828654, + -18.153430720667767, + -18.15378614521679, + -18.154141400556323, + -18.154496486766917, + -18.154851403929094, + -18.15520615212333, + -18.155560731430068, + -18.155915141929714, + -18.156269383702632, + -18.15662345682915, + -18.15697736138955, + -18.15733109746409, + -18.157684665132983, + -18.158038064476397, + -18.15839129557447, + -18.158744358507303, + -18.159097253354954, + -18.159449980197444, + -18.159802539114754, + -18.160154930186835, + -18.16050715349359, + -18.160859209114886, + -18.16121109713056, + -18.161562817620403, + -18.161914370664167, + -18.162265756341576, + -18.1626169747323, + -18.162968025915987, + -18.16331890997224, + -18.163669626980624, + -18.164020177020667, + -18.164370560171857, + -18.164720776513647, + -18.16507082612545, + -18.165420709086646, + -18.165770425476573, + -18.166119975374528, + -18.166469358859775, + -18.16681857601154, + -18.167167626909013, + -18.16751651163134, + -18.167865230257636, + -18.16821378286697, + -18.168562169538387, + -18.168910390350877, + -18.16925844538341, + -18.16960633471491, + -18.16995405842426, + -18.170301616590308, + -18.170649009291868, + -18.17099623660771, + -18.171343298616577, + -18.17169019539716, + -18.172036927028127, + -18.172383493588097, + -18.17272989515566, + -18.173076131809363, + -18.17342220362772, + -18.173768110689203, + -18.17411385307225, + -18.17445943085526, + -18.174804844116597, + -18.175150092934587, + -18.175495177387514, + -18.17584009755363, + -18.176184853511145, + -18.17652944533824, + -18.176873873113053, + -18.177218136913684, + -18.177562236818197, + -18.17790617290462, + -18.178249945250943, + -18.178593553935123, + -18.17893699903507, + -18.17928028062866, + -18.179623398793744, + -18.179966353608123, + -18.18030914514956, + -18.18065177349579, + -18.1809942387245, + -18.18133654091336, + -18.181678680139974, + -18.18202065648194, + -18.182362470016788, + -18.182704120822038, + -18.183045608975153, + -18.183386934553578, + -18.183728097634706, + -18.1840690982959, + -18.18440993661448, + -18.184750612667738, + -18.18509112653292, + -18.18543147828725, + -18.18577166800789, + -18.18611169577199, + -18.18645156165666, + -18.186791265738954, + -18.18713080809591, + -18.18747018880452, + -18.187809407941746, + -18.188148465584497, + -18.188487361809667, + -18.188826096694097, + -18.189164670314604, + -18.189503082747954, + -18.189841334070895, + -18.190179424360117, + -18.190517353692293, + -18.190855122144043, + -18.191192729791965, + -18.19153017671261, + -18.1918674629825, + -18.192204588678116, + -18.192541553875902, + -18.19287835865227, + -18.19321500308359, + -18.1935514872462, + -18.1938878112164, + -18.194223975070454, + -18.194559978884595, + -18.194895822735003, + -18.19523150669784, + -18.19556703084923, + -18.195902395265243, + -18.196237600021934, + -18.196572645195314, + -18.196907530861353, + -18.19724225709599, + -18.19757682397513, + -18.197911231574633, + -18.19824547997033, + -18.198579569238014, + -18.198913499453443, + -18.199247270692343, + -18.19958088303039, + -18.199914336543237, + -18.200247631306496, + -18.20058076739575, + -18.200913744886535, + -18.20124656385435, + -18.20157922437468, + -18.201911726522944, + -18.202244070374544, + -18.202576256004843, + -18.202908283489165, + -18.203240152902804, + -18.203571864321006, + -18.203903417818992, + -18.20423481347195, + -18.204566051355016, + -18.20489713154331, + -18.2052280541119, + -18.205558819135828, + -18.2058894266901, + -18.206219876849676, + -18.206550169689496, + -18.206880305284454, + -18.20721028370941, + -18.20754010503919, + -18.207869769348584, + -18.208199276712342, + -18.208528627205187, + -18.208857820901798, + -18.209186857876826, + -18.20951573820488, + -18.20984446196053, + -18.210173029218325, + -18.21050144005277, + -18.21082969453833, + -18.211157792749443, + -18.211485734760505, + -18.21181352064588, + -18.212141150479898, + -18.21246862433685, + -18.21279594229099, + -18.213123104416546, + -18.213450110787697, + -18.2137769614786, + -18.21410365656337, + -18.214430196116087, + -18.214756580210793, + -18.2150828089215, + -18.21540888232219, + -18.21573480048679, + -18.21606056348921, + -18.21638617140332, + -18.216711624302956, + -18.217036922261915, + -18.217362065353957, + -18.217687053652813, + -18.21801188723218, + -18.21833656616571, + -18.218661090527036, + -18.218985460389735, + -18.219309675827365, + -18.219633736913448, + -18.219957643721457, + -18.220281396324854, + -18.220604994797043, + -18.220928439211406, + -18.221251729641285, + -18.22157486615999, + -18.221897848840793, + -18.22222067775693, + -18.22254335298161, + -18.222865874588, + -18.223188242649233, + -18.223510457238408, + -18.223832518428594, + -18.224154426292813, + -18.22447618090407, + -18.224797782335315, + -18.22511923065948, + -18.225440525949455, + -18.225761668278096, + -18.22608265771822, + -18.226403494342616, + -18.226724178224043, + -18.22704470943521, + -18.227365088048803, + -18.227685314137467, + -18.228005387773823, + -18.228325309030442, + -18.228645077979873, + -18.228964694694625, + -18.229284159247175, + -18.229603471709957, + -18.22992263215539, + -18.230241640655834, + -18.23056049728363, + -18.230879202111083, + -18.231197755210466, + -18.231516156654006, + -18.231834406513904, + -18.232152504862327, + -18.23247045177141, + -18.232788247313238, + -18.233105891559884, + -18.233423384583375, + -18.233740726455704, + -18.23405791724883, + -18.234374957034674, + -18.234691845885134, + -18.235008583872062, + -18.235325171067284, + -18.23564160754259, + -18.23595789336973, + -18.23627402862042, + -18.23659001336636, + -18.23690584767919, + -18.23722153163053, + -18.237537065291967, + -18.237852448735048, + -18.23816768203129, + -18.238482765252172, + -18.238797698469142, + -18.23911248175362, + -18.239427115176973, + -18.239741598810557, + -18.24005593272568, + -18.24037011699362, + -18.24068415168562, + -18.24099803687289, + -18.241311772626606, + -18.241625359017906, + -18.241938796117903, + -18.24225208399767, + -18.24256522272825, + -18.242878212380642, + -18.24319105302582, + -18.24350374473473, + -18.243816287578273, + -18.244128681627323, + -18.244440926952713, + -18.24475302362525, + -18.245064971715706, + -18.24537677129481, + -18.245688422433272, + -18.245999925201758, + -18.246311279670905, + -18.246622485911313, + -18.246933543993553, + -18.247244453988156, + -18.24755521596563, + -18.247865829996435, + -18.248176296151012, + -18.248486614499754, + -18.248796785113033, + -18.249106808061182, + -18.2494166834145, + -18.249726411243252, + -18.250035991617672, + -18.25034542460796, + -18.250654710284287, + -18.25096384871678, + -18.251272839975535, + -18.251581684130628, + -18.251890381252082, + -18.252198931409904, + -18.252507334674057, + -18.25281559111447, + -18.25312370080105, + -18.253431663803656, + -18.253739480192127, + -18.25404715003626, + -18.25435467340582, + -18.254662050370545, + -18.25496928100013, + -18.25527636536424, + -18.25558330353251, + -18.255890095574546, + -18.25619674155991, + -18.256503241558136, + -18.25680959563873, + -18.257115803871155, + -18.25742186632485, + -18.25772778306921, + -18.25803355417361, + -18.258339179707388, + -18.258644659739844, + -18.258949994340245, + -18.25925518357783, + -18.259560227521803, + -18.259865126241337, + -18.260169879805566, + -18.2604744882836, + -18.260778951744506, + -18.261083270257327, + -18.261387443891067, + -18.2616914727147, + -18.261995356797172, + -18.262299096207382, + -18.262602691014212, + -18.262906141286503, + -18.26320944709306, + -18.263512608502666, + -18.263815625584066, + -18.264118498405963, + -18.26442122703704, + -18.264723811545945, + -18.26502625200129, + -18.265328548471654, + -18.26563070102559, + -18.265932709731608, + -18.266234574658192, + -18.26653629587379, + -18.26683787344683, + -18.267139307445678, + -18.267440597938705, + -18.267741744994222, + -18.268042748680518, + -18.268343609065845, + -18.26864432621843, + -18.268944900206456, + -18.26924533109809, + -18.269545618961452, + -18.26984576386463, + -18.270145765875693, + -18.27044562506266, + -18.27074534149353, + -18.271044915236267, + -18.271344346358802, + -18.27164363492903, + -18.27194278101482, + -18.272241784684002, + -18.27254064600438, + -18.272839365043726, + -18.27313794186977, + -18.273436376550222, + -18.273734669152752, + -18.274032819745, + -18.274330828394568, + -18.274628695169046, + -18.274926420135966, + -18.27522400336284, + -18.275521444917153, + -18.27581874486635, + -18.27611590327784, + -18.276412920219016, + -18.276709795757224, + -18.277006529959777, + -18.277303122893972, + -18.277599574627057, + -18.277895885226254, + -18.278192054758755, + -18.278488083291723, + -18.278783970892277, + -18.279079717627518, + -18.2793753235645, + -18.279670788770268, + -18.279966113311808, + -18.280261297256096, + -18.28055634067006, + -18.28085124362061, + -18.281146006174612, + -18.28144062839891, + -18.28173511036031, + -18.282029452125585, + -18.28232365376148, + -18.282617715334712, + -18.282911636911955, + -18.283205418559863, + -18.28349906034505, + -18.283792562334106, + -18.28408592459358, + -18.284379147189995, + -18.28467223018984, + -18.28496517365958, + -18.285257977665633, + -18.2855506422744, + -18.28584316755225, + -18.286135553565508, + -18.286427800380473, + -18.286719908063418, + -18.287011876680577, + -18.287303706298164, + -18.287595396982347, + -18.28788694879927, + -18.288178361815042, + -18.28846963609575, + -18.28876077170744, + -18.289051768716124, + -18.289342627187793, + -18.289633347188403, + -18.289923928783868, + -18.29021437204009, + -18.290504677022923, + -18.290794843798196, + -18.291084872431707, + -18.291374762989225, + -18.291664515536485, + -18.291954130139185, + -18.292243606862996, + -18.29253294577357, + -18.292822146936505, + -18.29311121041739, + -18.29340013628176, + -18.293688924595145, + -18.293977575423018, + -18.294266088830838, + -18.294554464884026, + -18.29484270364798, + -18.29513080518805, + -18.295418769569572, + -18.29570659685784, + -18.295994287118123, + -18.29628184041566, + -18.296569256815648, + -18.296856536383267, + -18.29714367918366, + -18.297430685281935, + -18.297717554743176, + -18.298004287632427, + -18.298290884014715, + -18.298577343955024, + -18.29886366751831, + -18.299149854769503, + -18.299435905773493, + -18.299721820595146, + -18.300007599299292, + -18.30029324195074, + -18.30057874861426, + -18.300864119354586, + -18.301149354236436, + -18.301434453324486, + -18.301719416683387, + -18.302004244377752, + -18.30228893647217, + -18.302573493031197, + -18.302857914119354, + -18.303142199801144, + -18.303426350141027, + -18.303710365203436, + -18.30399424505277, + -18.30427798975341, + -18.304561599369688, + -18.304845073965918, + -18.30512841360638, + -18.305411618355325, + -18.30569468827697, + -18.3059776234355, + -18.306260423895075, + -18.306543089719828, + -18.306825620973846, + -18.307108017721205, + -18.30739028002593, + -18.307672407952033, + -18.307954401563485, + -18.308236260924232, + -18.30851798609819, + -18.30879957714924, + -18.309081034141236, + -18.309362357137996, + -18.309643546203315, + -18.309924601400954, + -18.310205522794647, + -18.31048631044809, + -18.310766964424964, + -18.311047484788897, + -18.311327871603503, + -18.311608124932366, + -18.311888244839032, + -18.312168231387023, + -18.312448084639822, + -18.312727804660895, + -18.313007391513665, + -18.313286845261533, + -18.313566165967867, + -18.313845353696003, + -18.314124408509254, + -18.314403330470892, + -18.314682119644168, + -18.3149607760923, + -18.31523929987847, + -18.315517691065846, + -18.315795949717543, + -18.316074075896665, + -18.316352069666276, + -18.31662993108942, + -18.316907660229095, + -18.317185257148285, + -18.31746272190993, + -18.317740054576955, + -18.31801725521224, + -18.31829432387865, + -18.31857126063901, + -18.318848065556114, + -18.319124738692732, + -18.3194012801116, + -18.319677689875427, + -18.31995396804689, + -18.320230114688638, + -18.32050612986329, + -18.320782013633437, + -18.32105776606163, + -18.321333387210405, + -18.321608877142257, + -18.321884235919658, + -18.322159463605047, + -18.32243456026083, + -18.322709525949396, + -18.322984360733088, + -18.32325906467423, + -18.32353363783511, + -18.323808080277992, + -18.324082392065108, + -18.324356573258658, + -18.324630623920818, + -18.324904544113732, + -18.325178333899505, + -18.325451993340227, + -18.325725522497955, + -18.32599892143471, + -18.32627219021249, + -18.326545328893257, + -18.326818337538946, + -18.327091216211468, + -18.3273639649727, + -18.327636583884487, + -18.32790907300865, + -18.328181432406975, + -18.328453662141225, + -18.328725762273127, + -18.328997732864384, + -18.329269573976667, + -18.329541285671613, + -18.329812868010844, + -18.330084321055935, + -18.330355644868447, + -18.330626839509897, + -18.330897905041788, + -18.331168841525578, + -18.331439649022713, + -18.331710327594593, + -18.3319808773026, + -18.33225129820808, + -18.332521590372362, + -18.332791753856725, + -18.33306178872244, + -18.33333169503073, + -18.333601472842805, + -18.333871122219836, + -18.33414064322297, + -18.334410035913326, + -18.334679300351983, + -18.334948436600005, + -18.335217444718417, + -18.33548632476822, + -18.335755076810383, + -18.336023700905848, + -18.336292197115533, + -18.336560565500314, + -18.33682880612105, + -18.33709691903857, + -18.33736490431366, + -18.337632762007093, + -18.337900492179607, + -18.338168094891913, + -18.33843557020469, + -18.338702918178594, + -18.338970138874245, + -18.33923723235224, + -18.339504198673144, + -18.33977103789749, + -18.340037750085784, + -18.340304335298512, + -18.340570793596118, + -18.340837125039034, + -18.341103329687638, + -18.341369407602304, + -18.341635358843362, + -18.34190118347112, + -18.34216688154586, + -18.342432453127824, + -18.342697898277237, + -18.342963217054287, + -18.34322840951914, + -18.34349347573193, + -18.34375841575276, + -18.34402322964171, + -18.344287917458825, + -18.34455247926413, + -18.34481691511761, + -18.34508122507924, + -18.345345409208942, + -18.345609467566625, + -18.345873400212163, + -18.346137207205413, + -18.34640088860619, + -18.346664444474285, + -18.346927874869465, + -18.34719117985146, + -18.34745435947998, + -18.347717413814703, + -18.347980342915275, + -18.34824314684132, + -18.348505825652428, + -18.348768379408167, + -18.34903080816807, + -18.349293111991646, + -18.349555290938376, + -18.349817345067706, + -18.350079274439064, + -18.350341079111843, + -18.350602759145406, + -18.350864314599097, + -18.35112574553222, + -18.351387052004057, + -18.351648234073867, + -18.35190929180087, + -18.35217022524426, + -18.352431034463212, + -18.352691719516862, + -18.352952280464322, + -18.35321271736468, + -18.35347303027699, + -18.35373321926028, + -18.35399328437355, + -18.35425322567577, + -18.354513043225882, + -18.354772737082808, + -18.35503230730543, + -18.35529175395261, + -18.355551077083174, + -18.355810276755935, + -18.35606935302966, + -18.356328305963103, + -18.35658713561498, + -18.356845842043985, + -18.357104425308773, + -18.357362885467992, + -18.357621222580242, + -18.357879436704103, + -18.35813752789813, + -18.358395496220844, + -18.358653341730744, + -18.3589110644863, + -18.359168664545948, + -18.359426141968104, + -18.359683496811147, + -18.35994072913344, + -18.360197838993315, + -18.360454826449068, + -18.360711691558976, + -18.36096843438128, + -18.361225054974202, + -18.361481553395933, + -18.36173792970464, + -18.361994183958448, + -18.36225031621547, + -18.36250632653379, + -18.362762214971454, + -18.363017981586484, + -18.36327362643689, + -18.363529149580625, + -18.363784551075646, + -18.364039830979856, + -18.364294989351144, + -18.364550026247375, + -18.364804941726373, + -18.365059735845943, + -18.365314408663867, + -18.36556896023789, + -18.365823390625735, + -18.366077699885093, + -18.36633188807363, + -18.36658595524899, + -18.366839901468786, + -18.367093726790593, + -18.367347431271973, + -18.367601014970457, + -18.367854477943546, + -18.36810782024871, + -18.368361041943405, + -18.368614143085043, + -18.36886712373102, + -18.369119983938702, + -18.369372723765427, + -18.369625343268503, + -18.369877842505215, + -18.370130221532815, + -18.37038248040854, + -18.370634619189584, + -18.370886637933125, + -18.37113853669631, + -18.37139031553626, + -18.371641974510066, + -18.37189351367479, + -18.37214493308748, + -18.372396232805137, + -18.37264741288475, + -18.372898473383277, + -18.373149414357645, + -18.373400235864757, + -18.37365093796149, + -18.373901520704692, + -18.374151984151183, + -18.37440232835776, + -18.37465255338119, + -18.374902659278213, + -18.37515264610554, + -18.375402513919862, + -18.375652262777834, + -18.37590189273609, + -18.376151403851235, + -18.376400796179848, + -18.37665006977848, + -18.376899224703656, + -18.377148261011875, + -18.377397178759608, + -18.377645978003297, + -18.377894658799356, + -18.378143221204184, + -18.378391665274137, + -18.378639991065555, + -18.378888198634744, + -18.37913628803799, + -18.37938425933155, + -18.379632112571652, + -18.379879847814497, + -18.380127465116264, + -18.3803749645331, + -18.380622346121125, + -18.38086960993644, + -18.381116756035112, + -18.381363784473184, + -18.381610695306662, + -18.381857488591546, + -18.382104164383797, + -18.382350722739346, + -18.382597163714106, + -18.38284348736396, + -18.383089693744758, + -18.383335782912333, + -18.383581754922485, + -18.383827609830995, + -18.384073347693604, + -18.384318968566046, + -18.38456447250401, + -18.384809859563166, + -18.38505512979916, + -18.385300283267604, + -18.385545320024097, + -18.385790240124194, + -18.38603504362344, + -18.38627973057734, + -18.38652430104138, + -18.38676875507102, + -18.387013092721688, + -18.387257314048796, + -18.387501419107718, + -18.38774540795381, + -18.38798928064239, + -18.38823303722877, + -18.388476677768214, + -18.388720202315973, + -18.388963610927267, + -18.389206903657293, + -18.389450080561218, + -18.389693141694185, + -18.389936087111305, + -18.390178916867676, + -18.390421631018352, + -18.390664229618377, + -18.390906712722764, + -18.39114908038649, + -18.391391332664522, + -18.391633469611786, + -18.39187549128319, + -18.392117397733617, + -18.392359189017917, + -18.39260086519092, + -18.39284242630743, + -18.393083872422217, + -18.393325203590035, + -18.393566419865603, + -18.39380752130363, + -18.394048507958775, + -18.394289379885688, + -18.39453013713899, + -18.394770779773275, + -18.395011307843106, + -18.395251721403028, + -18.395492020507557, + -18.395732205211182, + -18.395972275568365, + -18.396212231633548, + -18.396452073461134, + -18.39669180110552, + -18.396931414621054, + -18.39717091406208, + -18.397410299482903, + -18.397649570937805, + -18.397888728481043, + -18.39812777216685, + -18.398366702049426, + -18.398605518182954, + -18.398844220621584, + -18.39908280941945, + -18.39932128463065, + -18.399559646309253, + -18.399797894509316, + -18.400036029284866, + -18.4002740506899, + -18.400511958778388, + -18.40074975360428, + -18.400987435221495, + -18.401225003683933, + -18.401462459045465, + -18.401699801359932, + -18.401937030681154, + -18.402174147062922, + -18.40241115055901, + -18.402648041223156, + -18.40288481910908, + -18.403121484270468, + -18.40335803676099, + -18.403594476634286, + -18.403830803943972, + -18.404067018743632, + -18.404303121086826, + -18.404539111027102, + -18.404774988617966, + -18.405010753912908, + -18.405246406965386, + -18.405481947828843, + -18.405717376556684, + -18.405952693202295, + -18.406187897819034, + -18.40642299046024, + -18.406657971179218, + -18.406892840029254, + -18.407127597063607, + -18.40736224233551, + -18.407596775898163, + -18.407831197804754, + -18.408065508108443, + -18.408299706862355, + -18.408533794119606, + -18.408767769933267, + -18.409001634356397, + -18.409235387442024, + -18.409469029243162, + -18.409702559812782, + -18.409935979203844, + -18.410169287469273, + -18.41040248466198, + -18.410635570834838, + -18.410868546040703, + -18.411101410332407, + -18.411334163762746, + -18.411566806384503, + -18.411799338250436, + -18.412031759413267, + -18.4122640699257, + -18.412496269840418, + -18.412728359210067, + -18.412960338087277, + -18.413192206524656, + -18.413423964574775, + -18.413655612290192, + -18.413887149723436, + -18.414118576927002, + -18.414349893953375, + -18.414581100855006, + -18.41481219768432, + -18.415043184493722, + -18.41527406133559, + -18.41550482826228, + -18.415735485326113, + -18.415966032579398, + -18.416196470074414, + -18.41642679786341, + -18.416657015998613, + -18.416887124532234, + -18.417117123516448, + -18.417347013003408, + -18.417576793045246, + -18.41780646369406, + -18.41803602500194, + -18.418265477020928, + -18.418494819803065, + -18.418724053400354, + -18.41895317786477, + -18.41918219324827, + -18.41941109960279, + -18.419639896980236, + -18.419868585432482, + -18.42009716501139, + -18.42032563576879, + -18.420553997756496, + -18.42078225102628, + -18.42101039562991, + -18.42123843161911, + -18.4214663590456, + -18.421694177961054, + -18.42192188841714, + -18.422149490465486, + -18.422376984157705, + -18.422604369545386, + -18.422831646680084, + -18.42305881561334, + -18.42328587639667, + -18.42351282908155, + -18.423739673719453, + -18.423966410361817, + -18.424193039060054, + -18.42441955986555, + -18.42464597282968, + -18.424872278003775, + -18.425098475439157, + -18.42532456518712, + -18.425550547298922, + -18.425776421825816, + -18.426002188819016, + -18.426227848329713, + -18.426453400409088, + -18.426678845108274, + -18.4269041824784, + -18.42712941257056, + -18.42735453543583, + -18.427579551125255, + -18.42780445968986, + -18.42802926118064, + -18.42825395564858, + -18.42847854314462, + -18.4287030237197, + -18.428927397424708, + -18.429151664310535, + -18.42937582442803, + -18.429599877828018, + -18.429823824561314, + -18.430047664678693, + -18.430271398230914, + -18.430495025268712, + -18.430718545842794, + -18.43094196000385, + -18.431165267802534, + -18.431388469289484, + -18.431611564515315, + -18.431834553530614, + -18.432057436385946, + -18.43228021313185, + -18.432502883818845, + -18.43272544849742, + -18.432947907218043, + -18.433170260031165, + -18.4333925069872, + -18.433614648136544, + -18.43383668352957, + -18.434058613216628, + -18.43428043724804, + -18.434502155674107, + -18.434723768545105, + -18.434945275911286, + -18.43516667782288, + -18.43538797433009, + -18.435609165483097, + -18.43583025133206, + -18.43605123192711, + -18.436272107318352, + -18.436492877555878, + -18.436713542689745, + -18.436934102769992, + -18.437154557846632, + -18.437374907969655, + -18.437595153189026, + -18.43781529355469, + -18.438035329116563, + -18.438255259924542, + -18.438475086028493, + -18.438694807478267, + -18.438914424323688, + -18.439133936614553, + -18.439353344400644, + -18.43957264773171, + -18.43979184665747, + -18.440010941227644, + -18.440229931491906, + -18.440448817499917, + -18.440667599301307, + -18.440886276945687, + -18.441104850482645, + -18.441323319961743, + -18.441541685432526, + -18.4417599469445, + -18.441978104547168, + -18.44219615828999, + -18.442414108222415, + -18.442631954393864, + -18.442849696853738, + -18.44306733565141, + -18.443284870836234, + -18.443502302457528, + -18.44371963056461, + -18.443936855206747, + -18.444153976433206, + -18.44437099429322, + -18.444587908835995, + -18.44480472011072, + -18.44502142816656, + -18.44523803305265, + -18.445454534818115, + -18.44567093351204, + -18.4458872291835, + -18.446103421881542, + -18.44631951165519, + -18.44653549855344, + -18.446751382625273, + -18.446967163919638, + -18.447182842485468, + -18.447398418371666, + -18.447613891627118, + -18.447829262300683, + -18.4480445304412, + -18.44825969609748, + -18.44847475931832, + -18.44868972015248, + -18.44890457864871, + -18.44911933485572, + -18.449333988822215, + -18.449548540596872, + -18.44976299022834, + -18.449977337765244, + -18.450191583256192, + -18.450405726749764, + -18.450619768294516, + -18.45083370793899, + -18.451047545731697, + -18.45126128172112, + -18.451474915955735, + -18.451688448483974, + -18.451901879354267, + -18.45211520861501, + -18.452328436314566, + -18.452541562501295, + -18.452754587223527, + -18.452967510529565, + -18.453180332467685, + -18.45339305308615, + -18.453605672433202, + -18.453818190557044, + -18.45403060750587, + -18.45424292332785, + -18.45445513807113, + -18.45466725178382, + -18.45487926451403, + -18.455091176309832, + -18.455302987219273, + -18.45551469729039, + -18.455726306571187, + -18.455937815109646, + -18.45614922295373, + -18.45636053015138, + -18.456571736750508, + -18.456782842799008, + -18.456993848344748, + -18.457204753435576, + -18.457415558119315, + -18.45762626244377, + -18.45783686645672, + -18.458047370205918, + -18.458257773739096, + -18.45846807710397, + -18.458678280348224, + -18.458888383519522, + -18.45909838666551, + -18.459308289833803, + -18.459518093072006, + -18.459727796427686, + -18.459937399948398, + -18.46014690368167, + -18.460356307675013, + -18.460565611975902, + -18.460774816631805, + -18.460983921690158, + -18.461192927198375, + -18.46140183320386, + -18.461610639753967, + -18.461819346896057, + -18.462027954677456, + -18.462236463145466, + -18.462444872347362, + -18.462653182330406, + -18.462861393141836, + -18.463069504828862, + -18.463277517438677, + -18.463485431018448, + -18.46369324561532, + -18.463900961276423, + -18.46410857804885, + -18.464316095979683, + -18.464523515115978, + -18.46473083550477, + -18.46493805719307, + -18.46514518022786, + -18.46535220465612, + -18.465559130524788, + -18.465765957880784, + -18.465972686771007, + -18.46617931724234, + -18.46638584934163, + -18.466592283115716, + -18.466798618611406, + -18.467004855875487, + -18.467210994954726, + -18.467417035895867, + -18.467622978745634, + -18.46782882355072, + -18.468034570357805, + -18.468240219213545, + -18.46844577016457, + -18.468651223257492, + -18.4688565785389, + -18.469061836055356, + -18.469266995853406, + -18.46947205797957, + -18.46967702248035, + -18.469881889402224, + -18.47008665879164, + -18.470291330695037, + -18.470495905158828, + -18.470700382229396, + -18.470904761953108, + -18.471109044376313, + -18.471313229545334, + -18.471517317506464, + -18.471721308305987, + -18.47192520199016, + -18.472128998605218, + -18.472332698197366, + -18.472536300812802, + -18.472739806497692, + -18.472943215298184, + -18.4731465272604, + -18.473349742430443, + -18.473552860854394, + -18.473755882578313, + -18.473958807648234, + -18.474161636110175, + -18.474364368010125, + -18.474567003394057, + -18.47476954230792, + -18.47497198479764, + -18.475174330909127, + -18.47537658068826, + -18.4755787341809, + -18.47578079143289, + -18.475982752490044, + -18.47618461739816, + -18.476386386203014, + -18.47658805895036, + -18.476789635685922, + -18.476991116455416, + -18.477192501304522, + -18.477393790278914, + -18.47759498342423, + -18.477796080786092, + -18.477997082410106, + -18.478197988341844, + -18.478398798626863, + -18.4785995133107, + -18.478800132438877, + -18.479000656056876, + -18.479201084210167, + -18.479401416944203, + -18.47960165430441, + -18.47980179633619, + -18.480001843084924, + -18.480201794595985, + -18.480401650914708, + -18.480601412086408, + -18.480801078156386, + -18.481000649169918, + -18.481200125172258, + -18.481399506208636, + -18.481598792324267, + -18.48179798356434, + -18.481997079974022, + -18.48219608159846, + -18.482394988482774, + -18.482593800672078, + -18.482792518211443, + -18.48299114114594, + -18.483189669520602, + -18.48338810338045, + -18.483586442770473, + -18.483784687735653, + -18.483982838320944, + -18.484180894571274, + -18.484378856531556, + -18.484576724246683, + -18.484774497761514, + -18.484972177120902, + -18.485169762369672, + -18.485367253552624, + -18.485564650714547, + -18.485761953900194, + -18.485959163154313, + -18.48615627852162, + -18.486353300046808, + -18.486550227774558, + -18.486747061749526, + -18.486943802016338, + -18.487140448619616, + -18.48733700160394, + -18.487533461013893, + -18.48772982689401, + -18.48792609928883, + -18.488122278242855, + -18.488318363800566, + -18.488514356006434, + -18.4887102549049, + -18.488906060540376, + -18.489101772957273, + -18.48929739219997, + -18.489492918312816, + -18.48968835134016, + -18.48988369132631, + -18.490078938315563, + -18.49027409235219, + -18.49046915348045, + -18.49066412174457, + -18.49085899718876, + -18.49105377985721, + -18.49124846979409, + -18.491443067043548, + -18.491637571649708, + -18.491831983656674, + -18.492026303108535, + -18.492220530049348, + -18.492414664523164, + -18.492608706574, + -18.492802656245853, + -18.49299651358271, + -18.49319027862852, + -18.49338395142723, + -18.49357753202275, + -18.49377102045898, + -18.493964416779793, + -18.494157721029044, + -18.494350933250566, + -18.49454405348817, + -18.494737081785647, + -18.49493001818677, + -18.49512286273529, + -18.495315615474933, + -18.495508276449403, + -18.495700845702395, + -18.495893323277574, + -18.496085709218583, + -18.496278003569046, + -18.496470206372575, + -18.49666231767274, + -18.496854337513113, + -18.497046265937236, + -18.49723810298863, + -18.497429848710794, + -18.497621503147208, + -18.49781306634133, + -18.498004538336595, + -18.49819591917643, + -18.498387208904223, + -18.498578407563354, + -18.498769515197182, + -18.498960531849036, + -18.499151457562235, + -18.49934229238007, + -18.499533036345817, + -18.499723689502726, + -18.49991425189403, + -18.50010472356294, + -18.50029510455265, + -18.500485394906327, + -18.50067559466712, + -18.50086570387816, + -18.50105572258255, + -18.50124565082339, + -18.50143548864374, + -18.501625236086646, + -18.501814893195135, + -18.50200446001222, + -18.502193936580877, + -18.502383322944077, + -18.502572619144765, + -18.502761825225864, + -18.502950941230274, + -18.503139967200884, + -18.503328903180556, + -18.503517749212133, + -18.503706505338435, + -18.503895171602267, + -18.504083748046405, + -18.504272234713614, + -18.504460631646634, + -18.504648938888188, + -18.504837156480974, + -18.505025284467667, + -18.505213322890935, + -18.505401271793414, + -18.505589131217718, + -18.50577690120645, + -18.505964581802186, + -18.506152173047486, + -18.506339674984886, + -18.506527087656906, + -18.506714411106042, + -18.50690164537477, + -18.50708879050555, + -18.507275846540814, + -18.507462813522977, + -18.507649691494443, + -18.50783648049758, + -18.50802318057475, + -18.508209791768284, + -18.5083963141205, + -18.508582747673696, + -18.50876909247014, + -18.50895534855209, + -18.509141515961783, + -18.509327594741432, + -18.50951358493323, + -18.50969948657936, + -18.50988529972197, + -18.51007102440319, + -18.510256660665142, + -18.510442208549918, + -18.510627668099588, + -18.510813039356215, + -18.51099832236183, + -18.511183517158443, + -18.511368623788055, + -18.511553642292636, + -18.51173857271414, + -18.511923415094504, + -18.51210816947564, + -18.51229283589944, + -18.512477414407783, + -18.512661905042524, + -18.512846307845493, + -18.51303062285851, + -18.51321485012337, + -18.51339898968184, + -18.51358304157568, + -18.513767005846628, + -18.513950882536395, + -18.514134671686676, + -18.514318373339155, + -18.514501987535475, + -18.51468551431728, + -18.514868953726182, + -18.51505230580378, + -18.515235570591653, + -18.515418748131353, + -18.515601838464416, + -18.515784841632364, + -18.51596775767669, + -18.516150586638876, + -18.516333328560375, + -18.516515983482627, + -18.51669855144705, + -18.516881032495043, + -18.51706342666799, + -18.517245734007236, + -18.517427954554137, + -18.51761008835, + -18.517792135436135, + -18.51797409585382, + -18.51815596964431, + -18.518337756848858, + -18.51851945750867, + -18.51870107166496, + -18.518882599358907, + -18.51906404063167, + -18.519245395524397, + -18.519426664078207, + -18.51960784633421, + -18.519788942333484, + -18.5199699521171, + -18.520150875726102, + -18.52033171320151, + -18.520512464584336, + -18.520693129915564, + -18.520873709236167, + -18.521054202587084, + -18.521234610009248, + -18.521414931543564, + -18.521595167230927, + -18.521775317112205, + -18.521955381228246, + -18.52213535961988, + -18.52231525232792, + -18.52249505939316, + -18.522674780856374, + -18.52285441675831, + -18.523033967139703, + -18.52321343204127, + -18.5233928115037, + -18.523572105567677, + -18.523751314273852, + -18.523930437662866, + -18.52410947577533, + -18.524288428651847, + -18.524467296332993, + -18.52464607885933, + -18.524824776271398, + -18.52500338860972, + -18.525181915914793, + -18.5253603582271, + -18.52553871558711, + -18.52571698803526, + -18.525895175611975, + -18.526073278357668, + -18.526251296312715, + -18.52642922951749, + -18.526607078012336, + -18.526784841837586, + -18.526962521033543, + -18.527140115640503, + -18.527317625698736, + -18.52749505124849, + -18.527672392330004, + -18.527849648983484, + -18.528026821249128, + -18.528203909167114, + -18.528380912777592, + -18.5285578321207, + -18.52873466723656, + -18.528911418165265, + -18.529088084946903, + -18.529264667621526, + -18.529441166229176, + -18.52961758080988, + -18.529793911403644, + -18.529970158050443, + -18.530146320790248, + -18.530322399663003, + -18.530498394708637, + -18.530674305967057, + -18.530850133478154, + -18.531025877281795, + -18.531201537417832, + -18.531377113926098, + -18.531552606846404, + -18.53172801621855, + -18.53190334208231, + -18.532078584477436, + -18.53225374344367, + -18.532428819020726, + -18.532603811248308, + -18.532778720166096, + -18.53295354581375, + -18.533128288230913, + -18.533302947457212, + -18.533477523532248, + -18.53365201649561, + -18.533826426386863, + -18.534000753245564, + -18.534174997111233, + -18.534349158023385, + -18.534523236021514, + -18.53469723114509, + -18.53487114343357, + -18.53504497292639, + -18.535218719662964, + -18.535392383682698, + -18.53556596502496, + -18.535739463729126, + -18.535912879834523, + -18.536086213380482, + -18.536259464406303, + -18.53643263295128, + -18.536605719054677, + -18.536778722755738, + -18.536951644093694, + -18.537124483107764, + -18.53729723983713, + -18.537469914320972, + -18.53764250659844, + -18.53781501670868, + -18.537987444690803, + -18.538159790583908, + -18.53833205442708, + -18.538504236259374, + -18.538676336119845, + -18.538848354047506, + -18.53902029008137, + -18.539192144260422, + -18.539363916623632, + -18.53953560720995, + -18.53970721605831, + -18.539878743207627, + -18.540050188696792, + -18.54022155256468, + -18.540392834850156, + -18.540564035592052, + -18.540735154829193, + -18.540906192600385, + -18.541077148944407, + -18.541248023900025, + -18.54141881750599, + -18.54158952980102, + -18.541760160823838, + -18.54193071061313, + -18.54210117920757, + -18.542271566645816, + -18.542441872966503, + -18.542612098208245, + -18.542782242409643, + -18.54295230560928, + -18.543122287845723, + -18.54329218915751, + -18.54346200958317, + -18.543631749161214, + -18.54380140793013, + -18.543970985928386, + -18.54414048319444, + -18.544309899766724, + -18.544479235683657, + -18.544648490983633, + -18.544817665705033, + -18.54498675988622, + -18.545155773565536, + -18.545324706781308, + -18.54549355957184, + -18.54566233197543, + -18.545831024030335, + -18.545999635774816, + -18.5461681672471, + -18.54633661848541, + -18.54650498952794, + -18.546673280412868, + -18.54684149117836, + -18.547009621862554, + -18.547177672503572, + -18.547345643139533, + -18.547513533808516, + -18.547681344548593, + -18.547849075397817, + -18.548016726394223, + -18.548184297575826, + -18.54835178898062, + -18.548519200646595, + -18.548686532611704, + -18.548853784913895, + -18.54902095759109, + -18.5491880506812, + -18.549355064222116, + -18.549521998251702, + -18.54968885280782, + -18.549855627928302, + -18.550022323650968, + -18.550188940013612, + -18.55035547705402, + -18.550521934809954, + -18.55068831331916, + -18.550854612619368, + -18.551020832748282, + -18.5511869737436, + -18.55135303564299, + -18.551519018484107, + -18.551684922304595, + -18.55185074714207, + -18.552016493034134, + -18.55218216001837, + -18.552347748132348, + -18.552513257413615, + -18.5526786878997, + -18.552844039628113, + -18.553009312636355, + -18.553174506961902, + -18.553339622642213, + -18.553504659714722, + -18.553669618216862, + -18.55383449818603, + -18.55399929965962, + -18.554164022675, + -18.55432866726952, + -18.554493233480517, + -18.554657721345308, + -18.554822130901194, + -18.554986462185447, + -18.555150715235335, + -18.55531489008811, + -18.555478986780994, + -18.555643005351197, + -18.55580694583591, + -18.55597080827231, + -18.556134592697557, + -18.556298299148786, + -18.556461927663122, + -18.556625478277663, + -18.5567889510295, + -18.5569523459557, + -18.557115663093317, + -18.557278902479382, + -18.55744206415091, + -18.5576051481449, + -18.557768154498334, + -18.557931083248175, + -18.558093934431362, + -18.55825670808483, + -18.558419404245484, + -18.558582022950226, + -18.55874456423592, + -18.558907028139426, + -18.55906941469759, + -18.559231723947228, + -18.559393955925145, + -18.55955611066813, + -18.55971818821295, + -18.559880188596363, + -18.5600421118551, + -18.56020395802588, + -18.5603657271454, + -18.560527419250345, + -18.560689034377383, + -18.560850572563155, + -18.561012033844293, + -18.561173418257408, + -18.5613347258391, + -18.561495956625944, + -18.561657110654497, + -18.561818187961304, + -18.561979188582896, + -18.562140112555774, + -18.56230095991643, + -18.56246173070134, + -18.56262242494696, + -18.562783042689727, + -18.56294358396606, + -18.563104048812367, + -18.563264437265033, + -18.563424749360426, + -18.5635849851349, + -18.563745144624786, + -18.563905227866407, + -18.56406523489606, + -18.564225165750027, + -18.564385020464574, + -18.564544799075946, + -18.564704501620383, + -18.564864128134094, + -18.565023678653272, + -18.5651831532141, + -18.565342551852737, + -18.56550187460533, + -18.565661121508008, + -18.565820292596882, + -18.56597938790804, + -18.566138407477563, + -18.566297351341507, + -18.566456219535915, + -18.56661501209681, + -18.566773729060206, + -18.56693237046208, + -18.567090936338417, + -18.56724942672517, + -18.567407841658277, + -18.567566181173657, + -18.567724445307217, + -18.56788263409485, + -18.568040747572418, + -18.568198785775778, + -18.568356748740765, + -18.5685146365032, + -18.568672449098884, + -18.568830186563602, + -18.568987848933126, + -18.5691454362432, + -18.56930294852956, + -18.56946038582793, + -18.569617748174004, + -18.569775035603467, + -18.569932248151982, + -18.5700893858552, + -18.570246448748758, + -18.57040343686826, + -18.570560350249316, + -18.5707171889275, + -18.57087395293838, + -18.5710306423175, + -18.571187257100394, + -18.571343797322573, + -18.571500263019534, + -18.571656654226757, + -18.571812970979707, + -18.571969213313828, + -18.57212538126455, + -18.572281474867285, + -18.572437494157423, + -18.57259343917035, + -18.572749309941425, + -18.572905106505996, + -18.573060828899383, + -18.573216477156905, + -18.573372051313854, + -18.573527551405505, + -18.573682977467122, + -18.57383832953395, + -18.573993607641214, + -18.57414881182412, + -18.57430394211787, + -18.57445899855764, + -18.574613981178583, + -18.574768890015847, + -18.574923725104558, + -18.57507848647983, + -18.57523317417675, + -18.575387788230397, + -18.57554232867583, + -18.575696795548097, + -18.575851188882222, + -18.576005508713212, + -18.576159755076063, + -18.57631392800575, + -18.576468027537235, + -18.576622053705456, + -18.576776006545344, + -18.576929886091808, + -18.57708369237974, + -18.57723742544402, + -18.57739108531951, + -18.577544672041043, + -18.577698185643456, + -18.577851626161554, + -18.578004993630135, + -18.578158288083973, + -18.57831150955783, + -18.57846465808645, + -18.57861773370456, + -18.57877073644687, + -18.57892366634808, + -18.579076523442858, + -18.57922930776587, + -18.57938201935177, + -18.579534658235172, + -18.579687224450694, + -18.579839718032936, + -18.579992139016476, + -18.580144487435867, + -18.580296763325666, + -18.5804489667204, + -18.58060109765458, + -18.580753156162704, + -18.58090514227925, + -18.581057056038684, + -18.581208897475456, + -18.581360666623993, + -18.581512363518712, + -18.58166398819401, + -18.58181554068427, + -18.581967021023857, + -18.58211842924712, + -18.582269765388396, + -18.582421029482, + -18.582572221562227, + -18.582723341663364, + -18.58287438981968, + -18.583025366065424, + -18.583176270434834, + -18.583327102962127, + -18.583477863681505, + -18.583628552627157, + -18.58377916983325, + -18.583929715333934, + -18.584080189163355, + -18.584230591355627, + -18.584380921944856, + -18.584531180965136, + -18.584681368450532, + -18.584831484435103, + -18.584981528952888, + -18.585131502037914, + -18.585281403724185, + -18.585431234045696, + -18.585580993036416, + -18.58573068073031, + -18.585880297161317, + -18.586029842363367, + -18.58617931637037, + -18.586328719216215, + -18.586478050934787, + -18.586627311559944, + -18.58677650112553, + -18.586925619665383, + -18.587074667213308, + -18.58722364380311, + -18.587372549468565, + -18.58752138424344, + -18.587670148161486, + -18.587818841256432, + -18.587967463562002, + -18.588116015111893, + -18.588264495939786, + -18.58841290607936, + -18.58856124556426, + -18.58870951442813, + -18.588857712704584, + -18.589005840427227, + -18.589153897629654, + -18.589301884345435, + -18.589449800608126, + -18.589597646451274, + -18.589745421908393, + -18.589893127013003, + -18.59004076179859, + -18.590188326298637, + -18.5903358205466, + -18.59048324457593, + -18.59063059842005, + -18.590777882112377, + -18.59092509568631, + -18.59107223917523, + -18.591219312612502, + -18.591366316031475, + -18.591513249465482, + -18.591660112947846, + -18.591806906511867, + -18.591953630190833, + -18.592100284018013, + -18.592246868026663, + -18.592393382250016, + -18.592539826721303, + -18.59268620147373, + -18.592832506540482, + -18.592978741954745, + -18.593124907749672, + -18.593271003958407, + -18.593417030614084, + -18.593562987749813, + -18.593708875398686, + -18.593854693593787, + -18.594000442368184, + -18.594146121754928, + -18.594291731787045, + -18.59443727249756, + -18.594582743919474, + -18.594728146085775, + -18.594873479029427, + -18.595018742783395, + -18.59516393738061, + -18.595309062854007, + -18.595454119236482, + -18.595599106560933, + -18.595744024860235, + -18.595888874167255, + -18.596033654514834, + -18.596178365935803, + -18.596323008462974, + -18.596467582129147, + -18.59661208696711, + -18.596756523009624, + -18.596900890289444, + -18.597045188839306, + -18.59718941869193, + -18.597333579880022, + -18.59747767243627, + -18.59762169639335, + -18.59776565178392, + -18.597909538640625, + -18.59805335699609, + -18.598197106882925, + -18.59834078833373, + -18.598484401381086, + -18.598627946057555, + -18.598771422395686, + -18.59891483042802, + -18.59905817018707, + -18.59920144170534, + -18.599344645015318, + -18.59948778014948, + -18.59963084714028, + -18.59977384602016, + -18.59991677682154, + -18.60005963957684, + -18.600202434318454, + -18.600345161078756, + -18.600487819890116, + -18.60063041078488, + -18.600772933795383, + -18.600915388953943, + -18.60105777629286, + -18.601200095844423, + -18.60134234764091, + -18.601484531714565, + -18.60162664809764, + -18.601768696822354, + -18.601910677920923, + -18.60205259142554, + -18.602194437368386, + -18.602336215781623, + -18.6024779266974, + -18.60261957014786, + -18.602761146165108, + -18.602902654781257, + -18.60304409602839, + -18.603185469938584, + -18.603326776543895, + -18.603468015876363, + -18.60360918796802, + -18.603750292850872, + -18.60389133055692, + -18.604032301118146, + -18.60417320456651, + -18.604314040933968, + -18.604454810252456, + -18.60459551255389, + -18.604736147870177, + -18.60487671623321, + -18.605017217674863, + -18.605157652226996, + -18.60529801992145, + -18.605438320790057, + -18.605578554864636, + -18.605718722176977, + -18.60585882275887, + -18.60599885664208, + -18.606138823858362, + -18.60627872443946, + -18.606418558417086, + -18.60655832582296, + -18.606698026688772, + -18.606837661046193, + -18.606977228926898, + -18.607116730362524, + -18.60725616538471, + -18.607395534025077, + -18.60753483631522, + -18.60767407228673, + -18.607813241971183, + -18.607952345400133, + -18.60809138260512, + -18.60823035361768, + -18.60836925846932, + -18.60850809719154, + -18.60864686981582, + -18.60878557637363, + -18.608924216896426, + -18.60906279141564, + -18.60920129996269, + -18.609339742568995, + -18.609478119265944, + -18.609616430084916, + -18.609754675057268, + -18.609892854214355, + -18.610030967587505, + -18.61016901520804, + -18.610306997107262, + -18.61044491331646, + -18.61058276386691, + -18.61072054878986, + -18.610858268116566, + -18.61099592187825, + -18.61113351010613, + -18.611271032831404, + -18.611408490085257, + -18.611545881898856, + -18.611683208303358, + -18.6118204693299, + -18.611957665009605, + -18.61209479537359, + -18.612231860452948, + -18.612368860278753, + -18.612505794882082, + -18.61264266429398, + -18.61277946854548, + -18.612916207667606, + -18.613052881691367, + -18.613189490647752, + -18.61332603456774, + -18.613462513482297, + -18.61359892742236, + -18.61373527641887, + -18.61387156050274, + -18.614007779704878, + -18.614143934056173, + -18.614280023587497, + -18.61441604832971, + -18.61455200831365, + -18.61468790357016, + -18.614823734130045, + -18.614959500024106, + -18.615095201283136, + -18.6152308379379, + -18.61536641001916, + -18.61550191755765, + -18.615637360584106, + -18.615772739129238, + -18.615908053223738, + -18.616043302898294, + -18.61617848818358, + -18.61631360911024, + -18.616448665708923, + -18.616583658010246, + -18.616718586044826, + -18.616853449843255, + -18.61698824943612, + -18.617122984853978, + -18.617257656127393, + -18.617392263286895, + -18.617526806363006, + -18.61766128538624, + -18.617795700387088, + -18.61793005139603, + -18.61806433844353, + -18.618198561560042, + -18.618332720776, + -18.61846681612182, + -18.61860084762792, + -18.618734815324686, + -18.618868719242496, + -18.619002559411715, + -18.619136335862695, + -18.619270048625765, + -18.61940369773125, + -18.619537283209453, + -18.61967080509067, + -18.61980426340517, + -18.619937658183225, + -18.62007098945508, + -18.620204257250965, + -18.620337461601103, + -18.620470602535697, + -18.62060368008494, + -18.620736694279007, + -18.62086964514806, + -18.621002532722244, + -18.6211353570317, + -18.621268118106542, + -18.621400815976873, + -18.621533450672782, + -18.62166602222435, + -18.621798530661636, + -18.621930976014685, + -18.622063358313532, + -18.6221956775882, + -18.622327933868686, + -18.622460127184986, + -18.62259225756707, + -18.622724325044906, + -18.622856329648435, + -18.622988271407596, + -18.623120150352303, + -18.623251966512463, + -18.623383719917967, + -18.62351541059869, + -18.623647038584494, + -18.623778603905222, + -18.623910106590717, + -18.624041546670792, + -18.62417292417525, + -18.624304239133885, + -18.624435491576474, + -18.624566681532777, + -18.624697809032543, + -18.62482887410551, + -18.624959876781396, + -18.625090817089905, + -18.62522169506073, + -18.62535251072355, + -18.625483264108023, + -18.625613955243804, + -18.625744584160522, + -18.625875150887804, + -18.62600565545526, + -18.626136097892473, + -18.626266478229027, + -18.626396796494486, + -18.6265270527184, + -18.626657246930314, + -18.626787379159737, + -18.626917449436185, + -18.62704745778915, + -18.627177404248116, + -18.627307288842545, + -18.62743711160189, + -18.62756687255559, + -18.627696571733072, + -18.62782620916374, + -18.627955784877, + -18.62808529890222, + -18.628214751268782, + -18.628344142006032, + -18.628473471143312, + -18.628602738709954, + -18.628731944735264, + -18.62886108924854, + -18.62899017227907, + -18.629119193856127, + -18.62924815400896, + -18.629377052766813, + -18.629505890158924, + -18.629634666214496, + -18.629763380962736, + -18.629892034432828, + -18.630020626653952, + -18.630149157655257, + -18.630277627465897, + -18.630406036115, + -18.63053438363168, + -18.630662670045048, + -18.63079089538419, + -18.63091905967818, + -18.631047162956087, + -18.63117520524695, + -18.63130318657981, + -18.631431106983687, + -18.631558966487585, + -18.631686765120506, + -18.631814502911414, + -18.63194217988929, + -18.632069796083073, + -18.63219735152171, + -18.63232484623412, + -18.63245228024922, + -18.632579653595894, + -18.632706966303036, + -18.632834218399513, + -18.632961409914177, + -18.63308854087587, + -18.633215611313425, + -18.633342621255654, + -18.633469570731354, + -18.63359645976931, + -18.6337232883983, + -18.633850056647088, + -18.63397676454441, + -18.634103412119, + -18.634229999399583, + -18.63435652641485, + -18.634482993193508, + -18.634609399764226, + -18.63473574615567, + -18.634862032396484, + -18.63498825851531, + -18.63511442454077, + -18.635240530501473, + -18.635366576426012, + -18.63549256234297, + -18.635618488280922, + -18.635744354268414, + -18.635870160333987, + -18.635995906506174, + -18.636121592813485, + -18.636247219284417, + -18.636372785947465, + -18.6364982928311, + -18.63662373996378, + -18.63674912737395, + -18.63687445509004, + -18.636999723140477, + -18.63712493155366, + -18.637250080357987, + -18.637375169581826, + -18.637500199253548, + -18.637625169401506, + -18.637750080054037, + -18.637874931239466, + -18.637999722986102, + -18.63812445532224, + -18.638249128276172, + -18.638373741876162, + -18.63849829615047, + -18.638622791127336, + -18.638747226834994, + -18.63887160330166, + -18.638995920555537, + -18.639120178624815, + -18.63924437753767, + -18.63936851732226, + -18.639492598006743, + -18.639616619619247, + -18.639740582187905, + -18.63986448574082, + -18.639988330306085, + -18.64011211591179, + -18.640235842586005, + -18.640359510356777, + -18.640483119252153, + -18.640606669300162, + -18.640730160528822, + -18.640853592966135, + -18.640976966640086, + -18.641100281578655, + -18.641223537809807, + -18.641346735361488, + -18.64146987426163, + -18.64159295453816, + -18.64171597621899, + -18.64183893933201, + -18.64196184390511, + -18.642084689966154, + -18.642207477543, + -18.642330206663488, + -18.64245287735545, + -18.642575489646703, + -18.64269804356505, + -18.64282053913828, + -18.642942976394174, + -18.64306535536049, + -18.643187676064986, + -18.64330993853539, + -18.64343214279943, + -18.643554288884815, + -18.643676376819247, + -18.643798406630406, + -18.643920378345964, + -18.644042291993582, + -18.644164147600897, + -18.64428594519555, + -18.644407684805152, + -18.644529366457316, + -18.644650990179628, + -18.64477255599967, + -18.644894063945006, + -18.645015514043187, + -18.64513690632176, + -18.645258240808246, + -18.64537951753016, + -18.645500736515, + -18.645621897790257, + -18.645743001383405, + -18.6458640473219, + -18.6459850356332, + -18.64610596634473, + -18.646226839483912, + -18.646347655078163, + -18.64646841315487, + -18.646589113741424, + -18.646709756865192, + -18.64683034255353, + -18.646950870833777, + -18.64707134173327, + -18.647191755279326, + -18.647312111499247, + -18.64743241042033, + -18.647552652069844, + -18.647672836475063, + -18.64779296366324, + -18.647913033661606, + -18.6480330464974, + -18.648153002197823, + -18.648272900790083, + -18.64839274230137, + -18.64851252675885, + -18.648632254189696, + -18.648751924621052, + -18.648871538080055, + -18.648991094593825, + -18.649110594189473, + -18.6492300368941, + -18.64934942273479, + -18.649468751738613, + -18.64958802393263, + -18.64970723934388, + -18.649826397999405, + -18.64994549992622, + -18.650064545151334, + -18.65018353370174, + -18.65030246560442, + -18.650421340886343, + -18.65054015957446, + -18.650658921695726, + -18.650777627277062, + -18.650896276345385, + -18.651014868927604, + -18.651133405050608, + -18.651251884741274, + -18.651370308026472, + -18.651488674933056, + -18.65160698548786, + -18.651725239717717, + -18.651843437649443, + -18.65196157930984, + -18.652079664725697, + -18.65219769392379, + -18.652315666930882, + -18.652433583773725, + -18.652551444479055, + -18.652669249073604, + -18.652786997584077, + -18.652904690037182, + -18.653022326459602, + -18.653139906878017, + -18.653257431319084, + -18.65337489980945, + -18.65349231237576, + -18.65360966904463, + -18.65372696984268, + -18.653844214796504, + -18.653961403932687, + -18.6540785372778, + -18.654195614858416, + -18.654312636701068, + -18.654429602832305, + -18.65454651327864, + -18.654663368066586, + -18.654780167222647, + -18.654896910773296, + -18.65501359874502, + -18.655130231164264, + -18.655246808057484, + -18.655363329451113, + -18.655479795371573, + -18.655596205845274, + -18.655712560898614, + -18.65582886055797, + -18.655945104849728, + -18.65606129380023, + -18.65617742743584, + -18.65629350578288, + -18.656409528867673, + -18.656525496716533, + -18.656641409355753, + -18.65675726681162, + -18.656873069110404, + -18.656988816278364, + -18.657104508341742, + -18.65722014532678, + -18.657335727259692, + -18.657451254166695, + -18.657566726073977, + -18.65768214300773, + -18.65779750499412, + -18.657912812059312, + -18.658028064229445, + -18.65814326153066, + -18.658258403989077, + -18.658373491630798, + -18.658488524481932, + -18.658603502568557, + -18.658718425916746, + -18.658833294552558, + -18.65894810850204, + -18.659062867791235, + -18.659177572446154, + -18.65929222249281, + -18.659406817957205, + -18.65952135886532, + -18.65963584524313, + -18.659750277116597, + -18.659864654511665, + -18.659978977454276, + -18.660093245970348, + -18.660207460085797, + -18.66032161982652, + -18.6604357252184, + -18.660549776287315, + -18.660663773059124, + -18.660777715559682, + -18.66089160381482, + -18.66100543785037, + -18.66111921769214, + -18.66123294336593, + -18.66134661489753, + -18.661460232312713, + -18.661573795637246, + -18.66168730489688, + -18.66180076011735, + -18.661914161324393, + -18.662027508543712, + -18.662140801801012, + -18.662254041121983, + -18.662367226532307, + -18.66248035805765, + -18.66259343572366, + -18.662706459555984, + -18.662819429580242, + -18.662932345822064, + -18.663045208307043, + -18.663158017060777, + -18.66327077210884, + -18.663383473476813, + -18.66349612119024, + -18.663608715274666, + -18.663721255755625, + -18.66383374265864, + -18.663946176009212, + -18.664058555832842, + -18.66417088215501, + -18.664283155001183, + -18.664395374396825, + -18.66450754036738, + -18.664619652938285, + -18.66473171213496, + -18.664843717982812, + -18.664955670507247, + -18.665067569733647, + -18.665179415687387, + -18.66529120839383, + -18.665402947878317, + -18.665514634166197, + -18.66562626728279, + -18.66573784725341, + -18.66584937410336, + -18.66596084785793, + -18.666072268542397, + -18.666183636182026, + -18.66629495080207, + -18.66640621242777, + -18.666517421084357, + -18.66662857679705, + -18.666739679591046, + -18.666850729491546, + -18.666961726523734, + -18.667072670712773, + -18.66718356208382, + -18.667294400662026, + -18.667405186472518, + -18.667515919540424, + -18.66762659989085, + -18.66773722754889, + -18.667847802539637, + -18.66795832488816, + -18.668068794619526, + -18.668179211758776, + -18.668289576330956, + -18.668399888361087, + -18.668510147874184, + -18.668620354895253, + -18.668730509449276, + -18.668840611561244, + -18.66895066125611, + -18.669060658558838, + -18.66917060349437, + -18.66928049608763, + -18.66939033636354, + -18.66950012434701, + -18.669609860062938, + -18.669719543536196, + -18.669829174791666, + -18.669938753854204, + -18.670048280748656, + -18.670157755499865, + -18.670267178132647, + -18.670376548671815, + -18.670485867142173, + -18.67059513356851, + -18.670704347975605, + -18.670813510388218, + -18.670922620831103, + -18.671031679329005, + -18.67114068590665, + -18.67124964058876, + -18.671358543400036, + -18.671467394365177, + -18.671576193508866, + -18.671684940855773, + -18.671793636430554, + -18.671902280257864, + -18.67201087236233, + -18.67211941276858, + -18.672227901501227, + -18.672336338584874, + -18.672444724044105, + -18.672553057903496, + -18.67266134018762, + -18.672769570921023, + -18.672877750128254, + -18.672985877833842, + -18.6730939540623, + -18.67320197883814, + -18.673309952185853, + -18.67341787412993, + -18.67352574469484, + -18.67363356390504, + -18.67374133178498, + -18.673849048359102, + -18.67395671365183, + -18.67406432768757, + -18.674171890490737, + -18.67427940208571, + -18.674386862496874, + -18.674494271748593, + -18.674601629865226, + -18.67470893687112, + -18.6748161927906, + -18.674923397647998, + -18.675030551467614, + -18.675137654273748, + -18.675244706090684, + -18.675351706942703, + -18.675458656854065, + -18.675565555849023, + -18.67567240395181, + -18.675779201186668, + -18.6758859475778, + -18.67599264314942, + -18.67609928792572, + -18.67620588193088, + -18.676312425189078, + -18.676418917724465, + -18.676525359561197, + -18.676631750723402, + -18.676738091235215, + -18.67684438112074, + -18.676950620404085, + -18.677056809109338, + -18.67716294726058, + -18.677269034881874, + -18.67737507199728, + -18.677481058630843, + -18.677586994806592, + -18.677692880548555, + -18.67779871588074, + -18.677904500827143, + -18.678010235411755, + -18.678115919658552, + -18.6782215535915, + -18.678327137234543, + -18.678432670611635, + -18.6785381537467, + -18.678643586663657, + -18.678748969386415, + -18.678854301938873, + -18.67895958434491, + -18.679064816628404, + -18.67916999881322, + -18.679275130923198, + -18.67938021298219, + -18.679485245014014, + -18.679590227042493, + -18.67969515909143, + -18.67980004118462, + -18.679904873345848, + -18.680009655598884, + -18.680114387967485, + -18.6802190704754, + -18.68032370314637, + -18.68042828600412, + -18.68053281907236, + -18.680637302374805, + -18.68074173593514, + -18.680846119777044, + -18.68095045392419, + -18.68105473840024, + -18.681158973228833, + -18.68126315843361, + -18.681367294038196, + -18.681471380066206, + -18.681575416541236, + -18.681679403486882, + -18.681783340926724, + -18.68188722888433, + -18.681991067383258, + -18.68209485644705, + -18.682198596099248, + -18.68230228636337, + -18.682405927262927, + -18.682509518821426, + -18.682613061062355, + -18.682716554009193, + -18.682819997685407, + -18.682923392114454, + -18.68302673731978, + -18.683130033324815, + -18.68323328015299, + -18.683336477827712, + -18.68343962637238, + -18.683542725810387, + -18.683645776165115, + -18.683748777459922, + -18.683851729718175, + -18.68395463296321, + -18.684057487218364, + -18.684160292506963, + -18.684263048852316, + -18.684365756277725, + -18.684468414806478, + -18.684571024461857, + -18.684673585267124, + -18.684776097245543, + -18.68487856042035, + -18.68498097481479, + -18.685083340452074, + -18.685185657355426, + -18.68528792554804, + -18.68539014505311, + -18.685492315893807, + -18.68559443809331, + -18.68569651167477, + -18.685798536661334, + -18.685900513076138, + -18.686002440942303, + -18.686104320282944, + -18.686206151121162, + -18.686307933480048, + -18.686409667382684, + -18.686511352852136, + -18.68661298991146, + -18.68671457858371, + -18.686816118891915, + -18.686917610859105, + -18.68701905450829, + -18.687120449862476, + -18.687221796944655, + -18.68732309577781, + -18.687424346384905, + -18.687525548788905, + -18.687626703012754, + -18.687727809079394, + -18.68782886701175, + -18.687929876832733, + -18.688030838565254, + -18.688131752232206, + -18.688232617856467, + -18.688333435460915, + -18.688434205068408, + -18.6885349267018, + -18.688635600383922, + -18.68873622613761, + -18.68883680398568, + -18.688937333950935, + -18.689037816056178, + -18.68913825032419, + -18.68923863677775, + -18.689338975439608, + -18.68943926633253, + -18.689539509479253, + -18.689639704902508, + -18.68973985262501, + -18.68983995266948, + -18.689940005058606, + -18.69004000981508, + -18.690139966961578, + -18.690239876520767, + -18.6903397385153, + -18.690439552967824, + -18.69053931990097, + -18.69063903933736, + -18.690738711299613, + -18.690838335810323, + -18.690937912892085, + -18.691037442567477, + -18.691136924859066, + -18.691236359789414, + -18.691335747381068, + -18.69143508765656, + -18.691534380638426, + -18.691633626349173, + -18.691732824811307, + -18.691831976047325, + -18.69193108007971, + -18.692030136930928, + -18.69212914662345, + -18.692228109179723, + -18.692327024622188, + -18.69242589297327, + -18.692524714255395, + -18.69262348849097, + -18.692722215702393, + -18.692820895912046, + -18.692919529142312, + -18.69301811541555, + -18.693116654754125, + -18.693215147180375, + -18.69331359271664, + -18.69341199138523, + -18.69351034320847, + -18.693608648208652, + -18.693706906408078, + -18.693805117829026, + -18.69390328249376, + -18.694001400424547, + -18.69409947164363, + -18.694197496173246, + -18.69429547403563, + -18.694393405252995, + -18.69449128984755, + -18.69458912784149, + -18.694686919257, + -18.694784664116256, + -18.69488236244142, + -18.694980014254647, + -18.695077619578083, + -18.695175178433853, + -18.695272690844085, + -18.695370156830894, + -18.695467576416373, + -18.69556494962262, + -18.69566227647171, + -18.695759556985717, + -18.695856791186696, + -18.6959539790967, + -18.69605112073776, + -18.696148216131906, + -18.69624526530116, + -18.69634226826753, + -18.696439225053002, + -18.69653613567957, + -18.696633000169204, + -18.696729818543872, + -18.696826590825527, + -18.696923317036113, + -18.697019997197565, + -18.6971166313318, + -18.69721321946074, + -18.69730976160628, + -18.697406257790316, + -18.697502708034726, + -18.69759911236138, + -18.69769547079214, + -18.69779178334886, + -18.697888050053372, + -18.697984270927513, + -18.698080445993096, + -18.69817657527193, + -18.698272658785815, + -18.698368696556535, + -18.69846468860587, + -18.69856063495559, + -18.69865653562745, + -18.698752390643193, + -18.698848200024553, + -18.698943963793266, + -18.699039681971037, + -18.69913535457957, + -18.699230981640568, + -18.69932656317571, + -18.69942209920667, + -18.69951758975511, + -18.699613034842688, + -18.699708434491047, + -18.699803788721812, + -18.699899097556614, + -18.69999436101706, + -18.700089579124747, + -18.700184751901276, + -18.700279879368225, + -18.700374961547162, + -18.70046999845965, + -18.700564990127237, + -18.700659936571466, + -18.700754837813864, + -18.700849693875956, + -18.700944504779248, + -18.701039270545238, + -18.701133991195416, + -18.70122866675126, + -18.701323297234232, + -18.701417882665805, + -18.701512423067413, + -18.701606918460502, + -18.701701368866498, + -18.701795774306813, + -18.70189013480286, + -18.701984450376035, + -18.702078721047723, + -18.702172946839305, + -18.702267127772142, + -18.70236126386759, + -18.702455355147, + -18.702549401631703, + -18.70264340334303, + -18.70273736030229, + -18.702831272530794, + -18.702925140049835, + -18.703018962880694, + -18.703112741044656, + -18.70320647456298, + -18.70330016345692, + -18.70339380774772, + -18.703487407456617, + -18.703580962604832, + -18.703674473213585, + -18.70376793930408, + -18.703861360897502, + -18.703954738015046, + -18.704048070677878, + -18.70414135890717, + -18.704234602724068, + -18.704327802149717, + -18.70442095720525, + -18.704514067911795, + -18.704607134290466, + -18.704700156362364, + -18.704793134148577, + -18.7048860676702, + -18.704978956948295, + -18.705071802003932, + -18.705164602858165, + -18.705257359532034, + -18.705350072046574, + -18.705442740422807, + -18.705535364681744, + -18.705627944844395, + -18.705720480931745, + -18.705812972964782, + -18.70590542096448, + -18.705997824951805, + -18.7060901849477, + -18.706182500973117, + -18.70627477304899, + -18.706367001196234, + -18.706459185435772, + -18.7065513257885, + -18.706643422275317, + -18.706735474917107, + -18.706827483734735, + -18.706919448749073, + -18.70701136998097, + -18.707103247451276, + -18.707195081180817, + -18.707286871190426, + -18.707378617500908, + -18.70747032013307, + -18.70756197910771, + -18.70765359444561, + -18.70774516616754, + -18.707836694294272, + -18.707928178846558, + -18.708019619845143, + -18.708111017310763, + -18.708202371264136, + -18.708293681725984, + -18.70838494871701, + -18.70847617225791, + -18.70856735236937, + -18.708658489072068, + -18.708749582386666, + -18.70884063233382, + -18.70893163893418, + -18.709022602208382, + -18.70911352217705, + -18.7092043988608, + -18.709295232280237, + -18.709386022455966, + -18.709476769408568, + -18.709567473158625, + -18.709658133726702, + -18.709748751133354, + -18.709839325399134, + -18.70992985654458, + -18.710020344590216, + -18.71011078955657, + -18.71020119146414, + -18.710291550333434, + -18.71038186618494, + -18.710472139039133, + -18.710562368916484, + -18.71065255583746, + -18.710742699822504, + -18.71083280089206, + -18.710922859066557, + -18.71101287436642, + -18.71110284681206, + -18.711192776423875, + -18.71128266322226, + -18.711372507227598, + -18.711462308460263, + -18.711552066940612, + -18.711641782689007, + -18.711731455725783, + -18.711821086071282, + -18.711910673745823, + -18.712000218769724, + -18.712089721163288, + -18.71217918094681, + -18.71226859814057, + -18.71235797276486, + -18.71244730483993, + -18.712536594386044, + -18.71262584142345, + -18.712715045972384, + -18.712804208053075, + -18.71289332768574, + -18.71298240489059, + -18.713071439687816, + -18.713160432097617, + -18.713249382140166, + -18.713338289835633, + -18.713427155204183, + -18.713515978265963, + -18.713604759041118 + ], + "y22": [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + -5.981160380271906e-6, + -0.013473522458171567, + -0.02693171454335887, + -0.04038056390619532, + -0.05382007703243253, + -0.06725026040331558, + -0.08067112049559406, + -0.09408266378151744, + -0.10748489672884667, + -0.12087782580084704, + -0.1342614574563027, + -0.1476357981495101, + -0.1610008543302878, + -0.1743566324439742, + -0.18770313893143634, + -0.20104038022906673, + -0.21436836276879348, + -0.2276870929780753, + -0.24099657727991333, + -0.2542968220928458, + -0.2675878338309589, + -0.2808696189038825, + -0.2941421837168006, + -0.3074055346704466, + -0.3206596781611151, + -0.3339046205806556, + -0.34714036831648426, + -0.36036692775158136, + -0.3735843052644959, + -0.38679250722935044, + -0.39999154001583914, + -0.41318140998923863, + -0.4263621235104029, + -0.4395336869357739, + -0.4526961066173771, + -0.4658493889028323, + -0.47899354013534856, + -0.4921285666537354, + -0.5052544747923987, + -0.5183712708813499, + -0.5314789612462032, + -0.5445775522081848, + -0.5576670500841285, + -0.5707474611864876, + -0.583818791823329, + -0.5968810482983443, + -0.6099342369108456, + -0.6229783639557758, + -0.6360134357237027, + -0.6490394585008329, + -0.6620564385690041, + -0.6750643822056969, + -0.6880632956840322, + -0.7010531852727763, + -0.7140340572363438, + -0.7270059178348004, + -0.7399687733238663, + -0.7529226299549187, + -0.7658674939749959, + -0.7788033716267977, + -0.7917302691486924, + -0.8046481927747151, + -0.817557148734576, + -0.8304571432536579, + -0.8433481825530245, + -0.8562302728494182, + -0.8691034203552684, + -0.8819676312786892, + -0.8948229118234873, + -0.9076692681891605, + -0.9205067065709057, + -0.9333352331596155, + -0.9461548541418889, + -0.9589655757000256, + -0.971767404012038, + -0.9845603452516456, + -0.9973444055882852, + -1.0101195911871097, + -1.0228859082089916, + -1.0356433628105273, + -1.0483919611440384, + -1.0611317093575767, + -1.0738626135949245, + -1.0865846799956012, + -1.0992979146948612, + -1.1120023238237031, + -1.124697913508866, + -1.137384689872839, + -1.1500626590338578, + -1.1627318271059142, + -1.175392200198752, + -1.1880437844178773, + -1.2006865858645541, + -1.2133206106358143, + -1.225945864824454, + -1.2385623545190425, + -1.2511700858039199, + -1.2637690647592057, + -1.2763592974607942, + -1.2889407899803664, + -1.3015135483853846, + -1.3140775787391012, + -1.326632887100559, + -1.339179479524596, + -1.3517173620618417, + -1.3642465407587314, + -1.3767670216574996, + -1.3892788107961893, + -1.4017819142086458, + -1.414276337924532, + -1.426762087969322, + -1.4392391703643093, + -1.4517075911266022, + -1.4641673562691375, + -1.4766184718006747, + -1.4890609437258053, + -1.5014947780449472, + -1.513919980754356, + -1.5263365578461252, + -1.5387445153081887, + -1.55114385912432, + -1.563534595274142, + -1.575916729733126, + -1.5882902684725968, + -1.6006552174597286, + -1.6130115826575573, + -1.625359370024979, + -1.6376985855167523, + -1.650029235083504, + -1.6623513246717245, + -1.6746648602237821, + -1.6869698476779174, + -1.6992662929682498, + -1.7115542020247756, + -1.7238335807733784, + -1.736104435135827, + -1.7483667710297803, + -1.7606205943687852, + -1.7728659110622873, + -1.7851027270156286, + -1.7973310481300533, + -1.809550880302704, + -1.8217622294266342, + -1.8339651013908052, + -1.8461595020800912, + -1.8583454373752772, + -1.8705229131530692, + -1.882691935286093, + -1.8948525096428988, + -1.9070046420879587, + -1.919148338481677, + -1.9312836046803896, + -1.9434104465363662, + -1.9555288698978155, + -1.9676388806088816, + -1.9797404845096567, + -1.9918336874361764, + -2.003918495220427, + -2.0159949136903417, + -2.0280629486698123, + -2.0401226059786857, + -2.052173891432772, + -2.064216810843836, + -2.076251370019617, + -2.088277574763816, + -2.1002954308761104, + -2.1123049441521458, + -2.124306120383548, + -2.1362989653579216, + -2.1482834848588555, + -2.1602596846659186, + -2.1722275705546705, + -2.1841871482966626, + -2.19613842365944, + -2.2080814024065387, + -2.2200160902974986, + -2.231942493087861, + -2.2438606165291697, + -2.255770466368979, + -2.2676720483508475, + -2.2795653682143517, + -2.291450431695082, + -2.303327244524649, + -2.315195812430679, + -2.327056141136828, + -2.338908236362775, + -2.350752103824233, + -2.3625877492329397, + -2.374415178296674, + -2.3862343967192494, + -2.398045410200523, + -2.4098482244363906, + -2.4216428451187952, + -2.4334292779357307, + -2.4452075285712422, + -2.4569776027054253, + -2.4687395060144346, + -2.480493244170486, + -2.4922388228418573, + -2.5039762476928877, + -2.5157055243839874, + -2.527426658571637, + -2.5391396559083894, + -2.5508445220428766, + -2.5625412626198028, + -2.574229883279959, + -2.5859103896602185, + -2.597582787393544, + -2.609247082108983, + -2.620903279431678, + -2.632551384982867, + -2.6441914043798866, + -2.655823343236169, + -2.6674472071612554, + -2.6790630017607886, + -2.6906707326365242, + -2.7022704053863236, + -2.713862025604166, + -2.7254455988801465, + -2.7370211308004806, + -2.7485886269475013, + -2.760148092899672, + -2.7716995342315798, + -2.783242956513946, + -2.7947783653136176, + -2.8063057661935833, + -2.8178251647129686, + -2.8293365664270382, + -2.8408399768872035, + -2.852335401641017, + -2.8638228462321837, + -2.8753023162005604, + -2.8867738170821577, + -2.89823735440914, + -2.9096929337098354, + -2.921140560508732, + -2.932580240326486, + -2.944011978679915, + -2.9554357810820115, + -2.9668516530419398, + -2.978259600065041, + -2.989659627652831, + -3.001051741303009, + -3.012435946509457, + -3.0238122487622454, + -3.035180653547628, + -3.046541166348055, + -3.0578937926421683, + -3.06923853790481, + -3.080575407607015, + -3.0919044072160253, + -3.1032255421952866, + -3.1145388180044504, + -3.125844240099382, + -3.137141813932152, + -3.148431544951053, + -3.1597134386005923, + -3.1709875003215, + -3.1822537355507237, + -3.1935121497214425, + -3.204762748263061, + -3.2160055366012177, + -3.2272405201577787, + -3.2384677043508514, + -3.249687094594779, + -3.2608986963001505, + -3.272102514873792, + -3.283298555718781, + -3.294486824234443, + -3.3056673258163576, + -3.316840065856353, + -3.3280050497425187, + -3.3391622828592027, + -3.3503117705870182, + -3.361453518302836, + -3.372587531379801, + -3.3837138151873245, + -3.3948323750910916, + -3.405943216453065, + -3.4170463446314785, + -3.428141764980852, + -3.439229482851986, + -3.4503095035919684, + -3.461381832544171, + -3.472446475048261, + -3.483503436440194, + -3.4945527220522288, + -3.5055943372129126, + -3.5166282872471006, + -3.5276545774759493, + -3.538673213216924, + -3.549684199783792, + -3.5606875424866367, + -3.5716832466318555, + -3.5826713175221623, + -3.5936517604565847, + -3.6046245807304773, + -3.6155897836355164, + -3.626547374459707, + -3.6374973584873787, + -3.6484397409991955, + -3.659374527272157, + -3.670301722579597, + -3.6812213321911904, + -3.6921333613729503, + -3.7030378153872388, + -3.7139346994927616, + -3.724824018944577, + -3.73570577899409, + -3.7465799848890646, + -3.7574466418736208, + -3.7683057551882384, + -3.7791573300697565, + -3.790001371751382, + -3.8008378854626867, + -3.8116668764296158, + -3.8224883498744804, + -3.833302311015971, + -3.8441087650691537, + -3.8549077172454767, + -3.865699172752765, + -3.876483136795233, + -3.8872596145734803, + -3.898028611284499, + -3.9087901321216685, + -3.9195441822747656, + -3.930290766929966, + -3.9410298912698427, + -3.9517615604733733, + -3.9624857797159363, + -3.9732025541693203, + -3.9839118890017233, + -3.994613789377757, + -4.005308260458444, + -4.0159953074012265, + -4.026674935359965, + -4.0373471494849476, + -4.0480119549228775, + -4.0586693568168934, + -4.069319360306558, + -4.079961970527872, + -4.090597192613265, + -4.101225031691605, + -4.111845492888202, + -4.122458581324807, + -4.133064302119613, + -4.143662660387263, + -4.1542536612388465, + -4.164837309781911, + -4.175413611120448, + -4.185982570354915, + -4.196544192582225, + -4.207098482895752, + -4.2176454463853394, + -4.2281850881372876, + -4.238717413234373, + -4.249242426755844, + -4.259760133777421, + -4.2702705393713, + -4.280773648606155, + -4.291269466547146, + -4.301757998255913, + -4.312239248790581, + -4.322713223205768, + -4.333179926552578, + -4.343639363878617, + -4.354091540227974, + -4.364536460641248, + -4.374974130155532, + -4.385404553804427, + -4.395827736618035, + -4.406243683622969, + -4.41665239984235, + -4.427053890295818, + -4.437448159999521, + -4.447835213966129, + -4.458215057204829, + -4.468587694721335, + -4.478953131517883, + -4.489311372593237, + -4.4996624229426905, + -4.5100062875580695, + -4.520342971427737, + -4.530672479536587, + -4.5409948168660605, + -4.551309988394134, + -4.5616179990953345, + -4.571918853940728, + -4.582212557897937, + -4.59249911593113, + -4.602778533001034, + -4.613050814064927, + -4.6233159640766495, + -4.633573987986603, + -4.643824890741751, + -4.654068677285622, + -4.664305352558316, + -4.674534921496498, + -4.684757389033414, + -4.694972760098877, + -4.705181039619283, + -4.715382232517604, + -4.725576343713402, + -4.735763378122815, + -4.745943340658572, + -4.756116236229993, + -4.766282069742989, + -4.776440846100063, + -4.786592570200317, + -4.796737246939451, + -4.806874881209768, + -4.8170054779001745, + -4.827129041896179, + -4.837245578079904, + -4.84735509133008, + -4.8574575865220515, + -4.867553068527778, + -4.877641542215836, + -4.887723012451426, + -4.897797484096365, + -4.907864962009101, + -4.917925451044704, + -4.927978956054878, + -4.938025481887957, + -4.948065033388907, + -4.9580976153993355, + -4.968123232757485, + -4.978141890298241, + -4.988153592853132, + -4.998158345250333, + -5.008156152314667, + -5.018147018867607, + -5.02813094972728, + -5.0381079497084675, + -5.048078023622608, + -5.0580411762778015, + -5.067997412478809, + -5.077946737027056, + -5.087889154720636, + -5.09782467035431, + -5.107753288719512, + -5.117675014604348, + -5.1275898527936015, + -5.137497808068734, + -5.147398885207889, + -5.157293088985891, + -5.16718042417425, + -5.177060895541163, + -5.18693450785152, + -5.196801265866901, + -5.206661174345579, + -5.216514238042527, + -5.226360461709416, + -5.236199850094617, + -5.246032407943205, + -5.255858139996963, + -5.2656770509943795, + -5.275489145670656, + -5.285294428757705, + -5.295092904984155, + -5.304884579075351, + -5.314669455753358, + -5.324447539736965, + -5.334218835741682, + -5.343983348479746, + -5.353741082660126, + -5.363492042988518, + -5.3732362341673525, + -5.3829736608957965, + -5.392704327869755, + -5.402428239781872, + -5.412145401321533, + -5.421855817174871, + -5.431559492024764, + -5.441256430550839, + -5.450946637429473, + -5.4606301173338005, + -5.4703068749337085, + -5.479976914895845, + -5.489640241883616, + -5.499296860557191, + -5.508946775573504, + -5.518589991586256, + -5.528226513245919, + -5.537856345199734, + -5.547479492091719, + -5.557095958562667, + -5.566705749250147, + -5.5763088687885105, + -5.585905321808894, + -5.595495112939214, + -5.605078246804178, + -5.6146547280252825, + -5.624224561220815, + -5.633787751005858, + -5.643344301992289, + -5.652894218788783, + -5.66243750600082, + -5.671974168230677, + -5.68150421007744, + -5.691027636137002, + -5.700544451002063, + -5.710054659262138, + -5.719558265503554, + -5.729055274309456, + -5.738545690259806, + -5.748029517931384, + -5.757506761897796, + -5.766977426729474, + -5.776441516993674, + -5.785899037254483, + -5.795349992072821, + -5.8047943860064395, + -5.8142322236099275, + -5.82366350943471, + -5.833088248029053, + -5.842506443938069, + -5.85191810170371, + -5.861323225864778, + -5.870721820956923, + -5.880113891512648, + -5.889499442061307, + -5.898878477129111, + -5.908251001239128, + -5.9176170189112876, + -5.926976534662381, + -5.936329553006064, + -5.945676078452857, + -5.955016115510154, + -5.964349668682216, + -5.973676742470178, + -5.982997341372047, + -5.992311469882713, + -6.0016191324939445, + -6.010920333694391, + -6.020215077969584, + -6.029503369801944, + -6.038785213670778, + -6.048060614052285, + -6.057329575419554, + -6.066592102242569, + -6.075848198988215, + -6.085097870120273, + -6.0943411200994255, + -6.103577953383259, + -6.112808374426265, + -6.122032387679844, + -6.1312499975923, + -6.1404612086088575, + -6.149666025171651, + -6.158864451719733, + -6.168056492689072, + -6.17724215251256, + -6.186421435620008, + -6.195594346438154, + -6.204760889390667, + -6.213921068898134, + -6.223074889378083, + -6.232222355244972, + -6.241363470910196, + -6.250498240782086, + -6.259626669265913, + -6.26874876076389, + -6.277864519675175, + -6.286973950395868, + -6.296077057319022, + -6.3051738448346395, + -6.314264317329673, + -6.3233484791880334, + -6.332426334790583, + -6.341497888515148, + -6.350563144736514, + -6.359622107826427, + -6.368674782153599, + -6.377721172083713, + -6.386761281979417, + -6.395795116200333, + -6.404822679103054, + -6.4138439750411536, + -6.422859008365177, + -6.431867783422654, + -6.440870304558092, + -6.449866576112986, + -6.458856602425814, + -6.467840387832048, + -6.476817936664143, + -6.485789253251553, + -6.49475434192072, + -6.503713206995089, + -6.512665852795097, + -6.521612283638187, + -6.530552503838803, + -6.539486517708395, + -6.548414329555418, + -6.557335943685336, + -6.566251364400628, + -6.5751605960007815, + -6.584063642782299, + -6.592960509038704, + -6.6018511990605395, + -6.610735717135367, + -6.619614067547774, + -6.6284862545793715, + -6.637352282508799, + -6.646212155611728, + -6.655065878160858, + -6.663913454425924, + -6.672754888673698, + -6.6815901851679875, + -6.690419348169643, + -6.699242381936555, + -6.708059290723662, + -6.716870078782942, + -6.725674750363427, + -6.734473309711197, + -6.743265761069381, + -6.75205210867817, + -6.760832356774807, + -6.769606509593594, + -6.778374571365892, + -6.787136546320127, + -6.795892438681791, + -6.8046422526734345, + -6.813385992514686, + -6.822123662422241, + -6.830855266609868, + -6.83958080928841, + -6.848300294665788, + -6.857013726946999, + -6.865721110334125, + -6.874422449026327, + -6.8831177472198535, + -6.891807009108036, + -6.900490238881303, + -6.909167440727166, + -6.917838618830232, + -6.926503777372207, + -6.935162920531889, + -6.943816052485176, + -6.9524631774050665, + -6.961104299461665, + -6.969739422822179, + -6.978368551650924, + -6.986991690109323, + -6.995608842355914, + -7.004220012546343, + -7.012825204833375, + -7.021424423366889, + -7.0300176722938845, + -7.038604955758486, + -7.047186277901934, + -7.055761642862599, + -7.064331054775978, + -7.072894517774696, + -7.08145203598851, + -7.090003613544311, + -7.09854925456612, + -7.1070889631751015, + -7.115622743489556, + -7.124150599624927, + -7.132672535693797, + -7.141188555805899, + -7.149698664068107, + -7.158202864584451, + -7.166701161456104, + -7.175193558781397, + -7.183680060655817, + -7.1921606711720045, + -7.200635394419759, + -7.2091042344860465, + -7.217567195454988, + -7.226024281407875, + -7.234475496423159, + -7.242920844576467, + -7.251360329940596, + -7.259793956585511, + -7.268221728578359, + -7.2766436499834555, + -7.2850597248622995, + -7.29346995727357, + -7.301874351273128, + -7.310272910914016, + -7.318665640246467, + -7.327052543317899, + -7.335433624172926, + -7.343808886853347, + -7.352178335398161, + -7.360541973843559, + -7.368899806222933, + -7.377251836566869, + -7.385598068903165, + -7.393938507256815, + -7.402273155650021, + -7.410602018102195, + -7.418925098629955, + -7.427242401247133, + -7.435553929964775, + -7.44385968879114, + -7.452159681731706, + -7.460453912789171, + -7.468742385963453, + -7.477025105251695, + -7.4853020746482635, + -7.493573298144753, + -7.501838779729987, + -7.51009852339002, + -7.518352533108137, + -7.52660081286486, + -7.534843366637949, + -7.543080198402402, + -7.551311312130455, + -7.559536711791588, + -7.5677564013525265, + -7.575970384777243, + -7.584178666026952, + -7.592381249060126, + -7.600578137832485, + -7.608769336297003, + -7.616954848403915, + -7.6251346781007046, + -7.633308829332123, + -7.641477306040182, + -7.64964011216415, + -7.657797251640566, + -7.665948728403238, + -7.674094546383243, + -7.682234709508923, + -7.690369221705899, + -7.6984980868970645, + -7.706621309002591, + -7.714738891939926, + -7.722850839623799, + -7.730957155966221, + -7.739057844876491, + -7.747152910261191, + -7.755242356024189, + -7.763326186066648, + -7.7714044042870185, + -7.779477014581049, + -7.787544020841778, + -7.795605426959543, + -7.803661236821986, + -7.811711454314044, + -7.81975608331796, + -7.827795127713281, + -7.8358285913768615, + -7.8438564781828655, + -7.851878792002764, + -7.859895536705342, + -7.867906716156703, + -7.875912334220261, + -7.88391239475675, + -7.891906901624225, + -7.899895858678062, + -7.907879269770961, + -7.915857138752945, + -7.923829469471366, + -7.931796265770905, + -7.939757531493576, + -7.947713270478724, + -7.955663486563028, + -7.963608183580504, + -7.9715473653625075, + -7.979481035737735, + -7.987409198532221, + -7.995331857569347, + -8.003249016669841, + -8.011160679651777, + -8.01906685033058, + -8.026967532519024, + -8.034862730027239, + -8.042752446662709, + -8.050636686230272, + -8.058515452532125, + -8.066388749367833, + -8.074256580534316, + -8.082118949825858, + -8.089975861034114, + -8.0978273179481, + -8.10567332435421, + -8.113513884036204, + -8.121349000775213, + -8.12917867834975, + -8.137002920535696, + -8.144821731106322, + -8.152635113832272, + -8.160443072481574, + -8.168245610819639, + -8.176042732609268, + -8.183834441610644, + -8.191620741581342, + -8.199401636276335, + -8.207177129447977, + -8.21494722484603, + -8.222711926217643, + -8.230471237307368, + -8.238225161857159, + -8.245973703606365, + -8.253716866291747, + -8.261454653647471, + -8.269187069405106, + -8.276914117293638, + -8.284635801039455, + -8.292352124366365, + -8.300063090995588, + -8.307768704645765, + -8.315468969032947, + -8.323163887870615, + -8.330853464869664, + -8.338537703738417, + -8.346216608182624, + -8.353890181905461, + -8.361558428607529, + -8.369221351986868, + -8.376878955738944, + -8.38453124355666, + -8.392178219130358, + -8.399819886147812, + -8.407456248294242, + -8.415087309252307, + -8.422713072702111, + -8.430333542321202, + -8.437948721784574, + -8.445558614764671, + -8.453163224931385, + -8.460762555952067, + -8.468356611491517, + -8.475945395211992, + -8.483528910773204, + -8.49110716183233, + -8.498680152044006, + -8.506247885060326, + -8.513810364530853, + -8.52136759410262, + -8.52891957742012, + -8.536466318125324, + -8.544007819857672, + -8.551544086254072, + -8.559075120948917, + -8.566600927574068, + -8.57412150975887, + -8.581636871130145, + -8.589147015312205, + -8.596651945926835, + -8.604151666593314, + -8.611646180928403, + -8.61913549254636, + -8.62661960505892, + -8.634098522075327, + -8.641572247202308, + -8.649040784044093, + -8.656504136202406, + -8.66396230727647, + -8.671415300863014, + -8.678863120556265, + -8.68630576994796, + -8.693743252627335, + -8.701175572181146, + -8.708602732193645, + -8.716024736246608, + -8.723441587919316, + -8.730853290788572, + -8.738259848428692, + -8.74566126441151, + -8.753057542306383, + -8.760448685680187, + -8.767834698097326, + -8.775215583119726, + -8.782591344306843, + -8.78996198521566, + -8.797327509400692, + -8.804687920413988, + -8.812043221805123, + -8.81939341712122, + -8.82673850990693, + -8.834078503704447, + -8.841413402053508, + -8.84874320849139, + -8.856067926552912, + -8.863387559770446, + -8.870702111673909, + -8.878011585790759, + -8.885315985646018, + -8.892615314762256, + -8.899909576659594, + -8.907198774855715, + -8.914482912865855, + -8.921761994202816, + -8.929036022376955, + -8.936305000896194, + -8.943568933266022, + -8.950827822989492, + -8.958081673567227, + -8.96533048849742, + -8.972574271275832, + -8.9798130253958, + -8.987046754348238, + -8.994275461621632, + -9.001499150702049, + -9.008717825073138, + -9.015931488216122, + -9.023140143609815, + -9.030343794730616, + -9.037542445052503, + -9.044736098047053, + -9.051924757183425, + -9.059108425928372, + -9.06628710774624, + -9.07346080609897, + -9.080629524446104, + -9.087793266244773, + -9.09495203494972, + -9.10210583401328, + -9.109254666885397, + -9.116398537013612, + -9.123537447843084, + -9.130671402816574, + -9.137800405374454, + -9.144924458954707, + -9.15204356699293, + -9.159157732922335, + -9.16626696017375, + -9.173371252175626, + -9.180470612354023, + -9.187565044132635, + -9.19465455093277, + -9.201739136173366, + -9.208818803270988, + -9.215893555639825, + -9.2229633966917, + -9.230028329836067, + -9.237088358480008, + -9.244143486028248, + -9.25119371588314, + -9.258239051444681, + -9.265279496110507, + -9.272315053275893, + -9.279345726333759, + -9.28637151867467, + -9.293392433686835, + -9.30040847475611, + -9.307419645266007, + -9.31442594859768, + -9.321427388129944, + -9.328423967239264, + -9.335415689299762, + -9.342402557683217, + -9.34938457575907, + -9.356361746894418, + -9.363334074454027, + -9.37030156180032, + -9.37726421229339, + -9.384222029291, + -9.391175016148575, + -9.398123176219215, + -9.405066512853695, + -9.412005029400458, + -9.418938729205625, + -9.425867615612995, + -9.432791691964045, + -9.439710961597934, + -9.446625427851497, + -9.453535094059262, + -9.460439963553435, + -9.467340039663908, + -9.474235325718267, + -9.481125825041783, + -9.488011540957423, + -9.494892476785843, + -9.501768635845398, + -9.508640021452136, + -9.515506636919804, + -9.522368485559848, + -9.529225570681415, + -9.536077895591358, + -9.54292546359423, + -9.549768277992293, + -9.556606342085516, + -9.563439659171575, + -9.570268232545859, + -9.577092065501471, + -9.58391116132922, + -9.590725523317642, + -9.597535154752983, + -9.604340058919204, + -9.611140239097999, + -9.61793569856877, + -9.62472644060865, + -9.631512468492499, + -9.638293785492895, + -9.64507039488015, + -9.651842299922308, + -9.658609503885138, + -9.665372010032147, + -9.672129821624573, + -9.678882941921394, + -9.685631374179323, + -9.69237512165281, + -9.69911418759405, + -9.705848575252977, + -9.712578287877271, + -9.719303328712357, + -9.726023701001408, + -9.732739407985342, + -9.739450452902833, + -9.7461568389903, + -9.752858569481921, + -9.759555647609623, + -9.766248076603095, + -9.772935859689783, + -9.779619000094886, + -9.786297501041377, + -9.792971365749978, + -9.799640597439183, + -9.806305199325248, + -9.812965174622201, + -9.819620526541833, + -9.826271258293708, + -9.832917373085165, + -9.83955887412131, + -9.846195764605032, + -9.852828047736988, + -9.859455726715618, + -9.86607880473714, + -9.872697284995558, + -9.879311170682652, + -9.885920464987986, + -9.892525171098917, + -9.899125292200582, + -9.905720831475913, + -9.912311792105628, + -9.918898177268236, + -9.925479990140044, + -9.932057233895152, + -9.938629911705455, + -9.945198026740648, + -9.951761582168224, + -9.95832058115348, + -9.964875026859511, + -9.971424922447222, + -9.977970271075316, + -9.984511075900311, + -9.99104734007653, + -9.997579066756106, + -10.004106259088987, + -10.010628920222928, + -10.017147053303505, + -10.023660661474107, + -10.030169747875942, + -10.036674315648035, + -10.043174367927238, + -10.04966990784822, + -10.056160938543474, + -10.062647463143321, + -10.069129484775907, + -10.075607006567207, + -10.082080031641025, + -10.088548563119001, + -10.0950126041206, + -10.101472157763128, + -10.107927227161726, + -10.11437781542937, + -10.120823925676875, + -10.127265561012901, + -10.133702724543943, + -10.140135419374344, + -10.146563648606293, + -10.152987415339823, + -10.159406722672813, + -10.165821573700995, + -10.172231971517952, + -10.17863791921512, + -10.185039419881782, + -10.191436476605086, + -10.197829092470029, + -10.204217270559473, + -10.210601013954136, + -10.216980325732596, + -10.223355208971299, + -10.22972566674455, + -10.236091702124524, + -10.242453318181258, + -10.248810517982665, + -10.255163304594522, + -10.26151168108048, + -10.267855650502064, + -10.274195215918672, + -10.280530380387582, + -10.286861146963943, + -10.293187518700789, + -10.299509498649032, + -10.305827089857466, + -10.31214029537277, + -10.318449118239505, + -10.324753561500122, + -10.33105362819496, + -10.337349321362245, + -10.343640644038091, + -10.34992759925651, + -10.356210190049408, + -10.36248841944658, + -10.368762290475724, + -10.375031806162434, + -10.381296969530203, + -10.387557783600425, + -10.393814251392396, + -10.40006637592332, + -10.4063141602083, + -10.412557607260352, + -10.418796720090397, + -10.425031501707267, + -10.431261955117703, + -10.437488083326363, + -10.443709889335816, + -10.449927376146546, + -10.456140546756956, + -10.462349404163366, + -10.468553951360018, + -10.474754191339073, + -10.480950127090619, + -10.487141761602661, + -10.493329097861137, + -10.499512138849907, + -10.505690887550765, + -10.511865346943427, + -10.51803552000555, + -10.524201409712715, + -10.530363019038445, + -10.536520350954191, + -10.54267340842935, + -10.548822194431253, + -10.554966711925166, + -10.561106963874307, + -10.567242953239829, + -10.57337468298083, + -10.579502156054362, + -10.585625375415411, + -10.591744344016922, + -10.59785906480979, + -10.60396954074285, + -10.610075774762903, + -10.6161777698147, + -10.622275528840943, + -10.6283690547823, + -10.634458350577392, + -10.640543419162796, + -10.646624263473063, + -10.652700886440693, + -10.658773290996157, + -10.664841480067894, + -10.670905456582304, + -10.67696522346376, + -10.683020783634603, + -10.689072140015144, + -10.695119295523671, + -10.701162253076445, + -10.707201015587696, + -10.71323558596964, + -10.719265967132465, + -10.725292161984342, + -10.731314173431421, + -10.73733200437784, + -10.743345657725712, + -10.749355136375142, + -10.75536044322422, + -10.761361581169021, + -10.767358553103616, + -10.773351361920064, + -10.77934001050841, + -10.785324501756703, + -10.791304838550982, + -10.797281023775284, + -10.803253060311642, + -10.809220951040086, + -10.815184698838655, + -10.82114430658338, + -10.827099777148302, + -10.833051113405466, + -10.838998318224924, + -10.844941394474732, + -10.850880345020956, + -10.856815172727677, + -10.862745880456977, + -10.868672471068965, + -10.874594947421757, + -10.880513312371482, + -10.886427568772293, + -10.892337719476359, + -10.898243767333865, + -10.904145715193023, + -10.910043565900066, + -10.915937322299252, + -10.92182698723286, + -10.927712563541203, + -10.933594054062615, + -10.939471461633465, + -10.94534478908815, + -10.951214039259103, + -10.957079214976785, + -10.962940319069697, + -10.968797354364373, + -10.974650323685388, + -10.980499229855356, + -10.986344075694925, + -10.992184864022796, + -10.998021597655704, + -11.003854279408433, + -11.00968291209381, + -11.015507498522712, + -11.021328041504066, + -11.027144543844846, + -11.032957008350078, + -11.038765437822839, + -11.044569835064264, + -11.050370202873545, + -11.05616654404792, + -11.0619588613827, + -11.067747157671244, + -11.073531435704977, + -11.079311698273381, + -11.085087948164011, + -11.09086018816248, + -11.096628421052468, + -11.102392649615725, + -11.108152876632065, + -11.11390910487938, + -11.119661337133623, + -11.125409576168828, + -11.131153824757101, + -11.136894085668628, + -11.142630361671662, + -11.148362655532544, + -11.154090970015686, + -11.15981530788359, + -11.165535671896833, + -11.171252064814079, + -11.176964489392077, + -11.182672948385662, + -11.188377444547756, + -11.194077980629366, + -11.199774559379597, + -11.20546718354564, + -11.211155855872782, + -11.216840579104401, + -11.222521355981977, + -11.228198189245077, + -11.233871081631378, + -11.239540035876642, + -11.245205054714745, + -11.250866140877658, + -11.256523297095459, + -11.262176526096326, + -11.267825830606547, + -11.27347121335052, + -11.279112677050746, + -11.28475022442784, + -11.290383858200524, + -11.296013581085635, + -11.301639395798128, + -11.30726130505107, + -11.312879311555637, + -11.318493418021138, + -11.32410362715499, + -11.329709941662735, + -11.335312364248034, + -11.340910897612673, + -11.346505544456564, + -11.35209630747774, + -11.357683189372365, + -11.363266192834729, + -11.368845320557256, + -11.374420575230495, + -11.379991959543132, + -11.38555947618198, + -11.391123127831996, + -11.396682917176266, + -11.402238846896015, + -11.40779091967061, + -11.413339138177552, + -11.41888350509249, + -11.42442402308921, + -11.429960694839647, + -11.435493523013873, + -11.441022510280115, + -11.446547659304745, + -11.452068972752281, + -11.457586453285394, + -11.463100103564907, + -11.468609926249794, + -11.474115923997186, + -11.479618099462364, + -11.48511645529877, + -11.49061099415801, + -11.496101718689832, + -11.50158863154216, + -11.507071735361077, + -11.512551032790824, + -11.51802652647381, + -11.523498219050607, + -11.528966113159957, + -11.534430211438771, + -11.539890516522126, + -11.545347031043269, + -11.550799757633625, + -11.556248698922785, + -11.561693857538518, + -11.567135236106768, + -11.572572837251661, + -11.578006663595492, + -11.583436717758744, + -11.588863002360078, + -11.594285520016332, + -11.599704273342539, + -11.605119264951902, + -11.610530497455823, + -11.615937973463883, + -11.621341695583856, + -11.626741666421703, + -11.632137888581576, + -11.637530364665821, + -11.642919097274973, + -11.64830408900777, + -11.653685342461136, + -11.659062860230202, + -11.664436644908289, + -11.669806699086926, + -11.675173025355836, + -11.680535626302943, + -11.685894504514383, + -11.691249662574487, + -11.696601103065799, + -11.701948828569066, + -11.70729284166325, + -11.712633144925514, + -11.717969740931238, + -11.723302632254011, + -11.728631821465633, + -11.733957311136129, + -11.739279103833725, + -11.744597202124877, + -11.749911608574255, + -11.755222325744748, + -11.760529356197463, + -11.765832702491734, + -11.771132367185114, + -11.776428352833385, + -11.781720661990555, + -11.787009297208847, + -11.792294261038732, + -11.797575556028896, + -11.80285318472626, + -11.808127149675977, + -11.813397453421434, + -11.81866409850425, + -11.82392708746428, + -11.829186422839621, + -11.834442107166597, + -11.839694142979786, + -11.844942532811991, + -11.850187279194271, + -11.855428384655918, + -11.860665851724468, + -11.865899682925713, + -11.871129880783679, + -11.87635644782065, + -11.881579386557148, + -11.886798699511955, + -11.892014389202101, + -11.897226458142864, + -11.90243490884779, + -11.90763974382866, + -11.912840965595532, + -11.9180385766567, + -11.923232579518737, + -11.928422976686464, + -11.933609770662967, + -11.938792963949593, + -11.943972559045951, + -11.949148558449922, + -11.95432096465764, + -11.959489780163523, + -11.964655007460241, + -11.969816649038746, + -11.97497470738825, + -11.98012918499625, + -11.985280084348503, + -11.990427407929046, + -11.995571158220196, + -12.000711337702539, + -12.005847948854946, + -12.010980994154558, + -12.016110476076808, + -12.021236397095402, + -12.026358759682331, + -12.031477566307874, + -12.036592819440584, + -12.041704521547315, + -12.046812675093195, + -12.051917282541652, + -12.057018346354393, + -12.062115868991429, + -12.067209852911054, + -12.072300300569855, + -12.077387214422718, + -12.082470596922821, + -12.087550450521647, + -12.09262677766896, + -12.097699580812847, + -12.102768862399673, + -12.10783462487412, + -12.11289687067917, + -12.117955602256101, + -12.123010822044506, + -12.128062532482277, + -12.133110736005621, + -12.138155435049047, + -12.14319663204538, + -12.14823432942575, + -12.1532685296196, + -12.158299235054695, + -12.163326448157102, + -12.168350171351214, + -12.173370407059734, + -12.178387157703693, + -12.183400425702425, + -12.1884102134736, + -12.193416523433205, + -12.198419357995544, + -12.203418719573254, + -12.208414610577288, + -12.213407033416935, + -12.2183959904998, + -12.22338148423183, + -12.22836351701729, + -12.233342091258784, + -12.238317209357245, + -12.243288873711933, + -12.248257086720455, + -12.253221850778745, + -12.258183168281075, + -12.263141041620058, + -12.268095473186643, + -12.27304646537012, + -12.277994020558118, + -12.282938141136615, + -12.287878829489925, + -12.292816088000713, + -12.297749919049984, + -12.302680325017096, + -12.307607308279751, + -12.312530871214005, + -12.317451016194259, + -12.322367745593269, + -12.327281061782143, + -12.332190967130341, + -12.337097464005684, + -12.342000554774339, + -12.346900241800842, + -12.351796527448082, + -12.356689414077307, + -12.361578904048129, + -12.366464999718515, + -12.371347703444803, + -12.37622701758169, + -12.381102944482244, + -12.385975486497893, + -12.390844645978436, + -12.395710425272043, + -12.400572826725245, + -12.405431852682955, + -12.410287505488451, + -12.415139787483389, + -12.419988701007794, + -12.424834248400074, + -12.429676431997004, + -12.434515254133748, + -12.439350717143842, + -12.444182823359197, + -12.449011575110116, + -12.453836974725279, + -12.45865902453175, + -12.463477726854975, + -12.468293084018793, + -12.473105098345421, + -12.477913772155471, + -12.48271910776794, + -12.48752110750021, + -12.492319773668068, + -12.497115108585682, + -12.50190711456562, + -12.506695793918837, + -12.511481148954696, + -12.516263181980943, + -12.521041895303728, + -12.525817291227604, + -12.530589372055516, + -12.535358140088821, + -12.540123597627266, + -12.544885746969014, + -12.54964459041062, + -12.554400130247055, + -12.559152368771693, + -12.563901308276312, + -12.56864695105111, + -12.573389299384678, + -12.578128355564036, + -12.582864121874605, + -12.587596600600225, + -12.592325794023147, + -12.597051704424041, + -12.601774334081991, + -12.606493685274499, + -12.61120976027749, + -12.615922561365299, + -12.620632090810696, + -12.62533835088486, + -12.630041343857407, + -12.634741071996364, + -12.63943753756819, + -12.644130742837776, + -12.648820690068426, + -12.65350738152189, + -12.658190819458332, + -12.662871006136358, + -12.667547943813004, + -12.672221634743737, + -12.676892081182459, + -12.681559285381502, + -12.686223249591649, + -12.690883976062102, + -12.695541467040519, + -12.700195724772982, + -12.704846751504027, + -12.709494549476624, + -12.714139120932188, + -12.718780468110582, + -12.7234185932501, + -12.728053498587503, + -12.732685186357983, + -12.737313658795186, + -12.741938918131206, + -12.746560966596594, + -12.751179806420344, + -12.755795439829903, + -12.76040786905118, + -12.76501709630853, + -12.769623123824767, + -12.774225953821162, + -12.778825588517446, + -12.783422030131804, + -12.78801528088089, + -12.792605342979806, + -12.797192218642127, + -12.801775910079892, + -12.806356419503594, + -12.810933749122203, + -12.815507901143146, + -12.820078877772325, + -12.824646681214107, + -12.82921131367133, + -12.833772777345303, + -12.838331074435803, + -12.842886207141085, + -12.847438177657873, + -12.851986988181373, + -12.85653264090526, + -12.86107513802169, + -12.8656144817213, + -12.870150674193194, + -12.874683717624976, + -12.87921361420271, + -12.883740366110962, + -12.88826397553276, + -12.892784444649642, + -12.897301775641608, + -12.901815970687162, + -12.906327031963286, + -12.910834961645453, + -12.915339761907626, + -12.919841434922258, + -12.924339982860298, + -12.928835407891182, + -12.933327712182843, + -12.937816897901707, + -12.942302967212703, + -12.946785922279249, + -12.95126576526326, + -12.955742498325161, + -12.960216123623866, + -12.964686643316796, + -12.969154059559871, + -12.973618374507522, + -12.978079590312673, + -12.98253770912676, + -12.98699273309973, + -12.991444664380023, + -12.995893505114605, + -13.000339257448937, + -13.004781923527004, + -13.009221505491286, + -13.013658005482792, + -13.018091425641039, + -13.022521768104053, + -13.026949035008386, + -13.031373228489093, + -13.035794350679762, + -13.04021240371249, + -13.044627389717899, + -13.049039310825126, + -13.053448169161838, + -13.057853966854218, + -13.062256706026975, + -13.066656388803345, + -13.071053017305088, + -13.075446593652494, + -13.079837119964374, + -13.08422459835808, + -13.088609030949483, + -13.092990419852985, + -13.097368767181532, + -13.101744075046591, + -13.10611634555817, + -13.110485580824806, + -13.114851782953583, + -13.11921495405011, + -13.123575096218541, + -13.127932211561573, + -13.132286302180429, + -13.13663737017489, + -13.140985417643272, + -13.14533044668243, + -13.14967245938777, + -13.154011457853244, + -13.158347444171342, + -13.16268042043311, + -13.167010388728142, + -13.171337351144572, + -13.175661309769096, + -13.179982266686954, + -13.184300223981943, + -13.18861518373641, + -13.192927148031258, + -13.197236118945945, + -13.201542098558486, + -13.205845088945454, + -13.210145092181977, + -13.214442110341746, + -13.218736145497013, + -13.223027199718588, + -13.227315275075844, + -13.231600373636724, + -13.235882497467724, + -13.240161648633913, + -13.244437829198928, + -13.248711041224965, + -13.2529812867728, + -13.257248567901765, + -13.26151288666978, + -13.265774245133315, + -13.270032645347431, + -13.27428808936575, + -13.278540579240474, + -13.282790117022383, + -13.287036704760824, + -13.291280344503733, + -13.295521038297613, + -13.299758788187555, + -13.303993596217227, + -13.308225464428878, + -13.31245439486334, + -13.316680389560025, + -13.320903450556937, + -13.325123579890656, + -13.329340779596356, + -13.33355505170779, + -13.337766398257308, + -13.341974821275844, + -13.34618032279292, + -13.350382904836657, + -13.35458256943376, + -13.35877931860953, + -13.362973154387864, + -13.367164078791255, + -13.371352093840784, + -13.375537201556137, + -13.379719403955594, + -13.383898703056037, + -13.388075100872944, + -13.392248599420396, + -13.396419200711076, + -13.40058690675627, + -13.40475171956587, + -13.408913641148363, + -13.41307267351085, + -13.417228818659044, + -13.421382078597253, + -13.425532455328403, + -13.42967995085402, + -13.433824567174254, + -13.437966306287853, + -13.442105170192189, + -13.446241160883238, + -13.450374280355595, + -13.454504530602472, + -13.458631913615692, + -13.462756431385701, + -13.466878085901557, + -13.470996879150945, + -13.475112813120163, + -13.479225889794135, + -13.483336111156405, + -13.487443479189134, + -13.49154799587312, + -13.495649663187775, + -13.499748483111143, + -13.503844457619891, + -13.50793758868932, + -13.512027878293349, + -13.516115328404535, + -13.520199940994065, + -13.524281718031753, + -13.528360661486053, + -13.532436773324045, + -13.536510055511448, + -13.540580510012616, + -13.544648138790535, + -13.548712943806835, + -13.552774927021778, + -13.556834090394268, + -13.560890435881852, + -13.564943965440712, + -13.568994681025677, + -13.573042584590217, + -13.577087678086446, + -13.581129963465125, + -13.585169442675657, + -13.58920611766609, + -13.593239990383129, + -13.597271062772116, + -13.601299336777052, + -13.605324814340582, + -13.60934749740401, + -13.613367387907283, + -13.617384487789005, + -13.621398798986439, + -13.625410323435494, + -13.629419063070745, + -13.633425019825413, + -13.63742819563139, + -13.641428592419217, + -13.645426212118098, + -13.649421056655896, + -13.653413127959139, + -13.657402427953016, + -13.661388958561378, + -13.665372721706744, + -13.669353719310292, + -13.673331953291873, + -13.677307425570001, + -13.681280138061865, + -13.685250092683312, + -13.689217291348866, + -13.693181735971724, + -13.69714342846375, + -13.701102370735484, + -13.705058564696133, + -13.70901201225359, + -13.712962715314415, + -13.716910675783843, + -13.7208558955658, + -13.72479837656287, + -13.728738120676331, + -13.732675129806138, + -13.736609405850926, + -13.74054095070801, + -13.74446976627339, + -13.74839585444175, + -13.752319217106457, + -13.756239856159569, + -13.76015777349182, + -13.764072970992643, + -13.767985450550151, + -13.771895214051153, + -13.775802263381138, + -13.779706600424301, + -13.783608227063516, + -13.787507145180353, + -13.791403356655081, + -13.795296863366657, + -13.79918766719274, + -13.803075770009677, + -13.806961173692525, + -13.810843880115028, + -13.814723891149631, + -13.818601208667486, + -13.822475834538437, + -13.826347770631038, + -13.830217018812538, + -13.834083580948901, + -13.83794745890478, + -13.84180865454355, + -13.845667169727282, + -13.849523006316753, + -13.853376166171456, + -13.857226651149587, + -13.861074463108059, + -13.864919603902486, + -13.8687620753872, + -13.872601879415246, + -13.876439017838385, + -13.880273492507081, + -13.884105305270527, + -13.887934457976625, + -13.891760952471996, + -13.89558479060198, + -13.899405974210632, + -13.903224505140733, + -13.90704038523378, + -13.91085361632999, + -13.91466420026831, + -13.918472138886404, + -13.922277434020664, + -13.9260800875062, + -13.929880101176861, + -13.93367747686521, + -13.937472216402545, + -13.941264321618894, + -13.945053794343005, + -13.948840636402366, + -13.952624849623195, + -13.95640643583044, + -13.96018539684778, + -13.963961734497634, + -13.967735450601149, + -13.971506546978215, + -13.975275025447456, + -13.979040887826226, + -13.98280413593063, + -13.986564771575503, + -13.990322796574427, + -13.994078212739714, + -13.997831021882432, + -14.001581225812382, + -14.005328826338111, + -14.009073825266912, + -14.01281622440482, + -14.016556025556625, + -14.02029323052585, + -14.024027841114778, + -14.027759859124435, + -14.031489286354601, + -14.035216124603801, + -14.038940375669315, + -14.042662041347176, + -14.046381123432164, + -14.050097623717823, + -14.053811543996446, + -14.057522886059083, + -14.061231651695536, + -14.064937842694373, + -14.068641460842917, + -14.072342507927244, + -14.0760409857322, + -14.079736896041387, + -14.083430240637169, + -14.087121021300671, + -14.090809239811787, + -14.094494897949168, + -14.098177997490234, + -14.101858540211175, + -14.10553652788694, + -14.109211962291255, + -14.112884845196604, + -14.11655517837425, + -14.12022296359422, + -14.123888202625318, + -14.127550897235118, + -14.13121104918996, + -14.134868660254968, + -14.138523732194033, + -14.142176266769829, + -14.145826265743798, + -14.149473730876167, + -14.153118663925932, + -14.156761066650882, + -14.16040094080757, + -14.164038288151337, + -14.167673110436308, + -14.171305409415385, + -14.174935186840258, + -14.178562444461395, + -14.182187184028058, + -14.185809407288282, + -14.189429115988897, + -14.193046311875522, + -14.196660996692557, + -14.2002731721832, + -14.20388284008943, + -14.20749000215202, + -14.211094660110538, + -14.214696815703341, + -14.218296470667578, + -14.221893626739194, + -14.225488285652931, + -14.22908044914232, + -14.2326701189397, + -14.236257296776193, + -14.239841984381732, + -14.24342418348504, + -14.247003895813645, + -14.250581123093877, + -14.254155867050859, + -14.257728129408529, + -14.261297911889613, + -14.264865216215663, + -14.268430044107008, + -14.271992397282807, + -14.275552277461014, + -14.279109686358389, + -14.282664625690506, + -14.286217097171747, + -14.2897671025153, + -14.293314643433169, + -14.296859721636162, + -14.300402338833907, + -14.303942496734841, + -14.307480197046218, + -14.311015441474101, + -14.314548231723377, + -14.318078569497741, + -14.321606456499717, + -14.32513189443063, + -14.32865488499064, + -14.332175429878715, + -14.335693530792652, + -14.339209189429067, + -14.342722407483395, + -14.346233186649897, + -14.349741528621657, + -14.353247435090585, + -14.356750907747413, + -14.360251948281705, + -14.363750558381847, + -14.367246739735053, + -14.37074049402737, + -14.374231822943669, + -14.377720728167654, + -14.381207211381861, + -14.384691274267661, + -14.38817291850525, + -14.391652145773664, + -14.395128957750773, + -14.398603356113275, + -14.402075342536712, + -14.40554491869546, + -14.409012086262734, + -14.412476846910584, + -14.415939202309906, + -14.419399154130428, + -14.422856704040722, + -14.426311853708206, + -14.429764604799132, + -14.433214958978605, + -14.436662917910562, + -14.440108483257799, + -14.443551656681946, + -14.446992439843484, + -14.450430834401745, + -14.453866842014904, + -14.457300464339987, + -14.460731703032865, + -14.464160559748269, + -14.467587036139772, + -14.471011133859804, + -14.474432854559648, + -14.477852199889437, + -14.481269171498163, + -14.48468377103367, + -14.48809600014266, + -14.491505860470689, + -14.494913353662175, + -14.498318481360393, + -14.501721245207474, + -14.505121646844412, + -14.508519687911061, + -14.51191537004614, + -14.515308694887223, + -14.518699664070756, + -14.522088279232037, + -14.525474542005243, + -14.528858454023407, + -14.532240016918433, + -14.535619232321089, + -14.53899610186101, + -14.542370627166704, + -14.54574280986555, + -14.549112651583787, + -14.552480153946533, + -14.55584531857778, + -14.559208147100385, + -14.562568641136085, + -14.565926802305489, + -14.56928263222808, + -14.572636132522216, + -14.575987304805135, + -14.57933615069295, + -14.582682671800649, + -14.586026869742106, + -14.58936874613007, + -14.59270830257617, + -14.596045540690922, + -14.599380462083712, + -14.602713068362824, + -14.606043361135411, + -14.60937134200752, + -14.612697012584078, + -14.616020374468906, + -14.619341429264699, + -14.62266017857305, + -14.625976623994434, + -14.629290767128216, + -14.632602609572656, + -14.635912152924895, + -14.639219398780975, + -14.642524348735824, + -14.645827004383264, + -14.649127367316012, + -14.652425439125679, + -14.655721221402768, + -14.659014715736681, + -14.662305923715715, + -14.665594846927068, + -14.668881486956833, + -14.672165845389998, + -14.67544792381046, + -14.678727723801009, + -14.682005246943337, + -14.685280494818047, + -14.68855346900463, + -14.69182417108149, + -14.695092602625936, + -14.698358765214177, + -14.701622660421329, + -14.704884289821415, + -14.70814365498737, + -14.71140075749103, + -14.714655598903143, + -14.717908180793367, + -14.72115850473027, + -14.724406572281332, + -14.72765238501294, + -14.7308959444904, + -14.734137252277929, + -14.737376309938657, + -14.740613119034627, + -14.743847681126805, + -14.747079997775064, + -14.750310070538202, + -14.753537900973928, + -14.756763490638878, + -14.759986841088601, + -14.763207953877565, + -14.766426830559165, + -14.769643472685713, + -14.772857881808447, + -14.77607005947752, + -14.77928000724202, + -14.782487726649952, + -14.78569321924825, + -14.788896486582772, + -14.792097530198301, + -14.795296351638555, + -14.798492952446173, + -14.801687334162725, + -14.804879498328713, + -14.808069446483568, + -14.811257180165653, + -14.81444270091226, + -14.817626010259618, + -14.820807109742887, + -14.823986000896163, + -14.827162685252475, + -14.83033716434379, + -14.83350943970101, + -14.836679512853973, + -14.839847385331462, + -14.843013058661187, + -14.846176534369809, + -14.849337813982917, + -14.852496899025056, + -14.855653791019698, + -14.858808491489269, + -14.861961001955132, + -14.865111323937592, + -14.868259458955905, + -14.871405408528267, + -14.874549174171822, + -14.877690757402661, + -14.88083015973582, + -14.88396738268529, + -14.887102427764004, + -14.890235296483851, + -14.89336599035566, + -14.896494510889223, + -14.899620859593275, + -14.902745037975512, + -14.905867047542573, + -14.908986889800062, + -14.912104566252529, + -14.915220078403486, + -14.918333427755396, + -14.921444615809683, + -14.924553644066725, + -14.927660514025863, + -14.930765227185395, + -14.933867785042574, + -14.936968189093625, + -14.940066440833721, + -14.943162541757008, + -14.94625649335659, + -14.949348297124532, + -14.952437954551867, + -14.95552546712859, + -14.958610836343668, + -14.961694063685027, + -14.964775150639566, + -14.967854098693145, + -14.970930909330598, + -14.974005584035725, + -14.9770781242913, + -14.980148531579065, + -14.983216807379728, + -14.986282953172983, + -14.98934697043748, + -14.992408860650858, + -14.995468625289721, + -14.998526265829646, + -15.001581783745193, + -15.004635180509895, + -15.007686457596263, + -15.010735616475781, + -15.01378265861892, + -15.016827585495124, + -15.019870398572815, + -15.022911099319403, + -15.025949689201273, + -15.0289861696838, + -15.032020542231326, + -15.035052808307196, + -15.038082969373724, + -15.041111026892219, + -15.04413698232297, + -15.047160837125249, + -15.050182592757325, + -15.053202250676444, + -15.056219812338853, + -15.059235279199772, + -15.062248652713425, + -15.065259934333017, + -15.06826912551075, + -15.071276227697814, + -15.074281242344396, + -15.077284170899672, + -15.080285014811814, + -15.083283775527988, + -15.086280454494354, + -15.089275053156076, + -15.092267572957303, + -15.095258015341185, + -15.098246381749878, + -15.101232673624526, + -15.104216892405283, + -15.107199039531292, + -15.110179116440706, + -15.113157124570675, + -15.116133065357353, + -15.119106940235898, + -15.122078750640467, + -15.12504849800423, + -15.128016183759351, + -15.130981809337012, + -15.13394537616739, + -15.136906885679677, + -15.139866339302069, + -15.142823738461772, + -15.145779084585001, + -15.14873237909698, + -15.151683623421947, + -15.154632818983147, + -15.157579967202837, + -15.16052506950229, + -15.163468127301792, + -15.16640914202064, + -15.169348115077149, + -15.172285047888646, + -15.175219941871475, + -15.178152798441005, + -15.181083619011604, + -15.184012404996677, + -15.18693915780864, + -15.189863878858924, + -15.19278656955799, + -15.195707231315309, + -15.198625865539386, + -15.201542473637737, + -15.204457057016908, + -15.207369617082461, + -15.210280155238994, + -15.213188672890118, + -15.216095171438475, + -15.218999652285735, + -15.221902116832593, + -15.22480256647877, + -15.227701002623016, + -15.230597426663115, + -15.233491839995871, + -15.236384244017128, + -15.239274640121755, + -15.242163029703653, + -15.245049414155758, + -15.247933794870042, + -15.250816173237501, + -15.253696550648172, + -15.256574928491128, + -15.259451308154473, + -15.262325691025357, + -15.26519807848995, + -15.268068471933475, + -15.27093687274019, + -15.273803282293384, + -15.2766677019754, + -15.279530133167606, + -15.282390577250423, + -15.285249035603307, + -15.28810550960476, + -15.290960000632323, + -15.293812510062583, + -15.296663039271177, + -15.299511589632775, + -15.302358162521102, + -15.305202759308925, + -15.308045381368062, + -15.310886030069375, + -15.313724706782777, + -15.31656141287723, + -15.319396149720738, + -15.322228918680368, + -15.325059721122228, + -15.327888558411484, + -15.330715431912349, + -15.333540342988094, + -15.336363293001037, + -15.339184283312559, + -15.34200331528309, + -15.344820390272117, + -15.347635509638181, + -15.350448674738882, + -15.353259886930882, + -15.356069147569892, + -15.358876458010691, + -15.361681819607112, + -15.364485233712045, + -15.367286701677452, + -15.370086224854344, + -15.372883804592803, + -15.375679442241967, + -15.378473139150048, + -15.381264896664305, + -15.384054716131077, + -15.386842598895766, + -15.389628546302834, + -15.392412559695813, + -15.395194640417301, + -15.397974789808968, + -15.400753009211545, + -15.403529299964841, + -15.406303663407732, + -15.40907610087816, + -15.411846613713141, + -15.414615203248767, + -15.417381870820195, + -15.420146617761661, + -15.422909445406475, + -15.425670355087014, + -15.42842934813474, + -15.431186425880185, + -15.433941589652955, + -15.43669484078174, + -15.439446180594302, + -15.442195610417484, + -15.444943131577206, + -15.447688745398473, + -15.450432453205362, + -15.453174256321033, + -15.455914156067731, + -15.458652153766781, + -15.461388250738592, + -15.464122448302655, + -15.466854747777544, + -15.46958515048092, + -15.47231365772953, + -15.4750402708392, + -15.47776499112485, + -15.480487819900487, + -15.483208758479202, + -15.485927808173177, + -15.488644970293677, + -15.49136024615107, + -15.4940736370548, + -15.49678514431341, + -15.499494769234534, + -15.502202513124896, + -15.504908377290317, + -15.507612363035703, + -15.510314471665062, + -15.513014704481495, + -15.515713062787198, + -15.518409547883461, + -15.52110416107067, + -15.523796903648316, + -15.52648777691498, + -15.529176782168346, + -15.531863920705192, + -15.5345491938214, + -15.53723260281195, + -15.539914148970928, + -15.542593833591514, + -15.545271657965994, + -15.547947623385761, + -15.550621731141305, + -15.553293982522227, + -15.55596437881722, + -15.5586329213141, + -15.561299611299773, + -15.563964450060263, + -15.566627438880696, + -15.569288579045303, + -15.57194787183743, + -15.57460531853953, + -15.577260920433165, + -15.579914678799003, + -15.582566594916834, + -15.585216670065549, + -15.587864905523153, + -15.590511302566771, + -15.593155862472631, + -15.595798586516082, + -15.598439475971587, + -15.601078532112721, + -15.60371575621218, + -15.606351149541773, + -15.608984713372426, + -15.61161644897418, + -15.614246357616203, + -15.616874440566772, + -15.61950069909329, + -15.62212513446228, + -15.624747747939383, + -15.627368540789359, + -15.6299875142761, + -15.632604669662612, + -15.635220008211025, + -15.637833531182592, + -15.640445239837696, + -15.64305513543584, + -15.645663219235656, + -15.648269492494897, + -15.65087395647045, + -15.653476612418324, + -15.656077461593659, + -15.658676505250723, + -15.66127374464291, + -15.663869181022747, + -15.666462815641895, + -15.66905464975114, + -15.671644684600402, + -15.674232921438735, + -15.676819361514323, + -15.679404006074483, + -15.68198685636567, + -15.684567913633472, + -15.687147179122608, + -15.689724654076944, + -15.692300339739468, + -15.694874237352318, + -15.69744634815676, + -15.700016673393202, + -15.702585214301196, + -15.705151972119426, + -15.707716948085718, + -15.710280143437041, + -15.712841559409505, + -15.715401197238359, + -15.717959058157994, + -15.720515143401954, + -15.72306945420291, + -15.725621991792693, + -15.728172757402268, + -15.730721752261752, + -15.733268977600405, + -15.735814434646636, + -15.738358124627997, + -15.740900048771188, + -15.743440208302065, + -15.745978604445625, + -15.74851523842602, + -15.751050111466547, + -15.753583224789658, + -15.756114579616952, + -15.758644177169188, + -15.761172018666269, + -15.763698105327254, + -15.766222438370356, + -15.768745019012943, + -15.771265848471538, + -15.773784927961817, + -15.776302258698617, + -15.778817841895926, + -15.781331678766891, + -15.783843770523822, + -15.786354118378178, + -15.788862723540584, + -15.791369587220824, + -15.793874710627842, + -15.796378094969736, + -15.798879741453776, + -15.801379651286387, + -15.803877825673158, + -15.806374265818842, + -15.808868972927353, + -15.811361948201775, + -15.813853192844347, + -15.816342708056485, + -15.818830495038766, + -15.82131655499093, + -15.823800889111888, + -15.826283498599718, + -15.828764384651667, + -15.831243548464146, + -15.833720991232745, + -15.836196714152216, + -15.838670718416482, + -15.841143005218642, + -15.843613575750961, + -15.846082431204884, + -15.84854957277102, + -15.851015001639158, + -15.853478718998259, + -15.855940726036456, + -15.858401023941063, + -15.860859613898565, + -15.863316497094623, + -15.865771674714077, + -15.868225147940946, + -15.87067691795842, + -15.873126985948877, + -15.87557535309387, + -15.878022020574132, + -15.880466989569573, + -15.882910261259292, + -15.88535183682156, + -15.887791717433835, + -15.89022990427276, + -15.89266639851415, + -15.895101201333022, + -15.89753431390356, + -15.899965737399144, + -15.902395472992335, + -15.90482352185488, + -15.907249885157713, + -15.909674564070956, + -15.912097559763918, + -15.914518873405092, + -15.91693850616217, + -15.919356459202023, + -15.92177273369072, + -15.924187330793515, + -15.926600251674854, + -15.92901149749838, + -15.931421069426916, + -15.93382896862249, + -15.936235196246322, + -15.93863975345882, + -15.941042641419585, + -15.943443861287426, + -15.945843414220331, + -15.948241301375493, + -15.950637523909304, + -15.953032082977348, + -15.955424979734408, + -15.957816215334466, + -15.960205790930704, + -15.9625937076755, + -15.964979966720435, + -15.967364569216292, + -15.969747516313051, + -15.972128809159896, + -15.974508448905212, + -15.97688643669659, + -15.979262773680821, + -15.981637461003901, + -15.98401049981103, + -15.98638189124661, + -15.988751636454257, + -15.991119736576785, + -15.99348619275622, + -15.995851006133789, + -15.998214177849936, + -16.000575709044305, + -16.00293560085575, + -16.00529385442234, + -16.007650470881348, + -16.01000545136926, + -16.01235879702177, + -16.01471050897379, + -16.01706058835944, + -16.019409036312048, + -16.021755853964166, + -16.024101042447555, + -16.026444602893186, + -16.028786536431248, + -16.031126844191146, + -16.0334655273015, + -16.035802586890153, + -16.03813802408415, + -16.040471840009772, + -16.042804035792507, + -16.045134612557057, + -16.047463571427354, + -16.049790913526547, + -16.052116639977005, + -16.054440751900312, + -16.056763250417283, + -16.059084136647947, + -16.06140341171156, + -16.0637210767266, + -16.066037132810767, + -16.068351581080986, + -16.070664422653408, + -16.07297565864341, + -16.075285290165585, + -16.077593318333772, + -16.079899744261013, + -16.082204569059595, + -16.084507793841027, + -16.086809419716044, + -16.089109447794613, + -16.091407879185933, + -16.093704714998424, + -16.095999956339746, + -16.098293604316787, + -16.100585660035666, + -16.10287612460173, + -16.105164999119562, + -16.107452284692982, + -16.10973798242504, + -16.112022093418027, + -16.114304618773453, + -16.116585559592078, + -16.11886491697389, + -16.12114269201812, + -16.123418885823227, + -16.125693499486918, + -16.127966534106125, + -16.130237990777033, + -16.132507870595056, + -16.134776174654853, + -16.13704290405032, + -16.13930805987459, + -16.14157164322005, + -16.14383365517831, + -16.14609409684024, + -16.14835296929594, + -16.15061027363476, + -16.152866010945296, + -16.15512018231538, + -16.157372788832095, + -16.159623831581765, + -16.161873311649963, + -16.164121230121506, + -16.166367588080465, + -16.168612386610153, + -16.170855626793127, + -16.173097309711196, + -16.17533743644542, + -16.177576008076112, + -16.179813025682822, + -16.182048490344364, + -16.184282403138795, + -16.18651476514343, + -16.188745577434826, + -16.190974841088806, + -16.193202557180435, + -16.195428726784037, + -16.197653350973194, + -16.19987643082073, + -16.202097967398736, + -16.204317961778553, + -16.206536415030786, + -16.20875332822528, + -16.210968702431163, + -16.213182538716797, + -16.21539483814981, + -16.217605601797096, + -16.219814830724793, + -16.222022525998323, + -16.22422868868234, + -16.226433319840787, + -16.228636420536837, + -16.230837991832956, + -16.233038034790855, + -16.235236550471505, + -16.237433539935157, + -16.23962900424131, + -16.241822944448735, + -16.244015361615464, + -16.246206256798803, + -16.248395631055313, + -16.250583485440828, + -16.252769821010446, + -16.254954638818536, + -16.25713793991873, + -16.259319725363937, + -16.26149999620633, + -16.263678753497345, + -16.265855998287698, + -16.26803173162737, + -16.270205954565622, + -16.272378668150974, + -16.274549873431223, + -16.276719571453445, + -16.278887763263977, + -16.28105444990844, + -16.28321963243172, + -16.285383311877993, + -16.287545489290697, + -16.28970616571254, + -16.291865342185528, + -16.29402301975092, + -16.29617919944927, + -16.298333882320396, + -16.300487069403406, + -16.302638761736677, + -16.30478896035787, + -16.30693766630393, + -16.309084880611067, + -16.311230604314794, + -16.31337483844988, + -16.3155175840504, + -16.317658842149697, + -16.319798613780396, + -16.32193689997441, + -16.324073701762934, + -16.326209020176446, + -16.328342856244713, + -16.33047521099678, + -16.332606085460988, + -16.334735480664953, + -16.336863397635582, + -16.33898983739907, + -16.3411148009809, + -16.343238289405846, + -16.345360303697962, + -16.347480844880597, + -16.349599913976387, + -16.351717512007266, + -16.353833639994445, + -16.355948298958435, + -16.358061489919038, + -16.360173213895347, + -16.36228347190575, + -16.364392264967922, + -16.366499594098833, + -16.368605460314757, + -16.370709864631245, + -16.37281280806316, + -16.37491429162465, + -16.377014316329156, + -16.379112883189432, + -16.38120999321751, + -16.383305647424734, + -16.385399846821734, + -16.387492592418454, + -16.389583885224116, + -16.39167372624726, + -16.39376211649571, + -16.39584905697661, + -16.39793454869638, + -16.400018592660768, + -16.402101189874802, + -16.404182341342825, + -16.40626204806848, + -16.408340311054708, + -16.41041713130376, + -16.412492509817188, + -16.41456644759585, + -16.41663894563991, + -16.41871000494883, + -16.4207796265214, + -16.422847811355687, + -16.424914560449086, + -16.426979874798292, + -16.429043755399306, + -16.431106203247445, + -16.43316721933733, + -16.435226804662893, + -16.437284960217376, + -16.439341686993327, + -16.44139698598261, + -16.443450858176405, + -16.445503304565193, + -16.44755432613877, + -16.449603923886254, + -16.451652098796067, + -16.45369885185595, + -16.455744184052953, + -16.45778809637344, + -16.459830589803104, + -16.461871665326935, + -16.463911323929253, + -16.465949566593686, + -16.467986394303185, + -16.470021808040016, + -16.472055808785765, + -16.474088397521335, + -16.476119575226946, + -16.478149342882144, + -16.480177701465784, + -16.482204651956057, + -16.484230195330458, + -16.486254332565814, + -16.48827706463827, + -16.490298392523304, + -16.492318317195696, + -16.494336839629565, + -16.496353960798356, + -16.498369681674824, + -16.500384003231055, + -16.502396926438472, + -16.504408452267803, + -16.50641858168912, + -16.508427315671806, + -16.51043465518459, + -16.512440601195507, + -16.51444515467194, + -16.516448316580586, + -16.518450087887476, + -16.52045046955797, + -16.522449462556764, + -16.524447067847873, + -16.52644328639465, + -16.528438119159773, + -16.530431567105264, + -16.532423631192465, + -16.534414312382058, + -16.536403611634054, + -16.53839152990779, + -16.54037806816196, + -16.54236322735457, + -16.544347008442973, + -16.54632941238385, + -16.548310440133225, + -16.550290092646453, + -16.552268370878227, + -16.554245275782577, + -16.556220808312876, + -16.558194969421827, + -16.56016776006147, + -16.562139181183202, + -16.56410923373774, + -16.566077918675145, + -16.56804523694483, + -16.570011189495528, + -16.571975777275338, + -16.573939001231683, + -16.575900862311332, + -16.5778613614604, + -16.579820499624343, + -16.58177827774797, + -16.583734696775412, + -16.58568975765017, + -16.587643461315064, + -16.58959580871229, + -16.591546800783362, + -16.593496438469163, + -16.5954447227099, + -16.597391654445143, + -16.59933723461381, + -16.60128146415416, + -16.6032243440038, + -16.605165875099697, + -16.607106058378157, + -16.60904489477484, + -16.610982385224755, + -16.612918530662263, + -16.614853332021074, + -16.616786790234258, + -16.618718906234225, + -16.62064968095275, + -16.622579115320946, + -16.624507210269297, + -16.62643396672763, + -16.628359385625128, + -16.630283467890337, + -16.632206214451138, + -16.634127626234797, + -16.63604770416791, + -16.637966449176442, + -16.63988386218572, + -16.641799944120418, + -16.64371469590457, + -16.645628118461577, + -16.647540212714187, + -16.649450979584515, + -16.651360419994035, + -16.65326853486358, + -16.655175325113348, + -16.657080791662892, + -16.65898493543113, + -16.660887757336337, + -16.662789258296158, + -16.664689439227597, + -16.666588301047025, + -16.66848584467017, + -16.67038207101213, + -16.672276980987366, + -16.674170575509706, + -16.67606285549234, + -16.677953821847826, + -16.679843475488088, + -16.68173181732442, + -16.683618848267475, + -16.685504569227284, + -16.68738898111324, + -16.68927208483411, + -16.69115388129802, + -16.69303437141248, + -16.694913556084355, + -16.696791436219893, + -16.698668012724706, + -16.700543286503777, + -16.702417258461463, + -16.704289929501495, + -16.706161300526976, + -16.708031372440374, + -16.709900146143543, + -16.711767622537703, + -16.71363380252345, + -16.71549868700075, + -16.717362276868958, + -16.719224573026793, + -16.72108557637235, + -16.722945287803107, + -16.724803708215916, + -16.726660838507, + -16.728516679571978, + -16.73037123230582, + -16.732224497602903, + -16.73407647635696, + -16.73592716946112, + -16.737776577807885, + -16.739624702289134, + -16.741471543796134, + -16.743317103219532, + -16.745161381449346, + -16.747004379374996, + -16.748846097885266, + -16.750686537868333, + -16.752525700211756, + -16.754363585802473, + -16.756200195526812, + -16.758035530270487, + -16.75986959091859, + -16.761702378355604, + -16.763533893465397, + -16.76536413713122, + -16.767193110235713, + -16.76902081366091, + -16.77084724828822, + -16.77267241499845, + -16.774496314671797, + -16.776318948187832, + -16.778140316425535, + -16.77996042026326, + -16.781779260578766, + -16.78359683824918, + -16.78541315415105, + -16.78722820916029, + -16.78904200415222, + -16.790854540001547, + -16.79266581758237, + -16.79447583776819, + -16.79628460143189, + -16.79809210944575, + -16.79989836268145, + -16.80170336201006, + -16.803507108302046, + -16.805309602427272, + -16.807110845254993, + -16.808910837653865, + -16.810709580491945, + -16.812507074636677, + -16.81430332095491, + -16.81609832031289, + -16.817892073576257, + -16.81968458161006, + -16.821475845278737, + -16.823265865446132, + -16.825054642975484, + -16.826842178729446, + -16.828628473570053, + -16.830413528358758, + -16.832197343956405, + -16.833979921223246, + -16.835761261018934, + -16.83754136420253, + -16.839320231632485, + -16.841097864166674, + -16.84287426266236, + -16.844649427976215, + -16.84642336096432, + -16.84819606248216, + -16.849967533384625, + -16.851737774526015, + -16.85350678676003, + -16.855274570939788, + -16.8570411279178, + -16.858806458546002, + -16.860570563675726, + -16.862333444157713, + -16.864095100842125, + -16.865855534578525, + -16.867614746215885, + -16.86937273660259, + -16.87112950658644, + -16.872885057014635, + -16.8746393887338, + -16.876392502589972, + -16.87814439942859, + -16.87989508009451, + -16.881644545432007, + -16.883392796284763, + -16.88513983349588, + -16.88688565790787, + -16.888630270362665, + -16.89037367170161, + -16.89211586276546, + -16.8938568443944, + -16.895596617428016, + -16.897335182705323, + -16.899072541064747, + -16.90080869334414, + -16.90254364038076, + -16.904277383011298, + -16.90600992207185, + -16.90774125839794, + -16.909471392824514, + -16.91120032618593, + -16.912928059315977, + -16.914654593047853, + -16.916379928214187, + -16.91810406564703, + -16.91982700617785, + -16.92154875063754, + -16.923269299856422, + -16.924988654664226, + -16.926706815890125, + -16.928423784362703, + -16.93013956090997, + -16.931854146359374, + -16.933567541537776, + -16.935279747271466, + -16.936990764386156, + -16.93870059370699, + -16.940409236058546, + -16.942116692264815, + -16.943822963149227, + -16.94552804953463, + -16.947231952243314, + -16.94893467209699, + -16.950636209916798, + -16.952336566523314, + -16.954035742736533, + -16.955733739375898, + -16.957430557260263, + -16.95912619720793, + -16.960820660036624, + -16.962513946563504, + -16.964206057605168, + -16.965896993977633, + -16.967586756496363, + -16.969275345976257, + -16.970962763231636, + -16.972649009076264, + -16.974334084323335, + -16.976017989785486, + -16.977700726274783, + -16.979382294602736, + -16.981062695580277, + -16.982741930017795, + -16.984419998725098, + -16.986096902511445, + -16.987772642185526, + -16.989447218555473, + -16.99112063242885, + -16.992792884612673, + -16.99446397591339, + -16.996133907136887, + -16.997802679088494, + -16.999470292572983, + -17.001136748394565, + -17.002802047356894, + -17.004466190263063, + -17.006129177915614, + -17.007791011116527, + -17.009451690667223, + -17.011111217368576, + -17.01276959202089, + -17.014426815423928, + -17.01608288837689, + -17.01773781167842, + -17.01939158612661, + -17.021044212518998, + -17.02269569165257, + -17.02434602432376, + -17.025995211328436, + -17.027643253461928, + -17.029290151519014, + -17.030935906293912, + -17.032580518580293, + -17.034223989171277, + -17.03586631885943, + -17.037507508436775, + -17.039147558694776, + -17.040786470424358, + -17.04242424441589, + -17.04406088145919, + -17.04569638234353, + -17.04733074785764, + -17.048963978789697, + -17.050596075927327, + -17.052227040057623, + -17.053856871967113, + -17.055485572441796, + -17.057113142267113, + -17.058739582227965, + -17.060364893108712, + -17.061989075693162, + -17.063612130764582, + -17.0652340591057, + -17.066854861498687, + -17.068474538725184, + -17.07009309156629, + -17.071710520802547, + -17.073326827213975, + -17.07494201158004, + -17.07655607467967, + -17.078169017291245, + -17.07978084019262, + -17.0813915441611, + -17.08300112997345, + -17.0846095984059, + -17.08621695023414, + -17.08782318623331, + -17.08942830717804, + -17.09103231384239, + -17.092635206999905, + -17.09423698742358, + -17.09583765588588, + -17.097437213158738, + -17.099035660013538, + -17.10063299722114, + -17.10222922555186, + -17.10382434577549, + -17.105418358661275, + -17.107011264977942, + -17.108603065493668, + -17.110193760976106, + -17.111783352192372, + -17.113371839909053, + -17.114959224892203, + -17.116545507907343, + -17.118130689719464, + -17.119714771093022, + -17.121297752791946, + -17.122879635579636, + -17.124460420218952, + -17.126040107472242, + -17.127618698101315, + -17.129196192867443, + -17.130772592531383, + -17.13234789785336, + -17.133922109593065, + -17.135495228509672, + -17.137067255361817, + -17.13863819090762, + -17.140208035904667, + -17.14177679111002, + -17.143344457280214, + -17.14491103517127, + -17.146476525538663, + -17.148040929137366, + -17.14960424672181, + -17.151166479045916, + -17.15272762686307, + -17.15428769092614, + -17.155846671987476, + -17.157404570798903, + -17.158961388111717, + -17.1605171246767, + -17.162071781244112, + -17.16362535856369, + -17.16517785738465, + -17.16672927845569, + -17.168279622524988, + -17.169828890340202, + -17.171377082648473, + -17.172924200196423, + -17.17447024373015, + -17.17601521399524, + -17.17755911173676, + -17.179101937699258, + -17.180643692626766, + -17.182184377262807, + -17.183723992350373, + -17.185262538631953, + -17.186800016849514, + -17.188336427744506, + -17.189871772057874, + -17.191406050530038, + -17.19293926390091, + -17.194471412909888, + -17.196002498295858, + -17.197532520797182, + -17.19906148115173, + -17.200589380096837, + -17.20211621836934, + -17.203641996705567, + -17.205166715841326, + -17.206690376511915, + -17.208212979452128, + -17.209734525396243, + -17.211255015078027, + -17.212774449230746, + -17.21429282858715, + -17.215810153879485, + -17.21732642583948, + -17.218841645198363, + -17.220355812686858, + -17.22186892903518, + -17.223380994973017, + -17.22489201122958, + -17.226401978533566, + -17.227910897613153, + -17.229418769196027, + -17.230925594009356, + -17.232431372779818, + -17.23393610623358, + -17.235439795096298, + -17.236942440093138, + -17.238444041948746, + -17.239944601387283, + -17.241444119132396, + -17.242942595907234, + -17.244440032434436, + -17.24593642943615, + -17.247431787634017, + -17.248926107749178, + -17.250419390502273, + -17.251911636613443, + -17.253402846802327, + -17.25489302178807, + -17.25638216228931, + -17.25787026902419, + -17.259357342710352, + -17.26084338406495, + -17.26232839380462, + -17.26381237264552, + -17.265295321303302, + -17.266777240493123, + -17.268258130929645, + -17.269737993327027, + -17.27121682839894, + -17.272694636858557, + -17.274171419418558, + -17.27564717679112, + -17.27712190968794, + -17.278595618820205, + -17.28006830489862, + -17.28153996863339, + -17.28301061073423, + -17.28448023191036, + -17.285948832870517, + -17.287416414322927, + -17.288882976975344, + -17.290348521535023, + -17.291813048708722, + -17.293276559202713, + -17.294739053722783, + -17.296200532974225, + -17.29766099766184, + -17.29912044848994, + -17.300578886162352, + -17.302036311382412, + -17.30349272485297, + -17.304948127276376, + -17.306402519354513, + -17.307855901788766, + -17.309308275280028, + -17.31075964052871, + -17.312209998234742, + -17.31365934909756, + -17.31510769381612, + -17.316555033088893, + -17.318001367613856, + -17.319446698088512, + -17.320891025209878, + -17.32233434967448, + -17.323776672178376, + -17.32521799341712, + -17.326658314085797, + -17.328097634879008, + -17.32953595649087, + -17.330973279615012, + -17.332409604944598, + -17.33384493317229, + -17.335279264990284, + -17.336712601090294, + -17.338144942163545, + -17.33957628890079, + -17.341006641992305, + -17.342436002127876, + -17.343864369996815, + -17.345291746287966, + -17.346718131689677, + -17.34814352688983, + -17.34956793257583, + -17.350991349434594, + -17.352413778152574, + -17.353835219415735, + -17.355255673909582, + -17.356675142319123, + -17.35809362532891, + -17.359511123622998, + -17.360927637884995, + -17.36234316879801, + -17.363757717044688, + -17.365171283307202, + -17.366583868267245, + -17.367995472606047, + -17.369406097004354, + -17.370815742142444, + -17.372224408700127, + -17.37363209735673, + -17.375038808791118, + -17.376444543681682, + -17.37784930270634, + -17.379253086542548, + -17.38065589586728, + -17.382057731357047, + -17.383458593687887, + -17.38485848353537, + -17.3862574015746, + -17.387655348480205, + -17.389052324926354, + -17.39044833158674, + -17.39184336913459, + -17.393237438242675, + -17.39463053958328, + -17.396022673828227, + -17.397413841648895, + -17.39880404371616, + -17.400193280700464, + -17.401581553271765, + -17.402968862099566, + -17.404355207852895, + -17.405740591200324, + -17.407125012809963, + -17.40850847334945, + -17.40989097348596, + -17.411272513886214, + -17.41265309521646, + -17.414032718142487, + -17.415411383329626, + -17.41678909144274, + -17.418165843146234, + -17.419541639104054, + -17.420916479979674, + -17.422290366436123, + -17.423663299135956, + -17.425035278741277, + -17.42640630591373, + -17.427776381314494, + -17.429145505604293, + -17.430513679443386, + -17.43188090349159, + -17.433247178408244, + -17.434612504852243, + -17.43597688348202, + -17.437340314955545, + -17.438702799930343, + -17.440064339063476, + -17.44142493301155, + -17.44278458243071, + -17.44414328797666, + -17.44550105030464, + -17.446857870069426, + -17.448213747925355, + -17.4495686845263, + -17.45092268052569, + -17.452275736576485, + -17.45362785333121, + -17.454979031441916, + -17.45632927156022, + -17.457678574337283, + -17.4590269404238, + -17.460374370470035, + -17.461720865125788, + -17.463066425040406, + -17.46441105086279, + -17.465754743241394, + -17.467097502824213, + -17.4684393302588, + -17.469780226192256, + -17.471120191271233, + -17.47245922614193, + -17.4737973314501, + -17.47513450784105, + -17.476470755959642, + -17.477806076450282, + -17.47914046995693, + -17.480473937123104, + -17.481806478591874, + -17.48313809500586, + -17.48446878700724, + -17.485798555237743, + -17.48712740033865, + -17.488455322950806, + -17.489782323714607, + -17.491108403270005, + -17.492433562256494, + -17.493757801313148, + -17.49508112107858, + -17.496403522190967, + -17.49772500528804, + -17.499045571007088, + -17.500365219984957, + -17.50168395285806, + -17.503001770262347, + -17.504318672833346, + -17.50563466120614, + -17.506949736015365, + -17.508263897895223, + -17.50957714747947, + -17.510889485401425, + -17.512200912293967, + -17.513511428789535, + -17.51482103552013, + -17.51612973311731, + -17.517437522212212, + -17.518744403435505, + -17.520050377417448, + -17.521355444787847, + -17.52265960617607, + -17.52396286221106, + -17.525265213521315, + -17.526566660734897, + -17.52786720447943, + -17.52916684538211, + -17.53046558406969, + -17.531763421168495, + -17.533060357304404, + -17.53435639310287, + -17.535651529188915, + -17.536945766187117, + -17.53823910472163, + -17.53953154541617, + -17.54082308889402, + -17.54211373577803, + -17.543403486690618, + -17.54469234225377, + -17.545980303089046, + -17.54726736981756, + -17.54855354306001, + -17.54983882343666, + -17.551123211567333, + -17.552406708071434, + -17.55368931356793, + -17.554971028675364, + -17.556251854011848, + -17.55753179019506, + -17.558810837842255, + -17.560088997570258, + -17.561366269995467, + -17.56264265573385, + -17.56391815540095, + -17.56519276961187, + -17.566466498981306, + -17.56773934412352, + -17.569011305652346, + -17.570282384181183, + -17.571552580323015, + -17.572821894690403, + -17.574090327895476, + -17.575357880549937, + -17.576624553265066, + -17.577890346651728, + -17.579155261320345, + -17.580419297880933, + -17.58168245694308, + -17.582944739115945, + -17.584206145008263, + -17.585466675228353, + -17.586726330384117, + -17.587985111083018, + -17.589243017932112, + -17.59050005153803, + -17.591756212506976, + -17.59301150144474, + -17.59426591895669, + -17.59551946564777, + -17.596772142122507, + -17.59802394898501, + -17.599274886838966, + -17.600524956287643, + -17.60177415793389, + -17.60302249238014, + -17.604269960228407, + -17.605516562080286, + -17.60676229853695, + -17.608007170199166, + -17.609251177667275, + -17.6104943215412, + -17.611736602420457, + -17.612978020904137, + -17.614218577590915, + -17.615458273079053, + -17.616697107966402, + -17.617935082850398, + -17.619172198328048, + -17.62040845499596, + -17.621643853450323, + -17.622878394286914, + -17.62411207810109, + -17.625344905487797, + -17.626576877041575, + -17.627807993356544, + -17.629038255026412, + -17.63026766264448, + -17.631496216803633, + -17.632723918096342, + -17.633950767114673, + -17.63517676445028, + -17.636401910694396, + -17.637626206437854, + -17.63884965227108, + -17.640072248784083, + -17.641293996566457, + -17.642514896207402, + -17.643734948295698, + -17.644954153419715, + -17.64617251216742, + -17.647390025126377, + -17.648606692883728, + -17.64982251602622, + -17.65103749514018, + -17.652251630811545, + -17.653464923625826, + -17.654677374168145, + -17.655888983023203, + -17.657099750775313, + -17.65830967800836, + -17.65951876530584, + -17.66072701325084, + -17.66193442242604, + -17.663140993413716, + -17.664346726795742, + -17.665551623153586, + -17.666755683068317, + -17.667958907120592, + -17.669161295890667, + -17.670362849958405, + -17.671563569903256, + -17.672763456304267, + -17.673962509740093, + -17.675160730788978, + -17.67635812002877, + -17.67755467803691, + -17.678750405390442, + -17.679945302666013, + -17.681139370439865, + -17.682332609287837, + -17.683525019785378, + -17.684716602507528, + -17.68590735802893, + -17.687097286923837, + -17.688286389766088, + -17.689474667129133, + -17.690662119586023, + -17.69184874770941, + -17.693034552071556, + -17.69421953324431, + -17.69540369179914, + -17.696587028307103, + -17.697769543338868, + -17.69895123746471, + -17.700132111254504, + -17.701312165277727, + -17.70249140010347, + -17.703669816300415, + -17.704847414436863, + -17.70602419508071, + -17.707200158799463, + -17.708375306160235, + -17.709549637729747, + -17.71072315407432, + -17.711895855759884, + -17.71306774335199, + -17.71423881741577, + -17.715409078515986, + -17.716578527217, + -17.717747164082777, + -17.7189149896769, + -17.720082004562556, + -17.72124820930254, + -17.722413604459263, + -17.723578190594733, + -17.72474196827058, + -17.725904938048036, + -17.72706710048795, + -17.728228456150777, + -17.729389005596587, + -17.730548749385058, + -17.731707688075474, + -17.732865822226742, + -17.734023152397377, + -17.735179679145503, + -17.736335403028857, + -17.737490324604792, + -17.73864444443027, + -17.739797763061876, + -17.7409502810558, + -17.742101998967836, + -17.743252917353416, + -17.744403036767572, + -17.745552357764947, + -17.746700880899812, + -17.747848606726038, + -17.748995535797125, + -17.75014166866618, + -17.751287005885935, + -17.752431548008726, + -17.75357529558651, + -17.754718249170875, + -17.755860409312998, + -17.7570017765637, + -17.758142351473406, + -17.759282134592162, + -17.76042112646963, + -17.761559327655096, + -17.762696738697457, + -17.763833360145238, + -17.764969192546573, + -17.766104236449223, + -17.76723849240057, + -17.768371960947604, + -17.76950464263695, + -17.77063653801485, + -17.771767647627154, + -17.77289797201935, + -17.77402751173654, + -17.77515626732345, + -17.776284239324422, + -17.777411428283425, + -17.77853783474405, + -17.779663459249512, + -17.780788302342643, + -17.7819123645659, + -17.783035646461375, + -17.784158148570768, + -17.785279871435407, + -17.78640081559625, + -17.787520981593875, + -17.788640369968483, + -17.78975898125991, + -17.7908768160076, + -17.79199387475064, + -17.79311015802773, + -17.794225666377205, + -17.795340400337018, + -17.796454360444756, + -17.79756754723763, + -17.79867996125248, + -17.79979160302576, + -17.800902473093576, + -17.802012571991643, + -17.80312190025531, + -17.80423045841955, + -17.805338247018977, + -17.80644526658782, + -17.80755151765994, + -17.80865700076884, + -17.809761716447632, + -17.810865665229073, + -17.811968847645545, + -17.813071264229063, + -17.814172915511268, + -17.815273802023437, + -17.816373924296478, + -17.81747328286092, + -17.818571878246942, + -17.81966971098434, + -17.820766781602547, + -17.82186309063063, + -17.822958638597285, + -17.824053426030847, + -17.82514745345928, + -17.82624072141018, + -17.82733323041078, + -17.82842498098795, + -17.829515973668183, + -17.830606208977617, + -17.831695687442018, + -17.832784409586797, + -17.833872375936988, + -17.83495958701727, + -17.83604604335195, + -17.83713174546498, + -17.838216693879936, + -17.839300889120047, + -17.84038433170816, + -17.84146702216678, + -17.842548961018025, + -17.84363014878367, + -17.844710585985123, + -17.845790273143425, + -17.846869210779257, + -17.847947399412945, + -17.849024839564443, + -17.850101531753356, + -17.85117747649892, + -17.852252674320006, + -17.85332712573514, + -17.854400831262478, + -17.855473791419815, + -17.856546006724592, + -17.857617477693886, + -17.85868820484442, + -17.859758188692552, + -17.860827429754288, + -17.86189592854527, + -17.862963685580787, + -17.86403070137577, + -17.865096976444786, + -17.866162511302054, + -17.867227306461427, + -17.86829136243641, + -17.869354679740145, + -17.870417258885418, + -17.871479100384665, + -17.87254020474996, + -17.87360057249303, + -17.874660204125227, + -17.875719100157575, + -17.876777261100724, + -17.87783468746498, + -17.878891379760283, + -17.87994733849623, + -17.881002564182058, + -17.88205705732666, + -17.883110818438556, + -17.88416384802594, + -17.885216146596626, + -17.886267714658096, + -17.88731855271747, + -17.888368661281522, + -17.88941804085666, + -17.890466691948962, + -17.891514615064136, + -17.892561810707548, + -17.89360827938421, + -17.894654021598786, + -17.89569903785559, + -17.896743328658584, + -17.897786894511377, + -17.898829735917236, + -17.89987185337907, + -17.900913247399448, + -17.901953918480583, + -17.902993867124344, + -17.904033093832247, + -17.905071599105465, + -17.906109383444818, + -17.90714644735078, + -17.908182791323483, + -17.9092184158627, + -17.91025332146787, + -17.91128750863808, + -17.91232097787206, + -17.913353729668216, + -17.91438576452459, + -17.915417082938887, + -17.91644768540846, + -17.91747757243032, + -17.918506744501137, + -17.91953520211723, + -17.920562945774577, + -17.921589975968807, + -17.92261629319521, + -17.923641897948738, + -17.924666790723983, + -17.925690972015204, + -17.92671444231632, + -17.927737202120902, + -17.928759251922173, + -17.929780592213024, + -17.930801223486, + -17.931821146233304, + -17.932840360946795, + -17.933858868117994, + -17.93487666823808, + -17.935893761797885, + -17.936910149287915, + -17.937925831198314, + -17.93894080801891, + -17.939955080239166, + -17.940968648348232, + -17.941981512834893, + -17.94299367418761, + -17.944005132894503, + -17.945015889443347, + -17.946025944321587, + -17.947035298016324, + -17.94804395101432, + -17.949051903802, + -17.950059156865457, + -17.95106571069044, + -17.952071565762356, + -17.953076722566294, + -17.954081181586986, + -17.955084943308837, + -17.95608800821591, + -17.957090376791943, + -17.958092049520328, + -17.959093026884126, + -17.960093309366066, + -17.961092897448527, + -17.96209179161357, + -17.963089992342912, + -17.964087500117945, + -17.965084315419713, + -17.966080438728934, + -17.967075870525992, + -17.96807061129094, + -17.969064661503495, + -17.970058021643034, + -17.971050692188616, + -17.972042673618958, + -17.97303396641244, + -17.974024571047124, + -17.975014488000728, + -17.976003717750643, + -17.976992260773926, + -17.97798011754731, + -17.97896728854719, + -17.979953774249626, + -17.980939575130364, + -17.981924691664805, + -17.982909124328025, + -17.983892873594765, + -17.98487593993945, + -17.98585832383616, + -17.986840025758653, + -17.98782104618036, + -17.988801385574384, + -17.98978104441349, + -17.990760023170125, + -17.991738322316404, + -17.992715942324114, + -17.99369288366472, + -17.994669146809347, + -17.99564473222881, + -17.996619640393583, + -17.997593871773816, + -17.99856742683934, + -17.99954030605965, + -18.000512509903928, + -18.001484038841014, + -18.002454893339436, + -18.003425073867387, + -18.004394580892743, + -18.005363414883053, + -18.00633157630554, + -18.007299065627098, + -18.008265883314305, + -18.009232029833417, + -18.01019750565035, + -18.011162311230713, + -18.01212644703979, + -18.013089913542537, + -18.014052711203586, + -18.01501484048725, + -18.01597630185752, + -18.01693709577806, + -18.01789722271222, + -18.018856683123026, + -18.019815477473173, + -18.020773606225053, + -18.021731069840715, + -18.02268786878191, + -18.02364400351005, + -18.024599474486234, + -18.025554282171246, + -18.026508427025544, + -18.02746190950926, + -18.028414730082222, + -18.029366889203924, + -18.030318387333555, + -18.03126922492997, + -18.032219402451727, + -18.033168920357035, + -18.034117779103813, + -18.035065979149646, + -18.03601352095181, + -18.036960404967257, + -18.037906631652625, + -18.038852201464238, + -18.039797114858096, + -18.040741372289887, + -18.041684974214984, + -18.042627921088442, + -18.043570213365, + -18.04451185149908, + -18.045452835944793, + -18.046393167155927, + -18.047332845585963, + -18.04827187168806, + -18.04921024591507, + -18.050147968719525, + -18.051085040553644, + -18.052021461869337, + -18.052957233118192, + -18.053892354751493, + -18.054826827220197, + -18.05576065097496, + -18.056693826466127, + -18.057626354143718, + -18.058558234457447, + -18.059489467856718, + -18.060420054790622, + -18.06134999570794, + -18.06227929105713, + -18.063207941286358, + -18.064135946843464, + -18.06506330817598, + -18.065990025731132, + -18.06691609995583, + -18.067841531296676, + -18.068766320199963, + -18.069690467111673, + -18.07061397247748, + -18.071536836742748, + -18.072459060352525, + -18.073380643751566, + -18.074301587384298, + -18.075221891694856, + -18.076141557127055, + -18.07706058412441, + -18.077978973130122, + -18.078896724587086, + -18.079813838937895, + -18.080730316624827, + -18.081646158089857, + -18.08256136377465, + -18.083475934120575, + -18.084389869568675, + -18.085303170559705, + -18.086215837534105, + -18.08712787093201, + -18.08803927119326, + -18.088950038757368, + -18.089860174063563, + -18.090769677550757, + -18.091678549657562, + -18.092586790822285, + -18.093494401482925, + -18.094401382077184, + -18.095307733042453, + -18.096213454815828, + -18.09711854783409, + -18.098023012533723, + -18.098926849350914, + -18.099830058721533, + -18.100732641081162, + -18.101634596865072, + -18.102535926508235, + -18.103436630445316, + -18.104336709110687, + -18.10523616293841, + -18.106134992362254, + -18.107033197815678, + -18.10793077973185, + -18.10882773854362, + -18.109724074683562, + -18.11061978858393, + -18.111514880676687, + -18.112409351393495, + -18.113303201165714, + -18.114196430424403, + -18.115089039600328, + -18.11598102912395, + -18.116872399425436, + -18.117763150934653, + -18.118653284081166, + -18.119542799294244, + -18.120431697002864, + -18.121319977635693, + -18.122207641621113, + -18.123094689387198, + -18.123981121361727, + -18.124866937972197, + -18.12575213964578, + -18.126636726809377, + -18.127520699889583, + -18.128404059312693, + -18.12928680550471, + -18.130168938891345, + -18.131050459898006, + -18.131931368949807, + -18.132811666471575, + -18.133691352887833, + -18.134570428622816, + -18.135448894100456, + -18.136326749744395, + -18.137203995977988, + -18.138080633224288, + -18.13895666190605, + -18.139832082445746, + -18.14070689526555, + -18.14158110078734, + -18.142454699432715, + -18.143327691622957, + -18.14420007777908, + -18.145071858321785, + -18.1459430336715, + -18.146813604248347, + -18.147683570472164, + -18.14855293276249, + -18.14942169153858, + -18.150289847219405, + -18.15115740022362, + -18.152024350969615, + -18.152890699875478, + -18.153756447359008, + -18.15462159383771, + -18.15548613972881, + -18.156350085449237, + -18.15721343141563, + -18.15807617804434, + -18.15893832575143, + -18.15979987495267, + -18.16066082606355, + -18.161521179499264, + -18.162380935674722, + -18.163240095004543, + -18.164098657903057, + -18.16495662478431, + -18.165813996062063, + -18.16667077214978, + -18.167526953460644, + -18.168382540407556, + -18.169237533403123, + -18.170091932859666, + -18.17094573918923, + -18.171798952803552, + -18.17265157411411, + -18.173503603532076, + -18.174355041468345, + -18.175205888333526, + -18.17605614453794, + -18.176905810491633, + -18.17775488660435, + -18.17860337328557, + -18.17945127094447, + -18.180298579989955, + -18.18114530083064, + -18.181991433874863, + -18.18283697953067, + -18.183681938205833, + -18.184526310307835, + -18.185370096243872, + -18.186213296420863, + -18.18705591124545, + -18.187897941123982, + -18.18873938646253, + -18.18958024766689, + -18.190420525142564, + -18.191260219294776, + -18.192099330528478, + -18.192937859248328, + -18.193775805858714, + -18.194613170763734, + -18.195449954367213, + -18.196286157072688, + -18.197121779283425, + -18.197956821402407, + -18.198791283832332, + -18.199625166975622, + -18.200458471234423, + -18.201291197010594, + -18.202123344705722, + -18.202954914721115, + -18.203785907457796, + -18.204616323316515, + -18.205446162697744, + -18.206275426001675, + -18.207104113628223, + -18.20793222597702, + -18.208759763447436, + -18.20958672643855, + -18.210413115349162, + -18.211238930577807, + -18.21206417252273, + -18.212888841581915, + -18.213712938153055, + -18.214536462633575, + -18.21535941542062, + -18.21618179691107, + -18.21700360750151, + -18.21782484758827, + -18.218645517567385, + -18.219465617834636, + -18.220285148785514, + -18.22110411081524, + -18.221922504318762, + -18.222740329690755, + -18.22355758732561, + -18.224374277617464, + -18.225190400960162, + -18.22600595774728, + -18.226820948372126, + -18.227635373227727, + -18.228449232706847, + -18.22926252720197, + -18.230075257105312, + -18.230887422808816, + -18.231699024704145, + -18.2325100631827, + -18.23332053863561, + -18.234130451453726, + -18.23493980202763, + -18.235748590747637, + -18.23655681800378, + -18.23736448418584, + -18.23817158968331, + -18.238978134885425, + -18.239784120181135, + -18.240589545959132, + -18.241394412607843, + -18.242198720515407, + -18.243002470069708, + -18.243805661658357, + -18.244608295668694, + -18.245410372487797, + -18.246211892502462, + -18.24701285609923, + -18.24781326366437, + -18.248613115583876, + -18.24941241224348, + -18.250211154028644, + -18.25100934132457, + -18.25180697451618, + -18.25260405398814, + -18.25340058012484, + -18.254196553310408, + -18.254991973928707, + -18.255786842363328, + -18.2565811589976, + -18.257374924214584, + -18.258168138397078, + -18.25896080192761, + -18.259752915188447, + -18.260544478561584, + -18.261335492428756, + -18.26212595717143, + -18.26291587317082, + -18.26370524080785, + -18.26449406046321, + -18.2652823325173, + -18.266070057350277, + -18.266857235342012, + -18.267643866872127, + -18.268429952319984, + -18.26921549206467, + -18.270000486485017, + -18.270784935959586, + -18.271568840866685, + -18.272352201584354, + -18.27313501849037, + -18.273917291962245, + -18.274699022377238, + -18.27548021011234, + -18.276260855544283, + -18.277040959049533, + -18.277820521004298, + -18.27859954178452, + -18.27937802176589, + -18.280155961323832, + -18.280933360833508, + -18.281710220669822, + -18.282486541207415, + -18.283262322820672, + -18.284037565883718, + -18.284812270770413, + -18.285586437854363, + -18.28636006750891, + -18.28713316010714, + -18.287905716021882, + -18.2886777356257, + -18.289449219290905, + -18.29022016738955, + -18.29099058029342, + -18.291760458374053, + -18.292529802002726, + -18.29329861155046, + -18.294066887388006, + -18.294834629885877, + -18.295601839414314, + -18.29636851634331, + -18.29713466104259, + -18.29790027388164, + -18.298665355229677, + -18.299429905455657, + -18.300193924928294, + -18.300957414016032, + -18.301720373087072, + -18.30248280250935, + -18.30324470265055, + -18.304006073878103, + -18.30476691655918, + -18.3055272310607, + -18.306287017749334, + -18.30704627699148, + -18.3078050091533, + -18.308563214600692, + -18.309320893699304, + -18.31007804681453, + -18.31083467431151, + -18.311590776555132, + -18.31234635391002, + -18.31310140674056, + -18.31385593541088, + -18.314609940284853, + -18.315363421726097, + -18.31611638009798, + -18.316868815763623, + -18.31762072908589, + -18.31837212042739, + -18.319122990150486, + -18.31987333861729, + -18.32062316618965, + -18.321372473229186, + -18.322121260097244, + -18.322869527154932, + -18.323617274763105, + -18.324364503282364, + -18.32511121307307, + -18.325857404495313, + -18.326603077908956, + -18.327348233673597, + -18.328092872148595, + -18.328836993693052, + -18.32958059866582, + -18.33032368742551, + -18.331066260330473, + -18.331808317738822, + -18.332549860008413, + -18.333290887496858, + -18.334031400561525, + -18.334771399559518, + -18.335510884847714, + -18.33624985678273, + -18.336988315720934, + -18.33772626201845, + -18.33846369603116, + -18.33920061811469, + -18.33993702862442, + -18.340672927915488, + -18.34140831634279, + -18.342143194260963, + -18.34287756202441, + -18.343611419987273, + -18.34434476850346, + -18.34507760792664, + -18.345809938610216, + -18.34654176090736, + -18.347273075171, + -18.348003881753808, + -18.348734181008222, + -18.349463973286433, + -18.350193258940376, + -18.350922038321762, + -18.35165031178204, + -18.35237807967243, + -18.35310534234389, + -18.35383210014715, + -18.354558353432697, + -18.35528410255076, + -18.356009347851334, + -18.356734089684174, + -18.357458328398792, + -18.358182064344447, + -18.35890529787017, + -18.35962802932474, + -18.36035025905669, + -18.36107198741433, + -18.361793214745706, + -18.36251394139864, + -18.363234167720695, + -18.363953894059208, + -18.364673120761267, + -18.365391848173726, + -18.36611007664319, + -18.366827806516024, + -18.367545038138363, + -18.368261771856087, + -18.36897800801485, + -18.369693746960053, + -18.370408989036864, + -18.371123734590217, + -18.37183798396479, + -18.37255173750504, + -18.373264995555175, + -18.373977758459166, + -18.374690026560742, + -18.375401800203402, + -18.376113079730395, + -18.37682386548474, + -18.37753415780922, + -18.37824395704637, + -18.37895326353849, + -18.379662077627657, + -18.380370399655693, + -18.38107822996418, + -18.381785568894486, + -18.38249241678772, + -18.38319877398476, + -18.38390464082625, + -18.384610017652594, + -18.38531490480397, + -18.386019302620305, + -18.3867232114413, + -18.387426631606417, + -18.388129563454882, + -18.388832007325686, + -18.389533963557586, + -18.390235432489103, + -18.39093641445852, + -18.391636909803886, + -18.392336918863023, + -18.39303644197351, + -18.393735479472692, + -18.394434031697685, + -18.395132098985364, + -18.395829681672378, + -18.39652678009514, + -18.397223394589826, + -18.397919525492377, + -18.398615173138506, + -18.399310337863692, + -18.40000502000318, + -18.400699219891987, + -18.401392937864888, + -18.402086174256432, + -18.40277892940093, + -18.403471203632474, + -18.40416299728491, + -18.40485431069186, + -18.405545144186707, + -18.406235498102614, + -18.406925372772502, + -18.40761476852907, + -18.408303685704773, + -18.40899212463185, + -18.4096800856423, + -18.410367569067898, + -18.411054575240183, + -18.411741104490464, + -18.41242715714982, + -18.41311273354911, + -18.41379783401895, + -18.414482458889733, + -18.41516660849162, + -18.415850283154544, + -18.416533483208212, + -18.417216208982097, + -18.417898460805446, + -18.41858023900728, + -18.419261543916384, + -18.41994237586132, + -18.42062273517043, + -18.421302622171805, + -18.42198203719333, + -18.42266098056266, + -18.42333945260721, + -18.424017453654177, + -18.42469498403053, + -18.42537204406301, + -18.426048634078132, + -18.42672475440218, + -18.42740040536122, + -18.428075587281082, + -18.42875030048738, + -18.429424545305498, + -18.430098322060584, + -18.430771631077572, + -18.43144447268117, + -18.43211684719586, + -18.432788754945893, + -18.433460196255297, + -18.43413117144788, + -18.43480168084722, + -18.435471724776672, + -18.43614130355937, + -18.436810417518217, + -18.437479066975893, + -18.43814725225486, + -18.43881497367736, + -18.43948223156539, + -18.440149026240743, + -18.440815358024985, + -18.44148122723945, + -18.442146634205262, + -18.442811579243315, + -18.44347606267428, + -18.444140084818603, + -18.44480364599651, + -18.445466746528016, + -18.446129386732892, + -18.446791566930703, + -18.447453287440787, + -18.448114548582257, + -18.44877535067402, + -18.449435694034733, + -18.45009557898286, + -18.45075500583663, + -18.451413974914054, + -18.45207248653292, + -18.4527305410108, + -18.45338813866504, + -18.45404527981277, + -18.4547019647709, + -18.455358193856117, + -18.456013967384887, + -18.456669285673463, + -18.45732414903787, + -18.457978557793922, + -18.458632512257203, + -18.459286012743092, + -18.45993905956674, + -18.46059165304308, + -18.461243793486826, + -18.461895481212476, + -18.46254671653431, + -18.463197499766384, + -18.463847831222544, + -18.464497711216413, + -18.465147140061397, + -18.46579611807069, + -18.466444645557253, + -18.46709272283385, + -18.467740350213017, + -18.468387528007067, + -18.469034256528115, + -18.46968053608804, + -18.470326366998513, + -18.47097174957099, + -18.471616684116707, + -18.472261170946688, + -18.472905210371735, + -18.473548802702442, + -18.47419194824918, + -18.474834647322112, + -18.47547690023118, + -18.47611870728611, + -18.476760068796416, + -18.477400985071398, + -18.47804145642014, + -18.478681483151515, + -18.47932106557417, + -18.479960203996548, + -18.48059889872688, + -18.481237150073174, + -18.48187495834323, + -18.482512323844634, + -18.483149246884757, + -18.483785727770755, + -18.484421766809575, + -18.48505736430795, + -18.485692520572396, + -18.486327235909222, + -18.486961510624518, + -18.487595345024165, + -18.488228739413838, + -18.488861694098983, + -18.489494209384855, + -18.49012628557648, + -18.49075792297868, + -18.491389121896066, + -18.492019882633034, + -18.49265020549377, + -18.49328009078225, + -18.493909538802235, + -18.494538549857282, + -18.495167124250735, + -18.495795262285718, + -18.49642296426516, + -18.497050230491773, + -18.497677061268053, + -18.498303456896295, + -18.49892941767858, + -18.499554943916774, + -18.500180035912546, + -18.500804693967343, + -18.501428918382413, + -18.502052709458788, + -18.502676067497294, + -18.503298992798545, + -18.503921485662953, + -18.504543546390714, + -18.505165175281817, + -18.50578637263605, + -18.50640713875298, + -18.50702747393198, + -18.507647378472207, + -18.50826685267261, + -18.508885896831927, + -18.509504511248704, + -18.510122696221266, + -18.510740452047735, + -18.511357779026028, + -18.511974677453843, + -18.512591147628694, + -18.51320718984787, + -18.513822804408456, + -18.514437991607338, + -18.515052751741194, + -18.515667085106486, + -18.516280991999487, + -18.516894472716253, + -18.51750752755263, + -18.518120156804276, + -18.518732360766627, + -18.519344139734923, + -18.51995549400419, + -18.520566423869266, + -18.52117692962477, + -18.521787011565113, + -18.52239666998452, + -18.523005905176994, + -18.52361471743634, + -18.524223107056166, + -18.524831074329864, + -18.525438619550627, + -18.52604574301145, + -18.52665244500512, + -18.52725872582422, + -18.527864585761126, + -18.52847002510802, + -18.529075044156876, + -18.52967964319947, + -18.530283822527366, + -18.530887582431937, + -18.531490923204345, + -18.53209384513555, + -18.53269634851632, + -18.53329843363721, + -18.533900100788575, + -18.534501350260577, + -18.535102182343163, + -18.535702597326093, + -18.536302595498917, + -18.536902177150985, + -18.537501342571446, + -18.53810009204925, + -18.538698425873147, + -18.539296344331685, + -18.53989384771321, + -18.540490936305876, + -18.541087610397625, + -18.541683870276206, + -18.542279716229167, + -18.542875148543857, + -18.54347016750743, + -18.544064773406824, + -18.544658966528804, + -18.54525274715991, + -18.545846115586496, + -18.54643907209472, + -18.54703161697054, + -18.547623750499703, + -18.548215472967776, + -18.548806784660115, + -18.54939768586188, + -18.54998817685804, + -18.550578257933356, + -18.5511679293724, + -18.55175719145954, + -18.552346044478952, + -18.552934488714612, + -18.553522524450297, + -18.55411015196959, + -18.55469737155588, + -18.555284183492347, + -18.555870588061993, + -18.556456585547608, + -18.55704217623179, + -18.557627360396943, + -18.558212138325274, + -18.558796510298794, + -18.55938047659932, + -18.55996403750847, + -18.560547193307663, + -18.56112994427814, + -18.56171229070092, + -18.562294232856853, + -18.56287577102658, + -18.563456905490547, + -18.564037636529008, + -18.56461796442202, + -18.565197889449454, + -18.565777411890977, + -18.566356532026063, + -18.566935250134, + -18.567513566493876, + -18.56809148138458, + -18.56866899508482, + -18.569246107873102, + -18.569822820027735, + -18.570399131826846, + -18.570975043548366, + -18.57155055547002, + -18.572125667869358, + -18.57270038102373, + -18.57327469521029, + -18.573848610706005, + -18.57442212778765, + -18.574995246731795, + -18.57556796781484, + -18.576140291312978, + -18.57671221750221, + -18.577283746658352, + -18.57785487905703, + -18.578425614973664, + -18.5789959546835, + -18.57956589846159, + -18.58013544658278, + -18.580704599321745, + -18.58127335695296, + -18.581841719750706, + -18.58240968798908, + -18.58297726194199, + -18.58354444188315, + -18.584111228086073, + -18.584677620824106, + -18.585243620370388, + -18.585809226997878, + -18.586374440979338, + -18.586939262587343, + -18.587503692094288, + -18.58806772977236, + -18.588631375893574, + -18.589194630729747, + -18.589757494552515, + -18.59031996763332, + -18.590882050243412, + -18.59144374265386, + -18.592005045135544, + -18.59256595795915, + -18.59312648139518, + -18.593686615713953, + -18.594246361185586, + -18.59480571808003, + -18.59536468666703, + -18.595923267216147, + -18.596481459996767, + -18.597039265278074, + -18.597596683329073, + -18.59815371441858, + -18.598710358815225, + -18.599266616787453, + -18.59982248860352, + -18.600377974531497, + -18.60093307483927, + -18.601487789794533, + -18.60204211966481, + -18.60259606471741, + -18.603149625219494, + -18.603702801438004, + -18.60425559363972, + -18.604808002091225, + -18.605360027058918, + -18.605911668809018, + -18.606462927607552, + -18.607013803720367, + -18.60756429741313, + -18.608114408951312, + -18.608664138600208, + -18.609213486624927, + -18.609762453290394, + -18.61031103886135, + -18.610859243602356, + -18.611407067777776, + -18.611954511651806, + -18.61250157548845, + -18.613048259551537, + -18.6135945641047, + -18.6141404894114, + -18.614686035734913, + -18.615231203338325, + -18.61577599248455, + -18.61632040343631, + -18.616864436456147, + -18.617408091806432, + -18.617951369749335, + -18.61849427054686, + -18.61903679446082, + -18.619578941752845, + -18.620120712684393, + -18.62066210751673, + -18.62120312651095, + -18.62174376992796, + -18.622284038028486, + -18.622823931073075, + -18.62336344932209, + -18.623902593035716, + -18.624441362473952, + -18.624979757896632, + -18.625517779563395, + -18.626055427733696, + -18.626592702666827, + -18.62712960462189, + -18.627666133857797, + -18.628202290633304, + -18.628738075206964, + -18.629273487837168, + -18.629808528782117, + -18.630343198299837, + -18.630877496648175, + -18.6314114240848, + -18.63194498086719, + -18.632478167252668, + -18.633010983498355, + -18.633543429861206, + -18.634075506598, + -18.634607213965324, + -18.6351385522196, + -18.635669521617068, + -18.63620012241379, + -18.636730354865648, + -18.63726021922835, + -18.63778971575742, + -18.63831884470822, + -18.63884760633591, + -18.6393760008955, + -18.6399040286418, + -18.640431689829462, + -18.640958984712945, + -18.64148591354654, + -18.64201247658436, + -18.642538674080345, + -18.64306450628825, + -18.643589973461665, + -18.644115075853993, + -18.64463981371847, + -18.64516418730815, + -18.645688196875916, + -18.64621184267447, + -18.64673512495635, + -18.6472580439739, + -18.647780599979303, + -18.64830279322457, + -18.648824623961517, + -18.64934609244181, + -18.649867198916922, + -18.65038794363816, + -18.650908326856662, + -18.651428348823373, + -18.651948009789084, + -18.652467310004397, + -18.652986249719746, + -18.653504829185398, + -18.654023048651435, + -18.65454090836777, + -18.655058408584143, + -18.655575549550118, + -18.65609233151509, + -18.65660875472828, + -18.657124819438728, + -18.657640525895317, + -18.658155874346743, + -18.65867086504154, + -18.659185498228055, + -18.659699774154475, + -18.660213693068815, + -18.66072725521891, + -18.66124046085243, + -18.661753310216863, + -18.66226580355954, + -18.662777941127604, + -18.663289723168045, + -18.663801149927668, + -18.66431222165311, + -18.664822938590834, + -18.665333300987136, + -18.665843309088142, + -18.6663529631398, + -18.666862263387902, + -18.667371210078052, + -18.66787980345569, + -18.66838804376609, + -18.668895931254355, + -18.66940346616541, + -18.669910648744015, + -18.670417479234768, + -18.67092395788208, + -18.671430084930208, + -18.671935860623233, + -18.672441285205064, + -18.672946358919443, + -18.673451082009947, + -18.67395545471998, + -18.67445947729278, + -18.6749631499714, + -18.675466472998753, + -18.675969446617565, + -18.67647207107039, + -18.67697434659962, + -18.677476273447493, + -18.67797785185605, + -18.67847908206718, + -18.67897996432261, + -18.67948049886389, + -18.6799806859324, + -18.68048052576936, + -18.68098001861582, + -18.68147916471266, + -18.681977964300593, + -18.682476417620173, + -18.682974524911774, + -18.683472286415615, + -18.68396970237174, + -18.68446677302003, + -18.6849634986002, + -18.685459879351797, + -18.6859559155142, + -18.686451607326628, + -18.686946955028123, + -18.687441958857576, + -18.687936619053698, + -18.688430935855045, + -18.6889249095, + -18.689418540226786, + -18.689911828273452, + -18.690404773877894, + -18.690897377277835, + -18.691389638710834, + -18.691881558414284, + -18.692373136625417, + -18.692864373581298, + -18.693355269518825, + -18.69384582467474, + -18.69433603928561, + -18.69482591358784, + -18.69531544781768, + -18.695804642211204, + -18.69629349700433, + -18.69678201243281, + -18.69727018873223, + -18.69775802613802, + -18.698245524885433, + -18.69873268520957, + -18.699219507345372, + -18.6997059915276, + -18.700192137990868, + -18.700677946969623, + -18.701163418698144, + -18.701648553410553, + -18.70213335134081, + -18.702617812722707, + -18.70310193778988, + -18.703585726775795, + -18.704069179913766, + -18.704552297436937, + -18.705035079578295, + -18.70551752657066, + -18.705999638646695, + -18.7064814160389, + -18.706962858979615, + -18.707443967701018, + -18.707924742435118, + -18.70840518341378, + -18.708885290868697, + -18.709365065031395, + -18.709844506133248, + -18.710323614405475, + -18.71080239007912, + -18.71128083338508, + -18.711758944554077, + -18.712236723816694, + -18.71271417140333, + -18.713191287544245, + -18.713668072469524, + -18.714144526409097, + -18.714620649592742, + -18.715096442250065, + -18.715571904610517, + -18.716047036903397, + -18.716521839357835, + -18.71699631220281, + -18.717470455667133, + -18.717944269979466, + -18.7184177553683, + -18.718890912061983, + -18.719363740288692, + -18.71983624027645, + -18.720308412253125, + -18.720780256446417, + -18.721251773083882, + -18.721722962392906, + -18.722193824600723, + -18.722664359934406, + -18.723134568620868, + -18.723604450886878, + -18.724074006959032, + -18.724543237063777, + -18.725012141427403, + -18.725480720276035, + -18.72594897383565, + -18.726416902332065, + -18.726884505990938, + -18.727351785037776, + -18.727818739697923, + -18.728285370196566, + -18.728751676758744, + -18.729217659609336, + -18.729683318973056, + -18.73014865507448, + -18.73061366813801, + -18.7310783583879, + -18.731542726048254, + -18.732006771343013, + -18.73247049449596, + -18.73293389573073, + -18.7333969752708, + -18.733859733339493, + -18.73432217015997, + -18.734784285955246, + -18.735246080948183, + -18.735707555361476, + -18.73616870941767, + -18.736629543339166, + -18.737090057348198, + -18.73755025166685, + -18.738010126517054, + -18.738469682120588, + -18.73892891869907, + -18.73938783647397, + -18.7398464356666, + -18.740304716498127, + -18.740762679189555, + -18.741220323961734, + -18.74167765103537, + -18.74213466063101, + -18.742591352969047, + -18.74304772826972, + -18.74350378675312, + -18.743959528639184, + -18.74441495414769, + -18.744870063498276, + -18.745324856910408, + -18.745779334603426, + -18.746233496796492, + -18.746687343708633, + -18.747140875558717, + -18.747594092565457, + -18.748046994947426, + -18.748499582923035, + -18.74895185671054, + -18.74940381652806, + -18.749855462593548, + -18.750306795124814, + -18.75075781433951, + -18.75120852045515, + -18.751658913689084, + -18.752108994258514, + -18.752558762380495, + -18.753008218271926, + -18.753457362149565, + -18.753906194230005, + -18.754354714729704, + -18.754802923864958, + -18.755250821851916, + -18.755698408906582, + -18.756145685244803, + -18.756592651082286, + -18.75703930663457, + -18.75748565211707, + -18.75793168774502, + -18.75837741373354, + -18.758822830297575, + -18.759267937651927, + -18.759712736011252, + -18.760157225590056, + -18.760601406602696, + -18.761045279263374, + -18.761488843786157, + -18.76193210038495, + -18.76237504927352, + -18.76281769066547, + -18.76326002477428, + -18.763702051813254, + -18.76414377199557, + -18.764585185534244, + -18.76502629264215, + -18.765467093532013, + -18.76590758841641, + -18.766347777507775, + -18.766787661018387, + -18.76722723916038, + -18.767666512145748, + -18.768105480186325, + -18.768544143493806, + -18.76898250227974, + -18.769420556755524, + -18.769858307132417, + -18.770295753621518, + -18.770732896433792, + -18.771169735780052, + -18.771606271870965, + -18.77204250491705, + -18.77247843512868, + -18.772914062716087, + -18.773349387889354, + -18.77378441085842, + -18.774219131833068, + -18.77465355102295, + -18.775087668637568, + -18.775521484886273, + -18.77595499997827, + -18.776388214122633, + -18.776821127528272, + -18.777253740403967, + -18.77768605295834, + -18.778118065399884, + -18.778549777936934, + -18.77898119077768, + -18.77941230413018, + -18.779843118202333, + -18.780273633201904, + -18.78070384933651, + -18.781133766813625, + -18.781563385840577, + -18.78199270662455, + -18.78242172937259, + -18.782850454291587, + -18.783278881588302, + -18.78370701146934, + -18.784134844141168, + -18.784562379810115, + -18.78498961868236, + -18.785416560963935, + -18.785843206860736, + -18.78626955657852, + -18.78669561032289, + -18.787121368299314, + -18.78754683071311, + -18.787971997769468, + -18.78839686967342, + -18.78882144662986, + -18.789245728843547, + -18.789669716519093, + -18.79009340986096, + -18.790516809073484, + -18.79093991436084, + -18.791362725927083, + -18.79178524397611, + -18.79220746871168, + -18.792629400337418, + -18.79305103905679, + -18.793472385073148, + -18.793893438589677, + -18.794314199809435, + -18.794734668935334, + -18.795154846170146, + -18.795574731716503, + -18.7959943257769, + -18.796413628553683, + -18.796832640249065, + -18.797251361065115, + -18.797669791203763, + -18.798087930866796, + -18.798505780255866, + -18.798923339572475, + -18.799340609018003, + -18.79975758879367, + -18.800174279100574, + -18.80059068013966, + -18.80100679211174, + -18.801422615217483, + -18.801838149657424, + -18.802253395631954, + -18.80266835334133, + -18.80308302298566, + -18.803497404764926, + -18.803911498878964, + -18.80432530552747, + -18.804738824910007, + -18.805152057225992, + -18.80556500267471, + -18.8059776614553, + -18.806390033766778, + -18.806802119808005, + -18.80721391977771, + -18.807625433874488, + -18.80803666229679, + -18.808447605242936, + -18.8088582629111, + -18.809268635499325, + -18.80967872320552, + -18.81008852622744, + -18.81049804476272, + -18.810907279008855, + -18.811316229163193, + -18.811724895422955, + -18.812133277985218, + -18.812541377046934, + -18.8129491928049, + -18.813356725455794, + -18.813763975196146, + -18.814170942222354, + -18.814577626730678, + -18.814984028917248, + -18.815390148978047, + -18.815795987108928, + -18.81620154350561, + -18.816606818363674, + -18.817011811878565, + -18.81741652424559, + -18.817820955659922, + -18.818225106316607, + -18.818628976410537, + -18.81903256613649, + -18.81943587568909, + -18.81983890526284, + -18.820241655052104, + -18.820644125251103, + -18.821046316053927, + -18.821448227654543, + -18.821849860246772, + -18.822251214024295, + -18.822652289180674, + -18.823053085909326, + -18.82345360440354, + -18.823853844856462, + -18.82425380746111, + -18.82465349241037, + -18.825052899896992, + -18.825452030113585, + -18.825850883252638, + -18.826249459506496, + -18.826647759067374, + -18.827045782127353, + -18.82744352887838, + -18.827840999512272, + -18.82823819422071, + -18.828635113195237, + -18.829031756627277, + -18.829428124708105, + -18.829824217628875, + -18.830220035580602, + -18.830615578754177, + -18.83101084734034, + -18.83140584152972, + -18.8318005615128, + -18.832195007479935, + -18.83258917962135, + -18.83298307812714, + -18.833376703187252, + -18.833770054991522, + -18.83416313372964, + -18.834555939591173, + -18.83494847276555, + -18.835340733442074, + -18.835732721809915, + -18.836124438058107, + -18.836515882375558, + -18.836907054951045, + -18.837297955973206, + -18.837688585630563, + -18.838078944111494, + -18.838469031604248, + -18.838858848296947, + -18.839248394377588, + -18.839637670034023, + -18.840026675453984, + -18.840415410825067, + -18.840803876334746, + -18.841192072170358, + -18.841579998519112, + -18.841967655568087, + -18.842355043504227, + -18.84274216251436, + -18.84312901278517, + -18.843515594503213, + -18.843901907854924, + -18.844287953026605, + -18.844673730204423, + -18.845059239574425, + -18.84544448132252, + -18.845829455634494, + -18.846214162696, + -18.84659860269257, + -18.846982775809593, + -18.847366682232344, + -18.847750322145963, + -18.84813369573546, + -18.848516803185714, + -18.848899644681484, + -18.8492822204074, + -18.849664530547955, + -18.850046575287518, + -18.850428354810337, + -18.85080986930052, + -18.851191118942058, + -18.85157210391881, + -18.851952824414504, + -18.852333280612743, + -18.852713472697012, + -18.85309340085065, + -18.853473065256882, + -18.853852466098804, + -18.85423160355938, + -18.854610477821453, + -18.854989089067736, + -18.855367437480812, + -18.85574552324314, + -18.85612334653706, + -18.856500907544778, + -18.856878206448368, + -18.857255243429783, + -18.85763201867086, + -18.85800853235329, + -18.85838478465865, + -18.858760775768392, + -18.859136505863834, + -18.859511975126182, + -18.859887183736497, + -18.860262131875732, + -18.860636819724704, + -18.861011247464102, + -18.861385415274505, + -18.861759323336347, + -18.862132971829954, + -18.862506360935516, + -18.8628794908331, + -18.86325236170265, + -18.863624973723986, + -18.8639973270768, + -18.864369421940662, + -18.864741258495012, + -18.86511283691917, + -18.865484157392334, + -18.86585522009357, + -18.866226025201833, + -18.866596572895936, + -18.86696686335458, + -18.867336896756335, + -18.86770667327966, + -18.86807619310287, + -18.868445456404174, + -18.868814463361648, + -18.869183214153246, + -18.869551708956802, + -18.86991994795002, + -18.87028793131049, + -18.870655659215668, + -18.871023131842893, + -18.87139034936938, + -18.871757311972225, + -18.87212401982839, + -18.872490473114723, + -18.872856672007952, + -18.87322261668467, + -18.87358830732136, + -18.873953744094376, + -18.874318927179953, + -18.874683856754196, + -18.8750485329931, + -18.87541295607253, + -18.875777126168227, + -18.876141043455817, + -18.876504708110794, + -18.876868120308547, + -18.877231280224322, + -18.87759418803326, + -18.877956843910372, + -18.87831924803055, + -18.878681400568567, + -18.879043301699067, + -18.879404951596584, + -18.87976635043552, + -18.880127498390163, + -18.88048839563468, + -18.88084904234311, + -18.88120943868938, + -18.881569584847288, + -18.881929480990518, + -18.882289127292633, + -18.88264852392707, + -18.883007671067155, + -18.88336656888608, + -18.88372521755693, + -18.88408361725266, + -18.884441768146115, + -18.88479967041001, + -18.885157324216948, + -18.885514729739405, + -18.885871887149744, + -18.886228796620202, + -18.8865854583229, + -18.886941872429844, + -18.887298039112913, + -18.88765395854387, + -18.888009630894352, + -18.88836505633589, + -18.888720235039887, + -18.88907516717763, + -18.889429852920287, + -18.889784292438907, + -18.890138485904416, + -18.890492433487623, + -18.890846135359226, + -18.891199591689794, + -18.891552802649787, + -18.891905768409543, + -18.892258489139277, + -18.892610965009084, + -18.89296319618896, + -18.89331518284876, + -18.893666925158232, + -18.894018423287005, + -18.894369677404594, + -18.894720687680387, + -18.895071454283666, + -18.895421977383585, + -18.895772257149183, + -18.896122293749386, + -18.896472087353004, + -18.89682163812872, + -18.897170946245108, + -18.897520011870622, + -18.897868835173604, + -18.89821741632227, + -18.89856575548473, + -18.89891385282896, + -18.899261708522847, + -18.899609322734136, + -18.899956695630465, + -18.900303827379357, + -18.90065071814822, + -18.900997368104342, + -18.90134377741489, + -18.90168994624693, + -18.902035874767396, + -18.902381563143116, + -18.902727011540804, + -18.903072220127047, + -18.90341718906832, + -18.903761918530996, + -18.904106408681315, + -18.90445065968541, + -18.904794671709293, + -18.90513844491887, + -18.905481979479926, + -18.90582527555813, + -18.906168333319037, + -18.906511152928093, + -18.906853734550616, + -18.907196078351824, + -18.907538184496808, + -18.907880053150553, + -18.908221684477926, + -18.908563078643677, + -18.908904235812447, + -18.90924515614876, + -18.909585839817023, + -18.909926286981538, + -18.910266497806482, + -18.91060647245592, + -18.910946211093812, + -18.911285713883995, + -18.911624980990197, + -18.911964012576025, + -18.912302808804988, + -18.91264136984046, + -18.912979695845724, + -18.91331778698393, + -18.91365564341813, + -18.913993265311255, + -18.91433065282612, + -18.914667806125433, + -18.91500472537179, + -18.91534141072767, + -18.91567786235544, + -18.916014080417355, + -18.916350065075555, + -18.916685816492073, + -18.917021334828824, + -18.917356620247617, + -18.917691672910138, + -18.918026492977972, + -18.918361080612584, + -18.918695435975334, + -18.91902955922746, + -18.9193634505301, + -18.919697110044268, + -18.920030537930877, + -18.920363734350722, + -18.92069669946449, + -18.92102943343275, + -18.921361936415966, + -18.921694208574493, + -18.922026250068566, + -18.92235806105831, + -18.922689641703748, + -18.923020992164783, + -18.92335211260121, + -18.923683003172712, + -18.924013664038863, + -18.924344095359128, + -18.924674297292853, + -18.92500426999928, + -18.925334013637546, + -18.925663528366663, + -18.925992814345545, + -18.926321871732984, + -18.92665070068768, + -18.926979301368203, + -18.92730767393303, + -18.92763581854051, + -18.927963735348897, + -18.92829142451633, + -18.928618886200837, + -18.928946120560337, + -18.929273127752644, + -18.929599907935454, + -18.92992646126636, + -18.930252787902837, + -18.930578888002263, + -18.9309047617219, + -18.931230409218905, + -18.931555830650318, + -18.931881026173073, + -18.932205995944, + -18.932530740119816, + -18.932855258857128, + -18.933179552312442, + -18.933503620642142, + -18.933827464002515, + -18.934151082549732, + -18.934474476439863, + -18.934797645828866, + -18.93512059087259, + -18.93544331172677, + -18.93576580854705, + -18.936088081488947, + -18.93641013070788, + -18.93673195635916, + -18.937053558597984, + -18.937374937579452, + -18.93769609345855, + -18.938017026390146, + -18.938337736529018, + -18.938658224029833, + -18.938978489047145, + -18.9392985317354, + -18.939618352248942, + -18.939937950742006, + -18.940257327368716, + -18.94057648228309, + -18.94089541563905, + -18.9412141275904, + -18.941532618290836, + -18.941850887893953, + -18.94216893655324, + -18.94248676442207, + -18.942804371653725, + -18.943121758401368, + -18.94343892481806, + -18.943755871056755, + -18.944072597270303, + -18.944389103611442, + -18.944705390232812, + -18.94502145728694, + -18.94533730492626, + -18.945652933303077, + -18.945968342569614, + -18.946283532877974, + -18.946598504380155, + -18.946913257228058, + -18.947227791573475, + -18.947542107568083, + -18.94785620536347, + -18.948170085111105, + -18.948483746962363, + -18.948797191068508, + -18.949110417580695, + -18.94942342664998, + -18.949736218427315, + -18.95004879306354, + -18.950361150709398, + -18.95067329151553, + -18.950985215632453, + -18.951296923210606, + -18.951608414400308, + -18.951919689351772, + -18.95223074821512, + -18.95254159114035, + -18.952852218277375, + -18.953162629775992, + -18.9534728257859, + -18.953782806456694, + -18.954092571937856, + -18.95440212237878, + -18.954711457928738, + -18.955020578736917, + -18.95532948495239, + -18.955638176724126, + -18.955946654200993, + -18.95625491753175, + -18.956562966865064, + -18.956870802349496, + -18.95717842413349, + -18.957485832365407, + -18.957793027193492, + -18.958100008765893, + -18.95840677723065, + -18.9587133327357, + -18.959019675428888, + -18.959325805457944, + -18.959631722970503, + -18.95993742811409, + -18.960242921036137, + -18.960548201883963, + -18.960853270804797, + -18.961158127945755, + -18.96146277345386, + -18.961767207476026, + -18.962071430159064, + -18.96237544164969, + -18.962679242094513, + -18.962982831640044, + -18.96328621043269, + -18.96358937861875, + -18.963892336344433, + -18.964195083755843, + -18.96449762099898, + -18.96479994821974, + -18.965102065563922, + -18.965403973177228, + -18.965705671205246, + -18.966007159793477, + -18.966308439087317, + -18.96660950923205, + -18.966910370372876, + -18.96721102265488, + -18.96751146622306, + -18.967811701222296, + -18.968111727797382, + -18.968411546093012, + -18.968711156253764, + -18.969010558424134, + -18.96930975274851, + -18.969608739371175, + -18.96990751843632, + -18.970206090088027, + -18.970504454470287, + -18.970802611726985, + -18.97110056200191, + -18.97139830543875, + -18.97169584218109, + -18.971993172372425, + -18.97229029615613, + -18.97258721367551, + -18.97288392507374, + -18.97318043049392, + -18.97347673007903, + -18.973772823971977, + -18.97406871231554, + -18.97436439525242, + -18.9746598729252, + -18.974955145476393, + -18.97525021304838, + -18.97554507578346, + -18.97583973382384, + -18.97613418731161, + -18.97642843638878, + -18.976722481197246, + -18.977016321878814, + -18.977309958575187, + -18.977603391427976, + -18.97789662057869, + -18.978189646168737, + -18.978482468339433, + -18.978775087231988, + -18.979067502987522, + -18.97935971574705, + -18.979651725651497, + -18.97994353284168, + -18.98023513745833, + -18.98052653964207, + -18.980817739533432, + -18.981108737272844, + -18.981399533000648, + -18.981690126857075, + -18.981980518982265, + -18.982270709516264, + -18.982560698599013, + -18.982850486370364, + -18.983140072970066, + -18.983429458537774, + -18.98371864321304, + -18.984007627135334, + -18.984296410444014, + -18.984584993278347, + -18.9848733757775, + -18.985161558080552, + -18.985449540326474, + -18.985737322654153, + -18.986024905202367, + -18.986312288109804, + -18.98659947151506, + -18.98688645555663, + -18.987173240372904, + -18.987459826102196, + -18.9877462128827, + -18.988032400852543, + -18.98831839014973, + -18.98860418091218, + -18.98888977327772, + -18.989175167384076, + -18.98946036336888, + -18.98974536136967, + -18.99003016152389, + -18.99031476396888, + -18.99059916884189, + -18.990883376280077, + -18.991167386420504, + -18.99145119940013, + -18.99173481535583, + -18.99201823442438, + -18.992301456742453, + -18.992584482446638, + -18.992867311673425, + -18.993149944559207, + -18.99343238124029, + -18.99371462185287, + -18.99399666653307, + -18.994278515416898, + -18.994560168640284, + -18.994841626339046, + -18.995122888648925, + -18.995403955705566, + -18.995684827644503, + -18.99596550460119, + -18.996245986710992, + -18.996526274109165, + -18.99680636693088, + -18.997086265311214, + -18.99736596938515, + -18.997645479287574, + -18.997924795153278, + -18.998203917116967, + -18.998482845313248, + -18.998761579876632, + -18.999040120941544, + -18.999318468642304, + -18.999596623113156, + -18.999874584488236, + -19.00015235290159, + -19.000429928487172, + -19.00070731137885, + -19.000984501710388, + -19.001261499615463, + -19.00153830522766, + -19.00181491868046, + -19.002091340107274, + -19.0023675696414, + -19.00264360741605, + -19.002919453564346, + -19.003195108219312, + -19.00347057151389, + -19.003745843580923, + -19.004020924553153, + -19.004295814563246, + -19.004570513743765, + -19.004845022227187, + -19.005119340145896, + -19.005393467632178, + -19.005667404818233, + -19.005941151836172, + -19.006214708818007, + -19.00648807589566, + -19.006761253200967, + -19.007034240865668, + -19.00730703902141, + -19.00757964779975, + -19.007852067332163, + -19.008124297750012, + -19.00839633918459, + -19.008668191767082, + -19.008939855628597, + -19.009211330900143, + -19.00948261771264, + -19.009753716196915, + -19.01002462648371, + -19.010295348703668, + -19.010565882987347, + -19.010836229465216, + -19.011106388267645, + -19.011376359524924, + -19.011646143367244, + -19.01191573992471, + -19.012185149327337, + -19.012454371705047, + -19.012723407187675, + -19.012992255904962, + -19.013260917986564, + -19.01352939356204, + -19.013797682760867, + -19.01406578571243, + -19.014333702546015, + -19.014601433390833, + -19.014868978375997, + -19.015136337630526, + -19.015403511283363, + -19.015670499463347, + -19.015937302299236, + -19.016203919919693, + -19.0164703524533, + -19.016736600028544, + -19.017002662773823, + -19.017268540817447, + -19.017534234287634, + -19.017799743312523, + -19.018065068020146, + -19.018330208538465, + -19.01859516499534, + -19.01885993751855, + -19.019124526235778, + -19.01938893127463, + -19.019653152762608, + -19.019917190827137, + -19.020181045595553, + -19.0204447171951, + -19.020708205752932, + -19.020971511396116, + -19.021234634251638, + -19.021497574446382, + -19.021760332107156, + -19.02202290736068, + -19.02228530033357, + -19.02254751115238, + -19.02280953994355, + -19.02307138683345, + -19.02333305194836, + -19.02359453541446, + -19.02385583735786, + -19.024116957904567, + -19.02437789718051, + -19.024638655311527, + -19.02489923242337, + -19.025159628641703, + -19.0254198440921, + -19.025679878900053, + -19.025939733190967, + -19.026199407090157, + -19.026458900722847, + -19.026718214214185, + -19.026977347689222, + -19.027236301272925, + -19.02749507509018, + -19.027753669265774, + -19.02801208392442, + -19.028270319190735, + -19.02852837518926, + -19.02878625204444, + -19.029043949880638, + -19.029301468822126, + -19.029558808993098, + -19.029815970517657, + -19.030072953519813, + -19.030329758123507, + -19.030586384452576, + -19.030842832630782, + -19.0310991027818, + -19.03135519502921, + -19.031611109496524, + -19.031866846307146, + -19.032122405584413, + -19.03237778745157, + -19.032632992031772, + -19.03288801944809, + -19.033142869823518, + -19.03339754328096, + -19.03365203994322, + -19.03390635993304, + -19.03416050337307, + -19.03441447038586, + -19.034668261093902, + -19.03492187561957, + -19.035175314085183, + -19.035428576612958, + -19.03568166332503, + -19.035934574343454, + -19.036187309790197, + -19.036439869787138, + -19.036692254456078, + -19.036944463918726, + -19.03719649829672, + -19.037448357711593, + -19.037700042284815, + -19.037951552137752, + -19.038202887391705, + -19.038454048167875, + -19.038705034587387, + -19.03895584677128, + -19.03920648484051, + -19.039456948915944, + -19.039707239118375, + -19.0399573555685, + -19.040207298386946, + -19.04045706769424, + -19.04070666361084, + -19.04095608625711, + -19.04120533575334, + -19.04145441221973, + -19.04170331577639, + -19.04195204654337, + -19.042200604640605, + -19.04244899018797, + -19.042697203305256, + -19.042945244112158, + -19.043193112728293, + -19.0434408092732, + -19.043688333866328, + -19.04393568662705, + -19.04418286767465, + -19.044429877128334, + -19.04467671510722, + -19.04492338173035, + -19.045169877116678, + -19.045416201385077, + -19.045662354654336, + -19.045908337043166, + -19.046154148670194, + -19.046399789653957, + -19.046645260112925, + -19.04689056016547, + -19.047135689929892, + -19.047380649524403, + -19.047625439067136, + -19.047870058676146, + -19.048114508469396, + -19.048358788564776, + -19.048602899080088, + -19.04884684013306, + -19.049090611841326, + -19.04933421432245, + -19.049577647693912, + -19.049820912073105, + -19.050064007577344, + -19.050306934323867, + -19.050549692429822, + -19.05079228201228, + -19.051034703188233, + -19.051276956074584, + -19.05151904078817, + -19.051760957445726, + -19.052002706163925, + -19.052244287059345, + -19.052485700248496, + -19.052726945847795, + -19.052968023973587, + -19.053208934742127, + -19.0534496782696, + -19.05369025467211, + -19.05393066406566, + -19.054170906566203, + -19.054410982289593, + -19.0546508913516, + -19.05489063386793, + -19.0551302099542, + -19.055369619725937, + -19.055608863298605, + -19.05584794078758, + -19.056086852308155, + -19.056325597975544, + -19.056564177904885, + -19.056802592211238, + -19.05704084100957, + -19.057278924414785, + -19.057516842541695, + -19.057754595505042, + -19.057992183419476, + -19.058229606399582, + -19.058466864559854, + -19.058703958014707, + -19.05894088687849, + -19.05917765126545, + -19.059414251289777, + -19.059650687065567, + -19.059886958706844, + -19.060123066327556, + -19.060359010041555, + -19.060594789962636, + -19.0608304062045, + -19.06106585888077, + -19.061301148105, + -19.061536273990654, + -19.06177123665113, + -19.06200603619973, + -19.06224067274969, + -19.06247514641417, + -19.06270945730624, + -19.062943605538898, + -19.063177591225063, + -19.063411414477574, + -19.063645075409195, + -19.063878574132612, + -19.064111910760424, + -19.06434508540516, + -19.064578098179275, + -19.064810949195135, + -19.065043638565033, + -19.065276166401187, + -19.06550853281573, + -19.065740737920727, + -19.065972781828155, + -19.06620466464992, + -19.06643638649785, + -19.066667947483687, + -19.06689934771911, + -19.067130587315706, + -19.067361666384997, + -19.067592585038415, + -19.067823343387328, + -19.068053941543017, + -19.06828437961669, + -19.06851465771947, + -19.068744775962415, + -19.0689747344565, + -19.06920453331262, + -19.069434172641603, + -19.069663652554187, + -19.069892973161043, + -19.07012213457276, + -19.07035113689985, + -19.070579980252752, + -19.07080866474183, + -19.07103719047736, + -19.071265557569554, + -19.071493766128544, + -19.071721816264382, + -19.071949708087043, + -19.072177441706437, + -19.07240501723238, + -19.072632434774626, + -19.072859694442847, + -19.07308679634664, + -19.073313740595523, + -19.07354052729895, + -19.073767156566273, + -19.073993628506802, + -19.074219943229743, + -19.074446100844238, + -19.074672101459356, + -19.074897945184084, + -19.075123632127337, + -19.075349162397952, + -19.075574536104693, + -19.075799753356247, + -19.076024814261224, + -19.07624971892816, + -19.07647446746552, + -19.076699059981685, + -19.076923496584968, + -19.077147777383605, + -19.077371902485755, + -19.077595871999502, + -19.077819686032857, + -19.078043344693754, + -19.078266848090056, + -19.078490196329543, + -19.078713389519933, + -19.078936427768856, + -19.079159311183872, + -19.079382039872474, + -19.079604613942063, + -19.07982703349999, + -19.080049298653503, + -19.080271409509795, + -19.080493366175986, + -19.08071516875911, + -19.080936817366133, + -19.08115831210394, + -19.081379653079356, + -19.08160084039912, + -19.0818218741699, + -19.082042754498293, + -19.082263481490813, + -19.08248405525391, + -19.08270447589396, + -19.082924743517257, + -19.083144858230025, + -19.083364820138417, + -19.08358462934851, + -19.083804285966313, + -19.084023790097746, + -19.08424314184867, + -19.084462341324873, + -19.084681388632056, + -19.08490028387586, + -19.085119027161845, + -19.085337618595506, + -19.085556058282258, + -19.08577434632744, + -19.085992482836325, + -19.086210467914107, + -19.086428301665915, + -19.0866459841968, + -19.086863515611736, + -19.087080896015628, + -19.08729812551331, + -19.08751520420954, + -19.087732132209013, + -19.087948909616333, + -19.088165536536046, + -19.08838201307262, + -19.088598339330453, + -19.088814515413866, + -19.089030541427114, + -19.089246417474374, + -19.089462143659755, + -19.08967772008729, + -19.089893146860945, + -19.0901084240846, + -19.090323551862085, + -19.090538530297138, + -19.09075335949344, + -19.09096803955459, + -19.091182570584113, + -19.091396952685475, + -19.091611185962055, + -19.091825270517173, + -19.09203920645407, + -19.092252993875924, + -19.092466632885824, + -19.0926801235868, + -19.092893466081815, + -19.093106660473747, + -19.093319706865415, + -19.09353260535956, + -19.09374535605885, + -19.09395795906589, + -19.0941704144832, + -19.09438272241325, + -19.094594882958415, + -19.094806896221012, + -19.095018762303287, + -19.095230481307414, + -19.095442053335493, + -19.09565347848956, + -19.095864756871567, + -19.09607588858341, + -19.096286873726907, + -19.096497712403806, + -19.096708404715784, + -19.096918950764447, + -19.097129350651333, + -19.09733960447791, + -19.097549712345568, + -19.097759674355636, + -19.09796949060937, + -19.098179161207952, + -19.098388686252495, + -19.098598065844048, + -19.098807300083582, + -19.099016389072, + -19.099225332910137, + -19.099434131698754, + -19.099642785538553, + -19.099851294530147, + -19.1000596587741, + -19.10026787837089, + -19.100475953420933, + -19.100683884024573, + -19.10089167028209, + -19.101099312293684, + -19.101306810159492, + -19.101514163979584, + -19.10172137385395, + -19.101928439882528, + -19.102135362165168, + -19.10234214080166, + -19.102548775891727, + -19.102755267535017, + -19.10296161583111, + -19.10316782087952, + -19.103373882779692, + -19.103579801630996, + -19.10378557753274, + -19.103991210584155, + -19.104196700884415, + -19.104402048532616, + -19.104607253627787, + -19.104812316268884, + -19.105017236554808, + -19.105222014584378, + -19.105426650456348, + -19.105631144269402, + -19.105835496122168, + -19.106039706113183, + -19.106243774340935, + -19.106447700903836, + -19.106651485900226, + -19.10685512942839, + -19.107058631586526, + -19.107261992472775, + -19.107465212185215, + -19.10766829082184, + -19.107871228480594, + -19.108074025259338, + -19.108276681255877, + -19.108479196567938, + -19.108681571293186, + -19.108883805529217, + -19.10908589937356, + -19.109287852923675, + -19.10948966627695, + -19.10969133953072, + -19.109892872782233, + -19.110094266128687, + -19.110295519667197, + -19.11049663349482, + -19.11069760770855, + -19.110898442405297, + -19.111099137681926, + -19.111299693635214, + -19.11150011036188, + -19.111700387958585, + -19.111900526521904, + -19.112100526148353, + -19.11230038693439, + -19.112500108976395, + -19.112699692370683, + -19.112899137213507, + -19.113098443601046, + -19.113297611629424, + -19.11349664139468, + -19.1136955329928, + -19.113894286519702, + -19.11409290207124, + -19.11429137974319, + -19.11448971963127, + -19.11468792183113, + -19.114885986438352, + -19.11508391354846, + -19.115281703256898, + -19.115479355659055, + -19.115676870850244, + -19.11587424892572, + -19.116071489980676, + -19.116268594110224, + -19.116465561409417, + -19.11666239197325, + -19.11685908589664, + -19.117055643274448, + -19.117252064201455, + -19.117448348772395, + -19.117644497081926, + -19.117840509224635, + -19.118036385295056, + -19.118232125387646, + -19.118427729596803, + -19.118623198016863, + -19.118818530742082, + -19.119013727866665, + -19.119208789484745, + -19.11940371569039, + -19.11959850657761, + -19.119793162240335, + -19.119987682772443, + -19.120182068267745, + -19.120376318819975, + -19.12057043452282, + -19.120764415469885, + -19.120958261754726, + -19.121151973470823, + -19.12134555071159, + -19.121538993570386, + -19.121732302140497, + -19.121925476515145, + -19.12211851678749, + -19.12231142305063, + -19.122504195397585, + -19.12269683392133, + -19.122889338714764, + -19.123081709870718, + -19.12327394748197, + -19.123466051641216, + -19.123658022441113, + -19.123849859974232, + -19.124041564333087, + -19.124233135610133, + -19.12442457389775, + -19.12461587928826, + -19.124807051873923, + -19.12499809174693, + -19.12518899899942, + -19.125379773723445, + -19.125570416011016, + -19.125760925954065, + -19.125951303644474, + -19.126141549174044, + -19.126331662634524, + -19.1265216441176, + -19.12671149371489, + -19.126901211517946, + -19.127090797618266, + -19.127280252107276, + -19.12746957507634, + -19.127658766616758, + -19.12784782681977, + -19.128036755776556, + -19.12822555357822, + -19.128414220315815, + -19.128602756080323, + -19.128791160962667, + -19.128979435053704, + -19.129167578444235, + -19.12935559122499, + -19.12954347348664, + -19.129731225319784, + -19.129918846814977, + -19.130106338062692, + -19.13029369915335, + -19.130480930177306, + -19.130668031224857, + -19.130855002386227, + -19.13104184375159, + -19.13122855541104, + -19.13141513745463, + -19.131601589972338, + -19.13178791305408, + -19.131974106789706, + -19.132160171269014, + -19.132346106581732, + -19.132531912817527, + -19.132717590066008, + -19.132903138416715, + -19.133088557959134, + -19.133273848782682, + -19.13345901097671, + -19.133644044630522, + -19.133828949833347, + -19.134013726674358, + -19.134198375242658, + -19.1343828956273, + -19.134567287917275, + -19.134751552201493, + -19.134935688568827, + -19.13511969710807, + -19.13530357790797, + -19.135487331057192, + -19.13567095664436, + -19.13585445475803, + -19.136037825486685, + -19.13622106891876, + -19.13640418514263, + -19.1365871742466, + -19.136770036318914, + -19.136952771447763, + -19.13713537972127, + -19.137317861227494, + -19.137500216054445, + -19.137682444290057, + -19.13786454602221, + -19.138046521338733, + -19.138228370327376, + -19.138410093075834, + -19.13859168967175, + -19.138773160202696, + -19.138954504756185, + -19.139135723419678, + -19.13931681628056, + -19.13949778342616, + -19.139678624943766, + -19.13985934092058, + -19.14003993144375, + -19.14022039660037, + -19.14040073647747, + -19.140580951162022, + -19.140761040740927, + -19.14094100530104, + -19.14112084492915, + -19.141300559711986, + -19.14148014973621, + -19.141659615088432, + -19.141838955855203, + -19.14201817212301, + -19.142197263978275, + -19.142376231507374, + -19.142555074796608, + -19.14273379393223, + -19.142912389000422, + -19.143090860087316, + -19.14326920727898, + -19.14344743066142, + -19.14362553032059, + -19.143803506342373, + -19.143981358812603, + -19.144159087817048, + -19.144336693441417, + -19.144514175771363, + -19.144691534892477, + -19.14486877089029, + -19.145045883850276, + -19.145222873857847, + -19.14539974099836, + -19.145576485357108, + -19.145753107019324, + -19.145929606070183, + -19.14610598259481, + -19.146282236678257, + -19.146458368405522, + -19.14663437786155, + -19.146810265131222, + -19.146986030299356, + -19.147161673450714, + -19.14733719467001, + -19.14751259404188, + -19.147687871650916, + -19.147863027581643, + -19.14803806191853, + -19.14821297474599, + -19.14838776614838, + -19.148562436209986, + -19.148736985015045, + -19.148911412647738, + -19.149085719192176, + -19.149259904732425, + -19.149433969352483, + -19.149607913136293, + -19.149781736167746, + -19.149955438530657, + -19.150129020308807, + -19.150302481585904, + -19.15047582244559, + -19.150649042971473, + -19.150822143247076, + -19.150995123355887, + -19.151167983381324, + -19.151340723406747, + -19.15151334351546, + -19.151685843790712, + -19.151858224315696, + -19.152030485173533, + -19.152202626447302, + -19.152374648220018, + -19.15254655057464, + -19.152718333594066, + -19.15288999736114, + -19.15306154195865, + -19.153232967469318, + -19.153404273975823, + -19.15357546156077, + -19.15374653030672, + -19.153917480296165, + -19.154088311611556, + -19.154259024335268, + -19.15442961854963, + -19.154600094336917, + -19.15477045177934, + -19.154940690959045, + -19.15511081195814, + -19.155280814858664, + -19.155450699742598, + -19.155620466691875, + -19.155790115788363, + -19.155959647113875, + -19.15612906075017, + -19.156298356778947, + -19.15646753528185, + -19.156636596340462, + -19.15680554003632, + -19.156974366450893, + -19.1571430756656, + -19.157311667761803, + -19.157480142820802, + -19.157648500923848, + -19.15781674215213, + -19.157984866586784, + -19.158152874308886, + -19.158320765399463, + -19.158488539939476, + -19.15865619800984, + -19.158823739691407, + -19.158991165064972, + -19.159158474211278, + -19.159325667211007, + -19.159492744144792, + -19.159659705093212, + -19.15982655013677, + -19.15999327935594, + -19.16015989283113, + -19.160326390642673, + -19.160492772870878, + -19.160659039595977, + -19.160825190898155, + -19.160991226857544, + -19.161157147554203, + -19.161322953068158, + -19.161488643479366, + -19.161654218867728, + -19.1618196793131, + -19.161985024895273, + -19.162150255693984, + -19.162315371788914, + -19.162480373259697, + -19.162645260185904, + -19.162810032647048, + -19.162974690722592, + -19.163139234491947, + -19.163303664034462, + -19.163467979429434, + -19.163632180756103, + -19.16379626809366, + -19.163960241521227, + -19.164124101117896, + -19.164287846962676, + -19.164451479134538, + -19.164614997712395, + -19.164778402775102, + -19.164941694401467, + -19.16510487267023, + -19.16526793766009, + -19.16543088944968, + -19.165593728117596, + -19.165756453742354, + -19.165919066402434, + -19.16608156617626, + -19.166243953142192, + -19.166406227378545, + -19.166568388963576, + -19.166730437975485, + -19.166892374492427, + -19.167054198592492, + -19.16721591035372, + -19.167377509854095, + -19.167538997171555, + -19.167700372383976, + -19.167861635569178, + -19.168022786804933, + -19.168183826168956, + -19.168344753738907, + -19.1685055695924, + -19.168666273806984, + -19.16882686646016, + -19.168987347629372, + -19.16914771739202, + -19.169307975825433, + -19.1694681230069, + -19.16962815901366, + -19.169788083922878, + -19.16994789781169, + -19.170107600757156, + -19.1702671928363, + -19.170426674126084, + -19.17058604470342, + -19.17074530464516, + -19.170904454028115, + -19.17106349292903, + -19.171222421424602, + -19.17138123959148, + -19.171539947506243, + -19.171698545245444, + -19.17185703288556, + -19.172015410503015, + -19.172173678174197, + -19.172331835975427, + -19.17248988398298, + -19.17264782227307, + -19.17280565092187, + -19.172963370005487, + -19.173120979599986, + -19.17327847978137, + -19.1734358706256, + -19.17359315220857, + -19.17375032460614, + -19.173907387894097, + -19.174064342148196, + -19.174221187444115, + -19.174377923857506, + -19.174534551463946, + -19.174691070338977, + -19.17484748055807, + -19.17500378219667, + -19.17515997533014, + -19.175316060033808, + -19.175472036382953, + -19.175627904452785, + -19.17578366431848, + -19.17593931605515, + -19.176094859737862, + -19.176250295441623, + -19.17640562324139, + -19.17656084321208, + -19.17671595542854, + -19.176870959965576, + -19.17702585689794, + -19.177180646300332, + -19.1773353282474, + -19.177489902813736, + -19.177644370073885, + -19.177798730102346, + -19.17795298297355, + -19.17810712876189, + -19.178261167541706, + -19.17841509938728, + -19.178568924372847, + -19.17872264257259, + -19.178876254060643, + -19.17902975891108, + -19.179183157197933, + -19.179336448995176, + -19.17948963437674, + -19.17964271341649, + -19.17979568618826, + -19.17994855276581, + -19.18010131322287, + -19.180253967633107, + -19.180406516070136, + -19.180558958607524, + -19.180711295318787, + -19.180863526277392, + -19.181015651556752, + -19.18116767123023, + -19.18131958537114, + -19.18147139405274, + -19.18162309734824, + -19.1817746953308, + -19.181926188073533, + -19.182077575649487, + -19.18222885813168, + -19.18238003559306, + -19.182531108106538, + -19.182682075744967, + -19.182832938581154, + -19.18298369668785, + -19.183134350137756, + -19.18328489900353, + -19.18343534335778, + -19.183585683273048, + -19.183735918821835, + -19.1838860500766, + -19.184036077109745, + -19.184185999993613, + -19.18433581880051, + -19.184485533602686, + -19.18463514447234, + -19.18478465148163, + -19.184934054702644, + -19.185083354207435, + -19.18523255006801, + -19.18538164235632, + -19.185530631144257, + -19.185679516503672, + -19.18582829850637, + -19.1859769772241, + -19.186125552728562, + -19.18627402509141, + -19.18642239438424, + -19.18657066067861, + -19.186718824046014, + -19.18686688455791, + -19.1870148422857, + -19.187162697300735, + -19.187310449674317, + -19.18745809947771, + -19.187605646782103, + -19.187753091658667, + -19.187900434178495, + -19.18804767441265, + -19.188194812432137, + -19.188341848307918, + -19.188488782110895, + -19.18863561391193, + -19.188782343781835, + -19.18892897179137, + -19.189075498011242, + -19.18922192251212, + -19.189368245364616, + -19.189514466639295, + -19.18966058640667, + -19.18980660473721, + -19.189952521701333, + -19.190098337369406, + -19.19024405181175, + -19.19038966509864, + -19.19053517730029, + -19.19068058848688, + -19.190825898728537, + -19.19097110809533, + -19.191116216657296, + -19.191261224484403, + -19.19140613164659, + -19.191550938213734, + -19.191695644255674, + -19.191840249842187, + -19.19198475504302, + -19.192129159927852, + -19.192273464566323, + -19.192417669028032, + -19.192561773382515, + -19.192705777699267, + -19.19284968204774, + -19.192993486497326, + -19.19313719111738, + -19.193280795977202, + -19.19342430114604, + -19.193567706693113, + -19.19371101268757, + -19.19385421919852, + -19.19399732629503, + -19.194140334046107, + -19.194283242520722, + -19.194426051787794, + -19.194568761916187, + -19.19471137297473, + -19.194853885032195, + -19.19499629815731, + -19.195138612418752, + -19.195280827885153, + -19.195422944625097, + -19.195564962707124, + -19.195706882199715, + -19.19584870317132, + -19.195990425690326, + -19.196132049825078, + -19.19627357564388, + -19.196415003214984, + -19.196556332606587, + -19.19669756388685, + -19.196838697123884, + -19.196979732385746, + -19.197120669740457, + -19.197261509255977, + -19.197402251000234, + -19.197542895041096, + -19.197683441446387, + -19.197823890283892, + -19.19796424162134, + -19.198104495526415, + -19.19824465206676, + -19.198384711309956, + -19.198524673323558, + -19.198664538175056, + -19.1988043059319, + -19.1989439766615, + -19.199083550431208, + -19.19922302730833, + -19.199362407360137, + -19.19950169065384, + -19.19964087725661, + -19.19977996723557, + -19.1999189606578, + -19.200057857590327, + -19.200196658100136, + -19.20033536225416, + -19.200473970119294, + -19.20061248176238, + -19.200750897250217, + -19.200889216649554, + -19.201027440027097, + -19.201165567449504, + -19.20130359898339, + -19.20144153469532, + -19.201579374651814, + -19.201717118919344, + -19.20185476756434, + -19.20199232065318, + -19.202129778252203, + -19.202267140427697, + -19.202404407245904, + -19.202541578773022, + -19.202678655075207, + -19.20281563621856, + -19.20295252226914, + -19.20308931329296, + -19.20322600935599, + -19.203362610524152, + -19.203499116863327, + -19.203635528439335, + -19.203771845317966, + -19.203908067564964, + -19.204044195246016, + -19.204180228426775, + -19.20431616717284, + -19.20445201154977, + -19.204587761623074, + -19.20472341745822, + -19.204858979120626, + -19.20499444667567, + -19.205129820188677, + -19.20526509972494, + -19.20540028534969, + -19.205535377128122, + -19.205670375125386, + -19.205805279406587, + -19.205940090036776, + -19.206074807080974, + -19.206209430604147, + -19.206343960671212, + -19.206478397347055, + -19.206612740696503, + -19.206746990784342, + -19.20688114767532, + -19.20701521143413, + -19.207149182125427, + -19.20728305981382, + -19.207416844563866, + -19.20755053644009, + -19.207684135506963, + -19.20781764182891, + -19.20795105547032, + -19.20808437649553, + -19.208217604968837, + -19.208350740954483, + -19.208483784516684, + -19.20861673571959, + -19.208749594627324, + -19.20888236130396, + -19.209015035813515, + -19.20914761821998, + -19.209280108587294, + -19.209412506979348, + -19.20954481345999, + -19.209677028093026, + -19.209809150942217, + -19.20994118207128, + -19.21007312154389, + -19.21020496942367, + -19.210336725774212, + -19.21046839065905, + -19.21059996414168, + -19.21073144628555, + -19.210862837154075, + -19.210994136810616, + -19.211125345318493, + -19.21125646274098, + -19.211387489141313, + -19.21151842458267, + -19.21164926912821, + -19.21178002284102, + -19.21191068578416, + -19.212041258020648, + -19.21217173961345, + -19.212302130625485, + -19.212432431119645, + -19.21256264115876, + -19.212692760805627, + -19.212822790122996, + -19.212952729173573, + -19.21308257802002, + -19.213212336724965, + -19.213342005350977, + -19.21347158396059, + -19.2136010726163, + -19.213730471380543, + -19.213859780315733, + -19.213988999484222, + -19.214118128948325, + -19.21424716877032, + -19.214376119012435, + -19.21450497973686, + -19.21463375100573, + -19.214762432881155, + -19.214891025425185, + -19.215019528699838, + -19.215147942767086, + -19.21527626768885, + -19.215404503527026, + -19.215532650343448, + -19.21566070819992, + -19.215788677158198, + -19.21591655727999, + -19.21604434862697, + -19.216172051260763, + -19.21629966524296, + -19.216427190635102, + -19.216554627498684, + -19.216681975895163, + -19.21680923588596, + -19.216936407532437, + -19.21706349089593, + -19.217190486037726, + -19.217317393019066, + -19.21744421190115, + -19.217570942745137, + -19.217697585612147, + -19.217824140563252, + -19.21795060765948, + -19.218076986961826, + -19.21820327853123, + -19.2183294824286, + -19.2184555987148, + -19.218581627450654, + -19.21870756869693, + -19.21883342251437, + -19.218959188963662, + -19.219084868105462, + -19.219210460000376, + -19.219335964708975, + -19.219461382291783, + -19.21958671280928, + -19.21971195632191, + -19.21983711289007, + -19.21996218257412, + -19.22008716543437, + -19.2202120615311, + -19.220336870924537, + -19.220461593674873, + -19.220586229842255, + -19.220710779486787, + -19.220835242668535, + -19.220959619447527, + -19.221083909883735, + -19.221208114037104, + -19.221332231967533, + -19.221456263734872, + -19.22158020939894, + -19.221704069019513, + -19.22182784265632, + -19.22195153036905, + -19.222075132217352, + -19.222198648260832, + -19.222322078559056, + -19.222445423171557, + -19.222568682157807, + -19.222691855577253, + -19.222814943489297, + -19.222937945953298, + -19.22306086302857, + -19.2231836947744, + -19.223306441250013, + -19.22342910251461, + -19.223551678627345, + -19.223674169647325, + -19.223796575633628, + -19.223918896645284, + -19.224041132741277, + -19.224163283980563, + -19.224285350422047, + -19.224407332124592, + -19.22452922914703, + -19.224651041548146, + -19.22477276938668, + -19.224894412721337, + -19.22501597161078, + -19.225137446113635, + -19.22525883628848, + -19.225380142193853, + -19.225501363888256, + -19.225622501430152, + -19.22574355487796, + -19.225864524290053, + -19.22598540972477, + -19.226106211240417, + -19.22622692889524, + -19.22634756274746, + -19.226468112855255, + -19.226588579276754, + -19.22670896207006, + -19.226829261293226, + -19.22694947700426, + -19.227069609261147, + -19.227189658121816, + -19.22730962364416, + -19.227429505886033, + -19.22754930490525, + -19.22766902075958, + -19.227788653506764, + -19.22790820320449, + -19.22802766991041, + -19.228147053682143, + -19.228266354577258, + -19.22838557265329, + -19.22850470796773, + -19.228623760578035, + -19.228742730541615, + -19.228861617915847, + -19.22898042275806, + -19.229099145125552, + -19.229217785075576, + -19.229336342665345, + -19.229454817952035, + -19.229573210992786, + -19.229691521844686, + -19.22980975056479, + -19.22992789721012, + -19.230045961837654, + -19.23016394450432, + -19.230281845267022, + -19.230399664182617, + -19.230517401307925, + -19.23063505669972, + -19.23075263041475, + -19.230870122509707, + -19.230987533041255, + -19.23110486206602, + -19.231222109640573, + -19.23133927582147, + -19.231456360665206, + -19.23157336422825, + -19.231690286567023, + -19.231807127737916, + -19.231923887797276, + -19.232040566801405, + -19.232157164806576, + -19.23227368186902, + -19.23239011804493, + -19.232506473390448, + -19.232622747961692, + -19.232738941814738, + -19.232855055005622, + -19.232971087590336, + -19.233087039624834, + -19.233202911165044, + -19.23331870226684, + -19.233434412986057, + -19.233550043378507, + -19.233665593499946, + -19.233781063406102, + -19.23389645315266, + -19.234011762795266, + -19.234126992389527, + -19.234242141991018, + -19.234357211655265, + -19.234472201437764, + -19.23458711139397, + -19.234701941579296, + -19.23481669204912, + -19.234931362858777, + -19.235045954063576, + -19.23516046571877, + -19.235274897879588, + -19.235389250601216, + -19.235503523938796, + -19.23561771794744, + -19.23573183268222, + -19.235845868198165, + -19.23595982455027, + -19.23607370179349, + -19.236187499982744, + -19.236301219172912, + -19.236414859418833, + -19.236528420775315, + -19.23664190329712, + -19.236755307038973, + -19.236868632055565, + -19.23698187840155, + -19.23709504613154, + -19.237208135300108, + -19.237321145961797, + -19.2374340781711, + -19.237546931982482, + -19.23765970745037, + -19.237772404629144, + -19.23788502357316, + -19.237997564336727, + -19.238110026974113, + -19.238222411539557, + -19.238334718087255, + -19.23844694667137, + -19.238559097346023, + -19.2386711701653, + -19.238783165183246, + -19.238895082453876, + -19.23900692203116, + -19.23911868396903, + -19.239230368321383, + -19.239341975142086, + -19.239453504484956, + -19.23956495640378, + -19.239676330952303, + -19.239787628184242, + -19.239898848153263, + -19.24000999091301, + -19.24012105651708, + -19.24023204501903, + -19.24034295647239, + -19.24045379093064, + -19.24056454844724, + -19.2406752290756, + -19.240785832869086, + -19.240896359881052, + -19.241006810164794, + -19.24111718377357, + -19.24122748076062, + -19.241337701179127, + -19.24144784508225, + -19.241557912523103, + -19.241667903554767, + -19.241777818230286, + -19.241887656602664, + -19.241997418724875, + -19.242107104649854, + -19.24221671443049, + -19.242326248119646, + -19.242435705770145, + -19.242545087434777, + -19.242654393166287, + -19.24276362301739, + -19.24287277704076, + -19.242981855289038, + -19.24309085781483, + -19.2431997846707, + -19.24330863590918, + -19.243417411582765, + -19.24352611174391, + -19.243634736445035, + -19.243743285738528, + -19.24385175967673, + -19.243960158311964, + -19.244068481696495, + -19.244176729882568, + -19.244284902922388, + -19.244393000868115, + -19.244501023771885, + -19.244608971685793, + -19.24471684466189, + -19.244824642752207, + -19.244932366008726, + -19.245040014483394, + -19.245147588228132, + -19.245255087294808, + -19.245362511735273, + -19.24546986160133, + -19.245577136944743, + -19.245684337817256, + -19.24579146427056, + -19.245898516356316, + -19.246005494126155, + -19.246112397631666, + -19.2462192269244, + -19.24632598205588, + -19.24643266307759, + -19.246539270040973, + -19.246645802997442, + -19.246752261998374, + -19.246858647095106, + -19.246964958338946, + -19.247071195781164, + -19.24717735947299, + -19.24728344946562, + -19.247389465810222, + -19.24749540855792, + -19.247601277759806, + -19.247707073466934, + -19.247812795730326, + -19.247918444600963, + -19.248024020129797, + -19.248129522367748, + -19.24823495136569, + -19.24834030717446, + -19.248445589844877, + -19.248550799427704, + -19.248655935973687, + -19.248760999533527, + -19.24886599015789, + -19.248970907897405, + -19.249075752802668, + -19.24918052492425, + -19.249285224312665, + -19.249389851018417, + -19.249494405091955, + -19.2495988865837, + -19.249703295544045, + -19.249807632023334, + -19.24991189607189, + -19.25001608773999, + -19.25012020707788, + -19.25022425413578, + -19.25032822896386, + -19.25043213161226, + -19.250535962131092, + -19.25063972057043, + -19.250743406980305, + -19.250847021410728, + -19.250950563911665, + -19.251054034533045, + -19.251157433324774, + -19.25126076033671, + -19.251364015618687, + -19.2514671992205, + -19.251570311191905, + -19.251673351582635, + -19.251776320442378, + -19.25187921782079, + -19.251982043767494, + -19.25208479833208, + -19.252187481564103, + -19.25229009351308, + -19.25239263422849, + -19.252495103759795, + -19.2525975021564, + -19.252699829467698, + -19.252802085743028, + -19.25290427103171, + -19.25300638538302, + -19.2531084288462, + -19.253210401470465, + -19.25331230330499, + -19.253414134398916, + -19.253515894801357, + -19.25361758456138, + -19.25371920372803, + -19.253820752350308, + -19.253922230477194, + -19.25402363815762, + -19.25412497544049, + -19.254226242374678, + -19.25432743900902, + -19.254428565392317, + -19.254529621573337, + -19.254630607600816, + -19.254731523523454, + -19.25483236938992, + -19.25493314524884, + -19.255033851148823, + -19.255134487138427, + -19.255235053266194, + -19.25533554958061, + -19.255435976130148, + -19.255536332963235, + -19.255636620128268, + -19.255736837673613, + -19.2558369856476, + -19.255937064098532, + -19.25603707307466, + -19.25613701262422, + -19.256236882795406, + -19.256336683636384, + -19.256436415195285, + -19.256536077520195, + -19.256635670659186, + -19.256735194660283, + -19.256834649571484, + -19.25693403544075, + -19.25703335231601, + -19.25713260024516, + -19.257231779276065, + -19.257330889456547, + -19.257429930834412, + -19.257528903457416, + -19.257627807373293, + -19.257726642629738, + -19.25782540927441, + -19.25792410735495, + -19.258022736918946, + -19.258121298013968, + -19.258219790687544, + -19.258318214987174, + -19.258416570960325, + -19.258514858654422, + -19.258613078116877, + -19.258711229395043, + -19.258809312536265, + -19.25890732758784, + -19.25900527459703, + -19.259103153611083, + -19.25920096467719, + -19.25929870784253, + -19.25939638315423, + -19.259493990659397, + -19.259591530405107, + -19.259689002438396, + -19.25978640680627, + -19.259883743555704, + -19.25998101273364, + -19.260078214386983, + -19.260175348562612, + -19.260272415307366, + -19.260369414668062, + -19.260466346691473, + -19.260563211424344, + -19.260660008913394, + -19.2607567392053, + -19.260853402346708, + -19.260949998384238, + -19.261046527364474, + -19.26114298933397, + -19.261239384339234, + -19.261335712426764, + -19.26143197364301, + -19.261528168034395, + -19.261624295647312, + -19.261720356528112, + -19.261816350723127, + -19.261912278278647, + -19.262008139240933, + -19.262103933656217, + -19.262199661570694, + -19.262295323030532, + -19.26239091808186, + -19.26248644677078, + -19.26258190914336, + -19.262677305245642, + -19.26277263512363, + -19.26286789882329, + -19.26296309639057, + -19.26305822787138, + -19.263153293311593, + -19.26324829275706, + -19.263343226253586, + -19.26343809384696, + -19.263532895582934, + -19.26362763150722, + -19.26372230166551, + -19.263816906103454, + -19.26391144486668, + -19.264005918000773, + -19.2641003255513, + -19.264194667563793, + -19.264288944083734, + -19.264383155156604, + -19.264477300827824, + -19.264571381142805, + -19.26466539614691, + -19.264759345885484, + -19.264853230403833, + -19.264947049747235, + -19.26504080396093, + -19.26513449309013, + -19.265228117180023, + -19.265321676275757, + -19.26541517042245, + -19.265508599665196, + -19.265601964049043, + -19.26569526361902, + -19.26578849842012, + -19.265881668497308, + -19.265974773895515, + -19.266067814659635, + -19.266160790834547, + -19.266253702465086, + -19.266346549596054, + -19.26643933227223, + -19.266532050538363, + -19.266624704439163, + -19.266717294019312, + -19.26680981932346, + -19.26690228039623, + -19.26699467728221, + -19.26708701002596, + -19.267179278672014, + -19.267271483264857, + -19.26736362384896, + -19.267455700468762, + -19.26754771316866, + -19.267639661993034, + -19.267731546986223, + -19.26782336819254, + -19.267915125656266, + -19.26800681942165, + -19.268098449532914, + -19.268190016034247, + -19.268281518969804, + -19.268372958383715, + -19.268464334320075, + -19.268555646822954, + -19.268646895936385, + -19.268738081704374, + -19.268829204170896, + -19.268920263379893, + -19.26901125937528, + -19.269102192200936, + -19.269193061900722, + -19.269283868518453, + -19.269374612097927, + -19.2694652926829, + -19.269555910317106, + -19.269646465044243, + -19.269736956907984, + -19.26982738595197, + -19.269917752219808, + -19.270008055755074, + -19.270098296601326, + -19.270188474802076, + -19.270278590400814, + -19.270368643441003, + -19.27045863396606, + -19.2705485620194, + -19.270638427644375, + -19.270728230884334, + -19.27081797178258, + -19.27090765038239, + -19.270997266727015, + -19.271086820859672, + -19.27117631282355, + -19.2712657426618, + -19.271355110417556, + -19.271444416133914, + -19.271533659853944, + -19.27162284162068, + -19.271711961477134, + -19.27180101946628, + -19.271890015631076, + -19.271978950014432, + -19.27206782265924, + -19.272156633608354, + -19.272245382904607, + -19.2723340705908, + -19.272422696709704, + -19.27251126130406, + -19.272599764416572, + -19.272688206089924, + -19.27277658636677, + -19.27286490528973, + -19.272953162901395, + -19.273041359244328, + -19.27312949436106, + -19.2732175682941, + -19.273305581085918, + -19.273393532778957, + -19.273481423415635, + -19.27356925303834, + -19.27365702168942, + -19.27374472941121, + -19.273832376246, + -19.27391996223606, + -19.274007487423635, + -19.274094951850927, + -19.27418235556012, + -19.274269698593365, + -19.274356980992778, + -19.274444202800456, + -19.27453136405846, + -19.274618464808825, + -19.274705505093557, + -19.274792484954627, + -19.274879404433985, + -19.274966263573546, + -19.2750530624152, + -19.275139801000808, + -19.275226479372193, + -19.27531309757116, + -19.275399655639486, + -19.275486153618907, + -19.275572591551136, + -19.275658969477863, + -19.275745287440742, + -19.2758315454814, + -19.275917743641436, + -19.276003881962417, + -19.276089960485884, + -19.276175979253352, + -19.276261938306302, + -19.276347837686185, + -19.27643367743443, + -19.276519457592432, + -19.27660517820156, + -19.27669083930315, + -19.276776440938516, + -19.276861983148933, + -19.276947465975667, + -19.277032889459928, + -19.27711825364292, + -19.27720355856581, + -19.277288804269734, + -19.2773739907958, + -19.277459118185096, + -19.277544186478668, + -19.27762919571754, + -19.27771414594272, + -19.277799037195162, + -19.27788386951581, + -19.277968642945577, + -19.278053357525344, + -19.278138013295962, + -19.278222610298258, + -19.27830714857303, + -19.278391628161046, + -19.27847604910305, + -19.27856041143975, + -19.27864471521183, + -19.278728960459944, + -19.278813147224724, + -19.278897275546772, + -19.27898134546665, + -19.27906535702491, + -19.279149310262063, + -19.279233205218596, + -19.279317041934963, + -19.279400820451603, + -19.279484540808912, + -19.279568203047265, + -19.279651807207014, + -19.27973535332847, + -19.279818841451924, + -19.279902271617644, + -19.279985643865864, + -19.280068958236786, + -19.28015221477059, + -19.280235413507427, + -19.280318554487422, + -19.280401637750668, + -19.28048466333723, + -19.280567631287152, + -19.280650541640444, + -19.28073339443709, + -19.28081618971704, + -19.28089892752023, + -19.28098160788656, + -19.281064230855897, + -19.281146796468093, + -19.28122930476296, + -19.28131175578029, + -19.281394149559848, + -19.281476486141365, + -19.281558765564547, + -19.281640987869082, + -19.28172315309461, + -19.281805261280766, + -19.281887312467138, + -19.281969306693302, + -19.282051243998797, + -19.282133124423137, + -19.28221494800581, + -19.282296714786277, + -19.28237842480397, + -19.282460078098293, + -19.28254167470862, + -19.28262321467431, + -19.282704698034678, + -19.28278612482902, + -19.28286749509661, + -19.282948808876686, + -19.28303006620846, + -19.28311126713112, + -19.283192411683824, + -19.28327349990571, + -19.283354531835876, + -19.283435507513403, + -19.283516426977343, + -19.283597290266716, + -19.28367809742052, + -19.283758848477728, + -19.283839543477278, + -19.283920182458086, + -19.284000765459044, + -19.28408129251901, + -19.28416176367682, + -19.28424217897128, + -19.28432253844117, + -19.284402842125246, + -19.28448309006223, + -19.28456328229083, + -19.28464341884971, + -19.284723499777527, + -19.28480352511289, + -19.284883494894395, + -19.28496340916061, + -19.28504326795007, + -19.28512307130129, + -19.285202819252753, + -19.28528251184292, + -19.28536214911022, + -19.285441731093062, + -19.285521257829824, + -19.285600729358855, + -19.285680145718484, + -19.285759506947006, + -19.285838813082698, + -19.285918064163802, + -19.28599726022854, + -19.286076401315103, + -19.286155487461652, + -19.286234518706333, + -19.28631349508726, + -19.286392416642517, + -19.28647128341016, + -19.286550095428233, + -19.286628852734733, + -19.28670755536765, + -19.286786203364926, + -19.2868647967645, + -19.286943335604274, + -19.287021819922117, + -19.28710024975588, + -19.28717862514339, + -19.287256946122444, + -19.28733521273081, + -19.28741342500623, + -19.287491582986423, + -19.287569686709084, + -19.287647736211877, + -19.287725731532444, + -19.287803672708396, + -19.28788155977732, + -19.287959392776774, + -19.2880371717443, + -19.288114896717406, + -19.288192567733574, + -19.28827018483026, + -19.28834774804489, + -19.288425257414882, + -19.288502712977607, + -19.288580114770415, + -19.28865746283064, + -19.28873475719558, + -19.28881199790251, + -19.288889184988683, + -19.28896631849132, + -19.289043398447618, + -19.28912042489475, + -19.289197397869863, + -19.28927431741008, + -19.289351183552487, + -19.28942799633416, + -19.289504755792144, + -19.28958146196345, + -19.289658114885075, + -19.289734714593983, + -19.289811261127117, + -19.289887754521384, + -19.289964194813685, + -19.290040582040874, + -19.29011691623979, + -19.290193197447252, + -19.29026942570004, + -19.290345601034915, + -19.290421723488617, + -19.290497793097856, + -19.290573809899318, + -19.29064977392966, + -19.29072568522551, + -19.290801543823488, + -19.29087734976017, + -19.290953103072116, + -19.291028803795854, + -19.291104451967893, + -19.29118004762472, + -19.291255590802788, + -19.291331081538523, + -19.291406519868335, + -19.291481905828608, + -19.29155723945569, + -19.291632520785914, + -19.291707749855583, + -19.29178292670098, + -19.291858051358357, + -19.291933123863945, + -19.292008144253945, + -19.292083112564537, + -19.292158028831874, + -19.292232893092088, + -19.292307705381276, + -19.29238246573552, + -19.29245717419088, + -19.292531830783375, + -19.29260643554901, + -19.292680988523767, + -19.292755489743598, + -19.292829939244427, + -19.292904337062165, + -19.292978683232686, + -19.293052977791845, + -19.29312722077547, + -19.293201412219368, + -19.29327555215931, + -19.293349640631057, + -19.29342367767034, + -19.29349766331286, + -19.293571597594294, + -19.293645480550303, + -19.293719312216513, + -19.29379309262853, + -19.29386682182194, + -19.293940499832296, + -19.294014126695124, + -19.29408770244594, + -19.29416122712022, + -19.29423470075342, + -19.29430812338098, + -19.2943814950383, + -19.294454815760773, + -19.29452808558375, + -19.294601304542567, + -19.29467447267254, + -19.29474759000895, + -19.294820656587056, + -19.294893672442097, + -19.294966637609285, + -19.29503955212381, + -19.29511241602083, + -19.29518522933549, + -19.2952579921029, + -19.29533070435815, + -19.29540336613631, + -19.295475977472414, + -19.295548538401487, + -19.295621048958516, + -19.295693509178474, + -19.2957659190963, + -19.29583827874692, + -19.295910588165224, + -19.29598284738609, + -19.296055056444356, + -19.296127215374852, + -19.296199324212377, + -19.2962713829917, + -19.29634339174758, + -19.296415350514735, + -19.296487259327872, + -19.29655911822167, + -19.29663092723078, + -19.296702686389832, + -19.296774395733433, + -19.29684605529617, + -19.296917665112595, + -19.296989225217246, + -19.297060735644628, + -19.297132196429228, + -19.297203607605514, + -19.29727496920792, + -19.29734628127086, + -19.297417543828725, + -19.297488756915882, + -19.297559920566673, + -19.297631034815417, + -19.297702099696412, + -19.297773115243928, + -19.29784408149221, + -19.29791499847548, + -19.297985866227943, + -19.298056684783774, + -19.298127454177123, + -19.298198174442124, + -19.298268845612878, + -19.298339467723466, + -19.298410040807944, + -19.29848056490035, + -19.298551040034692, + -19.298621466244956, + -19.298691843565113, + -19.298762172029093, + -19.298832451670815, + -19.298902682524176, + -19.298972864623043, + -19.29904299800126, + -19.299113082692642, + -19.299183118731, + -19.299253106150104, + -19.299323044983705, + -19.29939293526553, + -19.29946277702929, + -19.29953257030866, + -19.2996023151373, + -19.299672011548846, + -19.299741659576906, + -19.29981125925507, + -19.2998808106169, + -19.299950313695945, + -19.300019768525715, + -19.300089175139707, + -19.300158533571395, + -19.300227843854227, + -19.300297106021628, + -19.300366320106995, + -19.300435486143712, + -19.30050460416513, + -19.30057367420459, + -19.30064269629539, + -19.300711670470825, + -19.300780596764156, + -19.30084947520862, + -19.30091830583743, + -19.300987088683794, + -19.30105582378087, + -19.30112451116181, + -19.30119315085974, + -19.301261742907755, + -19.301330287338942, + -19.301398784186354, + -19.301467233483024, + -19.301535635261963, + -19.301603989556153, + -19.301672296398564, + -19.301740555822136, + -19.301808767859782, + -19.301876932544403, + -19.30194504990887, + -19.30201311998603, + -19.302081142808714, + -19.302149118409726, + -19.302217046821845, + -19.302284928077835, + -19.302352762210425, + -19.302420549252332, + -19.302488289236248, + -19.302555982194836, + -19.30262362816074, + -19.302691227166594, + -19.302758779244986, + -19.302826284428498, + -19.30289374274968, + -19.302961154241075, + -19.303028518935182, + -19.303095836864493, + -19.30316310806147, + -19.30323033255855, + -19.30329751038816, + -19.303364641582696, + -19.303431726174527, + -19.30349876419601, + -19.303565755679475, + -19.30363270065722, + -19.30369959916154, + -19.30376645122469, + -19.303833256878914, + -19.30390001615643, + -19.303966729089428, + -19.304033395710082, + -19.304100016050544, + -19.304166590142938, + -19.304233118019376, + -19.304299599711936, + -19.30436603525268, + -19.30443242467365, + -19.30449876800686, + -19.304565065284304, + -19.304631316537954, + -19.304697521799756, + -19.304763681101647, + -19.304829794475527, + -19.304895861953277, + -19.304961883566765, + -19.305027859347824, + -19.30509378932827, + -19.305159673539904, + -19.3052255120145, + -19.3052913047838, + -19.305357051879536, + -19.30542275333342, + -19.30548840917713, + -19.305554019442337, + -19.305619584160674, + -19.30568510336376, + -19.305750577083195, + -19.305816005350554, + -19.30588138819739, + -19.305946725655232, + -19.306012017755588, + -19.30607726452995, + -19.30614246600978, + -19.306207622226527, + -19.306272733211607, + -19.30633779899642, + -19.306402819612345, + -19.30646779509074, + -19.306532725462937, + -19.306597610760253, + -19.306662451013974, + -19.306727246255374, + -19.3067919965157, + -19.306856701826174, + -19.306921362218006, + -19.306985977722377, + -19.30705054837044, + -19.307115074193348, + -19.30717955522221, + -19.30724399148812, + -19.307308383022164, + -19.30737272985538, + -19.307437032018814, + -19.307501289543467, + -19.307565502460328, + -19.307629670800367, + -19.30769379459453, + -19.307757873873737, + -19.307821908668892, + -19.307885899010873, + -19.307949844930548, + -19.308013746458748, + -19.30807760362629, + -19.30814141646397, + -19.308205185002567, + -19.308268909272826, + -19.308332589305483, + -19.308396225131247, + -19.308459816780804, + -19.308523364284824, + -19.308586867673952, + -19.308650326978814, + -19.30871374223001, + -19.30877711345813, + -19.30884044069373, + -19.308903723967344, + -19.308966963309498, + -19.309030158750687, + -19.30909331032139, + -19.30915641805206, + -19.309219481973123, + -19.309282502115007, + -19.309345478508092, + -19.309408411182755, + -19.30947130016934, + -19.30953414549818, + -19.30959694719958, + -19.309659705303826, + -19.309722419841187, + -19.309785090841903, + -19.309847718336197, + -19.30991030235428, + -19.309972842926317, + -19.310035340082486, + -19.310097793852915, + -19.310160204267724, + -19.310222571357016, + -19.31028489515086, + -19.310347175679322, + -19.310409412972426, + -19.310471607060194, + -19.310533757972618, + -19.310595865739664, + -19.31065793039129, + -19.310719951957427, + -19.310781930467982, + -19.310843865952847, + -19.31090575844189, + -19.310967607964958, + -19.31102941455188, + -19.311091178232456, + -19.311152899036475, + -19.31121457699371, + -19.311276212133897, + -19.31133780448676, + -19.311399354082006, + -19.311460860949317, + -19.31152232511835, + -19.31158374661875, + -19.31164512548014, + -19.311706461732115, + -19.311767755404258, + -19.311829006526125, + -19.31189021512726, + -19.311951381237172, + -19.31201250488537, + -19.312073586101324, + -19.31213462491449, + -19.312195621354306, + -19.312256575450185, + -19.312317487231528, + -19.31237835672771, + -19.312439183968078, + -19.31249996898197, + -19.312560711798703, + -19.31262141244757, + -19.312682070957838, + -19.312742687358764, + -19.31280326167958, + -19.312863793949496, + -19.312924284197706, + -19.312984732453383, + -19.31304513874568, + -19.313105503103724, + -19.313165825556627, + -19.313226106133477, + -19.31328634486335, + -19.313346541775292, + -19.313406696898337, + -19.31346681026149, + -19.313526881893743, + -19.31358691182407, + -19.313646900081412, + -19.313706846694707, + -19.31376675169286, + -19.31382661510476, + -19.313886436959276, + -19.31394621728526, + -19.31400595611154, + -19.314065653466926, + -19.31412530938021, + -19.314184923880152, + -19.31424449699551, + -19.31430402875501, + -19.314363519187363, + -19.314422968321253, + -19.314482376185357, + -19.314541742808323, + -19.314601068218774, + -19.31466035244533, + -19.31471959551657, + -19.314778797461077, + -19.31483795830739, + -19.314897078084044, + -19.31495615681955, + -19.3150151945424, + -19.315074191281063, + -19.315133147063992, + -19.315192061919618, + -19.31525093587635, + -19.31530976896258, + -19.31536856120669, + -19.315427312637024, + -19.315486023281913, + -19.315544693169677, + -19.315603322328606, + -19.315661910786975, + -19.31572045857304, + -19.315778965715033, + -19.31583743224117, + -19.31589585817965, + -19.315954243558643, + -19.316012588406313, + -19.31607089275079, + -19.316129156620192, + -19.316187380042624, + -19.316245563046156, + -19.316303705658854, + -19.316361807908752, + -19.31641986982387, + -19.316477891432214, + -19.31653587276176, + -19.316593813840473, + -19.316651714696295, + -19.316709575357148, + -19.31676739585093, + -19.316825176205533, + -19.31688291644882, + -19.316940616608633, + -19.316998276712805, + -19.31705589678913, + -19.317113476865412, + -19.317171016969407, + -19.317228517128868, + -19.317285977371522, + -19.317343397725086, + -19.317400778217245, + -19.31745811887567, + -19.317515419728018, + -19.317572680801923, + -19.317629902124995, + -19.317687083724834, + -19.31774422562901, + -19.317801327865087, + -19.3178583904606, + -19.317915413443064, + -19.31797239683998, + -19.318029340678834, + -19.31808624498708, + -19.31814310979216, + -19.318199935121505, + -19.318256721002513, + -19.31831346746257, + -19.318370174529043, + -19.318426842229282, + -19.31848347059061, + -19.318540059640338, + -19.31859660940576, + -19.31865311991414, + -19.318709591192736, + -19.31876602326878, + -19.318822416169485, + -19.31887876992205, + -19.31893508455365, + -19.31899136009144, + -19.319047596562566, + -19.31910379399414, + -19.31915995241327, + -19.319216071847034, + -19.3192721523225, + -19.31932819386671, + -19.31938419650669, + -19.31944016026945, + -19.319496085181978, + -19.31955197127124, + -19.31960781856419, + -19.319663627087763, + -19.319719396868873, + -19.31977512793441, + -19.319830820311253, + -19.31988647402626, + -19.31994208910627, + -19.319997665578104, + -19.320053203468564, + -19.320108702804433, + -19.320164163612475, + -19.320219585919435, + -19.32027496975205, + -19.320330315137014, + -19.32038562210103, + -19.32044089067076, + -19.320496120872868, + -19.32055131273398, + -19.32060646628072, + -19.320661581539678, + -19.32071665853744, + -19.32077169730056, + -19.320826697855587, + -19.320881660229045, + -19.320936584447434, + -19.320991470537248, + -19.321046318524953, + -19.321101128437, + -19.32115590029982, + -19.321210634139828, + -19.321265329983422, + -19.321319987856977, + -19.321374607786847, + -19.32142918979938, + -19.321483733920896, + -19.321538240177702, + -19.32159270859608, + -19.321647139202295, + -19.321701532022598, + -19.321755887083224, + -19.321810204410387, + -19.321864484030275, + -19.321918725969066, + -19.321972930252926, + -19.322027096907984, + -19.322081225960368, + -19.32213531743618, + -19.32218937136151, + -19.32224338776242, + -19.322297366664966, + -19.322351308095172, + -19.322405212079058, + -19.322459078642613, + -19.32251290781182, + -19.322566699612636, + -19.322620454071004, + -19.322674171212842, + -19.32272785106406, + -19.322781493650545, + -19.322835098998166, + -19.322888667132776, + -19.322942198080202, + -19.322995691866264, + -19.32304914851676, + -19.32310256805747, + -19.323155950514156, + -19.32320929591256, + -19.323262604278405, + -19.323315875637405, + -19.323369110015246, + -19.323422307437607, + -19.323475467930134, + -19.323528591518468, + -19.323581678228226, + -19.323634728085015, + -19.323687741114412, + -19.323740717341988, + -19.323793656793285, + -19.323846559493838, + -19.323899425469158, + -19.323952254744736, + -19.324005047346056, + -19.324057803298572, + -19.32411052262773, + -19.32416320535895, + -19.324215851517643, + -19.324268461129193, + -19.324321034218972, + -19.324373570812337, + -19.32442607093462, + -19.324478534611142, + -19.324530961867204, + -19.324583352728087, + -19.324635707219056, + -19.32468802536536, + -19.324740307192233, + -19.324792552724883, + -19.32484476198851, + -19.32489693500829, + -19.32494907180938, + -19.325001172416933, + -19.325053236856064, + -19.325105265151887, + -19.32515725732949, + -19.32520921341395, + -19.325261133430317, + -19.325313017403637, + -19.325364865358928, + -19.325416677321194, + -19.325468453315423, + -19.32552019336658, + -19.325571897499614, + -19.32562356573947, + -19.325675198111057, + -19.32572679463928, + -19.325778355349016, + -19.325829880265136, + -19.325881369412482, + -19.32593282281589, + -19.325984240500173, + -19.326035622490124, + -19.326086968810525, + -19.326138279486138, + -19.326189554541706, + -19.32624079400196, + -19.32629199789161, + -19.32634316623534, + -19.326394299057835, + -19.326445396383754, + -19.326496458237735, + -19.326547484644404, + -19.326598475628373, + -19.326649431214225, + -19.326700351426542, + -19.326751236289873, + -19.32680208582876, + -19.326852900067724, + -19.326903679031275, + -19.3269544227439, + -19.327005131230063, + -19.32705580451423, + -19.327106442620828, + -19.327157045574282, + -19.327207613398997, + -19.327258146119355, + -19.32730864375973, + -19.32735910634447, + -19.327409533897917, + -19.327459926444384, + -19.327510284008174, + -19.327560606613577, + -19.327610894284852, + -19.32766114704626, + -19.32771136492203, + -19.327761547936383, + -19.327811696113518, + -19.32786180947762, + -19.327911888052853, + -19.32796193186337, + -19.328011940933308, + -19.328061915286778, + -19.32811185494788, + -19.32816175994071, + -19.32821163028932, + -19.328261466017764, + -19.32831126715008, + -19.32836103371028, + -19.328410765722367, + -19.328460463210323, + -19.328510126198115, + -19.328559754709694, + -19.328609348768993, + -19.32865890839993, + -19.3287084336264, + -19.328757924472296, + -19.328807380961475, + -19.328856803117795, + -19.32890619096509, + -19.32895554452717, + -19.329004863827844, + -19.32905414889089, + -19.32910339974008, + -19.329152616399167, + -19.32920179889188, + -19.329250947241942, + -19.329300061473052, + -19.329349141608898, + -19.329398187673146, + -19.329447199689454, + -19.329496177681452, + -19.329545121672766, + -19.329594031686995, + -19.329642907747726, + -19.32969174987853, + -19.329740558102966, + -19.329789332444562, + -19.32983807292685, + -19.329886779573332, + -19.329935452407494, + -19.329984091452808, + -19.330032696732736, + -19.330081268270714, + -19.330129806090163, + -19.330178310214496, + -19.330226780667104, + -19.33027521747136, + -19.330323620650624, + -19.330371990228237, + -19.330420326227525, + -19.3304686286718, + -19.330516897584353, + -19.330565132988465, + -19.330613334907397, + -19.330661503364393, + -19.33070963838269, + -19.330757739985486, + -19.330805808195993, + -19.330853843037385, + -19.33090184453283, + -19.33094981270547, + -19.330997747578447, + -19.33104564917487, + -19.331093517517846, + -19.331141352630457, + -19.331189154535767, + -19.331236923256835, + -19.3312846588167, + -19.331332361238374, + -19.331380030544864, + -19.331427666759165, + -19.331475269904242, + -19.331522840003057, + -19.33157037707855, + -19.331617881153644, + -19.33166535225125, + -19.331712790394256, + -19.331760195605547, + -19.33180756790798, + -19.3318549073244, + -19.331902213877637, + -19.331949487590506, + -19.3319967284858, + -19.33204393658631, + -19.332091111914796, + -19.33213825449401, + -19.332185364346685, + -19.33223244149554, + -19.332279485963284, + -19.332326497772595, + -19.332373476946152, + -19.33242042350661, + -19.332467337476604, + -19.332514218878764, + -19.332561067735693, + -19.33260788406999, + -19.332654667904233, + -19.332701419260975, + -19.33274813816277, + -19.332794824632145, + -19.332841478691616, + -19.332888100363682, + -19.332934689670825, + -19.332981246635516, + -19.333027771280204, + -19.333074263627324, + -19.333120723699302, + -19.33316715151854, + -19.333213547107434, + -19.333259910488348, + -19.333306241683648, + -19.33335254071568, + -19.333398807606763, + -19.333445042379218, + -19.333491245055335, + -19.333537415657396, + -19.333583554207674, + -19.333629660728413, + -19.333675735241847, + -19.333721777770204, + -19.333767788335678, + -19.333813766960464, + -19.333859713666733, + -19.333905628476643, + -19.33395151141234, + -19.333997362495946, + -19.334043181749575, + -19.334088969195324, + -19.334134724855275, + -19.33418044875149, + -19.334226140906022, + -19.334271801340908, + -19.334317430078166, + -19.334363027139798, + -19.334408592547796, + -19.334454126324136, + -19.334499628490775, + -19.334545099069658, + -19.33459053808271, + -19.334635945551845, + -19.334681321498962, + -19.334726665945947, + -19.33477197891466, + -19.33481726042696, + -19.334862510504678, + -19.33490772916964, + -19.33495291644365, + -19.334998072348505, + -19.335043196905982, + -19.335088290137836, + -19.335133352065814, + -19.33517838271165, + -19.335223382097062, + -19.335268350243748, + -19.335313287173395, + -19.335358192907673, + -19.33540306746824, + -19.335447910876734, + -19.335492723154783, + -19.335537504323998, + -19.335582254405974, + -19.33562697342229, + -19.335671661394517, + -19.335716318344204, + -19.335760944292883, + -19.335805539262076, + -19.335850103273295, + -19.335894636348023, + -19.335939138507744, + -19.335983609773912, + -19.336028050167982, + -19.336072459711378, + -19.336116838425518, + -19.336161186331807, + -19.336205503451627, + -19.336249789806356, + -19.336294045417347, + -19.336338270305944, + -19.33638246449347, + -19.33642662800125, + -19.336470760850567, + -19.336514863062714, + -19.336558934658957, + -19.336602975660547, + -19.336646986088727, + -19.336690965964717, + -19.33673491530973, + -19.336778834144962, + -19.336822722491586, + -19.336866580370774, + -19.336910407803675, + -19.336954204811423, + -19.33699797141514, + -19.337041707635933, + -19.337085413494894, + -19.337129089013104, + -19.33717273421162, + -19.337216349111493, + -19.33725993373375, + -19.33730348809942, + -19.3373470122295, + -19.337390506144985, + -19.337433969866844, + -19.33747740341604, + -19.337520806813522, + -19.337564180080218, + -19.337607523237047, + -19.33765083630491, + -19.337694119304693, + -19.337737372257276, + -19.33778059518351, + -19.337823788104245, + -19.337866951040308, + -19.337910084012513, + -19.337953187041666, + -19.33799626014855, + -19.338039303353938, + -19.338082316678587, + -19.33812530014324, + -19.33816825376863, + -19.338211177575463, + -19.338254071584448, + -19.338296935816267, + -19.33833977029159, + -19.33838257503108, + -19.33842535005537, + -19.338468095385096, + -19.338510811040873, + -19.338553497043293, + -19.33859615341295, + -19.33863878017041, + -19.33868137733623, + -19.33872394493095, + -19.33876648297511, + -19.338808991489213, + -19.33885147049376, + -19.338893920009244, + -19.33893634005613, + -19.338978730654873, + -19.33902109182592, + -19.3390634235897, + -19.339105725966625, + -19.3391479989771, + -19.339190242641507, + -19.33923245698022, + -19.339274642013596, + -19.33931679776198, + -19.3393589242457, + -19.339401021485074, + -19.339443089500403, + -19.339485128311974, + -19.33952713794006, + -19.339569118404917, + -19.339611069726796, + -19.339652991925927, + -19.339694885022524, + -19.339736749036792, + -19.339778583988924, + -19.339820389899085, + -19.339862166787448, + -19.33990391467415, + -19.33994563357933, + -19.339987323523108, + -19.34002898452558, + -19.340070616606848, + -19.340112219786985, + -19.340153794086053, + -19.3401953395241, + -19.340236856121166, + -19.34027834389727, + -19.340319802872422, + -19.34036123306661, + -19.340402634499817, + -19.340444007192012, + -19.340485351163142, + -19.34052666643315, + -19.340567953021957, + -19.340609210949477, + -19.340650440235603, + -19.340691640900218, + -19.340732812963196, + -19.340773956444387, + -19.340815071363636, + -19.340856157740767, + -19.340897215595596, + -19.340938244947925, + -19.34097924581754, + -19.341020218224216, + -19.341061162187703, + -19.341102077727754, + -19.3411429648641, + -19.341183823616458, + -19.34122465400453, + -19.34126545604801, + -19.341306229766577, + -19.34134697517989, + -19.341387692307595, + -19.341428381169337, + -19.341469041784734, + -19.341509674173395, + -19.341550278354912, + -19.34159085434887, + -19.341631402174833, + -19.341671921852363, + -19.341712413400998, + -19.34175287684026, + -19.341793312189665, + -19.341833719468717, + -19.3418740986969, + -19.341914449893682, + -19.34195477307853, + -19.341995068270887, + -19.342035335490184, + -19.342075574755842, + -19.342115786087266, + -19.34215596950385, + -19.34219612502497, + -19.34223625266999, + -19.342276352458263, + -19.34231642440913, + -19.342356468541915, + -19.342396484875923, + -19.34243647343046, + -19.342476434224807, + -19.342516367278236, + -19.342556272610004, + -19.342596150239356, + -19.342636000185525, + -19.342675822467726, + -19.342715617105164, + -19.34275538411703, + -19.342795123522503, + -19.342834835340746, + -19.34287451959091, + -19.342914176292137, + -19.342953805463544, + -19.34299340712425, + -19.343032981293348, + -19.34307252798992, + -19.34311204723305, + -19.343151539041784, + -19.34319100343517, + -19.343230440432244, + -19.343269850052017, + -19.3433092323135, + -19.34334858723569, + -19.343387914837553, + -19.343427215138068, + -19.343466488156178, + -19.343505733910828, + -19.34354495242094, + -19.343584143705435, + -19.343623307783204, + -19.34366244467314, + -19.343701554394112, + -19.343740636964988, + -19.34377969240461, + -19.34381872073181, + -19.34385772196542, + -19.34389669612424, + -19.343935643227066, + -19.343974563292683, + -19.34401345633986, + -19.34405232238735, + -19.3440911614539, + -19.34412997355824, + -19.344168758719082, + -19.34420751695514, + -19.344246248285096, + -19.344284952727634, + -19.344323630301417, + -19.3443622810251, + -19.344400904917315, + -19.344439501996696, + -19.344478072281856, + -19.34451661579139, + -19.344555132543892, + -19.344593622557937, + -19.34463208585208, + -19.34467052244488, + -19.344708932354862, + -19.344747315600557, + -19.344785672200473, + -19.34482400217311, + -19.34486230553695, + -19.344900582310462, + -19.34493883251211, + -19.344977056160342, + -19.345015253273587, + -19.345053423870265, + -19.34509156796879, + -19.345129685587548, + -19.345167776744933, + -19.345205841459304, + -19.345243879749024, + -19.345281891632432, + -19.345319877127864, + -19.345357836253637, + -19.345395769028055, + -19.345433675469415, + -19.345471555595996, + -19.345509409426064, + -19.34554723697788, + -19.345585038269675, + -19.34562281331969, + -19.345660562146136, + -19.34569828476722, + -19.34573598120113, + -19.345773651466054, + -19.34581129558015, + -19.345848913561575, + -19.345886505428467, + -19.345924071198965, + -19.345961610891173, + -19.345999124523203, + -19.346036612113142, + -19.34607407367907, + -19.34611150923905, + -19.346148918811142, + -19.34618630241338, + -19.346223660063796, + -19.346260991780404, + -19.34629829758121, + -19.346335577484204, + -19.346372831507363, + -19.346410059668653, + -19.34644726198603, + -19.34648443847743, + -19.346521589160783, + -19.34655871405401, + -19.346595813175007, + -19.346632886541673, + -19.34666993417188, + -19.346706956083498, + -19.34674395229438, + -19.34678092282237, + -19.34681786768529, + -19.346854786900963, + -19.346891680487197, + -19.346928548461772, + -19.346965390842477, + -19.347002207647076, + -19.34703899889333, + -19.34707576459897, + -19.347112504781734, + -19.347149219459343, + -19.3471859086495, + -19.347222572369894, + -19.34725921063821, + -19.34729582347212, + -19.347332410889273, + -19.34736897290732, + -19.347405509543886, + -19.3474420208166, + -19.347478506743066, + -19.347514967340874, + -19.34755140262762, + -19.34758781262086, + -19.347624197338163, + -19.347660556797074, + -19.347696891015122, + -19.347733200009834, + -19.347769483798718, + -19.347805742399277, + -19.34784197582899, + -19.347878184105337, + -19.347914367245775, + -19.347950525267752, + -19.347986658188713, + -19.348022766026077, + -19.348058848797255, + -19.348094906519652, + -19.34813093921066, + -19.348166946887652, + -19.348202929567993, + -19.348238887269034, + -19.34827482000812, + -19.348310727802573, + -19.34834661066972, + -19.348382468626856, + -19.348418301691275, + -19.348454109880265, + -19.348489893211084, + -19.348525651701, + -19.348561385367248, + -19.348597094227063, + -19.34863277829767, + -19.348668437596274, + -19.34870407214007, + -19.34873968194625, + -19.34877526703198, + -19.34881082741442, + -19.348846363110727, + -19.348881874138034, + -19.348917360513465, + -19.34895282225413, + -19.34898825937714, + -19.34902367189958, + -19.349059059838527, + -19.34909442321105, + -19.349129762034195, + -19.34916507632501, + -19.34920036610053, + -19.349235631377763, + -19.349270872173726, + -19.349306088505408, + -19.349341280389794, + -19.349376447843856, + -19.34941159088455, + -19.34944670952883, + -19.349481803793626, + -19.34951687369587, + -19.349551919252466, + -19.349586940480318, + -19.349621937396314, + -19.349656910017337, + -19.349691858360245, + -19.3497267824419, + -19.349761682279134, + -19.349796557888787, + -19.34983140928767, + -19.3498662364926, + -19.34990103952036, + -19.349935818387745, + -19.349970573111523, + -19.350005303708453, + -19.350040010195286, + -19.35007469258876, + -19.350109350905598, + -19.350143985162514, + -19.350178595376214, + -19.350213181563387, + -19.350247743740713, + -19.350282281924855, + -19.35031679613248, + -19.350351286380217, + -19.350385752684712, + -19.350420195062583, + -19.35045461353044, + -19.35048900810488, + -19.35052337880249, + -19.350557725639845, + -19.35059204863351, + -19.350626347800034, + -19.350660623155967, + -19.350694874717828, + -19.35072910250214, + -19.35076330652541, + -19.35079748680413, + -19.350831643354784, + -19.350865776193846, + -19.35089988533778, + -19.350933970803023, + -19.350968032606026, + -19.35100207076321, + -19.351036085290993, + -19.351070076205772, + -19.351104043523947, + -19.351137987261893, + -19.351171907435983, + -19.351205804062573, + -19.35123967715801, + -19.351273526738627, + -19.351307352820754, + -19.3513411554207, + -19.35137493455477, + -19.351408690239246, + -19.351442422490415, + -19.351476131324542, + -19.351509816757883, + -19.35154347880668, + -19.351577117487167, + -19.351610732815573, + -19.351644324808102, + -19.35167789348096, + -19.35171143885033, + -19.351744960932393, + -19.351778459743315, + -19.351811935299246, + -19.351845387616333, + -19.35187881671071, + -19.351912222598497, + -19.351945605295803, + -19.351978964818727, + -19.35201230118336, + -19.352045614405775, + -19.35207890450204, + -19.352112171488205, + -19.352145415380317, + -19.35217863619441, + -19.352211833946498, + -19.352245008652595, + -19.3522781603287, + -19.3523112889908, + -19.35234439465487, + -19.352377477336876, + -19.352410537052773, + -19.352443573818505, + -19.352476587650003, + -19.352509578563186, + -19.352542546573964, + -19.35257549169824, + -19.3526084139519, + -19.35264131335082, + -19.352674189910868, + -19.352707043647893, + -19.352739874577747, + -19.352772682716257, + -19.352805468079247, + -19.352838230682526, + -19.352870970541897, + -19.352903687673145, + -19.352936382092054, + -19.352969053814384, + -19.353001702855895, + -19.35303432923233, + -19.353066932959422, + -19.353099514052904, + -19.353132072528474, + -19.353164608401844, + -19.3531971216887, + -19.353229612404725, + -19.35326208056558, + -19.353294526186932, + -19.353326949284426, + -19.353359349873696, + -19.353391727970365, + -19.35342408359005, + -19.353456416748354, + -19.353488727460874, + -19.353521015743183, + -19.35355328161086, + -19.353585525079467, + -19.353617746164545, + -19.35364994488164, + -19.353682121246273, + -19.353714275273965, + -19.353746406980225, + -19.353778516380547, + -19.353810603490412, + -19.3538426683253, + -19.353874710900673, + -19.353906731231977, + -19.35393872933466, + -19.353970705224153, + -19.354002658915878, + -19.35403459042524, + -19.35406649976764, + -19.354098386958466, + -19.3541302520131, + -19.354162094946904, + -19.354193915775234, + -19.35422571451344, + -19.354257491176856, + -19.3542892457808, + -19.354320978340596, + -19.354352688871543, + -19.35438437738893, + -19.354416043908042, + -19.354447688444147, + -19.354479311012508, + -19.354510911628378, + -19.354542490306994, + -19.354574047063583, + -19.354605581913365, + -19.35463709487155, + -19.354668585953327, + -19.354700055173893, + -19.35473150254842, + -19.354762928092075, + -19.35479433182001, + -19.35482571374737, + -19.354857073889292, + -19.354888412260898, + -19.3549197288773, + -19.354951023753603, + -19.354982296904897, + -19.35501354834626, + -19.355044778092772, + -19.355075986159484, + -19.355107172561453, + -19.35513833731372, + -19.355169480431304, + -19.355200601929234, + -19.355231701822515, + -19.355262780126143, + -19.35529383685511, + -19.355324872024394, + -19.355355885648954, + -19.35538687774375, + -19.355417848323736, + -19.355448797403835, + -19.35547972499898, + -19.355510631124083, + -19.35554151579405, + -19.35557237902378, + -19.355603220828147, + -19.355634041222032, + -19.355664840220292, + -19.355695617837785, + -19.355726374089354, + -19.355757108989827, + -19.355787822554028, + -19.35581851479677, + -19.355849185732858, + -19.35587983537707, + -19.355910463744202, + -19.355941070849017, + -19.355971656706277, + -19.356002221330726, + -19.356032764737115, + -19.35606328694017, + -19.356093787954606, + -19.356124267795135, + -19.356154726476454, + -19.356185164013255, + -19.35621558042022, + -19.356245975712007, + -19.356276349903283, + -19.356306703008688, + -19.35633703504287, + -19.35636734602045, + -19.356397635956046, + -19.35642790486427, + -19.35645815275971, + -19.356488379656962, + -19.356518585570598, + -19.35654877051519, + -19.35657893450529, + -19.356609077555444, + -19.356639199680195, + -19.356669300894065, + -19.35669938121157, + -19.356729440647214, + -19.3567594792155, + -19.35678949693091, + -19.35681949380792, + -19.356849469860997, + -19.356879425104598, + -19.356909359553168, + -19.35693927322114, + -19.356969166122944, + -19.356999038272992, + -19.357028889685697, + -19.35705872037545, + -19.357088530356638, + -19.357118319643636, + -19.35714808825081, + -19.357177836192516, + -19.3572075634831, + -19.3572372701369, + -19.35726695616824, + -19.357296621591438, + -19.3573262664208, + -19.357355890670615, + -19.35738549435518, + -19.35741507748877, + -19.357444640085646, + -19.357474182160068, + -19.35750370372628, + -19.357533204798525, + -19.357562685391024, + -19.357592145517998, + -19.35762158519365, + -19.35765100443218, + -19.35768040324778, + -19.35770978165462, + -19.35773913966687, + -19.35776847729869, + -19.357797794564227, + -19.357827091477617, + -19.357856368052996, + -19.357885624304473, + -19.357914860246165, + -19.357944075892163, + -19.357973271256565, + -19.358002446353442, + -19.358031601196874, + -19.358060735800912, + -19.35808985017961, + -19.358118944347005, + -19.358148018317134, + -19.358177072104017, + -19.35820610572166, + -19.35823511918407, + -19.358264112505235, + -19.358293085699138, + -19.358322038779754, + -19.35835097176104, + -19.358379884656955, + -19.35840877748144, + -19.35843765024843, + -19.358466502971847, + -19.358495335665605, + -19.358524148343612, + -19.35855294101976, + -19.358581713707935, + -19.35861046642201, + -19.358639199175855, + -19.35866791198333, + -19.35869660485827, + -19.358725277814525, + -19.358753930865916, + -19.35878256402626, + -19.35881117730937, + -19.35883977072904, + -19.35886834429906, + -19.358896898033215, + -19.358925431945273, + -19.358953946048988, + -19.35898244035812, + -19.359010914886404, + -19.359039369647576, + -19.359067804655357, + -19.359096219923458, + -19.359124615465586, + -19.35915299129543, + -19.35918134742668, + -19.359209683873008, + -19.359238000648077, + -19.359266297765547, + -19.359294575239062, + -19.35932283308226, + -19.359351071308765, + -19.359379289932203, + -19.359407488966173, + -19.35943566842428, + -19.359463828320113, + -19.35949196866725, + -19.359520089479265, + -19.359548190769715, + -19.359576272552157, + -19.35960433484013, + -19.359632377647166, + -19.359660400986794, + -19.35968840487252, + -19.35971638931786, + -19.3597443543363, + -19.359772299941334, + -19.35980022614643, + -19.35982813296506, + -19.359856020410685, + -19.35988388849675, + -19.359911737236697, + -19.359939566643952, + -19.35996737673194, + -19.35999516751407, + -19.36002293900375, + -19.36005069121436, + -19.360078424159298, + -19.36010613785193, + -19.360133832305625, + -19.360161507533736, + -19.36018916354961, + -19.360216800366583, + -19.360244417997986, + -19.360272016457138, + -19.360299595757343, + -19.360327155911904, + -19.360354696934117, + -19.360382218837255, + -19.3604097216346, + -19.360437205339405, + -19.360464669964934, + -19.360492115524423, + -19.360519542031113, + -19.360546949498232, + -19.360574337938996, + -19.36060170736661, + -19.360629057794274, + -19.360656389235178, + -19.360683701702502, + -19.36071099520942, + -19.360738269769097, + -19.36076552539468, + -19.360792762099315, + -19.36081997989614, + -19.360847178798277, + -19.360874358818847, + -19.36090151997095, + -19.360928662267696, + -19.360955785722165, + -19.36098289034744, + -19.361009976156595, + -19.361037043162685, + -19.361064091378772, + -19.361091120817896, + -19.36111813149309, + -19.361145123417383, + -19.361172096603795, + -19.361199051065324, + -19.36122598681498, + -19.361252903865743, + -19.361279802230598, + -19.36130668192252, + -19.36133354295447, + -19.3613603853394, + -19.361387209090257, + -19.361414014219974, + -19.36144080074148, + -19.361467568667695, + -19.361494318011523, + -19.361521048785864, + -19.361547761003617, + -19.361574454677655, + -19.361601129820855, + -19.36162778644608, + -19.361654424566186, + -19.361681044194018, + -19.361707645342417, + -19.361734228024204, + -19.36176079225221, + -19.361787338039235, + -19.361813865398087, + -19.361840374341558, + -19.36186686488243, + -19.36189333703348, + -19.36191979080747, + -19.361946226217164, + -19.361972643275305, + -19.361999041994636, + -19.36202542238789, + -19.36205178446778, + -19.36207812824703, + -19.36210445373834, + -19.362130760954404, + -19.362157049907907, + -19.362183320611532, + -19.362209573077944, + -19.36223580731981, + -19.362262023349775, + -19.36228822118048, + -19.362314400824566, + -19.36234056229465, + -19.36236670560336, + -19.362392830763294, + -19.36241893778705, + -19.36244502668723, + -19.3624710974764, + -19.362497150167144, + -19.362523184772023, + -19.36254920130359, + -19.362575199774394, + -19.362601180196968, + -19.36262714258385, + -19.362653086947553, + -19.362679013300593, + -19.362704921655467, + -19.36273081202468, + -19.362756684420706, + -19.36278253885603, + -19.362808375343118, + -19.362834193894432, + -19.362859994522417, + -19.36288577723952, + -19.36291154205817, + -19.3629372889908, + -19.362963018049822, + -19.362988729247643, + -19.363014422596667, + -19.363040098109277, + -19.363065755797862, + -19.363091395674793, + -19.363117017752433, + -19.363142622043142, + -19.363168208559266, + -19.363193777313146, + -19.363219328317108, + -19.36324486158348, + -19.363270377124568, + -19.363295874952684, + -19.363321355080117, + -19.363346817519165, + -19.363372262282102, + -19.363397689381195, + -19.363423098828715, + -19.363448490636905, + -19.36347386481802, + -19.36349922138429, + -19.36352456034795, + -19.363549881721216, + -19.3635751855163, + -19.3636004717454, + -19.363625740420716, + -19.36365099155443, + -19.363676225158724, + -19.363701441245766, + -19.363726639827714, + -19.363751820916722, + -19.363776984524932, + -19.36380213066448, + -19.363827259347495, + -19.36385237058609, + -19.363877464392385, + -19.36390254077847, + -19.36392759975644, + -19.363952641338386, + -19.363977665536385, + -19.364002672362496, + -19.36402766182879, + -19.364052633947306, + -19.364077588730098, + -19.364102526189193, + -19.364127446336617, + -19.364152349184394, + -19.36417723474453, + -19.364202103029026, + -19.364226954049876, + -19.36425178781906, + -19.36427660434856, + -19.364301403650344, + -19.364326185736367, + -19.364350950618583, + -19.36437569830893, + -19.36440042881935, + -19.364425142161767, + -19.364449838348097, + -19.36447451739025, + -19.364499179300132, + -19.36452382408963, + -19.364548451770634, + -19.364573062355017, + -19.364597655854652, + -19.364622232281395, + -19.3646467916471, + -19.36467133396361, + -19.364695859242758, + -19.36472036749638, + -19.364744858736287, + -19.36476933297429, + -19.364793790222198, + -19.364818230491803, + -19.364842653794888, + -19.364867060143233, + -19.36489144954861, + -19.36491582202278, + -19.3649401775775, + -19.364964516224507, + -19.36498883797554, + -19.365013142842336, + -19.36503743083661, + -19.365061701970077, + -19.36508595625444, + -19.365110193701398, + -19.36513441432264, + -19.365158618129843, + -19.365182805134683, + -19.365206975348823, + -19.365231128783915, + -19.365255265451612, + -19.365279385363554, + -19.36530348853137, + -19.365327574966688, + -19.365351644681123, + -19.36537569768628, + -19.365399733993755, + -19.365423753615147, + -19.365447756562038, + -19.365471742846, + -19.365495712478605, + -19.36551966547141, + -19.365543601835967, + -19.365567521583817, + -19.3655914247265, + -19.36561531127554, + -19.365639181242457, + -19.36566303463876, + -19.36568687147596, + -19.365710691765543, + -19.365734495519, + -19.365758282747816, + -19.36578205346345, + -19.36580580767738, + -19.365829545401052, + -19.365853266645914, + -19.36587697142341, + -19.36590065974497, + -19.365924331622015, + -19.36594798706596, + -19.36597162608822, + -19.365995248700195, + -19.366018854913268, + -19.36604244473883, + -19.366066018188256, + -19.366089575272913, + -19.36611311600416, + -19.366136640393353, + -19.366160148451836, + -19.366183640190947, + -19.366207115622014, + -19.366230574756354, + -19.36625401760529, + -19.366277444180113, + -19.366300854492135, + -19.366324248552637, + -19.366347626372903, + -19.36637098796421, + -19.36639433333782, + -19.36641766250499, + -19.366440975476976, + -19.366464272265016, + -19.36648755288035, + -19.366510817334202, + -19.366534065637794, + -19.36655729780233, + -19.366580513839022, + -19.366603713759062, + -19.366626897573642, + -19.36665006529394, + -19.366673216931126, + -19.366696352496366, + -19.36671947200082, + -19.36674257545564, + -19.36676566287196, + -19.366788734260915, + -19.366811789633633, + -19.366834829001238, + -19.366857852374835, + -19.36688085976553, + -19.366903851184414, + -19.36692682664258, + -19.366949786151103, + -19.36697272972106, + -19.36699565736351, + -19.367018569089513, + -19.367041464910123, + -19.367064344836376, + -19.367087208879305, + -19.36711005704994, + -19.367132889359297, + -19.367155705818387, + -19.367178506438215, + -19.367201291229776, + -19.367224060204055, + -19.367246813372038, + -19.367269550744695, + -19.36729227233299, + -19.36731497814788, + -19.36733766820032, + -19.36736034250125, + -19.367383001061604, + -19.367405643892308, + -19.367428271004282, + -19.367450882408438, + -19.367473478115684, + -19.36749605813691, + -19.36751862248301, + -19.367541171164866, + -19.36756370419335, + -19.36758622157933, + -19.367608723333664, + -19.367631209467202, + -19.367653679990795, + -19.36767613491527, + -19.367698574251467, + -19.367720998010196, + -19.367743406202276, + -19.367765798838512, + -19.367788175929707, + -19.36781053748665, + -19.367832883520126, + -19.367855214040908, + -19.36787752905977, + -19.367899828587465, + -19.367922112634755, + -19.367944381212386, + -19.367966634331093, + -19.367988872001614, + -19.368011094234667, + -19.36803330104097, + -19.368055492431235, + -19.36807766841616, + -19.368099829006443, + -19.36812197421277, + -19.368144104045818, + -19.36816621851626, + -19.368188317634765, + -19.368210401411986, + -19.368232469858572, + -19.368254522985172, + -19.368276560802418, + -19.368298583320932, + -19.368320590551345, + -19.368342582504262, + -19.36836455919029, + -19.368386520620028, + -19.368408466804066, + -19.36843039775299, + -19.36845231347738, + -19.368474213987795, + -19.368496099294806, + -19.36851796940896, + -19.368539824340807, + -19.368561664100888, + -19.36858348869973, + -19.368605298147866, + -19.36862709245581, + -19.36864887163407, + -19.368670635693153, + -19.36869238464355, + -19.368714118495753, + -19.368735837260243, + -19.36875754094749, + -19.36877922956797, + -19.368800903132133, + -19.368822561650436, + -19.36884420513332, + -19.36886583359123, + -19.368887447034588, + -19.36890904547382, + -19.368930628919344, + -19.368952197381567, + -19.368973750870893, + -19.368995289397713, + -19.369016812972415, + -19.369038321605377, + -19.369059815306972, + -19.36908129408757, + -19.369102757957528, + -19.36912420692719, + -19.369145641006906, + -19.369167060207015, + -19.369188464537842, + -19.36920985400971, + -19.369231228632934, + -19.369252588417822, + -19.369273933374675, + -19.369295263513788, + -19.369316578845446, + -19.36933787937993, + -19.36935916512751, + -19.369380436098453, + -19.369401692303015, + -19.369422933751448, + -19.369444160453995, + -19.369465372420898, + -19.369486569662378, + -19.36950775218866, + -19.369528920009962, + -19.369550073136494, + -19.36957121157845, + -19.36959233534603, + -19.36961344444942, + -19.369634538898797, + -19.36965561870434, + -19.369676683876207, + -19.369697734424562, + -19.369718770359558, + -19.369739791691334, + -19.36976079843003, + -19.36978179058578, + -19.369802768168704, + -19.369823731188916, + -19.36984467965653, + -19.369865613581652, + -19.369886532974366, + -19.36990743784477, + -19.369928328202942, + -19.36994920405896, + -19.36997006542288, + -19.36999091230478, + -19.3700117447147, + -19.37003256266269, + -19.37005336615879, + -19.370074155213032, + -19.370094929835442, + -19.37011569003604, + -19.37013643582484, + -19.37015716721184, + -19.370177884207045, + -19.37019858682044, + -19.37021927506201, + -19.370239948941734, + -19.370260608469582, + -19.370281253655513, + -19.370301884509487, + -19.370322501041453, + -19.370343103261355, + -19.370363691179126, + -19.37038426480469, + -19.37040482414798, + -19.3704253692189, + -19.370445900027367, + -19.370466416583273, + -19.37048691889652, + -19.37050740697699, + -19.370527880834565, + -19.37054834047912, + -19.370568785920522, + -19.37058921716863, + -19.370609634233293, + -19.37063003712436, + -19.370650425851675, + -19.370670800425067, + -19.37069116085436, + -19.370711507149373, + -19.370731839319923, + -19.370752157375808, + -19.37077246132683, + -19.370792751182783, + -19.37081302695345, + -19.370833288648605, + -19.370853536278027, + -19.370873769851475, + -19.370893989378704, + -19.370914194869474, + -19.370934386333523, + -19.37095456378059, + -19.370974727220403, + -19.37099487666269, + -19.371015012117162, + -19.37103513359354, + -19.37105524110152, + -19.371075334650797, + -19.371095414251066, + -19.371115479912007, + -19.3711355316433, + -19.371155569454615, + -19.371175593355613, + -19.37119560335595, + -19.37121559946528, + -19.37123558169324, + -19.371255550049472, + -19.371275504543604, + -19.371295445185257, + -19.37131537198405, + -19.37133528494959, + -19.371355184091488, + -19.37137506941933, + -19.37139494094271, + -19.371414798671214, + -19.371434642614414, + -19.37145447278188, + -19.371474289183183, + -19.37149409182787, + -19.37151388072549, + -19.371533655885596, + -19.371553417317717, + -19.371573165031386, + -19.371592899036123, + -19.37161261934145, + -19.371632325956877, + -19.3716520188919, + -19.37167169815602, + -19.371691363758732, + -19.371711015709515, + -19.37173065401785, + -19.371750278693202, + -19.37176988974504, + -19.371789487182816, + -19.37180907101599, + -19.371828641253998, + -19.37184819790628, + -19.371867740982275, + -19.371887270491392, + -19.371906786443063, + -19.37192628884669, + -19.371945777711687, + -19.37196525304745, + -19.371984714863363, + -19.37200416316882, + -19.372023597973197, + -19.37204301928587, + -19.372062427116198, + -19.37208182147355, + -19.372101202367272, + -19.37212056980671, + -19.372139923801207, + -19.372159264360096, + -19.372178591492702, + -19.37219790520835, + -19.37221720551635, + -19.372236492426012, + -19.372255765946637, + -19.372275026087515, + -19.372294272857943, + -19.372313506267194, + -19.37233272632455, + -19.372351933039276, + -19.37237112642064, + -19.372390306477886, + -19.37240947322028, + -19.372428626657054, + -19.372447766797446, + -19.37246689365069, + -19.372486007226005, + -19.372505107532614, + -19.37252419457972, + -19.37254326837654, + -19.372562328932265, + -19.372581376256086, + -19.37260041035719, + -19.372619431244757, + -19.37263843892796, + -19.372657433415966, + -19.372676414717937, + -19.372695382843023, + -19.37271433780037, + -19.37273327959912, + -19.372752208248414, + -19.372771123757374, + -19.372790026135124, + -19.37280891539078, + -19.37282779153345, + -19.37284665457224, + -19.372865504516245, + -19.372884341374554, + -19.37290316515625, + -19.372921975870415, + -19.37294077352612, + -19.372959558132425, + -19.372978329698398, + -19.372997088233085, + -19.373015833745534, + -19.373034566244783, + -19.37305328573987, + -19.373071992239822, + -19.373090685753656, + -19.37310936629039, + -19.373128033859032, + -19.373146688468587, + -19.373165330128046, + -19.373183958846404, + -19.373202574632643, + -19.37322117749574, + -19.37323976744467, + -19.373258344488388, + -19.373276908635862, + -19.373295459896045, + -19.37331399827788, + -19.373332523790307, + -19.37335103644226, + -19.373369536242667, + -19.373388023200448, + -19.373406497324524, + -19.3734249586238, + -19.373443407107178, + -19.37346184278356, + -19.373480265661833, + -19.37349867575088, + -19.37351707305958, + -19.37353545759681, + -19.37355382937143, + -19.373572188392302, + -19.37359053466828, + -19.373608868208212, + -19.373627189020937, + -19.373645497115294, + -19.37366379250011, + -19.373682075184206, + -19.373700345176402, + -19.373718602485507, + -19.373736847120327, + -19.37375507908966, + -19.3737732984023, + -19.37379150506703, + -19.373809699092632, + -19.37382788048788, + -19.37384604926154, + -19.373864205422382, + -19.37388234897915, + -19.373900479940605, + -19.37391859831548, + -19.37393670411252, + -19.373954797340456, + -19.37397287800801, + -19.373990946123907, + -19.374009001696855, + -19.374027044735566, + -19.374045075248734, + -19.374063093245063, + -19.374081098733235, + -19.374099091721938, + -19.374117072219846, + -19.374135040235632, + -19.374152995777962, + -19.374170938855492, + -19.374188869476882, + -19.374206787650767, + -19.3742246933858, + -19.37424258669061, + -19.374260467573826, + -19.374278336044075, + -19.37429619210997, + -19.374314035780124, + -19.374331867063145, + -19.374349685967626, + -19.374367492502163, + -19.37438528667535, + -19.374403068495752, + -19.37442083797196, + -19.374438595112537, + -19.37445633992605, + -19.374474072421048, + -19.374491792606094, + -19.374509500489722, + -19.37452719608048, + -19.3745448793869, + -19.374562550417508, + -19.374580209180827, + -19.374597855685373, + -19.374615489939654, + -19.37463311195218, + -19.37465072173144, + -19.374668319285938, + -19.37468590462415, + -19.374703477754565, + -19.37472103868565, + -19.37473858742588, + -19.374756123983712, + -19.374773648367608, + -19.374791160586017, + -19.374808660647385, + -19.374826148560153, + -19.37484362433275, + -19.37486108797361, + -19.374878539491153, + -19.37489597889379, + -19.374913406189936, + -19.374930821387995, + -19.374948224496364, + -19.374965615523436, + -19.374982994477598, + -19.37500036136723, + -19.375017716200713, + -19.37503505898641, + -19.375052389732684, + -19.3750697084479, + -19.375087015140405, + -19.375104309818543, + -19.375121592490657, + -19.37513886316508, + -19.375156121850146, + -19.375173368554176, + -19.375190603285482, + -19.37520782605238, + -19.37522503686318, + -19.375242235726173, + -19.37525942264966, + -19.37527659764192, + -19.375293760711248, + -19.375310911865913, + -19.375328051114188, + -19.37534517846434, + -19.375362293924628, + -19.37537939750331, + -19.375396489208622, + -19.375413569048817, + -19.37543063703213, + -19.375447693166794, + -19.37546473746103, + -19.37548176992306, + -19.375498790561096, + -19.375515799383347, + -19.37553279639802, + -19.375549781613305, + -19.375566755037397, + -19.375583716678484, + -19.375600666544738, + -19.37561760464434, + -19.375634530985455, + -19.375651445576246, + -19.37566834842487, + -19.375685239539482, + -19.375702118928224, + -19.37571898659924, + -19.375735842560662, + -19.375752686820615, + -19.375769519387227, + -19.375786340268615, + -19.37580314947289, + -19.37581994700816, + -19.375836732882522, + -19.375853507104075, + -19.375870269680906, + -19.3758870206211, + -19.375903759932736, + -19.375920487623883, + -19.375937203702613, + -19.375953908176985, + -19.375970601055055, + -19.37598728234487, + -19.376003952054475, + -19.376020610191915, + -19.37603725676522, + -19.376053891782416, + -19.37607051525153, + -19.376087127180575, + -19.37610372757756, + -19.376120316450496, + -19.37613689380738, + -19.376153459656205, + -19.376170014004963, + -19.376186556861636, + -19.376203088234202, + -19.376219608130633, + -19.3762361165589, + -19.376252613526958, + -19.376269099042762, + -19.37628557311427, + -19.37630203574942, + -19.37631848695615, + -19.376334926742402, + -19.376351355116096, + -19.37636777208516, + -19.376384177657506, + -19.37640057184105, + -19.376416954643695, + -19.37643332607334, + -19.37644968613789, + -19.376466034845222, + -19.37648237220323, + -19.37649869821979, + -19.37651501290277, + -19.376531316260046, + -19.376547608299475, + -19.376563889028915, + -19.376580158456218, + -19.37659641658923, + -19.37661266343579, + -19.376628899003737, + -19.376645123300897, + -19.376661336335093, + -19.376677538114148, + -19.376693728645872, + -19.376709907938075, + -19.37672607599856, + -19.37674223283512, + -19.376758378455552, + -19.376774512867637, + -19.37679063607916, + -19.3768067480979, + -19.376822848931614, + -19.37683893858808, + -19.37685501707505, + -19.376871084400285, + -19.376887140571526, + -19.376903185596518, + -19.376919219483, + -19.3769352422387, + -19.37695125387135, + -19.376967254388674 + ], + "y21": [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 4.394488353430947e-6, + 0.006056659635350812, + 0.012103374791771985, + 0.018144545047018023, + 0.02418017548581978, + 0.0302102711882476, + 0.03623483722971268, + 0.0422538786809731, + 0.04826740060813449, + 0.05427540807265888, + 0.06027790613136636, + 0.06627489983644053, + 0.07226639423543015, + 0.07825239437125692, + 0.0842329052822179, + 0.09020793200199068, + 0.0961774795596346, + 0.10214155297959907, + 0.10810015728172595, + 0.11405329748125438, + 0.12000097858882253, + 0.12594320561047517, + 0.13187998354766656, + 0.137811317397265, + 0.14373721215155452, + 0.14965767279824282, + 0.15557270432046388, + 0.16148231169678162, + 0.16738649990119547, + 0.17328527390314177, + 0.17917863866750083, + 0.18506659915460064, + 0.19094916032022088, + 0.1968263271155946, + 0.20269810448741626, + 0.20856449737784405, + 0.21442551072450436, + 0.22028114946049396, + 0.2261314185143876, + 0.23197632281024025, + 0.23781586726759193, + 0.24365005680146945, + 0.2494788963223941, + 0.25530239073638406, + 0.2611205449449591, + 0.26693336384514244, + 0.272740852329468, + 0.2785430152859833, + 0.2843398575982538, + 0.2901313841453648, + 0.29591759980192894, + 0.30169850943808885, + 0.3074741179195206, + 0.3132444301074397, + 0.31900945085860105, + 0.32476918502530866, + 0.3305236374554156, + 0.33627281299233064, + 0.34201671647501863, + 0.34775535273800917, + 0.35348872661139796, + 0.35921684292085215, + 0.36493970648761176, + 0.3706573221284972, + 0.3763696946559118, + 0.3820768288778462, + 0.3877787295978801, + 0.3934754016151901, + 0.3991668497245515, + 0.40485307871634346, + 0.41053409337655017, + 0.41620989848676854, + 0.4218804988242109, + 0.4275458991617092, + 0.4332061042677165, + 0.4388611189063148, + 0.4445109478372175, + 0.45015559581577286, + 0.4557950675929691, + 0.46142936791543576, + 0.4670585015254518, + 0.4726824731609466, + 0.47830128755550577, + 0.4839149494383718, + 0.4895234635344525, + 0.4951268345643223, + 0.5007250672442277, + 0.5063181662860882, + 0.5119061363975039, + 0.5174889822817581, + 0.5230667086378216, + 0.5286393201603539, + 0.5342068215397116, + 0.5397692174619494, + 0.5453265126088261, + 0.5508787116578048, + 0.5564258192820607, + 0.5619678401504843, + 0.5675047789276845, + 0.5730366402739909, + 0.5785634288454611, + 0.5840851492938836, + 0.5896018062667796, + 0.5951134044074097, + 0.6006199483547762, + 0.6061214427436279, + 0.6116178922044612, + 0.6171093013635286, + 0.6225956748428396, + 0.6280770172601656, + 0.6335533332290432, + 0.6390246273587783, + 0.6444909042544504, + 0.6499521685169162, + 0.6554084247428109, + 0.6608596775245577, + 0.6663059314503671, + 0.6717471911042423, + 0.6771834610659833, + 0.68261474591119, + 0.6880410502112667, + 0.6934623785334266, + 0.6988787354406912, + 0.7042901254919013, + 0.7096965532417158, + 0.7150980232406169, + 0.7204945400349143, + 0.7258861081667486, + 0.7312727321740955, + 0.7366544165907689, + 0.7420311659464259, + 0.7474029847665673, + 0.7527698775725468, + 0.7581318488815706, + 0.7634889032067036, + 0.7688410450568713, + 0.7741882789368649, + 0.7795306093473449, + 0.7848680407848444, + 0.7902005777417714, + 0.7955282247064169, + 0.800850986162955, + 0.8061688665914475, + 0.8114818704678485, + 0.8167900022640074, + 0.8220932664476732, + 0.8273916674824986, + 0.8326852098280396, + 0.8379738979397665, + 0.8432577362690624, + 0.8485367292632283, + 0.8538108813654878, + 0.8590801970149893, + 0.8643446806468109, + 0.8696043366919636, + 0.8748591695773955, + 0.880109183725993, + 0.8853543835565889, + 0.8905947734839632, + 0.8958303579188479, + 0.9010611412679299, + 0.9062871279338554, + 0.9115083223152332, + 0.916724728806639, + 0.9219363517986163, + 0.9271431956776853, + 0.9323452648263425, + 0.9375425636230654, + 0.9427350964423172, + 0.9479228676545491, + 0.9531058816262047, + 0.9582841427197246, + 0.9634576552935457, + 0.9686264237021113, + 0.9737904522958706, + 0.9789497454212832, + 0.9841043074208236, + 0.9892541426329837, + 0.9943992553922772, + 0.9995396500292433, + 1.0046753308704497, + 1.009806302238495, + 1.0149325684520167, + 1.02005413382569, + 1.0251710026702348, + 1.0302831792924176, + 1.0353906679950555, + 1.0404934730770201, + 1.0455915988332412, + 1.0506850495547078, + 1.0557738295284766, + 1.0608579430376723, + 1.0659373943614916, + 1.0710121877752075, + 1.0760823275501723, + 1.0811478179538219, + 1.0862086632496792, + 1.091264867697355, + 1.0963164355525565, + 1.1013633710670876, + 1.106405678488853, + 1.1114433620618627, + 1.116476426026234, + 1.1215048746181973, + 1.1265287120700969, + 1.1315479426103974, + 1.1365625704636835, + 1.1415725998506678, + 1.1465780349881924, + 1.1515788800892324, + 1.1565751393628991, + 1.1615668170144444, + 1.1665539172452644, + 1.1715364442529017, + 1.1765144022310488, + 1.1814877953695542, + 1.1864566278544235, + 1.1914209038678245, + 1.1963806275880886, + 1.201335803189717, + 1.2062864348433822, + 1.2112325267159323, + 1.2161740829703929, + 1.2211111077659742, + 1.226043605258071, + 1.2309715795982685, + 1.2358950349343445, + 1.2408139754102727, + 1.2457284051662274, + 1.2506383283385865, + 1.2555437490599348, + 1.2604446714590654, + 1.265341099660988, + 1.2702330377869278, + 1.2751204899543322, + 1.2800034602768722, + 1.2848819528644462, + 1.2897559718231846, + 1.2946255212554525, + 1.2994906052598505, + 1.3043512279312242, + 1.309207393360662, + 1.3140591056355024, + 1.3189063688393339, + 1.323749187052002, + 1.3285875643496101, + 1.3334215048045244, + 1.3382510124853746, + 1.3430760914570619, + 1.3478967457807585, + 1.3527129795139134, + 1.3575247967102546, + 1.3623322014197923, + 1.3671351976888237, + 1.3719337895599346, + 1.3767279810720048, + 1.3815177762602082, + 1.3863031791560205, + 1.3910841937872198, + 1.395860824177891, + 1.4006330743484283, + 1.4054009483155399, + 1.41016445009225, + 1.4149235836879042, + 1.419678353108168, + 1.4244287623550371, + 1.4291748154268362, + 1.4339165163182233, + 1.4386538690201938, + 1.4433868775200829, + 1.4481155458015693, + 1.4528398778446798, + 1.4575598776257885, + 1.4622755491176262, + 1.4669868962892791, + 1.4716939231061945, + 1.476396633530183, + 1.4810950315194218, + 1.485789121028459, + 1.4904789060082164, + 1.495164390405993, + 1.499845578165466, + 1.5045224732266982, + 1.509195079526139, + 1.5138634009966283, + 1.5185274415673986, + 1.5231872051640805, + 1.527842695708704, + 1.532493917119703, + 1.537140873311916, + 1.5417835681965948, + 1.5464220056814022, + 1.5510561896704194, + 1.555686124064146, + 1.5603118127595057, + 1.5649332596498489, + 1.569550468624955, + 1.5741634435710359, + 1.578772188370741, + 1.5833767069031588, + 1.587977003043821, + 1.592573080664705, + 1.5971649436342374, + 1.6017525958172982, + 1.6063360410752228, + 1.6109152832658058, + 1.6154903262433025, + 1.6200611738584365, + 1.6246278299583987, + 1.6291902983868525, + 1.6337485829839367, + 1.6383026875862687, + 1.6428526160269474, + 1.6473983721355574, + 1.6519399597381694, + 1.656477382657348, + 1.661010644712151, + 1.6655397497181357, + 1.6700647014873584, + 1.6745855038283814, + 1.6791021605462737, + 1.6836146754426162, + 1.6881230523155004, + 1.6926272949595387, + 1.6971274071658615, + 1.701623392722124, + 1.7061152554125076, + 1.7106029990177232, + 1.7150866273150154, + 1.7195661440781647, + 1.7240415530774917, + 1.7285128580798574, + 1.7329800628486705, + 1.7374431711438882, + 1.7419021867220201, + 1.7463571133361302, + 1.750807954735842, + 1.7552547146673394, + 1.7596973968733725, + 1.7641360050932564, + 1.7685705430628804, + 1.7730010145147062, + 1.7774274231777734, + 1.7818497727777018, + 1.786268067036695, + 1.7906823096735436, + 1.7950925044036277, + 1.7994986549389187, + 1.8039007649879863, + 1.808298838255999, + 1.8126928784447272, + 1.8170828892525468, + 1.8214688743744425, + 1.8258508375020106, + 1.8302287823234622, + 1.8346027125236266, + 1.8389726317839519, + 1.843338543782513, + 1.8477004521940104, + 1.8520583606897763, + 1.8564122729377746, + 1.8607621926026068, + 1.8651081233455133, + 1.8694500688243787, + 1.8737880326937295, + 1.8781220186047445, + 1.8824520302052528, + 1.8867780711397395, + 1.8911001450493463, + 1.8954182555718773, + 1.8997324063417995, + 1.9040426009902485, + 1.9083488431450275, + 1.9126511364306154, + 1.9169494844681663, + 1.9212438908755145, + 1.925534359267176, + 1.9298208932543526, + 1.9341034964449342, + 1.938382172443503, + 1.942656924851336, + 1.9469277572664048, + 1.951194673283385, + 1.9554576764936542, + 1.9597167704852978, + 1.9639719588431102, + 1.9682232451485986, + 1.9724706329799855, + 1.9767141259122138, + 1.980953727516945, + 1.985189441362568, + 1.9894212710141983, + 1.9936492200336833, + 1.9978732919796025, + 2.0020934904072734, + 2.006309818868753, + 2.0105222809128414, + 2.0147308800850823, + 2.018935619927771, + 2.023136503979952, + 2.0273335357774265, + 2.0315267188527524, + 2.035716056735248, + 2.039901552950996, + 2.044083211022844, + 2.048261034470412, + 2.0524350268100884, + 2.05660519155504, + 2.060771532215212, + 2.0649340522973296, + 2.0690927553049034, + 2.0732476447382306, + 2.0773987240943983, + 2.0815459968672885, + 2.085689466547576, + 2.0898291366227375, + 2.093965010577051, + 2.0980970918915993, + 2.1022253840442717, + 2.1063498905097706, + 2.1104706147596106, + 2.1145875602621236, + 2.1187007304824585, + 2.12281012888259, + 2.1269157589213163, + 2.131017624054265, + 2.1351157277338935, + 2.1392100734094943, + 2.143300664527197, + 2.1473875045299695, + 2.1514705968576244, + 2.1555499449468183, + 2.1596255522310566, + 2.163697422140698, + 2.167765558102954, + 2.1718299635418923, + 2.1758906418784436, + 2.1799475965303983, + 2.184000830912416, + 2.1880503484360214, + 2.1920961525096128, + 2.196138246538464, + 2.2001766339247237, + 2.2042113180674225, + 2.208242302362474, + 2.212269590202677, + 2.2162931849777197, + 2.22031309007418, + 2.224329308875533, + 2.22834184476215, + 2.232350701111302, + 2.236355881297164, + 2.2403573886908155, + 2.2443552266602462, + 2.2483493985703564, + 2.252339907782962, + 2.256326757656792, + 2.2603099515475003, + 2.264289492807662, + 2.268265384786777, + 2.272237630831275, + 2.276206234284515, + 2.280171198486793, + 2.28413252677534, + 2.288090222484325, + 2.2920442889448633, + 2.2959947294850136, + 2.2999415474297824, + 2.303884746101128, + 2.3078243288179623, + 2.3117602988961528, + 2.3156926596485286, + 2.319621414384877, + 2.3235465664119532, + 2.3274681190334805, + 2.3313860755501503, + 2.335300439259629, + 2.3392112134565584, + 2.3431184014325592, + 2.3470220064762337, + 2.3509220318731687, + 2.3548184809059367, + 2.358711356854101, + 2.3626006629942187, + 2.3664864025998407, + 2.3703685789415165, + 2.3742471952867974, + 2.378122254900236, + 2.381993761043394, + 2.3858617169748397, + 2.3897261259501543, + 2.393586991221935, + 2.3974443160397945, + 2.401298103650366, + 2.4051483572973056, + 2.4089950802212954, + 2.4128382756600457, + 2.4166779468482966, + 2.4205140970178225, + 2.424346729397435, + 2.428175847212984, + 2.4320014536873624, + 2.4358235520405063, + 2.4396421454893997, + 2.4434572372480763, + 2.447268830527624, + 2.4510769285361826, + 2.454881534478954, + 2.458682651558198, + 2.4624802829732397, + 2.46627443192047, + 2.4700651015933475, + 2.4738522951824042, + 2.477636015875245, + 2.481416266856552, + 2.485193051308086, + 2.4889663724086932, + 2.4927362333343015, + 2.4965026372579278, + 2.5002655873496793, + 2.5040250867767555, + 2.5077811387034536, + 2.5115337462911658, + 2.515282912698387, + 2.5190286410807174, + 2.5227709345908607, + 2.526509796378631, + 2.5302452295909537, + 2.533977237371868, + 2.5377058228625313, + 2.54143098920122, + 2.5451527395233304, + 2.5488710769613863, + 2.552586004645039, + 2.5562975257010674, + 2.5600056432533864, + 2.5637103604230442, + 2.5674116803282265, + 2.571109606084262, + 2.574804140803619, + 2.5784952875959144, + 2.582183049567914, + 2.585867429823532, + 2.5895484314638386, + 2.593226057587059, + 2.5969003112885787, + 2.6005711956609434, + 2.604238713793862, + 2.6079028687742123, + 2.61156366368604, + 2.615221101610564, + 2.6188751856261763, + 2.6225259188084467, + 2.6261733042301243, + 2.629817344961141, + 2.6334580440686137, + 2.6370954046168444, + 2.640729429667328, + 2.644360122278751, + 2.6479874855069947, + 2.651611522405139, + 2.655232236023463, + 2.6588496294094486, + 2.662463705607785, + 2.666074467660367, + 2.6696819186063, + 2.673286061481906, + 2.676886899320718, + 2.6804844351534904, + 2.6840786720081975, + 2.687669612910036, + 2.6912572608814314, + 2.694841618942032, + 2.6984226901087225, + 2.702000477395618, + 2.7055749838140724, + 2.709146212372675, + 2.7127141660772582, + 2.716278847930898, + 2.719840260933915, + 2.7233984080838805, + 2.7269532923756143, + 2.730504916801193, + 2.7340532843499474, + 2.7375983980084686, + 2.741140260760607, + 2.7446788755874785, + 2.7482142454674645, + 2.7517463733762155, + 2.7552752622866525, + 2.7588009151689707, + 2.762323334990642, + 2.7658425247164176, + 2.769358487308329, + 2.772871225725692, + 2.7763807429251077, + 2.7798870418604675, + 2.7833901254829527, + 2.786889996741038, + 2.7903866585804975, + 2.7938801139444003, + 2.797370365773118, + 2.8008574170043263, + 2.8043412705730066, + 2.8078219294114493, + 2.8112993964492556, + 2.814773674613339, + 2.8182447668279313, + 2.821712676014581, + 2.825177405092158, + 2.828638956976856, + 2.832097334582195, + 2.8355525408190205, + 2.839004578595513, + 2.8424534508171817, + 2.8458991603868733, + 2.849341710204775, + 2.8527811031684105, + 2.856217342172649, + 2.8596504301097045, + 2.8630803698691385, + 2.8665071643378632, + 2.869930816400142, + 2.873351328937595, + 2.8767687048292, + 2.8801829469512934, + 2.8835940581775756, + 2.88700204137911, + 2.8904068994243284, + 2.893808635179032, + 2.8972072515063942, + 2.9006027512669617, + 2.9039951373186588, + 2.9073844125167905, + 2.910770579714041, + 2.91415364176048, + 2.917533601503564, + 2.920910461788137, + 2.924284225456436, + 2.927654895348089, + 2.9310224743001214, + 2.9343869651469583, + 2.9377483707204246, + 2.9411066938497474, + 2.9444619373615617, + 2.9478141040799084, + 2.9511631968262395, + 2.954509218419419, + 2.9578521716757256, + 2.9611920594088583, + 2.9645288844299333, + 2.96786264954749, + 2.9711933575674907, + 2.9745210112933274, + 2.9778456135258193, + 2.9811671670632185, + 2.984485674701209, + 2.9878011392329125, + 2.99111356344889, + 2.9944229501371433, + 2.9977293020831164, + 3.0010326220697, + 3.004332912877233, + 3.0076301772835046, + 3.0109244180637553, + 3.014215637990682, + 3.0175038398344403, + 3.0207890263626425, + 3.024071200340365, + 3.027350364530149, + 3.0306265216920005, + 3.033899674583397, + 3.037169825959284, + 3.040436978572084, + 3.043701135171694, + 3.0469622985054894, + 3.050220471318326, + 3.053475656352544, + 3.0567278563479667, + 3.0599770740419063, + 3.063223312169165, + 3.0664665734620353, + 3.069706860650306, + 3.0729441764612626, + 3.0761785236196895, + 3.079409904847872, + 3.082638322865599, + 3.0858637803901656, + 3.089086280136376, + 3.092305824816542, + 3.0955224171404905, + 3.098736059815564, + 3.101946755546622, + 3.1051545070360422, + 3.1083593169837247, + 3.111561188087095, + 3.114760123041104, + 3.11795612453823, + 3.121149195268485, + 3.124339337919413, + 3.1275265551760922, + 3.130710849721141, + 3.133892224234717, + 3.137070681394519, + 3.1402462238757916, + 3.1434188543513253, + 3.1465885754914584, + 3.149755389964083, + 3.152919300434644, + 3.1560803095661414, + 3.159238420019134, + 3.1623936344517394, + 3.16554595551964, + 3.168695385876081, + 3.1718419281718746, + 3.1749855850554023, + 3.1781263591726185, + 3.18126425316705, + 3.184399269679799, + 3.1875314113495468, + 3.1906606808125546, + 3.1937870807026667, + 3.1969106136513097, + 3.2000312822874992, + 3.2031490892378414, + 3.2062640371265316, + 3.209376128575358, + 3.212485366203708, + 3.2155917526285633, + 3.2186952904645083, + 3.221795982323729, + 3.2248938308160153, + 3.227988838548764, + 3.231081008126982, + 3.234170342153287, + 3.2372568432279087, + 3.2403405139486954, + 3.2434213569111097, + 3.2464993747082374, + 3.249574569930782, + 3.2526469451670756, + 3.255716503003075, + 3.258783246022366, + 3.261847176806164, + 3.2649082979333195, + 3.2679666119803175, + 3.271022121521279, + 3.274074829127965, + 3.2771247373697796, + 3.280171848813769, + 3.2832161660246273, + 3.286257691564694, + 3.289296427993961, + 3.2923323778700726, + 3.295365543748327, + 3.2983959281816806, + 3.301423533720745, + 3.3044483629137966, + 3.3074704183067745, + 3.310489702443282, + 3.3135062178645893, + 3.316519967109639, + 3.3195309527150427, + 3.322539177215088, + 3.3255446431417357, + 3.328547353024627, + 3.331547309391083, + 3.334544514766108, + 3.3375389716723896, + 3.3405306826303023, + 3.3435196501579094, + 3.3465058767709657, + 3.349489364982918, + 3.3524701173049087, + 3.3554481362457778, + 3.3584234243120643, + 3.361395984008009, + 3.3643658178355564, + 3.3673329282943567, + 3.3702973178817666, + 3.373258989092854, + 3.376217944420399, + 3.3791741863548936, + 3.38212771738455, + 3.3850785399952947, + 3.3880266566707773, + 3.390972069892368, + 3.3939147821391633, + 3.3968547958879847, + 3.399792113613383, + 3.402726737787639, + 3.405658670880769, + 3.4085879153605223, + 3.411514473692385, + 3.4144383483395835, + 3.4173595417630844, + 3.4202780564215987, + 3.4231938947715803, + 3.426107059267233, + 3.4290175523605093, + 3.431925376501113, + 3.434830534136503, + 3.4377330277118903, + 3.4406328596702473, + 3.4435300324523044, + 3.4464245484965543, + 3.4493164102392533, + 3.4522056201144236, + 3.455092180553856, + 3.45797609398711, + 3.4608573628415185, + 3.463735989542188, + 3.466611976512001, + 3.4694853261716188, + 3.472356040939482, + 3.4752241232318144, + 3.4780895754626227, + 3.480952400043702, + 3.4838125993846343, + 3.4866701758927925, + 3.489525131973341, + 3.4923774700292407, + 3.4952271924612464, + 3.4980743016679128, + 3.500918800045595, + 3.5037606899884515, + 3.5065999738884432, + 3.5094366541353397, + 3.5122707331167167, + 3.515102213217963, + 3.51793109682228, + 3.52075738631068, + 3.523581084061996, + 3.526402192452878, + 3.529220713857797, + 3.5320366506490455, + 3.5348500051967413, + 3.53766077986883, + 3.5404689770310838, + 3.5432745990471055, + 3.5460776482783323, + 3.5488781270840337, + 3.551676037821318, + 3.55447138284513, + 3.5572641645082568, + 3.5600543851613264, + 3.562842047152812, + 3.5656271528290326, + 3.5684097045341563, + 3.571189704610202, + 3.57396715539704, + 3.576742059232395, + 3.579514418451848, + 3.582284235388839, + 3.585051512374667, + 3.587816251738495, + 3.5905784558073477, + 3.5933381269061178, + 3.596095267357565, + 3.59884987948232, + 3.6016019655988845, + 3.6043515280236345, + 3.6070985690708217, + 3.609843091052577, + 3.612585096278908, + 3.615324587057707, + 3.6180615656947475, + 3.620796034493691, + 3.6235279957560853, + 3.6262574517813673, + 3.6289844048668654, + 3.6317088573078027, + 3.634430811397295, + 3.637150269426358, + 3.639867233683905, + 3.64258170645675, + 3.6452936900296113, + 3.648003186685111, + 3.6507101987037784, + 3.653414728364052, + 3.6561167779422803, + 3.6588163497127235, + 3.6615134459475582, + 3.664208068916876, + 3.666900220888688, + 3.6695899041289244, + 3.6722771209014384, + 3.6749618734680065, + 3.6776441640883317, + 3.6803239950200437, + 3.683001368518703, + 3.6856762868378015, + 3.688348752228764, + 3.6910187669409527, + 3.6936863332216654, + 3.6963514533161383, + 3.6990141294675514, + 3.7016743639170246, + 3.7043321589036244, + 3.7069875166643653, + 3.7096404394342075, + 3.712290929446064, + 3.7149389889307978, + 3.7175846201172305, + 3.720227825232134, + 3.722868606500244, + 3.7255069661442506, + 3.7281429063848113, + 3.7307764294405428, + 3.7334075375280302, + 3.7360362328618235, + 3.738662517654443, + 3.741286394116382, + 3.743907864456102, + 3.7465269308800453, + 3.749143595592625, + 3.7517578607962387, + 3.75436972869126, + 3.756979201476044, + 3.759586281346935, + 3.7621909704982577, + 3.764793271122329, + 3.7673931854094516, + 3.7699907155479226, + 3.772585863724031, + 3.7751786321220613, + 3.777769022924296, + 3.780357038311013, + 3.7829426804604953, + 3.7855259515490247, + 3.7881068537508904, + 3.790685389238385, + 3.7932615601818114, + 3.7958353687494806, + 3.798406817107717, + 3.800975907420857, + 3.803542641851251, + 3.8061070225592712, + 3.8086690517033026, + 3.811228731439757, + 3.8137860639230627, + 3.816341051305678, + 3.8188936957380837, + 3.821443999368789, + 3.823991964344335, + 3.826537592809292, + 3.829080886906265, + 3.8316218487758937, + 3.834160480556856, + 3.836696784385866, + 3.839230762397682, + 3.8417624167251025, + 3.844291749498968, + 3.84681876284817, + 3.849343458899643, + 3.851865839778376, + 3.8543859076074036, + 3.85690366450782, + 3.8594191125987685, + 3.8619322539974528, + 3.8644430908191336, + 3.866951625177131, + 3.869457859182831, + 3.871961794945677, + 3.874463434573186, + 3.876962780170934, + 3.879459833842574, + 3.8819545976898246, + 3.884447073812478, + 3.8869372643084033, + 3.889425171273542, + 3.8919107968019184, + 3.8943941429856315, + 3.896875211914866, + 3.8993540056778873, + 3.901830526361047, + 3.904304776048784, + 3.9067767568236227, + 3.9092464707661825, + 3.9117139199551696, + 3.914179106467389, + 3.916642032377738, + 3.9191026997592124, + 3.9215611106829065, + 3.924017267218017, + 3.926471171431841, + 3.9289228253897797, + 3.931372231155344, + 3.933819390790147, + 3.936264306353916, + 3.9387069799044863, + 3.9411474134978084, + 3.9435856091879473, + 3.9460215690270823, + 3.948455295065513, + 3.9508867893516566, + 3.9533160539320553, + 3.9557430908513713, + 3.9581679021523946, + 3.9605904898760387, + 3.963010856061349, + 3.965429002745499, + 3.967844931963793, + 3.970258645749673, + 3.972670146134712, + 3.975079435148622, + 3.9774865148192533, + 3.979891387172598, + 3.982294054232787, + 3.9846945180221, + 3.9870927805609586, + 3.9894888438679312, + 3.991882709959738, + 3.994274380851247, + 3.9966638585554812, + 3.9990511450836146, + 4.001436242444981, + 4.003819152647068, + 4.006199877695523, + 4.008578419594157, + 4.010954780344937, + 4.0133289619480035, + 4.015700966401654, + 4.018070795702359, + 4.020438451844756, + 4.022803936821655, + 4.025167252624036, + 4.027528401241056, + 4.0298873846600465, + 4.032244204866515, + 4.0345988638441534, + 4.036951363574827, + 4.039301706038592, + 4.041649893213683, + 4.043995927076522, + 4.0463398096017205, + 4.048681542762075, + 4.0510211285285775, + 4.05335856887041, + 4.055693865754949, + 4.058027021147767, + 4.060358037012637, + 4.062686915311527, + 4.065013658004606, + 4.067338267050249, + 4.069660744405031, + 4.071981092023736, + 4.074299311859355, + 4.076615405863087, + 4.078929375984341, + 4.081241224170741, + 4.083550952368123, + 4.085858562520538, + 4.088164056570257, + 4.090467436457767, + 4.092768704121779, + 4.0950678614992215, + 4.097364910525252, + 4.099659853133248, + 4.101952691254819, + 4.104243426819802, + 4.10653206175626, + 4.108818597990495, + 4.111103037447036, + 4.1133853820486515, + 4.115665633716345, + 4.11794379436936, + 4.120219865925178, + 4.122493850299522, + 4.124765749406362, + 4.127035565157907, + 4.129303299464619, + 4.1315689542352, + 4.133832531376611, + 4.136094032794058, + 4.138353460391002, + 4.140610816069158, + 4.142866101728496, + 4.145119319267247, + 4.147370470581897, + 4.149619557567197, + 4.151866582116158, + 4.154111546120055, + 4.156354451468431, + 4.158595300049094, + 4.160834093748122, + 4.1630708344498615, + 4.165305524036935, + 4.1675381643902325, + 4.169768757388926, + 4.17199730491046, + 4.1742238088305585, + 4.176448271023227, + 4.178670693360747, + 4.180891077713691, + 4.18310942595091, + 4.185325739939546, + 4.187540021545022, + 4.189752272631059, + 4.191962495059662, + 4.194170690691132, + 4.1963768613840635, + 4.198581008995345, + 4.200783135380165, + 4.202983242392009, + 4.205181331882664, + 4.207377405702215, + 4.209571465699058, + 4.211763513719886, + 4.213953551609703, + 4.216141581211822, + 4.218327604367861, + 4.220511622917754, + 4.222693638699745, + 4.224873653550395, + 4.227051669304576, + 4.229227687795483, + 4.231401710854625, + 4.233573740311836, + 4.2357437779952685, + 4.2379118257314, + 4.240077885345034, + 4.2422419586592985, + 4.244404047495653, + 4.246564153673881, + 4.248722279012104, + 4.250878425326772, + 4.253032594432669, + 4.255184788142918, + 4.257335008268977, + 4.259483256620643, + 4.261629535006054, + 4.26377384523169, + 4.265916189102373, + 4.268056568421273, + 4.270194984989904, + 4.272331440608127, + 4.274465937074155, + 4.276598476184552, + 4.278729059734234, + 4.280857689516467, + 4.2829843673228805, + 4.285109094943455, + 4.287231874166531, + 4.289352706778811, + 4.291471594565355, + 4.2935885393095905, + 4.295703542793306, + 4.29781660679666, + 4.299927733098175, + 4.302036923474745, + 4.304144179701632, + 4.306249503552472, + 4.308352896799275, + 4.310454361212423, + 4.312553898560679, + 4.314651510611179, + 4.316747199129444, + 4.318840965879371, + 4.320932812623244, + 4.323022741121728, + 4.325110753133873, + 4.327196850417119, + 4.329281034727289, + 4.331363307818604, + 4.333443671443667, + 4.3355221273534825, + 4.337598677297444, + 4.33967332302334, + 4.341746066277362, + 4.343816908804094, + 4.345885852346524, + 4.34795289864604, + 4.3500180494424345, + 4.352081306473902, + 4.354142671477048, + 4.356202146186879, + 4.358259732336815, + 4.360315431658686, + 4.362369245882731, + 4.364421176737607, + 4.366471225950381, + 4.36851939524654, + 4.3705656863499875, + 4.372610100983045, + 4.374652640866456, + 4.376693307719385, + 4.378732103259422, + 4.380769029202578, + 4.382804087263295, + 4.38483727915444, + 4.386868606587311, + 4.388898071271635, + 4.390925674915572, + 4.3929514192257155, + 4.394975305907093, + 4.396997336663172, + 4.399017513195852, + 4.401035837205479, + 4.403052310390834, + 4.405066934449143, + 4.407079711076075, + 4.409090641965742, + 4.411099728810708, + 4.413106973301978, + 4.415112377129011, + 4.4171159419797155, + 4.419117669540452, + 4.421117561496034, + 4.4231156195297325, + 4.425111845323271, + 4.427106240556833, + 4.429098806909064, + 4.431089546057063, + 4.433078459676398, + 4.435065549441099, + 4.437050817023658, + 4.439034264095035, + 4.441015892324658, + 4.442995703380425, + 4.4449736989287025, + 4.446949880634331, + 4.448924250160621, + 4.450896809169362, + 4.452867559320817, + 4.454836502273727, + 4.456803639685313, + 4.4587689732112725, + 4.460732504505791, + 4.462694235221531, + 4.464654167009644, + 4.466612301519763, + 4.468568640400014, + 4.470523185297005, + 4.472475937855841, + 4.474426899720113, + 4.476376072531906, + 4.478323457931801, + 4.480269057558873, + 4.482212873050695, + 4.4841549060433366, + 4.486095158171369, + 4.488033631067864, + 4.489970326364395, + 4.49190524569104, + 4.493838390676381, + 4.49576976294751, + 4.497699364130021, + 4.499627195848025, + 4.501553259724136, + 4.503477557379485, + 4.5054000904337155, + 4.507320860504984, + 4.509239869209965, + 4.51115711816385, + 4.513072608980349, + 4.5149863432716915, + 4.516898322648632, + 4.5188085487204415, + 4.520717023094923, + 4.5226237473783995, + 4.524528723175723, + 4.526431952090275, + 4.528333435723962, + 4.530233175677227, + 4.532131173549043, + 4.534027430936918, + 4.535921949436894, + 4.537814730643546, + 4.539705776149994, + 4.541595087547892, + 4.543482666427435, + 4.545368514377361, + 4.547252632984951, + 4.54913502383603, + 4.551015688514968, + 4.552894628604685, + 4.554771845686644, + 4.556647341340864, + 4.5585211171459115, + 4.560393174678906, + 4.562263515515521, + 4.564132141229985, + 4.565999053395083, + 4.567864253582158, + 4.5697277433611125, + 4.571589524300407, + 4.573449597967067, + 4.575307965926678, + 4.577164629743392, + 4.579019590979925, + 4.5808728511975625, + 4.582724411956156, + 4.584574274814127, + 4.586422441328468, + 4.588268913054743, + 4.590113691547093, + 4.591956778358229, + 4.593798175039442, + 4.595637883140597, + 4.597475904210142, + 4.5993122397951, + 4.60114689144108, + 4.602979860692271, + 4.6048111490914465, + 4.6066407581799655, + 4.608468689497774, + 4.610294944583405, + 4.61211952497398, + 4.613942432205214, + 4.61576366781141, + 4.617583233325466, + 4.619401130278875, + 4.621217360201723, + 4.623031924622695, + 4.624844825069074, + 4.626656063066743, + 4.628465640140183, + 4.630273557812479, + 4.632079817605321, + 4.633884421039001, + 4.635687369632418, + 4.637488664903077, + 4.639288308367092, + 4.64108630153919, + 4.642882645932702, + 4.644677343059579, + 4.646470394430378, + 4.648261801554277, + 4.650051565939067, + 4.651839689091157, + 4.653626172515574, + 4.655411017715967, + 4.657194226194604, + 4.658975799452375, + 4.660755738988796, + 4.662534046302006, + 4.66431072288877, + 4.666085770244482, + 4.667859189863164, + 4.669630983237469, + 4.671401151858678, + 4.673169697216708, + 4.674936620800108, + 4.676701924096062, + 4.678465608590391, + 4.6802276757675525, + 4.681988127110644, + 4.6837469641014025, + 4.685504188220205, + 4.687259800946073, + 4.68901380375667, + 4.690766198128305, + 4.692516985535934, + 4.69426616745316, + 4.696013745352233, + 4.697759720704056, + 4.699504094978182, + 4.701246869642814, + 4.702988046164813, + 4.704727626009692, + 4.706465610641619, + 4.708202001523423, + 4.709936800116588, + 4.711670007881261, + 4.713401626276246, + 4.715131656759015, + 4.716860100785697, + 4.71858695981109, + 4.720312235288658, + 4.722035928670529, + 4.723758041407502, + 4.7254785749490456, + 4.7271975307432985, + 4.72891491023707, + 4.730630714875847, + 4.732344946103786, + 4.734057605363721, + 4.735768694097163, + 4.737478213744303, + 4.739186165744008, + 4.740892551533827, + 4.742597372549993, + 4.744300630227417, + 4.746002325999698, + 4.747702461299122, + 4.749401037556654, + 4.751098056201958, + 4.752793518663375, + 4.754487426367945, + 4.756179780741394, + 4.757870583208145, + 4.759559835191314, + 4.761247538112706, + 4.762933693392832, + 4.764618302450892, + 4.7663013667047895, + 4.767982887571124, + 4.7696628664652, + 4.771341304801022, + 4.773018203991298, + 4.774693565447441, + 4.776367390579567, + 4.778039680796504, + 4.779710437505783, + 4.7813796621136495, + 4.783047356025055, + 4.784713520643662, + 4.786378157371852, + 4.788041267610714, + 4.7897028527600565, + 4.791362914218399, + 4.793021453382987, + 4.794678471649776, + 4.796333970413447, + 4.7979879510674, + 4.799640415003757, + 4.801291363613365, + 4.8029407982857935, + 4.804588720409339, + 4.806235131371024, + 4.807880032556603, + 4.809523425350551, + 4.811165311136084, + 4.812805691295141, + 4.8144445672084, + 4.81608194025527, + 4.817717811813892, + 4.81935218326115, + 4.82098505597266, + 4.822616431322778, + 4.824246310684601, + 4.825874695429968, + 4.827501586929453, + 4.829126986552383, + 4.830750895666823, + 4.8323733156395825, + 4.833994247836222, + 4.835613693621048, + 4.837231654357116, + 4.8388481314062295, + 4.840463126128948, + 4.842076639884577, + 4.84368867403118, + 4.845299229925576, + 4.846908308923335, + 4.8485159123787875, + 4.850122041645022, + 4.851726698073885, + 4.8533298830159834, + 4.854931597820686, + 4.856531843836125, + 4.8581306224091945, + 4.859727934885556, + 4.8613237826096345, + 4.862918166924623, + 4.864511089172483, + 4.866102550693947, + 4.867692552828514, + 4.8692810969144595, + 4.870868184288828, + 4.87245381628744, + 4.874037994244889, + 4.875620719494546, + 4.877201993368561, + 4.878781817197859, + 4.880360192312147, + 4.881937120039913, + 4.883512601708423, + 4.885086638643731, + 4.88665923217067, + 4.888230383612863, + 4.889800094292715, + 4.891368365531422, + 4.8929351986489635, + 4.894500594964116, + 4.896064555794439, + 4.897627082456287, + 4.8991881762648095, + 4.900747838533947, + 4.902306070576437, + 4.903862873703812, + 4.905418249226401, + 4.906972198453333, + 4.908524722692538, + 4.910075823250742, + 4.911625501433478, + 4.913173758545077, + 4.914720595888676, + 4.916266014766219, + 4.917810016478453, + 4.919352602324933, + 4.920893773604024, + 4.922433531612898, + 4.92397187764754, + 4.925508813002744, + 4.927044338972118, + 4.928578456848083, + 4.930111167921877, + 4.931642473483551, + 4.933172374821975, + 4.934700873224836, + 4.936227969978641, + 4.937753666368717, + 4.939277963679212, + 4.940800863193096, + 4.942322366192164, + 4.943842473957035, + 4.945361187767151, + 4.946878508900788, + 4.948394438635041, + 4.949908978245838, + 4.9514221290079385, + 4.952933892194929, + 4.954444269079232, + 4.955953260932101, + 4.957460869023626, + 4.958967094622729, + 4.96047193899717, + 4.961975403413548, + 4.963477489137296, + 4.964978197432693, + 4.9664775295628525, + 4.967975486789734, + 4.969472070374138, + 4.970967281575708, + 4.972461121652937, + 4.973953591863155, + 4.975444693462548, + 4.976934427706146, + 4.978422795847829, + 4.979909799140324, + 4.981395438835215, + 4.982879716182935, + 4.984362632432769, + 4.98584418883286, + 4.987324386630203, + 4.988803227070652, + 4.990280711398915, + 4.991756840858565, + 4.993231616692026, + 4.994705040140592, + 4.996177112444413, + 4.9976478348425, + 4.999117208572734, + 5.000585234871856, + 5.002051914975476, + 5.003517250118067, + 5.004981241532974, + 5.006443890452409, + 5.007905198107454, + 5.009365165728063, + 5.010823794543062, + 5.012281085780149, + 5.013737040665897, + 5.015191660425755, + 5.016644946284046, + 5.018096899463973, + 5.019547521187615, + 5.020996812675933, + 5.022444775148766, + 5.0238914098248335, + 5.025336717921742, + 5.026780700655976, + 5.028223359242908, + 5.029664694896794, + 5.031104708830779, + 5.032543402256894, + 5.0339807763860565, + 5.035416832428078, + 5.036851571591656, + 5.038284995084384, + 5.039717104112744, + 5.041147899882115, + 5.042577383596768, + 5.044005556459873, + 5.045432419673493, + 5.046857974438591, + 5.048282221955028, + 5.049705163421564, + 5.051126800035862, + 5.052547132994482, + 5.053966163492893, + 5.055383892725463, + 5.0568003218854685, + 5.058215452165087, + 5.059629284755406, + 5.061041820846422, + 5.0624530616270365, + 5.063863008285065, + 5.065271662007229, + 5.066679023979165, + 5.068085095385422, + 5.069489877409461, + 5.070893371233662, + 5.072295578039314, + 5.073696499006629, + 5.075096135314733, + 5.076494488141672, + 5.077891558664413, + 5.079287348058841, + 5.080681857499766, + 5.082075088160915, + 5.083467041214946, + 5.084857717833436, + 5.0862471191868925, + 5.087635246444743, + 5.089022100775351, + 5.090407683346, + 5.091791995322909, + 5.093175037871227, + 5.09455681215503, + 5.095937319337334, + 5.09731656058008, + 5.098694537044152, + 5.100071249889363, + 5.101446700274465, + 5.102820889357148, + 5.104193818294038, + 5.105565488240703, + 5.10693590035165, + 5.108305055780328, + 5.109672955679126, + 5.111039601199381, + 5.112404993491368, + 5.113769133704313, + 5.115132022986385, + 5.1164936624847, + 5.117854053345324, + 5.119213196713269, + 5.120571093732501, + 5.121927745545933, + 5.123283153295432, + 5.124637318121819, + 5.1259902411648675, + 5.127341923563304, + 5.128692366454815, + 5.130041570976038, + 5.1313895382625745, + 5.132736269448982, + 5.134081765668775, + 5.135426028054432, + 5.136769057737392, + 5.138110855848055, + 5.139451423515788, + 5.140790761868918, + 5.142128872034741, + 5.143465755139515, + 5.144801412308472, + 5.146135844665804, + 5.147469053334678, + 5.148801039437228, + 5.150131804094562, + 5.151461348426757, + 5.1527896735528635, + 5.154116780590907, + 5.155442670657886, + 5.1567673448697775, + 5.158090804341532, + 5.159413050187079, + 5.160734083519328, + 5.162053905450164, + 5.1633725170904565, + 5.164689919550053, + 5.166006113937787, + 5.167321101361471, + 5.168634882927906, + 5.169947459742873, + 5.1712588329111435, + 5.1725690035364735, + 5.173877972721608, + 5.1751857415682805, + 5.1764923111772125, + 5.177797682648119, + 5.179101857079705, + 5.180404835569668, + 5.181706619214697, + 5.183007209110481, + 5.184306606351698, + 5.185604812032024, + 5.186901827244137, + 5.188197653079705, + 5.189492290629399, + 5.190785740982891, + 5.192078005228852, + 5.193369084454956, + 5.194658979747875, + 5.195947692193292, + 5.197235222875889, + 5.198521572879355, + 5.199806743286385, + 5.201090735178681, + 5.202373549636954, + 5.203655187740924, + 5.204935650569318, + 5.206214939199878, + 5.207493054709356, + 5.208769998173514, + 5.210045770667132, + 5.211320373264002, + 5.212593807036931, + 5.213866073057742, + 5.215137172397277, + 5.216407106125396, + 5.217675875310975, + 5.218943481021912, + 5.220209924325125, + 5.2214752062865575, + 5.222739327971168, + 5.224002290442945, + 5.2252640947648965, + 5.22652474199906, + 5.2277842332064965, + 5.229042569447295, + 5.230299751780572, + 5.231555781264471, + 5.232810658956169, + 5.234064385911871, + 5.235316963186815, + 5.236568391835268, + 5.237818672910533, + 5.239067807464949, + 5.2403157965498846, + 5.24156264121575, + 5.242808342511988, + 5.2440529014870805, + 5.245296319188548, + 5.24653859666295, + 5.247779734955889, + 5.249019735112002, + 5.250258598174977, + 5.251496325187537, + 5.252732917191454, + 5.253968375227543, + 5.255202700335664, + 5.256435893554722, + 5.257667955922674, + 5.25889888847652, + 5.260128692252312, + 5.261357368285153, + 5.262584917609192, + 5.263811341257635, + 5.265036640262738, + 5.266260815655811, + 5.267483868467218, + 5.268705799726377, + 5.269926610461765, + 5.27114630170091, + 5.272364874470408, + 5.273582329795902, + 5.274798668702102, + 5.276013892212778, + 5.277228001350756, + 5.27844099713793, + 5.279652880595252, + 5.2808636527427435, + 5.282073314599483, + 5.283281867183623, + 5.284489311512375, + 5.2856956486020215, + 5.286900879467913, + 5.288105005124468, + 5.289308026585175, + 5.290509944862594, + 5.291710760968354, + 5.29291047591316, + 5.294109090706788, + 5.295306606358086, + 5.296503023874979, + 5.29769834426447, + 5.298892568532635, + 5.300085697684629, + 5.301277732724685, + 5.302468674656115, + 5.303658524481312, + 5.304847283201749, + 5.306034951817978, + 5.3072215313296365, + 5.308407022735448, + 5.3095914270332125, + 5.310774745219824, + 5.311956978291255, + 5.313138127242567, + 5.314318193067912, + 5.315497176760526, + 5.316675079312737, + 5.317851901715961, + 5.319027644960707, + 5.320202310036574, + 5.321375897932255, + 5.322548409635535, + 5.323719846133293, + 5.324890208411505, + 5.3260594974552395, + 5.327227714248666, + 5.328394859775049, + 5.32956093501675, + 5.330725940955233, + 5.331889878571061, + 5.333052748843893, + 5.334214552752497, + 5.33537529127474, + 5.336534965387592, + 5.337693576067129, + 5.338851124288527, + 5.340007611026074, + 5.341163037253161, + 5.342317403942288, + 5.343470712065061, + 5.344622962592197, + 5.3457741564935235, + 5.346924294737976, + 5.348073378293603, + 5.3492214081275655, + 5.3503683852061386, + 5.351514310494707, + 5.352659184957776, + 5.353803009558963, + 5.354945785261001, + 5.356087513025742, + 5.357228193814158, + 5.358367828586334, + 5.359506418301479, + 5.360643963917922, + 5.36178046639311, + 5.362915926683617, + 5.364050345745137, + 5.365183724532487, + 5.36631606399961, + 5.367447365099573, + 5.36857762878457, + 5.369706856005921, + 5.370835047714074, + 5.3719622048586055, + 5.3730883283882225, + 5.374213419250759, + 5.37533747839318, + 5.376460506761588, + 5.377582505301211, + 5.378703474956413, + 5.379823416670692, + 5.380942331386681, + 5.382060220046147, + 5.383177083589995, + 5.384292922958268, + 5.3854077390901445, + 5.386521532923943, + 5.387634305397122, + 5.38874605744628, + 5.389856790007156, + 5.3909665040146315, + 5.392075200402731, + 5.393182880104622, + 5.394289544052617, + 5.395395193178172, + 5.39649982841189, + 5.39760345068352, + 5.398706060921961, + 5.399807660055255, + 5.400908249010598, + 5.402007828714335, + 5.403106400091956, + 5.4042039640681105, + 5.405300521566596, + 5.4063960735103604, + 5.407490620821511, + 5.4085841644213035, + 5.409676705230154, + 5.410768244167632, + 5.411858782152462, + 5.412948320102531, + 5.414036858934879, + 5.415124399565709, + 5.416210942910382, + 5.417296489883419, + 5.418381041398503, + 5.4194645983684815, + 5.420547161705361, + 5.421628732320314, + 5.422709311123676, + 5.42378889902495, + 5.424867496932802, + 5.425945105755068, + 5.42702172639875, + 5.428097359770017, + 5.429172006774208, + 5.430245668315832, + 5.431318345298569, + 5.432390038625271, + 5.433460749197958, + 5.4345304779178285, + 5.435599225685251, + 5.436666993399768, + 5.4377337819601, + 5.43879959226414, + 5.43986442520896, + 5.440928281690809, + 5.441991162605113, + 5.443053068846479, + 5.444114001308691, + 5.445173960884716, + 5.4462329484667, + 5.447290964945971, + 5.448348011213041, + 5.449404088157606, + 5.450459196668543, + 5.451513337633916, + 5.452566511940975, + 5.453618720476156, + 5.454669964125082, + 5.455720243772563, + 5.4567695603025985, + 5.457817914598379, + 5.458865307542281, + 5.459911740015876, + 5.460957212899924, + 5.462001727074381, + 5.463045283418391, + 5.464087882810295, + 5.4651295261276305, + 5.466170214247125, + 5.467209948044706, + 5.468248728395498, + 5.46928655617382, + 5.470323432253191, + 5.471359357506329, + 5.472394332805153, + 5.4734283590207795, + 5.474461437023528, + 5.47549356768292, + 5.4765247518676805, + 5.477554990445735, + 5.4785842842842145, + 5.479612634249457, + 5.4806400412070015, + 5.481666506021598, + 5.4826920295571995, + 5.483716612676971, + 5.484740256243281, + 5.485762961117714, + 5.486784728161056, + 5.487805558233312, + 5.488825452193691, + 5.489844410900617, + 5.490862435211731, + 5.4918795259838795, + 5.4928956840731304, + 5.493910910334762, + 5.4949252056232725, + 5.4959385707923705, + 5.496951006694989, + 5.497962514183271, + 5.498973094108585, + 5.499982747321516, + 5.500991474671868, + 5.501999277008666, + 5.503006155180159, + 5.504012110033815, + 5.505017142416326, + 5.506021253173609, + 5.5070244431508035, + 5.508026713192274, + 5.509028064141611, + 5.510028496841632, + 5.511028012134382, + 5.51202661086113, + 5.513024293862381, + 5.5140210619778625, + 5.515016916046535, + 5.516011856906587, + 5.517005885395443, + 5.5179990023497565, + 5.518991208605413, + 5.519982504997534, + 5.520972892360472, + 5.521962371527819, + 5.522950943332399, + 5.5239386086062705, + 5.524925368180735, + 5.525911222886327, + 5.526896173552821, + 5.52788022100923, + 5.528863366083808, + 5.529845609604048, + 5.530826952396684, + 5.531807395287694, + 5.532786939102295, + 5.533765584664953, + 5.534743332799372, + 5.535720184328503, + 5.536696140074543, + 5.537671200858936, + 5.538645367502369, + 5.539618640824779, + 5.540591021645351, + 5.541562510782519, + 5.542533109053966, + 5.543502817276624, + 5.544471636266678, + 5.545439566839565, + 5.546406609809972, + 5.547372765991838, + 5.548338036198357, + 5.549302421241982, + 5.550265921934413, + 5.551228539086609, + 5.552190273508788, + 5.553151126010421, + 5.55411109740024, + 5.555070188486232, + 5.556028400075646, + 5.556985732974989, + 5.5579421879900295, + 5.558897765925796, + 5.55985246758658, + 5.560806293775934, + 5.561759245296675, + 5.562711322950884, + 5.563662527539905, + 5.564612859864348, + 5.565562320724088, + 5.566510910918268, + 5.567458631245298, + 5.568405482502855, + 5.569351465487884, + 5.570296580996601, + 5.57124082982449, + 5.572184212766307, + 5.573126730616078, + 5.574068384167102, + 5.575009174211951, + 5.575949101542467, + 5.576888166949771, + 5.577826371224251, + 5.578763715155579, + 5.579700199532698, + 5.580635825143827, + 5.5815705927764645, + 5.582504503217385, + 5.583437557252643, + 5.584369755667571, + 5.585301099246782, + 5.586231588774168, + 5.587161225032904, + 5.588090008805448, + 5.589017940873538, + 5.589945022018195, + 5.590871253019725, + 5.59179663465772, + 5.592721167711052, + 5.593644852957884, + 5.594567691175665, + 5.595489683141126, + 5.59641082963029, + 5.59733113141847, + 5.598250589280265, + 5.599169203989562, + 5.600086976319543, + 5.601003907042677, + 5.601919996930729, + 5.602835246754751, + 5.603749657285092, + 5.604663229291392, + 5.605575963542585, + 5.606487860806905, + 5.607398921851875, + 5.608309147444318, + 5.609218538350353, + 5.610127095335394, + 5.611034819164158, + 5.611941710600657, + 5.612847770408203, + 5.613752999349408, + 5.614657398186187, + 5.615560967679753, + 5.616463708590623, + 5.617365621678616, + 5.618266707702853, + 5.619166967421761, + 5.620066401593072, + 5.62096501097382, + 5.621862796320347, + 5.622759758388302, + 5.623655897932639, + 5.62455121570762, + 5.625445712466819, + 5.626339388963113, + 5.6272322459486945, + 5.628124284175061, + 5.629015504393025, + 5.629905907352706, + 5.630795493803542, + 5.631684264494279, + 5.6325722201729755, + 5.6334593615870086, + 5.634345689483066, + 5.6352312046071535, + 5.63611590770459, + 5.636999799520014, + 5.6378828807973775, + 5.638765152279955, + 5.639646614710335, + 5.640527268830428, + 5.641407115381463, + 5.642286155103988, + 5.6431643887378735, + 5.644041817022313, + 5.644918440695817, + 5.645794260496226, + 5.646669277160698, + 5.6475434914257185, + 5.648416904027092, + 5.649289515699958, + 5.650161327178773, + 5.651032339197323, + 5.651902552488725, + 5.652771967785417, + 5.6536405858191685, + 5.654508407321079, + 5.655375433021577, + 5.656241663650419, + 5.657107099936695, + 5.657971742608827, + 5.658835592394565, + 5.659698650020996, + 5.6605609162145365, + 5.661422391700941, + 5.662283077205294, + 5.663142973452018, + 5.664002081164871, + 5.664860401066948, + 5.665717933880677, + 5.666574680327829, + 5.667430641129508, + 5.668285817006161, + 5.6691402086775735, + 5.669993816862866, + 5.670846642280506, + 5.671698685648298, + 5.672549947683393, + 5.673400429102279, + 5.6742501306207895, + 5.675099052954102, + 5.675947196816736, + 5.676794562922559, + 5.677641151984782, + 5.678486964715961, + 5.679332001828, + 5.68017626403215, + 5.681019752039011, + 5.681862466558527, + 5.682704408299998, + 5.683545577972066, + 5.684385976282728, + 5.6852256039393305, + 5.686064461648573, + 5.686902550116502, + 5.687739870048523, + 5.688576422149389, + 5.689412207123211, + 5.690247225673452, + 5.69108147850293, + 5.69191496631382, + 5.69274768980765, + 5.693579649685309, + 5.69441084664704, + 5.695241281392446, + 5.696070954620485, + 5.696899867029478, + 5.697728019317104, + 5.698555412180402, + 5.699382046315772, + 5.700207922418976, + 5.701033041185137, + 5.7018574033087415, + 5.702681009483638, + 5.703503860403039, + 5.704325956759523, + 5.705147299245031, + 5.705967888550871, + 5.706787725367717, + 5.7076068103856095, + 5.708425144293955, + 5.709242727781528, + 5.710059561536475, + 5.710875646246307, + 5.711690982597906, + 5.712505571277526, + 5.713319412970787, + 5.714132508362686, + 5.7149448581375895, + 5.7157564629792335, + 5.716567323570732, + 5.717377440594568, + 5.718186814732603, + 5.718995446666069, + 5.719803337075578, + 5.720610486641113, + 5.721416896042037, + 5.722222565957087, + 5.723027497064381, + 5.723831690041412, + 5.724635145565054, + 5.725437864311561, + 5.726239846956563, + 5.727041094175075, + 5.727841606641488, + 5.728641385029579, + 5.729440430012506, + 5.7302387422628085, + 5.731036322452409, + 5.7318331712526165, + 5.732629289334123, + 5.733424677367004, + 5.734219336020722, + 5.735013265964125, + 5.73580646786545, + 5.736598942392316, + 5.737390690211735, + 5.738181711990105, + 5.738972008393213, + 5.7397615800862365, + 5.740550427733742, + 5.741338551999686, + 5.742125953547418, + 5.742912633039678, + 5.743698591138597, + 5.744483828505702, + 5.745268345801911, + 5.746052143687536, + 5.746835222822286, + 5.747617583865261, + 5.748399227474959, + 5.749180154309275, + 5.7499603650254985, + 5.750739860280317, + 5.751518640729817, + 5.7522967070294815, + 5.753074059834195, + 5.753850699798239, + 5.754626627575296, + 5.755401843818448, + 5.75617634918018, + 5.756950144312377, + 5.757723229866328, + 5.758495606492723, + 5.759267274841655, + 5.760038235562623, + 5.76080848930453, + 5.761578036715683, + 5.762346878443793, + 5.7631150151359805, + 5.763882447438769, + 5.764649175998094, + 5.765415201459292, + 5.7661805244671145, + 5.766945145665716, + 5.767709065698665, + 5.768472285208937, + 5.769234804838918, + 5.769996625230407, + 5.770757747024611, + 5.771518170862152, + 5.772277897383065, + 5.773036927226793, + 5.773795261032201, + 5.77455289943756, + 5.775309843080561, + 5.776066092598307, + 5.776821648627319, + 5.777576511803533, + 5.778330682762302, + 5.779084162138397, + 5.779836950566008, + 5.780589048678739, + 5.781340457109619, + 5.782091176491091, + 5.782841207455023, + 5.783590550632699, + 5.784339206654827, + 5.785087176151536, + 5.785834459752377, + 5.786581058086323, + 5.787326971781772, + 5.7880722014665436, + 5.788816747767883, + 5.78956061131246, + 5.7903037927263705, + 5.7910462926351345, + 5.791788111663701, + 5.792529250436442, + 5.79326970957716, + 5.794009489709087, + 5.794748591454876, + 5.7954870154366205, + 5.796224762275832, + 5.79696183259346, + 5.797698227009881, + 5.798433946144904, + 5.799168990617768, + 5.799903361047147, + 5.800637058051145, + 5.801370082247301, + 5.8021024342525855, + 5.802834114683404, + 5.803565124155599, + 5.804295463284446, + 5.805025132684657, + 5.805754132970381, + 5.8064824647552005, + 5.807210128652141, + 5.80793712527366, + 5.808663455231659, + 5.809389119137472, + 5.810114117601877, + 5.8108384512350915, + 5.811562120646774, + 5.812285126446019, + 5.813007469241369, + 5.813729149640805, + 5.814450168251749, + 5.815170525681071, + 5.81589022253508, + 5.81660925941953, + 5.817327636939621, + 5.818045355699995, + 5.818762416304745, + 5.819478819357403, + 5.820194565460954, + 5.820909655217826, + 5.821624089229895, + 5.822337868098488, + 5.823050992424377, + 5.823763462807783, + 5.8244752798483805, + 5.825186444145292, + 5.825896956297089, + 5.826606816901795, + 5.827316026556885, + 5.828024585859291, + 5.828732495405387, + 5.829439755791011, + 5.830146367611449, + 5.83085233146144, + 5.831557647935182, + 5.832262317626324, + 5.832966341127975, + 5.833669719032695, + 5.834372451932503, + 5.835074540418877, + 5.83577598508275, + 5.836476786514515, + 5.837176945304022, + 5.83787646204058, + 5.838575337312958, + 5.839273571709387, + 5.8399711658175555, + 5.840668120224615, + 5.841364435517178, + 5.842060112281319, + 5.842755151102577, + 5.84344955256595, + 5.844143317255903, + 5.844836445756364, + 5.845528938650726, + 5.846220796521845, + 5.846912019952044, + 5.847602609523114, + 5.848292565816307, + 5.848981889412348, + 5.849670580891427, + 5.8503586408332025, + 5.851046069816797, + 5.85173286842081, + 5.852419037223305, + 5.853104576801814, + 5.853789487733347, + 5.854473770594375, + 5.855157425960847, + 5.855840454408183, + 5.8565228565112735, + 5.857204632844483, + 5.85788578398165, + 5.858566310496084, + 5.859246212960572, + 5.859925491947372, + 5.860604148028222, + 5.8612821817743335, + 5.861959593756392, + 5.862636384544564, + 5.863312554708489, + 5.863988104817288, + 5.8646630354395555, + 5.865337347143368, + 5.86601104049628, + 5.866684116065327, + 5.867356574417022, + 5.868028416117361, + 5.868699641731818, + 5.869370251825352, + 5.870040246962401, + 5.870709627706887, + 5.871378394622213, + 5.87204654827127, + 5.8727140892164265, + 5.87338101801954, + 5.87404733524195, + 5.874713041444484, + 5.875378137187453, + 5.876042623030654, + 5.8767064995333715, + 5.877369767254379, + 5.8780324267519335, + 5.878694478583783, + 5.879355923307164, + 5.880016761478801, + 5.880676993654908, + 5.881336620391189, + 5.881995642242839, + 5.882654059764544, + 5.883311873510481, + 5.883969084034319, + 5.884625691889217, + 5.885281697627829, + 5.885937101802304, + 5.886591904964281, + 5.887246107664897, + 5.887899710454778, + 5.88855271388405, + 5.889205118502333, + 5.889856924858743, + 5.890508133501893, + 5.891158744979891, + 5.891808759840345, + 5.892458178630358, + 5.893107001896534, + 5.893755230184975, + 5.8944028640412816, + 5.895049904010553, + 5.89569635063739, + 5.8963422044658955, + 5.896987466039671, + 5.89763213590182, + 5.898276214594948, + 5.898919702661165, + 5.89956260064208, + 5.900204909078807, + 5.9008466285119665, + 5.90148775948168, + 5.902128302527574, + 5.9027682581887815, + 5.903407627003939, + 5.904046409511191, + 5.90468460624819, + 5.905322217752091, + 5.905959244559561, + 5.906595687206772, + 5.907231546229404, + 5.907866822162648, + 5.908501515541203, + 5.9091356268992765, + 5.909769156770589, + 5.9104021056883695, + 5.9110344741853575, + 5.911666262793807, + 5.912297472045479, + 5.912928102471652, + 5.9135581546031135, + 5.914187628970167, + 5.914816526102628, + 5.915444846529827, + 5.916072590780609, + 5.9166997593833335, + 5.917326352865875, + 5.917952371755625, + 5.918577816579493, + 5.919202687863901, + 5.919826986134792, + 5.920450711917625, + 5.9210738657373785, + 5.9216964481185475, + 5.922318459585147, + 5.922939900660712, + 5.923560771868297, + 5.9241810737304785, + 5.924800806769349, + 5.925419971506528, + 5.926038568463155, + 5.926656598159886, + 5.9272740611169095, + 5.927890957853929, + 5.928507288890174, + 5.9291230547444, + 5.929738255934883, + 5.930352892979426, + 5.930966966395357, + 5.931580476699529, + 5.932193424408322, + 5.9328058100376415, + 5.93341763410292, + 5.934028897119118, + 5.934639599600724, + 5.935249742061753, + 5.93585932501575, + 5.936468348975789, + 5.937076814454473, + 5.937684721963937, + 5.938292072015842, + 5.9388988651213825, + 5.939505101791288, + 5.940110782535812, + 5.940715907864743, + 5.941320478287406, + 5.941924494312655, + 5.942527956448878, + 5.943130865203997, + 5.943733221085468, + 5.944335024600283, + 5.944936276254967, + 5.945536976555582, + 5.9461371260077245, + 5.946736725116529, + 5.947335774386666, + 5.947934274322344, + 5.948532225427307, + 5.94912962820484, + 5.9497264831577645, + 5.950322790788442, + 5.950918551598772, + 5.951513766090193, + 5.952108434763688, + 5.952702558119776, + 5.95329613665852, + 5.953889170879521, + 5.9544816612819265, + 5.9550736083644225, + 5.955665012625239, + 5.956255874562151, + 5.956846194672474, + 5.957435973453068, + 5.958025211400338, + 5.958613909010235, + 5.959202066778253, + 5.959789685199433, + 5.960376764768361, + 5.960963305979172, + 5.9615493093255445, + 5.962134775300706, + 5.962719704397433, + 5.963304097108047, + 5.963887953924419, + 5.9644712753379725, + 5.965054061839675, + 5.965636313920046, + 5.966218032069158, + 5.966799216776629, + 5.967379868531633, + 5.967959987822891, + 5.968539575138678, + 5.969118630966823, + 5.969697155794703, + 5.970275150109252, + 5.970852614396957, + 5.971429549143858, + 5.972005954835549, + 5.972581831957179, + 5.973157180993451, + 5.973732002428628, + 5.974306296746524, + 5.9748800644305105, + 5.9754533059635175, + 5.976026021828029, + 5.976598212506091, + 5.9771698784793035, + 5.9777410202288275, + 5.978311638235381, + 5.978881732979241, + 5.979451304940246, + 5.980020354597793, + 5.980588882430839, + 5.981156888917902, + 5.981724374537065, + 5.982291339765967, + 5.98285778508181, + 5.983423710961364, + 5.983989117880952, + 5.984554006316469, + 5.98511837674337, + 5.985682229636676, + 5.986245565470966, + 5.986808384720393, + 5.98737068785867, + 5.987932475359075, + 5.988493747694454, + 5.989054505337218, + 5.989614748759346, + 5.990174478432384, + 5.990733694827444, + 5.99129239841521, + 5.99185058966593, + 5.992408269049422, + 5.992965437035074, + 5.993522094091844, + 5.994078240688258, + 5.994633877292413, + 5.995189004371979, + 5.995743622394194, + 5.99629773182587, + 5.996851333133391, + 5.997404426782709, + 5.997957013239353, + 5.998509092968425, + 5.999060666434598, + 5.999611734102123, + 6.000162296434819, + 6.000712353896087, + 6.001261906948897, + 6.001810956055798, + 6.002359501678913, + 6.002907544279941, + 6.00345508432016, + 6.004002122260424, + 6.004548658561163, + 6.005094693682385, + 6.005640228083679, + 6.006185262224208, + 6.006729796562717, + 6.007273831557532, + 6.0078173676665525, + 6.008360405347265, + 6.008902945056732, + 6.0094449872516, + 6.009986532388093, + 6.0105275809220196, + 6.011068133308771, + 6.011608190003318, + 6.012147751460215, + 6.0126868181335995, + 6.013225390477196, + 6.013763468944307, + 6.0143010539878246, + 6.014838146060223, + 6.015374745613562, + 6.015910853099486, + 6.016446468969225, + 6.0169815936735995, + 6.01751622766301, + 6.018050371387448, + 6.018584025296493, + 6.01911718983931, + 6.019649865464654, + 6.020182052620864, + 6.020713751755876, + 6.021244963317207, + 6.021775687751969, + 6.022305925506862, + 6.0228356770281755, + 6.023364942761792, + 6.023893723153183, + 6.024422018647412, + 6.024949829689136, + 6.025477156722603, + 6.026004000191653, + 6.02653036053972, + 6.0270562382098305, + 6.027581633644606, + 6.028106547286261, + 6.028630979576604, + 6.029154930957041, + 6.02967840186857, + 6.0302013927517875, + 6.030723904046882, + 6.031245936193642, + 6.031767489631452, + 6.032288564799294, + 6.032809162135744, + 6.033329282078982, + 6.0338489250667795, + 6.0343680915365105, + 6.034886781925147, + 6.035404996669261, + 6.035922736205023, + 6.036440000968204, + 6.036956791394175, + 6.03747310791791, + 6.03798895097398, + 6.0385043209965605, + 6.039019218419429, + 6.039533643675965, + 6.040047597199147, + 6.040561079421563, + 6.041074090775398, + 6.041586631692445, + 6.042098702604099, + 6.04261030394136, + 6.043121436134832, + 6.043632099614725, + 6.044142294810856, + 6.0446520221526425, + 6.045161282069116, + 6.045670074988908, + 6.046178401340258, + 6.0466862615510175, + 6.0471936560486395, + 6.0477005852601895, + 6.04820704961234, + 6.04871304953137, + 6.049218585443171, + 6.049723657773242, + 6.050228266946694, + 6.050732413388244, + 6.051236097522222, + 6.051739319772571, + 6.052242080562841, + 6.052744380316198, + 6.053246219455415, + 6.053747598402883, + 6.054248517580601, + 6.054748977410181, + 6.055248978312853, + 6.055748520709456, + 6.056247605020447, + 6.056746231665892, + 6.057244401065478, + 6.057742113638502, + 6.05823936980388, + 6.058736169980143, + 6.059232514585437, + 6.059728404037527, + 6.06022383875379, + 6.060718819151225, + 6.061213345646448, + 6.061707418655692, + 6.062201038594806, + 6.062694205879264, + 6.063186920924154, + 6.063679184144181, + 6.064170995953678, + 6.064662356766591, + 6.065153266996488, + 6.065643727056558, + 6.066133737359612, + 6.066623298318084, + 6.067112410344024, + 6.067601073849111, + 6.068089289244642, + 6.068577056941536, + 6.069064377350341, + 6.069551250881224, + 6.070037677943975, + 6.070523658948011, + 6.071009194302373, + 6.071494284415726, + 6.07197892969636, + 6.072463130552192, + 6.072946887390765, + 6.073430200619247, + 6.073913070644432, + 6.074395497872742, + 6.074877482710228, + 6.075359025562566, + 6.075840126835062, + 6.076320786932647, + 6.0768010062598865, + 6.077280785220967, + 6.077760124219713, + 6.078239023659574, + 6.078717483943628, + 6.079195505474586, + 6.079673088654792, + 6.080150233886214, + 6.080626941570459, + 6.08110321210876, + 6.081579045901985, + 6.082054443350636, + 6.082529404854842, + 6.083003930814372, + 6.083478021628623, + 6.083951677696628, + 6.084424899417053, + 6.084897687188201, + 6.085370041408008, + 6.085841962474044, + 6.086313450783516, + 6.0867845067332675, + 6.087255130719775, + 6.087725323139154, + 6.088195084387157, + 6.088664414859171, + 6.089133314950223, + 6.089601785054977, + 6.090069825567734, + 6.090537436882435, + 6.091004619392661, + 6.091471373491627, + 6.091937699572194, + 6.092403598026856, + 6.092869069247751, + 6.093334113626658, + 6.093798731554996, + 6.094262923423822, + 6.094726689623841, + 6.095190030545394, + 6.095652946578466, + 6.096115438112682, + 6.096577505537314, + 6.097039149241275, + 6.09750036961312, + 6.097961167041049, + 6.098421541912909, + 6.098881494616185, + 6.099341025538011, + 6.099800135065165, + 6.100258823584072, + 6.100717091480798, + 6.10117493914106, + 6.101632366950219, + 6.102089375293282, + 6.1025459645549045, + 6.103002135119389, + 6.103457887370683, + 6.1039132216923875, + 6.104368138467746, + 6.104822638079653, + 6.105276720910652, + 6.105730387342936, + 6.106183637758346, + 6.1066364725383755, + 6.107088892064164, + 6.107540896716506, + 6.107992486875843, + 6.108443662922272, + 6.108894425235538, + 6.109344774195036, + 6.10979471017982, + 6.11024423356859, + 6.1106933447397, + 6.111142044071159, + 6.111590331940629, + 6.112038208725423, + 6.11248567480251, + 6.112932730548516, + 6.113379376339717, + 6.113825612552046, + 6.11427143956109, + 6.114716857742096, + 6.115161867469959, + 6.115606469119237, + 6.1160506630641445, + 6.116494449678548, + 6.116937829335975, + 6.117380802409608, + 6.1178233692722905, + 6.1182655302965205, + 6.118707285854457, + 6.1191486363179175, + 6.119589582058377, + 6.12003012344697, + 6.120470260854492, + 6.1209099946514, + 6.121349325207806, + 6.121788252893486, + 6.122226778077879, + 6.122664901130081, + 6.123102622418853, + 6.123539942312615, + 6.123976861179449, + 6.1244133793871045, + 6.124849497302988, + 6.125285215294172, + 6.125720533727391, + 6.1261554529690425, + 6.126589973385191, + 6.127024095341565, + 6.127457819203555, + 6.127891145336217, + 6.128324074104273, + 6.128756605872113, + 6.1291887410037855, + 6.129620479863014, + 6.130051822813183, + 6.1304827702173466, + 6.130913322438222, + 6.1313434798382, + 6.131773242779333, + 6.132202611623344, + 6.132631586731625, + 6.133060168465235, + 6.133488357184904, + 6.133916153251028, + 6.134343557023676, + 6.134770568862586, + 6.1351971891271635, + 6.135623418176486, + 6.136049256369303, + 6.136474704064034, + 6.1368997616187695, + 6.137324429391272, + 6.137748707738977, + 6.13817259701899, + 6.13859609758809, + 6.139019209802729, + 6.139441934019033, + 6.1398642705928, + 6.140286219879502, + 6.140707782234284, + 6.1411289580119695, + 6.141549747567052, + 6.141970151253702, + 6.142390169425766, + 6.142809802436762, + 6.143229050639889, + 6.143647914388021, + 6.144066394033706, + 6.144484489929168, + 6.144902202426311, + 6.1453195318767175, + 6.145736478631643, + 6.146153043042024, + 6.146569225458476, + 6.14698502623129, + 6.147400445710435, + 6.147815484245564, + 6.148230142186008, + 6.148644419880773, + 6.149058317678549, + 6.149471835927708, + 6.149884974976297, + 6.150297735172049, + 6.150710116862374, + 6.151122120394368, + 6.151533746114804, + 6.15194499437014, + 6.152355865506516, + 6.152766359869753, + 6.153176477805356, + 6.153586219658515, + 6.1539955857740996, + 6.154404576496665, + 6.154813192170452, + 6.155221433139382, + 6.155629299747066, + 6.156036792336794, + 6.1564439112515466, + 6.156850656833988, + 6.157257029426466, + 6.157663029371018, + 6.158068657009364, + 6.158473912682916, + 6.158878796732767, + 6.159283309499701, + 6.159687451324188, + 6.160091222546386, + 6.16049462350614, + 6.160897654542986, + 6.161300315996147, + 6.1617026082045365, + 6.162104531506753, + 6.1625060862410885, + 6.1629072727455245, + 6.16330809135773, + 6.163708542415067, + 6.164108626254588, + 6.1645083432130345, + 6.164907693626842, + 6.165306677832132, + 6.165705296164724, + 6.166103548960128, + 6.166501436553544, + 6.166898959279866, + 6.167296117473683, + 6.167692911469272, + 6.168089341600608, + 6.16848540820136, + 6.168881111604887, + 6.169276452144246, + 6.169671430152186, + 6.170066045961153, + 6.170460299903287, + 6.170854192310425, + 6.171247723514095, + 6.171640893845528, + 6.172033703635646, + 6.172426153215069, + 6.172818242914115, + 6.1732099730627965, + 6.173601343990826, + 6.173992356027612, + 6.174383009502263, + 6.174773304743582, + 6.175163242080075, + 6.1755528218399425, + 6.175942044351087, + 6.17633090994111, + 6.17671941893731, + 6.177107571666689, + 6.177495368455945, + 6.177882809631483, + 6.178269895519401, + 6.178656626445504, + 6.179043002735292, + 6.179429024713975, + 6.179814692706456, + 6.180200007037346, + 6.1805849680309555, + 6.180969576011299, + 6.181353831302094, + 6.1817377342267585, + 6.182121285108418, + 6.1825044842698995, + 6.182887332033733, + 6.183269828722154, + 6.183651974657103, + 6.184033770160225, + 6.184415215552868, + 6.184796311156088, + 6.1851770572906455, + 6.185557454277007, + 6.185937502435345, + 6.186317202085538, + 6.186696553547173, + 6.18707555713954, + 6.187454213181641, + 6.187832521992183, + 6.18821048388958, + 6.188588099191956, + 6.188965368217142, + 6.189342291282677, + 6.1897188687058105, + 6.190095100803499, + 6.190470987892412, + 6.1908465302889235, + 6.191221728309122, + 6.1915965822688035, + 6.191971092483475, + 6.192345259268354, + 6.192719082938369, + 6.193092563808162, + 6.193465702192082, + 6.193838498404193, + 6.194210952758269, + 6.1945830655678, + 6.194954837145984, + 6.195326267805734, + 6.195697357859675, + 6.19606810762015, + 6.196438517399206, + 6.196808587508612, + 6.19717831825985, + 6.197547709964113, + 6.197916762932313, + 6.198285477475072, + 6.19865385390273, + 6.1990218925253435, + 6.199389593652683, + 6.199756957594234, + 6.2001239846592, + 6.200490675156501, + 6.200857029394772, + 6.201223047682367, + 6.201588730327356, + 6.201954077637526, + 6.202319089920383, + 6.202683767483152, + 6.203048110632773, + 6.2034121196759076, + 6.2037757949189345, + 6.204139136667951, + 6.204502145228775, + 6.204864820906945, + 6.205227164007716, + 6.205589174836066, + 6.205950853696692, + 6.206312200894011, + 6.206673216732164, + 6.207033901515009, + 6.207394255546128, + 6.2077542791288245, + 6.208113972566121, + 6.208473336160765, + 6.208832370215226, + 6.209191075031696, + 6.20954945091209, + 6.209907498158045, + 6.210265217070924, + 6.210622607951809, + 6.210979671101511, + 6.211336406820562, + 6.21169281540922, + 6.212048897167466, + 6.212404652395008, + 6.212760081391277, + 6.2131151844554315, + 6.2134699618863545, + 6.213824413982654, + 6.214178541042666, + 6.214532343364453, + 6.214885821245801, + 6.215238974984228, + 6.215591804876976, + 6.215944311221013, + 6.216296494313038, + 6.216648354449476, + 6.2169998919264815, + 6.217351107039937, + 6.217702000085451, + 6.218052571358364, + 6.218402821153747, + 6.218752749766396, + 6.21910235749084, + 6.219451644621335, + 6.219800611451871, + 6.220149258276165, + 6.220497585387668, + 6.2208455930795585, + 6.221193281644748, + 6.221540651375879, + 6.221887702565326, + 6.222234435505193, + 6.222580850487321, + 6.222926947803279, + 6.223272727744372, + 6.223618190601633, + 6.223963336665834, + 6.224308166227477, + 6.224652679576797, + 6.224996877003765, + 6.225340758798085, + 6.225684325249194, + 6.226027576646267, + 6.226370513278211, + 6.22671313543367, + 6.227055443401021, + 6.227397437468378, + 6.227739117923591, + 6.228080485054245, + 6.228421539147662, + 6.2287622804909, + 6.229102709370756, + 6.22944282607376, + 6.2297826308861834, + 6.230122124094032, + 6.23046130598305, + 6.230800176838721, + 6.231138736946266, + 6.231476986590644, + 6.231814926056552, + 6.232152555628428, + 6.232489875590448, + 6.232826886226528, + 6.2331635878203215, + 6.233499980655225, + 6.233836065014373, + 6.23417184118064, + 6.234507309436643, + 6.23484247006474, + 6.235177323347028, + 6.235511869565346, + 6.235846109001275, + 6.236180041936138, + 6.236513668651001, + 6.2368469894266685, + 6.237180004543691, + 6.237512714282362, + 6.237845118922714, + 6.238177218744528, + 6.238509014027325, + 6.238840505050368, + 6.239171692092669, + 6.239502575432981, + 6.239833155349803, + 6.240163432121375, + 6.240493406025686, + 6.240823077340469, + 6.2411524463432, + 6.241481513311104, + 6.2418102785211484, + 6.2421387422500505, + 6.24246690477427, + 6.2427947663700145, + 6.24312232731324, + 6.243449587879647, + 6.243776548344684, + 6.244103208983548, + 6.2444295700711825, + 6.244755631882279, + 6.245081394691276, + 6.245406858772364, + 6.245732024399479, + 6.246056891846305, + 6.246381461386276, + 6.246705733292579, + 6.247029707838144, + 6.247353385295654, + 6.247676765937545, + 6.247999850035997, + 6.248322637862945, + 6.248645129690072, + 6.248967325788812, + 6.249289226430354, + 6.249610831885634, + 6.249932142425339, + 6.2502531583199135, + 6.250573879839546, + 6.2508943072541845, + 6.251214440833524, + 6.251534280847018, + 6.251853827563865, + 6.252173081253025, + 6.252492042183205, + 6.252810710622869, + 6.253129086840234, + 6.253447171103271, + 6.253764963679704, + 6.254082464837015, + 6.2543996748424355, + 6.254716593962956, + 6.255033222465323, + 6.2553495606160325, + 6.255665608681344, + 6.255981366927267, + 6.256296835619567, + 6.25661201502377, + 6.256926905405158, + 6.2572415070287635, + 6.257555820159384, + 6.257869845061568, + 6.258183581999627, + 6.258497031237624, + 6.258810193039385, + 6.259123067668491, + 6.259435655388283, + 6.25974795646186, + 6.260059971152079, + 6.260371699721556, + 6.2606831424326685, + 6.2609942995475505, + 6.261305171328097, + 6.261615758035962, + 6.26192605993256, + 6.262236077279067, + 6.262545810336418, + 6.262855259365309, + 6.263164424626197, + 6.2634733063793, + 6.263781904884598, + 6.264090220401832, + 6.264398253190506, + 6.264706003509883, + 6.2650134716189925, + 6.265320657776623, + 6.2656275622413276, + 6.26593418527142, + 6.266240527124981, + 6.2665465880598505, + 6.266852368333635, + 6.267157868203704, + 6.267463087927189, + 6.267768027760989, + 6.268072687961766, + 6.268377068785945, + 6.268681170489718, + 6.268984993329042, + 6.269288537559637, + 6.269591803436992, + 6.269894791216357, + 6.2701975011527535, + 6.270499933500966, + 6.270802088515545, + 6.271103966450808, + 6.2714055675608416, + 6.271706892099496, + 6.272007940320389, + 6.272308712476908, + 6.2726092088222085, + 6.27290942960921, + 6.273209375090603, + 6.273509045518846, + 6.273808441146166, + 6.274107562224557, + 6.274406409005784, + 6.2747049817413805, + 6.275003280682648, + 6.27530130608066, + 6.275599058186259, + 6.2758965372500555, + 6.276193743522433, + 6.276490677253544, + 6.276787338693311, + 6.277083728091428, + 6.277379845697362, + 6.277675691760345, + 6.277971266529389, + 6.278266570253272, + 6.2785616031805445, + 6.27885636555953, + 6.279150857638324, + 6.279445079664797, + 6.279739031886587, + 6.280032714551108, + 6.280326127905549, + 6.280619272196867, + 6.280912147671798, + 6.281204754576849, + 6.2814970931583, + 6.281789163662208, + 6.282080966334403, + 6.282372501420489, + 6.282663769165845, + 6.282954769815626, + 6.283245503614761, + 6.2835359708079555, + 6.2838261716396895, + 6.284116106354218, + 6.284405775195575, + 6.284695178407569, + 6.284984316233783, + 6.2852731889175795, + 6.2855617967020985, + 6.285850139830254, + 6.286138218544739, + 6.286426033088023, + 6.286713583702354, + 6.2870008706297575, + 6.287287894112037, + 6.287574654390776, + 6.287861151707333, + 6.288147386302848, + 6.288433358418239, + 6.288719068294203, + 6.289004516171215, + 6.289289702289533, + 6.289574626889191, + 6.289859290210005, + 6.290143692491571, + 6.290427833973263, + 6.290711714894238, + 6.290995335493433, + 6.291278696009566, + 6.291561796681135, + 6.291844637746422, + 6.292127219443487, + 6.292409542010175, + 6.292691605684109, + 6.292973410702698, + 6.29325495730313, + 6.29353624572238, + 6.293817276197201, + 6.2940980489641305, + 6.29437856425949, + 6.294658822319383, + 6.294938823379698, + 6.295218567676106, + 6.295498055444062, + 6.295777286918806, + 6.296056262335361, + 6.296334981928535, + 6.296613445932921, + 6.296891654582894, + 6.297169608112621, + 6.297447306756047, + 6.297724750746908, + 6.29800194031872, + 6.298278875704789, + 6.298555557138208, + 6.2988319848518515, + 6.299108159078384, + 6.299384080050257, + 6.299659747999705, + 6.2999351631587555, + 6.300210325759218, + 6.300485236032692, + 6.300759894210564, + 6.301034300524007, + 6.301308455203985, + 6.301582358481248, + 6.301856010586335, + 6.302129411749574, + 6.302402562201079, + 6.3026754621707575, + 6.302948111888304, + 6.303220511583202, + 6.303492661484724, + 6.303764561821935, + 6.304036212823686, + 6.3043076147186214, + 6.3045787677351735, + 6.304849672101568, + 6.3051203280458195, + 6.305390735795734, + 6.305660895578906, + 6.305930807622725, + 6.306200472154372, + 6.306469889400817, + 6.306739059588822, + 6.307007982944945, + 6.30727665969553, + 6.30754509006672, + 6.307813274284446, + 6.308081212574433, + 6.308348905162201, + 6.3086163522730585, + 6.308883554132113, + 6.309150510964262, + 6.309417222994198, + 6.309683690446407, + 6.309949913545169, + 6.310215892514559, + 6.310481627578445, + 6.310747118960494, + 6.311012366884163, + 6.3112773715727055, + 6.311542133249171, + 6.311806652136404, + 6.312070928457045, + 6.312334962433529, + 6.312598754288091, + 6.312862304242757, + 6.313125612519352, + 6.313388679339497, + 6.313651504924611, + 6.313914089495908, + 6.314176433274402, + 6.3144385364809015, + 6.3147003993360125, + 6.314962022060142, + 6.31522340487349, + 6.31548454799606, + 6.315745451647648, + 6.316006116047853, + 6.316266541416072, + 6.316526727971497, + 6.316786675933125, + 6.317046385519747, + 6.3173058569499565, + 6.3175650904421445, + 6.317824086214503, + 6.318082844485024, + 6.318341365471499, + 6.318599649391518, + 6.3188576964624765, + 6.319115506901567, + 6.319373080925781, + 6.319630418751916, + 6.319887520596567, + 6.320144386676133, + 6.32040101720681, + 6.3206574124046, + 6.320913572485307, + 6.321169497664536, + 6.321425188157693, + 6.321680644179986, + 6.321935865946432, + 6.322190853671841, + 6.322445607570834, + 6.322700127857831, + 6.322954414747057, + 6.323208468452541, + 6.3234622891881145, + 6.3237158771674125, + 6.323969232603875, + 6.324222355710748, + 6.324475246701077, + 6.324727905787718, + 6.324980333183329, + 6.325232529100372, + 6.325484493751116, + 6.325736227347635, + 6.325987730101806, + 6.326239002225316, + 6.326490043929656, + 6.326740855426121, + 6.326991436925815, + 6.327241788639647, + 6.327491910778334, + 6.327741803552398, + 6.3279914671721675, + 6.328240901847782, + 6.328490107789185, + 6.328739085206128, + 6.32898783430817, + 6.329236355304678, + 6.3294846484048275, + 6.329732713817601, + 6.329980551751792, + 6.330228162415999, + 6.330475546018631, + 6.330722702767908, + 6.330969632871854, + 6.331216336538307, + 6.331462813974912, + 6.331709065389124, + 6.331955090988209, + 6.33220089097924, + 6.332446465569104, + 6.332691814964494, + 6.332936939371917, + 6.333181838997689, + 6.333426514047938, + 6.333670964728601, + 6.333915191245428, + 6.334159193803979, + 6.334402972609626, + 6.3346465278675534, + 6.3348898597827565, + 6.335132968560043, + 6.335375854404033, + 6.3356185175191575, + 6.335860958109663, + 6.336103176379605, + 6.336345172532854, + 6.336586946773096, + 6.336828499303825, + 6.337069830328351, + 6.3373109400497984, + 6.337551828671103, + 6.337792496395018, + 6.338032943424108, + 6.338273169960751, + 6.338513176207143, + 6.338752962365291, + 6.33899252863702, + 6.339231875223965, + 6.339471002327582, + 6.339709910149138, + 6.339948598889719, + 6.340187068750222, + 6.340425319931363, + 6.340663352633674, + 6.340901167057503, + 6.341138763403012, + 6.341376141870182, + 6.341613302658809, + 6.341850245968507, + 6.3420869719987065, + 6.3423234809486555, + 6.342559773017419, + 6.3427958484038784, + 6.343031707306734, + 6.343267349924504, + 6.343502776455523, + 6.343737987097945, + 6.343972982049744, + 6.3442077615087085, + 6.344442325672448, + 6.344676674738391, + 6.3449108089037844, + 6.345144728365693, + 6.345378433321005, + 6.345611923966423, + 6.345845200498472, + 6.346078263113496, + 6.346311112007659, + 6.346543747376946, + 6.34677616941716, + 6.347008378323927, + 6.347240374292693, + 6.347472157518725, + 6.347703728197108, + 6.347935086522751, + 6.348166232690387, + 6.3483971668945625, + 6.348627889329653, + 6.348858400189853, + 6.349088699669177, + 6.349318787961465, + 6.349548665260377, + 6.3497783317593965, + 6.35000778765183, + 6.350237033130805, + 6.350466068389272, + 6.350694893620007, + 6.350923509015607, + 6.351151914768494, + 6.35138011107091, + 6.351608098114925, + 6.351835876092431, + 6.352063445195145, + 6.352290805614606, + 6.35251795754218, + 6.352744901169055, + 6.352971636686245, + 6.353198164284591, + 6.353424484154754, + 6.353650596487223, + 6.353876501472315, + 6.354102199300166, + 6.354327690160744, + 6.354552974243839, + 6.3547780517390695, + 6.355002922835878, + 6.355227587723533, + 6.3554520465911315, + 6.3556762996275955, + 6.355900347021675, + 6.356124188961946, + 6.356347825636811, + 6.356571257234501, + 6.356794483943075, + 6.3570175059504175, + 6.357240323444241, + 6.3574629366120865, + 6.3576853456413245, + 6.357907550719151, + 6.358129552032593, + 6.358351349768503, + 6.358572944113566, + 6.35879433525429, + 6.3590155233770185, + 6.3592365086679195, + 6.359457291312993, + 6.359677871498067, + 6.359898249408799, + 6.360118425230676, + 6.360338399149018, + 6.360558171348972, + 6.360777742015514, + 6.360997111333453, + 6.361216279487429, + 6.361435246661911, + 6.361654013041198, + 6.361872578809423, + 6.362090944150546, + 6.362309109248363, + 6.3625270742865, + 6.362744839448411, + 6.362962404917387, + 6.363179770876547, + 6.363396937508845, + 6.363613904997064, + 6.363830673523823, + 6.36404724327157, + 6.364263614422589, + 6.364479787158994, + 6.364695761662735, + 6.364911538115592, + 6.365127116699179, + 6.365342497594947, + 6.365557680984176, + 6.365772667047981, + 6.3659874559673115, + 6.366202047922953, + 6.366416443095521, + 6.366630641665469, + 6.366844643813083, + 6.367058449718486, + 6.367272059561631, + 6.367485473522311, + 6.367698691780153, + 6.367911714514618, + 6.368124541905002, + 6.368337174130438, + 6.368549611369896, + 6.3687618538021775, + 6.368973901605925, + 6.369185754959613, + 6.369397414041556, + 6.369608879029902, + 6.369820150102637, + 6.370031227437584, + 6.370242111212402, + 6.370452801604589, + 6.370663298791478, + 6.370873602950241, + 6.3710837142578844, + 6.371293632891258, + 6.371503359027044, + 6.3717128928417655, + 6.371922234511783, + 6.372131384213294, + 6.372340342122337, + 6.372549108414787, + 6.372757683266358, + 6.372966066852604, + 6.373174259348919, + 6.373382260930533, + 6.373590071772514, + 6.373797692049776, + 6.374005121937069, + 6.37421236160898, + 6.3744194112399395, + 6.374626271004217, + 6.3748329410759235, + 6.3750394216290065, + 6.375245712837259, + 6.375451814874312, + 6.3756577279136355, + 6.375863452128545, + 6.376068987692193, + 6.376274334777574, + 6.376479493557526, + 6.376684464204726, + 6.376889246891695, + 6.377093841790793, + 6.377298249074224, + 6.3775024689140345, + 6.377706501482111, + 6.377910346950184, + 6.3781140054898255, + 6.378317477272453, + 6.378520762469322, + 6.378723861251535, + 6.378926773790036, + 6.379129500255612, + 6.379332040818894, + 6.379534395650357, + 6.379736564920319, + 6.3799385487989415, + 6.380140347456229, + 6.380341961062034, + 6.380543389786049, + 6.380744633797813, + 6.3809456932667095, + 6.381146568361964, + 6.381347259252652, + 6.38154776610769, + 6.381748089095838, + 6.381948228385708, + 6.382148184145752, + 6.382347956544267, + 6.382547545749399, + 6.382746951929138, + 6.382946175251321, + 6.383145215883628, + 6.383344073993589, + 6.38354274974858, + 6.3837412433158205, + 6.38393955486238, + 6.3841376845551725, + 6.38433563256096, + 6.384533399046352, + 6.384730984177803, + 6.384928388121618, + 6.3851256110439465, + 6.385322653110789, + 6.385519514487991, + 6.385716195341247, + 6.385912695836098, + 6.386109016137937, + 6.386305156412001, + 6.386501116823378, + 6.3866968975370035, + 6.386892498717662, + 6.387087920529988, + 6.387283163138465, + 6.3874782267074215, + 6.387673111401042, + 6.3878678173833565, + 6.388062344818244, + 6.388256693869434, + 6.388450864700507, + 6.388644857474893, + 6.388838672355872, + 6.3890323095065735, + 6.389225769089978, + 6.389419051268916, + 6.389612156206072, + 6.389805084063975, + 6.389997835005011, + 6.390190409191413, + 6.390382806785268, + 6.390575027948514, + 6.390767072842937, + 6.39095894163018, + 6.3911506344717335, + 6.391342151528943, + 6.391533492963003, + 6.3917246589349626, + 6.391915649605721, + 6.392106465136034, + 6.392297105686506, + 6.392487571417593, + 6.39267786248961, + 6.39286797906272, + 6.393057921296938, + 6.393247689352138, + 6.3934372833880415, + 6.393626703564227, + 6.393815950040126, + 6.394005022975023, + 6.394193922528056, + 6.394382648858221, + 6.394571202124362, + 6.394759582485181, + 6.394947790099234, + 6.3951358251249335, + 6.395323687720544, + 6.395511378044184, + 6.395698896253831, + 6.395886242507314, + 6.396073416962318, + 6.396260419776387, + 6.396447251106913, + 6.396633911111152, + 6.39682039994621, + 6.3970067177690515, + 6.397192864736497, + 6.397378841005223, + 6.397564646731761, + 6.397750282072501, + 6.397935747183686, + 6.398121042221421, + 6.398306167341665, + 6.398491122700232, + 6.398675908452797, + 6.398860524754891, + 6.399044971761901, + 6.399229249629071, + 6.399413358511507, + 6.399597298564167, + 6.399781069941871, + 6.399964672799295, + 6.400148107290975, + 6.400331373571303, + 6.400514471794532, + 6.400697402114769, + 6.4008801646859865, + 6.401062759662011, + 6.401245187196528, + 6.4014274474430835, + 6.401609540555083, + 6.40179146668579, + 6.401973225988328, + 6.402154818615682, + 6.402336244720692, + 6.402517504456062, + 6.402698597974355, + 6.402879525427995, + 6.403060286969262, + 6.403240882750302, + 6.403421312923117, + 6.403601577639573, + 6.403781677051395, + 6.403961611310168, + 6.404141380567339, + 6.404320984974218, + 6.404500424681973, + 6.404679699841635, + 6.404858810604098, + 6.405037757120113, + 6.405216539540298, + 6.405395158015129, + 6.405573612694948, + 6.4057519037299535, + 6.405930031270211, + 6.406107995465649, + 6.406285796466053, + 6.4064634344210765, + 6.406640909480233, + 6.4068182217929, + 6.4069953715083185, + 6.407172358775591, + 6.407349183743683, + 6.407525846561427, + 6.407702347377516, + 6.4078786863405055, + 6.408054863598818, + 6.408230879300739, + 6.408406733594416, + 6.408582426627863, + 6.408757958548955, + 6.408933329505437, + 6.409108539644914, + 6.409283589114857, + 6.4094584780626, + 6.409633206635346, + 6.409807774980159, + 6.40998218324397, + 6.410156431573574, + 6.410330520115635, + 6.410504449016677, + 6.410678218423095, + 6.410851828481144, + 6.411025279336952, + 6.411198571136508, + 6.411371704025666, + 6.41154467815015, + 6.411717493655549, + 6.411890150687318, + 6.412062649390779, + 6.412234989911122, + 6.412407172393401, + 6.412579196982539, + 6.4127510638233245, + 6.412922773060417, + 6.4130943248383385, + 6.413265719301482, + 6.413436956594106, + 6.413608036860339, + 6.413778960244174, + 6.4139497268894745, + 6.4141203369399715, + 6.414290790539264, + 6.414461087830819, + 6.4146312289579726, + 6.414801214063929, + 6.414971043291763, + 6.415140716784414, + 6.415310234684695, + 6.415479597135283, + 6.41564880427873, + 6.415817856257451, + 6.415986753213738, + 6.416155495289744, + 6.416324082627498, + 6.416492515368898, + 6.416660793655707, + 6.416828917629563, + 6.416996887431974, + 6.417164703204316, + 6.417332365087835, + 6.41749987322365, + 6.417667227752748, + 6.41783442881599, + 6.418001476554102, + 6.418168371107689, + 6.41833511261722, + 6.4185017012230405, + 6.418668137065363, + 6.418834420284273, + 6.419000551019728, + 6.419166529411558, + 6.419332355599463, + 6.419498029723015, + 6.41966355192166, + 6.419828922334715, + 6.419994141101366, + 6.420159208360678, + 6.420324124251582, + 6.420488888912886, + 6.420653502483268, + 6.42081796510128, + 6.420982276905349, + 6.421146438033771, + 6.421310448624718, + 6.421474308816234, + 6.421638018746236, + 6.421801578552517, + 6.421964988372742, + 6.422128248344448, + 6.422291358605049, + 6.422454319291831, + 6.422617130541957, + 6.422779792492459, + 6.4229423052802455, + 6.423104669042105, + 6.423266883914692, + 6.423428950034539, + 6.423590867538058, + 6.423752636561528, + 6.423914257241107, + 6.42407572971283, + 6.424237054112604, + 6.4243982305762115, + 6.424559259239314, + 6.424720140237444, + 6.424880873706012, + 6.425041459780306, + 6.4252018985954855, + 6.42536219028659, + 6.425522334988534, + 6.425682332836107, + 6.4258421839639785, + 6.426001888506689, + 6.426161446598661, + 6.426320858374189, + 6.4264801239674485, + 6.426639243512489, + 6.426798217143239, + 6.426957044993505, + 6.427115727196966, + 6.427274263887184, + 6.427432655197595, + 6.427590901261515, + 6.427749002212135, + 6.427906958182525, + 6.428064769305636, + 6.428222435714294, + 6.4283799575412015, + 6.428537334918942, + 6.428694567979979, + 6.42885165685665, + 6.429008601681175, + 6.42916540258565, + 6.429322059702053, + 6.429478573162238, + 6.42963494309794, + 6.429791169640772, + 6.429947252922227, + 6.430103193073676, + 6.430258990226373, + 6.430414644511447, + 6.43057015605991, + 6.430725525002654, + 6.430880751470448, + 6.431035835593944, + 6.431190777503674, + 6.431345577330048, + 6.43150023520336, + 6.431654751253779, + 6.4318091256113625, + 6.431963358406041, + 6.432117449767631, + 6.432271399825826, + 6.432425208710205, + 6.432578876550225, + 6.4327324034752245, + 6.432885789614425, + 6.433039035096928, + 6.433192140051717, + 6.433345104607658, + 6.433497928893498, + 6.433650613037866, + 6.433803157169273, + 6.433955561416114, + 6.434107825906662, + 6.434259950769076, + 6.434411936131397, + 6.434563782121548, + 6.434715488867334, + 6.434867056496445, + 6.435018485136451, + 6.435169774914807, + 6.435320925958851, + 6.435471938395803, + 6.435622812352767, + 6.435773547956731, + 6.435924145334567, + 6.436074604613029, + 6.436224925918754, + 6.436375109378268, + 6.436525155117975, + 6.4366750632641665, + 6.436824833943015, + 6.436974467280583, + 6.4371239634028115, + 6.437273322435529, + 6.4374225445044475, + 6.437571629735165, + 6.437720578253162, + 6.437869390183809, + 6.438018065652354, + 6.438166604783937, + 6.43831500770358, + 6.43846327453619, + 6.43861140540656, + 6.43875940043937, + 6.4389072597591825, + 6.43905498349045, + 6.439202571757507, + 6.439350024684576, + 6.439497342395767, + 6.439644525015072, + 6.439791572666372, + 6.439938485473434, + 6.440085263559912, + 6.4402319070493474, + 6.440378416065165, + 6.440524790730681, + 6.440671031169093, + 6.44081713750349, + 6.440963109856848, + 6.441108948352028, + 6.44125465311178, + 6.4414002242587385, + 6.441545661915429, + 6.4416909662042645, + 6.441836137247545, + 6.441981175167457, + 6.4421260800860765, + 6.442270852125367, + 6.442415491407179, + 6.4425599980532535, + 6.4427043721852195, + 6.4428486139245935, + 6.44299272339278, + 6.443136700711074, + 6.443280546000658, + 6.4434242593826045, + 6.443567840977872, + 6.443711290907313, + 6.443854609291664, + 6.443997796251555, + 6.444140851907504, + 6.4442837763799155, + 6.444426569789089, + 6.444569232255208, + 6.4447117638983515, + 6.4448541648384845, + 6.4449964351954625, + 6.4451385750890315, + 6.445280584638829, + 6.4454224639643805, + 6.445564213185103, + 6.445705832420305, + 6.445847321789183, + 6.445988681410829, + 6.446129911404219, + 6.446271011888224, + 6.446411982981608, + 6.446552824803021, + 6.446693537471007, + 6.4468341211040014, + 6.446974575820332, + 6.447114901738215, + 6.44725509897576, + 6.447395167650969, + 6.447535107881735, + 6.447674919785843, + 6.447814603480969, + 6.447954159084683, + 6.448093586714445, + 6.44823288648761, + 6.448372058521422, + 6.44851110293302, + 6.4486500198394365, + 6.448788809357593, + 6.448927471604306, + 6.4490660066962855, + 6.449204414750135, + 6.449342695882348, + 6.449480850209313, + 6.449618877847313, + 6.449756778912522, + 6.449894553521007, + 6.4500322017887335, + 6.4501697238315545, + 6.450307119765222, + 6.450444389705379, + 6.4505815337675605, + 6.4507185520672, + 6.450855444719624, + 6.450992211840049, + 6.451128853543591, + 6.451265369945259, + 6.451401761159956, + 6.45153802730248, + 6.451674168487523, + 6.451810184829672, + 6.451946076443409, + 6.452081843443113, + 6.452217485943055, + 6.452353004057403, + 6.45248839790022, + 6.452623667585463, + 6.452758813226988, + 6.452893834938542, + 6.453028732833771, + 6.453163507026217, + 6.453298157629316, + 6.4534326847564, + 6.4535670885207, + 6.453701369035339, + 6.453835526413338, + 6.453969560767615, + 6.454103472210985, + 6.454237260856157, + 6.45437092681574, + 6.454504470202236, + 6.454637891128048, + 6.454771189705472, + 6.454904366046704, + 6.455037420263834, + 6.455170352468854, + 6.455303162773648, + 6.45543585129, + 6.455568418129592, + 6.455700863404002, + 6.455833187224709, + 6.455965389703083, + 6.4560974709504, + 6.456229431077829, + 6.456361270196438, + 6.456492988417193, + 6.456624585850959, + 6.456756062608499, + 6.456887418800474, + 6.457018654537444, + 6.457149769929868, + 6.457280765088103, + 6.457411640122405, + 6.457542395142928, + 6.457673030259728, + 6.457803545582756, + 6.457933941221865, + 6.458064217286806, + 6.45819437388723, + 6.458324411132687, + 6.4584543291326275, + 6.458584127996399, + 6.458713807833254, + 6.458843368752338, + 6.458972810862702, + 6.459102134273293, + 6.459231339092962, + 6.459360425430456, + 6.459489393394426, + 6.459618243093422, + 6.459746974635893, + 6.45987558813019, + 6.460004083684565, + 6.46013246140717, + 6.460260721406057, + 6.460388863789181, + 6.460516888664396, + 6.460644796139459, + 6.460772586322027, + 6.460900259319659, + 6.461027815239813, + 6.461155254189851, + 6.461282576277037, + 6.461409781608535, + 6.46153687029141, + 6.461663842432631, + 6.461790698139067, + 6.461917437517491, + 6.462044060674577, + 6.462170567716901, + 6.46229695875094, + 6.462423233883077, + 6.462549393219594, + 6.462675436866677, + 6.462801364930415, + 6.462927177516797, + 6.46305287473172, + 6.46317845668098, + 6.463303923470276, + 6.463429275205211, + 6.4635545119912905, + 6.463679633933926, + 6.4638046411384265, + 6.4639295337100116, + 6.4640543117538, + 6.4641789753748125, + 6.464303524677979, + 6.464427959768129, + 6.464552280749996, + 6.46467648772822, + 6.464800580807345, + 6.464924560091814, + 6.46504842568598, + 6.4651721776940985, + 6.465295816220328, + 6.465419341368733, + 6.465542753243283, + 6.46566605194785, + 6.465789237586213, + 6.465912310262054, + 6.466035270078962, + 6.466158117140427, + 6.466280851549851, + 6.4664034734105345, + 6.4665259828256865, + 6.4666483798984205, + 6.466770664731756, + 6.466892837428618, + 6.467014898091836, + 6.467136846824147, + 6.467258683728192, + 6.467380408906519, + 6.467502022461581, + 6.467623524495739, + 6.467744915111258, + 6.46786619441031, + 6.4679873624949735, + 6.468108419467233, + 6.468229365428981, + 6.468350200482015, + 6.468470924728038, + 6.4685915382686625, + 6.468712041205405, + 6.468832433639692, + 6.468952715672855, + 6.469072887406132, + 6.469192948940671, + 6.469312900377524, + 6.469432741817653, + 6.469552473361926, + 6.469672095111116, + 6.4697916071659085, + 6.4699110096268955, + 6.470030302594573, + 6.470149486169349, + 6.470268560451538, + 6.470387525541363, + 6.470506381538953, + 6.470625128544347, + 6.470743766657493, + 6.470862295978245, + 6.470980716606369, + 6.471099028641534, + 6.471217232183324, + 6.471335327331227, + 6.471453314184641, + 6.471571192842875, + 6.471688963405143, + 6.4718066259705695, + 6.471924180638192, + 6.472041627506952, + 6.4721589666757025, + 6.472276198243205, + 6.472393322308132, + 6.472510338969062, + 6.47262724832449, + 6.472744050472812, + 6.472860745512341, + 6.472977333541294, + 6.473093814657805, + 6.473210188959909, + 6.473326456545559, + 6.473442617512614, + 6.473558671958844, + 6.4736746199819315, + 6.4737904616794655, + 6.47390619714895, + 6.474021826487795, + 6.474137349793325, + 6.474252767162773, + 6.474368078693283, + 6.474483284481911, + 6.474598384625623, + 6.4747133792212965, + 6.474828268365721, + 6.474943052155596, + 6.475057730687532, + 6.475172304058054, + 6.475286772363592, + 6.475401135700496, + 6.47551539416502, + 6.475629547853336, + 6.475743596861522, + 6.475857541285572, + 6.475971381221392, + 6.476085116764796, + 6.476198748011516, + 6.476312275057191, + 6.476425697997375, + 6.476539016927535, + 6.4766522319430475, + 6.4767653431392045, + 6.476878350611209, + 6.476991254454177, + 6.477104054763139, + 6.4772167516330335, + 6.477329345158719, + 6.47744183543496, + 6.477554222556439, + 6.477666506617749, + 6.477778687713399, + 6.477890765937807, + 6.47800274138531, + 6.4781146141501535, + 6.478226384326499, + 6.4783380520084215, + 6.478449617289909, + 6.478561080264864, + 6.478672441027103, + 6.478783699670356, + 6.4788948562882664, + 6.479005910974394, + 6.479116863822209, + 6.4792277149251, + 6.479338464376368, + 6.479449112269228, + 6.479559658696812, + 6.479670103752161, + 6.4797804475282375, + 6.479890690117916, + 6.4800008316139825, + 6.480110872109144, + 6.480220811696018, + 6.480330650467138, + 6.480440388514954, + 6.48055002593183, + 6.480659562810046, + 6.480768999241795, + 6.480878335319191, + 6.480987571134257, + 6.481096706778935, + 6.481205742345084, + 6.481314677924475, + 6.481423513608799, + 6.481532249489659, + 6.481640885658576, + 6.481749422206988, + 6.481857859226248, + 6.481966196807624, + 6.4820744350423025, + 6.482182574021386, + 6.482290613835891, + 6.482398554576755, + 6.482506396334828, + 6.482614139200878, + 6.482721783265591, + 6.482829328619568, + 6.482936775353329, + 6.483044123557309, + 6.483151373321859, + 6.483258524737253, + 6.483365577893674, + 6.48347253288123, + 6.4835793897899405, + 6.483686148709746, + 6.483792809730503, + 6.483899372941988, + 6.484005838433888, + 6.484112206295818, + 6.484218476617304, + 6.484324649487791, + 6.484430724996642, + 6.48453670323314, + 6.484642584286484, + 6.484748368245794, + 6.484854055200103, + 6.484959645238367, + 6.485065138449459, + 6.4851705349221715, + 6.485275834745214, + 6.485381038007214, + 6.485486144796721, + 6.4855911552022, + 6.485696069312037, + 6.485800887214535, + 6.485905608997919, + 6.486010234750328, + 6.486114764559826, + 6.4862191985143935, + 6.4863235367019305, + 6.486427779210255, + 6.486531926127108, + 6.486635977540145, + 6.4867399335369464, + 6.486843794205009, + 6.4869475596317505, + 6.487051229904508, + 6.4871548051105385, + 6.48725828533702, + 6.48736167067105, + 6.4874649611996436, + 6.487568157009741, + 6.487671258188199, + 6.487774264821795, + 6.4878771769972285, + 6.487979994801118, + 6.488082718320005, + 6.488185347640347, + 6.488287882848527, + 6.488390324030847, + 6.488492671273528, + 6.488594924662716, + 6.488697084284473, + 6.4887991502247875, + 6.4889011225695645, + 6.489003001404632, + 6.489104786815741, + 6.489206478888561, + 6.489308077708683, + 6.489409583361623, + 6.489510995932815, + 6.4896123155076175, + 6.489713542171307, + 6.489814676009085, + 6.489915717106073, + 6.490016665547317, + 6.4901175214177815, + 6.490218284802356, + 6.490318955785851, + 6.4904195344529985, + 6.490520020888455, + 6.490620415176795, + 6.490720717402523, + 6.490820927650057, + 6.490921046003743, + 6.491021072547849, + 6.491121007366568, + 6.49122085054401, + 6.491320602164212, + 6.491420262311131, + 6.4915198310686515, + 6.491619308520578, + 6.491718694750639, + 6.491817989842485, + 6.491917193879691, + 6.4920163069457555, + 6.492115329124099, + 6.492214260498066, + 6.492313101150927, + 6.4924118511658735, + 6.492510510626023, + 6.492609079614412, + 6.492707558214004, + 6.492805946507691, + 6.492904244578279, + 6.493002452508507, + 6.493100570381034, + 6.493198598278442, + 6.493296536283243, + 6.493394384477865, + 6.4934921429446675, + 6.493589811765931, + 6.493687391023863, + 6.493784880800591, + 6.493882281178173, + 6.4939795922385875, + 6.49407681406374, + 6.494173946735459, + 6.4942709903355, + 6.494367944945543, + 6.494464810647192, + 6.494561587521978, + 6.494658275651355, + 6.494754875116704, + 6.494851385999331, + 6.494947808380467, + 6.495044142341269, + 6.4951403879628185, + 6.495236545326125, + 6.4953326145121215, + 6.495428595601667, + 6.4955244886755485, + 6.495620293814476, + 6.495716011099086, + 6.4958116406099435, + 6.495907182427536, + 6.496002636632281, + 6.49609800330452, + 6.496193282524521, + 6.496288474372479, + 6.496383578928514, + 6.4964785962726745, + 6.4965735264849345, + 6.496668369645195, + 6.496763125833283, + 6.496857795128953, + 6.496952377611888, + 6.497046873361693, + 6.497141282457907, + 6.497235604979989, + 6.497329841007329, + 6.497423990619247, + 6.497518053894982, + 6.497612030913707, + 6.497705921754521, + 6.497799726496451, + 6.497893445218449, + 6.4979870779993965, + 6.498080624918102, + 6.498174086053303, + 6.498267461483663, + 6.498360751287775, + 6.498453955544159, + 6.498547074331263, + 6.4986401077274625, + 6.498733055811063, + 6.498825918660296, + 6.498918696353323, + 6.499011388968234, + 6.499103996583045, + 6.499196519275703, + 6.499288957124081, + 6.499381310205984, + 6.499473578599143, + 6.499565762381218, + 6.499657861629799, + 6.4997498764224035, + 6.4998418068364785, + 6.499933652949401, + 6.500025414838475, + 6.500117092580934, + 6.500208686253944, + 6.500300195934595, + 6.500391621699911, + 6.50048296362684, + 6.500574221792266, + 6.500665396272997, + 6.500756487145774, + 6.5008474944872665, + 6.500938418374071, + 6.50102925888272, + 6.501120016089669, + 6.501210690071309, + 6.501301280903958, + 6.501391788663862, + 6.501482213427202, + 6.501572555270087, + 6.501662814268555, + 6.501752990498575, + 6.501843084036048, + 6.501933094956802, + 6.502023023336598, + 6.502112869251127, + 6.502202632776012, + 6.5022923139868025, + 6.502381912958983, + 6.502471429767967, + 6.502560864489099, + 6.502650217197654, + 6.50273948796884, + 6.502828676877792, + 6.50291778399958, + 6.503006809409204, + 6.503095753181593, + 6.503184615391611, + 6.50327339611405, + 6.503362095423638, + 6.503450713395028, + 6.5035392501028095, + 6.503627705621503, + 6.503716080025558, + 6.503804373389358, + 6.503892585787218, + 6.503980717293386, + 6.504068767982037, + 6.504156737927285, + 6.50424462720317, + 6.5043324358836685, + 6.504420164042687, + 6.504507811754063, + 6.504595379091571, + 6.504682866128911, + 6.504770272939721, + 6.504857599597569, + 6.504944846175957, + 6.505032012748318, + 6.505119099388018, + 6.505206106168358, + 6.505293033162568, + 6.5053798804438125, + 6.50546664808519, + 6.505553336159732, + 6.5056399447404, + 6.505726473900092, + 6.5058129237116376, + 6.5058992942478, + 6.505985585581275, + 6.506071797784693, + 6.506157930930616, + 6.506243985091543, + 6.506329960339901, + 6.506415856748056, + 6.506501674388304, + 6.506587413332877, + 6.506673073653939, + 6.506758655423589, + 6.50684415871386, + 6.506929583596716, + 6.50701493014406, + 6.507100198427725, + 6.50718538851948, + 6.507270500491029, + 6.507355534414007, + 6.507440490359986, + 6.507525368400473, + 6.507610168606907, + 6.507694891050663, + 6.507779535803051, + 6.507864102935313, + 6.507948592518629, + 6.50803300462411, + 6.508117339322806, + 6.5082015966857, + 6.508285776783708, + 6.508369879687685, + 6.508453905468417, + 6.508537854196627, + 6.508621725942974, + 6.50870552077805, + 6.508789238772384, + 6.50887287999644, + 6.508956444520617, + 6.509039932415249, + 6.509123343750607, + 6.509206678596897, + 6.509289937024258, + 6.509373119102769, + 6.509456224902442, + 6.509539254493225, + 6.509622207945005, + 6.509705085327598, + 6.509787886710763, + 6.5098706121641925, + 6.509953261757514, + 6.510035835560291, + 6.510118333642027, + 6.510200756072157, + 6.510283102920055, + 6.510365374255029, + 6.510447570146328, + 6.510529690663133, + 6.510611735874562, + 6.510693705849674, + 6.510775600657459, + 6.510857420366847, + 6.510939165046703, + 6.511020834765832, + 6.511102429592971, + 6.511183949596799, + 6.51126539484593, + 6.511346765408914, + 6.511428061354238, + 6.511509282750328, + 6.511590429665547, + 6.511671502168193, + 6.511752500326505, + 6.511833424208657, + 6.511914273882761, + 6.511995049416866, + 6.512075750878959, + 6.512156378336967, + 6.51223693185875, + 6.512317411512109, + 6.512397817364784, + 6.512478149484448, + 6.512558407938716, + 6.512638592795141, + 6.512718704121211, + 6.512798741984356, + 6.512878706451942, + 6.512958597591273, + 6.513038415469591, + 6.513118160154078, + 6.513197831711854, + 6.5132774302099765, + 6.513356955715442, + 6.513436408295186, + 6.513515788016081, + 6.51359509494494, + 6.513674329148514, + 6.513753490693493, + 6.513832579646505, + 6.513911596074118, + 6.5139905400428395, + 6.514069411619113, + 6.514148210869325, + 6.514226937859799, + 6.514305592656797, + 6.514384175326522, + 6.514462685935116, + 6.514541124548659, + 6.51461949123317, + 6.514697786054611, + 6.514776009078879, + 6.514854160371815, + 6.5149322399991965, + 6.515010248026741, + 6.515088184520106, + 6.51516604954489, + 6.51524384316663, + 6.515321565450803, + 6.515399216462828, + 6.51547679626806, + 6.515554304931797, + 6.515631742519279, + 6.51570910909568, + 6.51578640472612, + 6.515863629475657, + 6.515940783409288, + 6.516017866591955, + 6.516094879088535, + 6.516171820963849, + 6.516248692282655, + 6.516325493109657, + 6.516402223509496, + 6.516478883546754, + 6.516555473285954, + 6.516631992791561, + 6.516708442127979, + 6.516784821359553, + 6.516861130550573, + 6.516937369765263, + 6.517013539067795, + 6.517089638522279, + 6.517165668192765, + 6.517241628143246, + 6.517317518437657, + 6.517393339139872, + 6.517469090313708, + 6.517544772022924, + 6.517620384331218, + 6.517695927302235, + 6.517771400999555, + 6.5178468054867045, + 6.517922140827147, + 6.517997407084294, + 6.518072604321494, + 6.518147732602039, + 6.518222791989164, + 6.5182977825460435, + 6.518372704335796, + 6.518447557421483, + 6.518522341866106, + 6.518597057732609, + 6.518671705083879, + 6.518746283982746, + 6.518820794491981, + 6.5188952366742985, + 6.518969610592355, + 6.519043916308747, + 6.519118153886019, + 6.519192323386655, + 6.519266424873082, + 6.519340458407668, + 6.519414424052728, + 6.519488321870516, + 6.51956215192323, + 6.519635914273012, + 6.519709608981946, + 6.51978323611206, + 6.519856795725324, + 6.519930287883651, + 6.520003712648899, + 6.520077070082866, + 6.5201503602473, + 6.520223583203883, + 6.520296739014249, + 6.520369827739969, + 6.520442849442562, + 6.520515804183487, + 6.520588692024152, + 6.520661513025902, + 6.52073426725003, + 6.520806954757772, + 6.520879575610308, + 6.520952129868761, + 6.521024617594199, + 6.521097038847632, + 6.521169393690017, + 6.521241682182253, + 6.521313904385183, + 6.521386060359597, + 6.521458150166227, + 6.521530173865748, + 6.521602131518781, + 6.521674023185891, + 6.521745848927591, + 6.521817608804332, + 6.521889302876514, + 6.52196093120448, + 6.522032493848519, + 6.522103990868863, + 6.52217542232569, + 6.522246788279121, + 6.522318088789227, + 6.522389323916017, + 6.522460493719449, + 6.522531598259425, + 6.522602637595793, + 6.5226736117883455, + 6.522744520896819, + 6.5228153649808975, + 6.522886144100208, + 6.522956858314323, + 6.523027507682764, + 6.523098092264993, + 6.523168612120421, + 6.523239067308402, + 6.523309457888237, + 6.5233797839191725, + 6.5234500454604, + 6.523520242571059, + 6.523590375310231, + 6.523660443736947, + 6.5237304479101805, + 6.523800387888853, + 6.523870263731832, + 6.523940075497931, + 6.524009823245909, + 6.524079507034471, + 6.524149126922269, + 6.5242186829678985, + 6.524288175229906, + 6.524357603766781, + 6.524426968636959, + 6.524496269898825, + 6.524565507610707, + 6.524634681830883, + 6.524703792617573, + 6.524772840028947, + 6.524841824123121, + 6.524910744958158, + 6.524979602592067, + 6.525048397082804, + 6.525117128488271, + 6.52518579686632, + 6.525254402274746, + 6.525322944771294, + 6.5253914244136535, + 6.5254598412594635, + 6.5255281953663085, + 6.525596486791722, + 6.525664715593182, + 6.525732881828116, + 6.525800985553897, + 6.525869026827849, + 6.52593700570724, + 6.526004922249284, + 6.52607277651115, + 6.526140568549945, + 6.52620829842273, + 6.526275966186511, + 6.526343571898245, + 6.526411115614832, + 6.5264785973931225, + 6.526546017289915, + 6.526613375361955, + 6.526680671665938, + 6.526747906258504, + 6.526815079196244, + 6.526882190535697, + 6.526949240333347, + 6.52701622864563, + 6.5270831555289295, + 6.527150021039575, + 6.527216825233847, + 6.527283568167972, + 6.527350249898126, + 6.527416870480436, + 6.527483429970974, + 6.527549928425762, + 6.5276163659007675, + 6.527682742451913, + 6.527749058135066, + 6.527815313006042, + 6.5278815071206076, + 6.527947640534475, + 6.52801371330331, + 6.528079725482723, + 6.5281456771282755, + 6.528211568295477, + 6.528277399039789, + 6.528343169416618, + 6.528408879481322, + 6.528474529289207, + 6.528540118895531, + 6.528605648355498, + 6.528671117724264, + 6.528736527056933, + 6.528801876408558, + 6.528867165834142, + 6.528932395388639, + 6.528997565126951, + 6.52906267510393, + 6.529127725374377, + 6.5291927159930445, + 6.529257647014633, + 6.529322518493795, + 6.529387330485131, + 6.52945208304319, + 6.529516776222477, + 6.529581410077438, + 6.529645984662478, + 6.529710500031946, + 6.529774956240144, + 6.529839353341323, + 6.529903691389686, + 6.529967970439385, + 6.530032190544521, + 6.5300963517591475, + 6.530160454137267, + 6.530224497732834, + 6.530288482599754, + 6.530352408791879, + 6.530416276363016, + 6.530480085366921, + 6.5305438358573005, + 6.530607527887812, + 6.530671161512064, + 6.530734736783617, + 6.530798253755978, + 6.5308617124826105, + 6.530925113016925, + 6.5309884554122855, + 6.531051739722005, + 6.5311149659993495, + 6.5311781342975355, + 6.531241244669729, + 6.531304297169051, + 6.53136729184857, + 6.531430228761306, + 6.531493107960235, + 6.531555929498278, + 6.531618693428314, + 6.531681399803167, + 6.531744048675617, + 6.531806640098395, + 6.531869174124182, + 6.531931650805612, + 6.53199407019527, + 6.532056432345694, + 6.532118737309371, + 6.532180985138745, + 6.532243175886206, + 6.5323053096041, + 6.532367386344723, + 6.5324294061603245, + 6.532491369103106, + 6.532553275225219, + 6.532615124578769, + 6.532676917215813, + 6.532738653188362, + 6.532800332548377, + 6.532861955347772, + 6.532923521638415, + 6.532985031472124, + 6.5330464849006695, + 6.533107881975778, + 6.533169222749124, + 6.5332305072723384, + 6.533291735597003, + 6.533352907774652, + 6.533414023856773, + 6.533475083894806, + 6.533536087940144, + 6.533597036044133, + 6.533657928258072, + 6.533718764633213, + 6.533779545220759, + 6.53384027007187, + 6.5339009392376575, + 6.533961552769182, + 6.534022110717463, + 6.534082613133472, + 6.53414306006813, + 6.534203451572316, + 6.53426378769686, + 6.534324068492545, + 6.534384294010109, + 6.5344444643002415, + 6.534504579413588, + 6.534564639400744, + 6.534624644312264, + 6.53468459419865, + 6.534744489110363, + 6.534804329097813, + 6.534864114211367, + 6.534923844501347, + 6.534983520018025, + 6.535043140811626, + 6.535102706932337, + 6.53516221843029, + 6.535221675355576, + 6.5352810777582375, + 6.535340425688274, + 6.5353997191956354, + 6.5354589583302305, + 6.535518143141917, + 6.535577273680512, + 6.535636349995783, + 6.535695372137453, + 6.535754340155201, + 6.535813254098659, + 6.535872114017414, + 6.535930919961005, + 6.535989671978929, + 6.536048370120638, + 6.536107014435536, + 6.5361656049729815, + 6.5362241417822915, + 6.536282624912732, + 6.53634105441353, + 6.536399430333863, + 6.536457752722866, + 6.536516021629627, + 6.536574237103189, + 6.536632399192552, + 6.53669050794667, + 6.53674856341445, + 6.536806565644759, + 6.536864514686413, + 6.53692241058819, + 6.536980253398817, + 6.537038043166981, + 6.537095779941322, + 6.537153463770435, + 6.537211094702874, + 6.5372686727871425, + 6.537326198071705, + 6.537383670604977, + 6.537441090435335, + 6.537498457611107, + 6.537555772180577, + 6.5376130341919865, + 6.537670243693531, + 6.5377274007333614, + 6.537784505359589, + 6.5378415576202755, + 6.537898557563441, + 6.537955505237061, + 6.538012400689067, + 6.538069243967348, + 6.538126035119746, + 6.5381827741940635, + 6.538239461238055, + 6.538296096299431, + 6.538352679425864, + 6.538409210664977, + 6.53846569006435, + 6.538522117671523, + 6.538578493533988, + 6.538634817699197, + 6.538691090214556, + 6.538747311127429, + 6.538803480485134, + 6.53885959833495, + 6.538915664724109, + 6.538971679699802, + 6.5390276433091765, + 6.539083555599333, + 6.539139416617334, + 6.539195226410195, + 6.539250985024892, + 6.5393066925083545, + 6.5393623489074715, + 6.539417954269087, + 6.539473508640002, + 6.539529012066978, + 6.539584464596729, + 6.539639866275929, + 6.539695217151208, + 6.539750517269155, + 6.539805766676314, + 6.539860965419187, + 6.539916113544234, + 6.539971211097873, + 6.540026258126478, + 6.540081254676379, + 6.54013620079387, + 6.540191096525195, + 6.540245941916559, + 6.540300737014122, + 6.540355481864008, + 6.540410176512293, + 6.540464821005012, + 6.540519415388158, + 6.540573959707683, + 6.540628454009496, + 6.540682898339462, + 6.540737292743406, + 6.540791637267112, + 6.540845931956322, + 6.540900176856732, + 6.540954372013999, + 6.541008517473739, + 6.541062613281524, + 6.541116659482888, + 6.541170656123318, + 6.541224603248263, + 6.541278500903128, + 6.541332349133279, + 6.541386147984039, + 6.541439897500689, + 6.541493597728469, + 6.541547248712578, + 6.541600850498171, + 6.541654403130366, + 6.541707906654234, + 6.541761361114811, + 6.541814766557087, + 6.5418681230260125, + 6.5419214305664966, + 6.541974689223408, + 6.542027899041573, + 6.542081060065776, + 6.542134172340763, + 6.5421872359112365, + 6.542240250821861, + 6.5422932171172565, + 6.542346134842004, + 6.542399004040642, + 6.542451824757673, + 6.542504597037551, + 6.542557320924696, + 6.542609996463484, + 6.54266262369825, + 6.542715202673291, + 6.542767733432861, + 6.542820216021173, + 6.542872650482402, + 6.54292503686068, + 6.542977375200101, + 6.543029665544715, + 6.543081907938536, + 6.543134102425534, + 6.543186249049639, + 6.543238347854745, + 6.543290398884699, + 6.543342402183314, + 6.543394357794359, + 6.543446265761564, + 6.543498126128619, + 6.543549938939174, + 6.543601704236838, + 6.543653422065183, + 6.543705092467737, + 6.543756715487989, + 6.543808291169391, + 6.543859819555352, + 6.543911300689244, + 6.543962734614396, + 6.544014121374099, + 6.544065461011606, + 6.544116753570126, + 6.544167999092833, + 6.544219197622859, + 6.5442703492032965, + 6.544321453877198, + 6.544372511687578, + 6.544423522677411, + 6.544474486889632, + 6.544525404367135, + 6.544576275152778, + 6.544627099289377, + 6.54467787681971, + 6.544728607786516, + 6.544779292232494, + 6.544829930200304, + 6.544880521732566, + 6.544931066871863, + 6.544981565660737, + 6.5450320181416926, + 6.545082424357195, + 6.5451327843496685, + 6.545183098161502, + 6.545233365835042, + 6.545283587412599, + 6.545333762936442, + 6.545383892448805, + 6.5454339759918785, + 6.545484013607818, + 6.545534005338739, + 6.54558395122672, + 6.545633851313798, + 6.545683705641973, + 6.5457335142532065, + 6.545783277189421, + 6.5458329944925016, + 6.545882666204294, + 6.545932292366607, + 6.5459818730212085, + 6.5460314082098305, + 6.546080897974164, + 6.546130342355866, + 6.546179741396552, + 6.546229095137798, + 6.546278403621147, + 6.546327666888101, + 6.5463768849801225, + 6.546426057938637, + 6.546475185805034, + 6.5465242686206615, + 6.546573306426834, + 6.546622299264823, + 6.546671247175866, + 6.546720150201162, + 6.5467690083818715, + 6.5468178217591175, + 6.546866590373985, + 6.54691531426752, + 6.546963993480735, + 6.547012628054601, + 6.547061218030053, + 6.547109763447988, + 6.5471582643492665, + 6.547206720774709, + 6.547255132765103, + 6.547303500361194, + 6.547351823603692, + 6.54740010253327, + 6.5474483371905645, + 6.547496527616173, + 6.5475446738506555, + 6.547592775934536, + 6.547640833908302, + 6.547688847812402, + 6.547736817687248, + 6.547784743573216, + 6.547832625510645, + 6.547880463539835, + 6.547928257701051, + 6.547976008034521, + 6.548023714580434, + 6.548071377378944, + 6.548118996470169, + 6.548166571894187, + 6.548214103691043, + 6.548261591900744, + 6.548309036563258, + 6.548356437718519, + 6.548403795406425, + 6.548451109666834, + 6.54849838053957, + 6.548545608064421, + 6.548592792281136, + 6.548639933229429, + 6.5486870309489795, + 6.548734085479428, + 6.548781096860378, + 6.548828065131399, + 6.548874990332023, + 6.548921872501747, + 6.548968711680029, + 6.549015507906294, + 6.549062261219929, + 6.549108971660286, + 6.549155639266679, + 6.549202264078389, + 6.549248846134657, + 6.549295385474692, + 6.549341882137663, + 6.549388336162707, + 6.549434747588924, + 6.549481116455376, + 6.549527442801091, + 6.549573726665063, + 6.549619968086246, + 6.54966616710356, + 6.549712323755891, + 6.549758438082089, + 6.549804510120966, + 6.549850539911301, + 6.5498965274918355, + 6.549942472901276, + 6.549988376178295, + 6.550034237361527, + 6.550080056489574, + 6.550125833601001, + 6.550171568734336, + 6.550217261928076, + 6.550262913220677, + 6.550308522650564, + 6.550354090256127, + 6.550399616075717, + 6.5504451001476545, + 6.550490542510221, + 6.550535943201663, + 6.550581302260197, + 6.550626619723998, + 6.5506718956312096, + 6.55071713001994, + 6.5507623229282625, + 6.5508074743942135, + 6.550852584455797, + 6.550897653150982, + 6.550942680517701, + 6.550987666593852, + 6.5510326114173, + 6.551077515025874, + 6.551122377457368, + 6.551167198749543, + 6.551211978940122, + 6.5512567180667975, + 6.551301416167225, + 6.551346073279025, + 6.551390689439787, + 6.55143526468706, + 6.551479799058366, + 6.551524292591186, + 6.551568745322969, + 6.551613157291132, + 6.551657528533055, + 6.551701859086084, + 6.55174614898753, + 6.551790398274673, + 6.551834606984756, + 6.5518787751549885, + 6.551922902822546, + 6.551966990024569, + 6.552011036798167, + 6.552055043180411, + 6.552099009208342, + 6.552142934918964, + 6.55218682034925, + 6.552230665536135, + 6.552274470516524, + 6.552318235327287, + 6.552361960005261, + 6.552405644587246, + 6.552449289110012, + 6.552492893610292, + 6.55253645812479, + 6.55257998269017, + 6.552623467343068, + 6.552666912120083, + 6.552710317057783, + 6.552753682192699, + 6.552797007561333, + 6.552840293200149, + 6.552883539145582, + 6.5529267454340285, + 6.552969912101855, + 6.553013039185396, + 6.553056126720949, + 6.55309917474478, + 6.553142183293123, + 6.553185152402175, + 6.553228082108105, + 6.553270972447043, + 6.553313823455091, + 6.553356635168316, + 6.553399407622751, + 6.553442140854397, + 6.553484834899223, + 6.5535274897931615, + 6.553570105572114, + 6.553612682271952, + 6.55365521992851, + 6.553697718577591, + 6.553740178254966, + 6.553782598996371, + 6.55382498083751, + 6.553867323814058, + 6.5539096279616516, + 6.553951893315899, + 6.553994119912374, + 6.554036307786617, + 6.554078456974137, + 6.55412056751041, + 6.5541626394308805, + 6.554204672770959, + 6.554246667566024, + 6.554288623851423, + 6.554330541662466, + 6.554372421034438, + 6.554414262002588, + 6.55445606460213, + 6.554497828868251, + 6.554539554836102, + 6.554581242540803, + 6.554622892017443, + 6.554664503301075, + 6.554706076426724, + 6.554747611429382, + 6.554789108344006, + 6.554830567205525, + 6.554871988048833, + 6.554913370908794, + 6.554954715820239, + 6.554996022817966, + 6.555037291936744, + 6.555078523211306, + 6.555119716676359, + 6.555160872366572, + 6.5552019903165855, + 6.555243070561008, + 6.555284113134415, + 6.555325118071353, + 6.555366085406334, + 6.555407015173839, + 6.555447907408318, + 6.55548876214419, + 6.555529579415841, + 6.555570359257625, + 6.555611101703868, + 6.55565180678886, + 6.555692474546863, + 6.555733105012105, + 6.555773698218784, + 6.555814254201069, + 6.555854772993092, + 6.5558952546289575, + 6.555935699142739, + 6.555976106568478, + 6.556016476940184, + 6.556056810291835, + 6.556097106657381, + 6.556137366070737, + 6.556177588565788, + 6.55621777417639, + 6.556257922936366, + 6.556298034879509, + 6.55633811003958, + 6.5563781484503085, + 6.556418150145395, + 6.556458115158507, + 6.556498043523283, + 6.556537935273331, + 6.556577790442226, + 6.556617609063513, + 6.556657391170707, + 6.5566971367972915, + 6.55673684597672, + 6.5567765187424145, + 6.556816155127767, + 6.556855755166139, + 6.556895318890861, + 6.556934846335232, + 6.556974337532523, + 6.5570137925159715, + 6.557053211318787, + 6.557092593974147, + 6.557131940515199, + 6.557171250975061, + 6.55721052538682, + 6.55724976378353, + 6.55728896619822, + 6.557328132663884, + 6.557367263213489, + 6.557406357879971, + 6.5574454166962335, + 6.557484439695151, + 6.557523426909571, + 6.557562378372306, + 6.557601294116141, + 6.557640174173832, + 6.557679018578101, + 6.557717827361646, + 6.557756600557129, + 6.5577953381971845, + 6.557834040314419, + 6.5578727069414064, + 6.557911338110691, + 6.557949933854789, + 6.557988494206185, + 6.5580270191973336, + 6.558065508860662, + 6.558103963228566, + 6.558142382333412, + 6.558180766207536, + 6.5582191148832445, + 6.558257428392817, + 6.558295706768497, + 6.558333950042508, + 6.5583721582470345, + 6.558410331414238, + 6.558448469576246, + 6.55848657276516, + 6.558524641013051, + 6.5585626743519585, + 6.558600672813897, + 6.558638636430846, + 6.558676565234761, + 6.558714459257566, + 6.5587523185311545, + 6.558790143087391, + 6.558827932958114, + 6.55886568817513, + 6.558903408770216, + 6.558941094775121, + 6.558978746221563, + 6.559016363141235, + 6.559053945565798, + 6.559091493526883, + 6.559129007056094, + 6.559166486185006, + 6.559203930945164, + 6.559241341368084, + 6.559278717485254, + 6.559316059328134, + 6.5593533669281525, + 6.55939064031671, + 6.55942787952518, + 6.559465084584905, + 6.5595022555272005, + 6.559539392383352, + 6.559576495184617, + 6.559613563962224, + 6.559650598747375, + 6.559687599571238, + 6.5597245664649595, + 6.559761499459651, + 6.559798398586399, + 6.559835263876262, + 6.559872095360268, + 6.559908893069416, + 6.55994565703468, + 6.559982387287001, + 6.560019083857298, + 6.560055746776453, + 6.560092376075328, + 6.560128971784752, + 6.560165533935527, + 6.560202062558426, + 6.560238557684196, + 6.5602750193435515, + 6.560311447567184, + 6.560347842385754, + 6.560384203829893, + 6.560420531930207, + 6.560456826717272, + 6.560493088221638, + 6.560529316473824, + 6.560565511504323, + 6.5606016733436, + 6.5606378020220895, + 6.560673897570204, + 6.560709960018322, + 6.560745989396796, + 6.560781985735954, + 6.560817949066091, + 6.560853879417477, + 6.560889776820355, + 6.560925641304939, + 6.560961472901413, + 6.5609972716399385, + 6.5610330375506445, + 6.561068770663637, + 6.5611044710089885, + 6.56114013861675, + 6.561175773516942, + 6.561211375739555, + 6.561246945314559, + 6.5612824822718885, + 6.561317986641456, + 6.561353458453145, + 6.561388897736811, + 6.561424304522281, + 6.561459678839359, + 6.5614950207178175, + 6.561530330187402, + 6.561565607277834, + 6.561600852018804, + 6.561636064439977, + 6.561671244570991, + 6.561706392441455, + 6.561741508080956, + 6.561776591519045, + 6.561811642785254, + 6.561846661909085, + 6.5618816489200125, + 6.561916603847483, + 6.56195152672092, + 6.561986417569716, + 6.562021276423237, + 6.562056103310824, + 6.562090898261791, + 6.562125661305423, + 6.562160392470979, + 6.562195091787693, + 6.562229759284769, + 6.562264394991387, + 6.5622989989367, + 6.562333571149831, + 6.5623681116598815, + 6.562402620495921, + 6.562437097686996, + 6.562471543262126, + 6.562505957250303, + 6.562540339680492, + 6.5625746905816325, + 6.562609009982636, + 6.562643297912389, + 6.562677554399752, + 6.562711779473555, + 6.562745973162608, + 6.562780135495689, + 6.562814266501554, + 6.562848366208929, + 6.562882434646513, + 6.562916471842984, + 6.5629504778269885, + 6.562984452627149, + 6.563018396272062, + 6.563052308790296, + 6.563086190210397, + 6.56312004056088, + 6.563153859870237, + 6.563187648166933, + 6.563221405479406, + 6.563255131836069, + 6.5632888272653105, + 6.56332249179549, + 6.563356125454942, + 6.563389728271976, + 6.563423300274875, + 6.563456841491896, + 6.563490351951269, + 6.563523831681199, + 6.563557280709865, + 6.563590699065422, + 6.563624086775998, + 6.563657443869692, + 6.563690770374582, + 6.563724066318717, + 6.563757331730123, + 6.563790566636799, + 6.5638237710667156, + 6.563856945047823, + 6.563890088608041, + 6.563923201775268, + 6.5639562845773725, + 6.5639893370422016, + 6.5640223591975735, + 6.564055351071282, + 6.564088312691098, + 6.564121244084762, + 6.564154145279994, + 6.564187016304484, + 6.5642198571859005, + 6.564252667951885, + 6.564285448630053, + 6.564318199247996, + 6.564350919833278, + 6.564383610413441, + 6.5644162710159994, + 6.564448901668442, + 6.564481502398235, + 6.564514073232817, + 6.564546614199602, + 6.564579125325981, + 6.564611606639314, + 6.564644058166944, + 6.564676479936182, + 6.564708871974318, + 6.564741234308616, + 6.564773566966313, + 6.5648058699746255, + 6.56483814336074, + 6.564870387151822, + 6.5649026013750085, + 6.564934786057416, + 6.56496694122613, + 6.564999066908219, + 6.56503116313072, + 6.565063229920649, + 6.565095267304996, + 6.565127275310726, + 6.565159253964779, + 6.565191203294071, + 6.5652231233254925, + 6.565255014085912, + 6.565286875602168, + 6.56531870790108, + 6.5653505110094414, + 6.565382284954019, + 6.565414029761556, + 6.5654457454587725, + 6.565477432072361, + 6.565509089628994, + 6.565540718155314, + 6.565572317677946, + 6.5656038882234835, + 6.565635429818499, + 6.565666942489542, + 6.565698426263135, + 6.565729881165778, + 6.565761307223945, + 6.565792704464088, + 6.5658240729126325, + 6.5658554125959805, + 6.565886723540511, + 6.565918005772576, + 6.565949259318507, + 6.5659804842046094, + 6.566011680457164, + 6.566042848102427, + 6.566073987166634, + 6.566105097675992, + 6.566136179656687, + 6.5661672331348795, + 6.5661982581367075, + 6.566229254688284, + 6.566260222815697, + 6.566291162545013, + 6.566322073902272, + 6.5663529569134935, + 6.566383811604671, + 6.5664146380017705, + 6.566445436130742, + 6.566476206017507, + 6.566506947687962, + 6.566537661167985, + 6.566568346483423, + 6.566599003660105, + 6.566629632723836, + 6.566660233700394, + 6.5666908066155365, + 6.566721351494994, + 6.566751868364478, + 6.566782357249672, + 6.566812818176239, + 6.566843251169818, + 6.566873656256022, + 6.566904033460443, + 6.56693438280865, + 6.566964704326186, + 6.566994998038574, + 6.567025263971308, + 6.5670555021498656, + 6.567085712599697, + 6.5671158953462285, + 6.567146050414865, + 6.567176177830987, + 6.567206277619953, + 6.567236349807098, + 6.567266394417732, + 6.567296411477143, + 6.567326401010595, + 6.567356363043332, + 6.567386297600569, + 6.567416204707504, + 6.567446084389309, + 6.567475936671133, + 6.567505761578101, + 6.567535559135317, + 6.56756532936786, + 6.567595072300789, + 6.567624787959136, + 6.567654476367912, + 6.567684137552107, + 6.567713771536685, + 6.567743378346589, + 6.567772958006737, + 6.567802510542028, + 6.567832035977333, + 6.5678615343375055, + 6.567891005647372, + 6.567920449931738, + 6.567949867215386, + 6.567979257523078, + 6.568008620879549, + 6.568037957309514, + 6.568067266837666, + 6.568096549488673, + 6.568125805287182, + 6.568155034257818, + 6.568184236425181, + 6.568213411813851, + 6.568242560448383, + 6.568271682353313, + 6.56830077755315, + 6.568329846072383, + 6.56835888793548, + 6.568387903166885, + 6.568416891791018, + 6.568445853832278, + 6.568474789315043, + 6.568503698263668, + 6.568532580702484, + 6.568561436655799, + 6.568590266147904, + 6.568619069203062, + 6.5686478458455175, + 6.568676596099489, + 6.568705319989176, + 6.568734017538756, + 6.568762688772381, + 6.568791333714185, + 6.568819952388278, + 6.568848544818746, + 6.568877111029655, + 6.568905651045051, + 6.568934164888953, + 6.568962652585361, + 6.568991114158253, + 6.569019549631585, + 6.569047959029289, + 6.569076342375278, + 6.569104699693441, + 6.569133031007646, + 6.56916133634174, + 6.569189615719544, + 6.569217869164864, + 6.569246096701478, + 6.569274298353144, + 6.5693024741436, + 6.569330624096562, + 6.569358748235722, + 6.5693868465847505, + 6.569414919167299, + 6.569442966006995, + 6.569470987127445, + 6.569498982552233, + 6.5695269523049244, + 6.569554896409058, + 6.5695828148881565, + 6.569610707765717, + 6.569638575065215, + 6.569666416810109, + 6.569694233023831, + 6.569722023729792, + 6.569749788951385, + 6.569777528711978, + 6.569805243034921, + 6.569832931943539, + 6.5698605954611375, + 6.569888233611001, + 6.569915846416392, + 6.56994343390055, + 6.569970996086696, + 6.569998532998029, + 6.570026044657726, + 6.570053531088941, + 6.570080992314812, + 6.57010842835845, + 6.5701358392429485, + 6.570163224991379, + 6.570190585626791, + 6.570217921172214, + 6.570245231650654, + 6.570272517085101, + 6.5702997774985175, + 6.570327012913849, + 6.570354223354021, + 6.570381408841932, + 6.570408569400467, + 6.570435705052485, + 6.570462815820823, + 6.570489901728306, + 6.570516962797726, + 6.5705439990518615, + 6.570571010513469, + 6.570597997205283, + 6.570624959150018, + 6.570651896370367, + 6.570678808889003, + 6.570705696728577, + 6.57073255991172, + 6.570759398461043, + 6.570786212399135, + 6.570813001748564, + 6.570839766531878, + 6.570866506771607, + 6.570893222490255, + 6.570919913710309, + 6.570946580454235, + 6.5709732227444775, + 6.57099984060346, + 6.571026434053587, + 6.571053003117242, + 6.571079547816786, + 6.571106068174562, + 6.571132564212893, + 6.5711590359540795, + 6.571185483420401, + 6.57121190663412, + 6.571238305617474, + 6.571264680392684, + 6.571291030981948, + 6.5713173574074455, + 6.571343659691335, + 6.571369937855755, + 6.571396191922822, + 6.571422421914634, + 6.57144862785327, + 6.571474809760785, + 6.571500967659216, + 6.57152710157058, + 6.571553211516874, + 6.571579297520073, + 6.571605359602134, + 6.5716313977849925, + 6.571657412090564, + 6.571683402540746, + 6.5717093691574116, + 6.571735311962418, + 6.5717612309776, + 6.571787126224773, + 6.571812997725733, + 6.571838845502255, + 6.5718646695760965, + 6.5718904699689915, + 6.5719162467026555, + 6.571941999798784, + 6.571967729279054, + 6.571993435165121, + 6.57201911747862, + 6.572044776241168, + 6.572070411474363, + 6.57209602319978, + 6.572121611438977, + 6.57214717621349, + 6.572172717544837, + 6.572198235454516, + 6.572223729964003, + 6.572249201094758, + 6.572274648868219, + 6.572300073305806, + 6.572325474428916, + 6.57235085225893, + 6.572376206817209, + 6.572401538125091, + 6.572426846203899, + 6.572452131074933, + 6.572477392759476, + 6.572502631278788, + 6.572527846654114, + 6.572553038906677, + 6.5725782080576804, + 6.572603354128309, + 6.572628477139726, + 6.572653577113079, + 6.5726786540694935, + 6.572703708030075, + 6.572728739015912, + 6.572753747048075, + 6.572778732147608, + 6.572803694335543, + 6.572828633632891, + 6.572853550060642, + 6.572878443639768, + 6.57290331439122, + 6.572928162335932, + 6.572952987494819, + 6.572977789888776, + 6.5730025695386765, + 6.573027326465378, + 6.573052060689719, + 6.573076772232517, + 6.573101461114571, + 6.5731261273566615, + 6.57315077097955, + 6.573175392003977, + 6.573199990450666, + 6.573224566340323, + 6.573249119693632, + 6.573273650531258, + 6.573298158873848, + 6.573322644742031, + 6.573347108156418, + 6.573371549137597, + 6.573395967706139, + 6.573420363882597, + 6.573444737687508, + 6.5734690891413825, + 6.57349341826472, + 6.573517725077995, + 6.573542009601669, + 6.573566271856178, + 6.573590511861947, + 6.5736147296393765, + 6.573638925208851, + 6.573663098590733, + 6.573687249805371, + 6.573711378873091, + 6.573735485814205, + 6.573759570649, + 6.57378363339775, + 6.573807674080707, + 6.573831692718105, + 6.573855689330162, + 6.573879663937073, + 6.573903616559019, + 6.573927547216159, + 6.573951455928635, + 6.573975342716572, + 6.573999207600074, + 6.574023050599228, + 6.574046871734102, + 6.574070671024745, + 6.574094448491189, + 6.5741182041534465, + 6.574141938031514, + 6.574165650145366, + 6.574189340514962, + 6.574213009160238, + 6.57423665610112, + 6.574260281357509, + 6.57428388494929, + 6.5743074668963315, + 6.574331027218479, + 6.574354565935565, + 6.5743780830674, + 6.574401578633779, + 6.574425052654478, + 6.574448505149253, + 6.574471936137846, + 6.574495345639976, + 6.574518733675347, + 6.574542100263644, + 6.574565445424534, + 6.574588769177668, + 6.574612071542675, + 6.574635352539169, + 6.574658612186746, + 6.574681850504982, + 6.574705067513437, + 6.574728263231652, + 6.574751437679151, + 6.574774590875437, + 6.5747977228400005, + 6.57482083359231, + 6.574843923151817, + 6.574866991537956, + 6.5748900387701426, + 6.5749130648677765, + 6.574936069850238, + 6.5749590537368885, + 6.574982016547074, + 6.575004958300122, + 6.575027879015342, + 6.575050778712026, + 6.575073657409448, + 6.575096515126865, + 6.575119351883515, + 6.57514216769862, + 6.5751649625913835, + 6.575187736580991, + 6.575210489686612, + 6.575233221927396, + 6.575255933322477, + 6.575278623890972, + 6.575301293651977, + 6.575323942624573, + 6.575346570827825, + 6.575369178280776, + 6.575391765002457, + 6.575414331011877, + 6.5754368763280295, + 6.575459400969891, + 6.575481904956419, + 6.575504388306556, + 6.575526851039226, + 6.575549293173334, + 6.57557171472777, + 6.575594115721406, + 6.575616496173096, + 6.575638856101676, + 6.575661195525968, + 6.5756835144647745, + 6.57570581293688, + 6.575728090961052, + 6.575750348556043, + 6.575772585740585, + 6.575794802533396, + 6.575816998953176, + 6.575839175018606, + 6.575861330748351, + 6.57588346616106, + 6.575905581275364, + 6.575927676109877, + 6.575949750683193, + 6.575971805013895, + 6.575993839120545, + 6.576015853021689, + 6.576037846735853, + 6.576059820281552, + 6.576081773677278, + 6.576103706941511, + 6.576125620092711, + 6.576147513149321, + 6.576169386129769, + 6.5761912390524655, + 6.576213071935801, + 6.576234884798154, + 6.576256677657885, + 6.576278450533334, + 6.576300203442828, + 6.5763219364046765, + 6.576343649437171, + 6.576365342558588, + 6.5763870157871835, + 6.576408669141203, + 6.576430302638868, + 6.5764519162983905, + 6.57647351013796, + 6.576495084175753, + 6.576516638429926, + 6.576538172918623, + 6.576559687659968, + 6.5765811826720695, + 6.5766026579730195, + 6.576624113580894, + 6.57664554951375, + 6.576666965789633, + 6.576688362426564, + 6.576709739442555, + 6.576731096855599, + 6.576752434683671, + 6.576773752944732, + 6.576795051656724, + 6.576816330837573, + 6.576837590505192, + 6.576858830677471, + 6.57688005137229, + 6.5769012526075095, + 6.5769224344009745, + 6.576943596770512, + 6.576964739733936, + 6.57698586330904, + 6.577006967513604, + 6.577028052365392, + 6.577049117882149, + 6.577070164081606, + 6.577091190981479, + 6.5771121985994645, + 6.577133186953243, + 6.577154156060482, + 6.577175105938829, + 6.577196036605918, + 6.577216948079366, + 6.577237840376774, + 6.577258713515726, + 6.577279567513791, + 6.577300402388522, + 6.577321218157454, + 6.5773420148381065, + 6.577362792447986, + 6.57738355100458, + 6.57740429052536, + 6.577425011027781, + 6.5774457125292844, + 6.577466395047294, + 6.5774870585992185, + 6.577507703202449, + 6.577528328874361, + 6.577548935632317, + 6.577569523493659, + 6.577590092475716, + 6.577610642595801, + 6.577631173871211, + 6.577651686319227, + 6.577672179957113, + 6.577692654802117, + 6.577713110871474, + 6.577733548182401, + 6.5777539667521, + 6.577774366597756, + 6.57779474773654, + 6.577815110185606, + 6.577835453962093, + 6.577855779083124, + 6.577876085565806, + 6.57789637342723, + 6.577916642684474, + 6.577936893354595, + 6.57795712545464, + 6.577977339001636, + 6.577997534012599, + 6.5780177105045246, + 6.578037868494396, + 6.578058007999179, + 6.578078129035824, + 6.578098231621269, + 6.578118315772431, + 6.578138381506218, + 6.578158428839516, + 6.578178457789199, + 6.578198468372125, + 6.578218460605136, + 6.578238434505061, + 6.578258390088711, + 6.578278327372881, + 6.578298246374351, + 6.578318147109889, + 6.578338029596243, + 6.57835789385015, + 6.578377739888328, + 6.57839756772748, + 6.578417377384297, + 6.578437168875451, + 6.578456942217599, + 6.578476697427385, + 6.578496434521438, + 6.578516153516368, + 6.578535854428772, + 6.578555537275234, + 6.57857520207232, + 6.5785948488365795, + 6.5786144775845505, + 6.578634088332754, + 6.5786536810976965, + 6.578673255895868, + 6.578692812743744, + 6.578712351657785, + 6.578731872654439, + 6.578751375750132, + 6.578770860961283, + 6.578790328304291, + 6.578809777795541, + 6.578829209451405, + 6.578848623288235, + 6.578868019322375, + 6.578887397570147, + 6.5789067580478635, + 6.5789261007718185, + 6.5789454257582936, + 6.578964733023553, + 6.578984022583849, + 6.579003294455415, + 6.579022548654473, + 6.579041785197228, + 6.579061004099873, + 6.579080205378582, + 6.579099389049517, + 6.579118555128826, + 6.579137703632638, + 6.579156834577071, + 6.579175947978228, + 6.579195043852195, + 6.5792141222150455, + 6.579233183082839, + 6.579252226471616, + 6.5792712523974055, + 6.579290260876222, + 6.579309251924064, + 6.579328225556916, + 6.579347181790748, + 6.579366120641516, + 6.579385042125158, + 6.579403946257601, + 6.579422833054758, + 6.579441702532522, + 6.579460554706778, + 6.579479389593393, + 6.579498207208219, + 6.5795170075670955, + 6.579535790685846, + 6.579554556580279, + 6.57957330526619, + 6.579592036759359, + 6.5796107510755535, + 6.5796294482305235, + 6.579648128240007, + 6.579666791119725, + 6.579685436885388, + 6.579704065552687, + 6.579722677137304, + 6.5797412716549015, + 6.579759849121133, + 6.579778409551632, + 6.579796952962022, + 6.579815479367911, + 6.57983398878489, + 6.579852481228541, + 6.579870956714427, + 6.5798894152581, + 6.579907856875094, + 6.579926281580931, + 6.579944689391122, + 6.579963080321157, + 6.579981454386516, + 6.579999811602664, + 6.580018151985052, + 6.580036475549118, + 6.580054782310285, + 6.580073072283958, + 6.580091345485535, + 6.580109601930394, + 6.580127841633901, + 6.5801460646114105, + 6.5801642708782575, + 6.580182460449767, + 6.580200633341249, + 6.580218789567999, + 6.580236929145299, + 6.5802550520884155, + 6.580273158412604, + 6.580291248133103, + 6.58030932126514, + 6.580327377823925, + 6.580345417824655, + 6.580363441282516, + 6.580381448212677, + 6.580399438630295, + 6.58041741255051, + 6.580435369988452, + 6.5804533109592365, + 6.580471235477962, + 6.580489143559716, + 6.580507035219571, + 6.580524910472587, + 6.5805427693338086, + 6.5805606118182665, + 6.5805784379409795, + 6.580596247716952, + 6.580614041161172, + 6.5806318182886185, + 6.580649579114252, + 6.580667323653022, + 6.580685051919864, + 6.5807027639296996, + 6.580720459697437, + 6.58073813923797, + 6.580755802566178, + 6.580773449696929, + 6.580791080645078, + 6.580808695425461, + 6.5808262940529065, + 6.580843876542226, + 6.580861442908219, + 6.580878993165669, + 6.580896527329349, + 6.580914045414017, + 6.580931547434419, + 6.580949033405285, + 6.580966503341331, + 6.5809839572572635, + 6.581001395167773, + 6.581018817087535, + 6.581036223031213, + 6.58105361301346, + 6.58107098704891, + 6.581088345152187, + 6.581105687337901, + 6.58112301362065, + 6.581140324015015, + 6.581157618535568, + 6.581174897196864, + 6.581192160013447, + 6.581209406999847, + 6.581226638170578, + 6.581243853540145, + 6.581261053123037, + 6.581278236933733, + 6.581295404986695, + 6.58131255729637, + 6.581329693877199, + 6.581346814743603, + 6.581363919909994, + 6.581381009390768, + 6.581398083200308, + 6.581415141352987, + 6.58143218386316, + 6.581449210745173, + 6.581466222013357, + 6.581483217682029, + 6.581500197765496, + 6.581517162278048, + 6.581534111233963, + 6.581551044647509, + 6.581567962532937, + 6.581584864904487, + 6.581601751776385, + 6.581618623162845, + 6.581635479078065, + 6.581652319536235, + 6.581669144551529, + 6.5816859541381065, + 6.581702748310118, + 6.581719527081697, + 6.581736290466966, + 6.581753038480037, + 6.581769771135003, + 6.58178648844595, + 6.581803190426946, + 6.581819877092052, + 6.58183654845531, + 6.581853204530754, + 6.581869845332402, + 6.58188647087426, + 6.581903081170322, + 6.581919676234569, + 6.581936256080968, + 6.581952820723473, + 6.581969370176029, + 6.581985904452562, + 6.582002423566991, + 6.582018927533219, + 6.5820354163651364, + 6.582051890076623, + 6.582068348681542, + 6.582084792193749, + 6.582101220627083, + 6.582117633995371, + 6.582134032312428, + 6.582150415592057, + 6.582166783848047, + 6.582183137094175, + 6.582199475344204, + 6.5822157986118865, + 6.582232106910961, + 6.582248400255156, + 6.582264678658182, + 6.5822809421337425, + 6.582297190695525, + 6.5823134243572055, + 6.582329643132449, + 6.582345847034905, + 6.582362036078214, + 6.582378210276, + 6.582394369641876, + 6.582410514189445, + 6.582426643932295, + 6.582442758884001, + 6.582458859058128, + 6.582474944468227, + 6.582491015127835, + 6.582507071050481, + 6.582523112249677, + 6.582539138738925, + 6.582555150531715, + 6.582571147641523, + 6.582587130081813, + 6.582603097866039, + 6.582619051007638, + 6.58263498952004, + 6.582650913416658, + 6.582666822710896, + 6.582682717416145, + 6.582698597545782, + 6.582714463113175, + 6.582730314131675, + 6.582746150614626, + 6.582761972575355, + 6.582777780027182, + 6.582793572983408, + 6.582809351457329, + 6.5828251154622235, + 6.58284086501136, + 6.582856600117996, + 6.582872320795373, + 6.582888027056725, + 6.58290371891527, + 6.5829193963842165, + 6.5829350594767595, + 6.582950708206083, + 6.582966342585358, + 6.582981962627742, + 6.582997568346384, + 6.583013159754418, + 6.583028736864969, + 6.583044299691144, + 6.583059848246046, + 6.58307538254276, + 6.583090902594361, + 6.583106408413912, + 6.583121900014464, + 6.583137377409055, + 6.583152840610714, + 6.583168289632455, + 6.58318372448728, + 6.583199145188183, + 6.58321455174814, + 6.583229944180122, + 6.583245322497081, + 6.583260686711964, + 6.583276036837699, + 6.583291372887208, + 6.583306694873399, + 6.583322002809169, + 6.5833372967074, + 6.583352576580967, + 6.583367842442729, + 6.583383094305536, + 6.583398332182226, + 6.583413556085623, + 6.583428766028541, + 6.583443962023781, + 6.583459144084134, + 6.583474312222379, + 6.583489466451283, + 6.5835046067836, + 6.583519733232072, + 6.583534845809433, + 6.583549944528404, + 6.583565029401689, + 6.5835801004419885, + 6.583595157661986, + 6.583610201074355, + 6.583625230691756, + 6.5836402465268415, + 6.583655248592248, + 6.583670236900604, + 6.583685211464523, + 6.583700172296611, + 6.583715119409458, + 6.583730052815647, + 6.583744972527746, + 6.583759878558312, + 6.583774770919892, + 6.583789649625021, + 6.5838045146862205, + 6.583819366116004, + 6.5838342039268705, + 6.583849028131309, + 6.583863838741796, + 6.583878635770798, + 6.58389341923077, + 6.583908189134153, + 6.58392294549338, + 6.583937688320872, + 6.583952417629037, + 6.583967133430271, + 6.583981835736961, + 6.583996524561481, + 6.584011199916196, + 6.584025861813457, + 6.584040510265605, + 6.584055145284967, + 6.584069766883864, + 6.584084375074602, + 6.584098969869476, + 6.58411355128077, + 6.584128119320757, + 6.584142674001698, + 6.5841572153358445, + 6.5841717433354345, + 6.584186258012698, + 6.584200759379849, + 6.5842152474490945, + 6.58422972223263, + 6.584244183742636, + 6.584258631991286, + 6.5842730669907406, + 6.58428748875315, + 6.5843018972906515, + 6.584316292615373, + 6.584330674739431, + 6.58434504367493, + 6.584359399433965, + 6.584373742028618, + 6.584388071470962, + 6.584402387773057, + 6.584416690946953, + 6.584430981004688, + 6.584445257958292, + 6.584459521819778, + 6.584473772601155, + 6.5844880103144146, + 6.584502234971543, + 6.584516446584512, + 6.584530645165282, + 6.584544830725805, + 6.584559003278019, + 6.5845731628338555, + 6.584587309405231, + 6.584601443004052, + 6.584615563642215, + 6.584629671331605, + 6.5846437660840955, + 6.584657847911551, + 6.584671916825822, + 6.584685972838751, + 6.584700015962169, + 6.584714046207896, + 6.5847280635877405, + 6.5847420681135, + 6.584756059796963, + 6.584770038649906, + 6.584784004684095, + 6.584797957911284, + 6.584811898343216, + 6.5848258259916275, + 6.584839740868239, + 6.584853642984762, + 6.5848675323529, + 6.58488140898434, + 6.584895272890764, + 6.584909124083841, + 6.584922962575229, + 6.584936788376575, + 6.584950601499516, + 6.584964401955679, + 6.584978189756678, + 6.584991964914121, + 6.585005727439598, + 6.585019477344696, + 6.585033214640987, + 6.5850469393400335, + 6.585060651453387, + 6.585074350992588, + 6.58508803796917, + 6.58510171239465, + 6.585115374280537, + 6.585129023638333, + 6.585142660479525, + 6.585156284815589, + 6.5851698966579955, + 6.5851834960182, + 6.585197082907647, + 6.585210657337775, + 6.585224219320009, + 6.5852377688657615, + 6.58525130598644, + 6.585264830693436, + 6.585278342998135, + 6.585291842911908, + 6.585305330446119, + 6.58531880561212, + 6.5853322684212525, + 6.585345718884848, + 6.585359157014227, + 6.585372582820701, + 6.585385996315568, + 6.585399397510121, + 6.585412786415637, + 6.585426163043388, + 6.58543952740463, + 6.585452879510614, + 6.585466219372576, + 6.5854795470017455, + 6.585492862409339, + 6.585506165606563, + 6.585519456604616, + 6.585532735414685, + 6.585546002047947, + 6.585559256515565, + 6.585572498828699, + 6.585585728998492, + 6.585598947036082, + 6.585612152952592, + 6.585625346759138, + 6.585638528466825, + 6.585651698086749, + 6.585664855629992, + 6.58567800110763, + 6.5856911345307285, + 6.58570425591034, + 6.5857173652575085, + 6.5857304625832676, + 6.585743547898643, + 6.585756621214647, + 6.585769682542283, + 6.585782731892545, + 6.585795769276415, + 6.585808794704868, + 6.585821808188866, + 6.585834809739364, + 6.585847799367303, + 6.585860777083617, + 6.585873742899229, + 6.585886696825052, + 6.5858996388719895, + 6.585912569050935, + 6.58592548737277, + 6.585938393848368, + 6.585951288488594, + 6.5859641713042985, + 6.585977042306327, + 6.585989901505512, + 6.586002748912676, + 6.586015584538633, + 6.586028408394187, + 6.586041220490131, + 6.586054020837247, + 6.586066809446312, + 6.586079586328089, + 6.58609235149333, + 6.5861051049527815, + 6.586117846717177, + 6.586130576797241, + 6.586143295203688, + 6.586156001947224, + 6.586168697038541, + 6.586181380488328, + 6.586194052307258, + 6.586206712505997, + 6.586219361095201, + 6.586231998085516, + 6.586244623487579, + 6.586257237312014, + 6.586269839569441, + 6.586282430270467, + 6.586295009425688, + 6.586307577045691, + 6.586320133141054, + 6.586332677722348, + 6.586345210800128, + 6.586357732384945, + 6.586370242487337, + 6.586382741117835, + 6.586395228286956, + 6.586407704005214, + 6.586420168283106, + 6.5864326211311255, + 6.5864450625597515, + 6.586457492579458, + 6.586469911200706, + 6.586482318433948, + 6.586494714289627, + 6.586507098778177, + 6.58651947191002, + 6.586531833695573, + 6.586544184145239, + 6.586556523269412, + 6.586568851078479, + 6.586581167582817, + 6.586593472792791, + 6.586605766718759, + 6.586618049371067, + 6.586630320760054, + 6.586642580896049, + 6.586654829789371, + 6.586667067450329, + 6.586679293889223, + 6.5866915091163465, + 6.5867037131419774, + 6.586715905976388, + 6.586728087629843, + 6.586740258112594, + 6.586752417434885, + 6.586764565606949, + 6.586776702639012, + 6.58678882854129, + 6.586800943323989, + 6.586813046997305, + 6.586825139571426, + 6.586837221056529, + 6.586849291462783, + 6.586861350800349, + 6.586873399079375, + 6.586885436310003, + 6.586897462502364, + 6.586909477666581, + 6.586921481812768, + 6.586933474951025, + 6.586945457091449, + 6.586957428244126, + 6.58696938841913, + 6.586981337626527, + 6.5869932758763765, + 6.587005203178726, + 6.587017119543614, + 6.58702902498107, + 6.587040919501115, + 6.587052803113762, + 6.58706467582901, + 6.587076537656855, + 6.587088388607278, + 6.587100228690256, + 6.587112057915754, + 6.587123876293728, + 6.587135683834125, + 6.587147480546885, + 6.587159266441935, + 6.587171041529197, + 6.587182805818578, + 6.587194559319984, + 6.587206302043306, + 6.587218033998427, + 6.5872297551952235, + 6.587241465643558, + 6.587253165353289, + 6.587264854334264, + 6.58727653259632, + 6.587288200149287, + 6.587299857002988, + 6.587311503167231, + 6.587323138651819, + 6.587334763466545, + 6.587346377621196, + 6.587357981125543, + 6.587369573989356, + 6.587381156222391, + 6.5873927278343976, + 6.587404288835114, + 6.587415839234272, + 6.587427379041594, + 6.58743890826679, + 6.587450426919567, + 6.587461935009618, + 6.58747343254663, + 6.587484919540279, + 6.587496396000235, + 6.587507861936158, + 6.587519317357696, + 6.587530762274494, + 6.587542196696182, + 6.587553620632386, + 6.58756503409272, + 6.587576437086793, + 6.5875878296242, + 6.5875992117145294, + 6.587610583367365, + 6.587621944592274, + 6.587633295398822, + 6.587644635796561, + 6.587655965795037, + 6.587667285403785, + 6.587678594632332, + 6.587689893490199, + 6.587701181986896, + 6.587712460131921, + 6.587723727934771, + 6.587734985404926, + 6.587746232551863, + 6.58775746938505, + 6.587768695913942, + 6.587779912147989, + 6.587791118096632, + 6.587802313769303, + 6.587813499175424, + 6.587824674324411, + 6.5878358392256695, + 6.587846993888595, + 6.58785813832258, + 6.5878692725370005, + 6.58788039654123, + 6.587891510344631, + 6.587902613956559, + 6.587913707386357, + 6.587924790643364, + 6.587935863736908, + 6.5879469266763095, + 6.587957979470879, + 6.58796902212992, + 6.5879800546627285, + 6.587991077078588, + 6.588002089386776, + 6.588013091596562, + 6.588024083717206, + 6.588035065757962, + 6.58804603772807, + 6.588056999636767, + 6.5880679514932785, + 6.588078893306823, + 6.588089825086609, + 6.58810074684184, + 6.588111658581706, + 6.588122560315393, + 6.588133452052075, + 6.58814433380092, + 6.588155205571089, + 6.588166067371729, + 6.588176919211984, + 6.588187761100988, + 6.588198593047866, + 6.588209415061735, + 6.588220227151704, + 6.588231029326875, + 6.588241821596336, + 6.588252603969173, + 6.588263376454461, + 6.5882741390612685, + 6.5882848917986525, + 6.588295634675663, + 6.5883063677013425, + 6.5883170908847255, + 6.5883278042348365, + 6.588338507760694, + 6.588349201471305, + 6.588359885375672, + 6.588370559482787, + 6.588381223801633, + 6.588391878341188, + 6.5884025231104175, + 6.588413158118282, + 6.588423783373733, + 6.588434398885713, + 6.588445004663158, + 6.588455600714994, + 6.588466187050139, + 6.588476763677504, + 6.588487330605991, + 6.588497887844493, + 6.588508435401898, + 6.588518973287082, + 6.588529501508914, + 6.588540020076257, + 6.588550528997963, + 6.588561028282878, + 6.5885715179398385, + 6.5885819979776725, + 6.588592468405203, + 6.588602929231241, + 6.588613380464593, + 6.588623822114054, + 6.588634254188412, + 6.5886446766964495, + 6.588655089646938, + 6.588665493048641, + 6.588675886910316, + 6.588686271240712, + 6.588696646048566, + 6.588707011342614, + 6.588717367131579, + 6.588727713424177, + 6.588738050229115, + 6.5887483775550955, + 6.58875869541081, + 6.588769003804942, + 6.588779302746168, + 6.588789592243158, + 6.5887998723045715, + 6.588810142939061, + 6.58882040415527, + 6.588830655961837, + 6.588840898367389, + 6.588851131380548, + 6.588861355009928, + 6.588871569264131, + 6.588881774151757, + 6.588891969681394, + 6.588902155861622, + 6.5889123327010175, + 6.5889225002081435, + 6.588932658391561, + 6.588942807259816, + 6.588952946821453, + 6.588963077085005, + 6.588973198059, + 6.588983309751955, + 6.588993412172382, + 6.589003505328783, + 6.589013589229655, + 6.589023663883483, + 6.589033729298749, + 6.589043785483923, + 6.589053832447471, + 6.589063870197847, + 6.589073898743501, + 6.589083918092873, + 6.589093928254397, + 6.589103929236497, + 6.589113921047593, + 6.589123903696093, + 6.5891338771904, + 6.589143841538907, + 6.5891537967500025, + 6.589163742832065, + 6.589173679793467, + 6.589183607642571, + 6.589193526387733, + 6.589203436037302, + 6.5892133365996175, + 6.589223228083015, + 6.589233110495818, + 6.589242983846344, + 6.5892528481429045, + 6.5892627033938025, + 6.5892725496073306, + 6.589282386791779, + 6.589292214955426, + 6.589302034106543, + 6.589311844253397, + 6.589321645404242, + 6.58933143756733, + 6.589341220750901, + 6.589350994963191, + 6.589360760212426, + 6.589370516506824, + 6.589380263854599, + 6.589390002263952, + 6.589399731743084, + 6.58940945230018, + 6.589419163943424, + 6.589428866680989, + 6.589438560521042, + 6.5894482454717425, + 6.589457921541241, + 6.589467588737683, + 6.589477247069204, + 6.589486896543933, + 6.589496537169995, + 6.5895061689555, + 6.589515791908557, + 6.589525406037265, + 6.589535011349717, + 6.589544607853996, + 6.589554195558181, + 6.5895637744703395, + 6.589573344598537, + 6.589582905950825, + 6.589592458535253, + 6.589602002359862, + 6.589611537432683, + 6.589621063761742, + 6.589630581355057, + 6.58964009022064, + 6.589649590366493, + 6.589659081800613, + 6.589668564530989, + 6.589678038565601, + 6.589687503912423, + 6.589696960579425, + 6.589706408574563, + 6.58971584790579, + 6.589725278581053, + 6.589734700608287, + 6.5897441139954225, + 6.589753518750384, + 6.589762914881087, + 6.589772302395439, + 6.589781681301343, + 6.589791051606691, + 6.589800413319371, + 6.589809766447263, + 6.589819110998238, + 6.589828446980161, + 6.589837774400892, + 6.58984709326828, + 6.5898564035901686, + 6.589865705374395, + 6.589874998628787, + 6.589884283361168, + 6.589893559579352, + 6.589902827291146, + 6.589912086504351, + 6.589921337226762, + 6.589930579466164, + 6.589939813230333, + 6.589949038527045, + 6.589958255364064, + 6.589967463749146, + 6.5899766636900425, + 6.589985855194496, + 6.589995038270244, + 6.590004212925016, + 6.590013379166534, + 6.590022537002511, + 6.590031686440657, + 6.590040827488672, + 6.590049960154251, + 6.590059084445079, + 6.590068200368837, + 6.590077307933197, + 6.590086407145826, + 6.590095498014381, + 6.590104580546514, + 6.590113654749871, + 6.590122720632087, + 6.590131778200795, + 6.590140827463617, + 6.59014986842817, + 6.590158901102064, + 6.590167925492901, + 6.590176941608277, + 6.590185949455781, + 6.590194949042994, + 6.590203940377491, + 6.59021292346684, + 6.590221898318603, + 6.590230864940332, + 6.590239823339575, + 6.590248773523872, + 6.590257715500758, + 6.590266649277756, + 6.590275574862385, + 6.590284492262161, + 6.590293401484589, + 6.590302302537165, + 6.590311195427383, + 6.590320080162729, + 6.590328956750678, + 6.590337825198703, + 6.590346685514268, + 6.5903555377048315, + 6.590364381777843, + 6.590373217740747, + 6.590382045600981, + 6.590390865365974, + 6.590399677043149, + 6.590408480639925, + 6.590417276163711, + 6.5904260636219085, + 6.590434843021915, + 6.59044361437112, + 6.590452377676905, + 6.590461132946647, + 6.590469880187715, + 6.590478619407472, + 6.590487350613272, + 6.590496073812465, + 6.590504789012393, + 6.5905134962203915, + 6.590522195443789, + 6.5905308866899075, + 6.590539569966062, + 6.59054824527956, + 6.590556912637705, + 6.590565572047792, + 6.59057422351711, + 6.590582867052939, + 6.590591502662556, + 6.590600130353229, + 6.590608750132218, + 6.590617362006779, + 6.590625965984161, + 6.590634562071606, + 6.590643150276348, + 6.590651730605617, + 6.590660303066635, + 6.590668867666615, + 6.5906774244127675, + 6.5906859733122936, + 6.59069451437239, + 6.590703047600244, + 6.5907115730030394, + 6.590720090587951, + 6.590728600362148, + 6.590737102332792, + 6.59074559650704, + 6.590754082892042, + 6.59076256149494, + 6.59077103232287, + 6.590779495382962, + 6.590787950682339, + 6.590796398228118, + 6.59080483802741, + 6.590813270087315, + 6.5908216944149345, + 6.590830111017356, + 6.590838519901666, + 6.590846921074941, + 6.5908553145442506, + 6.590863700316662, + 6.590872078399233, + 6.590880448799013, + 6.59088881152305, + 6.59089716657838, + 6.590905513972038, + 6.590913853711048, + 6.590922185802429, + 6.590930510253196, + 6.590938827070355, + 6.590947136260905, + 6.590955437831839, + 6.590963731790146, + 6.590972018142807, + 6.590980296896795, + 6.590988568059079, + 6.590996831636621, + 6.5910050876363755, + 6.591013336065291, + 6.591021576930312, + 6.591029810238373, + 6.591038035996404, + 6.591046254211329, + 6.591054464890063, + 6.591062668039521, + 6.591070863666603, + 6.59107905177821, + 6.591087232381233, + 6.591095405482557, + 6.591103571089062, + 6.591111729207619, + 6.591119879845096, + 6.591128023008354, + 6.591136158704245, + 6.591144286939618, + 6.591152407721314, + 6.5911605210561675, + 6.591168626951009, + 6.59117672541266, + 6.591184816447935, + 6.591192900063647, + 6.591200976266599, + 6.5912090450635885, + 6.591217106461405, + 6.591225160466837, + 6.591233207086661, + 6.59124124632765, + 6.59124927819657, + 6.591257302700183, + 6.591265319845243, + 6.591273329638495, + 6.591281332086685, + 6.591289327196544, + 6.5912973149748035, + 6.591305295428188, + 6.591313268563413, + 6.5913212343871885, + 6.591329192906222, + 6.591337144127207, + 6.591345088056841, + 6.591353024701808, + 6.591360954068789, + 6.591368876164457, + 6.591376790995479, + 6.591384698568519, + 6.591392598890232, + 6.591400491967266, + 6.591408377806267, + 6.591416256413869, + 6.591424127796707, + 6.591431991961405, + 6.59143984891458, + 6.591447698662846, + 6.591455541212813, + 6.5914633765710775, + 6.591471204744238, + 6.591479025738881, + 6.591486839561589, + 6.5914946462189405, + 6.591502445717506, + 6.591510238063848, + 6.591518023264528, + 6.591525801326097, + 6.591533572255102, + 6.591541336058084, + 6.591549092741577, + 6.591556842312109, + 6.591564584776204, + 6.591572320140378, + 6.591580048411143, + 6.591587769595002, + 6.5915954836984545, + 6.5916031907279935, + 6.591610890690106, + 6.591618583591272, + 6.591626269437968, + 6.591633948236661, + 6.5916416199938155, + 6.5916492847158885, + 6.591656942409331, + 6.591664593080588, + 6.591672236736099, + 6.591679873382298, + 6.591687503025612, + 6.591695125672463, + 6.591702741329268, + 6.591710350002434, + 6.591717951698369, + 6.5917255464234685, + 6.591733134184125, + 6.591740714986726, + 6.591748288837652, + 6.591755855743277, + 6.591763415709971, + 6.591770968744094, + 6.591778514852007, + 6.5917860540400595, + 6.591793586314598, + 6.591801111681961, + 6.591808630148484, + 6.591816141720495, + 6.591823646404315, + 6.591831144206261, + 6.591838635132644, + 6.59184611918977, + 6.591853596383936, + 6.591861066721439, + 6.591868530208562, + 6.59187598685159, + 6.591883436656797, + 6.591890879630455, + 6.5918983157788285, + 6.591905745108176, + 6.5919131676247495, + 6.591920583334799, + 6.591927992244564, + 6.591935394360282, + 6.591942789688181, + 6.591950178234487, + 6.591957560005419, + 6.591964935007189, + 6.591972303246006, + 6.59197966472807, + 6.591987019459578, + 6.591994367446722, + 6.592001708695682, + 6.5920090432126415, + 6.592016371003771, + 6.592023692075239, + 6.592031006433208, + 6.592038314083834, + 6.5920456150332685, + 6.592052909287656, + 6.592060196853135, + 6.5920674777358395, + 6.5920747519419, + 6.592082019477436, + 6.592089280348566, + 6.592096534561402, + 6.592103782122048, + 6.592111023036605, + 6.592118257311167, + 6.592125484951825, + 6.592132705964659, + 6.592139920355749, + 6.592147128131167, + 6.592154329296979, + 6.592161523859246, + 6.592168711824025, + 6.592175893197363, + 6.592183067985309, + 6.592190236193899, + 6.592197397829167, + 6.5922045528971385, + 6.592211701403839, + 6.592218843355283, + 6.592225978757484, + 6.592233107616446, + 6.592240229938168, + 6.592247345728649, + 6.592254454993874, + 6.592261557739828, + 6.59226865397249, + 6.592275743697832, + 6.592282826921822, + 6.5922899036504194, + 6.592296973889584, + 6.592304037645265, + 6.592311094923408, + 6.592318145729954, + 6.592325190070836, + 6.592332227951983, + 6.592339259379321, + 6.592346284358764, + 6.592353302896228, + 6.59236031499762, + 6.592367320668841, + 6.5923743199157885, + 6.592381312744354, + 6.592388299160421, + 6.592395279169871, + 6.592402252778579, + 6.592409219992416, + 6.592416180817245, + 6.592423135258923, + 6.592430083323307, + 6.592437025016242, + 6.592443960343572, + 6.592450889311134, + 6.592457811924761, + 6.5924647281902775, + 6.592471638113507, + 6.592478541700264, + 6.59248543895636, + 6.5924923298876, + 6.592499214499783, + 6.592506092798705, + 6.5925129647901555, + 6.592519830479917, + 6.592526689873768, + 6.592533542977485, + 6.5925403897968335, + 6.592547230337576, + 6.592554064605473, + 6.592560892606272, + 6.592567714345724, + 6.592574529829569, + 6.592581339063544, + 6.59258814205338, + 6.592594938804804, + 6.592601729323535, + 6.592608513615289, + 6.592615291685776, + 6.592622063540703, + 6.592628829185767, + 6.592635588626663, + 6.592642341869082, + 6.592649088918705, + 6.592655829781214, + 6.592662564462281, + 6.592669292967575, + 6.59267601530276, + 6.592682731473492, + 6.592689441485427, + 6.59269614534421, + 6.592702843055482, + 6.592709534624884, + 6.592716220058048, + 6.592722899360599, + 6.5927295725381585, + 6.592736239596345, + 6.5927429005407685, + 6.592749555377037, + 6.59275620411075, + 6.5927628467475055, + 6.592769483292893, + 6.5927761137525, + 6.592782738131905, + 6.592789356436684, + 6.592795968672409, + 6.592802574844644, + 6.59280917495895, + 6.592815769020882, + 6.592822357035991, + 6.59282893900982, + 6.592835514947911, + 6.592842084855797, + 6.592848648739008, + 6.592855206603071, + 6.592861758453503, + 6.592868304295819, + 6.592874844135529, + 6.592881377978139, + 6.592887905829145, + 6.592894427694044, + 6.592900943578325, + 6.592907453487472, + 6.592913957426963, + 6.5929204554022744, + 6.592926947418873, + 6.592933433482226, + 6.592939913597789, + 6.592946387771019, + 6.592952856007364, + 6.592959318312269, + 6.592965774691171, + 6.5929722251495075, + 6.592978669692706, + 6.592985108326191, + 6.592991541055381, + 6.592997967885691, + 6.593004388822531, + 6.593010803871304, + 6.59301721303741, + 6.593023616326243, + 6.593030013743194, + 6.593036405293645, + 6.59304279098298, + 6.5930491708165695, + 6.5930555447997845, + 6.59306191293799, + 6.593068275236546, + 6.593074631700808, + 6.593080982336126, + 6.5930873271478445, + 6.593093666141304, + 6.593099999321841, + 6.593106326694784, + 6.59311264826546, + 6.593118964039189, + 6.593125274021288, + 6.593131578217067, + 6.593137876631832, + 6.593144169270884, + 6.593150456139521, + 6.593156737243033, + 6.593163012586707, + 6.593169282175826, + 6.593175546015666, + 6.593181804111499, + 6.593188056468593, + 6.5931943030922096, + 6.5932005439876065, + 6.593206779160037, + 6.593213008614749, + 6.5932192323569865, + 6.593225450391986, + 6.593231662724983, + 6.593237869361205, + 6.593244070305877, + 6.593250265564218, + 6.593256455141442, + 6.593262639042758, + 6.593268817273373, + 6.593274989838485, + 6.59328115674329, + 6.593287317992978, + 6.593293473592737, + 6.593299623547745, + 6.593305767863181, + 6.593311906544215, + 6.5933180395960145, + 6.5933241670237415, + 6.593330288832552, + 6.5933364050276, + 6.593342515614033, + 6.593348620596994, + 6.5933547199816225, + 6.593360813773051, + 6.59336690197641, + 6.5933729845968205, + 6.593379061639406, + 6.593385133109279, + 6.59339119901155, + 6.593397259351326, + 6.593403314133706, + 6.593409363363788, + 6.593415407046662, + 6.593421445187416, + 6.593427477791131, + 6.593433504862885, + 6.593439526407751, + 6.593445542430799, + 6.593451552937089, + 6.593457557931682, + 6.593463557419633, + 6.59346955140599, + 6.593475539895798, + 6.593481522894098, + 6.593487500405926, + 6.593493472436314, + 6.593499438990287, + 6.593505400072868, + 6.593511355689072, + 6.593517305843915, + 6.593523250542404, + 6.5935291897895425, + 6.5935351235903275, + 6.593541051949756, + 6.593546974872815, + 6.593552892364493, + 6.593558804429769, + 6.593564711073619, + 6.593570612301016, + 6.593576508116924, + 6.593582398526308, + 6.593588283534123, + 6.593594163145326, + 6.593600037364864, + 6.593605906197681, + 6.593611769648716, + 6.593617627722905, + 6.593623480425179, + 6.593629327760463, + 6.59363516973368, + 6.593641006349746, + 6.593646837613574, + 6.593652663530072, + 6.593658484104144, + 6.593664299340689, + 6.5936701092445995, + 6.593675913820768, + 6.593681713074078, + 6.593687507009414, + 6.59369329563165, + 6.593699078945658, + 6.593704856956307, + 6.593710629668459, + 6.5937163970869745, + 6.593722159216706, + 6.593727916062505, + 6.593733667629215, + 6.5937394139216785, + 6.593745154944732, + 6.593750890703206, + 6.593756621201931, + 6.593762346445728, + 6.5937680664394165, + 6.593773781187811, + 6.593779490695721, + 6.5937851949679525, + 6.593790894009306, + 6.5937965878245794, + 6.593802276418565, + 6.593807959796049, + 6.5938136379618175, + 6.593819310920647, + 6.593824978677315, + 6.593830641236591, + 6.5938362986032395, + 6.593841950782024, + 6.593847597777701, + 6.593853239595025, + 6.593858876238743, + 6.593864507713599, + 6.593870134024334, + 6.5938757551756835, + 6.593881371172377, + 6.593886982019143, + 6.5938925877207035, + 6.593898188281778, + 6.59390378370708, + 6.593909374001316, + 6.593914959169195, + 6.593920539215416, + 6.5939261141446766, + 6.593931683961668, + 6.59393724867108, + 6.5939428082775935, + 6.59394836278589, + 6.593953912200645, + 6.5939594565265285, + 6.593964995768206, + 6.593970529930342, + 6.593976059017593, + 6.593981583034613, + 6.593987101986051, + 6.593992615876553, + 6.59399812471076, + 6.594003628493308, + 6.59400912722883, + 6.5940146209219535, + 6.594020109577302, + 6.594025593199498, + 6.594031071793154, + 6.594036545362882, + 6.594042013913289, + 6.594047477448979, + 6.594052935974548, + 6.5940583894945926, + 6.594063838013702, + 6.594069281536462, + 6.5940747200674545, + 6.594080153611257, + 6.594085582172443, + 6.594091005755582, + 6.594096424365239, + 6.594101838005973, + 6.594107246682342, + 6.594112650398898, + 6.5941180491601905, + 6.594123442970761, + 6.594128831835151, + 6.594134215757896, + 6.594139594743527, + 6.594144968796572, + 6.594150337921554, + 6.594155702122992, + 6.594161061405401, + 6.594166415773293, + 6.594171765231173, + 6.594177109783543, + 6.5941824494349035, + 6.594187784189747, + 6.594193114052565, + 6.594198439027843, + 6.594203759120062, + 6.594209074333701, + 6.594214384673235, + 6.594219690143131, + 6.594224990747855, + 6.59423028649187, + 6.594235577379631, + 6.594240863415592, + 6.594246144604203, + 6.594251420949909, + 6.59425669245715, + 6.594261959130365, + 6.594267220973984, + 6.594272477992438, + 6.594277730190151, + 6.5942829775715435, + 6.594288220141033, + 6.59429345790303, + 6.594298690861946, + 6.594303919022183, + 6.594309142388142, + 6.59431436096422, + 6.594319574754809, + 6.594324783764296, + 6.594329987997068, + 6.594335187457505, + 6.594340382149981, + 6.594345572078869, + 6.594350757248539, + 6.594355937663354, + 6.594361113327674, + 6.594366284245855, + 6.59437145042225, + 6.594376611861208, + 6.5943817685670725, + 6.594386920544183, + 6.594392067796877, + 6.594397210329485, + 6.594402348146337, + 6.594407481251758, + 6.5944126096500675, + 6.594417733345582, + 6.594422852342613, + 6.594427966645471, + 6.594433076258459, + 6.594438181185878, + 6.594443281432026, + 6.5944483770011955, + 6.594453467897674, + 6.5944585541257466, + 6.594463635689696, + 6.594468712593796, + 6.594473784842323, + 6.594478852439546, + 6.594483915389728, + 6.594488973697131, + 6.5944940273660135, + 6.594499076400629, + 6.594504120805226, + 6.594509160584051, + 6.594514195741347, + 6.594519226281351, + 6.594524252208297, + 6.5945292735264145, + 6.594534290239931, + 6.594539302353069, + 6.594544309870046, + 6.5945493127950785, + 6.594554311132376, + 6.594559304886146, + 6.594564294060591, + 6.594569278659911, + 6.594574258688301, + 6.594579234149953, + 6.594584205049054, + 6.5945891713897895, + 6.594594133176337, + 6.594599090412875, + 6.594604043103575, + 6.594608991252606, + 6.594613934864133, + 6.5946188739423155, + 6.594623808491312, + 6.594628738515275, + 6.594633664018354, + 6.594638585004696, + 6.5946435014784415, + 6.594648413443729, + 6.594653320904693, + 6.594658223865464, + 6.594663122330169, + 6.594668016302929, + 6.594672905787866, + 6.594677790789094, + 6.594682671310724, + 6.594687547356864, + 6.594692418931619, + 6.594697286039089, + 6.594702148683371, + 6.594707006868558, + 6.594711860598737, + 6.5947167098779955, + 6.594721554710413, + 6.59472639510007, + 6.594731231051037, + 6.594736062567387, + 6.594740889653186, + 6.594745712312496, + 6.594750530549377, + 6.5947553443678855, + 6.5947601537720715, + 6.594764958765984, + 6.594769759353665, + 6.594774555539157, + 6.594779347326496, + 6.594784134719718, + 6.594788917722848, + 6.594793696339916, + 6.594798470574941, + 6.5948032404319425, + 6.5948080059149365, + 6.594812767027932, + 6.594817523774936, + 6.594822276159953, + 6.594827024186984, + 6.594831767860024, + 6.594836507183067, + 6.594841242160101, + 6.5948459727951105, + 6.5948506990920785, + 6.594855421054983, + 6.594860138687798, + 6.594864851994493, + 6.5948695609790375, + 6.594874265645394, + 6.5948789659975215, + 6.5948836620393765, + 6.594888353774913, + 6.594893041208078, + 6.594897724342818, + 6.594902403183075, + 6.594907077732785, + 6.594911747995885, + 6.594916413976305, + 6.594921075677972, + 6.59492573310481, + 6.594930386260738, + 6.594935035149673, + 6.5949396797755275, + 6.594944320142212, + 6.594948956253632, + 6.594953588113689, + 6.594958215726281, + 6.594962839095305, + 6.594967458224652, + 6.594972073118207, + 6.594976683779857, + 6.5949812902134815, + 6.594985892422958, + 6.594990490412162, + 6.59499508418496, + 6.594999673745221, + 6.5950042590968065, + 6.595008840243577, + 6.595013417189387, + 6.59501798993809, + 6.595022558493535, + 6.595027122859567, + 6.595031683040027, + 6.595036239038754, + 6.595040790859581, + 6.595045338506343, + 6.595049881982864, + 6.595054421292969, + 6.59505895644048, + 6.595063487429212, + 6.595068014262981, + 6.595072536945596, + 6.595077055480863, + 6.595081569872587, + 6.595086080124566, + 6.5950905862405955, + 6.59509508822447, + 6.595099586079979, + 6.595104079810906, + 6.595108569421036, + 6.595113054914146, + 6.595117536294012, + 6.5951220135644055, + 6.595126486729095, + 6.595130955791845, + 6.595135420756418, + 6.595139881626572, + 6.595144338406061, + 6.595148791098636, + 6.595153239708046, + 6.595157684238034, + 6.595162124692342, + 6.595166561074707, + 6.595170993388861, + 6.5951754216385385, + 6.595179845827463, + 6.595184265959361, + 6.595188682037952, + 6.595193094066952, + 6.595197502050075, + 6.595201905991032, + 6.595206305893528, + 6.5952107017612684, + 6.595215093597952, + 6.595219481407275, + 6.5952238651929305, + 6.595228244958609, + 6.595232620707996, + 6.595236992444775, + 6.5952413601726265, + 6.595245723895225, + 6.595250083616244, + 6.595254439339353, + 6.595258791068218, + 6.595263138806503, + 6.595267482557866, + 6.595271822325964, + 6.595276158114448, + 6.595280489926969, + 6.595284817767173, + 6.595289141638702, + 6.595293461545195, + 6.595297777490289, + 6.595302089477616, + 6.5953063975108055, + 6.595310701593483, + 6.595315001729272, + 6.595319297921791, + 6.595323590174656, + 6.5953278784914815, + 6.5953321628758745, + 6.595336443331442, + 6.595340719861788, + 6.595344992470511, + 6.595349261161206, + 6.595353525937467, + 6.595357786802884, + 6.5953620437610425, + 6.595366296815526, + 6.595370545969914, + 6.5953747912277825, + 6.595379032592705, + 6.59538327006825, + 6.595387503657988, + 6.595391733365479, + 6.595395959194284, + 6.595400181147959, + 6.595404399230058, + 6.595408613444132, + 6.595412823793727, + 6.595417030282388, + 6.595421232913655, + 6.595425431691064, + 6.5954296266181505, + 6.595433817698445, + 6.595438004935476, + 6.595442188332766, + 6.595446367893836, + 6.595450543622206, + 6.595454715521389, + 6.595458883594897, + 6.595463047846237, + 6.595467208278915, + 6.595471364896433, + 6.5954755177022895, + 6.59547966669998, + 6.595483811892994, + 6.595487953284824, + 6.595492090878954, + 6.595496224678867, + 6.595500354688042, + 6.5955044809099554, + 6.59550860334808, + 6.595512722005886, + 6.595516836886839, + 6.595520947994403, + 6.595525055332039, + 6.595529158903203, + 6.595533258711349, + 6.595537354759928, + 6.595541447052388, + 6.595545535592172, + 6.595549620382723, + 6.595553701427478, + 6.595557778729873, + 6.595561852293338, + 6.5955659221213025, + 6.595569988217192, + 6.595574050584429, + 6.595578109226434, + 6.59558216414662, + 6.595586215348403, + 6.595590262835191, + 6.595594306610391, + 6.5955983466774075, + 6.5956023830396395, + 6.595606415700485, + 6.595610444663338, + 6.59561446993159, + 6.5956184915086284, + 6.595622509397839, + 6.595626523602602, + 6.595630534126299, + 6.595634540972303, + 6.595638544143987, + 6.595642543644721, + 6.595646539477872, + 6.5956505316468, + 6.595654520154868, + 6.595658505005432, + 6.595662486201848, + 6.595666463747463, + 6.595670437645627, + 6.595674407899686, + 6.595678374512981, + 6.595682337488849, + 6.595686296830627, + 6.595690252541647, + 6.5956942046252385, + 6.595698153084728, + 6.595702097923438, + 6.595706039144691, + 6.5957099767518015, + 6.595713910748086, + 6.595717841136855, + 6.595721767921415, + 6.595725691105073, + 6.595729610691129, + 6.595733526682886, + 6.595737439083636, + 6.595741347896673, + 6.595745253125289, + 6.595749154772768, + 6.5957530528423955, + 6.595756947337453, + 6.595760838261217, + 6.595764725616964, + 6.5957686094079655, + 6.595772489637489, + 6.595776366308801, + 6.5957802394251654, + 6.595784108989841, + 6.595787975006086, + 6.595791837477154, + 6.595795696406294, + 6.595799551796756, + 6.595803403651785, + 6.595807251974621, + 6.595811096768507, + 6.595814938036675, + 6.5958187757823605, + 6.595822610008794, + 6.5958264407192, + 6.595830267916806, + 6.59583409160483, + 6.595837911786493, + 6.595841728465009, + 6.595845541643591, + 6.595849351325448, + 6.595853157513787, + 6.595856960211812, + 6.595860759422721, + 6.595864555149715, + 6.595868347395989, + 6.595872136164732, + 6.595875921459134, + 6.595879703282382, + 6.5958834816376575, + 6.595887256528143, + 6.5958910279570135, + 6.595894795927444, + 6.595898560442608, + 6.595902321505671, + 6.595906079119798, + 6.595909833288155, + 6.5959135840139, + 6.59591733130019, + 6.59592107515018, + 6.59592481556702, + 6.5959285525538585, + 6.595932286113841, + 6.59593601625011, + 6.595939742965805, + 6.595943466264062, + 6.595947186148016, + 6.595950902620797, + 6.5959546156855335, + 6.595958325345351, + 6.595962031603372, + 6.595965734462714, + 6.595969433926498, + 6.595973129997832, + 6.595976822679831, + 6.595980511975602, + 6.59598419788825, + 6.595987880420878, + 6.595991559576584, + 6.595995235358465, + 6.5959989077696175, + 6.59600257681313, + 6.596006242492091, + 6.596009904809586, + 6.596013563768698, + 6.596017219372505, + 6.596020871624085, + 6.5960245205265124, + 6.596028166082858, + 6.596031808296191, + 6.596035447169575, + 6.596039082706074, + 6.596042714908749, + 6.596046343780655, + 6.596049969324848, + 6.596053591544378, + 6.596057210442296, + 6.596060826021645, + 6.596064438285471, + 6.596068047236814, + 6.59607165287871, + 6.596075255214195, + 6.5960788542463, + 6.596082449978055, + 6.596086042412486, + 6.5960896315526165, + 6.596093217401469, + 6.59609679996206, + 6.596100379237407, + 6.596103955230519, + 6.596107527944408, + 6.596111097382082, + 6.596114663546543, + 6.596118226440795, + 6.596121786067835, + 6.59612534243066, + 6.596128895532263, + 6.596132445375634, + 6.596135991963761, + 6.59613953529963, + 6.596143075386223, + 6.596146612226519, + 6.596150145823497, + 6.596153676180129, + 6.596157203299386, + 6.596160727184238, + 6.596164247837651, + 6.596167765262587, + 6.596171279462008, + 6.596174790438871, + 6.596178298196132, + 6.5961818027367425, + 6.596185304063653, + 6.596188802179809, + 6.596192297088157, + 6.596195788791637, + 6.596199277293189, + 6.596202762595747, + 6.596206244702247, + 6.59620972361562, + 6.596213199338791, + 6.596216671874689, + 6.596220141226235, + 6.5962236073963485, + 6.596227070387947, + 6.596230530203947, + 6.596233986847259, + 6.596237440320793, + 6.596240890627455, + 6.59624433777015, + 6.59624778175178, + 6.5962512225752405, + 6.5962546602434315, + 6.596258094759245, + 6.59626152612557, + 6.596264954345297, + 6.596268379421311, + 6.596271801356495, + 6.596275220153727, + 6.596278635815887, + 6.596282048345849, + 6.596285457746485, + 6.596288864020665, + 6.596292267171256, + 6.5962956672011215, + 6.596299064113125, + 6.596302457910124, + 6.596305848594976, + 6.5963092361705336, + 6.596312620639649, + 6.596316002005171, + 6.596319380269946, + 6.596322755436816, + 6.596326127508624, + 6.596329496488205, + 6.5963328623783966, + 6.596336225182032, + 6.596339584901942, + 6.596342941540954, + 6.59634629510189, + 6.596349645587577, + 6.596352993000834, + 6.596356337344477, + 6.596359678621323, + 6.596363016834184, + 6.596366351985868, + 6.596369684079183, + 6.596373013116932, + 6.59637633910192, + 6.596379662036945, + 6.596382981924803, + 6.596386298768289, + 6.596389612570194, + 6.596392923333309, + 6.596396231060419, + 6.596399535754308, + 6.5964028374177595, + 6.59640613605355, + 6.5964094316644575, + 6.596412724253255, + 6.596416013822714, + 6.5964193003756035, + 6.5964225839146895, + 6.596425864442736, + 6.596429141962504, + 6.596432416476752, + 6.596435687988235, + 6.596438956499708, + 6.5964422220139225, + 6.596445484533626, + 6.596448744061565, + 6.596452000600482, + 6.596455254153119, + 6.596458504722214, + 6.596461752310504, + 6.59646499692072, + 6.5964682385555955, + 6.596471477217857, + 6.596474712910233, + 6.596477945635444, + 6.596481175396212, + 6.596484402195255, + 6.59648762603529, + 6.59649084691903, + 6.596494064849186, + 6.5964972798284665, + 6.596500491859577, + 6.596503700945221, + 6.5965069070881, + 6.596510110290912, + 6.596513310556354, + 6.596516507887118, + 6.596519702285898, + 6.596522893755379, + 6.596526082298251, + 6.596529267917194, + 6.596532450614892, + 6.596535630394023, + 6.596538807257263, + 6.596541981207285, + 6.5965451522467635, + 6.596548320378365, + 6.596551485604757, + 6.596554647928603, + 6.596557807352563, + 6.596560963879299, + 6.596564117511467, + 6.596567268251722, + 6.596570416102715, + 6.596573561067095, + 6.59657670314751, + 6.596579842346605, + 6.596582978667022, + 6.596586112111399, + 6.596589242682375, + 6.596592370382584, + 6.59659549521466, + 6.596598617181232, + 6.596601736284928, + 6.596604852528373, + 6.596607965914191, + 6.596611076445001, + 6.596614184123421, + 6.596617288952069, + 6.596620390933555, + 6.596623490070491, + 6.596626586365487, + 6.596629679821148, + 6.596632770440078, + 6.596635858224877, + 6.596638943178146, + 6.59664202530248, + 6.596645104600475, + 6.59664818107472, + 6.596651254727806, + 6.59665432556232, + 6.596657393580847, + 6.596660458785968, + 6.596663521180264, + 6.596666580766311, + 6.596669637546687, + 6.596672691523964, + 6.596675742700712, + 6.596678791079498, + 6.5966818366628885, + 6.596684879453447, + 6.596687919453735, + 6.596690956666311, + 6.596693991093731, + 6.596697022738549, + 6.596700051603317, + 6.596703077690584, + 6.596706101002899, + 6.596709121542803, + 6.596712139312841, + 6.596715154315552, + 6.596718166553475, + 6.596721176029143, + 6.596724182745091, + 6.596727186703848, + 6.596730187907945, + 6.596733186359906, + 6.596736182062255, + 6.596739175017513, + 6.5967421652282, + 6.596745152696832, + 6.596748137425925, + 6.5967511194179895, + 6.596754098675535, + 6.596757075201071, + 6.596760048997102, + 6.59676302006613, + 6.596765988410658, + 6.596768954033182, + 6.596771916936199, + 6.596774877122204, + 6.596777834593687, + 6.596780789353137, + 6.596783741403042, + 6.596786690745886, + 6.596789637384152, + 6.596792581320319, + 6.5967955225568655, + 6.596798461096268, + 6.596801396940999, + 6.596804330093531, + 6.5968072605563295, + 6.5968101883318635, + 6.596813113422597, + 6.596816035830991, + 6.596818955559507, + 6.5968218726106, + 6.596824786986726, + 6.5968276986903405, + 6.5968306077238905, + 6.596833514089827, + 6.596836417790596, + 6.59683931882864, + 6.596842217206403, + 6.596845112926322, + 6.596848005990836, + 6.596850896402379, + 6.596853784163385, + 6.596856669276284, + 6.5968595517435045, + 6.596862431567471, + 6.596865308750609, + 6.59686818329534, + 6.596871055204085, + 6.596873924479259, + 6.596876791123276, + 6.596879655138552, + 6.596882516527495, + 6.596885375292515, + 6.596888231436017, + 6.596891084960405, + 6.596893935868082, + 6.596896784161448, + 6.5968996298428975, + 6.5969024729148265, + 6.59690531337963, + 6.596908151239697, + 6.596910986497417, + 6.5969138191551755, + 6.596916649215358, + 6.596919476680346, + 6.596922301552518, + 6.596925123834253, + 6.596927943527925, + 6.596930760635909, + 6.596933575160576, + 6.596936387104294, + 6.59693919646943, + 6.5969420032583495, + 6.596944807473413, + 6.596947609116982, + 6.596950408191415, + 6.5969532046990675, + 6.596955998642294, + 6.596958790023444, + 6.596961578844868, + 6.5969643651089145, + 6.596967148817927, + 6.596969929974248, + 6.596972708580221, + 6.596975484638183, + 6.596978258150472, + 6.59698102911942, + 6.59698379754736, + 6.596986563436623, + 6.5969893267895365, + 6.5969920876084265, + 6.596994845895617, + 6.596997601653428, + 6.597000354884181, + 6.5970031055901925, + 6.597005853773778, + 6.59700859943725, + 6.5970113425829195, + 6.597014083213097, + 6.597016821330087, + 6.597019556936195, + 6.597022290033723, + 6.597025020624973, + 6.597027748712242, + 6.597030474297826, + 6.597033197384019, + 6.597035917973114, + 6.597038636067401, + 6.597041351669167, + 6.597044064780696, + 6.597046775404275, + 6.5970494835421825, + 6.597052189196699, + 6.597054892370103, + 6.597057593064668, + 6.597060291282668, + 6.597062987026374, + 6.597065680298055, + 6.597068371099977, + 6.597071059434405, + 6.597073745303603, + 6.597076428709831, + 6.597079109655347, + 6.597081788142408, + 6.597084464173268, + 6.59708713775018, + 6.597089808875394, + 6.597092477551158, + 6.597095143779718, + 6.597097807563318, + 6.597100468904202, + 6.5971031278046075, + 6.597105784266773, + 6.597108438292936, + 6.5971110898853285, + 6.597113739046184, + 6.5971163857777295, + 6.5971190300821965, + 6.5971216719618075, + 6.597124311418788, + 6.597126948455358, + 6.5971295830737375, + 6.597132215276145, + 6.5971348450647955, + 6.597137472441901, + 6.5971400974096746, + 6.597142719970326, + 6.597145340126062, + 6.597147957879087, + 6.597150573231605, + 6.5971531861858175, + 6.597155796743923, + 6.597158404908121, + 6.597161010680604, + 6.597163614063566, + 6.5971662150591985, + 6.597168813669691, + 6.59717140989723, + 6.597174003744001, + 6.597176595212188, + 6.597179184303972, + 6.597181771021531, + 6.597184355367043, + 6.597186937342683, + 6.597189516950624, + 6.597192094193038, + 6.597194669072094, + 6.597197241589957, + 6.597199811748796, + 6.597202379550772, + 6.5972049449980465, + 6.59720750809278, + 6.597210068837128, + 6.597212627233246, + 6.597215183283288, + 6.597217736989406, + 6.597220288353749, + 6.597222837378463, + 6.597225384065695, + 6.597227928417588, + 6.597230470436284, + 6.597233010123922, + 6.597235547482641, + 6.5972380825145756, + 6.597240615221858, + 6.597243145606622, + 6.5972456736709955, + 6.597248199417109, + 6.597250722847086, + 6.597253243963051, + 6.597255762767126, + 6.597258279261432, + 6.597260793448086, + 6.5972633053292045, + 6.597265814906901, + 6.59726832218329, + 6.5972708271604805, + 6.597273329840579, + 6.597275830225695, + 6.597278328317931, + 6.59728082411939, + 6.597283317632173, + 6.59728580885838, + 6.597288297800105, + 6.597290784459444, + 6.5972932688384915, + 6.597295750939336, + 6.5972982307640695, + 6.597300708314776, + 6.597303183593543, + 6.597305656602455, + 6.597308127343591, + 6.597310595819032, + 6.597313062030855, + 6.597315525981135, + 6.597317987671947, + 6.597320447105363, + 6.597322904283453, + 6.597325359208285, + 6.597327811881925, + 6.597330262306437, + 6.597332710483885, + 6.597335156416328, + 6.597337600105825, + 6.597340041554434, + 6.597342480764208, + 6.597344917737202, + 6.597347352475466, + 6.5973497849810485, + 6.597352215255999, + 6.597354643302361, + 6.59735706912218, + 6.597359492717496, + 6.59736191409035, + 6.597364333242781, + 6.597366750176822, + 6.597369164894511, + 6.597371577397877, + 6.597373987688953, + 6.597376395769766, + 6.5973788016423445, + 6.597381205308712, + 6.597383606770892, + 6.5973860060309075, + 6.5973884030907755, + 6.597390797952514, + 6.597393190618139, + 6.597395581089666, + 6.597397969369104, + 6.597400355458465, + 6.597402739359758, + 6.5974051210749876, + 6.59740750060616, + 6.597409877955277, + 6.59741225312434, + 6.597414626115348, + 6.597416996930298, + 6.597419365571187, + 6.597421732040007, + 6.59742409633875, + 6.597426458469406, + 6.597428818433964, + 6.59743117623441, + 6.597433531872728, + 6.5974358853509, + 6.597438236670908, + 6.597440585834732, + 6.597442932844347, + 6.5974452777017305, + 6.597447620408855, + 6.597449960967691, + 6.597452299380213, + 6.5974546356483845, + 6.597456969774173, + 6.597459301759545, + 6.597461631606461, + 6.597463959316884, + 6.5974662848927705, + 6.597468608336081, + 6.59747092964877, + 6.59747324883279, + 6.597475565890094, + 6.597477880822633, + 6.597480193632354, + 6.597482504321204, + 6.597484812891128, + 6.59748711934407, + 6.597489423681969, + 6.5974917259067665, + 6.5974940260204, + 6.597496324024805, + 6.597498619921916, + 6.597500913713665, + 6.597503205401983, + 6.597505494988799, + 6.597507782476041, + 6.597510067865632, + 6.597512351159497, + 6.597514632359558, + 6.597516911467734, + 6.597519188485943, + 6.597521463416104, + 6.59752373626013, + 6.597526007019933, + 6.597528275697427, + 6.59753054229452, + 6.597532806813119, + 6.597535069255131, + 6.597537329622461, + 6.597539587917009, + 6.597541844140677, + 6.597544098295366, + 6.59754635038297, + 6.5975486004053865, + 6.5975508483645084, + 6.597553094262229, + 6.597555338100436, + 6.5975575798810215, + 6.59755981960587, + 6.597562057276868, + 6.597564292895898, + 6.597566526464842, + 6.59756875798558, + 6.5975709874599895, + 6.597573214889947, + 6.597575440277329, + 6.5975776636240075, + 6.597579884931854, + 6.597582104202738, + 6.597584321438527, + 6.597586536641087, + 6.597588749812283, + 6.597590960953978, + 6.597593170068034, + 6.597595377156309, + 6.59759758222066, + 6.597599785262943, + 6.597601986285015, + 6.597604185288725, + 6.597606382275927, + 6.597608577248469, + 6.597610770208197, + 6.597612961156959, + 6.597615150096598, + 6.5976173370289555, + 6.597619521955873, + 6.597621704879191, + 6.597623885800744, + 6.597626064722371, + 6.597628241645902, + 6.597630416573172, + 6.59763258950601, + 6.5976347604462475, + 6.597636929395709, + 6.597639096356223, + 6.597641261329609, + 6.597643424317693, + 6.597645585322294, + 6.59764774434523, + 6.59764990138832, + 6.59765205645338, + 6.597654209542221, + 6.597656360656659, + 6.5976585097985, + 6.597660656969558, + 6.5976628021716355, + 6.5976649454065415, + 6.597667086676078, + 6.597669225982048, + 6.597671363326253, + 6.597673498710489, + 6.597675632136556, + 6.597677763606249, + 6.597679893121363, + 6.597682020683688, + 6.597684146295017, + 6.597686269957138, + 6.597688391671838, + 6.597690511440903, + 6.597692629266119, + 6.5976947451492665, + 6.597696859092126, + 6.597698971096478, + 6.597701081164101, + 6.5977031892967695, + 6.597705295496258, + 6.597707399764339, + 6.597709502102785, + 6.597711602513365, + 6.597713700997845, + 6.597715797557994, + 6.5977178921955755, + 6.5977199849123505, + 6.597722075710084, + 6.597724164590534, + 6.597726251555457, + 6.597728336606613, + 6.597730419745755, + 6.597732500974637, + 6.597734580295009, + 6.597736657708624, + 6.597738733217228, + 6.59774080682257, + 6.597742878526392, + 6.597744948330441, + 6.597747016236458, + 6.5977490822461835, + 6.5977511463613565, + 6.597753208583715, + 6.597755268914993, + 6.597757327356925, + 6.597759383911245, + 6.597761438579683, + 6.597763491363969, + 6.59776554226583, + 6.597767591286993, + 6.597769638429182, + 6.597771683694119, + 6.597773727083527, + 6.597775768599125, + 6.597777808242633, + 6.597779846015766, + 6.597781881920239, + 6.597783915957768, + 6.5977859481300625, + 6.597787978438833, + 6.5977900068857895, + 6.597792033472639, + 6.597794058201087, + 6.597796081072837, + 6.597798102089594, + 6.597800121253057, + 6.597802138564925, + 6.597804154026897, + 6.59780616764067, + 6.597808179407938, + 6.597810189330394, + 6.597812197409731, + 6.597814203647637, + 6.597816208045802, + 6.597818210605913, + 6.597820211329656, + 6.597822210218713, + 6.597824207274769, + 6.597826202499503, + 6.5978281958945955, + 6.597830187461723, + 6.597832177202563, + 6.5978341651187895, + 6.597836151212077, + 6.597838135484095, + 6.597840117936515, + 6.5978420985710065, + 6.597844077389235, + 6.597846054392865, + 6.597848029583563, + 6.59785000296299, + 6.597851974532809, + 6.597853944294676, + 6.597855912250251, + 6.597857878401191, + 6.59785984274915, + 6.597861805295781, + 6.597863766042735, + 6.597865724991665, + 6.597867682144217, + 6.597869637502041, + 6.597871591066779, + 6.59787354284008, + 6.597875492823585, + 6.597877441018933, + 6.597879387427765, + 6.5978813320517204, + 6.597883274892435, + 6.597885215951546, + 6.597887155230684, + 6.597889092731483, + 6.597891028455573, + 6.597892962404584, + 6.597894894580144, + 6.597896824983878, + 6.597898753617412, + 6.597900680482368, + 6.59790260558037, + 6.597904528913037, + 6.597906450481987, + 6.597908370288838, + 6.597910288335207, + 6.597912204622706, + 6.59791411915295, + 6.59791603192755, + 6.597917942948116, + 6.597919852216254, + 6.597921759733574, + 6.597923665501681, + 6.597925569522179, + 6.59792747179667, + 6.597929372326755, + 6.597931271114034, + 6.597933168160106, + 6.597935063466566, + 6.59793695703501, + 6.597938848867033, + 6.597940738964225, + 6.597942627328179, + 6.597944513960483, + 6.597946398862725, + 6.5979482820364925, + 6.59795016348337, + 6.597952043204941, + 6.597953921202787, + 6.59795579747849, + 6.597957672033629, + 6.597959544869781, + 6.597961415988522, + 6.597963285391427, + 6.597965153080071, + 6.597967019056024, + 6.597968883320858, + 6.597970745876141, + 6.5979726067234425, + 6.5979744658643265, + 6.59797632330036, + 6.597978179033104, + 6.597980033064122, + 6.597981885394974, + 6.597983736027219, + 6.597985584962416, + 6.597987432202118, + 6.5979892777478835, + 6.597991121601264, + 6.5979929637638115, + 6.597994804237076, + 6.597996643022608, + 6.597998480121954, + 6.598000315536661, + 6.598002149268273, + 6.598003981318334, + 6.598005811688386, + 6.59800764037997, + 6.598009467394625, + 6.598011292733887, + 6.5980131163992946, + 6.5980149383923825, + 6.598016758714682, + 6.598018577367728, + 6.59802039435305, + 6.598022209672176, + 6.598024023326637, + 6.598025835317958, + 6.5980276456476625, + 6.5980294543172775, + 6.598031261328322, + 6.598033066682319, + 6.598034870380787, + 6.598036672425246, + 6.59803847281721, + 6.5980402715581965, + 6.598042068649717, + 6.598043864093288, + 6.598045657890418, + 6.598047450042617, + 6.5980492405513935, + 6.5980510294182535, + 6.598052816644705, + 6.59805460223225, + 6.598056386182393, + 6.598058168496636, + 6.598059949176478, + 6.598061728223417, + 6.598063505638952, + 6.598065281424578, + 6.59806705558179, + 6.598068828112082, + 6.598070599016944, + 6.598072368297869, + 6.598074135956344, + 6.598075901993858, + 6.598077666411896, + 6.598079429211945, + 6.598081190395488, + 6.598082949964008, + 6.598084707918983, + 6.598086464261896, + 6.598088218994224, + 6.598089972117444, + 6.598091723633033, + 6.598093473542463, + 6.598095221847206, + 6.598096968548737, + 6.5980987136485245, + 6.598100457148037, + 6.598102199048742, + 6.5981039393521055, + 6.598105678059594, + 6.5981074151726675, + 6.598109150692792, + 6.598110884621425, + 6.5981126169600275, + 6.598114347710057, + 6.598116076872971, + 6.598117804450225, + 6.598119530443273, + 6.598121254853566, + 6.598122977682557, + 6.598124698931695, + 6.59812641860243, + 6.598128136696209, + 6.598129853214478, + 6.598131568158682, + 6.598133281530264, + 6.5981349933306666, + 6.598136703561329, + 6.598138412223693, + 6.598140119319197, + 6.598141824849276, + 6.598143528815365, + 6.5981452312189, + 6.598146932061312, + 6.598148631344034, + 6.598150329068496, + 6.598152025236128, + 6.598153719848355, + 6.598155412906606, + 6.598157104412304, + 6.598158794366874, + 6.598160482771739, + 6.598162169628318, + 6.598163854938031, + 6.598165538702299, + 6.598167220922536, + 6.59816890160016, + 6.598170580736585, + 6.598172258333224, + 6.5981739343914905, + 6.598175608912793, + 6.598177281898542, + 6.598178953350145, + 6.598180623269011, + 6.598182291656542, + 6.598183958514145, + 6.5981856238432215, + 6.598187287645175, + 6.598188949921403, + 6.598190610673308, + 6.5981922699022855, + 6.598193927609732, + 6.598195583797044, + 6.598197238465615, + 6.598198891616837, + 6.598200543252103, + 6.598202193372802, + 6.598203841980323, + 6.598205489076053, + 6.598207134661379, + 6.598208778737686, + 6.598210421306358, + 6.598212062368777, + 6.598213701926325, + 6.598215339980382, + 6.598216976532326, + 6.598218611583534, + 6.5982202451353835, + 6.598221877189249, + 6.598223507746503, + 6.598225136808519, + 6.598226764376669, + 6.598228390452322, + 6.598230015036846, + 6.598231638131609, + 6.598233259737977, + 6.598234879857316, + 6.598236498490986, + 6.5982381156403545, + 6.59823973130678, + 6.598241345491622, + 6.59824295819624, + 6.59824456942199, + 6.598246179170229, + 6.598247787442313, + 6.598249394239594, + 6.598250999563424, + 6.5982526034151565, + 6.59825420579614, + 6.598255806707724, + 6.598257406151254, + 6.598259004128078, + 6.598260600639541, + 6.598262195686986, + 6.598263789271756, + 6.5982653813951915, + 6.598266972058633, + 6.59826856126342, + 6.598270149010889, + 6.598271735302377, + 6.598273320139219, + 6.598274903522749, + 6.5982764854543, + 6.598278065935204, + 6.598279644966789, + 6.598281222550386, + 6.598282798687323, + 6.598284373378926, + 6.598285946626519, + 6.5982875184314285, + 6.598289088794976, + 6.598290657718484, + 6.598292225203271, + 6.59829379125066, + 6.598295355861966, + 6.598296919038508, + 6.5982984807816, + 6.598300041092558, + 6.598301599972694, + 6.598303157423321, + 6.598304713445748, + 6.598306268041289, + 6.598307821211248, + 6.598309372956933, + 6.5983109232796515, + 6.598312472180708, + 6.598314019661406, + 6.5983155657230474, + 6.598317110366934, + 6.598318653594367, + 6.598320195406643, + 6.5983217358050625, + 6.5983232747909195, + 6.59832481236551, + 6.598326348530129, + 6.5983278832860695, + 6.598329416634622, + 6.598330948577078, + 6.598332479114727, + 6.598334008248856, + 6.598335535980754, + 6.598337062311706, + 6.598338587242996, + 6.598340110775908, + 6.598341632911724, + 6.598343153651726, + 6.598344672997194, + 6.598346190949405, + 6.598347707509639, + 6.59834922267917, + 6.598350736459275, + 6.598352248851229, + 6.598353759856303, + 6.5983552694757694, + 6.598356777710899, + 6.598358284562961, + 6.598359790033225, + 6.598361294122956, + 6.598362796833421, + 6.598364298165885, + 6.598365798121611, + 6.598367296701862, + 6.598368793907898, + 6.5983702897409815, + 6.598371784202371, + 6.598373277293323, + 6.598374769015095, + 6.598376259368942, + 6.59837774835612, + 6.598379235977881, + 6.5983807222354764, + 6.598382207130159, + 6.598383690663177, + 6.59838517283578, + 6.598386653649215, + 6.598388133104729, + 6.598389611203566, + 6.598391087946972, + 6.598392563336188, + 6.598394037372456, + 6.598395510057018, + 6.5983969813911125, + 6.598398451375979, + 6.598399920012854, + 6.598401387302974, + 6.598402853247572, + 6.598404317847884, + 6.598405781105143, + 6.598407243020579, + 6.598408703595423, + 6.598410162830905, + 6.598411620728253, + 6.5984130772886935, + 6.598414532513453, + 6.598415986403757, + 6.598417438960827, + 6.598418890185887, + 6.5984203400801595, + 6.598421788644862, + 6.598423235881217, + 6.598424681790441, + 6.59842612637375, + 6.598427569632361, + 6.5984290115674895, + 6.598430452180348, + 6.598431891472149, + 6.598433329444106, + 6.5984347660974265, + 6.598436201433321, + 6.598437635452997, + 6.598439068157662, + 6.598440499548522, + 6.598441929626782, + 6.598443358393645, + 6.5984447858503135, + 6.59844621199799, + 6.598447636837873, + 6.598449060371164, + 6.598450482599059, + 6.598451903522757, + 6.598453323143453, + 6.598454741462342, + 6.598456158480617, + 6.598457574199471, + 6.598458988620097, + 6.598460401743684, + 6.598461813571422, + 6.598463224104499, + 6.598464633344102, + 6.598466041291418, + 6.598467447947631, + 6.598468853313927, + 6.598470257391487, + 6.598471660181493, + 6.598473061685126, + 6.598474461903565, + 6.598475860837989, + 6.5984772584895754, + 6.598478654859501, + 6.59848004994894, + 6.598481443759069, + 6.598482836291058, + 6.598484227546081, + 6.598485617525308, + 6.59848700622991, + 6.598488393661055, + 6.5984897798199125, + 6.598491164707646, + 6.598492548325424, + 6.59849393067441, + 6.598495311755767, + 6.598496691570658, + 6.598498070120245, + 6.598499447405687, + 6.598500823428143, + 6.598502198188774, + 6.598503571688733, + 6.598504943929179, + 6.598506314911266, + 6.598507684636149, + 6.59850905310498, + 6.5985104203189096, + 6.59851178627909, + 6.598513150986671, + 6.598514514442799, + 6.598515876648626, + 6.598517237605295, + 6.5985185973139515, + 6.598519955775742, + 6.598521312991808, + 6.598522668963294, + 6.598524023691339, + 6.598525377177084, + 6.5985267294216685, + 6.598528080426231, + 6.598529430191908, + 6.5985307787198355, + 6.59853212601115, + 6.598533472066983, + 6.598534816888469, + 6.598536160476739, + 6.598537502832925, + 6.598538843958155, + 6.598540183853561, + 6.598541522520267, + 6.5985428599594025, + 6.598544196172093, + 6.598545531159462, + 6.598546864922634, + 6.598548197462731, + 6.598549528780874, + 6.598550858878185, + 6.598552187755783, + 6.598553515414786, + 6.598554841856312, + 6.598556167081477, + 6.598557491091396, + 6.598558813887185, + 6.598560135469955, + 6.598561455840821, + 6.598562775000893, + 6.598564092951282, + 6.598565409693095, + 6.598566725227443, + 6.598568039555432, + 6.598569352678168, + 6.598570664596757, + 6.5985719753123036, + 6.5985732848259095, + 6.598574593138678, + 6.59857590025171, + 6.598577206166106, + 6.598578510882964, + 6.598579814403384, + 6.598581116728462, + 6.598582417859293, + 6.598583717796974, + 6.598585016542599, + 6.598586314097261, + 6.598587610462051, + 6.598588905638061, + 6.598590199626381, + 6.598591492428101, + 6.598592784044308, + 6.598594074476089, + 6.59859536372453, + 6.598596651790717, + 6.598597938675734, + 6.598599224380664, + 6.598600508906589, + 6.59860179225459, + 6.598603074425748, + 6.598604355421141, + 6.5986056352418485, + 6.598606913888947, + 6.598608191363512, + 6.598609467666619, + 6.598610742799344, + 6.598612016762758, + 6.598613289557934, + 6.598614561185945, + 6.598615831647859, + 6.598617100944746, + 6.598618369077674, + 6.598619636047711, + 6.598620901855923, + 6.598622166503376, + 6.598623429991134, + 6.59862469232026, + 6.598625953491818, + 6.598627213506868, + 6.59862847236647, + 6.598629730071686, + 6.598630986623572, + 6.598632242023187, + 6.598633496271588, + 6.59863474936983, + 6.598636001318968, + 6.598637252120055, + 6.598638501774144, + 6.598639750282288, + 6.5986409976455365, + 6.59864224386494, + 6.598643488941546, + 6.598644732876405, + 6.598645975670562, + 6.598647217325065, + 6.598648457840956, + 6.598649697219282, + 6.598650935461086, + 6.598652172567408, + 6.598653408539291, + 6.598654643377774, + 6.598655877083898, + 6.5986571096587, + 6.598658341103219, + 6.59865957141849, + 6.598660800605548, + 6.598662028665429, + 6.598663255599168, + 6.598664481407794, + 6.5986657060923415, + 6.598666929653839, + 6.598668152093319, + 6.59866937341181, + 6.598670593610337, + 6.598671812689931, + 6.598673030651615, + 6.598674247496416, + 6.598675463225359, + 6.598676677839464, + 6.598677891339755, + 6.598679103727254, + 6.59868031500298, + 6.5986815251679545, + 6.598682734223195, + 6.59868394216972, + 6.598685149008545, + 6.5986863547406855, + 6.598687559367157, + 6.598688762888974, + 6.598689965307148, + 6.598691166622692, + 6.598692366836618, + 6.598693565949935, + 6.5986947639636515, + 6.598695960878777, + 6.5986971566963195, + 6.598698351417285, + 6.5986995450426775 + ], + "y11": [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 5.562541456698697e-6, + 0.0076679355166768, + 0.01532572161805884, + 0.02297892359141171, + 0.03062754418090045, + 0.03827158612904784, + 0.045911052176734295, + 0.05354594506319981, + 0.06117626752604499, + 0.06880202230123053, + 0.0764232121230802, + 0.08403983972428108, + 0.09165190783588364, + 0.09925941918730381, + 0.10686237650632417, + 0.11446078251909364, + 0.1220546399501296, + 0.12964395152231842, + 0.13722871995691657, + 0.14480894797355104, + 0.15238463829022134, + 0.15995579362329967, + 0.16752241668753212, + 0.1750845101960398, + 0.1826420768603196, + 0.1901951193902453, + 0.19774364049406848, + 0.20528764287841939, + 0.21282712924830818, + 0.22036210230712613, + 0.22789256475664504, + 0.23541851929702026, + 0.24293996862679051, + 0.2504569154428792, + 0.25796936244059515, + 0.26547731231363414, + 0.2729807677540786, + 0.2804797314524001, + 0.2879742060974594, + 0.2954641943765079, + 0.30294969897518803, + 0.31043072257753473, + 0.31790726786597595, + 0.32537933752133424, + 0.3328469342228271, + 0.34031006064806824, + 0.3477687194730686, + 0.35522291337223716, + 0.36267264501838153, + 0.3701179170827099, + 0.3775587322348312, + 0.38499509314275626, + 0.39242700247289874, + 0.3998544628900762, + 0.40727747705751083, + 0.4146960476368307, + 0.4221101772880706, + 0.4295198686696731, + 0.43692512443848885, + 0.44432594724977825, + 0.4517223397572125, + 0.45911430461287384, + 0.46650184446725723, + 0.4738849619692706, + 0.48126365976623686, + 0.48863794050389364, + 0.4960078068263948, + 0.5033732613763114, + 0.5107343067946328, + 0.5180909457207671, + 0.5254431807925425, + 0.5327910146462081, + 0.5401344499164353, + 0.5474734892363178, + 0.554808135237373, + 0.5621383905495436, + 0.5694642578011975, + 0.5767857396191293, + 0.5841028386285609, + 0.5914155574531433, + 0.5987238987149563, + 0.6060278650345106, + 0.6133274590307478, + 0.6206226833210418, + 0.6279135405211997, + 0.6352000332454627, + 0.6424821641065072, + 0.6497599357154453, + 0.6570333506818262, + 0.6643024116136373, + 0.6715671211173044, + 0.6788274817976929, + 0.6860834962581094, + 0.6933351671003015, + 0.7005824969244596, + 0.7078254883292177, + 0.715064143911654, + 0.7222984662672922, + 0.7295284579901022, + 0.7367541216725012, + 0.7439754599053541, + 0.7511924752779755, + 0.7584051703781293, + 0.7656135477920306, + 0.7728176101043465, + 0.7800173598981963, + 0.787212799755154, + 0.7944039322552472, + 0.8015907599769595, + 0.8087732854972309, + 0.8159515113914588, + 0.8231254402334988, + 0.830295074595666, + 0.8374604170487351, + 0.844621470161943, + 0.8517782365029866, + 0.8589307186380283, + 0.8660789191316915, + 0.8732228405470676, + 0.8803624854457103, + 0.8874978563876427, + 0.8946289559313532, + 0.9017557866338007, + 0.9088783510504115, + 0.9159966517350838, + 0.9231106912401854, + 0.9302204721165578, + 0.9373259969135145, + 0.9444272681788429, + 0.9515242884588059, + 0.9586170602981414, + 0.9657055862400646, + 0.9727898688262678, + 0.9798699105969222, + 0.9869457140906778, + 0.9940172818446654, + 1.001084616394497, + 1.0081477202742666, + 1.015206596016551, + 1.0222612461524117, + 1.0293116732113936, + 1.0363578797215294, + 1.0433998682093362, + 1.0504376411998209, + 1.0574712012164766, + 1.0645005507812884, + 1.0715256924147285, + 1.078546628635764, + 1.08556336196185, + 1.0925758949089388, + 1.0995842299914727, + 1.1065883697223917, + 1.1135883166131302, + 1.1205840731736192, + 1.1275756419122875, + 1.1345630253360623, + 1.1415462259503697, + 1.1485252462591364, + 1.1555000887647902, + 1.1624707559682605, + 1.16943725036898, + 1.1763995744648852, + 1.1833577307524168, + 1.1903117217265213, + 1.1972615498806525, + 1.2042072177067695, + 1.211148727695342, + 1.2180860823353472, + 1.225019284114274, + 1.2319483355181196, + 1.238873239031396, + 1.2457939971371252, + 1.2527106123168454, + 1.2596230870506069, + 1.2665314238169776, + 1.2734356250930394, + 1.2803356933543935, + 1.287231631075158, + 1.2941234407279696, + 1.3010111247839857, + 1.3078946857128841, + 1.314774125982864, + 1.3216494480606473, + 1.3285206544114792, + 1.335387747499129, + 1.3422507297858912, + 1.3491096037325865, + 1.3559643717985626, + 1.3628150364416944, + 1.3696616001183861, + 1.3765040652835705, + 1.3833424343907126, + 1.390176709891806, + 1.39700689423738, + 1.403832989876493, + 1.410654999256741, + 1.4174729248242517, + 1.4242867690236913, + 1.4310965342982598, + 1.4379022230896976, + 1.4447038378382806, + 1.4515013809828259, + 1.4582948549606898, + 1.465084262207769, + 1.4718696051585038, + 1.4786508862458754, + 1.4854281079014091, + 1.4922012725551752, + 1.4989703826357885, + 1.5057354405704109, + 1.51249644878475, + 1.5192534097030628, + 1.5260063257481542, + 1.5327551993413786, + 1.5395000329026418, + 1.5462408288504, + 1.5529775896016624, + 1.5597103175719909, + 1.5664390151755014, + 1.5731636848248651, + 1.5798843289313083, + 1.5866009499046145, + 1.5933135501531241, + 1.600022132083736, + 1.6067266981019086, + 1.6134272506116594, + 1.620123792015568, + 1.6268163247147753, + 1.6335048511089842, + 1.6401893735964623, + 1.64686989457404, + 1.6535464164371148, + 1.6602189415796482, + 1.6668874723941702, + 1.673552011271778, + 1.6802125606021376, + 1.6868691227734838, + 1.6935217001726226, + 1.700170295184931, + 1.7068149101943575, + 1.7134555475834246, + 1.7200922097332272, + 1.726724899023436, + 1.733353617832297, + 1.7399783685366317, + 1.7465991535118397, + 1.753215975131898, + 1.759828835769363, + 1.76643773779537, + 1.773042683579636, + 1.7796436754904588, + 1.7862407158947182, + 1.7928338071578782, + 1.7994229516439855, + 1.8060081517156725, + 1.8125894097341568, + 1.8191667280592427, + 1.8257401090493222, + 1.8323095550613748, + 1.8388750684509698, + 1.8454366515722656, + 1.851994306778012, + 1.8585480364195501, + 1.8650978428468135, + 1.8716437284083292, + 1.8781856954512182, + 1.8847237463211965, + 1.8912578833625757, + 1.897788108918264, + 1.9043144253297677, + 1.9108368349371911, + 1.917355340079237, + 1.9238699430932091, + 1.9303806463150115, + 1.9368874520791506, + 1.943390362718734, + 1.9498893805654738, + 1.956384507949686, + 1.9628757472002911, + 1.9693631006448162, + 1.9758465706093948, + 1.982326159418768, + 1.9888018693962848, + 1.9952737028639038, + 2.001741662142194, + 2.008205749550334, + 2.014665967406116, + 2.0211223180259426, + 2.027574803724831, + 2.0340234268164132, + 2.040468189612934, + 2.0469090944252564, + 2.053346143562859, + 2.0597793393338373, + 2.066208684044906, + 2.072634180001399, + 2.0790558295072694, + 2.085473634865092, + 2.091887598376063, + 2.0982977223400003, + 2.1047040090553457, + 2.1111064608191654, + 2.1175050799271498, + 2.1238998686736164, + 2.130290829351507, + 2.1366779642523923, + 2.143061275666471, + 2.1494407658825723, + 2.155816437188151, + 2.162188291869297, + 2.16855633221073, + 2.174920560495803, + 2.181280979006499, + 2.1876375900234386, + 2.1939903958258746, + 2.200339398691699, + 2.2066846008974346, + 2.2130260047182455, + 2.2193636124279332, + 2.2256974262989386, + 2.23202744860234, + 2.2383536816078573, + 2.244676127583853, + 2.2509947887973305, + 2.2573096675139355, + 2.263620765997959, + 2.269928086512335, + 2.2762316313186437, + 2.282531402677113, + 2.288827402846614, + 2.295119634084668, + 2.3014080986474448, + 2.3076927987897653, + 2.313973736765096, + 2.320250914825558, + 2.326524335221924, + 2.332794000203619, + 2.33905991201872, + 2.3453220729139597, + 2.3515804851347255, + 2.3578351509250624, + 2.364086072527668, + 2.3703332521839005, + 2.3765766921337756, + 2.38281639461597, + 2.3890523618678157, + 2.395284596125309, + 2.401513099623106, + 2.407737874594528, + 2.4139589232715553, + 2.420176247884834, + 2.426389850663676, + 2.432599733836056, + 2.438805899628619, + 2.445008350266672, + 2.451207087974194, + 2.45740211497383, + 2.4635934334868974, + 2.4697810457333804, + 2.475964953931937, + 2.482145160299895, + 2.488321667053258, + 2.4944944764066985, + 2.5006635905735664, + 2.5068290117658862, + 2.5129907421943587, + 2.5191487840683595, + 2.525303139595943, + 2.531453810983841, + 2.5376008004374664, + 2.5437441101609086, + 2.54988374235694, + 2.556019699227013, + 2.5621519829712645, + 2.5682805957885106, + 2.574405539876254, + 2.5805268174306812, + 2.586644430646664, + 2.5927583817177604, + 2.5988686728362143, + 2.604975306192959, + 2.6110782839776143, + 2.617177608378492, + 2.62327328158259, + 2.6293653057756003, + 2.6354536831419058, + 2.6415384158645816, + 2.647619506125394, + 2.6536969561048065, + 2.659770767981975, + 2.6658409439347532, + 2.671907486139688, + 2.6779703967720256, + 2.684029678005709, + 2.690085332013382, + 2.6961373609663832, + 2.702185767034756, + 2.7082305523872425, + 2.7142717191912884, + 2.7203092696130384, + 2.726343205817344, + 2.732373529967759, + 2.7384002442265425, + 2.74442335075466, + 2.750442851711781, + 2.756458749256285, + 2.7624710455452575, + 2.768479742734494, + 2.7744848429784987, + 2.780486348430486, + 2.786484261242382, + 2.7924785835648245, + 2.798469317547163, + 2.804456465337461, + 2.8104400290824962, + 2.8164200109277617, + 2.8223964130174646, + 2.8283692374945297, + 2.8343384865005987, + 2.8403041621760323, + 2.8462662666599075, + 2.852224802090023, + 2.858179770602897, + 2.8641311743337687, + 2.8700790154165987, + 2.876023295984071, + 2.8819640181675923, + 2.887901184097294, + 2.8938347959020323, + 2.899764855709387, + 2.9056913656456675, + 2.9116143278359083, + 2.917533744403873, + 2.923449617472052, + 2.9293619491616667, + 2.935270741592668, + 2.9411759968837394, + 2.947077717152293, + 2.952975904514476, + 2.9588705610851678, + 2.9647616889779824, + 2.9706492903052673, + 2.976533367178107, + 2.9824139217063204, + 2.988290955998466, + 2.994164472161837, + 3.0000344723024677, + 3.005900958525131, + 3.011763932933339, + 3.017623397629345, + 3.0234793547141443, + 3.029331806287474, + 3.035180754447815, + 3.0410262012923903, + 3.046868148917169, + 3.0527065994168656, + 3.0585415548849397, + 3.0643730174135984, + 3.070200989093795, + 3.0760254720152336, + 3.0818464682663653, + 3.087663979934393, + 3.093478009105266, + 3.09928855786369, + 3.10509562829312, + 3.110899222475764, + 3.1166993424925837, + 3.122495990423295, + 3.1282891683463694, + 3.1340788783390336, + 3.1398651224772713, + 3.1456479028358233, + 3.1514272214881878, + 3.1572030805066227, + 3.1629754819621447, + 3.1687444279245307, + 3.1745099204623193, + 3.1802719616428106, + 3.186030553532067, + 3.1917856981949133, + 3.1975373976949393, + 3.2032856540944996, + 3.2090304694547145, + 3.2147718458354677, + 3.2205097852954143, + 3.226244289891973, + 3.2319753616813336, + 3.237703002718453, + 3.2434272150570593, + 3.249148000749651, + 3.2548653618474983, + 3.2605793004006416, + 3.2662898184578952, + 3.2719969180668484, + 3.2777006012738634, + 3.2834008701240767, + 3.2890977266614017, + 3.2947911729285284, + 3.3004812109669226, + 3.3061678428168286, + 3.311851070517271, + 3.3175308961060517, + 3.3232073216197535, + 3.3288803490937404, + 3.3345499805621572, + 3.3402162180579316, + 3.3458790636127747, + 3.35153851925718, + 3.357194587020427, + 3.3628472689305795, + 3.368496567014487, + 3.3741424832977875, + 3.379785019804904, + 3.3854241785590493, + 3.391059961582225, + 3.396692370895221, + 3.402321408517618, + 3.4079470764677886, + 3.4135693767628967, + 3.419188311418899, + 3.424803882450544, + 3.430416091871376, + 3.4360249416937316, + 3.441630433928746, + 3.447232570586347, + 3.452831353675262, + 3.4584267852030153, + 3.4640188671759278, + 3.469607601599122, + 3.4751929904765166, + 3.480775035810835, + 3.486353739603598, + 3.491929103855131, + 3.4975011305645594, + 3.503069821729813, + 3.508635179347627, + 3.5141972054135393, + 3.5197559019218945, + 3.5253112708658416, + 3.530863314237339, + 3.536412034027151, + 3.54195743222485, + 3.5474995108188185, + 3.553038271796248, + 3.558573717143141, + 3.5641058488443096, + 3.5696346688833795, + 3.575160179242788, + 3.5806823819037867, + 3.58620127884644, + 3.591716872049627, + 3.597229163491043, + 3.6027381551471995, + 3.6082438489934234, + 3.613746247003861, + 3.6192453511514753, + 3.624741163408049, + 3.6302336857441846, + 3.6357229201293038, + 3.641208868531651, + 3.6466915329182905, + 3.6521709152551116, + 3.6576470175068243, + 3.6631198416369637, + 3.66858938960789, + 3.674055663380787, + 3.6795186649156655, + 3.684978396171363, + 3.690434859105544, + 3.6958880556747022, + 3.701337987834159, + 3.706784657538065, + 3.712228066739403, + 3.717668217389985, + 3.723105111440453, + 3.7285387508402854, + 3.73396913753779, + 3.739396273480111, + 3.7448201606132248, + 3.750240800881944, + 3.7556581962299167, + 3.7610723485996282, + 3.7664832599324, + 3.7718909321683913, + 3.7772953672466003, + 3.782696567104866, + 3.788094533679865, + 3.7934892689071154, + 3.798880774720977, + 3.804269053054651, + 3.8096541058401825, + 3.815035935008459, + 3.8204145424892118, + 3.8257899302110183, + 3.8311621001013005, + 3.836531054086327, + 3.841896794091213, + 3.847259322039921, + 3.852618639855264, + 3.8579747494589, + 3.863327652771337, + 3.868677351711941, + 3.874023848198919, + 3.879367144149335, + 3.8847072414791035, + 3.8900441421029934, + 3.8953778479346273, + 3.9007083608864814, + 3.906035682869887, + 3.9113598157950316, + 3.91668076157096, + 3.9219985221055738, + 3.927313099305631, + 3.9326244950767504, + 3.9379327113234086, + 3.9432377499489424, + 3.9485396128555497, + 3.9538383019442884, + 3.9591338191150807, + 3.9644261662667093, + 3.9697153452968212, + 3.975001358101928, + 3.980284206577404, + 3.9855638926174906, + 3.990840418115295, + 3.9961137849627915, + 4.00138399505082, + 4.006651050269091, + 4.011914952506182, + 4.017175703649541, + 4.022433305585485, + 4.027687760199203, + 4.0329390693747555, + 4.038187234995074, + 4.043432258941962, + 4.0486741430960995, + 4.053912889337039, + 4.059148499543207, + 4.0643809755919085, + 4.069610319359321, + 4.074836532720502, + 4.080059617549383, + 4.085279575718777, + 4.090496409100376, + 4.095710119564749, + 4.100920708981346, + 4.1061281792185, + 4.111332532143423, + 4.116533769622209, + 4.121731893519839, + 4.126926905700173, + 4.132118808025957, + 4.137307602358823, + 4.142493290559287, + 4.14767587448675, + 4.152855355999504, + 4.158031736954726, + 4.1632050192084815, + 4.168375204615724, + 4.173542295030297, + 4.178706292304937, + 4.183867198291267, + 4.189025014839806, + 4.19417974379996, + 4.199331387020033, + 4.20447994634722, + 4.20962542362761, + 4.214767820706189, + 4.219907139426836, + 4.225043381632328, + 4.230176549164337, + 4.235306643863435, + 4.24043366756909, + 4.24555762211967, + 4.2506785093524435, + 4.255796331103576, + 4.260911089208137, + 4.266022785500096, + 4.271131421812324, + 4.2762369999765975, + 4.281339521823593, + 4.286438989182894, + 4.291535403882988, + 4.2966287677512645, + 4.301719082614025, + 4.3068063502964735, + 4.3118905726227235, + 4.316971751415794, + 4.322049888497617, + 4.327124985689029, + 4.33219704480978, + 4.337266067678529, + 4.342332056112847, + 4.3473950119292155, + 4.352454936943031, + 4.357511832968603, + 4.362565701819151, + 4.367616545306816, + 4.372664365242647, + 4.377709163436614, + 4.382750941697599, + 4.387789701833406, + 4.392825445650756, + 4.397858174955284, + 4.402887891551551, + 4.40791459724303, + 4.412938293832119, + 4.417958983120137, + 4.422976666907324, + 4.427991346992843, + 4.433003025174779, + 4.43801170325014, + 4.443017383014861, + 4.4480200662638, + 4.453019754790739, + 4.458016450388387, + 4.463010154848384, + 4.468000869961292, + 4.472988597516606, + 4.4779733393027445, + 4.482955097107058, + 4.48793387271583, + 4.492909667914269, + 4.497882484486516, + 4.502852324215651, + 4.507819188883675, + 4.512783080271534, + 4.517744000159099, + 4.52270195032518, + 4.52765693254752, + 4.532608948602802, + 4.537558000266639, + 4.542504089313584, + 4.54744721751713, + 4.5523873866497055, + 4.557324598482679, + 4.562258854786359, + 4.567190157329993, + 4.572118507881772, + 4.5770439082088235, + 4.581966360077222, + 4.586885865251983, + 4.5918024254970655, + 4.596716042575372, + 4.6016267182487525, + 4.606534454277998, + 4.611439252422849, + 4.616341114441989, + 4.621240042093052, + 4.626136037132618, + 4.6310291013162175, + 4.635919236398327, + 4.640806444132377, + 4.645690726270742, + 4.650572084564756, + 4.655450520764697, + 4.660326036619798, + 4.665198633878246, + 4.67006831428718, + 4.674935079592693, + 4.679798931539835, + 4.684659871872609, + 4.689517902333974, + 4.694373024665849, + 4.6992252406091035, + 4.704074551903571, + 4.708920960288043, + 4.713764467500266, + 4.718605075276951, + 4.723442785353767, + 4.728277599465343, + 4.733109519345273, + 4.737938546726109, + 4.7427646833393675, + 4.74758793091553, + 4.75240829118404, + 4.75722576587331, + 4.76204035671071, + 4.766852065422584, + 4.771660893734237, + 4.776466843369944, + 4.781269916052947, + 4.786070113505455, + 4.79086743744865, + 4.79566188960268, + 4.800453471686665, + 4.805242185418694, + 4.810028032515832, + 4.81481101469411, + 4.819591133668535, + 4.8243683911530875, + 4.829142788860722, + 4.833914328503367, + 4.838683011791926, + 4.843448840436279, + 4.848211816145283, + 4.852971940626771, + 4.857729215587552, + 4.862483642733416, + 4.86723522376913, + 4.871983960398444, + 4.876729854324084, + 4.8814729072477565, + 4.886213120870154, + 4.890950496890946, + 4.895685037008788, + 4.900416742921316, + 4.905145616325152, + 4.9098716589159, + 4.914594872388151, + 4.91931525843548, + 4.92403281875045, + 4.92874755502461, + 4.933459468948495, + 4.93816856221163, + 4.9428748365025275, + 4.94757829350869, + 4.952278934916609, + 4.956976762411767, + 4.961671777678636, + 4.966363982400684, + 4.971053378260366, + 4.975739966939131, + 4.980423750117424, + 4.985104729474683, + 4.9897829066893395, + 4.994458283438821, + 4.999130861399551, + 5.003800642246948, + 5.00846762765543, + 5.013131819298413, + 5.017793218848306, + 5.022451827976523, + 5.027107648353474, + 5.031760681648571, + 5.036410929530225, + 5.04105839366585, + 5.045703075721859, + 5.050344977363672, + 5.054984100255706, + 5.059620446061387, + 5.064254016443142, + 5.068884813062406, + 5.073512837579615, + 5.078138091654214, + 5.082760576944656, + 5.087380295108399, + 5.091997247801906, + 5.096611436680655, + 5.101222863399127, + 5.105831529610817, + 5.110437436968227, + 5.115040587122872, + 5.119640981725276, + 5.124238622424977, + 5.1288335108705265, + 5.133425648709485, + 5.138015037588431, + 5.142601679152955, + 5.147185575047663, + 5.151766726916176, + 5.156345136401133, + 5.160920805144187, + 5.165493734786011, + 5.170063926966293, + 5.1746313833237405, + 5.179196105496082, + 5.183758095120063, + 5.188317353831449, + 5.19287388326503, + 5.197427685054613, + 5.201978760833032, + 5.206527112232136, + 5.211072740882803, + 5.215615648414935, + 5.220155836457454, + 5.224693306638311, + 5.229228060584481, + 5.233760099921964, + 5.238289426275789, + 5.24281604127001, + 5.24733994652771, + 5.2518611436709985, + 5.256379634321017, + 5.260895420097934, + 5.26540850262095, + 5.269918883508295, + 5.274426564377231, + 5.278931546844052, + 5.283433832524082, + 5.287933423031682, + 5.2924303199802445, + 5.296924524982194, + 5.301416039648996, + 5.305904865591143, + 5.31039100441817, + 5.3148744577386475, + 5.319355227160179, + 5.323833314289412, + 5.328308720732027, + 5.332781448092744, + 5.337251497975324, + 5.341718871982569, + 5.346183571716319, + 5.350645598777454, + 5.355104954765902, + 5.359561641280624, + 5.364015659919633, + 5.368467012279978, + 5.3729156999577565, + 5.377361724548109, + 5.381805087645223, + 5.386245790842327, + 5.390683835731702, + 5.395119223904668, + 5.399551956951601, + 5.40398203646192, + 5.408409464024092, + 5.412834241225635, + 5.417256369653118, + 5.421675850892156, + 5.4260926865274195, + 5.4305068781426264, + 5.434918427320549, + 5.439327335643012, + 5.443733604690891, + 5.448137236044119, + 5.45253823128168, + 5.456936591981614, + 5.4613323197210155, + 5.465725416076037, + 5.470115882621885, + 5.474503720932824, + 5.478888932582176, + 5.483271519142324, + 5.487651482184704, + 5.492028823279816, + 5.496403543997219, + 5.500775645905531, + 5.505145130572431, + 5.50951199956466, + 5.513876254448023, + 5.518237896787387, + 5.522596928146678, + 5.526953350088891, + 5.5313071641760825, + 5.535658371969378, + 5.5400069750289616, + 5.544352974914088, + 5.54869637318308, + 5.553037171393322, + 5.557375371101272, + 5.561710973862453, + 5.566043981231456, + 5.570374394761943, + 5.574702216006649, + 5.579027446517372, + 5.5833500878449875, + 5.587670141539441, + 5.591987609149748, + 5.596302492223999, + 5.600614792309358, + 5.60492451095206, + 5.60923164969742, + 5.613536210089819, + 5.617838193672723, + 5.622137601988668, + 5.6264344365792684, + 5.630728698985217, + 5.6350203907462815, + 5.639309513401311, + 5.643596068488231, + 5.647880057544046, + 5.652161482104844, + 5.656440343705788, + 5.660716643881129, + 5.664990384164193, + 5.669261566087392, + 5.673530191182218, + 5.677796260979249, + 5.682059777008146, + 5.686320740797651, + 5.690579153875595, + 5.694835017768894, + 5.699088334003548, + 5.7033391041046455, + 5.707587329596359, + 5.711833012001952, + 5.716076152843775, + 5.720316753643266, + 5.724554815920953, + 5.728790341196455, + 5.7330233309884795, + 5.737253786814825, + 5.741481710192383, + 5.7457071026371365, + 5.74992996566416, + 5.754150300787621, + 5.758368109520781, + 5.762583393375995, + 5.766796153864715, + 5.771006392497486, + 5.775214110783949, + 5.779419310232842, + 5.783621992352, + 5.787822158648354, + 5.792019810627934, + 5.796214949795868, + 5.800407577656383, + 5.804597695712807, + 5.808785305467565, + 5.812970408422187, + 5.817153006077299, + 5.821333099932634, + 5.825510691487022, + 5.829685782238398, + 5.833858373683803, + 5.838028467319377, + 5.84219606464037, + 5.84636116714113, + 5.850523776315116, + 5.854683893654892, + 5.858841520652126, + 5.862996658797595, + 5.867149309581183, + 5.871299474491884, + 5.875447155017797, + 5.879592352646133, + 5.883735068863213, + 5.887875305154466, + 5.892013063004435, + 5.896148343896768, + 5.9002811493142335, + 5.904411480738706, + 5.908539339651176, + 5.912664727531745, + 5.916787645859632, + 5.920908096113166, + 5.925026079769795, + 5.929141598306081, + 5.933254653197701, + 5.937365245919451, + 5.941473377945242, + 5.945579050748104, + 5.9496822658001856, + 5.953783024572751, + 5.957881328536189, + 5.9619771791600025, + 5.966070577912817, + 5.970161526262382, + 5.974250025675564, + 5.978336077618354, + 5.982419683555863, + 5.986500844952327, + 5.990579563271105, + 5.99465583997468, + 5.998729676524659, + 6.002801074381775, + 6.0068700350058855, + 6.010936559855975, + 6.015000650390154, + 6.019062308065659, + 6.023121534338858, + 6.027178330665244, + 6.031232698499438, + 6.035284639295192, + 6.039334154505389, + 6.043381245582039, + 6.047425913976285, + 6.051468161138401, + 6.0555079885177925, + 6.0595453975629985, + 6.063580389721688, + 6.067612966440665, + 6.07164312916587, + 6.075670879342373, + 6.079696218414383, + 6.083719147825242, + 6.08773966901743, + 6.091757783432563, + 6.095773492511391, + 6.099786797693806, + 6.103797700418835, + 6.107806202124645, + 6.111812304248542, + 6.115816008226972, + 6.119817315495518, + 6.123816227488908, + 6.12781274564101, + 6.131806871384829, + 6.13579860615252, + 6.139787951375374, + 6.143774908483829, + 6.147759478907465, + 6.151741664075009, + 6.155721465414326, + 6.159698884352436, + 6.163673922315497, + 6.167646580728816, + 6.171616861016846, + 6.175584764603187, + 6.179550292910589, + 6.18351344736095, + 6.187474229375313, + 6.1914326403738755, + 6.195388681775984, + 6.1993423550001285, + 6.203293661463959, + 6.207242602584272, + 6.2111891797770165, + 6.215133394457296, + 6.2190752480393625, + 6.223014741936627, + 6.22695187756165, + 6.230886656326147, + 6.23481907964099, + 6.238749148916205, + 6.242676865560975, + 6.246602230983641, + 6.250525246591698, + 6.254445913791797, + 6.258364233989753, + 6.262280208590533, + 6.266193838998267, + 6.270105126616243, + 6.274014072846907, + 6.277920679091872, + 6.281824946751904, + 6.285726877226937, + 6.289626471916061, + 6.293523732217534, + 6.297418659528773, + 6.301311255246361, + 6.305201520766043, + 6.30908945748273, + 6.312975066790497, + 6.316858350082585, + 6.320739308751401, + 6.324617944188518, + 6.328494257784676, + 6.332368250929784, + 6.336239925012917, + 6.340109281422318, + 6.343976321545402, + 6.3478410467687505, + 6.351703458478117, + 6.355563558058424, + 6.3594213468937655, + 6.3632768263674055, + 6.367129997861784, + 6.3709808627585085, + 6.374829422438363, + 6.378675678281304, + 6.382519631666462, + 6.38636128397214, + 6.390200636575818, + 6.39403769085415, + 6.3978724481829685, + 6.401704909937279, + 6.405535077491267, + 6.409362952218292, + 6.413188535490896, + 6.417011828680795, + 6.420832833158886, + 6.424651550295245, + 6.428467981459127, + 6.432282128018968, + 6.436093991342385, + 6.439903572796177, + 6.443710873746324, + 6.447515895557985, + 6.4513186395955096, + 6.455119107222424, + 6.458917299801441, + 6.462713218694455, + 6.4665068652625495, + 6.47029824086599, + 6.474087346864228, + 6.477874184615902, + 6.481658755478838, + 6.4854410608100475, + 6.489221101965729, + 6.49299888030127, + 6.496774397171249, + 6.500547653929431, + 6.50431865192877, + 6.508087392521413, + 6.511853877058696, + 6.5156181068911465, + 6.51938008336848, + 6.523139807839608, + 6.5268972816526345, + 6.530652506154857, + 6.534405482692762, + 6.5381562126120345, + 6.541904697257553, + 6.54565093797339, + 6.5493949361028125, + 6.553136692988287, + 6.556876209971471, + 6.560613488393224, + 6.5643485295936, + 6.5680813349118505, + 6.571811905686428, + 6.575540243254981, + 6.579266348954361, + 6.582990224120612, + 6.586711870088986, + 6.5904312881939315, + 6.594148479769099, + 6.597863446147341, + 6.601576188660711, + 6.6052867086404685, + 6.608995007417071, + 6.6127010863201825, + 6.616404946678672, + 6.62010658982061, + 6.623806017073274, + 6.627503229763149, + 6.631198229215921, + 6.634891016756486, + 6.638581593708945, + 6.642269961396608, + 6.6459561211419915, + 6.649640074266822, + 6.653321822092033, + 6.6570013659377665, + 6.6606787071233775, + 6.664353846967428, + 6.668026786787693, + 6.671697527901158, + 6.675366071624018, + 6.679032419271683, + 6.682696572158773, + 6.686358531599126, + 6.6900182989057875, + 6.69367587539102, + 6.6973312623662995, + 6.700984461142318, + 6.704635473028982, + 6.708284299335412, + 6.711930941369951, + 6.7155754004401516, + 6.719217677852788, + 6.72285777491385, + 6.726495692928549, + 6.7301314332013105, + 6.73376499703578, + 6.737396385734828, + 6.741025600600537, + 6.744652642934215, + 6.74827751403639, + 6.751900215206812, + 6.755520747744453, + 6.759139112947505, + 6.762755312113387, + 6.766369346538736, + 6.769981217519417, + 6.773590926350519, + 6.7771984743263545, + 6.78080386274046, + 6.7844070928856, + 6.788008166053765, + 6.791607083536173, + 6.795203846623262, + 6.7987984566047075, + 6.802390914769408, + 6.805981222405489, + 6.809569380800308, + 6.81315539124045, + 6.81673925501173, + 6.820320973399196, + 6.823900547687121, + 6.827477979159014, + 6.831053269097616, + 6.834626418784897, + 6.83819742950206, + 6.841766302529543, + 6.845333039147017, + 6.8488976406333855, + 6.852460108266789, + 6.8560204433246, + 6.859578647083427, + 6.863134720819115, + 6.866688665806747, + 6.870240483320639, + 6.8737901746343475, + 6.877337741020663, + 6.880883183751618, + 6.884426504098482, + 6.887967703331762, + 6.8915067827212075, + 6.895043743535805, + 6.898578587043782, + 6.902111314512607, + 6.90564192720899, + 6.909170426398886, + 6.912696813347483, + 6.916221089319222, + 6.9197432555777825, + 6.923263313386086, + 6.9267812640063005, + 6.930297108699835, + 6.933810848727351, + 6.937322485348747, + 6.94083201982317, + 6.9443394534090155, + 6.947844787363924, + 6.951348022944782, + 6.9548491614077275, + 6.95834820400814, + 6.961845152000654, + 6.965340006639149, + 6.968832769176755, + 6.972323440865853, + 6.975812022958073, + 6.979298516704297, + 6.982782923354654, + 6.986265244158532, + 6.989745480364564, + 6.99322363322064, + 6.996699703973902, + 7.000173693870743, + 7.003645604156813, + 7.007115436077015, + 7.010583190875508, + 7.014048869795704, + 7.017512474080271, + 7.020974004971135, + 7.024433463709478, + 7.027890851535737, + 7.031346169689609, + 7.034799419410048, + 7.038250601935265, + 7.041699718502732, + 7.045146770349178, + 7.048591758710594, + 7.052034684822228, + 7.055475549918595, + 7.058914355233461, + 7.062351101999861, + 7.06578579145009, + 7.0692184248157055, + 7.072649003327526, + 7.076077528215637, + 7.079504000709384, + 7.082928422037377, + 7.086350793427491, + 7.089771116106867, + 7.0931893913019115, + 7.096605620238294, + 7.1000198041409535, + 7.103431944234095, + 7.106842041741189, + 7.1102500978849745, + 7.113656113887462, + 7.117060090969924, + 7.120462030352908, + 7.123861933256224, + 7.127259800898959, + 7.130655634499468, + 7.134049435275372, + 7.13744120444357, + 7.14083094322023, + 7.144218652820789, + 7.147604334459959, + 7.150987989351725, + 7.154369618709344, + 7.15774922374535, + 7.161126805671547, + 7.164502365699016, + 7.167875905038113, + 7.171247424898469, + 7.174616926488987, + 7.177984411017855, + 7.18134987969253, + 7.18471333371975, + 7.188074774305529, + 7.191434202655159, + 7.194791619973214, + 7.198147027463541, + 7.20150042632927, + 7.204851817772812, + 7.208201202995854, + 7.2115485831993675, + 7.214893959583603, + 7.218237333348093, + 7.221578705691654, + 7.224918077812379, + 7.228255450907652, + 7.231590826174133, + 7.234924204807769, + 7.238255588003792, + 7.241584976956716, + 7.244912372860341, + 7.248237776907753, + 7.251561190291324, + 7.2548826142027085, + 7.258202049832854, + 7.261519498371989, + 7.264834961009634, + 7.268148438934596, + 7.271459933334968, + 7.274769445398134, + 7.278076976310769, + 7.281382527258833, + 7.284686099427581, + 7.287987694001554, + 7.291287312164587, + 7.294584955099805, + 7.2978806239896254, + 7.301174320015758, + 7.304466044359205, + 7.30775579820026, + 7.3110435827185105, + 7.31432939909284, + 7.317613248501426, + 7.320895132121738, + 7.324175051130544, + 7.327453006703903, + 7.330729000017178, + 7.334003032245018, + 7.337275104561377, + 7.3405452181395034, + 7.343813374151943, + 7.347079573770538, + 7.350343818166434, + 7.3536061085100695, + 7.356866445971188, + 7.36012483171883, + 7.363381266921335, + 7.366635752746345, + 7.369888290360802, + 7.37313888093095, + 7.376387525622337, + 7.379634225599808, + 7.382878982027516, + 7.386121796068914, + 7.38936266888676, + 7.392601601643115, + 7.3958385954993435, + 7.399073651616117, + 7.4023067711534125, + 7.40553795527051, + 7.408767205125995, + 7.411994521877765, + 7.415219906683018, + 7.418443360698262, + 7.421664885079314, + 7.424884480981297, + 7.428102149558643, + 7.431317891965093, + 7.434531709353699, + 7.437743602876819, + 7.440953573686124, + 7.444161622932596, + 7.447367751766526, + 7.450571961337519, + 7.453774252794489, + 7.456974627285662, + 7.460173085958581, + 7.463369629960098, + 7.466564260436378, + 7.469756978532905, + 7.47294778539447, + 7.476136682165184, + 7.479323669988473, + 7.482508750007075, + 7.4856919233630475, + 7.4888731911977615, + 7.492052554651909, + 7.495230014865493, + 7.4984055729778385, + 7.501579230127587, + 7.5047509874527, + 7.507920846090455, + 7.511088807177451, + 7.514254871849605, + 7.5174190412421575, + 7.520581316489665, + 7.523741698726005, + 7.52690018908438, + 7.530056788697311, + 7.533211498696642, + 7.536364320213539, + 7.539515254378492, + 7.542664302321314, + 7.545811465171141, + 7.548956744056432, + 7.552100140104973, + 7.555241654443874, + 7.558381288199569, + 7.561519042497818, + 7.5646549184637095, + 7.567788917221656, + 7.570921039895398, + 7.574051287608002, + 7.577179661481864, + 7.580306162638706, + 7.583430792199582, + 7.5865535512848705, + 7.5896744410142825, + 7.592793462506856, + 7.595910616880964, + 7.599025905254304, + 7.60213932874391, + 7.6052508884661405, + 7.608360585536695, + 7.611468421070596, + 7.614574396182204, + 7.617678511985211, + 7.62078076959264, + 7.623881170116853, + 7.626979714669541, + 7.6300764043617315, + 7.6331712403037875, + 7.636264223605407, + 7.639355355375624, + 7.642444636722805, + 7.645532068754662, + 7.648617652578231, + 7.651701389299897, + 7.654783280025376, + 7.657863325859727, + 7.6609415279073385, + 7.66401788727195, + 7.667092405056632, + 7.670165082363794, + 7.673235920295193, + 7.676304919951919, + 7.679372082434408, + 7.682437408842431, + 7.685500900275109, + 7.688562557830899, + 7.691622382607603, + 7.694680375702364, + 7.697736538211669, + 7.70079087123135, + 7.7038433758565805, + 7.706894053181881, + 7.709942904301115, + 7.712989930307491, + 7.716035132293565, + 7.719078511351237, + 7.722120068571755, + 7.725159805045711, + 7.728197721863048, + 7.7312338201130535, + 7.734268100884364, + 7.737300565264966, + 7.740331214342191, + 7.743360049202725, + 7.746387070932594, + 7.749412280617186, + 7.752435679341229, + 7.755457268188809, + 7.758477048243356, + 7.76149502058766, + 7.764511186303855, + 7.767525546473433, + 7.770538102177235, + 7.773548854495453, + 7.7765578045076404, + 7.779564953292694, + 7.7825703019288754, + 7.78557385149379, + 7.788575603064409, + 7.791575557717051, + 7.794573716527391, + 7.797570080570465, + 7.800564650920659, + 7.803557428651723, + 7.806548414836754, + 7.809537610548219, + 7.812525016857933, + 7.815510634837077, + 7.818494465556185, + 7.821476510085151, + 7.824456769493232, + 7.827435244849041, + 7.830411937220555, + 7.833386847675108, + 7.836359977279397, + 7.8393313270994796, + 7.842300898200778, + 7.845268691648074, + 7.848234708505509, + 7.851198949836594, + 7.8541614167042, + 7.857122110170562, + 7.860081031297277, + 7.863038181145312, + 7.865993560774992, + 7.8689471712460115, + 7.871899013617432, + 7.874849088947675, + 7.877797398294536, + 7.880743942715171, + 7.883688723266109, + 7.88663174100324, + 7.889572996981825, + 7.892512492256497, + 7.895450227881249, + 7.8983862049094515, + 7.901320424393841, + 7.904252887386524, + 7.907183594938975, + 7.9101125481020444, + 7.913039747925947, + 7.915965195460275, + 7.918888891753988, + 7.921810837855418, + 7.924731034812273, + 7.92764948367163, + 7.930566185479941, + 7.933481141283032, + 7.936394352126102, + 7.939305819053724, + 7.942215543109843, + 7.945123525337787, + 7.9480297667802535, + 7.950934268479316, + 7.953837031476426, + 7.95673805681241, + 7.959637345527473, + 7.962534898661196, + 7.965430717252538, + 7.968324802339836, + 7.971217154960808, + 7.974107776152544, + 7.976996666951521, + 7.97988382839359, + 7.982769261513988, + 7.985652967347323, + 7.988534946927595, + 7.9914152012881745, + 7.994293731461817, + 7.997170538480666, + 8.000045623376236, + 8.002918987179434, + 8.005790630920544, + 8.008660555629236, + 8.011528762334562, + 8.014395252064958, + 8.017260025848246, + 8.020123084711631, + 8.022984429681703, + 8.02584406178444, + 8.028701982045202, + 8.03155819148874, + 8.034412691139188, + 8.037265482020066, + 8.040116565154284, + 8.04296594156414, + 8.045813612271314, + 8.048659578296883, + 8.051503840661308, + 8.054346400384443, + 8.057187258485524, + 8.060026415983184, + 8.062863873895441, + 8.065699633239708, + 8.068533695032789, + 8.071366060290874, + 8.07419673002955, + 8.077025705263795, + 8.079852987007976, + 8.082678576275857, + 8.085502474080593, + 8.088324681434734, + 8.09114519935022, + 8.093964028838393, + 8.096781170909978, + 8.099596626575108, + 8.1024103968433, + 8.105222482723477, + 8.108032885223947, + 8.110841605352423, + 8.113648644116012, + 8.116454002521216, + 8.119257681573941, + 8.122059682279483, + 8.124860005642537, + 8.127658652667202, + 8.130455624356975, + 8.133250921714746, + 8.13604454574281, + 8.138836497442863, + 8.141626777815999, + 8.144415387862711, + 8.147202328582894, + 8.14998760097585, + 8.152771206040276, + 8.155553144774272, + 8.158333418175342, + 8.161112027240394, + 8.16388897296574, + 8.16666425634709, + 8.169437878379565, + 8.172209840057684, + 8.174980142375377, + 8.177748786325973, + 8.180515772902206, + 8.183281103096226, + 8.186044777899575, + 8.188806798303212, + 8.191567165297498, + 8.194325879872201, + 8.197082943016499, + 8.199838355718976, + 8.202592118967624, + 8.205344233749846, + 8.208094701052453, + 8.210843521861658, + 8.213590697163097, + 8.216336227941808, + 8.219080115182237, + 8.221822359868247, + 8.224562962983107, + 8.227301925509503, + 8.230039248429526, + 8.23277493272468, + 8.23550897937589, + 8.238241389363484, + 8.240972163667207, + 8.243701303266219, + 8.24642880913909, + 8.249154682263807, + 8.25187892361777, + 8.254601534177796, + 8.257322514920116, + 8.260041866820373, + 8.262759590853635, + 8.265475687994378, + 8.268190159216502, + 8.270903005493313, + 8.273614227797543, + 8.27632382710134, + 8.279031804376269, + 8.281738160593315, + 8.284442896722881, + 8.28714601373479, + 8.289847512598278, + 8.29254739428201, + 8.295245659754071, + 8.297942309981956, + 8.300637345932591, + 8.303330768572318, + 8.306022578866905, + 8.308712777781535, + 8.31140136628082, + 8.314088345328795, + 8.316773715888909, + 8.319457478924042, + 8.322139635396494, + 8.324820186267997, + 8.327499132499694, + 8.330176475052165, + 8.332852214885406, + 8.335526352958842, + 8.338198890231325, + 8.340869827661129, + 8.343539166205959, + 8.346206906822944, + 8.348873050468642, + 8.351537598099032, + 8.354200550669532, + 8.35686190913498, + 8.35952167444964, + 8.362179847567216, + 8.364836429440826, + 8.367491421023033, + 8.370144823265816, + 8.372796637120596, + 8.375446863538214, + 8.37809550346895, + 8.380742557862511, + 8.383388027668035, + 8.386031913834096, + 8.38867421730869, + 8.391314939039262, + 8.393954079972675, + 8.396591641055233, + 8.39922762323267, + 8.401862027450155, + 8.404494854652295, + 8.407126105783123, + 8.409755781786112, + 8.412383883604173, + 8.41501041217965, + 8.417635368454318, + 8.420258753369398, + 8.422880567865537, + 8.425500812882825, + 8.428119489360794, + 8.4307365982384, + 8.433352140454053, + 8.435966116945586, + 8.438578528650282, + 8.441189376504855, + 8.443798661445468, + 8.446406384407712, + 8.449012546326625, + 8.451617148136684, + 8.454220190771805, + 8.456821675165347, + 8.459421602250112, + 8.462019972958338, + 8.464616788221706, + 8.467212048971348, + 8.469805756137827, + 8.472397910651154, + 8.474988513440785, + 8.477577565435615, + 8.48016506756399, + 8.48275102075369, + 8.48533542593195, + 8.487918284025445, + 8.490499595960294, + 8.493079362662066, + 8.49565758505577, + 8.498234264065868, + 8.50080940061626, + 8.503382995630306, + 8.5059550500308, + 8.508525564739987, + 8.511094540679567, + 8.513661978770681, + 8.51622787993392, + 8.518792245089324, + 8.521355075156384, + 8.523916371054039, + 8.526476133700681, + 8.529034364014146, + 8.531591062911724, + 8.53414623131016, + 8.536699870125641, + 8.539251980273816, + 8.541802562669774, + 8.54435161822807, + 8.5468991478627, + 8.549445152487118, + 8.551989633014232, + 8.5545325903564, + 8.557074025425436, + 8.559613939132609, + 8.562152332388642, + 8.56468920610371, + 8.567224561187446, + 8.569758398548938, + 8.572290719096731, + 8.574821523738825, + 8.577350813382672, + 8.57987858893519, + 8.582404851302746, + 8.58492960139117, + 8.587452840105744, + 8.589974568351215, + 8.592494787031782, + 8.59501349705111, + 8.597530699312312, + 8.600046394717971, + 8.602560584170126, + 8.605073268570273, + 8.607584448819374, + 8.610094125817845, + 8.61260230046557, + 8.615108973661888, + 8.617614146305606, + 8.620117819294988, + 8.62261999352776, + 8.625120669901113, + 8.627619849311703, + 8.630117532655644, + 8.632613720828518, + 8.635108414725366, + 8.637601615240701, + 8.64009332326849, + 8.642583539702173, + 8.645072265434655, + 8.647559501358302, + 8.650045248364947, + 8.652529507345895, + 8.655012279191904, + 8.657493564793217, + 8.659973365039528, + 8.66245168082001, + 8.664928513023293, + 8.667403862537483, + 8.669877730250155, + 8.672350117048346, + 8.674821023818565, + 8.677290451446796, + 8.679758400818482, + 8.682224872818544, + 8.68468986833137, + 8.687153388240823, + 8.689615433430227, + 8.69207600478239, + 8.69453510317958, + 8.696992729503547, + 8.699448884635505, + 8.70190356945614, + 8.704356784845622, + 8.706808531683581, + 8.70925881084913, + 8.711707623220846, + 8.714154969676793, + 8.716600851094496, + 8.719045268350962, + 8.721488222322675, + 8.723929713885587, + 8.726369743915134, + 8.728808313286219, + 8.731245422873231, + 8.733681073550027, + 8.736115266189945, + 8.7385480016658, + 8.740979280849883, + 8.743409104613967, + 8.745837473829297, + 8.748264389366602, + 8.750689852096086, + 8.753113862887433, + 8.755536422609808, + 8.757957532131853, + 8.760377192321693, + 8.76279540404693, + 8.76521216817465, + 8.767627485571417, + 8.77004135710328, + 8.772453783635765, + 8.774864766033883, + 8.777274305162125, + 8.779682401884468, + 8.782089057064368, + 8.784494271564764, + 8.786898046248085, + 8.789300381976236, + 8.791701279610608, + 8.794100740012079, + 8.796498764041008, + 8.798895352557242, + 8.801290506420111, + 8.803684226488434, + 8.80607651362051, + 8.808467368674133, + 8.810856792506573, + 8.813244785974598, + 8.81563134993445, + 8.818016485241872, + 8.820400192752086, + 8.822782473319801, + 8.825163327799224, + 8.82754275704404, + 8.82992076190743, + 8.83229734324206, + 8.834672501900089, + 8.837046238733162, + 8.839418554592418, + 8.841789450328488, + 8.844158926791481, + 8.846526984831016, + 8.848893625296189, + 8.851258849035595, + 8.85362265689732, + 8.855985049728938, + 8.858346028377522, + 8.860705593689632, + 8.863063746511324, + 8.86542048768815, + 8.867775818065152, + 8.870129738486865, + 8.872482249797324, + 8.874833352840055, + 8.87718304845808, + 8.879531337493916, + 8.881878220789572, + 8.884223699186562, + 8.886567773525886, + 8.888910444648051, + 8.89125171339305, + 8.893591580600383, + 8.895930047109038, + 8.898267113757509, + 8.900602781383784, + 8.90293705082535, + 8.905269922919194, + 8.907601398501797, + 8.909931478409145, + 8.912260163476724, + 8.914587454539515, + 8.916913352432, + 8.919237857988165, + 8.921560972041497, + 8.923882695424977, + 8.926203028971095, + 8.928521973511838, + 8.9308395298787, + 8.93315569890267, + 8.935470481414248, + 8.93778387824343, + 8.940095890219714, + 8.942406518172113, + 8.944715762929128, + 8.947023625318778, + 8.949330106168574, + 8.951635206305545, + 8.95393892655621, + 8.956241267746607, + 8.958542230702271, + 8.960841816248243, + 8.963140025209077, + 8.965436858408824, + 8.96773231667105, + 8.970026400818822, + 8.97231911167472, + 8.974610450060824, + 8.976900416798728, + 8.979189012709533, + 8.981476238613846, + 8.983762095331787, + 8.986046583682983, + 8.988329704486569, + 8.990611458561188, + 8.992891846725, + 8.99517086979567, + 8.99744852859037, + 8.999724823925794, + 9.001999756618131, + 9.004273327483101, + 9.006545537335919, + 9.00881638699132, + 9.01108587726355, + 9.013354008966369, + 9.015620782913045, + 9.017886199916362, + 9.02015026078862, + 9.022412966341628, + 9.024674317386715, + 9.026934314734717, + 9.029192959195992, + 9.031450251580408, + 9.033706192697347, + 9.03596078335571, + 9.038214024363917, + 9.040465916529895, + 9.042716460661092, + 9.044965657564477, + 9.047213508046529, + 9.049460012913247, + 9.051705172970149, + 9.053948989022267, + 9.056191461874155, + 9.058432592329881, + 9.060672381193038, + 9.062910829266734, + 9.065147937353595, + 9.067383706255768, + 9.069618136774922, + 9.071851229712243, + 9.074082985868436, + 9.076313406043733, + 9.078542491037881, + 9.080770241650152, + 9.082996658679335, + 9.085221742923746, + 9.087445495181221, + 9.089667916249116, + 9.091889006924315, + 9.094108768003219, + 9.096327200281756, + 9.098544304555377, + 9.10076008161906, + 9.102974532267295, + 9.105187657294112, + 9.107399457493056, + 9.1096099336572, + 9.111819086579144, + 9.114026917051008, + 9.116233425864445, + 9.118438613810627, + 9.120642481680255, + 9.12284503026356, + 9.125046260350297, + 9.12724617272975, + 9.129444768190726, + 9.131642047521565, + 9.13383801151013, + 9.136032660943819, + 9.138225996609552, + 9.140418019293785, + 9.142608729782495, + 9.144798128861193, + 9.146986217314923, + 9.149172995928252, + 9.151358465485279, + 9.15354262676964, + 9.155725480564495, + 9.157907027652538, + 9.160087268815996, + 9.162266204836621, + 9.164443836495703, + 9.166620164574068, + 9.168795189852062, + 9.170968913109578, + 9.173141335126031, + 9.175312456680377, + 9.177482278551102, + 9.179650801516225, + 9.181818026353303, + 9.183983953839425, + 9.186148584751214, + 9.188311919864832, + 9.190473959955971, + 9.192634705799865, + 9.194794158171275, + 9.19695231784451, + 9.199109185593402, + 9.201264762191332, + 9.203419048411211, + 9.205572045025491, + 9.207723752806158, + 9.209874172524739, + 9.212023304952295, + 9.21417115085943, + 9.216317711016286, + 9.21846298619254, + 9.220606977157415, + 9.222749684679666, + 9.224891109527594, + 9.227031252469034, + 9.229170114271371, + 9.231307695701517, + 9.233443997525939, + 9.235579020510636, + 9.237712765421152, + 9.23984523302257, + 9.241976424079517, + 9.244106339356163, + 9.246234979616219, + 9.24836234562294, + 9.250488438139124, + 9.252613257927111, + 9.254736805748786, + 9.256859082365576, + 9.258980088538456, + 9.26109982502794, + 9.263218292594095, + 9.265335491996524, + 9.26745142399438, + 9.26956608934636, + 9.27167948881071, + 9.273791623145216, + 9.275902493107216, + 9.278012099453594, + 9.280120442940776, + 9.282227524324743, + 9.284333344361016, + 9.28643790380467, + 9.28854120341032, + 9.290643243932138, + 9.292744026123842, + 9.294843550738692, + 9.29694181852951, + 9.299038830248652, + 9.301134586648038, + 9.303229088479128, + 9.305322336492937, + 9.307414331440029, + 9.309505074070517, + 9.31159456513407, + 9.313682805379901, + 9.315769795556783, + 9.317855536413031, + 9.319940028696521, + 9.322023273154677, + 9.324105270534474, + 9.326186021582446, + 9.328265527044673, + 9.330343787666791, + 9.33242080419399, + 9.33449657737102, + 9.33657110794217, + 9.3386443966513, + 9.340716444241814, + 9.342787251456674, + 9.3448568190384, + 9.346925147729062, + 9.34899223827029, + 9.351058091403269, + 9.353122707868742, + 9.355186088407006, + 9.357248233757913, + 9.359309144660878, + 9.361368821854867, + 9.363427266078412, + 9.365484478069591, + 9.36754045856605, + 9.369595208304991, + 9.371648728023175, + 9.373701018456918, + 9.375752080342098, + 9.377801914414155, + 9.379850521408084, + 9.381897902058444, + 9.383944057099352, + 9.385988987264488, + 9.388032693287089, + 9.390075175899955, + 9.39211643583545, + 9.394156473825491, + 9.396195290601568, + 9.398232886894727, + 9.400269263435575, + 9.402304420954287, + 9.404338360180597, + 9.406371081843805, + 9.408402586672768, + 9.410432875395914, + 9.41246194874123, + 9.414489807436272, + 9.416516452208157, + 9.418541883783567, + 9.420566102888749, + 9.422589110249518, + 9.42461090659125, + 9.426631492638888, + 9.428650869116945, + 9.430669036749496, + 9.432685996260183, + 9.434701748372216, + 9.436716293808376, + 9.438729633291, + 9.440741767542004, + 9.442752697282868, + 9.444762423234637, + 9.44677094611793, + 9.448778266652928, + 9.45078438555939, + 9.452789303556631, + 9.45479302136355, + 9.456795539698607, + 9.45879685927983, + 9.460796980824826, + 9.462795905050763, + 9.464793632674388, + 9.466790164412009, + 9.468785500979516, + 9.470779643092364, + 9.472772591465581, + 9.47476434681377, + 9.476754909851095, + 9.478744281291311, + 9.48073246184773, + 9.482719452233244, + 9.484705253160316, + 9.486689865340985, + 9.488673289486862, + 9.49065552630913, + 9.49263657651855, + 9.494616440825455, + 9.496595119939755, + 9.498572614570932, + 9.500548925428049, + 9.502524053219735, + 9.504497998654204, + 9.50647076243924, + 9.508442345282209, + 9.510412747890047, + 9.512381970969273, + 9.514350015225977, + 9.51631688136583, + 9.518282570094083, + 9.520247082115558, + 9.522210418134662, + 9.524172578855378, + 9.526133564981262, + 9.528093377215457, + 9.530052016260681, + 9.532009482819234, + 9.533965777592991, + 9.535920901283411, + 9.53787485459153, + 9.539827638217968, + 9.541779252862923, + 9.543729699226175, + 9.545678978007082, + 9.547627089904585, + 9.549574035617212, + 9.551519815843065, + 9.553464431279833, + 9.555407882624785, + 9.557350170574772, + 9.559291295826231, + 9.56123125907518, + 9.563170061017221, + 9.565107702347538, + 9.567044183760899, + 9.56897950595166, + 9.570913669613757, + 9.572846675440713, + 9.574778524125634, + 9.57670921636121, + 9.578638752839723, + 9.580567134253034, + 9.582494361292587, + 9.584420434649426, + 9.586345355014164, + 9.588269123077014, + 9.590191739527768, + 9.592113205055808, + 9.594033520350102, + 9.59595268609921, + 9.597870702991273, + 9.599787571714025, + 9.601703292954786, + 9.603617867400466, + 9.605531295737562, + 9.60744357865216, + 9.609354716829941, + 9.611264710956167, + 9.613173561715696, + 9.615081269792972, + 9.616987835872031, + 9.618893260636503, + 9.6207975447696, + 9.622700688954133, + 9.624602693872502, + 9.626503560206697, + 9.628403288638303, + 9.63030187984849, + 9.632199334518033, + 9.634095653327284, + 9.6359908369562, + 9.637884886084322, + 9.639777801390792, + 9.641669583554343, + 9.643560233253295, + 9.645449751165572, + 9.647338137968687, + 9.649225394339748, + 9.651111520955459, + 9.652996518492115, + 9.65488038762561, + 9.656763129031432, + 9.658644743384665, + 9.660525231359987, + 9.66240459363168, + 9.664282830873608, + 9.666159943759245, + 9.668035932961658, + 9.669910799153506, + 9.671784543007051, + 9.67365716519415, + 9.67552866638626, + 9.677399047254433, + 9.67926830846932, + 9.681136450701171, + 9.68300347461984, + 9.68486938089477, + 9.68673417019501, + 9.688597843189207, + 9.690460400545609, + 9.692321842932062, + 9.69418217101601, + 9.696041385464504, + 9.697899486944191, + 9.699756476121319, + 9.701612353661737, + 9.703467120230899, + 9.705320776493856, + 9.707173323115267, + 9.709024760759384, + 9.710875090090068, + 9.712724311770783, + 9.714572426464592, + 9.716419434834163, + 9.71826533754177, + 9.720110135249284, + 9.721953828618185, + 9.723796418309558, + 9.725637904984087, + 9.727478289302063, + 9.729317571923385, + 9.731155753507553, + 9.73299283471367, + 9.734828816200453, + 9.736663698626217, + 9.738497482648887, + 9.740330168925988, + 9.742161758114662, + 9.743992250871647, + 9.745821647853294, + 9.747649949715559, + 9.749477157114006, + 9.751303270703806, + 9.75312829113974, + 9.754952219076195, + 9.756775055167163, + 9.75859680006625, + 9.760417454426673, + 9.762237018901248, + 9.764055494142406, + 9.76587288080219, + 9.76768917953225, + 9.769504390983844, + 9.771318515807843, + 9.773131554654729, + 9.774943508174589, + 9.776754377017129, + 9.77856416183166, + 9.780372863267107, + 9.782180481972004, + 9.783987018594502, + 9.785792473782358, + 9.787596848182943, + 9.789400142443244, + 9.791202357209857, + 9.79300349312899, + 9.794803550846469, + 9.796602531007727, + 9.798400434257816, + 9.800197261241404, + 9.801993012602763, + 9.803787688985787, + 9.805581291033985, + 9.807373819390476, + 9.809165274697998, + 9.810955657598901, + 9.812744968735158, + 9.814533208748346, + 9.816320378279666, + 9.818106477969936, + 9.819891508459582, + 9.821675470388659, + 9.823458364396826, + 9.825240191123369, + 9.827020951207185, + 9.828800645286794, + 9.830579274000328, + 9.832356837985541, + 9.834133337879804, + 9.835908774320107, + 9.837683147943057, + 9.83945645938488, + 9.841228709281427, + 9.84299989826816, + 9.844770026980163, + 9.846539096052142, + 9.848307106118424, + 9.850074057812954, + 9.851839951769295, + 9.853604788620636, + 9.855368568999783, + 9.857131293539167, + 9.858892962870835, + 9.860653577626461, + 9.862413138437338, + 9.864171645934384, + 9.865929100748133, + 9.867685503508747, + 9.869440854846012, + 9.87119515538933, + 9.872948405767735, + 9.874700606609876, + 9.876451758544032, + 9.878201862198104, + 9.879950918199613, + 9.881698927175712, + 9.883445889753174, + 9.885191806558398, + 9.886936678217404, + 9.888680505355847, + 9.890423288598996, + 9.892165028571752, + 9.893905725898641, + 9.895645381203813, + 9.89738399511105, + 9.899121568243753, + 9.900858101224959, + 9.902593594677322, + 9.904328049223132, + 9.906061465484298, + 9.907793844082363, + 9.909525185638499, + 9.911255490773499, + 9.912984760107792, + 9.91471299426143, + 9.916440193854097, + 9.918166359505106, + 9.919891491833397, + 9.921615591457543, + 9.92333865899574, + 9.925060695065826, + 9.926781700285254, + 9.92850167527112, + 9.930220620640142, + 9.931938537008676, + 9.933655424992704, + 9.93537128520784, + 9.937086118269333, + 9.938799924792058, + 9.940512705390525, + 9.942224460678878, + 9.943935191270889, + 9.945644897779966, + 9.947353580819149, + 9.949061241001113, + 9.950767878938159, + 9.95247349524223, + 9.9541780905249, + 9.955881665397374, + 9.95758422047049, + 9.959285756354731, + 9.9609862736602, + 9.962685772996648, + 9.964384254973451, + 9.966081720199623, + 9.96777816928382, + 9.969473602834322, + 9.971168021459054, + 9.972861425765572, + 9.974553816361073, + 9.976245193852387, + 9.97793555884598, + 9.979624911947958, + 9.981313253764064, + 9.983000584899674, + 9.984686905959808, + 9.98637221754912, + 9.988056520271899, + 9.98973981473208, + 9.99142210153323, + 9.993103381278557, + 9.994783654570911, + 9.996462922012775, + 9.998141184206276, + 9.999818441753177, + 10.001494695254884, + 10.003169945312441, + 10.004844192526535, + 10.00651743749749, + 10.00818968082527, + 10.009860923109484, + 10.011531164949378, + 10.013200406943845, + 10.014868649691412, + 10.016535893790252, + 10.01820213983818, + 10.019867388432653, + 10.02153164017077, + 10.023194895649269, + 10.024857155464534, + 10.026518420212597, + 10.028178690489126, + 10.029837966889431, + 10.031496250008475, + 10.033153540440855, + 10.03480983878082, + 10.036465145622255, + 10.038119461558697, + 10.039772787183326, + 10.041425123088962, + 10.043076469868074, + 10.044726828112779, + 10.046376198414833, + 10.048024581365645, + 10.049671977556264, + 10.051318387577387, + 10.052963812019359, + 10.054608251472171, + 10.05625170652546, + 10.057894177768508, + 10.059535665790252, + 10.061176171179266, + 10.06281569452378, + 10.064454236411665, + 10.066091797430445, + 10.067728378167294, + 10.069363979209028, + 10.070998601142115, + 10.072632244552674, + 10.07426491002647, + 10.075896598148919, + 10.077527309505086, + 10.079157044679688, + 10.080785804257088, + 10.0824135888213, + 10.08404039895599, + 10.085666235244476, + 10.087291098269722, + 10.088914988614349, + 10.090537906860623, + 10.092159853590466, + 10.093780829385452, + 10.095400834826803, + 10.097019870495394, + 10.098637936971757, + 10.100255034836069, + 10.101871164668168, + 10.103486327047536, + 10.105100522553316, + 10.1067137517643, + 10.10832601525893, + 10.109937313615314, + 10.1115476474112, + 10.113157017224, + 10.114765423630772, + 10.11637286720824, + 10.11797934853277, + 10.119584868180393, + 10.121189426726787, + 10.122793024747292, + 10.1243956628169, + 10.125997341510262, + 10.12759806140168, + 10.129197823065116, + 10.130796627074186, + 10.132394474002169, + 10.13399136442199, + 10.13558729890624, + 10.137182278027163, + 10.138776302356664, + 10.140369372466303, + 10.141961488927295, + 10.143552652310518, + 10.145142863186503, + 10.14673212212545, + 10.148320429697204, + 10.14990778647128, + 10.151494193016847, + 10.153079649902729, + 10.15466415769742, + 10.156247716969064, + 10.157830328285472, + 10.15941199221411, + 10.160992709322107, + 10.16257248017625, + 10.16415130534299, + 10.165729185388438, + 10.167306120878365, + 10.168882112378203, + 10.170457160453045, + 10.172031265667652, + 10.173604428586437, + 10.175176649773483, + 10.17674792979253, + 10.178318269206985, + 10.179887668579914, + 10.18145612847405, + 10.183023649451785, + 10.184590232075175, + 10.186155876905945, + 10.187720584505476, + 10.189284355434816, + 10.190847190254678, + 10.192409089525437, + 10.19397005380714, + 10.195530083659488, + 10.197089179641853, + 10.198647342313272, + 10.200204572232446, + 10.201760869957742, + 10.203316236047193, + 10.204870671058499, + 10.206424175549024, + 10.2079767500758, + 10.209528395195521, + 10.211079111464556, + 10.212628899438936, + 10.214177759674358, + 10.215725692726188, + 10.217272699149461, + 10.218818779498879, + 10.220363934328809, + 10.22190816419329, + 10.223451469646024, + 10.22499385124039, + 10.226535309529428, + 10.228075845065854, + 10.229615458402044, + 10.231154150090052, + 10.232691920681596, + 10.234228770728066, + 10.235764700780523, + 10.237299711389696, + 10.238833803105983, + 10.240366976479457, + 10.241899232059858, + 10.2434305703966, + 10.244960992038763, + 10.246490497535104, + 10.248019087434049, + 10.249546762283696, + 10.251073522631813, + 10.252599369025845, + 10.254124302012903, + 10.255648322139773, + 10.257171429952916, + 10.258693625998465, + 10.260214910822224, + 10.26173528496967, + 10.26325474898596, + 10.264773303415915, + 10.266290948804034, + 10.26780768569449, + 10.269323514631138, + 10.27083843615749, + 10.272352450816749, + 10.273865559151787, + 10.275377761705146, + 10.276889059019053, + 10.278399451635403, + 10.279908940095769, + 10.2814175249414, + 10.28292520671322, + 10.28443198595183, + 10.285937863197509, + 10.287442838990208, + 10.288946913869559, + 10.29045008837487, + 10.291952363045125, + 10.293453738418986, + 10.294954215034792, + 10.296453793430565, + 10.297952474143996, + 10.299450257712458, + 10.300947144673005, + 10.302443135562363, + 10.303938230916948, + 10.305432431272843, + 10.306925737165814, + 10.308418149131311, + 10.309909667704458, + 10.31140029342006, + 10.312890026812603, + 10.31437886841625, + 10.31586681876485, + 10.317353878391925, + 10.318840047830685, + 10.320325327614015, + 10.321809718274485, + 10.323293220344343, + 10.324775834355522, + 10.326257560839633, + 10.327738400327968, + 10.329218353351507, + 10.330697420440908, + 10.33217560212651, + 10.333652898938336, + 10.335129311406094, + 10.33660484005917, + 10.338079485426638, + 10.339553248037253, + 10.341026128419454, + 10.342498127101361, + 10.343969244610783, + 10.345439481475209, + 10.346908838221813, + 10.348377315377457, + 10.34984491346868, + 10.351311633021714, + 10.352777474562469, + 10.354242438616547, + 10.355706525709229, + 10.357169736365485, + 10.358632071109971, + 10.360093530467028, + 10.361554114960683, + 10.363013825114647, + 10.364472661452323, + 10.3659306244968, + 10.367387714770844, + 10.368843932796922, + 10.370299279097182, + 10.371753754193454, + 10.373207358607266, + 10.374660092859823, + 10.37611195747203, + 10.377562952964473, + 10.379013079857422, + 10.380462338670847, + 10.381910729924396, + 10.383358254137413, + 10.384804911828928, + 10.386250703517659, + 10.387695629722016, + 10.3891396909601, + 10.390582887749698, + 10.392025220608291, + 10.393466690053046, + 10.394907296600822, + 10.39634704076817, + 10.397785923071332, + 10.399223944026238, + 10.400661104148512, + 10.402097403953467, + 10.403532843956112, + 10.404967424671142, + 10.406401146612948, + 10.40783401029561, + 10.409266016232904, + 10.410697164938293, + 10.412127456924937, + 10.413556892705689, + 10.414985472793093, + 10.416413197699386, + 10.4178400679365, + 10.419266084016062, + 10.420691246449387, + 10.422115555747487, + 10.42353901242107, + 10.424961616980537, + 10.426383369935984, + 10.4278042717972, + 10.429224323073669, + 10.430643524274572, + 10.432061875908783, + 10.433479378484872, + 10.434896032511107, + 10.436311838495447, + 10.43772679694555, + 10.43914090836877, + 10.440554173272158, + 10.44196659216246, + 10.443378165546118, + 10.444788893929271, + 10.446198777817758, + 10.447607817717111, + 10.449016014132564, + 10.450423367569043, + 10.451829878531177, + 10.453235547523292, + 10.454640375049406, + 10.456044361613245, + 10.457447507718225, + 10.458849813867465, + 10.460251280563783, + 10.461651908309694, + 10.463051697607414, + 10.464450648958856, + 10.465848762865637, + 10.467246039829066, + 10.468642480350162, + 10.470038084929634, + 10.4714328540679, + 10.472826788265069, + 10.474219888020961, + 10.475612153835092, + 10.477003586206678, + 10.478394185634635, + 10.479783952617584, + 10.481172887653845, + 10.48256099124144, + 10.483948263878096, + 10.485334706061238, + 10.486720318287995, + 10.488105101055195, + 10.489489054859378, + 10.490872180196776, + 10.492254477563328, + 10.49363594745468, + 10.495016590366173, + 10.49639640679286, + 10.497775397229493, + 10.499153562170529, + 10.500530902110127, + 10.501907417542153, + 10.50328310896018, + 10.504657976857475, + 10.506032021727023, + 10.507405244061502, + 10.508777644353303, + 10.51014922309452, + 10.511519980776955, + 10.512889917892107, + 10.51425903493119, + 10.51562733238512, + 10.51699481074452, + 10.518361470499718, + 10.51972731214075, + 10.52109233615736, + 10.522456543038993, + 10.523819933274808, + 10.525182507353666, + 10.526544265764139, + 10.527905208994504, + 10.529265337532747, + 10.530624651866562, + 10.531983152483349, + 10.53334083987022, + 10.534697714513992, + 10.536053776901191, + 10.537409027518057, + 10.53876346685053, + 10.540117095384263, + 10.541469913604622, + 10.542821921996678, + 10.544173121045214, + 10.54552351123472, + 10.546873093049399, + 10.54822186697316, + 10.549569833489631, + 10.55091699308214, + 10.552263346233731, + 10.55360889342716, + 10.554953635144892, + 10.556297571869102, + 10.557640704081678, + 10.558983032264221, + 10.560324556898038, + 10.561665278464156, + 10.563005197443308, + 10.564344314315942, + 10.565682629562216, + 10.567020143662004, + 10.56835685709489, + 10.569692770340172, + 10.571027883876859, + 10.572362198183678, + 10.573695713739065, + 10.57502843102117, + 10.57636035050786, + 10.577691472676714, + 10.579021798005023, + 10.580351326969794, + 10.58168006004775, + 10.583007997715328, + 10.584335140448676, + 10.585661488723664, + 10.58698704301587, + 10.588311803800591, + 10.58963577155284, + 10.590958946747346, + 10.592281329858551, + 10.593602921360612, + 10.594923721727406, + 10.596243731432526, + 10.59756295094928, + 10.598881380750694, + 10.600199021309507, + 10.601515873098181, + 10.602831936588892, + 10.60414721225353, + 10.605461700563708, + 10.606775401990756, + 10.608088317005718, + 10.60940044607936, + 10.610711789682163, + 10.61202234828433, + 10.61333212235578, + 10.61464111236615, + 10.615949318784802, + 10.617256742080805, + 10.618563382722959, + 10.619869241179776, + 10.621174317919492, + 10.622478613410061, + 10.623782128119156, + 10.625084862514173, + 10.626386817062222, + 10.627687992230143, + 10.628988388484485, + 10.630288006291527, + 10.631586846117266, + 10.632884908427418, + 10.634182193687423, + 10.63547870236244, + 10.636774434917351, + 10.63806939181676, + 10.639363573524994, + 10.640656980506096, + 10.64194961322384, + 10.643241472141717, + 10.64453255772294, + 10.645822870430447, + 10.647112410726898, + 10.648401179074677, + 10.649689175935887, + 10.650976401772363, + 10.652262857045653, + 10.653548542217038, + 10.654833457747518, + 10.656117604097815, + 10.657400981728383, + 10.65868359109939, + 10.659965432670738, + 10.661246506902048, + 10.662526814252669, + 10.66380635518167, + 10.665085130147851, + 10.666363139609738, + 10.667640384025574, + 10.668916863853337, + 10.670192579550726, + 10.671467531575168, + 10.672741720383812, + 10.674015146433542, + 10.67528781018096, + 10.676559712082398, + 10.677830852593912, + 10.679101232171293, + 10.68037085127005, + 10.681639710345426, + 10.682907809852384, + 10.684175150245624, + 10.685441731979568, + 10.686707555508365, + 10.687972621285896, + 10.689236929765766, + 10.690500481401314, + 10.691763276645602, + 10.693025315951425, + 10.694286599771306, + 10.695547128557495, + 10.696806902761972, + 10.698065922836449, + 10.699324189232364, + 10.700581702400887, + 10.701838462792917, + 10.703094470859083, + 10.704349727049747, + 10.705604231814997, + 10.706857985604653, + 10.708110988868269, + 10.709363242055126, + 10.710614745614235, + 10.711865499994346, + 10.713115505643929, + 10.714364763011195, + 10.715613272544081, + 10.716861034690261, + 10.718108049897136, + 10.71935431861184, + 10.720599841281242, + 10.721844618351941, + 10.723088650270272, + 10.724331937482297, + 10.725574480433817, + 10.726816279570363, + 10.728057335337201, + 10.729297648179326, + 10.730537218541473, + 10.731776046868106, + 10.733014133603424, + 10.734251479191364, + 10.735488084075591, + 10.73672394869951, + 10.737959073506254, + 10.739193458938699, + 10.740427105439448, + 10.741660013450845, + 10.742892183414966, + 10.744123615773624, + 10.745354310968365, + 10.746584269440472, + 10.747813491630966, + 10.749041977980601, + 10.75026972892987, + 10.751496744919, + 10.752723026387956, + 10.753948573776437, + 10.75517338752388, + 10.756397468069462, + 10.757620815852093, + 10.758843431310423, + 10.760065314882835, + 10.761286467007459, + 10.76250688812215, + 10.763726578664512, + 10.764945539071881, + 10.766163769781333, + 10.76738127122968, + 10.768598043853478, + 10.769814088089015, + 10.771029404372324, + 10.772243993139172, + 10.773457854825068, + 10.774670989865259, + 10.775883398694733, + 10.777095081748215, + 10.77830603946017, + 10.77951627226481, + 10.780725780596077, + 10.781934564887658, + 10.78314262557298, + 10.78434996308521, + 10.785556577857257, + 10.78676247032177, + 10.787967640911138, + 10.789172090057495, + 10.79037581819271, + 10.791578825748397, + 10.792781113155915, + 10.793982680846359, + 10.795183529250567, + 10.796383658799122, + 10.79758306992235, + 10.798781763050313, + 10.799979738612821, + 10.801176997039425, + 10.802373538759424, + 10.803569364201847, + 10.804764473795478, + 10.805958867968842, + 10.807152547150205, + 10.808345511767577, + 10.809537762248713, + 10.810729299021112, + 10.811920122512017, + 10.813110233148414, + 10.814299631357034, + 10.815488317564355, + 10.816676292196595, + 10.817863555679718, + 10.819050108439438, + 10.820235950901209, + 10.82142108349023, + 10.822605506631449, + 10.82378922074956, + 10.824972226268995, + 10.826154523613942, + 10.82733611320833, + 10.828516995475836, + 10.829697170839877, + 10.830876639723627, + 10.83205540255, + 10.83323345974166, + 10.834410811721012, + 10.835587458910215, + 10.836763401731174, + 10.837938640605536, + 10.839113175954704, + 10.840287008199825, + 10.841460137761787, + 10.842632565061239, + 10.843804290518568, + 10.844975314553915, + 10.846145637587167, + 10.84731526003796, + 10.848484182325677, + 10.849652404869454, + 10.850819928088173, + 10.851986752400467, + 10.85315287822472, + 10.854318305979055, + 10.85548303608136, + 10.856647068949263, + 10.857810405000148, + 10.85897304465114, + 10.860134988319125, + 10.861296236420731, + 10.862456789372343, + 10.863616647590092, + 10.864775811489864, + 10.865934281487291, + 10.86709205799776, + 10.86824914143641, + 10.86940553221813, + 10.870561230757556, + 10.871716237469084, + 10.872870552766857, + 10.874024177064772, + 10.875177110776477, + 10.876329354315374, + 10.877480908094615, + 10.878631772527108, + 10.879781948025508, + 10.88093143500223, + 10.88208023386944, + 10.883228345039054, + 10.884375768922743, + 10.885522505931936, + 10.886668556477808, + 10.887813920971293, + 10.88895859982308, + 10.890102593443608, + 10.891245902243073, + 10.892388526631423, + 10.893530467018365, + 10.894671723813357, + 10.89581229742561, + 10.8969521882641, + 10.898091396737545, + 10.899229923254426, + 10.900367768222978, + 10.901504932051193, + 10.902641415146817, + 10.90377721791735, + 10.904912340770052, + 10.906046784111938, + 10.907180548349778, + 10.908313633890101, + 10.909446041139189, + 10.910577770503084, + 10.911708822387585, + 10.912839197198243, + 10.913968895340373, + 10.915097917219047, + 10.916226263239086, + 10.917353933805078, + 10.918480929321365, + 10.919607250192048, + 10.920732896820983, + 10.92185786961179, + 10.922982168967843, + 10.924105795292276, + 10.925228748987978, + 10.926351030457603, + 10.927472640103561, + 10.928593578328021, + 10.929713845532913, + 10.930833442119923, + 10.931952368490498, + 10.933070625045845, + 10.934188212186932, + 10.935305130314486, + 10.936421379828992, + 10.9375369611307, + 10.938651874619616, + 10.93976612069551, + 10.940879699757907, + 10.941992612206102, + 10.943104858439142, + 10.94421643885584, + 10.945327353854767, + 10.94643760383426, + 10.947547189192415, + 10.948656110327088, + 10.9497643676359, + 10.950871961516233, + 10.95197889236523, + 10.953085160579795, + 10.954190766556598, + 10.95529571069207, + 10.956399993382405, + 10.957503615023558, + 10.95860657601125, + 10.959708876740962, + 10.960810517607941, + 10.961911499007194, + 10.963011821333497, + 10.964111484981382, + 10.965210490345152, + 10.966308837818872, + 10.967406527796367, + 10.96850356067123, + 10.969599936836822, + 10.97069565668626, + 10.97179072061243, + 10.972885129007986, + 10.973978882265344, + 10.975071980776681, + 10.976164424933945, + 10.977256215128847, + 10.978347351752868, + 10.979437835197244, + 10.980527665852987, + 10.981616844110873, + 10.98270537036144, + 10.983793244994995, + 10.984880468401611, + 10.985967040971127, + 10.98705296309315, + 10.988138235157054, + 10.989222857551978, + 10.990306830666828, + 10.99139015489028, + 10.992472830610772, + 10.993554858216518, + 10.994636238095488, + 10.995716970635431, + 10.996797056223858, + 10.997876495248052, + 10.998955288095056, + 11.000033435151689, + 11.001110936804535, + 11.00218779343995, + 11.003264005444054, + 11.00433957320274, + 11.005414497101668, + 11.006488777526267, + 11.007562414861734, + 11.00863540949304, + 11.00970776180492, + 11.010779472181884, + 11.011850541008206, + 11.012920968667936, + 11.013990755544889, + 11.015059902022653, + 11.016128408484585, + 11.017196275313816, + 11.018263502893241, + 11.019330091605534, + 11.020396041833132, + 11.02146135395825, + 11.022526028362867, + 11.02359006542874, + 11.024653465537396, + 11.02571622907013, + 11.026778356408009, + 11.027839847931878, + 11.02890070402235, + 11.029960925059806, + 11.031020511424407, + 11.032079463496082, + 11.033137781654533, + 11.034195466279236, + 11.03525251774944, + 11.036308936444163, + 11.0373647227422, + 11.03841987702212, + 11.039474399662263, + 11.04052829104074, + 11.041581551535442, + 11.042634181524031, + 11.043686181383942, + 11.044737551492384, + 11.04578829222634, + 11.046838403962573, + 11.047887887077609, + 11.048936741947756, + 11.0499849689491, + 11.051032568457499, + 11.052079540848577, + 11.053125886497748, + 11.05417160578019, + 11.055216699070863, + 11.0562611667445, + 11.057305009175609, + 11.058348226738476, + 11.05939081980716, + 11.060432788755497, + 11.061474133957104, + 11.062514855785365, + 11.063554954613448, + 11.064594430814296, + 11.065633284760626, + 11.066671516824936, + 11.0677091273795, + 11.068746116796365, + 11.069782485447362, + 11.070818233704093, + 11.071853361937942, + 11.072887870520066, + 11.073921759821406, + 11.074955030212676, + 11.07598768206437, + 11.077019715746765, + 11.078051131629904, + 11.079081930083621, + 11.080112111477522, + 11.081141676180993, + 11.082170624563197, + 11.083198956993082, + 11.08422667383937, + 11.085253775470562, + 11.086280262254942, + 11.087306134560572, + 11.08833139275529, + 11.089356037206722, + 11.090380068282265, + 11.091403486349101, + 11.09242629177419, + 11.093448484924275, + 11.09447006616588, + 11.095491035865303, + 11.09651139438863, + 11.097531142101726, + 11.098550279370235, + 11.099568806559581, + 11.100586724034976, + 11.101604032161404, + 11.102620731303642, + 11.103636821826234, + 11.10465230409352, + 11.105667178469613, + 11.106681445318413, + 11.107695105003597, + 11.108708157888627, + 11.10972060433675, + 11.110732444710994, + 11.111743679374165, + 11.112754308688858, + 11.113764333017448, + 11.114773752722094, + 11.115782568164738, + 11.116790779707106, + 11.117798387710705, + 11.11880539253683, + 11.119811794546553, + 11.120817594100737, + 11.121822791560025, + 11.122827387284843, + 11.123831381635409, + 11.124834774971712, + 11.125837567653535, + 11.126839760040447, + 11.127841352491798, + 11.12884234536672, + 11.129842739024136, + 11.13084253382275, + 11.131841730121055, + 11.132840328277325, + 11.133838328649622, + 11.134835731595793, + 11.135832537473473, + 11.136828746640077, + 11.137824359452816, + 11.138819376268676, + 11.139813797444438, + 11.140807623336663, + 11.141800854301705, + 11.142793490695697, + 11.143785532874565, + 11.144776981194022, + 11.145767836009563, + 11.146758097676475, + 11.147747766549829, + 11.148736842984487, + 11.149725327335094, + 11.150713219956087, + 11.151700521201688, + 11.152687231425908, + 11.15367335098255, + 11.154658880225194, + 11.155643819507223, + 11.156628169181793, + 11.157611929601863, + 11.158595101120174, + 11.159577684089255, + 11.160559678861423, + 11.161541085788791, + 11.162521905223253, + 11.163502137516497, + 11.164481783019998, + 11.165460842085022, + 11.166439315062627, + 11.167417202303657, + 11.168394504158748, + 11.169371220978325, + 11.170347353112605, + 11.17132290091159, + 11.172297864725083, + 11.173272244902666, + 11.174246041793719, + 11.175219255747411, + 11.1761918871127, + 11.177163936238342, + 11.178135403472874, + 11.179106289164631, + 11.180076593661738, + 11.181046317312111, + 11.18201546046346, + 11.182984023463282, + 11.183952006658874, + 11.184919410397315, + 11.185886235025485, + 11.186852480890051, + 11.187818148337476, + 11.188783237714011, + 11.189747749365708, + 11.190711683638401, + 11.191675040877724, + 11.192637821429104, + 11.193600025637757, + 11.194561653848698, + 11.19552270640673, + 11.196483183656454, + 11.197443085942265, + 11.198402413608346, + 11.199361166998678, + 11.200319346457036, + 11.201276952326989, + 11.202233984951903, + 11.203190444674933, + 11.20414633183903, + 11.205101646786943, + 11.206056389861216, + 11.207010561404182, + 11.207964161757976, + 11.208917191264522, + 11.209869650265544, + 11.21082153910256, + 11.211772858116882, + 11.212723607649622, + 11.21367378804168, + 11.214623399633762, + 11.215572442766362, + 11.216520917779775, + 11.217468825014087, + 11.218416164809188, + 11.219362937504755, + 11.220309143440272, + 11.221254782955011, + 11.222199856388047, + 11.223144364078246, + 11.22408830636428, + 11.22503168358461, + 11.225974496077498, + 11.226916744181002, + 11.22785842823298, + 11.228799548571086, + 11.22974010553277, + 11.230680099455284, + 11.23161953067568, + 11.232558399530797, + 11.233496706357283, + 11.234434451491584, + 11.235371635269939, + 11.236308258028389, + 11.237244320102777, + 11.238179821828735, + 11.239114763541705, + 11.240049145576924, + 11.240982968269426, + 11.241916231954047, + 11.242848936965425, + 11.24378108363799, + 11.24471267230598, + 11.245643703303426, + 11.246574176964165, + 11.247504093621831, + 11.248433453609861, + 11.249362257261488, + 11.250290504909747, + 11.251218196887478, + 11.252145333527315, + 11.253071915161696, + 11.253997942122863, + 11.254923414742857, + 11.255848333353514, + 11.25677269828648, + 11.2576965098732, + 11.258619768444918, + 11.259542474332683, + 11.260464627867345, + 11.261386229379555, + 11.262307279199764, + 11.26322777765823, + 11.264147725085008, + 11.265067121809965, + 11.265985968162756, + 11.266904264472851, + 11.26782201106952, + 11.268739208281827, + 11.269655856438652, + 11.270571955868672, + 11.271487506900367, + 11.272402509862019, + 11.273316965081717, + 11.274230872887355, + 11.27514423360662, + 11.276057047567019, + 11.276969315095847, + 11.277881036520219, + 11.278792212167037, + 11.279702842363022, + 11.28061292743469, + 11.281522467708369, + 11.282431463510184, + 11.28333991516607, + 11.284247823001765, + 11.285155187342813, + 11.286062008514563, + 11.286968286842166, + 11.287874022650584, + 11.288779216264578, + 11.289683868008723, + 11.290587978207391, + 11.291491547184766, + 11.292394575264833, + 11.293297062771389, + 11.29419901002803, + 11.295100417358166, + 11.296001285085007, + 11.296901613531574, + 11.29780140302069, + 11.298700653874988, + 11.299599366416908, + 11.3004975409687, + 11.30139517785241, + 11.3022922773899, + 11.303188839902845, + 11.304084865712714, + 11.304980355140788, + 11.305875308508165, + 11.30676972613574, + 11.307663608344214, + 11.308556955454108, + 11.309449767785742, + 11.310342045659246, + 11.31123378939456, + 11.31212499931143, + 11.313015675729416, + 11.313905818967879, + 11.314795429345994, + 11.315684507182741, + 11.316573052796917, + 11.317461066507118, + 11.318348548631755, + 11.31923549948905, + 11.320121919397028, + 11.32100780867353, + 11.321893167636203, + 11.322777996602507, + 11.32366229588971, + 11.324546065814888, + 11.325429306694932, + 11.326312018846536, + 11.327194202586215, + 11.328075858230285, + 11.328956986094877, + 11.329837586495932, + 11.330717659749203, + 11.33159720617025, + 11.332476226074451, + 11.333354719776988, + 11.334232687592857, + 11.33511012983687, + 11.335987046823643, + 11.336863438867608, + 11.337739306283009, + 11.3386146493839, + 11.339489468484148, + 11.340363763897429, + 11.341237535937239, + 11.342110784916878, + 11.342983511149464, + 11.343855714947924, + 11.344727396625, + 11.345598556493245, + 11.346469194865028, + 11.347339312052526, + 11.348208908367734, + 11.349077984122458, + 11.349946539628316, + 11.350814575196742, + 11.351682091138983, + 11.3525490877661, + 11.353415565388964, + 11.354281524318267, + 11.355146964864508, + 11.356011887338004, + 11.356876292048886, + 11.357740179307099, + 11.3586035494224, + 11.359466402704362, + 11.360328739462378, + 11.361190560005648, + 11.362051864643192, + 11.362912653683841, + 11.363772927436242, + 11.364632686208862, + 11.365491930309979, + 11.366350660047686, + 11.367208875729894, + 11.368066577664326, + 11.368923766158526, + 11.36978044151985, + 11.370636604055473, + 11.371492254072383, + 11.372347391877383, + 11.3732020177771, + 11.37405613207797, + 11.374909735086247, + 11.375762827108003, + 11.376615408449128, + 11.377467479415325, + 11.378319040312117, + 11.379170091444843, + 11.380020633118662, + 11.380870665638545, + 11.381720189309284, + 11.38256920443549, + 11.383417711321584, + 11.384265710271817, + 11.385113201590247, + 11.385960185580757, + 11.386806662547041, + 11.387652632792621, + 11.388498096620825, + 11.389343054334812, + 11.390187506237552, + 11.391031452631836, + 11.391874893820269, + 11.392717830105283, + 11.393560261789126, + 11.39440218917386, + 11.395243612561371, + 11.396084532253365, + 11.396924948551366, + 11.397764861756716, + 11.398604272170578, + 11.399443180093936, + 11.400281585827589, + 11.401119489672164, + 11.4019568919281, + 11.40279379289566, + 11.403630192874928, + 11.404466092165807, + 11.405301491068021, + 11.406136389881112, + 11.406970788904449, + 11.407804688437214, + 11.408638088778414, + 11.409470990226877, + 11.410303393081254, + 11.411135297640012, + 11.411966704201445, + 11.412797613063663, + 11.413628024524602, + 11.414457938882018, + 11.415287356433488, + 11.416116277476412, + 11.41694470230801, + 11.417772631225327, + 11.41860006452523, + 11.419427002504403, + 11.42025344545936, + 11.421079393686433, + 11.421904847481779, + 11.422729807141373, + 11.423554272961018, + 11.424378245236339, + 11.42520172426278, + 11.426024710335614, + 11.426847203749935, + 11.427669204800658, + 11.428490713782523, + 11.429311730990094, + 11.43013225671776, + 11.43095229125973, + 11.431771834910043, + 11.432590887962553, + 11.433409450710945, + 11.434227523448728, + 11.435045106469234, + 11.435862200065616, + 11.436678804530857, + 11.437494920157762, + 11.438310547238961, + 11.439125686066909, + 11.439940336933883, + 11.440754500131993, + 11.441568175953162, + 11.44238136468915, + 11.443194066631536, + 11.444006282071728, + 11.444818011300955, + 11.445629254610274, + 11.44644001229057, + 11.447250284632549, + 11.448060071926747, + 11.448869374463525, + 11.449678192533073, + 11.450486526425399, + 11.451294376430345, + 11.452101742837577, + 11.452908625936589, + 11.453715026016699, + 11.454520943367053, + 11.455326378276625, + 11.456131331034216, + 11.456935801928454, + 11.457739791247791, + 11.45854329928051, + 11.459346326314721, + 11.460148872638358, + 11.46095093853919, + 11.461752524304805, + 11.462553630222626, + 11.4633542565799, + 11.464154403663704, + 11.464954071760939, + 11.46575326115834, + 11.466551972142469, + 11.467350204999713, + 11.46814796001629, + 11.468945237478247, + 11.469742037671459, + 11.470538360881632, + 11.471334207394294, + 11.472129577494814, + 11.472924471468378, + 11.47371888960001, + 11.474512832174556, + 11.475306299476701, + 11.476099291790948, + 11.476891809401641, + 11.477683852592946, + 11.478475421648863, + 11.479266516853217, + 11.48005713848967, + 11.480847286841708, + 11.481636962192653, + 11.482426164825652, + 11.483214895023687, + 11.484003153069567, + 11.484790939245933, + 11.485578253835257, + 11.486365097119844, + 11.487151469381825, + 11.487937370903165, + 11.488722801965663, + 11.489507762850947, + 11.490292253840472, + 11.491076275215532, + 11.491859827257246, + 11.492642910246571, + 11.49342552446429, + 11.494207670191022, + 11.494989347707218, + 11.495770557293156, + 11.496551299228953, + 11.497331573794552, + 11.498111381269736, + 11.498890721934112, + 11.499669596067127, + 11.500448003948055, + 11.501225945856007, + 11.502003422069924, + 11.502780432868581, + 11.503556978530588, + 11.504333059334385, + 11.505108675558246, + 11.505883827480282, + 11.506658515378435, + 11.507432739530477, + 11.508206500214019, + 11.508979797706505, + 11.509752632285212, + 11.51052500422725, + 11.511296913809563, + 11.51206836130893, + 11.512839347001968, + 11.513609871165121, + 11.514379934074675, + 11.515149536006744, + 11.515918677237282, + 11.516687358042073, + 11.517455578696744, + 11.518223339476744, + 11.51899064065737, + 11.519757482513745, + 11.520523865320834, + 11.521289789353435, + 11.52205525488618, + 11.522820262193537, + 11.523584811549812, + 11.524348903229141, + 11.525112537505505, + 11.525875714652715, + 11.526638434944415, + 11.527400698654093, + 11.52816250605507, + 11.528923857420502, + 11.52968475302338, + 11.53044519313654, + 11.531205178032643, + 11.531964707984192, + 11.532723783263533, + 11.53348240414284, + 11.534240570894125, + 11.534998283789244, + 11.535755543099883, + 11.536512349097569, + 11.537268702053666, + 11.538024602239375, + 11.538780049925734, + 11.539535045383621, + 11.540289588883748, + 11.54104368069667, + 11.541797321092778, + 11.542550510342299, + 11.543303248715297, + 11.544055536481682, + 11.544807373911194, + 11.545558761273417, + 11.546309698837772, + 11.547060186873518, + 11.547810225649753, + 11.548559815435413, + 11.549308956499276, + 11.550057649109954, + 11.550805893535907, + 11.551553690045425, + 11.552301038906641, + 11.553047940387529, + 11.5537943947559, + 11.554540402279407, + 11.555285963225543, + 11.556031077861636, + 11.556775746454859, + 11.557519969272224, + 11.558263746580582, + 11.559007078646626, + 11.55974996573689, + 11.560492408117742, + 11.5612344060554, + 11.561975959815914, + 11.562717069665183, + 11.563457735868939, + 11.56419795869276, + 11.564937738402065, + 11.56567707526211, + 11.566415969537996, + 11.567154421494664, + 11.567892431396896, + 11.568629999509316, + 11.56936712609639, + 11.570103811422426, + 11.570840055751573, + 11.57157585934782, + 11.572311222475003, + 11.573046145396795, + 11.573780628376712, + 11.574514671678116, + 11.575248275564206, + 11.57598144029803, + 11.57671416614247, + 11.577446453360258, + 11.578178302213967, + 11.578909712966011, + 11.579640685878648, + 11.580371221213976, + 11.581101319233943, + 11.581830980200333, + 11.58256020437478, + 11.583288992018753, + 11.584017343393574, + 11.5847452587604, + 11.585472738380236, + 11.586199782513933, + 11.58692639142218, + 11.587652565365516, + 11.588378304604317, + 11.589103609398814, + 11.589828480009068, + 11.590552916694996, + 11.591276919716352, + 11.59200048933274, + 11.592723625803607, + 11.593446329388243, + 11.594168600345782, + 11.594890438935208, + 11.595611845415343, + 11.596332820044859, + 11.597053363082274, + 11.597773474785946, + 11.598493155414083, + 11.599212405224735, + 11.599931224475801, + 11.600649613425023, + 11.601367572329991, + 11.602085101448138, + 11.602802201036745, + 11.60351887135294, + 11.604235112653692, + 11.604950925195821, + 11.605666309235993, + 11.606381265030716, + 11.607095792836352, + 11.607809892909103, + 11.608523565505019, + 11.609236810879997, + 11.609949629289785, + 11.610662020989972, + 11.611373986235995, + 11.612085525283142, + 11.612796638386543, + 11.613507325801178, + 11.614217587781877, + 11.614927424583312, + 11.615636836460006, + 11.616345823666327, + 11.617054386456497, + 11.617762525084576, + 11.618470239804479, + 11.61917753086997, + 11.619884398534657, + 11.620590843051994, + 11.62129686467529, + 11.6220024636577, + 11.622707640252225, + 11.623412394711716, + 11.624116727288873, + 11.624820638236246, + 11.62552412780623, + 11.626227196251074, + 11.626929843822872, + 11.627632070773567, + 11.628333877354953, + 11.629035263818674, + 11.62973623041622, + 11.630436777398936, + 11.63113690501801, + 11.631836613524484, + 11.63253590316925, + 11.633234774203046, + 11.633933226876465, + 11.634631261439944, + 11.635328878143774, + 11.636026077238098, + 11.636722858972902, + 11.637419223598032, + 11.638115171363175, + 11.638810702517876, + 11.63950581731153, + 11.640200515993374, + 11.640894798812509, + 11.641588666017872, + 11.642282117858267, + 11.642975154582338, + 11.643667776438582, + 11.644359983675347, + 11.64505177654084, + 11.645743155283107, + 11.646434120150056, + 11.64712467138944, + 11.647814809248867, + 11.648504533975794, + 11.649193845817535, + 11.64988274502125, + 11.650571231833954, + 11.651259306502515, + 11.651946969273652, + 11.652634220393933, + 11.653321060109787, + 11.654007488667485, + 11.654693506313162, + 11.655379113292792, + 11.656064309852214, + 11.656749096237116, + 11.657433472693034, + 11.658117439465363, + 11.65880099679935, + 11.659484144940093, + 11.660166884132545, + 11.660849214621512, + 11.661531136651652, + 11.662212650467481, + 11.662893756313363, + 11.663574454433517, + 11.664254745072022, + 11.6649346284728, + 11.665614104879637, + 11.666293174536168, + 11.666971837685884, + 11.667650094572126, + 11.668327945438095, + 11.669005390526845, + 11.669682430081284, + 11.67035906434417, + 11.671035293558125, + 11.67171111796562, + 11.672386537808977, + 11.673061553330381, + 11.67373616477187, + 11.674410372375334, + 11.675084176382517, + 11.675757577035025, + 11.676430574574315, + 11.677103169241697, + 11.677775361278341, + 11.678447150925273, + 11.67911853842337, + 11.679789524013371, + 11.680460107935863, + 11.681130290431296, + 11.681800071739973, + 11.682469452102055, + 11.683138431757557, + 11.683807010946351, + 11.684475189908165, + 11.685142968882586, + 11.685810348109055, + 11.686477327826868, + 11.687143908275184, + 11.687810089693013, + 11.688475872319223, + 11.68914125639254, + 11.68980624215155, + 11.69047082983469, + 11.691135019680257, + 11.69179881192641, + 11.692462206811156, + 11.693125204572368, + 11.693787805447773, + 11.694450009674956, + 11.695111817491357, + 11.695773229134282, + 11.696434244840884, + 11.697094864848184, + 11.697755089393054, + 11.69841491871223, + 11.699074353042299, + 11.699733392619713, + 11.70039203768078, + 11.701050288461667, + 11.701708145198399, + 11.702365608126861, + 11.703022677482794, + 11.7036793535018, + 11.704335636419337, + 11.704991526470732, + 11.705647023891155, + 11.70630212891565, + 11.706956841779114, + 11.707611162716299, + 11.708265091961826, + 11.708918629750169, + 11.709571776315663, + 11.710224531892502, + 11.710876896714744, + 11.7115288710163, + 11.71218045503095, + 11.712831648992323, + 11.713482453133915, + 11.714132867689084, + 11.714782892891044, + 11.715432528972872, + 11.716081776167503, + 11.716730634707732, + 11.71737910482622, + 11.718027186755483, + 11.718674880727901, + 11.719322186975713, + 11.719969105731023, + 11.720615637225789, + 11.721261781691837, + 11.721907539360847, + 11.72255291046437, + 11.723197895233811, + 11.723842493900438, + 11.724486706695382, + 11.725130533849633, + 11.725773975594048, + 11.726417032159338, + 11.727059703776083, + 11.727701990674719, + 11.728343893085553, + 11.72898541123874, + 11.729626545364313, + 11.730267295692157, + 11.73090766245202, + 11.731547645873519, + 11.732187246186125, + 11.73282646361918, + 11.733465298401882, + 11.734103750763294, + 11.734741820932344, + 11.735379509137818, + 11.736016815608373, + 11.736653740572521, + 11.737290284258641, + 11.737926446894976, + 11.73856222870963, + 11.739197629930572, + 11.739832650785635, + 11.740467291502513, + 11.741101552308768, + 11.74173543343182, + 11.74236893509896, + 11.743002057537337, + 11.743634800973965, + 11.744267165635724, + 11.74489915174936, + 11.745530759541477, + 11.74616198923855, + 11.746792841066915, + 11.747423315252771, + 11.748053412022184, + 11.748683131601085, + 11.74931247421527, + 11.749941440090396, + 11.75057002945199, + 11.751198242525442, + 11.751826079536006, + 11.7524535407088, + 11.753080626268812, + 11.75370733644089, + 11.754333671449752, + 11.754959631519979, + 11.75558521687602, + 11.756210427742182, + 11.756835264342648, + 11.75745972690146, + 11.75808381564253, + 11.758707530789632, + 11.759330872566409, + 11.759953841196369, + 11.760576436902884, + 11.7611986599092, + 11.761820510438419, + 11.762441988713514, + 11.76306309495733, + 11.76368382939257, + 11.764304192241806, + 11.76492418372748, + 11.7655438040719, + 11.766163053497237, + 11.766781932225536, + 11.7674004404787, + 11.768018578478504, + 11.768636346446595, + 11.769253744604478, + 11.769870773173533, + 11.770487432375003, + 11.771103722429999, + 11.771719643559502, + 11.77233519598436, + 11.772950379925286, + 11.773565195602865, + 11.774179643237547, + 11.774793723049651, + 11.775407435259364, + 11.776020780086741, + 11.776633757751707, + 11.777246368474053, + 11.777858612473437, + 11.778470489969393, + 11.779082001181317, + 11.779693146328471, + 11.780303925629992, + 11.780914339304887, + 11.781524387572025, + 11.782134070650148, + 11.782743388757867, + 11.783352342113663, + 11.783960930935882, + 11.784569155442744, + 11.785177015852335, + 11.785784512382616, + 11.786391645251411, + 11.786998414676416, + 11.787604820875197, + 11.78821086406519, + 11.788816544463701, + 11.789421862287904, + 11.790026817754844, + 11.790631411081439, + 11.791235642484473, + 11.7918395121806, + 11.792443020386349, + 11.793046167318117, + 11.793648953192168, + 11.79425137822464, + 11.794853442631544, + 11.795455146628758, + 11.796056490432028, + 11.796657474256977, + 11.797258098319098, + 11.79785836283375, + 11.79845826801617, + 11.79905781408146, + 11.799657001244595, + 11.800255829720426, + 11.800854299723667, + 11.801452411468912, + 11.802050165170618, + 11.802647561043123, + 11.80324459930063, + 11.803841280157215, + 11.804437603826827, + 11.805033570523285, + 11.805629180460283, + 11.806224433851385, + 11.806819330910027, + 11.807413871849521, + 11.808008056883043, + 11.80860188622365, + 11.809195360084267, + 11.809788478677694, + 11.8103812422166, + 11.810973650913532, + 11.811565704980902, + 11.812157404631003, + 11.812748750075997, + 11.813339741527916, + 11.813930379198673, + 11.814520663300048, + 11.815110594043693, + 11.815700171641142, + 11.816289396303791, + 11.816878268242917, + 11.81746678766967, + 11.81805495479507, + 11.818642769830014, + 11.81923023298527, + 11.819817344471481, + 11.820404104499168, + 11.82099051327872, + 11.8215765710204, + 11.822162277934348, + 11.82274763423058, + 11.823332640118982, + 11.823917295809318, + 11.824501601511225, + 11.825085557434212, + 11.825669163787666, + 11.826252420780847, + 11.826835328622888, + 11.827417887522802, + 11.828000097689474, + 11.828581959331663, + 11.829163472658001, + 11.829744637877003, + 11.83032545519705, + 11.830905924826405, + 11.831486046973202, + 11.832065821845454, + 11.832645249651046, + 11.83322433059774, + 11.833803064893175, + 11.834381452744863, + 11.834959494360193, + 11.835537189946432, + 11.83611453971072, + 11.836691543860075, + 11.83726820260139, + 11.83784451614143, + 11.838420484686846, + 11.838996108444158, + 11.839571387619765, + 11.84014632241994, + 11.840720913050832, + 11.841295159718474, + 11.841869062628767, + 11.842442621987491, + 11.843015838000307, + 11.84358871087275, + 11.844161240810227, + 11.844733428018031, + 11.845305272701328, + 11.84587677506516, + 11.846447935314446, + 11.847018753653986, + 11.847589230288454, + 11.848159365422402, + 11.84872915926026, + 11.84929861200634, + 11.849867723864824, + 11.850436495039773, + 11.851004925735133, + 11.851573016154717, + 11.852140766502227, + 11.852708176981237, + 11.853275247795198, + 11.853841979147441, + 11.85440837124118, + 11.854974424279499, + 11.855540138465367, + 11.856105514001626, + 11.856670551091003, + 11.857235249936098, + 11.85779961073939, + 11.858363633703243, + 11.858927319029894, + 11.859490666921458, + 11.860053677579934, + 11.860616351207197, + 11.861178688005001, + 11.861740688174981, + 11.862302351918649, + 11.862863679437396, + 11.863424670932499, + 11.863985326605107, + 11.864545646656248, + 11.86510563128684, + 11.865665280697666, + 11.8662245950894, + 11.866783574662593, + 11.867342219617672, + 11.86790053015495, + 11.868458506474616, + 11.86901614877674, + 11.869573457261275, + 11.870130432128049, + 11.870687073576773, + 11.871243381807043, + 11.871799357018325, + 11.872354999409977, + 11.872910309181233, + 11.873465286531202, + 11.874019931658884, + 11.874574244763153, + 11.875128226042765, + 11.87568187569636, + 11.876235193922454, + 11.876788180919451, + 11.877340836885631, + 11.877893162019156, + 11.878445156518069, + 11.8789968205803, + 11.879548154403649, + 11.88009915818581, + 11.880649832124353, + 11.881200176416728, + 11.88175019126027, + 11.882299876852194, + 11.882849233389601, + 11.883398261069464, + 11.88394696008865, + 11.884495330643903, + 11.885043372931845, + 11.885591087148988, + 11.886138473491721, + 11.886685532156319, + 11.887232263338937, + 11.887778667235612, + 11.888324744042265, + 11.888870493954704, + 11.889415917168607, + 11.889961013879551, + 11.890505784282984, + 11.891050228574244, + 11.891594346948546, + 11.892138139600997, + 11.892681606726574, + 11.89322474852015, + 11.893767565176478, + 11.894310056890188, + 11.894852223855802, + 11.895394066267716, + 11.895935584320222, + 11.896476778207486, + 11.89701764812356, + 11.897558194262384, + 11.898098416817774, + 11.898638315983439, + 11.899177891952965, + 11.899717144919823, + 11.900256075077374, + 11.900794682618857, + 11.901332967737396, + 11.901870930626004, + 11.902408571477572, + 11.90294589048488, + 11.903482887840592, + 11.90401956373726, + 11.90455591836731, + 11.905091951923062, + 11.90562766459672, + 11.90616305658037, + 11.906698128065985, + 11.90723287924542, + 11.907767310310422, + 11.908301421452617, + 11.908835212863519, + 11.909368684734526, + 11.909901837256921, + 11.910434670621873, + 11.910967185020441, + 11.911499380643562, + 11.912031257682061, + 11.912562816326655, + 11.913094056767937, + 11.913624979196397, + 11.9141555838024, + 11.9146858707762, + 11.915215840307944, + 11.915745492587659, + 11.916274827805259, + 11.916803846150541, + 11.917332547813198, + 11.9178609329828, + 11.918389001848807, + 11.918916754600566, + 11.919444191427313, + 11.919971312518165, + 11.920498118062131, + 11.921024608248102, + 11.92155078326486, + 11.922076643301075, + 11.922602188545298, + 11.923127419185972, + 11.923652335411425, + 11.924176937409875, + 11.924701225369425, + 11.925225199478065, + 11.925748859923674, + 11.92627220689402, + 11.926795240576753, + 11.927317961159417, + 11.92784036882944, + 11.928362463774137, + 11.928884246180715, + 11.929405716236266, + 11.92992687412777, + 11.930447720042096, + 11.930968254166, + 11.931488476686129, + 11.932008387789015, + 11.932527987661079, + 11.933047276488631, + 11.93356625445787, + 11.934084921754884, + 11.934603278565646, + 11.935121325076024, + 11.935639061471766, + 11.936156487938518, + 11.93667360466181, + 11.937190411827057, + 11.937706909619575, + 11.938223098224556, + 11.938738977827091, + 11.939254548612151, + 11.939769810764608, + 11.94028476446921, + 11.940799409910605, + 11.941313747273325, + 11.941827776741793, + 11.942341498500323, + 11.942854912733115, + 11.943368019624263, + 11.943880819357748, + 11.944393312117441, + 11.944905498087104, + 11.945417377450392, + 11.945928950390842, + 11.946440217091887, + 11.946951177736851, + 11.947461832508944, + 11.94797218159127, + 11.94848222516682, + 11.94899196341848, + 11.949501396529023, + 11.950010524681112, + 11.950519348057302, + 11.951027866840043, + 11.951536081211668, + 11.952043991354406, + 11.952551597450373, + 11.953058899681583, + 11.953565898229932, + 11.954072593277214, + 11.954578985005114, + 11.9550850735952, + 11.955590859228941, + 11.956096342087694, + 11.956601522352708, + 11.95710640020512, + 11.957610975825961, + 11.958115249396156, + 11.958619221096518, + 11.959122891107754, + 11.959626259610463, + 11.960129326785133, + 11.960632092812148, + 11.961134557871778, + 11.961636722144195, + 11.962138585809452, + 11.962640149047502, + 11.963141412038189, + 11.963642374961243, + 11.964143037996296, + 11.964643401322865, + 11.965143465120367, + 11.965643229568101, + 11.966142694845269, + 11.96664186113096, + 11.967140728604157, + 11.967639297443736, + 11.968137567828466, + 11.96863553993701, + 11.969133213947922, + 11.969630590039651, + 11.970127668390537, + 11.970624449178818, + 11.971120932582616, + 11.971617118779957, + 11.972113007948753, + 11.972608600266813, + 11.97310389591184, + 11.973598895061428, + 11.974093597893068, + 11.97458800458414, + 11.975082115311922, + 11.975575930253584, + 11.97606944958619, + 11.9765626734867, + 11.977055602131966, + 11.977548235698734, + 11.978040574363645, + 11.978532618303234, + 11.97902436769393, + 11.979515822712058, + 11.980006983533835, + 11.980497850335375, + 11.980988423292684, + 11.981478702581667, + 11.981968688378116, + 11.982458380857723, + 11.982947780196078, + 11.98343688656866, + 11.983925700150843, + 11.984414221117902, + 11.984902449645002, + 11.985390385907204, + 11.985878030079464, + 11.986365382336633, + 11.98685244285346, + 11.987339211804587, + 11.98782568936455, + 11.988311875707785, + 11.98879777100862, + 11.98928337544128, + 11.989768689179886, + 11.990253712398454, + 11.990738445270894, + 11.991222887971016, + 11.991707040672527, + 11.99219090354902, + 11.992674476773994, + 11.993157760520843, + 11.993640754962852, + 11.994123460273208, + 11.994605876624991, + 11.99508800419118, + 11.995569843144645, + 11.99605139365816, + 11.99653265590439, + 11.9970136300559, + 11.997494316285147, + 11.99797471476449, + 11.998454825666181, + 11.998934649162376, + 11.999414185425115, + 11.999893434626347, + 12.000372396937916, + 12.000851072531555, + 12.001329461578903, + 12.001807564251495, + 12.002285380720759, + 12.002762911158023, + 12.003240155734513, + 12.003717114621352, + 12.00419378798956, + 12.004670176010057, + 12.005146278853655, + 12.005622096691072, + 12.006097629692913, + 12.006572878029695, + 12.00704784187182, + 12.007522521389593, + 12.00799691675322, + 12.0084710281328, + 12.008944855698333, + 12.009418399619717, + 12.009891660066748, + 12.010364637209118, + 12.010837331216424, + 12.011309742258153, + 12.011781870503698, + 12.012253716122347, + 12.012725279283282, + 12.013196560155597, + 12.01366755890827, + 12.014138275710188, + 12.014608710730132, + 12.01507886413678, + 12.01554873609872, + 12.016018326784422, + 12.016487636362271, + 12.016956665000544, + 12.017425412867416, + 12.017893880130964, + 12.018362066959163, + 12.018829973519889, + 12.019297599980915, + 12.019764946509918, + 12.020232013274468, + 12.020698800442043, + 12.021165308180013, + 12.02163153665565, + 12.022097486036133, + 12.022563156488527, + 12.02302854817981, + 12.023493661276852, + 12.02395849594643, + 12.024423052355212, + 12.024887330669776, + 12.02535133105659, + 12.025815053682035, + 12.02627849871238, + 12.026741666313802, + 12.027204556652377, + 12.027667169894078, + 12.028129506204785, + 12.028591565750274, + 12.029053348696223, + 12.029514855208209, + 12.029976085451715, + 12.03043703959212, + 12.030897717794705, + 12.031358120224654, + 12.031818247047052, + 12.032278098426882, + 12.03273767452903, + 12.033196975518287, + 12.033656001559338, + 12.034114752816775, + 12.03457322945509, + 12.035031431638675, + 12.035489359531827, + 12.035947013298742, + 12.036404393103517, + 12.036861499110154, + 12.037318331482554, + 12.03777489038452, + 12.038231175979758, + 12.03868718843188, + 12.039142927904388, + 12.039598394560699, + 12.040053588564126, + 12.040508510077887, + 12.040963159265097, + 12.041417536288778, + 12.041871641311857, + 12.042325474497156, + 12.042779036007405, + 12.043232326005233, + 12.043685344653177, + 12.04413809211367, + 12.044590568549054, + 12.045042774121569, + 12.04549470899336, + 12.045946373326474, + 12.046397767282864, + 12.046848891024382, + 12.047299744712785, + 12.047750328509734, + 12.048200642576791, + 12.048650687075424, + 12.049100462167003, + 12.049549968012798, + 12.04999920477399, + 12.050448172611656, + 12.050896871686781, + 12.051345302160254, + 12.051793464192865, + 12.05224135794531, + 12.052688983578184, + 12.053136341251994, + 12.053583431127144, + 12.054030253363944, + 12.054476808122612, + 12.054923095563263, + 12.05536911584592, + 12.055814869130513, + 12.05626035557687, + 12.056705575344727, + 12.057150528593725, + 12.057595215483408, + 12.058039636173227, + 12.058483790822532, + 12.058927679590582, + 12.05937130263654, + 12.059814660119473, + 12.060257752198353, + 12.060700579032058, + 12.06114314077937, + 12.061585437598975, + 12.062027469649465, + 12.062469237089337, + 12.062910740076994, + 12.06335197877074, + 12.063792953328791, + 12.064233663909263, + 12.06467411067018, + 12.06511429376947, + 12.065554213364969, + 12.065993869614413, + 12.066433262675448, + 12.066872392705626, + 12.067311259862402, + 12.067749864303138, + 12.068188206185104, + 12.068626285665472, + 12.069064102901322, + 12.069501658049639, + 12.069938951267316, + 12.07037598271115, + 12.070812752537845, + 12.071249260904011, + 12.071685507966166, + 12.072121493880728, + 12.07255721880403, + 12.072992682892307, + 12.0734278863017, + 12.073862829188258, + 12.074297511707934, + 12.074731934016592, + 12.075166096270001, + 12.075599998623835, + 12.076033641233673, + 12.076467024255008, + 12.076900147843235, + 12.077333012153654, + 12.077765617341479, + 12.078197963561822, + 12.078630050969709, + 12.079061879720072, + 12.07949344996775, + 12.079924761867485, + 12.080355815573933, + 12.080786611241654, + 12.081217149025116, + 12.081647429078696, + 12.082077451556675, + 12.082507216613243, + 12.0829367244025, + 12.083365975078452, + 12.083794968795013, + 12.084223705706005, + 12.084652185965156, + 12.085080409726107, + 12.0855083771424, + 12.085936088367491, + 12.086363543554743, + 12.086790742857422, + 12.087217686428712, + 12.087644374421696, + 12.08807080698937, + 12.088496984284637, + 12.08892290646031, + 12.089348573669108, + 12.089773986063662, + 12.090199143796509, + 12.090624047020095, + 12.091048695886776, + 12.091473090548815, + 12.091897231158386, + 12.092321117867568, + 12.092744750828354, + 12.093168130192643, + 12.093591256112244, + 12.094014128738873, + 12.094436748224162, + 12.094859114719641, + 12.09528122837676, + 12.095703089346872, + 12.096124697781242, + 12.096546053831043, + 12.09696715764736, + 12.097388009381183, + 12.097808609183415, + 12.09822895720487, + 12.09864905359627, + 12.099068898508245, + 12.099488492091336, + 12.099907834495994, + 12.100326925872583, + 12.100745766371372, + 12.101164356142544, + 12.101582695336187, + 12.102000784102307, + 12.102418622590811, + 12.102836210951525, + 12.103253549334177, + 12.103670637888415, + 12.104087476763787, + 12.104504066109762, + 12.104920406075708, + 12.105336496810914, + 12.105752338464573, + 12.106167931185793, + 12.106583275123588, + 12.10699837042689, + 12.107413217244533, + 12.107827815725265, + 12.108242166017753, + 12.108656268270561, + 12.109070122632177, + 12.109483729250991, + 12.109897088275307, + 12.110310199853343, + 12.110723064133227, + 12.111135681262994, + 12.111548051390598, + 12.111960174663896, + 12.112372051230663, + 12.112783681238582, + 12.11319506483525, + 12.113606202168173, + 12.11401709338477, + 12.114427738632376, + 12.11483813805823, + 12.115248291809488, + 12.115658200033213, + 12.116067862876388, + 12.116477280485903, + 12.11688645300856, + 12.117295380591072, + 12.117704063380065, + 12.118112501522083, + 12.118520695163573, + 12.1189286444509, + 12.11933634953034, + 12.119743810548082, + 12.120151027650227, + 12.120558000982786, + 12.120964730691687, + 12.121371216922771, + 12.121777459821786, + 12.122183459534398, + 12.122589216206185, + 12.122994729982635, + 12.123400001009148, + 12.123805029431047, + 12.124209815393556, + 12.124614359041816, + 12.125018660520885, + 12.125422719975727, + 12.125826537551228, + 12.12623011339218, + 12.126633447643291, + 12.127036540449184, + 12.127439391954391, + 12.12784200230336, + 12.128244371640456, + 12.128646500109951, + 12.129048387856038, + 12.129450035022815, + 12.129851441754301, + 12.130252608194425, + 12.130653534487031, + 12.131054220775876, + 12.131454667204636, + 12.131854873916893, + 12.132254841056147, + 12.132654568765812, + 12.13305405718922, + 12.133453306469608, + 12.133852316750133, + 12.134251088173869, + 12.1346496208838, + 12.135047915022826, + 12.135445970733759, + 12.13584378815933, + 12.13624136744218, + 12.136638708724867, + 12.137035812149866, + 12.137432677859561, + 12.137829305996256, + 12.138225696702166, + 12.138621850119424, + 12.139017766390078, + 12.139413445656084, + 12.139808888059324, + 12.140204093741586, + 12.14059906284458, + 12.140993795509923, + 12.141388291879156, + 12.141782552093732, + 12.142176576295014, + 12.14257036462429, + 12.142963917222756, + 12.143357234231527, + 12.14375031579163, + 12.144143162044012, + 12.144535773129535, + 12.144928149188972, + 12.145320290363019, + 12.14571219679228, + 12.14610386861728, + 12.146495305978458, + 12.146886509016172, + 12.147277477870691, + 12.147668212682204, + 12.148058713590812, + 12.14844898073654, + 12.148839014259316, + 12.149228814298999, + 12.149618380995353, + 12.150007714488066, + 12.150396814916737, + 12.150785682420885, + 12.151174317139942, + 12.151562719213262, + 12.151950888780108, + 12.152338825979665, + 12.152726530951035, + 12.153114003833235, + 12.153501244765197, + 12.153888253885773, + 12.154275031333732, + 12.154661577247756, + 12.155047891766449, + 12.155433975028327, + 12.155819827171827, + 12.156205448335303, + 12.156590838657023, + 12.156975998275175, + 12.157360927327863, + 12.15774562595311, + 12.158130094288854, + 12.158514332472954, + 12.158898340643182, + 12.159282118937229, + 12.159665667492705, + 12.160048986447137, + 12.16043207593797, + 12.160814936102566, + 12.161197567078204, + 12.161579969002084, + 12.161962142011319, + 12.162344086242944, + 12.162725801833911, + 12.163107288921088, + 12.163488547641263, + 12.163869578131143, + 12.164250380527351, + 12.16463095496643, + 12.16501130158484, + 12.165391420518961, + 12.165771311905088, + 12.166150975879436, + 12.16653041257814, + 12.166909622137254, + 12.167288604692748, + 12.167667360380511, + 12.168045889336351, + 12.168424191695996, + 12.16880226759509, + 12.169180117169201, + 12.16955774055381, + 12.169935137884318, + 12.170312309296047, + 12.17068925492424, + 12.171065974904053, + 12.171442469370565, + 12.171818738458773, + 12.172194782303595, + 12.172570601039869, + 12.172946194802345, + 12.1733215637257, + 12.173696707944531, + 12.174071627593346, + 12.174446322806581, + 12.174820793718586, + 12.175195040463636, + 12.175569063175923, + 12.175942861989554, + 12.176316437038563, + 12.1766897884569, + 12.177062916378436, + 12.177435820936958, + 12.177808502266181, + 12.178180960499732, + 12.178553195771164, + 12.178925208213945, + 12.179296997961465, + 12.179668565147036, + 12.18003990990389, + 12.180411032365175, + 12.180781932663963, + 12.181152610933248, + 12.181523067305939, + 12.181893301914869, + 12.182263314892792, + 12.182633106372382, + 12.183002676486232, + 12.183372025366856, + 12.18374115314669, + 12.18411005995809, + 12.184478745933335, + 12.184847211204618, + 12.18521545590406, + 12.185583480163704, + 12.185951284115504, + 12.186318867891345, + 12.186686231623028, + 12.187053375442277, + 12.187420299480738, + 12.187787003869975, + 12.188153488741476, + 12.188519754226649, + 12.188885800456825, + 12.189251627563253, + 12.189617235677106, + 12.18998262492948, + 12.190347795451387, + 12.190712747373768, + 12.19107748082748, + 12.191441995943304, + 12.19180629285194, + 12.192170371684014, + 12.192534232570074, + 12.19289787564058, + 12.19326130102593, + 12.193624508856429, + 12.193987499262313, + 12.194350272373738, + 12.19471282832078, + 12.195075167233439, + 12.195437289241639, + 12.19579919447522, + 12.196160883063953, + 12.196522355137523, + 12.196883610825543, + 12.197244650257545, + 12.197605473562986, + 12.197966080871241, + 12.198326472311615, + 12.19868664801333, + 12.199046608105533, + 12.199406352717292, + 12.199765881977598, + 12.200125196015366, + 12.200484294959434, + 12.20084317893856, + 12.20120184808143, + 12.201560302516649, + 12.201918542372743, + 12.202276567778169, + 12.202634378861298, + 12.202991975750429, + 12.203349358573785, + 12.203706527459511, + 12.204063482535672, + 12.204420223930263, + 12.204776751771195, + 12.205133066186312, + 12.205489167303368, + 12.205845055250053, + 12.206200730153975, + 12.206556192142665, + 12.206911441343582, + 12.207266477884103, + 12.207621301891532, + 12.207975913493096, + 12.208330312815946, + 12.208684499987157, + 12.209038475133731, + 12.209392238382586, + 12.209745789860571, + 12.210099129694457, + 12.21045225801094, + 12.210805174936636, + 12.211157880598094, + 12.211510375121776, + 12.211862658634077, + 12.212214731261314, + 12.212566593129724, + 12.212918244365476, + 12.213269685094657, + 12.213620915443283, + 12.213971935537291, + 12.214322745502544, + 12.214673345464833, + 12.215023735549867, + 12.215373915883285, + 12.21572388659065, + 12.216073647797447, + 12.21642319962909, + 12.216772542210915, + 12.217121675668185, + 12.217470600126083, + 12.217819315709724, + 12.218167822544146, + 12.218516120754307, + 12.2188642104651, + 12.21921209180133, + 12.219559764887741, + 12.219907229848994, + 12.22025448680968, + 12.220601535894307, + 12.22094837722732, + 12.221295010933082, + 12.221641437135883, + 12.221987655959941, + 12.222333667529396, + 12.222679471968315, + 12.223025069400691, + 12.223370459950447, + 12.223715643741421, + 12.22406062089739, + 12.224405391542046, + 12.224749955799014, + 12.22509431379184, + 12.225438465644002, + 12.225782411478898, + 12.226126151419855, + 12.226469685590127, + 12.22681301411289, + 12.227156137111255, + 12.227499054708248, + 12.22784176702683, + 12.228184274189884, + 12.228526576320222, + 12.22886867354058, + 12.229210565973622, + 12.229552253741941, + 12.229893736968052, + 12.230235015774399, + 12.230576090283352, + 12.23091696061721, + 12.231257626898193, + 12.231598089248454, + 12.231938347790074, + 12.23227840264505, + 12.232618253935321, + 12.232957901782742, + 12.233297346309099, + 12.233636587636104, + 12.233975625885398, + 12.234314461178547, + 12.234653093637048, + 12.234991523382318, + 12.23532975053571, + 12.235667775218499, + 12.236005597551886, + 12.236343217657005, + 12.236680635654913, + 12.237017851666597, + 12.23735486581297, + 12.237691678214874, + 12.238028288993076, + 12.238364698268276, + 12.238700906161094, + 12.239036912792088, + 12.239372718281732, + 12.239708322750438, + 12.240043726318538, + 12.2403789291063, + 12.240713931233913, + 12.241048732821495, + 12.2413833339891, + 12.241717734856698, + 12.242051935544199, + 12.242385936171429, + 12.242719736858152, + 12.243053337724056, + 12.243386738888761, + 12.243719940471811, + 12.244052942592681, + 12.24438574537077, + 12.244718348925415, + 12.245050753375871, + 12.24538295884133, + 12.245714965440905, + 12.246046773293644, + 12.246378382518522, + 12.24670979323444, + 12.247041005560236, + 12.247372019614664, + 12.247702835516415, + 12.248033453384112, + 12.248363873336299, + 12.248694095491453, + 12.24902411996798, + 12.249353946884218, + 12.249683576358429, + 12.250013008508803, + 12.250342243453467, + 12.250671281310472, + 12.251000122197802, + 12.25132876623336, + 12.251657213534992, + 12.251985464220466, + 12.252313518407483, + 12.252641376213667, + 12.25296903775658, + 12.253296503153708, + 12.25362377252247, + 12.253950845980212, + 12.254277723644208, + 12.254604405631671, + 12.25493089205973, + 12.255257183045458, + 12.25558327870585, + 12.255909179157829, + 12.256234884518253, + 12.25656039490391, + 12.256885710431515, + 12.257210831217712, + 12.257535757379081, + 12.25786048903213, + 12.258185026293294, + 12.258509369278938, + 12.258833518105366, + 12.259157472888802, + 12.259481233745404, + 12.259804800791263, + 12.2601281741424, + 12.260451353914762, + 12.260774340224232, + 12.261097133186619, + 12.261419732917666, + 12.261742139533048, + 12.262064353148366, + 12.262386373879155, + 12.26270820184088, + 12.263029837148936, + 12.263351279918652, + 12.263672530265286, + 12.263993588304023, + 12.26431445414999, + 12.26463512791823, + 12.264955609723733, + 12.265275899681408, + 12.265595997906098, + 12.265915904512582, + 12.266235619615564, + 12.266555143329686, + 12.266874475769516, + 12.267193617049555, + 12.267512567284234, + 12.26783132658792, + 12.268149895074911, + 12.268468272859431, + 12.268786460055638, + 12.269104456777622, + 12.269422263139408, + 12.26973987925495, + 12.270057305238131, + 12.270374541202772, + 12.27069158726262, + 12.27100844353136, + 12.2713251101226, + 12.271641587149889, + 12.271957874726702, + 12.27227397296645, + 12.272589881982475, + 12.272905601888048, + 12.27322113279638, + 12.273536474820604, + 12.273851628073794, + 12.274166592668951, + 12.27448136871901, + 12.274795956336838, + 12.275110355635237, + 12.275424566726938, + 12.275738589724604, + 12.276052424740836, + 12.276366071888162, + 12.276679531279045, + 12.27699280302588, + 12.277305887240997, + 12.277618784036655, + 12.277931493525045, + 12.278244015818299, + 12.278556351028474, + 12.278868499267562, + 12.279180460647485, + 12.279492235280108, + 12.279803823277218, + 12.28011522475054, + 12.28042643981173, + 12.280737468572383, + 12.281048311144017, + 12.281358967638093, + 12.281669438166, + 12.281979722839063, + 12.282289821768536, + 12.282599735065615, + 12.282909462841417, + 12.283219005207004, + 12.283528362273366, + 12.283837534151424, + 12.28414652095204, + 12.284455322786005, + 12.284763939764046, + 12.285072371996817, + 12.285380619594914, + 12.285688682668864, + 12.285996561329124, + 12.286304255686092, + 12.286611765850097, + 12.286919091931399, + 12.287226234040194, + 12.287533192286613, + 12.28783996678072, + 12.28814655763251, + 12.288452964951924, + 12.28875918884882, + 12.289065229433007, + 12.289371086814212, + 12.289676761102111, + 12.289982252406302, + 12.290287560836328, + 12.290592686501663, + 12.290897629511706, + 12.291202389975806, + 12.29150696800324, + 12.291811363703212, + 12.292115577184875, + 12.292419608557303, + 12.292723457929515, + 12.29302712541046, + 12.293330611109019, + 12.293633915134015, + 12.2939370375942, + 12.294239978598263, + 12.29454273825483, + 12.294845316672456, + 12.295147713959638, + 12.295449930224803, + 12.295751965576317, + 12.296053820122477, + 12.29635549397152, + 12.296656987231612, + 12.296958300010859, + 12.2972594324173, + 12.297560384558915, + 12.29786115654361, + 12.298161748479231, + 12.298462160473562, + 12.298762392634318, + 12.299062445069154, + 12.299362317885658, + 12.299662011191348, + 12.299961525093691, + 12.300260859700076, + 12.300560015117838, + 12.300858991454241, + 12.30115778881649, + 12.30145640731172, + 12.301754847047008, + 12.302053108129359, + 12.302351190665723, + 12.302649094762982, + 12.302946820527952, + 12.303244368067384, + 12.303541737487974, + 12.303838928896342, + 12.304135942399055, + 12.30443277810261, + 12.304729436113442, + 12.305025916537922, + 12.305322219482354, + 12.305618345052986, + 12.305914293355997, + 12.306210064497503, + 12.306505658583557, + 12.306801075720148, + 12.307096316013203, + 12.307391379568584, + 12.30768626649209, + 12.307980976889455, + 12.308275510866356, + 12.308569868528402, + 12.308864049981135, + 12.309158055330043, + 12.309451884680541, + 12.309745538137989, + 12.310039015807678, + 12.310332317794842, + 12.310625444204646, + 12.310918395142195, + 12.311211170712532, + 12.311503771020636, + 12.31179619617142, + 12.312088446269742, + 12.312380521420389, + 12.312672421728088, + 12.312964147297507, + 12.313255698233245, + 12.313547074639846, + 12.313838276621786, + 12.314129304283478, + 12.314420157729273, + 12.314710837063465, + 12.315001342390278, + 12.315291673813876, + 12.315581831438365, + 12.315871815367782, + 12.316161625706108, + 12.316451262557253, + 12.316740726025078, + 12.317030016213367, + 12.317319133225855, + 12.317608077166206, + 12.317896848138025, + 12.318185446244856, + 12.31847387159018, + 12.318762124277415, + 12.319050204409919, + 12.319338112090987, + 12.319625847423852, + 12.319913410511687, + 12.320200801457599, + 12.320488020364637, + 12.32077506733579, + 12.321061942473982, + 12.321348645882075, + 12.321635177662872, + 12.32192153791911, + 12.32220772675347, + 12.32249374426857, + 12.322779590566965, + 12.323065265751147, + 12.323350769923552, + 12.32363610318655, + 12.323921265642452, + 12.324206257393506, + 12.324491078541902, + 12.324775729189765, + 12.325060209439162, + 12.325344519392093, + 12.325628659150505, + 12.325912628816281, + 12.326196428491242, + 12.326480058277149, + 12.3267635182757, + 12.327046808588532, + 12.327329929317226, + 12.327612880563299, + 12.327895662428206, + 12.328178275013341, + 12.328460718420041, + 12.32874299274958, + 12.329025098103171, + 12.329307034581968, + 12.32958880228706, + 12.32987040131948, + 12.330151831780205, + 12.330433093770138, + 12.330714187390134, + 12.330995112740982, + 12.331275869923413, + 12.331556459038094, + 12.331836880185634, + 12.332117133466586, + 12.332397218981436, + 12.332677136830613, + 12.332956887114484, + 12.333236469933361, + 12.333515885387492, + 12.33379513357706, + 12.334074214602202, + 12.334353128562979, + 12.334631875559403, + 12.334910455691421, + 12.335188869058925, + 12.335467115761743, + 12.335745195899642, + 12.336023109572334, + 12.33630085687947, + 12.336578437920638, + 12.336855852795365, + 12.33713310160313, + 12.337410184443337, + 12.337687101415344, + 12.33796385261844, + 12.338240438151862, + 12.33851685811478, + 12.338793112606309, + 12.339069201725506, + 12.339345125571363, + 12.339620884242821, + 12.339896477838755, + 12.34017190645798, + 12.34044717019926, + 12.340722269161292, + 12.340997203442715, + 12.341271973142113, + 12.34154657835801, + 12.341821019188867, + 12.342095295733088, + 12.342369408089024, + 12.342643356354957, + 12.342917140629115, + 12.343190761009673, + 12.343464217594734, + 12.343737510482352, + 12.344010639770524, + 12.344283605557179, + 12.344556407940196, + 12.344829047017392, + 12.345101522886523, + 12.345373835645292, + 12.345645985391341, + 12.345917972222251, + 12.34618979623555, + 12.346461457528699, + 12.346732956199112, + 12.347004292344135, + 12.34727546606106, + 12.347546477447121, + 12.347817326599493, + 12.348088013615293, + 12.348358538591578, + 12.34862890162535, + 12.348899102813553, + 12.349169142253068, + 12.349439020040727, + 12.349708736273291, + 12.349978291047476, + 12.350247684459932, + 12.350516916607257, + 12.350785987585985, + 12.351054897492595, + 12.351323646423511, + 12.351592234475097, + 12.351860661743657, + 12.35212892832544, + 12.35239703431664, + 12.352664979813385, + 12.352932764911753, + 12.353200389707762, + 12.353467854297373, + 12.353735158776491, + 12.354002303240959, + 12.354269287786567, + 12.354536112509045, + 12.354802777504068, + 12.355069282867252, + 12.355335628694155, + 12.35560181508028, + 12.355867842121073, + 12.356133709911921, + 12.356399418548156, + 12.356664968125049, + 12.35693035873782, + 12.357195590481624, + 12.357460663451567, + 12.357725577742695, + 12.357990333449996, + 12.358254930668402, + 12.358519369492788, + 12.35878365001797, + 12.359047772338714, + 12.359311736549722, + 12.359575542745644, + 12.359839191021068, + 12.360102681470533, + 12.360366014188516, + 12.360629189269437, + 12.36089220680766, + 12.3611550668975, + 12.361417769633201, + 12.361680315108968, + 12.361942703418933, + 12.362204934657182, + 12.362467008917742, + 12.362728926294581, + 12.36299068688162, + 12.363252290772706, + 12.363513738061652, + 12.363775028842197, + 12.364036163208032, + 12.36429714125279, + 12.364557963070048, + 12.36481862875333, + 12.3650791383961, + 12.365339492091769, + 12.365599689933688, + 12.365859732015155, + 12.366119618429412, + 12.366379349269646, + 12.366638924628985, + 12.366898344600505, + 12.367157609277228, + 12.36741671875211, + 12.367675673118063, + 12.367934472467939, + 12.368193116894533, + 12.368451606490584, + 12.36870994134878, + 12.368968121561752, + 12.36922614722207, + 12.369484018422256, + 12.36974173525477, + 12.369999297812024, + 12.37025670618637, + 12.370513960470104, + 12.37077106075547, + 12.371028007134651, + 12.371284799699781, + 12.371541438542938, + 12.371797923756143, + 12.372054255431362, + 12.372310433660505, + 12.372566458535433, + 12.372822330147942, + 12.37307804858978, + 12.37333361395264, + 12.373589026328158, + 12.373844285807916, + 12.37409939248344, + 12.374354346446202, + 12.37460914778762, + 12.374863796599056, + 12.37511829297182, + 12.375372636997163, + 12.375626828766286, + 12.37588086837033, + 12.37613475590039, + 12.376388491447495, + 12.376642075102627, + 12.376895506956712, + 12.377148787100623, + 12.377401915625176, + 12.377654892621136, + 12.377907718179209, + 12.37816039239005, + 12.37841291534426, + 12.378665287132385, + 12.378917507844914, + 12.379169577572288, + 12.379421496404886, + 12.379673264433041, + 12.379924881747025, + 12.380176348437061, + 12.380427664593313, + 12.380678830305897, + 12.380929845664872, + 12.381180710760242, + 12.38143142568196, + 12.38168199051992, + 12.381932405363969, + 12.382182670303896, + 12.382432785429437, + 12.382682750830272, + 12.38293256659603, + 12.383182232816292, + 12.383431749580573, + 12.383681116978345, + 12.383930335099018, + 12.384179404031956, + 12.384428323866464, + 12.384677094691796, + 12.384925716597156, + 12.385174189671686, + 12.38542251400448, + 12.385670689684583, + 12.38591871680098, + 12.3861665954426, + 12.38641432569833, + 12.386661907656993, + 12.386909341407364, + 12.387156627038165, + 12.387403764638062, + 12.387650754295672, + 12.387897596099554, + 12.38814429013822, + 12.388390836500122, + 12.388637235273665, + 12.388883486547199, + 12.38912959040902, + 12.389375546947372, + 12.389621356250448, + 12.389867018406383, + 12.390112533503265, + 12.390357901629127, + 12.390603122871948, + 12.390848197319658, + 12.391093125060129, + 12.391337906181187, + 12.391582540770598, + 12.391827028916081, + 12.392071370705299, + 12.392315566225866, + 12.392559615565345, + 12.392803518811236, + 12.393047276051, + 12.393290887372038, + 12.393534352861698, + 12.39377767260728, + 12.394020846696032, + 12.394263875215143, + 12.394506758251756, + 12.394749495892963, + 12.394992088225798, + 12.395234535337247, + 12.395476837314243, + 12.395718994243666, + 12.395961006212346, + 12.396202873307061, + 12.396444595614533, + 12.396686173221434, + 12.39692760621439, + 12.397168894679966, + 12.397410038704681, + 12.397651038375, + 12.39789189377734, + 12.39813260499806, + 12.398373172123469, + 12.39861359523983, + 12.398853874433348, + 12.399094009790177, + 12.399334001396422, + 12.399573849338138, + 12.399813553701323, + 12.400053114571929, + 12.400292532035849, + 12.400531806178932, + 12.400770937086977, + 12.401009924845724, + 12.401248769540866, + 12.401487471258045, + 12.40172603008285, + 12.40196444610082, + 12.402202719397442, + 12.402440850058154, + 12.40267883816834, + 12.402916683813334, + 12.40315438707842, + 12.403391948048828, + 12.40362936680974, + 12.403866643446289, + 12.404103778043545, + 12.404340770686547, + 12.404577621460263, + 12.404814330449623, + 12.405050897739505, + 12.40528732341473, + 12.405523607560072, + 12.405759750260254, + 12.405995751599951, + 12.406231611663783, + 12.406467330536321, + 12.406702908302085, + 12.406938345045544, + 12.40717364085112, + 12.407408795803178, + 12.40764380998604, + 12.407878683483972, + 12.40811341638119, + 12.40834800876186, + 12.408582460710104, + 12.408816772309983, + 12.409050943645514, + 12.409284974800663, + 12.409518865859344, + 12.409752616905426, + 12.409986228022717, + 12.41021969929499, + 12.41045303080595, + 12.410686222639269, + 12.410919274878557, + 12.41115218760738, + 12.411384960909253, + 12.41161759486764, + 12.411850089565952, + 12.412082445087556, + 12.412314661515765, + 12.412546738933846, + 12.412778677425013, + 12.413010477072428, + 12.413242137959207, + 12.41347366016842, + 12.413705043783077, + 12.413936288886147, + 12.414167395560545, + 12.41439836388914, + 12.414629193954745, + 12.414859885840128, + 12.41509043962801, + 12.415320855401056, + 12.415551133241888, + 12.415781273233073, + 12.41601127545713, + 12.416241139996533, + 12.4164708669337, + 12.416700456351007, + 12.416929908330774, + 12.417159222955274, + 12.417388400306729, + 12.41761744046732, + 12.417846343519164, + 12.418075109544347, + 12.418303738624891, + 12.418532230842775, + 12.418760586279925, + 12.418988805018225, + 12.419216887139507, + 12.419444832725551, + 12.41967264185809, + 12.419900314618811, + 12.420127851089346, + 12.420355251351282, + 12.420582515486156, + 12.42080964357546, + 12.42103663570063, + 12.421263491943062, + 12.421490212384091, + 12.421716797105018, + 12.421943246187086, + 12.422169559711492, + 12.422395737759384, + 12.422621780411859, + 12.422847687749972, + 12.423073459854718, + 12.42329909680706, + 12.423524598687896, + 12.42374996557809, + 12.423975197558443, + 12.424200294709722, + 12.424425257112635, + 12.424650084847844, + 12.424874777995967, + 12.42509933663757, + 12.425323760853171, + 12.425548050723242, + 12.425772206328206, + 12.425996227748435, + 12.426220115064256, + 12.426443868355946, + 12.426667487703739, + 12.426890973187811, + 12.427114324888302, + 12.427337542885294, + 12.427560627258822, + 12.427783578088885, + 12.428006395455418, + 12.428229079438319, + 12.42845163011743, + 12.428674047572553, + 12.428896331883438, + 12.42911848312979, + 12.429340501391264, + 12.429562386747465, + 12.429784139277956, + 12.430005759062249, + 12.430227246179811, + 12.430448600710056, + 12.430669822732355, + 12.430890912326031, + 12.431111869570357, + 12.431332694544562, + 12.431553387327826, + 12.43177394799928, + 12.431994376638013, + 12.43221467332306, + 12.432434838133409, + 12.432654871148006, + 12.43287477244575, + 12.433094542105485, + 12.433314180206015, + 12.433533686826092, + 12.433753062044426, + 12.433972305939676, + 12.434191418590455, + 12.434410400075329, + 12.434629250472817, + 12.43484796986139, + 12.435066558319477, + 12.43528501592545, + 12.435503342757643, + 12.43572153889434, + 12.43593960441378, + 12.436157539394152, + 12.436375343913602, + 12.436593018050223, + 12.436810561882066, + 12.437027975487135, + 12.437245258943388, + 12.437462412328733, + 12.437679435721035, + 12.43789632919811, + 12.438113092837732, + 12.438329726717619, + 12.438546230915453, + 12.43876260550886, + 12.438978850575428, + 12.43919496619269, + 12.439410952438143, + 12.43962680938923, + 12.43984253712335, + 12.440058135717855, + 12.440273605250049, + 12.440488945797194, + 12.4407041574365, + 12.440919240245139, + 12.44113419430023, + 12.441349019678846, + 12.441563716458019, + 12.441778284714728, + 12.441992724525912, + 12.442207035968462, + 12.442421219119222, + 12.442635274054988, + 12.442849200852516, + 12.443062999588511, + 12.443276670339634, + 12.443490213182498, + 12.443703628193672, + 12.443916915449682, + 12.444130075027003, + 12.444343107002066, + 12.444556011451258, + 12.444768788450917, + 12.444981438077338, + 12.44519396040677, + 12.445406355515418, + 12.445618623479438, + 12.445830764374938, + 12.446042778277988, + 12.446254665264608, + 12.446466425410772, + 12.446678058792411, + 12.446889565485408, + 12.447100945565603, + 12.447312199108788, + 12.447523326190712, + 12.447734326887078, + 12.447945201273544, + 12.44815594942572, + 12.448366571419175, + 12.448577067329428, + 12.448787437231957, + 12.44899768120219, + 12.449207799315516, + 12.449417791647278, + 12.44962765827277, + 12.449837399267237, + 12.450047014705891, + 12.450256504663892, + 12.450465869216355, + 12.450675108438348, + 12.450884222404902, + 12.451093211190994, + 12.451302074871561, + 12.451510813521493, + 12.451719427215638, + 12.451927916028797, + 12.452136280035726, + 12.452344519311136, + 12.452552633929693, + 12.452760623966025, + 12.452968489494706, + 12.45317623059027, + 12.453383847327203, + 12.453591339779951, + 12.453798708022918, + 12.45400595213045, + 12.454213072176863, + 12.454420068236423, + 12.45462694038335, + 12.454833688691819, + 12.455040313235967, + 12.455246814089879, + 12.455453191327598, + 12.455659445023127, + 12.455865575250417, + 12.456071582083386, + 12.456277465595893, + 12.456483225861763, + 12.456688862954776, + 12.456894376948663, + 12.457099767917114, + 12.45730503593378, + 12.45751018107226, + 12.45771520340611, + 12.457920103008846, + 12.458124879953935, + 12.458329534314807, + 12.45853406616484, + 12.458738475577373, + 12.458942762625698, + 12.459146927383069, + 12.459350969922689, + 12.459554890317722, + 12.459758688641285, + 12.459962364966454, + 12.460165919366261, + 12.460369351913693, + 12.460572662681692, + 12.460775851743158, + 12.460978919170948, + 12.461181865037876, + 12.461384689416708, + 12.461587392380173, + 12.461789974000952, + 12.461992434351684, + 12.462194773504962, + 12.46239699153334, + 12.462599088509325, + 12.46280106450538, + 12.46300291959393, + 12.463204653847349, + 12.463406267337977, + 12.4636077601381, + 12.46380913231997, + 12.464010383955788, + 12.46421151511772, + 12.464412525877883, + 12.464613416308351, + 12.464814186481158, + 12.465014836468294, + 12.465215366341699, + 12.46541577617328, + 12.4656160660349, + 12.465816235998371, + 12.466016286135465, + 12.466216216517918, + 12.466416027217415, + 12.466615718305603, + 12.46681528985408, + 12.467014741934413, + 12.467214074618113, + 12.467413287976653, + 12.467612382081466, + 12.467811357003939, + 12.468010212815416, + 12.468208949587204, + 12.468407567390555, + 12.468606066296696, + 12.468804446376794, + 12.469002707701982, + 12.469200850343354, + 12.469398874371954, + 12.469596779858787, + 12.469794566874812, + 12.469992235490952, + 12.47018978577808, + 12.470387217807037, + 12.470584531648608, + 12.470781727373547, + 12.47097880505256, + 12.471175764756312, + 12.471372606555427, + 12.471569330520483, + 12.47176593672202, + 12.471962425230535, + 12.472158796116478, + 12.472355049450265, + 12.472551185302262, + 12.472747203742799, + 12.472943104842159, + 12.473138888670587, + 12.473334555298283, + 12.473530104795406, + 12.473725537232072, + 12.47392085267836, + 12.474116051204296, + 12.474311132879881, + 12.474506097775057, + 12.474700945959734, + 12.474895677503778, + 12.475090292477011, + 12.475284790949214, + 12.47547917299013, + 12.475673438669459, + 12.475867588056854, + 12.476061621221932, + 12.476255538234264, + 12.476449339163386, + 12.476643024078783, + 12.476836593049907, + 12.477030046146163, + 12.477223383436916, + 12.477416604991493, + 12.477609710879175, + 12.477802701169203, + 12.477995575930777, + 12.478188335233051, + 12.478380979145145, + 12.478573507736137, + 12.478765921075054, + 12.478958219230892, + 12.479150402272603, + 12.4793424702691, + 12.479534423289243, + 12.479726261401865, + 12.479917984675753, + 12.480109593179654, + 12.480301086982266, + 12.480492466152256, + 12.480683730758244, + 12.48087488086881, + 12.481065916552497, + 12.481256837877801, + 12.481447644913178, + 12.48163833772705, + 12.481828916387789, + 12.48201938096373, + 12.482209731523163, + 12.482399968134349, + 12.482590090865495, + 12.48278009978477, + 12.482969994960312, + 12.483159776460205, + 12.483349444352497, + 12.4835389987052, + 12.483728439586276, + 12.483917767063659, + 12.484106981205228, + 12.484296082078835, + 12.484485069752282, + 12.484673944293332, + 12.484862705769709, + 12.485051354249098, + 12.485239889799137, + 12.485428312487434, + 12.485616622381547, + 12.485804819549, + 12.48599290405727, + 12.4861808759738, + 12.486368735365987, + 12.486556482301197, + 12.486744116846744, + 12.486931639069908, + 12.48711904903793, + 12.487306346818006, + 12.487493532477293, + 12.487680606082913, + 12.48786756770194, + 12.488054417401415, + 12.488241155248337, + 12.488427781309658, + 12.488614295652301, + 12.488800698343141, + 12.488986989449016, + 12.48917316903672, + 12.489359237173012, + 12.489545193924613, + 12.489731039358196, + 12.4899167735404, + 12.490102396537825, + 12.490287908417026, + 12.490473309244523, + 12.490658599086792, + 12.490843778010271, + 12.49102884608136, + 12.491213803366417, + 12.491398649931764, + 12.491583385843676, + 12.491768011168396, + 12.491952525972122, + 12.492136930321015, + 12.492321224281195, + 12.492505407918745, + 12.492689481299706, + 12.49287344449008, + 12.493057297555831, + 12.493241040562879, + 12.493424673577112, + 12.493608196664372, + 12.49379160989046, + 12.493974913321148, + 12.494158107022157, + 12.494341191059176, + 12.494524165497852, + 12.494707030403793, + 12.49488978584257, + 12.49507243187971, + 12.495254968580703, + 12.495437396011004, + 12.495619714236023, + 12.495801923321128, + 12.49598402333166, + 12.496166014332909, + 12.49634789639013, + 12.496529669568545, + 12.496711333933325, + 12.496892889549612, + 12.497074336482502, + 12.49725567479706, + 12.497436904558304, + 12.497618025831219, + 12.497799038680746, + 12.497979943171792, + 12.498160739369222, + 12.498341427337865, + 12.498522007142505, + 12.498702478847894, + 12.498882842518743, + 12.499063098219722, + 12.499243246015466, + 12.49942328597057, + 12.49960321814959, + 12.499783042617041, + 12.499962759437402, + 12.500142368675114, + 12.500321870394579, + 12.500501264660162, + 12.500680551536183, + 12.50085973108693, + 12.50103880337665, + 12.501217768469552, + 12.501396626429806, + 12.501575377321545, + 12.501754021208862, + 12.501932558155815, + 12.502110988226416, + 12.502289311484647, + 12.502467527994447, + 12.50264563781972, + 12.502823641024328, + 12.503001537672096, + 12.503179327826814, + 12.50335701155223, + 12.503534588912055, + 12.503712059969962, + 12.503889424789582, + 12.50406668343452, + 12.504243835968326, + 12.504420882454527, + 12.504597822956601, + 12.504774657537995, + 12.504951386262116, + 12.50512800919233, + 12.505304526391969, + 12.505480937924329, + 12.505657243852658, + 12.50583344424018, + 12.506009539150071, + 12.506185528645473, + 12.50636141278949, + 12.506537191645185, + 12.50671286527559, + 12.50688843374369, + 12.507063897112442, + 12.507239255444759, + 12.50741450880352, + 12.507589657251561, + 12.50776470085169, + 12.507939639666667, + 12.50811447375922, + 12.508289203192039, + 12.508463828027773, + 12.50863834832904, + 12.508812764158412, + 12.50898707557843, + 12.509161282651599, + 12.509335385440382, + 12.509509384007204, + 12.509683278414455, + 12.50985706872449, + 12.51003075499962, + 12.510204337302127, + 12.51037781569425, + 12.510551190238191, + 12.510724460996116, + 12.510897628030156, + 12.5110706914024, + 12.511243651174901, + 12.511416507409683, + 12.51158926016872, + 12.511761909513954, + 12.511934455507296, + 12.51210689821061, + 12.51227923768573, + 12.512451473994453, + 12.512623607198533, + 12.512795637359694, + 12.512967564539617, + 12.51313938879995, + 12.513311110202302, + 12.513482728808249, + 12.513654244679326, + 12.513825657877032, + 12.513996968462829, + 12.514168176498146, + 12.514339282044366, + 12.514510285162848, + 12.514681185914903, + 12.514851984361812, + 12.515022680564817, + 12.515193274585123, + 12.5153637664839, + 12.51553415632228, + 12.515704444161358, + 12.515874630062195, + 12.51604471408581, + 12.516214696293193, + 12.51638457674529, + 12.516554355503017, + 12.516724032627248, + 12.516893608178826, + 12.517063082218554, + 12.517232454807198, + 12.51740172600549, + 12.517570895874123, + 12.517739964473757, + 12.517908931865012, + 12.518077798108477, + 12.5182465632647, + 12.518415227394193, + 12.518583790557432, + 12.518752252814863, + 12.518920614226888, + 12.519088874853871, + 12.51925703475615, + 12.519425093994018, + 12.519593052627734, + 12.519760910717526, + 12.519928668323578, + 12.520096325506046, + 12.520263882325041, + 12.520431338840645, + 12.520598695112904, + 12.520765951201824, + 12.520933107167378, + 12.521100163069502, + 12.521267118968096, + 12.52143397492302, + 12.52160073099411, + 12.521767387241155, + 12.521933943723912, + 12.522100400502104, + 12.522266757635416, + 12.522433015183497, + 12.52259917320596, + 12.522765231762383, + 12.522931190912313, + 12.523097050715252, + 12.523262811230676, + 12.523428472518017, + 12.523594034636675, + 12.523759497646019, + 12.523924861605373, + 12.524090126574034, + 12.52425529261126, + 12.52442035977627, + 12.524585328128257, + 12.52475019772637, + 12.524914968629723, + 12.5250796408974, + 12.525244214588447, + 12.52540868976187, + 12.525573066476646, + 12.525737344791716, + 12.525901524765986, + 12.526065606458323, + 12.52622958992756, + 12.526393475232494, + 12.526557262431892, + 12.526720951584483, + 12.526884542748956, + 12.52704803598397, + 12.52721143134815, + 12.527374728900083, + 12.527537928698322, + 12.527701030801381, + 12.527864035267749, + 12.528026942155867, + 12.52818975152415, + 12.528352463430979, + 12.528515077934694, + 12.528677595093601, + 12.528840014965976, + 12.529002337610056, + 12.529164563084041, + 12.529326691446107, + 12.529488722754378, + 12.529650657066957, + 12.52981249444191, + 12.529974234937264, + 12.530135878611013, + 12.530297425521116, + 12.5304588757255, + 12.530620229282054, + 12.530781486248634, + 12.53094264668306, + 12.53110371064312, + 12.531264678186565, + 12.531425549371114, + 12.531586324254445, + 12.53174700289421, + 12.531907585348021, + 12.532068071673457, + 12.532228461928067, + 12.532388756169356, + 12.5325489544548, + 12.532709056841844, + 12.532869063387892, + 12.53302897415032, + 12.533188789186461, + 12.533348508553622, + 12.533508132309075, + 12.53366766051005, + 12.533827093213754, + 12.533986430477347, + 12.534145672357967, + 12.53430481891271, + 12.534463870198644, + 12.534622826272797, + 12.534781687192162, + 12.534940453013704, + 12.535099123794348, + 12.535257699590993, + 12.535416180460492, + 12.535574566459676, + 12.535732857645336, + 12.535891054074224, + 12.536049155803068, + 12.53620716288856, + 12.536365075387353, + 12.536522893356068, + 12.536680616851292, + 12.536838245929582, + 12.536995780647455, + 12.5371532210614, + 12.537310567227872, + 12.537467819203282, + 12.53762497704402, + 12.537782040806437, + 12.53793901054685, + 12.538095886321544, + 12.538252668186768, + 12.538409356198738, + 12.538565950413636, + 12.538722450887612, + 12.538878857676782, + 12.539035170837229, + 12.539191390424996, + 12.539347516496102, + 12.539503549106529, + 12.539659488312223, + 12.539815334169099, + 12.539971086733035, + 12.540126746059883, + 12.540282312205454, + 12.540437785225528, + 12.540593165175855, + 12.540748452112148, + 12.540903646090085, + 12.541058747165314, + 12.54121375539345, + 12.541368670830071, + 12.541523493530725, + 12.54167822355093, + 12.541832860946158, + 12.541987405771865, + 12.542141858083461, + 12.542296217936329, + 12.542450485385814, + 12.542604660487234, + 12.542758743295868, + 12.542912733866967, + 12.543066632255746, + 12.543220438517386, + 12.543374152707038, + 12.543527774879818, + 12.543681305090807, + 12.543834743395058, + 12.543988089847588, + 12.544141344503382, + 12.544294507417392, + 12.544447578644537, + 12.5446005582397, + 12.544753446257738, + 12.54490624275347, + 12.54505894778168, + 12.545211561397126, + 12.54536408365453, + 12.545516514608579, + 12.54566885431393, + 12.545821102825208, + 12.545973260197002, + 12.546125326483871, + 12.546277301740341, + 12.546429186020902, + 12.54658097938002, + 12.546732681872117, + 12.54688429355159, + 12.547035814472803, + 12.547187244690088, + 12.547338584257737, + 12.547489833230019, + 12.547640991661163, + 12.547792059605372, + 12.547943037116815, + 12.54809392424962, + 12.548244721057898, + 12.548395427595713, + 12.548546043917108, + 12.548696570076086, + 12.54884700612662, + 12.548997352122651, + 12.54914760811809, + 12.549297774166813, + 12.549447850322663, + 12.54959783663945, + 12.549747733170955, + 12.549897539970928, + 12.550047257093082, + 12.5501968845911, + 12.550346422518635, + 12.550495870929305, + 12.550645229876695, + 12.550794499414364, + 12.550943679595832, + 12.551092770474591, + 12.551241772104097, + 12.551390684537779, + 12.551539507829032, + 12.551688242031215, + 12.551836887197663, + 12.551985443381673, + 12.552133910636515, + 12.55228228901542, + 12.55243057857159, + 12.5525787793582, + 12.552726891428387, + 12.552874914835263, + 12.553022849631901, + 12.553170695871346, + 12.553318453606607, + 12.55346612289067, + 12.553613703776481, + 12.553761196316955, + 12.553908600564982, + 12.554055916573414, + 12.554203144395071, + 12.554350284082746, + 12.554497335689197, + 12.554644299267155, + 12.55479117486931, + 12.554937962548331, + 12.555084662356853, + 12.55523127434747, + 12.555377798572755, + 12.55552423508525, + 12.555670583937456, + 12.555816845181852, + 12.555963018870882, + 12.556109105056958, + 12.556255103792463, + 12.556401015129742, + 12.556546839121118, + 12.556692575818879, + 12.556838225275277, + 12.556983787542539, + 12.557129262672857, + 12.557274650718396, + 12.557419951731287, + 12.557565165763625, + 12.557710292867483, + 12.557855333094897, + 12.558000286497872, + 12.558145153128386, + 12.558289933038383, + 12.558434626279771, + 12.558579232904437, + 12.558723752964228, + 12.558868186510969, + 12.559012533596444, + 12.559156794272413, + 12.559300968590602, + 12.559445056602705, + 12.55958905836039, + 12.559732973915288, + 12.559876803319005, + 12.560020546623111, + 12.560164203879145, + 12.560307775138623, + 12.560451260453021, + 12.56059465987379, + 12.560737973452344, + 12.560881201240072, + 12.56102434328833, + 12.561167399648447, + 12.561310370371714, + 12.561453255509395, + 12.561596055112728, + 12.561738769232912, + 12.561881397921118, + 12.562023941228492, + 12.562166399206141, + 12.56230877190515, + 12.562451059376562, + 12.562593261671399, + 12.562735378840651, + 12.562877410935275, + 12.563019358006201, + 12.563161220104325, + 12.563302997280514, + 12.5634446895856, + 12.563586297070394, + 12.563727819785669, + 12.563869257782171, + 12.564010611110614, + 12.564151879821683, + 12.564293063966032, + 12.564434163594283, + 12.564575178757032, + 12.564716109504838, + 12.564856955888235, + 12.56499771795773, + 12.56513839576379, + 12.565278989356857, + 12.565419498787346, + 12.565559924105639, + 12.565700265362082, + 12.565840522607004, + 12.56598069589069, + 12.566120785263406, + 12.566260790775377, + 12.56640071247681, + 12.566540550417873, + 12.566680304648706, + 12.566819975219422, + 12.566959562180102, + 12.567099065580795, + 12.567238485471524, + 12.567377821902278, + 12.567517074923021, + 12.56765624458368, + 12.56779533093416, + 12.567934334024331, + 12.568073253904034, + 12.568212090623081, + 12.568350844231254, + 12.568489514778305, + 12.568628102313957, + 12.568766606887902, + 12.568905028549803, + 12.569043367349293, + 12.569181623335975, + 12.569319796559421, + 12.569457887069179, + 12.56959589491476, + 12.569733820145652, + 12.569871662811307, + 12.570009422961151, + 12.57014710064458, + 12.570284695910962, + 12.570422208809632, + 12.570559639389897, + 12.570696987701035, + 12.570834253792295, + 12.570971437712895, + 12.571108539512025, + 12.571245559238845, + 12.571382496942482, + 12.571519352672043, + 12.571656126476594, + 12.57179281840518, + 12.571929428506815, + 12.572065956830478, + 12.572202403425127, + 12.572338768339684, + 12.572475051623048, + 12.572611253324084, + 12.57274737349163, + 12.572883412174493, + 12.57301936942145, + 12.57315524528125, + 12.573291039802616, + 12.573426753034239, + 12.573562385024779, + 12.57369793582287, + 12.573833405477117, + 12.573968794036091, + 12.574104101548341, + 12.574239328062381, + 12.5743744736267, + 12.574509538289755, + 12.574644522099975, + 12.574779425105762, + 12.574914247355489, + 12.575048988897494, + 12.575183649780094, + 12.575318230051572, + 12.575452729760183, + 12.575587148954156, + 12.575721487681689, + 12.575855745990946, + 12.575989923930075, + 12.576124021547184, + 12.576258038890352, + 12.576391976007638, + 12.576525832947066, + 12.57665960975663, + 12.5767933064843, + 12.576926923178014, + 12.577060459885681, + 12.577193916655185, + 12.577327293534376, + 12.577460590571082, + 12.577593807813095, + 12.57772694530818, + 12.577860003104083, + 12.577992981248507, + 12.578125879789136, + 12.578258698773622, + 12.578391438249588, + 12.578524098264632, + 12.57865667886632, + 12.57878918010219, + 12.578921602019754, + 12.579053944666493, + 12.57918620808986, + 12.579318392337282, + 12.579450497456149, + 12.579582523493835, + 12.579714470497679, + 12.579846338514992, + 12.579978127593058, + 12.580109837779132, + 12.58024146912044, + 12.580373021664178, + 12.58050449545752, + 12.580635890547603, + 12.580767206981545, + 12.580898444806428, + 12.581029604069313, + 12.581160684817226, + 12.581291687097169, + 12.581422610956114, + 12.581553456441009, + 12.581684223598767, + 12.581814912476275, + 12.5819455231204, + 12.582076055577968, + 12.582206509895784, + 12.582336886120627, + 12.582467184299244, + 12.582597404478353, + 12.58272754670465, + 12.582857611024796, + 12.58298759748543, + 12.583117506133158, + 12.583247337014566, + 12.5833770901762, + 12.583506765664588, + 12.583636363526228, + 12.583765883807587, + 12.583895326555107, + 12.584024691815204, + 12.58415397963426, + 12.584283190058636, + 12.58441232313466, + 12.584541378908636, + 12.584670357426837, + 12.584799258735513, + 12.58492808288088, + 12.585056829909133, + 12.585185499866434, + 12.585314092798919, + 12.5854426087527, + 12.585571047773854, + 12.585699409908434, + 12.585827695202473, + 12.585955903701963, + 12.586084035452878, + 12.586212090501162, + 12.58634006889273, + 12.586467970673468, + 12.586595795889242, + 12.586723544585881, + 12.586851216809192, + 12.586978812604958, + 12.587106332018925, + 12.58723377509682, + 12.587361141884337, + 12.587488432427147, + 12.587615646770892, + 12.587742784961186, + 12.587869847043615, + 12.587996833063743, + 12.588123743067097, + 12.588250577099183, + 12.588377335205486, + 12.588504017431449, + 12.5886306238225, + 12.588757154424032, + 12.588883609281421, + 12.589009988440004, + 12.589136291945097, + 12.589262519841988, + 12.589388672175936, + 12.58951474899218, + 12.58964075033592, + 12.58976667625234, + 12.589892526786594, + 12.590018301983802, + 12.590144001889067, + 12.59026962654746, + 12.590395176004021, + 12.590520650303771, + 12.590646049491701, + 12.590771373612776, + 12.59089662271193, + 12.591021796834074, + 12.59114689602409, + 12.591271920326836, + 12.59139686978714, + 12.591521744449803, + 12.591646544359604, + 12.591771269561288, + 12.59189592009958, + 12.592020496019174, + 12.59214499736474, + 12.592269424180918, + 12.592393776512324, + 12.592518054403545, + 12.592642257899145, + 12.592766387043657, + 12.59289044188159, + 12.593014422457424, + 12.593138328815614, + 12.593262161000592, + 12.593385919056757, + 12.593509603028485, + 12.593633212960125, + 12.593756748895997, + 12.593880210880398, + 12.594003598957599, + 12.59412691317184, + 12.594250153567339, + 12.59437332018828, + 12.594496413078835, + 12.594619432283134, + 12.59474237784529, + 12.594865249809386, + 12.59498804821948, + 12.595110773119604, + 12.595233424553763, + 12.595356002565934, + 12.595478507200067, + 12.595600938500093, + 12.595723296509908, + 12.595845581273382, + 12.595967792834369, + 12.596089931236685, + 12.596211996524126, + 12.596333988740462, + 12.596455907929434, + 12.596577754134755, + 12.596699527400117, + 12.596821227769185, + 12.596942855285596, + 12.597064409992958, + 12.59718589193486, + 12.597307301154858, + 12.597428637696487, + 12.597549901603251, + 12.597671092918635, + 12.597792211686093, + 12.597913257949052, + 12.598034231750916, + 12.598155133135062, + 12.598275962144841, + 12.598396718823576, + 12.59851740321457, + 12.598638015361093, + 12.598758555306395, + 12.598879023093694, + 12.598999418766185, + 12.59911974236704, + 12.599239993939404, + 12.599360173526392, + 12.599480281171095, + 12.599600316916584, + 12.599720280805897, + 12.59984017288205, + 12.59995999318803, + 12.600079741766802, + 12.6001994186613, + 12.600319023914441, + 12.600438557569108, + 12.60055801966816, + 12.600677410254436, + 12.600796729370744, + 12.600915977059866, + 12.60103515336456, + 12.601154258327561, + 12.601273291991575, + 12.601392254399281, + 12.601511145593335, + 12.601629965616368, + 12.601748714510984, + 12.601867392319765, + 12.60198599908526, + 12.602104534850003, + 12.60222299965649, + 12.602341393547203, + 12.602459716564592, + 12.602577968751083, + 12.60269615014908, + 12.602814260800956, + 12.60293230074906, + 12.603050270035718, + 12.603168168703231, + 12.603285996793872, + 12.603403754349891, + 12.603521441413513, + 12.603639058026932, + 12.603756604232323, + 12.603874080071837, + 12.603991485587592, + 12.604108820821688, + 12.604226085816197, + 12.604343280613167, + 12.604460405254617, + 12.604577459782545, + 12.604694444238925, + 12.6048113586657, + 12.604928203104791, + 12.605044977598098, + 12.60516168218749, + 12.605278316914815, + 12.605394881821889, + 12.605511376950512, + 12.605627802342454, + 12.60574415803946, + 12.605860444083255, + 12.60597666051553, + 12.606092807377962, + 12.60620888471219, + 12.60632489255984, + 12.606440830962509, + 12.606556699961763, + 12.606672499599153, + 12.606788229916198, + 12.606903890954397, + 12.60701948275522, + 12.607135005360119, + 12.607250458810508, + 12.607365843147791, + 12.60748115841334, + 12.6075964046485, + 12.607711581894597, + 12.607826690192926, + 12.607941729584764, + 12.60805670011136, + 12.60817160181394, + 12.608286434733696, + 12.608401198911809, + 12.608515894389429, + 12.608630521207681, + 12.608745079407667, + 12.608859569030463, + 12.60897399011712, + 12.609088342708667, + 12.609202626846104, + 12.60931684257041, + 12.609430989922538, + 12.60954506894342, + 12.60965907967396, + 12.609773022155037, + 12.609886896427508, + 12.610000702532203, + 12.61011444050993, + 12.61022811040147, + 12.610341712247582, + 12.610455246088998, + 12.610568711966431, + 12.61068210992056, + 12.610795439992051, + 12.610908702221538, + 12.611021896649632, + 12.61113502331692, + 12.611248082263968, + 12.611361073531311, + 12.611473997159464, + 12.611586853188923, + 12.611699641660149, + 12.611812362613586, + 12.611925016089648, + 12.612037602128733, + 12.612150120771211, + 12.612262572057423, + 12.612374956027692, + 12.612487272722314, + 12.612599522181563, + 12.612711704445688, + 12.612823819554913, + 12.612935867549439, + 12.613047848469442, + 12.613159762355071, + 12.613271609246459, + 12.613383389183708, + 12.6134951022069, + 12.613606748356089, + 12.613718327671311, + 12.61382984019257, + 12.613941285959854, + 12.614052665013121, + 12.614163977392307, + 12.614275223137328, + 12.61438640228807, + 12.614497514884398, + 12.614608560966156, + 12.614719540573157, + 12.614830453745197, + 12.614941300522045, + 12.615052080943446, + 12.615162795049123, + 12.615273442878772, + 12.615384024472071, + 12.615494539868667, + 12.615604989108187, + 12.615715372230236, + 12.615825689274393, + 12.615935940280215, + 12.616046125287232, + 12.616156244334954, + 12.616266297462866, + 12.616376284710425, + 12.616486206117074, + 12.616596061722221, + 12.616705851565262, + 12.616815575685562, + 12.616925234122462, + 12.617034826915283, + 12.61714435410332, + 12.617253815725851, + 12.61736321182212, + 12.61747254243135, + 12.61758180759275, + 12.617691007345492, + 12.617800141728738, + 12.617909210781614, + 12.61801821454323, + 12.61812715305267, + 12.618236026348997, + 12.61834483447125, + 12.618453577458443, + 12.618562255349564, + 12.618670868183584, + 12.618779415999448, + 12.618887898836077, + 12.61899631673237, + 12.619104669727198, + 12.619212957859416, + 12.619321181167852, + 12.619429339691306, + 12.619537433468567, + 12.619645462538392, + 12.619753426939514, + 12.619861326710646, + 12.619969161890477, + 12.620076932517675, + 12.620184638630878, + 12.620292280268709, + 12.620399857469764, + 12.620507370272616, + 12.620614818715817, + 12.620722202837891, + 12.620829522677345, + 12.620936778272661, + 12.62104396966229, + 12.621151096884674, + 12.621258159978224, + 12.621365158981327, + 12.62147209393235, + 12.621578964869634, + 12.621685771831503, + 12.621792514856253, + 12.621899193982156, + 12.622005809247463, + 12.622112360690407, + 12.622218848349188, + 12.622325272261993, + 12.62243163246698, + 12.622537929002288, + 12.622644161906027, + 12.622750331216292, + 12.62285643697115, + 12.622962479208645, + 12.623068457966804, + 12.623174373283623, + 12.623280225197083, + 12.623386013745137, + 12.623491738965717, + 12.623597400896731, + 12.623702999576068, + 12.62380853504159, + 12.623914007331141, + 12.624019416482538, + 12.624124762533578, + 12.624230045522031, + 12.624335265485652, + 12.624440422462166, + 12.62454551648928, + 12.624650547604675, + 12.624755515846015, + 12.624860421250936, + 12.624965263857053, + 12.625070043701959, + 12.625174760823223, + 12.625279415258394, + 12.625384007044998, + 12.625488536220539, + 12.625593002822493, + 12.625697406888321, + 12.62580174845546, + 12.62590602756132, + 12.626010244243295, + 12.626114398538752, + 12.626218490485034, + 12.62632252011947, + 12.626426487479357, + 12.626530392601977, + 12.626634235524582, + 12.626738016284413, + 12.62684173491868, + 12.626945391464568, + 12.62704898595925, + 12.62715251843987, + 12.62725598894355, + 12.627359397507389, + 12.62746274416847, + 12.62756602896385, + 12.627669251930557, + 12.627772413105609, + 12.62787551252599, + 12.627978550228674, + 12.628081526250604, + 12.628184440628704, + 12.628287293399874, + 12.628390084600994, + 12.628492814268922, + 12.628595482440492, + 12.628698089152518, + 12.62880063444179, + 12.628903118345079, + 12.629005540899131, + 12.629107902140673, + 12.629210202106405, + 12.629312440833008, + 12.629414618357144, + 12.629516734715446, + 12.629618789944534, + 12.629720784081, + 12.629822717161414, + 12.629924589222327, + 12.630026400300265, + 12.630128150431736, + 12.630229839653222, + 12.630331468001186, + 12.63043303551207, + 12.630534542222293, + 12.630635988168246, + 12.630737373386308, + 12.630838697912832, + 12.630939961784149, + 12.631041165036567, + 12.631142307706376, + 12.631243389829843, + 12.63134441144321, + 12.6314453725827, + 12.631546273284515, + 12.631647113584833, + 12.631747893519815, + 12.631848613125594, + 12.631949272438288, + 12.632049871493985, + 12.632150410328759, + 12.632250888978657, + 12.632351307479713, + 12.632451665867928, + 12.632551964179287, + 12.632652202449757, + 12.632752380715276, + 12.632852499011769, + 12.632952557375132, + 12.633052555841239, + 12.633152494445953, + 12.633252373225105, + 12.633352192214504, + 12.633451951449947, + 12.633551650967203, + 12.633651290802018, + 12.633750870990124, + 12.633850391567224, + 12.633949852569001, + 12.634049254031122, + 12.634148595989224, + 12.634247878478932, + 12.634347101535843, + 12.634446265195534, + 12.634545369493566, + 12.63464441446547, + 12.63474340014676, + 12.634842326572931, + 12.634941193779452, + 12.635040001801775, + 12.635138750675328, + 12.635237440435521, + 12.635336071117736, + 12.635434642757343, + 12.635533155389684, + 12.635631609050085, + 12.635730003773846, + 12.635828339596245, + 12.635926616552545, + 12.636024834677984, + 12.636122994007781, + 12.636221094577131, + 12.636319136421207, + 12.636417119575167, + 12.636515044074143, + 12.636612909953245, + 12.636710717247567, + 12.63680846599218, + 12.636906156222132, + 12.63700378797245, + 12.637101361278141, + 12.637198876174192, + 12.637296332695572, + 12.637393730877218, + 12.637491070754061, + 12.637588352360998, + 12.637685575732915, + 12.63778274090467, + 12.637879847911105, + 12.637976896787038, + 12.638073887567268, + 12.63817082028657, + 12.638267694979705, + 12.638364511681404, + 12.638461270426385, + 12.63855797124934, + 12.638654614184944, + 12.63875119926785, + 12.63884772653269, + 12.638944196014076, + 12.639040607746598, + 12.639136961764823, + 12.639233258103303, + 12.639329496796567, + 12.639425677879117, + 12.639521801385449, + 12.639617867350024, + 12.639713875807287, + 12.639809826791666, + 12.639905720337566, + 12.640001556479367, + 12.640097335251436, + 12.640193056688116, + 12.640288720823724, + 12.640384327692571, + 12.64047987732893, + 12.640575369767067, + 12.640670805041218, + 12.640766183185605, + 12.640861504234426, + 12.640956768221864, + 12.641051975182071, + 12.641147125149187, + 12.641242218157334, + 12.641337254240602, + 12.641432233433072, + 12.641527155768797, + 12.641622021281814, + 12.64171683000614, + 12.64181158197577, + 12.641906277224678, + 12.642000915786818, + 12.642095497696122, + 12.642190022986505, + 12.64228449169186, + 12.642378903846065, + 12.642473259482966, + 12.6425675586364, + 12.64266180134018, + 12.642755987628096, + 12.642850117533918, + 12.642944191091399, + 12.64303820833427, + 12.643132169296246, + 12.643226074011013, + 12.643319922512244, + 12.64341371483359, + 12.64350745100868, + 12.64360113107113, + 12.64369475505452, + 12.64378832299243, + 12.643881834918405, + 12.643975290865976, + 12.644068690868654, + 12.644162034959928, + 12.644255323173269, + 12.644348555542127, + 12.644441732099928, + 12.644534852880087, + 12.644627917915988, + 12.644720927241009, + 12.64481388088849, + 12.64490677889177, + 12.644999621284153, + 12.64509240809893, + 12.645185139369373, + 12.64527781512873, + 12.645370435410232, + 12.64546300024709, + 12.645555509672494, + 12.645647963719616, + 12.645740362421604, + 12.64583270581159, + 12.645924993922684, + 12.646017226787977, + 12.646109404440542, + 12.646201526913433, + 12.64629359423968, + 12.646385606452291, + 12.646477563584263, + 12.646569465668566, + 12.646661312738155, + 12.646753104825962, + 12.6468448419649, + 12.646936524187863, + 12.647028151527728, + 12.647119724017342, + 12.647211241689545, + 12.647302704577152, + 12.647394112712957, + 12.647485466129737, + 12.647576764860245, + 12.64766800893722, + 12.647759198393379, + 12.647850333261418, + 12.647941413574017, + 12.64803243936383, + 12.648123410663496, + 12.648214327505638, + 12.648305189922855, + 12.648395997947725, + 12.64848675161281, + 12.64857745095065, + 12.648668095993767, + 12.648758686774663, + 12.64884922332582, + 12.6489397056797, + 12.64903013386875, + 12.649120507925394, + 12.649210827882033, + 12.649301093771054, + 12.649391305624826, + 12.649481463475695, + 12.649571567355988, + 12.649661617298012, + 12.649751613334056, + 12.649841555496387, + 12.649931443817259, + 12.650021278328904, + 12.65011105906353, + 12.650200786053329, + 12.650290459330476, + 12.650380078927123, + 12.650469644875402, + 12.650559157207434, + 12.65064861595531, + 12.65073802115111, + 12.65082737282689, + 12.65091667101469, + 12.651005915746525, + 12.6510951070544, + 12.651184244970294, + 12.651273329526164, + 12.651362360753959, + 12.6514513386856, + 12.651540263352992, + 12.651629134788017, + 12.651717953022546, + 12.651806718088423, + 12.651895430017477, + 12.651984088841518, + 12.652072694592333, + 12.652161247301693, + 12.652249747001354, + 12.652338193723045, + 12.652426587498482, + 12.652514928359357, + 12.652603216337349, + 12.652691451464115, + 12.652779633771289, + 12.652867763290493, + 12.652955840053329, + 12.653043864091373, + 12.653131835436191, + 12.653219754119325, + 12.653307620172301, + 12.653395433626622, + 12.653483194513779, + 12.653570902865237, + 12.653658558712445, + 12.653746162086835, + 12.653833713019816, + 12.65392121154278, + 12.654008657687104, + 12.654096051484142, + 12.654183392965232, + 12.654270682161687, + 12.65435791910481, + 12.654445103825877, + 12.654532236356152, + 12.654619316726878, + 12.654706344969279, + 12.654793321114559, + 12.654880245193906, + 12.654967117238485, + 12.65505393727945, + 12.655140705347925, + 12.655227421475029, + 12.65531408569185, + 12.655400698029466, + 12.655487258518932, + 12.655573767191285, + 12.655660224077543, + 12.655746629208709, + 12.655832982615761, + 12.655919284329666, + 12.656005534381368, + 12.65609173280179, + 12.656177879621843, + 12.656263974872417, + 12.65635001858438, + 12.656436010788585, + 12.656521951515867, + 12.65660784079704, + 12.656693678662899, + 12.656779465144226, + 12.656865200271778, + 12.6569508840763, + 12.65703651658851, + 12.657122097839121, + 12.657207627858812, + 12.657293106678253, + 12.657378534328092, + 12.657463910838965, + 12.657549236241483, + 12.657634510566238, + 12.657719733843809, + 12.657804906104753, + 12.65789002737961, + 12.657975097698902, + 12.65806011709313, + 12.658145085592784, + 12.658230003228324, + 12.6583148700302, + 12.658399686028847, + 12.658484451254672, + 12.658569165738072, + 12.658653829509419, + 12.658738442599073, + 12.658823005037375, + 12.658907516854642, + 12.658991978081179, + 12.659076388747271, + 12.659160748883183, + 12.659245058519167, + 12.65932931768545, + 12.659413526412244, + 12.659497684729747, + 12.659581792668131, + 12.65966585025756, + 12.659749857528167, + 12.659833814510078, + 12.659917721233397, + 12.66000157772821, + 12.660085384024582, + 12.660169140152563, + 12.660252846142187, + 12.660336502023473, + 12.66042010782641, + 12.660503663580977, + 12.660587169317136, + 12.660670625064826, + 12.660754030853976, + 12.660837386714489, + 12.660920692676253, + 12.66100394876914, + 12.661087155023004, + 12.661170311467679, + 12.66125341813298, + 12.661336475048708, + 12.661419482244643, + 12.661502439750551, + 12.661585347596173, + 12.661668205811239, + 12.66175101442546, + 12.661833773468528, + 12.661916482970117, + 12.661999142959884, + 12.662081753467467, + 12.662164314522489, + 12.66224682615455, + 12.66232928839324, + 12.662411701268123, + 12.662494064808751, + 12.662576379044658, + 12.662658644005361, + 12.662740859720351, + 12.662823026219112, + 12.662905143531106, + 12.662987211685774, + 12.663069230712546, + 12.66315120064083, + 12.663233121500017, + 12.663314993319482, + 12.663396816128579, + 12.66347858995665, + 12.663560314833015, + 12.663641990786976, + 12.663723617847818, + 12.663805196044816, + 12.663886725407213, + 12.663968205964249, + 12.664049637745135, + 12.664131020779074, + 12.664212355095243, + 12.664293640722809, + 12.664374877690916, + 12.664456066028693, + 12.664537205765251, + 12.664618296929687, + 12.664699339551072, + 12.66478033365847, + 12.66486127928092, + 12.664942176447447, + 12.665023025187057, + 12.66510382552874, + 12.665184577501467, + 12.665265281134195, + 12.665345936455859, + 12.665426543495382, + 12.665507102281664, + 12.665587612843593, + 12.665668075210034, + 12.66574848940984, + 12.665828855471844, + 12.665909173424863, + 12.665989443297699, + 12.666069665119128, + 12.66614983891792, + 12.666229964722818, + 12.666310042562557, + 12.666390072465846, + 12.666470054461383, + 12.666549988577845, + 12.666629874843895, + 12.666709713288178, + 12.666789503939317, + 12.666869246825927, + 12.6669489419766, + 12.667028589419909, + 12.667108189184416, + 12.66718774129866, + 12.667267245791168, + 12.667346702690448, + 12.667426112024987, + 12.66750547382326, + 12.667584788113725, + 12.667664054924817, + 12.667743274284964, + 12.667822446222567, + 12.667901570766015, + 12.667980647943677, + 12.668059677783912, + 12.668138660315055, + 12.668217595565427, + 12.668296483563331, + 12.668375324337052, + 12.668454117914862, + 12.668532864325012, + 12.668611563595737, + 12.668690215755259, + 12.668768820831776, + 12.668847378853476, + 12.668925889848524, + 12.669004353845075, + 12.669082770871258, + 12.669161140955197, + 12.669239464124988, + 12.669317740408715, + 12.669395969834449, + 12.669474152430237, + 12.669552288224114, + 12.669630377244093, + 12.669708419518182, + 12.669786415074356, + 12.669864363940585, + 12.669942266144817, + 12.670020121714987, + 12.67009793067901, + 12.670175693064786, + 12.670253408900198, + 12.670331078213113, + 12.670408701031379, + 12.67048627738283, + 12.670563807295279, + 12.670641290796532, + 12.670718727914364, + 12.670796118676547, + 12.670873463110826, + 12.670950761244939, + 12.671028013106596, + 12.671105218723504, + 12.671182378123339, + 12.671259491333773, + 12.671336558382453, + 12.671413579297013, + 12.671490554105072, + 12.671567482834229, + 12.671644365512067, + 12.671721202166154, + 12.671797992824041, + 12.671874737513265, + 12.67195143626134, + 12.67202808909577, + 12.672104696044038, + 12.672181257133614, + 12.67225777239195, + 12.67233424184648, + 12.672410665524625, + 12.672487043453785, + 12.67256337566135, + 12.672639662174689, + 12.672715903021153, + 12.672792098228083, + 12.6728682478228, + 12.672944351832605, + 12.673020410284789, + 12.673096423206621, + 12.67317239062536, + 12.673248312568242, + 12.673324189062495, + 12.673400020135318, + 12.673475805813906, + 12.673551546125434, + 12.673627241097057, + 12.673702890755917, + 12.67377849512914, + 12.673854054243838, + 12.673929568127098, + 12.674005036806003, + 12.674080460307607, + 12.674155838658958, + 12.674231171887083, + 12.674306460018995, + 12.674381703081686, + 12.67445690110214, + 12.674532054107315, + 12.674607162124165, + 12.674682225179616, + 12.674757243300585, + 12.674832216513968, + 12.674907144846651, + 12.6749820283255, + 12.675056866977364, + 12.675131660829079, + 12.675206409907464, + 12.67528111423932, + 12.675355773851432, + 12.675430388770573, + 12.675504959023497, + 12.675579484636941, + 12.675653965637627, + 12.675728402052263, + 12.675802793907538, + 12.675877141230126, + 12.675951444046685, + 12.67602570238386, + 12.676099916268274, + 12.676174085726538, + 12.676248210785248, + 12.676322291470983, + 12.676396327810306, + 12.676470319829757, + 12.676544267555878, + 12.676618171015173, + 12.67669203023415, + 12.676765845239288, + 12.676839616057054, + 12.676913342713902, + 12.676987025236265, + 12.677060663650566, + 12.677134257983207, + 12.677207808260578, + 12.677281314509047, + 12.677354776754976, + 12.677428195024705, + 12.677501569344559, + 12.677574899740845, + 12.677648186239857, + 12.677721428867876, + 12.677794627651163, + 12.677867782615964, + 12.677940893788508, + 12.678013961195012, + 12.678086984861675, + 12.67815996481468, + 12.678232901080197, + 12.678305793684377, + 12.678378642653355, + 12.678451448013256, + 12.678524209790183, + 12.678596928010224, + 12.678669602699458, + 12.67874223388394, + 12.678814821589711, + 12.678887365842803, + 12.678959866669228, + 12.679032324094978, + 12.679104738146036, + 12.679177108848366, + 12.679249436227916, + 12.679321720310625, + 12.67939396112241, + 12.679466158689172, + 12.679538313036797, + 12.679610424191162, + 12.679682492178118, + 12.679754517023511, + 12.679826498753162, + 12.679898437392886, + 12.679970332968473, + 12.680042185505704, + 12.680113995030343, + 12.680185761568142, + 12.680257485144827, + 12.680329165786118, + 12.680400803517719, + 12.680472398365318, + 12.680543950354581, + 12.680615459511166, + 12.680686925860714, + 12.680758349428853, + 12.68082973024119, + 12.680901068323319, + 12.680972363700823, + 12.681043616399265, + 12.68111482644419, + 12.681185993861135, + 12.681257118675616, + 12.681328200913136, + 12.681399240599182, + 12.681470237759227, + 12.68154119241873, + 12.681612104603131, + 12.681682974337857, + 12.68175380164832, + 12.681824586559918, + 12.681895329098024, + 12.681966029288011, + 12.682036687155227, + 12.68210730272501, + 12.682177876022678, + 12.682248407073534, + 12.68231889590287, + 12.682389342535965, + 12.682459746998072, + 12.682530109314438, + 12.682600429510297, + 12.682670707610855, + 12.682740943641315, + 12.682811137626862, + 12.682881289592663, + 12.682951399563875, + 12.683021467565634, + 12.683091493623067, + 12.68316147776128, + 12.683231420005367, + 12.683301320380409, + 12.683371178911466, + 12.68344099562359, + 12.683510770541815, + 12.683580503691159, + 12.683650195096627, + 12.683719844783205, + 12.68378945277587, + 12.683859019099577, + 12.683928543779272, + 12.683998026839886, + 12.68406746830633, + 12.684136868203504, + 12.684206226556295, + 12.68427554338957, + 12.684344818728183, + 12.684414052596974, + 12.68448324502077, + 12.684552396024378, + 12.684621505632595, + 12.684690573870203, + 12.684759600761964, + 12.68482858633263, + 12.684897530606934, + 12.6849664336096, + 12.685035295365333, + 12.685104115898826, + 12.685172895234755, + 12.68524163339778, + 12.68531033041255, + 12.685378986303698, + 12.685447601095838, + 12.685516174813575, + 12.685584707481498, + 12.685653199124182, + 12.685721649766183, + 12.685790059432042, + 12.685858428146295, + 12.685926755933451, + 12.685995042818012, + 12.686063288824462, + 12.686131493977273, + 12.6861996583009, + 12.686267781819787, + 12.686335864558359, + 12.686403906541026, + 12.686471907792187, + 12.686539868336228, + 12.686607788197511, + 12.686675667400394, + 12.686743505969215, + 12.686811303928298, + 12.686879061301951, + 12.686946778114473, + 12.687014454390145, + 12.68708209015323, + 12.68714968542798, + 12.687217240238638, + 12.687284754609422, + 12.68735222856454, + 12.687419662128187, + 12.68748705532454, + 12.68755440817777, + 12.687621720712018, + 12.687688992951426, + 12.687756224920115, + 12.68782341664219, + 12.687890568141746, + 12.687957679442858, + 12.688024750569593, + 12.688091781546, + 12.688158772396111, + 12.68822572314395, + 12.68829263381352, + 12.688359504428814, + 12.688426335013808, + 12.68849312559247, + 12.688559876188743, + 12.688626586826564, + 12.688693257529854, + 12.688759888322519, + 12.68882647922845, + 12.68889303027152, + 12.688959541475597, + 12.689026012864527, + 12.689092444462146, + 12.689158836292272, + 12.689225188378709, + 12.689291500745254, + 12.68935777341568, + 12.689424006413752, + 12.689490199763219, + 12.689556353487813, + 12.689622467611258, + 12.689688542157258, + 12.689754577149502, + 12.689820572611675, + 12.689886528567435, + 12.689952445040433, + 12.690018322054305, + 12.69008415963267, + 12.690149957799138, + 12.6902157165773, + 12.690281435990736, + 12.690347116063007, + 12.690412756817668, + 12.690478358278254, + 12.690543920468288, + 12.690609443411276, + 12.690674927130713, + 12.69074037165008, + 12.690805776992843, + 12.690871143182454, + 12.69093647024235, + 12.691001758195958, + 12.691067007066684, + 12.691132216877927, + 12.691197387653066, + 12.69126251941547, + 12.691327612188493, + 12.691392665995478, + 12.691457680859747, + 12.691522656804612, + 12.691587593853372, + 12.691652492029313, + 12.691717351355704, + 12.6917821718558, + 12.691846953552846, + 12.691911696470065, + 12.691976400630677, + 12.69204106605788, + 12.692105692774863, + 12.692170280804795, + 12.692234830170838, + 12.692299340896136, + 12.69236381300382, + 12.692428246517009, + 12.692492641458806, + 12.692556997852298, + 12.692621315720565, + 12.692685595086667, + 12.692749835973652, + 12.692814038404554, + 12.692878202402394, + 12.692942327990181, + 12.693006415190906, + 12.69307046402755, + 12.693134474523077, + 12.69319844670044, + 12.693262380582576, + 12.69332627619241, + 12.693390133552853, + 12.693453952686804, + 12.693517733617144, + 12.69358147636674, + 12.693645180958452, + 12.693708847415122, + 12.693772475759575, + 12.69383606601463, + 12.693899618203083, + 12.693963132347726, + 12.694026608471333, + 12.694090046596662, + 12.69415344674646, + 12.694216808943462, + 12.694280133210386, + 12.694343419569938, + 12.694406668044808, + 12.69446987865768, + 12.694533051431213, + 12.694596186388065, + 12.694659283550868, + 12.69472234294225, + 12.694785364584819, + 12.694848348501175, + 12.6949112947139, + 12.694974203245565, + 12.695037074118726, + 12.695099907355928, + 12.6951627029797, + 12.695225461012555, + 12.695288181477002, + 12.695350864395527, + 12.695413509790605, + 12.695476117684699, + 12.69553868810026, + 12.695601221059722, + 12.695663716585507, + 12.695726174700022, + 12.695788595425665, + 12.695850978784817, + 12.695913324799845, + 12.695975633493106, + 12.696037904886941, + 12.696100139003677, + 12.696162335865631, + 12.696224495495104, + 12.69628661791438, + 12.696348703145741, + 12.696410751211443, + 12.69647276213374, + 12.696534735934863, + 12.696596672637032, + 12.696658572262457, + 12.696720434833335, + 12.696782260371844, + 12.696844048900155, + 12.696905800440422, + 12.696967515014789, + 12.697029192645385, + 12.697090833354322, + 12.697152437163703, + 12.697214004095619, + 12.697275534172142, + 12.69733702741534, + 12.697398483847255, + 12.69745990348993, + 12.697521286365385, + 12.69758263249563, + 12.69764394190266, + 12.697705214608462, + 12.697766450635001, + 12.697827650004239, + 12.697888812738118, + 12.697949938858567, + 12.698011028387507, + 12.69807208134684, + 12.69813309775846, + 12.698194077644242, + 12.698255021026053, + 12.698315927925744, + 12.698376798365157, + 12.698437632366113, + 12.698498429950428, + 12.698559191139903, + 12.698619915956323, + 12.698680604421464, + 12.698741256557081, + 12.698801872384928, + 12.698862451926738, + 12.698922995204232, + 12.698983502239116, + 12.69904397305309, + 12.699104407667836, + 12.69916480610502, + 12.699225168386304, + 12.699285494533326, + 12.699345784567722, + 12.699406038511107, + 12.699466256385087, + 12.699526438211254, + 12.699586584011188, + 12.699646693806452, + 12.6997067676186, + 12.699766805469176, + 12.699826807379704, + 12.699886773371698, + 12.699946703466663, + 12.700006597686086, + 12.70006645605144, + 12.700126278584193, + 12.700186065305795, + 12.700245816237679, + 12.700305531401272, + 12.700365210817987, + 12.70042485450922, + 12.700484462496359, + 12.700544034800778, + 12.700603571443835, + 12.700663072446881, + 12.700722537831249, + 12.70078196761826, + 12.700841361829225, + 12.700900720485441, + 12.700960043608191, + 12.701019331218747, + 12.701078583338365, + 12.701137799988295, + 12.701196981189767, + 12.701256126964003, + 12.70131523733221, + 12.70137431231558, + 12.701433351935298, + 12.701492356212531, + 12.701551325168442, + 12.70161025882417, + 12.701669157200845, + 12.701728020319589, + 12.701786848201507, + 12.701845640867692, + 12.701904398339225, + 12.701963120637181, + 12.702021807782605, + 12.70208045979655, + 12.702139076700037, + 12.702197658514091, + 12.702256205259713, + 12.702314716957902, + 12.702373193629631, + 12.702431635295872, + 12.70249004197758, + 12.702548413695693, + 12.702606750471146, + 12.702665052324853, + 12.702723319277721, + 12.702781551350643, + 12.7028397485645, + 12.702897910940155, + 12.702956038498467, + 12.703014131260275, + 12.703072189246413, + 12.703130212477696, + 12.703188200974928, + 12.703246154758906, + 12.703304073850406, + 12.703361958270198, + 12.703419808039035, + 12.703477623177664, + 12.703535403706809, + 12.703593149647194, + 12.703650861019522, + 12.703708537844484, + 12.703766180142766, + 12.703823787935034, + 12.703881361241942, + 12.703938900084138, + 12.703996404482249, + 12.704053874456898, + 12.704111310028688, + 12.704168711218218, + 12.704226078046066, + 12.704283410532803, + 12.704340708698984, + 12.704397972565157, + 12.704455202151856, + 12.704512397479599, + 12.704569558568892, + 12.704626685440237, + 12.704683778114113, + 12.704740836610995, + 12.704797860951338, + 12.70485485115559, + 12.704911807244187, + 12.704968729237553, + 12.705025617156094, + 12.70508247102021, + 12.705139290850289, + 12.705196076666699, + 12.705252828489806, + 12.70530954633996, + 12.705366230237495, + 12.705422880202736, + 12.705479496255998, + 12.70553607841758, + 12.705592626707768, + 12.705649141146841, + 12.705705621755063, + 12.705762068552685, + 12.705818481559948, + 12.70587486079708, + 12.705931206284294, + 12.705987518041795, + 12.706043796089773, + 12.706100040448408, + 12.70615625113787, + 12.706212428178311, + 12.706268571589876, + 12.706324681392696, + 12.706380757606889, + 12.706436800252563, + 12.706492809349811, + 12.706548784918716, + 12.706604726979352, + 12.706660635551772, + 12.706716510656028, + 12.706772352312154, + 12.706828160540173, + 12.706883935360093, + 12.706939676791915, + 12.706995384855626, + 12.7070510595712, + 12.7071067009586, + 12.707162309037779, + 12.707217883828672, + 12.707273425351211, + 12.707328933625309, + 12.707384408670869, + 12.70743985050778, + 12.707495259155927, + 12.707550634635174, + 12.707605976965377, + 12.70766128616638, + 12.707716562258016, + 12.707771805260101, + 12.707827015192448, + 12.707882192074852, + 12.707937335927095, + 12.707992446768953, + 12.708047524620186, + 12.708102569500541, + 12.708157581429756, + 12.708212560427556, + 12.708267506513657, + 12.70832241970776, + 12.708377300029552, + 12.708432147498712, + 12.70848696213491, + 12.708541743957797, + 12.708596492987017, + 12.708651209242198, + 12.708705892742966, + 12.708760543508921, + 12.708815161559663, + 12.708869746914775, + 12.708924299593832, + 12.708978819616393, + 12.709033307002004, + 12.709087761770206, + 12.709142183940523, + 12.70919657353247, + 12.709250930565547, + 12.709305255059245, + 12.709359547033046, + 12.709413806506412, + 12.709468033498803, + 12.709522228029659, + 12.709576390118414, + 12.70963051978449, + 12.709684617047294, + 12.709738681926225, + 12.709792714440669, + 12.709846714609998, + 12.709900682453576, + 12.709954617990755, + 12.710008521240871, + 12.710062392223254, + 12.71011623095722, + 12.710170037462074, + 12.710223811757109, + 12.710277553861605, + 12.710331263794833, + 12.710384941576054, + 12.71043858722451, + 12.710492200759441, + 12.710545782200068, + 12.710599331565604, + 12.710652848875249, + 12.710706334148194, + 12.710759787403617, + 12.710813208660683, + 12.710866597938548, + 12.710919955256356, + 12.710973280633239, + 12.711026574088315, + 12.711079835640698, + 12.71113306530948, + 12.711186263113753, + 12.711239429072586, + 12.711292563205047, + 12.711345665530187, + 12.711398736067045, + 12.711451774834652, + 12.711504781852025, + 12.71155775713817, + 12.711610700712082, + 12.711663612592744, + 12.711716492799132, + 12.711769341350204, + 12.711822158264908, + 12.711874943562187, + 12.711927697260961, + 12.71198041938015, + 12.71203310993866, + 12.712085768955381, + 12.712138396449195, + 12.712190992438973, + 12.712243556943575, + 12.712296089981846, + 12.712348591572626, + 12.712401061734738, + 12.712453500486998, + 12.712505907848207, + 12.712558283837156, + 12.712610628472625, + 12.712662941773383, + 12.712715223758186, + 12.712767474445785, + 12.712819693854915, + 12.712871882004297, + 12.712924038912643, + 12.712976164598656, + 12.713028259081028, + 12.713080322378435, + 12.713132354509549, + 12.713184355493025, + 12.713236325347506, + 12.713288264091632, + 12.713340171744024, + 12.713392048323291, + 12.713443893848039, + 12.713495708336854, + 12.713547491808317, + 12.713599244280996, + 12.713650965773446, + 12.713702656304216, + 12.713754315891833, + 12.713805944554826, + 12.713857542311708, + 12.71390910918098, + 12.713960645181128, + 12.714012150330635, + 12.714063624647965, + 12.714115068151578, + 12.714166480859918, + 12.714217862791422, + 12.714269213964512, + 12.7143205343976, + 12.714371824109088, + 12.714423083117369, + 12.714474311440819, + 12.714525509097811, + 12.714576676106699, + 12.71462781248583, + 12.714678918253544, + 12.714729993428161, + 12.714781038027997, + 12.714832052071353, + 12.714883035576522, + 12.714933988561784, + 12.714984911045411, + 12.715035803045659, + 12.715086664580777, + 12.715137495669003, + 12.715188296328565, + 12.715239066577675, + 12.715289806434539, + 12.71534051591735, + 12.715391195044289, + 12.715441843833531, + 12.715492462303235, + 12.71554305047155, + 12.71559360835662, + 12.715644135976566, + 12.71569463334951, + 12.715745100493558, + 12.715795537426805, + 12.715845944167336, + 12.715896320733227, + 12.71594666714254, + 12.715996983413323, + 12.716047269563626, + 12.716097525611472, + 12.716147751574885, + 12.716197947471876, + 12.716248113320438, + 12.716298249138564, + 12.716348354944227, + 12.716398430755396, + 12.716448476590024, + 12.716498492466057, + 12.71654847840143, + 12.716598434414065, + 12.716648360521875, + 12.71669825674276, + 12.716748123094613, + 12.716797959595311, + 12.716847766262728, + 12.716897543114719, + 12.716947290169136, + 12.716997007443815, + 12.717046694956581, + 12.717096352725251, + 12.717145980767633, + 12.717195579101519, + 12.717245147744695, + 12.717294686714935, + 12.717344196029998, + 12.71739367570764, + 12.717443125765602, + 12.717492546221614, + 12.717541937093397, + 12.717591298398661, + 12.717640630155104, + 12.717689932380416, + 12.717739205092277, + 12.717788448308351, + 12.717837662046296, + 12.717886846323758, + 12.717936001158373, + 12.717985126567767, + 12.718034222569553, + 12.718083289181335, + 12.718132326420706, + 12.718181334305251, + 12.718230312852542, + 12.718279262080141, + 12.7183281820056, + 12.718377072646458, + 12.718425934020248, + 12.718474766144489, + 12.718523569036687, + 12.718572342714348, + 12.718621087194952, + 12.718669802495983, + 12.718718488634908, + 12.718767145629185, + 12.718815773496258, + 12.718864372253561, + 12.718912941918527, + 12.718961482508567, + 12.719009994041084, + 12.719058476533476, + 12.719106930003125, + 12.719155354467405, + 12.719203749943679, + 12.7192521164493, + 12.719300454001614, + 12.71934876261795, + 12.71939704231563, + 12.719445293111965, + 12.719493515024256, + 12.719541708069794, + 12.71958987226586, + 12.719638007629724, + 12.719686114178645, + 12.719734191929868, + 12.71978224090064, + 12.719830261108184, + 12.719878252569721, + 12.719926215302458, + 12.719974149323594, + 12.720022054650313, + 12.720069931299797, + 12.72011777928921, + 12.720165598635706, + 12.720213389356436, + 12.720261151468536, + 12.720308884989127, + 12.72035658993533, + 12.720404266324246, + 12.720451914172973, + 12.720499533498593, + 12.720547124318184, + 12.720594686648809, + 12.720642220507521, + 12.720689725911367, + 12.720737202877377, + 12.720784651422576, + 12.720832071563978, + 12.720879463318585, + 12.72092682670339, + 12.720974161735379, + 12.72102146843152, + 12.721068746808779, + 12.721115996884107, + 12.721163218674445, + 12.721210412196724, + 12.721257577467872, + 12.721304714504793, + 12.721351823324394, + 12.721398903943566, + 12.72144595637919, + 12.721492980648136, + 12.721539976767266, + 12.721586944753431, + 12.721633884623472, + 12.721680796394221, + 12.721727680082498, + 12.721774535705114, + 12.721821363278869, + 12.721868162820554, + 12.721914934346952, + 12.721961677874829, + 12.722008393420952, + 12.722055081002063, + 12.72210174063491, + 12.72214837233622, + 12.722194976122715, + 12.722241552011104, + 12.722288100018087, + 12.722334620160355, + 12.72238111245459, + 12.722427576917463, + 12.722474013565632, + 12.72252042241575, + 12.722566803484451, + 12.722613156788375, + 12.722659482344138, + 12.72270578016835, + 12.722752050277613, + 12.722798292688518, + 12.722844507417642, + 12.722890694481562, + 12.722936853896838, + 12.722982985680016, + 12.723029089847644, + 12.723075166416248, + 12.723121215402351, + 12.723167236822466, + 12.72321323069309, + 12.723259197030723, + 12.723305135851842, + 12.723351047172915, + 12.723396931010411, + 12.72344278738078, + 12.723488616300465, + 12.723534417785896, + 12.7235801918535, + 12.723625938519687, + 12.72367165780086, + 12.723717349713413, + 12.723763014273729, + 12.723808651498182, + 12.723854261403135, + 12.723899844004944, + 12.723945399319954, + 12.723990927364497, + 12.724036428154898, + 12.724081901707473, + 12.724127348038527, + 12.724172767164355, + 12.724218159101243, + 12.724263523865465, + 12.72430886147329, + 12.724354171940973, + 12.724399455284765, + 12.724444711520896, + 12.724489940665595, + 12.724535142735082, + 12.724580317745566, + 12.72462546571324, + 12.724670586654296, + 12.72471568058491, + 12.724760747521259, + 12.724805787479493, + 12.724850800475766, + 12.724895786526217, + 12.724940745646977, + 12.724985677854168, + 12.725030583163898, + 12.72507546159227, + 12.725120313155376, + 12.7251651378693, + 12.72520993575011, + 12.725254706813873, + 12.725299451076639, + 12.725344168554455, + 12.725388859263353, + 12.725433523219358, + 12.725478160438488, + 12.725522770936744, + 12.725567354730122, + 12.725611911834612, + 12.725656442266185, + 12.725700946040813, + 12.72574542317445, + 12.725789873683045, + 12.725834297582535, + 12.725878694888852, + 12.725923065617913, + 12.725967409785628, + 12.726011727407899, + 12.726056018500616, + 12.72610028307966, + 12.7261445211609, + 12.726188732760203, + 12.72623291789342, + 12.726277076576391, + 12.72632120882495, + 12.726365314654926, + 12.72640939408213, + 12.72645344712237, + 12.72649747379144, + 12.726541474105128, + 12.726585448079208, + 12.72662939572945, + 12.72667331707161, + 12.72671721212144, + 12.726761080894676, + 12.726804923407046, + 12.726848739674278, + 12.726892529712075, + 12.726936293536141, + 12.726980031162169, + 12.727023742605844, + 12.727067427882835, + 12.72711108700881, + 12.72715471999942, + 12.727198326870312, + 12.72724190763712, + 12.727285462315473, + 12.727328990920988, + 12.727372493469272, + 12.727415969975924, + 12.727459420456533, + 12.727502844926676, + 12.727546243401928, + 12.727589615897848, + 12.727632962429988, + 12.727676283013889, + 12.727719577665088, + 12.727762846399104, + 12.727806089231455, + 12.727849306177646, + 12.727892497253173, + 12.727935662473522, + 12.727978801854169, + 12.728021915410586, + 12.72806500315823, + 12.72810806511255, + 12.72815110128899, + 12.728194111702976, + 12.728237096369933, + 12.728280055305275, + 12.728322988524404, + 12.728365896042712, + 12.728408777875586, + 12.728451634038402, + 12.728494464546527, + 12.72853726941532, + 12.728580048660127, + 12.72862280229629, + 12.728665530339134, + 12.728708232803982, + 12.728750909706147, + 12.728793561060929, + 12.728836186883626, + 12.728878787189515, + 12.728921361993878, + 12.728963911311975, + 12.729006435159068, + 12.7290489335504, + 12.72909140650121, + 12.729133854026731, + 12.729176276142178, + 12.729218672862766, + 12.729261044203696, + 12.72930339018016, + 12.729345710807342, + 12.729388006100418, + 12.729430276074552, + 12.7294725207449, + 12.72951474012661, + 12.729556934234822, + 12.729599103084663, + 12.729641246691257, + 12.72968336506971, + 12.729725458235128, + 12.729767526202602, + 12.729809568987216, + 12.729851586604049, + 12.729893579068163, + 12.729935546394612, + 12.72997748859845, + 12.730019405694716, + 12.730061297698436, + 12.730103164624634, + 12.730145006488318, + 12.730186823304495, + 12.730228615088159, + 12.730270381854291, + 12.730312123617873, + 12.730353840393871, + 12.730395532197239, + 12.73043719904293, + 12.73047884094588, + 12.730520457921024, + 12.730562049983284, + 12.73060361714757, + 12.730645159428791, + 12.730686676841842, + 12.730728169401607, + 12.730769637122965, + 12.730811080020786, + 12.730852498109929, + 12.730893891405245, + 12.730935259921576, + 12.730976603673756, + 12.731017922676608, + 12.73105921694495, + 12.731100486493585, + 12.731141731337315, + 12.731182951490924, + 12.731224146969195, + 12.7312653177869, + 12.731306463958799, + 12.73134758549965, + 12.731388682424193, + 12.731429754747166, + 12.731470802483296, + 12.731511825647301, + 12.73155282425389, + 12.731593798317766, + 12.731634747853617, + 12.731675672876126, + 12.731716573399972, + 12.731757449439819, + 12.731798301010318, + 12.731839128126124, + 12.731879930801874, + 12.731920709052195, + 12.731961462891713, + 12.732002192335038, + 12.732042897396777, + 12.732083578091522, + 12.732124234433863, + 12.732164866438378, + 12.732205474119631, + 12.732246057492189, + 12.732286616570597, + 12.732327151369404, + 12.732367661903142, + 12.732408148186336, + 12.732448610233504, + 12.732489048059152, + 12.732529461677784, + 12.732569851103888, + 12.732610216351945, + 12.732650557436433, + 12.732690874371812, + 12.73273116717254, + 12.732771435853065, + 12.732811680427826, + 12.732851900911253, + 12.73289209731777, + 12.732932269661784, + 12.732972417957706, + 12.733012542219926, + 12.733052642462837, + 12.733092718700812, + 12.733132770948224, + 12.733172799219433, + 12.733212803528794, + 12.733252783890645, + 12.73329274031933, + 12.73333267282917, + 12.733372581434486, + 12.733412466149586, + 12.733452326988774, + 12.73349216396634, + 12.733531977096568, + 12.733571766393734, + 12.733611531872109, + 12.733651273545945, + 12.733690991429498, + 12.733730685537004, + 12.733770355882697, + 12.733810002480807, + 12.733849625345544, + 12.733889224491115, + 12.733928799931723, + 12.733968351681554, + 12.734007879754794, + 12.734047384165613, + 12.734086864928177, + 12.734126322056643, + 12.73416575556516, + 12.734205165467863, + 12.734244551778888, + 12.734283914512355, + 12.73432325368238, + 12.734362569303066, + 12.734401861388513, + 12.734441129952806, + 12.734480375010028, + 12.73451959657425, + 12.734558794659536, + 12.73459796927994, + 12.734637120449511, + 12.734676248182284, + 12.73471535249229, + 12.734754433393553, + 12.734793490900081, + 12.734832525025885, + 12.734871535784956, + 12.734910523191282, + 12.734949487258845, + 12.734988428001614, + 12.735027345433556, + 12.735066239568619, + 12.735105110420754, + 12.7351439580039, + 12.735182782331979, + 12.735221583418918, + 12.735260361278629, + 12.735299115925017, + 12.735337847371973, + 12.735376555633389, + 12.735415240723146, + 12.735453902655111, + 12.735492541443149, + 12.735531157101114, + 12.73556974964285, + 12.735608319082202, + 12.73564686543299, + 12.735685388709042, + 12.735723888924168, + 12.735762366092176, + 12.73580082022686, + 12.735839251342009, + 12.735877659451402, + 12.735916044568812, + 12.735954406708002, + 12.735992745882728, + 12.736031062106735, + 12.736069355393763, + 12.736107625757544, + 12.736145873211798, + 12.736184097770243, + 12.736222299446581, + 12.736260478254513, + 12.736298634207726, + 12.736336767319901, + 12.736374877604712, + 12.736412965075827, + 12.736451029746895, + 12.736489071631572, + 12.7365270907435, + 12.736565087096304, + 12.736603060703613, + 12.73664101157904, + 12.736678939736194, + 12.736716845188678, + 12.736754727950078, + 12.73679258803398, + 12.736830425453961, + 12.736868240223586, + 12.736906032356416, + 12.736943801865998, + 12.736981548765879, + 12.737019273069592, + 12.737056974790661, + 12.73709465394261, + 12.737132310538945, + 12.73716994459317, + 12.73720755611878, + 12.73724514512926, + 12.737282711638086, + 12.737320255658732, + 12.73735777720466, + 12.737395276289318, + 12.737432752926159, + 12.737470207128617, + 12.73750763891012, + 12.737545048284092, + 12.737582435263949, + 12.737619799863095, + 12.737657142094926, + 12.737694461972833, + 12.737731759510197, + 12.73776903472039, + 12.73780628761678, + 12.737843518212724, + 12.73788072652157, + 12.737917912556664, + 12.737955076331335, + 12.737992217858912, + 12.73802933715271, + 12.73806643422604, + 12.738103509092202, + 12.73814056176449, + 12.738177592256193, + 12.738214600580585, + 12.738251586750938, + 12.738288550780512, + 12.738325492682561, + 12.738362412470336, + 12.73839931015707, + 12.738436185755994, + 12.738473039280331, + 12.738509870743295, + 12.738546680158091, + 12.73858346753792, + 12.738620232895974, + 12.738656976245432, + 12.738693697599473, + 12.73873039697126, + 12.738767074373952, + 12.738803729820702, + 12.738840363324654, + 12.738876974898941, + 12.738913564556695, + 12.738950132311029, + 12.73898667817506, + 12.739023202161894, + 12.739059704284621, + 12.739096184556333, + 12.739132642990109, + 12.739169079599025, + 12.739205494396142, + 12.739241887394517, + 12.739278258607202, + 12.739314608047238, + 12.739350935727655, + 12.739387241661484, + 12.73942352586174, + 12.739459788341433, + 12.73949602911357, + 12.739532248191137, + 12.739568445587128, + 12.73960462131452, + 12.739640775386285, + 12.739676907815383, + 12.739713018614774, + 12.739749107797405, + 12.739785175376214, + 12.739821221364139, + 12.739857245774099, + 12.739893248619014, + 12.73992922991179, + 12.739965189665334, + 12.740001127892537, + 12.740037044606284, + 12.740072939819456, + 12.740108813544921, + 12.740144665795546, + 12.74018049658418, + 12.740216305923678, + 12.740252093826873, + 12.740287860306603, + 12.74032360537569, + 12.74035932904695, + 12.740395031333195, + 12.740430712247225, + 12.740466371801833, + 12.740502010009807, + 12.740537626883924, + 12.740573222436955, + 12.740608796681663, + 12.740644349630807, + 12.740679881297131, + 12.74071539169338, + 12.740750880832282, + 12.740786348726564, + 12.740821795388944, + 12.740857220832131, + 12.740892625068827, + 12.740928008111728, + 12.740963369973521, + 12.740998710666885, + 12.74103403020449, + 12.741069328599004, + 12.74110460586308, + 12.741139862009371, + 12.741175097050514, + 12.741210310999147, + 12.741245503867896, + 12.74128067566938, + 12.741315826416207, + 12.741350956120986, + 12.741386064796309, + 12.741421152454764, + 12.741456219108937, + 12.7414912647714, + 12.741526289454715, + 12.741561293171445, + 12.741596275934143, + 12.741631237755346, + 12.741666178647595, + 12.741701098623416, + 12.741735997695333, + 12.741770875875858, + 12.741805733177497, + 12.741840569612744, + 12.741875385194096, + 12.741910179934036, + 12.741944953845039, + 12.741979706939574, + 12.742014439230102, + 12.742049150729077, + 12.742083841448945, + 12.742118511402145, + 12.742153160601108, + 12.74218778905826, + 12.742222396786014, + 12.742256983796782, + 12.742291550102966, + 12.742326095716956, + 12.742360620651144, + 12.742395124917905, + 12.742429608529614, + 12.742464071498636, + 12.742498513837326, + 12.742532935558035, + 12.742567336673108, + 12.742601717194875, + 12.742636077135664, + 12.7426704165078, + 12.74270473532359, + 12.742739033595344, + 12.742773311335357, + 12.742807568555923, + 12.742841805269325, + 12.742876021487834, + 12.742910217223727, + 12.74294439248926, + 12.742978547296687, + 12.743012681658255, + 12.743046795586205, + 12.743080889092768, + 12.743114962190166, + 12.743149014890623, + 12.743183047206344, + 12.743217059149531, + 12.743251050732384, + 12.743285021967086, + 12.743318972865824, + 12.743352903440766, + 12.74338681370408, + 12.743420703667926, + 12.743454573344456, + 12.743488422745813, + 12.743522251884135, + 12.743556060771551, + 12.743589849420186, + 12.743623617842152, + 12.74365736604956, + 12.743691094054508, + 12.743724801869094, + 12.743758489505401, + 12.74379215697551, + 12.743825804291491, + 12.743859431465411, + 12.743893038509324, + 12.743926625435284, + 12.743960192255331, + 12.743993738981503, + 12.744027265625828, + 12.744060772200328, + 12.744094258717016, + 12.7441277251879, + 12.744161171624981, + 12.74419459804025, + 12.744228004445695, + 12.744261390853291, + 12.74429475727501, + 12.744328103722818, + 12.744361430208668, + 12.744394736744514, + 12.744428023342298, + 12.74446129001395, + 12.744494536771404, + 12.74452776362658, + 12.74456097059139, + 12.744594157677744, + 12.74462732489754, + 12.744660472262668, + 12.744693599785016, + 12.744726707476463, + 12.74475979534888, + 12.744792863414132, + 12.744825911684073, + 12.744858940170554, + 12.744891948885419, + 12.744924937840503, + 12.744957907047636, + 12.744990856518637, + 12.745023786265323, + 12.7450566962995, + 12.745089586632968, + 12.745122457277521, + 12.745155308244946, + 12.74518813954702, + 12.745220951195519, + 12.745253743202205, + 12.745286515578837, + 12.745319268337164, + 12.745352001488932, + 12.745384715045878, + 12.745417409019732, + 12.745450083422215, + 12.745482738265046, + 12.745515373559932, + 12.745547989318576, + 12.74558058555267, + 12.745613162273902, + 12.745645719493957, + 12.745678257224506, + 12.745710775477217, + 12.745743274263749, + 12.745775753595755, + 12.74580821348488, + 12.745840653942766, + 12.745873074981041, + 12.745905476611332, + 12.745937858845258, + 12.745970221694426, + 12.746002565170446, + 12.746034889284912, + 12.746067194049415, + 12.74609947947554, + 12.74613174557486, + 12.746163992358946, + 12.74619621983936, + 12.74622842802766, + 12.74626061693539, + 12.746292786574097, + 12.746324936955315, + 12.74635706809057, + 12.74638917999138, + 12.746421272669265, + 12.746453346135729, + 12.746485400402275, + 12.746517435480394, + 12.746549451381576, + 12.746581448117297, + 12.746613425699032, + 12.746645384138246, + 12.746677323446399, + 12.746709243634943, + 12.74674114471532, + 12.746773026698975, + 12.746804889597337, + 12.746836733421828, + 12.746868558183872, + 12.746900363894873, + 12.74693215056624, + 12.74696391820937, + 12.746995666835653, + 12.747027396456472, + 12.747059107083208, + 12.74709079872723, + 12.747122471399898, + 12.747154125112571, + 12.7471857598766, + 12.747217375703327, + 12.747248972604087, + 12.747280550590212, + 12.747312109673022, + 12.747343649863835, + 12.74737517117396, + 12.7474066736147, + 12.747438157197347, + 12.747469621933195, + 12.747501067833523, + 12.747532494909606, + 12.747563903172717, + 12.747595292634111, + 12.747626663305049, + 12.747658015196775, + 12.747689348320533, + 12.74772066268756, + 12.747751958309081, + 12.747783235196318, + 12.747814493360487, + 12.747845732812793, + 12.747876953564443, + 12.747908155626629, + 12.747939339010536, + 12.74797050372735, + 12.74800164978824, + 12.748032777204376, + 12.748063885986921, + 12.74809497614703, + 12.748126047695846, + 12.74815710064452, + 12.748188135004174, + 12.748219150785944, + 12.748250148000949, + 12.748281126660304, + 12.748312086775117, + 12.748343028356489, + 12.748373951415513, + 12.74840485596328, + 12.748435742010866, + 12.748466609569352, + 12.748497458649803, + 12.748528289263279, + 12.748559101420836, + 12.748589895133524, + 12.748620670412382, + 12.748651427268443, + 12.748682165712742, + 12.748712885756294, + 12.748743587410118, + 12.748774270685223, + 12.748804935592606, + 12.748835582143267, + 12.748866210348194, + 12.748896820218366, + 12.748927411764761, + 12.74895798499835, + 12.748988539930092, + 12.749019076570946, + 12.74904959493186, + 12.749080095023777, + 12.749110576857632, + 12.749141040444355, + 12.749171485794871, + 12.749201912920096, + 12.74923232183094, + 12.749262712538304, + 12.749293085053088, + 12.749323439386181, + 12.749353775548467, + 12.749384093550825, + 12.749414393404125, + 12.749444675119232, + 12.749474938707003, + 12.749505184178291, + 12.749535411543938, + 12.749565620814785, + 12.749595812001662, + 12.749625985115397, + 12.749656140166806, + 12.749686277166704, + 12.749716396125896, + 12.749746497055183, + 12.749776579965356, + 12.749806644867203, + 12.7498366917715, + 12.74986672068903, + 12.749896731630551, + 12.74992672460683, + 12.749956699628619, + 12.749986656706668, + 12.750016595851713, + 12.750046517074495, + 12.750076420385739, + 12.75010630579617, + 12.750136173316502, + 12.750166022957446, + 12.750195854729702, + 12.75022566864397, + 12.750255464710937, + 12.75028524294129, + 12.750315003345705, + 12.750344745934852, + 12.750374470719397, + 12.750404177709997, + 12.750433866917307, + 12.750463538351967, + 12.75049319202462, + 12.750522827945899, + 12.750552446126429, + 12.750582046576831, + 12.750611629307718, + 12.750641194329699, + 12.750670741653373, + 12.750700271289336, + 12.750729783248174, + 12.75075927754047, + 12.7507887541768, + 12.750818213167731, + 12.750847654523831, + 12.750877078255652, + 12.750906484373745, + 12.750935872888657, + 12.750965243810924, + 12.750994597151076, + 12.75102393291964, + 12.751053251127134, + 12.751082551784071, + 12.751111834900955, + 12.751141100488288, + 12.751170348556563, + 12.751199579116268, + 12.751228792177882, + 12.751257987751883, + 12.751287165848735, + 12.751316326478904, + 12.751345469652843, + 12.751374595381005, + 12.751403703673832, + 12.751432794541762, + 12.751461867995223, + 12.751490924044644, + 12.75151996270044, + 12.751548983973024, + 12.751577987872802, + 12.751606974410175, + 12.751635943595533, + 12.75166489543927, + 12.75169382995176, + 12.751722747143381, + 12.751751647024504, + 12.751780529605488, + 12.751809394896691, + 12.751838242908462, + 12.751867073651145, + 12.75189588713508, + 12.751924683370595, + 12.751953462368018, + 12.751982224137667, + 12.752010968689854, + 12.752039696034887, + 12.752068406183065, + 12.752097099144684, + 12.752125774930033, + 12.752154433549393, + 12.752183075013036, + 12.752211699331239, + 12.752240306514262, + 12.752268896572362, + 12.752297469515794, + 12.7523260253548, + 12.752354564099619, + 12.752383085760485, + 12.752411590347627, + 12.75244007787126, + 12.752468548341604, + 12.752497001768864, + 12.752525438163245, + 12.752553857534942, + 12.752582259894144, + 12.752610645251037, + 12.752639013615799, + 12.752667364998599, + 12.752695699409607, + 12.752724016858979, + 12.752752317356869, + 12.752780600913429, + 12.752808867538796, + 12.752837117243107, + 12.75286535003649, + 12.752893565929071, + 12.752921764930964, + 12.752949947052281, + 12.752978112303131, + 12.753006260693606, + 12.753034392233806, + 12.753062506933814, + 12.75309060480371, + 12.753118685853574, + 12.75314675009347, + 12.753174797533461, + 12.753202828183607, + 12.753230842053958, + 12.753258839154556, + 12.753286819495441, + 12.753314783086648, + 12.7533427299382, + 12.753370660060122, + 12.753398573462427, + 12.753426470155121, + 12.753454350148209, + 12.75348221345169, + 12.753510060075548, + 12.753537890029776, + 12.753565703324346, + 12.753593499969236, + 12.75362127997441, + 12.753649043349832, + 12.753676790105455, + 12.753704520251226, + 12.753732233797091, + 12.753759930752985, + 12.75378761112884, + 12.753815274934581, + 12.753842922180128, + 12.753870552875394, + 12.753898167030286, + 12.753925764654706, + 12.75395334575855, + 12.753980910351705, + 12.754008458444059, + 12.754035990045482, + 12.754063505165854, + 12.754091003815038, + 12.754118486002895, + 12.754145951739277, + 12.754173401034036, + 12.75420083389701, + 12.754228250338036, + 12.754255650366947, + 12.754283033993564, + 12.754310401227713, + 12.754337752079199, + 12.754365086557831, + 12.754392404673412, + 12.754419706435737, + 12.754446991854595, + 12.75447426093977, + 12.754501513701038, + 12.754528750148172, + 12.754555970290939, + 12.754583174139098, + 12.754610361702406, + 12.754637532990609, + 12.754664688013449, + 12.754691826780665, + 12.754718949301985, + 12.754746055587136, + 12.754773145645837, + 12.754800219487803, + 12.75482727712274, + 12.75485431856035, + 12.754881343810329, + 12.754908352882369, + 12.754935345786153, + 12.754962322531359, + 12.75498928312766, + 12.755016227584726, + 12.755043155912215, + 12.755070068119785, + 12.755096964217085, + 12.755123844213756, + 12.75515070811944, + 12.755177555943769, + 12.755204387696368, + 12.755231203386861, + 12.755258003024858, + 12.755284786619974, + 12.75531155418181, + 12.755338305719963, + 12.755365041244024, + 12.755391760763583, + 12.755418464288217, + 12.755445151827505, + 12.755471823391016, + 12.75549847898831, + 12.755525118628944, + 12.755551742322474, + 12.755578350078448, + 12.7556049419064, + 12.75563151781587, + 12.755658077816383, + 12.755684621917466, + 12.755711150128635, + 12.755737662459401, + 12.755764158919273, + 12.755790639517752, + 12.755817104264331, + 12.755843553168502, + 12.755869986239746, + 12.755896403487542, + 12.75592280492136, + 12.755949190550671, + 12.755975560384933, + 12.7560019144336, + 12.756028252706123, + 12.75605457521195, + 12.756080881960512, + 12.756107172961247, + 12.756133448223581, + 12.756159707756932, + 12.75618595157072, + 12.756212179674353, + 12.756238392077238, + 12.75626458878877, + 12.756290769818348, + 12.756316935175352, + 12.756343084869169, + 12.756369218909173, + 12.756395337304735, + 12.75642144006522, + 12.75644752719999, + 12.756473598718399, + 12.75649965462979, + 12.756525694943512, + 12.756551719668897, + 12.75657772881528, + 12.756603722391986, + 12.756629700408334, + 12.756655662873642, + 12.756681609797218, + 12.756707541188364, + 12.756733457056377, + 12.756759357410555, + 12.75678524226018, + 12.756811111614535, + 12.756836965482897, + 12.756862803874533, + 12.756888626798709, + 12.756914434264687, + 12.756940226281717, + 12.756966002859048, + 12.756991764005924, + 12.75701750973158, + 12.75704324004525, + 12.757068954956159, + 12.757094654473526, + 12.757120338606567, + 12.757146007364492, + 12.757171660756503, + 12.7571972987918, + 12.757222921479576, + 12.757248528829017, + 12.757274120849306, + 12.75729969754962, + 12.75732525893913, + 12.757350805026999, + 12.757376335822388, + 12.757401851334453, + 12.75742735157234, + 12.757452836545196, + 12.757478306262158, + 12.757503760732357, + 12.757529199964923, + 12.757554623968971, + 12.757580032753625, + 12.757605426327991, + 12.757630804701176, + 12.757656167882281, + 12.757681515880398, + 12.757706848704615, + 12.757732166364017, + 12.757757468867682, + 12.757782756224683, + 12.757808028444087, + 12.757833285534955, + 12.757858527506345, + 12.757883754367304, + 12.757908966126882, + 12.757934162794115, + 12.75795934437804, + 12.757984510887688, + 12.758009662332082, + 12.758034798720237, + 12.75805992006117, + 12.758085026363887, + 12.758110117637386, + 12.75813519389067, + 12.75816025513273, + 12.75818530137255, + 12.758210332619107, + 12.758235348881385, + 12.758260350168348, + 12.758285336488962, + 12.758310307852184, + 12.758335264266972, + 12.75836020574227, + 12.758385132287026, + 12.758410043910173, + 12.758434940620646, + 12.758459822427374, + 12.758484689339275, + 12.75850954136527, + 12.758534378514263, + 12.758559200795164, + 12.758584008216875, + 12.758608800788288, + 12.758633578518292, + 12.758658341415778, + 12.758683089489617, + 12.758707822748688, + 12.758732541201857, + 12.758757244857987, + 12.758781933725936, + 12.758806607814558, + 12.758831267132699, + 12.758855911689203, + 12.758880541492905, + 12.758905156552636, + 12.75892975687722, + 12.758954342475482, + 12.758978913356236, + 12.759003469528292, + 12.759028011000455, + 12.759052537781523, + 12.759077049880293, + 12.759101547305555, + 12.75912603006609, + 12.759150498170678, + 12.759174951628092, + 12.7591993904471, + 12.759223814636465, + 12.759248224204944, + 12.759272619161289, + 12.759296999514252, + 12.75932136527257, + 12.759345716444981, + 12.759370053040216, + 12.759394375067004, + 12.759418682534061, + 12.759442975450106, + 12.75946725382385, + 12.759491517663998, + 12.759515766979248, + 12.759540001778296, + 12.759564222069834, + 12.759588427862544, + 12.759612619165107, + 12.759636795986196, + 12.759660958334479, + 12.759685106218623, + 12.759709239647282, + 12.759733358629115, + 12.759757463172765, + 12.759781553286878, + 12.759805628980091, + 12.759829690261038, + 12.759853737138343, + 12.759877769620633, + 12.75990178771652, + 12.759925791434622, + 12.75994978078354, + 12.75997375577188, + 12.759997716408234, + 12.760021662701199, + 12.76004559465936, + 12.760069512291295, + 12.760093415605581, + 12.76011730461079, + 12.760141179315488, + 12.760165039728234, + 12.760188885857586, + 12.760212717712092, + 12.760236535300299, + 12.760260338630747, + 12.760284127711971, + 12.760307902552498, + 12.760331663160857, + 12.760355409545564, + 12.760379141715138, + 12.760402859678083, + 12.760426563442909, + 12.760450253018112, + 12.760473928412187, + 12.760497589633623, + 12.760521236690902, + 12.760544869592506, + 12.760568488346909, + 12.760592092962579, + 12.760615683447979, + 12.760639259811569, + 12.760662822061802, + 12.760686370207125, + 12.760709904255982, + 12.760733424216815, + 12.760756930098053, + 12.760780421908128, + 12.76080389965546, + 12.760827363348472, + 12.760850812995573, + 12.760874248605171, + 12.760897670185672, + 12.760921077745474, + 12.76094447129297, + 12.760967850836543, + 12.760991216384582, + 12.761014567945463, + 12.761037905527557, + 12.761061229139235, + 12.761084538788861, + 12.76110783448479, + 12.761131116235378, + 12.761154384048968, + 12.761177637933905, + 12.761200877898531, + 12.761224103951175, + 12.761247316100166, + 12.761270514353829, + 12.76129369872048, + 12.761316869208434, + 12.761340025825996, + 12.76136316858147, + 12.761386297483154, + 12.761409412539345, + 12.761432513758326, + 12.761455601148384, + 12.761478674717795, + 12.761501734474834, + 12.761524780427768, + 12.76154781258486, + 12.76157083095437, + 12.76159383554455, + 12.761616826363651, + 12.761639803419916, + 12.761662766721583, + 12.761685716276887, + 12.761708652094052, + 12.761731574181308, + 12.761754482546872, + 12.761777377198959, + 12.761800258145776, + 12.76182312539553, + 12.761845978956421, + 12.76186881883664, + 12.761891645044374, + 12.761914457587816, + 12.76193725647514, + 12.761960041714522, + 12.761982813314132, + 12.762005571282137, + 12.762028315626695, + 12.76205104635596, + 12.762073763478085, + 12.762096467001216, + 12.762119156933492, + 12.76214183328305, + 12.76216449605802, + 12.762187145266527, + 12.762209780916692, + 12.762232403016634, + 12.762255011574466, + 12.762277606598289, + 12.76230018809621, + 12.76232275607632, + 12.762345310546719, + 12.762367851515489, + 12.762390378990712, + 12.762412892980468, + 12.762435393492828, + 12.762457880535859, + 12.762480354117624, + 12.762502814246186, + 12.762525260929596, + 12.7625476941759, + 12.762570113993144, + 12.762592520389367, + 12.7626149133726, + 12.762637292950876, + 12.762659659132218, + 12.762682011924648, + 12.762704351336176, + 12.762726677374816, + 12.762748990048573, + 12.762771289365446, + 12.762793575333433, + 12.762815847960523, + 12.762838107254705, + 12.762860353223955, + 12.762882585876254, + 12.762904805219573, + 12.76292701126188, + 12.762949204011134, + 12.762971383475296, + 12.762993549662317, + 12.763015702580146, + 12.763037842236727, + 12.763059968639995, + 12.763082081797885, + 12.763104181718328, + 12.763126268409247, + 12.763148341878562, + 12.763170402134188, + 12.76319244918403, + 12.763214483036002, + 12.763236503697998, + 12.763258511177916, + 12.76328050548365, + 12.763302486623079, + 12.763324454604094, + 12.763346409434565, + 12.763368351122363, + 12.763390279675363, + 12.763412195101422, + 12.7634340974084, + 12.763455986604148, + 12.763477862696519, + 12.763499725693352, + 12.763521575602491, + 12.763543412431767, + 12.763565236189013, + 12.763587046882053, + 12.763608844518707, + 12.76363062910679, + 12.763652400654117, + 12.76367415916849, + 12.763695904657713, + 12.763717637129583, + 12.76373935659189, + 12.763761063052426, + 12.763782756518975, + 12.763804436999308, + 12.763826104501208, + 12.763847759032435, + 12.763869400600761, + 12.763891029213944, + 12.763912644879735, + 12.76393424760589, + 12.763955837400152, + 12.763977414270265, + 12.763998978223963, + 12.764020529268981, + 12.764042067413044, + 12.764063592663874, + 12.764085105029192, + 12.76410660451671, + 12.764128091134138, + 12.764149564889179, + 12.764171025789533, + 12.764192473842893, + 12.764213909056952, + 12.764235331439398, + 12.764256740997908, + 12.764278137740162, + 12.764299521673829, + 12.76432089280658, + 12.764342251146076, + 12.764363596699974, + 12.764384929475929, + 12.764406249481594, + 12.764427556724607, + 12.764448851212613, + 12.764470132953246, + 12.764491401954134, + 12.764512658222907, + 12.764533901767185, + 12.764555132594587, + 12.764576350712723, + 12.764597556129203, + 12.76461874885163, + 12.764639928887604, + 12.764661096244717, + 12.76468225093056, + 12.764703392952718, + 12.764724522318772, + 12.764745639036299, + 12.76476674311287, + 12.764787834556053, + 12.764808913373408, + 12.764829979572495, + 12.764851033160866, + 12.764872074146075, + 12.764893102535662, + 12.764914118337169, + 12.764935121558128, + 12.764956112206075, + 12.764977090288534, + 12.764998055813026, + 12.765019008787071, + 12.76503994921818, + 12.76506087711386, + 12.76508179248162, + 12.765102695328958, + 12.765123585663366, + 12.765144463492335, + 12.765165328823354, + 12.765186181663903, + 12.765207022021457, + 12.765227849903493, + 12.765248665317474, + 12.765269468270867, + 12.765290258771133, + 12.76531103682572, + 12.765331802442088, + 12.765352555627674, + 12.765373296389924, + 12.765394024736272, + 12.765414740674155, + 12.765435444210997, + 12.765456135354222, + 12.76547681411125, + 12.765497480489493, + 12.765518134496364, + 12.765538776139271, + 12.765559405425611, + 12.765580022362784, + 12.76560062695818, + 12.76562121921919, + 12.765641799153194, + 12.765662366767572, + 12.7656829220697, + 12.76570346506695, + 12.765723995766686, + 12.765744514176271, + 12.76576502030306, + 12.765785514154407, + 12.76580599573766, + 12.765826465060163, + 12.765846922129256, + 12.765867366952273, + 12.765887799536547, + 12.765908219889402 + ] + } + }, + "TestOperators": { + "test_mimo_add": { + "B": { + "data": [ + [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + 1.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 1.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 1.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0, + 1.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0, + 0.0, + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 1.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 1.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 1.0 + ] + ], + "dim": [ + 8, + 10 + ] + }, + "A": { + "data": [ + [ + -0.059880239520958084, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + -0.047619047619047616, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + -0.09174311926605504, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0, + -0.06944444444444445, + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0, + 0.0, + -0.059880239520958084, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + -0.047619047619047616, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + -0.09174311926605504, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + -0.06944444444444445 + ] + ], + "dim": [ + 8, + 8 + ] + }, + "C": { + "data": [ + [ + 0.7664670658682635, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + -0.8999999999999999, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.6055045871559632, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + -1.347222222222222, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.7664670658682635, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + -0.8999999999999999, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.6055045871559632, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + -1.347222222222222, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ] + ], + "dim": [ + 10, + 8 + ] + }, + "D": { + "data": [ + [ + 0.0, + 0.0, + 1.0, + 0.0, + 1.0, + 0.0, + 1.0, + 0.0, + 1.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0, + 1.0, + 0.0, + 1.0, + 0.0, + 1.0, + 0.0, + 1.0 + ], + [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ] + ], + "dim": [ + 10, + 10 + ] + }, + "tau": { + "data": [ + 1.0, + 3.0, + 7.0, + 3.0, + 1.0, + 3.0, + 7.0, + 3.0 + ], + "dim": [ + 8 + ] + } + }, + "test_mimo_mul_constant": { + "B": { + "data": [ + [ + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 1.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 1.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0, + 1.0 + ] + ], + "dim": [ + 4, + 6 + ] + }, + "A": { + "data": [ + [ + -0.059880239520958084, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + -0.047619047619047616, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + -0.09174311926605504, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0, + -0.06944444444444445 + ] + ], + "dim": [ + 4, + 4 + ] + }, + "C": { + "data": [ + [ + 0.7664670658682635, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + -0.8999999999999999, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.6055045871559632, + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + -1.347222222222222, + 0.0, + 0.0, + 0.0, + 0.0 + ] + ], + "dim": [ + 6, + 4 + ] + }, + "D": { + "data": [ + [ + 0.0, + 0.0, + 2.7, + 0.0, + 2.7, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0, + 2.7, + 0.0, + 2.7 + ], + [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ] + ], + "dim": [ + 6, + 6 + ] + }, + "tau": { + "data": [ + 1.0, + 3.0, + 7.0, + 3.0 + ], + "dim": [ + 4 + ] + } + }, + "test_siso_sub": { + "B": { + "data": [ + [ + 0.0, + -0.0 + ], + [ + 1.0, + 0.0 + ], + [ + 0.0, + 1.0 + ] + ], + "dim": [ + 2, + 3 + ] + }, + "A": { + "data": [ + [ + -1.0, + 0.0 + ], + [ + 0.0, + -2.5 + ] + ], + "dim": [ + 2, + 2 + ] + }, + "C": { + "data": [ + [ + 1.0, + 0.0, + 0.0 + ], + [ + 1.5, + 0.0, + 0.0 + ] + ], + "dim": [ + 3, + 2 + ] + }, + "D": { + "data": [ + [ + 0.0, + 1.0, + -1.0 + ], + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0 + ] + ], + "dim": [ + 3, + 3 + ] + }, + "tau": { + "data": [ + 1.5, + 0.5 + ], + "dim": [ + 2 + ] + } + }, + "test_siso_sub_constant": { + "B": { + "data": [ + [ + 0.0 + ], + [ + 1.0 + ] + ], + "dim": [ + 1, + 2 + ] + }, + "A": { + "data": [ + [ + -1.0 + ] + ], + "dim": [ + 1, + 1 + ] + }, + "C": { + "data": [ + [ + 1.0, + 0.0 + ] + ], + "dim": [ + 2, + 1 + ] + }, + "D": { + "data": [ + [ + -2.5, + 1.0 + ], + [ + 0.0, + 0.0 + ] + ], + "dim": [ + 2, + 2 + ] + }, + "tau": { + "data": [ + 1.5 + ], + "dim": [ + 1 + ] + } + }, + "test_siso_rmul_constant": { + "B": { + "data": [ + [ + 0.0 + ], + [ + 1.0 + ] + ], + "dim": [ + 1, + 2 + ] + }, + "A": { + "data": [ + [ + -1.0 + ] + ], + "dim": [ + 1, + 1 + ] + }, + "C": { + "data": [ + [ + 2.0, + 0.0 + ] + ], + "dim": [ + 2, + 1 + ] + }, + "D": { + "data": [ + [ + 0.0, + 1.0 + ], + [ + 0.0, + 0.0 + ] + ], + "dim": [ + 2, + 2 + ] + }, + "tau": { + "data": [ + 1.5 + ], + "dim": [ + 1 + ] + } + }, + "test_siso_mul_constant": { + "B": { + "data": [ + [ + 0.0 + ], + [ + 1.0 + ] + ], + "dim": [ + 1, + 2 + ] + }, + "A": { + "data": [ + [ + -1.0 + ] + ], + "dim": [ + 1, + 1 + ] + }, + "C": { + "data": [ + [ + 1.0, + 0.0 + ] + ], + "dim": [ + 2, + 1 + ] + }, + "D": { + "data": [ + [ + 0.0, + 2.0 + ], + [ + 0.0, + 0.0 + ] + ], + "dim": [ + 2, + 2 + ] + }, + "tau": { + "data": [ + 1.5 + ], + "dim": [ + 1 + ] + } + }, + "test_mimo_mul": { + "B": { + "data": [ + [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + 1.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 1.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 1.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0, + 1.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0, + 0.0, + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 1.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 1.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 1.0 + ] + ], + "dim": [ + 8, + 10 + ] + }, + "A": { + "data": [ + [ + -0.059880239520958084, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + -0.047619047619047616, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + -0.09174311926605504, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0, + -0.06944444444444445, + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0, + 0.0, + -0.059880239520958084, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + -0.047619047619047616, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + -0.09174311926605504, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + -0.06944444444444445 + ] + ], + "dim": [ + 8, + 8 + ] + }, + "C": { + "data": [ + [ + 0.7664670658682635, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + -0.8999999999999999, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.6055045871559632, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + -1.347222222222222, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.7664670658682635, + 0.0, + 0.7664670658682635, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + -0.8999999999999999, + 0.0, + -0.8999999999999999, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0, + 0.6055045871559632, + 0.0, + 0.6055045871559632, + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0, + -1.347222222222222, + 0.0, + -1.347222222222222, + 0.0, + 0.0, + 0.0, + 0.0 + ] + ], + "dim": [ + 10, + 8 + ] + }, + "D": { + "data": [ + [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 1.0, + 0.0, + 1.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 1.0, + 0.0, + 1.0 + ], + [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ] + ], + "dim": [ + 10, + 10 + ] + }, + "tau": { + "data": [ + 1.0, + 3.0, + 7.0, + 3.0, + 1.0, + 3.0, + 7.0, + 3.0 + ], + "dim": [ + 8 + ] + } + }, + "test_siso_add": { + "B": { + "data": [ + [ + 0.0, + 0.0 + ], + [ + 1.0, + 0.0 + ], + [ + 0.0, + 1.0 + ] + ], + "dim": [ + 2, + 3 + ] + }, + "A": { + "data": [ + [ + -1.0, + 0.0 + ], + [ + 0.0, + -2.5 + ] + ], + "dim": [ + 2, + 2 + ] + }, + "C": { + "data": [ + [ + 1.0, + 0.0, + 0.0 + ], + [ + 1.5, + 0.0, + 0.0 + ] + ], + "dim": [ + 3, + 2 + ] + }, + "D": { + "data": [ + [ + 0.0, + 1.0, + 1.0 + ], + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0 + ] + ], + "dim": [ + 3, + 3 + ] + }, + "tau": { + "data": [ + 1.5, + 0.5 + ], + "dim": [ + 2 + ] + } + }, + "test_siso_mul": { + "B": { + "data": [ + [ + 0.0, + 0.0 + ], + [ + 1.0, + 0.0 + ], + [ + 0.0, + 1.0 + ] + ], + "dim": [ + 2, + 3 + ] + }, + "A": { + "data": [ + [ + -1.0, + 0.0 + ], + [ + 0.0, + -2.5 + ] + ], + "dim": [ + 2, + 2 + ] + }, + "C": { + "data": [ + [ + 1.0, + 0.0, + 0.0 + ], + [ + 0.0, + 1.5, + 0.0 + ] + ], + "dim": [ + 3, + 2 + ] + }, + "D": { + "data": [ + [ + 0.0, + 0.0, + 1.0 + ], + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0 + ] + ], + "dim": [ + 3, + 3 + ] + }, + "tau": { + "data": [ + 1.5, + 0.5 + ], + "dim": [ + 2 + ] + } + }, + "test_siso_add_constant": { + "B": { + "data": [ + [ + 0.0 + ], + [ + 1.0 + ] + ], + "dim": [ + 1, + 2 + ] + }, + "A": { + "data": [ + [ + -1.0 + ] + ], + "dim": [ + 1, + 1 + ] + }, + "C": { + "data": [ + [ + 1.0, + 0.0 + ] + ], + "dim": [ + 2, + 1 + ] + }, + "D": { + "data": [ + [ + 2.5, + 1.0 + ], + [ + 0.0, + 0.0 + ] + ], + "dim": [ + 2, + 2 + ] + }, + "tau": { + "data": [ + 1.5 + ], + "dim": [ + 1 + ] + } + }, + "test_mimo_add_constant": { + "B": { + "data": [ + [ + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 1.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 1.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0, + 1.0 + ] + ], + "dim": [ + 4, + 6 + ] + }, + "A": { + "data": [ + [ + -0.059880239520958084, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + -0.047619047619047616, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + -0.09174311926605504, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0, + -0.06944444444444445 + ] + ], + "dim": [ + 4, + 4 + ] + }, + "C": { + "data": [ + [ + 0.7664670658682635, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + -0.8999999999999999, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.6055045871559632, + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + -1.347222222222222, + 0.0, + 0.0, + 0.0, + 0.0 + ] + ], + "dim": [ + 6, + 4 + ] + }, + "D": { + "data": [ + [ + 2.7, + 2.7, + 1.0, + 0.0, + 1.0, + 0.0 + ], + [ + 2.7, + 2.7, + 0.0, + 1.0, + 0.0, + 1.0 + ], + [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ] + ], + "dim": [ + 6, + 6 + ] + }, + "tau": { + "data": [ + 1.0, + 3.0, + 7.0, + 3.0 + ], + "dim": [ + 4 + ] + } + } + }, + "TestConstructors": { + "test_tf2dlti": { + "simple_siso_tf": { + "B": { + "data": [ + [ + 1 + ] + ], + "dim": [ + 1, + 1 + ] + }, + "A": { + "data": [ + [ + -1 + ] + ], + "dim": [ + 1, + 1 + ] + }, + "C": { + "data": [ + [ + 1 + ] + ], + "dim": [ + 1, + 1 + ] + }, + "D": { + "data": [ + [ + 0 + ] + ], + "dim": [ + 1, + 1 + ] + }, + "tau": { + "data": [], + "dim": [ + 0 + ] + } + }, + "tf_one": { + "B": { + "data": [ + [] + ], + "dim": [ + 0, + 1 + ] + }, + "A": { + "data": [], + "dim": [ + 0, + 0 + ] + }, + "C": { + "data": [], + "dim": [ + 1, + 0 + ] + }, + "D": { + "data": [ + [ + 1 + ] + ], + "dim": [ + 1, + 1 + ] + }, + "tau": { + "data": [], + "dim": [ + 0 + ] + } + } + }, + "test_build_wood_berry": { + "B": { + "data": [ + [ + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 1.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 1.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0, + 1.0 + ] + ], + "dim": [ + 4, + 6 + ] + }, + "A": { + "data": [ + [ + -0.059880239520958084, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + -0.047619047619047616, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + -0.09174311926605504, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0, + -0.06944444444444445 + ] + ], + "dim": [ + 4, + 4 + ] + }, + "C": { + "data": [ + [ + 0.7664670658682635, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + -0.8999999999999999, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.6055045871559632, + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + -1.347222222222222, + 0.0, + 0.0, + 0.0, + 0.0 + ] + ], + "dim": [ + 6, + 4 + ] + }, + "D": { + "data": [ + [ + 0.0, + 0.0, + 1.0, + 0.0, + 1.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0, + 1.0, + 0.0, + 1.0 + ], + [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ] + ], + "dim": [ + 6, + 6 + ] + }, + "tau": { + "data": [ + 1.0, + 3.0, + 7.0, + 3.0 + ], + "dim": [ + 4 + ] + } + }, + "test_exp_delay": { + "1": { + "B": { + "data": [ + [], + [] + ], + "dim": [ + 0, + 2 + ] + }, + "A": { + "data": [], + "dim": [ + 0, + 0 + ] + }, + "C": { + "data": [], + "dim": [ + 2, + 0 + ] + }, + "D": { + "data": [ + [ + 0.0, + 1.0 + ], + [ + 1.0, + 0.0 + ] + ], + "dim": [ + 2, + 2 + ] + }, + "tau": { + "data": [ + 1.0 + ], + "dim": [ + 1 + ] + } + }, + "1.5": { + "B": { + "data": [ + [], + [] + ], + "dim": [ + 0, + 2 + ] + }, + "A": { + "data": [], + "dim": [ + 0, + 0 + ] + }, + "C": { + "data": [], + "dim": [ + 2, + 0 + ] + }, + "D": { + "data": [ + [ + 0.0, + 1.0 + ], + [ + 1.0, + 0.0 + ] + ], + "dim": [ + 2, + 2 + ] + }, + "tau": { + "data": [ + 1.5 + ], + "dim": [ + 1 + ] + } + }, + "10": { + "B": { + "data": [ + [], + [] + ], + "dim": [ + 0, + 2 + ] + }, + "A": { + "data": [], + "dim": [ + 0, + 0 + ] + }, + "C": { + "data": [], + "dim": [ + 2, + 0 + ] + }, + "D": { + "data": [ + [ + 0.0, + 1.0 + ], + [ + 1.0, + 0.0 + ] + ], + "dim": [ + 2, + 2 + ] + }, + "tau": { + "data": [ + 10.0 + ], + "dim": [ + 1 + ] + } + } + }, + "test_siso_delay": { + "B": { + "data": [ + [ + 0.0 + ], + [ + 1.0 + ] + ], + "dim": [ + 1, + 2 + ] + }, + "A": { + "data": [ + [ + -1.0 + ] + ], + "dim": [ + 1, + 1 + ] + }, + "C": { + "data": [ + [ + 1.0, + 0.0 + ] + ], + "dim": [ + 2, + 1 + ] + }, + "D": { + "data": [ + [ + 0.0, + 1.0 + ], + [ + 0.0, + 0.0 + ] + ], + "dim": [ + 2, + 2 + ] + }, + "tau": { + "data": [ + 1.5 + ], + "dim": [ + 1 + ] + } + }, + "test_delay_function": { + "1": { + "B": { + "data": [ + [], + [] + ], + "dim": [ + 0, + 2 + ] + }, + "A": { + "data": [], + "dim": [ + 0, + 0 + ] + }, + "C": { + "data": [], + "dim": [ + 2, + 0 + ] + }, + "D": { + "data": [ + [ + 0.0, + 1.0 + ], + [ + 1.0, + 0.0 + ] + ], + "dim": [ + 2, + 2 + ] + }, + "tau": { + "data": [ + 1.0 + ], + "dim": [ + 1 + ] + } + }, + "1.5": { + "B": { + "data": [ + [], + [] + ], + "dim": [ + 0, + 2 + ] + }, + "A": { + "data": [], + "dim": [ + 0, + 0 + ] + }, + "C": { + "data": [], + "dim": [ + 2, + 0 + ] + }, + "D": { + "data": [ + [ + 0.0, + 1.0 + ], + [ + 1.0, + 0.0 + ] + ], + "dim": [ + 2, + 2 + ] + }, + "tau": { + "data": [ + 1.5 + ], + "dim": [ + 1 + ] + } + }, + "10": { + "B": { + "data": [ + [], + [] + ], + "dim": [ + 0, + 2 + ] + }, + "A": { + "data": [], + "dim": [ + 0, + 0 + ] + }, + "C": { + "data": [], + "dim": [ + 2, + 0 + ] + }, + "D": { + "data": [ + [ + 0.0, + 1.0 + ], + [ + 1.0, + 0.0 + ] + ], + "dim": [ + 2, + 2 + ] + }, + "tau": { + "data": [ + 10.0 + ], + "dim": [ + 1 + ] + } + } + } + }, + "TestDelayLtiMethods": { + "test_feedback": { + "delay_siso_tf": { + "B": { + "data": [ + [ + 0.0, + 0.0 + ], + [ + 1.0, + 0.0 + ], + [ + 0.0, + 1.0 + ] + ], + "dim": [ + 2, + 3 + ] + }, + "A": { + "data": [ + [ + -1.0, + 0.0 + ], + [ + 0.0, + -1.0 + ] + ], + "dim": [ + 2, + 2 + ] + }, + "C": { + "data": [ + [ + 1.0, + 0.0, + 1.0 + ], + [ + 0.0, + -1.0, + 0.0 + ] + ], + "dim": [ + 3, + 2 + ] + }, + "D": { + "data": [ + [ + 0.0, + 1.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0 + ] + ], + "dim": [ + 3, + 3 + ] + }, + "tau": { + "data": [ + 1.5, + 1.5 + ], + "dim": [ + 2 + ] + } + }, + "empty": { + "B": { + "data": [ + [ + 0.0 + ], + [ + 1.0 + ] + ], + "dim": [ + 1, + 2 + ] + }, + "A": { + "data": [ + [ + -1.0 + ] + ], + "dim": [ + 1, + 1 + ] + }, + "C": { + "data": [ + [ + 1.0, + -1.0 + ] + ], + "dim": [ + 2, + 1 + ] + }, + "D": { + "data": [ + [ + 0.0, + 1.0 + ], + [ + 0.0, + 0.0 + ] + ], + "dim": [ + 2, + 2 + ] + }, + "tau": { + "data": [ + 1.5 + ], + "dim": [ + 1 + ] + } + }, + "tf_one": { + "B": { + "data": [ + [ + 0.0 + ], + [ + 1.0 + ] + ], + "dim": [ + 1, + 2 + ] + }, + "A": { + "data": [ + [ + -1.0 + ] + ], + "dim": [ + 1, + 1 + ] + }, + "C": { + "data": [ + [ + 1.0, + -1.0 + ] + ], + "dim": [ + 2, + 1 + ] + }, + "D": { + "data": [ + [ + 0.0, + 1.0 + ], + [ + 0.0, + 0.0 + ] + ], + "dim": [ + 2, + 2 + ] + }, + "tau": { + "data": [ + 1.5 + ], + "dim": [ + 1 + ] + } + } + }, + "test_tito_freq_response": { + "r12": { + "real": [ + -17.979545539270337, + -17.80080817901333, + -17.589543229062834, + -17.340734466620393, + -17.048957615295066, + -16.708499550214572, + -16.313549184302005, + -15.85847403757536, + -15.338191130105187, + -14.748630247557251, + -14.08727096524883, + -13.353712684114113, + -12.550212327912854, + -11.682103225679397, + -10.757999400210041, + -9.789700467177209, + -8.791748364345382, + -7.780645194703653, + -6.77380915756393, + -5.788403697114647, + -4.840204761966178, + -3.9426621489255704, + -3.1062664297028433, + -2.3382679838953697, + -1.6427292312041606, + -1.0208420507548333, + -0.47141780912310505, + 0.008543516095805998, + 0.42328288926552626, + 0.7777646148050352, + 1.0772417273196127, + 1.3269146985415978, + 1.5316799912700436, + 1.6959570779212823, + 1.8235793487446414, + 1.9177344287645302, + 1.9809415354656503, + 2.0150567185922394, + 2.0213005671394275, + 2.000306979192757, + 1.9521957986742915, + 1.876676552975799, + 1.773195175210415, + 1.6411402870531193, + 1.4801297857673967, + 1.2904008490539232, + 1.0733246148715239, + 0.8320565474178327, + 0.5723083770628592, + 0.3031784490352936, + 0.03789368577303131, + -0.20581021359933915, + -0.4061097563642434, + -0.5389263752494392, + -0.5818615439788665, + -0.5207189981398878, + -0.35829769632735353, + -0.12340172886874234, + 0.12471652477431537, + 0.30405438482750385, + 0.337218273380767, + 0.19791349643592104, + -0.044297017426789584, + -0.22785970586314502, + -0.1987689909970892, + 0.023380727220823967, + 0.1891025115903759, + 0.07443232450773135, + -0.14010548935163072, + -0.06374423002896482, + 0.13027604265184586, + -0.02115043562649843, + -0.0799551758147477, + 0.10109741710217417, + -0.07902323999789639, + 0.05706777985256912, + -0.05172517399847418, + 0.06022493217155967, + -0.063113533631419, + 0.025510508873653734, + 0.042948208793136704, + -0.01586729960159359, + -0.039742826401768565, + -0.03933889763172318, + -0.03217778287538818, + -0.004144263303007504, + 0.030152922601707346, + -0.020569563815090952, + 0.02105854171182995, + -0.01985575909205607, + -0.018100973985880973, + -0.017304131428496097, + -0.010587177486381905, + 0.014138679495106879, + -0.00125338200821709, + -0.00701808799857972, + 0.008054751670420123, + -0.008347457720106043, + -0.0002937462920334337, + -0.008997705819017333 + ], + "imag": [ + 4.342619517073938, + 4.724806025295414, + 5.1320049788371085, + 5.563264561669552, + 6.0167350654387, + 6.489458865311868, + 6.977156784848183, + 7.47403252587984, + 7.9726262655251645, + 8.463757497363597, + 8.936602956557591, + 9.378954217211833, + 9.77768719682191, + 10.119449552768986, + 10.39153249827225, + 10.582847011872238, + 10.684882562976957, + 10.692504111813498, + 10.60445242341483, + 10.423456838554033, + 10.155939321390012, + 9.81136446358357, + 9.401350225600211, + 8.938683031177717, + 8.436374837908431, + 7.906866892809745, + 7.361439206777721, + 6.809840335440722, + 6.260118216093046, + 5.718613088203613, + 5.190066761550856, + 4.677805073756644, + 4.183958198230711, + 3.709693144937356, + 3.2554421118370738, + 2.8211181410407695, + 2.4063154322809384, + 2.0104957343351835, + 1.633164717731685, + 1.2740433679830578, + 0.9332393422808171, + 0.6114218194820902, + 0.31000030646136595, + 0.03130251550821797, + -0.22126213298716477, + -0.4430797725510945, + -0.6282950189646908, + -0.7699291694610503, + -0.8602530433171849, + -0.891543586581522, + -0.8573704891952135, + -0.7545384045814909, + -0.5857090205738471, + -0.36248350379729893, + -0.10827268519038567, + 0.14040513344632233, + 0.3363551529643246, + 0.43046783977153713, + 0.3885172347024771, + 0.21399293082315407, + -0.03259372445101514, + -0.2369105024545742, + -0.2777733827223607, + -0.11734338273808059, + 0.12259355794171213, + 0.21150216001254316, + 0.042815335500071765, + -0.16022073343676937, + -0.07926308000029737, + 0.13209726900244684, + 0.029813061197126362, + -0.11992090546801883, + 0.07692870294914742, + 0.0002460820330156346, + -0.047337232293552876, + 0.061547514039147905, + -0.056331748719427095, + 0.03505301648345487, + 0.006930040610082755, + -0.05192410443961511, + 0.030563211032726, + 0.04533346400354927, + 0.018323043007691008, + 0.006519737860931946, + 0.016872569062135863, + 0.032844945067921655, + 0.0008315092285931376, + -0.01822910195093327, + 0.013553239570347883, + 0.011243753574243587, + -0.010228726967818413, + -0.007710188908937525, + 0.013633054898708348, + -0.006889112211002009, + 0.014275623961371196, + 0.0110110669406258, + 0.008756181807002703, + -0.0069164327516228466, + -0.009873118718470351, + -0.0002031541953267352 + ] + }, + "r11": { + "real": [ + 12.43128816593835, + 12.358336017309398, + 12.271526787736379, + 12.168474760438365, + 12.046487013817968, + 11.902567694673207, + 11.733444253944395, + 11.535624284042607, + 11.305492545778371, + 11.03945759523041, + 10.734155293680907, + 10.386711487150423, + 9.995057527806516, + 9.558279961265896, + 9.076970731718406, + 8.553529508386978, + 7.9923598284576105, + 7.399901173356435, + 6.784454211939663, + 6.155786883835384, + 5.524549715424967, + 4.901569353408882, + 4.297117266395177, + 3.7202564479360047, + 3.1783506935058363, + 2.67678493929047, + 2.2189029587527584, + 1.8061323869336094, + 1.4382443975577974, + 1.1136883264828072, + 0.8299472071288009, + 0.5838732961066524, + 0.37197800734332626, + 0.19066450836993976, + 0.03640167197906004, + -0.0941552704761483, + -0.20408864510080785, + -0.29617709607461673, + -0.3728799669104546, + -0.43633935541928387, + -0.48839344774672594, + -0.5305962610425458, + -0.5642402662307592, + -0.5903794670954846, + -0.6098513835989521, + -0.6232970609174918, + -0.6311787493735481, + -0.6337953263702912, + -0.6312959113341831, + -0.6236925086108341, + -0.6108729494412299, + -0.592615938023275, + -0.5686106773811407, + -0.5384843820952704, + -0.5018419665619038, + -0.45832325041490285, + -0.4076839409591818, + -0.3499070106515678, + -0.2853501091502618, + -0.21493104034257932, + -0.14034512731244936, + -0.06429281708532214, + 0.009329833022601843, + 0.07536304799547297, + 0.1275707621265259, + 0.15926229807770054, + 0.16453854037701823, + 0.14026912274052408, + 0.08863643541612089, + 0.019534790750579276, + -0.04869104635601392, + -0.092394501101518, + -0.09155486655554447, + -0.0434769399816274, + 0.026101954727285753, + 0.06872592822762003, + 0.04687264185681756, + -0.02004148721876953, + -0.054042185885970415, + -0.00760858694647483, + 0.04391738001863822, + 0.004676403552874922, + -0.03689569846489549, + 0.018507911982609565, + 0.011027350572800474, + -0.025005640080616162, + 0.02568741788980782, + -0.022718741343590407, + 0.020936102056912178, + -0.019150495349870126, + 0.011353412196151337, + 0.0060283956243197875, + -0.014031994776318462, + -0.008359158992222976, + 0.0003647585514889078, + 0.002097797791679799, + -0.0024804124923506685, + -0.008986537350776683, + 7.933603945029554e-5, + 0.0038850821975851724 + ], + "imag": [ + -2.2040229903890376, + -2.4055411951240657, + -2.622616000974477, + -2.85556679125228, + -3.104423705408224, + -3.368829959399902, + -3.6479282700501523, + -3.940234259116282, + -4.243503180665107, + -4.554600971794905, + -4.869396254455911, + -5.182695808987789, + -5.488250819095851, + -5.778862753451961, + -6.046613544822822, + -6.283232484744117, + -6.480591217427942, + -6.631290529780363, + -6.729274093428178, + -6.770383614186616, + -6.752765832314651, + -6.6770594956126015, + -6.546327677096264, + -6.365748044418277, + -6.14211724946262, + -5.883253351144822, + -5.59738624874044, + -5.292612374589998, + -4.976463903965641, + -4.655613706471871, + -4.335712580263525, + -4.021338835031188, + -3.716032488507119, + -3.4223854912612466, + -3.1421629510837734, + -2.876435915373175, + -2.625712157695306, + -2.390056595787404, + -2.169197019619673, + -1.9626136880188965, + -1.769613219791124, + -1.589388292447561, + -1.421065199357977, + -1.2637414988835867, + -1.1165159645363287, + -0.9785129170246855, + -0.8489028540035857, + -0.7269211295418373, + -0.6118862883468039, + -0.5032195261724143, + -0.4004666052505409, + -0.30332335753676204, + -0.2116655854439276, + -0.1255836063196159, + -0.04542071727069005, + 0.028186750103759775, + 0.09427266059654694, + 0.1515163005144927, + 0.1982437502790757, + 0.23247672554088666, + 0.25205861922894385, + 0.25489537675413476, + 0.2393521051741667, + 0.2048370128253847, + 0.15256927604902282, + 0.08644864759570142, + 0.013804166087691448, + -0.05440439297514317, + -0.10457637205481073, + -0.12337208659177808, + -0.10287214507188865, + -0.04709161986773513, + 0.02337238224858419, + 0.07431334452580744, + 0.07397907485865568, + 0.019649866356320482, + -0.04522020590124208, + -0.05585753112977387, + 0.0018029905731695305, + 0.04867765452571895, + 0.00930283737574529, + -0.040635634813495615, + 0.005269385356166265, + 0.028472443316663185, + -0.028910630235054184, + 0.013022728954821837, + 0.0002739603091159187, + -0.005633390817610891, + 0.004066499552758985, + 0.003299818509018253, + -0.013587326528977543, + 0.01496477639672639, + 0.004381468082663159, + -0.010465641522816949, + -0.012198865550599444, + -0.010920454476846246, + -0.009823942617634675, + -0.0021152295724793505, + 0.008411590638668729, + -0.006607063762326209 + ] + }, + "r22": { + "real": [ + -18.915248629777597, + -18.818534114344438, + -18.703099779307514, + -18.56557164596919, + -18.402074259132487, + -18.208201859070403, + -17.979009410718177, + -17.709034484525514, + -17.39236372394293, + -17.022759941957233, + -16.593866906740217, + -16.09950736255759, + -15.534084233759618, + -14.893083706713258, + -14.173660998046055, + -13.375265641208296, + -12.500236173898468, + -11.554270529040117, + -10.546667266457904, + -9.490243399120851, + -8.400872516165366, + -7.296649472144543, + -6.196762029325518, + -5.120214750087282, + -4.084585207909633, + -3.1049852213637728, + -2.193352903396712, + -1.3581307879964102, + -0.6043130562713402, + 0.06621028692877973, + 0.6541129610793954, + 1.1619987569828307, + 1.5937614254004508, + 1.9539994708602446, + 2.247521127673765, + 2.4789532966265373, + 2.652453532218505, + 2.7715163096256807, + 2.83886263318731, + 2.856404112264212, + 2.825277610586564, + 2.745953463682208, + 2.6184282855501837, + 2.442521783680849, + 2.218304628237282, + 1.9466892163218188, + 1.6302134222701334, + 1.274032847897525, + 0.8870999077566379, + 0.4834346471115818, + 0.0832663877776031, + -0.2863656314421349, + -0.592215501389611, + -0.7975604149836688, + -0.8681036951379899, + -0.7817926580954525, + -0.5420923486781136, + -0.1916436398555898, + 0.18088124386770826, + 0.4521390152227134, + 0.5050788781522239, + 0.29886027938423637, + -0.06346372251295096, + -0.33995294864148573, + -0.298548670216058, + 0.03336255780611403, + 0.2827489113412085, + 0.1124396193941759, + -0.20925252751482462, + -0.09611902663619168, + 0.19486083771447865, + -0.03112943158137676, + -0.11999306230537929, + 0.1513302993825827, + -0.11813079757157524, + 0.08523688835308758, + -0.07727088490118084, + 0.0900620330224121, + -0.0944907652968597, + 0.03829583158913529, + 0.06423094002368505, + -0.02383091329396667, + -0.059520471883937213, + -0.05889619223177922, + -0.048189494636034655, + -0.006243062570851471, + 0.0451353319873735, + -0.030772628489114603, + 0.03151045910869639, + -0.02973163989482227, + -0.02708785188700699, + -0.02589746974521368, + -0.015856623313825167, + 0.021168304744243527, + -0.0018836301481688117, + -0.01051068708161923, + 0.012053482281977366, + -0.012492698320439748, + -0.00043617262123654433, + -0.01346871961822188 + ], + "imag": [ + 3.3057085066163894, + 3.6127066683888227, + 3.9448932964715984, + 4.303301496861762, + 4.688665057110565, + 5.101291532899661, + 5.540907154072057, + 6.0064728005435715, + 6.495973433590731, + 7.006188266663765, + 7.532455914625273, + 8.068457729697327, + 8.60605282858416, + 9.135208246763947, + 9.644074269124324, + 10.119254163772386, + 10.546304788874558, + 10.910476650458309, + 11.197659441319944, + 11.395448224345893, + 11.494198865734404, + 11.487915235628803, + 11.374818752128508, + 11.157497224503725, + 10.842605272426276, + 10.440172050557381, + 9.962639433492598, + 9.423787620051547, + 8.837700623968608, + 8.217889420325198, + 7.576640947440485, + 6.9246122263956575, + 6.270651185565627, + 5.621803549252459, + 4.983457316690631, + 4.359579024376977, + 3.7530046063985885, + 3.1657584070746108, + 2.5993841211339794, + 2.05527961245246, + 1.5350329158289715, + 1.040758815637163, + 0.5754337582168062, + 0.14322075082034663, + -0.2502358297888014, + -0.59758449923624, + -0.8896766723199003, + -1.1157164056493167, + -1.2637990501111944, + -1.3220333735152963, + -1.2804683113287971, + -1.1340154137464138, + -0.88640658320664, + -0.554860630026135, + -0.17444989092003704, + 0.19987912382739384, + 0.4968823626101177, + 0.6421273661314307, + 0.5832415712776812, + 0.3243473310657503, + -0.044634454292340926, + -0.3523544542322688, + -0.4161933510076372, + -0.17775066371050088, + 0.18180859432346044, + 0.3167542014546065, + 0.06541708656994971, + -0.23934531099900216, + -0.11946282946002104, + 0.19739087287740992, + 0.045258051819745994, + -0.17959973875774188, + 0.11483094765323414, + 0.0007393596109930061, + -0.07112285728405465, + 0.09230396672039123, + -0.08446643160708937, + 0.05262319880749238, + 0.010228129558354596, + -0.0776718367975225, + 0.04583242917601909, + 0.06783232011089697, + 0.02736477699097288, + 0.009702511942248014, + 0.025214275687164233, + 0.04916096313704033, + 0.0012777124020500739, + -0.02730787420615017, + 0.02030714844230243, + 0.016814464106062334, + -0.01532516934899406, + -0.011553378545014457, + 0.020400859776369875, + -0.01030432866217134, + 0.021368715140975353, + 0.016479283832946556, + 0.013110722732914588, + -0.010356584726514444, + -0.01477930811683578, + -0.0003070438427949238 + ] + }, + "r21": { + "real": [ + 6.456806400453239, + 6.427947543700158, + 6.393375187644098, + 6.3520033875310515, + 6.302559582114024, + 6.243561185721288, + 6.173293184574207, + 6.089788971763697, + 5.990817654307498, + 5.873882295096301, + 5.736234963092649, + 5.574915919520709, + 5.38682549445441, + 5.168837755957292, + 4.917964289115123, + 4.631573468179081, + 4.307664696686308, + 3.945187695254357, + 3.54438432387941, + 3.107116276438488, + 2.6371296124949817, + 2.140201237541224, + 1.6241180010507852, + 1.0984589157170876, + 0.5741836118341503, + 0.06306857633940752, + -0.4229340023244604, + -0.87232292725337, + -1.2745739500550426, + -1.6205056618900473, + -1.902466073019002, + -2.1143625297700295, + -2.2515916074280087, + -2.3109466650560067, + -2.2905887437386045, + -2.1901642152430094, + -2.011142769994167, + -1.7574319609882518, + -1.43629495018049, + -1.059546023807074, + -0.6449079422317704, + -0.217267078039979, + 0.19065856733144365, + 0.539010885682689, + 0.7839085163923682, + 0.8841851479059631, + 0.8125726987668168, + 0.570745116654013, + 0.20462486628832652, + -0.1883096737969229, + -0.47258838733403585, + -0.5215193912709415, + -0.2950753357426149, + 0.08807371097372083, + 0.36366476720648777, + 0.2936758995637603, + -0.065213907506587, + -0.29894808264680284, + -0.08464081617289526, + 0.23257255905525748, + 0.06546978557363038, + -0.20738983126284408, + 0.0693028678671942, + 0.09454966382289584, + -0.15230407730456613, + 0.1382481044318476, + -0.11348587852796453, + 0.10500719542317855, + -0.10706254145905894, + 0.08538746943129889, + 0.00013864408952014246, + -0.0813929789208096, + -0.016229963142076916, + 0.03421325121458908, + 0.0414996295586669, + 0.019260377444086856, + -0.03265666650530345, + -0.030373714038262407, + 0.04131819644827307, + -0.034035166413741165, + -0.0045548343631747635, + 0.022830165960750277, + 0.01568611666883509, + -0.021142120421470317, + 0.01388370864325637, + -0.021678743689387228, + -0.020252878853129867, + -0.002225073071142497, + -0.0039556697184909085, + 0.005523570519956949, + -0.013825527551196603, + 0.005590083344374726, + -0.006110247250606604, + 0.010580702734716462, + 0.0019535150617730115, + 0.008518115523435644, + -0.00789601807963814, + -0.00031678243823877306, + 0.00046223762258196515, + -0.0032984249938573704 + ], + "imag": [ + -1.1654146900771192, + -1.275504238261316, + -1.3952134196613368, + -1.525135808951057, + -1.6658201654080644, + -1.8177375696952263, + -1.9812386527804906, + -2.1564990566329816, + -2.3434513830761534, + -2.5417023327129895, + -2.750434686598742, + -2.9682954506970254, + -3.193274083068084, + -3.4225784106657136, + -3.652520595183895, + -3.878430964204859, + -4.09462279613827, + -4.294434683997667, + -4.470376744370216, + -4.614400329401237, + -4.718296377229871, + -4.77420537768458, + -4.775195494266592, + -4.715841328265156, + -4.592722629460435, + -4.404767107002289, + -4.153386506328756, + -3.8423952808674433, + -3.477745466690269, + -3.0671469410490886, + -2.619659661993002, + -2.1453409330780775, + -1.655009861622837, + -1.160160091069027, + -0.6730173636788513, + -0.2067042699366139, + 0.22455931737729504, + 0.6053278390248329, + 0.9190231112104983, + 1.148445888648517, + 1.2769494556619931, + 1.2905432853897645, + 1.1811539349425253, + 0.95108947819774, + 0.6183260582168065, + 0.22144631435988973, + -0.1781274695182204, + -0.5003173814745683, + -0.6614123257925069, + -0.6026930010439868, + -0.3289112898796782, + 0.060078050919870604, + 0.3767993822520846, + 0.4272844139867687, + 0.16087163389218007, + -0.21241277082103482, + -0.3238275987635541, + -0.0354905375588738, + 0.260968871928572, + 0.09174878459265134, + -0.21822340897568573, + -0.0096386578331521, + 0.17603512013437658, + -0.14414934018593165, + 0.038461529606795115, + 0.03709086724495221, + -0.06428091620840329, + 0.055653602887128506, + -0.016251565429515925, + -0.049446661519207374, + 0.08990705949458201, + -0.009289289705677327, + -0.07285886178018194, + -0.05878249121079965, + -0.04602582479906211, + -0.053081217945457324, + -0.03975912940617042, + 0.03571064977033943, + -0.010839061154228356, + 0.01888116666641433, + -0.035170300514430236, + -0.022868109139146643, + -0.024916560173710044, + -0.016514231492333612, + 0.02011863433012642, + 0.005109029532660125, + -0.0012914392803147683, + 0.018356801049832554, + -0.016377533873436455, + -0.014323584392833242, + -0.002125184924407931, + -0.011453942942727047, + -0.0098755776488937, + -0.00011712878439016248, + -0.00944135163937912, + -0.0021482303801674697, + 0.0013128032711124604, + 0.007286436828345648, + 0.006629306459054316, + 0.0050777891062560015 + ] + } + }, + "test_mimo_feedback": { + "B": { + "data": [ + [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + 1.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 1.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 1.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0, + 1.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0, + 0.0, + 1.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 1.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 1.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 1.0 + ] + ], + "dim": [ + 8, + 10 + ] + }, + "A": { + "data": [ + [ + -0.059880239520958084, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + -0.047619047619047616, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + -0.09174311926605504, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0, + -0.06944444444444445, + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0, + 0.0, + -0.059880239520958084, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + -0.047619047619047616, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + -0.09174311926605504, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + -0.06944444444444445 + ] + ], + "dim": [ + 8, + 8 + ] + }, + "C": { + "data": [ + [ + 0.7664670658682635, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.7664670658682635, + 0.0, + 0.7664670658682635, + 0.0 + ], + [ + -0.8999999999999999, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + -0.8999999999999999, + 0.0, + -0.8999999999999999, + 0.0 + ], + [ + 0.0, + 0.6055045871559632, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.6055045871559632, + 0.0, + 0.6055045871559632 + ], + [ + 0.0, + -1.347222222222222, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + -1.347222222222222, + 0.0, + -1.347222222222222 + ], + [ + 0.0, + 0.0, + -0.7664670658682635, + 0.0, + -0.7664670658682635, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.8999999999999999, + 0.0, + 0.8999999999999999, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0, + -0.6055045871559632, + 0.0, + -0.6055045871559632, + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0, + 1.347222222222222, + 0.0, + 1.347222222222222, + 0.0, + 0.0, + 0.0, + 0.0 + ] + ], + "dim": [ + 10, + 8 + ] + }, + "D": { + "data": [ + [ + 0.0, + 0.0, + 1.0, + 0.0, + 1.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0, + 1.0, + 0.0, + 1.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ] + ], + "dim": [ + 10, + 10 + ] + }, + "tau": { + "data": [ + 1.0, + 3.0, + 7.0, + 3.0, + 1.0, + 3.0, + 7.0, + 3.0 + ], + "dim": [ + 8 + ] + } + }, + "test_siso_freq_resp": { + "real": [ + 0.9996375439798979, + 0.9995634312726295, + 0.9994741671370168, + 0.9993666552530321, + 0.999237167083981, + 0.99908121303276, + 0.9988933874503182, + 0.9986671822395532, + 0.9983947627635261, + 0.9980666985392813, + 0.9976716397463046, + 0.9971959288676081, + 0.9966231347756939, + 0.9959334942394207, + 0.9951032431288468, + 0.9941038165099754, + 0.9929008933437563, + 0.9914532576576418, + 0.9897114439166157, + 0.9876161300348277, + 0.9850962373081802, + 0.9820666929589262, + 0.9784258086709292, + 0.9740522285356137, + 0.9688014038241506, + 0.9625015622730949, + 0.9549491594125434, + 0.9459038334419049, + 0.9350829394272876, + 0.9221558212063877, + 0.9067381004379472, + 0.8883864336722017, + 0.8665944230560981, + 0.8407906760670428, + 0.8103404009543473, + 0.7745523915091108, + 0.7326937684053461, + 0.6840153376849258, + 0.6277907774720298, + 0.5633728780129739, + 0.4902694689018042, + 0.40824015081694337, + 0.3174122070875165, + 0.21840995593936785, + 0.11248651027122411, + 0.001641155706260852, + -0.11129935164175528, + -0.22265962734415376, + -0.32797697505164664, + -0.4221611357112527, + -0.4997585058263344, + -0.55531619758517, + -0.5838334214868793, + -0.5812849089473644, + -0.5452026982257325, + -0.47530358539375506, + -0.37414093002783655, + -0.24772998226030973, + -0.10603460602502184, + 0.03689544850765837, + 0.163475443354048, + 0.25428260135266945, + 0.29137658766182767, + 0.2634742255584535, + 0.17246061536666463, + 0.03927095986185361, + -0.09481872294498477, + -0.17692182848634166, + -0.16507730459105968, + -0.060032676072388685, + 0.07413268414875133, + 0.13395334052399674, + 0.0610174960974431, + -0.06975679846479863, + -0.09313772876012177, + 0.025934061526366826, + 0.08116736041226703, + -0.033328025868165176, + -0.050456466352268005, + 0.06145146603825666, + -0.023790764711986843, + -0.01164993683455088, + 0.028094619517517096, + -0.030057717552314775, + 0.02221753549779696, + -0.003620320024132159, + -0.022559742304732594, + 0.028197022583963373, + 0.01265424121150209, + -0.013302129669150599, + -0.02020475258354317, + -0.017882613190878055, + -0.006554881991346374, + 0.014655691602204724, + 0.000944019041138025, + -0.004257696080973819, + -0.004643396819873846, + 0.010959344674057785, + 0.010974231856788667, + 0.007217967580181465 + ], + "imag": [ + -0.024995812946127068, + -0.027431934219113052, + -0.030105271862338058, + -0.03303885684441913, + -0.036257934309874534, + -0.03979016938930197, + -0.043665869841421755, + -0.04791822613112859, + -0.0525835692753272, + -0.05770164638426992, + -0.06331591324456566, + -0.06947384247065888, + -0.07622724461511865, + -0.08363259807084238, + -0.09175138148508818, + -0.10065039956078467, + -0.11040208931859637, + -0.12108478884384631, + -0.13278294387710093, + -0.14558721886237722, + -0.15959446766698268, + -0.1749075044296957, + -0.1916345960427577, + -0.2098885736642593, + -0.22978543033607415, + -0.25144223418842526, + -0.27497414094902234, + -0.300490235110327, + -0.3280878666756117, + -0.3578450821924996, + -0.3898106800313958, + -0.4239913604759359, + -0.4603354080288266, + -0.4987123630856, + -0.5388882523855643, + -0.5804962073952337, + -0.6230027775548482, + -0.6656710221748017, + -0.7075226177394369, + -0.7473027903910795, + -0.7834538397594977, + -0.8141051786018723, + -0.8370897798193744, + -0.8499980576452956, + -0.8502796738335039, + -0.8354007066554325, + -0.8030575539931093, + -0.751440156357626, + -0.6795270170911017, + -0.5873854352991381, + -0.47644491995156885, + -0.3497113918344513, + -0.21189364718913414, + -0.06941810951605784, + 0.06969206393078606, + 0.19610650928623855, + 0.299698110811019, + 0.37035124841572953, + 0.39916086952467084, + 0.3800982171863752, + 0.3121302920468994, + 0.20157093976443763, + 0.06406865232764666, + -0.07489134372736657, + -0.18262004861081965, + -0.22672820233378352, + -0.18805963874096887, + -0.07618454336708898, + 0.061240135678342605, + 0.14923045517330516, + 0.12680648132772035, + 0.005894971987373343, + -0.1060585765190556, + -0.08715109760964115, + 0.0411449750223617, + 0.08916232616058803, + -0.024101915560650607, + -0.06963017462205673, + 0.049056299066853694, + 0.01840452262643518, + -0.05341105609671893, + 0.052002178488688384, + -0.039618229956131325, + 0.032491972651787646, + -0.03366719746221515, + 0.036580224069183376, + -0.02476129275952057, + -0.011690266278196328, + 0.02476963547555173, + 0.02157423746489494, + 0.01118719108988631, + 0.011094055800076006, + 0.018020439623851116, + 0.009513307662500076, + -0.015892797519920294, + 0.013867881656646677, + -0.012375830184461655, + -0.004995457554294962, + -4.563593820485174e-5, + -0.006920328388981937 + ] + } + } +} diff --git a/control/julia/test.ipynb b/control/julia/test.ipynb new file mode 100644 index 000000000..90935c7a2 --- /dev/null +++ b/control/julia/test.ipynb @@ -0,0 +1,119 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "2×1001×2 Array{Float64, 3}:\n", + "[:, :, 1] =\n", + " 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 … 12.7655 12.7657 12.7659\n", + " 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 6.59868 6.59869 6.5987\n", + "\n", + "[:, :, 2] =\n", + " 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 … -18.7118 -18.7127 -18.7136\n", + " 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -19.3766 -19.3768 -19.377" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "using ControlSystems\n", + "using Plots\n", + "\n", + "s = tf(\"s\")\n", + "wood_berry = [12.8/(16.7s+1)*exp(-s) -18.9/(21s+1)*exp(-3s); 6.6/(10.9s+1)*exp(-7s) -19.4/(14.4s+1)*exp(-3s)]\n", + "res = step(wood_berry, 0:0.1:100).y" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "1001-element Vector{Float64}:\n", + " 0.0\n", + " 0.0\n", + " 0.0\n", + " 0.0\n", + " 0.0\n", + " 0.0\n", + " 0.0\n", + " 0.0\n", + " 0.0\n", + " 0.0\n", + " ⋮\n", + " 12.764235337941075\n", + " 12.764448857675479\n", + " 12.764661102668994\n", + " 12.764872080531996\n", + " 12.765081798829419\n", + " 12.765290265081033\n", + " 12.765497486761722\n", + " 12.76570347130173\n", + " 12.765908226086957" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "res[1, :, 1]" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "11-element Vector{Int64}:\n", + " 0\n", + " 1\n", + " 2\n", + " 3\n", + " 4\n", + " 5\n", + " 6\n", + " 7\n", + " 8\n", + " 9\n", + " 10" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "collect(0:1:10)" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Julia 1.11.3", + "language": "julia", + "name": "julia-1.11" + }, + "language_info": { + "file_extension": ".jl", + "mimetype": "application/julia", + "name": "julia", + "version": "1.11.3" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/control/julia_utils.py b/control/julia/utils.py similarity index 53% rename from control/julia_utils.py rename to control/julia/utils.py index 1b02e3d1f..d23bbe164 100644 --- a/control/julia_utils.py +++ b/control/julia/utils.py @@ -4,6 +4,23 @@ from pathlib import Path def _recursive_reshape(node): + """Reshape arrays in a nested dictionary or list. + + This function recursively traverses a nested dictionary or list, + looking for dictionaries with "data" and "dim" keys. If found, it + reshapes the "data" array according to the "dim" tuple. + + Parameters + ---------- + node : dict or list + The nested dictionary or list to process. + + Returns + ------- + dict or list + The processed dictionary or list with reshaped arrays. + """ + if isinstance(node, dict) and ("data" in node) and ("dim" in node): data = node["data"] dim = tuple(node["dim"]) @@ -34,7 +51,24 @@ def _recursive_reshape(node): return node -def load_julia_results(json_path): +def load_julia_results(json_path: str): + """Load Julia results from a JSON file and reshape arrays. + + This function loads data from a JSON file, which is assumed to + contain results from a Julia simulation. It then reshapes arrays + within the loaded data using the _recursive_reshape function. + + Parameters + ---------- + json_path : str + The path to the JSON file containing the Julia results. + + Returns + ------- + dict + The reshaped Julia results. + """ + with open(json_path, "r") as f: json_content = json.load(f) @@ -43,6 +77,15 @@ def load_julia_results(json_path): def assert_delayLTI(dlti, julia_results): + """Assert that a DelayLTI object matches the Julia results. + + Parameters + ---------- + dlti : DelayLTI + The DelayLTI object to compare. + julia_results : dict + The Julia results to compare against. + """ assert np.allclose(dlti.P.A, julia_results["A"]) assert np.allclose(dlti.P.B, julia_results["B"]) assert np.allclose(dlti.P.C, julia_results["C"]) @@ -52,4 +95,4 @@ def assert_delayLTI(dlti, julia_results): # Load julia results file script_dir = Path(__file__).parent -julia_json = load_julia_results(f"{script_dir}/tests/julia_results.json") \ No newline at end of file +julia_json = load_julia_results(f"{script_dir}/julia_results.json") \ No newline at end of file diff --git a/control/tests/dde_test.py b/control/tests/dde_test.py new file mode 100644 index 000000000..de8cc416c --- /dev/null +++ b/control/tests/dde_test.py @@ -0,0 +1,9 @@ +import numpy as np +import pytest +import matplotlib.pyplot as plt + +from control.dde import * +from control.xferfcn import tf + + +s = tf('s') diff --git a/control/tests/delay_lti_test.py b/control/tests/delay_lti_test.py index d4be7409a..f0628b9e9 100644 --- a/control/tests/delay_lti_test.py +++ b/control/tests/delay_lti_test.py @@ -1,6 +1,5 @@ import numpy as np import pytest -import json import matplotlib.pyplot as plt from dataclasses import dataclass @@ -9,7 +8,7 @@ ) from control.statesp import ss from control.xferfcn import tf -from control.julia_utils import julia_json, assert_delayLTI +from control.julia.utils import julia_json, assert_delayLTI s = tf('s') @@ -87,8 +86,6 @@ def test_siso_add_constant(self, delay_siso_tf): def test_siso_sub(self, delay_siso_tf, delay_siso_tf2): G = delay_siso_tf - delay_siso_tf2 - print(G.P.C) - print(julia_json["TestOperators"]["test_siso_sub"]["C"]) assert_delayLTI(G, julia_json["TestOperators"]["test_siso_sub"]) def test_siso_sub_constant(self, delay_siso_tf): @@ -105,7 +102,7 @@ def test_siso_mul_constant(self, delay_siso_tf): def test_siso_rmul_constant(self, delay_siso_tf): G = 2. * delay_siso_tf - assert_delayLTI(G, julia_json["TestOperators"]["test_siso_mul_constant"]) + assert_delayLTI(G, julia_json["TestOperators"]["test_siso_rmul_constant"]) def test_mimo_add(self, wood_berry): G = wood_berry + wood_berry @@ -198,17 +195,60 @@ def test_siso_delayed_step_response(self, delay_siso_tf, simple_siso_tf): if t >= 1.5: hand_delayed_step[i] = step.y[0][0][count] count += 1 + plt.figure() + plt.plot(delay_step.y[0][0] - hand_delayed_step) + plt.legend() + plt.show() assert np.allclose(delay_step.y[0][0], hand_delayed_step) + def test_siso_delayed_step_response_mos(self, delay_siso_tf, simple_siso_tf): + from control.timeresp import step_response + timepts = np.linspace(0, 10, 1001) + step = step_response(simple_siso_tf, timepts=timepts) + delay_step = step_response(delay_siso_tf, timepts=timepts, use_mos=True) + # Construct a manually delayed step response by shifting the step response + hand_delayed_step = np.zeros_like(step.y[0][0]) + count = 0 + for i, t in enumerate(step.t): + if t >= 1.5: + hand_delayed_step[i] = step.y[0][0][count] + count += 1 + + plt.figure() + plt.plot(delay_step.y[0][0] - hand_delayed_step) + plt.legend() + plt.show() + assert np.allclose(delay_step.y[0][0], hand_delayed_step, atol=1e-5) + + # wood berry step response compared to julia + def test_mimo_step_response(self, wood_berry, plot=False): + from control.timeresp import step_response + import matplotlib.pyplot as plt + timepts = np.linspace(0, 100, 10001) + step = step_response(wood_berry, timepts=timepts, use_mos=True) + #step_lsoda = step_response(wood_berry, timepts=timepts) + + if plot: + plt.figure() + plt.plot(step.y[0][0] - julia_json["TestTimeResp"]["test_mimo_step_response"]["y11"]) + plt.plot(step.y[1][0] - julia_json["TestTimeResp"]["test_mimo_step_response"]["y21"]) + plt.plot(step.y[0][1] - julia_json["TestTimeResp"]["test_mimo_step_response"]["y12"]) + plt.plot(step.y[1][1] - julia_json["TestTimeResp"]["test_mimo_step_response"]["y22"]) + plt.show() + + assert np.allclose(step.y[0][0], julia_json["TestTimeResp"]["test_mimo_step_response"]["y11"], atol=1e-5) + assert np.allclose(step.y[0][1], julia_json["TestTimeResp"]["test_mimo_step_response"]["y12"], atol=1e-5) + assert np.allclose(step.y[1][1], julia_json["TestTimeResp"]["test_mimo_step_response"]["y22"], atol=1e-5) + assert np.allclose(step.y[1][0], julia_json["TestTimeResp"]["test_mimo_step_response"]["y21"], atol=1e-5) + + def test_forced_response(self, delay_siso_tf, simple_siso_tf, plot=False): from control.timeresp import forced_response - # the test does not pass for 1001 in linspace, - # since the implemented solver is not very good. - # Fewer step size is needed - timepts = np.linspace(0, 10, 10001) + + timepts = np.linspace(0, 10, 1001) inputs = np.sin(timepts) resp = forced_response(simple_siso_tf, timepts=timepts, inputs=inputs) - delay_resp = forced_response(delay_siso_tf, timepts=timepts, inputs=inputs) + delay_resp = forced_response(delay_siso_tf, timepts=timepts, inputs=inputs, use_mos=True) hand_delayed_resp = np.zeros_like(resp.y[0]) count = 0 for i, t in enumerate(resp.t): @@ -216,20 +256,20 @@ def test_forced_response(self, delay_siso_tf, simple_siso_tf, plot=False): hand_delayed_resp[i] = resp.y[0][count] count += 1 - timepts_few = np.linspace(0, 10, 1001) - inputs_few = np.sin(timepts_few) - delay_resp_few = forced_response(delay_siso_tf, timepts=timepts_few, inputs=inputs_few) - - # Optionally, inspect the plot: + plot=True if plot: plt.figure() plt.plot(resp.t, inputs, label="input") plt.plot(resp.t, resp.y[0], label="response") plt.plot(resp.t, delay_resp.y[0], label="delay LTI smaller step size") - plt.plot(delay_resp_few.t, delay_resp_few.y[0], label="delay LTI bigger step size") + #plt.plot(delay_resp_few.t, delay_resp_few.y[0], label="delay LTI bigger step size") plt.plot(resp.t, hand_delayed_resp, label="hand delay") plt.legend() plt.show() - assert np.allclose(delay_resp.y[0], hand_delayed_resp) \ No newline at end of file + plt.figure() + plt.plot(resp.t, delay_resp.y[0] - hand_delayed_resp) + plt.show() + + assert np.allclose(delay_resp.y[0], hand_delayed_resp, atol=1e-5) \ No newline at end of file diff --git a/control/tests/julia_results.json b/control/tests/julia_results.json deleted file mode 100644 index d6fec1bb4..000000000 --- a/control/tests/julia_results.json +++ /dev/null @@ -1,4125 +0,0 @@ -{ - "TestOperators": { - "test_mimo_add": { - "B": { - "data": [ - [ - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0 - ], - [ - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0 - ], - [ - 1.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0 - ], - [ - 0.0, - 1.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0 - ], - [ - 0.0, - 0.0, - 1.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0 - ], - [ - 0.0, - 0.0, - 0.0, - 1.0, - 0.0, - 0.0, - 0.0, - 0.0 - ], - [ - 0.0, - 0.0, - 0.0, - 0.0, - 1.0, - 0.0, - 0.0, - 0.0 - ], - [ - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 1.0, - 0.0, - 0.0 - ], - [ - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 1.0, - 0.0 - ], - [ - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 1.0 - ] - ], - "dim": [ - 8, - 10 - ] - }, - "A": { - "data": [ - [ - -0.059880239520958084, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0 - ], - [ - 0.0, - -0.047619047619047616, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0 - ], - [ - 0.0, - 0.0, - -0.09174311926605504, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0 - ], - [ - 0.0, - 0.0, - 0.0, - -0.06944444444444445, - 0.0, - 0.0, - 0.0, - 0.0 - ], - [ - 0.0, - 0.0, - 0.0, - 0.0, - -0.059880239520958084, - 0.0, - 0.0, - 0.0 - ], - [ - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - -0.047619047619047616, - 0.0, - 0.0 - ], - [ - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - -0.09174311926605504, - 0.0 - ], - [ - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - -0.06944444444444445 - ] - ], - "dim": [ - 8, - 8 - ] - }, - "C": { - "data": [ - [ - 0.7664670658682635, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0 - ], - [ - -0.8999999999999999, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0 - ], - [ - 0.0, - 0.6055045871559632, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0 - ], - [ - 0.0, - -1.347222222222222, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0 - ], - [ - 0.7664670658682635, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0 - ], - [ - -0.8999999999999999, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0 - ], - [ - 0.0, - 0.6055045871559632, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0 - ], - [ - 0.0, - -1.347222222222222, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0 - ] - ], - "dim": [ - 10, - 8 - ] - }, - "D": { - "data": [ - [ - 0.0, - 0.0, - 1.0, - 0.0, - 1.0, - 0.0, - 1.0, - 0.0, - 1.0, - 0.0 - ], - [ - 0.0, - 0.0, - 0.0, - 1.0, - 0.0, - 1.0, - 0.0, - 1.0, - 0.0, - 1.0 - ], - [ - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0 - ], - [ - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0 - ], - [ - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0 - ], - [ - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0 - ], - [ - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0 - ], - [ - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0 - ], - [ - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0 - ], - [ - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0 - ] - ], - "dim": [ - 10, - 10 - ] - }, - "tau": { - "data": [ - 1.0, - 3.0, - 7.0, - 3.0, - 1.0, - 3.0, - 7.0, - 3.0 - ], - "dim": [ - 8 - ] - } - }, - "test_mimo_mul_constant": { - "B": { - "data": [ - [ - 0.0, - 0.0, - 0.0, - 0.0 - ], - [ - 0.0, - 0.0, - 0.0, - 0.0 - ], - [ - 1.0, - 0.0, - 0.0, - 0.0 - ], - [ - 0.0, - 1.0, - 0.0, - 0.0 - ], - [ - 0.0, - 0.0, - 1.0, - 0.0 - ], - [ - 0.0, - 0.0, - 0.0, - 1.0 - ] - ], - "dim": [ - 4, - 6 - ] - }, - "A": { - "data": [ - [ - -0.059880239520958084, - 0.0, - 0.0, - 0.0 - ], - [ - 0.0, - -0.047619047619047616, - 0.0, - 0.0 - ], - [ - 0.0, - 0.0, - -0.09174311926605504, - 0.0 - ], - [ - 0.0, - 0.0, - 0.0, - -0.06944444444444445 - ] - ], - "dim": [ - 4, - 4 - ] - }, - "C": { - "data": [ - [ - 0.7664670658682635, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0 - ], - [ - -0.8999999999999999, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0 - ], - [ - 0.0, - 0.6055045871559632, - 0.0, - 0.0, - 0.0, - 0.0 - ], - [ - 0.0, - -1.347222222222222, - 0.0, - 0.0, - 0.0, - 0.0 - ] - ], - "dim": [ - 6, - 4 - ] - }, - "D": { - "data": [ - [ - 0.0, - 0.0, - 2.7, - 0.0, - 2.7, - 0.0 - ], - [ - 0.0, - 0.0, - 0.0, - 2.7, - 0.0, - 2.7 - ], - [ - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0 - ], - [ - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0 - ], - [ - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0 - ], - [ - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0 - ] - ], - "dim": [ - 6, - 6 - ] - }, - "tau": { - "data": [ - 1.0, - 3.0, - 7.0, - 3.0 - ], - "dim": [ - 4 - ] - } - }, - "test_siso_sub": { - "B": { - "data": [ - [ - 0.0, - -0.0 - ], - [ - 1.0, - 0.0 - ], - [ - 0.0, - 1.0 - ] - ], - "dim": [ - 2, - 3 - ] - }, - "A": { - "data": [ - [ - -1.0, - 0.0 - ], - [ - 0.0, - -2.5 - ] - ], - "dim": [ - 2, - 2 - ] - }, - "C": { - "data": [ - [ - 1.0, - 0.0, - 0.0 - ], - [ - 1.5, - 0.0, - 0.0 - ] - ], - "dim": [ - 3, - 2 - ] - }, - "D": { - "data": [ - [ - 0.0, - 1.0, - -1.0 - ], - [ - 0.0, - 0.0, - 0.0 - ], - [ - 0.0, - 0.0, - 0.0 - ] - ], - "dim": [ - 3, - 3 - ] - }, - "tau": { - "data": [ - 1.5, - 0.5 - ], - "dim": [ - 2 - ] - } - }, - "test_siso_sub_constant": { - "B": { - "data": [ - [ - 0.0 - ], - [ - 1.0 - ] - ], - "dim": [ - 1, - 2 - ] - }, - "A": { - "data": [ - [ - -1.0 - ] - ], - "dim": [ - 1, - 1 - ] - }, - "C": { - "data": [ - [ - 1.0, - 0.0 - ] - ], - "dim": [ - 2, - 1 - ] - }, - "D": { - "data": [ - [ - -2.5, - 1.0 - ], - [ - 0.0, - 0.0 - ] - ], - "dim": [ - 2, - 2 - ] - }, - "tau": { - "data": [ - 1.5 - ], - "dim": [ - 1 - ] - } - }, - "test_siso_rmul_constant": { - "B": { - "data": [ - [ - 0.0 - ], - [ - 1.0 - ] - ], - "dim": [ - 1, - 2 - ] - }, - "A": { - "data": [ - [ - -1.0 - ] - ], - "dim": [ - 1, - 1 - ] - }, - "C": { - "data": [ - [ - 2.0, - 0.0 - ] - ], - "dim": [ - 2, - 1 - ] - }, - "D": { - "data": [ - [ - 0.0, - 1.0 - ], - [ - 0.0, - 0.0 - ] - ], - "dim": [ - 2, - 2 - ] - }, - "tau": { - "data": [ - 1.5 - ], - "dim": [ - 1 - ] - } - }, - "test_siso_mul_constant": { - "B": { - "data": [ - [ - 0.0 - ], - [ - 1.0 - ] - ], - "dim": [ - 1, - 2 - ] - }, - "A": { - "data": [ - [ - -1.0 - ] - ], - "dim": [ - 1, - 1 - ] - }, - "C": { - "data": [ - [ - 1.0, - 0.0 - ] - ], - "dim": [ - 2, - 1 - ] - }, - "D": { - "data": [ - [ - 0.0, - 2.0 - ], - [ - 0.0, - 0.0 - ] - ], - "dim": [ - 2, - 2 - ] - }, - "tau": { - "data": [ - 1.5 - ], - "dim": [ - 1 - ] - } - }, - "test_mimo_mul": { - "B": { - "data": [ - [ - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0 - ], - [ - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0 - ], - [ - 1.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0 - ], - [ - 0.0, - 1.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0 - ], - [ - 0.0, - 0.0, - 1.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0 - ], - [ - 0.0, - 0.0, - 0.0, - 1.0, - 0.0, - 0.0, - 0.0, - 0.0 - ], - [ - 0.0, - 0.0, - 0.0, - 0.0, - 1.0, - 0.0, - 0.0, - 0.0 - ], - [ - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 1.0, - 0.0, - 0.0 - ], - [ - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 1.0, - 0.0 - ], - [ - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 1.0 - ] - ], - "dim": [ - 8, - 10 - ] - }, - "A": { - "data": [ - [ - -0.059880239520958084, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0 - ], - [ - 0.0, - -0.047619047619047616, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0 - ], - [ - 0.0, - 0.0, - -0.09174311926605504, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0 - ], - [ - 0.0, - 0.0, - 0.0, - -0.06944444444444445, - 0.0, - 0.0, - 0.0, - 0.0 - ], - [ - 0.0, - 0.0, - 0.0, - 0.0, - -0.059880239520958084, - 0.0, - 0.0, - 0.0 - ], - [ - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - -0.047619047619047616, - 0.0, - 0.0 - ], - [ - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - -0.09174311926605504, - 0.0 - ], - [ - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - -0.06944444444444445 - ] - ], - "dim": [ - 8, - 8 - ] - }, - "C": { - "data": [ - [ - 0.7664670658682635, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0 - ], - [ - -0.8999999999999999, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0 - ], - [ - 0.0, - 0.6055045871559632, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0 - ], - [ - 0.0, - -1.347222222222222, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0 - ], - [ - 0.0, - 0.0, - 0.7664670658682635, - 0.0, - 0.7664670658682635, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0 - ], - [ - 0.0, - 0.0, - -0.8999999999999999, - 0.0, - -0.8999999999999999, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0 - ], - [ - 0.0, - 0.0, - 0.0, - 0.6055045871559632, - 0.0, - 0.6055045871559632, - 0.0, - 0.0, - 0.0, - 0.0 - ], - [ - 0.0, - 0.0, - 0.0, - -1.347222222222222, - 0.0, - -1.347222222222222, - 0.0, - 0.0, - 0.0, - 0.0 - ] - ], - "dim": [ - 10, - 8 - ] - }, - "D": { - "data": [ - [ - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 1.0, - 0.0, - 1.0, - 0.0 - ], - [ - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 1.0, - 0.0, - 1.0 - ], - [ - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0 - ], - [ - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0 - ], - [ - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0 - ], - [ - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0 - ], - [ - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0 - ], - [ - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0 - ], - [ - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0 - ], - [ - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0 - ] - ], - "dim": [ - 10, - 10 - ] - }, - "tau": { - "data": [ - 1.0, - 3.0, - 7.0, - 3.0, - 1.0, - 3.0, - 7.0, - 3.0 - ], - "dim": [ - 8 - ] - } - }, - "test_siso_add": { - "B": { - "data": [ - [ - 0.0, - 0.0 - ], - [ - 1.0, - 0.0 - ], - [ - 0.0, - 1.0 - ] - ], - "dim": [ - 2, - 3 - ] - }, - "A": { - "data": [ - [ - -1.0, - 0.0 - ], - [ - 0.0, - -2.5 - ] - ], - "dim": [ - 2, - 2 - ] - }, - "C": { - "data": [ - [ - 1.0, - 0.0, - 0.0 - ], - [ - 1.5, - 0.0, - 0.0 - ] - ], - "dim": [ - 3, - 2 - ] - }, - "D": { - "data": [ - [ - 0.0, - 1.0, - 1.0 - ], - [ - 0.0, - 0.0, - 0.0 - ], - [ - 0.0, - 0.0, - 0.0 - ] - ], - "dim": [ - 3, - 3 - ] - }, - "tau": { - "data": [ - 1.5, - 0.5 - ], - "dim": [ - 2 - ] - } - }, - "test_siso_mul": { - "B": { - "data": [ - [ - 0.0, - 0.0 - ], - [ - 1.0, - 0.0 - ], - [ - 0.0, - 1.0 - ] - ], - "dim": [ - 2, - 3 - ] - }, - "A": { - "data": [ - [ - -1.0, - 0.0 - ], - [ - 0.0, - -2.5 - ] - ], - "dim": [ - 2, - 2 - ] - }, - "C": { - "data": [ - [ - 1.0, - 0.0, - 0.0 - ], - [ - 0.0, - 1.5, - 0.0 - ] - ], - "dim": [ - 3, - 2 - ] - }, - "D": { - "data": [ - [ - 0.0, - 0.0, - 1.0 - ], - [ - 0.0, - 0.0, - 0.0 - ], - [ - 0.0, - 0.0, - 0.0 - ] - ], - "dim": [ - 3, - 3 - ] - }, - "tau": { - "data": [ - 1.5, - 0.5 - ], - "dim": [ - 2 - ] - } - }, - "test_siso_add_constant": { - "B": { - "data": [ - [ - 0.0 - ], - [ - 1.0 - ] - ], - "dim": [ - 1, - 2 - ] - }, - "A": { - "data": [ - [ - -1.0 - ] - ], - "dim": [ - 1, - 1 - ] - }, - "C": { - "data": [ - [ - 1.0, - 0.0 - ] - ], - "dim": [ - 2, - 1 - ] - }, - "D": { - "data": [ - [ - 2.5, - 1.0 - ], - [ - 0.0, - 0.0 - ] - ], - "dim": [ - 2, - 2 - ] - }, - "tau": { - "data": [ - 1.5 - ], - "dim": [ - 1 - ] - } - }, - "test_mimo_add_constant": { - "B": { - "data": [ - [ - 0.0, - 0.0, - 0.0, - 0.0 - ], - [ - 0.0, - 0.0, - 0.0, - 0.0 - ], - [ - 1.0, - 0.0, - 0.0, - 0.0 - ], - [ - 0.0, - 1.0, - 0.0, - 0.0 - ], - [ - 0.0, - 0.0, - 1.0, - 0.0 - ], - [ - 0.0, - 0.0, - 0.0, - 1.0 - ] - ], - "dim": [ - 4, - 6 - ] - }, - "A": { - "data": [ - [ - -0.059880239520958084, - 0.0, - 0.0, - 0.0 - ], - [ - 0.0, - -0.047619047619047616, - 0.0, - 0.0 - ], - [ - 0.0, - 0.0, - -0.09174311926605504, - 0.0 - ], - [ - 0.0, - 0.0, - 0.0, - -0.06944444444444445 - ] - ], - "dim": [ - 4, - 4 - ] - }, - "C": { - "data": [ - [ - 0.7664670658682635, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0 - ], - [ - -0.8999999999999999, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0 - ], - [ - 0.0, - 0.6055045871559632, - 0.0, - 0.0, - 0.0, - 0.0 - ], - [ - 0.0, - -1.347222222222222, - 0.0, - 0.0, - 0.0, - 0.0 - ] - ], - "dim": [ - 6, - 4 - ] - }, - "D": { - "data": [ - [ - 2.7, - 2.7, - 1.0, - 0.0, - 1.0, - 0.0 - ], - [ - 2.7, - 2.7, - 0.0, - 1.0, - 0.0, - 1.0 - ], - [ - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0 - ], - [ - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0 - ], - [ - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0 - ], - [ - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0 - ] - ], - "dim": [ - 6, - 6 - ] - }, - "tau": { - "data": [ - 1.0, - 3.0, - 7.0, - 3.0 - ], - "dim": [ - 4 - ] - } - } - }, - "TestConstructors": { - "test_tf2dlti": { - "simple_siso_tf": { - "B": { - "data": [ - [ - 1 - ] - ], - "dim": [ - 1, - 1 - ] - }, - "A": { - "data": [ - [ - -1 - ] - ], - "dim": [ - 1, - 1 - ] - }, - "C": { - "data": [ - [ - 1 - ] - ], - "dim": [ - 1, - 1 - ] - }, - "D": { - "data": [ - [ - 0 - ] - ], - "dim": [ - 1, - 1 - ] - }, - "tau": { - "data": [], - "dim": [ - 0 - ] - } - }, - "tf_one": { - "B": { - "data": [ - [] - ], - "dim": [ - 0, - 1 - ] - }, - "A": { - "data": [], - "dim": [ - 0, - 0 - ] - }, - "C": { - "data": [], - "dim": [ - 1, - 0 - ] - }, - "D": { - "data": [ - [ - 1 - ] - ], - "dim": [ - 1, - 1 - ] - }, - "tau": { - "data": [], - "dim": [ - 0 - ] - } - } - }, - "test_build_wood_berry": { - "B": { - "data": [ - [ - 0.0, - 0.0, - 0.0, - 0.0 - ], - [ - 0.0, - 0.0, - 0.0, - 0.0 - ], - [ - 1.0, - 0.0, - 0.0, - 0.0 - ], - [ - 0.0, - 1.0, - 0.0, - 0.0 - ], - [ - 0.0, - 0.0, - 1.0, - 0.0 - ], - [ - 0.0, - 0.0, - 0.0, - 1.0 - ] - ], - "dim": [ - 4, - 6 - ] - }, - "A": { - "data": [ - [ - -0.059880239520958084, - 0.0, - 0.0, - 0.0 - ], - [ - 0.0, - -0.047619047619047616, - 0.0, - 0.0 - ], - [ - 0.0, - 0.0, - -0.09174311926605504, - 0.0 - ], - [ - 0.0, - 0.0, - 0.0, - -0.06944444444444445 - ] - ], - "dim": [ - 4, - 4 - ] - }, - "C": { - "data": [ - [ - 0.7664670658682635, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0 - ], - [ - -0.8999999999999999, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0 - ], - [ - 0.0, - 0.6055045871559632, - 0.0, - 0.0, - 0.0, - 0.0 - ], - [ - 0.0, - -1.347222222222222, - 0.0, - 0.0, - 0.0, - 0.0 - ] - ], - "dim": [ - 6, - 4 - ] - }, - "D": { - "data": [ - [ - 0.0, - 0.0, - 1.0, - 0.0, - 1.0, - 0.0 - ], - [ - 0.0, - 0.0, - 0.0, - 1.0, - 0.0, - 1.0 - ], - [ - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0 - ], - [ - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0 - ], - [ - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0 - ], - [ - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0 - ] - ], - "dim": [ - 6, - 6 - ] - }, - "tau": { - "data": [ - 1.0, - 3.0, - 7.0, - 3.0 - ], - "dim": [ - 4 - ] - } - }, - "test_exp_delay": { - "1": { - "B": { - "data": [ - [], - [] - ], - "dim": [ - 0, - 2 - ] - }, - "A": { - "data": [], - "dim": [ - 0, - 0 - ] - }, - "C": { - "data": [], - "dim": [ - 2, - 0 - ] - }, - "D": { - "data": [ - [ - 0.0, - 1.0 - ], - [ - 1.0, - 0.0 - ] - ], - "dim": [ - 2, - 2 - ] - }, - "tau": { - "data": [ - 1.0 - ], - "dim": [ - 1 - ] - } - }, - "1.5": { - "B": { - "data": [ - [], - [] - ], - "dim": [ - 0, - 2 - ] - }, - "A": { - "data": [], - "dim": [ - 0, - 0 - ] - }, - "C": { - "data": [], - "dim": [ - 2, - 0 - ] - }, - "D": { - "data": [ - [ - 0.0, - 1.0 - ], - [ - 1.0, - 0.0 - ] - ], - "dim": [ - 2, - 2 - ] - }, - "tau": { - "data": [ - 1.5 - ], - "dim": [ - 1 - ] - } - }, - "10": { - "B": { - "data": [ - [], - [] - ], - "dim": [ - 0, - 2 - ] - }, - "A": { - "data": [], - "dim": [ - 0, - 0 - ] - }, - "C": { - "data": [], - "dim": [ - 2, - 0 - ] - }, - "D": { - "data": [ - [ - 0.0, - 1.0 - ], - [ - 1.0, - 0.0 - ] - ], - "dim": [ - 2, - 2 - ] - }, - "tau": { - "data": [ - 10.0 - ], - "dim": [ - 1 - ] - } - } - }, - "test_siso_delay": { - "B": { - "data": [ - [ - 0.0 - ], - [ - 1.0 - ] - ], - "dim": [ - 1, - 2 - ] - }, - "A": { - "data": [ - [ - -1.0 - ] - ], - "dim": [ - 1, - 1 - ] - }, - "C": { - "data": [ - [ - 1.0, - 0.0 - ] - ], - "dim": [ - 2, - 1 - ] - }, - "D": { - "data": [ - [ - 0.0, - 1.0 - ], - [ - 0.0, - 0.0 - ] - ], - "dim": [ - 2, - 2 - ] - }, - "tau": { - "data": [ - 1.5 - ], - "dim": [ - 1 - ] - } - }, - "test_delay_function": { - "1": { - "B": { - "data": [ - [], - [] - ], - "dim": [ - 0, - 2 - ] - }, - "A": { - "data": [], - "dim": [ - 0, - 0 - ] - }, - "C": { - "data": [], - "dim": [ - 2, - 0 - ] - }, - "D": { - "data": [ - [ - 0.0, - 1.0 - ], - [ - 1.0, - 0.0 - ] - ], - "dim": [ - 2, - 2 - ] - }, - "tau": { - "data": [ - 1.0 - ], - "dim": [ - 1 - ] - } - }, - "1.5": { - "B": { - "data": [ - [], - [] - ], - "dim": [ - 0, - 2 - ] - }, - "A": { - "data": [], - "dim": [ - 0, - 0 - ] - }, - "C": { - "data": [], - "dim": [ - 2, - 0 - ] - }, - "D": { - "data": [ - [ - 0.0, - 1.0 - ], - [ - 1.0, - 0.0 - ] - ], - "dim": [ - 2, - 2 - ] - }, - "tau": { - "data": [ - 1.5 - ], - "dim": [ - 1 - ] - } - }, - "10": { - "B": { - "data": [ - [], - [] - ], - "dim": [ - 0, - 2 - ] - }, - "A": { - "data": [], - "dim": [ - 0, - 0 - ] - }, - "C": { - "data": [], - "dim": [ - 2, - 0 - ] - }, - "D": { - "data": [ - [ - 0.0, - 1.0 - ], - [ - 1.0, - 0.0 - ] - ], - "dim": [ - 2, - 2 - ] - }, - "tau": { - "data": [ - 10.0 - ], - "dim": [ - 1 - ] - } - } - } - }, - "TestDelayLtiMethods": { - "test_feedback": { - "delay_siso_tf": { - "B": { - "data": [ - [ - 0.0, - 0.0 - ], - [ - 1.0, - 0.0 - ], - [ - 0.0, - 1.0 - ] - ], - "dim": [ - 2, - 3 - ] - }, - "A": { - "data": [ - [ - -1.0, - 0.0 - ], - [ - 0.0, - -1.0 - ] - ], - "dim": [ - 2, - 2 - ] - }, - "C": { - "data": [ - [ - 1.0, - 0.0, - 1.0 - ], - [ - 0.0, - -1.0, - 0.0 - ] - ], - "dim": [ - 3, - 2 - ] - }, - "D": { - "data": [ - [ - 0.0, - 1.0, - 0.0 - ], - [ - 0.0, - 0.0, - 0.0 - ], - [ - 0.0, - 0.0, - 0.0 - ] - ], - "dim": [ - 3, - 3 - ] - }, - "tau": { - "data": [ - 1.5, - 1.5 - ], - "dim": [ - 2 - ] - } - }, - "empty": { - "B": { - "data": [ - [ - 0.0 - ], - [ - 1.0 - ] - ], - "dim": [ - 1, - 2 - ] - }, - "A": { - "data": [ - [ - -1.0 - ] - ], - "dim": [ - 1, - 1 - ] - }, - "C": { - "data": [ - [ - 1.0, - -1.0 - ] - ], - "dim": [ - 2, - 1 - ] - }, - "D": { - "data": [ - [ - 0.0, - 1.0 - ], - [ - 0.0, - 0.0 - ] - ], - "dim": [ - 2, - 2 - ] - }, - "tau": { - "data": [ - 1.5 - ], - "dim": [ - 1 - ] - } - }, - "tf_one": { - "B": { - "data": [ - [ - 0.0 - ], - [ - 1.0 - ] - ], - "dim": [ - 1, - 2 - ] - }, - "A": { - "data": [ - [ - -1.0 - ] - ], - "dim": [ - 1, - 1 - ] - }, - "C": { - "data": [ - [ - 1.0, - -1.0 - ] - ], - "dim": [ - 2, - 1 - ] - }, - "D": { - "data": [ - [ - 0.0, - 1.0 - ], - [ - 0.0, - 0.0 - ] - ], - "dim": [ - 2, - 2 - ] - }, - "tau": { - "data": [ - 1.5 - ], - "dim": [ - 1 - ] - } - } - }, - "test_tito_freq_response": { - "r12": { - "real": [ - -17.979545539270337, - -17.80080817901333, - -17.589543229062834, - -17.340734466620393, - -17.048957615295066, - -16.708499550214572, - -16.313549184302005, - -15.85847403757536, - -15.338191130105187, - -14.748630247557251, - -14.08727096524883, - -13.353712684114113, - -12.550212327912854, - -11.682103225679397, - -10.757999400210041, - -9.789700467177209, - -8.791748364345382, - -7.780645194703653, - -6.77380915756393, - -5.788403697114647, - -4.840204761966178, - -3.9426621489255704, - -3.1062664297028433, - -2.3382679838953697, - -1.6427292312041606, - -1.0208420507548333, - -0.47141780912310505, - 0.008543516095805998, - 0.42328288926552626, - 0.7777646148050352, - 1.0772417273196127, - 1.3269146985415978, - 1.5316799912700436, - 1.6959570779212823, - 1.8235793487446414, - 1.9177344287645302, - 1.9809415354656503, - 2.0150567185922394, - 2.0213005671394275, - 2.000306979192757, - 1.9521957986742915, - 1.876676552975799, - 1.773195175210415, - 1.6411402870531193, - 1.4801297857673967, - 1.2904008490539232, - 1.0733246148715239, - 0.8320565474178327, - 0.5723083770628592, - 0.3031784490352936, - 0.03789368577303131, - -0.20581021359933915, - -0.4061097563642434, - -0.5389263752494392, - -0.5818615439788665, - -0.5207189981398878, - -0.35829769632735353, - -0.12340172886874234, - 0.12471652477431537, - 0.30405438482750385, - 0.337218273380767, - 0.19791349643592104, - -0.044297017426789584, - -0.22785970586314502, - -0.1987689909970892, - 0.023380727220823967, - 0.1891025115903759, - 0.07443232450773135, - -0.14010548935163072, - -0.06374423002896482, - 0.13027604265184586, - -0.02115043562649843, - -0.0799551758147477, - 0.10109741710217417, - -0.07902323999789639, - 0.05706777985256912, - -0.05172517399847418, - 0.06022493217155967, - -0.063113533631419, - 0.025510508873653734, - 0.042948208793136704, - -0.01586729960159359, - -0.039742826401768565, - -0.03933889763172318, - -0.03217778287538818, - -0.004144263303007504, - 0.030152922601707346, - -0.020569563815090952, - 0.02105854171182995, - -0.01985575909205607, - -0.018100973985880973, - -0.017304131428496097, - -0.010587177486381905, - 0.014138679495106879, - -0.00125338200821709, - -0.00701808799857972, - 0.008054751670420123, - -0.008347457720106043, - -0.0002937462920334337, - -0.008997705819017333 - ], - "imag": [ - 4.342619517073938, - 4.724806025295414, - 5.1320049788371085, - 5.563264561669552, - 6.0167350654387, - 6.489458865311868, - 6.977156784848183, - 7.47403252587984, - 7.9726262655251645, - 8.463757497363597, - 8.936602956557591, - 9.378954217211833, - 9.77768719682191, - 10.119449552768986, - 10.39153249827225, - 10.582847011872238, - 10.684882562976957, - 10.692504111813498, - 10.60445242341483, - 10.423456838554033, - 10.155939321390012, - 9.81136446358357, - 9.401350225600211, - 8.938683031177717, - 8.436374837908431, - 7.906866892809745, - 7.361439206777721, - 6.809840335440722, - 6.260118216093046, - 5.718613088203613, - 5.190066761550856, - 4.677805073756644, - 4.183958198230711, - 3.709693144937356, - 3.2554421118370738, - 2.8211181410407695, - 2.4063154322809384, - 2.0104957343351835, - 1.633164717731685, - 1.2740433679830578, - 0.9332393422808171, - 0.6114218194820902, - 0.31000030646136595, - 0.03130251550821797, - -0.22126213298716477, - -0.4430797725510945, - -0.6282950189646908, - -0.7699291694610503, - -0.8602530433171849, - -0.891543586581522, - -0.8573704891952135, - -0.7545384045814909, - -0.5857090205738471, - -0.36248350379729893, - -0.10827268519038567, - 0.14040513344632233, - 0.3363551529643246, - 0.43046783977153713, - 0.3885172347024771, - 0.21399293082315407, - -0.03259372445101514, - -0.2369105024545742, - -0.2777733827223607, - -0.11734338273808059, - 0.12259355794171213, - 0.21150216001254316, - 0.042815335500071765, - -0.16022073343676937, - -0.07926308000029737, - 0.13209726900244684, - 0.029813061197126362, - -0.11992090546801883, - 0.07692870294914742, - 0.0002460820330156346, - -0.047337232293552876, - 0.061547514039147905, - -0.056331748719427095, - 0.03505301648345487, - 0.006930040610082755, - -0.05192410443961511, - 0.030563211032726, - 0.04533346400354927, - 0.018323043007691008, - 0.006519737860931946, - 0.016872569062135863, - 0.032844945067921655, - 0.0008315092285931376, - -0.01822910195093327, - 0.013553239570347883, - 0.011243753574243587, - -0.010228726967818413, - -0.007710188908937525, - 0.013633054898708348, - -0.006889112211002009, - 0.014275623961371196, - 0.0110110669406258, - 0.008756181807002703, - -0.0069164327516228466, - -0.009873118718470351, - -0.0002031541953267352 - ] - }, - "r11": { - "real": [ - 12.43128816593835, - 12.358336017309398, - 12.271526787736379, - 12.168474760438365, - 12.046487013817968, - 11.902567694673207, - 11.733444253944395, - 11.535624284042607, - 11.305492545778371, - 11.03945759523041, - 10.734155293680907, - 10.386711487150423, - 9.995057527806516, - 9.558279961265896, - 9.076970731718406, - 8.553529508386978, - 7.9923598284576105, - 7.399901173356435, - 6.784454211939663, - 6.155786883835384, - 5.524549715424967, - 4.901569353408882, - 4.297117266395177, - 3.7202564479360047, - 3.1783506935058363, - 2.67678493929047, - 2.2189029587527584, - 1.8061323869336094, - 1.4382443975577974, - 1.1136883264828072, - 0.8299472071288009, - 0.5838732961066524, - 0.37197800734332626, - 0.19066450836993976, - 0.03640167197906004, - -0.0941552704761483, - -0.20408864510080785, - -0.29617709607461673, - -0.3728799669104546, - -0.43633935541928387, - -0.48839344774672594, - -0.5305962610425458, - -0.5642402662307592, - -0.5903794670954846, - -0.6098513835989521, - -0.6232970609174918, - -0.6311787493735481, - -0.6337953263702912, - -0.6312959113341831, - -0.6236925086108341, - -0.6108729494412299, - -0.592615938023275, - -0.5686106773811407, - -0.5384843820952704, - -0.5018419665619038, - -0.45832325041490285, - -0.4076839409591818, - -0.3499070106515678, - -0.2853501091502618, - -0.21493104034257932, - -0.14034512731244936, - -0.06429281708532214, - 0.009329833022601843, - 0.07536304799547297, - 0.1275707621265259, - 0.15926229807770054, - 0.16453854037701823, - 0.14026912274052408, - 0.08863643541612089, - 0.019534790750579276, - -0.04869104635601392, - -0.092394501101518, - -0.09155486655554447, - -0.0434769399816274, - 0.026101954727285753, - 0.06872592822762003, - 0.04687264185681756, - -0.02004148721876953, - -0.054042185885970415, - -0.00760858694647483, - 0.04391738001863822, - 0.004676403552874922, - -0.03689569846489549, - 0.018507911982609565, - 0.011027350572800474, - -0.025005640080616162, - 0.02568741788980782, - -0.022718741343590407, - 0.020936102056912178, - -0.019150495349870126, - 0.011353412196151337, - 0.0060283956243197875, - -0.014031994776318462, - -0.008359158992222976, - 0.0003647585514889078, - 0.002097797791679799, - -0.0024804124923506685, - -0.008986537350776683, - 7.933603945029554e-5, - 0.0038850821975851724 - ], - "imag": [ - -2.2040229903890376, - -2.4055411951240657, - -2.622616000974477, - -2.85556679125228, - -3.104423705408224, - -3.368829959399902, - -3.6479282700501523, - -3.940234259116282, - -4.243503180665107, - -4.554600971794905, - -4.869396254455911, - -5.182695808987789, - -5.488250819095851, - -5.778862753451961, - -6.046613544822822, - -6.283232484744117, - -6.480591217427942, - -6.631290529780363, - -6.729274093428178, - -6.770383614186616, - -6.752765832314651, - -6.6770594956126015, - -6.546327677096264, - -6.365748044418277, - -6.14211724946262, - -5.883253351144822, - -5.59738624874044, - -5.292612374589998, - -4.976463903965641, - -4.655613706471871, - -4.335712580263525, - -4.021338835031188, - -3.716032488507119, - -3.4223854912612466, - -3.1421629510837734, - -2.876435915373175, - -2.625712157695306, - -2.390056595787404, - -2.169197019619673, - -1.9626136880188965, - -1.769613219791124, - -1.589388292447561, - -1.421065199357977, - -1.2637414988835867, - -1.1165159645363287, - -0.9785129170246855, - -0.8489028540035857, - -0.7269211295418373, - -0.6118862883468039, - -0.5032195261724143, - -0.4004666052505409, - -0.30332335753676204, - -0.2116655854439276, - -0.1255836063196159, - -0.04542071727069005, - 0.028186750103759775, - 0.09427266059654694, - 0.1515163005144927, - 0.1982437502790757, - 0.23247672554088666, - 0.25205861922894385, - 0.25489537675413476, - 0.2393521051741667, - 0.2048370128253847, - 0.15256927604902282, - 0.08644864759570142, - 0.013804166087691448, - -0.05440439297514317, - -0.10457637205481073, - -0.12337208659177808, - -0.10287214507188865, - -0.04709161986773513, - 0.02337238224858419, - 0.07431334452580744, - 0.07397907485865568, - 0.019649866356320482, - -0.04522020590124208, - -0.05585753112977387, - 0.0018029905731695305, - 0.04867765452571895, - 0.00930283737574529, - -0.040635634813495615, - 0.005269385356166265, - 0.028472443316663185, - -0.028910630235054184, - 0.013022728954821837, - 0.0002739603091159187, - -0.005633390817610891, - 0.004066499552758985, - 0.003299818509018253, - -0.013587326528977543, - 0.01496477639672639, - 0.004381468082663159, - -0.010465641522816949, - -0.012198865550599444, - -0.010920454476846246, - -0.009823942617634675, - -0.0021152295724793505, - 0.008411590638668729, - -0.006607063762326209 - ] - }, - "r22": { - "real": [ - -18.915248629777597, - -18.818534114344438, - -18.703099779307514, - -18.56557164596919, - -18.402074259132487, - -18.208201859070403, - -17.979009410718177, - -17.709034484525514, - -17.39236372394293, - -17.022759941957233, - -16.593866906740217, - -16.09950736255759, - -15.534084233759618, - -14.893083706713258, - -14.173660998046055, - -13.375265641208296, - -12.500236173898468, - -11.554270529040117, - -10.546667266457904, - -9.490243399120851, - -8.400872516165366, - -7.296649472144543, - -6.196762029325518, - -5.120214750087282, - -4.084585207909633, - -3.1049852213637728, - -2.193352903396712, - -1.3581307879964102, - -0.6043130562713402, - 0.06621028692877973, - 0.6541129610793954, - 1.1619987569828307, - 1.5937614254004508, - 1.9539994708602446, - 2.247521127673765, - 2.4789532966265373, - 2.652453532218505, - 2.7715163096256807, - 2.83886263318731, - 2.856404112264212, - 2.825277610586564, - 2.745953463682208, - 2.6184282855501837, - 2.442521783680849, - 2.218304628237282, - 1.9466892163218188, - 1.6302134222701334, - 1.274032847897525, - 0.8870999077566379, - 0.4834346471115818, - 0.0832663877776031, - -0.2863656314421349, - -0.592215501389611, - -0.7975604149836688, - -0.8681036951379899, - -0.7817926580954525, - -0.5420923486781136, - -0.1916436398555898, - 0.18088124386770826, - 0.4521390152227134, - 0.5050788781522239, - 0.29886027938423637, - -0.06346372251295096, - -0.33995294864148573, - -0.298548670216058, - 0.03336255780611403, - 0.2827489113412085, - 0.1124396193941759, - -0.20925252751482462, - -0.09611902663619168, - 0.19486083771447865, - -0.03112943158137676, - -0.11999306230537929, - 0.1513302993825827, - -0.11813079757157524, - 0.08523688835308758, - -0.07727088490118084, - 0.0900620330224121, - -0.0944907652968597, - 0.03829583158913529, - 0.06423094002368505, - -0.02383091329396667, - -0.059520471883937213, - -0.05889619223177922, - -0.048189494636034655, - -0.006243062570851471, - 0.0451353319873735, - -0.030772628489114603, - 0.03151045910869639, - -0.02973163989482227, - -0.02708785188700699, - -0.02589746974521368, - -0.015856623313825167, - 0.021168304744243527, - -0.0018836301481688117, - -0.01051068708161923, - 0.012053482281977366, - -0.012492698320439748, - -0.00043617262123654433, - -0.01346871961822188 - ], - "imag": [ - 3.3057085066163894, - 3.6127066683888227, - 3.9448932964715984, - 4.303301496861762, - 4.688665057110565, - 5.101291532899661, - 5.540907154072057, - 6.0064728005435715, - 6.495973433590731, - 7.006188266663765, - 7.532455914625273, - 8.068457729697327, - 8.60605282858416, - 9.135208246763947, - 9.644074269124324, - 10.119254163772386, - 10.546304788874558, - 10.910476650458309, - 11.197659441319944, - 11.395448224345893, - 11.494198865734404, - 11.487915235628803, - 11.374818752128508, - 11.157497224503725, - 10.842605272426276, - 10.440172050557381, - 9.962639433492598, - 9.423787620051547, - 8.837700623968608, - 8.217889420325198, - 7.576640947440485, - 6.9246122263956575, - 6.270651185565627, - 5.621803549252459, - 4.983457316690631, - 4.359579024376977, - 3.7530046063985885, - 3.1657584070746108, - 2.5993841211339794, - 2.05527961245246, - 1.5350329158289715, - 1.040758815637163, - 0.5754337582168062, - 0.14322075082034663, - -0.2502358297888014, - -0.59758449923624, - -0.8896766723199003, - -1.1157164056493167, - -1.2637990501111944, - -1.3220333735152963, - -1.2804683113287971, - -1.1340154137464138, - -0.88640658320664, - -0.554860630026135, - -0.17444989092003704, - 0.19987912382739384, - 0.4968823626101177, - 0.6421273661314307, - 0.5832415712776812, - 0.3243473310657503, - -0.044634454292340926, - -0.3523544542322688, - -0.4161933510076372, - -0.17775066371050088, - 0.18180859432346044, - 0.3167542014546065, - 0.06541708656994971, - -0.23934531099900216, - -0.11946282946002104, - 0.19739087287740992, - 0.045258051819745994, - -0.17959973875774188, - 0.11483094765323414, - 0.0007393596109930061, - -0.07112285728405465, - 0.09230396672039123, - -0.08446643160708937, - 0.05262319880749238, - 0.010228129558354596, - -0.0776718367975225, - 0.04583242917601909, - 0.06783232011089697, - 0.02736477699097288, - 0.009702511942248014, - 0.025214275687164233, - 0.04916096313704033, - 0.0012777124020500739, - -0.02730787420615017, - 0.02030714844230243, - 0.016814464106062334, - -0.01532516934899406, - -0.011553378545014457, - 0.020400859776369875, - -0.01030432866217134, - 0.021368715140975353, - 0.016479283832946556, - 0.013110722732914588, - -0.010356584726514444, - -0.01477930811683578, - -0.0003070438427949238 - ] - }, - "r21": { - "real": [ - 6.456806400453239, - 6.427947543700158, - 6.393375187644098, - 6.3520033875310515, - 6.302559582114024, - 6.243561185721288, - 6.173293184574207, - 6.089788971763697, - 5.990817654307498, - 5.873882295096301, - 5.736234963092649, - 5.574915919520709, - 5.38682549445441, - 5.168837755957292, - 4.917964289115123, - 4.631573468179081, - 4.307664696686308, - 3.945187695254357, - 3.54438432387941, - 3.107116276438488, - 2.6371296124949817, - 2.140201237541224, - 1.6241180010507852, - 1.0984589157170876, - 0.5741836118341503, - 0.06306857633940752, - -0.4229340023244604, - -0.87232292725337, - -1.2745739500550426, - -1.6205056618900473, - -1.902466073019002, - -2.1143625297700295, - -2.2515916074280087, - -2.3109466650560067, - -2.2905887437386045, - -2.1901642152430094, - -2.011142769994167, - -1.7574319609882518, - -1.43629495018049, - -1.059546023807074, - -0.6449079422317704, - -0.217267078039979, - 0.19065856733144365, - 0.539010885682689, - 0.7839085163923682, - 0.8841851479059631, - 0.8125726987668168, - 0.570745116654013, - 0.20462486628832652, - -0.1883096737969229, - -0.47258838733403585, - -0.5215193912709415, - -0.2950753357426149, - 0.08807371097372083, - 0.36366476720648777, - 0.2936758995637603, - -0.065213907506587, - -0.29894808264680284, - -0.08464081617289526, - 0.23257255905525748, - 0.06546978557363038, - -0.20738983126284408, - 0.0693028678671942, - 0.09454966382289584, - -0.15230407730456613, - 0.1382481044318476, - -0.11348587852796453, - 0.10500719542317855, - -0.10706254145905894, - 0.08538746943129889, - 0.00013864408952014246, - -0.0813929789208096, - -0.016229963142076916, - 0.03421325121458908, - 0.0414996295586669, - 0.019260377444086856, - -0.03265666650530345, - -0.030373714038262407, - 0.04131819644827307, - -0.034035166413741165, - -0.0045548343631747635, - 0.022830165960750277, - 0.01568611666883509, - -0.021142120421470317, - 0.01388370864325637, - -0.021678743689387228, - -0.020252878853129867, - -0.002225073071142497, - -0.0039556697184909085, - 0.005523570519956949, - -0.013825527551196603, - 0.005590083344374726, - -0.006110247250606604, - 0.010580702734716462, - 0.0019535150617730115, - 0.008518115523435644, - -0.00789601807963814, - -0.00031678243823877306, - 0.00046223762258196515, - -0.0032984249938573704 - ], - "imag": [ - -1.1654146900771192, - -1.275504238261316, - -1.3952134196613368, - -1.525135808951057, - -1.6658201654080644, - -1.8177375696952263, - -1.9812386527804906, - -2.1564990566329816, - -2.3434513830761534, - -2.5417023327129895, - -2.750434686598742, - -2.9682954506970254, - -3.193274083068084, - -3.4225784106657136, - -3.652520595183895, - -3.878430964204859, - -4.09462279613827, - -4.294434683997667, - -4.470376744370216, - -4.614400329401237, - -4.718296377229871, - -4.77420537768458, - -4.775195494266592, - -4.715841328265156, - -4.592722629460435, - -4.404767107002289, - -4.153386506328756, - -3.8423952808674433, - -3.477745466690269, - -3.0671469410490886, - -2.619659661993002, - -2.1453409330780775, - -1.655009861622837, - -1.160160091069027, - -0.6730173636788513, - -0.2067042699366139, - 0.22455931737729504, - 0.6053278390248329, - 0.9190231112104983, - 1.148445888648517, - 1.2769494556619931, - 1.2905432853897645, - 1.1811539349425253, - 0.95108947819774, - 0.6183260582168065, - 0.22144631435988973, - -0.1781274695182204, - -0.5003173814745683, - -0.6614123257925069, - -0.6026930010439868, - -0.3289112898796782, - 0.060078050919870604, - 0.3767993822520846, - 0.4272844139867687, - 0.16087163389218007, - -0.21241277082103482, - -0.3238275987635541, - -0.0354905375588738, - 0.260968871928572, - 0.09174878459265134, - -0.21822340897568573, - -0.0096386578331521, - 0.17603512013437658, - -0.14414934018593165, - 0.038461529606795115, - 0.03709086724495221, - -0.06428091620840329, - 0.055653602887128506, - -0.016251565429515925, - -0.049446661519207374, - 0.08990705949458201, - -0.009289289705677327, - -0.07285886178018194, - -0.05878249121079965, - -0.04602582479906211, - -0.053081217945457324, - -0.03975912940617042, - 0.03571064977033943, - -0.010839061154228356, - 0.01888116666641433, - -0.035170300514430236, - -0.022868109139146643, - -0.024916560173710044, - -0.016514231492333612, - 0.02011863433012642, - 0.005109029532660125, - -0.0012914392803147683, - 0.018356801049832554, - -0.016377533873436455, - -0.014323584392833242, - -0.002125184924407931, - -0.011453942942727047, - -0.0098755776488937, - -0.00011712878439016248, - -0.00944135163937912, - -0.0021482303801674697, - 0.0013128032711124604, - 0.007286436828345648, - 0.006629306459054316, - 0.0050777891062560015 - ] - } - }, - "test_mimo_feedback": { - "B": { - "data": [ - [ - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0 - ], - [ - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0 - ], - [ - 1.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0 - ], - [ - 0.0, - 1.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0 - ], - [ - 0.0, - 0.0, - 1.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0 - ], - [ - 0.0, - 0.0, - 0.0, - 1.0, - 0.0, - 0.0, - 0.0, - 0.0 - ], - [ - 0.0, - 0.0, - 0.0, - 0.0, - 1.0, - 0.0, - 0.0, - 0.0 - ], - [ - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 1.0, - 0.0, - 0.0 - ], - [ - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 1.0, - 0.0 - ], - [ - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 1.0 - ] - ], - "dim": [ - 8, - 10 - ] - }, - "A": { - "data": [ - [ - -0.059880239520958084, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0 - ], - [ - 0.0, - -0.047619047619047616, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0 - ], - [ - 0.0, - 0.0, - -0.09174311926605504, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0 - ], - [ - 0.0, - 0.0, - 0.0, - -0.06944444444444445, - 0.0, - 0.0, - 0.0, - 0.0 - ], - [ - 0.0, - 0.0, - 0.0, - 0.0, - -0.059880239520958084, - 0.0, - 0.0, - 0.0 - ], - [ - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - -0.047619047619047616, - 0.0, - 0.0 - ], - [ - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - -0.09174311926605504, - 0.0 - ], - [ - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - -0.06944444444444445 - ] - ], - "dim": [ - 8, - 8 - ] - }, - "C": { - "data": [ - [ - 0.7664670658682635, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.7664670658682635, - 0.0, - 0.7664670658682635, - 0.0 - ], - [ - -0.8999999999999999, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - -0.8999999999999999, - 0.0, - -0.8999999999999999, - 0.0 - ], - [ - 0.0, - 0.6055045871559632, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.6055045871559632, - 0.0, - 0.6055045871559632 - ], - [ - 0.0, - -1.347222222222222, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - -1.347222222222222, - 0.0, - -1.347222222222222 - ], - [ - 0.0, - 0.0, - -0.7664670658682635, - 0.0, - -0.7664670658682635, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0 - ], - [ - 0.0, - 0.0, - 0.8999999999999999, - 0.0, - 0.8999999999999999, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0 - ], - [ - 0.0, - 0.0, - 0.0, - -0.6055045871559632, - 0.0, - -0.6055045871559632, - 0.0, - 0.0, - 0.0, - 0.0 - ], - [ - 0.0, - 0.0, - 0.0, - 1.347222222222222, - 0.0, - 1.347222222222222, - 0.0, - 0.0, - 0.0, - 0.0 - ] - ], - "dim": [ - 10, - 8 - ] - }, - "D": { - "data": [ - [ - 0.0, - 0.0, - 1.0, - 0.0, - 1.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0 - ], - [ - 0.0, - 0.0, - 0.0, - 1.0, - 0.0, - 1.0, - 0.0, - 0.0, - 0.0, - 0.0 - ], - [ - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0 - ], - [ - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0 - ], - [ - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0 - ], - [ - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0 - ], - [ - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0 - ], - [ - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0 - ], - [ - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0 - ], - [ - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0 - ] - ], - "dim": [ - 10, - 10 - ] - }, - "tau": { - "data": [ - 1.0, - 3.0, - 7.0, - 3.0, - 1.0, - 3.0, - 7.0, - 3.0 - ], - "dim": [ - 8 - ] - } - }, - "test_siso_freq_resp": { - "real": [ - 0.9996375439798979, - 0.9995634312726295, - 0.9994741671370168, - 0.9993666552530321, - 0.999237167083981, - 0.99908121303276, - 0.9988933874503182, - 0.9986671822395532, - 0.9983947627635261, - 0.9980666985392813, - 0.9976716397463046, - 0.9971959288676081, - 0.9966231347756939, - 0.9959334942394207, - 0.9951032431288468, - 0.9941038165099754, - 0.9929008933437563, - 0.9914532576576418, - 0.9897114439166157, - 0.9876161300348277, - 0.9850962373081802, - 0.9820666929589262, - 0.9784258086709292, - 0.9740522285356137, - 0.9688014038241506, - 0.9625015622730949, - 0.9549491594125434, - 0.9459038334419049, - 0.9350829394272876, - 0.9221558212063877, - 0.9067381004379472, - 0.8883864336722017, - 0.8665944230560981, - 0.8407906760670428, - 0.8103404009543473, - 0.7745523915091108, - 0.7326937684053461, - 0.6840153376849258, - 0.6277907774720298, - 0.5633728780129739, - 0.4902694689018042, - 0.40824015081694337, - 0.3174122070875165, - 0.21840995593936785, - 0.11248651027122411, - 0.001641155706260852, - -0.11129935164175528, - -0.22265962734415376, - -0.32797697505164664, - -0.4221611357112527, - -0.4997585058263344, - -0.55531619758517, - -0.5838334214868793, - -0.5812849089473644, - -0.5452026982257325, - -0.47530358539375506, - -0.37414093002783655, - -0.24772998226030973, - -0.10603460602502184, - 0.03689544850765837, - 0.163475443354048, - 0.25428260135266945, - 0.29137658766182767, - 0.2634742255584535, - 0.17246061536666463, - 0.03927095986185361, - -0.09481872294498477, - -0.17692182848634166, - -0.16507730459105968, - -0.060032676072388685, - 0.07413268414875133, - 0.13395334052399674, - 0.0610174960974431, - -0.06975679846479863, - -0.09313772876012177, - 0.025934061526366826, - 0.08116736041226703, - -0.033328025868165176, - -0.050456466352268005, - 0.06145146603825666, - -0.023790764711986843, - -0.01164993683455088, - 0.028094619517517096, - -0.030057717552314775, - 0.02221753549779696, - -0.003620320024132159, - -0.022559742304732594, - 0.028197022583963373, - 0.01265424121150209, - -0.013302129669150599, - -0.02020475258354317, - -0.017882613190878055, - -0.006554881991346374, - 0.014655691602204724, - 0.000944019041138025, - -0.004257696080973819, - -0.004643396819873846, - 0.010959344674057785, - 0.010974231856788667, - 0.007217967580181465 - ], - "imag": [ - -0.024995812946127068, - -0.027431934219113052, - -0.030105271862338058, - -0.03303885684441913, - -0.036257934309874534, - -0.03979016938930197, - -0.043665869841421755, - -0.04791822613112859, - -0.0525835692753272, - -0.05770164638426992, - -0.06331591324456566, - -0.06947384247065888, - -0.07622724461511865, - -0.08363259807084238, - -0.09175138148508818, - -0.10065039956078467, - -0.11040208931859637, - -0.12108478884384631, - -0.13278294387710093, - -0.14558721886237722, - -0.15959446766698268, - -0.1749075044296957, - -0.1916345960427577, - -0.2098885736642593, - -0.22978543033607415, - -0.25144223418842526, - -0.27497414094902234, - -0.300490235110327, - -0.3280878666756117, - -0.3578450821924996, - -0.3898106800313958, - -0.4239913604759359, - -0.4603354080288266, - -0.4987123630856, - -0.5388882523855643, - -0.5804962073952337, - -0.6230027775548482, - -0.6656710221748017, - -0.7075226177394369, - -0.7473027903910795, - -0.7834538397594977, - -0.8141051786018723, - -0.8370897798193744, - -0.8499980576452956, - -0.8502796738335039, - -0.8354007066554325, - -0.8030575539931093, - -0.751440156357626, - -0.6795270170911017, - -0.5873854352991381, - -0.47644491995156885, - -0.3497113918344513, - -0.21189364718913414, - -0.06941810951605784, - 0.06969206393078606, - 0.19610650928623855, - 0.299698110811019, - 0.37035124841572953, - 0.39916086952467084, - 0.3800982171863752, - 0.3121302920468994, - 0.20157093976443763, - 0.06406865232764666, - -0.07489134372736657, - -0.18262004861081965, - -0.22672820233378352, - -0.18805963874096887, - -0.07618454336708898, - 0.061240135678342605, - 0.14923045517330516, - 0.12680648132772035, - 0.005894971987373343, - -0.1060585765190556, - -0.08715109760964115, - 0.0411449750223617, - 0.08916232616058803, - -0.024101915560650607, - -0.06963017462205673, - 0.049056299066853694, - 0.01840452262643518, - -0.05341105609671893, - 0.052002178488688384, - -0.039618229956131325, - 0.032491972651787646, - -0.03366719746221515, - 0.036580224069183376, - -0.02476129275952057, - -0.011690266278196328, - 0.02476963547555173, - 0.02157423746489494, - 0.01118719108988631, - 0.011094055800076006, - 0.018020439623851116, - 0.009513307662500076, - -0.015892797519920294, - 0.013867881656646677, - -0.012375830184461655, - -0.004995457554294962, - -4.563593820485174e-5, - -0.006920328388981937 - ] - } - } -} diff --git a/control/timeresp.py b/control/timeresp.py index 595870442..1ba6e5d0b 100644 --- a/control/timeresp.py +++ b/control/timeresp.py @@ -921,7 +921,7 @@ def shape_matches(s_legal, s_actual): # Forced response of a linear system def forced_response( sysdata, timepts=None, inputs=0., initial_state=0., transpose=False, - params=None, interpolate=False, return_states=None, squeeze=None, + params=None, interpolate=False, return_states=None, squeeze=None, use_mos=False, **kwargs): from .delaylti import DelayLTI """Compute the output of a linear system given the input. @@ -1096,9 +1096,14 @@ def forced_response( if isinstance(sys, DelayLTI): # step size must be small enough to ensure accuracy. # Stiff problems may require very small step size or specific dde solver - return dde_response( - sysdata, T=timepts, U=inputs, X0=initial_state, params=params, - transpose=transpose, return_x=return_states, squeeze=squeeze, method="LSODA") + if use_mos: + return dde_response( + sysdata, T=timepts, U=inputs, X0=initial_state, params=params, + transpose=transpose, return_x=return_states, squeeze=squeeze, method="mos") + else: + return dde_response( + sysdata, T=timepts, U=inputs, X0=initial_state, params=params, + transpose=transpose, return_x=return_states, squeeze=squeeze, method="LSODA") else: sys = _convert_to_statespace(sys) A, B, C, D = np.asarray(sys.A), np.asarray(sys.B), np.asarray(sys.C), \ @@ -1206,6 +1211,11 @@ def forced_response( for i in range(1, n_steps): xout[:, i] = (Ad @ xout[:, i-1] + Bd0 @ U[:, i-1] + Bd1 @ U[:, i]) + # debug print + if i < 10: + print("dxdt = ", (Ad @ xout[:, i-1] + + Bd0 @ U[:, i-1] + Bd1 @ U[:, i])) + yout = C @ xout + D @ U tout = T @@ -1354,7 +1364,8 @@ def _process_time_response( def step_response( sysdata, timepts=None, initial_state=0., input_indices=None, output_indices=None, timepts_num=None, transpose=False, - return_states=False, squeeze=None, params=None, **kwargs): + return_states=False, squeeze=None, params=None, use_mos=False, + **kwargs): # pylint: disable=W0622 """Compute the step response for a linear system. @@ -1473,7 +1484,7 @@ def step_response( sys, T, initial_state=X0, input_indices=input, output_indices=output, timepts_num=T_num, transpose=transpose, return_states=return_x, squeeze=squeeze, - params=params)) + params=params, use_mos=use_mos)) return TimeResponseList(responses) else: sys = sysdata @@ -1528,7 +1539,7 @@ def step_response( #print(U) - response = forced_response(sys, T, U, X0, squeeze=True, params=params) + response = forced_response(sys, T, U, X0, squeeze=True, params=params, use_mos=use_mos,) inpidx = i if input is None else 0 yout[:, inpidx, :] = response.y if output is None \ else response.y[output] From 4172ce86f59c86d426d36fb7bf81b94e5dfa3c3d Mon Sep 17 00:00:00 2001 From: MythasNauveili Date: Sat, 3 May 2025 23:37:14 +0200 Subject: [PATCH 11/16] cleaning old dde methods --- control/dde.py | 216 +- control/julia/README.md | 6 + control/julia/compute_tests.jl | 8 +- control/julia/julia_results.json | 43736 +++-------------------------- control/tests/dde_test.py | 119 + control/tests/delay_lti_test.py | 95 +- control/timeresp.py | 19 +- 7 files changed, 4009 insertions(+), 40190 deletions(-) diff --git a/control/dde.py b/control/dde.py index 300dc20d3..176127921 100644 --- a/control/dde.py +++ b/control/dde.py @@ -1,11 +1,11 @@ import numpy as np -from scipy.integrate import LSODA, solve_ivp +from scipy.integrate import solve_ivp, OdeSolution from scipy.interpolate import PchipInterpolator +from typing import Callable, List def dde_response(delay_sys, T, U=0, X0=0, params=None, - transpose=False, return_x=False, squeeze=None, - method=None): + transpose=False, return_x=False, squeeze=None): """Compute the output of a delay linear system given the input. Parameters @@ -96,23 +96,8 @@ def dde_response(delay_sys, T, U=0, X0=0, params=None, xout[:, 0] = X0 yout = np.zeros((n_outputs, n_steps)) tout = T + xout, yout = solve_dde_mos(delay_sys, T, U, X0, dt) - # Solver here depending on the method - if method == 'LSODA': - xout, yout = Skogestad_Python_LSODA(delay_sys, dt, T, U, X0, xout, yout) - elif method == 'mos': - B2C2 = B2 @ C2 - B2D21 = B2 @ D21 - D12C2 = D12 @ C2 - D12D21 = D12 @ D21 - system_params = A, B2C2, B1, B2D21, tau, C1, D11, D12C2, D12D21 - u_func = pchip_interp_u(T, U) - xout, yout = solve_dde_mos(delay_sys, T, U, X0, dt) - else: - xout, yout = Skogestad_Python_solver(delay_sys, dt, T, U, X0, xout, yout) - - - return TimeResponseData( tout, yout, xout, U, params=params, @@ -127,133 +112,6 @@ def dde_response(delay_sys, T, U=0, X0=0, params=None, ) -def Skogestad_Python_solver(delay_sys, dt, T, U, X0, xout, yout): - """ - Method from Skogestad-Python: https://github.com/alchemyst/Skogestad-Python/blob/master/robustcontrol/InternalDelay.py#L446 - RK integration. - - Parameters - ---------- - delay_sys : DelayLTI - Delay I/O system for which forced response is computed. - dt : float - Time step for the integration. - T : array_like - An array representing the time points where the input is specified. - The time points must be uniformly spaced. - U : array_like or float, optional - Input array giving input at each time in `T`. - X0 : array_like or float, default=0. - Initial condition. - xout : array_like - Array to store the state vector at each time step. - yout : array_like - Array to store the output vector at each time step. - - Returns - ------- - xout : array_like - Array containing the state vector at each time step. - yout : array_like - Array containing the output vector at each time step. - - """ - dtss = [int(np.round(delay / dt)) for delay in delay_sys.tau] - zs = [] - - def f(t, x): - return delay_sys.P.A @ x + delay_sys.P.B1 @ linear_interp_u(t, T, U) + delay_sys.P.B2 @ wf(zs, dtss) - - xs = [X0] - ys = [] - for i,t in enumerate(T): - x = xs[-1] - - y = delay_sys.P.C1 @ np.array(x) + delay_sys.P.D11 @ linear_interp_u(t, T, U) + delay_sys.P.D12 @ wf(zs, dtss) - ys.append(list(y)) - - z = delay_sys.P.C2 @ np.array(x) + delay_sys.P.D21 @ linear_interp_u(t, T, U) + delay_sys.P.D22 @ wf(zs, dtss) - zs.append(list(z)) - - # x integration - k1 = f(t, x) * dt - k2 = f(t + 0.5 * dt, x + 0.5 * k1) * dt - k3 = f(t + 0.5 * dt, x + 0.5 * k2) * dt - k4 = f(t + dt, x + k3) * dt - dx = (k1 + k2 + k2 + k3 + k3 + k4) / 6 - x = [xi + dxi for xi, dxi in zip(x, dx)] - xs.append(list(x)) - - xout[:, i] = x - yout[:, i] = y - - return xout, yout - - -def Skogestad_Python_LSODA(delay_sys, dt, T, U, X0, xout, yout): - """ - Method using LSODA solver. - - Parameters - ---------- - delay_sys : DelayLTI - Delay I/O system for which forced response is computed. - dt : float - Time step for the integration. - T : array_like - An array representing the time points where the input is specified. - The time points must be uniformly spaced. - U : array_like or float, optional - Input array giving input at each time in `T`. - X0 : array_like or float, default=0. - Initial condition. - xout : array_like - Array to store the state vector at each time step. - yout : array_like - Array to store the output vector at each time step. - - Returns - ------- - xout : array_like - Array containing the state vector at each time step. - yout : array_like - Array containing the output vector at each time step. - - """ - print("LSODA solver") - dtss = [int(np.round(delay / dt)) for delay in delay_sys.tau] - zs = [] - - def f(t, x): - return delay_sys.P.A @ x + delay_sys.P.B1 @ linear_interp_u(t, T, U) + delay_sys.P.B2 @ wf(zs, dtss) - - solver = LSODA(f, T[0], X0, t_bound=T[-1], max_step=dt) - - xs = [X0] - ts = [T[0]] - while solver.status == "running": - t = ts[-1] - x = xs[-1] - #y = delay_sys.P.C1 @ np.array(x) + delay_sys.P.D11 @ linear_interp_u(t, T, U) + delay_sys.P.D12 @ wf(zs, dtss) - z = delay_sys.P.C2 @ np.array(x) + delay_sys.P.D21 @ linear_interp_u(t, T, U) + delay_sys.P.D22 @ wf(zs, dtss) - zs.append(list(z)) - - solver.step() - t = solver.t - ts.append(t) - - x = solver.y.copy() - xs.append(list(x)) - - for it, ti in enumerate(T): - if ts[-2] < ti <= ts[-1]: - xi = solver.dense_output()(ti) - xout[:, it] = xi - yout[:, it] = delay_sys.P.C1 @ np.array(xi) + delay_sys.P.D11 @ linear_interp_u(t, T, U) + delay_sys.P.D12 @ wf(zs, dtss) - - return xout, yout - - def pchip_interp_u(T, U): def negative_wrapper(interp): return lambda t: interp(t) if t >= T[0] else 0 @@ -266,76 +124,10 @@ def negative_wrapper(interp): else: return np.array([negative_wrapper(PchipInterpolator(T, ui)) for ui in U]) - - - -def linear_interp_u(t, T, U): - """ - Linearly interpolate the input U at time t. - - Parameters - ---------- - t : float - Time at which to interpolate. - T : array_like - Array of time points. - U : array_like - Array of input values. - - Returns - ------- - u : array_like - Interpolated input value at time t. - - """ - - if np.ndim(U) == 1: - return np.array([np.interp(t, T, U)]) - elif np.ndim(U) == 0: - print("U is a scalar !") - return U - else: - return np.array([np.interp(t, T, ui) for ui in U]) -def wf(zs, dtss): - """ - Compute the delayed inputs. - - Parameters - ---------- - zs : list of list - List of internal outputs at each time step. - dtss : list of int - List of time delays in number of time steps. - - Returns - ------- - ws : array_like - Array of delayed inputs. - - """ - - ws = [] - for i, dts in enumerate(dtss): - if len(zs) <= dts: - ws.append(0) - elif dts == 0: - ws.append(zs[-1][i]) - else: - ws.append(zs[-dts][i]) - return np.array(ws) - - - - - -#### Implementation of Methods of Steps, TO TEST #### -from scipy.integrate import OdeSolution -from typing import Callable, List - class DdeHistory: """ Stores the computed solution history for a DDE and provides a callable diff --git a/control/julia/README.md b/control/julia/README.md index 9d069884a..c6d8f5ea6 100644 --- a/control/julia/README.md +++ b/control/julia/README.md @@ -9,4 +9,10 @@ In order to run the ``compute_tests.jl`` file, the user should install: - the ControlSystems.jl package from https://github.com/JuliaControl/ControlSystems.jl - the JSON.jl package from https://github.com/JuliaIO/JSON.jl +Then, the user should open a terminal: +```bash +cd /control/julia +julia compute_tests.jl +``` + The ``utils.py`` file contains helper functions to deserialize data from json to python. \ No newline at end of file diff --git a/control/julia/compute_tests.jl b/control/julia/compute_tests.jl index 133eebc40..d8148ad2b 100644 --- a/control/julia/compute_tests.jl +++ b/control/julia/compute_tests.jl @@ -219,10 +219,10 @@ function main() results_TestTimeResp = Dict( "test_mimo_step_response" => Dict( - "y11" => test_step_response(wood_berry, 0:0.01:100)[1, :, 1], - "y12" => test_step_response(wood_berry, 0:0.01:100)[1, :, 2], - "y21" => test_step_response(wood_berry, 0:0.01:100)[2, :, 1], - "y22" => test_step_response(wood_berry, 0:0.01:100)[2, :, 2] + "y11" => test_step_response(wood_berry, 0:0.1:100)[1, :, 1], + "y12" => test_step_response(wood_berry, 0:0.1:100)[1, :, 2], + "y21" => test_step_response(wood_berry, 0:0.1:100)[2, :, 1], + "y22" => test_step_response(wood_berry, 0:0.1:100)[2, :, 2] ) ) diff --git a/control/julia/julia_results.json b/control/julia/julia_results.json index b4ae294d9..610ddb9d4 100644 --- a/control/julia/julia_results.json +++ b/control/julia/julia_results.json @@ -32,6 +32,979 @@ 0.0, 0.0, 0.0, + -1.3437591982978894e-6, + -0.08978739139278828, + -0.1791469027870749, + -0.26808190423866235, + -0.35659441241806067, + -0.4446864344154163, + -0.5323599677860239, + -0.6196170005956255, + -0.7064595114654756, + -0.7928894696172331, + -0.8789088349175974, + -0.9645195579227566, + -1.0497235799226154, + -1.1345228329848143, + -1.2189192399985482, + -1.302914714718151, + -1.386511161806517, + -1.469710476878274, + -1.5525145465427697, + -1.6349252484468597, + -1.716944451317466, + -1.7985740150039775, + -1.8798157905204074, + -1.9606716200873666, + -2.0411433371738488, + -2.1212327665387822, + -2.200941724272437, + -2.280272017837588, + -2.3592254461105027, + -2.4378037994217427, + -2.5160088595967323, + -2.593842399996209, + -2.6713061855563898, + -2.74840197282902, + -2.825131510021202, + -2.9014965370350168, + -2.9774987855070068, + -3.053139978847424, + -3.128421832279311, + -3.2033460528774076, + -3.2779143396068315, + -3.3521283833616375, + -3.425989867003143, + -3.4995004653980852, + -3.5726618454566084, + -3.6454756661700567, + -3.717943578648596, + -3.790067226158653, + -3.861848244160178, + -3.93328826034373, + -4.004388894667385, + -4.075151759393472, + -4.14557845912513, + -4.215670590842699, + -4.285429743939914, + -4.354857500259977, + -4.423955434131404, + -4.492725112403728, + -4.561168094483032, + -4.629285932367303, + -4.6970801706816365, + -4.764552346713253, + -4.8317039904463615, + -4.898536624596848, + -4.965051764646806, + -5.031250918878907, + -5.097135588410597, + -5.162707267228137, + -5.227967442220476, + -5.292917593212968, + -5.357559193000939, + -5.421893707383074, + -5.485922595194656, + -5.549647308340645, + -5.6130692918286025, + -5.6761899838014624, + -5.739010815570138, + -5.801533211645981, + -5.8637585897730755, + -5.9256883609603905, + -5.987323929513786, + -6.048666693067842, + -6.1097180426175575, + -6.17047936254989, + -6.230952030675156, + -6.29113741825826, + -6.351036890049799, + -6.4106518043170055, + -6.469983512874547, + -6.529033361115187, + -6.58780268804028, + -6.646292826290142, + -6.70450510217427, + -6.762440835701412, + -6.820101340609509, + -6.877487924395471, + -6.934601888344837, + -6.991444527561277, + -7.0480171309959605, + -7.104320981476789, + -7.160357355737479, + -7.216127524446511, + -7.271632752235954, + -7.326874297730127, + -7.3818534135741585, + -7.43657134646237, + -7.491029337166559, + -7.5452286205641315, + -7.599170425666103, + -7.652855975644973, + -7.7062864878624495, + -7.7594631738970605, + -7.812387239571632, + -7.865059884980622, + -7.917482304517343, + -7.969655686901035, + -8.02158121520383, + -8.073260066877571, + -8.124693413780523, + -8.175882422203937, + -8.226828252898493, + -8.277532061100631, + -8.327994996558743, + -8.37821820355924, + -8.428202820952505, + -8.477949982178718, + -8.527460815293551, + -8.576736442993758, + -8.625777982642616, + -8.674586546295284, + -8.723163240724006, + -8.771509167443206, + -8.819625422734472, + -8.867513097671415, + -8.915173278144412, + -8.962607044885214, + -9.009815473491479, + -9.056799634451131, + -9.103560593166662, + -9.150099409979278, + -9.196417140192938, + -9.242514834098298, + -9.28839353699651, + -9.334054289222943, + -9.379498126170757, + -9.424726078314395, + -9.469739171232943, + -9.514538425633377, + -9.559124857373732, + -9.603499477486112, + -9.647663292199638, + -9.691617302963245, + -9.7353625064684, + -9.778899894671708, + -9.822230454817399, + -9.865355169459711, + -9.908275016485183, + -9.950990969134805, + -9.993503996026124, + -10.035815061175173, + -10.07792512401835, + -10.119835139434164, + -10.161546057764903, + -10.203058824838159, + -10.244374381988305, + -10.285493666077812, + -10.326417609518513, + -10.367147140292742, + -10.407683181974367, + -10.448026653749746, + -10.48817847043856, + -10.528139542514564, + -10.56791077612623, + -10.607493073117292, + -10.646887331047205, + -10.686094443211482, + -10.725115298661969, + -10.763950782226992, + -10.802601774531425, + -10.84106915201666, + -10.879353786960476, + -10.917456547496824, + -10.95537829763552, + -10.993119897281812, + -11.030682202255909, + -11.06806606431236, + -11.105272331159396, + -11.142301846478132, + -11.1791554499417, + -11.215833977234302, + -11.25233826007014, + -11.2886691262123, + -11.3248273994915, + -11.360813899824784, + -11.396629443234112, + -11.432274841864855, + -11.467750904004225, + -11.5030584340996, + -11.538198232776752, + -11.573171096858026, + -11.607977819380379, + -11.64261918961339, + -11.677095993077145, + -11.711409011560043, + -11.745559023136543, + -11.77954680218478, + -11.813373119404153, + -11.847038741832785, + -11.88054443286491, + -11.91389095226821, + -11.947079056201005, + -11.980109497229442, + -12.012983024344525, + -12.045700382979113, + -12.078262315024835, + -12.110669558848883, + -12.142922849310787, + -12.175022917779062, + -12.206970492147786, + -12.238766296853125, + -12.270411052889743, + -12.301905477827162, + -12.33325028582603, + -12.364446187654305, + -12.395493890703394, + -12.42639409900417, + -12.457147513242955, + -12.4877548307774, + -12.518216745652294, + -12.548533948615317, + -12.578707127132681, + -12.608736965404741, + -12.638624144381502, + -12.668369341778048, + -12.697973232089929, + -12.72743648660844, + -12.756759773435853, + -12.785943757500567, + -12.814989100572175, + -12.843896461276485, + -12.872666495110439, + -12.901299854456992, + -12.929797188599895, + -12.958159143738422, + -12.986386363002024, + -13.014479486464909, + -13.042439151160556, + -13.07026599109617, + -13.097960637267041, + -13.125523717670875, + -13.152955857322006, + -13.180257678265596, + -13.207429799591727, + -13.234472837449436, + -13.261387405060699, + -13.288174112734318, + -13.314833567879782, + -13.341366375021028, + -13.367773135810145, + -13.39405444904103, + -13.42021091066295, + -13.446243113794072, + -13.472151648734904, + -13.497937102981677, + -13.523600061239675, + -13.549141105436483, + -13.574560814735204, + -13.599859765547567, + -13.625038531547007, + -13.650097683681679, + -13.6750377901874, + -13.69985941660053, + -13.72456312577081, + -13.749149477874106, + -13.773619030425124, + -13.79797233829005, + -13.822209953699133, + -13.846332426259202, + -13.870340302966133, + -13.894234128217253, + -13.91801444382368, + -13.941681789022613, + -13.965236700489568, + -13.988679712350523, + -14.012011356194057, + -14.035232161083387, + -14.058342653568372, + -14.081343357697452, + -14.104234795029527, + -14.127017484645792, + -14.149691943161498, + -14.172258684737677, + -14.194718221092792, + -14.21707106151434, + -14.239317712870411, + -14.261458679621171, + -14.283494463830307, + -14.305425565176416, + -14.32725248096431, + -14.348975706136338, + -14.370595733283563, + -14.392113052656963, + -14.413528152178536, + -14.434841517452359, + -14.456053631775617, + -14.477164976149536, + -14.498176029290317, + -14.519087267639973, + -14.539899165377138, + -14.560612194427831, + -14.581226824476127, + -14.601743522974845, + -14.622162755156122, + -14.642484984041964, + -14.66271067045477, + -14.682840273027741, + -14.70287424821532, + -14.722813050303516, + -14.742657131420208, + -14.762406941545418, + -14.782062928521489, + -14.801625538063252, + -14.821095213768134, + -14.840472397126216, + -14.85975752753024, + -14.878951042285577, + -14.89805337662014, + -14.91706496369426, + -14.9359862346105, + -14.954817618423425, + -14.973559542149353, + -14.992212430776018, + -15.010776707272218, + -15.0292527925974, + -15.047641105711204, + -15.06594206358297, + -15.08415608120119, + -15.102283571582912, + -15.120324945783125, + -15.138280612904051, + -15.156150980104446, + -15.173936452608821, + -15.191637433716636, + -15.209254324811441, + -15.226787525369978, + -15.244237432971241, + -15.261604443305496, + -15.278888950183243, + -15.296091345544154, + -15.31321201946596, + -15.33025136017329, + -15.347209754046487, + -15.364087585630351, + -15.38088523764288, + -15.397603090983928, + -15.41424152474386, + -15.430800916212132, + -15.44728164088586, + -15.463684072478332, + -15.480008582927471, + -15.496255542404281, + -15.51242531932124, + -15.52851828034065, + -15.544534790382949, + -15.56047521263499, + -15.576339908558282, + -15.592129237897177, + -15.607843558687026, + -15.623483227262314, + -15.639048598264715, + -15.654540024651157, + -15.669957857701814, + -15.685302447028073, + -15.700574140580464, + -15.715773284656548, + -15.730900223908767, + -15.745955301352264, + -15.760938858372661, + -15.775851234733803, + -15.790692768585446, + -15.805463796470944, + -15.820164653334876, + -15.834795672530635, + -15.84935718582799, + -15.863849523420612, + -15.878273013933553, + -15.89262798443071, + -15.906914760422234, + -15.921133665871913, + -15.935285023204512, + -15.949369153313096, + -15.9633863755663, + -15.977337007815567, + -15.991221366402362, + -16.005039766165343, + -16.0187925204475, + -16.032479941103265, + -16.04610233850557, + -16.059660021552904, + -16.0731532976763, + -16.08658247284631, + -16.099947851579962, + -16.113249736947637, + -16.126488430579965, + -16.13966423267464, + -16.152777442003252, + -16.16582835591805, + -16.178817270358675, + -16.191744479858908, + -16.20461027755329, + -16.21741495518382, + -16.230158803106555, + -16.24284211029818, + -16.25546516436258, + -16.268028251537338, + -16.280531656700266, + -16.29297566337582, + -16.305360553741554, + -16.317686608634517, + -16.329954107557615, + -16.342163328685952, + -16.35431454887314, + -16.36640804365757, + -16.378444087268676, + -16.390422952633113, + -16.40234491138101, + -16.414210233852078, + -16.426019189101748, + -16.4377720449073, + -16.449469067773897, + -16.461110522940658, + -16.47269667438665, + -16.484227784836897, + -16.495704115768326, + -16.507125927415682, + -16.518493478777454, + -16.529807027621732, + -16.541066830492063, + -16.552273142713254, + -16.56342621839717, + -16.5745263104485, + -16.585573670570497, + -16.596568549270657, + -16.607511195866437, + -16.61840185849087, + -16.629240784098233, + -16.640028218469613, + -16.650764406218496, + -16.661449590796312, + -16.672084014497955, + -16.682667918467274, + -16.693201542702546, + -16.703685126061913, + -16.714118906268805, + -16.724503119917323, + -16.734838002477606, + -16.745123788301186, + -16.755360710626267, + -16.76554900158305, + -16.775688892198975, + -16.78578061240397, + -16.79582439103566, + -16.80582045584456, + -16.815769033499237, + -16.825670349591437, + -16.835524628641227, + -16.845332094102076, + -16.85509296836591, + -16.86480747276816, + -16.87447582759279, + -16.884098252077283, + -16.893674964417624, + -16.903206181773225, + -16.91269212027188, + -16.922132995014643, + -16.9315290200807, + -16.94088040853225, + -16.95018737241933, + -16.959450122784588, + -16.96866886966812, + -16.977843822112202, + -16.98697518816603, + -16.996063174890452, + -17.00510798836266, + -17.014109833680845, + -17.02306891496887, + -17.031985435380893, + -17.040859597105964, + -17.049691601372626, + -17.058481648453455, + -17.067229937669627, + -17.07593666739542, + -17.08460203506273, + -17.093226237165517, + -17.10180946926429, + -17.110351925990525, + -17.1188538010511, + -17.127315287232655, + -17.13573657640599, + -17.144117859530407, + -17.15245932665803, + -17.160761166938137, + -17.169023568621427, + -17.1772467190643, + -17.185430804733105, + -17.193576011208368, + -17.201682523189, + -17.20975052449648, + -17.21778019807903, + -17.225771726015754, + -17.233725289520788, + -17.24164106894738, + -17.249519243792008, + -17.257359992698426, + -17.265163493461728, + -17.272929923032383, + -17.280659457520233, + -17.28835227219851, + -17.296008541507778, + -17.303628439059914, + -17.311212137642034, + -17.318759809220424, + -17.32627162494442, + -17.333747755150306, + -17.341188369365153, + -17.348593636310703, + -17.355963723907152, + -17.363298799276983, + -17.370599028748753, + -17.377864577860855, + -17.385095611365283, + -17.39229229323136, + -17.399454786649464, + -17.40658325403471, + -17.413677857030663, + -17.42073875651297, + -17.42776611259304, + -17.434760084621647, + -17.44172083119257, + -17.448648510146153, + -17.455543278572925, + -17.462405292817134, + -17.46923470848031, + -17.476031680424775, + -17.482796362777165, + -17.489528908931934, + -17.49622947155481, + -17.50289820258628, + -17.50953525324502, + -17.516140774031328, + -17.522714914730535, + -17.529257824416412, + -17.535769651454544, + -17.54225054350568, + -17.5487006475291, + -17.555120109785946, + -17.56150907584253, + -17.56786769057364, + -17.574196098165825, + -17.580494442120653, + -17.586762865258, + -17.593001509719233, + -17.59921051697049, + -17.605390027805853, + -17.611540182350545, + -17.617661120064113, + -17.6237529797436, + -17.629815899526672, + -17.635850016894764, + -17.64185546867619, + -17.647832391049256, + -17.653780919545333, + -17.659701189051948, + -17.665593333815828, + -17.671457487445945, + -17.67729378291656, + -17.683102352570224, + -17.688883328120784, + -17.69463684065637, + -17.700363020642357, + -17.706061997924348, + -17.711733901731098, + -17.717378860677446, + -17.722997002767244, + -17.728588455396235, + -17.734153345354976, + -17.739691798831682, + -17.745203941415106, + -17.750689898097384, + -17.756149793276855, + -17.7615837507609, + -17.766991893768743, + -17.772374344934246, + -17.77773122630869, + -17.78306265936353, + -17.788368764993173, + -17.7936496635177, + -17.798905474685604, + -17.8041363176765, + -17.809342311103837, + -17.81452357301757, + -17.819680220906854, + -17.824812371702702, + -17.82992014178064, + -17.83500364696333, + -17.840063002523216, + -17.845098323185137, + -17.85010972312891, + -17.855097315991944, + -17.86006121487179, + -17.865001532328726, + -17.869918380388306, + -17.874811870543894, + -17.879682113759195, + -17.884529220470778, + -17.88935330059055, + -17.8941544635083, + -17.898932818094146, + -17.903688472701, + -17.908421535167037, + -17.91313211281814, + -17.917820312470326, + -17.922486240432185, + -17.927130002507273, + -17.931751703996518, + -17.936351449700595, + -17.940929343922328, + -17.945485490469046, + -17.95001999265492, + -17.954532953303328, + -17.959024474749157, + -17.96349465884117, + -17.967943606944278, + -17.972371419941847, + -17.97677819823799, + -17.981164041759836, + -17.98552904995981, + -17.98987332181788, + -17.994196955843794, + -17.998500050079333, + -18.0027827021005, + -18.007045009019784, + -18.011287067488304, + -18.015508973698058, + -18.019710823384052, + -18.023892711826512, + -18.028054733853015, + -18.03219698384065, + -18.036319555718176, + -18.040422542968116, + -18.044506038628917, + -18.048570135297016, + -18.052614925128978, + -18.056640499843574, + -18.060646950723836, + -18.06463436861917, + -18.068602843947392, + -18.072552466696763, + -18.076483326428065, + -18.080395512276603, + -18.084289112954252, + -18.088164216751434, + -18.092020911539148, + -18.09585928477097, + -18.09967942348499, + -18.103481414305843, + -18.10726534344663, + -18.111031296710895, + -18.114779359494573, + -18.118509616787897, + -18.122222153177372, + -18.12591705284765, + -18.129594399583464, + -18.133254276771517, + -18.136896767402376, + -18.140521954072366, + -18.14412991898541, + -18.147720743954935, + -18.15129451040569, + -18.15485129937562, + -18.15839119151769, + -18.161914267101718, + -18.165420606016177, + -18.16891028777005, + -18.172383391494584, + -18.175839995945122, + -18.17928017950286, + -18.182704020176637, + -18.186111595604725, + -18.18950298305654, + -18.192878259434444, + -18.196237501275462, + -18.199580784753014, + -18.20290818567867, + -18.206219779503837, + -18.209515641321488, + -18.212795845867856, + -18.21606046752414, + -18.219309580318185, + -18.222543257926148, + -18.225761573674202, + -18.228964600540163, + -18.232152411155152, + -18.235325077805275, + -18.238482672433214, + -18.241625266639897, + -18.244752931686094, + -18.247865738494045, + -18.250963757649078, + -18.254047059401184, + -18.25711571366665, + -18.260169790029593, + -18.26320935774357, + -18.266234485733168, + -18.269245242595506, + -18.272241696601856, + -18.27522391569914, + -18.278191967511503, + -18.281145919341842, + -18.284085838173308, + -18.287011790670864, + -18.28992384318276, + -18.29282206174205, + -18.295706512068108, + -18.29857725956809, + -18.301434369338445, + -18.30427790616635, + -18.307107934531228, + -18.30992451860618, + -18.312727722259442, + -18.31551760905585, + -18.318294242258254, + -18.32105768482898, + -18.323807999431246, + -18.326545248430573, + -18.329269493896227, + -18.331980797602597, + -18.334679221030598, + -18.337364825369097, + -18.34003767151626, + -18.34269782008096, + -18.345345331384145, + -18.347980265460187, + -18.350602682058284, + -18.353212640643765, + -18.355810200399485, + -18.358395420227136, + -18.36096835874859, + -18.363529074307237, + -18.366077624969297, + -18.368614068525144, + -18.371138462490617, + -18.37365086410831, + -18.3761513303489, + -18.3786399179124, + -18.38111668322948, + -18.38358168246272, + -18.386034971507897, + -18.38847660599526, + -18.390906641290773, + -18.39332513249738, + -18.39573213445626, + -18.39812770174805, + -18.400511888694115, + -18.402884749357746, + -18.405246337545417, + -18.407596706807983, + -18.409935910441884, + -18.412264001490403, + -18.41458103274481, + -18.4168870567456, + -18.419182125783674, + -18.421466291901496, + -18.423739606894323, + -18.42600212231134, + -18.428253889456855, + -18.430494959391442, + -18.432725382933103, + -18.43494521065844, + -18.437154492903776, + -18.439353279766305, + -18.441541621105237, + -18.44371956654291, + -18.445887165465948, + -18.44804446702634, + -18.45019152014258, + -18.45232837350078, + -18.454455075555742, + -18.456571674532107, + -18.4586782184254, + -18.46077475500315, + -18.46286133180596, + -18.464937996148574, + -18.467004795120992, + -18.46906177558948, + -18.471108984197684, + -18.473146467367652, + -18.475174271300897, + -18.477192441979465, + -18.47920102516694, + -18.48120006640952, + -18.483189611037027, + -18.485169704163923, + -18.487140390690374, + -18.48910171530323, + -18.491053722477062, + -18.49299645647515, + -18.4949299613505, + -18.49685428094685, + -18.498769458899634, + -18.500675538637026, + -18.502572563380856, + -18.504460576147636, + -18.506339619749543, + -18.50820973679534, + -18.5100709696914, + -18.51192336064263, + -18.51376695165343, + -18.515601784528673, + -18.51742790087462, + -18.51924534209989, + -18.521054149416376, + -18.522854363840185, + -18.524646026192602, + -18.52642917710095, + -18.528203856999582, + -18.52997010613074, + -18.531727964545496, + -18.53347747210467, + -18.535218668479704, + -18.536951593153585, + -18.538676285421737, + -18.54039278439289, + -18.54210112899001, + -18.543801357951125, + -18.545493509830276, + -18.54717762299831, + -18.54885373564381, + -18.550521885773943, + -18.552182111215302, + -18.553834449614804, + -18.555478938440512, + -18.55711561498248, + -18.558744516353638, + -18.560365679490584, + -18.56197914115447, + -18.563584937931786, + -18.565183106235228, + -18.566773682304515, + -18.568356702207186, + -18.569932201839467, + -18.571500216927035, + -18.57306078302585, + -18.574613935522972, + -18.576159709637338, + -18.577698140420594, + -18.579229262757845, + -18.58075311136849, + -18.582269720806984, + -18.583779125463625, + -18.585281359565347, + -18.586776457176473, + -18.58826445219951, + -18.589745378375913, + -18.59121926928682, + -18.592686158353878, + -18.594146078839923, + -18.5955990638498, + -18.597045146331077, + -18.598484359074792, + -18.59991673471623, + -18.60134230573562, + -18.602761104458892, + -18.604173163058423, + -18.605578513553734, + -18.606977187812248, + -18.608369217549996, + -18.60975463433233, + -18.611133469574664, + -18.612505754543154, + -18.613871520355445, + -18.615230797981333, + -18.616583618243496, + -18.617930011818192, + -18.61927000923594, + -18.620603640882237, + -18.62193093699822, + -18.62325192768135, + -18.624566642886133, + -18.62587511242475, + -18.627177365967786, + -18.628473433044842, + -18.62976334304525, + -18.631047125218732, + -18.632324808676042, + -18.633596422389658, + -18.63486199519441, + -18.636121555788137, + -18.637375132732373, + -18.638622754452943, + -18.639864449240648, + -18.64110024525188, + -18.64233017050928, + -18.643554252902362, + -18.64477252018815, + -18.645984999991803, + -18.647191719807253, + -18.6483927069978, + -18.649587988796778, + -18.650777592308124, + -18.651961544507035, + -18.653139872240544, + -18.654312602228146, + -18.655479761062416, + -18.65664137520959, + -18.65779747101017, + -18.658948074679536, + -18.660093212308517, + -18.661232909864008, + -18.662367193189535, + -18.66349608800586, + -18.66461961991156, + -18.66573781438358, + -18.666850696777864, + -18.66795829232988, + -18.669060626155236, + -18.6701577232502, + -18.6712496084923, + -18.67233630664089, + -18.6734178423377, + -18.674494240107396, + -18.675565524358134, + -18.67663171938212, + -18.67769284935616, + -18.678748938342192, + -18.679800010287877, + -18.680846089027078, + -18.681887198280446, + -18.682923361655956, + -18.683954602649404, + -18.684980944645, + -18.68600241091584, + -18.68701902462447, + -18.688030808823395, + -18.689037786455614, + -18.690039980355134, + -18.691037413247482, + -18.69203010775022, + -18.693018086373474, + -18.69400137152043, + -18.694979985487844, + -18.695953950466556, + -18.696923288541974, + -18.697888021694602, + -18.698848171800506, + -18.699803760631855, + -18.700754809857358, + -18.701701341042796, + -18.702643375651512, + -18.703580935044865, + -18.704514040482756, + -18.70544271312407, + -18.706366974027183, + -18.707286844150442, + -18.708202344352603, + -18.709113495393364, + -18.71002031793378, + -18.71092283253675, + -18.711821059667507, + -18.712715019694045, + -18.713604732887614 + ], + "y22": [ 0.0, 0.0, 0.0, @@ -62,6 +1035,979 @@ 0.0, 0.0, 0.0, + -2.011491392513816e-6, + -0.13425751525896482, + -0.2675839189151568, + -0.3999876521927742, + -0.5314751003283802, + -0.6620526043702274, + -0.791726461484058, + -0.9205029252567921, + -1.0483882059980858, + -1.1753884710398652, + -1.3015098450337221, + -1.4267584102462887, + -1.551140206852554, + -1.674661233227152, + -1.7973274462336506, + -1.9191447615117916, + -2.0401190537628184, + -2.16025615703276, + -2.279561864993782, + -2.3980419312236023, + -2.515702069482933, + -2.6325479539910654, + -2.7485852196994918, + -2.863819462563649, + -2.978256239812809, + -3.091901070218039, + -3.204759434358392, + -3.3168367748851857, + -3.428138496784478, + -3.5386699676377398, + -3.648436517880671, + -3.757443441060327, + -3.8656959940903386, + -3.973199397504468, + -4.0799588357083705, + -4.185979457229577, + -4.291266374965841, + -4.39582466643167, + -4.499659374003204, + -4.602775505161395, + -4.705178032733466, + -4.806871895132765, + -4.907861996596906, + -5.0081532074242725, + -5.107750364208899, + -5.206658270073712, + -5.304881694902169, + -5.402425375568286, + -5.499294016165072, + -5.595492288231392, + -5.69102483097725, + -5.785896251507522, + -5.880111125044133, + -5.9736739951466955, + -6.066589373931626, + -6.158861742289756, + -6.250495550102411, + -6.341495216456018, + -6.431865129855208, + -6.521609648434454, + -6.610733100168261, + -6.699239783079871, + -6.787133965448538, + -6.874419886015368, + -6.961101754187732, + -7.04718375024228, + -7.132670025526524, + -7.217564702659043, + -7.301871875728298, + -7.385595610490062, + -7.468739944563518, + -7.551308887625951, + -7.63330642160613, + -7.714736500876328, + -7.7956030524430275, + -7.875909976136314, + -7.955661144797934, + -8.034860404468066, + -8.113511574570804, + -8.191618448098335, + -8.269184791793888, + -8.346214346333356, + -8.422710826505714, + -8.498677921392149, + -8.574119294543989, + -8.649038584159353, + -8.72343940325863, + -8.797325339858702, + -8.870699957145984, + -8.943566793648264, + -9.015929363405345, + -9.08779115613851, + -9.15915563741882, + -9.23002624883424, + -9.300406408155622, + -9.370299509501505, + -9.43970892350182, + -9.508637997460434, + -9.577090055516567, + -9.64506839880512, + -9.71257630561585, + -9.779617031551481, + -9.846193809684708, + -9.912309850714104, + -9.977968343118972, + -10.0431724533131, + -10.107925325797456, + -10.172230083311858, + -10.23608982698554, + -10.299507636486734, + -10.362486570171164, + -10.425029665229552, + -10.487139937834081, + -10.548820383283852, + -10.610073976149343, + -10.670903670415843, + -10.731312399625924, + -10.791303077020904, + -10.85087859568134, + -10.910041828666557, + -10.968795629153192, + -11.027142830572792, + -11.085086246748464, + -11.142628672030561, + -11.199772881431462, + -11.256521630759377, + -11.31287765675125, + -11.368843677204755, + -11.424422391109342, + -11.479616478776423, + -11.534428601968605, + -11.58886140402807, + -11.642917510004041, + -11.696599526779396, + -11.749910043196364, + -11.802851630181383, + -11.855426840869093, + -11.907638210725437, + -11.959488257669962, + -12.010979482197238, + -12.062114367497436, + -12.112895379576097, + -12.163324967373036, + -12.213405562880467, + -12.263139581260273, + -12.312529420960477, + -12.361577463830914, + -12.410286075238094, + -12.458657604179278, + -12.506694383395754, + -12.554398729485335, + -12.601772943014083, + -12.64881930862724, + -12.695540095159435, + -12.74193755574407, + -12.788013927921995, + -12.833771433749408, + -12.879212279905017, + -12.92433865779646, + -12.969152743665987, + -13.013656698695407, + -13.057852669110305, + -13.10174278628357, + -13.145329166838147, + -13.188613912749144, + -13.231599111445176, + -13.27428683590905, + -13.316679144777732, + -13.35877808244161, + -13.40058567914311, + -13.442103951074582, + -13.483334900475558, + -13.52428051572929, + -13.564942771458638, + -13.605323628621328, + -13.645425034604475, + -13.685248923318536, + -13.724797215290554, + -13.764071817756777, + -13.80307462475465, + -13.841807517214127, + -13.880272363048416, + -13.918471017244032, + -13.956405321950264, + -13.994077106568021, + -14.03148818783804, + -14.068640369928513, + -14.105535444522094, + -14.142175190902284, + -14.178561376039273, + -14.214695754675109, + -14.250580069408363, + -14.286216050778147, + -14.321605417347559, + -14.356749875786594, + -14.39165112095441, + -14.426310835981091, + -14.460730692348818, + -14.49491234997245, + -14.528857457279607, + -14.562567651290134, + -14.596044557695084, + -14.62928979093509, + -14.662304954278222, + -14.695091639897326, + -14.727651428946784, + -14.759985891638786, + -14.792096587319048, + -14.82398506454199, + -14.85565286114546, + -14.887101504324855, + -14.918332510706792, + -14.949347386422255, + -14.980147627179196, + -15.010734718334712, + -15.041110134966635, + -15.071275341944695, + -15.101231794001164, + -15.13098093580098, + -15.160524202011466, + -15.189863017371469, + -15.218998796760106, + -15.247932945264981, + -15.276666858249937, + -15.30520192142237, + -15.333539510900032, + -15.361680993277421, + -15.389627725691664, + -15.417381055887967, + -15.44494232228463, + -15.47231285403757, + -15.49949397110443, + -15.526486984308246, + -15.553293195400634, + -15.5799138971246, + -15.606350373276852, + -15.63260389876974, + -15.658675739692725, + -15.68456715337343, + -15.710279388438295, + -15.735813684872765, + -15.761171274081121, + -15.78635337894585, + -15.811361213886602, + -15.836195984918788, + -15.860858889711714, + -15.885351117646358, + -15.909673849872725, + -15.933828259366784, + -15.957815510987082, + -15.98163676153087, + -16.005293159789932, + -16.02878584660596, + -16.052115954925576, + -16.07528460985498, + -16.098292928714187, + -16.121142021090947, + -16.143832988894218, + -16.166366926407314, + -16.188744920340707, + -16.210968049884386, + -16.233037386759946, + -16.25495399527225, + -16.276718932360748, + -16.29833324765047, + -16.319797983502628, + -16.341114175064895, + -16.362282850321325, + -16.383305030141912, + -16.404181728331846, + -16.424913951680377, + -16.4455027000094, + -16.46594896622165, + -16.48625373634858, + -16.506417989597942, + -16.52644269840097, + -16.546328828459313, + -16.566077338791587, + -16.58568918177962, + -16.605165303214402, + -16.624506642341665, + -16.643714131907213, + -16.66278869820188, + -16.681731261106204, + -16.70054273413481, + -16.719224024480425, + -16.737776033057667, + -16.756199654546478, + -16.77449577743525, + -16.79266528406371, + -16.810709050665437, + -16.828627947410148, + -16.846422838445648, + -16.86409458193948, + -16.88164403012037, + -16.89907202931926, + -16.916379420010177, + -16.933567036850736, + -16.950635708722384, + -16.967586258770414, + -16.9844195044436, + -17.001136257533684, + -17.017737324214483, + -17.034223505080774, + -17.05059559518692, + -17.066854384085183, + -17.083000655863835, + -17.099035189184942, + -17.11495875732193, + -17.130772128196874, + -17.146476064417524, + -17.162071323314102, + -17.17755865697581, + -17.192938812287075, + -17.208212530963635, + -17.22338054958824, + -17.2384435996462, + -17.253402407560692, + -17.268257694727726, + -17.283010177551, + -17.297660567476402, + -17.312209571026354, + -17.326657889833857, + -17.341006220676356, + -17.355255255509306, + -17.36940568149957, + -17.38345818105855, + -17.39741343187511, + -17.411272106948225, + -17.42503487461946, + -17.438702398605205, + -17.45227533802867, + -17.46575434745168, + -17.479140076906237, + -17.492433171925864, + -17.505634273576756, + -17.51874401848867, + -17.531763038885636, + -17.544691962616465, + -17.55753141318499, + -17.57028200978017, + -17.58294436730593, + -17.595519096410825, + -17.608006803517487, + -17.620408090851864, + -17.632723556472268, + -17.644953794298214, + -17.65709939413907, + -17.66916094172249, + -17.681139018722668, + -17.69303420278838, + -17.70484706757086, + -17.716578182751444, + -17.728228114069065, + -17.7397974233475, + -17.75128666852251, + -17.762696403668713, + -17.774027179026326, + -17.78527954102768, + -17.79645403232358, + -17.80755119180949, + -17.818571554651506, + -17.829515652312153, + -17.84038401257605, + -17.851177159575318, + -17.861895613814905, + -17.87253989219765, + -17.883110508049224, + -17.89360797114289, + -17.904032787724084, + -17.914385460534813, + -17.924666488837932, + -17.9348763684412, + -17.945015591721184, + -17.95508464764702, + -17.965084021803992, + -17.975014196416947, + -17.984875650373535, + -17.994668859247344, + -18.004394295320775, + -18.01405242760788, + -18.02364372187694, + -18.033168640672937, + -18.04262764333987, + -18.05202118604289, + -18.061349721790318, + -18.070613700455475, + -18.079813568798386, + -18.088949770487332, + -18.09802274612022, + -18.107032933245858, + -18.115980766385057, + -18.12486667705156, + -18.133691093772878, + -18.14245444211093, + -18.151157144682603, + -18.1597996211801, + -18.16838228839119, + -18.176905560219318, + -18.185369847703537, + -18.193775559038375, + -18.20212309959348, + -18.21041287193319, + -18.21864527583595, + -18.22682070831356, + -18.234939563630363, + -18.24300223332224, + -18.251009106215488, + -18.25896056844558, + -18.266857003475764, + -18.274698792115593, + -18.28248631253927, + -18.290219940303874, + -18.297900048367495, + -18.305527007107194, + -18.313101184336894, + -18.3206229453251, + -18.32809265281251, + -18.335510667029528, + -18.342877345713607, + -18.350193044126534, + -18.357458115071537, + -18.36467290891032, + -18.371837773579937, + -18.378953054609582, + -18.38601909513726, + -18.393036235926328, + -18.400004815381926, + -18.406925169567305, + -18.41379763222001, + -18.420622534768015, + -18.42740020634567, + -18.434130973809598, + -18.440815161754436, + -18.44745309252851, + -18.454045086249362, + -18.460591460819206, + -18.467092531940242, + -18.473548613129896, + -18.479960015735923, + -18.486327048951434, + -18.492650019829803, + -18.498929233299485, + -18.505164992178702, + -18.511357597190056, + -18.517507346975037, + -18.52361453810842, + -18.529679465112558, + -18.53570242047162, + -18.541683694645638, + -18.54762357608457, + -18.55352235124218, + -18.55938030458987, + -18.565197718630383, + -18.570974873911428, + -18.576712049039227, + -18.58240952069193, + -18.588067563632965, + -18.59368645072431, + -18.599266452939606, + -18.604807839377266, + -18.610310877273438, + -18.615775832014887, + -18.621202967151806, + -18.626592544410506, + -18.631944823706064, + -18.637260063154834, + -18.642538519086916, + -18.647780446058494, + -18.65298609686413, + -18.65815572254895, + -18.66328957242075, + -18.668387894062025, + -18.673450933341893, + -18.678478934427964, + -18.683472139798123, + -18.688430790252205, + -18.693355124923617, + -18.698245381290885, + -18.70310179518906, + -18.70792460082115, + -18.712714030769387, + -18.71747031600643, + -18.722193685906532, + -18.726884368256567, + -18.731542589267054, + -18.736168573583043, + -18.740762544294956, + -18.745324722949334, + -18.749855329559534, + -18.754354582616337, + -18.75882269909848, + -18.76325989448313, + -18.767666382756268, + -18.77204237642299, + -18.7763880865178, + -18.780703722614756, + -18.784989492837564, + -18.789245603869656, + -18.793472260964123, + -18.79766966795362, + -18.801838027260217, + -18.80597753990513, + -18.810088405518446, + -18.81417082234871, + -18.818224987272536, + -18.82225109580406, + -18.82624934210439, + -18.830219918990966, + -18.834163017946846, + -18.838078829129966, + -18.841967541382278, + -18.845829342238893, + -18.8496644179371, + -18.853472953425342, + -18.85725513237216, + -18.861011137175037, + -18.864741148969188, + -18.868445347636314, + -18.872123911813244, + -18.875777018900592, + -18.879404845071278, + -18.883007565279048, + -18.886585353266895, + -18.890138381575436, + -18.893666821551246, + -18.89717084335512, + -18.900650615970267, + -18.90410630721048, + -18.907538083728188, + -18.91094611102255, + -18.91433055344739, + -18.91769157421915, + -18.921029335424738, + -18.92434399802937, + -18.927635721884315, + -18.930904665734605, + -18.934150987226705, + -18.937374842916103, + -18.94057638827485, + -18.943755777699085, + -18.94691316451646, + -18.95004870099354, + -18.953162538343157, + -18.956254826731662, + -18.95932571528623, + -18.962375352102, + -18.965403884249245, + -18.968411457780444, + -18.97139821773734, + -18.97436430815794, + -18.97730987208344, + -18.98023505156514, + -18.98313998767129, + -18.986024820493896, + -18.988889689155467, + -18.991734731815736, + -18.994560085678316, + -18.99736588699732, + -19.000152271083913, + -19.002919372312878, + -19.00566732412906, + -19.008396259053818, + -19.01110630869141, + -19.013797603735334, + -19.016470273974655, + -19.019124448300232, + -19.02176025471096, + -19.024377820319927, + -19.026977271360543, + -19.029558733192648, + -19.03212233030853, + -19.034668186338955, + -19.037196424059108, + -19.039707165394514, + -19.042200531426946, + -19.04467664240023, + -19.04713561772606, + -19.049577575989762, + -19.052002634955997, + -19.054410911574447, + -19.05680252198547, + -19.059177581525674, + -19.061536204733507, + -19.063878505354747, + -19.066204596348026, + -19.06851458989025, + -19.070808597382015, + -19.07308672945299, + -19.07534909596723, + -19.077595806028505, + -19.079826967985536, + -19.082042689437227, + -19.08424307723786, + -19.086428237502236, + -19.088598275610813, + -19.09075329621477, + -19.092893403241053, + -19.09501869989741, + -19.097129288677323, + -19.099225271365007, + -19.101306749040283, + -19.103373822083448, + -19.10542659018015, + -19.107465152326153, + -19.109489606832142, + -19.111500051328452, + -19.11349658276978, + -19.115479297439865, + -19.117448290956105, + -19.119403658274212, + -19.121345493692754, + -19.123273890857718, + -19.125188942767032, + -19.12709074177504, + -19.128979379596935, + -19.13085494731324, + -19.132717535374145, + -19.1345672336039, + -19.136404131205136, + -19.138228316763147, + -19.140039878250207, + -19.14183890302978, + -19.14362547786074, + -19.145399688901563, + -19.14716162171445, + -19.148911361269505, + -19.150648991948795, + -19.152374597550445, + -19.154088261292642, + -19.155790065817676, + -19.157480093195932, + -19.159158424929824, + -19.16082514195776, + -19.16248032465799, + -19.16412405285253, + -19.165756405811003, + -19.16737746225445, + -19.16898730035914, + -19.17058599776032, + -19.172173631555964, + -19.173750278310525, + -19.17531601405857, + -19.17687091430851, + -19.178415054046173, + -19.17994850773849, + -19.181471349337027, + -19.18298365228158, + -19.184485489503732, + -19.185976933430325, + -19.187458055987, + -19.188928928601637, + -19.190389622207793, + -19.19184020724817, + -19.193280753677946, + -19.194711330968207, + -19.19613200810926, + -19.19754285361396, + -19.19894393552106, + -19.200335321398423, + -19.20171707834635, + -19.203089273000746, + -19.204451971536393, + -19.20580523967012, + -19.207149142663948, + -19.208483745328294, + -19.209809112025027, + -19.211125306670624, + -19.212432392739238, + -19.213730433265745, + -19.21501949084881, + -19.21629962765388, + -19.217570905416185, + -19.218833385443748, + -19.220087128620293, + -19.221332195408223, + -19.222568645851506, + -19.223796539578576, + -19.225015935805246, + -19.22622689333749, + -19.22742947057436, + -19.22862372551074, + -19.22980971574017, + -19.230987498457637, + -19.232157130462287, + -19.23331866816023, + -19.234472167567194, + -19.235617684311265, + -19.236755273635573, + -19.237884990400925, + -19.23900688908849, + -19.24012102380239, + -19.241227448272326, + -19.242326215856185, + -19.243417379542574, + -19.244500991953426, + -19.245577105346484, + -19.246645771617853, + -19.24770704230451, + -19.248760968586755, + -19.249807601290726, + -19.250846990890807, + -19.251879187512074, + -19.252904240932747, + -19.25392220058652, + -19.254933115565027, + -19.255937034620143, + -19.25693400616636, + -19.257924078283153, + -19.258907298717226, + -19.259883714884896, + -19.260853373874316, + -19.261816322447768, + -19.262772607043946, + -19.263722273780143, + -19.264665368454526, + -19.265601936548308, + -19.266532023227942, + -19.267455673347342, + -19.268372931449985, + -19.26928384177112, + -19.270188448239843, + -19.271086794481253, + -19.271978923818562, + -19.27286487927514, + -19.27374470357665, + -19.274618439153056, + -19.27548612814068, + -19.276347812384284, + -19.277203533439, + -19.278053332572423, + -19.278897250766544, + -19.279735328719724, + -19.280567606848713, + -19.281394125290525, + -19.282214923904444, + -19.283030042273886, + -19.283839519708337, + -19.284643395245272, + -19.285441707651973, + -19.286234495427472, + -19.287021796804353, + -19.28780364975061, + -19.28858009197151, + -19.28935116091136, + -19.290116893755354, + -19.290877327431335, + -19.2916324986116, + -19.29238244371467, + -19.29312719890701, + -19.29386680010482, + -19.29460128297574, + -19.295330682940566, + -19.296055035174998, + -19.29677437461126, + -19.297488735939883, + -19.298198153611292, + -19.2989026618375, + -19.299602294593782, + -19.300297085620276, + -19.30098706842363, + -19.301672276278616, + -19.30235274222971, + -19.303028499092743, + -19.303699579456413, + -19.304366015683925, + -19.30502783991449, + -19.305685084064912, + -19.30633777983113, + -19.30698595868971, + -19.307629651899425, + -19.30826889050269, + -19.3089037053271, + -19.309534126986936, + -19.310160185884584, + -19.310781912212065, + -19.311399335952434, + -19.312012486881255, + -19.312621394568055, + -19.313226088377696, + -19.31382659747186, + -19.314422950810386, + -19.31501517715271, + -19.31560330505926, + -19.316187362892784, + -19.316767378819776, + -19.317343380811796, + -19.317915396646814, + -19.318483453910602, + -19.319047579997992, + -19.319607802114255, + -19.320164147276387, + -19.320716642314398, + -19.321265313872654, + -19.321810188411106, + -19.322351292206616, + -19.322888651354173, + -19.323422291768196, + -19.323952239183768, + -19.324478519157857, + -19.325001157070595, + -19.325520178126446, + -19.32603560735546, + -19.326547469614486, + -19.327055789588314, + -19.327560591790956, + -19.32806190056674, + -19.328559740091524, + -19.329054134373887, + -19.329545107256227, + -19.330032682415972, + -19.33051688336667, + -19.33099773345915, + -19.331475255882662, + -19.33194947366595, + -19.332420409678424, + -19.3328880866312, + -19.333352527078226, + -19.333813753417388, + -19.33427178789155, + -19.334726652589662, + -19.3351783694478, + -19.335626960250227, + -19.336072446630475, + -19.336514850072337, + -19.336954191910948, + -19.33739049333379, + -19.337823775381707, + -19.33825405894996, + -19.338681364789174, + -19.339105713506402, + -19.339527125566068, + -19.339945621290973, + -19.340361220863297, + -19.340773944325523, + -19.341183811581466, + -19.341590842397167, + -19.341995056401892, + -19.34239647308907, + -19.342795111817214, + -19.343190991810893, + -19.343584132161606, + -19.34397455182874, + -19.34436226964049, + -19.344747304294735, + -19.345129674359978, + -19.345509398276192, + -19.345886494355753, + -19.346260980784322, + -19.346632875621683, + -19.347002196802663, + -19.347368962137953, + -19.34773318931499, + -19.348094895898832, + -19.348454099332937, + -19.348810816940095, + -19.349165065923177, + -19.349516863366013, + -19.34986622623423, + -19.35021317137601, + -19.350557715522967, + -19.350899875290917, + -19.351239667180675, + -19.35157710757889, + -19.35191221275878, + -19.352244998880977, + -19.35257548199425, + -19.352903678036306, + -19.353229602834578, + -19.35355327210694, + -19.353874701462523, + -19.354193906402404, + -19.354510902320403, + -19.354825704503813, + -19.35513832813412, + -19.355448788287767, + -19.355757099936845, + -19.356063277949833, + -19.356367337092326, + -19.356669292027725, + -19.356969157317966, + -19.3572669474242, + -19.35756267670749, + -19.357856359429555, + -19.358148009753368, + -19.35843764174393, + -19.35872526936888, + -19.3590109064992, + -19.359294566909902, + -19.35957626428063, + -19.359856012196403, + -19.360133824148193, + -19.360409713533613, + -19.360683693657585, + -19.36095577773292, + -19.361225978881023, + -19.361494310132482, + -19.361760784427688, + -19.362025414617516, + -19.36228821346388, + -19.362549193640398, + -19.36280836773296, + -19.363065748240363, + -19.363321347574924, + -19.363575178063034, + -19.363827251945814, + -19.364077581379643, + -19.364326178436777, + -19.364573055105954, + -19.3648182232929, + -19.365061694820994, + -19.36530348143177, + -19.365543594785496, + -19.36578204646177, + -19.366018847960042, + -19.36625401070019, + -19.366487546023045, + -19.36671946519096, + -19.366949779388374, + -19.367178499722282, + -19.36740563722286, + -19.367631202843913, + -19.36785520746345, + -19.368077661884225, + -19.368298576834196, + -19.36851796296712, + -19.368735830862985, + -19.368952191028576, + -19.369167053897993, + -19.36938042983308, + -19.369592329124018, + -19.36980276198975, + -19.3700117385785, + -19.370219268968285, + -19.370425363167342, + -19.370630031114686, + -19.370833282680522, + -19.371035127666755, + -19.371235575807475, + -19.371434636769376, + -19.37163232015229, + -19.371828635489592, + -19.37202359224868, + -19.37221719983145, + -19.372409467574716, + -19.372600404750703, + -19.37279002056744, + -19.372978324169242, + -19.373165324637153, + -19.373351030989358, + -19.37353545218165, + -19.373718597107825, + -19.373900474600134, + -19.374081093429723, + -19.374260462307014, + -19.37443858988217, + -19.374615484745487, + -19.37479115542779, + -19.374965610400903, + -19.375138858077996, + -19.375310906814033, + -19.375481764906144, + -19.375651440594044, + -19.375819942060442, + -19.37598727743139, + -19.37615345477673, + -19.37631848211045, + -19.37648236739106, + -19.376645118522024, + -19.37680674335209, + -19.37696724967571 + ], + "y21": [ 0.0, 0.0, 0.0, @@ -132,29883 +2078,937 @@ 0.0, 0.0, 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - -3.995661779810511e-6, - -0.009001851242489535, - -0.017995423150069044, - -0.026984713423875872, - -0.035969724102299365, - -0.04495045722275572, - -0.05392691482169369, - -0.06289909893458989, - -0.07186701159595495, - -0.08083065483932703, - -0.08979003069728002, - -0.09874514120141754, - -0.10769598838237765, - -0.11664257426983006, - -0.1255849008924801, - -0.13452297027806512, - -0.14345678445335966, - -0.15238634544417048, - -0.1613116552753428, - -0.1702327159707551, - -0.17914952955332494, - -0.18806209804500437, - -0.19697042346678517, - -0.2058745078386945, - -0.2147743531798006, - -0.22366996150820756, - -0.23256133484106112, - -0.24144847519454574, - -0.25033138458388565, - -0.259210065023347, - -0.2680845185262344, - -0.2769547471048971, - -0.28582075277072366, - -0.29468253753414747, - -0.3035401034046423, - -0.31239345239072797, - -0.3212425864999651, - -0.3300875077389613, - -0.33892821811336676, - -0.34776471962787864, - -0.3565970142862379, - -0.36542510409123374, - -0.374248991044699, - -0.3830686771475166, - -0.3918841643996141, - -0.4006954547999695, - -0.4095025503466066, - -0.418305453036601, - -0.42710416486607355, - -0.43589868783019897, - -0.44468902392319865, - -0.4534751751383472, - -0.4622571434679689, - -0.4710349309034398, - -0.4798085394351881, - -0.48857797105269396, - -0.4973432277444908, - -0.506104311498165, - -0.5148612243003577, - -0.5236139681367623, - -0.5323625449921291, - -0.5411069568502613, - -0.5498472056940199, - -0.5585832935053198, - -0.567315222265134, - -0.5760429939534911, - -0.5847666105494786, - -0.5934860740312399, - -0.6022013863759784, - -0.6109125495599547, - -0.6196195655584903, - -0.628322436345964, - -0.6370211638958172, - -0.6457157501805494, - -0.6544061971717233, - -0.6630925068399607, - -0.671774681154947, - -0.6804527220854293, - -0.6891266315992172, - -0.6977964116631836, - -0.7064620642432651, - -0.7151235913044625, - -0.7237809948108405, - -0.73243427672553, - -0.7410834390107255, - -0.7497284836276892, - -0.7583694125367478, - -0.7670062276972966, - -0.7756389310677964, - -0.7842675246057769, - -0.7928920102678345, - -0.801512390009636, - -0.810128665785915, - -0.8187408395504767, - -0.8273489132561936, - -0.8359528888550114, - -0.8445527682979436, - -0.8531485535350775, - -0.8617402465155696, - -0.870327849187651, - -0.8789113634986225, - -0.8874907913948603, - -0.8960661348218125, - -0.9046373957240027, - -0.9132045760450251, - -0.9217676777275527, - -0.9303267027133313, - -0.9388816529431844, - -0.9474325303570076, - -0.9559793368937768, - -0.964522074491543, - -0.9730607450874365, - -0.9815953506176612, - -0.9901258930175033, - -0.998652374221326, - -1.0071747961625728, - -1.015693160773764, - -1.0242074699865023, - -1.0327177257314697, - -1.0412239299384314, - -1.0497260845362293, - -1.0582241914527903, - -1.0667182526151233, - -1.0752082699493206, - -1.083694245380554, - -1.0921761808330814, - -1.100654078230245, - -1.10912793949447, - -1.1175977665472685, - -1.1260635613092336, - -1.134525325700048, - -1.1429830616384793, - -1.1514367710423825, - -1.159886455828696, - -1.16833211791345, - -1.17677375921176, - -1.1852113816378318, - -1.1936449871049561, - -1.2020745775255166, - -1.2105001548109846, - -1.2189217208719234, - -1.227339277617983, - -1.235752826957907, - -1.2441623707995302, - -1.2525679110497796, - -1.260969449614672, - -1.2693669883993177, - -1.2777605293079222, - -1.2861500742437828, - -1.2945356251092894, - -1.3029171838059275, - -1.311294752234278, - -1.3196683322940161, - -1.3280379258839141, - -1.336403534901837, - -1.344765161244749, - -1.3531228068087109, - -1.3614764734888816, - -1.3698261631795141, - -1.3781718777739635, - -1.3865136191646819, - -1.3948513892432217, - -1.4031851899002319, - -1.4115150230254643, - -1.4198408905077697, - -1.4281627942351012, - -1.43648073609451, - -1.444794717972151, - -1.4531047417532814, - -1.4614108093222615, - -1.4697129225625516, - -1.478011083356717, - -1.4863052935864278, - -1.4945955551324583, - -1.5028818698746842, - -1.5111642396920892, - -1.5194426664627623, - -1.527717152063897, - -1.535987698371796, - -1.5442543072618635, - -1.552516980608616, - -1.5607757202856756, - -1.5690305281657726, - -1.5772814061207443, - -1.5855283560215387, - -1.5937713797382127, - -1.6020104791399339, - -1.6102456560949763, - -1.6184769124707286, - -1.6267042501336884, - -1.6349276709494664, - -1.6431471767827823, - -1.6513627694974697, - -1.6595744509564756, - -1.66778222302186, - -1.675986087554794, - -1.684186046415565, - -1.6923821014635745, - -1.7005742545573392, - -1.7087625075544886, - -1.7169468623117694, - -1.7251273206850457, - -1.7333038845292958, - -1.7414765556986174, - -1.7496453360462219, - -1.7578102274244414, - -1.7659712316847247, - -1.7741283506776417, - -1.7822815862528767, - -1.7904309402592369, - -1.7985764145446486, - -1.8067180109561591, - -1.8148557313399334, - -1.822989577541261, - -1.8311195514045506, - -1.8392456547733358, - -1.8473678894902679, - -1.8554862573971245, - -1.863600760334805, - -1.8717114001433348, - -1.8798181786618584, - -1.8879210977286491, - -1.8960201591811028, - -1.9041153648557436, - -1.9122067165882162, - -1.9202942162132954, - -1.9283778655648818, - -1.9364576664760016, - -1.9445336207788113, - -1.9526057303045903, - -1.9606739968837503, - -1.96873842234583, - -1.9767990085194989, - -1.984855757232552, - -1.9929086703119174, - -2.0009577495836526, - -2.0090029968729466, - -2.017044414004117, - -2.0250820028006147, - -2.033115765085023, - -2.041145702679057, - -2.049171817403563, - -2.0571941110785215, - -2.065212585523048, - -2.073227242555391, - -2.0812380839929316, - -2.0892451116521875, - -2.097248327348812, - -2.1052477328975936, - -2.1132433301124554, - -2.121235120806458, - -2.1292231067917995, - -2.137207289879814, - -2.1451876718809757, - -2.153164254604893, - -2.161137039860315, - -2.16910602945513, - -2.1770712251963666, - -2.1850326288901893, - -2.192990242341906, - -2.200944067355964, - -2.2088941057359537, - -2.2168403592846024, - -2.2247828298037824, - -2.2327215190945076, - -2.2406564289569357, - -2.2485875611903636, - -2.256514917593235, - -2.2644384999631364, - -2.2723583100968003, - -2.280274349790099, - -2.288186620838055, - -2.2960951250348325, - -2.3039998641737456, - -2.3119008400472496, - -2.3197980544469505, - -2.327691509163599, - -2.3355812059870944, - -2.343467146706485, - -2.3513493331099644, - -2.3592277669848767, - -2.367102450117715, - -2.3749733842941234, - -2.382840571298891, - -2.3907040129159634, - -2.398563710928432, - -2.406419667118543, - -2.4142718832676913, - -2.422120361156425, - -2.4299651025644433, - -2.437806109270602, - -2.445643383052904, - -2.453476925688511, - -2.4613067389537355, - -2.469132824624047, - -2.4769551844740656, - -2.4847738202775704, - -2.492588733807495, - -2.500399926835929, - -2.508207401134117, - -2.5160111584724616, - -2.523811200620522, - -2.531607529347016, - -2.53940014641982, - -2.5471890536059645, - -2.5549742526716424, - -2.562755745382206, - -2.5705335335021666, - -2.578307618795193, - -2.5860780030241175, - -2.5938446879509316, - -2.6016076753367905, - -2.6093669669420057, - -2.617122564526055, - -2.6248744698475774, - -2.6326226846643763, - -2.6403672107334137, - -2.6481080498108196, - -2.6558452036518854, - -2.6635786740110694, - -2.671308462641991, - -2.679034571297438, - -2.686757001729362, - -2.6944757556888828, - -2.7021908349262818, - -2.7099022411910116, - -2.7176099762316905, - -2.7253140417961044, - -2.7330144396312077, - -2.7407111714831203, - -2.7484042390971344, - -2.756093644217709, - -2.763779388588475, - -2.77146147395223, - -2.7791399020509435, - -2.786814674625756, - -2.79448579341698, - -2.8021532601640966, - -2.809817076605761, - -2.8174772444797997, - -2.8251337655232143, - -2.8327866414721745, - -2.8404358740620275, - -2.848081465027293, - -2.8557234161016676, - -2.863361729018016, - -2.870996405508384, - -2.8786274473039906, - -2.8862548561352326, - -2.893878633731678, - -2.901498781822076, - -2.909115302134352, - -2.916728196395607, - -2.9243374663321227, - -2.931943113669355, - -2.939545140131941, - -2.9471435474436967, - -2.9547383373276186, - -2.9623295115058785, - -2.9699170716998324, - -2.977501019630015, - -2.9850813570161447, - -2.992658085577116, - -3.000231207031009, - -3.0078007230950843, - -3.0153666354857878, - -3.022928945918743, - -3.0304876561087606, - -3.038042767769834, - -3.0455942826151414, - -3.0531422023570425, - -3.0606865287070852, - -3.0682272633760004, - -3.075764408073707, - -3.0832979645093066, - -3.090827934391088, - -3.0983543194265284, - -3.1058771213222904, - -3.1133963417842274, - -3.120911982517375, - -3.1284240452259606, - -3.135932531613401, - -3.1434374433823007, - -3.150938782234453, - -3.1584365498708413, - -3.165930747991641, - -3.1734213782962177, - -3.1809084424831244, - -3.1883919422501097, - -3.1958718792941117, - -3.203348255311263, - -3.2108210719968846, - -3.218290331045494, - -3.2257560341507996, - -3.2332181830057074, - -3.240676779302312, - -3.248131824731906, - -3.255583320984976, - -3.2630312697512047, - -3.2704756727194675, - -3.2779165315778385, - -3.285353848013587, - -3.2927876237131803, - -3.3002178603622814, - -3.3076445596457504, - -3.315067723247647, - -3.3224873528512284, - -3.3299034501389504, - -3.337316016792467, - -3.3447250544926326, - -3.352130564919501, - -3.359532549752327, - -3.366931010669565, - -3.37432594934887, - -3.381717367467099, - -3.389105266700312, - -3.3964896487237675, - -3.4038705152119295, - -3.4112478678384646, - -3.418621708276241, - -3.4259920381973314, - -3.4333588592730124, - -3.440722173173766, - -3.448081981569277, - -3.455438286128436, - -3.46279108851934, - -3.470140390409291, - -3.4774861934647965, - -3.4848284993515732, - -3.492167309734542, - -3.4995026262778324, - -3.5068344506447815, - -3.5141627844979353, - -3.521487629499046, - -3.528808987309077, - -3.5361268595882005, - -3.543441247995798, - -3.550752154190461, - -3.5580595798299903, - -3.5653635265714, - -3.5726639960709132, - -3.5799609899839653, - -3.5872545099652036, - -3.594544557668487, - -3.601831134746888, - -3.6091142428526917, - -3.6163938836373966, - -3.6236700587517143, - -3.6309427698455723, - -3.638212018568111, - -3.645477806567685, - -3.652740135491867, - -3.659999006987443, - -3.6672544227004162, - -3.674506384276004, - -3.6817548933586437, - -3.6889999515919873, - -3.6962415606189065, - -3.7034797220814877, - -3.7107144376210384, - -3.717945708878084, - -3.7251735374923682, - -3.7323979251028536, - -3.7396188733477245, - -3.7468363838643834, - -3.754050458289455, - -3.761261098258783, - -3.768468305407434, - -3.7756720813696942, - -3.7828724277790746, - -3.790069346268305, - -3.7972628384693405, - -3.804452906013359, - -3.8116395505307605, - -3.81882277365117, - -3.826002577003437, - -3.833178962215633, - -3.8403519309150584, - -3.8475214847282366, - -3.8546876252809144, - -3.8618503541980695, - -3.869009673103903, - -3.8761655836218423, - -3.883318087374543, - -3.890467185983889, - -3.8976128810709905, - -3.904755174256187, - -3.911894067159045, - -3.9190295613983626, - -3.926161658592165, - -3.9332903603577076, - -3.9404156683114766, - -3.9475375840691878, - -3.9546561092457884, - -3.9617712454554566, - -3.9688829943116017, - -3.9759913574268646, - -3.9830963364131198, - -3.9901979328814745, - -3.997296148442266, - -4.0043909847050685, - -4.011482443278688, - -4.018570525771165, - -4.0256552337897755, - -4.0327365689410275, - -4.039814532830667, - -4.046889127063675, - -4.053960353244266, - -4.061028212975893, - -4.068092707861248, - -4.075153839502255, - -4.082211609500078, - -4.08926601945512, - -4.096317070967018, - -4.103364765634652, - -4.110409105056136, - -4.117450090828828, - -4.124487724549323, - -4.131522007813457, - -4.138552942216305, - -4.145580529352182, - -4.152604770814649, - -4.1596256681965, - -4.166643223089777, - -4.1736574370857635, - -4.1806683117749825, - -4.187675848747203, - -4.194680049591433, - -4.201680915895931, - -4.208678449248192, - -4.215672651234961, - -4.222663523442221, - -4.229651067455205, - -4.236635284858392, - -4.243616177235502, - -4.250593746169507, - -4.2575679932426205, - -4.264538920036305, - -4.27150652813127, - -4.278470819107469, - -4.2854317945441105, - -4.292389456019643, - -4.299343805111771, - -4.306294843397443, - -4.313242572452858, - -4.320186993853465, - -4.327128109173964, - -4.334065919988301, - -4.3410004278696785, - -4.347931634390546, - -4.3548595411226065, - -4.361784149636813, - -4.368705461503373, - -4.375623478291743, - -4.382538201570636, - -4.3894496329080175, - -4.396357773871102, - -4.403262626026363, - -4.410164190939527, - -4.417062470175576, - -4.423957465298743, - -4.430849177872521, - -4.437737609459657, - -4.444622761622153, - -4.451504635921267, - -4.458383233917514, - -4.465258557170669, - -4.4721306072397615, - -4.47899938568308, - -4.48586489405817, - -4.492727133921837, - -4.499586106830144, - -4.506441814338412, - -4.513294258001226, - -4.520143439372426, - -4.526989360005115, - -4.533832021451656, - -4.540671425263674, - -4.547507572992053, - -4.55434046618694, - -4.561170106397747, - -4.567996495173141, - -4.574819634061057, - -4.581639524608692, - -4.588456168362508, - -4.595269566868227, - -4.60207972167084, - -4.608886634314598, - -4.615690306343021, - -4.622490739298888, - -4.629287934724249, - -4.6360818941604185, - -4.642872619147977, - -4.649660111226771, - -4.656444371935915, - -4.66322540281379, - -4.670003205398046, - -4.676777781225597, - -4.6835491318326286, - -4.690317258754595, - -4.697082163526219, - -4.703843847681493, - -4.710602312753679, - -4.717357560275307, - -4.7241095917781815, - -4.730858408793376, - -4.7376040128512305, - -4.744346405481362, - -4.75108558821266, - -4.757821562573282, - -4.764554330090661, - -4.771283892291501, - -4.778010250701779, - -4.784733406846749, - -4.791453362250934, - -4.798170118438132, - -4.8048836769314205, - -4.811594039253146, - -4.818301206924933, - -4.825005181467682, - -4.831705964401569, - -4.838403557246045, - -4.845097961519839, - -4.8517891787409555, - -4.8584772104266785, - -4.865162058093568, - -4.871843723257462, - -4.878522207433479, - -4.885197512136013, - -4.89186963887874, - -4.898538589174613, - -4.905204364535866, - -4.911866966474011, - -4.9185263964998445, - -4.92518265612344, - -4.931835746854155, - -4.938485670200625, - -4.94513242767077, - -4.951776020771793, - -4.958416451010175, - -4.965053719891681, - -4.971687828921364, - -4.978318779603557, - -4.984946573441875, - -4.991571211939222, - -4.998192696597782, - -5.004811028919025, - -5.011426210403706, - -5.018038242551868, - -5.024647126862837, - -5.031252864835228, - -5.037855457966938, - -5.044454907755155, - -5.0510512156963525, - -5.057644383286293, - -5.064234412020028, - -5.070821303391889, - -5.077405058895506, - -5.083985680023794, - -5.090563168268957, - -5.0971375251224895, - -5.103708752075174, - -5.110276850617086, - -5.116841822237592, - -5.123403668425343, - -5.129962390668289, - -5.136517990453667, - -5.143070469268011, - -5.149619828597141, - -5.156166069926172, - -5.162709194739515, - -5.169249204520871, - -5.175786100753235, - -5.182319884918894, - -5.1888505584994356, - -5.195378122975736, - -5.20190257982797, - -5.208423930535606, - -5.2149421765774076, - -5.221457319431435, - -5.227969360575047, - -5.234478301484894, - -5.240984143636928, - -5.247486888506396, - -5.253986537567844, - -5.2604830922951145, - -5.266976554161349, - -5.27346692463899, - -5.279954205199777, - -5.286438397314746, - -5.292919502454235, - -5.299397522087885, - -5.305872457684633, - -5.31234431071272, - -5.318813082639685, - -5.325278774932371, - -5.331741389056921, - -5.338200926478779, - -5.344657388662693, - -5.351110777072714, - -5.357561093172197, - -5.364008338423796, - -5.370452514289473, - -5.376893622230492, - -5.383331663707422, - -5.389766640180138, - -5.396198553107815, - -5.402627403948938, - -5.409053194161297, - -5.415475925201986, - -5.421895598527408, - -5.42831221559327, - -5.43472577785459, - -5.441136286765689, - -5.447543743780194, - -5.453948150351047, - -5.460349507930493, - -5.466747817970088, - -5.4731430819206945, - -5.479535301232486, - -5.485924477354948, - -5.492310611736872, - -5.498693705826358, - -5.505073761070822, - -5.511450778916989, - -5.5178247608108935, - -5.524195708197884, - -5.53056362252262, - -5.5369285052290715, - -5.543290357760525, - -5.549649181559577, - -5.556004978068135, - -5.562357748727424, - -5.568707494977982, - -5.575054218259662, - -5.581397920011628, - -5.587738601672363, - -5.5940762646796625, - -5.60041091047064, - -5.60674254048172, - -5.613071156148648, - -5.619396758906485, - -5.625719350189606, - -5.632038931431707, - -5.6383555040658, - -5.644669069524213, - -5.650979629238595, - -5.65728718463991, - -5.663591737158443, - -5.669893288223799, - -5.6761918392649005, - -5.68248739170999, - -5.688779946986631, - -5.695069506521707, - -5.701356071741423, - -5.707639644071303, - -5.713920224936193, - -5.720197815760259, - -5.726472417966995, - -5.73274403297921, - -5.739012662219041, - -5.745278307107945, - -5.7515409690667045, - -5.757800649515424, - -5.764057349873531, - -5.770311071559779, - -5.7765618159922445, - -5.782809584588332, - -5.789054378764766, - -5.795296199937604, - -5.801535049522222, - -5.807770928933326, - -5.814003839584947, - -5.820233782890443, - -5.8264607602625, - -5.832684773113132, - -5.83890582285368, - -5.84512391089481, - -5.8513390386465245, - -5.857551207518145, - -5.8637604189183286, - -5.869966674255059, - -5.87616997493565, - -5.8823703223667465, - -5.888567717954323, - -5.894762163103685, - -5.900953659219468, - -5.90714220770564, - -5.9133278099655, - -5.919510467401678, - -5.925690181416137, - -5.931866953410173, - -5.938040784784416, - -5.944211676938826, - -5.950379631272699, - -5.956544649184665, - -5.962706732072688, - -5.968865881334062, - -5.975022098365422, - -5.981175384562734, - -5.987325741321304, - -5.993473170035768, - -5.999617672100102, - -6.005759248907618, - -6.011897901850962, - -6.018033632322122, - -6.024166441712416, - -6.030296331412505, - -6.036423302812389, - -6.0425473573014, - -6.048668496268216, - -6.054786721100848, - -6.060902033186651, - -6.067014433912316, - -6.073123924663874, - -6.079230506826698, - -6.0853341817855, - -6.0914349509243335, - -6.097532815626593, - -6.103627777275015, - -6.109719837251676, - -6.115808996937997, - -6.121895257714739, - -6.127978620962004, - -6.134059088059243, - -6.140136660385245, - -6.146211339318145, - -6.152283126235421, - -6.1583520225138955, - -6.164418029529735, - -6.170481148658453, - -6.176541381274904, - -6.182598728753292, - -6.188653192467164, - -6.194704773789417, - -6.200753474092289, - -6.206799294747368, - -6.212842237125589, - -6.218882302597234, - -6.2249194925319316, - -6.2309538082986595, - -6.236985251265742, - -6.243013822800855, - -6.249039524271021, - -6.255062357042612, - -6.261082322481351, - -6.267099421952309, - -6.2731136568199055, - -6.279125028447914, - -6.285133538199458, - -6.291139187437012, - -6.297141977522399, - -6.303141909816798, - -6.309138985680737, - -6.315133206474098, - -6.321124573556114, - -6.327113088285371, - -6.333098752019809, - -6.3390815661167235, - -6.345061531932759, - -6.351038650823917, - -6.357012924145557, - -6.362984353252385, - -6.368952939498469, - -6.37491868423723, - -6.380881588821443, - -6.3868416546032405, - -6.392798882934113, - -6.398753275164906, - -6.404704832645821, - -6.410653556726418, - -6.4165994487556155, - -6.422542510081684, - -6.42848274205226, - -6.434420146014335, - -6.440354723314257, - -6.446286475297736, - -6.452215403309841, - -6.458141508695001, - -6.464064792797002, - -6.469985256958996, - -6.475902902523487, - -6.481817730832347, - -6.487729743226807, - -6.49363894104746, - -6.4995453256342595, - -6.505448898326522, - -6.511349660462926, - -6.517247613381514, - -6.523142758419688, - -6.529035096914217, - -6.534924630201231, - -6.540811359616226, - -6.546695286494063, - -6.552576412168962, - -6.5584547379745155, - -6.564330265243676, - -6.570202995308762, - -6.576072929501457, - -6.5819400691528145, - -6.58780441559325, - -6.593665970152548, - -6.599524734159859, - -6.605380708943701, - -6.61123389583196, - -6.617084296151889, - -6.622931911230109, - -6.628776742392609, - -6.6346187909647485, - -6.640458058271255, - -6.646294545636227, - -6.652128254383129, - -6.657959185834798, - -6.6637873413134425, - -6.669612722140636, - -6.675435329637329, - -6.68125516512384, - -6.687072229919861, - -6.692886525344452, - -6.698698052716049, - -6.704506813352459, - -6.710312808570861, - -6.7161160396878055, - -6.72191650801922, - -6.727714214880402, - -6.733509161586025, - -6.739301349450136, - -6.745090779786157, - -6.750877453906882, - -6.756661373124484, - -6.762442538750509, - -6.768220952095878, - -6.77399661447089, - -6.779769527185217, - -6.785539691547911, - -6.791307108867401, - -6.797071780451488, - -6.802833707607356, - -6.808592891641566, - -6.814349333860051, - -6.820103035568129, - -6.825853998070495, - -6.831602222671221, - -6.83734771067376, - -6.843090463380944, - -6.848830482094984, - -6.854567768117472, - -6.860302322749379, - -6.866034147291058, - -6.871763243042244, - -6.877489611302049, - -6.88321325336897, - -6.888934170540887, - -6.894652364115058, - -6.900367835388127, - -6.906080585656119, - -6.911790616214441, - -6.917497928357886, - -6.923202523380628, - -6.928904402576226, - -6.934603567237624, - -6.940300018657149, - -6.945993758126514, - -6.951684786936817, - -6.957373106378539, - -6.963058717741549, - -6.968741622315101, - -6.974421821387836, - -6.980099316247781, - -6.9857741081823495, - -6.991446198478343, - -6.997115588421951, - -7.002782279298747, - -7.008446272393695, - -7.0141075689911485, - -7.019766170374849, - -7.0254220778279235, - -7.031075292632893, - -7.036725816071665, - -7.042373649425537, - -7.048018793975198, - -7.053661251000724, - -7.059301021781586, - -7.0649381075966415, - -7.070572509724142, - -7.076204229441731, - -7.0818332680264415, - -7.087459626754699, - -7.093083306902323, - -7.098704309744524, - -7.104322636555905, - -7.109938288610463, - -7.115551267181591, - -7.121161573542071, - -7.126769208964081, - -7.132374174719195, - -7.137976472078381, - -7.143576102311998, - -7.149173066689807, - -7.154767366480958, - -7.160359002954002, - -7.1659479773768835, - -7.171534291016942, - -7.1771179451409175, - -7.182698941014943, - -7.188277279904553, - -7.193852963074673, - -7.199425991789633, - -7.204996367313157, - -7.21056409090837, - -7.216129163837794, - -7.22169158736335, - -7.227251362746358, - -7.232808491247542, - -7.238362974127016, - -7.243914812644304, - -7.249464008058324, - -7.255010561627398, - -7.260554474609248, - -7.266095748260996, - -7.271634383839169, - -7.277170382599693, - -7.282703745797895, - -7.2882344746885055, - -7.293762570525659, - -7.299288034562893, - -7.304810868053146, - -7.310331072248762, - -7.315848648401488, - -7.321363597762475, - -7.326875921582279, - -7.3323856211108565, - -7.337892697597576, - -7.343397152291207, - -7.3488989864399255, - -7.354398201291311, - -7.359894798092355, - -7.3653887780894465, - -7.3708801425283905, - -7.376368892654391, - -7.381855029712063, - -7.38733855494543, - -7.392819469597921, - -7.398297774912374, - -7.403773472131036, - -7.40924656249556, - -7.414717047247011, - -7.4201849276258605, - -7.425650204871991, - -7.4311128802246955, - -7.436572954922675, - -7.442030430204042, - -7.4474853073063185, - -7.45293758746644, - -7.458387271920749, - -7.463834361905004, - -7.469278858654369, - -7.474720763403427, - -7.48016007738617, - -7.485596801836002, - -7.49103093798574, - -7.496462487067613, - -7.501891450313268, - -7.507317828953761, - -7.512741624219562, - -7.518162837340558, - -7.523581469546049, - -7.528997522064749, - -7.53441099612479, - -7.539821892953715, - -7.545230213778486, - -7.550635959825479, - -7.556039132320487, - -7.5614397324887195, - -7.566837761554801, - -7.572233220742776, - -7.5776261112761025, - -7.583016434377661, - -7.588404191269745, - -7.593789383174069, - -7.599172011311765, - -7.604552076903383, - -7.609929581168894, - -7.6153045253276845, - -7.620676910598563, - -7.6260467381997605, - -7.631414009348921, - -7.636778725263117, - -7.642140887158833, - -7.647500496251983, - -7.652857553757894, - -7.658212060891319, - -7.663564018866435, - -7.668913428896834, - -7.674260292195538, - -7.6796046099749855, - -7.684946383447041, - -7.690285613822988, - -7.695622302313541, - -7.700956450128829, - -7.706288058478413, - -7.711617128571271, - -7.716943661615812, - -7.722267658819866, - -7.727589121390687, - -7.732908050534959, - -7.738224447458785, - -7.743538313367699, - -7.748849649466659, - -7.754158456960049, - -7.7594647370516805, - -7.764768490944793, - -7.77006971984205, - -7.775368424945547, - -7.7806646074568, - -7.785958268576761, - -7.791249409505806, - -7.796538031443738, - -7.8018241355897935, - -7.807107723142635, - -7.812388795300355, - -7.817667353260477, - -7.822943398219949, - -7.828216931375156, - -7.83348795392191, - -7.838756467055455, - -7.844022471970464, - -7.849285969861042, - -7.854546961920727, - -7.859805449342488, - -7.865061433318726, - -7.870314915041273, - -7.875565895701396, - -7.880814376489791, - -7.886060358596592, - -7.8913038432113645, - -7.896544831523106, - -7.90178332472025, - -7.907019323990663, - -7.912252830521647, - -7.9174838454999374, - -7.922712370111705, - -7.927938405542558, - -7.933161952977536, - -7.938383013601119, - -7.943601588597221, - -7.948817679149193, - -7.95403128643982, - -7.959242411651326, - -7.964451055965374, - -7.969657220563061, - -7.974860906624923, - -7.980062115330936, - -7.98526084786051, - -7.990457105392497, - -7.995650889105187, - -8.000842200176308, - -8.006031039783029, - -8.011217409101958, - -8.01640130930914, - -8.021582741580065, - -8.02676170708966, - -8.031938207012296, - -8.03711224252178, - -8.042283814791363, - -8.047452924993737, - -8.052619574301035, - -8.057783763884835, - -8.062945494916153, - -8.068104768565451, - -8.073261586002632, - -8.078415948397042, - -8.083567856917472, - -8.088717312732154, - -8.093864317008766, - -8.099008870914428, - -8.104150975615704, - -8.10929063227861, - -8.114427842068594, - -8.119562606150561, - -8.124694925688855, - -8.129824801847269, - -8.134952235789036, - -8.140077228676843, - -8.145199781672819, - -8.15031989593854, - -8.155437572635032, - -8.160552812922763, - -8.165665617961654, - -8.170775988911068, - -8.175883926929822, - -8.180989433176178, - -8.186092508807848, - -8.19119315498199, - -8.196291372855214, - -8.201387163583579, - -8.206480528322594, - -8.211571468227215, - -8.21665998445185, - -8.221746078150359, - -8.226829750476051, - -8.231911002581686, - -8.236989835619475, - -8.242066250741082, - -8.247140249097622, - -8.252211831839661, - -8.257281000117215, - -8.262347755079757, - -8.267412097876212, - -8.272474029654957, - -8.277533551563822, - -8.28259066475009, - -8.2876453703605, - -8.292697669541244, - -8.297747563437968, - -8.30279505319577, - -8.307840139959207, - -8.312882824872293, - -8.31792310907849, - -8.32296099372072, - -8.327996479941362, - -8.33302956888225, - -8.33806026168467, - -8.343088559489374, - -8.348114463436563, - -8.353137974665898, - -8.358159094316497, - -8.363177823526936, - -8.36819416343525, - -8.37320811517893, - -8.378219679894926, - -8.383228858719647, - -8.388235652788964, - -8.393240063238201, - -8.398242091202146, - -8.40324173781505, - -8.408239004210612, - -8.413233891522005, - -8.418226400881855, - -8.423216533422247, - -8.428204290274735, - -8.433189672570327, - -8.438172681439497, - -8.443153318012179, - -8.448131583417767, - -8.453107478785121, - -8.458081005242562, - -8.463052163917872, - -8.4680209559383, - -8.472987382430555, - -8.477951444520812, - -8.482913143334706, - -8.487872479997343, - -8.492829455633284, - -8.497784071366565, - -8.50273632832068, - -8.507686227618587, - -8.512633770382715, - -8.517578957734955, - -8.522521790796663, - -8.527462270688666, - -8.532400398531253, - -8.537336175444182, - -8.542269602546675, - -8.547200680957422, - -8.552129411794583, - -8.557055796175785, - -8.561979835218121, - -8.566901530038153, - -8.571820881751911, - -8.576737891474895, - -8.581652560322075, - -8.586564889407885, - -8.591474879846235, - -8.596382532750498, - -8.601287849233524, - -8.606190830407627, - -8.611091477384594, - -8.615989791275686, - -8.620885773191631, - -8.625779424242626, - -8.630670745538346, - -8.635559738187931, - -8.640446403299997, - -8.645330741982633, - -8.650212755343398, - -8.655092444489323, - -8.659969810526917, - -8.664844854562157, - -8.669717577700494, - -8.674587981046853, - -8.679456065705638, - -8.68432183278072, - -8.689185283375448, - -8.694046418592643, - -8.698905239534609, - -8.703761747303115, - -8.708615942999412, - -8.713467827724223, - -8.718317402577748, - -8.723164668659667, - -8.728009627069133, - -8.73285227890477, - -8.737692625264696, - -8.742530667246484, - -8.747366405947204, - -8.752199842463389, - -8.75703097789106, - -8.761859813325714, - -8.766686349862322, - -8.77151058859534, - -8.776332530618694, - -8.7811521770258, - -8.785969528909547, - -8.790784587362305, - -8.795597353475921, - -8.800407828341731, - -8.805216013050543, - -8.810021908692647, - -8.814825516357818, - -8.819626837135305, - -8.824425872113848, - -8.829222622381659, - -8.834017089026439, - -8.838809273135368, - -8.843599175795111, - -8.848386798091813, - -8.8531721411111, - -8.857955205938087, - -8.862735993657367, - -8.86751450535302, - -8.872290742108607, - -8.87706470500718, - -8.881836395131264, - -8.886605813562879, - -8.891372961383526, - -8.896137839674186, - -8.900900449515335, - -8.905660791986929, - -8.91041886816841, - -8.915174679138707, - -8.919928225976236, - -8.924679509758898, - -8.92942853156408, - -8.934175292468662, - -8.938919793549003, - -8.943662035880957, - -8.948402020539858, - -8.953139748600536, - -8.957875221137304, - -8.962608439223969, - -8.967339403933819, - -8.972068116339635, - -8.976794577513692, - -8.981518788527742, - -8.986240750453044, - -8.990960464360331, - -8.995677931319834, - -9.000393152401275, - -9.005106128673866, - -9.009816861206309, - -9.014525351066792, - -9.019231599323009, - -9.023935607042127, - -9.02863737529082, - -9.033336905135247, - -9.038034197641062, - -9.042729253873413, - -9.04742207489693, - -9.052112661775755, - -9.056801015573507, - -9.061487137353307, - -9.066171028177765, - -9.070852689108994, - -9.075532121208587, - -9.080209325537647, - -9.08488430315676, - -9.089557055126013, - -9.094227582504988, - -9.098895886352759, - -9.103561967727902, - -9.10822582768848, - -9.112887467292065, - -9.11754688759571, - -9.122204089655979, - -9.126859074528927, - -9.131511843270099, - -9.136162396934553, - -9.140810736576833, - -9.145456863250983, - -9.150100778010549, - -9.15474248190857, - -9.15938197599759, - -9.164019261329646, - -9.168654338956278, - -9.173287209928521, - -9.177917875296917, - -9.1825463361115, - -9.187172593421812, - -9.191796648276885, - -9.196418501725264, - -9.201038154814984, - -9.205655608593586, - -9.210270864108113, - -9.214883922405104, - -9.21949478453061, - -9.224103451530175, - -9.228709924448848, - -9.233314204331183, - -9.237916292221232, - -9.242516189162552, - -9.247113896198204, - -9.251709414370755, - -9.256302744722268, - -9.26089388829432, - -9.265482846127979, - -9.270069619263833, - -9.27465420874196, - -9.279236615601953, - -9.283816840882908, - -9.28839488562342, - -9.2929707508616, - -9.297544437635056, - -9.302115946980907, - -9.30668527993577, - -9.311252437535785, - -9.315817420816584, - -9.320380230813306, - -9.32494086856061, - -9.329499335092649, - -9.334055631443093, - -9.338609758645108, - -9.343161717731384, - -9.347711509734108, - -9.352259135684978, - -9.356804596615206, - -9.361347893555502, - -9.365889027536099, - -9.370427999586727, - -9.374964810736635, - -9.379499462014577, - -9.384031954448819, - -9.388562289067139, - -9.393090466896819, - -9.39761648896466, - -9.40214035629697, - -9.40666206991957, - -9.41118163085779, - -9.415699040136477, - -9.420214298779984, - -9.42472740781218, - -9.429238368256447, - -9.433747181135676, - -9.438253847472277, - -9.442758368288166, - -9.44726074460478, - -9.451760977443062, - -9.456259067823478, - -9.460755016765997, - -9.465248825290116, - -9.469740494414834, - -9.47423002515867, - -9.478717418539661, - -9.483202675575354, - -9.487685797282817, - -9.492166784678625, - -9.496645638778883, - -9.501122360599199, - -9.505596951154702, - -9.510069411460044, - -9.514539742529383, - -9.5190079453764, - -9.523474021014295, - -9.527937970455783, - -9.532399794713093, - -9.536859494797985, - -9.541317071721727, - -9.545772526495101, - -9.550225860128421, - -9.554677073631508, - -9.559126168013712, - -9.563573144283893, - -9.56801800345044, - -9.572460746521257, - -9.576901374503768, - -9.581339888404917, - -9.585776289231172, - -9.590210577988518, - -9.594642755682463, - -9.599072823318037, - -9.603500781899788, - -9.60792663243179, - -9.612350375917638, - -9.616772013360446, - -9.621191545762857, - -9.62560897412703, - -9.630024299454647, - -9.634437522746918, - -9.638848645004575, - -9.64325766722787, - -9.647664590416586, - -9.65206941557002, - -9.656472143687001, - -9.660872775765881, - -9.665271312804533, - -9.66966775580036, - -9.674062105750286, - -9.678454363650763, - -9.68284453049777, - -9.687232607286807, - -9.691618595012905, - -9.696002494670616, - -9.700384307254023, - -9.704764033756733, - -9.709141675171887, - -9.71351723249214, - -9.717890706709689, - -9.722262098816246, - -9.726631409803057, - -9.7309986406609, - -9.735363792380069, - -9.7397268659504, - -9.744087862361253, - -9.748446782601514, - -9.752803627659597, - -9.757158398523455, - -9.761511096180561, - -9.765861721617922, - -9.770210275822073, - -9.774556759779083, - -9.778901174474548, - -9.783243520893596, - -9.787583800020887, - -9.791922012840608, - -9.796258160336485, - -9.800592243491772, - -9.80492426328925, - -9.809254220711239, - -9.813582116739585, - -9.817907952355679, - -9.822231728540427, - -9.826553446274282, - -9.830873106537226, - -9.835190710308769, - -9.839506258567965, - -9.843819752293394, - -9.848131192463171, - -9.85244058005495, - -9.856747916045913, - -9.861053201412782, - -9.865356437131814, - -9.869657624178796, - -9.873956763529055, - -9.878253856157455, - -9.882548903038389, - -9.886841905145795, - -9.891132863453139, - -9.895421778933432, - -9.899708652559212, - -9.903993485302564, - -9.908276278135103, - -9.912557032027982, - -9.916835747951897, - -9.921112426877075, - -9.925387069773288, - -9.92965967760984, - -9.933930251355578, - -9.938198791978886, - -9.942465300447687, - -9.946729777729441, - -9.950992224791152, - -9.955252642599364, - -9.959511032120153, - -9.963767394319142, - -9.968021730161492, - -9.972274040611907, - -9.97652432663463, - -9.98077258919344, - -9.985018829251668, - -9.989263047772175, - -9.993505245717373, - -9.997745424049208, - -10.001983583729174, - -10.006219725718305, - -10.010453850977179, - -10.014685960465911, - -10.018916055144166, - -10.023144135971148, - -10.027370203905605, - -10.03159425990583, - -10.035816304929657, - -10.04003633993447, - -10.044254365877192, - -10.048470383714289, - -10.052684394401775, - -10.056896398895205, - -10.06110639814969, - -10.06531439311987, - -10.069520384759944, - -10.07372437402365, - -10.077926361864275, - -10.082126349234649, - -10.08632433708715, - -10.090520326373705, - -10.09471431804578, - -10.0989063130544, - -10.103096312350125, - -10.107284316883076, - -10.111470327602907, - -10.11565434545883, - -10.1198363713996, - -10.124016406373524, - -10.128194451328454, - -10.132370507211792, - -10.136544574970495, - -10.140716655551056, - -10.14488674989953, - -10.149054858961515, - -10.153220983682159, - -10.157385125006167, - -10.16154728387778, - -10.165707461240808, - -10.169865658038594, - -10.174021875214043, - -10.17817611370961, - -10.182328374467295, - -10.186478658428657, - -10.1906269665348, - -10.194773299726387, - -10.198917658943628, - -10.203060045126287, - -10.20720045921368, - -10.21133890214468, - -10.215475374857704, - -10.219609878290733, - -10.223742413381293, - -10.227872981066467, - -10.232001582282892, - -10.236128217966758, - -10.240252889053812, - -10.244375596479353, - -10.248496341178233, - -10.252615124084866, - -10.25673194613321, - -10.260846808256789, - -10.264959711388677, - -10.269070656461507, - -10.273179644407463, - -10.277286676158292, - -10.281391752645291, - -10.28549487479932, - -10.289596043550787, - -10.293695259829663, - -10.29779252456548, - -10.301887838687318, - -10.305981203123823, - -10.310072618803192, - -10.31416208665319, - -10.318249607601127, - -10.322335182573882, - -10.32641881249789, - -10.330500498299141, - -10.334580240903191, - -10.338658041235151, - -10.34273390021969, - -10.34680781878104, - -10.350879797842994, - -10.354949838328901, - -10.359017941161673, - -10.363084107263784, - -10.367148337557264, - -10.371210632963711, - -10.375270994404278, - -10.379329422799684, - -10.383385919070204, - -10.387440484135682, - -10.391493118915518, - -10.395543824328676, - -10.399592601293687, - -10.403639450728638, - -10.407684373551186, - -10.411727370678541, - -10.415768443027488, - -10.419807591514367, - -10.423844817055086, - -10.427880120565113, - -10.431913502959487, - -10.435944965152803, - -10.439974508059228, - -10.44400213259249, - -10.44802783966588, - -10.45205163019226, - -10.456073505084053, - -10.460093465253246, - -10.4641115116114, - -10.468127645069632, - -10.472141866538633, - -10.476154176928656, - -10.480164577149521, - -10.484173068110618, - -10.488179650720902, - -10.492184325888893, - -10.496187094522679, - -10.500187957529922, - -10.504186915817844, - -10.50818397029324, - -10.51217912186247, - -10.516172371431466, - -10.520163719905725, - -10.524153168190317, - -10.528140717189878, - -10.53212636780861, - -10.536110120950294, - -10.540091977518273, - -10.544071938415462, - -10.548050004544347, - -10.552026176806985, - -10.556000456105002, - -10.559972843339592, - -10.563943339411528, - -10.567911945221146, - -10.571878661668359, - -10.575843489652646, - -10.579806430073065, - -10.583767483828238, - -10.587726651816366, - -10.591683934935219, - -10.595639334082138, - -10.599592850154043, - -10.603544484047417, - -10.607494236658328, - -10.611442108882407, - -10.615388101614867, - -10.619332215750488, - -10.62327445218363, - -10.627214811808221, - -10.631153295517766, - -10.63508990420535, - -10.639024638763622, - -10.642957500084817, - -10.64688848906074, - -10.65081760658277, - -10.654744853541864, - -10.658670230828552, - -10.662593739332944, - -10.666515379944725, - -10.670435153553157, - -10.674353061047073, - -10.678269103314893, - -10.682183281244605, - -10.68609559572378, - -10.690006047639562, - -10.693914637878674, - -10.697821367327421, - -10.701726236871679, - -10.70562924739691, - -10.709530399788147, - -10.713429694930008, - -10.717327133706684, - -10.72122271700195, - -10.72511644569916, - -10.72900832068124, - -10.732898342830708, - -10.73678651302965, - -10.740672832159738, - -10.744557301102224, - -10.748439920737944, - -10.752320691947306, - -10.756199615610303, - -10.760076692606512, - -10.763951923815089, - -10.76782531011477, - -10.771696852383872, - -10.775566551500301, - -10.779434408341535, - -10.783300423784642, - -10.787164598706267, - -10.791026933982643, - -10.794887430489583, - -10.798746089102478, - -10.802602910696313, - -10.806457896145647, - -10.810311046324628, - -10.814162362106988, - -10.818011844366039, - -10.82185949397468, - -10.825705311805391, - -10.829549298730246, - -10.833391455620893, - -10.837231783348571, - -10.841070282784099, - -10.84490695479789, - -10.848741800259937, - -10.852574820039814, - -10.856406015006693, - -10.860235386029323, - -10.864062933976042, - -10.867888659714774, - -10.871712564113034, - -10.875534648037917, - -10.87935491235611, - -10.883173357933886, - -10.886989985637106, - -10.890804796331217, - -10.894617790881258, - -10.898428970151851, - -10.90223833500721, - -10.906045886311139, - -10.909851624927024, - -10.913655551717847, - -10.917457667546175, - -10.921257973274166, - -10.92505646976357, - -10.92885315787572, - -10.932648038471548, - -10.936441112411565, - -10.940232380555884, - -10.944021843764201, - -10.947809502895803, - -10.951595358809572, - -10.955379412363976, - -10.959161664417081, - -10.962942115826538, - -10.966720767449594, - -10.970497620143083, - -10.974272674763437, - -10.978045932166678, - -10.981817393208415, - -10.98558705874386, - -10.98935492962781, - -10.993121006714658, - -10.99688529085839, - -11.000647782912585, - -11.004408483730415, - -11.00816739416465, - -11.011924515067646, - -11.01567984729136, - -11.01943339168734, - -11.02318514910673, - -11.026935120400275, - -11.030683306418299, - -11.034429708010736, - -11.03817432602711, - -11.04191716131654, - -11.045658214727743, - -11.049397487109026, - -11.053134979308302, - -11.05687069217307, - -11.060604626550438, - -11.064336783287093, - -11.068067163229337, - -11.071795767223058, - -11.075522596113744, - -11.079247650746481, - -11.082970931965955, - -11.086692440616446, - -11.09041217754183, - -11.094130143585593, - -11.097846339590804, - -11.101560766400143, - -11.105273424855879, - -11.108984315799885, - -11.112693440073636, - -11.1164007985182, - -11.12010639197425, - -11.123810221282056, - -11.12751228728149, - -11.131212590812023, - -11.134911132712721, - -11.138607913822263, - -11.142302934978916, - -11.145996197020555, - -11.149687700784654, - -11.153377447108289, - -11.157065436828137, - -11.16075167078048, - -11.164436149801194, - -11.168118874725762, - -11.171799846389273, - -11.175479065626412, - -11.17915653327147, - -11.182832250158338, - -11.186506217120513, - -11.190178434991093, - -11.193848904602785, - -11.19751762678789, - -11.20118460237832, - -11.204849832205587, - -11.208513317100811, - -11.212175057894713, - -11.215835055417621, - -11.219493310499464, - -11.223149823969782, - -11.226804596657713, - -11.230457629392006, - -11.23410892300101, - -11.237758478312687, - -11.241406296154596, - -11.245052377353911, - -11.248696722737405, - -11.25233933313146, - -11.255980209362068, - -11.25961935225482, - -11.263256762634922, - -11.266892441327181, - -11.270526389156018, - -11.274158606945452, - -11.277789095519118, - -11.281417855700257, - -11.285044888311717, - -11.288670194175953, - -11.292293774115029, - -11.29591562895062, - -11.299535759504009, - -11.303154166596087, - -11.306770851047352, - -11.310385813677918, - -11.313999055307502, - -11.317610576755431, - -11.32122037884065, - -11.324828462381703, - -11.328434828196752, - -11.332039477103564, - -11.335642409919526, - -11.33924362746162, - -11.34284313054646, - -11.34644091999025, - -11.350036996608821, - -11.35363136121761, - -11.357224014631662, - -11.36081495766564, - -11.364404191133817, - -11.367991715850076, - -11.371577532627919, - -11.375161642280451, - -11.3787440456204, - -11.3823247434601, - -11.3859037366115, - -11.389481025886164, - -11.39305661209527, - -11.396630496049605, - -11.400202678559578, - -11.403773160435206, - -11.40734194248612, - -11.41090902552157, - -11.414474410350419, - -11.418038097781142, - -11.421600088621831, - -11.425160383680199, - -11.428718983763561, - -11.432275889678863, - -11.435831102232656, - -11.43938462223111, - -11.442936450480016, - -11.44648658778477, - -11.450035034950401, - -11.453581792781538, - -11.45712686208244, - -11.460670243656972, - -11.464211938308628, - -11.46775194684051, - -11.47129027005534, - -11.47482690875546, - -11.478361863742828, - -11.481895135819023, - -11.485426725785238, - -11.488956634442292, - -11.492484862590615, - -11.496011411030256, - -11.49953628056089, - -11.503059471981803, - -11.506580986091908, - -11.510100823689733, - -11.513618985573428, - -11.51713547254076, - -11.520650285389122, - -11.524163424915521, - -11.527674891916586, - -11.531184687188572, - -11.534692811527348, - -11.538199265728409, - -11.541704050586867, - -11.54520716689746, - -11.548708615454546, - -11.552208397052102, - -11.555706512483729, - -11.559202962542651, - -11.562697748021717, - -11.566190869713392, - -11.569682328409767, - -11.573172124902557, - -11.5766602599831, - -11.580146734442357, - -11.583631549070907, - -11.587114704658962, - -11.59059620199635, - -11.594076041872531, - -11.59755422507658, - -11.601030752397202, - -11.604505624622725, - -11.607978842541103, - -11.611450406939912, - -11.614920318606355, - -11.618388578327263, - -11.621855186889086, - -11.625320145077904, - -11.628783453679421, - -11.632245113478971, - -11.635705125261508, - -11.639163489811615, - -11.642620207913504, - -11.64607528035101, - -11.649528707907596, - -11.65298049136635, - -11.656430631509995, - -11.65987912912087, - -11.663325984980952, - -11.666771199871839, - -11.670214774574754, - -11.673656709870562, - -11.67709700653974, - -11.680535665362402, - -11.683972687118294, - -11.68740807258678, - -11.690841822546862, - -11.694273937777169, - -11.697704419055956, - -11.70113326716111, - -11.70456048287015, - -11.70798606696022, - -11.7114100202081, - -11.714832343390192, - -11.718253037282535, - -11.721672102660797, - -11.725089540300276, - -11.728505350975903, - -11.731919535462234, - -11.735332094533465, - -11.738743028963414, - -11.742152339525543, - -11.74556002699293, - -11.748966092138298, - -11.752370535733997, - -11.755773358552009, - -11.759174561363949, - -11.762574144941064, - -11.765972110054237, - -11.769368457473979, - -11.77276318797044, - -11.776156302313398, - -11.779547801272267, - -11.782937685616094, - -11.786325956113561, - -11.789712613532982, - -11.793097658642308, - -11.796481092209122, - -11.799862915000643, - -11.803243127783725, - -11.806621731324855, - -11.809998726390159, - -11.813374113745391, - -11.816747894155947, - -11.820120068386858, - -11.823490637202788, - -11.826859601368039, - -11.830226961646547, - -11.833592718801889, - -11.83695687359727, - -11.84031942679554, - -11.843680379159185, - -11.84703973145032, - -11.850397484430708, - -11.853753638861743, - -11.857108195504457, - -11.860461155119522, - -11.863812518467244, - -11.86716228630757, - -11.870510459400085, - -11.873857038504013, - -11.877202024378214, - -11.880545417781187, - -11.883887219471074, - -11.887227430205652, - -11.890566050742336, - -11.893903081838188, - -11.897238524249902, - -11.900572378733811, - -11.903904646045897, - -11.907235326941771, - -11.910564422176693, - -11.913891932505557, - -11.917217858682902, - -11.920542201462906, - -11.923864961599389, - -11.92718613984581, - -11.93050573695527, - -11.933823753680516, - -11.937140190773928, - -11.940455048987538, - -11.943768329073007, - -11.947080031781654, - -11.950390157864426, - -11.953698708071922, - -11.957005683154378, - -11.960311083861674, - -11.963614910943338, - -11.966917165148535, - -11.970217847226076, - -11.973516957924412, - -11.976814497991645, - -11.980110468175514, - -11.983404869223403, - -11.986697701882346, - -11.989988966899013, - -11.993278665019727, - -11.996566796990447, - -11.999853363556785, - -12.00313836546399, - -12.006421803456963, - -12.00970367828025, - -12.012983990678034, - -12.016262741394156, - -12.019539931172092, - -12.022815560754976, - -12.026089630885574, - -12.029362142306308, - -12.032633095759245, - -12.035902491986096, - -12.039170331728226, - -12.042436615726634, - -12.045701344721978, - -12.048964519454557, - -12.052226140664327, - -12.055486209090876, - -12.058744725473455, - -12.062001690550952, - -12.065257105061908, - -12.068510969744516, - -12.071763285336608, - -12.075014052575678, - -12.078263272198857, - -12.08151094494293, - -12.084757071544331, - -12.088001652739143, - -12.091244689263098, - -12.094486181851579, - -12.09772613123962, - -12.100964538161902, - -12.104201403352757, - -12.107436727546167, - -12.11067051147577, - -12.113902755874847, - -12.117133461476334, - -12.120362629012817, - -12.123590259216533, - -12.126816352819372, - -12.130040910552873, - -12.133263933148232, - -12.136485421336289, - -12.139705375847543, - -12.142923797412141, - -12.146140686759884, - -12.149356044620225, - -12.15256987172227, - -12.15578216879478, - -12.158992936566163, - -12.16220217576449, - -12.165409887117475, - -12.16861607135249, - -12.171820729196565, - -12.175023861376376, - -12.17822546861826, - -12.181425551648202, - -12.184624111191846, - -12.18782114797449, - -12.191016662721083, - -12.194210656156235, - -12.197403129004202, - -12.200594081988907, - -12.203783515833917, - -12.206971431262463, - -12.210157828997428, - -12.213342709761351, - -12.216526074276425, - -12.219707923264505, - -12.222888257447098, - -12.226067077545363, - -12.229244384280126, - -12.232420178371862, - -12.23559446054071, - -12.23876723150646, - -12.24193849198856, - -12.245108242706117, - -12.248276484377893, - -12.251443217722315, - -12.25460844345746, - -12.25777216230107, - -12.260934374970535, - -12.264095082182916, - -12.267254284654925, - -12.270411983102932, - -12.273568178242972, - -12.276722870790731, - -12.279876061461563, - -12.283027750970476, - -12.286177940032138, - -12.289326629360879, - -12.292473819670686, - -12.295619511675207, - -12.298763706087756, - -12.301906403621299, - -12.305047604988463, - -12.308187310901541, - -12.311325522072483, - -12.314462239212904, - -12.317597463034076, - -12.320731194246937, - -12.32386343356208, - -12.326994181689765, - -12.33012343933991, - -12.333251207222101, - -12.336377486045581, - -12.339502276519257, - -12.342625579351697, - -12.345747395251133, - -12.34886772492546, - -12.35198656908224, - -12.355103928428687, - -12.35821980367169, - -12.361334195517792, - -12.364447104673209, - -12.367558531843814, - -12.370668477735148, - -12.37377694305241, - -12.376883928500474, - -12.379989434783866, - -12.383093462606784, - -12.38619601267309, - -12.389297085686309, - -12.392396682349634, - -12.395494803365919, - -12.398591449437689, - -12.40168662126713, - -12.40478031955609, - -12.407872545006096, - -12.410963298318329, - -12.41405258019364, - -12.417140391332547, - -12.420226732435234, - -12.423311604201551, - -12.426395007331015, - -12.429476942522815, - -12.432557410475795, - -12.435636411888478, - -12.43871394745905, - -12.441790017885364, - -12.444864623864943, - -12.447937766094975, - -12.451009445272321, - -12.454079662093504, - -12.457148417254718, - -12.460215711451827, - -12.463281545380363, - -12.466345919735524, - -12.469408835212183, - -12.472470292504875, - -12.47553029230781, - -12.478588835314868, - -12.48164592221959, - -12.4847015537152, - -12.487755730494579, - -12.490808453250287, - -12.49385972267455, - -12.496909539459269, - -12.499957904296009, - -12.503004817876011, - -12.506050280890186, - -12.509094294029111, - -12.512136857983045, - -12.515177973441906, - -12.518217641095292, - -12.521255861632467, - -12.524292635742375, - -12.527327964113624, - -12.530361847434499, - -12.533394286392951, - -12.536425281676612, - -12.539454833972782, - -12.542482943968432, - -12.54550961235021, - -12.548534839804436, - -12.551558627017101, - -12.554580974673874, - -12.557601883460089, - -12.560621354060766, - -12.563639387160588, - -12.566655983443917, - -12.569671143594789, - -12.572684868296914, - -12.575697158233677, - -12.578708014088134, - -12.581717436543022, - -12.584725426280746, - -12.587731983983394, - -12.590737110332721, - -12.59374080601017, - -12.596743071696839, - -12.599743908073522, - -12.602743315820678, - -12.605741295618447, - -12.608737848146642, - -12.61173297408475, - -12.614726674111944, - -12.617718948907061, - -12.620709799148628, - -12.623699225514837, - -12.626687228683567, - -12.629673809332365, - -12.632658968138463, - -12.635642705778768, - -12.638625022929862, - -12.64160592026801, - -12.644585398469152, - -12.647563458208907, - -12.65054010016257, - -12.653515325005118, - -12.656489133411206, - -12.659461526055166, - -12.66243250361101, - -12.665402066752428, - -12.668370216152791, - -12.671336952485149, - -12.674302276422232, - -12.67726618863645, - -12.68022868979989, - -12.68318978058432, - -12.686149461661191, - -12.689107733701633, - -12.692064597376454, - -12.695020053356147, - -12.697974102310882, - -12.700926744910511, - -12.703877981824569, - -12.706827813722267, - -12.709776241272507, - -12.712723265143863, - -12.715668886004595, - -12.718613104522642, - -12.721555921365633, - -12.724497337200868, - -12.727437352695338, - -12.73037596851571, - -12.733313185328338, - -12.73624900379926, - -12.739183424594192, - -12.742116448378537, - -12.745048075817378, - -12.747978307575485, - -12.750907144317308, - -12.753834586706985, - -12.756760635408334, - -12.759685291084855, - -12.762608554399739, - -12.765530426015854, - -12.768450906595762, - -12.771369996801695, - -12.774287697295588, - -12.777204008739044, - -12.780118931793359, - -12.783032467119515, - -12.785944615378176, - -12.788855377229696, - -12.791764753334109, - -12.79467274435114, - -12.797579350940191, - -12.800484573760365, - -12.803388413470438, - -12.806290870728878, - -12.809191946193838, - -12.812091640523159, - -12.814989954374369, - -12.81788688840468, - -12.820782443270993, - -12.823676619629897, - -12.826569418137671, - -12.829460839450276, - -12.83235088422336, - -12.835239553112267, - -12.83812684677202, - -12.841012765857338, - -12.84389731102262, - -12.846780482921961, - -12.84966228220914, - -12.852542709537628, - -12.855421765560582, - -12.858299450930847, - -12.861175766300965, - -12.864050712323156, - -12.866924289649338, - -12.869796498931116, - -12.872667340819783, - -12.875536815966326, - -12.878404925021416, - -12.881271668635423, - -12.884137047458395, - -12.887001062140087, - -12.889863713329929, - -12.89272500167705, - -12.895584927830265, - -12.89844349243809, - -12.901300696148722, - -12.904156539610051, - -12.907011023469666, - -12.909864148374835, - -12.912715914972532, - -12.915566323909411, - -12.918415375831827, - -12.921263071385821, - -12.924109411217131, - -12.926954395971183, - -12.9297980262931, - -12.932640302827695, - -12.935481226219476, - -12.938320797112643, - -12.94115901615109, - -12.943995883978406, - -12.94683140123787, - -12.949665568572454, - -12.95249838662483, - -12.955329856037357, - -12.958159977452095, - -12.960988751510792, - -12.963816178854895, - -12.966642260125544, - -12.969466995963574, - -12.972290387009515, - -12.975112433903588, - -12.977933137285719, - -12.98075249779552, - -12.983570516072302, - -12.98638719275507, - -12.989202528482528, - -12.992016523893074, - -12.994829179624801, - -12.997640496315501, - -13.00045047460266, - -13.003259115123463, - -13.006066418514786, - -13.00887238541321, - -13.011677016455005, - -13.014480312276145, - -13.017282273512297, - -13.020082900798824, - -13.022882194770792, - -13.02568015606296, - -13.028476785309786, - -13.031272083145428, - -13.034066050203739, - -13.036858687118272, - -13.03964999452228, - -13.04243997304871, - -13.045228623330209, - -13.048015945999127, - -13.050801941687508, - -13.0535866110271, - -13.056369954649343, - -13.059151973185385, - -13.061932667266067, - -13.064712037521929, - -13.067490084583218, - -13.070266809079875, - -13.073042211641544, - -13.075816292897567, - -13.078589053476987, - -13.081360494008548, - -13.084130615120698, - -13.086899417441577, - -13.089666901599033, - -13.092433068220615, - -13.09519791793357, - -13.09796145136485, - -13.100723669141104, - -13.103484571888687, - -13.106244160233654, - -13.109002434801763, - -13.111759396218472, - -13.11451504510894, - -13.117269382098034, - -13.12002240781032, - -13.122774122870064, - -13.125524527901241, - -13.128273623527523, - -13.131021410372291, - -13.133767889058623, - -13.136513060209305, - -13.139256924446823, - -13.14199948239337, - -13.14474073467084, - -13.147480681900834, - -13.150219324704654, - -13.152956663703307, - -13.155692699517505, - -13.158427432767665, - -13.161160864073908, - -13.163892994056058, - -13.166623823333648, - -13.169353352525912, - -13.172081582251792, - -13.174808513129934, - -13.177534145778688, - -13.180258480816116, - -13.182981518859973, - -13.185703260527736, - -13.188423706436575, - -13.191142857203376, - -13.193860713444721, - -13.196577275776907, - -13.199292544815933, - -13.202006521177507, - -13.204719205477044, - -13.207430598329664, - -13.210140700350196, - -13.212849512153175, - -13.215557034352845, - -13.218263267563154, - -13.220968212397764, - -13.22367186947004, - -13.226374239393055, - -13.229075322779591, - -13.231775120242142, - -13.234473632392902, - -13.237170859843783, - -13.239866803206398, - -13.242561463092073, - -13.245254840111844, - -13.247946934876452, - -13.25063774799635, - -13.253327280081699, - -13.25601553174237, - -13.258702503587948, - -13.261388196227717, - -13.26407261027068, - -13.266755746325552, - -13.269437605000748, - -13.272118186904404, - -13.274797492644357, - -13.277475522828164, - -13.280152278063085, - -13.282827758956095, - -13.285501966113879, - -13.288174900142833, - -13.290846561649065, - -13.293516951238393, - -13.296186069516349, - -13.298853917088174, - -13.30152049455882, - -13.304185802532958, - -13.306849841614962, - -13.309512612408925, - -13.31217411551865, - -13.31483435154765, - -13.317493321099155, - -13.320151024776107, - -13.322807463181157, - -13.325462636916674, - -13.328116546584738, - -13.330769192787143, - -13.333420576125395, - -13.336070697200714, - -13.33871955661404, - -13.341367154966013, - -13.344013492857004, - -13.346658570887081, - -13.34930238965604, - -13.351944949763386, - -13.354586251808339, - -13.357226296389834, - -13.359865084106518, - -13.362502615556759, - -13.365138891338633, - -13.36777391204994, - -13.370407678288185, - -13.373040190650597, - -13.375671449734117, - -13.378301456135404, - -13.380930210450828, - -13.38355771327648, - -13.386183965208167, - -13.388808966841408, - -13.391432718771444, - -13.394055221593229, - -13.396676475901437, - -13.399296482290453, - -13.401915241354386, - -13.404532753687057, - -13.407149019882006, - -13.409764040532494, - -13.412377816231492, - -13.414990347571695, - -13.417601635145513, - -13.420211679545075, - -13.42282048136223, - -13.425428041188539, - -13.428034359615287, - -13.430639437233477, - -13.43324327463383, - -13.435845872406782, - -13.438447231142495, - -13.441047351430845, - -13.443646233861427, - -13.44624387902356, - -13.448840287506275, - -13.451435459898331, - -13.454029396788199, - -13.456622098764075, - -13.459213566413872, - -13.461803800325226, - -13.464392801085493, - -13.466980569281743, - -13.469567105500776, - -13.472152410329105, - -13.47473648435297, - -13.477319328158327, - -13.479900942330856, - -13.482481327455956, - -13.485060484118748, - -13.487638412904078, - -13.490215114396506, - -13.49279058918032, - -13.495364837839528, - -13.49793786095786, - -13.500509659118766, - -13.503080232905424, - -13.505649582900729, - -13.5082177096873, - -13.510784613847475, - -13.513350295963324, - -13.515914756616631, - -13.518477996388908, - -13.521040015861388, - -13.523600815615026, - -13.526160396230507, - -13.52871875828823, - -13.531275902368323, - -13.53383182905064, - -13.536386538914755, - -13.538940032539966, - -13.541492310505298, - -13.544043373389497, - -13.546593221771037, - -13.549141856228115, - -13.551689277338653, - -13.554235485680296, - -13.556780481830417, - -13.55932426636611, - -13.561866839864201, - -13.564408202901234, - -13.566948356053484, - -13.569487299896945, - -13.57202503500735, - -13.57456156196014, - -13.577096881330496, - -13.579630993693318, - -13.582163899623238, - -13.584695599694607, - -13.58722609448151, - -13.589755384557755, - -13.592283470496874, - -13.594810352872132, - -13.597336032256518, - -13.599860509222745, - -13.602383784343264, - -13.60490585819024, - -13.607426731335575, - -13.609946404350893, - -13.612464877807552, - -13.614982152276632, - -13.617498228328941, - -13.620013106535023, - -13.622526787465143, - -13.625039271689296, - -13.627550559777205, - -13.630060652298328, - -13.632569549821842, - -13.635077252916659, - -13.637583762151422, - -13.640089078094498, - -13.642593201313987, - -13.645096132377715, - -13.647597871853243, - -13.650098420307858, - -13.652597778308579, - -13.65509594642215, - -13.657592925215052, - -13.660088715253494, - -13.662583317103412, - -13.665076731330478, - -13.667568958500091, - -13.670059999177381, - -13.67254985392721, - -13.675038523314175, - -13.677526007902594, - -13.680012308256526, - -13.682497424939758, - -13.684981358515808, - -13.687464109547925, - -13.689945678599091, - -13.692426066232024, - -13.694905273009166, - -13.697383299492696, - -13.699860146244527, - -13.7023358138263, - -13.704810302799391, - -13.707283613724911, - -13.7097557471637, - -13.71222670367633, - -13.714696483823113, - -13.717165088164087, - -13.719632517259026, - -13.722098771667442, - -13.72456385194857, - -13.727027758661391, - -13.729490492364608, - -13.73195205361667, - -13.73441244297575, - -13.736871660999762, - -13.73932970824635, - -13.741786585272894, - -13.744242292636512, - -13.74669683089405, - -13.749150200602097, - -13.751602402316967, - -13.754053436594722, - -13.756503303991146, - -13.758952005061765, - -13.761399540361845, - -13.763845910446376, - -13.766291115870095, - -13.76873515718747, - -13.771178034952703, - -13.773619749719735, - -13.776060302042247, - -13.778499692473648, - -13.780937921567087, - -13.783374989875453, - -13.78581089795137, - -13.788245646347194, - -13.790679235615027, - -13.793111666306702, - -13.795542938973789, - -13.797973054167597, - -13.800402012439172, - -13.8028298143393, - -13.805256460418503, - -13.807681951227039, - -13.810106287314909, - -13.812529469231844, - -13.814951497527325, - -13.81737237275056, - -13.819792095450502, - -13.822210666175842, - -13.824628085475007, - -13.827044353896166, - -13.829459471987223, - -13.831873440295826, - -13.83428625936936, - -13.83669792975495, - -13.839108451999458, - -13.841517826649488, - -13.843926054251387, - -13.846333135351234, - -13.848739070494856, - -13.851143860227813, - -13.85354750509541, - -13.855950005642693, - -13.858351362414446, - -13.860751575955193, - -13.863150646809201, - -13.865548575520478, - -13.867945362632769, - -13.870341008689566, - -13.872735514234098, - -13.875128879809338, - -13.877521105957998, - -13.879912193222534, - -13.882302142145143, - -13.88469095326776, - -13.887078627132071, - -13.889465164279494, - -13.891850565251197, - -13.894234830588085, - -13.89661796083081, - -13.898999956519763, - -13.90138081819508, - -13.903760546396638, - -13.906139141664056, - -13.908516604536702, - -13.910892935553681, - -13.913268135253844, - -13.915642204175786, - -13.918015142857842, - -13.920386951838095, - -13.92275763165437, - -13.925127182844237, - -13.92749560594501, - -13.929862901493744, - -13.93222907002724, - -13.934594112082047, - -13.936958028194454, - -13.939320818900496, - -13.941682484735956, - -13.944043026236358, - -13.94640244393697, - -13.94876073837281, - -13.951117910078636, - -13.953473959588957, - -13.95582888743802, - -13.958182694159829, - -13.960535380288121, - -13.96288694635639, - -13.965237392897865, - -13.967586720445533, - -13.969934929532117, - -13.972282020690095, - -13.974627994451682, - -13.97697285134885, - -13.979316591913308, - -13.981659216676519, - -13.98400072616969, - -13.986341120923775, - -13.988680401469479, - -13.991018568337246, - -13.993355622057276, - -13.995691563159513, - -13.998026392173646, - -14.000360109629117, - -14.002692716055115, - -14.005024211980574, - -14.007354597934176, - -14.009683874444358, - -14.012012042039295, - -14.014339101246922, - -14.016665052594913, - -14.018989896610695, - -14.021313633821444, - -14.023636264754083, - -14.025957789935289, - -14.02827820989148, - -14.030597525148835, - -14.03291573623327, - -14.035232843670462, - -14.037548847985828, - -14.039863749704539, - -14.04217754935152, - -14.044490247451435, - -14.046801844528712, - -14.049112341107518, - -14.051421737711781, - -14.053730034865167, - -14.056037233091104, - -14.058343332912765, - -14.060648334853074, - -14.06295223943471, - -14.065255047180095, - -14.067556758611412, - -14.069857374250589, - -14.072156894619312, - -14.074455320239009, - -14.076752651630866, - -14.079048889315821, - -14.081344033814561, - -14.08363808564753, - -14.08593104533492, - -14.088222913396677, - -14.090513690352497, - -14.09280337672183, - -14.095091973023884, - -14.09737947977761, - -14.099665897501719, - -14.101951226714673, - -14.10423546793469, - -14.106518621679731, - -14.108800688467525, - -14.111081668815546, - -14.113361563241023, - -14.115640372260938, - -14.117918096392025, - -14.120194736150781, - -14.122470292053446, - -14.124744764616022, - -14.12701815435426, - -14.129290461783672, - -14.131561687419515, - -14.133831831776808, - -14.136100895370324, - -14.138368878714589, - -14.140635782323887, - -14.142901606712252, - -14.14516635239348, - -14.147430019881115, - -14.149692609688463, - -14.151954122328581, - -14.154214558314287, - -14.156473918158147, - -14.158732202372489, - -14.160989411469396, - -14.16324554596071, - -14.165500606358021, - -14.167754593172683, - -14.170007506915807, - -14.172259348098251, - -14.174510117230641, - -14.176759814823354, - -14.179008441386529, - -14.181255997430053, - -14.183502483463581, - -14.185747899996516, - -14.187992247538027, - -14.190235526597032, - -14.192477737682216, - -14.194718881302013, - -14.196958957964618, - -14.19919796817799, - -14.201435912449835, - -14.20367279128763, - -14.205908605198598, - -14.20814335468973, - -14.210377040267769, - -14.212609662439222, - -14.214841221710351, - -14.21707171858718, - -14.21930115357549, - -14.221529527180822, - -14.223756839908473, - -14.22598309226351, - -14.228208284750743, - -14.230432417874756, - -14.232655492139887, - -14.234877508050236, - -14.237098466109659, - -14.239318366821774, - -14.24153721068996, - -14.243754998217362, - -14.245971729906874, - -14.248187406261154, - -14.25040202778263, - -14.252615594973477, - -14.254828108335643, - -14.257039568370827, - -14.2592499755805, - -14.261459330465883, - -14.263667633527964, - -14.265874885267497, - -14.268081086184985, - -14.270286236780704, - -14.272490337554688, - -14.274693389006737, - -14.276895391636401, - -14.279096345943007, - -14.281296252425635, - -14.28349511158313, - -14.2856929239141, - -14.287889689916915, - -14.29008541008971, - -14.292280084930374, - -14.294473714936574, - -14.296666300605727, - -14.29885784243502, - -14.3010483409214, - -14.303237796561577, - -14.305426209852032, - -14.307613581288999, - -14.30979991136848, - -14.311985200586244, - -14.314169449437822, - -14.316352658418506, - -14.318534828023354, - -14.320715958747195, - -14.32289605108461, - -14.325075105529953, - -14.327253122577341, - -14.329430102720659, - -14.331606046453548, - -14.33378095426942, - -14.335954826661455, - -14.33812766412259, - -14.340299467145535, - -14.34247023622276, - -14.344639971846506, - -14.346808674508774, - -14.348976344701333, - -14.351142982915722, - -14.353308589643238, - -14.35547316537495, - -14.35763671060169, - -14.359799225814063, - -14.361960711502428, - -14.364121168156922, - -14.366280596267444, - -14.368438996323661, - -14.370596368815004, - -14.372752714230673, - -14.37490803305964, - -14.377062325790634, - -14.379215592912159, - -14.381367834912481, - -14.383519052279645, - -14.385669245501447, - -14.387818415065462, - -14.389966561459032, - -14.392113685169262, - -14.39425978668303, - -14.396404866486977, - -14.398548925067523, - -14.400691962910841, - -14.402833980502885, - -14.404974978329372, - -14.407114956875791, - -14.409253916627394, - -14.411391858069209, - -14.413528781686033, - -14.415664687962423, - -14.417799577382711, - -14.419933450431003, - -14.422066307591173, - -14.424198149346855, - -14.426328976181464, - -14.428458788578181, - -14.430587587019955, - -14.432715371989506, - -14.434842143969325, - -14.436967903441678, - -14.439092650888592, - -14.441216386791869, - -14.443339111633087, - -14.445460825893582, - -14.447581530054473, - -14.449701224596645, - -14.451819910000754, - -14.453937586747227, - -14.45605425531626, - -14.458169916187828, - -14.460284569841674, - -14.462398216757306, - -14.464510857414009, - -14.466622492290846, - -14.468733121866638, - -14.47084274661999, - -14.472951367029275, - -14.475058983572637, - -14.477165596727998, - -14.479271206973044, - -14.481375814785238, - -14.483479420641816, - -14.485582025019783, - -14.487683628395924, - -14.489784231246793, - -14.491883834048712, - -14.49398243727779, - -14.496080041409895, - -14.498176646920673, - -14.500272254285546, - -14.502366863979711, - -14.504460476478137, - -14.506553092255562, - -14.508644711786504, - -14.51073533554525, - -14.512824964005873, - -14.5149135976422, - -14.517001236927854, - -14.519087882336219, - -14.521173534340457, - -14.523258193413502, - -14.525341860028071, - -14.527424534656648, - -14.529506217771496, - -14.53158690984465, - -14.533666611347927, - -14.535745322752907, - -14.537823044530958, - -14.539899777153218, - -14.541975521090603, - -14.544050276813802, - -14.546124044793281, - -14.548196825499284, - -14.550268619401825, - -14.5523394269707, - -14.55440924867548, - -14.556478084985514, - -14.558545936369926, - -14.560612803297614, - -14.562678686237259, - -14.564743585657315, - -14.566807502026009, - -14.568870435811352, - -14.570932387481129, - -14.572993357502904, - -14.575053346344015, - -14.57711235447158, - -14.579170382352496, - -14.581227430453435, - -14.583283499240846, - -14.58533858918096, - -14.587392700739782, - -14.589445834383097, - -14.591497990576471, - -14.593549169785247, - -14.595599372474538, - -14.597648599109247, - -14.599696850154052, - -14.601744126073408, - -14.603790427331548, - -14.605835754392487, - -14.60788010772002, - -14.609923487777717, - -14.611965895028929, - -14.614007329936788, - -14.616047792964208, - -14.618087284573873, - -14.620125805228255, - -14.622163355389606, - -14.624199935519952, - -14.626235546081105, - -14.628270187534655, - -14.630303860341972, - -14.632336564964202, - -14.634368301862278, - -14.636399071496914, - -14.638428874328598, - -14.640457710817607, - -14.64248558142399, - -14.644512486607589, - -14.64653842682801, - -14.648563402544658, - -14.650587414216707, - -14.652610462303118, - -14.65463254726263, - -14.656653669553766, - -14.658673829634832, - -14.660693027963916, - -14.662711264998883, - -14.664728541197384, - -14.666744857016852, - -14.6687602129145, - -14.670774609347323, - -14.672788046772107, - -14.674800525645407, - -14.676812046423569, - -14.678822609562724, - -14.68083221551878, - -14.682840864747426, - -14.684848557704143, - -14.68685529484419, - -14.688861076622604, - -14.690865903494215, - -14.692869775913634, - -14.69487269433525, - -14.696874659213243, - -14.69887567100157, - -14.700875730153978, - -14.702874837123993, - -14.704872992364926, - -14.706870196329879, - -14.708866449471731, - -14.71086175224314, - -14.712856105096563, - -14.714849508484232, - -14.716841962858169, - -14.718833468670173, - -14.720824026371835, - -14.722813636414529, - -14.724802299249411, - -14.726790015327428, - -14.728776785099305, - -14.730762609015564, - -14.732747487526499, - -14.734731421082197, - -14.736714410132533, - -14.73869645512716, - -14.740677556515525, - -14.742657714746851, - -14.744636930270163, - -14.746615203534255, - -14.748592534987717, - -14.750568925078928, - -14.752544374256043, - -14.754518882967012, - -14.756492451659568, - -14.758465080781237, - -14.76043677077932, - -14.762407522100917, - -14.76437733519291, - -14.76634621050197, - -14.76831414847455, - -14.770281149556899, - -14.772247214195044, - -14.774212342834806, - -14.776176535921794, - -14.778139793901405, - -14.780102117218822, - -14.78206350631901, - -14.784023961646735, - -14.785983483646541, - -14.787942072762768, - -14.789899729439536, - -14.791856454120762, - -14.793812247250147, - -14.795767109271177, - -14.797721040627135, - -14.799674041761092, - -14.801626113115898, - -14.803577255134206, - -14.805527468258452, - -14.80747675293086, - -14.809425109593443, - -14.811372538688003, - -14.81331904065614, - -14.815264615939233, - -14.817209264978459, - -14.819152988214778, - -14.821095786088947, - -14.823037659041505, - -14.824978607512792, - -14.82691863194293, - -14.82885773277183, - -14.830795910439202, - -14.83273316538454, - -14.834669498047134, - -14.83660490886606, - -14.838539398280183, - -14.840472966728166, - -14.842405614648461, - -14.844337342479308, - -14.84626815065874, - -14.848198039624588, - -14.850127009814463, - -14.852055061665773, - -14.85398219561572, - -14.855908412101295, - -14.85783371155928, - -14.859758094426251, - -14.86168156113858, - -14.863604112132425, - -14.865525747843739, - -14.867446468708264, - -14.869366275161543, - -14.871285167638902, - -14.873203146575465, - -14.875120212406147, - -14.87703636556566, - -14.878951606488501, - -14.880865935608968, - -14.882779353361153, - -14.88469186017893, - -14.886603456495981, - -14.888514142745771, - -14.890423919361565, - -14.892332786776413, - -14.894240745423167, - -14.896147795734477, - -14.898053938142771, - -14.899959173080287, - -14.90186350097905, - -14.903766922270881, - -14.90566943738739, - -14.907571046759992, - -14.909471750819888, - -14.911371549998078, - -14.913270444725356, - -14.915168435432308, - -14.917065522549322, - -14.91896170650657, - -14.920856987734032, - -14.92275136666147, - -14.924644843718458, - -14.92653741933435, - -14.928429093938302, - -14.930319867959266, - -14.932209741825986, - -14.934098715967005, - -14.935986790810666, - -14.937873966785101, - -14.93976024431824, - -14.941645623837816, - -14.943530105771346, - -14.945413690546152, - -14.947296378589355, - -14.949178170327862, - -14.95105906618839, - -14.952939066597438, - -14.954818171981316, - -14.956696382766124, - -14.958573699377757, - -14.960450122241914, - -14.962325651784086, - -14.964200288429563, - -14.966074032603434, - -14.967946884730583, - -14.969818845235691, - -14.971689914543246, - -14.97356009307752, - -14.975429381262593, - -14.977297779522338, - -14.979165288280429, - -14.981031907960338, - -14.982897638985333, - -14.984762481778487, - -14.98662643676266, - -14.988489504360519, - -14.990351684994533, - -14.99221297908696, - -14.994073387059865, - -14.995932909335107, - -14.99779154633435, - -14.99964929847905, - -15.001506166190469, - -15.003362149889664, - -15.005217249997493, - -15.007071466934613, - -15.008924801121484, - -15.010777252978361, - -15.0126288229253, - -15.014479511382161, - -15.0163293187686, - -15.018178245504075, - -15.020026292007842, - -15.021873458698959, - -15.023719745996287, - -15.025565154318484, - -15.027409684084008, - -15.029253335711124, - -15.031096109617891, - -15.032938006222173, - -15.03477902594163, - -15.03661916919373, - -15.038458436395738, - -15.040296827964722, - -15.042134344317551, - -15.043970985870898, - -15.04580675304123, - -15.047641646244822, - -15.049475665897749, - -15.051308812415893, - -15.053141086214927, - -15.054972487710335, - -15.056803017317408, - -15.058632675451221, - -15.06046146252667, - -15.06228937895844, - -15.064116425161032, - -15.065942601548734, - -15.06776790853565, - -15.069592346535682, - -15.071415915962532, - -15.07323861722971, - -15.075060450750529, - -15.076881416938098, - -15.078701516205337, - -15.080520748964966, - -15.082339115629512, - -15.084156616611303, - -15.085973252322464, - -15.08778902317494, - -15.089603929580468, - -15.091417971950584, - -15.093231150696642, - -15.095043466229795, - -15.096854918960995, - -15.098665509301004, - -15.100475237660389, - -15.102284104449515, - -15.104092110078556, - -15.105899254957494, - -15.10770553949611, - -15.109510964103995, - -15.11131552919054, - -15.113119235164943, - -15.114922082436209, - -15.116724071413145, - -15.118525202504369, - -15.120325476118296, - -15.122124892663155, - -15.123923452546974, - -15.125721156177594, - -15.127518003962656, - -15.129313996309603, - -15.131109133625696, - -15.132903416317992, - -15.134696844793364, - -15.13648941945848, - -15.138281140719817, - -15.140072008983665, - -15.141862024656117, - -15.14365118814307, - -15.145439499850228, - -15.147226960183112, - -15.149013569547035, - -15.150799328347125, - -15.152584236988316, - -15.15436829587535, - -15.156151505412778, - -15.157933866004951, - -15.159715378056033, - -15.161496041969999, - -15.163275858150623, - -15.165054827001493, - -15.166832948926006, - -15.16861022432736, - -15.170386653608569, - -15.172162237172449, - -15.17393697542163, - -15.175710868758541, - -15.177483917585429, - -15.17925612230435, - -15.181027483317157, - -15.182798001025525, - -15.184567675830928, - -15.186336508134657, - -15.1881044983378, - -15.189871646841269, - -15.191637954045776, - -15.193403420351846, - -15.195168046159807, - -15.196931831869804, - -15.198694777881789, - -15.20045688459552, - -15.202218152410568, - -15.203978581726316, - -15.205738172941956, - -15.207496926456482, - -15.20925484266871, - -15.211011921977258, - -15.212768164780556, - -15.214523571476846, - -15.216278142464182, - -15.218031878140424, - -15.21978477890324, - -15.22153684515012, - -15.223288077278355, - -15.225038475685047, - -15.226788040767119, - -15.22853677292129, - -15.230284672544101, - -15.232031740031903, - -15.233777975780853, - -15.235523380186928, - -15.237267953645906, - -15.239011696553385, - -15.24075460930477, - -15.24249669229528, - -15.244237945919943, - -15.245978370573603, - -15.247717966650915, - -15.249456734546344, - -15.25119467465417, - -15.252931787368484, - -15.254668073083185, - -15.256403532191992, - -15.25813816508843, - -15.259871972165847, - -15.261604953817388, - -15.263337110436023, - -15.265068442414533, - -15.266798950145507, - -15.268528634021354, - -15.27025749443429, - -15.271985531776348, - -15.273712746439374, - -15.275439138815022, - -15.277164709294768, - -15.2788894582699, - -15.280613386131511, - -15.28233649327052, - -15.284058780077652, - -15.285780246943451, - -15.287500894258269, - -15.289220722412278, - -15.290939731795458, - -15.292657922797613, - -15.294375295808347, - -15.296091851217094, - -15.297807589413095, - -15.299522510785403, - -15.301236615722889, - -15.302949904614243, - -15.304662377847961, - -15.306374035812365, - -15.30808487889558, - -15.309794907485557, - -15.311504121970053, - -15.31321252273665, - -15.31492011017274, - -15.316626884665526, - -15.318332846602035, - -15.320037996369106, - -15.321742334353393, - -15.323445860941373, - -15.325148576519323, - -15.326850481473356, - -15.328551576189389, - -15.330251861053153, - -15.331951336450203, - -15.33365000276591, - -15.335347860385458, - -15.337044909693846, - -15.338741151075896, - -15.34043658491624, - -15.342131211599332, - -15.343825031509443, - -15.345518045030655, - -15.347210252546873, - -15.34890165444182, - -15.35059225109903, - -15.352282042901862, - -15.353971030233485, - -15.35565921347689, - -15.357346593014888, - -15.359033169230104, - -15.360718942504977, - -15.362403913221774, - -15.364088081762574, - -15.365771448509271, - -15.367454013843583, - -15.369135778147042, - -15.370816741801006, - -15.37249690518664, - -15.374176268684936, - -15.375854832676703, - -15.377532597542565, - -15.379209563662972, - -15.380885731418182, - -15.382561101188285, - -15.38423567335318, - -15.385909448292587, - -15.38758242638605, - -15.389254608012928, - -15.390925993552399, - -15.392596583383465, - -15.394266377884945, - -15.395935377435473, - -15.39760358241351, - -15.399270993197334, - -15.40093761016504, - -15.402603433694548, - -15.404268464163593, - -15.405932701949737, - -15.407596147430354, - -15.409258800982647, - -15.410920662983632, - -15.41258173381015, - -15.41424201383886, - -15.415901503446243, - -15.4175602030086, - -15.419218112902055, - -15.420875233502548, - -15.422531565185848, - -15.424187108327537, - -15.425841863303024, - -15.427495830487535, - -15.429149010256118, - -15.430801402983645, - -15.432453009044808, - -15.434103828814123, - -15.435753862665925, - -15.437403110974367, - -15.439051574113435, - -15.440699252456927, - -15.442346146378464, - -15.443992256251496, - -15.445637582449283, - -15.447282125344925, - -15.448925885311326, - -15.450568862721223, - -15.452211057947174, - -15.453852471361559, - -15.455493103336579, - -15.457132954244264, - -15.45877202445646, - -15.460410314344834, - -15.462047824280885, - -15.463684554635929, - -15.465320505781108, - -15.466955678087382, - -15.468590071925542, - -15.470223687666197, - -15.471856525679783, - -15.473488586336558, - -15.475119870006603, - -15.476750377059822, - -15.478380107865949, - -15.480009062794531, - -15.481637242214953, - -15.483264646496412, - -15.484891276007934, - -15.48651713111837, - -15.488142212196399, - -15.489766519610514, - -15.49139005372904, - -15.493012814920126, - -15.494634803551747, - -15.496256019991696, - -15.497876464607598, - -15.499496137766902, - -15.50111503983688, - -15.502733171184632, - -15.504350532177078, - -15.505967123180968, - -15.507582944562877, - -15.509197996689203, - -15.510812279926173, - -15.512425794639832, - -15.514038541196062, - -15.515650519960564, - -15.517261731298868, - -15.518872175576321, - -15.520481853158111, - -15.52209076440924, - -15.523698909694543, - -15.525306289378674, - -15.526912903826123, - -15.528518753401201, - -15.530123838468043, - -15.531728159390617, - -15.533331716532716, - -15.534934510257955, - -15.536536540929779, - -15.538137808911463, - -15.539738314566106, - -15.541338058256635, - -15.542937040345798, - -15.544535261196181, - -15.546132721170194, - -15.547729420630068, - -15.549325359937871, - -15.55092053945549, - -15.552514959544647, - -15.554108620566886, - -15.555701522883583, - -15.55729366685594, - -15.558885052844987, - -15.560475681211583, - -15.562065552316415, - -15.563654666519998, - -15.565243024182674, - -15.566830625664617, - -15.568417471325825, - -15.570003561526127, - -15.57158889662518, - -15.573173476982472, - -15.57475730295732, - -15.576340374908867, - -15.577922693196083, - -15.579504258177774, - -15.581085070212572, - -15.582665129658935, - -15.584244436875155, - -15.58582299221935, - -15.58740079604947, - -15.588977848723294, - -15.590554150598432, - -15.592129702032317, - -15.59370450338222, - -15.59527855500524, - -15.596851857258308, - -15.598424410498174, - -15.599996215081427, - -15.601567271364491, - -15.603137579703612, - -15.604707140454865, - -15.606275953974166, - -15.607844020617252, - -15.609411340739692, - -15.610977914696889, - -15.612543742844078, - -15.614108825536317, - -15.615673163128504, - -15.617236755975359, - -15.618799604431445, - -15.620361708851144, - -15.621923069588677, - -15.623483686998094, - -15.625043561433278, - -15.626602693247941, - -15.628161082795625, - -15.629718730429712, - -15.631275636503403, - -15.63283180136974, - -15.6343872253816, - -15.63594190889168, - -15.637495852252519, - -15.639049055816484, - -15.640601519935778, - -15.642153244962433, - -15.643704231248313, - -15.645254479145114, - -15.646803989004372, - -15.648352761177442, - -15.649900796015526, - -15.651448093869647, - -15.652994655090671, - -15.654540480029288, - -15.65608556903603, - -15.657629922461252, - -15.659173540655148, - -15.66071642396775, - -15.662258572748916, - -15.663799987348337, - -15.665340668115542, - -15.666880615399892, - -15.668419829550581, - -15.669958310916636, - -15.67149605984692, - -15.673033076690128, - -15.674569361794791, - -15.676104915509276, - -15.677639738181773, - -15.679173830160321, - -15.680707191792788, - -15.682239823426869, - -15.683771725410102, - -15.685302898089859, - -15.686833341813342, - -15.688363056927592, - -15.689892043779482, - -15.691420302715725, - -15.692947834082858, - -15.694474638227264, - -15.69600071549516, - -15.69752606623259, - -15.699050690785445, - -15.700574589499437, - -15.702097762720125, - -15.7036202107929, - -15.705141934062986, - -15.706662932875451, - -15.708183207575185, - -15.709702758506928, - -15.711221586015247, - -15.712739690444545, - -15.714257072139066, - -15.715773731442887, - -15.71728966869992, - -15.718804884253919, - -15.720319378448465, - -15.721833151626985, - -15.723346204132739, - -15.724858536308817, - -15.726370148498157, - -15.727881041043524, - -15.729391214287526, - -15.730900668572609, - -15.732409404241048, - -15.733917421634963, - -15.735424721096308, - -15.736931302966871, - -15.738437167588284, - -15.739942315302013, - -15.741446746449357, - -15.74295046137146, - -15.744453460409304, - -15.745955743903696, - -15.747457312195298, - -15.748958165624598, - -15.750458304531927, - -15.751957729257452, - -15.753456440141177, - -15.75495443752295, - -15.756451721742453, - -15.7579482931392, - -15.759444152052554, - -15.760939298821711, - -15.762433733785707, - -15.763927457283415, - -15.76542046965355, - -15.766912771234663, - -15.768404362365144, - -15.769895243383223, - -15.771385414626968, - -15.772874876434283, - -15.774363629142917, - -15.775851673090457, - -15.777339008614328, - -15.778825636051792, - -15.780311555739953, - -15.781796768015758, - -15.783281273215984, - -15.784765071677256, - -15.786248163736039, - -15.787730549728632, - -15.789212229991175, - -15.790693204859654, - -15.79217347466989, - -15.793653039757542, - -15.795131900458117, - -15.796610057106955, - -15.79808751003924, - -15.799564259589992, - -15.801040306094082, - -15.802515649886208, - -15.803990291300918, - -15.805464230672595, - -15.80693746833547, - -15.808410004623607, - -15.809881839870915, - -15.811352974411145, - -15.812823408577882, - -15.814293142704567, - -15.815762177124466, - -15.817230512170696, - -15.818698148176214, - -15.820165085473816, - -15.82163132439614, - -15.823096865275666, - -15.82456170844472, - -15.826025854235464, - -15.8274893029799, - -15.828952055009882, - -15.830414110657099, - -15.831875470253074, - -15.833336134129192, - -15.834796102616663, - -15.836255376046548, - -15.837713954749749, - -15.839171839057006, - -15.840629029298912, - -15.842085525805887, - -15.843541328908207, - -15.844996438935988, - -15.846450856219182, - -15.847904581087592, - -15.849357613870856, - -15.850809954898468, - -15.85226160449975, - -15.85371256300388, - -15.85516283073987, - -15.856612408036579, - -15.858061295222708, - -15.859509492626808, - -15.860957000577264, - -15.86240381940231, - -15.863849949430024, - -15.865295390988326, - -15.866740144404982, - -15.868184210007595, - -15.86962758812362, - -15.871070279080358, - -15.872512283204946, - -15.87395360082437, - -15.875394232265458, - -15.876834177854887, - -15.878273437919171, - -15.879712012784676, - -15.881149902777612, - -15.882587108224024, - -15.884023629449814, - -15.885459466780722, - -15.886894620542336, - -15.888329091060085, - -15.889762878659246, - -15.891195983664947, - -15.892628406402148, - -15.894060147195665, - -15.895491206370155, - -15.896921584250121, - -15.898351281159913, - -15.899780297423725, - -15.901208633365592, - -15.902636289309408, - -15.904063265578898, - -15.905489562497642, - -15.906915180389063, - -15.90834011957643, - -15.909764380382859, - -15.91118796313131, - -15.912610868144595, - -15.914033095745365, - -15.91545464625612, - -15.916875519999213, - -15.918295717296829, - -15.919715238471012, - -15.92113408384365, - -15.922552253736475, - -15.923969748471068, - -15.925386568368856, - -15.926802713751114, - -15.928218184938965, - -15.929632982253375, - -15.93104710601516, - -15.932460556544985, - -15.93387333416336, - -15.935285439190638, - -15.93669687194703, - -15.938107632752589, - -15.93951772192721, - -15.940927139790643, - -15.942335886662487, - -15.943743962862182, - -15.945151368709023, - -15.946558104522147, - -15.947964170620544, - -15.94936956732305, - -15.950774294948344, - -15.952178353814967, - -15.953581744241289, - -15.954984466545547, - -15.956386521045815, - -15.957787908060023, - -15.959188627905943, - -15.9605886809012, - -15.961988067363265, - -15.96338678760946, - -15.964784841956954, - -15.966182230722769, - -15.96757895422377, - -15.968975012776674, - -15.97037040669805, - -15.971765136304313, - -15.973159201911729, - -15.97455260383641, - -15.975945342394322, - -15.977337417901278, - -15.978728830672946, - -15.980119581024832, - -15.981509669272302, - -15.98289909573057, - -15.984287860714698, - -15.985675964539597, - -15.987063407520031, - -15.988450189970616, - -15.989836312205808, - -15.991221774539927, - -15.992606577287132, - -15.993990720761444, - -15.995374205276718, - -15.996757031146677, - -15.998139198684886, - -15.999520708204757, - -16.000901560019564, - -16.00228175444242, - -16.003661291786297, - -16.005040172364016, - -16.006418396488243, - -16.00779596447151, - -16.00917287662618, - -16.010549133264483, - -16.0119247346985, - -16.013299681240152, - -16.01467397320122, - -16.01604761089333, - -16.01742059462798, - -16.018792924716486, - -16.020164601470047, - -16.021535625199693, - -16.022905996216316, - -16.02427571483066, - -16.02564478135332, - -16.02701319609474, - -16.02838095936521, - -16.029748071474895, - -16.031114532733785, - -16.03248034345174, - -16.03384550393847, - -16.035210014503534, - -16.03657387545634, - -16.03793708710616, - -16.03929964976211, - -16.04066156373316, - -16.04202282932814, - -16.043383446855717, - -16.044743416624428, - -16.046102738942654, - -16.04746141411863, - -16.04881944246045, - -16.05017682427605, - -16.051533559873235, - -16.05288964955965, - -16.0542450936428, - -16.055599892430035, - -16.056954046228576, - -16.058307555345483, - -16.05966042008767, - -16.061012640761916, - -16.062364217674844, - -16.063715151132932, - -16.06506544144252, - -16.066415088909793, - -16.06776409384079, - -16.069112456541408, - -16.070460177317404, - -16.07180725647438, - -16.073153694317796, - -16.074499491152967, - -16.075844647285066, - -16.07718916301911, - -16.07853303865998, - -16.079876274512415, - -16.081218870881, - -16.082560828070175, - -16.083902146384244, - -16.085242826127363, - -16.086582867603532, - -16.08792227111662, - -16.089261036970353, - -16.090599165468298, - -16.091936656913884, - -16.093273511610402, - -16.09460972986099, - -16.095945311968652, - -16.097280258236236, - -16.09861456896645, - -16.099948244461864, - -16.10128128502489, - -16.10261369095781, - -16.10394546256276, - -16.10527660014172, - -16.106607103996545, - -16.107936974428934, - -16.109266211740444, - -16.110594816232485, - -16.111922788206336, - -16.113250127963116, - -16.114576835803813, - -16.115902912029274, - -16.117228356940185, - -16.11855317083711, - -16.119877354020453, - -16.121200906790488, - -16.122523829447342, - -16.123846122290985, - -16.125167785621272, - -16.12648881973789, - -16.127809224940396, - -16.129129001528202, - -16.13044814980058, - -16.13176667005665, - -16.1330845625954, - -16.13440182771567, - -16.135718465716167, - -16.13703447689544, - -16.138349861551905, - -16.139664619983837, - -16.140978752489367, - -16.142292259366485, - -16.14360514091304, - -16.14491739742673, - -16.14622902920513, - -16.147540036545653, - -16.148850419745585, - -16.15016017910206, - -16.15146931491208, - -16.1527778274725, - -16.154085717080036, - -16.15539298403126, - -16.156699628622604, - -16.15800565115036, - -16.159311051910677, - -16.16061583119957, - -16.1619199893129, - -16.163223526546396, - -16.164526443195648, - -16.165828739556098, - -16.16713041592305, - -16.168431472591678, - -16.169731909856996, - -16.171031728013894, - -16.172330927357113, - -16.173629508181254, - -16.174927470780784, - -16.176224815450023, - -16.177521542483152, - -16.17881765217422, - -16.180113144817124, - -16.181408020705625, - -16.18270228013335, - -16.183995923393777, - -16.185288950780254, - -16.186581362585986, - -16.18787315910403, - -16.189164340627315, - -16.190454907448622, - -16.191744859860602, - -16.193034198155758, - -16.19432292262646, - -16.195611033564926, - -16.196898531263262, - -16.198185416013402, - -16.199471688107163, - -16.200757347836216, - -16.202042395492096, - -16.20332683136619, - -16.20461065574976, - -16.20589386893392, - -16.20717647120965, - -16.20845846286779, - -16.209739844199035, - -16.21102061549395, - -16.21230077704297, - -16.213580329136366, - -16.21485927206429, - -16.21613760611676, - -16.21741533158364, - -16.218692448754666, - -16.21996895791943, - -16.221244859367395, - -16.222520153387876, - -16.223794840270063, - -16.225068920302995, - -16.226342393775578, - -16.227615260976584, - -16.228887522194647, - -16.230159177718253, - -16.23143022783577, - -16.232700672835414, - -16.233970513005268, - -16.235239748633273, - -16.236508380007244, - -16.23777640741485, - -16.239043831143626, - -16.240310651480968, - -16.241576868714137, - -16.24284248313026, - -16.24410749501632, - -16.24537190465917, - -16.246635712345526, - -16.247898918361965, - -16.249161522994925, - -16.250423526530714, - -16.2516849292555, - -16.252945731455316, - -16.254205933416056, - -16.255465535423482, - -16.256724537763215, - -16.25798294072075, - -16.259240744581437, - -16.260497949630487, - -16.261754556152983, - -16.26301056443387, - -16.264265974757958, - -16.265520787409923, - -16.266775002674297, - -16.268028620835487, - -16.26928164217776, - -16.270534066985245, - -16.27178589554194, - -16.273037128131705, - -16.274287765038274, - -16.275537806545223, - -16.27678725293602, - -16.27803610449399, - -16.279284361502306, - -16.280532024244028, - -16.28177909300207, - -16.283025568059212, - -16.28427144969811, - -16.28551673820127, - -16.28676143385107, - -16.288005536929756, - -16.289249047719437, - -16.290491966502085, - -16.29173429355955, - -16.29297602917353, - -16.2942171736256, - -16.295457727197203, - -16.296697690169633, - -16.297937062824072, - -16.299175845441553, - -16.30041403830298, - -16.30165164168912, - -16.302888655880608, - -16.30412508115795, - -16.305360917801508, - -16.306596166091527, - -16.3078308263081, - -16.309064898731197, - -16.31029838364066, - -16.31153128131618, - -16.312763592037335, - -16.313995316083556, - -16.31522645373414, - -16.31645700526827, - -16.31768697096497, - -16.318916351103155, - -16.320145145961586, - -16.321373355818906, - -16.32260098095362, - -16.3238280216441, - -16.325054478168585, - -16.32628035080519, - -16.327505639831884, - -16.328730345526512, - -16.329954468166786, - -16.331178008030285, - -16.33240096539446, - -16.333623340536615, - -16.33484513373394, - -16.336066345263482, - -16.33728697540216, - -16.338507024426768, - -16.339726492613952, - -16.34094538024024, - -16.342163687582023, - -16.34338141491556, - -16.344598562516982, - -16.34581513066228, - -16.34703111962733, - -16.34824652968786, - -16.349461361119474, - -16.35067561419764, - -16.35188928919771, - -16.353102386394884, - -16.354314906064246, - -16.355526848480736, - -16.35673821391918, - -16.35794900265426, - -16.359159214960528, - -16.360368851112415, - -16.36157791138421, - -16.362786396050083, - -16.363994305384058, - -16.365201639660043, - -16.36640839915181, - -16.367614584132994, - -16.368820194877117, - -16.37002523165755, - -16.37122969474755, - -16.37243358442024, - -16.373636900948604, - -16.37483964460551, - -16.376041815663676, - -16.377243414395718, - -16.3784444410741, - -16.37964489597117, - -16.380844779359133, - -16.382044091510075, - -16.38324283269594, - -16.384441003188567, - -16.385638603259636, - -16.386835633180723, - -16.38803209322326, - -16.389227983658547, - -16.390423304757764, - -16.39161805679196, - -16.392812240032054, - -16.39400585474884, - -16.395198901212968, - -16.396391379694983, - -16.397583290465278, - -16.398774633794133, - -16.399965409951694, - -16.401155619207977, - -16.402345261832867, - -16.403534338096126, - -16.40472284826739, - -16.40591079261616, - -16.40709817141181, - -16.40828498492359, - -16.409471233420618, - -16.410656917171877, - -16.41184203644624, - -16.41302659151244, - -16.41421058263908, - -16.415394010094637, - -16.416576874147466, - -16.41775917506579, - -16.418940913117698, - -16.420122088571166, - -16.42130270169403, - -16.422482752754007, - -16.423662242018676, - -16.4248411697555, - -16.42601953623181, - -16.427197341714802, - -16.42837458647156, - -16.429551270769025, - -16.43072739487403, - -16.43190295905326, - -16.43307796357329, - -16.434252408700555, - -16.435426294701372, - -16.43659962184193, - -16.437772390388286, - -16.438944600606373, - -16.440116252762003, - -16.441287347120852, - -16.442457883948478, - -16.44362786351031, - -16.444797286071644, - -16.445966151897657, - -16.447134461253405, - -16.4483022144038, - -16.44946941161364, - -16.450636053147605, - -16.451802139270235, - -16.452967670245943, - -16.45413264633903, - -16.455297067813657, - -16.456460934933865, - -16.457624247963572, - -16.45878700716657, - -16.45994921280652, - -16.46111086514696, - -16.462271964451308, - -16.463432510982845, - -16.464592505004738, - -16.46575194678002, - -16.46691083657161, - -16.46806917464229, - -16.469226961254723, - -16.470384196671446, - -16.47154088115487, - -16.472697014967277, - -16.473852598370836, - -16.475007631627584, - -16.47616211499943, - -16.477316048748158, - -16.47846943313544, - -16.479622268422805, - -16.48077455487168, - -16.48192629274334, - -16.483077482298956, - -16.48422812379957, - -16.485378217506096, - -16.48652776367933, - -16.487676762579937, - -16.488825214468463, - -16.489973119605324, - -16.49112047825082, - -16.492267290665122, - -16.49341355710828, - -16.494559277840214, - -16.495704453120723, - -16.496849083209494, - -16.49799316836607, - -16.499136708849885, - -16.500279704920246, - -16.501422156836334, - -16.50256406485721, - -16.50370542924181, - -16.504846250248946, - -16.505986528137306, - -16.50712626316546, - -16.50826545559185, - -16.509404105674793, - -16.51054221367249, - -16.511679779843014, - -16.512816804444316, - -16.51395328773423, - -16.515089229970453, - -16.516224631410573, - -16.517359492312053, - -16.518493812932224, - -16.519627593528313, - -16.5207608343574, - -16.521893535676465, - -16.52302569774235, - -16.52415732081179, - -16.525288405141378, - -16.5264189509876, - -16.527548958606822, - -16.528678428255276, - -16.529807360189075, - -16.530935754664213, - -16.532063611936568, - -16.533190932261885, - -16.534317715895792, - -16.535443963093797, - -16.536569674111284, - -16.53769484920352, - -16.53881948862564, - -16.53994359263267, - -16.541067161479507, - -16.54219019542093, - -16.54331269471159, - -16.544434659606026, - -16.545556090358655, - -16.546676987223762, - -16.547797350455525, - -16.548917180307992, - -16.550036477035093, - -16.551155240890637, - -16.552273472128313, - -16.553391171001685, - -16.5545083377642, - -16.555624972669186, - -16.55674107596985, - -16.557856647919273, - -16.55897168877042, - -16.560086198776133, - -16.56120017818914, - -16.56231362726204, - -16.563426546247317, - -16.56453893539733, - -16.56565079496433, - -16.56676212520043, - -16.56787292635764, - -16.56898319868784, - -16.57009294244279, - -16.571202157874136, - -16.5723108452334, - -16.57341900477198, - -16.574526636741165, - -16.575633741392117, - -16.576740318975883, - -16.57784636974338, - -16.57895189394542, - -16.580056891832687, - -16.58116136365575, - -16.58226530966505, - -16.58336873011092, - -16.584471625243566, - -16.58557399531308, - -16.58667584056943, - -16.58777716126247, - -16.58887795764193, - -16.589978229957424, - -16.591077978458447, - -16.592177203394375, - -16.59327590501447, - -16.594374083567864, - -16.59547173930358, - -16.59656887247052, - -16.59766548331747, - -16.59876157209309, - -16.599857139045923, - -16.600952184424404, - -16.60204670847684, - -16.603140711451424, - -16.604234193596227, - -16.605327155159202, - -16.60641959638819, - -16.60751151753091, - -16.60860291883496, - -16.609693800547827, - -16.610784162916875, - -16.61187400618935, - -16.612963330612384, - -16.61405213643299, - -16.61514042389806, - -16.616228193254372, - -16.617315444748588, - -16.61840217862725, - -16.61948839513678, - -16.620574094523487, - -16.621659277033565, - -16.622743942913083, - -16.623828092407997, - -16.624911725764143, - -16.62599484322725, - -16.62707744504292, - -16.628159531456642, - -16.62924110271378, - -16.6303221590596, - -16.631402700739226, - -16.63248272799769, - -16.63356224107989, - -16.634641240230618, - -16.635719725694543, - -16.63679769771622, - -16.63787515654008, - -16.638952102410457, - -16.64002853557155, - -16.641104456267445, - -16.642179864742126, - -16.643254761239437, - -16.644329146003123, - -16.64540301927681, - -16.64647638130401, - -16.647549232328107, - -16.648621572592386, - -16.649693402340006, - -16.650764721814014, - -16.651835531257333, - -16.65290583091278, - -16.653975621023058, - -16.655044901830742, - -16.656113673578307, - -16.6571819365081, - -16.658249690862355, - -16.6593169368832, - -16.66038367481264, - -16.661449904892564, - -16.662515627364744, - -16.663580842470843, - -16.66464555045241, - -16.66570975155087, - -16.666773446007543, - -16.667836634063626, - -16.668899315960203, - -16.669961491938253, - -16.671023162238626, - -16.672084327102063, - -16.67314498676919, - -16.674205141480527, - -16.675264791476465, - -16.676323936997292, - -16.677382578283176, - -16.678440715574165, - -16.679498349110208, - -16.680555479131126, - -16.681612105876635, - -16.68266822958633, - -16.683723850499696, - -16.684778968856104, - -16.68583358489481, - -16.68688769885495, - -16.687941310975553, - -16.688994421495543, - -16.690047030653712, - -16.69109913868875, - -16.69215074583923, - -16.693201852343606, - -16.694252458440236, - -16.695302564367342, - -16.69635217036305, - -16.69740127666536, - -16.698449883512172, - -16.699497991141257, - -16.70054559979029, - -16.701592709696815, - -16.702639321098275, - -16.703685434232, - -16.7047310493352, - -16.70577616664498, - -16.70682078639833, - -16.707864908832114, - -16.708908534183102, - -16.70995166268795, - -16.71099429458318, - -16.71203643010523, - -16.713078069490404, - -16.714119212974904, - -16.715159860794817, - -16.716200013186118, - -16.71723967038467, - -16.718278832626222, - -16.71931750014641, - -16.720355673180762, - -16.72139335196469, - -16.722430536733498, - -16.723467227722367, - -16.724503425166386, - -16.72553912930051, - -16.726574340359605, - -16.727609058578402, - -16.72864328419153, - -16.729677017433517, - -16.73071025853876, - -16.73174300774156, - -16.7327752652761, - -16.733807031376447, - -16.73483830627657, - -16.735869090210304, - -16.7368993834114, - -16.737929186113483, - -16.738958498550065, - -16.73998732095455, - -16.741015653560236, - -16.7420434966003, - -16.743070850307813, - -16.744097714915736, - -16.74512409065692, - -16.746149977764098, - -16.747175376469905, - -16.748200287006853, - -16.749224709607347, - -16.75024864450369, - -16.751272091928055, - -16.752295052112526, - -16.753317525289063, - -16.754339511689516, - -16.75536101154563, - -16.756382025089042, - -16.757402552551273, - -16.758422594163733, - -16.759442150157724, - -16.760461220764437, - -16.761479806214957, - -16.762497906740254, - -16.76351552257119, - -16.764532653938513, - -16.765549301072866, - -16.766565464204792, - -16.7675811435647, - -16.768596339382913, - -16.769611051889626, - -16.770625281314935, - -16.771639027888824, - -16.77265229184117, - -16.773665073401734, - -16.774677372800177, - -16.77568919026604, - -16.776700526028762, - -16.777711380317673, - -16.778721753361992, - -16.77973164539082, - -16.780741056633172, - -16.781749987317927, - -16.78275843767387, - -16.78376640792968, - -16.784773898313915, - -16.78578090905504, - -16.78678744038139, - -16.787793492521214, - -16.788799065702634, - -16.789804160153675, - -16.79080877610225, - -16.79181291377616, - -16.792816573403105, - -16.793819755210667, - -16.79482245942633, - -16.795824686277463, - -16.796826435991328, - -16.797827708795076, - -16.79882850491576, - -16.79982882458031, - -16.80082866801556, - -16.80182803544823, - -16.802826927104938, - -16.803825343212186, - -16.804823283996374, - -16.805820749683793, - -16.806817740500627, - -16.807814256672945, - -16.808810298426717, - -16.80980586598781, - -16.81080095958196, - -16.811795579434833, - -16.81278972577195, - -16.813783398818746, - -16.81477659880054, - -16.815769325942558, - -16.8167615804699, - -16.81775336260757, - -16.818744672580458, - -16.81973551061336, - -16.820725876930943, - -16.821715771757788, - -16.822705195318356, - -16.823694147837013, - -16.82468262953801, - -16.825670640645487, - -16.826658181383486, - -16.827645251975937, - -16.82863185264667, - -16.8296179836194, - -16.83060364511774, - -16.831588837365203, - -16.83257356058518, - -16.83355781500096, - -16.834541600835745, - -16.835524918312604, - -16.836507767654517, - -16.83749014908435, - -16.838472062824863, - -16.839453509098718, - -16.840434488128462, - -16.841415000136536, - -16.842395045345285, - -16.843374623976935, - -16.844353736253616, - -16.84533238239735, - -16.84631056263005, - -16.847288277173526, - -16.84826552624948, - -16.849242310079514, - -16.85021862888512, - -16.851194482887685, - -16.852169872308497, - -16.85314479736872, - -16.854119258289433, - -16.855093255291607, - -16.85606678859609, - -16.85703985842365, - -16.858012464994935, - -16.858984608530488, - -16.859956289250754, - -16.86092750737606, - -16.861898263126644, - -16.86286855672263, - -16.863838388384043, - -16.86480775833079, - -16.865776666782693, - -16.866745113959453, - -16.867713100080678, - -16.86868062536586, - -16.869647690034398, - -16.870614294305575, - -16.871580438398578, - -16.87254612253249, - -16.873511346926286, - -16.87447611179883, - -16.875440417368903, - -16.87640426385516, - -16.877367651476163, - -16.878330580450367, - -16.87929305099612, - -16.880255063331674, - -16.881216617675168, - -16.882177714244644, - -16.88313835325804, - -16.884098534933184, - -16.885058259487803, - -16.88601752713953, - -16.886976338105875, - -16.88793469260426, - -16.888892590852006, - -16.889850033066313, - -16.890807019464294, - -16.89176355026295, - -16.892719625679185, - -16.893675245929792, - -16.894630411231468, - -16.895585121800803, - -16.89653937785428, - -16.89749317960829, - -16.898446527279113, - -16.899399421082926, - -16.900351861235805, - -16.90130384795372, - -16.902255381452548, - -16.903206461948052, - -16.904157089655897, - -16.905107264791646, - -16.906056987570754, - -16.907006258208586, - -16.907955076920384, - -16.908903443921314, - -16.909851359426412, - -16.910798823650634, - -16.91174583680882, - -16.912692399115713, - -16.913638510785955, - -16.91458417203408, - -16.915529383074524, - -16.916474144121626, - -16.917418455389612, - -16.918362317092612, - -16.919305729444655, - -16.920248692659673, - -16.921191206951477, - -16.9221332725338, - -16.923074889620256, - -16.924016058424368, - -16.924956779159544, - -16.92589705203911, - -16.926836877276276, - -16.927776255084154, - -16.928715185675753, - -16.92965366926399, - -16.930591706061662, - -16.931529296281482, - -16.932466440136057, - -16.933403137837885, - -16.934339389599373, - -16.935275195632823, - -16.93621055615044, - -16.937145471364317, - -16.938079941486457, - -16.939013966728755, - -16.93994754730301, - -16.940880683420918, - -16.94181337529408, - -16.942745623133977, - -16.943677427152014, - -16.944608787559485, - -16.945539704567576, - -16.946470178387386, - -16.947400209229905, - -16.94832979730602, - -16.949258942826525, - -16.950187646002114, - -16.951115907043373, - -16.952043726160788, - -16.95297110356476, - -16.95389803946557, - -16.95482453407341, - -16.95575058759837, - -16.956676200250442, - -16.95760137223951, - -16.958526103775363, - -16.959450395067694, - -16.960374246326097, - -16.961297657760056, - -16.96222062957896, - -16.963143161992107, - -16.964065255208684, - -16.96498690943778, - -16.96590812488839, - -16.966828901769404, - -16.967749240289617, - -16.968669140657724, - -16.969588603082315, - -16.970507627771887, - -16.971426214934837, - -16.97234436477946, - -16.973262077513954, - -16.974179353346415, - -16.975096192484845, - -16.976012595137142, - -16.97692856151111, - -16.977844091814443, - -16.978759186254752, - -16.979673845039542, - -16.980588068376214, - -16.98150185647208, - -16.98241520953434, - -16.98332812777011, - -16.984240611386404, - -16.985152660590128, - -16.986064275588095, - -16.98697545658703, - -16.987886203793536, - -16.98879651741414, - -16.98970639765526, - -16.990615844723223, - -16.99152485882425, - -16.992433440164465, - -16.993341588949896, - -16.99424930538647, - -16.995156589680025, - -16.996063442036288, - -16.996969862660897, - -16.997875851759392, - -16.99878140953721, - -16.999686536199693, - -17.000591231952086, - -17.001495496999535, - -17.00239933154709, - -17.0033027357997, - -17.004205709962214, - -17.0051082542394, - -17.00601036883591, - -17.006912053956302, - -17.00781330980504, - -17.008714136586498, - -17.009614534504937, - -17.010514503764533, - -17.01141404456936, - -17.012313157123394, - -17.01321184163052, - -17.014110098294516, - -17.015007927319072, - -17.015905328907774, - -17.016802303264118, - -17.017698850591497, - -17.01859497109321, - -17.01949066497246, - -17.02038593243235, - -17.02128077367589, - -17.022175188905994, - -17.02306917832548, - -17.023962742137055, - -17.02485588054335, - -17.025748593746886, - -17.026640881950097, - -17.027532745355316, - -17.028424184164777, - -17.02931519858062, - -17.030205788804885, - -17.03109595503953, - -17.0319856974864, - -17.032875016347255, - -17.03376391182375, - -17.03465238411745, - -17.035540433429826, - -17.036428059962244, - -17.037315263915985, - -17.038202045492227, - -17.039088404892052, - -17.03997434231645, - -17.040859857966318, - -17.04174495204245, - -17.042629624745544, - -17.043513876276208, - -17.044397706834957, - -17.045281116622203, - -17.046164105838265, - -17.04704667468337, - -17.04792882335764, - -17.048810552061116, - -17.049691860993736, - -17.050572750355343, - -17.051453220345678, - -17.052333271164404, - -17.053212903011076, - -17.05409211608515, - -17.054970910586004, - -17.055849286712906, - -17.056727244665037, - -17.057604784641477, - -17.058481906841216, - -17.059358611463146, - -17.06023489870607, - -17.061110768768692, - -17.061986221849622, - -17.062861258147375, - -17.063735877860367, - -17.06461008118693, - -17.0654838683253, - -17.066357239473607, - -17.067230194829897, - -17.068102734592117, - -17.068974858958125, - -17.06984656812568, - -17.07071786229245, - -17.071588741656008, - -17.072459206413825, - -17.073329256763294, - -17.074198892901705, - -17.075068115026248, - -17.07593692333403, - -17.07680531802206, - -17.07767329928725, - -17.078540867326428, - -17.079408022336313, - -17.080274764513543, - -17.081141094054654, - -17.0820070111561, - -17.082872516014227, - -17.083737608825302, - -17.084602289785483, - -17.08546655909085, - -17.086330416937376, - -17.087193863520948, - -17.088056899037362, - -17.08891952368232, - -17.089781737651425, - -17.09064354114019, - -17.091504934344034, - -17.092365917458284, - -17.09322649067818, - -17.09408665419886, - -17.09494640821537, - -17.095805752922672, - -17.096664688515624, - -17.097523215188996, - -17.098381333137464, - -17.099239042555617, - -17.100096343637944, - -17.100953236578842, - -17.101809721572618, - -17.102665798813494, - -17.103521468495586, - -17.104376730812923, - -17.10523158595944, - -17.10608603412899, - -17.106940075515315, - -17.107793710312084, - -17.10864693871286, - -17.109499760911117, - -17.110352177100246, - -17.111204187473533, - -17.112055792224183, - -17.112906991545294, - -17.11375778562989, - -17.114608174670895, - -17.115458158861134, - -17.116307738393356, - -17.1171569134602, - -17.11800568425423, - -17.118854050967908, - -17.119702013793606, - -17.120549572923608, - -17.121396728550106, - -17.122243480865198, - -17.123089830060888, - -17.12393577632909, - -17.12478131986164, - -17.125626460850263, - -17.1264711994866, - -17.127315535962207, - -17.128159470468535, - -17.12900300319696, - -17.129846134338756, - -17.130688864085112, - -17.13153119262712, - -17.132373120155787, - -17.133214646862022, - -17.134055772936655, - -17.134896498570406, - -17.135736823953927, - -17.136576749277765, - -17.137416274732374, - -17.13825540050813, - -17.139094126795303, - -17.139932453784084, - -17.14077038166457, - -17.14160791062677, - -17.142445040860597, - -17.143281772555877, - -17.144118105902347, - -17.144954041089647, - -17.145789578307337, - -17.146624717744878, - -17.147459459591644, - -17.148293804036918, - -17.149127751269894, - -17.149961301479678, - -17.150794454855284, - -17.151627211585634, - -17.152459571859563, - -17.153291535865815, - -17.154123103793037, - -17.1549542758298, - -17.155785052164582, - -17.15661543298576, - -17.15744541848163, - -17.1582750088404, - -17.159104204250184, - -17.15993300489901, - -17.160761410974814, - -17.161589422665447, - -17.162417040158658, - -17.16324426364212, - -17.164071093303416, - -17.16489752933003, - -17.165723571909364, - -17.166549221228728, - -17.16737447747535, - -17.168199340836352, - -17.16902381149879, - -17.16984788964961, - -17.17067157547568, - -17.17149486916378, - -17.172317770900598, - -17.17314028087273, - -17.173962399266685, - -17.17478412626889, - -17.17560546206567, - -17.176426406843273, - -17.177246960787855, - -17.178067124085484, - -17.178886896922133, - -17.179706279483696, - -17.180525271955972, - -17.181343874524675, - -17.182162087375428, - -17.182979910693767, - -17.18379734466514, - -17.184614389474905, - -17.18543104530833, - -17.186247312350606, - -17.187063190786823, - -17.187878680801987, - -17.188693782581016, - -17.189508496308743, - -17.190322822169907, - -17.191136760349163, - -17.19195031103108, - -17.192763474400135, - -17.193576250640717, - -17.194388639937134, - -17.195200642473598, - -17.196012258434237, - -17.196823488003087, - -17.197634331364107, - -17.198444788701156, - -17.199254860198014, - -17.200064546038373, - -17.20087384640583, - -17.2016827614839, - -17.202491291456017, - -17.203299436505517, - -17.204107196815656, - -17.204914572569592, - -17.20572156395041, - -17.2065281711411, - -17.207334394324562, - -17.20814023368362, - -17.208945689400995, - -17.20975076165934, - -17.210555450641202, - -17.21135975652906, - -17.212163679505288, - -17.212967219752183, - -17.213770377451958, - -17.214573152786734, - -17.21537554593854, - -17.21617755708933, - -17.216979186420964, - -17.21778043411522, - -17.218581300353783, - -17.219381785318255, - -17.220181889190158, - -17.22098161215092, - -17.221780954381877, - -17.222579916064294, - -17.223378497379336, - -17.22417669850809, - -17.22497451963155, - -17.225771960930633, - -17.226569022586162, - -17.22736570477888, - -17.228162007689434, - -17.228957931498396, - -17.229753476386247, - -17.230548642533382, - -17.231343430120113, - -17.23213783932666, - -17.232931870333164, - -17.233725523319677, - -17.23451879846617, - -17.235311695952515, - -17.236104215958512, - -17.236896358663873, - -17.237688124248216, - -17.238479512891086, - -17.239270524771936, - -17.240061160070127, - -17.240851418964947, - -17.241641301635592, - -17.242430808261176, - -17.24321993902072, - -17.244008694093168, - -17.244797073657377, - -17.245585077892116, - -17.246372706976075, - -17.24715996108785, - -17.24794684040596, - -17.24873334510883, - -17.24951947537481, - -17.250305231382164, - -17.25109061330906, - -17.251875621333596, - -17.252660255633778, - -17.253444516387525, - -17.254228403772675, - -17.255011917966982, - -17.25579505914811, - -17.25657782749364, - -17.257360223181074, - -17.258142246387827, - -17.25892389729123, - -17.259705176068522, - -17.26048608289687, - -17.261266617953346, - -17.262046781414945, - -17.26282657345857, - -17.263605994261056, - -17.264385043999127, - -17.26516372284945, - -17.26594203098859, - -17.266719968593037, - -17.267497535839194, - -17.268274732903375, - -17.269051559961827, - -17.269828017190687, - -17.270604104766033, - -17.271379822863842, - -17.27215517166002, - -17.272930151330378, - -17.27370476205065, - -17.274479003996483, - -17.275252877343448, - -17.276026382267016, - -17.276799518942596, - -17.277572287545496, - -17.27834468825095, - -17.279116721234104, - -17.27988838667002, - -17.28065968473368, - -17.281430615599984, - -17.28220117944375, - -17.282971376439697, - -17.283741206762482, - -17.28451067058667, - -17.28527976808674, - -17.286048499437086, - -17.28681686481203, - -17.287584864385803, - -17.288352498332557, - -17.289119766826353, - -17.289886670041177, - -17.290653208150932, - -17.291419381329437, - -17.29218518975042, - -17.29295063358754, - -17.29371571301437, - -17.294480428204395, - -17.295244779331014, - -17.296008766567553, - -17.296772390087252, - -17.297535650063267, - -17.298298546668676, - -17.299061080076473, - -17.29982325045956, - -17.300585057990773, - -17.30134650284285, - -17.302107585188462, - -17.302868305200185, - -17.303628663050517, - -17.30438865891188, - -17.305148292956606, - -17.305907565356943, - -17.306666476285066, - -17.30742502591307, - -17.30818321441295, - -17.308941041956636, - -17.30969850871597, - -17.310455614862718, - -17.311212360568554, - -17.311968746005075, - -17.312724771343802, - -17.313480436756162, - -17.314235742413516, - -17.314990688487132, - -17.315745275148196, - -17.31649950256782, - -17.317253370917033, - -17.318006880366774, - -17.31876003108791, - -17.319512823251223, - -17.320265257027412, - -17.321017332587104, - -17.32176905010083, - -17.322520409739052, - -17.323271411672145, - -17.324022056070405, - -17.324772343104044, - -17.325522272943193, - -17.32627184575791, - -17.327021061718163, - -17.32776992099384, - -17.328518423754755, - -17.32926657017064, - -17.330014360411127, - -17.3307617946458, - -17.331508873044136, - -17.332255595775546, - -17.33300196300935, - -17.333747974914797, - -17.334493631661044, - -17.33523893341718, - -17.335983880352206, - -17.336728472635045, - -17.337472710434533, - -17.33821659391944, - -17.338960123258445, - -17.339703298620144, - -17.340446120173063, - -17.34118858808564, - -17.34193070252623, - -17.342672463663124, - -17.343413871664513, - -17.34415492669852, - -17.34489562893318, - -17.34563597853646, - -17.346375975676235, - -17.34711562052031, - -17.347854913236397, - -17.34859385399214, - -17.3493324429551, - -17.350070680292756, - -17.35080856617251, - -17.351546100761684, - -17.352283284227518, - -17.353020116737174, - -17.353756598457736, - -17.354492729556203, - -17.355228510199503, - -17.35596394055447, - -17.35669902078788, - -17.357433751066413, - -17.35816813155667, - -17.358902162425185, - -17.3596358438384, - -17.36036917596269, - -17.36110215896433, - -17.36183479300954, - -17.362567078264448, - -17.3632990148951, - -17.364030603067476, - -17.364761842947466, - -17.36549273470088, - -17.366223278493457, - -17.366953474490852, - -17.367683322858642, - -17.36841282376233, - -17.36914197736733, - -17.369870783838987, - -17.37059924334256, - -17.37132735604323, - -17.37205512210611, - -17.37278254169622, - -17.373509614978513, - -17.374236342117854, - -17.374962723279033, - -17.37568875862676, - -17.37641444832568, - -17.37713979254034, - -17.37786479143522, - -17.37858944517471, - -17.379313753923142, - -17.380037717844754, - -17.380761337103714, - -17.3814846118641, - -17.382207542289926, - -17.382930128545123, - -17.383652370793538, - -17.384374269198947, - -17.38509582392504, - -17.385817035135446, - -17.3865379029937, - -17.387258427663262, - -17.387978609307517, - -17.388698448089773, - -17.389417944173257, - -17.39013709772112, - -17.390855908896437, - -17.391574377862206, - -17.392292504781338, - -17.393010289816683, - -17.393727733130994, - -17.394444834886965, - -17.395161595247195, - -17.395878014374222, - -17.3965940924305, - -17.397309829578404, - -17.398025225980227, - -17.398740281798194, - -17.399454997194454, - -17.400169372331067, - -17.400883407370024, - -17.401597102473243, - -17.402310457802553, - -17.403023473519717, - -17.403736149786415, - -17.404448486764252, - -17.405160484614754, - -17.405872143499373, - -17.406583463579484, - -17.407294445016383, - -17.40800508797129, - -17.408715392605348, - -17.409425359079627, - -17.410134987555114, - -17.410844278192723, - -17.41155323115329, - -17.412261846597577, - -17.412970124686268, - -17.413678065579973, - -17.414385669439216, - -17.415092936424458, - -17.41579986669607, - -17.416506460414357, - -17.41721271773955, - -17.417918638831786, - -17.418624223851147, - -17.419329472957628, - -17.420034386311148, - -17.420738964071553, - -17.42144320639861, - -17.42214711345201, - -17.42285068539137, - -17.423553922376232, - -17.42425682456606, - -17.42495939212024, - -17.42566162519808, - -17.426363523958827, - -17.427065088561637, - -17.427766319165595, - -17.428467215929707, - -17.42916777901291, - -17.429868008574065, - -17.430567904771948, - -17.431267467765267, - -17.431966697712653, - -17.43266559477266, - -17.43336415910378, - -17.4340623908644, - -17.434760290212864, - -17.435457857307416, - -17.436155092306237, - -17.43685199536743, - -17.437548566649028, - -17.438244806308976, - -17.438940714505154, - -17.439636291395367, - -17.44033153713734, - -17.441026451888728, - -17.441721035807102, - -17.442415289049972, - -17.443109211774757, - -17.443802804138816, - -17.444496066299422, - -17.445188998413776, - -17.445881600639012, - -17.446573873132174, - -17.447265816050248, - -17.447957429550133, - -17.448648713788657, - -17.449339668922576, - -17.450030295108565, - -17.45072059250323, - -17.451410561263103, - -17.452100201544642, - -17.452789513504225, - -17.453478497298153, - -17.454167153082672, - -17.454855481013926, - -17.455543481248004, - -17.456231153940916, - -17.456918499248598, - -17.457605517326908, - -17.45829220833163, - -17.458978572418484, - -17.4596646097431, - -17.460350320461043, - -17.46103570472781, - -17.461720762698807, - -17.462405494529385, - -17.463089900374808, - -17.463773980390272, - -17.464457734730892, - -17.465141163551724, - -17.46582426700773, - -17.46650704525381, - -17.467189498444796, - -17.467871626735437, - -17.468553430280405, - -17.46923490923431, - -17.46991606375168, - -17.470596893986972, - -17.47127740009457, - -17.471957582228782, - -17.47263744054385, - -17.473316975193928, - -17.47399618633311, - -17.474675074115414, - -17.475353638694777, - -17.476031880225076, - -17.476709798860103, - -17.47738739475358, - -17.47806466805916, - -17.47874161893042, - -17.47941824752086, - -17.480094553983914, - -17.480770538472935, - -17.48144620114121, - -17.48212154214195, - -17.482796561628298, - -17.483471259753316, - -17.484145636669997, - -17.484819692531257, - -17.48549342748995, - -17.486166841698846, - -17.48683993531065, - -17.487512708477986, - -17.488185161353414, - -17.488857294089417, - -17.489529106838404, - -17.49020059975272, - -17.490871772984622, - -17.49154262668631, - -17.4922131610099, - -17.492883376107446, - -17.49355327213092, - -17.49422284923223, - -17.494892107563203, - -17.4955610472756, - -17.49622966852111, - -17.496897971451343, - -17.497565956217848, - -17.49823362297209, - -17.49890097186547, - -17.499568003049315, - -17.50023471667488, - -17.50090111289334, - -17.501567191855813, - -17.502232953713335, - -17.502898398616875, - -17.50356352671732, - -17.5042283381655, - -17.504892833112162, - -17.505557011707992, - -17.506220874103587, - -17.506884420449488, - -17.50754765089616, - -17.50821056559399, - -17.50887316469331, - -17.509535448344355, - -17.510197416697313, - -17.51085906990229, - -17.511520408109313, - -17.51218143146835, - -17.512842140129294, - -17.513502534241965, - -17.51416261395611, - -17.51482237942141, - -17.515481830787472, - -17.51614096820383, - -17.516799791819945, - -17.517458301785215, - -17.51811649824896, - -17.51877438136043, - -17.519431951268807, - -17.5200892081232, - -17.520746152072643, - -17.521402783266108, - -17.522059101852488, - -17.52271510798061, - -17.52337080179922, - -17.524026183457014, - -17.524681253102596, - -17.525336010884512, - -17.52599045695123, - -17.526644591451156, - -17.527298414532613, - -17.527951926343864, - -17.5286051270331, - -17.529258016748432, - -17.52991059563791, - -17.530562863849518, - -17.531214821531155, - -17.531866468830657, - -17.532517805895797, - -17.533168832874264, - -17.533819549913684, - -17.534469957161612, - -17.53512005476553, - -17.535769842872863, - -17.536419321630948, - -17.537068491187057, - -17.537717351688396, - -17.5383659032821, - -17.53901414611523, - -17.539662080334782, - -17.540309706087683, - -17.540957023520782, - -17.541604032780864, - -17.542250734014644, - -17.542897127368768, - -17.543543212989807, - -17.544188991024267, - -17.544834461618585, - -17.54547962491912, - -17.546124481072177, - -17.546769030223977, - -17.547413272520675, - -17.548057208108354, - -17.54870083713304, - -17.549344159740677, - -17.549987176077142, - -17.55062988628824, - -17.551272290519716, - -17.55191438891724, - -17.552556181626414, - -17.553197668792762, - -17.553838850561753, - -17.55447972707878, - -17.555120298489157, - -17.555760564938144, - -17.556400526570933, - -17.557040183532628, - -17.557679535968287, - -17.558318584022878, - -17.558957327841316, - -17.55959576756844, - -17.56023390334902, - -17.56087173532776, - -17.561509263649285, - -17.562146488458172, - -17.56278340989891, - -17.56342002811592, - -17.564056343253572, - -17.564692355456145, - -17.565328064867863, - -17.565963471632884, - -17.56659857589528, - -17.56723337779907, - -17.567867877488204, - -17.568502075106554, - -17.56913597079793, - -17.56976956470608, - -17.57040285697466, - -17.57103584774729, - -17.5716685371675, - -17.57230092537875, - -17.572933012524448, - -17.57356479874792, - -17.57419628419243, - -17.57482746900117, - -17.575458353317266, - -17.57608893728378, - -17.576719221043696, - -17.57734920473994, - -17.57797888851536, - -17.57860827251275, - -17.579237356874817, - -17.57986614174422, - -17.58049462726353, - -17.58112281357527, - -17.581750700821882, - -17.582378289145748, - -17.583005578689168, - -17.583632569594396, - -17.584259262003602, - -17.58488565605889, - -17.58551175190231, - -17.586137549675822, - -17.586763049521334, - -17.587388251580688, - -17.588013155995647, - -17.588637762907915, - -17.589262072459128, - -17.589886084790848, - -17.59050980004458, - -17.591133218361747, - -17.591756339883723, - -17.5923791647518, - -17.593001693107215, - -17.593623925091123, - -17.594245860844627, - -17.594867500508748, - -17.59548884422445, - -17.59610989213263, - -17.596730644374112, - -17.59735110108966, - -17.59797126241996, - -17.59859112850565, - -17.599210699487276, - -17.599829975505337, - -17.60044895670026, - -17.6010676432124, - -17.60168603518205, - -17.60230413274943, - -17.60292193605471, - -17.60353944523797, - -17.60415666043924, - -17.604773581798483, - -17.60539020945558, - -17.60600654355036, - -17.606622584222585, - -17.60723833161194, - -17.607853785858055, - -17.608468947100487, - -17.60908381547873, - -17.60969839113221, - -17.610312674200287, - -17.61092666482225, - -17.61154036313733, - -17.61215376928468, - -17.61276688340341, - -17.613379705632536, - -17.61399223611102, - -17.614604474977764, - -17.615216422371596, - -17.615828078431274, - -17.6164394432955, - -17.617050517102907, - -17.617661299992054, - -17.61827179210145, - -17.61888199356952, - -17.619491904534634, - -17.620101525135098, - -17.620710855509145, - -17.621319895794944, - -17.621928646130602, - -17.622537106654153, - -17.623145277503575, - -17.623753158816776, - -17.62436075073159, - -17.624968053385803, - -17.625575066917115, - -17.62618179146318, - -17.62678822716157, - -17.627394374149805, - -17.628000232565327, - -17.628605802545525, - -17.629211084227713, - -17.62981607774914, - -17.630420783247004, - -17.631025200858414, - -17.63162933072043, - -17.632233172970047, - -17.632836727744188, - -17.63343999517971, - -17.63404297541341, - -17.634645668582024, - -17.63524807482221, - -17.635850194270574, - -17.636452027063648, - -17.637053573337898, - -17.637654833229735, - -17.6382558068755, - -17.63885649441146, - -17.639456895973833, - -17.64005701169876, - -17.640656841722326, - -17.64125638618054, - -17.641855645209365, - -17.642454618944676, - -17.643053307522298, - -17.64365171107799, - -17.644249829747444, - -17.644847663666287, - -17.64544521297008, - -17.646042477794325, - -17.646639458274457, - -17.647236154545844, - -17.647832566743787, - -17.648428695003535, - -17.64902453946026, - -17.649620100249077, - -17.650215377505027, - -17.650810371363104, - -17.651405081958217, - -17.651999509425227, - -17.652593653898926, - -17.653187515514034, - -17.65378109440522, - -17.654374390707076, - -17.65496740455414, - -17.655560136080883, - -17.65615258542171, - -17.656744752710967, - -17.657336638082924, - -17.657928241671804, - -17.65851956361175, - -17.659110604036858, - -17.65970136308114, - -17.660291840878564, - -17.66088203756302, - -17.66147195326834, - -17.662061588128296, - -17.662650942276585, - -17.663240015846856, - -17.663828808972678, - -17.664417321787564, - -17.665005554424972, - -17.66559350701828, - -17.666181179700814, - -17.666768572605832, - -17.66735568586653, - -17.667942519616037, - -17.66852907398743, - -17.669115349113707, - -17.669701345127812, - -17.67028706216263, - -17.670872500350963, - -17.67145765982558, - -17.67204254071916, - -17.672627143164334, - -17.673211467293658, - -17.67379551323964, - -17.67437928113471, - -17.674962771111243, - -17.67554598330155, - -17.676128917837882, - -17.676711574852423, - -17.67729395447729, - -17.677876056844546, - -17.678457882086185, - -17.679039430334143, - -17.679620701720285, - -17.68020169637643, - -17.68078241443431, - -17.681362856025615, - -17.68194302128196, - -17.6825229103349, - -17.683102523315934, - -17.683681860356494, - -17.684260921587946, - -17.684839707141595, - -17.68541821714869, - -17.68599645174041, - -17.68657441104787, - -17.687152095202137, - -17.687729504334193, - -17.688306638574975, - -17.688883498055354, - -17.689460082906134, - -17.690036393258058, - -17.690612429241817, - -17.691188190988026, - -17.691763678627243, - -17.692338892289964, - -17.692913832106623, - -17.693488498207596, - -17.694062890723185, - -17.694637009783644, - -17.695210855519157, - -17.695784428059845, - -17.696357727535776, - -17.69693075407694, - -17.697503507813288, - -17.698075988874685, - -17.698648197390952, - -17.69922013349184, - -17.699791797307036, - -17.700363188966172, - -17.700934308598818, - -17.701505156334473, - -17.70207573230259, - -17.70264603663254, - -17.703216069453653, - -17.703785830895185, - -17.704355321086332, - -17.704924540156235, - -17.705493488233962, - -17.70606216544853, - -17.70663057192889, - -17.707198707803933, - -17.707766573202488, - -17.70833416825332, - -17.708901493085136, - -17.70946854782658, - -17.710035332606246, - -17.710601847552645, - -17.711168092794246, - -17.711734068459442, - -17.712299774676577, - -17.71286521157393, - -17.713430379279714, - -17.713995277922084, - -17.71455990762914, - -17.715124268528914, - -17.71568836074938, - -17.716252184418448, - -17.71681573966397, - -17.717379026613735, - -17.717942045395475, - -17.71850479613686, - -17.71906727896549, - -17.719629494008917, - -17.72019144139463, - -17.720753121250056, - -17.72131453370255, - -17.721875678879428, - -17.722436556907926, - -17.72299716791523, - -17.723557512028467, - -17.724117589374693, - -17.724677400080907, - -17.725236944274062, - -17.725796222081026, - -17.726355233628627, - -17.726913979043623, - -17.727472458452713, - -17.728030671982538, - -17.728588619759677, - -17.729146301910646, - -17.729703718561904, - -17.730260869839853, - -17.730817755870827, - -17.73137437678111, - -17.73193073269691, - -17.73248682374439, - -17.73304265004965, - -17.733598211738727, - -17.734153508937595, - -17.73470854177218, - -17.735263310368328, - -17.735817814851845, - -17.736372055348465, - -17.73692603198387, - -17.73747974488368, - -17.738033194173443, - -17.738586379978667, - -17.739139302424793, - -17.73969196163719, - -17.740244357741187, - -17.74079649086204, - -17.74134836112495, - -17.74189996865505, - -17.742451313577433, - -17.743002396017115, - -17.743553216099063, - -17.744103773948172, - -17.744654069689286, - -17.745204103447193, - -17.745753875346615, - -17.746303385512217, - -17.746852634068603, - -17.747401621140323, - -17.74795034685186, - -17.748498811327647, - -17.749047014692046, - -17.749594957069366, - -17.75014263858386, - -17.75069005935972, - -17.751237219521073, - -17.751784119191996, - -17.7523307584965, - -17.752877137558546, - -17.75342325650202, - -17.753969115450765, - -17.754514714528554, - -17.755060053859108, - -17.755605133566085, - -17.75614995377309, - -17.756694514603662, - -17.757238816181285, - -17.757782858629383, - -17.758326642071324, - -17.75887016663041, - -17.75941343242989, - -17.75995643959296, - -17.76049918824274, - -17.761041678502313, - -17.761583910494686, - -17.762125884342815, - -17.7626676001696, - -17.763209058097875, - -17.763750258250425, - -17.764291200749966, - -17.76483188571916, - -17.765372313280615, - -17.765912483556875, - -17.766452396670427, - -17.7669920527437, - -17.767531451899067, - -17.76807059425884, - -17.76860947994528, - -17.769148109080568, - -17.769686481786856, - -17.770224598186218, - -17.770762458400675, - -17.771300062552196, - -17.77183741076268, - -17.77237450315398, - -17.772911339847884, - -17.77344792096612, - -17.77398424663037, - -17.774520316962242, - -17.775056132083293, - -17.77559169211503, - -17.776126997178892, - -17.776662047396265, - -17.777196842888472, - -17.777731383776782, - -17.77826567018241, - -17.778799702226504, - -17.779333480030168, - -17.779867003714433, - -17.780400273400282, - -17.780933289208637, - -17.781466051260363, - -17.78199855967627, - -17.782530814577104, - -17.783062816083564, - -17.783594564316278, - -17.784126059395824, - -17.784657301442728, - -17.785188290577448, - -17.785719026920397, - -17.78624951059192, - -17.7867797417123, - -17.787309720401783, - -17.787839446780538, - -17.78836892096869, - -17.788898143086293, - -17.78942711325336, - -17.789955831589836, - -17.79048429821561, - -17.79101251325052, - -17.791540476814337, - -17.792068189026786, - -17.792595650007524, - -17.793122859876163, - -17.793649818752247, - -17.794176526755265, - -17.79470298400466, - -17.795229190619807, - -17.795755146720023, - -17.79628085242458, - -17.79680630785268, - -17.797331513123478, - -17.797856468356063, - -17.798381173669476, - -17.798905629182695, - -17.799429835014646, - -17.7999537912842, - -17.800477498110162, - -17.80100095561129, - -17.80152416390628, - -17.802047123113773, - -17.802569833352358, - -17.80309229474056, - -17.803614507396844, - -17.80413647143964, - -17.8046581869873, - -17.805179654158128, - -17.805700873070364, - -17.80622184384221, - -17.80674256659179, - -17.807263041437185, - -17.80778326849642, - -17.808303247887455, - -17.8088229797282, - -17.809342464136513, - -17.809861701230187, - -17.81038069112696, - -17.81089943394452, - -17.8114179298005, - -17.811936178812466, - -17.812454181097937, - -17.812971936774375, - -17.813489445959185, - -17.814006708769714, - -17.814523725323255, - -17.815040495737048, - -17.81555702012827, - -17.81607329861405, - -17.81658933131146, - -17.81710511833751, - -17.817620659809158, - -17.818135955843314, - -17.81865100655682, - -17.81916581206647, - -17.819680372488993, - -17.820194687941076, - -17.820708758539343, - -17.821222584400363, - -17.821736165640647, - -17.822249502376657, - -17.822762594724793, - -17.823275442801407, - -17.82378804672279, - -17.824300406605172, - -17.82481252256474, - -17.82532439471762, - -17.825836023179882, - -17.82634740806754, - -17.826858549496556, - -17.827369447582832, - -17.827880102442226, - -17.828390514190527, - -17.828900682943473, - -17.82941060881675, - -17.82992029192599, - -17.83042973238677, - -17.830938930314595, - -17.831447885824943, - -17.831956599033223, - -17.83246507005478, - -17.832973299004927, - -17.833481285998896, - -17.833989031151884, - -17.834496534579024, - -17.835003796395398, - -17.835510816716027, - -17.83601759565589, - -17.836524133329892, - -17.8370304298529, - -17.83753648533972, - -17.838042299905105, - -17.838547873663746, - -17.839053206730295, - -17.839558299219334, - -17.840063151245396, - -17.840567762922962, - -17.84107213436646, - -17.841576265690254, - -17.842080157008663, - -17.842583808435943, - -17.843087220086304, - -17.8435903920739, - -17.844093324512826, - -17.844596017517134, - -17.8450984712008, - -17.845600685677766, - -17.846102661061916, - -17.846604397467072, - -17.847105895007008, - -17.847607153795437, - -17.84810817394603, - -17.848608955572395, - -17.849109498788092, - -17.849609803706617, - -17.85010987044142, - -17.850609699105892, - -17.851109289813373, - -17.851608642677153, - -17.852107757810465, - -17.85260663532648, - -17.85310527533833, - -17.85360367795908, - -17.854101843301745, - -17.854599771479293, - -17.85509746260463, - -17.855594916790608, - -17.85609213415004, - -17.85658911479566, - -17.857085858840172, - -17.85758236639621, - -17.858078637576362, - -17.858574672493162, - -17.859070471259088, - -17.85956603398657, - -17.86006136078798, - -17.860556451775633, - -17.861051307061796, - -17.86154592675868, - -17.86204031097845, - -17.862534459833206, - -17.863028373435, - -17.86352205189583, - -17.864015495327646, - -17.864508703842333, - -17.86500167755173, - -17.865494416567632, - -17.86598692100176, - -17.8664791909658, - -17.866971226571376, - -17.867463027930054, - -17.867954595153364, - -17.86844592835277, - -17.86893702763968, - -17.869427893125465, - -17.86991852492142, - -17.870408923138804, - -17.870899087888823, - -17.871389019282617, - -17.87187871743129, - -17.87236818244588, - -17.872857414437377, - -17.873346413516717, - -17.87383517979479, - -17.87432371338242, - -17.87481201439039, - -17.875300082929424, - -17.8757879191102, - -17.87627552304333, - -17.876762894839384, - -17.877250034608885, - -17.87773694246229, - -17.878223618510003, - -17.87871006286239, - -17.879196275629752, - -17.87968225692234, - -17.88016800685036, - -17.88065352552395, - -17.881138813053216, - -17.88162386954819, - -17.88210869511887, - -17.88259328987519, - -17.883077653927035, - -17.88356178738424, - -17.884045690356587, - -17.8845293629538, - -17.885012805285562, - -17.88549601746149, - -17.88597899959116, - -17.886461751784093, - -17.88694427414975, - -17.887426566797554, - -17.887908629836865, - -17.888390463376993, - -17.888872067527203, - -17.889353442396697, - -17.88983458809463, - -17.890315504730108, - -17.890796192412182, - -17.89127665124985, - -17.891756881352062, - -17.89223688282771, - -17.892716655785637, - -17.893196200334643, - -17.89367551658346, - -17.894154604640782, - -17.894633464615243, - -17.89511209661543, - -17.895590500749876, - -17.89606867712706, - -17.896546625855418, - -17.897024347043317, - -17.897501840799094, - -17.89797910723102, - -17.89845614644732, - -17.898932958556166, - -17.899409543665676, - -17.899885901883927, - -17.900362033318928, - -17.900837938078652, - -17.901313616271008, - -17.90178906800386, - -17.902264293385027, - -17.902739292522263, - -17.90321406552328, - -17.90368861249574, - -17.90416293354724, - -17.90463702878535, - -17.90511089831756, - -17.905584542251333, - -17.906057960694064, - -17.90653115375311, - -17.90700412153577, - -17.907476864149295, - -17.907949381700877, - -17.908421674297667, - -17.90889374204676, - -17.909365585055202, - -17.909837203429984, - -17.91030859727805, - -17.910779766706295, - -17.911250711821552, - -17.91172143273062, - -17.91219192954024, - -17.91266220235709, - -17.913132251287816, - -17.913602076439002, - -17.914071677917185, - -17.914541055828856, - -17.91501021028044, - -17.915479141378324, - -17.915947849228846, - -17.916416333938287, - -17.916884595612878, - -17.9173526343588, - -17.91782045028219, - -17.91828804348912, - -17.918755414085627, - -17.91922256217769, - -17.91968948787124, - -17.920156191272145, - -17.920622672486243, - -17.921088931619312, - -17.92155496877708, - -17.92202078406522, - -17.92248637758936, - -17.92295174945508, - -17.923416899767904, - -17.923881828633306, - -17.92434653615672, - -17.924811022443514, - -17.925275287599018, - -17.925739331728504, - -17.9262031549372, - -17.926666757330278, - -17.927130139012867, - -17.927593300090045, - -17.92805624066683, - -17.9285189608482, - -17.928981460739084, - -17.929443740444352, - -17.92990580006883, - -17.930367639717296, - -17.930829259494473, - -17.93129065950504, - -17.93175183985362, - -17.93221280064479, - -17.932673541983082, - -17.93313406397296, - -17.93359436671886, - -17.934054450325156, - -17.934514314896173, - -17.934973960536194, - -17.935433387349445, - -17.9358925954401, - -17.9363515849123, - -17.93681035587011, - -17.93726890841757, - -17.93772724265865, - -17.93818535869729, - -17.938643256637366, - -17.93910093658271, - -17.93955839863711, - -17.940015642904292, - -17.940472669487946, - -17.9409294784917, - -17.94138607001914, - -17.941842444173805, - -17.94229860105918, - -17.942754540778694, - -17.943210263435745, - -17.94366576913367, - -17.944121057975757, - -17.94457613006524, - -17.94503098550532, - -17.945485624399133, - -17.94594004684977, - -17.946394252960282, - -17.946848242833656, - -17.94730201657284, - -17.947755574280734, - -17.94820891606018, - -17.948662042013986, - -17.949114952244887, - -17.949567646855595, - -17.950020125948758, - -17.95047238962698, - -17.950924437992814, - -17.951376271148767, - -17.951827889197293, - -17.9522792922408, - -17.95273048038165, - -17.953181453722152, - -17.953632212364568, - -17.954082756411108, - -17.954533085963934, - -17.95498320112517, - -17.955433101996878, - -17.955882788681077, - -17.956332261279737, - -17.95678151989478, - -17.957230564628073, - -17.957679395581447, - -17.958128012856676, - -17.958576416555484, - -17.959024606779554, - -17.959472583630514, - -17.95992034720995, - -17.96036789761939, - -17.96081523496032, - -17.96126235933418, - -17.961709270842363, - -17.962155969586203, - -17.962602455666993, - -17.963048729185974, - -17.963494790244347, - -17.963940638943257, - -17.964386275383806, - -17.964831699667045, - -17.965276911893973, - -17.96572191216555, - -17.966166700582683, - -17.966611277246226, - -17.967055642256994, - -17.96749979571575, - -17.96794373772321, - -17.968387468380037, - -17.968830987786852, - -17.96927429604423, - -17.96971739325269, - -17.97016027951271, - -17.97060295492472, - -17.971045419589093, - -17.971487673606163, - -17.97192971707622, - -17.972371550099496, - -17.972813172776178, - -17.973254585206412, - -17.97369578749029, - -17.974136779727857, - -17.974577562019114, - -17.97501813446401, - -17.975458497162442, - -17.975898650214273, - -17.97633859371931, - -17.97677832777731, - -17.97721785248799, - -17.977657167951012, - -17.978096274265997, - -17.978535171532513, - -17.978973859850086, - -17.979412339318184, - -17.979850610036248, - -17.980288672103654, - -17.98072652561973, - -17.98116417068377, - -17.98160160739501, - -17.98203883585264, - -17.98247585615581, - -17.982912668403614, - -17.9833492726951, - -17.983785669129276, - -17.984221857805096, - -17.98465783882147, - -17.98509361227726, - -17.98552917827128, - -17.985964536902298, - -17.98639968826903, - -17.98683463247016, - -17.98726936960431, - -17.987703899770054, - -17.988138223065935, - -17.98857233959043, - -17.98900624944199, - -17.989439952718993, - -17.98987344951979, - -17.99030673994268, - -17.99073982408592, - -17.99117270204771, - -17.99160537392621, - -17.992037839819524, - -17.992470099825727, - -17.99290215404283, - -17.993334002568808, - -17.99376564550159, - -17.994197082939046, - -17.99462831497901, - -17.995059341719266, - -17.99549016325756, - -17.99592077969158, - -17.99635119111897, - -17.996781397637324, - -17.997211399344202, - -17.99764119633711, - -17.998070788713505, - -17.998500176570804, - -17.998929360006365, - -17.999358339117517, - -17.999787114001528, - -18.000215684755627, - -18.000644051477003, - -18.00107221426278, - -18.00150017321006, - -18.001927928415878, - -18.00235547997723, - -18.002782827991066, - -18.00320997255429, - -18.003636913763767, - -18.004063651716304, - -18.004490186508665, - -18.004916518237575, - -18.005342646999704, - -18.00576857289168, - -18.00619429601009, - -18.00661981645146, - -18.00704513431229, - -18.007470249689018, - -18.007895162678047, - -18.008319873375722, - -18.008744381878355, - -18.0091686882822, - -18.009592792683485, - -18.01001669517836, - -18.010440395862965, - -18.010863894833367, - -18.011287192185605, - -18.011710288015657, - -18.012133182419465, - -18.012555875492925, - -18.01297836733189, - -18.013400658032158, - -18.013822747689485, - -18.014244636399585, - -18.01466632425813, - -18.01508781136073, - -18.01550909780297, - -18.01593018368037, - -18.01635106908843, - -18.01677175412257, - -18.017192238878195, - -18.01761252345065, - -18.018032607935243, - -18.018452492427222, - -18.0188721770218, - -18.019291661814155, - -18.019710946899394, - -18.020130032372602, - -18.020548918328807, - -18.02096760486299, - -18.0213860920701, - -18.021804380045026, - -18.022222468882617, - -18.02264035867768, - -18.02305804952498, - -18.023475541519222, - -18.023892834755085, - -18.024309929327185, - -18.0247268253301, - -18.02514352285837, - -18.025560022006484, - -18.025976322868885, - -18.026392425539974, - -18.0268083301141, - -18.02722403668558, - -18.027639545348674, - -18.0280548561976, - -18.028469969326537, - -18.028884884829612, - -18.02929960280091, - -18.02971412333447, - -18.030128446524298, - -18.03054257246433, - -18.03095650124848, - -18.03137023297061, - -18.031783767724537, - -18.032197105604027, - -18.032610246702816, - -18.03302319111458, - -18.03343593893296, - -18.03384849025155, - -18.034260845163896, - -18.03467300376351, - -18.03508496614384, - -18.035496732398315, - -18.035908302620296, - -18.03631967690311, - -18.036730855340043, - -18.037141838024333, - -18.037552625049177, - -18.037963216507713, - -18.038373612493054, - -18.038783813098256, - -18.03919381841634, - -18.039603628540274, - -18.040013243562985, - -18.040422663577356, - -18.04083188867623, - -18.041240918952397, - -18.041649754498614, - -18.04205839540758, - -18.04246684177196, - -18.042875093684376, - -18.043283151237397, - -18.043691014523557, - -18.04409868363534, - -18.044506158665186, - -18.0449134397055, - -18.045320526848627, - -18.045727420186882, - -18.04613411981253, - -18.04654062581779, - -18.04694693829485, - -18.047353057335837, - -18.04775898303284, - -18.04816471547791, - -18.048570254763046, - -18.04897560098021, - -18.049380754221318, - -18.049785714578235, - -18.050190482142796, - -18.05059505700678, - -18.050999439261933, - -18.051403628999946, - -18.051807626312478, - -18.05221143129113, - -18.052615044027476, - -18.053018464613036, - -18.053421693139285, - -18.053824729697663, - -18.054227574379556, - -18.054630227276316, - -18.055032688479244, - -18.055434958079605, - -18.055837036168615, - -18.056238922837448, - -18.056640618177237, - -18.057042122279064, - -18.057443435233974, - -18.057844557132974, - -18.05824548806702, - -18.058646228127017, - -18.059046777403847, - -18.05944713598833, - -18.059847303971253, - -18.06024728144336, - -18.060647068495342, - -18.061046665217862, - -18.061446071701525, - -18.0618452880369, - -18.062244314314512, - -18.062643150624847, - -18.063041797058343, - -18.063440253705394, - -18.063838520656354, - -18.064236598001532, - -18.064634485831196, - -18.06503218423557, - -18.065429693304832, - -18.065827013129127, - -18.066224143798543, - -18.06662108540314, - -18.067017838032918, - -18.067414401777853, - -18.06781077672786, - -18.068206962972827, - -18.068602960602586, - -18.068998769706937, - -18.069394390375635, - -18.069789822698382, - -18.07018506676485, - -18.070580122664666, - -18.070974990487404, - -18.07136967032261, - -18.07176416225978, - -18.072158466388363, - -18.072552582797776, - -18.072946511577385, - -18.073340252816518, - -18.073733806604455, - -18.074127173030444, - -18.07452035218368, - -18.074913344153313, - -18.075306149028464, - -18.075698766898206, - -18.076091197851564, - -18.076483441977526, - -18.076875499365038, - -18.077267370102994, - -18.077659054280264, - -18.078050551985662, - -18.078441863307955, - -18.07883298833589, - -18.079223927158147, - -18.07961467986338, - -18.080005246540185, - -18.080395627277138, - -18.080785822162756, - -18.081175831285517, - -18.08156565473386, - -18.08195529259618, - -18.08234474496083, - -18.082734011916127, - -18.08312309355033, - -18.08351198995167, - -18.083900701208336, - -18.084289227408465, - -18.084677568640164, - -18.085065724991487, - -18.085453696550456, - -18.085841483405044, - -18.086229085643183, - -18.08661650335277, - -18.087003736621647, - -18.087390785537632, - -18.08777765018848, - -18.088164330661925, - -18.088550827045644, - -18.08893713942728, - -18.08932326789443, - -18.089709212534654, - -18.090094973435466, - -18.090480550684344, - -18.090865944368712, - -18.09125115457597, - -18.091636181393465, - -18.0920210249085, - -18.092405685208348, - -18.09279016238023, - -18.093174456511328, - -18.093558567688785, - -18.0939424959997, - -18.09432624153113, - -18.094709804370098, - -18.095093184603574, - -18.09547638231849, - -18.09585939760175, - -18.096242230540195, - -18.09662488122064, - -18.097007349729854, - -18.09738963615456, - -18.09777174058145, - -18.098153663097165, - -18.09853540378831, - -18.098916962741452, - -18.099298340043106, - -18.099679535779757, - -18.100060550037835, - -18.100441382903746, - -18.100822034463846, - -18.101202504804448, - -18.101582794011833, - -18.101962902172225, - -18.10234282937182, - -18.102722575696774, - -18.103102141233187, - -18.10348152606714, - -18.10386073028465, - -18.104239753971715, - -18.104618597214273, - -18.104997260098234, - -18.10537574270946, - -18.10575404513378, - -18.106132167456966, - -18.106510109764773, - -18.106887872142895, - -18.10726545467699, - -18.10764285745269, - -18.108020080555555, - -18.10839712407114, - -18.108773988084934, - -18.109150672682397, - -18.10952717794894, - -18.109903503969946, - -18.110279650830744, - -18.110655618616626, - -18.111031407412852, - -18.111407017304632, - -18.111782448377134, - -18.1121577007155, - -18.112532774404812, - -18.112907669530124, - -18.113282386176447, - -18.11365692442875, - -18.11403128437196, - -18.11440546609097, - -18.114779469670626, - -18.115153295195736, - -18.115526942751067, - -18.115900412421354, - -18.116273704291274, - -18.116646818445478, - -18.11701975496857, - -18.11739251394512, - -18.11776509545965, - -18.118137499596646, - -18.118509726440557, - -18.118881776075785, - -18.119253648586696, - -18.119625344057614, - -18.119996862572822, - -18.12036820421657, - -18.120739369073057, - -18.121110357226453, - -18.121481168760877, - -18.121851803760418, - -18.122222262309116, - -18.122592544490974, - -18.12296265038996, - -18.12333258009, - -18.123702333674974, - -18.124071911228725, - -18.124441312835064, - -18.12481053857775, - -18.12517958854051, - -18.12554846280703, - -18.12591716146095, - -18.12628568458588, - -18.126654032265385, - -18.127022204582985, - -18.127390201622173, - -18.12775802346639, - -18.12812567019905, - -18.12849314190351, - -18.128860438663104, - -18.12922756056111, - -18.129594507680785, - -18.129961280105334, - -18.130327877917924, - -18.13069430120169, - -18.13106055003971, - -18.131426624515043, - -18.131792524710697, - -18.132158250709637, - -18.1325238025948, - -18.132889180449077, - -18.133254384355315, - -18.133619414396335, - -18.133984270654903, - -18.13434895321376, - -18.13471346215559, - -18.13507779756306, - -18.13544195951878, - -18.135805948105325, - -18.136169763405235, - -18.136533405501005, - -18.136896874475095, - -18.137260170409924, - -18.137623293387872, - -18.13798624349128, - -18.13834902080245, - -18.138711625403644, - -18.139074057377087, - -18.139436316804957, - -18.139798403769408, - -18.14016031835254, - -18.14052206063642, - -18.14088363070308, - -18.141245028634504, - -18.141606254512645, - -18.14196730841941, - -18.14232819043667, - -18.142688900646263, - -18.14304943912998, - -18.143409805969576, - -18.143770001246764, - -18.144130025043225, - -18.1444898774406, - -18.144849558520477, - -18.145209068364426, - -18.14556840705397, - -18.14592757467058, - -18.146286571295708, - -18.146645397010758, - -18.1470040518971, - -18.147362536036056, - -18.147720849508914, - -18.14807899239693, - -18.148436964781315, - -18.14879476674324, - -18.149152398363835, - -18.1495098597242, - -18.149867150905397, - -18.150224271988435, - -18.1505812230543, - -18.150938004183928, - -18.151294615458227, - -18.15165105695806, - -18.152007328764252, - -18.152363430957585, - -18.152719363618818, - -18.153075126828654, - -18.153430720667767, - -18.15378614521679, - -18.154141400556323, - -18.154496486766917, - -18.154851403929094, - -18.15520615212333, - -18.155560731430068, - -18.155915141929714, - -18.156269383702632, - -18.15662345682915, - -18.15697736138955, - -18.15733109746409, - -18.157684665132983, - -18.158038064476397, - -18.15839129557447, - -18.158744358507303, - -18.159097253354954, - -18.159449980197444, - -18.159802539114754, - -18.160154930186835, - -18.16050715349359, - -18.160859209114886, - -18.16121109713056, - -18.161562817620403, - -18.161914370664167, - -18.162265756341576, - -18.1626169747323, - -18.162968025915987, - -18.16331890997224, - -18.163669626980624, - -18.164020177020667, - -18.164370560171857, - -18.164720776513647, - -18.16507082612545, - -18.165420709086646, - -18.165770425476573, - -18.166119975374528, - -18.166469358859775, - -18.16681857601154, - -18.167167626909013, - -18.16751651163134, - -18.167865230257636, - -18.16821378286697, - -18.168562169538387, - -18.168910390350877, - -18.16925844538341, - -18.16960633471491, - -18.16995405842426, - -18.170301616590308, - -18.170649009291868, - -18.17099623660771, - -18.171343298616577, - -18.17169019539716, - -18.172036927028127, - -18.172383493588097, - -18.17272989515566, - -18.173076131809363, - -18.17342220362772, - -18.173768110689203, - -18.17411385307225, - -18.17445943085526, - -18.174804844116597, - -18.175150092934587, - -18.175495177387514, - -18.17584009755363, - -18.176184853511145, - -18.17652944533824, - -18.176873873113053, - -18.177218136913684, - -18.177562236818197, - -18.17790617290462, - -18.178249945250943, - -18.178593553935123, - -18.17893699903507, - -18.17928028062866, - -18.179623398793744, - -18.179966353608123, - -18.18030914514956, - -18.18065177349579, - -18.1809942387245, - -18.18133654091336, - -18.181678680139974, - -18.18202065648194, - -18.182362470016788, - -18.182704120822038, - -18.183045608975153, - -18.183386934553578, - -18.183728097634706, - -18.1840690982959, - -18.18440993661448, - -18.184750612667738, - -18.18509112653292, - -18.18543147828725, - -18.18577166800789, - -18.18611169577199, - -18.18645156165666, - -18.186791265738954, - -18.18713080809591, - -18.18747018880452, - -18.187809407941746, - -18.188148465584497, - -18.188487361809667, - -18.188826096694097, - -18.189164670314604, - -18.189503082747954, - -18.189841334070895, - -18.190179424360117, - -18.190517353692293, - -18.190855122144043, - -18.191192729791965, - -18.19153017671261, - -18.1918674629825, - -18.192204588678116, - -18.192541553875902, - -18.19287835865227, - -18.19321500308359, - -18.1935514872462, - -18.1938878112164, - -18.194223975070454, - -18.194559978884595, - -18.194895822735003, - -18.19523150669784, - -18.19556703084923, - -18.195902395265243, - -18.196237600021934, - -18.196572645195314, - -18.196907530861353, - -18.19724225709599, - -18.19757682397513, - -18.197911231574633, - -18.19824547997033, - -18.198579569238014, - -18.198913499453443, - -18.199247270692343, - -18.19958088303039, - -18.199914336543237, - -18.200247631306496, - -18.20058076739575, - -18.200913744886535, - -18.20124656385435, - -18.20157922437468, - -18.201911726522944, - -18.202244070374544, - -18.202576256004843, - -18.202908283489165, - -18.203240152902804, - -18.203571864321006, - -18.203903417818992, - -18.20423481347195, - -18.204566051355016, - -18.20489713154331, - -18.2052280541119, - -18.205558819135828, - -18.2058894266901, - -18.206219876849676, - -18.206550169689496, - -18.206880305284454, - -18.20721028370941, - -18.20754010503919, - -18.207869769348584, - -18.208199276712342, - -18.208528627205187, - -18.208857820901798, - -18.209186857876826, - -18.20951573820488, - -18.20984446196053, - -18.210173029218325, - -18.21050144005277, - -18.21082969453833, - -18.211157792749443, - -18.211485734760505, - -18.21181352064588, - -18.212141150479898, - -18.21246862433685, - -18.21279594229099, - -18.213123104416546, - -18.213450110787697, - -18.2137769614786, - -18.21410365656337, - -18.214430196116087, - -18.214756580210793, - -18.2150828089215, - -18.21540888232219, - -18.21573480048679, - -18.21606056348921, - -18.21638617140332, - -18.216711624302956, - -18.217036922261915, - -18.217362065353957, - -18.217687053652813, - -18.21801188723218, - -18.21833656616571, - -18.218661090527036, - -18.218985460389735, - -18.219309675827365, - -18.219633736913448, - -18.219957643721457, - -18.220281396324854, - -18.220604994797043, - -18.220928439211406, - -18.221251729641285, - -18.22157486615999, - -18.221897848840793, - -18.22222067775693, - -18.22254335298161, - -18.222865874588, - -18.223188242649233, - -18.223510457238408, - -18.223832518428594, - -18.224154426292813, - -18.22447618090407, - -18.224797782335315, - -18.22511923065948, - -18.225440525949455, - -18.225761668278096, - -18.22608265771822, - -18.226403494342616, - -18.226724178224043, - -18.22704470943521, - -18.227365088048803, - -18.227685314137467, - -18.228005387773823, - -18.228325309030442, - -18.228645077979873, - -18.228964694694625, - -18.229284159247175, - -18.229603471709957, - -18.22992263215539, - -18.230241640655834, - -18.23056049728363, - -18.230879202111083, - -18.231197755210466, - -18.231516156654006, - -18.231834406513904, - -18.232152504862327, - -18.23247045177141, - -18.232788247313238, - -18.233105891559884, - -18.233423384583375, - -18.233740726455704, - -18.23405791724883, - -18.234374957034674, - -18.234691845885134, - -18.235008583872062, - -18.235325171067284, - -18.23564160754259, - -18.23595789336973, - -18.23627402862042, - -18.23659001336636, - -18.23690584767919, - -18.23722153163053, - -18.237537065291967, - -18.237852448735048, - -18.23816768203129, - -18.238482765252172, - -18.238797698469142, - -18.23911248175362, - -18.239427115176973, - -18.239741598810557, - -18.24005593272568, - -18.24037011699362, - -18.24068415168562, - -18.24099803687289, - -18.241311772626606, - -18.241625359017906, - -18.241938796117903, - -18.24225208399767, - -18.24256522272825, - -18.242878212380642, - -18.24319105302582, - -18.24350374473473, - -18.243816287578273, - -18.244128681627323, - -18.244440926952713, - -18.24475302362525, - -18.245064971715706, - -18.24537677129481, - -18.245688422433272, - -18.245999925201758, - -18.246311279670905, - -18.246622485911313, - -18.246933543993553, - -18.247244453988156, - -18.24755521596563, - -18.247865829996435, - -18.248176296151012, - -18.248486614499754, - -18.248796785113033, - -18.249106808061182, - -18.2494166834145, - -18.249726411243252, - -18.250035991617672, - -18.25034542460796, - -18.250654710284287, - -18.25096384871678, - -18.251272839975535, - -18.251581684130628, - -18.251890381252082, - -18.252198931409904, - -18.252507334674057, - -18.25281559111447, - -18.25312370080105, - -18.253431663803656, - -18.253739480192127, - -18.25404715003626, - -18.25435467340582, - -18.254662050370545, - -18.25496928100013, - -18.25527636536424, - -18.25558330353251, - -18.255890095574546, - -18.25619674155991, - -18.256503241558136, - -18.25680959563873, - -18.257115803871155, - -18.25742186632485, - -18.25772778306921, - -18.25803355417361, - -18.258339179707388, - -18.258644659739844, - -18.258949994340245, - -18.25925518357783, - -18.259560227521803, - -18.259865126241337, - -18.260169879805566, - -18.2604744882836, - -18.260778951744506, - -18.261083270257327, - -18.261387443891067, - -18.2616914727147, - -18.261995356797172, - -18.262299096207382, - -18.262602691014212, - -18.262906141286503, - -18.26320944709306, - -18.263512608502666, - -18.263815625584066, - -18.264118498405963, - -18.26442122703704, - -18.264723811545945, - -18.26502625200129, - -18.265328548471654, - -18.26563070102559, - -18.265932709731608, - -18.266234574658192, - -18.26653629587379, - -18.26683787344683, - -18.267139307445678, - -18.267440597938705, - -18.267741744994222, - -18.268042748680518, - -18.268343609065845, - -18.26864432621843, - -18.268944900206456, - -18.26924533109809, - -18.269545618961452, - -18.26984576386463, - -18.270145765875693, - -18.27044562506266, - -18.27074534149353, - -18.271044915236267, - -18.271344346358802, - -18.27164363492903, - -18.27194278101482, - -18.272241784684002, - -18.27254064600438, - -18.272839365043726, - -18.27313794186977, - -18.273436376550222, - -18.273734669152752, - -18.274032819745, - -18.274330828394568, - -18.274628695169046, - -18.274926420135966, - -18.27522400336284, - -18.275521444917153, - -18.27581874486635, - -18.27611590327784, - -18.276412920219016, - -18.276709795757224, - -18.277006529959777, - -18.277303122893972, - -18.277599574627057, - -18.277895885226254, - -18.278192054758755, - -18.278488083291723, - -18.278783970892277, - -18.279079717627518, - -18.2793753235645, - -18.279670788770268, - -18.279966113311808, - -18.280261297256096, - -18.28055634067006, - -18.28085124362061, - -18.281146006174612, - -18.28144062839891, - -18.28173511036031, - -18.282029452125585, - -18.28232365376148, - -18.282617715334712, - -18.282911636911955, - -18.283205418559863, - -18.28349906034505, - -18.283792562334106, - -18.28408592459358, - -18.284379147189995, - -18.28467223018984, - -18.28496517365958, - -18.285257977665633, - -18.2855506422744, - -18.28584316755225, - -18.286135553565508, - -18.286427800380473, - -18.286719908063418, - -18.287011876680577, - -18.287303706298164, - -18.287595396982347, - -18.28788694879927, - -18.288178361815042, - -18.28846963609575, - -18.28876077170744, - -18.289051768716124, - -18.289342627187793, - -18.289633347188403, - -18.289923928783868, - -18.29021437204009, - -18.290504677022923, - -18.290794843798196, - -18.291084872431707, - -18.291374762989225, - -18.291664515536485, - -18.291954130139185, - -18.292243606862996, - -18.29253294577357, - -18.292822146936505, - -18.29311121041739, - -18.29340013628176, - -18.293688924595145, - -18.293977575423018, - -18.294266088830838, - -18.294554464884026, - -18.29484270364798, - -18.29513080518805, - -18.295418769569572, - -18.29570659685784, - -18.295994287118123, - -18.29628184041566, - -18.296569256815648, - -18.296856536383267, - -18.29714367918366, - -18.297430685281935, - -18.297717554743176, - -18.298004287632427, - -18.298290884014715, - -18.298577343955024, - -18.29886366751831, - -18.299149854769503, - -18.299435905773493, - -18.299721820595146, - -18.300007599299292, - -18.30029324195074, - -18.30057874861426, - -18.300864119354586, - -18.301149354236436, - -18.301434453324486, - -18.301719416683387, - -18.302004244377752, - -18.30228893647217, - -18.302573493031197, - -18.302857914119354, - -18.303142199801144, - -18.303426350141027, - -18.303710365203436, - -18.30399424505277, - -18.30427798975341, - -18.304561599369688, - -18.304845073965918, - -18.30512841360638, - -18.305411618355325, - -18.30569468827697, - -18.3059776234355, - -18.306260423895075, - -18.306543089719828, - -18.306825620973846, - -18.307108017721205, - -18.30739028002593, - -18.307672407952033, - -18.307954401563485, - -18.308236260924232, - -18.30851798609819, - -18.30879957714924, - -18.309081034141236, - -18.309362357137996, - -18.309643546203315, - -18.309924601400954, - -18.310205522794647, - -18.31048631044809, - -18.310766964424964, - -18.311047484788897, - -18.311327871603503, - -18.311608124932366, - -18.311888244839032, - -18.312168231387023, - -18.312448084639822, - -18.312727804660895, - -18.313007391513665, - -18.313286845261533, - -18.313566165967867, - -18.313845353696003, - -18.314124408509254, - -18.314403330470892, - -18.314682119644168, - -18.3149607760923, - -18.31523929987847, - -18.315517691065846, - -18.315795949717543, - -18.316074075896665, - -18.316352069666276, - -18.31662993108942, - -18.316907660229095, - -18.317185257148285, - -18.31746272190993, - -18.317740054576955, - -18.31801725521224, - -18.31829432387865, - -18.31857126063901, - -18.318848065556114, - -18.319124738692732, - -18.3194012801116, - -18.319677689875427, - -18.31995396804689, - -18.320230114688638, - -18.32050612986329, - -18.320782013633437, - -18.32105776606163, - -18.321333387210405, - -18.321608877142257, - -18.321884235919658, - -18.322159463605047, - -18.32243456026083, - -18.322709525949396, - -18.322984360733088, - -18.32325906467423, - -18.32353363783511, - -18.323808080277992, - -18.324082392065108, - -18.324356573258658, - -18.324630623920818, - -18.324904544113732, - -18.325178333899505, - -18.325451993340227, - -18.325725522497955, - -18.32599892143471, - -18.32627219021249, - -18.326545328893257, - -18.326818337538946, - -18.327091216211468, - -18.3273639649727, - -18.327636583884487, - -18.32790907300865, - -18.328181432406975, - -18.328453662141225, - -18.328725762273127, - -18.328997732864384, - -18.329269573976667, - -18.329541285671613, - -18.329812868010844, - -18.330084321055935, - -18.330355644868447, - -18.330626839509897, - -18.330897905041788, - -18.331168841525578, - -18.331439649022713, - -18.331710327594593, - -18.3319808773026, - -18.33225129820808, - -18.332521590372362, - -18.332791753856725, - -18.33306178872244, - -18.33333169503073, - -18.333601472842805, - -18.333871122219836, - -18.33414064322297, - -18.334410035913326, - -18.334679300351983, - -18.334948436600005, - -18.335217444718417, - -18.33548632476822, - -18.335755076810383, - -18.336023700905848, - -18.336292197115533, - -18.336560565500314, - -18.33682880612105, - -18.33709691903857, - -18.33736490431366, - -18.337632762007093, - -18.337900492179607, - -18.338168094891913, - -18.33843557020469, - -18.338702918178594, - -18.338970138874245, - -18.33923723235224, - -18.339504198673144, - -18.33977103789749, - -18.340037750085784, - -18.340304335298512, - -18.340570793596118, - -18.340837125039034, - -18.341103329687638, - -18.341369407602304, - -18.341635358843362, - -18.34190118347112, - -18.34216688154586, - -18.342432453127824, - -18.342697898277237, - -18.342963217054287, - -18.34322840951914, - -18.34349347573193, - -18.34375841575276, - -18.34402322964171, - -18.344287917458825, - -18.34455247926413, - -18.34481691511761, - -18.34508122507924, - -18.345345409208942, - -18.345609467566625, - -18.345873400212163, - -18.346137207205413, - -18.34640088860619, - -18.346664444474285, - -18.346927874869465, - -18.34719117985146, - -18.34745435947998, - -18.347717413814703, - -18.347980342915275, - -18.34824314684132, - -18.348505825652428, - -18.348768379408167, - -18.34903080816807, - -18.349293111991646, - -18.349555290938376, - -18.349817345067706, - -18.350079274439064, - -18.350341079111843, - -18.350602759145406, - -18.350864314599097, - -18.35112574553222, - -18.351387052004057, - -18.351648234073867, - -18.35190929180087, - -18.35217022524426, - -18.352431034463212, - -18.352691719516862, - -18.352952280464322, - -18.35321271736468, - -18.35347303027699, - -18.35373321926028, - -18.35399328437355, - -18.35425322567577, - -18.354513043225882, - -18.354772737082808, - -18.35503230730543, - -18.35529175395261, - -18.355551077083174, - -18.355810276755935, - -18.35606935302966, - -18.356328305963103, - -18.35658713561498, - -18.356845842043985, - -18.357104425308773, - -18.357362885467992, - -18.357621222580242, - -18.357879436704103, - -18.35813752789813, - -18.358395496220844, - -18.358653341730744, - -18.3589110644863, - -18.359168664545948, - -18.359426141968104, - -18.359683496811147, - -18.35994072913344, - -18.360197838993315, - -18.360454826449068, - -18.360711691558976, - -18.36096843438128, - -18.361225054974202, - -18.361481553395933, - -18.36173792970464, - -18.361994183958448, - -18.36225031621547, - -18.36250632653379, - -18.362762214971454, - -18.363017981586484, - -18.36327362643689, - -18.363529149580625, - -18.363784551075646, - -18.364039830979856, - -18.364294989351144, - -18.364550026247375, - -18.364804941726373, - -18.365059735845943, - -18.365314408663867, - -18.36556896023789, - -18.365823390625735, - -18.366077699885093, - -18.36633188807363, - -18.36658595524899, - -18.366839901468786, - -18.367093726790593, - -18.367347431271973, - -18.367601014970457, - -18.367854477943546, - -18.36810782024871, - -18.368361041943405, - -18.368614143085043, - -18.36886712373102, - -18.369119983938702, - -18.369372723765427, - -18.369625343268503, - -18.369877842505215, - -18.370130221532815, - -18.37038248040854, - -18.370634619189584, - -18.370886637933125, - -18.37113853669631, - -18.37139031553626, - -18.371641974510066, - -18.37189351367479, - -18.37214493308748, - -18.372396232805137, - -18.37264741288475, - -18.372898473383277, - -18.373149414357645, - -18.373400235864757, - -18.37365093796149, - -18.373901520704692, - -18.374151984151183, - -18.37440232835776, - -18.37465255338119, - -18.374902659278213, - -18.37515264610554, - -18.375402513919862, - -18.375652262777834, - -18.37590189273609, - -18.376151403851235, - -18.376400796179848, - -18.37665006977848, - -18.376899224703656, - -18.377148261011875, - -18.377397178759608, - -18.377645978003297, - -18.377894658799356, - -18.378143221204184, - -18.378391665274137, - -18.378639991065555, - -18.378888198634744, - -18.37913628803799, - -18.37938425933155, - -18.379632112571652, - -18.379879847814497, - -18.380127465116264, - -18.3803749645331, - -18.380622346121125, - -18.38086960993644, - -18.381116756035112, - -18.381363784473184, - -18.381610695306662, - -18.381857488591546, - -18.382104164383797, - -18.382350722739346, - -18.382597163714106, - -18.38284348736396, - -18.383089693744758, - -18.383335782912333, - -18.383581754922485, - -18.383827609830995, - -18.384073347693604, - -18.384318968566046, - -18.38456447250401, - -18.384809859563166, - -18.38505512979916, - -18.385300283267604, - -18.385545320024097, - -18.385790240124194, - -18.38603504362344, - -18.38627973057734, - -18.38652430104138, - -18.38676875507102, - -18.387013092721688, - -18.387257314048796, - -18.387501419107718, - -18.38774540795381, - -18.38798928064239, - -18.38823303722877, - -18.388476677768214, - -18.388720202315973, - -18.388963610927267, - -18.389206903657293, - -18.389450080561218, - -18.389693141694185, - -18.389936087111305, - -18.390178916867676, - -18.390421631018352, - -18.390664229618377, - -18.390906712722764, - -18.39114908038649, - -18.391391332664522, - -18.391633469611786, - -18.39187549128319, - -18.392117397733617, - -18.392359189017917, - -18.39260086519092, - -18.39284242630743, - -18.393083872422217, - -18.393325203590035, - -18.393566419865603, - -18.39380752130363, - -18.394048507958775, - -18.394289379885688, - -18.39453013713899, - -18.394770779773275, - -18.395011307843106, - -18.395251721403028, - -18.395492020507557, - -18.395732205211182, - -18.395972275568365, - -18.396212231633548, - -18.396452073461134, - -18.39669180110552, - -18.396931414621054, - -18.39717091406208, - -18.397410299482903, - -18.397649570937805, - -18.397888728481043, - -18.39812777216685, - -18.398366702049426, - -18.398605518182954, - -18.398844220621584, - -18.39908280941945, - -18.39932128463065, - -18.399559646309253, - -18.399797894509316, - -18.400036029284866, - -18.4002740506899, - -18.400511958778388, - -18.40074975360428, - -18.400987435221495, - -18.401225003683933, - -18.401462459045465, - -18.401699801359932, - -18.401937030681154, - -18.402174147062922, - -18.40241115055901, - -18.402648041223156, - -18.40288481910908, - -18.403121484270468, - -18.40335803676099, - -18.403594476634286, - -18.403830803943972, - -18.404067018743632, - -18.404303121086826, - -18.404539111027102, - -18.404774988617966, - -18.405010753912908, - -18.405246406965386, - -18.405481947828843, - -18.405717376556684, - -18.405952693202295, - -18.406187897819034, - -18.40642299046024, - -18.406657971179218, - -18.406892840029254, - -18.407127597063607, - -18.40736224233551, - -18.407596775898163, - -18.407831197804754, - -18.408065508108443, - -18.408299706862355, - -18.408533794119606, - -18.408767769933267, - -18.409001634356397, - -18.409235387442024, - -18.409469029243162, - -18.409702559812782, - -18.409935979203844, - -18.410169287469273, - -18.41040248466198, - -18.410635570834838, - -18.410868546040703, - -18.411101410332407, - -18.411334163762746, - -18.411566806384503, - -18.411799338250436, - -18.412031759413267, - -18.4122640699257, - -18.412496269840418, - -18.412728359210067, - -18.412960338087277, - -18.413192206524656, - -18.413423964574775, - -18.413655612290192, - -18.413887149723436, - -18.414118576927002, - -18.414349893953375, - -18.414581100855006, - -18.41481219768432, - -18.415043184493722, - -18.41527406133559, - -18.41550482826228, - -18.415735485326113, - -18.415966032579398, - -18.416196470074414, - -18.41642679786341, - -18.416657015998613, - -18.416887124532234, - -18.417117123516448, - -18.417347013003408, - -18.417576793045246, - -18.41780646369406, - -18.41803602500194, - -18.418265477020928, - -18.418494819803065, - -18.418724053400354, - -18.41895317786477, - -18.41918219324827, - -18.41941109960279, - -18.419639896980236, - -18.419868585432482, - -18.42009716501139, - -18.42032563576879, - -18.420553997756496, - -18.42078225102628, - -18.42101039562991, - -18.42123843161911, - -18.4214663590456, - -18.421694177961054, - -18.42192188841714, - -18.422149490465486, - -18.422376984157705, - -18.422604369545386, - -18.422831646680084, - -18.42305881561334, - -18.42328587639667, - -18.42351282908155, - -18.423739673719453, - -18.423966410361817, - -18.424193039060054, - -18.42441955986555, - -18.42464597282968, - -18.424872278003775, - -18.425098475439157, - -18.42532456518712, - -18.425550547298922, - -18.425776421825816, - -18.426002188819016, - -18.426227848329713, - -18.426453400409088, - -18.426678845108274, - -18.4269041824784, - -18.42712941257056, - -18.42735453543583, - -18.427579551125255, - -18.42780445968986, - -18.42802926118064, - -18.42825395564858, - -18.42847854314462, - -18.4287030237197, - -18.428927397424708, - -18.429151664310535, - -18.42937582442803, - -18.429599877828018, - -18.429823824561314, - -18.430047664678693, - -18.430271398230914, - -18.430495025268712, - -18.430718545842794, - -18.43094196000385, - -18.431165267802534, - -18.431388469289484, - -18.431611564515315, - -18.431834553530614, - -18.432057436385946, - -18.43228021313185, - -18.432502883818845, - -18.43272544849742, - -18.432947907218043, - -18.433170260031165, - -18.4333925069872, - -18.433614648136544, - -18.43383668352957, - -18.434058613216628, - -18.43428043724804, - -18.434502155674107, - -18.434723768545105, - -18.434945275911286, - -18.43516667782288, - -18.43538797433009, - -18.435609165483097, - -18.43583025133206, - -18.43605123192711, - -18.436272107318352, - -18.436492877555878, - -18.436713542689745, - -18.436934102769992, - -18.437154557846632, - -18.437374907969655, - -18.437595153189026, - -18.43781529355469, - -18.438035329116563, - -18.438255259924542, - -18.438475086028493, - -18.438694807478267, - -18.438914424323688, - -18.439133936614553, - -18.439353344400644, - -18.43957264773171, - -18.43979184665747, - -18.440010941227644, - -18.440229931491906, - -18.440448817499917, - -18.440667599301307, - -18.440886276945687, - -18.441104850482645, - -18.441323319961743, - -18.441541685432526, - -18.4417599469445, - -18.441978104547168, - -18.44219615828999, - -18.442414108222415, - -18.442631954393864, - -18.442849696853738, - -18.44306733565141, - -18.443284870836234, - -18.443502302457528, - -18.44371963056461, - -18.443936855206747, - -18.444153976433206, - -18.44437099429322, - -18.444587908835995, - -18.44480472011072, - -18.44502142816656, - -18.44523803305265, - -18.445454534818115, - -18.44567093351204, - -18.4458872291835, - -18.446103421881542, - -18.44631951165519, - -18.44653549855344, - -18.446751382625273, - -18.446967163919638, - -18.447182842485468, - -18.447398418371666, - -18.447613891627118, - -18.447829262300683, - -18.4480445304412, - -18.44825969609748, - -18.44847475931832, - -18.44868972015248, - -18.44890457864871, - -18.44911933485572, - -18.449333988822215, - -18.449548540596872, - -18.44976299022834, - -18.449977337765244, - -18.450191583256192, - -18.450405726749764, - -18.450619768294516, - -18.45083370793899, - -18.451047545731697, - -18.45126128172112, - -18.451474915955735, - -18.451688448483974, - -18.451901879354267, - -18.45211520861501, - -18.452328436314566, - -18.452541562501295, - -18.452754587223527, - -18.452967510529565, - -18.453180332467685, - -18.45339305308615, - -18.453605672433202, - -18.453818190557044, - -18.45403060750587, - -18.45424292332785, - -18.45445513807113, - -18.45466725178382, - -18.45487926451403, - -18.455091176309832, - -18.455302987219273, - -18.45551469729039, - -18.455726306571187, - -18.455937815109646, - -18.45614922295373, - -18.45636053015138, - -18.456571736750508, - -18.456782842799008, - -18.456993848344748, - -18.457204753435576, - -18.457415558119315, - -18.45762626244377, - -18.45783686645672, - -18.458047370205918, - -18.458257773739096, - -18.45846807710397, - -18.458678280348224, - -18.458888383519522, - -18.45909838666551, - -18.459308289833803, - -18.459518093072006, - -18.459727796427686, - -18.459937399948398, - -18.46014690368167, - -18.460356307675013, - -18.460565611975902, - -18.460774816631805, - -18.460983921690158, - -18.461192927198375, - -18.46140183320386, - -18.461610639753967, - -18.461819346896057, - -18.462027954677456, - -18.462236463145466, - -18.462444872347362, - -18.462653182330406, - -18.462861393141836, - -18.463069504828862, - -18.463277517438677, - -18.463485431018448, - -18.46369324561532, - -18.463900961276423, - -18.46410857804885, - -18.464316095979683, - -18.464523515115978, - -18.46473083550477, - -18.46493805719307, - -18.46514518022786, - -18.46535220465612, - -18.465559130524788, - -18.465765957880784, - -18.465972686771007, - -18.46617931724234, - -18.46638584934163, - -18.466592283115716, - -18.466798618611406, - -18.467004855875487, - -18.467210994954726, - -18.467417035895867, - -18.467622978745634, - -18.46782882355072, - -18.468034570357805, - -18.468240219213545, - -18.46844577016457, - -18.468651223257492, - -18.4688565785389, - -18.469061836055356, - -18.469266995853406, - -18.46947205797957, - -18.46967702248035, - -18.469881889402224, - -18.47008665879164, - -18.470291330695037, - -18.470495905158828, - -18.470700382229396, - -18.470904761953108, - -18.471109044376313, - -18.471313229545334, - -18.471517317506464, - -18.471721308305987, - -18.47192520199016, - -18.472128998605218, - -18.472332698197366, - -18.472536300812802, - -18.472739806497692, - -18.472943215298184, - -18.4731465272604, - -18.473349742430443, - -18.473552860854394, - -18.473755882578313, - -18.473958807648234, - -18.474161636110175, - -18.474364368010125, - -18.474567003394057, - -18.47476954230792, - -18.47497198479764, - -18.475174330909127, - -18.47537658068826, - -18.4755787341809, - -18.47578079143289, - -18.475982752490044, - -18.47618461739816, - -18.476386386203014, - -18.47658805895036, - -18.476789635685922, - -18.476991116455416, - -18.477192501304522, - -18.477393790278914, - -18.47759498342423, - -18.477796080786092, - -18.477997082410106, - -18.478197988341844, - -18.478398798626863, - -18.4785995133107, - -18.478800132438877, - -18.479000656056876, - -18.479201084210167, - -18.479401416944203, - -18.47960165430441, - -18.47980179633619, - -18.480001843084924, - -18.480201794595985, - -18.480401650914708, - -18.480601412086408, - -18.480801078156386, - -18.481000649169918, - -18.481200125172258, - -18.481399506208636, - -18.481598792324267, - -18.48179798356434, - -18.481997079974022, - -18.48219608159846, - -18.482394988482774, - -18.482593800672078, - -18.482792518211443, - -18.48299114114594, - -18.483189669520602, - -18.48338810338045, - -18.483586442770473, - -18.483784687735653, - -18.483982838320944, - -18.484180894571274, - -18.484378856531556, - -18.484576724246683, - -18.484774497761514, - -18.484972177120902, - -18.485169762369672, - -18.485367253552624, - -18.485564650714547, - -18.485761953900194, - -18.485959163154313, - -18.48615627852162, - -18.486353300046808, - -18.486550227774558, - -18.486747061749526, - -18.486943802016338, - -18.487140448619616, - -18.48733700160394, - -18.487533461013893, - -18.48772982689401, - -18.48792609928883, - -18.488122278242855, - -18.488318363800566, - -18.488514356006434, - -18.4887102549049, - -18.488906060540376, - -18.489101772957273, - -18.48929739219997, - -18.489492918312816, - -18.48968835134016, - -18.48988369132631, - -18.490078938315563, - -18.49027409235219, - -18.49046915348045, - -18.49066412174457, - -18.49085899718876, - -18.49105377985721, - -18.49124846979409, - -18.491443067043548, - -18.491637571649708, - -18.491831983656674, - -18.492026303108535, - -18.492220530049348, - -18.492414664523164, - -18.492608706574, - -18.492802656245853, - -18.49299651358271, - -18.49319027862852, - -18.49338395142723, - -18.49357753202275, - -18.49377102045898, - -18.493964416779793, - -18.494157721029044, - -18.494350933250566, - -18.49454405348817, - -18.494737081785647, - -18.49493001818677, - -18.49512286273529, - -18.495315615474933, - -18.495508276449403, - -18.495700845702395, - -18.495893323277574, - -18.496085709218583, - -18.496278003569046, - -18.496470206372575, - -18.49666231767274, - -18.496854337513113, - -18.497046265937236, - -18.49723810298863, - -18.497429848710794, - -18.497621503147208, - -18.49781306634133, - -18.498004538336595, - -18.49819591917643, - -18.498387208904223, - -18.498578407563354, - -18.498769515197182, - -18.498960531849036, - -18.499151457562235, - -18.49934229238007, - -18.499533036345817, - -18.499723689502726, - -18.49991425189403, - -18.50010472356294, - -18.50029510455265, - -18.500485394906327, - -18.50067559466712, - -18.50086570387816, - -18.50105572258255, - -18.50124565082339, - -18.50143548864374, - -18.501625236086646, - -18.501814893195135, - -18.50200446001222, - -18.502193936580877, - -18.502383322944077, - -18.502572619144765, - -18.502761825225864, - -18.502950941230274, - -18.503139967200884, - -18.503328903180556, - -18.503517749212133, - -18.503706505338435, - -18.503895171602267, - -18.504083748046405, - -18.504272234713614, - -18.504460631646634, - -18.504648938888188, - -18.504837156480974, - -18.505025284467667, - -18.505213322890935, - -18.505401271793414, - -18.505589131217718, - -18.50577690120645, - -18.505964581802186, - -18.506152173047486, - -18.506339674984886, - -18.506527087656906, - -18.506714411106042, - -18.50690164537477, - -18.50708879050555, - -18.507275846540814, - -18.507462813522977, - -18.507649691494443, - -18.50783648049758, - -18.50802318057475, - -18.508209791768284, - -18.5083963141205, - -18.508582747673696, - -18.50876909247014, - -18.50895534855209, - -18.509141515961783, - -18.509327594741432, - -18.50951358493323, - -18.50969948657936, - -18.50988529972197, - -18.51007102440319, - -18.510256660665142, - -18.510442208549918, - -18.510627668099588, - -18.510813039356215, - -18.51099832236183, - -18.511183517158443, - -18.511368623788055, - -18.511553642292636, - -18.51173857271414, - -18.511923415094504, - -18.51210816947564, - -18.51229283589944, - -18.512477414407783, - -18.512661905042524, - -18.512846307845493, - -18.51303062285851, - -18.51321485012337, - -18.51339898968184, - -18.51358304157568, - -18.513767005846628, - -18.513950882536395, - -18.514134671686676, - -18.514318373339155, - -18.514501987535475, - -18.51468551431728, - -18.514868953726182, - -18.51505230580378, - -18.515235570591653, - -18.515418748131353, - -18.515601838464416, - -18.515784841632364, - -18.51596775767669, - -18.516150586638876, - -18.516333328560375, - -18.516515983482627, - -18.51669855144705, - -18.516881032495043, - -18.51706342666799, - -18.517245734007236, - -18.517427954554137, - -18.51761008835, - -18.517792135436135, - -18.51797409585382, - -18.51815596964431, - -18.518337756848858, - -18.51851945750867, - -18.51870107166496, - -18.518882599358907, - -18.51906404063167, - -18.519245395524397, - -18.519426664078207, - -18.51960784633421, - -18.519788942333484, - -18.5199699521171, - -18.520150875726102, - -18.52033171320151, - -18.520512464584336, - -18.520693129915564, - -18.520873709236167, - -18.521054202587084, - -18.521234610009248, - -18.521414931543564, - -18.521595167230927, - -18.521775317112205, - -18.521955381228246, - -18.52213535961988, - -18.52231525232792, - -18.52249505939316, - -18.522674780856374, - -18.52285441675831, - -18.523033967139703, - -18.52321343204127, - -18.5233928115037, - -18.523572105567677, - -18.523751314273852, - -18.523930437662866, - -18.52410947577533, - -18.524288428651847, - -18.524467296332993, - -18.52464607885933, - -18.524824776271398, - -18.52500338860972, - -18.525181915914793, - -18.5253603582271, - -18.52553871558711, - -18.52571698803526, - -18.525895175611975, - -18.526073278357668, - -18.526251296312715, - -18.52642922951749, - -18.526607078012336, - -18.526784841837586, - -18.526962521033543, - -18.527140115640503, - -18.527317625698736, - -18.52749505124849, - -18.527672392330004, - -18.527849648983484, - -18.528026821249128, - -18.528203909167114, - -18.528380912777592, - -18.5285578321207, - -18.52873466723656, - -18.528911418165265, - -18.529088084946903, - -18.529264667621526, - -18.529441166229176, - -18.52961758080988, - -18.529793911403644, - -18.529970158050443, - -18.530146320790248, - -18.530322399663003, - -18.530498394708637, - -18.530674305967057, - -18.530850133478154, - -18.531025877281795, - -18.531201537417832, - -18.531377113926098, - -18.531552606846404, - -18.53172801621855, - -18.53190334208231, - -18.532078584477436, - -18.53225374344367, - -18.532428819020726, - -18.532603811248308, - -18.532778720166096, - -18.53295354581375, - -18.533128288230913, - -18.533302947457212, - -18.533477523532248, - -18.53365201649561, - -18.533826426386863, - -18.534000753245564, - -18.534174997111233, - -18.534349158023385, - -18.534523236021514, - -18.53469723114509, - -18.53487114343357, - -18.53504497292639, - -18.535218719662964, - -18.535392383682698, - -18.53556596502496, - -18.535739463729126, - -18.535912879834523, - -18.536086213380482, - -18.536259464406303, - -18.53643263295128, - -18.536605719054677, - -18.536778722755738, - -18.536951644093694, - -18.537124483107764, - -18.53729723983713, - -18.537469914320972, - -18.53764250659844, - -18.53781501670868, - -18.537987444690803, - -18.538159790583908, - -18.53833205442708, - -18.538504236259374, - -18.538676336119845, - -18.538848354047506, - -18.53902029008137, - -18.539192144260422, - -18.539363916623632, - -18.53953560720995, - -18.53970721605831, - -18.539878743207627, - -18.540050188696792, - -18.54022155256468, - -18.540392834850156, - -18.540564035592052, - -18.540735154829193, - -18.540906192600385, - -18.541077148944407, - -18.541248023900025, - -18.54141881750599, - -18.54158952980102, - -18.541760160823838, - -18.54193071061313, - -18.54210117920757, - -18.542271566645816, - -18.542441872966503, - -18.542612098208245, - -18.542782242409643, - -18.54295230560928, - -18.543122287845723, - -18.54329218915751, - -18.54346200958317, - -18.543631749161214, - -18.54380140793013, - -18.543970985928386, - -18.54414048319444, - -18.544309899766724, - -18.544479235683657, - -18.544648490983633, - -18.544817665705033, - -18.54498675988622, - -18.545155773565536, - -18.545324706781308, - -18.54549355957184, - -18.54566233197543, - -18.545831024030335, - -18.545999635774816, - -18.5461681672471, - -18.54633661848541, - -18.54650498952794, - -18.546673280412868, - -18.54684149117836, - -18.547009621862554, - -18.547177672503572, - -18.547345643139533, - -18.547513533808516, - -18.547681344548593, - -18.547849075397817, - -18.548016726394223, - -18.548184297575826, - -18.54835178898062, - -18.548519200646595, - -18.548686532611704, - -18.548853784913895, - -18.54902095759109, - -18.5491880506812, - -18.549355064222116, - -18.549521998251702, - -18.54968885280782, - -18.549855627928302, - -18.550022323650968, - -18.550188940013612, - -18.55035547705402, - -18.550521934809954, - -18.55068831331916, - -18.550854612619368, - -18.551020832748282, - -18.5511869737436, - -18.55135303564299, - -18.551519018484107, - -18.551684922304595, - -18.55185074714207, - -18.552016493034134, - -18.55218216001837, - -18.552347748132348, - -18.552513257413615, - -18.5526786878997, - -18.552844039628113, - -18.553009312636355, - -18.553174506961902, - -18.553339622642213, - -18.553504659714722, - -18.553669618216862, - -18.55383449818603, - -18.55399929965962, - -18.554164022675, - -18.55432866726952, - -18.554493233480517, - -18.554657721345308, - -18.554822130901194, - -18.554986462185447, - -18.555150715235335, - -18.55531489008811, - -18.555478986780994, - -18.555643005351197, - -18.55580694583591, - -18.55597080827231, - -18.556134592697557, - -18.556298299148786, - -18.556461927663122, - -18.556625478277663, - -18.5567889510295, - -18.5569523459557, - -18.557115663093317, - -18.557278902479382, - -18.55744206415091, - -18.5576051481449, - -18.557768154498334, - -18.557931083248175, - -18.558093934431362, - -18.55825670808483, - -18.558419404245484, - -18.558582022950226, - -18.55874456423592, - -18.558907028139426, - -18.55906941469759, - -18.559231723947228, - -18.559393955925145, - -18.55955611066813, - -18.55971818821295, - -18.559880188596363, - -18.5600421118551, - -18.56020395802588, - -18.5603657271454, - -18.560527419250345, - -18.560689034377383, - -18.560850572563155, - -18.561012033844293, - -18.561173418257408, - -18.5613347258391, - -18.561495956625944, - -18.561657110654497, - -18.561818187961304, - -18.561979188582896, - -18.562140112555774, - -18.56230095991643, - -18.56246173070134, - -18.56262242494696, - -18.562783042689727, - -18.56294358396606, - -18.563104048812367, - -18.563264437265033, - -18.563424749360426, - -18.5635849851349, - -18.563745144624786, - -18.563905227866407, - -18.56406523489606, - -18.564225165750027, - -18.564385020464574, - -18.564544799075946, - -18.564704501620383, - -18.564864128134094, - -18.565023678653272, - -18.5651831532141, - -18.565342551852737, - -18.56550187460533, - -18.565661121508008, - -18.565820292596882, - -18.56597938790804, - -18.566138407477563, - -18.566297351341507, - -18.566456219535915, - -18.56661501209681, - -18.566773729060206, - -18.56693237046208, - -18.567090936338417, - -18.56724942672517, - -18.567407841658277, - -18.567566181173657, - -18.567724445307217, - -18.56788263409485, - -18.568040747572418, - -18.568198785775778, - -18.568356748740765, - -18.5685146365032, - -18.568672449098884, - -18.568830186563602, - -18.568987848933126, - -18.5691454362432, - -18.56930294852956, - -18.56946038582793, - -18.569617748174004, - -18.569775035603467, - -18.569932248151982, - -18.5700893858552, - -18.570246448748758, - -18.57040343686826, - -18.570560350249316, - -18.5707171889275, - -18.57087395293838, - -18.5710306423175, - -18.571187257100394, - -18.571343797322573, - -18.571500263019534, - -18.571656654226757, - -18.571812970979707, - -18.571969213313828, - -18.57212538126455, - -18.572281474867285, - -18.572437494157423, - -18.57259343917035, - -18.572749309941425, - -18.572905106505996, - -18.573060828899383, - -18.573216477156905, - -18.573372051313854, - -18.573527551405505, - -18.573682977467122, - -18.57383832953395, - -18.573993607641214, - -18.57414881182412, - -18.57430394211787, - -18.57445899855764, - -18.574613981178583, - -18.574768890015847, - -18.574923725104558, - -18.57507848647983, - -18.57523317417675, - -18.575387788230397, - -18.57554232867583, - -18.575696795548097, - -18.575851188882222, - -18.576005508713212, - -18.576159755076063, - -18.57631392800575, - -18.576468027537235, - -18.576622053705456, - -18.576776006545344, - -18.576929886091808, - -18.57708369237974, - -18.57723742544402, - -18.57739108531951, - -18.577544672041043, - -18.577698185643456, - -18.577851626161554, - -18.578004993630135, - -18.578158288083973, - -18.57831150955783, - -18.57846465808645, - -18.57861773370456, - -18.57877073644687, - -18.57892366634808, - -18.579076523442858, - -18.57922930776587, - -18.57938201935177, - -18.579534658235172, - -18.579687224450694, - -18.579839718032936, - -18.579992139016476, - -18.580144487435867, - -18.580296763325666, - -18.5804489667204, - -18.58060109765458, - -18.580753156162704, - -18.58090514227925, - -18.581057056038684, - -18.581208897475456, - -18.581360666623993, - -18.581512363518712, - -18.58166398819401, - -18.58181554068427, - -18.581967021023857, - -18.58211842924712, - -18.582269765388396, - -18.582421029482, - -18.582572221562227, - -18.582723341663364, - -18.58287438981968, - -18.583025366065424, - -18.583176270434834, - -18.583327102962127, - -18.583477863681505, - -18.583628552627157, - -18.58377916983325, - -18.583929715333934, - -18.584080189163355, - -18.584230591355627, - -18.584380921944856, - -18.584531180965136, - -18.584681368450532, - -18.584831484435103, - -18.584981528952888, - -18.585131502037914, - -18.585281403724185, - -18.585431234045696, - -18.585580993036416, - -18.58573068073031, - -18.585880297161317, - -18.586029842363367, - -18.58617931637037, - -18.586328719216215, - -18.586478050934787, - -18.586627311559944, - -18.58677650112553, - -18.586925619665383, - -18.587074667213308, - -18.58722364380311, - -18.587372549468565, - -18.58752138424344, - -18.587670148161486, - -18.587818841256432, - -18.587967463562002, - -18.588116015111893, - -18.588264495939786, - -18.58841290607936, - -18.58856124556426, - -18.58870951442813, - -18.588857712704584, - -18.589005840427227, - -18.589153897629654, - -18.589301884345435, - -18.589449800608126, - -18.589597646451274, - -18.589745421908393, - -18.589893127013003, - -18.59004076179859, - -18.590188326298637, - -18.5903358205466, - -18.59048324457593, - -18.59063059842005, - -18.590777882112377, - -18.59092509568631, - -18.59107223917523, - -18.591219312612502, - -18.591366316031475, - -18.591513249465482, - -18.591660112947846, - -18.591806906511867, - -18.591953630190833, - -18.592100284018013, - -18.592246868026663, - -18.592393382250016, - -18.592539826721303, - -18.59268620147373, - -18.592832506540482, - -18.592978741954745, - -18.593124907749672, - -18.593271003958407, - -18.593417030614084, - -18.593562987749813, - -18.593708875398686, - -18.593854693593787, - -18.594000442368184, - -18.594146121754928, - -18.594291731787045, - -18.59443727249756, - -18.594582743919474, - -18.594728146085775, - -18.594873479029427, - -18.595018742783395, - -18.59516393738061, - -18.595309062854007, - -18.595454119236482, - -18.595599106560933, - -18.595744024860235, - -18.595888874167255, - -18.596033654514834, - -18.596178365935803, - -18.596323008462974, - -18.596467582129147, - -18.59661208696711, - -18.596756523009624, - -18.596900890289444, - -18.597045188839306, - -18.59718941869193, - -18.597333579880022, - -18.59747767243627, - -18.59762169639335, - -18.59776565178392, - -18.597909538640625, - -18.59805335699609, - -18.598197106882925, - -18.59834078833373, - -18.598484401381086, - -18.598627946057555, - -18.598771422395686, - -18.59891483042802, - -18.59905817018707, - -18.59920144170534, - -18.599344645015318, - -18.59948778014948, - -18.59963084714028, - -18.59977384602016, - -18.59991677682154, - -18.60005963957684, - -18.600202434318454, - -18.600345161078756, - -18.600487819890116, - -18.60063041078488, - -18.600772933795383, - -18.600915388953943, - -18.60105777629286, - -18.601200095844423, - -18.60134234764091, - -18.601484531714565, - -18.60162664809764, - -18.601768696822354, - -18.601910677920923, - -18.60205259142554, - -18.602194437368386, - -18.602336215781623, - -18.6024779266974, - -18.60261957014786, - -18.602761146165108, - -18.602902654781257, - -18.60304409602839, - -18.603185469938584, - -18.603326776543895, - -18.603468015876363, - -18.60360918796802, - -18.603750292850872, - -18.60389133055692, - -18.604032301118146, - -18.60417320456651, - -18.604314040933968, - -18.604454810252456, - -18.60459551255389, - -18.604736147870177, - -18.60487671623321, - -18.605017217674863, - -18.605157652226996, - -18.60529801992145, - -18.605438320790057, - -18.605578554864636, - -18.605718722176977, - -18.60585882275887, - -18.60599885664208, - -18.606138823858362, - -18.60627872443946, - -18.606418558417086, - -18.60655832582296, - -18.606698026688772, - -18.606837661046193, - -18.606977228926898, - -18.607116730362524, - -18.60725616538471, - -18.607395534025077, - -18.60753483631522, - -18.60767407228673, - -18.607813241971183, - -18.607952345400133, - -18.60809138260512, - -18.60823035361768, - -18.60836925846932, - -18.60850809719154, - -18.60864686981582, - -18.60878557637363, - -18.608924216896426, - -18.60906279141564, - -18.60920129996269, - -18.609339742568995, - -18.609478119265944, - -18.609616430084916, - -18.609754675057268, - -18.609892854214355, - -18.610030967587505, - -18.61016901520804, - -18.610306997107262, - -18.61044491331646, - -18.61058276386691, - -18.61072054878986, - -18.610858268116566, - -18.61099592187825, - -18.61113351010613, - -18.611271032831404, - -18.611408490085257, - -18.611545881898856, - -18.611683208303358, - -18.6118204693299, - -18.611957665009605, - -18.61209479537359, - -18.612231860452948, - -18.612368860278753, - -18.612505794882082, - -18.61264266429398, - -18.61277946854548, - -18.612916207667606, - -18.613052881691367, - -18.613189490647752, - -18.61332603456774, - -18.613462513482297, - -18.61359892742236, - -18.61373527641887, - -18.61387156050274, - -18.614007779704878, - -18.614143934056173, - -18.614280023587497, - -18.61441604832971, - -18.61455200831365, - -18.61468790357016, - -18.614823734130045, - -18.614959500024106, - -18.615095201283136, - -18.6152308379379, - -18.61536641001916, - -18.61550191755765, - -18.615637360584106, - -18.615772739129238, - -18.615908053223738, - -18.616043302898294, - -18.61617848818358, - -18.61631360911024, - -18.616448665708923, - -18.616583658010246, - -18.616718586044826, - -18.616853449843255, - -18.61698824943612, - -18.617122984853978, - -18.617257656127393, - -18.617392263286895, - -18.617526806363006, - -18.61766128538624, - -18.617795700387088, - -18.61793005139603, - -18.61806433844353, - -18.618198561560042, - -18.618332720776, - -18.61846681612182, - -18.61860084762792, - -18.618734815324686, - -18.618868719242496, - -18.619002559411715, - -18.619136335862695, - -18.619270048625765, - -18.61940369773125, - -18.619537283209453, - -18.61967080509067, - -18.61980426340517, - -18.619937658183225, - -18.62007098945508, - -18.620204257250965, - -18.620337461601103, - -18.620470602535697, - -18.62060368008494, - -18.620736694279007, - -18.62086964514806, - -18.621002532722244, - -18.6211353570317, - -18.621268118106542, - -18.621400815976873, - -18.621533450672782, - -18.62166602222435, - -18.621798530661636, - -18.621930976014685, - -18.622063358313532, - -18.6221956775882, - -18.622327933868686, - -18.622460127184986, - -18.62259225756707, - -18.622724325044906, - -18.622856329648435, - -18.622988271407596, - -18.623120150352303, - -18.623251966512463, - -18.623383719917967, - -18.62351541059869, - -18.623647038584494, - -18.623778603905222, - -18.623910106590717, - -18.624041546670792, - -18.62417292417525, - -18.624304239133885, - -18.624435491576474, - -18.624566681532777, - -18.624697809032543, - -18.62482887410551, - -18.624959876781396, - -18.625090817089905, - -18.62522169506073, - -18.62535251072355, - -18.625483264108023, - -18.625613955243804, - -18.625744584160522, - -18.625875150887804, - -18.62600565545526, - -18.626136097892473, - -18.626266478229027, - -18.626396796494486, - -18.6265270527184, - -18.626657246930314, - -18.626787379159737, - -18.626917449436185, - -18.62704745778915, - -18.627177404248116, - -18.627307288842545, - -18.62743711160189, - -18.62756687255559, - -18.627696571733072, - -18.62782620916374, - -18.627955784877, - -18.62808529890222, - -18.628214751268782, - -18.628344142006032, - -18.628473471143312, - -18.628602738709954, - -18.628731944735264, - -18.62886108924854, - -18.62899017227907, - -18.629119193856127, - -18.62924815400896, - -18.629377052766813, - -18.629505890158924, - -18.629634666214496, - -18.629763380962736, - -18.629892034432828, - -18.630020626653952, - -18.630149157655257, - -18.630277627465897, - -18.630406036115, - -18.63053438363168, - -18.630662670045048, - -18.63079089538419, - -18.63091905967818, - -18.631047162956087, - -18.63117520524695, - -18.63130318657981, - -18.631431106983687, - -18.631558966487585, - -18.631686765120506, - -18.631814502911414, - -18.63194217988929, - -18.632069796083073, - -18.63219735152171, - -18.63232484623412, - -18.63245228024922, - -18.632579653595894, - -18.632706966303036, - -18.632834218399513, - -18.632961409914177, - -18.63308854087587, - -18.633215611313425, - -18.633342621255654, - -18.633469570731354, - -18.63359645976931, - -18.6337232883983, - -18.633850056647088, - -18.63397676454441, - -18.634103412119, - -18.634229999399583, - -18.63435652641485, - -18.634482993193508, - -18.634609399764226, - -18.63473574615567, - -18.634862032396484, - -18.63498825851531, - -18.63511442454077, - -18.635240530501473, - -18.635366576426012, - -18.63549256234297, - -18.635618488280922, - -18.635744354268414, - -18.635870160333987, - -18.635995906506174, - -18.636121592813485, - -18.636247219284417, - -18.636372785947465, - -18.6364982928311, - -18.63662373996378, - -18.63674912737395, - -18.63687445509004, - -18.636999723140477, - -18.63712493155366, - -18.637250080357987, - -18.637375169581826, - -18.637500199253548, - -18.637625169401506, - -18.637750080054037, - -18.637874931239466, - -18.637999722986102, - -18.63812445532224, - -18.638249128276172, - -18.638373741876162, - -18.63849829615047, - -18.638622791127336, - -18.638747226834994, - -18.63887160330166, - -18.638995920555537, - -18.639120178624815, - -18.63924437753767, - -18.63936851732226, - -18.639492598006743, - -18.639616619619247, - -18.639740582187905, - -18.63986448574082, - -18.639988330306085, - -18.64011211591179, - -18.640235842586005, - -18.640359510356777, - -18.640483119252153, - -18.640606669300162, - -18.640730160528822, - -18.640853592966135, - -18.640976966640086, - -18.641100281578655, - -18.641223537809807, - -18.641346735361488, - -18.64146987426163, - -18.64159295453816, - -18.64171597621899, - -18.64183893933201, - -18.64196184390511, - -18.642084689966154, - -18.642207477543, - -18.642330206663488, - -18.64245287735545, - -18.642575489646703, - -18.64269804356505, - -18.64282053913828, - -18.642942976394174, - -18.64306535536049, - -18.643187676064986, - -18.64330993853539, - -18.64343214279943, - -18.643554288884815, - -18.643676376819247, - -18.643798406630406, - -18.643920378345964, - -18.644042291993582, - -18.644164147600897, - -18.64428594519555, - -18.644407684805152, - -18.644529366457316, - -18.644650990179628, - -18.64477255599967, - -18.644894063945006, - -18.645015514043187, - -18.64513690632176, - -18.645258240808246, - -18.64537951753016, - -18.645500736515, - -18.645621897790257, - -18.645743001383405, - -18.6458640473219, - -18.6459850356332, - -18.64610596634473, - -18.646226839483912, - -18.646347655078163, - -18.64646841315487, - -18.646589113741424, - -18.646709756865192, - -18.64683034255353, - -18.646950870833777, - -18.64707134173327, - -18.647191755279326, - -18.647312111499247, - -18.64743241042033, - -18.647552652069844, - -18.647672836475063, - -18.64779296366324, - -18.647913033661606, - -18.6480330464974, - -18.648153002197823, - -18.648272900790083, - -18.64839274230137, - -18.64851252675885, - -18.648632254189696, - -18.648751924621052, - -18.648871538080055, - -18.648991094593825, - -18.649110594189473, - -18.6492300368941, - -18.64934942273479, - -18.649468751738613, - -18.64958802393263, - -18.64970723934388, - -18.649826397999405, - -18.64994549992622, - -18.650064545151334, - -18.65018353370174, - -18.65030246560442, - -18.650421340886343, - -18.65054015957446, - -18.650658921695726, - -18.650777627277062, - -18.650896276345385, - -18.651014868927604, - -18.651133405050608, - -18.651251884741274, - -18.651370308026472, - -18.651488674933056, - -18.65160698548786, - -18.651725239717717, - -18.651843437649443, - -18.65196157930984, - -18.652079664725697, - -18.65219769392379, - -18.652315666930882, - -18.652433583773725, - -18.652551444479055, - -18.652669249073604, - -18.652786997584077, - -18.652904690037182, - -18.653022326459602, - -18.653139906878017, - -18.653257431319084, - -18.65337489980945, - -18.65349231237576, - -18.65360966904463, - -18.65372696984268, - -18.653844214796504, - -18.653961403932687, - -18.6540785372778, - -18.654195614858416, - -18.654312636701068, - -18.654429602832305, - -18.65454651327864, - -18.654663368066586, - -18.654780167222647, - -18.654896910773296, - -18.65501359874502, - -18.655130231164264, - -18.655246808057484, - -18.655363329451113, - -18.655479795371573, - -18.655596205845274, - -18.655712560898614, - -18.65582886055797, - -18.655945104849728, - -18.65606129380023, - -18.65617742743584, - -18.65629350578288, - -18.656409528867673, - -18.656525496716533, - -18.656641409355753, - -18.65675726681162, - -18.656873069110404, - -18.656988816278364, - -18.657104508341742, - -18.65722014532678, - -18.657335727259692, - -18.657451254166695, - -18.657566726073977, - -18.65768214300773, - -18.65779750499412, - -18.657912812059312, - -18.658028064229445, - -18.65814326153066, - -18.658258403989077, - -18.658373491630798, - -18.658488524481932, - -18.658603502568557, - -18.658718425916746, - -18.658833294552558, - -18.65894810850204, - -18.659062867791235, - -18.659177572446154, - -18.65929222249281, - -18.659406817957205, - -18.65952135886532, - -18.65963584524313, - -18.659750277116597, - -18.659864654511665, - -18.659978977454276, - -18.660093245970348, - -18.660207460085797, - -18.66032161982652, - -18.6604357252184, - -18.660549776287315, - -18.660663773059124, - -18.660777715559682, - -18.66089160381482, - -18.66100543785037, - -18.66111921769214, - -18.66123294336593, - -18.66134661489753, - -18.661460232312713, - -18.661573795637246, - -18.66168730489688, - -18.66180076011735, - -18.661914161324393, - -18.662027508543712, - -18.662140801801012, - -18.662254041121983, - -18.662367226532307, - -18.66248035805765, - -18.66259343572366, - -18.662706459555984, - -18.662819429580242, - -18.662932345822064, - -18.663045208307043, - -18.663158017060777, - -18.66327077210884, - -18.663383473476813, - -18.66349612119024, - -18.663608715274666, - -18.663721255755625, - -18.66383374265864, - -18.663946176009212, - -18.664058555832842, - -18.66417088215501, - -18.664283155001183, - -18.664395374396825, - -18.66450754036738, - -18.664619652938285, - -18.66473171213496, - -18.664843717982812, - -18.664955670507247, - -18.665067569733647, - -18.665179415687387, - -18.66529120839383, - -18.665402947878317, - -18.665514634166197, - -18.66562626728279, - -18.66573784725341, - -18.66584937410336, - -18.66596084785793, - -18.666072268542397, - -18.666183636182026, - -18.66629495080207, - -18.66640621242777, - -18.666517421084357, - -18.66662857679705, - -18.666739679591046, - -18.666850729491546, - -18.666961726523734, - -18.667072670712773, - -18.66718356208382, - -18.667294400662026, - -18.667405186472518, - -18.667515919540424, - -18.66762659989085, - -18.66773722754889, - -18.667847802539637, - -18.66795832488816, - -18.668068794619526, - -18.668179211758776, - -18.668289576330956, - -18.668399888361087, - -18.668510147874184, - -18.668620354895253, - -18.668730509449276, - -18.668840611561244, - -18.66895066125611, - -18.669060658558838, - -18.66917060349437, - -18.66928049608763, - -18.66939033636354, - -18.66950012434701, - -18.669609860062938, - -18.669719543536196, - -18.669829174791666, - -18.669938753854204, - -18.670048280748656, - -18.670157755499865, - -18.670267178132647, - -18.670376548671815, - -18.670485867142173, - -18.67059513356851, - -18.670704347975605, - -18.670813510388218, - -18.670922620831103, - -18.671031679329005, - -18.67114068590665, - -18.67124964058876, - -18.671358543400036, - -18.671467394365177, - -18.671576193508866, - -18.671684940855773, - -18.671793636430554, - -18.671902280257864, - -18.67201087236233, - -18.67211941276858, - -18.672227901501227, - -18.672336338584874, - -18.672444724044105, - -18.672553057903496, - -18.67266134018762, - -18.672769570921023, - -18.672877750128254, - -18.672985877833842, - -18.6730939540623, - -18.67320197883814, - -18.673309952185853, - -18.67341787412993, - -18.67352574469484, - -18.67363356390504, - -18.67374133178498, - -18.673849048359102, - -18.67395671365183, - -18.67406432768757, - -18.674171890490737, - -18.67427940208571, - -18.674386862496874, - -18.674494271748593, - -18.674601629865226, - -18.67470893687112, - -18.6748161927906, - -18.674923397647998, - -18.675030551467614, - -18.675137654273748, - -18.675244706090684, - -18.675351706942703, - -18.675458656854065, - -18.675565555849023, - -18.67567240395181, - -18.675779201186668, - -18.6758859475778, - -18.67599264314942, - -18.67609928792572, - -18.67620588193088, - -18.676312425189078, - -18.676418917724465, - -18.676525359561197, - -18.676631750723402, - -18.676738091235215, - -18.67684438112074, - -18.676950620404085, - -18.677056809109338, - -18.67716294726058, - -18.677269034881874, - -18.67737507199728, - -18.677481058630843, - -18.677586994806592, - -18.677692880548555, - -18.67779871588074, - -18.677904500827143, - -18.678010235411755, - -18.678115919658552, - -18.6782215535915, - -18.678327137234543, - -18.678432670611635, - -18.6785381537467, - -18.678643586663657, - -18.678748969386415, - -18.678854301938873, - -18.67895958434491, - -18.679064816628404, - -18.67916999881322, - -18.679275130923198, - -18.67938021298219, - -18.679485245014014, - -18.679590227042493, - -18.67969515909143, - -18.67980004118462, - -18.679904873345848, - -18.680009655598884, - -18.680114387967485, - -18.6802190704754, - -18.68032370314637, - -18.68042828600412, - -18.68053281907236, - -18.680637302374805, - -18.68074173593514, - -18.680846119777044, - -18.68095045392419, - -18.68105473840024, - -18.681158973228833, - -18.68126315843361, - -18.681367294038196, - -18.681471380066206, - -18.681575416541236, - -18.681679403486882, - -18.681783340926724, - -18.68188722888433, - -18.681991067383258, - -18.68209485644705, - -18.682198596099248, - -18.68230228636337, - -18.682405927262927, - -18.682509518821426, - -18.682613061062355, - -18.682716554009193, - -18.682819997685407, - -18.682923392114454, - -18.68302673731978, - -18.683130033324815, - -18.68323328015299, - -18.683336477827712, - -18.68343962637238, - -18.683542725810387, - -18.683645776165115, - -18.683748777459922, - -18.683851729718175, - -18.68395463296321, - -18.684057487218364, - -18.684160292506963, - -18.684263048852316, - -18.684365756277725, - -18.684468414806478, - -18.684571024461857, - -18.684673585267124, - -18.684776097245543, - -18.68487856042035, - -18.68498097481479, - -18.685083340452074, - -18.685185657355426, - -18.68528792554804, - -18.68539014505311, - -18.685492315893807, - -18.68559443809331, - -18.68569651167477, - -18.685798536661334, - -18.685900513076138, - -18.686002440942303, - -18.686104320282944, - -18.686206151121162, - -18.686307933480048, - -18.686409667382684, - -18.686511352852136, - -18.68661298991146, - -18.68671457858371, - -18.686816118891915, - -18.686917610859105, - -18.68701905450829, - -18.687120449862476, - -18.687221796944655, - -18.68732309577781, - -18.687424346384905, - -18.687525548788905, - -18.687626703012754, - -18.687727809079394, - -18.68782886701175, - -18.687929876832733, - -18.688030838565254, - -18.688131752232206, - -18.688232617856467, - -18.688333435460915, - -18.688434205068408, - -18.6885349267018, - -18.688635600383922, - -18.68873622613761, - -18.68883680398568, - -18.688937333950935, - -18.689037816056178, - -18.68913825032419, - -18.68923863677775, - -18.689338975439608, - -18.68943926633253, - -18.689539509479253, - -18.689639704902508, - -18.68973985262501, - -18.68983995266948, - -18.689940005058606, - -18.69004000981508, - -18.690139966961578, - -18.690239876520767, - -18.6903397385153, - -18.690439552967824, - -18.69053931990097, - -18.69063903933736, - -18.690738711299613, - -18.690838335810323, - -18.690937912892085, - -18.691037442567477, - -18.691136924859066, - -18.691236359789414, - -18.691335747381068, - -18.69143508765656, - -18.691534380638426, - -18.691633626349173, - -18.691732824811307, - -18.691831976047325, - -18.69193108007971, - -18.692030136930928, - -18.69212914662345, - -18.692228109179723, - -18.692327024622188, - -18.69242589297327, - -18.692524714255395, - -18.69262348849097, - -18.692722215702393, - -18.692820895912046, - -18.692919529142312, - -18.69301811541555, - -18.693116654754125, - -18.693215147180375, - -18.69331359271664, - -18.69341199138523, - -18.69351034320847, - -18.693608648208652, - -18.693706906408078, - -18.693805117829026, - -18.69390328249376, - -18.694001400424547, - -18.69409947164363, - -18.694197496173246, - -18.69429547403563, - -18.694393405252995, - -18.69449128984755, - -18.69458912784149, - -18.694686919257, - -18.694784664116256, - -18.69488236244142, - -18.694980014254647, - -18.695077619578083, - -18.695175178433853, - -18.695272690844085, - -18.695370156830894, - -18.695467576416373, - -18.69556494962262, - -18.69566227647171, - -18.695759556985717, - -18.695856791186696, - -18.6959539790967, - -18.69605112073776, - -18.696148216131906, - -18.69624526530116, - -18.69634226826753, - -18.696439225053002, - -18.69653613567957, - -18.696633000169204, - -18.696729818543872, - -18.696826590825527, - -18.696923317036113, - -18.697019997197565, - -18.6971166313318, - -18.69721321946074, - -18.69730976160628, - -18.697406257790316, - -18.697502708034726, - -18.69759911236138, - -18.69769547079214, - -18.69779178334886, - -18.697888050053372, - -18.697984270927513, - -18.698080445993096, - -18.69817657527193, - -18.698272658785815, - -18.698368696556535, - -18.69846468860587, - -18.69856063495559, - -18.69865653562745, - -18.698752390643193, - -18.698848200024553, - -18.698943963793266, - -18.699039681971037, - -18.69913535457957, - -18.699230981640568, - -18.69932656317571, - -18.69942209920667, - -18.69951758975511, - -18.699613034842688, - -18.699708434491047, - -18.699803788721812, - -18.699899097556614, - -18.69999436101706, - -18.700089579124747, - -18.700184751901276, - -18.700279879368225, - -18.700374961547162, - -18.70046999845965, - -18.700564990127237, - -18.700659936571466, - -18.700754837813864, - -18.700849693875956, - -18.700944504779248, - -18.701039270545238, - -18.701133991195416, - -18.70122866675126, - -18.701323297234232, - -18.701417882665805, - -18.701512423067413, - -18.701606918460502, - -18.701701368866498, - -18.701795774306813, - -18.70189013480286, - -18.701984450376035, - -18.702078721047723, - -18.702172946839305, - -18.702267127772142, - -18.70236126386759, - -18.702455355147, - -18.702549401631703, - -18.70264340334303, - -18.70273736030229, - -18.702831272530794, - -18.702925140049835, - -18.703018962880694, - -18.703112741044656, - -18.70320647456298, - -18.70330016345692, - -18.70339380774772, - -18.703487407456617, - -18.703580962604832, - -18.703674473213585, - -18.70376793930408, - -18.703861360897502, - -18.703954738015046, - -18.704048070677878, - -18.70414135890717, - -18.704234602724068, - -18.704327802149717, - -18.70442095720525, - -18.704514067911795, - -18.704607134290466, - -18.704700156362364, - -18.704793134148577, - -18.7048860676702, - -18.704978956948295, - -18.705071802003932, - -18.705164602858165, - -18.705257359532034, - -18.705350072046574, - -18.705442740422807, - -18.705535364681744, - -18.705627944844395, - -18.705720480931745, - -18.705812972964782, - -18.70590542096448, - -18.705997824951805, - -18.7060901849477, - -18.706182500973117, - -18.70627477304899, - -18.706367001196234, - -18.706459185435772, - -18.7065513257885, - -18.706643422275317, - -18.706735474917107, - -18.706827483734735, - -18.706919448749073, - -18.70701136998097, - -18.707103247451276, - -18.707195081180817, - -18.707286871190426, - -18.707378617500908, - -18.70747032013307, - -18.70756197910771, - -18.70765359444561, - -18.70774516616754, - -18.707836694294272, - -18.707928178846558, - -18.708019619845143, - -18.708111017310763, - -18.708202371264136, - -18.708293681725984, - -18.70838494871701, - -18.70847617225791, - -18.70856735236937, - -18.708658489072068, - -18.708749582386666, - -18.70884063233382, - -18.70893163893418, - -18.709022602208382, - -18.70911352217705, - -18.7092043988608, - -18.709295232280237, - -18.709386022455966, - -18.709476769408568, - -18.709567473158625, - -18.709658133726702, - -18.709748751133354, - -18.709839325399134, - -18.70992985654458, - -18.710020344590216, - -18.71011078955657, - -18.71020119146414, - -18.710291550333434, - -18.71038186618494, - -18.710472139039133, - -18.710562368916484, - -18.71065255583746, - -18.710742699822504, - -18.71083280089206, - -18.710922859066557, - -18.71101287436642, - -18.71110284681206, - -18.711192776423875, - -18.71128266322226, - -18.711372507227598, - -18.711462308460263, - -18.711552066940612, - -18.711641782689007, - -18.711731455725783, - -18.711821086071282, - -18.711910673745823, - -18.712000218769724, - -18.712089721163288, - -18.71217918094681, - -18.71226859814057, - -18.71235797276486, - -18.71244730483993, - -18.712536594386044, - -18.71262584142345, - -18.712715045972384, - -18.712804208053075, - -18.71289332768574, - -18.71298240489059, - -18.713071439687816, - -18.713160432097617, - -18.713249382140166, - -18.713338289835633, - -18.713427155204183, - -18.713515978265963, - -18.713604759041118 - ], - "y22": [ - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - -5.981160380271906e-6, - -0.013473522458171567, - -0.02693171454335887, - -0.04038056390619532, - -0.05382007703243253, - -0.06725026040331558, - -0.08067112049559406, - -0.09408266378151744, - -0.10748489672884667, - -0.12087782580084704, - -0.1342614574563027, - -0.1476357981495101, - -0.1610008543302878, - -0.1743566324439742, - -0.18770313893143634, - -0.20104038022906673, - -0.21436836276879348, - -0.2276870929780753, - -0.24099657727991333, - -0.2542968220928458, - -0.2675878338309589, - -0.2808696189038825, - -0.2941421837168006, - -0.3074055346704466, - -0.3206596781611151, - -0.3339046205806556, - -0.34714036831648426, - -0.36036692775158136, - -0.3735843052644959, - -0.38679250722935044, - -0.39999154001583914, - -0.41318140998923863, - -0.4263621235104029, - -0.4395336869357739, - -0.4526961066173771, - -0.4658493889028323, - -0.47899354013534856, - -0.4921285666537354, - -0.5052544747923987, - -0.5183712708813499, - -0.5314789612462032, - -0.5445775522081848, - -0.5576670500841285, - -0.5707474611864876, - -0.583818791823329, - -0.5968810482983443, - -0.6099342369108456, - -0.6229783639557758, - -0.6360134357237027, - -0.6490394585008329, - -0.6620564385690041, - -0.6750643822056969, - -0.6880632956840322, - -0.7010531852727763, - -0.7140340572363438, - -0.7270059178348004, - -0.7399687733238663, - -0.7529226299549187, - -0.7658674939749959, - -0.7788033716267977, - -0.7917302691486924, - -0.8046481927747151, - -0.817557148734576, - -0.8304571432536579, - -0.8433481825530245, - -0.8562302728494182, - -0.8691034203552684, - -0.8819676312786892, - -0.8948229118234873, - -0.9076692681891605, - -0.9205067065709057, - -0.9333352331596155, - -0.9461548541418889, - -0.9589655757000256, - -0.971767404012038, - -0.9845603452516456, - -0.9973444055882852, - -1.0101195911871097, - -1.0228859082089916, - -1.0356433628105273, - -1.0483919611440384, - -1.0611317093575767, - -1.0738626135949245, - -1.0865846799956012, - -1.0992979146948612, - -1.1120023238237031, - -1.124697913508866, - -1.137384689872839, - -1.1500626590338578, - -1.1627318271059142, - -1.175392200198752, - -1.1880437844178773, - -1.2006865858645541, - -1.2133206106358143, - -1.225945864824454, - -1.2385623545190425, - -1.2511700858039199, - -1.2637690647592057, - -1.2763592974607942, - -1.2889407899803664, - -1.3015135483853846, - -1.3140775787391012, - -1.326632887100559, - -1.339179479524596, - -1.3517173620618417, - -1.3642465407587314, - -1.3767670216574996, - -1.3892788107961893, - -1.4017819142086458, - -1.414276337924532, - -1.426762087969322, - -1.4392391703643093, - -1.4517075911266022, - -1.4641673562691375, - -1.4766184718006747, - -1.4890609437258053, - -1.5014947780449472, - -1.513919980754356, - -1.5263365578461252, - -1.5387445153081887, - -1.55114385912432, - -1.563534595274142, - -1.575916729733126, - -1.5882902684725968, - -1.6006552174597286, - -1.6130115826575573, - -1.625359370024979, - -1.6376985855167523, - -1.650029235083504, - -1.6623513246717245, - -1.6746648602237821, - -1.6869698476779174, - -1.6992662929682498, - -1.7115542020247756, - -1.7238335807733784, - -1.736104435135827, - -1.7483667710297803, - -1.7606205943687852, - -1.7728659110622873, - -1.7851027270156286, - -1.7973310481300533, - -1.809550880302704, - -1.8217622294266342, - -1.8339651013908052, - -1.8461595020800912, - -1.8583454373752772, - -1.8705229131530692, - -1.882691935286093, - -1.8948525096428988, - -1.9070046420879587, - -1.919148338481677, - -1.9312836046803896, - -1.9434104465363662, - -1.9555288698978155, - -1.9676388806088816, - -1.9797404845096567, - -1.9918336874361764, - -2.003918495220427, - -2.0159949136903417, - -2.0280629486698123, - -2.0401226059786857, - -2.052173891432772, - -2.064216810843836, - -2.076251370019617, - -2.088277574763816, - -2.1002954308761104, - -2.1123049441521458, - -2.124306120383548, - -2.1362989653579216, - -2.1482834848588555, - -2.1602596846659186, - -2.1722275705546705, - -2.1841871482966626, - -2.19613842365944, - -2.2080814024065387, - -2.2200160902974986, - -2.231942493087861, - -2.2438606165291697, - -2.255770466368979, - -2.2676720483508475, - -2.2795653682143517, - -2.291450431695082, - -2.303327244524649, - -2.315195812430679, - -2.327056141136828, - -2.338908236362775, - -2.350752103824233, - -2.3625877492329397, - -2.374415178296674, - -2.3862343967192494, - -2.398045410200523, - -2.4098482244363906, - -2.4216428451187952, - -2.4334292779357307, - -2.4452075285712422, - -2.4569776027054253, - -2.4687395060144346, - -2.480493244170486, - -2.4922388228418573, - -2.5039762476928877, - -2.5157055243839874, - -2.527426658571637, - -2.5391396559083894, - -2.5508445220428766, - -2.5625412626198028, - -2.574229883279959, - -2.5859103896602185, - -2.597582787393544, - -2.609247082108983, - -2.620903279431678, - -2.632551384982867, - -2.6441914043798866, - -2.655823343236169, - -2.6674472071612554, - -2.6790630017607886, - -2.6906707326365242, - -2.7022704053863236, - -2.713862025604166, - -2.7254455988801465, - -2.7370211308004806, - -2.7485886269475013, - -2.760148092899672, - -2.7716995342315798, - -2.783242956513946, - -2.7947783653136176, - -2.8063057661935833, - -2.8178251647129686, - -2.8293365664270382, - -2.8408399768872035, - -2.852335401641017, - -2.8638228462321837, - -2.8753023162005604, - -2.8867738170821577, - -2.89823735440914, - -2.9096929337098354, - -2.921140560508732, - -2.932580240326486, - -2.944011978679915, - -2.9554357810820115, - -2.9668516530419398, - -2.978259600065041, - -2.989659627652831, - -3.001051741303009, - -3.012435946509457, - -3.0238122487622454, - -3.035180653547628, - -3.046541166348055, - -3.0578937926421683, - -3.06923853790481, - -3.080575407607015, - -3.0919044072160253, - -3.1032255421952866, - -3.1145388180044504, - -3.125844240099382, - -3.137141813932152, - -3.148431544951053, - -3.1597134386005923, - -3.1709875003215, - -3.1822537355507237, - -3.1935121497214425, - -3.204762748263061, - -3.2160055366012177, - -3.2272405201577787, - -3.2384677043508514, - -3.249687094594779, - -3.2608986963001505, - -3.272102514873792, - -3.283298555718781, - -3.294486824234443, - -3.3056673258163576, - -3.316840065856353, - -3.3280050497425187, - -3.3391622828592027, - -3.3503117705870182, - -3.361453518302836, - -3.372587531379801, - -3.3837138151873245, - -3.3948323750910916, - -3.405943216453065, - -3.4170463446314785, - -3.428141764980852, - -3.439229482851986, - -3.4503095035919684, - -3.461381832544171, - -3.472446475048261, - -3.483503436440194, - -3.4945527220522288, - -3.5055943372129126, - -3.5166282872471006, - -3.5276545774759493, - -3.538673213216924, - -3.549684199783792, - -3.5606875424866367, - -3.5716832466318555, - -3.5826713175221623, - -3.5936517604565847, - -3.6046245807304773, - -3.6155897836355164, - -3.626547374459707, - -3.6374973584873787, - -3.6484397409991955, - -3.659374527272157, - -3.670301722579597, - -3.6812213321911904, - -3.6921333613729503, - -3.7030378153872388, - -3.7139346994927616, - -3.724824018944577, - -3.73570577899409, - -3.7465799848890646, - -3.7574466418736208, - -3.7683057551882384, - -3.7791573300697565, - -3.790001371751382, - -3.8008378854626867, - -3.8116668764296158, - -3.8224883498744804, - -3.833302311015971, - -3.8441087650691537, - -3.8549077172454767, - -3.865699172752765, - -3.876483136795233, - -3.8872596145734803, - -3.898028611284499, - -3.9087901321216685, - -3.9195441822747656, - -3.930290766929966, - -3.9410298912698427, - -3.9517615604733733, - -3.9624857797159363, - -3.9732025541693203, - -3.9839118890017233, - -3.994613789377757, - -4.005308260458444, - -4.0159953074012265, - -4.026674935359965, - -4.0373471494849476, - -4.0480119549228775, - -4.0586693568168934, - -4.069319360306558, - -4.079961970527872, - -4.090597192613265, - -4.101225031691605, - -4.111845492888202, - -4.122458581324807, - -4.133064302119613, - -4.143662660387263, - -4.1542536612388465, - -4.164837309781911, - -4.175413611120448, - -4.185982570354915, - -4.196544192582225, - -4.207098482895752, - -4.2176454463853394, - -4.2281850881372876, - -4.238717413234373, - -4.249242426755844, - -4.259760133777421, - -4.2702705393713, - -4.280773648606155, - -4.291269466547146, - -4.301757998255913, - -4.312239248790581, - -4.322713223205768, - -4.333179926552578, - -4.343639363878617, - -4.354091540227974, - -4.364536460641248, - -4.374974130155532, - -4.385404553804427, - -4.395827736618035, - -4.406243683622969, - -4.41665239984235, - -4.427053890295818, - -4.437448159999521, - -4.447835213966129, - -4.458215057204829, - -4.468587694721335, - -4.478953131517883, - -4.489311372593237, - -4.4996624229426905, - -4.5100062875580695, - -4.520342971427737, - -4.530672479536587, - -4.5409948168660605, - -4.551309988394134, - -4.5616179990953345, - -4.571918853940728, - -4.582212557897937, - -4.59249911593113, - -4.602778533001034, - -4.613050814064927, - -4.6233159640766495, - -4.633573987986603, - -4.643824890741751, - -4.654068677285622, - -4.664305352558316, - -4.674534921496498, - -4.684757389033414, - -4.694972760098877, - -4.705181039619283, - -4.715382232517604, - -4.725576343713402, - -4.735763378122815, - -4.745943340658572, - -4.756116236229993, - -4.766282069742989, - -4.776440846100063, - -4.786592570200317, - -4.796737246939451, - -4.806874881209768, - -4.8170054779001745, - -4.827129041896179, - -4.837245578079904, - -4.84735509133008, - -4.8574575865220515, - -4.867553068527778, - -4.877641542215836, - -4.887723012451426, - -4.897797484096365, - -4.907864962009101, - -4.917925451044704, - -4.927978956054878, - -4.938025481887957, - -4.948065033388907, - -4.9580976153993355, - -4.968123232757485, - -4.978141890298241, - -4.988153592853132, - -4.998158345250333, - -5.008156152314667, - -5.018147018867607, - -5.02813094972728, - -5.0381079497084675, - -5.048078023622608, - -5.0580411762778015, - -5.067997412478809, - -5.077946737027056, - -5.087889154720636, - -5.09782467035431, - -5.107753288719512, - -5.117675014604348, - -5.1275898527936015, - -5.137497808068734, - -5.147398885207889, - -5.157293088985891, - -5.16718042417425, - -5.177060895541163, - -5.18693450785152, - -5.196801265866901, - -5.206661174345579, - -5.216514238042527, - -5.226360461709416, - -5.236199850094617, - -5.246032407943205, - -5.255858139996963, - -5.2656770509943795, - -5.275489145670656, - -5.285294428757705, - -5.295092904984155, - -5.304884579075351, - -5.314669455753358, - -5.324447539736965, - -5.334218835741682, - -5.343983348479746, - -5.353741082660126, - -5.363492042988518, - -5.3732362341673525, - -5.3829736608957965, - -5.392704327869755, - -5.402428239781872, - -5.412145401321533, - -5.421855817174871, - -5.431559492024764, - -5.441256430550839, - -5.450946637429473, - -5.4606301173338005, - -5.4703068749337085, - -5.479976914895845, - -5.489640241883616, - -5.499296860557191, - -5.508946775573504, - -5.518589991586256, - -5.528226513245919, - -5.537856345199734, - -5.547479492091719, - -5.557095958562667, - -5.566705749250147, - -5.5763088687885105, - -5.585905321808894, - -5.595495112939214, - -5.605078246804178, - -5.6146547280252825, - -5.624224561220815, - -5.633787751005858, - -5.643344301992289, - -5.652894218788783, - -5.66243750600082, - -5.671974168230677, - -5.68150421007744, - -5.691027636137002, - -5.700544451002063, - -5.710054659262138, - -5.719558265503554, - -5.729055274309456, - -5.738545690259806, - -5.748029517931384, - -5.757506761897796, - -5.766977426729474, - -5.776441516993674, - -5.785899037254483, - -5.795349992072821, - -5.8047943860064395, - -5.8142322236099275, - -5.82366350943471, - -5.833088248029053, - -5.842506443938069, - -5.85191810170371, - -5.861323225864778, - -5.870721820956923, - -5.880113891512648, - -5.889499442061307, - -5.898878477129111, - -5.908251001239128, - -5.9176170189112876, - -5.926976534662381, - -5.936329553006064, - -5.945676078452857, - -5.955016115510154, - -5.964349668682216, - -5.973676742470178, - -5.982997341372047, - -5.992311469882713, - -6.0016191324939445, - -6.010920333694391, - -6.020215077969584, - -6.029503369801944, - -6.038785213670778, - -6.048060614052285, - -6.057329575419554, - -6.066592102242569, - -6.075848198988215, - -6.085097870120273, - -6.0943411200994255, - -6.103577953383259, - -6.112808374426265, - -6.122032387679844, - -6.1312499975923, - -6.1404612086088575, - -6.149666025171651, - -6.158864451719733, - -6.168056492689072, - -6.17724215251256, - -6.186421435620008, - -6.195594346438154, - -6.204760889390667, - -6.213921068898134, - -6.223074889378083, - -6.232222355244972, - -6.241363470910196, - -6.250498240782086, - -6.259626669265913, - -6.26874876076389, - -6.277864519675175, - -6.286973950395868, - -6.296077057319022, - -6.3051738448346395, - -6.314264317329673, - -6.3233484791880334, - -6.332426334790583, - -6.341497888515148, - -6.350563144736514, - -6.359622107826427, - -6.368674782153599, - -6.377721172083713, - -6.386761281979417, - -6.395795116200333, - -6.404822679103054, - -6.4138439750411536, - -6.422859008365177, - -6.431867783422654, - -6.440870304558092, - -6.449866576112986, - -6.458856602425814, - -6.467840387832048, - -6.476817936664143, - -6.485789253251553, - -6.49475434192072, - -6.503713206995089, - -6.512665852795097, - -6.521612283638187, - -6.530552503838803, - -6.539486517708395, - -6.548414329555418, - -6.557335943685336, - -6.566251364400628, - -6.5751605960007815, - -6.584063642782299, - -6.592960509038704, - -6.6018511990605395, - -6.610735717135367, - -6.619614067547774, - -6.6284862545793715, - -6.637352282508799, - -6.646212155611728, - -6.655065878160858, - -6.663913454425924, - -6.672754888673698, - -6.6815901851679875, - -6.690419348169643, - -6.699242381936555, - -6.708059290723662, - -6.716870078782942, - -6.725674750363427, - -6.734473309711197, - -6.743265761069381, - -6.75205210867817, - -6.760832356774807, - -6.769606509593594, - -6.778374571365892, - -6.787136546320127, - -6.795892438681791, - -6.8046422526734345, - -6.813385992514686, - -6.822123662422241, - -6.830855266609868, - -6.83958080928841, - -6.848300294665788, - -6.857013726946999, - -6.865721110334125, - -6.874422449026327, - -6.8831177472198535, - -6.891807009108036, - -6.900490238881303, - -6.909167440727166, - -6.917838618830232, - -6.926503777372207, - -6.935162920531889, - -6.943816052485176, - -6.9524631774050665, - -6.961104299461665, - -6.969739422822179, - -6.978368551650924, - -6.986991690109323, - -6.995608842355914, - -7.004220012546343, - -7.012825204833375, - -7.021424423366889, - -7.0300176722938845, - -7.038604955758486, - -7.047186277901934, - -7.055761642862599, - -7.064331054775978, - -7.072894517774696, - -7.08145203598851, - -7.090003613544311, - -7.09854925456612, - -7.1070889631751015, - -7.115622743489556, - -7.124150599624927, - -7.132672535693797, - -7.141188555805899, - -7.149698664068107, - -7.158202864584451, - -7.166701161456104, - -7.175193558781397, - -7.183680060655817, - -7.1921606711720045, - -7.200635394419759, - -7.2091042344860465, - -7.217567195454988, - -7.226024281407875, - -7.234475496423159, - -7.242920844576467, - -7.251360329940596, - -7.259793956585511, - -7.268221728578359, - -7.2766436499834555, - -7.2850597248622995, - -7.29346995727357, - -7.301874351273128, - -7.310272910914016, - -7.318665640246467, - -7.327052543317899, - -7.335433624172926, - -7.343808886853347, - -7.352178335398161, - -7.360541973843559, - -7.368899806222933, - -7.377251836566869, - -7.385598068903165, - -7.393938507256815, - -7.402273155650021, - -7.410602018102195, - -7.418925098629955, - -7.427242401247133, - -7.435553929964775, - -7.44385968879114, - -7.452159681731706, - -7.460453912789171, - -7.468742385963453, - -7.477025105251695, - -7.4853020746482635, - -7.493573298144753, - -7.501838779729987, - -7.51009852339002, - -7.518352533108137, - -7.52660081286486, - -7.534843366637949, - -7.543080198402402, - -7.551311312130455, - -7.559536711791588, - -7.5677564013525265, - -7.575970384777243, - -7.584178666026952, - -7.592381249060126, - -7.600578137832485, - -7.608769336297003, - -7.616954848403915, - -7.6251346781007046, - -7.633308829332123, - -7.641477306040182, - -7.64964011216415, - -7.657797251640566, - -7.665948728403238, - -7.674094546383243, - -7.682234709508923, - -7.690369221705899, - -7.6984980868970645, - -7.706621309002591, - -7.714738891939926, - -7.722850839623799, - -7.730957155966221, - -7.739057844876491, - -7.747152910261191, - -7.755242356024189, - -7.763326186066648, - -7.7714044042870185, - -7.779477014581049, - -7.787544020841778, - -7.795605426959543, - -7.803661236821986, - -7.811711454314044, - -7.81975608331796, - -7.827795127713281, - -7.8358285913768615, - -7.8438564781828655, - -7.851878792002764, - -7.859895536705342, - -7.867906716156703, - -7.875912334220261, - -7.88391239475675, - -7.891906901624225, - -7.899895858678062, - -7.907879269770961, - -7.915857138752945, - -7.923829469471366, - -7.931796265770905, - -7.939757531493576, - -7.947713270478724, - -7.955663486563028, - -7.963608183580504, - -7.9715473653625075, - -7.979481035737735, - -7.987409198532221, - -7.995331857569347, - -8.003249016669841, - -8.011160679651777, - -8.01906685033058, - -8.026967532519024, - -8.034862730027239, - -8.042752446662709, - -8.050636686230272, - -8.058515452532125, - -8.066388749367833, - -8.074256580534316, - -8.082118949825858, - -8.089975861034114, - -8.0978273179481, - -8.10567332435421, - -8.113513884036204, - -8.121349000775213, - -8.12917867834975, - -8.137002920535696, - -8.144821731106322, - -8.152635113832272, - -8.160443072481574, - -8.168245610819639, - -8.176042732609268, - -8.183834441610644, - -8.191620741581342, - -8.199401636276335, - -8.207177129447977, - -8.21494722484603, - -8.222711926217643, - -8.230471237307368, - -8.238225161857159, - -8.245973703606365, - -8.253716866291747, - -8.261454653647471, - -8.269187069405106, - -8.276914117293638, - -8.284635801039455, - -8.292352124366365, - -8.300063090995588, - -8.307768704645765, - -8.315468969032947, - -8.323163887870615, - -8.330853464869664, - -8.338537703738417, - -8.346216608182624, - -8.353890181905461, - -8.361558428607529, - -8.369221351986868, - -8.376878955738944, - -8.38453124355666, - -8.392178219130358, - -8.399819886147812, - -8.407456248294242, - -8.415087309252307, - -8.422713072702111, - -8.430333542321202, - -8.437948721784574, - -8.445558614764671, - -8.453163224931385, - -8.460762555952067, - -8.468356611491517, - -8.475945395211992, - -8.483528910773204, - -8.49110716183233, - -8.498680152044006, - -8.506247885060326, - -8.513810364530853, - -8.52136759410262, - -8.52891957742012, - -8.536466318125324, - -8.544007819857672, - -8.551544086254072, - -8.559075120948917, - -8.566600927574068, - -8.57412150975887, - -8.581636871130145, - -8.589147015312205, - -8.596651945926835, - -8.604151666593314, - -8.611646180928403, - -8.61913549254636, - -8.62661960505892, - -8.634098522075327, - -8.641572247202308, - -8.649040784044093, - -8.656504136202406, - -8.66396230727647, - -8.671415300863014, - -8.678863120556265, - -8.68630576994796, - -8.693743252627335, - -8.701175572181146, - -8.708602732193645, - -8.716024736246608, - -8.723441587919316, - -8.730853290788572, - -8.738259848428692, - -8.74566126441151, - -8.753057542306383, - -8.760448685680187, - -8.767834698097326, - -8.775215583119726, - -8.782591344306843, - -8.78996198521566, - -8.797327509400692, - -8.804687920413988, - -8.812043221805123, - -8.81939341712122, - -8.82673850990693, - -8.834078503704447, - -8.841413402053508, - -8.84874320849139, - -8.856067926552912, - -8.863387559770446, - -8.870702111673909, - -8.878011585790759, - -8.885315985646018, - -8.892615314762256, - -8.899909576659594, - -8.907198774855715, - -8.914482912865855, - -8.921761994202816, - -8.929036022376955, - -8.936305000896194, - -8.943568933266022, - -8.950827822989492, - -8.958081673567227, - -8.96533048849742, - -8.972574271275832, - -8.9798130253958, - -8.987046754348238, - -8.994275461621632, - -9.001499150702049, - -9.008717825073138, - -9.015931488216122, - -9.023140143609815, - -9.030343794730616, - -9.037542445052503, - -9.044736098047053, - -9.051924757183425, - -9.059108425928372, - -9.06628710774624, - -9.07346080609897, - -9.080629524446104, - -9.087793266244773, - -9.09495203494972, - -9.10210583401328, - -9.109254666885397, - -9.116398537013612, - -9.123537447843084, - -9.130671402816574, - -9.137800405374454, - -9.144924458954707, - -9.15204356699293, - -9.159157732922335, - -9.16626696017375, - -9.173371252175626, - -9.180470612354023, - -9.187565044132635, - -9.19465455093277, - -9.201739136173366, - -9.208818803270988, - -9.215893555639825, - -9.2229633966917, - -9.230028329836067, - -9.237088358480008, - -9.244143486028248, - -9.25119371588314, - -9.258239051444681, - -9.265279496110507, - -9.272315053275893, - -9.279345726333759, - -9.28637151867467, - -9.293392433686835, - -9.30040847475611, - -9.307419645266007, - -9.31442594859768, - -9.321427388129944, - -9.328423967239264, - -9.335415689299762, - -9.342402557683217, - -9.34938457575907, - -9.356361746894418, - -9.363334074454027, - -9.37030156180032, - -9.37726421229339, - -9.384222029291, - -9.391175016148575, - -9.398123176219215, - -9.405066512853695, - -9.412005029400458, - -9.418938729205625, - -9.425867615612995, - -9.432791691964045, - -9.439710961597934, - -9.446625427851497, - -9.453535094059262, - -9.460439963553435, - -9.467340039663908, - -9.474235325718267, - -9.481125825041783, - -9.488011540957423, - -9.494892476785843, - -9.501768635845398, - -9.508640021452136, - -9.515506636919804, - -9.522368485559848, - -9.529225570681415, - -9.536077895591358, - -9.54292546359423, - -9.549768277992293, - -9.556606342085516, - -9.563439659171575, - -9.570268232545859, - -9.577092065501471, - -9.58391116132922, - -9.590725523317642, - -9.597535154752983, - -9.604340058919204, - -9.611140239097999, - -9.61793569856877, - -9.62472644060865, - -9.631512468492499, - -9.638293785492895, - -9.64507039488015, - -9.651842299922308, - -9.658609503885138, - -9.665372010032147, - -9.672129821624573, - -9.678882941921394, - -9.685631374179323, - -9.69237512165281, - -9.69911418759405, - -9.705848575252977, - -9.712578287877271, - -9.719303328712357, - -9.726023701001408, - -9.732739407985342, - -9.739450452902833, - -9.7461568389903, - -9.752858569481921, - -9.759555647609623, - -9.766248076603095, - -9.772935859689783, - -9.779619000094886, - -9.786297501041377, - -9.792971365749978, - -9.799640597439183, - -9.806305199325248, - -9.812965174622201, - -9.819620526541833, - -9.826271258293708, - -9.832917373085165, - -9.83955887412131, - -9.846195764605032, - -9.852828047736988, - -9.859455726715618, - -9.86607880473714, - -9.872697284995558, - -9.879311170682652, - -9.885920464987986, - -9.892525171098917, - -9.899125292200582, - -9.905720831475913, - -9.912311792105628, - -9.918898177268236, - -9.925479990140044, - -9.932057233895152, - -9.938629911705455, - -9.945198026740648, - -9.951761582168224, - -9.95832058115348, - -9.964875026859511, - -9.971424922447222, - -9.977970271075316, - -9.984511075900311, - -9.99104734007653, - -9.997579066756106, - -10.004106259088987, - -10.010628920222928, - -10.017147053303505, - -10.023660661474107, - -10.030169747875942, - -10.036674315648035, - -10.043174367927238, - -10.04966990784822, - -10.056160938543474, - -10.062647463143321, - -10.069129484775907, - -10.075607006567207, - -10.082080031641025, - -10.088548563119001, - -10.0950126041206, - -10.101472157763128, - -10.107927227161726, - -10.11437781542937, - -10.120823925676875, - -10.127265561012901, - -10.133702724543943, - -10.140135419374344, - -10.146563648606293, - -10.152987415339823, - -10.159406722672813, - -10.165821573700995, - -10.172231971517952, - -10.17863791921512, - -10.185039419881782, - -10.191436476605086, - -10.197829092470029, - -10.204217270559473, - -10.210601013954136, - -10.216980325732596, - -10.223355208971299, - -10.22972566674455, - -10.236091702124524, - -10.242453318181258, - -10.248810517982665, - -10.255163304594522, - -10.26151168108048, - -10.267855650502064, - -10.274195215918672, - -10.280530380387582, - -10.286861146963943, - -10.293187518700789, - -10.299509498649032, - -10.305827089857466, - -10.31214029537277, - -10.318449118239505, - -10.324753561500122, - -10.33105362819496, - -10.337349321362245, - -10.343640644038091, - -10.34992759925651, - -10.356210190049408, - -10.36248841944658, - -10.368762290475724, - -10.375031806162434, - -10.381296969530203, - -10.387557783600425, - -10.393814251392396, - -10.40006637592332, - -10.4063141602083, - -10.412557607260352, - -10.418796720090397, - -10.425031501707267, - -10.431261955117703, - -10.437488083326363, - -10.443709889335816, - -10.449927376146546, - -10.456140546756956, - -10.462349404163366, - -10.468553951360018, - -10.474754191339073, - -10.480950127090619, - -10.487141761602661, - -10.493329097861137, - -10.499512138849907, - -10.505690887550765, - -10.511865346943427, - -10.51803552000555, - -10.524201409712715, - -10.530363019038445, - -10.536520350954191, - -10.54267340842935, - -10.548822194431253, - -10.554966711925166, - -10.561106963874307, - -10.567242953239829, - -10.57337468298083, - -10.579502156054362, - -10.585625375415411, - -10.591744344016922, - -10.59785906480979, - -10.60396954074285, - -10.610075774762903, - -10.6161777698147, - -10.622275528840943, - -10.6283690547823, - -10.634458350577392, - -10.640543419162796, - -10.646624263473063, - -10.652700886440693, - -10.658773290996157, - -10.664841480067894, - -10.670905456582304, - -10.67696522346376, - -10.683020783634603, - -10.689072140015144, - -10.695119295523671, - -10.701162253076445, - -10.707201015587696, - -10.71323558596964, - -10.719265967132465, - -10.725292161984342, - -10.731314173431421, - -10.73733200437784, - -10.743345657725712, - -10.749355136375142, - -10.75536044322422, - -10.761361581169021, - -10.767358553103616, - -10.773351361920064, - -10.77934001050841, - -10.785324501756703, - -10.791304838550982, - -10.797281023775284, - -10.803253060311642, - -10.809220951040086, - -10.815184698838655, - -10.82114430658338, - -10.827099777148302, - -10.833051113405466, - -10.838998318224924, - -10.844941394474732, - -10.850880345020956, - -10.856815172727677, - -10.862745880456977, - -10.868672471068965, - -10.874594947421757, - -10.880513312371482, - -10.886427568772293, - -10.892337719476359, - -10.898243767333865, - -10.904145715193023, - -10.910043565900066, - -10.915937322299252, - -10.92182698723286, - -10.927712563541203, - -10.933594054062615, - -10.939471461633465, - -10.94534478908815, - -10.951214039259103, - -10.957079214976785, - -10.962940319069697, - -10.968797354364373, - -10.974650323685388, - -10.980499229855356, - -10.986344075694925, - -10.992184864022796, - -10.998021597655704, - -11.003854279408433, - -11.00968291209381, - -11.015507498522712, - -11.021328041504066, - -11.027144543844846, - -11.032957008350078, - -11.038765437822839, - -11.044569835064264, - -11.050370202873545, - -11.05616654404792, - -11.0619588613827, - -11.067747157671244, - -11.073531435704977, - -11.079311698273381, - -11.085087948164011, - -11.09086018816248, - -11.096628421052468, - -11.102392649615725, - -11.108152876632065, - -11.11390910487938, - -11.119661337133623, - -11.125409576168828, - -11.131153824757101, - -11.136894085668628, - -11.142630361671662, - -11.148362655532544, - -11.154090970015686, - -11.15981530788359, - -11.165535671896833, - -11.171252064814079, - -11.176964489392077, - -11.182672948385662, - -11.188377444547756, - -11.194077980629366, - -11.199774559379597, - -11.20546718354564, - -11.211155855872782, - -11.216840579104401, - -11.222521355981977, - -11.228198189245077, - -11.233871081631378, - -11.239540035876642, - -11.245205054714745, - -11.250866140877658, - -11.256523297095459, - -11.262176526096326, - -11.267825830606547, - -11.27347121335052, - -11.279112677050746, - -11.28475022442784, - -11.290383858200524, - -11.296013581085635, - -11.301639395798128, - -11.30726130505107, - -11.312879311555637, - -11.318493418021138, - -11.32410362715499, - -11.329709941662735, - -11.335312364248034, - -11.340910897612673, - -11.346505544456564, - -11.35209630747774, - -11.357683189372365, - -11.363266192834729, - -11.368845320557256, - -11.374420575230495, - -11.379991959543132, - -11.38555947618198, - -11.391123127831996, - -11.396682917176266, - -11.402238846896015, - -11.40779091967061, - -11.413339138177552, - -11.41888350509249, - -11.42442402308921, - -11.429960694839647, - -11.435493523013873, - -11.441022510280115, - -11.446547659304745, - -11.452068972752281, - -11.457586453285394, - -11.463100103564907, - -11.468609926249794, - -11.474115923997186, - -11.479618099462364, - -11.48511645529877, - -11.49061099415801, - -11.496101718689832, - -11.50158863154216, - -11.507071735361077, - -11.512551032790824, - -11.51802652647381, - -11.523498219050607, - -11.528966113159957, - -11.534430211438771, - -11.539890516522126, - -11.545347031043269, - -11.550799757633625, - -11.556248698922785, - -11.561693857538518, - -11.567135236106768, - -11.572572837251661, - -11.578006663595492, - -11.583436717758744, - -11.588863002360078, - -11.594285520016332, - -11.599704273342539, - -11.605119264951902, - -11.610530497455823, - -11.615937973463883, - -11.621341695583856, - -11.626741666421703, - -11.632137888581576, - -11.637530364665821, - -11.642919097274973, - -11.64830408900777, - -11.653685342461136, - -11.659062860230202, - -11.664436644908289, - -11.669806699086926, - -11.675173025355836, - -11.680535626302943, - -11.685894504514383, - -11.691249662574487, - -11.696601103065799, - -11.701948828569066, - -11.70729284166325, - -11.712633144925514, - -11.717969740931238, - -11.723302632254011, - -11.728631821465633, - -11.733957311136129, - -11.739279103833725, - -11.744597202124877, - -11.749911608574255, - -11.755222325744748, - -11.760529356197463, - -11.765832702491734, - -11.771132367185114, - -11.776428352833385, - -11.781720661990555, - -11.787009297208847, - -11.792294261038732, - -11.797575556028896, - -11.80285318472626, - -11.808127149675977, - -11.813397453421434, - -11.81866409850425, - -11.82392708746428, - -11.829186422839621, - -11.834442107166597, - -11.839694142979786, - -11.844942532811991, - -11.850187279194271, - -11.855428384655918, - -11.860665851724468, - -11.865899682925713, - -11.871129880783679, - -11.87635644782065, - -11.881579386557148, - -11.886798699511955, - -11.892014389202101, - -11.897226458142864, - -11.90243490884779, - -11.90763974382866, - -11.912840965595532, - -11.9180385766567, - -11.923232579518737, - -11.928422976686464, - -11.933609770662967, - -11.938792963949593, - -11.943972559045951, - -11.949148558449922, - -11.95432096465764, - -11.959489780163523, - -11.964655007460241, - -11.969816649038746, - -11.97497470738825, - -11.98012918499625, - -11.985280084348503, - -11.990427407929046, - -11.995571158220196, - -12.000711337702539, - -12.005847948854946, - -12.010980994154558, - -12.016110476076808, - -12.021236397095402, - -12.026358759682331, - -12.031477566307874, - -12.036592819440584, - -12.041704521547315, - -12.046812675093195, - -12.051917282541652, - -12.057018346354393, - -12.062115868991429, - -12.067209852911054, - -12.072300300569855, - -12.077387214422718, - -12.082470596922821, - -12.087550450521647, - -12.09262677766896, - -12.097699580812847, - -12.102768862399673, - -12.10783462487412, - -12.11289687067917, - -12.117955602256101, - -12.123010822044506, - -12.128062532482277, - -12.133110736005621, - -12.138155435049047, - -12.14319663204538, - -12.14823432942575, - -12.1532685296196, - -12.158299235054695, - -12.163326448157102, - -12.168350171351214, - -12.173370407059734, - -12.178387157703693, - -12.183400425702425, - -12.1884102134736, - -12.193416523433205, - -12.198419357995544, - -12.203418719573254, - -12.208414610577288, - -12.213407033416935, - -12.2183959904998, - -12.22338148423183, - -12.22836351701729, - -12.233342091258784, - -12.238317209357245, - -12.243288873711933, - -12.248257086720455, - -12.253221850778745, - -12.258183168281075, - -12.263141041620058, - -12.268095473186643, - -12.27304646537012, - -12.277994020558118, - -12.282938141136615, - -12.287878829489925, - -12.292816088000713, - -12.297749919049984, - -12.302680325017096, - -12.307607308279751, - -12.312530871214005, - -12.317451016194259, - -12.322367745593269, - -12.327281061782143, - -12.332190967130341, - -12.337097464005684, - -12.342000554774339, - -12.346900241800842, - -12.351796527448082, - -12.356689414077307, - -12.361578904048129, - -12.366464999718515, - -12.371347703444803, - -12.37622701758169, - -12.381102944482244, - -12.385975486497893, - -12.390844645978436, - -12.395710425272043, - -12.400572826725245, - -12.405431852682955, - -12.410287505488451, - -12.415139787483389, - -12.419988701007794, - -12.424834248400074, - -12.429676431997004, - -12.434515254133748, - -12.439350717143842, - -12.444182823359197, - -12.449011575110116, - -12.453836974725279, - -12.45865902453175, - -12.463477726854975, - -12.468293084018793, - -12.473105098345421, - -12.477913772155471, - -12.48271910776794, - -12.48752110750021, - -12.492319773668068, - -12.497115108585682, - -12.50190711456562, - -12.506695793918837, - -12.511481148954696, - -12.516263181980943, - -12.521041895303728, - -12.525817291227604, - -12.530589372055516, - -12.535358140088821, - -12.540123597627266, - -12.544885746969014, - -12.54964459041062, - -12.554400130247055, - -12.559152368771693, - -12.563901308276312, - -12.56864695105111, - -12.573389299384678, - -12.578128355564036, - -12.582864121874605, - -12.587596600600225, - -12.592325794023147, - -12.597051704424041, - -12.601774334081991, - -12.606493685274499, - -12.61120976027749, - -12.615922561365299, - -12.620632090810696, - -12.62533835088486, - -12.630041343857407, - -12.634741071996364, - -12.63943753756819, - -12.644130742837776, - -12.648820690068426, - -12.65350738152189, - -12.658190819458332, - -12.662871006136358, - -12.667547943813004, - -12.672221634743737, - -12.676892081182459, - -12.681559285381502, - -12.686223249591649, - -12.690883976062102, - -12.695541467040519, - -12.700195724772982, - -12.704846751504027, - -12.709494549476624, - -12.714139120932188, - -12.718780468110582, - -12.7234185932501, - -12.728053498587503, - -12.732685186357983, - -12.737313658795186, - -12.741938918131206, - -12.746560966596594, - -12.751179806420344, - -12.755795439829903, - -12.76040786905118, - -12.76501709630853, - -12.769623123824767, - -12.774225953821162, - -12.778825588517446, - -12.783422030131804, - -12.78801528088089, - -12.792605342979806, - -12.797192218642127, - -12.801775910079892, - -12.806356419503594, - -12.810933749122203, - -12.815507901143146, - -12.820078877772325, - -12.824646681214107, - -12.82921131367133, - -12.833772777345303, - -12.838331074435803, - -12.842886207141085, - -12.847438177657873, - -12.851986988181373, - -12.85653264090526, - -12.86107513802169, - -12.8656144817213, - -12.870150674193194, - -12.874683717624976, - -12.87921361420271, - -12.883740366110962, - -12.88826397553276, - -12.892784444649642, - -12.897301775641608, - -12.901815970687162, - -12.906327031963286, - -12.910834961645453, - -12.915339761907626, - -12.919841434922258, - -12.924339982860298, - -12.928835407891182, - -12.933327712182843, - -12.937816897901707, - -12.942302967212703, - -12.946785922279249, - -12.95126576526326, - -12.955742498325161, - -12.960216123623866, - -12.964686643316796, - -12.969154059559871, - -12.973618374507522, - -12.978079590312673, - -12.98253770912676, - -12.98699273309973, - -12.991444664380023, - -12.995893505114605, - -13.000339257448937, - -13.004781923527004, - -13.009221505491286, - -13.013658005482792, - -13.018091425641039, - -13.022521768104053, - -13.026949035008386, - -13.031373228489093, - -13.035794350679762, - -13.04021240371249, - -13.044627389717899, - -13.049039310825126, - -13.053448169161838, - -13.057853966854218, - -13.062256706026975, - -13.066656388803345, - -13.071053017305088, - -13.075446593652494, - -13.079837119964374, - -13.08422459835808, - -13.088609030949483, - -13.092990419852985, - -13.097368767181532, - -13.101744075046591, - -13.10611634555817, - -13.110485580824806, - -13.114851782953583, - -13.11921495405011, - -13.123575096218541, - -13.127932211561573, - -13.132286302180429, - -13.13663737017489, - -13.140985417643272, - -13.14533044668243, - -13.14967245938777, - -13.154011457853244, - -13.158347444171342, - -13.16268042043311, - -13.167010388728142, - -13.171337351144572, - -13.175661309769096, - -13.179982266686954, - -13.184300223981943, - -13.18861518373641, - -13.192927148031258, - -13.197236118945945, - -13.201542098558486, - -13.205845088945454, - -13.210145092181977, - -13.214442110341746, - -13.218736145497013, - -13.223027199718588, - -13.227315275075844, - -13.231600373636724, - -13.235882497467724, - -13.240161648633913, - -13.244437829198928, - -13.248711041224965, - -13.2529812867728, - -13.257248567901765, - -13.26151288666978, - -13.265774245133315, - -13.270032645347431, - -13.27428808936575, - -13.278540579240474, - -13.282790117022383, - -13.287036704760824, - -13.291280344503733, - -13.295521038297613, - -13.299758788187555, - -13.303993596217227, - -13.308225464428878, - -13.31245439486334, - -13.316680389560025, - -13.320903450556937, - -13.325123579890656, - -13.329340779596356, - -13.33355505170779, - -13.337766398257308, - -13.341974821275844, - -13.34618032279292, - -13.350382904836657, - -13.35458256943376, - -13.35877931860953, - -13.362973154387864, - -13.367164078791255, - -13.371352093840784, - -13.375537201556137, - -13.379719403955594, - -13.383898703056037, - -13.388075100872944, - -13.392248599420396, - -13.396419200711076, - -13.40058690675627, - -13.40475171956587, - -13.408913641148363, - -13.41307267351085, - -13.417228818659044, - -13.421382078597253, - -13.425532455328403, - -13.42967995085402, - -13.433824567174254, - -13.437966306287853, - -13.442105170192189, - -13.446241160883238, - -13.450374280355595, - -13.454504530602472, - -13.458631913615692, - -13.462756431385701, - -13.466878085901557, - -13.470996879150945, - -13.475112813120163, - -13.479225889794135, - -13.483336111156405, - -13.487443479189134, - -13.49154799587312, - -13.495649663187775, - -13.499748483111143, - -13.503844457619891, - -13.50793758868932, - -13.512027878293349, - -13.516115328404535, - -13.520199940994065, - -13.524281718031753, - -13.528360661486053, - -13.532436773324045, - -13.536510055511448, - -13.540580510012616, - -13.544648138790535, - -13.548712943806835, - -13.552774927021778, - -13.556834090394268, - -13.560890435881852, - -13.564943965440712, - -13.568994681025677, - -13.573042584590217, - -13.577087678086446, - -13.581129963465125, - -13.585169442675657, - -13.58920611766609, - -13.593239990383129, - -13.597271062772116, - -13.601299336777052, - -13.605324814340582, - -13.60934749740401, - -13.613367387907283, - -13.617384487789005, - -13.621398798986439, - -13.625410323435494, - -13.629419063070745, - -13.633425019825413, - -13.63742819563139, - -13.641428592419217, - -13.645426212118098, - -13.649421056655896, - -13.653413127959139, - -13.657402427953016, - -13.661388958561378, - -13.665372721706744, - -13.669353719310292, - -13.673331953291873, - -13.677307425570001, - -13.681280138061865, - -13.685250092683312, - -13.689217291348866, - -13.693181735971724, - -13.69714342846375, - -13.701102370735484, - -13.705058564696133, - -13.70901201225359, - -13.712962715314415, - -13.716910675783843, - -13.7208558955658, - -13.72479837656287, - -13.728738120676331, - -13.732675129806138, - -13.736609405850926, - -13.74054095070801, - -13.74446976627339, - -13.74839585444175, - -13.752319217106457, - -13.756239856159569, - -13.76015777349182, - -13.764072970992643, - -13.767985450550151, - -13.771895214051153, - -13.775802263381138, - -13.779706600424301, - -13.783608227063516, - -13.787507145180353, - -13.791403356655081, - -13.795296863366657, - -13.79918766719274, - -13.803075770009677, - -13.806961173692525, - -13.810843880115028, - -13.814723891149631, - -13.818601208667486, - -13.822475834538437, - -13.826347770631038, - -13.830217018812538, - -13.834083580948901, - -13.83794745890478, - -13.84180865454355, - -13.845667169727282, - -13.849523006316753, - -13.853376166171456, - -13.857226651149587, - -13.861074463108059, - -13.864919603902486, - -13.8687620753872, - -13.872601879415246, - -13.876439017838385, - -13.880273492507081, - -13.884105305270527, - -13.887934457976625, - -13.891760952471996, - -13.89558479060198, - -13.899405974210632, - -13.903224505140733, - -13.90704038523378, - -13.91085361632999, - -13.91466420026831, - -13.918472138886404, - -13.922277434020664, - -13.9260800875062, - -13.929880101176861, - -13.93367747686521, - -13.937472216402545, - -13.941264321618894, - -13.945053794343005, - -13.948840636402366, - -13.952624849623195, - -13.95640643583044, - -13.96018539684778, - -13.963961734497634, - -13.967735450601149, - -13.971506546978215, - -13.975275025447456, - -13.979040887826226, - -13.98280413593063, - -13.986564771575503, - -13.990322796574427, - -13.994078212739714, - -13.997831021882432, - -14.001581225812382, - -14.005328826338111, - -14.009073825266912, - -14.01281622440482, - -14.016556025556625, - -14.02029323052585, - -14.024027841114778, - -14.027759859124435, - -14.031489286354601, - -14.035216124603801, - -14.038940375669315, - -14.042662041347176, - -14.046381123432164, - -14.050097623717823, - -14.053811543996446, - -14.057522886059083, - -14.061231651695536, - -14.064937842694373, - -14.068641460842917, - -14.072342507927244, - -14.0760409857322, - -14.079736896041387, - -14.083430240637169, - -14.087121021300671, - -14.090809239811787, - -14.094494897949168, - -14.098177997490234, - -14.101858540211175, - -14.10553652788694, - -14.109211962291255, - -14.112884845196604, - -14.11655517837425, - -14.12022296359422, - -14.123888202625318, - -14.127550897235118, - -14.13121104918996, - -14.134868660254968, - -14.138523732194033, - -14.142176266769829, - -14.145826265743798, - -14.149473730876167, - -14.153118663925932, - -14.156761066650882, - -14.16040094080757, - -14.164038288151337, - -14.167673110436308, - -14.171305409415385, - -14.174935186840258, - -14.178562444461395, - -14.182187184028058, - -14.185809407288282, - -14.189429115988897, - -14.193046311875522, - -14.196660996692557, - -14.2002731721832, - -14.20388284008943, - -14.20749000215202, - -14.211094660110538, - -14.214696815703341, - -14.218296470667578, - -14.221893626739194, - -14.225488285652931, - -14.22908044914232, - -14.2326701189397, - -14.236257296776193, - -14.239841984381732, - -14.24342418348504, - -14.247003895813645, - -14.250581123093877, - -14.254155867050859, - -14.257728129408529, - -14.261297911889613, - -14.264865216215663, - -14.268430044107008, - -14.271992397282807, - -14.275552277461014, - -14.279109686358389, - -14.282664625690506, - -14.286217097171747, - -14.2897671025153, - -14.293314643433169, - -14.296859721636162, - -14.300402338833907, - -14.303942496734841, - -14.307480197046218, - -14.311015441474101, - -14.314548231723377, - -14.318078569497741, - -14.321606456499717, - -14.32513189443063, - -14.32865488499064, - -14.332175429878715, - -14.335693530792652, - -14.339209189429067, - -14.342722407483395, - -14.346233186649897, - -14.349741528621657, - -14.353247435090585, - -14.356750907747413, - -14.360251948281705, - -14.363750558381847, - -14.367246739735053, - -14.37074049402737, - -14.374231822943669, - -14.377720728167654, - -14.381207211381861, - -14.384691274267661, - -14.38817291850525, - -14.391652145773664, - -14.395128957750773, - -14.398603356113275, - -14.402075342536712, - -14.40554491869546, - -14.409012086262734, - -14.412476846910584, - -14.415939202309906, - -14.419399154130428, - -14.422856704040722, - -14.426311853708206, - -14.429764604799132, - -14.433214958978605, - -14.436662917910562, - -14.440108483257799, - -14.443551656681946, - -14.446992439843484, - -14.450430834401745, - -14.453866842014904, - -14.457300464339987, - -14.460731703032865, - -14.464160559748269, - -14.467587036139772, - -14.471011133859804, - -14.474432854559648, - -14.477852199889437, - -14.481269171498163, - -14.48468377103367, - -14.48809600014266, - -14.491505860470689, - -14.494913353662175, - -14.498318481360393, - -14.501721245207474, - -14.505121646844412, - -14.508519687911061, - -14.51191537004614, - -14.515308694887223, - -14.518699664070756, - -14.522088279232037, - -14.525474542005243, - -14.528858454023407, - -14.532240016918433, - -14.535619232321089, - -14.53899610186101, - -14.542370627166704, - -14.54574280986555, - -14.549112651583787, - -14.552480153946533, - -14.55584531857778, - -14.559208147100385, - -14.562568641136085, - -14.565926802305489, - -14.56928263222808, - -14.572636132522216, - -14.575987304805135, - -14.57933615069295, - -14.582682671800649, - -14.586026869742106, - -14.58936874613007, - -14.59270830257617, - -14.596045540690922, - -14.599380462083712, - -14.602713068362824, - -14.606043361135411, - -14.60937134200752, - -14.612697012584078, - -14.616020374468906, - -14.619341429264699, - -14.62266017857305, - -14.625976623994434, - -14.629290767128216, - -14.632602609572656, - -14.635912152924895, - -14.639219398780975, - -14.642524348735824, - -14.645827004383264, - -14.649127367316012, - -14.652425439125679, - -14.655721221402768, - -14.659014715736681, - -14.662305923715715, - -14.665594846927068, - -14.668881486956833, - -14.672165845389998, - -14.67544792381046, - -14.678727723801009, - -14.682005246943337, - -14.685280494818047, - -14.68855346900463, - -14.69182417108149, - -14.695092602625936, - -14.698358765214177, - -14.701622660421329, - -14.704884289821415, - -14.70814365498737, - -14.71140075749103, - -14.714655598903143, - -14.717908180793367, - -14.72115850473027, - -14.724406572281332, - -14.72765238501294, - -14.7308959444904, - -14.734137252277929, - -14.737376309938657, - -14.740613119034627, - -14.743847681126805, - -14.747079997775064, - -14.750310070538202, - -14.753537900973928, - -14.756763490638878, - -14.759986841088601, - -14.763207953877565, - -14.766426830559165, - -14.769643472685713, - -14.772857881808447, - -14.77607005947752, - -14.77928000724202, - -14.782487726649952, - -14.78569321924825, - -14.788896486582772, - -14.792097530198301, - -14.795296351638555, - -14.798492952446173, - -14.801687334162725, - -14.804879498328713, - -14.808069446483568, - -14.811257180165653, - -14.81444270091226, - -14.817626010259618, - -14.820807109742887, - -14.823986000896163, - -14.827162685252475, - -14.83033716434379, - -14.83350943970101, - -14.836679512853973, - -14.839847385331462, - -14.843013058661187, - -14.846176534369809, - -14.849337813982917, - -14.852496899025056, - -14.855653791019698, - -14.858808491489269, - -14.861961001955132, - -14.865111323937592, - -14.868259458955905, - -14.871405408528267, - -14.874549174171822, - -14.877690757402661, - -14.88083015973582, - -14.88396738268529, - -14.887102427764004, - -14.890235296483851, - -14.89336599035566, - -14.896494510889223, - -14.899620859593275, - -14.902745037975512, - -14.905867047542573, - -14.908986889800062, - -14.912104566252529, - -14.915220078403486, - -14.918333427755396, - -14.921444615809683, - -14.924553644066725, - -14.927660514025863, - -14.930765227185395, - -14.933867785042574, - -14.936968189093625, - -14.940066440833721, - -14.943162541757008, - -14.94625649335659, - -14.949348297124532, - -14.952437954551867, - -14.95552546712859, - -14.958610836343668, - -14.961694063685027, - -14.964775150639566, - -14.967854098693145, - -14.970930909330598, - -14.974005584035725, - -14.9770781242913, - -14.980148531579065, - -14.983216807379728, - -14.986282953172983, - -14.98934697043748, - -14.992408860650858, - -14.995468625289721, - -14.998526265829646, - -15.001581783745193, - -15.004635180509895, - -15.007686457596263, - -15.010735616475781, - -15.01378265861892, - -15.016827585495124, - -15.019870398572815, - -15.022911099319403, - -15.025949689201273, - -15.0289861696838, - -15.032020542231326, - -15.035052808307196, - -15.038082969373724, - -15.041111026892219, - -15.04413698232297, - -15.047160837125249, - -15.050182592757325, - -15.053202250676444, - -15.056219812338853, - -15.059235279199772, - -15.062248652713425, - -15.065259934333017, - -15.06826912551075, - -15.071276227697814, - -15.074281242344396, - -15.077284170899672, - -15.080285014811814, - -15.083283775527988, - -15.086280454494354, - -15.089275053156076, - -15.092267572957303, - -15.095258015341185, - -15.098246381749878, - -15.101232673624526, - -15.104216892405283, - -15.107199039531292, - -15.110179116440706, - -15.113157124570675, - -15.116133065357353, - -15.119106940235898, - -15.122078750640467, - -15.12504849800423, - -15.128016183759351, - -15.130981809337012, - -15.13394537616739, - -15.136906885679677, - -15.139866339302069, - -15.142823738461772, - -15.145779084585001, - -15.14873237909698, - -15.151683623421947, - -15.154632818983147, - -15.157579967202837, - -15.16052506950229, - -15.163468127301792, - -15.16640914202064, - -15.169348115077149, - -15.172285047888646, - -15.175219941871475, - -15.178152798441005, - -15.181083619011604, - -15.184012404996677, - -15.18693915780864, - -15.189863878858924, - -15.19278656955799, - -15.195707231315309, - -15.198625865539386, - -15.201542473637737, - -15.204457057016908, - -15.207369617082461, - -15.210280155238994, - -15.213188672890118, - -15.216095171438475, - -15.218999652285735, - -15.221902116832593, - -15.22480256647877, - -15.227701002623016, - -15.230597426663115, - -15.233491839995871, - -15.236384244017128, - -15.239274640121755, - -15.242163029703653, - -15.245049414155758, - -15.247933794870042, - -15.250816173237501, - -15.253696550648172, - -15.256574928491128, - -15.259451308154473, - -15.262325691025357, - -15.26519807848995, - -15.268068471933475, - -15.27093687274019, - -15.273803282293384, - -15.2766677019754, - -15.279530133167606, - -15.282390577250423, - -15.285249035603307, - -15.28810550960476, - -15.290960000632323, - -15.293812510062583, - -15.296663039271177, - -15.299511589632775, - -15.302358162521102, - -15.305202759308925, - -15.308045381368062, - -15.310886030069375, - -15.313724706782777, - -15.31656141287723, - -15.319396149720738, - -15.322228918680368, - -15.325059721122228, - -15.327888558411484, - -15.330715431912349, - -15.333540342988094, - -15.336363293001037, - -15.339184283312559, - -15.34200331528309, - -15.344820390272117, - -15.347635509638181, - -15.350448674738882, - -15.353259886930882, - -15.356069147569892, - -15.358876458010691, - -15.361681819607112, - -15.364485233712045, - -15.367286701677452, - -15.370086224854344, - -15.372883804592803, - -15.375679442241967, - -15.378473139150048, - -15.381264896664305, - -15.384054716131077, - -15.386842598895766, - -15.389628546302834, - -15.392412559695813, - -15.395194640417301, - -15.397974789808968, - -15.400753009211545, - -15.403529299964841, - -15.406303663407732, - -15.40907610087816, - -15.411846613713141, - -15.414615203248767, - -15.417381870820195, - -15.420146617761661, - -15.422909445406475, - -15.425670355087014, - -15.42842934813474, - -15.431186425880185, - -15.433941589652955, - -15.43669484078174, - -15.439446180594302, - -15.442195610417484, - -15.444943131577206, - -15.447688745398473, - -15.450432453205362, - -15.453174256321033, - -15.455914156067731, - -15.458652153766781, - -15.461388250738592, - -15.464122448302655, - -15.466854747777544, - -15.46958515048092, - -15.47231365772953, - -15.4750402708392, - -15.47776499112485, - -15.480487819900487, - -15.483208758479202, - -15.485927808173177, - -15.488644970293677, - -15.49136024615107, - -15.4940736370548, - -15.49678514431341, - -15.499494769234534, - -15.502202513124896, - -15.504908377290317, - -15.507612363035703, - -15.510314471665062, - -15.513014704481495, - -15.515713062787198, - -15.518409547883461, - -15.52110416107067, - -15.523796903648316, - -15.52648777691498, - -15.529176782168346, - -15.531863920705192, - -15.5345491938214, - -15.53723260281195, - -15.539914148970928, - -15.542593833591514, - -15.545271657965994, - -15.547947623385761, - -15.550621731141305, - -15.553293982522227, - -15.55596437881722, - -15.5586329213141, - -15.561299611299773, - -15.563964450060263, - -15.566627438880696, - -15.569288579045303, - -15.57194787183743, - -15.57460531853953, - -15.577260920433165, - -15.579914678799003, - -15.582566594916834, - -15.585216670065549, - -15.587864905523153, - -15.590511302566771, - -15.593155862472631, - -15.595798586516082, - -15.598439475971587, - -15.601078532112721, - -15.60371575621218, - -15.606351149541773, - -15.608984713372426, - -15.61161644897418, - -15.614246357616203, - -15.616874440566772, - -15.61950069909329, - -15.62212513446228, - -15.624747747939383, - -15.627368540789359, - -15.6299875142761, - -15.632604669662612, - -15.635220008211025, - -15.637833531182592, - -15.640445239837696, - -15.64305513543584, - -15.645663219235656, - -15.648269492494897, - -15.65087395647045, - -15.653476612418324, - -15.656077461593659, - -15.658676505250723, - -15.66127374464291, - -15.663869181022747, - -15.666462815641895, - -15.66905464975114, - -15.671644684600402, - -15.674232921438735, - -15.676819361514323, - -15.679404006074483, - -15.68198685636567, - -15.684567913633472, - -15.687147179122608, - -15.689724654076944, - -15.692300339739468, - -15.694874237352318, - -15.69744634815676, - -15.700016673393202, - -15.702585214301196, - -15.705151972119426, - -15.707716948085718, - -15.710280143437041, - -15.712841559409505, - -15.715401197238359, - -15.717959058157994, - -15.720515143401954, - -15.72306945420291, - -15.725621991792693, - -15.728172757402268, - -15.730721752261752, - -15.733268977600405, - -15.735814434646636, - -15.738358124627997, - -15.740900048771188, - -15.743440208302065, - -15.745978604445625, - -15.74851523842602, - -15.751050111466547, - -15.753583224789658, - -15.756114579616952, - -15.758644177169188, - -15.761172018666269, - -15.763698105327254, - -15.766222438370356, - -15.768745019012943, - -15.771265848471538, - -15.773784927961817, - -15.776302258698617, - -15.778817841895926, - -15.781331678766891, - -15.783843770523822, - -15.786354118378178, - -15.788862723540584, - -15.791369587220824, - -15.793874710627842, - -15.796378094969736, - -15.798879741453776, - -15.801379651286387, - -15.803877825673158, - -15.806374265818842, - -15.808868972927353, - -15.811361948201775, - -15.813853192844347, - -15.816342708056485, - -15.818830495038766, - -15.82131655499093, - -15.823800889111888, - -15.826283498599718, - -15.828764384651667, - -15.831243548464146, - -15.833720991232745, - -15.836196714152216, - -15.838670718416482, - -15.841143005218642, - -15.843613575750961, - -15.846082431204884, - -15.84854957277102, - -15.851015001639158, - -15.853478718998259, - -15.855940726036456, - -15.858401023941063, - -15.860859613898565, - -15.863316497094623, - -15.865771674714077, - -15.868225147940946, - -15.87067691795842, - -15.873126985948877, - -15.87557535309387, - -15.878022020574132, - -15.880466989569573, - -15.882910261259292, - -15.88535183682156, - -15.887791717433835, - -15.89022990427276, - -15.89266639851415, - -15.895101201333022, - -15.89753431390356, - -15.899965737399144, - -15.902395472992335, - -15.90482352185488, - -15.907249885157713, - -15.909674564070956, - -15.912097559763918, - -15.914518873405092, - -15.91693850616217, - -15.919356459202023, - -15.92177273369072, - -15.924187330793515, - -15.926600251674854, - -15.92901149749838, - -15.931421069426916, - -15.93382896862249, - -15.936235196246322, - -15.93863975345882, - -15.941042641419585, - -15.943443861287426, - -15.945843414220331, - -15.948241301375493, - -15.950637523909304, - -15.953032082977348, - -15.955424979734408, - -15.957816215334466, - -15.960205790930704, - -15.9625937076755, - -15.964979966720435, - -15.967364569216292, - -15.969747516313051, - -15.972128809159896, - -15.974508448905212, - -15.97688643669659, - -15.979262773680821, - -15.981637461003901, - -15.98401049981103, - -15.98638189124661, - -15.988751636454257, - -15.991119736576785, - -15.99348619275622, - -15.995851006133789, - -15.998214177849936, - -16.000575709044305, - -16.00293560085575, - -16.00529385442234, - -16.007650470881348, - -16.01000545136926, - -16.01235879702177, - -16.01471050897379, - -16.01706058835944, - -16.019409036312048, - -16.021755853964166, - -16.024101042447555, - -16.026444602893186, - -16.028786536431248, - -16.031126844191146, - -16.0334655273015, - -16.035802586890153, - -16.03813802408415, - -16.040471840009772, - -16.042804035792507, - -16.045134612557057, - -16.047463571427354, - -16.049790913526547, - -16.052116639977005, - -16.054440751900312, - -16.056763250417283, - -16.059084136647947, - -16.06140341171156, - -16.0637210767266, - -16.066037132810767, - -16.068351581080986, - -16.070664422653408, - -16.07297565864341, - -16.075285290165585, - -16.077593318333772, - -16.079899744261013, - -16.082204569059595, - -16.084507793841027, - -16.086809419716044, - -16.089109447794613, - -16.091407879185933, - -16.093704714998424, - -16.095999956339746, - -16.098293604316787, - -16.100585660035666, - -16.10287612460173, - -16.105164999119562, - -16.107452284692982, - -16.10973798242504, - -16.112022093418027, - -16.114304618773453, - -16.116585559592078, - -16.11886491697389, - -16.12114269201812, - -16.123418885823227, - -16.125693499486918, - -16.127966534106125, - -16.130237990777033, - -16.132507870595056, - -16.134776174654853, - -16.13704290405032, - -16.13930805987459, - -16.14157164322005, - -16.14383365517831, - -16.14609409684024, - -16.14835296929594, - -16.15061027363476, - -16.152866010945296, - -16.15512018231538, - -16.157372788832095, - -16.159623831581765, - -16.161873311649963, - -16.164121230121506, - -16.166367588080465, - -16.168612386610153, - -16.170855626793127, - -16.173097309711196, - -16.17533743644542, - -16.177576008076112, - -16.179813025682822, - -16.182048490344364, - -16.184282403138795, - -16.18651476514343, - -16.188745577434826, - -16.190974841088806, - -16.193202557180435, - -16.195428726784037, - -16.197653350973194, - -16.19987643082073, - -16.202097967398736, - -16.204317961778553, - -16.206536415030786, - -16.20875332822528, - -16.210968702431163, - -16.213182538716797, - -16.21539483814981, - -16.217605601797096, - -16.219814830724793, - -16.222022525998323, - -16.22422868868234, - -16.226433319840787, - -16.228636420536837, - -16.230837991832956, - -16.233038034790855, - -16.235236550471505, - -16.237433539935157, - -16.23962900424131, - -16.241822944448735, - -16.244015361615464, - -16.246206256798803, - -16.248395631055313, - -16.250583485440828, - -16.252769821010446, - -16.254954638818536, - -16.25713793991873, - -16.259319725363937, - -16.26149999620633, - -16.263678753497345, - -16.265855998287698, - -16.26803173162737, - -16.270205954565622, - -16.272378668150974, - -16.274549873431223, - -16.276719571453445, - -16.278887763263977, - -16.28105444990844, - -16.28321963243172, - -16.285383311877993, - -16.287545489290697, - -16.28970616571254, - -16.291865342185528, - -16.29402301975092, - -16.29617919944927, - -16.298333882320396, - -16.300487069403406, - -16.302638761736677, - -16.30478896035787, - -16.30693766630393, - -16.309084880611067, - -16.311230604314794, - -16.31337483844988, - -16.3155175840504, - -16.317658842149697, - -16.319798613780396, - -16.32193689997441, - -16.324073701762934, - -16.326209020176446, - -16.328342856244713, - -16.33047521099678, - -16.332606085460988, - -16.334735480664953, - -16.336863397635582, - -16.33898983739907, - -16.3411148009809, - -16.343238289405846, - -16.345360303697962, - -16.347480844880597, - -16.349599913976387, - -16.351717512007266, - -16.353833639994445, - -16.355948298958435, - -16.358061489919038, - -16.360173213895347, - -16.36228347190575, - -16.364392264967922, - -16.366499594098833, - -16.368605460314757, - -16.370709864631245, - -16.37281280806316, - -16.37491429162465, - -16.377014316329156, - -16.379112883189432, - -16.38120999321751, - -16.383305647424734, - -16.385399846821734, - -16.387492592418454, - -16.389583885224116, - -16.39167372624726, - -16.39376211649571, - -16.39584905697661, - -16.39793454869638, - -16.400018592660768, - -16.402101189874802, - -16.404182341342825, - -16.40626204806848, - -16.408340311054708, - -16.41041713130376, - -16.412492509817188, - -16.41456644759585, - -16.41663894563991, - -16.41871000494883, - -16.4207796265214, - -16.422847811355687, - -16.424914560449086, - -16.426979874798292, - -16.429043755399306, - -16.431106203247445, - -16.43316721933733, - -16.435226804662893, - -16.437284960217376, - -16.439341686993327, - -16.44139698598261, - -16.443450858176405, - -16.445503304565193, - -16.44755432613877, - -16.449603923886254, - -16.451652098796067, - -16.45369885185595, - -16.455744184052953, - -16.45778809637344, - -16.459830589803104, - -16.461871665326935, - -16.463911323929253, - -16.465949566593686, - -16.467986394303185, - -16.470021808040016, - -16.472055808785765, - -16.474088397521335, - -16.476119575226946, - -16.478149342882144, - -16.480177701465784, - -16.482204651956057, - -16.484230195330458, - -16.486254332565814, - -16.48827706463827, - -16.490298392523304, - -16.492318317195696, - -16.494336839629565, - -16.496353960798356, - -16.498369681674824, - -16.500384003231055, - -16.502396926438472, - -16.504408452267803, - -16.50641858168912, - -16.508427315671806, - -16.51043465518459, - -16.512440601195507, - -16.51444515467194, - -16.516448316580586, - -16.518450087887476, - -16.52045046955797, - -16.522449462556764, - -16.524447067847873, - -16.52644328639465, - -16.528438119159773, - -16.530431567105264, - -16.532423631192465, - -16.534414312382058, - -16.536403611634054, - -16.53839152990779, - -16.54037806816196, - -16.54236322735457, - -16.544347008442973, - -16.54632941238385, - -16.548310440133225, - -16.550290092646453, - -16.552268370878227, - -16.554245275782577, - -16.556220808312876, - -16.558194969421827, - -16.56016776006147, - -16.562139181183202, - -16.56410923373774, - -16.566077918675145, - -16.56804523694483, - -16.570011189495528, - -16.571975777275338, - -16.573939001231683, - -16.575900862311332, - -16.5778613614604, - -16.579820499624343, - -16.58177827774797, - -16.583734696775412, - -16.58568975765017, - -16.587643461315064, - -16.58959580871229, - -16.591546800783362, - -16.593496438469163, - -16.5954447227099, - -16.597391654445143, - -16.59933723461381, - -16.60128146415416, - -16.6032243440038, - -16.605165875099697, - -16.607106058378157, - -16.60904489477484, - -16.610982385224755, - -16.612918530662263, - -16.614853332021074, - -16.616786790234258, - -16.618718906234225, - -16.62064968095275, - -16.622579115320946, - -16.624507210269297, - -16.62643396672763, - -16.628359385625128, - -16.630283467890337, - -16.632206214451138, - -16.634127626234797, - -16.63604770416791, - -16.637966449176442, - -16.63988386218572, - -16.641799944120418, - -16.64371469590457, - -16.645628118461577, - -16.647540212714187, - -16.649450979584515, - -16.651360419994035, - -16.65326853486358, - -16.655175325113348, - -16.657080791662892, - -16.65898493543113, - -16.660887757336337, - -16.662789258296158, - -16.664689439227597, - -16.666588301047025, - -16.66848584467017, - -16.67038207101213, - -16.672276980987366, - -16.674170575509706, - -16.67606285549234, - -16.677953821847826, - -16.679843475488088, - -16.68173181732442, - -16.683618848267475, - -16.685504569227284, - -16.68738898111324, - -16.68927208483411, - -16.69115388129802, - -16.69303437141248, - -16.694913556084355, - -16.696791436219893, - -16.698668012724706, - -16.700543286503777, - -16.702417258461463, - -16.704289929501495, - -16.706161300526976, - -16.708031372440374, - -16.709900146143543, - -16.711767622537703, - -16.71363380252345, - -16.71549868700075, - -16.717362276868958, - -16.719224573026793, - -16.72108557637235, - -16.722945287803107, - -16.724803708215916, - -16.726660838507, - -16.728516679571978, - -16.73037123230582, - -16.732224497602903, - -16.73407647635696, - -16.73592716946112, - -16.737776577807885, - -16.739624702289134, - -16.741471543796134, - -16.743317103219532, - -16.745161381449346, - -16.747004379374996, - -16.748846097885266, - -16.750686537868333, - -16.752525700211756, - -16.754363585802473, - -16.756200195526812, - -16.758035530270487, - -16.75986959091859, - -16.761702378355604, - -16.763533893465397, - -16.76536413713122, - -16.767193110235713, - -16.76902081366091, - -16.77084724828822, - -16.77267241499845, - -16.774496314671797, - -16.776318948187832, - -16.778140316425535, - -16.77996042026326, - -16.781779260578766, - -16.78359683824918, - -16.78541315415105, - -16.78722820916029, - -16.78904200415222, - -16.790854540001547, - -16.79266581758237, - -16.79447583776819, - -16.79628460143189, - -16.79809210944575, - -16.79989836268145, - -16.80170336201006, - -16.803507108302046, - -16.805309602427272, - -16.807110845254993, - -16.808910837653865, - -16.810709580491945, - -16.812507074636677, - -16.81430332095491, - -16.81609832031289, - -16.817892073576257, - -16.81968458161006, - -16.821475845278737, - -16.823265865446132, - -16.825054642975484, - -16.826842178729446, - -16.828628473570053, - -16.830413528358758, - -16.832197343956405, - -16.833979921223246, - -16.835761261018934, - -16.83754136420253, - -16.839320231632485, - -16.841097864166674, - -16.84287426266236, - -16.844649427976215, - -16.84642336096432, - -16.84819606248216, - -16.849967533384625, - -16.851737774526015, - -16.85350678676003, - -16.855274570939788, - -16.8570411279178, - -16.858806458546002, - -16.860570563675726, - -16.862333444157713, - -16.864095100842125, - -16.865855534578525, - -16.867614746215885, - -16.86937273660259, - -16.87112950658644, - -16.872885057014635, - -16.8746393887338, - -16.876392502589972, - -16.87814439942859, - -16.87989508009451, - -16.881644545432007, - -16.883392796284763, - -16.88513983349588, - -16.88688565790787, - -16.888630270362665, - -16.89037367170161, - -16.89211586276546, - -16.8938568443944, - -16.895596617428016, - -16.897335182705323, - -16.899072541064747, - -16.90080869334414, - -16.90254364038076, - -16.904277383011298, - -16.90600992207185, - -16.90774125839794, - -16.909471392824514, - -16.91120032618593, - -16.912928059315977, - -16.914654593047853, - -16.916379928214187, - -16.91810406564703, - -16.91982700617785, - -16.92154875063754, - -16.923269299856422, - -16.924988654664226, - -16.926706815890125, - -16.928423784362703, - -16.93013956090997, - -16.931854146359374, - -16.933567541537776, - -16.935279747271466, - -16.936990764386156, - -16.93870059370699, - -16.940409236058546, - -16.942116692264815, - -16.943822963149227, - -16.94552804953463, - -16.947231952243314, - -16.94893467209699, - -16.950636209916798, - -16.952336566523314, - -16.954035742736533, - -16.955733739375898, - -16.957430557260263, - -16.95912619720793, - -16.960820660036624, - -16.962513946563504, - -16.964206057605168, - -16.965896993977633, - -16.967586756496363, - -16.969275345976257, - -16.970962763231636, - -16.972649009076264, - -16.974334084323335, - -16.976017989785486, - -16.977700726274783, - -16.979382294602736, - -16.981062695580277, - -16.982741930017795, - -16.984419998725098, - -16.986096902511445, - -16.987772642185526, - -16.989447218555473, - -16.99112063242885, - -16.992792884612673, - -16.99446397591339, - -16.996133907136887, - -16.997802679088494, - -16.999470292572983, - -17.001136748394565, - -17.002802047356894, - -17.004466190263063, - -17.006129177915614, - -17.007791011116527, - -17.009451690667223, - -17.011111217368576, - -17.01276959202089, - -17.014426815423928, - -17.01608288837689, - -17.01773781167842, - -17.01939158612661, - -17.021044212518998, - -17.02269569165257, - -17.02434602432376, - -17.025995211328436, - -17.027643253461928, - -17.029290151519014, - -17.030935906293912, - -17.032580518580293, - -17.034223989171277, - -17.03586631885943, - -17.037507508436775, - -17.039147558694776, - -17.040786470424358, - -17.04242424441589, - -17.04406088145919, - -17.04569638234353, - -17.04733074785764, - -17.048963978789697, - -17.050596075927327, - -17.052227040057623, - -17.053856871967113, - -17.055485572441796, - -17.057113142267113, - -17.058739582227965, - -17.060364893108712, - -17.061989075693162, - -17.063612130764582, - -17.0652340591057, - -17.066854861498687, - -17.068474538725184, - -17.07009309156629, - -17.071710520802547, - -17.073326827213975, - -17.07494201158004, - -17.07655607467967, - -17.078169017291245, - -17.07978084019262, - -17.0813915441611, - -17.08300112997345, - -17.0846095984059, - -17.08621695023414, - -17.08782318623331, - -17.08942830717804, - -17.09103231384239, - -17.092635206999905, - -17.09423698742358, - -17.09583765588588, - -17.097437213158738, - -17.099035660013538, - -17.10063299722114, - -17.10222922555186, - -17.10382434577549, - -17.105418358661275, - -17.107011264977942, - -17.108603065493668, - -17.110193760976106, - -17.111783352192372, - -17.113371839909053, - -17.114959224892203, - -17.116545507907343, - -17.118130689719464, - -17.119714771093022, - -17.121297752791946, - -17.122879635579636, - -17.124460420218952, - -17.126040107472242, - -17.127618698101315, - -17.129196192867443, - -17.130772592531383, - -17.13234789785336, - -17.133922109593065, - -17.135495228509672, - -17.137067255361817, - -17.13863819090762, - -17.140208035904667, - -17.14177679111002, - -17.143344457280214, - -17.14491103517127, - -17.146476525538663, - -17.148040929137366, - -17.14960424672181, - -17.151166479045916, - -17.15272762686307, - -17.15428769092614, - -17.155846671987476, - -17.157404570798903, - -17.158961388111717, - -17.1605171246767, - -17.162071781244112, - -17.16362535856369, - -17.16517785738465, - -17.16672927845569, - -17.168279622524988, - -17.169828890340202, - -17.171377082648473, - -17.172924200196423, - -17.17447024373015, - -17.17601521399524, - -17.17755911173676, - -17.179101937699258, - -17.180643692626766, - -17.182184377262807, - -17.183723992350373, - -17.185262538631953, - -17.186800016849514, - -17.188336427744506, - -17.189871772057874, - -17.191406050530038, - -17.19293926390091, - -17.194471412909888, - -17.196002498295858, - -17.197532520797182, - -17.19906148115173, - -17.200589380096837, - -17.20211621836934, - -17.203641996705567, - -17.205166715841326, - -17.206690376511915, - -17.208212979452128, - -17.209734525396243, - -17.211255015078027, - -17.212774449230746, - -17.21429282858715, - -17.215810153879485, - -17.21732642583948, - -17.218841645198363, - -17.220355812686858, - -17.22186892903518, - -17.223380994973017, - -17.22489201122958, - -17.226401978533566, - -17.227910897613153, - -17.229418769196027, - -17.230925594009356, - -17.232431372779818, - -17.23393610623358, - -17.235439795096298, - -17.236942440093138, - -17.238444041948746, - -17.239944601387283, - -17.241444119132396, - -17.242942595907234, - -17.244440032434436, - -17.24593642943615, - -17.247431787634017, - -17.248926107749178, - -17.250419390502273, - -17.251911636613443, - -17.253402846802327, - -17.25489302178807, - -17.25638216228931, - -17.25787026902419, - -17.259357342710352, - -17.26084338406495, - -17.26232839380462, - -17.26381237264552, - -17.265295321303302, - -17.266777240493123, - -17.268258130929645, - -17.269737993327027, - -17.27121682839894, - -17.272694636858557, - -17.274171419418558, - -17.27564717679112, - -17.27712190968794, - -17.278595618820205, - -17.28006830489862, - -17.28153996863339, - -17.28301061073423, - -17.28448023191036, - -17.285948832870517, - -17.287416414322927, - -17.288882976975344, - -17.290348521535023, - -17.291813048708722, - -17.293276559202713, - -17.294739053722783, - -17.296200532974225, - -17.29766099766184, - -17.29912044848994, - -17.300578886162352, - -17.302036311382412, - -17.30349272485297, - -17.304948127276376, - -17.306402519354513, - -17.307855901788766, - -17.309308275280028, - -17.31075964052871, - -17.312209998234742, - -17.31365934909756, - -17.31510769381612, - -17.316555033088893, - -17.318001367613856, - -17.319446698088512, - -17.320891025209878, - -17.32233434967448, - -17.323776672178376, - -17.32521799341712, - -17.326658314085797, - -17.328097634879008, - -17.32953595649087, - -17.330973279615012, - -17.332409604944598, - -17.33384493317229, - -17.335279264990284, - -17.336712601090294, - -17.338144942163545, - -17.33957628890079, - -17.341006641992305, - -17.342436002127876, - -17.343864369996815, - -17.345291746287966, - -17.346718131689677, - -17.34814352688983, - -17.34956793257583, - -17.350991349434594, - -17.352413778152574, - -17.353835219415735, - -17.355255673909582, - -17.356675142319123, - -17.35809362532891, - -17.359511123622998, - -17.360927637884995, - -17.36234316879801, - -17.363757717044688, - -17.365171283307202, - -17.366583868267245, - -17.367995472606047, - -17.369406097004354, - -17.370815742142444, - -17.372224408700127, - -17.37363209735673, - -17.375038808791118, - -17.376444543681682, - -17.37784930270634, - -17.379253086542548, - -17.38065589586728, - -17.382057731357047, - -17.383458593687887, - -17.38485848353537, - -17.3862574015746, - -17.387655348480205, - -17.389052324926354, - -17.39044833158674, - -17.39184336913459, - -17.393237438242675, - -17.39463053958328, - -17.396022673828227, - -17.397413841648895, - -17.39880404371616, - -17.400193280700464, - -17.401581553271765, - -17.402968862099566, - -17.404355207852895, - -17.405740591200324, - -17.407125012809963, - -17.40850847334945, - -17.40989097348596, - -17.411272513886214, - -17.41265309521646, - -17.414032718142487, - -17.415411383329626, - -17.41678909144274, - -17.418165843146234, - -17.419541639104054, - -17.420916479979674, - -17.422290366436123, - -17.423663299135956, - -17.425035278741277, - -17.42640630591373, - -17.427776381314494, - -17.429145505604293, - -17.430513679443386, - -17.43188090349159, - -17.433247178408244, - -17.434612504852243, - -17.43597688348202, - -17.437340314955545, - -17.438702799930343, - -17.440064339063476, - -17.44142493301155, - -17.44278458243071, - -17.44414328797666, - -17.44550105030464, - -17.446857870069426, - -17.448213747925355, - -17.4495686845263, - -17.45092268052569, - -17.452275736576485, - -17.45362785333121, - -17.454979031441916, - -17.45632927156022, - -17.457678574337283, - -17.4590269404238, - -17.460374370470035, - -17.461720865125788, - -17.463066425040406, - -17.46441105086279, - -17.465754743241394, - -17.467097502824213, - -17.4684393302588, - -17.469780226192256, - -17.471120191271233, - -17.47245922614193, - -17.4737973314501, - -17.47513450784105, - -17.476470755959642, - -17.477806076450282, - -17.47914046995693, - -17.480473937123104, - -17.481806478591874, - -17.48313809500586, - -17.48446878700724, - -17.485798555237743, - -17.48712740033865, - -17.488455322950806, - -17.489782323714607, - -17.491108403270005, - -17.492433562256494, - -17.493757801313148, - -17.49508112107858, - -17.496403522190967, - -17.49772500528804, - -17.499045571007088, - -17.500365219984957, - -17.50168395285806, - -17.503001770262347, - -17.504318672833346, - -17.50563466120614, - -17.506949736015365, - -17.508263897895223, - -17.50957714747947, - -17.510889485401425, - -17.512200912293967, - -17.513511428789535, - -17.51482103552013, - -17.51612973311731, - -17.517437522212212, - -17.518744403435505, - -17.520050377417448, - -17.521355444787847, - -17.52265960617607, - -17.52396286221106, - -17.525265213521315, - -17.526566660734897, - -17.52786720447943, - -17.52916684538211, - -17.53046558406969, - -17.531763421168495, - -17.533060357304404, - -17.53435639310287, - -17.535651529188915, - -17.536945766187117, - -17.53823910472163, - -17.53953154541617, - -17.54082308889402, - -17.54211373577803, - -17.543403486690618, - -17.54469234225377, - -17.545980303089046, - -17.54726736981756, - -17.54855354306001, - -17.54983882343666, - -17.551123211567333, - -17.552406708071434, - -17.55368931356793, - -17.554971028675364, - -17.556251854011848, - -17.55753179019506, - -17.558810837842255, - -17.560088997570258, - -17.561366269995467, - -17.56264265573385, - -17.56391815540095, - -17.56519276961187, - -17.566466498981306, - -17.56773934412352, - -17.569011305652346, - -17.570282384181183, - -17.571552580323015, - -17.572821894690403, - -17.574090327895476, - -17.575357880549937, - -17.576624553265066, - -17.577890346651728, - -17.579155261320345, - -17.580419297880933, - -17.58168245694308, - -17.582944739115945, - -17.584206145008263, - -17.585466675228353, - -17.586726330384117, - -17.587985111083018, - -17.589243017932112, - -17.59050005153803, - -17.591756212506976, - -17.59301150144474, - -17.59426591895669, - -17.59551946564777, - -17.596772142122507, - -17.59802394898501, - -17.599274886838966, - -17.600524956287643, - -17.60177415793389, - -17.60302249238014, - -17.604269960228407, - -17.605516562080286, - -17.60676229853695, - -17.608007170199166, - -17.609251177667275, - -17.6104943215412, - -17.611736602420457, - -17.612978020904137, - -17.614218577590915, - -17.615458273079053, - -17.616697107966402, - -17.617935082850398, - -17.619172198328048, - -17.62040845499596, - -17.621643853450323, - -17.622878394286914, - -17.62411207810109, - -17.625344905487797, - -17.626576877041575, - -17.627807993356544, - -17.629038255026412, - -17.63026766264448, - -17.631496216803633, - -17.632723918096342, - -17.633950767114673, - -17.63517676445028, - -17.636401910694396, - -17.637626206437854, - -17.63884965227108, - -17.640072248784083, - -17.641293996566457, - -17.642514896207402, - -17.643734948295698, - -17.644954153419715, - -17.64617251216742, - -17.647390025126377, - -17.648606692883728, - -17.64982251602622, - -17.65103749514018, - -17.652251630811545, - -17.653464923625826, - -17.654677374168145, - -17.655888983023203, - -17.657099750775313, - -17.65830967800836, - -17.65951876530584, - -17.66072701325084, - -17.66193442242604, - -17.663140993413716, - -17.664346726795742, - -17.665551623153586, - -17.666755683068317, - -17.667958907120592, - -17.669161295890667, - -17.670362849958405, - -17.671563569903256, - -17.672763456304267, - -17.673962509740093, - -17.675160730788978, - -17.67635812002877, - -17.67755467803691, - -17.678750405390442, - -17.679945302666013, - -17.681139370439865, - -17.682332609287837, - -17.683525019785378, - -17.684716602507528, - -17.68590735802893, - -17.687097286923837, - -17.688286389766088, - -17.689474667129133, - -17.690662119586023, - -17.69184874770941, - -17.693034552071556, - -17.69421953324431, - -17.69540369179914, - -17.696587028307103, - -17.697769543338868, - -17.69895123746471, - -17.700132111254504, - -17.701312165277727, - -17.70249140010347, - -17.703669816300415, - -17.704847414436863, - -17.70602419508071, - -17.707200158799463, - -17.708375306160235, - -17.709549637729747, - -17.71072315407432, - -17.711895855759884, - -17.71306774335199, - -17.71423881741577, - -17.715409078515986, - -17.716578527217, - -17.717747164082777, - -17.7189149896769, - -17.720082004562556, - -17.72124820930254, - -17.722413604459263, - -17.723578190594733, - -17.72474196827058, - -17.725904938048036, - -17.72706710048795, - -17.728228456150777, - -17.729389005596587, - -17.730548749385058, - -17.731707688075474, - -17.732865822226742, - -17.734023152397377, - -17.735179679145503, - -17.736335403028857, - -17.737490324604792, - -17.73864444443027, - -17.739797763061876, - -17.7409502810558, - -17.742101998967836, - -17.743252917353416, - -17.744403036767572, - -17.745552357764947, - -17.746700880899812, - -17.747848606726038, - -17.748995535797125, - -17.75014166866618, - -17.751287005885935, - -17.752431548008726, - -17.75357529558651, - -17.754718249170875, - -17.755860409312998, - -17.7570017765637, - -17.758142351473406, - -17.759282134592162, - -17.76042112646963, - -17.761559327655096, - -17.762696738697457, - -17.763833360145238, - -17.764969192546573, - -17.766104236449223, - -17.76723849240057, - -17.768371960947604, - -17.76950464263695, - -17.77063653801485, - -17.771767647627154, - -17.77289797201935, - -17.77402751173654, - -17.77515626732345, - -17.776284239324422, - -17.777411428283425, - -17.77853783474405, - -17.779663459249512, - -17.780788302342643, - -17.7819123645659, - -17.783035646461375, - -17.784158148570768, - -17.785279871435407, - -17.78640081559625, - -17.787520981593875, - -17.788640369968483, - -17.78975898125991, - -17.7908768160076, - -17.79199387475064, - -17.79311015802773, - -17.794225666377205, - -17.795340400337018, - -17.796454360444756, - -17.79756754723763, - -17.79867996125248, - -17.79979160302576, - -17.800902473093576, - -17.802012571991643, - -17.80312190025531, - -17.80423045841955, - -17.805338247018977, - -17.80644526658782, - -17.80755151765994, - -17.80865700076884, - -17.809761716447632, - -17.810865665229073, - -17.811968847645545, - -17.813071264229063, - -17.814172915511268, - -17.815273802023437, - -17.816373924296478, - -17.81747328286092, - -17.818571878246942, - -17.81966971098434, - -17.820766781602547, - -17.82186309063063, - -17.822958638597285, - -17.824053426030847, - -17.82514745345928, - -17.82624072141018, - -17.82733323041078, - -17.82842498098795, - -17.829515973668183, - -17.830606208977617, - -17.831695687442018, - -17.832784409586797, - -17.833872375936988, - -17.83495958701727, - -17.83604604335195, - -17.83713174546498, - -17.838216693879936, - -17.839300889120047, - -17.84038433170816, - -17.84146702216678, - -17.842548961018025, - -17.84363014878367, - -17.844710585985123, - -17.845790273143425, - -17.846869210779257, - -17.847947399412945, - -17.849024839564443, - -17.850101531753356, - -17.85117747649892, - -17.852252674320006, - -17.85332712573514, - -17.854400831262478, - -17.855473791419815, - -17.856546006724592, - -17.857617477693886, - -17.85868820484442, - -17.859758188692552, - -17.860827429754288, - -17.86189592854527, - -17.862963685580787, - -17.86403070137577, - -17.865096976444786, - -17.866162511302054, - -17.867227306461427, - -17.86829136243641, - -17.869354679740145, - -17.870417258885418, - -17.871479100384665, - -17.87254020474996, - -17.87360057249303, - -17.874660204125227, - -17.875719100157575, - -17.876777261100724, - -17.87783468746498, - -17.878891379760283, - -17.87994733849623, - -17.881002564182058, - -17.88205705732666, - -17.883110818438556, - -17.88416384802594, - -17.885216146596626, - -17.886267714658096, - -17.88731855271747, - -17.888368661281522, - -17.88941804085666, - -17.890466691948962, - -17.891514615064136, - -17.892561810707548, - -17.89360827938421, - -17.894654021598786, - -17.89569903785559, - -17.896743328658584, - -17.897786894511377, - -17.898829735917236, - -17.89987185337907, - -17.900913247399448, - -17.901953918480583, - -17.902993867124344, - -17.904033093832247, - -17.905071599105465, - -17.906109383444818, - -17.90714644735078, - -17.908182791323483, - -17.9092184158627, - -17.91025332146787, - -17.91128750863808, - -17.91232097787206, - -17.913353729668216, - -17.91438576452459, - -17.915417082938887, - -17.91644768540846, - -17.91747757243032, - -17.918506744501137, - -17.91953520211723, - -17.920562945774577, - -17.921589975968807, - -17.92261629319521, - -17.923641897948738, - -17.924666790723983, - -17.925690972015204, - -17.92671444231632, - -17.927737202120902, - -17.928759251922173, - -17.929780592213024, - -17.930801223486, - -17.931821146233304, - -17.932840360946795, - -17.933858868117994, - -17.93487666823808, - -17.935893761797885, - -17.936910149287915, - -17.937925831198314, - -17.93894080801891, - -17.939955080239166, - -17.940968648348232, - -17.941981512834893, - -17.94299367418761, - -17.944005132894503, - -17.945015889443347, - -17.946025944321587, - -17.947035298016324, - -17.94804395101432, - -17.949051903802, - -17.950059156865457, - -17.95106571069044, - -17.952071565762356, - -17.953076722566294, - -17.954081181586986, - -17.955084943308837, - -17.95608800821591, - -17.957090376791943, - -17.958092049520328, - -17.959093026884126, - -17.960093309366066, - -17.961092897448527, - -17.96209179161357, - -17.963089992342912, - -17.964087500117945, - -17.965084315419713, - -17.966080438728934, - -17.967075870525992, - -17.96807061129094, - -17.969064661503495, - -17.970058021643034, - -17.971050692188616, - -17.972042673618958, - -17.97303396641244, - -17.974024571047124, - -17.975014488000728, - -17.976003717750643, - -17.976992260773926, - -17.97798011754731, - -17.97896728854719, - -17.979953774249626, - -17.980939575130364, - -17.981924691664805, - -17.982909124328025, - -17.983892873594765, - -17.98487593993945, - -17.98585832383616, - -17.986840025758653, - -17.98782104618036, - -17.988801385574384, - -17.98978104441349, - -17.990760023170125, - -17.991738322316404, - -17.992715942324114, - -17.99369288366472, - -17.994669146809347, - -17.99564473222881, - -17.996619640393583, - -17.997593871773816, - -17.99856742683934, - -17.99954030605965, - -18.000512509903928, - -18.001484038841014, - -18.002454893339436, - -18.003425073867387, - -18.004394580892743, - -18.005363414883053, - -18.00633157630554, - -18.007299065627098, - -18.008265883314305, - -18.009232029833417, - -18.01019750565035, - -18.011162311230713, - -18.01212644703979, - -18.013089913542537, - -18.014052711203586, - -18.01501484048725, - -18.01597630185752, - -18.01693709577806, - -18.01789722271222, - -18.018856683123026, - -18.019815477473173, - -18.020773606225053, - -18.021731069840715, - -18.02268786878191, - -18.02364400351005, - -18.024599474486234, - -18.025554282171246, - -18.026508427025544, - -18.02746190950926, - -18.028414730082222, - -18.029366889203924, - -18.030318387333555, - -18.03126922492997, - -18.032219402451727, - -18.033168920357035, - -18.034117779103813, - -18.035065979149646, - -18.03601352095181, - -18.036960404967257, - -18.037906631652625, - -18.038852201464238, - -18.039797114858096, - -18.040741372289887, - -18.041684974214984, - -18.042627921088442, - -18.043570213365, - -18.04451185149908, - -18.045452835944793, - -18.046393167155927, - -18.047332845585963, - -18.04827187168806, - -18.04921024591507, - -18.050147968719525, - -18.051085040553644, - -18.052021461869337, - -18.052957233118192, - -18.053892354751493, - -18.054826827220197, - -18.05576065097496, - -18.056693826466127, - -18.057626354143718, - -18.058558234457447, - -18.059489467856718, - -18.060420054790622, - -18.06134999570794, - -18.06227929105713, - -18.063207941286358, - -18.064135946843464, - -18.06506330817598, - -18.065990025731132, - -18.06691609995583, - -18.067841531296676, - -18.068766320199963, - -18.069690467111673, - -18.07061397247748, - -18.071536836742748, - -18.072459060352525, - -18.073380643751566, - -18.074301587384298, - -18.075221891694856, - -18.076141557127055, - -18.07706058412441, - -18.077978973130122, - -18.078896724587086, - -18.079813838937895, - -18.080730316624827, - -18.081646158089857, - -18.08256136377465, - -18.083475934120575, - -18.084389869568675, - -18.085303170559705, - -18.086215837534105, - -18.08712787093201, - -18.08803927119326, - -18.088950038757368, - -18.089860174063563, - -18.090769677550757, - -18.091678549657562, - -18.092586790822285, - -18.093494401482925, - -18.094401382077184, - -18.095307733042453, - -18.096213454815828, - -18.09711854783409, - -18.098023012533723, - -18.098926849350914, - -18.099830058721533, - -18.100732641081162, - -18.101634596865072, - -18.102535926508235, - -18.103436630445316, - -18.104336709110687, - -18.10523616293841, - -18.106134992362254, - -18.107033197815678, - -18.10793077973185, - -18.10882773854362, - -18.109724074683562, - -18.11061978858393, - -18.111514880676687, - -18.112409351393495, - -18.113303201165714, - -18.114196430424403, - -18.115089039600328, - -18.11598102912395, - -18.116872399425436, - -18.117763150934653, - -18.118653284081166, - -18.119542799294244, - -18.120431697002864, - -18.121319977635693, - -18.122207641621113, - -18.123094689387198, - -18.123981121361727, - -18.124866937972197, - -18.12575213964578, - -18.126636726809377, - -18.127520699889583, - -18.128404059312693, - -18.12928680550471, - -18.130168938891345, - -18.131050459898006, - -18.131931368949807, - -18.132811666471575, - -18.133691352887833, - -18.134570428622816, - -18.135448894100456, - -18.136326749744395, - -18.137203995977988, - -18.138080633224288, - -18.13895666190605, - -18.139832082445746, - -18.14070689526555, - -18.14158110078734, - -18.142454699432715, - -18.143327691622957, - -18.14420007777908, - -18.145071858321785, - -18.1459430336715, - -18.146813604248347, - -18.147683570472164, - -18.14855293276249, - -18.14942169153858, - -18.150289847219405, - -18.15115740022362, - -18.152024350969615, - -18.152890699875478, - -18.153756447359008, - -18.15462159383771, - -18.15548613972881, - -18.156350085449237, - -18.15721343141563, - -18.15807617804434, - -18.15893832575143, - -18.15979987495267, - -18.16066082606355, - -18.161521179499264, - -18.162380935674722, - -18.163240095004543, - -18.164098657903057, - -18.16495662478431, - -18.165813996062063, - -18.16667077214978, - -18.167526953460644, - -18.168382540407556, - -18.169237533403123, - -18.170091932859666, - -18.17094573918923, - -18.171798952803552, - -18.17265157411411, - -18.173503603532076, - -18.174355041468345, - -18.175205888333526, - -18.17605614453794, - -18.176905810491633, - -18.17775488660435, - -18.17860337328557, - -18.17945127094447, - -18.180298579989955, - -18.18114530083064, - -18.181991433874863, - -18.18283697953067, - -18.183681938205833, - -18.184526310307835, - -18.185370096243872, - -18.186213296420863, - -18.18705591124545, - -18.187897941123982, - -18.18873938646253, - -18.18958024766689, - -18.190420525142564, - -18.191260219294776, - -18.192099330528478, - -18.192937859248328, - -18.193775805858714, - -18.194613170763734, - -18.195449954367213, - -18.196286157072688, - -18.197121779283425, - -18.197956821402407, - -18.198791283832332, - -18.199625166975622, - -18.200458471234423, - -18.201291197010594, - -18.202123344705722, - -18.202954914721115, - -18.203785907457796, - -18.204616323316515, - -18.205446162697744, - -18.206275426001675, - -18.207104113628223, - -18.20793222597702, - -18.208759763447436, - -18.20958672643855, - -18.210413115349162, - -18.211238930577807, - -18.21206417252273, - -18.212888841581915, - -18.213712938153055, - -18.214536462633575, - -18.21535941542062, - -18.21618179691107, - -18.21700360750151, - -18.21782484758827, - -18.218645517567385, - -18.219465617834636, - -18.220285148785514, - -18.22110411081524, - -18.221922504318762, - -18.222740329690755, - -18.22355758732561, - -18.224374277617464, - -18.225190400960162, - -18.22600595774728, - -18.226820948372126, - -18.227635373227727, - -18.228449232706847, - -18.22926252720197, - -18.230075257105312, - -18.230887422808816, - -18.231699024704145, - -18.2325100631827, - -18.23332053863561, - -18.234130451453726, - -18.23493980202763, - -18.235748590747637, - -18.23655681800378, - -18.23736448418584, - -18.23817158968331, - -18.238978134885425, - -18.239784120181135, - -18.240589545959132, - -18.241394412607843, - -18.242198720515407, - -18.243002470069708, - -18.243805661658357, - -18.244608295668694, - -18.245410372487797, - -18.246211892502462, - -18.24701285609923, - -18.24781326366437, - -18.248613115583876, - -18.24941241224348, - -18.250211154028644, - -18.25100934132457, - -18.25180697451618, - -18.25260405398814, - -18.25340058012484, - -18.254196553310408, - -18.254991973928707, - -18.255786842363328, - -18.2565811589976, - -18.257374924214584, - -18.258168138397078, - -18.25896080192761, - -18.259752915188447, - -18.260544478561584, - -18.261335492428756, - -18.26212595717143, - -18.26291587317082, - -18.26370524080785, - -18.26449406046321, - -18.2652823325173, - -18.266070057350277, - -18.266857235342012, - -18.267643866872127, - -18.268429952319984, - -18.26921549206467, - -18.270000486485017, - -18.270784935959586, - -18.271568840866685, - -18.272352201584354, - -18.27313501849037, - -18.273917291962245, - -18.274699022377238, - -18.27548021011234, - -18.276260855544283, - -18.277040959049533, - -18.277820521004298, - -18.27859954178452, - -18.27937802176589, - -18.280155961323832, - -18.280933360833508, - -18.281710220669822, - -18.282486541207415, - -18.283262322820672, - -18.284037565883718, - -18.284812270770413, - -18.285586437854363, - -18.28636006750891, - -18.28713316010714, - -18.287905716021882, - -18.2886777356257, - -18.289449219290905, - -18.29022016738955, - -18.29099058029342, - -18.291760458374053, - -18.292529802002726, - -18.29329861155046, - -18.294066887388006, - -18.294834629885877, - -18.295601839414314, - -18.29636851634331, - -18.29713466104259, - -18.29790027388164, - -18.298665355229677, - -18.299429905455657, - -18.300193924928294, - -18.300957414016032, - -18.301720373087072, - -18.30248280250935, - -18.30324470265055, - -18.304006073878103, - -18.30476691655918, - -18.3055272310607, - -18.306287017749334, - -18.30704627699148, - -18.3078050091533, - -18.308563214600692, - -18.309320893699304, - -18.31007804681453, - -18.31083467431151, - -18.311590776555132, - -18.31234635391002, - -18.31310140674056, - -18.31385593541088, - -18.314609940284853, - -18.315363421726097, - -18.31611638009798, - -18.316868815763623, - -18.31762072908589, - -18.31837212042739, - -18.319122990150486, - -18.31987333861729, - -18.32062316618965, - -18.321372473229186, - -18.322121260097244, - -18.322869527154932, - -18.323617274763105, - -18.324364503282364, - -18.32511121307307, - -18.325857404495313, - -18.326603077908956, - -18.327348233673597, - -18.328092872148595, - -18.328836993693052, - -18.32958059866582, - -18.33032368742551, - -18.331066260330473, - -18.331808317738822, - -18.332549860008413, - -18.333290887496858, - -18.334031400561525, - -18.334771399559518, - -18.335510884847714, - -18.33624985678273, - -18.336988315720934, - -18.33772626201845, - -18.33846369603116, - -18.33920061811469, - -18.33993702862442, - -18.340672927915488, - -18.34140831634279, - -18.342143194260963, - -18.34287756202441, - -18.343611419987273, - -18.34434476850346, - -18.34507760792664, - -18.345809938610216, - -18.34654176090736, - -18.347273075171, - -18.348003881753808, - -18.348734181008222, - -18.349463973286433, - -18.350193258940376, - -18.350922038321762, - -18.35165031178204, - -18.35237807967243, - -18.35310534234389, - -18.35383210014715, - -18.354558353432697, - -18.35528410255076, - -18.356009347851334, - -18.356734089684174, - -18.357458328398792, - -18.358182064344447, - -18.35890529787017, - -18.35962802932474, - -18.36035025905669, - -18.36107198741433, - -18.361793214745706, - -18.36251394139864, - -18.363234167720695, - -18.363953894059208, - -18.364673120761267, - -18.365391848173726, - -18.36611007664319, - -18.366827806516024, - -18.367545038138363, - -18.368261771856087, - -18.36897800801485, - -18.369693746960053, - -18.370408989036864, - -18.371123734590217, - -18.37183798396479, - -18.37255173750504, - -18.373264995555175, - -18.373977758459166, - -18.374690026560742, - -18.375401800203402, - -18.376113079730395, - -18.37682386548474, - -18.37753415780922, - -18.37824395704637, - -18.37895326353849, - -18.379662077627657, - -18.380370399655693, - -18.38107822996418, - -18.381785568894486, - -18.38249241678772, - -18.38319877398476, - -18.38390464082625, - -18.384610017652594, - -18.38531490480397, - -18.386019302620305, - -18.3867232114413, - -18.387426631606417, - -18.388129563454882, - -18.388832007325686, - -18.389533963557586, - -18.390235432489103, - -18.39093641445852, - -18.391636909803886, - -18.392336918863023, - -18.39303644197351, - -18.393735479472692, - -18.394434031697685, - -18.395132098985364, - -18.395829681672378, - -18.39652678009514, - -18.397223394589826, - -18.397919525492377, - -18.398615173138506, - -18.399310337863692, - -18.40000502000318, - -18.400699219891987, - -18.401392937864888, - -18.402086174256432, - -18.40277892940093, - -18.403471203632474, - -18.40416299728491, - -18.40485431069186, - -18.405545144186707, - -18.406235498102614, - -18.406925372772502, - -18.40761476852907, - -18.408303685704773, - -18.40899212463185, - -18.4096800856423, - -18.410367569067898, - -18.411054575240183, - -18.411741104490464, - -18.41242715714982, - -18.41311273354911, - -18.41379783401895, - -18.414482458889733, - -18.41516660849162, - -18.415850283154544, - -18.416533483208212, - -18.417216208982097, - -18.417898460805446, - -18.41858023900728, - -18.419261543916384, - -18.41994237586132, - -18.42062273517043, - -18.421302622171805, - -18.42198203719333, - -18.42266098056266, - -18.42333945260721, - -18.424017453654177, - -18.42469498403053, - -18.42537204406301, - -18.426048634078132, - -18.42672475440218, - -18.42740040536122, - -18.428075587281082, - -18.42875030048738, - -18.429424545305498, - -18.430098322060584, - -18.430771631077572, - -18.43144447268117, - -18.43211684719586, - -18.432788754945893, - -18.433460196255297, - -18.43413117144788, - -18.43480168084722, - -18.435471724776672, - -18.43614130355937, - -18.436810417518217, - -18.437479066975893, - -18.43814725225486, - -18.43881497367736, - -18.43948223156539, - -18.440149026240743, - -18.440815358024985, - -18.44148122723945, - -18.442146634205262, - -18.442811579243315, - -18.44347606267428, - -18.444140084818603, - -18.44480364599651, - -18.445466746528016, - -18.446129386732892, - -18.446791566930703, - -18.447453287440787, - -18.448114548582257, - -18.44877535067402, - -18.449435694034733, - -18.45009557898286, - -18.45075500583663, - -18.451413974914054, - -18.45207248653292, - -18.4527305410108, - -18.45338813866504, - -18.45404527981277, - -18.4547019647709, - -18.455358193856117, - -18.456013967384887, - -18.456669285673463, - -18.45732414903787, - -18.457978557793922, - -18.458632512257203, - -18.459286012743092, - -18.45993905956674, - -18.46059165304308, - -18.461243793486826, - -18.461895481212476, - -18.46254671653431, - -18.463197499766384, - -18.463847831222544, - -18.464497711216413, - -18.465147140061397, - -18.46579611807069, - -18.466444645557253, - -18.46709272283385, - -18.467740350213017, - -18.468387528007067, - -18.469034256528115, - -18.46968053608804, - -18.470326366998513, - -18.47097174957099, - -18.471616684116707, - -18.472261170946688, - -18.472905210371735, - -18.473548802702442, - -18.47419194824918, - -18.474834647322112, - -18.47547690023118, - -18.47611870728611, - -18.476760068796416, - -18.477400985071398, - -18.47804145642014, - -18.478681483151515, - -18.47932106557417, - -18.479960203996548, - -18.48059889872688, - -18.481237150073174, - -18.48187495834323, - -18.482512323844634, - -18.483149246884757, - -18.483785727770755, - -18.484421766809575, - -18.48505736430795, - -18.485692520572396, - -18.486327235909222, - -18.486961510624518, - -18.487595345024165, - -18.488228739413838, - -18.488861694098983, - -18.489494209384855, - -18.49012628557648, - -18.49075792297868, - -18.491389121896066, - -18.492019882633034, - -18.49265020549377, - -18.49328009078225, - -18.493909538802235, - -18.494538549857282, - -18.495167124250735, - -18.495795262285718, - -18.49642296426516, - -18.497050230491773, - -18.497677061268053, - -18.498303456896295, - -18.49892941767858, - -18.499554943916774, - -18.500180035912546, - -18.500804693967343, - -18.501428918382413, - -18.502052709458788, - -18.502676067497294, - -18.503298992798545, - -18.503921485662953, - -18.504543546390714, - -18.505165175281817, - -18.50578637263605, - -18.50640713875298, - -18.50702747393198, - -18.507647378472207, - -18.50826685267261, - -18.508885896831927, - -18.509504511248704, - -18.510122696221266, - -18.510740452047735, - -18.511357779026028, - -18.511974677453843, - -18.512591147628694, - -18.51320718984787, - -18.513822804408456, - -18.514437991607338, - -18.515052751741194, - -18.515667085106486, - -18.516280991999487, - -18.516894472716253, - -18.51750752755263, - -18.518120156804276, - -18.518732360766627, - -18.519344139734923, - -18.51995549400419, - -18.520566423869266, - -18.52117692962477, - -18.521787011565113, - -18.52239666998452, - -18.523005905176994, - -18.52361471743634, - -18.524223107056166, - -18.524831074329864, - -18.525438619550627, - -18.52604574301145, - -18.52665244500512, - -18.52725872582422, - -18.527864585761126, - -18.52847002510802, - -18.529075044156876, - -18.52967964319947, - -18.530283822527366, - -18.530887582431937, - -18.531490923204345, - -18.53209384513555, - -18.53269634851632, - -18.53329843363721, - -18.533900100788575, - -18.534501350260577, - -18.535102182343163, - -18.535702597326093, - -18.536302595498917, - -18.536902177150985, - -18.537501342571446, - -18.53810009204925, - -18.538698425873147, - -18.539296344331685, - -18.53989384771321, - -18.540490936305876, - -18.541087610397625, - -18.541683870276206, - -18.542279716229167, - -18.542875148543857, - -18.54347016750743, - -18.544064773406824, - -18.544658966528804, - -18.54525274715991, - -18.545846115586496, - -18.54643907209472, - -18.54703161697054, - -18.547623750499703, - -18.548215472967776, - -18.548806784660115, - -18.54939768586188, - -18.54998817685804, - -18.550578257933356, - -18.5511679293724, - -18.55175719145954, - -18.552346044478952, - -18.552934488714612, - -18.553522524450297, - -18.55411015196959, - -18.55469737155588, - -18.555284183492347, - -18.555870588061993, - -18.556456585547608, - -18.55704217623179, - -18.557627360396943, - -18.558212138325274, - -18.558796510298794, - -18.55938047659932, - -18.55996403750847, - -18.560547193307663, - -18.56112994427814, - -18.56171229070092, - -18.562294232856853, - -18.56287577102658, - -18.563456905490547, - -18.564037636529008, - -18.56461796442202, - -18.565197889449454, - -18.565777411890977, - -18.566356532026063, - -18.566935250134, - -18.567513566493876, - -18.56809148138458, - -18.56866899508482, - -18.569246107873102, - -18.569822820027735, - -18.570399131826846, - -18.570975043548366, - -18.57155055547002, - -18.572125667869358, - -18.57270038102373, - -18.57327469521029, - -18.573848610706005, - -18.57442212778765, - -18.574995246731795, - -18.57556796781484, - -18.576140291312978, - -18.57671221750221, - -18.577283746658352, - -18.57785487905703, - -18.578425614973664, - -18.5789959546835, - -18.57956589846159, - -18.58013544658278, - -18.580704599321745, - -18.58127335695296, - -18.581841719750706, - -18.58240968798908, - -18.58297726194199, - -18.58354444188315, - -18.584111228086073, - -18.584677620824106, - -18.585243620370388, - -18.585809226997878, - -18.586374440979338, - -18.586939262587343, - -18.587503692094288, - -18.58806772977236, - -18.588631375893574, - -18.589194630729747, - -18.589757494552515, - -18.59031996763332, - -18.590882050243412, - -18.59144374265386, - -18.592005045135544, - -18.59256595795915, - -18.59312648139518, - -18.593686615713953, - -18.594246361185586, - -18.59480571808003, - -18.59536468666703, - -18.595923267216147, - -18.596481459996767, - -18.597039265278074, - -18.597596683329073, - -18.59815371441858, - -18.598710358815225, - -18.599266616787453, - -18.59982248860352, - -18.600377974531497, - -18.60093307483927, - -18.601487789794533, - -18.60204211966481, - -18.60259606471741, - -18.603149625219494, - -18.603702801438004, - -18.60425559363972, - -18.604808002091225, - -18.605360027058918, - -18.605911668809018, - -18.606462927607552, - -18.607013803720367, - -18.60756429741313, - -18.608114408951312, - -18.608664138600208, - -18.609213486624927, - -18.609762453290394, - -18.61031103886135, - -18.610859243602356, - -18.611407067777776, - -18.611954511651806, - -18.61250157548845, - -18.613048259551537, - -18.6135945641047, - -18.6141404894114, - -18.614686035734913, - -18.615231203338325, - -18.61577599248455, - -18.61632040343631, - -18.616864436456147, - -18.617408091806432, - -18.617951369749335, - -18.61849427054686, - -18.61903679446082, - -18.619578941752845, - -18.620120712684393, - -18.62066210751673, - -18.62120312651095, - -18.62174376992796, - -18.622284038028486, - -18.622823931073075, - -18.62336344932209, - -18.623902593035716, - -18.624441362473952, - -18.624979757896632, - -18.625517779563395, - -18.626055427733696, - -18.626592702666827, - -18.62712960462189, - -18.627666133857797, - -18.628202290633304, - -18.628738075206964, - -18.629273487837168, - -18.629808528782117, - -18.630343198299837, - -18.630877496648175, - -18.6314114240848, - -18.63194498086719, - -18.632478167252668, - -18.633010983498355, - -18.633543429861206, - -18.634075506598, - -18.634607213965324, - -18.6351385522196, - -18.635669521617068, - -18.63620012241379, - -18.636730354865648, - -18.63726021922835, - -18.63778971575742, - -18.63831884470822, - -18.63884760633591, - -18.6393760008955, - -18.6399040286418, - -18.640431689829462, - -18.640958984712945, - -18.64148591354654, - -18.64201247658436, - -18.642538674080345, - -18.64306450628825, - -18.643589973461665, - -18.644115075853993, - -18.64463981371847, - -18.64516418730815, - -18.645688196875916, - -18.64621184267447, - -18.64673512495635, - -18.6472580439739, - -18.647780599979303, - -18.64830279322457, - -18.648824623961517, - -18.64934609244181, - -18.649867198916922, - -18.65038794363816, - -18.650908326856662, - -18.651428348823373, - -18.651948009789084, - -18.652467310004397, - -18.652986249719746, - -18.653504829185398, - -18.654023048651435, - -18.65454090836777, - -18.655058408584143, - -18.655575549550118, - -18.65609233151509, - -18.65660875472828, - -18.657124819438728, - -18.657640525895317, - -18.658155874346743, - -18.65867086504154, - -18.659185498228055, - -18.659699774154475, - -18.660213693068815, - -18.66072725521891, - -18.66124046085243, - -18.661753310216863, - -18.66226580355954, - -18.662777941127604, - -18.663289723168045, - -18.663801149927668, - -18.66431222165311, - -18.664822938590834, - -18.665333300987136, - -18.665843309088142, - -18.6663529631398, - -18.666862263387902, - -18.667371210078052, - -18.66787980345569, - -18.66838804376609, - -18.668895931254355, - -18.66940346616541, - -18.669910648744015, - -18.670417479234768, - -18.67092395788208, - -18.671430084930208, - -18.671935860623233, - -18.672441285205064, - -18.672946358919443, - -18.673451082009947, - -18.67395545471998, - -18.67445947729278, - -18.6749631499714, - -18.675466472998753, - -18.675969446617565, - -18.67647207107039, - -18.67697434659962, - -18.677476273447493, - -18.67797785185605, - -18.67847908206718, - -18.67897996432261, - -18.67948049886389, - -18.6799806859324, - -18.68048052576936, - -18.68098001861582, - -18.68147916471266, - -18.681977964300593, - -18.682476417620173, - -18.682974524911774, - -18.683472286415615, - -18.68396970237174, - -18.68446677302003, - -18.6849634986002, - -18.685459879351797, - -18.6859559155142, - -18.686451607326628, - -18.686946955028123, - -18.687441958857576, - -18.687936619053698, - -18.688430935855045, - -18.6889249095, - -18.689418540226786, - -18.689911828273452, - -18.690404773877894, - -18.690897377277835, - -18.691389638710834, - -18.691881558414284, - -18.692373136625417, - -18.692864373581298, - -18.693355269518825, - -18.69384582467474, - -18.69433603928561, - -18.69482591358784, - -18.69531544781768, - -18.695804642211204, - -18.69629349700433, - -18.69678201243281, - -18.69727018873223, - -18.69775802613802, - -18.698245524885433, - -18.69873268520957, - -18.699219507345372, - -18.6997059915276, - -18.700192137990868, - -18.700677946969623, - -18.701163418698144, - -18.701648553410553, - -18.70213335134081, - -18.702617812722707, - -18.70310193778988, - -18.703585726775795, - -18.704069179913766, - -18.704552297436937, - -18.705035079578295, - -18.70551752657066, - -18.705999638646695, - -18.7064814160389, - -18.706962858979615, - -18.707443967701018, - -18.707924742435118, - -18.70840518341378, - -18.708885290868697, - -18.709365065031395, - -18.709844506133248, - -18.710323614405475, - -18.71080239007912, - -18.71128083338508, - -18.711758944554077, - -18.712236723816694, - -18.71271417140333, - -18.713191287544245, - -18.713668072469524, - -18.714144526409097, - -18.714620649592742, - -18.715096442250065, - -18.715571904610517, - -18.716047036903397, - -18.716521839357835, - -18.71699631220281, - -18.717470455667133, - -18.717944269979466, - -18.7184177553683, - -18.718890912061983, - -18.719363740288692, - -18.71983624027645, - -18.720308412253125, - -18.720780256446417, - -18.721251773083882, - -18.721722962392906, - -18.722193824600723, - -18.722664359934406, - -18.723134568620868, - -18.723604450886878, - -18.724074006959032, - -18.724543237063777, - -18.725012141427403, - -18.725480720276035, - -18.72594897383565, - -18.726416902332065, - -18.726884505990938, - -18.727351785037776, - -18.727818739697923, - -18.728285370196566, - -18.728751676758744, - -18.729217659609336, - -18.729683318973056, - -18.73014865507448, - -18.73061366813801, - -18.7310783583879, - -18.731542726048254, - -18.732006771343013, - -18.73247049449596, - -18.73293389573073, - -18.7333969752708, - -18.733859733339493, - -18.73432217015997, - -18.734784285955246, - -18.735246080948183, - -18.735707555361476, - -18.73616870941767, - -18.736629543339166, - -18.737090057348198, - -18.73755025166685, - -18.738010126517054, - -18.738469682120588, - -18.73892891869907, - -18.73938783647397, - -18.7398464356666, - -18.740304716498127, - -18.740762679189555, - -18.741220323961734, - -18.74167765103537, - -18.74213466063101, - -18.742591352969047, - -18.74304772826972, - -18.74350378675312, - -18.743959528639184, - -18.74441495414769, - -18.744870063498276, - -18.745324856910408, - -18.745779334603426, - -18.746233496796492, - -18.746687343708633, - -18.747140875558717, - -18.747594092565457, - -18.748046994947426, - -18.748499582923035, - -18.74895185671054, - -18.74940381652806, - -18.749855462593548, - -18.750306795124814, - -18.75075781433951, - -18.75120852045515, - -18.751658913689084, - -18.752108994258514, - -18.752558762380495, - -18.753008218271926, - -18.753457362149565, - -18.753906194230005, - -18.754354714729704, - -18.754802923864958, - -18.755250821851916, - -18.755698408906582, - -18.756145685244803, - -18.756592651082286, - -18.75703930663457, - -18.75748565211707, - -18.75793168774502, - -18.75837741373354, - -18.758822830297575, - -18.759267937651927, - -18.759712736011252, - -18.760157225590056, - -18.760601406602696, - -18.761045279263374, - -18.761488843786157, - -18.76193210038495, - -18.76237504927352, - -18.76281769066547, - -18.76326002477428, - -18.763702051813254, - -18.76414377199557, - -18.764585185534244, - -18.76502629264215, - -18.765467093532013, - -18.76590758841641, - -18.766347777507775, - -18.766787661018387, - -18.76722723916038, - -18.767666512145748, - -18.768105480186325, - -18.768544143493806, - -18.76898250227974, - -18.769420556755524, - -18.769858307132417, - -18.770295753621518, - -18.770732896433792, - -18.771169735780052, - -18.771606271870965, - -18.77204250491705, - -18.77247843512868, - -18.772914062716087, - -18.773349387889354, - -18.77378441085842, - -18.774219131833068, - -18.77465355102295, - -18.775087668637568, - -18.775521484886273, - -18.77595499997827, - -18.776388214122633, - -18.776821127528272, - -18.777253740403967, - -18.77768605295834, - -18.778118065399884, - -18.778549777936934, - -18.77898119077768, - -18.77941230413018, - -18.779843118202333, - -18.780273633201904, - -18.78070384933651, - -18.781133766813625, - -18.781563385840577, - -18.78199270662455, - -18.78242172937259, - -18.782850454291587, - -18.783278881588302, - -18.78370701146934, - -18.784134844141168, - -18.784562379810115, - -18.78498961868236, - -18.785416560963935, - -18.785843206860736, - -18.78626955657852, - -18.78669561032289, - -18.787121368299314, - -18.78754683071311, - -18.787971997769468, - -18.78839686967342, - -18.78882144662986, - -18.789245728843547, - -18.789669716519093, - -18.79009340986096, - -18.790516809073484, - -18.79093991436084, - -18.791362725927083, - -18.79178524397611, - -18.79220746871168, - -18.792629400337418, - -18.79305103905679, - -18.793472385073148, - -18.793893438589677, - -18.794314199809435, - -18.794734668935334, - -18.795154846170146, - -18.795574731716503, - -18.7959943257769, - -18.796413628553683, - -18.796832640249065, - -18.797251361065115, - -18.797669791203763, - -18.798087930866796, - -18.798505780255866, - -18.798923339572475, - -18.799340609018003, - -18.79975758879367, - -18.800174279100574, - -18.80059068013966, - -18.80100679211174, - -18.801422615217483, - -18.801838149657424, - -18.802253395631954, - -18.80266835334133, - -18.80308302298566, - -18.803497404764926, - -18.803911498878964, - -18.80432530552747, - -18.804738824910007, - -18.805152057225992, - -18.80556500267471, - -18.8059776614553, - -18.806390033766778, - -18.806802119808005, - -18.80721391977771, - -18.807625433874488, - -18.80803666229679, - -18.808447605242936, - -18.8088582629111, - -18.809268635499325, - -18.80967872320552, - -18.81008852622744, - -18.81049804476272, - -18.810907279008855, - -18.811316229163193, - -18.811724895422955, - -18.812133277985218, - -18.812541377046934, - -18.8129491928049, - -18.813356725455794, - -18.813763975196146, - -18.814170942222354, - -18.814577626730678, - -18.814984028917248, - -18.815390148978047, - -18.815795987108928, - -18.81620154350561, - -18.816606818363674, - -18.817011811878565, - -18.81741652424559, - -18.817820955659922, - -18.818225106316607, - -18.818628976410537, - -18.81903256613649, - -18.81943587568909, - -18.81983890526284, - -18.820241655052104, - -18.820644125251103, - -18.821046316053927, - -18.821448227654543, - -18.821849860246772, - -18.822251214024295, - -18.822652289180674, - -18.823053085909326, - -18.82345360440354, - -18.823853844856462, - -18.82425380746111, - -18.82465349241037, - -18.825052899896992, - -18.825452030113585, - -18.825850883252638, - -18.826249459506496, - -18.826647759067374, - -18.827045782127353, - -18.82744352887838, - -18.827840999512272, - -18.82823819422071, - -18.828635113195237, - -18.829031756627277, - -18.829428124708105, - -18.829824217628875, - -18.830220035580602, - -18.830615578754177, - -18.83101084734034, - -18.83140584152972, - -18.8318005615128, - -18.832195007479935, - -18.83258917962135, - -18.83298307812714, - -18.833376703187252, - -18.833770054991522, - -18.83416313372964, - -18.834555939591173, - -18.83494847276555, - -18.835340733442074, - -18.835732721809915, - -18.836124438058107, - -18.836515882375558, - -18.836907054951045, - -18.837297955973206, - -18.837688585630563, - -18.838078944111494, - -18.838469031604248, - -18.838858848296947, - -18.839248394377588, - -18.839637670034023, - -18.840026675453984, - -18.840415410825067, - -18.840803876334746, - -18.841192072170358, - -18.841579998519112, - -18.841967655568087, - -18.842355043504227, - -18.84274216251436, - -18.84312901278517, - -18.843515594503213, - -18.843901907854924, - -18.844287953026605, - -18.844673730204423, - -18.845059239574425, - -18.84544448132252, - -18.845829455634494, - -18.846214162696, - -18.84659860269257, - -18.846982775809593, - -18.847366682232344, - -18.847750322145963, - -18.84813369573546, - -18.848516803185714, - -18.848899644681484, - -18.8492822204074, - -18.849664530547955, - -18.850046575287518, - -18.850428354810337, - -18.85080986930052, - -18.851191118942058, - -18.85157210391881, - -18.851952824414504, - -18.852333280612743, - -18.852713472697012, - -18.85309340085065, - -18.853473065256882, - -18.853852466098804, - -18.85423160355938, - -18.854610477821453, - -18.854989089067736, - -18.855367437480812, - -18.85574552324314, - -18.85612334653706, - -18.856500907544778, - -18.856878206448368, - -18.857255243429783, - -18.85763201867086, - -18.85800853235329, - -18.85838478465865, - -18.858760775768392, - -18.859136505863834, - -18.859511975126182, - -18.859887183736497, - -18.860262131875732, - -18.860636819724704, - -18.861011247464102, - -18.861385415274505, - -18.861759323336347, - -18.862132971829954, - -18.862506360935516, - -18.8628794908331, - -18.86325236170265, - -18.863624973723986, - -18.8639973270768, - -18.864369421940662, - -18.864741258495012, - -18.86511283691917, - -18.865484157392334, - -18.86585522009357, - -18.866226025201833, - -18.866596572895936, - -18.86696686335458, - -18.867336896756335, - -18.86770667327966, - -18.86807619310287, - -18.868445456404174, - -18.868814463361648, - -18.869183214153246, - -18.869551708956802, - -18.86991994795002, - -18.87028793131049, - -18.870655659215668, - -18.871023131842893, - -18.87139034936938, - -18.871757311972225, - -18.87212401982839, - -18.872490473114723, - -18.872856672007952, - -18.87322261668467, - -18.87358830732136, - -18.873953744094376, - -18.874318927179953, - -18.874683856754196, - -18.8750485329931, - -18.87541295607253, - -18.875777126168227, - -18.876141043455817, - -18.876504708110794, - -18.876868120308547, - -18.877231280224322, - -18.87759418803326, - -18.877956843910372, - -18.87831924803055, - -18.878681400568567, - -18.879043301699067, - -18.879404951596584, - -18.87976635043552, - -18.880127498390163, - -18.88048839563468, - -18.88084904234311, - -18.88120943868938, - -18.881569584847288, - -18.881929480990518, - -18.882289127292633, - -18.88264852392707, - -18.883007671067155, - -18.88336656888608, - -18.88372521755693, - -18.88408361725266, - -18.884441768146115, - -18.88479967041001, - -18.885157324216948, - -18.885514729739405, - -18.885871887149744, - -18.886228796620202, - -18.8865854583229, - -18.886941872429844, - -18.887298039112913, - -18.88765395854387, - -18.888009630894352, - -18.88836505633589, - -18.888720235039887, - -18.88907516717763, - -18.889429852920287, - -18.889784292438907, - -18.890138485904416, - -18.890492433487623, - -18.890846135359226, - -18.891199591689794, - -18.891552802649787, - -18.891905768409543, - -18.892258489139277, - -18.892610965009084, - -18.89296319618896, - -18.89331518284876, - -18.893666925158232, - -18.894018423287005, - -18.894369677404594, - -18.894720687680387, - -18.895071454283666, - -18.895421977383585, - -18.895772257149183, - -18.896122293749386, - -18.896472087353004, - -18.89682163812872, - -18.897170946245108, - -18.897520011870622, - -18.897868835173604, - -18.89821741632227, - -18.89856575548473, - -18.89891385282896, - -18.899261708522847, - -18.899609322734136, - -18.899956695630465, - -18.900303827379357, - -18.90065071814822, - -18.900997368104342, - -18.90134377741489, - -18.90168994624693, - -18.902035874767396, - -18.902381563143116, - -18.902727011540804, - -18.903072220127047, - -18.90341718906832, - -18.903761918530996, - -18.904106408681315, - -18.90445065968541, - -18.904794671709293, - -18.90513844491887, - -18.905481979479926, - -18.90582527555813, - -18.906168333319037, - -18.906511152928093, - -18.906853734550616, - -18.907196078351824, - -18.907538184496808, - -18.907880053150553, - -18.908221684477926, - -18.908563078643677, - -18.908904235812447, - -18.90924515614876, - -18.909585839817023, - -18.909926286981538, - -18.910266497806482, - -18.91060647245592, - -18.910946211093812, - -18.911285713883995, - -18.911624980990197, - -18.911964012576025, - -18.912302808804988, - -18.91264136984046, - -18.912979695845724, - -18.91331778698393, - -18.91365564341813, - -18.913993265311255, - -18.91433065282612, - -18.914667806125433, - -18.91500472537179, - -18.91534141072767, - -18.91567786235544, - -18.916014080417355, - -18.916350065075555, - -18.916685816492073, - -18.917021334828824, - -18.917356620247617, - -18.917691672910138, - -18.918026492977972, - -18.918361080612584, - -18.918695435975334, - -18.91902955922746, - -18.9193634505301, - -18.919697110044268, - -18.920030537930877, - -18.920363734350722, - -18.92069669946449, - -18.92102943343275, - -18.921361936415966, - -18.921694208574493, - -18.922026250068566, - -18.92235806105831, - -18.922689641703748, - -18.923020992164783, - -18.92335211260121, - -18.923683003172712, - -18.924013664038863, - -18.924344095359128, - -18.924674297292853, - -18.92500426999928, - -18.925334013637546, - -18.925663528366663, - -18.925992814345545, - -18.926321871732984, - -18.92665070068768, - -18.926979301368203, - -18.92730767393303, - -18.92763581854051, - -18.927963735348897, - -18.92829142451633, - -18.928618886200837, - -18.928946120560337, - -18.929273127752644, - -18.929599907935454, - -18.92992646126636, - -18.930252787902837, - -18.930578888002263, - -18.9309047617219, - -18.931230409218905, - -18.931555830650318, - -18.931881026173073, - -18.932205995944, - -18.932530740119816, - -18.932855258857128, - -18.933179552312442, - -18.933503620642142, - -18.933827464002515, - -18.934151082549732, - -18.934474476439863, - -18.934797645828866, - -18.93512059087259, - -18.93544331172677, - -18.93576580854705, - -18.936088081488947, - -18.93641013070788, - -18.93673195635916, - -18.937053558597984, - -18.937374937579452, - -18.93769609345855, - -18.938017026390146, - -18.938337736529018, - -18.938658224029833, - -18.938978489047145, - -18.9392985317354, - -18.939618352248942, - -18.939937950742006, - -18.940257327368716, - -18.94057648228309, - -18.94089541563905, - -18.9412141275904, - -18.941532618290836, - -18.941850887893953, - -18.94216893655324, - -18.94248676442207, - -18.942804371653725, - -18.943121758401368, - -18.94343892481806, - -18.943755871056755, - -18.944072597270303, - -18.944389103611442, - -18.944705390232812, - -18.94502145728694, - -18.94533730492626, - -18.945652933303077, - -18.945968342569614, - -18.946283532877974, - -18.946598504380155, - -18.946913257228058, - -18.947227791573475, - -18.947542107568083, - -18.94785620536347, - -18.948170085111105, - -18.948483746962363, - -18.948797191068508, - -18.949110417580695, - -18.94942342664998, - -18.949736218427315, - -18.95004879306354, - -18.950361150709398, - -18.95067329151553, - -18.950985215632453, - -18.951296923210606, - -18.951608414400308, - -18.951919689351772, - -18.95223074821512, - -18.95254159114035, - -18.952852218277375, - -18.953162629775992, - -18.9534728257859, - -18.953782806456694, - -18.954092571937856, - -18.95440212237878, - -18.954711457928738, - -18.955020578736917, - -18.95532948495239, - -18.955638176724126, - -18.955946654200993, - -18.95625491753175, - -18.956562966865064, - -18.956870802349496, - -18.95717842413349, - -18.957485832365407, - -18.957793027193492, - -18.958100008765893, - -18.95840677723065, - -18.9587133327357, - -18.959019675428888, - -18.959325805457944, - -18.959631722970503, - -18.95993742811409, - -18.960242921036137, - -18.960548201883963, - -18.960853270804797, - -18.961158127945755, - -18.96146277345386, - -18.961767207476026, - -18.962071430159064, - -18.96237544164969, - -18.962679242094513, - -18.962982831640044, - -18.96328621043269, - -18.96358937861875, - -18.963892336344433, - -18.964195083755843, - -18.96449762099898, - -18.96479994821974, - -18.965102065563922, - -18.965403973177228, - -18.965705671205246, - -18.966007159793477, - -18.966308439087317, - -18.96660950923205, - -18.966910370372876, - -18.96721102265488, - -18.96751146622306, - -18.967811701222296, - -18.968111727797382, - -18.968411546093012, - -18.968711156253764, - -18.969010558424134, - -18.96930975274851, - -18.969608739371175, - -18.96990751843632, - -18.970206090088027, - -18.970504454470287, - -18.970802611726985, - -18.97110056200191, - -18.97139830543875, - -18.97169584218109, - -18.971993172372425, - -18.97229029615613, - -18.97258721367551, - -18.97288392507374, - -18.97318043049392, - -18.97347673007903, - -18.973772823971977, - -18.97406871231554, - -18.97436439525242, - -18.9746598729252, - -18.974955145476393, - -18.97525021304838, - -18.97554507578346, - -18.97583973382384, - -18.97613418731161, - -18.97642843638878, - -18.976722481197246, - -18.977016321878814, - -18.977309958575187, - -18.977603391427976, - -18.97789662057869, - -18.978189646168737, - -18.978482468339433, - -18.978775087231988, - -18.979067502987522, - -18.97935971574705, - -18.979651725651497, - -18.97994353284168, - -18.98023513745833, - -18.98052653964207, - -18.980817739533432, - -18.981108737272844, - -18.981399533000648, - -18.981690126857075, - -18.981980518982265, - -18.982270709516264, - -18.982560698599013, - -18.982850486370364, - -18.983140072970066, - -18.983429458537774, - -18.98371864321304, - -18.984007627135334, - -18.984296410444014, - -18.984584993278347, - -18.9848733757775, - -18.985161558080552, - -18.985449540326474, - -18.985737322654153, - -18.986024905202367, - -18.986312288109804, - -18.98659947151506, - -18.98688645555663, - -18.987173240372904, - -18.987459826102196, - -18.9877462128827, - -18.988032400852543, - -18.98831839014973, - -18.98860418091218, - -18.98888977327772, - -18.989175167384076, - -18.98946036336888, - -18.98974536136967, - -18.99003016152389, - -18.99031476396888, - -18.99059916884189, - -18.990883376280077, - -18.991167386420504, - -18.99145119940013, - -18.99173481535583, - -18.99201823442438, - -18.992301456742453, - -18.992584482446638, - -18.992867311673425, - -18.993149944559207, - -18.99343238124029, - -18.99371462185287, - -18.99399666653307, - -18.994278515416898, - -18.994560168640284, - -18.994841626339046, - -18.995122888648925, - -18.995403955705566, - -18.995684827644503, - -18.99596550460119, - -18.996245986710992, - -18.996526274109165, - -18.99680636693088, - -18.997086265311214, - -18.99736596938515, - -18.997645479287574, - -18.997924795153278, - -18.998203917116967, - -18.998482845313248, - -18.998761579876632, - -18.999040120941544, - -18.999318468642304, - -18.999596623113156, - -18.999874584488236, - -19.00015235290159, - -19.000429928487172, - -19.00070731137885, - -19.000984501710388, - -19.001261499615463, - -19.00153830522766, - -19.00181491868046, - -19.002091340107274, - -19.0023675696414, - -19.00264360741605, - -19.002919453564346, - -19.003195108219312, - -19.00347057151389, - -19.003745843580923, - -19.004020924553153, - -19.004295814563246, - -19.004570513743765, - -19.004845022227187, - -19.005119340145896, - -19.005393467632178, - -19.005667404818233, - -19.005941151836172, - -19.006214708818007, - -19.00648807589566, - -19.006761253200967, - -19.007034240865668, - -19.00730703902141, - -19.00757964779975, - -19.007852067332163, - -19.008124297750012, - -19.00839633918459, - -19.008668191767082, - -19.008939855628597, - -19.009211330900143, - -19.00948261771264, - -19.009753716196915, - -19.01002462648371, - -19.010295348703668, - -19.010565882987347, - -19.010836229465216, - -19.011106388267645, - -19.011376359524924, - -19.011646143367244, - -19.01191573992471, - -19.012185149327337, - -19.012454371705047, - -19.012723407187675, - -19.012992255904962, - -19.013260917986564, - -19.01352939356204, - -19.013797682760867, - -19.01406578571243, - -19.014333702546015, - -19.014601433390833, - -19.014868978375997, - -19.015136337630526, - -19.015403511283363, - -19.015670499463347, - -19.015937302299236, - -19.016203919919693, - -19.0164703524533, - -19.016736600028544, - -19.017002662773823, - -19.017268540817447, - -19.017534234287634, - -19.017799743312523, - -19.018065068020146, - -19.018330208538465, - -19.01859516499534, - -19.01885993751855, - -19.019124526235778, - -19.01938893127463, - -19.019653152762608, - -19.019917190827137, - -19.020181045595553, - -19.0204447171951, - -19.020708205752932, - -19.020971511396116, - -19.021234634251638, - -19.021497574446382, - -19.021760332107156, - -19.02202290736068, - -19.02228530033357, - -19.02254751115238, - -19.02280953994355, - -19.02307138683345, - -19.02333305194836, - -19.02359453541446, - -19.02385583735786, - -19.024116957904567, - -19.02437789718051, - -19.024638655311527, - -19.02489923242337, - -19.025159628641703, - -19.0254198440921, - -19.025679878900053, - -19.025939733190967, - -19.026199407090157, - -19.026458900722847, - -19.026718214214185, - -19.026977347689222, - -19.027236301272925, - -19.02749507509018, - -19.027753669265774, - -19.02801208392442, - -19.028270319190735, - -19.02852837518926, - -19.02878625204444, - -19.029043949880638, - -19.029301468822126, - -19.029558808993098, - -19.029815970517657, - -19.030072953519813, - -19.030329758123507, - -19.030586384452576, - -19.030842832630782, - -19.0310991027818, - -19.03135519502921, - -19.031611109496524, - -19.031866846307146, - -19.032122405584413, - -19.03237778745157, - -19.032632992031772, - -19.03288801944809, - -19.033142869823518, - -19.03339754328096, - -19.03365203994322, - -19.03390635993304, - -19.03416050337307, - -19.03441447038586, - -19.034668261093902, - -19.03492187561957, - -19.035175314085183, - -19.035428576612958, - -19.03568166332503, - -19.035934574343454, - -19.036187309790197, - -19.036439869787138, - -19.036692254456078, - -19.036944463918726, - -19.03719649829672, - -19.037448357711593, - -19.037700042284815, - -19.037951552137752, - -19.038202887391705, - -19.038454048167875, - -19.038705034587387, - -19.03895584677128, - -19.03920648484051, - -19.039456948915944, - -19.039707239118375, - -19.0399573555685, - -19.040207298386946, - -19.04045706769424, - -19.04070666361084, - -19.04095608625711, - -19.04120533575334, - -19.04145441221973, - -19.04170331577639, - -19.04195204654337, - -19.042200604640605, - -19.04244899018797, - -19.042697203305256, - -19.042945244112158, - -19.043193112728293, - -19.0434408092732, - -19.043688333866328, - -19.04393568662705, - -19.04418286767465, - -19.044429877128334, - -19.04467671510722, - -19.04492338173035, - -19.045169877116678, - -19.045416201385077, - -19.045662354654336, - -19.045908337043166, - -19.046154148670194, - -19.046399789653957, - -19.046645260112925, - -19.04689056016547, - -19.047135689929892, - -19.047380649524403, - -19.047625439067136, - -19.047870058676146, - -19.048114508469396, - -19.048358788564776, - -19.048602899080088, - -19.04884684013306, - -19.049090611841326, - -19.04933421432245, - -19.049577647693912, - -19.049820912073105, - -19.050064007577344, - -19.050306934323867, - -19.050549692429822, - -19.05079228201228, - -19.051034703188233, - -19.051276956074584, - -19.05151904078817, - -19.051760957445726, - -19.052002706163925, - -19.052244287059345, - -19.052485700248496, - -19.052726945847795, - -19.052968023973587, - -19.053208934742127, - -19.0534496782696, - -19.05369025467211, - -19.05393066406566, - -19.054170906566203, - -19.054410982289593, - -19.0546508913516, - -19.05489063386793, - -19.0551302099542, - -19.055369619725937, - -19.055608863298605, - -19.05584794078758, - -19.056086852308155, - -19.056325597975544, - -19.056564177904885, - -19.056802592211238, - -19.05704084100957, - -19.057278924414785, - -19.057516842541695, - -19.057754595505042, - -19.057992183419476, - -19.058229606399582, - -19.058466864559854, - -19.058703958014707, - -19.05894088687849, - -19.05917765126545, - -19.059414251289777, - -19.059650687065567, - -19.059886958706844, - -19.060123066327556, - -19.060359010041555, - -19.060594789962636, - -19.0608304062045, - -19.06106585888077, - -19.061301148105, - -19.061536273990654, - -19.06177123665113, - -19.06200603619973, - -19.06224067274969, - -19.06247514641417, - -19.06270945730624, - -19.062943605538898, - -19.063177591225063, - -19.063411414477574, - -19.063645075409195, - -19.063878574132612, - -19.064111910760424, - -19.06434508540516, - -19.064578098179275, - -19.064810949195135, - -19.065043638565033, - -19.065276166401187, - -19.06550853281573, - -19.065740737920727, - -19.065972781828155, - -19.06620466464992, - -19.06643638649785, - -19.066667947483687, - -19.06689934771911, - -19.067130587315706, - -19.067361666384997, - -19.067592585038415, - -19.067823343387328, - -19.068053941543017, - -19.06828437961669, - -19.06851465771947, - -19.068744775962415, - -19.0689747344565, - -19.06920453331262, - -19.069434172641603, - -19.069663652554187, - -19.069892973161043, - -19.07012213457276, - -19.07035113689985, - -19.070579980252752, - -19.07080866474183, - -19.07103719047736, - -19.071265557569554, - -19.071493766128544, - -19.071721816264382, - -19.071949708087043, - -19.072177441706437, - -19.07240501723238, - -19.072632434774626, - -19.072859694442847, - -19.07308679634664, - -19.073313740595523, - -19.07354052729895, - -19.073767156566273, - -19.073993628506802, - -19.074219943229743, - -19.074446100844238, - -19.074672101459356, - -19.074897945184084, - -19.075123632127337, - -19.075349162397952, - -19.075574536104693, - -19.075799753356247, - -19.076024814261224, - -19.07624971892816, - -19.07647446746552, - -19.076699059981685, - -19.076923496584968, - -19.077147777383605, - -19.077371902485755, - -19.077595871999502, - -19.077819686032857, - -19.078043344693754, - -19.078266848090056, - -19.078490196329543, - -19.078713389519933, - -19.078936427768856, - -19.079159311183872, - -19.079382039872474, - -19.079604613942063, - -19.07982703349999, - -19.080049298653503, - -19.080271409509795, - -19.080493366175986, - -19.08071516875911, - -19.080936817366133, - -19.08115831210394, - -19.081379653079356, - -19.08160084039912, - -19.0818218741699, - -19.082042754498293, - -19.082263481490813, - -19.08248405525391, - -19.08270447589396, - -19.082924743517257, - -19.083144858230025, - -19.083364820138417, - -19.08358462934851, - -19.083804285966313, - -19.084023790097746, - -19.08424314184867, - -19.084462341324873, - -19.084681388632056, - -19.08490028387586, - -19.085119027161845, - -19.085337618595506, - -19.085556058282258, - -19.08577434632744, - -19.085992482836325, - -19.086210467914107, - -19.086428301665915, - -19.0866459841968, - -19.086863515611736, - -19.087080896015628, - -19.08729812551331, - -19.08751520420954, - -19.087732132209013, - -19.087948909616333, - -19.088165536536046, - -19.08838201307262, - -19.088598339330453, - -19.088814515413866, - -19.089030541427114, - -19.089246417474374, - -19.089462143659755, - -19.08967772008729, - -19.089893146860945, - -19.0901084240846, - -19.090323551862085, - -19.090538530297138, - -19.09075335949344, - -19.09096803955459, - -19.091182570584113, - -19.091396952685475, - -19.091611185962055, - -19.091825270517173, - -19.09203920645407, - -19.092252993875924, - -19.092466632885824, - -19.0926801235868, - -19.092893466081815, - -19.093106660473747, - -19.093319706865415, - -19.09353260535956, - -19.09374535605885, - -19.09395795906589, - -19.0941704144832, - -19.09438272241325, - -19.094594882958415, - -19.094806896221012, - -19.095018762303287, - -19.095230481307414, - -19.095442053335493, - -19.09565347848956, - -19.095864756871567, - -19.09607588858341, - -19.096286873726907, - -19.096497712403806, - -19.096708404715784, - -19.096918950764447, - -19.097129350651333, - -19.09733960447791, - -19.097549712345568, - -19.097759674355636, - -19.09796949060937, - -19.098179161207952, - -19.098388686252495, - -19.098598065844048, - -19.098807300083582, - -19.099016389072, - -19.099225332910137, - -19.099434131698754, - -19.099642785538553, - -19.099851294530147, - -19.1000596587741, - -19.10026787837089, - -19.100475953420933, - -19.100683884024573, - -19.10089167028209, - -19.101099312293684, - -19.101306810159492, - -19.101514163979584, - -19.10172137385395, - -19.101928439882528, - -19.102135362165168, - -19.10234214080166, - -19.102548775891727, - -19.102755267535017, - -19.10296161583111, - -19.10316782087952, - -19.103373882779692, - -19.103579801630996, - -19.10378557753274, - -19.103991210584155, - -19.104196700884415, - -19.104402048532616, - -19.104607253627787, - -19.104812316268884, - -19.105017236554808, - -19.105222014584378, - -19.105426650456348, - -19.105631144269402, - -19.105835496122168, - -19.106039706113183, - -19.106243774340935, - -19.106447700903836, - -19.106651485900226, - -19.10685512942839, - -19.107058631586526, - -19.107261992472775, - -19.107465212185215, - -19.10766829082184, - -19.107871228480594, - -19.108074025259338, - -19.108276681255877, - -19.108479196567938, - -19.108681571293186, - -19.108883805529217, - -19.10908589937356, - -19.109287852923675, - -19.10948966627695, - -19.10969133953072, - -19.109892872782233, - -19.110094266128687, - -19.110295519667197, - -19.11049663349482, - -19.11069760770855, - -19.110898442405297, - -19.111099137681926, - -19.111299693635214, - -19.11150011036188, - -19.111700387958585, - -19.111900526521904, - -19.112100526148353, - -19.11230038693439, - -19.112500108976395, - -19.112699692370683, - -19.112899137213507, - -19.113098443601046, - -19.113297611629424, - -19.11349664139468, - -19.1136955329928, - -19.113894286519702, - -19.11409290207124, - -19.11429137974319, - -19.11448971963127, - -19.11468792183113, - -19.114885986438352, - -19.11508391354846, - -19.115281703256898, - -19.115479355659055, - -19.115676870850244, - -19.11587424892572, - -19.116071489980676, - -19.116268594110224, - -19.116465561409417, - -19.11666239197325, - -19.11685908589664, - -19.117055643274448, - -19.117252064201455, - -19.117448348772395, - -19.117644497081926, - -19.117840509224635, - -19.118036385295056, - -19.118232125387646, - -19.118427729596803, - -19.118623198016863, - -19.118818530742082, - -19.119013727866665, - -19.119208789484745, - -19.11940371569039, - -19.11959850657761, - -19.119793162240335, - -19.119987682772443, - -19.120182068267745, - -19.120376318819975, - -19.12057043452282, - -19.120764415469885, - -19.120958261754726, - -19.121151973470823, - -19.12134555071159, - -19.121538993570386, - -19.121732302140497, - -19.121925476515145, - -19.12211851678749, - -19.12231142305063, - -19.122504195397585, - -19.12269683392133, - -19.122889338714764, - -19.123081709870718, - -19.12327394748197, - -19.123466051641216, - -19.123658022441113, - -19.123849859974232, - -19.124041564333087, - -19.124233135610133, - -19.12442457389775, - -19.12461587928826, - -19.124807051873923, - -19.12499809174693, - -19.12518899899942, - -19.125379773723445, - -19.125570416011016, - -19.125760925954065, - -19.125951303644474, - -19.126141549174044, - -19.126331662634524, - -19.1265216441176, - -19.12671149371489, - -19.126901211517946, - -19.127090797618266, - -19.127280252107276, - -19.12746957507634, - -19.127658766616758, - -19.12784782681977, - -19.128036755776556, - -19.12822555357822, - -19.128414220315815, - -19.128602756080323, - -19.128791160962667, - -19.128979435053704, - -19.129167578444235, - -19.12935559122499, - -19.12954347348664, - -19.129731225319784, - -19.129918846814977, - -19.130106338062692, - -19.13029369915335, - -19.130480930177306, - -19.130668031224857, - -19.130855002386227, - -19.13104184375159, - -19.13122855541104, - -19.13141513745463, - -19.131601589972338, - -19.13178791305408, - -19.131974106789706, - -19.132160171269014, - -19.132346106581732, - -19.132531912817527, - -19.132717590066008, - -19.132903138416715, - -19.133088557959134, - -19.133273848782682, - -19.13345901097671, - -19.133644044630522, - -19.133828949833347, - -19.134013726674358, - -19.134198375242658, - -19.1343828956273, - -19.134567287917275, - -19.134751552201493, - -19.134935688568827, - -19.13511969710807, - -19.13530357790797, - -19.135487331057192, - -19.13567095664436, - -19.13585445475803, - -19.136037825486685, - -19.13622106891876, - -19.13640418514263, - -19.1365871742466, - -19.136770036318914, - -19.136952771447763, - -19.13713537972127, - -19.137317861227494, - -19.137500216054445, - -19.137682444290057, - -19.13786454602221, - -19.138046521338733, - -19.138228370327376, - -19.138410093075834, - -19.13859168967175, - -19.138773160202696, - -19.138954504756185, - -19.139135723419678, - -19.13931681628056, - -19.13949778342616, - -19.139678624943766, - -19.13985934092058, - -19.14003993144375, - -19.14022039660037, - -19.14040073647747, - -19.140580951162022, - -19.140761040740927, - -19.14094100530104, - -19.14112084492915, - -19.141300559711986, - -19.14148014973621, - -19.141659615088432, - -19.141838955855203, - -19.14201817212301, - -19.142197263978275, - -19.142376231507374, - -19.142555074796608, - -19.14273379393223, - -19.142912389000422, - -19.143090860087316, - -19.14326920727898, - -19.14344743066142, - -19.14362553032059, - -19.143803506342373, - -19.143981358812603, - -19.144159087817048, - -19.144336693441417, - -19.144514175771363, - -19.144691534892477, - -19.14486877089029, - -19.145045883850276, - -19.145222873857847, - -19.14539974099836, - -19.145576485357108, - -19.145753107019324, - -19.145929606070183, - -19.14610598259481, - -19.146282236678257, - -19.146458368405522, - -19.14663437786155, - -19.146810265131222, - -19.146986030299356, - -19.147161673450714, - -19.14733719467001, - -19.14751259404188, - -19.147687871650916, - -19.147863027581643, - -19.14803806191853, - -19.14821297474599, - -19.14838776614838, - -19.148562436209986, - -19.148736985015045, - -19.148911412647738, - -19.149085719192176, - -19.149259904732425, - -19.149433969352483, - -19.149607913136293, - -19.149781736167746, - -19.149955438530657, - -19.150129020308807, - -19.150302481585904, - -19.15047582244559, - -19.150649042971473, - -19.150822143247076, - -19.150995123355887, - -19.151167983381324, - -19.151340723406747, - -19.15151334351546, - -19.151685843790712, - -19.151858224315696, - -19.152030485173533, - -19.152202626447302, - -19.152374648220018, - -19.15254655057464, - -19.152718333594066, - -19.15288999736114, - -19.15306154195865, - -19.153232967469318, - -19.153404273975823, - -19.15357546156077, - -19.15374653030672, - -19.153917480296165, - -19.154088311611556, - -19.154259024335268, - -19.15442961854963, - -19.154600094336917, - -19.15477045177934, - -19.154940690959045, - -19.15511081195814, - -19.155280814858664, - -19.155450699742598, - -19.155620466691875, - -19.155790115788363, - -19.155959647113875, - -19.15612906075017, - -19.156298356778947, - -19.15646753528185, - -19.156636596340462, - -19.15680554003632, - -19.156974366450893, - -19.1571430756656, - -19.157311667761803, - -19.157480142820802, - -19.157648500923848, - -19.15781674215213, - -19.157984866586784, - -19.158152874308886, - -19.158320765399463, - -19.158488539939476, - -19.15865619800984, - -19.158823739691407, - -19.158991165064972, - -19.159158474211278, - -19.159325667211007, - -19.159492744144792, - -19.159659705093212, - -19.15982655013677, - -19.15999327935594, - -19.16015989283113, - -19.160326390642673, - -19.160492772870878, - -19.160659039595977, - -19.160825190898155, - -19.160991226857544, - -19.161157147554203, - -19.161322953068158, - -19.161488643479366, - -19.161654218867728, - -19.1618196793131, - -19.161985024895273, - -19.162150255693984, - -19.162315371788914, - -19.162480373259697, - -19.162645260185904, - -19.162810032647048, - -19.162974690722592, - -19.163139234491947, - -19.163303664034462, - -19.163467979429434, - -19.163632180756103, - -19.16379626809366, - -19.163960241521227, - -19.164124101117896, - -19.164287846962676, - -19.164451479134538, - -19.164614997712395, - -19.164778402775102, - -19.164941694401467, - -19.16510487267023, - -19.16526793766009, - -19.16543088944968, - -19.165593728117596, - -19.165756453742354, - -19.165919066402434, - -19.16608156617626, - -19.166243953142192, - -19.166406227378545, - -19.166568388963576, - -19.166730437975485, - -19.166892374492427, - -19.167054198592492, - -19.16721591035372, - -19.167377509854095, - -19.167538997171555, - -19.167700372383976, - -19.167861635569178, - -19.168022786804933, - -19.168183826168956, - -19.168344753738907, - -19.1685055695924, - -19.168666273806984, - -19.16882686646016, - -19.168987347629372, - -19.16914771739202, - -19.169307975825433, - -19.1694681230069, - -19.16962815901366, - -19.169788083922878, - -19.16994789781169, - -19.170107600757156, - -19.1702671928363, - -19.170426674126084, - -19.17058604470342, - -19.17074530464516, - -19.170904454028115, - -19.17106349292903, - -19.171222421424602, - -19.17138123959148, - -19.171539947506243, - -19.171698545245444, - -19.17185703288556, - -19.172015410503015, - -19.172173678174197, - -19.172331835975427, - -19.17248988398298, - -19.17264782227307, - -19.17280565092187, - -19.172963370005487, - -19.173120979599986, - -19.17327847978137, - -19.1734358706256, - -19.17359315220857, - -19.17375032460614, - -19.173907387894097, - -19.174064342148196, - -19.174221187444115, - -19.174377923857506, - -19.174534551463946, - -19.174691070338977, - -19.17484748055807, - -19.17500378219667, - -19.17515997533014, - -19.175316060033808, - -19.175472036382953, - -19.175627904452785, - -19.17578366431848, - -19.17593931605515, - -19.176094859737862, - -19.176250295441623, - -19.17640562324139, - -19.17656084321208, - -19.17671595542854, - -19.176870959965576, - -19.17702585689794, - -19.177180646300332, - -19.1773353282474, - -19.177489902813736, - -19.177644370073885, - -19.177798730102346, - -19.17795298297355, - -19.17810712876189, - -19.178261167541706, - -19.17841509938728, - -19.178568924372847, - -19.17872264257259, - -19.178876254060643, - -19.17902975891108, - -19.179183157197933, - -19.179336448995176, - -19.17948963437674, - -19.17964271341649, - -19.17979568618826, - -19.17994855276581, - -19.18010131322287, - -19.180253967633107, - -19.180406516070136, - -19.180558958607524, - -19.180711295318787, - -19.180863526277392, - -19.181015651556752, - -19.18116767123023, - -19.18131958537114, - -19.18147139405274, - -19.18162309734824, - -19.1817746953308, - -19.181926188073533, - -19.182077575649487, - -19.18222885813168, - -19.18238003559306, - -19.182531108106538, - -19.182682075744967, - -19.182832938581154, - -19.18298369668785, - -19.183134350137756, - -19.18328489900353, - -19.18343534335778, - -19.183585683273048, - -19.183735918821835, - -19.1838860500766, - -19.184036077109745, - -19.184185999993613, - -19.18433581880051, - -19.184485533602686, - -19.18463514447234, - -19.18478465148163, - -19.184934054702644, - -19.185083354207435, - -19.18523255006801, - -19.18538164235632, - -19.185530631144257, - -19.185679516503672, - -19.18582829850637, - -19.1859769772241, - -19.186125552728562, - -19.18627402509141, - -19.18642239438424, - -19.18657066067861, - -19.186718824046014, - -19.18686688455791, - -19.1870148422857, - -19.187162697300735, - -19.187310449674317, - -19.18745809947771, - -19.187605646782103, - -19.187753091658667, - -19.187900434178495, - -19.18804767441265, - -19.188194812432137, - -19.188341848307918, - -19.188488782110895, - -19.18863561391193, - -19.188782343781835, - -19.18892897179137, - -19.189075498011242, - -19.18922192251212, - -19.189368245364616, - -19.189514466639295, - -19.18966058640667, - -19.18980660473721, - -19.189952521701333, - -19.190098337369406, - -19.19024405181175, - -19.19038966509864, - -19.19053517730029, - -19.19068058848688, - -19.190825898728537, - -19.19097110809533, - -19.191116216657296, - -19.191261224484403, - -19.19140613164659, - -19.191550938213734, - -19.191695644255674, - -19.191840249842187, - -19.19198475504302, - -19.192129159927852, - -19.192273464566323, - -19.192417669028032, - -19.192561773382515, - -19.192705777699267, - -19.19284968204774, - -19.192993486497326, - -19.19313719111738, - -19.193280795977202, - -19.19342430114604, - -19.193567706693113, - -19.19371101268757, - -19.19385421919852, - -19.19399732629503, - -19.194140334046107, - -19.194283242520722, - -19.194426051787794, - -19.194568761916187, - -19.19471137297473, - -19.194853885032195, - -19.19499629815731, - -19.195138612418752, - -19.195280827885153, - -19.195422944625097, - -19.195564962707124, - -19.195706882199715, - -19.19584870317132, - -19.195990425690326, - -19.196132049825078, - -19.19627357564388, - -19.196415003214984, - -19.196556332606587, - -19.19669756388685, - -19.196838697123884, - -19.196979732385746, - -19.197120669740457, - -19.197261509255977, - -19.197402251000234, - -19.197542895041096, - -19.197683441446387, - -19.197823890283892, - -19.19796424162134, - -19.198104495526415, - -19.19824465206676, - -19.198384711309956, - -19.198524673323558, - -19.198664538175056, - -19.1988043059319, - -19.1989439766615, - -19.199083550431208, - -19.19922302730833, - -19.199362407360137, - -19.19950169065384, - -19.19964087725661, - -19.19977996723557, - -19.1999189606578, - -19.200057857590327, - -19.200196658100136, - -19.20033536225416, - -19.200473970119294, - -19.20061248176238, - -19.200750897250217, - -19.200889216649554, - -19.201027440027097, - -19.201165567449504, - -19.20130359898339, - -19.20144153469532, - -19.201579374651814, - -19.201717118919344, - -19.20185476756434, - -19.20199232065318, - -19.202129778252203, - -19.202267140427697, - -19.202404407245904, - -19.202541578773022, - -19.202678655075207, - -19.20281563621856, - -19.20295252226914, - -19.20308931329296, - -19.20322600935599, - -19.203362610524152, - -19.203499116863327, - -19.203635528439335, - -19.203771845317966, - -19.203908067564964, - -19.204044195246016, - -19.204180228426775, - -19.20431616717284, - -19.20445201154977, - -19.204587761623074, - -19.20472341745822, - -19.204858979120626, - -19.20499444667567, - -19.205129820188677, - -19.20526509972494, - -19.20540028534969, - -19.205535377128122, - -19.205670375125386, - -19.205805279406587, - -19.205940090036776, - -19.206074807080974, - -19.206209430604147, - -19.206343960671212, - -19.206478397347055, - -19.206612740696503, - -19.206746990784342, - -19.20688114767532, - -19.20701521143413, - -19.207149182125427, - -19.20728305981382, - -19.207416844563866, - -19.20755053644009, - -19.207684135506963, - -19.20781764182891, - -19.20795105547032, - -19.20808437649553, - -19.208217604968837, - -19.208350740954483, - -19.208483784516684, - -19.20861673571959, - -19.208749594627324, - -19.20888236130396, - -19.209015035813515, - -19.20914761821998, - -19.209280108587294, - -19.209412506979348, - -19.20954481345999, - -19.209677028093026, - -19.209809150942217, - -19.20994118207128, - -19.21007312154389, - -19.21020496942367, - -19.210336725774212, - -19.21046839065905, - -19.21059996414168, - -19.21073144628555, - -19.210862837154075, - -19.210994136810616, - -19.211125345318493, - -19.21125646274098, - -19.211387489141313, - -19.21151842458267, - -19.21164926912821, - -19.21178002284102, - -19.21191068578416, - -19.212041258020648, - -19.21217173961345, - -19.212302130625485, - -19.212432431119645, - -19.21256264115876, - -19.212692760805627, - -19.212822790122996, - -19.212952729173573, - -19.21308257802002, - -19.213212336724965, - -19.213342005350977, - -19.21347158396059, - -19.2136010726163, - -19.213730471380543, - -19.213859780315733, - -19.213988999484222, - -19.214118128948325, - -19.21424716877032, - -19.214376119012435, - -19.21450497973686, - -19.21463375100573, - -19.214762432881155, - -19.214891025425185, - -19.215019528699838, - -19.215147942767086, - -19.21527626768885, - -19.215404503527026, - -19.215532650343448, - -19.21566070819992, - -19.215788677158198, - -19.21591655727999, - -19.21604434862697, - -19.216172051260763, - -19.21629966524296, - -19.216427190635102, - -19.216554627498684, - -19.216681975895163, - -19.21680923588596, - -19.216936407532437, - -19.21706349089593, - -19.217190486037726, - -19.217317393019066, - -19.21744421190115, - -19.217570942745137, - -19.217697585612147, - -19.217824140563252, - -19.21795060765948, - -19.218076986961826, - -19.21820327853123, - -19.2183294824286, - -19.2184555987148, - -19.218581627450654, - -19.21870756869693, - -19.21883342251437, - -19.218959188963662, - -19.219084868105462, - -19.219210460000376, - -19.219335964708975, - -19.219461382291783, - -19.21958671280928, - -19.21971195632191, - -19.21983711289007, - -19.21996218257412, - -19.22008716543437, - -19.2202120615311, - -19.220336870924537, - -19.220461593674873, - -19.220586229842255, - -19.220710779486787, - -19.220835242668535, - -19.220959619447527, - -19.221083909883735, - -19.221208114037104, - -19.221332231967533, - -19.221456263734872, - -19.22158020939894, - -19.221704069019513, - -19.22182784265632, - -19.22195153036905, - -19.222075132217352, - -19.222198648260832, - -19.222322078559056, - -19.222445423171557, - -19.222568682157807, - -19.222691855577253, - -19.222814943489297, - -19.222937945953298, - -19.22306086302857, - -19.2231836947744, - -19.223306441250013, - -19.22342910251461, - -19.223551678627345, - -19.223674169647325, - -19.223796575633628, - -19.223918896645284, - -19.224041132741277, - -19.224163283980563, - -19.224285350422047, - -19.224407332124592, - -19.22452922914703, - -19.224651041548146, - -19.22477276938668, - -19.224894412721337, - -19.22501597161078, - -19.225137446113635, - -19.22525883628848, - -19.225380142193853, - -19.225501363888256, - -19.225622501430152, - -19.22574355487796, - -19.225864524290053, - -19.22598540972477, - -19.226106211240417, - -19.22622692889524, - -19.22634756274746, - -19.226468112855255, - -19.226588579276754, - -19.22670896207006, - -19.226829261293226, - -19.22694947700426, - -19.227069609261147, - -19.227189658121816, - -19.22730962364416, - -19.227429505886033, - -19.22754930490525, - -19.22766902075958, - -19.227788653506764, - -19.22790820320449, - -19.22802766991041, - -19.228147053682143, - -19.228266354577258, - -19.22838557265329, - -19.22850470796773, - -19.228623760578035, - -19.228742730541615, - -19.228861617915847, - -19.22898042275806, - -19.229099145125552, - -19.229217785075576, - -19.229336342665345, - -19.229454817952035, - -19.229573210992786, - -19.229691521844686, - -19.22980975056479, - -19.22992789721012, - -19.230045961837654, - -19.23016394450432, - -19.230281845267022, - -19.230399664182617, - -19.230517401307925, - -19.23063505669972, - -19.23075263041475, - -19.230870122509707, - -19.230987533041255, - -19.23110486206602, - -19.231222109640573, - -19.23133927582147, - -19.231456360665206, - -19.23157336422825, - -19.231690286567023, - -19.231807127737916, - -19.231923887797276, - -19.232040566801405, - -19.232157164806576, - -19.23227368186902, - -19.23239011804493, - -19.232506473390448, - -19.232622747961692, - -19.232738941814738, - -19.232855055005622, - -19.232971087590336, - -19.233087039624834, - -19.233202911165044, - -19.23331870226684, - -19.233434412986057, - -19.233550043378507, - -19.233665593499946, - -19.233781063406102, - -19.23389645315266, - -19.234011762795266, - -19.234126992389527, - -19.234242141991018, - -19.234357211655265, - -19.234472201437764, - -19.23458711139397, - -19.234701941579296, - -19.23481669204912, - -19.234931362858777, - -19.235045954063576, - -19.23516046571877, - -19.235274897879588, - -19.235389250601216, - -19.235503523938796, - -19.23561771794744, - -19.23573183268222, - -19.235845868198165, - -19.23595982455027, - -19.23607370179349, - -19.236187499982744, - -19.236301219172912, - -19.236414859418833, - -19.236528420775315, - -19.23664190329712, - -19.236755307038973, - -19.236868632055565, - -19.23698187840155, - -19.23709504613154, - -19.237208135300108, - -19.237321145961797, - -19.2374340781711, - -19.237546931982482, - -19.23765970745037, - -19.237772404629144, - -19.23788502357316, - -19.237997564336727, - -19.238110026974113, - -19.238222411539557, - -19.238334718087255, - -19.23844694667137, - -19.238559097346023, - -19.2386711701653, - -19.238783165183246, - -19.238895082453876, - -19.23900692203116, - -19.23911868396903, - -19.239230368321383, - -19.239341975142086, - -19.239453504484956, - -19.23956495640378, - -19.239676330952303, - -19.239787628184242, - -19.239898848153263, - -19.24000999091301, - -19.24012105651708, - -19.24023204501903, - -19.24034295647239, - -19.24045379093064, - -19.24056454844724, - -19.2406752290756, - -19.240785832869086, - -19.240896359881052, - -19.241006810164794, - -19.24111718377357, - -19.24122748076062, - -19.241337701179127, - -19.24144784508225, - -19.241557912523103, - -19.241667903554767, - -19.241777818230286, - -19.241887656602664, - -19.241997418724875, - -19.242107104649854, - -19.24221671443049, - -19.242326248119646, - -19.242435705770145, - -19.242545087434777, - -19.242654393166287, - -19.24276362301739, - -19.24287277704076, - -19.242981855289038, - -19.24309085781483, - -19.2431997846707, - -19.24330863590918, - -19.243417411582765, - -19.24352611174391, - -19.243634736445035, - -19.243743285738528, - -19.24385175967673, - -19.243960158311964, - -19.244068481696495, - -19.244176729882568, - -19.244284902922388, - -19.244393000868115, - -19.244501023771885, - -19.244608971685793, - -19.24471684466189, - -19.244824642752207, - -19.244932366008726, - -19.245040014483394, - -19.245147588228132, - -19.245255087294808, - -19.245362511735273, - -19.24546986160133, - -19.245577136944743, - -19.245684337817256, - -19.24579146427056, - -19.245898516356316, - -19.246005494126155, - -19.246112397631666, - -19.2462192269244, - -19.24632598205588, - -19.24643266307759, - -19.246539270040973, - -19.246645802997442, - -19.246752261998374, - -19.246858647095106, - -19.246964958338946, - -19.247071195781164, - -19.24717735947299, - -19.24728344946562, - -19.247389465810222, - -19.24749540855792, - -19.247601277759806, - -19.247707073466934, - -19.247812795730326, - -19.247918444600963, - -19.248024020129797, - -19.248129522367748, - -19.24823495136569, - -19.24834030717446, - -19.248445589844877, - -19.248550799427704, - -19.248655935973687, - -19.248760999533527, - -19.24886599015789, - -19.248970907897405, - -19.249075752802668, - -19.24918052492425, - -19.249285224312665, - -19.249389851018417, - -19.249494405091955, - -19.2495988865837, - -19.249703295544045, - -19.249807632023334, - -19.24991189607189, - -19.25001608773999, - -19.25012020707788, - -19.25022425413578, - -19.25032822896386, - -19.25043213161226, - -19.250535962131092, - -19.25063972057043, - -19.250743406980305, - -19.250847021410728, - -19.250950563911665, - -19.251054034533045, - -19.251157433324774, - -19.25126076033671, - -19.251364015618687, - -19.2514671992205, - -19.251570311191905, - -19.251673351582635, - -19.251776320442378, - -19.25187921782079, - -19.251982043767494, - -19.25208479833208, - -19.252187481564103, - -19.25229009351308, - -19.25239263422849, - -19.252495103759795, - -19.2525975021564, - -19.252699829467698, - -19.252802085743028, - -19.25290427103171, - -19.25300638538302, - -19.2531084288462, - -19.253210401470465, - -19.25331230330499, - -19.253414134398916, - -19.253515894801357, - -19.25361758456138, - -19.25371920372803, - -19.253820752350308, - -19.253922230477194, - -19.25402363815762, - -19.25412497544049, - -19.254226242374678, - -19.25432743900902, - -19.254428565392317, - -19.254529621573337, - -19.254630607600816, - -19.254731523523454, - -19.25483236938992, - -19.25493314524884, - -19.255033851148823, - -19.255134487138427, - -19.255235053266194, - -19.25533554958061, - -19.255435976130148, - -19.255536332963235, - -19.255636620128268, - -19.255736837673613, - -19.2558369856476, - -19.255937064098532, - -19.25603707307466, - -19.25613701262422, - -19.256236882795406, - -19.256336683636384, - -19.256436415195285, - -19.256536077520195, - -19.256635670659186, - -19.256735194660283, - -19.256834649571484, - -19.25693403544075, - -19.25703335231601, - -19.25713260024516, - -19.257231779276065, - -19.257330889456547, - -19.257429930834412, - -19.257528903457416, - -19.257627807373293, - -19.257726642629738, - -19.25782540927441, - -19.25792410735495, - -19.258022736918946, - -19.258121298013968, - -19.258219790687544, - -19.258318214987174, - -19.258416570960325, - -19.258514858654422, - -19.258613078116877, - -19.258711229395043, - -19.258809312536265, - -19.25890732758784, - -19.25900527459703, - -19.259103153611083, - -19.25920096467719, - -19.25929870784253, - -19.25939638315423, - -19.259493990659397, - -19.259591530405107, - -19.259689002438396, - -19.25978640680627, - -19.259883743555704, - -19.25998101273364, - -19.260078214386983, - -19.260175348562612, - -19.260272415307366, - -19.260369414668062, - -19.260466346691473, - -19.260563211424344, - -19.260660008913394, - -19.2607567392053, - -19.260853402346708, - -19.260949998384238, - -19.261046527364474, - -19.26114298933397, - -19.261239384339234, - -19.261335712426764, - -19.26143197364301, - -19.261528168034395, - -19.261624295647312, - -19.261720356528112, - -19.261816350723127, - -19.261912278278647, - -19.262008139240933, - -19.262103933656217, - -19.262199661570694, - -19.262295323030532, - -19.26239091808186, - -19.26248644677078, - -19.26258190914336, - -19.262677305245642, - -19.26277263512363, - -19.26286789882329, - -19.26296309639057, - -19.26305822787138, - -19.263153293311593, - -19.26324829275706, - -19.263343226253586, - -19.26343809384696, - -19.263532895582934, - -19.26362763150722, - -19.26372230166551, - -19.263816906103454, - -19.26391144486668, - -19.264005918000773, - -19.2641003255513, - -19.264194667563793, - -19.264288944083734, - -19.264383155156604, - -19.264477300827824, - -19.264571381142805, - -19.26466539614691, - -19.264759345885484, - -19.264853230403833, - -19.264947049747235, - -19.26504080396093, - -19.26513449309013, - -19.265228117180023, - -19.265321676275757, - -19.26541517042245, - -19.265508599665196, - -19.265601964049043, - -19.26569526361902, - -19.26578849842012, - -19.265881668497308, - -19.265974773895515, - -19.266067814659635, - -19.266160790834547, - -19.266253702465086, - -19.266346549596054, - -19.26643933227223, - -19.266532050538363, - -19.266624704439163, - -19.266717294019312, - -19.26680981932346, - -19.26690228039623, - -19.26699467728221, - -19.26708701002596, - -19.267179278672014, - -19.267271483264857, - -19.26736362384896, - -19.267455700468762, - -19.26754771316866, - -19.267639661993034, - -19.267731546986223, - -19.26782336819254, - -19.267915125656266, - -19.26800681942165, - -19.268098449532914, - -19.268190016034247, - -19.268281518969804, - -19.268372958383715, - -19.268464334320075, - -19.268555646822954, - -19.268646895936385, - -19.268738081704374, - -19.268829204170896, - -19.268920263379893, - -19.26901125937528, - -19.269102192200936, - -19.269193061900722, - -19.269283868518453, - -19.269374612097927, - -19.2694652926829, - -19.269555910317106, - -19.269646465044243, - -19.269736956907984, - -19.26982738595197, - -19.269917752219808, - -19.270008055755074, - -19.270098296601326, - -19.270188474802076, - -19.270278590400814, - -19.270368643441003, - -19.27045863396606, - -19.2705485620194, - -19.270638427644375, - -19.270728230884334, - -19.27081797178258, - -19.27090765038239, - -19.270997266727015, - -19.271086820859672, - -19.27117631282355, - -19.2712657426618, - -19.271355110417556, - -19.271444416133914, - -19.271533659853944, - -19.27162284162068, - -19.271711961477134, - -19.27180101946628, - -19.271890015631076, - -19.271978950014432, - -19.27206782265924, - -19.272156633608354, - -19.272245382904607, - -19.2723340705908, - -19.272422696709704, - -19.27251126130406, - -19.272599764416572, - -19.272688206089924, - -19.27277658636677, - -19.27286490528973, - -19.272953162901395, - -19.273041359244328, - -19.27312949436106, - -19.2732175682941, - -19.273305581085918, - -19.273393532778957, - -19.273481423415635, - -19.27356925303834, - -19.27365702168942, - -19.27374472941121, - -19.273832376246, - -19.27391996223606, - -19.274007487423635, - -19.274094951850927, - -19.27418235556012, - -19.274269698593365, - -19.274356980992778, - -19.274444202800456, - -19.27453136405846, - -19.274618464808825, - -19.274705505093557, - -19.274792484954627, - -19.274879404433985, - -19.274966263573546, - -19.2750530624152, - -19.275139801000808, - -19.275226479372193, - -19.27531309757116, - -19.275399655639486, - -19.275486153618907, - -19.275572591551136, - -19.275658969477863, - -19.275745287440742, - -19.2758315454814, - -19.275917743641436, - -19.276003881962417, - -19.276089960485884, - -19.276175979253352, - -19.276261938306302, - -19.276347837686185, - -19.27643367743443, - -19.276519457592432, - -19.27660517820156, - -19.27669083930315, - -19.276776440938516, - -19.276861983148933, - -19.276947465975667, - -19.277032889459928, - -19.27711825364292, - -19.27720355856581, - -19.277288804269734, - -19.2773739907958, - -19.277459118185096, - -19.277544186478668, - -19.27762919571754, - -19.27771414594272, - -19.277799037195162, - -19.27788386951581, - -19.277968642945577, - -19.278053357525344, - -19.278138013295962, - -19.278222610298258, - -19.27830714857303, - -19.278391628161046, - -19.27847604910305, - -19.27856041143975, - -19.27864471521183, - -19.278728960459944, - -19.278813147224724, - -19.278897275546772, - -19.27898134546665, - -19.27906535702491, - -19.279149310262063, - -19.279233205218596, - -19.279317041934963, - -19.279400820451603, - -19.279484540808912, - -19.279568203047265, - -19.279651807207014, - -19.27973535332847, - -19.279818841451924, - -19.279902271617644, - -19.279985643865864, - -19.280068958236786, - -19.28015221477059, - -19.280235413507427, - -19.280318554487422, - -19.280401637750668, - -19.28048466333723, - -19.280567631287152, - -19.280650541640444, - -19.28073339443709, - -19.28081618971704, - -19.28089892752023, - -19.28098160788656, - -19.281064230855897, - -19.281146796468093, - -19.28122930476296, - -19.28131175578029, - -19.281394149559848, - -19.281476486141365, - -19.281558765564547, - -19.281640987869082, - -19.28172315309461, - -19.281805261280766, - -19.281887312467138, - -19.281969306693302, - -19.282051243998797, - -19.282133124423137, - -19.28221494800581, - -19.282296714786277, - -19.28237842480397, - -19.282460078098293, - -19.28254167470862, - -19.28262321467431, - -19.282704698034678, - -19.28278612482902, - -19.28286749509661, - -19.282948808876686, - -19.28303006620846, - -19.28311126713112, - -19.283192411683824, - -19.28327349990571, - -19.283354531835876, - -19.283435507513403, - -19.283516426977343, - -19.283597290266716, - -19.28367809742052, - -19.283758848477728, - -19.283839543477278, - -19.283920182458086, - -19.284000765459044, - -19.28408129251901, - -19.28416176367682, - -19.28424217897128, - -19.28432253844117, - -19.284402842125246, - -19.28448309006223, - -19.28456328229083, - -19.28464341884971, - -19.284723499777527, - -19.28480352511289, - -19.284883494894395, - -19.28496340916061, - -19.28504326795007, - -19.28512307130129, - -19.285202819252753, - -19.28528251184292, - -19.28536214911022, - -19.285441731093062, - -19.285521257829824, - -19.285600729358855, - -19.285680145718484, - -19.285759506947006, - -19.285838813082698, - -19.285918064163802, - -19.28599726022854, - -19.286076401315103, - -19.286155487461652, - -19.286234518706333, - -19.28631349508726, - -19.286392416642517, - -19.28647128341016, - -19.286550095428233, - -19.286628852734733, - -19.28670755536765, - -19.286786203364926, - -19.2868647967645, - -19.286943335604274, - -19.287021819922117, - -19.28710024975588, - -19.28717862514339, - -19.287256946122444, - -19.28733521273081, - -19.28741342500623, - -19.287491582986423, - -19.287569686709084, - -19.287647736211877, - -19.287725731532444, - -19.287803672708396, - -19.28788155977732, - -19.287959392776774, - -19.2880371717443, - -19.288114896717406, - -19.288192567733574, - -19.28827018483026, - -19.28834774804489, - -19.288425257414882, - -19.288502712977607, - -19.288580114770415, - -19.28865746283064, - -19.28873475719558, - -19.28881199790251, - -19.288889184988683, - -19.28896631849132, - -19.289043398447618, - -19.28912042489475, - -19.289197397869863, - -19.28927431741008, - -19.289351183552487, - -19.28942799633416, - -19.289504755792144, - -19.28958146196345, - -19.289658114885075, - -19.289734714593983, - -19.289811261127117, - -19.289887754521384, - -19.289964194813685, - -19.290040582040874, - -19.29011691623979, - -19.290193197447252, - -19.29026942570004, - -19.290345601034915, - -19.290421723488617, - -19.290497793097856, - -19.290573809899318, - -19.29064977392966, - -19.29072568522551, - -19.290801543823488, - -19.29087734976017, - -19.290953103072116, - -19.291028803795854, - -19.291104451967893, - -19.29118004762472, - -19.291255590802788, - -19.291331081538523, - -19.291406519868335, - -19.291481905828608, - -19.29155723945569, - -19.291632520785914, - -19.291707749855583, - -19.29178292670098, - -19.291858051358357, - -19.291933123863945, - -19.292008144253945, - -19.292083112564537, - -19.292158028831874, - -19.292232893092088, - -19.292307705381276, - -19.29238246573552, - -19.29245717419088, - -19.292531830783375, - -19.29260643554901, - -19.292680988523767, - -19.292755489743598, - -19.292829939244427, - -19.292904337062165, - -19.292978683232686, - -19.293052977791845, - -19.29312722077547, - -19.293201412219368, - -19.29327555215931, - -19.293349640631057, - -19.29342367767034, - -19.29349766331286, - -19.293571597594294, - -19.293645480550303, - -19.293719312216513, - -19.29379309262853, - -19.29386682182194, - -19.293940499832296, - -19.294014126695124, - -19.29408770244594, - -19.29416122712022, - -19.29423470075342, - -19.29430812338098, - -19.2943814950383, - -19.294454815760773, - -19.29452808558375, - -19.294601304542567, - -19.29467447267254, - -19.29474759000895, - -19.294820656587056, - -19.294893672442097, - -19.294966637609285, - -19.29503955212381, - -19.29511241602083, - -19.29518522933549, - -19.2952579921029, - -19.29533070435815, - -19.29540336613631, - -19.295475977472414, - -19.295548538401487, - -19.295621048958516, - -19.295693509178474, - -19.2957659190963, - -19.29583827874692, - -19.295910588165224, - -19.29598284738609, - -19.296055056444356, - -19.296127215374852, - -19.296199324212377, - -19.2962713829917, - -19.29634339174758, - -19.296415350514735, - -19.296487259327872, - -19.29655911822167, - -19.29663092723078, - -19.296702686389832, - -19.296774395733433, - -19.29684605529617, - -19.296917665112595, - -19.296989225217246, - -19.297060735644628, - -19.297132196429228, - -19.297203607605514, - -19.29727496920792, - -19.29734628127086, - -19.297417543828725, - -19.297488756915882, - -19.297559920566673, - -19.297631034815417, - -19.297702099696412, - -19.297773115243928, - -19.29784408149221, - -19.29791499847548, - -19.297985866227943, - -19.298056684783774, - -19.298127454177123, - -19.298198174442124, - -19.298268845612878, - -19.298339467723466, - -19.298410040807944, - -19.29848056490035, - -19.298551040034692, - -19.298621466244956, - -19.298691843565113, - -19.298762172029093, - -19.298832451670815, - -19.298902682524176, - -19.298972864623043, - -19.29904299800126, - -19.299113082692642, - -19.299183118731, - -19.299253106150104, - -19.299323044983705, - -19.29939293526553, - -19.29946277702929, - -19.29953257030866, - -19.2996023151373, - -19.299672011548846, - -19.299741659576906, - -19.29981125925507, - -19.2998808106169, - -19.299950313695945, - -19.300019768525715, - -19.300089175139707, - -19.300158533571395, - -19.300227843854227, - -19.300297106021628, - -19.300366320106995, - -19.300435486143712, - -19.30050460416513, - -19.30057367420459, - -19.30064269629539, - -19.300711670470825, - -19.300780596764156, - -19.30084947520862, - -19.30091830583743, - -19.300987088683794, - -19.30105582378087, - -19.30112451116181, - -19.30119315085974, - -19.301261742907755, - -19.301330287338942, - -19.301398784186354, - -19.301467233483024, - -19.301535635261963, - -19.301603989556153, - -19.301672296398564, - -19.301740555822136, - -19.301808767859782, - -19.301876932544403, - -19.30194504990887, - -19.30201311998603, - -19.302081142808714, - -19.302149118409726, - -19.302217046821845, - -19.302284928077835, - -19.302352762210425, - -19.302420549252332, - -19.302488289236248, - -19.302555982194836, - -19.30262362816074, - -19.302691227166594, - -19.302758779244986, - -19.302826284428498, - -19.30289374274968, - -19.302961154241075, - -19.303028518935182, - -19.303095836864493, - -19.30316310806147, - -19.30323033255855, - -19.30329751038816, - -19.303364641582696, - -19.303431726174527, - -19.30349876419601, - -19.303565755679475, - -19.30363270065722, - -19.30369959916154, - -19.30376645122469, - -19.303833256878914, - -19.30390001615643, - -19.303966729089428, - -19.304033395710082, - -19.304100016050544, - -19.304166590142938, - -19.304233118019376, - -19.304299599711936, - -19.30436603525268, - -19.30443242467365, - -19.30449876800686, - -19.304565065284304, - -19.304631316537954, - -19.304697521799756, - -19.304763681101647, - -19.304829794475527, - -19.304895861953277, - -19.304961883566765, - -19.305027859347824, - -19.30509378932827, - -19.305159673539904, - -19.3052255120145, - -19.3052913047838, - -19.305357051879536, - -19.30542275333342, - -19.30548840917713, - -19.305554019442337, - -19.305619584160674, - -19.30568510336376, - -19.305750577083195, - -19.305816005350554, - -19.30588138819739, - -19.305946725655232, - -19.306012017755588, - -19.30607726452995, - -19.30614246600978, - -19.306207622226527, - -19.306272733211607, - -19.30633779899642, - -19.306402819612345, - -19.30646779509074, - -19.306532725462937, - -19.306597610760253, - -19.306662451013974, - -19.306727246255374, - -19.3067919965157, - -19.306856701826174, - -19.306921362218006, - -19.306985977722377, - -19.30705054837044, - -19.307115074193348, - -19.30717955522221, - -19.30724399148812, - -19.307308383022164, - -19.30737272985538, - -19.307437032018814, - -19.307501289543467, - -19.307565502460328, - -19.307629670800367, - -19.30769379459453, - -19.307757873873737, - -19.307821908668892, - -19.307885899010873, - -19.307949844930548, - -19.308013746458748, - -19.30807760362629, - -19.30814141646397, - -19.308205185002567, - -19.308268909272826, - -19.308332589305483, - -19.308396225131247, - -19.308459816780804, - -19.308523364284824, - -19.308586867673952, - -19.308650326978814, - -19.30871374223001, - -19.30877711345813, - -19.30884044069373, - -19.308903723967344, - -19.308966963309498, - -19.309030158750687, - -19.30909331032139, - -19.30915641805206, - -19.309219481973123, - -19.309282502115007, - -19.309345478508092, - -19.309408411182755, - -19.30947130016934, - -19.30953414549818, - -19.30959694719958, - -19.309659705303826, - -19.309722419841187, - -19.309785090841903, - -19.309847718336197, - -19.30991030235428, - -19.309972842926317, - -19.310035340082486, - -19.310097793852915, - -19.310160204267724, - -19.310222571357016, - -19.31028489515086, - -19.310347175679322, - -19.310409412972426, - -19.310471607060194, - -19.310533757972618, - -19.310595865739664, - -19.31065793039129, - -19.310719951957427, - -19.310781930467982, - -19.310843865952847, - -19.31090575844189, - -19.310967607964958, - -19.31102941455188, - -19.311091178232456, - -19.311152899036475, - -19.31121457699371, - -19.311276212133897, - -19.31133780448676, - -19.311399354082006, - -19.311460860949317, - -19.31152232511835, - -19.31158374661875, - -19.31164512548014, - -19.311706461732115, - -19.311767755404258, - -19.311829006526125, - -19.31189021512726, - -19.311951381237172, - -19.31201250488537, - -19.312073586101324, - -19.31213462491449, - -19.312195621354306, - -19.312256575450185, - -19.312317487231528, - -19.31237835672771, - -19.312439183968078, - -19.31249996898197, - -19.312560711798703, - -19.31262141244757, - -19.312682070957838, - -19.312742687358764, - -19.31280326167958, - -19.312863793949496, - -19.312924284197706, - -19.312984732453383, - -19.31304513874568, - -19.313105503103724, - -19.313165825556627, - -19.313226106133477, - -19.31328634486335, - -19.313346541775292, - -19.313406696898337, - -19.31346681026149, - -19.313526881893743, - -19.31358691182407, - -19.313646900081412, - -19.313706846694707, - -19.31376675169286, - -19.31382661510476, - -19.313886436959276, - -19.31394621728526, - -19.31400595611154, - -19.314065653466926, - -19.31412530938021, - -19.314184923880152, - -19.31424449699551, - -19.31430402875501, - -19.314363519187363, - -19.314422968321253, - -19.314482376185357, - -19.314541742808323, - -19.314601068218774, - -19.31466035244533, - -19.31471959551657, - -19.314778797461077, - -19.31483795830739, - -19.314897078084044, - -19.31495615681955, - -19.3150151945424, - -19.315074191281063, - -19.315133147063992, - -19.315192061919618, - -19.31525093587635, - -19.31530976896258, - -19.31536856120669, - -19.315427312637024, - -19.315486023281913, - -19.315544693169677, - -19.315603322328606, - -19.315661910786975, - -19.31572045857304, - -19.315778965715033, - -19.31583743224117, - -19.31589585817965, - -19.315954243558643, - -19.316012588406313, - -19.31607089275079, - -19.316129156620192, - -19.316187380042624, - -19.316245563046156, - -19.316303705658854, - -19.316361807908752, - -19.31641986982387, - -19.316477891432214, - -19.31653587276176, - -19.316593813840473, - -19.316651714696295, - -19.316709575357148, - -19.31676739585093, - -19.316825176205533, - -19.31688291644882, - -19.316940616608633, - -19.316998276712805, - -19.31705589678913, - -19.317113476865412, - -19.317171016969407, - -19.317228517128868, - -19.317285977371522, - -19.317343397725086, - -19.317400778217245, - -19.31745811887567, - -19.317515419728018, - -19.317572680801923, - -19.317629902124995, - -19.317687083724834, - -19.31774422562901, - -19.317801327865087, - -19.3178583904606, - -19.317915413443064, - -19.31797239683998, - -19.318029340678834, - -19.31808624498708, - -19.31814310979216, - -19.318199935121505, - -19.318256721002513, - -19.31831346746257, - -19.318370174529043, - -19.318426842229282, - -19.31848347059061, - -19.318540059640338, - -19.31859660940576, - -19.31865311991414, - -19.318709591192736, - -19.31876602326878, - -19.318822416169485, - -19.31887876992205, - -19.31893508455365, - -19.31899136009144, - -19.319047596562566, - -19.31910379399414, - -19.31915995241327, - -19.319216071847034, - -19.3192721523225, - -19.31932819386671, - -19.31938419650669, - -19.31944016026945, - -19.319496085181978, - -19.31955197127124, - -19.31960781856419, - -19.319663627087763, - -19.319719396868873, - -19.31977512793441, - -19.319830820311253, - -19.31988647402626, - -19.31994208910627, - -19.319997665578104, - -19.320053203468564, - -19.320108702804433, - -19.320164163612475, - -19.320219585919435, - -19.32027496975205, - -19.320330315137014, - -19.32038562210103, - -19.32044089067076, - -19.320496120872868, - -19.32055131273398, - -19.32060646628072, - -19.320661581539678, - -19.32071665853744, - -19.32077169730056, - -19.320826697855587, - -19.320881660229045, - -19.320936584447434, - -19.320991470537248, - -19.321046318524953, - -19.321101128437, - -19.32115590029982, - -19.321210634139828, - -19.321265329983422, - -19.321319987856977, - -19.321374607786847, - -19.32142918979938, - -19.321483733920896, - -19.321538240177702, - -19.32159270859608, - -19.321647139202295, - -19.321701532022598, - -19.321755887083224, - -19.321810204410387, - -19.321864484030275, - -19.321918725969066, - -19.321972930252926, - -19.322027096907984, - -19.322081225960368, - -19.32213531743618, - -19.32218937136151, - -19.32224338776242, - -19.322297366664966, - -19.322351308095172, - -19.322405212079058, - -19.322459078642613, - -19.32251290781182, - -19.322566699612636, - -19.322620454071004, - -19.322674171212842, - -19.32272785106406, - -19.322781493650545, - -19.322835098998166, - -19.322888667132776, - -19.322942198080202, - -19.322995691866264, - -19.32304914851676, - -19.32310256805747, - -19.323155950514156, - -19.32320929591256, - -19.323262604278405, - -19.323315875637405, - -19.323369110015246, - -19.323422307437607, - -19.323475467930134, - -19.323528591518468, - -19.323581678228226, - -19.323634728085015, - -19.323687741114412, - -19.323740717341988, - -19.323793656793285, - -19.323846559493838, - -19.323899425469158, - -19.323952254744736, - -19.324005047346056, - -19.324057803298572, - -19.32411052262773, - -19.32416320535895, - -19.324215851517643, - -19.324268461129193, - -19.324321034218972, - -19.324373570812337, - -19.32442607093462, - -19.324478534611142, - -19.324530961867204, - -19.324583352728087, - -19.324635707219056, - -19.32468802536536, - -19.324740307192233, - -19.324792552724883, - -19.32484476198851, - -19.32489693500829, - -19.32494907180938, - -19.325001172416933, - -19.325053236856064, - -19.325105265151887, - -19.32515725732949, - -19.32520921341395, - -19.325261133430317, - -19.325313017403637, - -19.325364865358928, - -19.325416677321194, - -19.325468453315423, - -19.32552019336658, - -19.325571897499614, - -19.32562356573947, - -19.325675198111057, - -19.32572679463928, - -19.325778355349016, - -19.325829880265136, - -19.325881369412482, - -19.32593282281589, - -19.325984240500173, - -19.326035622490124, - -19.326086968810525, - -19.326138279486138, - -19.326189554541706, - -19.32624079400196, - -19.32629199789161, - -19.32634316623534, - -19.326394299057835, - -19.326445396383754, - -19.326496458237735, - -19.326547484644404, - -19.326598475628373, - -19.326649431214225, - -19.326700351426542, - -19.326751236289873, - -19.32680208582876, - -19.326852900067724, - -19.326903679031275, - -19.3269544227439, - -19.327005131230063, - -19.32705580451423, - -19.327106442620828, - -19.327157045574282, - -19.327207613398997, - -19.327258146119355, - -19.32730864375973, - -19.32735910634447, - -19.327409533897917, - -19.327459926444384, - -19.327510284008174, - -19.327560606613577, - -19.327610894284852, - -19.32766114704626, - -19.32771136492203, - -19.327761547936383, - -19.327811696113518, - -19.32786180947762, - -19.327911888052853, - -19.32796193186337, - -19.328011940933308, - -19.328061915286778, - -19.32811185494788, - -19.32816175994071, - -19.32821163028932, - -19.328261466017764, - -19.32831126715008, - -19.32836103371028, - -19.328410765722367, - -19.328460463210323, - -19.328510126198115, - -19.328559754709694, - -19.328609348768993, - -19.32865890839993, - -19.3287084336264, - -19.328757924472296, - -19.328807380961475, - -19.328856803117795, - -19.32890619096509, - -19.32895554452717, - -19.329004863827844, - -19.32905414889089, - -19.32910339974008, - -19.329152616399167, - -19.32920179889188, - -19.329250947241942, - -19.329300061473052, - -19.329349141608898, - -19.329398187673146, - -19.329447199689454, - -19.329496177681452, - -19.329545121672766, - -19.329594031686995, - -19.329642907747726, - -19.32969174987853, - -19.329740558102966, - -19.329789332444562, - -19.32983807292685, - -19.329886779573332, - -19.329935452407494, - -19.329984091452808, - -19.330032696732736, - -19.330081268270714, - -19.330129806090163, - -19.330178310214496, - -19.330226780667104, - -19.33027521747136, - -19.330323620650624, - -19.330371990228237, - -19.330420326227525, - -19.3304686286718, - -19.330516897584353, - -19.330565132988465, - -19.330613334907397, - -19.330661503364393, - -19.33070963838269, - -19.330757739985486, - -19.330805808195993, - -19.330853843037385, - -19.33090184453283, - -19.33094981270547, - -19.330997747578447, - -19.33104564917487, - -19.331093517517846, - -19.331141352630457, - -19.331189154535767, - -19.331236923256835, - -19.3312846588167, - -19.331332361238374, - -19.331380030544864, - -19.331427666759165, - -19.331475269904242, - -19.331522840003057, - -19.33157037707855, - -19.331617881153644, - -19.33166535225125, - -19.331712790394256, - -19.331760195605547, - -19.33180756790798, - -19.3318549073244, - -19.331902213877637, - -19.331949487590506, - -19.3319967284858, - -19.33204393658631, - -19.332091111914796, - -19.33213825449401, - -19.332185364346685, - -19.33223244149554, - -19.332279485963284, - -19.332326497772595, - -19.332373476946152, - -19.33242042350661, - -19.332467337476604, - -19.332514218878764, - -19.332561067735693, - -19.33260788406999, - -19.332654667904233, - -19.332701419260975, - -19.33274813816277, - -19.332794824632145, - -19.332841478691616, - -19.332888100363682, - -19.332934689670825, - -19.332981246635516, - -19.333027771280204, - -19.333074263627324, - -19.333120723699302, - -19.33316715151854, - -19.333213547107434, - -19.333259910488348, - -19.333306241683648, - -19.33335254071568, - -19.333398807606763, - -19.333445042379218, - -19.333491245055335, - -19.333537415657396, - -19.333583554207674, - -19.333629660728413, - -19.333675735241847, - -19.333721777770204, - -19.333767788335678, - -19.333813766960464, - -19.333859713666733, - -19.333905628476643, - -19.33395151141234, - -19.333997362495946, - -19.334043181749575, - -19.334088969195324, - -19.334134724855275, - -19.33418044875149, - -19.334226140906022, - -19.334271801340908, - -19.334317430078166, - -19.334363027139798, - -19.334408592547796, - -19.334454126324136, - -19.334499628490775, - -19.334545099069658, - -19.33459053808271, - -19.334635945551845, - -19.334681321498962, - -19.334726665945947, - -19.33477197891466, - -19.33481726042696, - -19.334862510504678, - -19.33490772916964, - -19.33495291644365, - -19.334998072348505, - -19.335043196905982, - -19.335088290137836, - -19.335133352065814, - -19.33517838271165, - -19.335223382097062, - -19.335268350243748, - -19.335313287173395, - -19.335358192907673, - -19.33540306746824, - -19.335447910876734, - -19.335492723154783, - -19.335537504323998, - -19.335582254405974, - -19.33562697342229, - -19.335671661394517, - -19.335716318344204, - -19.335760944292883, - -19.335805539262076, - -19.335850103273295, - -19.335894636348023, - -19.335939138507744, - -19.335983609773912, - -19.336028050167982, - -19.336072459711378, - -19.336116838425518, - -19.336161186331807, - -19.336205503451627, - -19.336249789806356, - -19.336294045417347, - -19.336338270305944, - -19.33638246449347, - -19.33642662800125, - -19.336470760850567, - -19.336514863062714, - -19.336558934658957, - -19.336602975660547, - -19.336646986088727, - -19.336690965964717, - -19.33673491530973, - -19.336778834144962, - -19.336822722491586, - -19.336866580370774, - -19.336910407803675, - -19.336954204811423, - -19.33699797141514, - -19.337041707635933, - -19.337085413494894, - -19.337129089013104, - -19.33717273421162, - -19.337216349111493, - -19.33725993373375, - -19.33730348809942, - -19.3373470122295, - -19.337390506144985, - -19.337433969866844, - -19.33747740341604, - -19.337520806813522, - -19.337564180080218, - -19.337607523237047, - -19.33765083630491, - -19.337694119304693, - -19.337737372257276, - -19.33778059518351, - -19.337823788104245, - -19.337866951040308, - -19.337910084012513, - -19.337953187041666, - -19.33799626014855, - -19.338039303353938, - -19.338082316678587, - -19.33812530014324, - -19.33816825376863, - -19.338211177575463, - -19.338254071584448, - -19.338296935816267, - -19.33833977029159, - -19.33838257503108, - -19.33842535005537, - -19.338468095385096, - -19.338510811040873, - -19.338553497043293, - -19.33859615341295, - -19.33863878017041, - -19.33868137733623, - -19.33872394493095, - -19.33876648297511, - -19.338808991489213, - -19.33885147049376, - -19.338893920009244, - -19.33893634005613, - -19.338978730654873, - -19.33902109182592, - -19.3390634235897, - -19.339105725966625, - -19.3391479989771, - -19.339190242641507, - -19.33923245698022, - -19.339274642013596, - -19.33931679776198, - -19.3393589242457, - -19.339401021485074, - -19.339443089500403, - -19.339485128311974, - -19.33952713794006, - -19.339569118404917, - -19.339611069726796, - -19.339652991925927, - -19.339694885022524, - -19.339736749036792, - -19.339778583988924, - -19.339820389899085, - -19.339862166787448, - -19.33990391467415, - -19.33994563357933, - -19.339987323523108, - -19.34002898452558, - -19.340070616606848, - -19.340112219786985, - -19.340153794086053, - -19.3401953395241, - -19.340236856121166, - -19.34027834389727, - -19.340319802872422, - -19.34036123306661, - -19.340402634499817, - -19.340444007192012, - -19.340485351163142, - -19.34052666643315, - -19.340567953021957, - -19.340609210949477, - -19.340650440235603, - -19.340691640900218, - -19.340732812963196, - -19.340773956444387, - -19.340815071363636, - -19.340856157740767, - -19.340897215595596, - -19.340938244947925, - -19.34097924581754, - -19.341020218224216, - -19.341061162187703, - -19.341102077727754, - -19.3411429648641, - -19.341183823616458, - -19.34122465400453, - -19.34126545604801, - -19.341306229766577, - -19.34134697517989, - -19.341387692307595, - -19.341428381169337, - -19.341469041784734, - -19.341509674173395, - -19.341550278354912, - -19.34159085434887, - -19.341631402174833, - -19.341671921852363, - -19.341712413400998, - -19.34175287684026, - -19.341793312189665, - -19.341833719468717, - -19.3418740986969, - -19.341914449893682, - -19.34195477307853, - -19.341995068270887, - -19.342035335490184, - -19.342075574755842, - -19.342115786087266, - -19.34215596950385, - -19.34219612502497, - -19.34223625266999, - -19.342276352458263, - -19.34231642440913, - -19.342356468541915, - -19.342396484875923, - -19.34243647343046, - -19.342476434224807, - -19.342516367278236, - -19.342556272610004, - -19.342596150239356, - -19.342636000185525, - -19.342675822467726, - -19.342715617105164, - -19.34275538411703, - -19.342795123522503, - -19.342834835340746, - -19.34287451959091, - -19.342914176292137, - -19.342953805463544, - -19.34299340712425, - -19.343032981293348, - -19.34307252798992, - -19.34311204723305, - -19.343151539041784, - -19.34319100343517, - -19.343230440432244, - -19.343269850052017, - -19.3433092323135, - -19.34334858723569, - -19.343387914837553, - -19.343427215138068, - -19.343466488156178, - -19.343505733910828, - -19.34354495242094, - -19.343584143705435, - -19.343623307783204, - -19.34366244467314, - -19.343701554394112, - -19.343740636964988, - -19.34377969240461, - -19.34381872073181, - -19.34385772196542, - -19.34389669612424, - -19.343935643227066, - -19.343974563292683, - -19.34401345633986, - -19.34405232238735, - -19.3440911614539, - -19.34412997355824, - -19.344168758719082, - -19.34420751695514, - -19.344246248285096, - -19.344284952727634, - -19.344323630301417, - -19.3443622810251, - -19.344400904917315, - -19.344439501996696, - -19.344478072281856, - -19.34451661579139, - -19.344555132543892, - -19.344593622557937, - -19.34463208585208, - -19.34467052244488, - -19.344708932354862, - -19.344747315600557, - -19.344785672200473, - -19.34482400217311, - -19.34486230553695, - -19.344900582310462, - -19.34493883251211, - -19.344977056160342, - -19.345015253273587, - -19.345053423870265, - -19.34509156796879, - -19.345129685587548, - -19.345167776744933, - -19.345205841459304, - -19.345243879749024, - -19.345281891632432, - -19.345319877127864, - -19.345357836253637, - -19.345395769028055, - -19.345433675469415, - -19.345471555595996, - -19.345509409426064, - -19.34554723697788, - -19.345585038269675, - -19.34562281331969, - -19.345660562146136, - -19.34569828476722, - -19.34573598120113, - -19.345773651466054, - -19.34581129558015, - -19.345848913561575, - -19.345886505428467, - -19.345924071198965, - -19.345961610891173, - -19.345999124523203, - -19.346036612113142, - -19.34607407367907, - -19.34611150923905, - -19.346148918811142, - -19.34618630241338, - -19.346223660063796, - -19.346260991780404, - -19.34629829758121, - -19.346335577484204, - -19.346372831507363, - -19.346410059668653, - -19.34644726198603, - -19.34648443847743, - -19.346521589160783, - -19.34655871405401, - -19.346595813175007, - -19.346632886541673, - -19.34666993417188, - -19.346706956083498, - -19.34674395229438, - -19.34678092282237, - -19.34681786768529, - -19.346854786900963, - -19.346891680487197, - -19.346928548461772, - -19.346965390842477, - -19.347002207647076, - -19.34703899889333, - -19.34707576459897, - -19.347112504781734, - -19.347149219459343, - -19.3471859086495, - -19.347222572369894, - -19.34725921063821, - -19.34729582347212, - -19.347332410889273, - -19.34736897290732, - -19.347405509543886, - -19.3474420208166, - -19.347478506743066, - -19.347514967340874, - -19.34755140262762, - -19.34758781262086, - -19.347624197338163, - -19.347660556797074, - -19.347696891015122, - -19.347733200009834, - -19.347769483798718, - -19.347805742399277, - -19.34784197582899, - -19.347878184105337, - -19.347914367245775, - -19.347950525267752, - -19.347986658188713, - -19.348022766026077, - -19.348058848797255, - -19.348094906519652, - -19.34813093921066, - -19.348166946887652, - -19.348202929567993, - -19.348238887269034, - -19.34827482000812, - -19.348310727802573, - -19.34834661066972, - -19.348382468626856, - -19.348418301691275, - -19.348454109880265, - -19.348489893211084, - -19.348525651701, - -19.348561385367248, - -19.348597094227063, - -19.34863277829767, - -19.348668437596274, - -19.34870407214007, - -19.34873968194625, - -19.34877526703198, - -19.34881082741442, - -19.348846363110727, - -19.348881874138034, - -19.348917360513465, - -19.34895282225413, - -19.34898825937714, - -19.34902367189958, - -19.349059059838527, - -19.34909442321105, - -19.349129762034195, - -19.34916507632501, - -19.34920036610053, - -19.349235631377763, - -19.349270872173726, - -19.349306088505408, - -19.349341280389794, - -19.349376447843856, - -19.34941159088455, - -19.34944670952883, - -19.349481803793626, - -19.34951687369587, - -19.349551919252466, - -19.349586940480318, - -19.349621937396314, - -19.349656910017337, - -19.349691858360245, - -19.3497267824419, - -19.349761682279134, - -19.349796557888787, - -19.34983140928767, - -19.3498662364926, - -19.34990103952036, - -19.349935818387745, - -19.349970573111523, - -19.350005303708453, - -19.350040010195286, - -19.35007469258876, - -19.350109350905598, - -19.350143985162514, - -19.350178595376214, - -19.350213181563387, - -19.350247743740713, - -19.350282281924855, - -19.35031679613248, - -19.350351286380217, - -19.350385752684712, - -19.350420195062583, - -19.35045461353044, - -19.35048900810488, - -19.35052337880249, - -19.350557725639845, - -19.35059204863351, - -19.350626347800034, - -19.350660623155967, - -19.350694874717828, - -19.35072910250214, - -19.35076330652541, - -19.35079748680413, - -19.350831643354784, - -19.350865776193846, - -19.35089988533778, - -19.350933970803023, - -19.350968032606026, - -19.35100207076321, - -19.351036085290993, - -19.351070076205772, - -19.351104043523947, - -19.351137987261893, - -19.351171907435983, - -19.351205804062573, - -19.35123967715801, - -19.351273526738627, - -19.351307352820754, - -19.3513411554207, - -19.35137493455477, - -19.351408690239246, - -19.351442422490415, - -19.351476131324542, - -19.351509816757883, - -19.35154347880668, - -19.351577117487167, - -19.351610732815573, - -19.351644324808102, - -19.35167789348096, - -19.35171143885033, - -19.351744960932393, - -19.351778459743315, - -19.351811935299246, - -19.351845387616333, - -19.35187881671071, - -19.351912222598497, - -19.351945605295803, - -19.351978964818727, - -19.35201230118336, - -19.352045614405775, - -19.35207890450204, - -19.352112171488205, - -19.352145415380317, - -19.35217863619441, - -19.352211833946498, - -19.352245008652595, - -19.3522781603287, - -19.3523112889908, - -19.35234439465487, - -19.352377477336876, - -19.352410537052773, - -19.352443573818505, - -19.352476587650003, - -19.352509578563186, - -19.352542546573964, - -19.35257549169824, - -19.3526084139519, - -19.35264131335082, - -19.352674189910868, - -19.352707043647893, - -19.352739874577747, - -19.352772682716257, - -19.352805468079247, - -19.352838230682526, - -19.352870970541897, - -19.352903687673145, - -19.352936382092054, - -19.352969053814384, - -19.353001702855895, - -19.35303432923233, - -19.353066932959422, - -19.353099514052904, - -19.353132072528474, - -19.353164608401844, - -19.3531971216887, - -19.353229612404725, - -19.35326208056558, - -19.353294526186932, - -19.353326949284426, - -19.353359349873696, - -19.353391727970365, - -19.35342408359005, - -19.353456416748354, - -19.353488727460874, - -19.353521015743183, - -19.35355328161086, - -19.353585525079467, - -19.353617746164545, - -19.35364994488164, - -19.353682121246273, - -19.353714275273965, - -19.353746406980225, - -19.353778516380547, - -19.353810603490412, - -19.3538426683253, - -19.353874710900673, - -19.353906731231977, - -19.35393872933466, - -19.353970705224153, - -19.354002658915878, - -19.35403459042524, - -19.35406649976764, - -19.354098386958466, - -19.3541302520131, - -19.354162094946904, - -19.354193915775234, - -19.35422571451344, - -19.354257491176856, - -19.3542892457808, - -19.354320978340596, - -19.354352688871543, - -19.35438437738893, - -19.354416043908042, - -19.354447688444147, - -19.354479311012508, - -19.354510911628378, - -19.354542490306994, - -19.354574047063583, - -19.354605581913365, - -19.35463709487155, - -19.354668585953327, - -19.354700055173893, - -19.35473150254842, - -19.354762928092075, - -19.35479433182001, - -19.35482571374737, - -19.354857073889292, - -19.354888412260898, - -19.3549197288773, - -19.354951023753603, - -19.354982296904897, - -19.35501354834626, - -19.355044778092772, - -19.355075986159484, - -19.355107172561453, - -19.35513833731372, - -19.355169480431304, - -19.355200601929234, - -19.355231701822515, - -19.355262780126143, - -19.35529383685511, - -19.355324872024394, - -19.355355885648954, - -19.35538687774375, - -19.355417848323736, - -19.355448797403835, - -19.35547972499898, - -19.355510631124083, - -19.35554151579405, - -19.35557237902378, - -19.355603220828147, - -19.355634041222032, - -19.355664840220292, - -19.355695617837785, - -19.355726374089354, - -19.355757108989827, - -19.355787822554028, - -19.35581851479677, - -19.355849185732858, - -19.35587983537707, - -19.355910463744202, - -19.355941070849017, - -19.355971656706277, - -19.356002221330726, - -19.356032764737115, - -19.35606328694017, - -19.356093787954606, - -19.356124267795135, - -19.356154726476454, - -19.356185164013255, - -19.35621558042022, - -19.356245975712007, - -19.356276349903283, - -19.356306703008688, - -19.35633703504287, - -19.35636734602045, - -19.356397635956046, - -19.35642790486427, - -19.35645815275971, - -19.356488379656962, - -19.356518585570598, - -19.35654877051519, - -19.35657893450529, - -19.356609077555444, - -19.356639199680195, - -19.356669300894065, - -19.35669938121157, - -19.356729440647214, - -19.3567594792155, - -19.35678949693091, - -19.35681949380792, - -19.356849469860997, - -19.356879425104598, - -19.356909359553168, - -19.35693927322114, - -19.356969166122944, - -19.356999038272992, - -19.357028889685697, - -19.35705872037545, - -19.357088530356638, - -19.357118319643636, - -19.35714808825081, - -19.357177836192516, - -19.3572075634831, - -19.3572372701369, - -19.35726695616824, - -19.357296621591438, - -19.3573262664208, - -19.357355890670615, - -19.35738549435518, - -19.35741507748877, - -19.357444640085646, - -19.357474182160068, - -19.35750370372628, - -19.357533204798525, - -19.357562685391024, - -19.357592145517998, - -19.35762158519365, - -19.35765100443218, - -19.35768040324778, - -19.35770978165462, - -19.35773913966687, - -19.35776847729869, - -19.357797794564227, - -19.357827091477617, - -19.357856368052996, - -19.357885624304473, - -19.357914860246165, - -19.357944075892163, - -19.357973271256565, - -19.358002446353442, - -19.358031601196874, - -19.358060735800912, - -19.35808985017961, - -19.358118944347005, - -19.358148018317134, - -19.358177072104017, - -19.35820610572166, - -19.35823511918407, - -19.358264112505235, - -19.358293085699138, - -19.358322038779754, - -19.35835097176104, - -19.358379884656955, - -19.35840877748144, - -19.35843765024843, - -19.358466502971847, - -19.358495335665605, - -19.358524148343612, - -19.35855294101976, - -19.358581713707935, - -19.35861046642201, - -19.358639199175855, - -19.35866791198333, - -19.35869660485827, - -19.358725277814525, - -19.358753930865916, - -19.35878256402626, - -19.35881117730937, - -19.35883977072904, - -19.35886834429906, - -19.358896898033215, - -19.358925431945273, - -19.358953946048988, - -19.35898244035812, - -19.359010914886404, - -19.359039369647576, - -19.359067804655357, - -19.359096219923458, - -19.359124615465586, - -19.35915299129543, - -19.35918134742668, - -19.359209683873008, - -19.359238000648077, - -19.359266297765547, - -19.359294575239062, - -19.35932283308226, - -19.359351071308765, - -19.359379289932203, - -19.359407488966173, - -19.35943566842428, - -19.359463828320113, - -19.35949196866725, - -19.359520089479265, - -19.359548190769715, - -19.359576272552157, - -19.35960433484013, - -19.359632377647166, - -19.359660400986794, - -19.35968840487252, - -19.35971638931786, - -19.3597443543363, - -19.359772299941334, - -19.35980022614643, - -19.35982813296506, - -19.359856020410685, - -19.35988388849675, - -19.359911737236697, - -19.359939566643952, - -19.35996737673194, - -19.35999516751407, - -19.36002293900375, - -19.36005069121436, - -19.360078424159298, - -19.36010613785193, - -19.360133832305625, - -19.360161507533736, - -19.36018916354961, - -19.360216800366583, - -19.360244417997986, - -19.360272016457138, - -19.360299595757343, - -19.360327155911904, - -19.360354696934117, - -19.360382218837255, - -19.3604097216346, - -19.360437205339405, - -19.360464669964934, - -19.360492115524423, - -19.360519542031113, - -19.360546949498232, - -19.360574337938996, - -19.36060170736661, - -19.360629057794274, - -19.360656389235178, - -19.360683701702502, - -19.36071099520942, - -19.360738269769097, - -19.36076552539468, - -19.360792762099315, - -19.36081997989614, - -19.360847178798277, - -19.360874358818847, - -19.36090151997095, - -19.360928662267696, - -19.360955785722165, - -19.36098289034744, - -19.361009976156595, - -19.361037043162685, - -19.361064091378772, - -19.361091120817896, - -19.36111813149309, - -19.361145123417383, - -19.361172096603795, - -19.361199051065324, - -19.36122598681498, - -19.361252903865743, - -19.361279802230598, - -19.36130668192252, - -19.36133354295447, - -19.3613603853394, - -19.361387209090257, - -19.361414014219974, - -19.36144080074148, - -19.361467568667695, - -19.361494318011523, - -19.361521048785864, - -19.361547761003617, - -19.361574454677655, - -19.361601129820855, - -19.36162778644608, - -19.361654424566186, - -19.361681044194018, - -19.361707645342417, - -19.361734228024204, - -19.36176079225221, - -19.361787338039235, - -19.361813865398087, - -19.361840374341558, - -19.36186686488243, - -19.36189333703348, - -19.36191979080747, - -19.361946226217164, - -19.361972643275305, - -19.361999041994636, - -19.36202542238789, - -19.36205178446778, - -19.36207812824703, - -19.36210445373834, - -19.362130760954404, - -19.362157049907907, - -19.362183320611532, - -19.362209573077944, - -19.36223580731981, - -19.362262023349775, - -19.36228822118048, - -19.362314400824566, - -19.36234056229465, - -19.36236670560336, - -19.362392830763294, - -19.36241893778705, - -19.36244502668723, - -19.3624710974764, - -19.362497150167144, - -19.362523184772023, - -19.36254920130359, - -19.362575199774394, - -19.362601180196968, - -19.36262714258385, - -19.362653086947553, - -19.362679013300593, - -19.362704921655467, - -19.36273081202468, - -19.362756684420706, - -19.36278253885603, - -19.362808375343118, - -19.362834193894432, - -19.362859994522417, - -19.36288577723952, - -19.36291154205817, - -19.3629372889908, - -19.362963018049822, - -19.362988729247643, - -19.363014422596667, - -19.363040098109277, - -19.363065755797862, - -19.363091395674793, - -19.363117017752433, - -19.363142622043142, - -19.363168208559266, - -19.363193777313146, - -19.363219328317108, - -19.36324486158348, - -19.363270377124568, - -19.363295874952684, - -19.363321355080117, - -19.363346817519165, - -19.363372262282102, - -19.363397689381195, - -19.363423098828715, - -19.363448490636905, - -19.36347386481802, - -19.36349922138429, - -19.36352456034795, - -19.363549881721216, - -19.3635751855163, - -19.3636004717454, - -19.363625740420716, - -19.36365099155443, - -19.363676225158724, - -19.363701441245766, - -19.363726639827714, - -19.363751820916722, - -19.363776984524932, - -19.36380213066448, - -19.363827259347495, - -19.36385237058609, - -19.363877464392385, - -19.36390254077847, - -19.36392759975644, - -19.363952641338386, - -19.363977665536385, - -19.364002672362496, - -19.36402766182879, - -19.364052633947306, - -19.364077588730098, - -19.364102526189193, - -19.364127446336617, - -19.364152349184394, - -19.36417723474453, - -19.364202103029026, - -19.364226954049876, - -19.36425178781906, - -19.36427660434856, - -19.364301403650344, - -19.364326185736367, - -19.364350950618583, - -19.36437569830893, - -19.36440042881935, - -19.364425142161767, - -19.364449838348097, - -19.36447451739025, - -19.364499179300132, - -19.36452382408963, - -19.364548451770634, - -19.364573062355017, - -19.364597655854652, - -19.364622232281395, - -19.3646467916471, - -19.36467133396361, - -19.364695859242758, - -19.36472036749638, - -19.364744858736287, - -19.36476933297429, - -19.364793790222198, - -19.364818230491803, - -19.364842653794888, - -19.364867060143233, - -19.36489144954861, - -19.36491582202278, - -19.3649401775775, - -19.364964516224507, - -19.36498883797554, - -19.365013142842336, - -19.36503743083661, - -19.365061701970077, - -19.36508595625444, - -19.365110193701398, - -19.36513441432264, - -19.365158618129843, - -19.365182805134683, - -19.365206975348823, - -19.365231128783915, - -19.365255265451612, - -19.365279385363554, - -19.36530348853137, - -19.365327574966688, - -19.365351644681123, - -19.36537569768628, - -19.365399733993755, - -19.365423753615147, - -19.365447756562038, - -19.365471742846, - -19.365495712478605, - -19.36551966547141, - -19.365543601835967, - -19.365567521583817, - -19.3655914247265, - -19.36561531127554, - -19.365639181242457, - -19.36566303463876, - -19.36568687147596, - -19.365710691765543, - -19.365734495519, - -19.365758282747816, - -19.36578205346345, - -19.36580580767738, - -19.365829545401052, - -19.365853266645914, - -19.36587697142341, - -19.36590065974497, - -19.365924331622015, - -19.36594798706596, - -19.36597162608822, - -19.365995248700195, - -19.366018854913268, - -19.36604244473883, - -19.366066018188256, - -19.366089575272913, - -19.36611311600416, - -19.366136640393353, - -19.366160148451836, - -19.366183640190947, - -19.366207115622014, - -19.366230574756354, - -19.36625401760529, - -19.366277444180113, - -19.366300854492135, - -19.366324248552637, - -19.366347626372903, - -19.36637098796421, - -19.36639433333782, - -19.36641766250499, - -19.366440975476976, - -19.366464272265016, - -19.36648755288035, - -19.366510817334202, - -19.366534065637794, - -19.36655729780233, - -19.366580513839022, - -19.366603713759062, - -19.366626897573642, - -19.36665006529394, - -19.366673216931126, - -19.366696352496366, - -19.36671947200082, - -19.36674257545564, - -19.36676566287196, - -19.366788734260915, - -19.366811789633633, - -19.366834829001238, - -19.366857852374835, - -19.36688085976553, - -19.366903851184414, - -19.36692682664258, - -19.366949786151103, - -19.36697272972106, - -19.36699565736351, - -19.367018569089513, - -19.367041464910123, - -19.367064344836376, - -19.367087208879305, - -19.36711005704994, - -19.367132889359297, - -19.367155705818387, - -19.367178506438215, - -19.367201291229776, - -19.367224060204055, - -19.367246813372038, - -19.367269550744695, - -19.36729227233299, - -19.36731497814788, - -19.36733766820032, - -19.36736034250125, - -19.367383001061604, - -19.367405643892308, - -19.367428271004282, - -19.367450882408438, - -19.367473478115684, - -19.36749605813691, - -19.36751862248301, - -19.367541171164866, - -19.36756370419335, - -19.36758622157933, - -19.367608723333664, - -19.367631209467202, - -19.367653679990795, - -19.36767613491527, - -19.367698574251467, - -19.367720998010196, - -19.367743406202276, - -19.367765798838512, - -19.367788175929707, - -19.36781053748665, - -19.367832883520126, - -19.367855214040908, - -19.36787752905977, - -19.367899828587465, - -19.367922112634755, - -19.367944381212386, - -19.367966634331093, - -19.367988872001614, - -19.368011094234667, - -19.36803330104097, - -19.368055492431235, - -19.36807766841616, - -19.368099829006443, - -19.36812197421277, - -19.368144104045818, - -19.36816621851626, - -19.368188317634765, - -19.368210401411986, - -19.368232469858572, - -19.368254522985172, - -19.368276560802418, - -19.368298583320932, - -19.368320590551345, - -19.368342582504262, - -19.36836455919029, - -19.368386520620028, - -19.368408466804066, - -19.36843039775299, - -19.36845231347738, - -19.368474213987795, - -19.368496099294806, - -19.36851796940896, - -19.368539824340807, - -19.368561664100888, - -19.36858348869973, - -19.368605298147866, - -19.36862709245581, - -19.36864887163407, - -19.368670635693153, - -19.36869238464355, - -19.368714118495753, - -19.368735837260243, - -19.36875754094749, - -19.36877922956797, - -19.368800903132133, - -19.368822561650436, - -19.36884420513332, - -19.36886583359123, - -19.368887447034588, - -19.36890904547382, - -19.368930628919344, - -19.368952197381567, - -19.368973750870893, - -19.368995289397713, - -19.369016812972415, - -19.369038321605377, - -19.369059815306972, - -19.36908129408757, - -19.369102757957528, - -19.36912420692719, - -19.369145641006906, - -19.369167060207015, - -19.369188464537842, - -19.36920985400971, - -19.369231228632934, - -19.369252588417822, - -19.369273933374675, - -19.369295263513788, - -19.369316578845446, - -19.36933787937993, - -19.36935916512751, - -19.369380436098453, - -19.369401692303015, - -19.369422933751448, - -19.369444160453995, - -19.369465372420898, - -19.369486569662378, - -19.36950775218866, - -19.369528920009962, - -19.369550073136494, - -19.36957121157845, - -19.36959233534603, - -19.36961344444942, - -19.369634538898797, - -19.36965561870434, - -19.369676683876207, - -19.369697734424562, - -19.369718770359558, - -19.369739791691334, - -19.36976079843003, - -19.36978179058578, - -19.369802768168704, - -19.369823731188916, - -19.36984467965653, - -19.369865613581652, - -19.369886532974366, - -19.36990743784477, - -19.369928328202942, - -19.36994920405896, - -19.36997006542288, - -19.36999091230478, - -19.3700117447147, - -19.37003256266269, - -19.37005336615879, - -19.370074155213032, - -19.370094929835442, - -19.37011569003604, - -19.37013643582484, - -19.37015716721184, - -19.370177884207045, - -19.37019858682044, - -19.37021927506201, - -19.370239948941734, - -19.370260608469582, - -19.370281253655513, - -19.370301884509487, - -19.370322501041453, - -19.370343103261355, - -19.370363691179126, - -19.37038426480469, - -19.37040482414798, - -19.3704253692189, - -19.370445900027367, - -19.370466416583273, - -19.37048691889652, - -19.37050740697699, - -19.370527880834565, - -19.37054834047912, - -19.370568785920522, - -19.37058921716863, - -19.370609634233293, - -19.37063003712436, - -19.370650425851675, - -19.370670800425067, - -19.37069116085436, - -19.370711507149373, - -19.370731839319923, - -19.370752157375808, - -19.37077246132683, - -19.370792751182783, - -19.37081302695345, - -19.370833288648605, - -19.370853536278027, - -19.370873769851475, - -19.370893989378704, - -19.370914194869474, - -19.370934386333523, - -19.37095456378059, - -19.370974727220403, - -19.37099487666269, - -19.371015012117162, - -19.37103513359354, - -19.37105524110152, - -19.371075334650797, - -19.371095414251066, - -19.371115479912007, - -19.3711355316433, - -19.371155569454615, - -19.371175593355613, - -19.37119560335595, - -19.37121559946528, - -19.37123558169324, - -19.371255550049472, - -19.371275504543604, - -19.371295445185257, - -19.37131537198405, - -19.37133528494959, - -19.371355184091488, - -19.37137506941933, - -19.37139494094271, - -19.371414798671214, - -19.371434642614414, - -19.37145447278188, - -19.371474289183183, - -19.37149409182787, - -19.37151388072549, - -19.371533655885596, - -19.371553417317717, - -19.371573165031386, - -19.371592899036123, - -19.37161261934145, - -19.371632325956877, - -19.3716520188919, - -19.37167169815602, - -19.371691363758732, - -19.371711015709515, - -19.37173065401785, - -19.371750278693202, - -19.37176988974504, - -19.371789487182816, - -19.37180907101599, - -19.371828641253998, - -19.37184819790628, - -19.371867740982275, - -19.371887270491392, - -19.371906786443063, - -19.37192628884669, - -19.371945777711687, - -19.37196525304745, - -19.371984714863363, - -19.37200416316882, - -19.372023597973197, - -19.37204301928587, - -19.372062427116198, - -19.37208182147355, - -19.372101202367272, - -19.37212056980671, - -19.372139923801207, - -19.372159264360096, - -19.372178591492702, - -19.37219790520835, - -19.37221720551635, - -19.372236492426012, - -19.372255765946637, - -19.372275026087515, - -19.372294272857943, - -19.372313506267194, - -19.37233272632455, - -19.372351933039276, - -19.37237112642064, - -19.372390306477886, - -19.37240947322028, - -19.372428626657054, - -19.372447766797446, - -19.37246689365069, - -19.372486007226005, - -19.372505107532614, - -19.37252419457972, - -19.37254326837654, - -19.372562328932265, - -19.372581376256086, - -19.37260041035719, - -19.372619431244757, - -19.37263843892796, - -19.372657433415966, - -19.372676414717937, - -19.372695382843023, - -19.37271433780037, - -19.37273327959912, - -19.372752208248414, - -19.372771123757374, - -19.372790026135124, - -19.37280891539078, - -19.37282779153345, - -19.37284665457224, - -19.372865504516245, - -19.372884341374554, - -19.37290316515625, - -19.372921975870415, - -19.37294077352612, - -19.372959558132425, - -19.372978329698398, - -19.372997088233085, - -19.373015833745534, - -19.373034566244783, - -19.37305328573987, - -19.373071992239822, - -19.373090685753656, - -19.37310936629039, - -19.373128033859032, - -19.373146688468587, - -19.373165330128046, - -19.373183958846404, - -19.373202574632643, - -19.37322117749574, - -19.37323976744467, - -19.373258344488388, - -19.373276908635862, - -19.373295459896045, - -19.37331399827788, - -19.373332523790307, - -19.37335103644226, - -19.373369536242667, - -19.373388023200448, - -19.373406497324524, - -19.3734249586238, - -19.373443407107178, - -19.37346184278356, - -19.373480265661833, - -19.37349867575088, - -19.37351707305958, - -19.37353545759681, - -19.37355382937143, - -19.373572188392302, - -19.37359053466828, - -19.373608868208212, - -19.373627189020937, - -19.373645497115294, - -19.37366379250011, - -19.373682075184206, - -19.373700345176402, - -19.373718602485507, - -19.373736847120327, - -19.37375507908966, - -19.3737732984023, - -19.37379150506703, - -19.373809699092632, - -19.37382788048788, - -19.37384604926154, - -19.373864205422382, - -19.37388234897915, - -19.373900479940605, - -19.37391859831548, - -19.37393670411252, - -19.373954797340456, - -19.37397287800801, - -19.373990946123907, - -19.374009001696855, - -19.374027044735566, - -19.374045075248734, - -19.374063093245063, - -19.374081098733235, - -19.374099091721938, - -19.374117072219846, - -19.374135040235632, - -19.374152995777962, - -19.374170938855492, - -19.374188869476882, - -19.374206787650767, - -19.3742246933858, - -19.37424258669061, - -19.374260467573826, - -19.374278336044075, - -19.37429619210997, - -19.374314035780124, - -19.374331867063145, - -19.374349685967626, - -19.374367492502163, - -19.37438528667535, - -19.374403068495752, - -19.37442083797196, - -19.374438595112537, - -19.37445633992605, - -19.374474072421048, - -19.374491792606094, - -19.374509500489722, - -19.37452719608048, - -19.3745448793869, - -19.374562550417508, - -19.374580209180827, - -19.374597855685373, - -19.374615489939654, - -19.37463311195218, - -19.37465072173144, - -19.374668319285938, - -19.37468590462415, - -19.374703477754565, - -19.37472103868565, - -19.37473858742588, - -19.374756123983712, - -19.374773648367608, - -19.374791160586017, - -19.374808660647385, - -19.374826148560153, - -19.37484362433275, - -19.37486108797361, - -19.374878539491153, - -19.37489597889379, - -19.374913406189936, - -19.374930821387995, - -19.374948224496364, - -19.374965615523436, - -19.374982994477598, - -19.37500036136723, - -19.375017716200713, - -19.37503505898641, - -19.375052389732684, - -19.3750697084479, - -19.375087015140405, - -19.375104309818543, - -19.375121592490657, - -19.37513886316508, - -19.375156121850146, - -19.375173368554176, - -19.375190603285482, - -19.37520782605238, - -19.37522503686318, - -19.375242235726173, - -19.37525942264966, - -19.37527659764192, - -19.375293760711248, - -19.375310911865913, - -19.375328051114188, - -19.37534517846434, - -19.375362293924628, - -19.37537939750331, - -19.375396489208622, - -19.375413569048817, - -19.37543063703213, - -19.375447693166794, - -19.37546473746103, - -19.37548176992306, - -19.375498790561096, - -19.375515799383347, - -19.37553279639802, - -19.375549781613305, - -19.375566755037397, - -19.375583716678484, - -19.375600666544738, - -19.37561760464434, - -19.375634530985455, - -19.375651445576246, - -19.37566834842487, - -19.375685239539482, - -19.375702118928224, - -19.37571898659924, - -19.375735842560662, - -19.375752686820615, - -19.375769519387227, - -19.375786340268615, - -19.37580314947289, - -19.37581994700816, - -19.375836732882522, - -19.375853507104075, - -19.375870269680906, - -19.3758870206211, - -19.375903759932736, - -19.375920487623883, - -19.375937203702613, - -19.375953908176985, - -19.375970601055055, - -19.37598728234487, - -19.376003952054475, - -19.376020610191915, - -19.37603725676522, - -19.376053891782416, - -19.37607051525153, - -19.376087127180575, - -19.37610372757756, - -19.376120316450496, - -19.37613689380738, - -19.376153459656205, - -19.376170014004963, - -19.376186556861636, - -19.376203088234202, - -19.376219608130633, - -19.3762361165589, - -19.376252613526958, - -19.376269099042762, - -19.37628557311427, - -19.37630203574942, - -19.37631848695615, - -19.376334926742402, - -19.376351355116096, - -19.37636777208516, - -19.376384177657506, - -19.37640057184105, - -19.376416954643695, - -19.37643332607334, - -19.37644968613789, - -19.376466034845222, - -19.37648237220323, - -19.37649869821979, - -19.37651501290277, - -19.376531316260046, - -19.376547608299475, - -19.376563889028915, - -19.376580158456218, - -19.37659641658923, - -19.37661266343579, - -19.376628899003737, - -19.376645123300897, - -19.376661336335093, - -19.376677538114148, - -19.376693728645872, - -19.376709907938075, - -19.37672607599856, - -19.37674223283512, - -19.376758378455552, - -19.376774512867637, - -19.37679063607916, - -19.3768067480979, - -19.376822848931614, - -19.37683893858808, - -19.37685501707505, - -19.376871084400285, - -19.376887140571526, - -19.376903185596518, - -19.376919219483, - -19.3769352422387, - -19.37695125387135, - -19.376967254388674 - ], - "y21": [ - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 4.394488353430947e-6, - 0.006056659635350812, - 0.012103374791771985, - 0.018144545047018023, - 0.02418017548581978, - 0.0302102711882476, - 0.03623483722971268, - 0.0422538786809731, - 0.04826740060813449, - 0.05427540807265888, - 0.06027790613136636, - 0.06627489983644053, - 0.07226639423543015, - 0.07825239437125692, - 0.0842329052822179, - 0.09020793200199068, - 0.0961774795596346, - 0.10214155297959907, - 0.10810015728172595, - 0.11405329748125438, - 0.12000097858882253, - 0.12594320561047517, - 0.13187998354766656, - 0.137811317397265, - 0.14373721215155452, - 0.14965767279824282, - 0.15557270432046388, - 0.16148231169678162, - 0.16738649990119547, - 0.17328527390314177, - 0.17917863866750083, - 0.18506659915460064, - 0.19094916032022088, - 0.1968263271155946, - 0.20269810448741626, - 0.20856449737784405, - 0.21442551072450436, - 0.22028114946049396, - 0.2261314185143876, - 0.23197632281024025, - 0.23781586726759193, - 0.24365005680146945, - 0.2494788963223941, - 0.25530239073638406, - 0.2611205449449591, - 0.26693336384514244, - 0.272740852329468, - 0.2785430152859833, - 0.2843398575982538, - 0.2901313841453648, - 0.29591759980192894, - 0.30169850943808885, - 0.3074741179195206, - 0.3132444301074397, - 0.31900945085860105, - 0.32476918502530866, - 0.3305236374554156, - 0.33627281299233064, - 0.34201671647501863, - 0.34775535273800917, - 0.35348872661139796, - 0.35921684292085215, - 0.36493970648761176, - 0.3706573221284972, - 0.3763696946559118, - 0.3820768288778462, - 0.3877787295978801, - 0.3934754016151901, - 0.3991668497245515, - 0.40485307871634346, - 0.41053409337655017, - 0.41620989848676854, - 0.4218804988242109, - 0.4275458991617092, - 0.4332061042677165, - 0.4388611189063148, - 0.4445109478372175, - 0.45015559581577286, - 0.4557950675929691, - 0.46142936791543576, - 0.4670585015254518, - 0.4726824731609466, - 0.47830128755550577, - 0.4839149494383718, - 0.4895234635344525, - 0.4951268345643223, - 0.5007250672442277, - 0.5063181662860882, - 0.5119061363975039, - 0.5174889822817581, - 0.5230667086378216, - 0.5286393201603539, - 0.5342068215397116, - 0.5397692174619494, - 0.5453265126088261, - 0.5508787116578048, - 0.5564258192820607, - 0.5619678401504843, - 0.5675047789276845, - 0.5730366402739909, - 0.5785634288454611, - 0.5840851492938836, - 0.5896018062667796, - 0.5951134044074097, - 0.6006199483547762, - 0.6061214427436279, - 0.6116178922044612, - 0.6171093013635286, - 0.6225956748428396, - 0.6280770172601656, - 0.6335533332290432, - 0.6390246273587783, - 0.6444909042544504, - 0.6499521685169162, - 0.6554084247428109, - 0.6608596775245577, - 0.6663059314503671, - 0.6717471911042423, - 0.6771834610659833, - 0.68261474591119, - 0.6880410502112667, - 0.6934623785334266, - 0.6988787354406912, - 0.7042901254919013, - 0.7096965532417158, - 0.7150980232406169, - 0.7204945400349143, - 0.7258861081667486, - 0.7312727321740955, - 0.7366544165907689, - 0.7420311659464259, - 0.7474029847665673, - 0.7527698775725468, - 0.7581318488815706, - 0.7634889032067036, - 0.7688410450568713, - 0.7741882789368649, - 0.7795306093473449, - 0.7848680407848444, - 0.7902005777417714, - 0.7955282247064169, - 0.800850986162955, - 0.8061688665914475, - 0.8114818704678485, - 0.8167900022640074, - 0.8220932664476732, - 0.8273916674824986, - 0.8326852098280396, - 0.8379738979397665, - 0.8432577362690624, - 0.8485367292632283, - 0.8538108813654878, - 0.8590801970149893, - 0.8643446806468109, - 0.8696043366919636, - 0.8748591695773955, - 0.880109183725993, - 0.8853543835565889, - 0.8905947734839632, - 0.8958303579188479, - 0.9010611412679299, - 0.9062871279338554, - 0.9115083223152332, - 0.916724728806639, - 0.9219363517986163, - 0.9271431956776853, - 0.9323452648263425, - 0.9375425636230654, - 0.9427350964423172, - 0.9479228676545491, - 0.9531058816262047, - 0.9582841427197246, - 0.9634576552935457, - 0.9686264237021113, - 0.9737904522958706, - 0.9789497454212832, - 0.9841043074208236, - 0.9892541426329837, - 0.9943992553922772, - 0.9995396500292433, - 1.0046753308704497, - 1.009806302238495, - 1.0149325684520167, - 1.02005413382569, - 1.0251710026702348, - 1.0302831792924176, - 1.0353906679950555, - 1.0404934730770201, - 1.0455915988332412, - 1.0506850495547078, - 1.0557738295284766, - 1.0608579430376723, - 1.0659373943614916, - 1.0710121877752075, - 1.0760823275501723, - 1.0811478179538219, - 1.0862086632496792, - 1.091264867697355, - 1.0963164355525565, - 1.1013633710670876, - 1.106405678488853, - 1.1114433620618627, - 1.116476426026234, - 1.1215048746181973, - 1.1265287120700969, - 1.1315479426103974, - 1.1365625704636835, - 1.1415725998506678, - 1.1465780349881924, - 1.1515788800892324, - 1.1565751393628991, - 1.1615668170144444, - 1.1665539172452644, - 1.1715364442529017, - 1.1765144022310488, - 1.1814877953695542, - 1.1864566278544235, - 1.1914209038678245, - 1.1963806275880886, - 1.201335803189717, - 1.2062864348433822, - 1.2112325267159323, - 1.2161740829703929, - 1.2211111077659742, - 1.226043605258071, - 1.2309715795982685, - 1.2358950349343445, - 1.2408139754102727, - 1.2457284051662274, - 1.2506383283385865, - 1.2555437490599348, - 1.2604446714590654, - 1.265341099660988, - 1.2702330377869278, - 1.2751204899543322, - 1.2800034602768722, - 1.2848819528644462, - 1.2897559718231846, - 1.2946255212554525, - 1.2994906052598505, - 1.3043512279312242, - 1.309207393360662, - 1.3140591056355024, - 1.3189063688393339, - 1.323749187052002, - 1.3285875643496101, - 1.3334215048045244, - 1.3382510124853746, - 1.3430760914570619, - 1.3478967457807585, - 1.3527129795139134, - 1.3575247967102546, - 1.3623322014197923, - 1.3671351976888237, - 1.3719337895599346, - 1.3767279810720048, - 1.3815177762602082, - 1.3863031791560205, - 1.3910841937872198, - 1.395860824177891, - 1.4006330743484283, - 1.4054009483155399, - 1.41016445009225, - 1.4149235836879042, - 1.419678353108168, - 1.4244287623550371, - 1.4291748154268362, - 1.4339165163182233, - 1.4386538690201938, - 1.4433868775200829, - 1.4481155458015693, - 1.4528398778446798, - 1.4575598776257885, - 1.4622755491176262, - 1.4669868962892791, - 1.4716939231061945, - 1.476396633530183, - 1.4810950315194218, - 1.485789121028459, - 1.4904789060082164, - 1.495164390405993, - 1.499845578165466, - 1.5045224732266982, - 1.509195079526139, - 1.5138634009966283, - 1.5185274415673986, - 1.5231872051640805, - 1.527842695708704, - 1.532493917119703, - 1.537140873311916, - 1.5417835681965948, - 1.5464220056814022, - 1.5510561896704194, - 1.555686124064146, - 1.5603118127595057, - 1.5649332596498489, - 1.569550468624955, - 1.5741634435710359, - 1.578772188370741, - 1.5833767069031588, - 1.587977003043821, - 1.592573080664705, - 1.5971649436342374, - 1.6017525958172982, - 1.6063360410752228, - 1.6109152832658058, - 1.6154903262433025, - 1.6200611738584365, - 1.6246278299583987, - 1.6291902983868525, - 1.6337485829839367, - 1.6383026875862687, - 1.6428526160269474, - 1.6473983721355574, - 1.6519399597381694, - 1.656477382657348, - 1.661010644712151, - 1.6655397497181357, - 1.6700647014873584, - 1.6745855038283814, - 1.6791021605462737, - 1.6836146754426162, - 1.6881230523155004, - 1.6926272949595387, - 1.6971274071658615, - 1.701623392722124, - 1.7061152554125076, - 1.7106029990177232, - 1.7150866273150154, - 1.7195661440781647, - 1.7240415530774917, - 1.7285128580798574, - 1.7329800628486705, - 1.7374431711438882, - 1.7419021867220201, - 1.7463571133361302, - 1.750807954735842, - 1.7552547146673394, - 1.7596973968733725, - 1.7641360050932564, - 1.7685705430628804, - 1.7730010145147062, - 1.7774274231777734, - 1.7818497727777018, - 1.786268067036695, - 1.7906823096735436, - 1.7950925044036277, - 1.7994986549389187, - 1.8039007649879863, - 1.808298838255999, - 1.8126928784447272, - 1.8170828892525468, - 1.8214688743744425, - 1.8258508375020106, - 1.8302287823234622, - 1.8346027125236266, - 1.8389726317839519, - 1.843338543782513, - 1.8477004521940104, - 1.8520583606897763, - 1.8564122729377746, - 1.8607621926026068, - 1.8651081233455133, - 1.8694500688243787, - 1.8737880326937295, - 1.8781220186047445, - 1.8824520302052528, - 1.8867780711397395, - 1.8911001450493463, - 1.8954182555718773, - 1.8997324063417995, - 1.9040426009902485, - 1.9083488431450275, - 1.9126511364306154, - 1.9169494844681663, - 1.9212438908755145, - 1.925534359267176, - 1.9298208932543526, - 1.9341034964449342, - 1.938382172443503, - 1.942656924851336, - 1.9469277572664048, - 1.951194673283385, - 1.9554576764936542, - 1.9597167704852978, - 1.9639719588431102, - 1.9682232451485986, - 1.9724706329799855, - 1.9767141259122138, - 1.980953727516945, - 1.985189441362568, - 1.9894212710141983, - 1.9936492200336833, - 1.9978732919796025, - 2.0020934904072734, - 2.006309818868753, - 2.0105222809128414, - 2.0147308800850823, - 2.018935619927771, - 2.023136503979952, - 2.0273335357774265, - 2.0315267188527524, - 2.035716056735248, - 2.039901552950996, - 2.044083211022844, - 2.048261034470412, - 2.0524350268100884, - 2.05660519155504, - 2.060771532215212, - 2.0649340522973296, - 2.0690927553049034, - 2.0732476447382306, - 2.0773987240943983, - 2.0815459968672885, - 2.085689466547576, - 2.0898291366227375, - 2.093965010577051, - 2.0980970918915993, - 2.1022253840442717, - 2.1063498905097706, - 2.1104706147596106, - 2.1145875602621236, - 2.1187007304824585, - 2.12281012888259, - 2.1269157589213163, - 2.131017624054265, - 2.1351157277338935, - 2.1392100734094943, - 2.143300664527197, - 2.1473875045299695, - 2.1514705968576244, - 2.1555499449468183, - 2.1596255522310566, - 2.163697422140698, - 2.167765558102954, - 2.1718299635418923, - 2.1758906418784436, - 2.1799475965303983, - 2.184000830912416, - 2.1880503484360214, - 2.1920961525096128, - 2.196138246538464, - 2.2001766339247237, - 2.2042113180674225, - 2.208242302362474, - 2.212269590202677, - 2.2162931849777197, - 2.22031309007418, - 2.224329308875533, - 2.22834184476215, - 2.232350701111302, - 2.236355881297164, - 2.2403573886908155, - 2.2443552266602462, - 2.2483493985703564, - 2.252339907782962, - 2.256326757656792, - 2.2603099515475003, - 2.264289492807662, - 2.268265384786777, - 2.272237630831275, - 2.276206234284515, - 2.280171198486793, - 2.28413252677534, - 2.288090222484325, - 2.2920442889448633, - 2.2959947294850136, - 2.2999415474297824, - 2.303884746101128, - 2.3078243288179623, - 2.3117602988961528, - 2.3156926596485286, - 2.319621414384877, - 2.3235465664119532, - 2.3274681190334805, - 2.3313860755501503, - 2.335300439259629, - 2.3392112134565584, - 2.3431184014325592, - 2.3470220064762337, - 2.3509220318731687, - 2.3548184809059367, - 2.358711356854101, - 2.3626006629942187, - 2.3664864025998407, - 2.3703685789415165, - 2.3742471952867974, - 2.378122254900236, - 2.381993761043394, - 2.3858617169748397, - 2.3897261259501543, - 2.393586991221935, - 2.3974443160397945, - 2.401298103650366, - 2.4051483572973056, - 2.4089950802212954, - 2.4128382756600457, - 2.4166779468482966, - 2.4205140970178225, - 2.424346729397435, - 2.428175847212984, - 2.4320014536873624, - 2.4358235520405063, - 2.4396421454893997, - 2.4434572372480763, - 2.447268830527624, - 2.4510769285361826, - 2.454881534478954, - 2.458682651558198, - 2.4624802829732397, - 2.46627443192047, - 2.4700651015933475, - 2.4738522951824042, - 2.477636015875245, - 2.481416266856552, - 2.485193051308086, - 2.4889663724086932, - 2.4927362333343015, - 2.4965026372579278, - 2.5002655873496793, - 2.5040250867767555, - 2.5077811387034536, - 2.5115337462911658, - 2.515282912698387, - 2.5190286410807174, - 2.5227709345908607, - 2.526509796378631, - 2.5302452295909537, - 2.533977237371868, - 2.5377058228625313, - 2.54143098920122, - 2.5451527395233304, - 2.5488710769613863, - 2.552586004645039, - 2.5562975257010674, - 2.5600056432533864, - 2.5637103604230442, - 2.5674116803282265, - 2.571109606084262, - 2.574804140803619, - 2.5784952875959144, - 2.582183049567914, - 2.585867429823532, - 2.5895484314638386, - 2.593226057587059, - 2.5969003112885787, - 2.6005711956609434, - 2.604238713793862, - 2.6079028687742123, - 2.61156366368604, - 2.615221101610564, - 2.6188751856261763, - 2.6225259188084467, - 2.6261733042301243, - 2.629817344961141, - 2.6334580440686137, - 2.6370954046168444, - 2.640729429667328, - 2.644360122278751, - 2.6479874855069947, - 2.651611522405139, - 2.655232236023463, - 2.6588496294094486, - 2.662463705607785, - 2.666074467660367, - 2.6696819186063, - 2.673286061481906, - 2.676886899320718, - 2.6804844351534904, - 2.6840786720081975, - 2.687669612910036, - 2.6912572608814314, - 2.694841618942032, - 2.6984226901087225, - 2.702000477395618, - 2.7055749838140724, - 2.709146212372675, - 2.7127141660772582, - 2.716278847930898, - 2.719840260933915, - 2.7233984080838805, - 2.7269532923756143, - 2.730504916801193, - 2.7340532843499474, - 2.7375983980084686, - 2.741140260760607, - 2.7446788755874785, - 2.7482142454674645, - 2.7517463733762155, - 2.7552752622866525, - 2.7588009151689707, - 2.762323334990642, - 2.7658425247164176, - 2.769358487308329, - 2.772871225725692, - 2.7763807429251077, - 2.7798870418604675, - 2.7833901254829527, - 2.786889996741038, - 2.7903866585804975, - 2.7938801139444003, - 2.797370365773118, - 2.8008574170043263, - 2.8043412705730066, - 2.8078219294114493, - 2.8112993964492556, - 2.814773674613339, - 2.8182447668279313, - 2.821712676014581, - 2.825177405092158, - 2.828638956976856, - 2.832097334582195, - 2.8355525408190205, - 2.839004578595513, - 2.8424534508171817, - 2.8458991603868733, - 2.849341710204775, - 2.8527811031684105, - 2.856217342172649, - 2.8596504301097045, - 2.8630803698691385, - 2.8665071643378632, - 2.869930816400142, - 2.873351328937595, - 2.8767687048292, - 2.8801829469512934, - 2.8835940581775756, - 2.88700204137911, - 2.8904068994243284, - 2.893808635179032, - 2.8972072515063942, - 2.9006027512669617, - 2.9039951373186588, - 2.9073844125167905, - 2.910770579714041, - 2.91415364176048, - 2.917533601503564, - 2.920910461788137, - 2.924284225456436, - 2.927654895348089, - 2.9310224743001214, - 2.9343869651469583, - 2.9377483707204246, - 2.9411066938497474, - 2.9444619373615617, - 2.9478141040799084, - 2.9511631968262395, - 2.954509218419419, - 2.9578521716757256, - 2.9611920594088583, - 2.9645288844299333, - 2.96786264954749, - 2.9711933575674907, - 2.9745210112933274, - 2.9778456135258193, - 2.9811671670632185, - 2.984485674701209, - 2.9878011392329125, - 2.99111356344889, - 2.9944229501371433, - 2.9977293020831164, - 3.0010326220697, - 3.004332912877233, - 3.0076301772835046, - 3.0109244180637553, - 3.014215637990682, - 3.0175038398344403, - 3.0207890263626425, - 3.024071200340365, - 3.027350364530149, - 3.0306265216920005, - 3.033899674583397, - 3.037169825959284, - 3.040436978572084, - 3.043701135171694, - 3.0469622985054894, - 3.050220471318326, - 3.053475656352544, - 3.0567278563479667, - 3.0599770740419063, - 3.063223312169165, - 3.0664665734620353, - 3.069706860650306, - 3.0729441764612626, - 3.0761785236196895, - 3.079409904847872, - 3.082638322865599, - 3.0858637803901656, - 3.089086280136376, - 3.092305824816542, - 3.0955224171404905, - 3.098736059815564, - 3.101946755546622, - 3.1051545070360422, - 3.1083593169837247, - 3.111561188087095, - 3.114760123041104, - 3.11795612453823, - 3.121149195268485, - 3.124339337919413, - 3.1275265551760922, - 3.130710849721141, - 3.133892224234717, - 3.137070681394519, - 3.1402462238757916, - 3.1434188543513253, - 3.1465885754914584, - 3.149755389964083, - 3.152919300434644, - 3.1560803095661414, - 3.159238420019134, - 3.1623936344517394, - 3.16554595551964, - 3.168695385876081, - 3.1718419281718746, - 3.1749855850554023, - 3.1781263591726185, - 3.18126425316705, - 3.184399269679799, - 3.1875314113495468, - 3.1906606808125546, - 3.1937870807026667, - 3.1969106136513097, - 3.2000312822874992, - 3.2031490892378414, - 3.2062640371265316, - 3.209376128575358, - 3.212485366203708, - 3.2155917526285633, - 3.2186952904645083, - 3.221795982323729, - 3.2248938308160153, - 3.227988838548764, - 3.231081008126982, - 3.234170342153287, - 3.2372568432279087, - 3.2403405139486954, - 3.2434213569111097, - 3.2464993747082374, - 3.249574569930782, - 3.2526469451670756, - 3.255716503003075, - 3.258783246022366, - 3.261847176806164, - 3.2649082979333195, - 3.2679666119803175, - 3.271022121521279, - 3.274074829127965, - 3.2771247373697796, - 3.280171848813769, - 3.2832161660246273, - 3.286257691564694, - 3.289296427993961, - 3.2923323778700726, - 3.295365543748327, - 3.2983959281816806, - 3.301423533720745, - 3.3044483629137966, - 3.3074704183067745, - 3.310489702443282, - 3.3135062178645893, - 3.316519967109639, - 3.3195309527150427, - 3.322539177215088, - 3.3255446431417357, - 3.328547353024627, - 3.331547309391083, - 3.334544514766108, - 3.3375389716723896, - 3.3405306826303023, - 3.3435196501579094, - 3.3465058767709657, - 3.349489364982918, - 3.3524701173049087, - 3.3554481362457778, - 3.3584234243120643, - 3.361395984008009, - 3.3643658178355564, - 3.3673329282943567, - 3.3702973178817666, - 3.373258989092854, - 3.376217944420399, - 3.3791741863548936, - 3.38212771738455, - 3.3850785399952947, - 3.3880266566707773, - 3.390972069892368, - 3.3939147821391633, - 3.3968547958879847, - 3.399792113613383, - 3.402726737787639, - 3.405658670880769, - 3.4085879153605223, - 3.411514473692385, - 3.4144383483395835, - 3.4173595417630844, - 3.4202780564215987, - 3.4231938947715803, - 3.426107059267233, - 3.4290175523605093, - 3.431925376501113, - 3.434830534136503, - 3.4377330277118903, - 3.4406328596702473, - 3.4435300324523044, - 3.4464245484965543, - 3.4493164102392533, - 3.4522056201144236, - 3.455092180553856, - 3.45797609398711, - 3.4608573628415185, - 3.463735989542188, - 3.466611976512001, - 3.4694853261716188, - 3.472356040939482, - 3.4752241232318144, - 3.4780895754626227, - 3.480952400043702, - 3.4838125993846343, - 3.4866701758927925, - 3.489525131973341, - 3.4923774700292407, - 3.4952271924612464, - 3.4980743016679128, - 3.500918800045595, - 3.5037606899884515, - 3.5065999738884432, - 3.5094366541353397, - 3.5122707331167167, - 3.515102213217963, - 3.51793109682228, - 3.52075738631068, - 3.523581084061996, - 3.526402192452878, - 3.529220713857797, - 3.5320366506490455, - 3.5348500051967413, - 3.53766077986883, - 3.5404689770310838, - 3.5432745990471055, - 3.5460776482783323, - 3.5488781270840337, - 3.551676037821318, - 3.55447138284513, - 3.5572641645082568, - 3.5600543851613264, - 3.562842047152812, - 3.5656271528290326, - 3.5684097045341563, - 3.571189704610202, - 3.57396715539704, - 3.576742059232395, - 3.579514418451848, - 3.582284235388839, - 3.585051512374667, - 3.587816251738495, - 3.5905784558073477, - 3.5933381269061178, - 3.596095267357565, - 3.59884987948232, - 3.6016019655988845, - 3.6043515280236345, - 3.6070985690708217, - 3.609843091052577, - 3.612585096278908, - 3.615324587057707, - 3.6180615656947475, - 3.620796034493691, - 3.6235279957560853, - 3.6262574517813673, - 3.6289844048668654, - 3.6317088573078027, - 3.634430811397295, - 3.637150269426358, - 3.639867233683905, - 3.64258170645675, - 3.6452936900296113, - 3.648003186685111, - 3.6507101987037784, - 3.653414728364052, - 3.6561167779422803, - 3.6588163497127235, - 3.6615134459475582, - 3.664208068916876, - 3.666900220888688, - 3.6695899041289244, - 3.6722771209014384, - 3.6749618734680065, - 3.6776441640883317, - 3.6803239950200437, - 3.683001368518703, - 3.6856762868378015, - 3.688348752228764, - 3.6910187669409527, - 3.6936863332216654, - 3.6963514533161383, - 3.6990141294675514, - 3.7016743639170246, - 3.7043321589036244, - 3.7069875166643653, - 3.7096404394342075, - 3.712290929446064, - 3.7149389889307978, - 3.7175846201172305, - 3.720227825232134, - 3.722868606500244, - 3.7255069661442506, - 3.7281429063848113, - 3.7307764294405428, - 3.7334075375280302, - 3.7360362328618235, - 3.738662517654443, - 3.741286394116382, - 3.743907864456102, - 3.7465269308800453, - 3.749143595592625, - 3.7517578607962387, - 3.75436972869126, - 3.756979201476044, - 3.759586281346935, - 3.7621909704982577, - 3.764793271122329, - 3.7673931854094516, - 3.7699907155479226, - 3.772585863724031, - 3.7751786321220613, - 3.777769022924296, - 3.780357038311013, - 3.7829426804604953, - 3.7855259515490247, - 3.7881068537508904, - 3.790685389238385, - 3.7932615601818114, - 3.7958353687494806, - 3.798406817107717, - 3.800975907420857, - 3.803542641851251, - 3.8061070225592712, - 3.8086690517033026, - 3.811228731439757, - 3.8137860639230627, - 3.816341051305678, - 3.8188936957380837, - 3.821443999368789, - 3.823991964344335, - 3.826537592809292, - 3.829080886906265, - 3.8316218487758937, - 3.834160480556856, - 3.836696784385866, - 3.839230762397682, - 3.8417624167251025, - 3.844291749498968, - 3.84681876284817, - 3.849343458899643, - 3.851865839778376, - 3.8543859076074036, - 3.85690366450782, - 3.8594191125987685, - 3.8619322539974528, - 3.8644430908191336, - 3.866951625177131, - 3.869457859182831, - 3.871961794945677, - 3.874463434573186, - 3.876962780170934, - 3.879459833842574, - 3.8819545976898246, - 3.884447073812478, - 3.8869372643084033, - 3.889425171273542, - 3.8919107968019184, - 3.8943941429856315, - 3.896875211914866, - 3.8993540056778873, - 3.901830526361047, - 3.904304776048784, - 3.9067767568236227, - 3.9092464707661825, - 3.9117139199551696, - 3.914179106467389, - 3.916642032377738, - 3.9191026997592124, - 3.9215611106829065, - 3.924017267218017, - 3.926471171431841, - 3.9289228253897797, - 3.931372231155344, - 3.933819390790147, - 3.936264306353916, - 3.9387069799044863, - 3.9411474134978084, - 3.9435856091879473, - 3.9460215690270823, - 3.948455295065513, - 3.9508867893516566, - 3.9533160539320553, - 3.9557430908513713, - 3.9581679021523946, - 3.9605904898760387, - 3.963010856061349, - 3.965429002745499, - 3.967844931963793, - 3.970258645749673, - 3.972670146134712, - 3.975079435148622, - 3.9774865148192533, - 3.979891387172598, - 3.982294054232787, - 3.9846945180221, - 3.9870927805609586, - 3.9894888438679312, - 3.991882709959738, - 3.994274380851247, - 3.9966638585554812, - 3.9990511450836146, - 4.001436242444981, - 4.003819152647068, - 4.006199877695523, - 4.008578419594157, - 4.010954780344937, - 4.0133289619480035, - 4.015700966401654, - 4.018070795702359, - 4.020438451844756, - 4.022803936821655, - 4.025167252624036, - 4.027528401241056, - 4.0298873846600465, - 4.032244204866515, - 4.0345988638441534, - 4.036951363574827, - 4.039301706038592, - 4.041649893213683, - 4.043995927076522, - 4.0463398096017205, - 4.048681542762075, - 4.0510211285285775, - 4.05335856887041, - 4.055693865754949, - 4.058027021147767, - 4.060358037012637, - 4.062686915311527, - 4.065013658004606, - 4.067338267050249, - 4.069660744405031, - 4.071981092023736, - 4.074299311859355, - 4.076615405863087, - 4.078929375984341, - 4.081241224170741, - 4.083550952368123, - 4.085858562520538, - 4.088164056570257, - 4.090467436457767, - 4.092768704121779, - 4.0950678614992215, - 4.097364910525252, - 4.099659853133248, - 4.101952691254819, - 4.104243426819802, - 4.10653206175626, - 4.108818597990495, - 4.111103037447036, - 4.1133853820486515, - 4.115665633716345, - 4.11794379436936, - 4.120219865925178, - 4.122493850299522, - 4.124765749406362, - 4.127035565157907, - 4.129303299464619, - 4.1315689542352, - 4.133832531376611, - 4.136094032794058, - 4.138353460391002, - 4.140610816069158, - 4.142866101728496, - 4.145119319267247, - 4.147370470581897, - 4.149619557567197, - 4.151866582116158, - 4.154111546120055, - 4.156354451468431, - 4.158595300049094, - 4.160834093748122, - 4.1630708344498615, - 4.165305524036935, - 4.1675381643902325, - 4.169768757388926, - 4.17199730491046, - 4.1742238088305585, - 4.176448271023227, - 4.178670693360747, - 4.180891077713691, - 4.18310942595091, - 4.185325739939546, - 4.187540021545022, - 4.189752272631059, - 4.191962495059662, - 4.194170690691132, - 4.1963768613840635, - 4.198581008995345, - 4.200783135380165, - 4.202983242392009, - 4.205181331882664, - 4.207377405702215, - 4.209571465699058, - 4.211763513719886, - 4.213953551609703, - 4.216141581211822, - 4.218327604367861, - 4.220511622917754, - 4.222693638699745, - 4.224873653550395, - 4.227051669304576, - 4.229227687795483, - 4.231401710854625, - 4.233573740311836, - 4.2357437779952685, - 4.2379118257314, - 4.240077885345034, - 4.2422419586592985, - 4.244404047495653, - 4.246564153673881, - 4.248722279012104, - 4.250878425326772, - 4.253032594432669, - 4.255184788142918, - 4.257335008268977, - 4.259483256620643, - 4.261629535006054, - 4.26377384523169, - 4.265916189102373, - 4.268056568421273, - 4.270194984989904, - 4.272331440608127, - 4.274465937074155, - 4.276598476184552, - 4.278729059734234, - 4.280857689516467, - 4.2829843673228805, - 4.285109094943455, - 4.287231874166531, - 4.289352706778811, - 4.291471594565355, - 4.2935885393095905, - 4.295703542793306, - 4.29781660679666, - 4.299927733098175, - 4.302036923474745, - 4.304144179701632, - 4.306249503552472, - 4.308352896799275, - 4.310454361212423, - 4.312553898560679, - 4.314651510611179, - 4.316747199129444, - 4.318840965879371, - 4.320932812623244, - 4.323022741121728, - 4.325110753133873, - 4.327196850417119, - 4.329281034727289, - 4.331363307818604, - 4.333443671443667, - 4.3355221273534825, - 4.337598677297444, - 4.33967332302334, - 4.341746066277362, - 4.343816908804094, - 4.345885852346524, - 4.34795289864604, - 4.3500180494424345, - 4.352081306473902, - 4.354142671477048, - 4.356202146186879, - 4.358259732336815, - 4.360315431658686, - 4.362369245882731, - 4.364421176737607, - 4.366471225950381, - 4.36851939524654, - 4.3705656863499875, - 4.372610100983045, - 4.374652640866456, - 4.376693307719385, - 4.378732103259422, - 4.380769029202578, - 4.382804087263295, - 4.38483727915444, - 4.386868606587311, - 4.388898071271635, - 4.390925674915572, - 4.3929514192257155, - 4.394975305907093, - 4.396997336663172, - 4.399017513195852, - 4.401035837205479, - 4.403052310390834, - 4.405066934449143, - 4.407079711076075, - 4.409090641965742, - 4.411099728810708, - 4.413106973301978, - 4.415112377129011, - 4.4171159419797155, - 4.419117669540452, - 4.421117561496034, - 4.4231156195297325, - 4.425111845323271, - 4.427106240556833, - 4.429098806909064, - 4.431089546057063, - 4.433078459676398, - 4.435065549441099, - 4.437050817023658, - 4.439034264095035, - 4.441015892324658, - 4.442995703380425, - 4.4449736989287025, - 4.446949880634331, - 4.448924250160621, - 4.450896809169362, - 4.452867559320817, - 4.454836502273727, - 4.456803639685313, - 4.4587689732112725, - 4.460732504505791, - 4.462694235221531, - 4.464654167009644, - 4.466612301519763, - 4.468568640400014, - 4.470523185297005, - 4.472475937855841, - 4.474426899720113, - 4.476376072531906, - 4.478323457931801, - 4.480269057558873, - 4.482212873050695, - 4.4841549060433366, - 4.486095158171369, - 4.488033631067864, - 4.489970326364395, - 4.49190524569104, - 4.493838390676381, - 4.49576976294751, - 4.497699364130021, - 4.499627195848025, - 4.501553259724136, - 4.503477557379485, - 4.5054000904337155, - 4.507320860504984, - 4.509239869209965, - 4.51115711816385, - 4.513072608980349, - 4.5149863432716915, - 4.516898322648632, - 4.5188085487204415, - 4.520717023094923, - 4.5226237473783995, - 4.524528723175723, - 4.526431952090275, - 4.528333435723962, - 4.530233175677227, - 4.532131173549043, - 4.534027430936918, - 4.535921949436894, - 4.537814730643546, - 4.539705776149994, - 4.541595087547892, - 4.543482666427435, - 4.545368514377361, - 4.547252632984951, - 4.54913502383603, - 4.551015688514968, - 4.552894628604685, - 4.554771845686644, - 4.556647341340864, - 4.5585211171459115, - 4.560393174678906, - 4.562263515515521, - 4.564132141229985, - 4.565999053395083, - 4.567864253582158, - 4.5697277433611125, - 4.571589524300407, - 4.573449597967067, - 4.575307965926678, - 4.577164629743392, - 4.579019590979925, - 4.5808728511975625, - 4.582724411956156, - 4.584574274814127, - 4.586422441328468, - 4.588268913054743, - 4.590113691547093, - 4.591956778358229, - 4.593798175039442, - 4.595637883140597, - 4.597475904210142, - 4.5993122397951, - 4.60114689144108, - 4.602979860692271, - 4.6048111490914465, - 4.6066407581799655, - 4.608468689497774, - 4.610294944583405, - 4.61211952497398, - 4.613942432205214, - 4.61576366781141, - 4.617583233325466, - 4.619401130278875, - 4.621217360201723, - 4.623031924622695, - 4.624844825069074, - 4.626656063066743, - 4.628465640140183, - 4.630273557812479, - 4.632079817605321, - 4.633884421039001, - 4.635687369632418, - 4.637488664903077, - 4.639288308367092, - 4.64108630153919, - 4.642882645932702, - 4.644677343059579, - 4.646470394430378, - 4.648261801554277, - 4.650051565939067, - 4.651839689091157, - 4.653626172515574, - 4.655411017715967, - 4.657194226194604, - 4.658975799452375, - 4.660755738988796, - 4.662534046302006, - 4.66431072288877, - 4.666085770244482, - 4.667859189863164, - 4.669630983237469, - 4.671401151858678, - 4.673169697216708, - 4.674936620800108, - 4.676701924096062, - 4.678465608590391, - 4.6802276757675525, - 4.681988127110644, - 4.6837469641014025, - 4.685504188220205, - 4.687259800946073, - 4.68901380375667, - 4.690766198128305, - 4.692516985535934, - 4.69426616745316, - 4.696013745352233, - 4.697759720704056, - 4.699504094978182, - 4.701246869642814, - 4.702988046164813, - 4.704727626009692, - 4.706465610641619, - 4.708202001523423, - 4.709936800116588, - 4.711670007881261, - 4.713401626276246, - 4.715131656759015, - 4.716860100785697, - 4.71858695981109, - 4.720312235288658, - 4.722035928670529, - 4.723758041407502, - 4.7254785749490456, - 4.7271975307432985, - 4.72891491023707, - 4.730630714875847, - 4.732344946103786, - 4.734057605363721, - 4.735768694097163, - 4.737478213744303, - 4.739186165744008, - 4.740892551533827, - 4.742597372549993, - 4.744300630227417, - 4.746002325999698, - 4.747702461299122, - 4.749401037556654, - 4.751098056201958, - 4.752793518663375, - 4.754487426367945, - 4.756179780741394, - 4.757870583208145, - 4.759559835191314, - 4.761247538112706, - 4.762933693392832, - 4.764618302450892, - 4.7663013667047895, - 4.767982887571124, - 4.7696628664652, - 4.771341304801022, - 4.773018203991298, - 4.774693565447441, - 4.776367390579567, - 4.778039680796504, - 4.779710437505783, - 4.7813796621136495, - 4.783047356025055, - 4.784713520643662, - 4.786378157371852, - 4.788041267610714, - 4.7897028527600565, - 4.791362914218399, - 4.793021453382987, - 4.794678471649776, - 4.796333970413447, - 4.7979879510674, - 4.799640415003757, - 4.801291363613365, - 4.8029407982857935, - 4.804588720409339, - 4.806235131371024, - 4.807880032556603, - 4.809523425350551, - 4.811165311136084, - 4.812805691295141, - 4.8144445672084, - 4.81608194025527, - 4.817717811813892, - 4.81935218326115, - 4.82098505597266, - 4.822616431322778, - 4.824246310684601, - 4.825874695429968, - 4.827501586929453, - 4.829126986552383, - 4.830750895666823, - 4.8323733156395825, - 4.833994247836222, - 4.835613693621048, - 4.837231654357116, - 4.8388481314062295, - 4.840463126128948, - 4.842076639884577, - 4.84368867403118, - 4.845299229925576, - 4.846908308923335, - 4.8485159123787875, - 4.850122041645022, - 4.851726698073885, - 4.8533298830159834, - 4.854931597820686, - 4.856531843836125, - 4.8581306224091945, - 4.859727934885556, - 4.8613237826096345, - 4.862918166924623, - 4.864511089172483, - 4.866102550693947, - 4.867692552828514, - 4.8692810969144595, - 4.870868184288828, - 4.87245381628744, - 4.874037994244889, - 4.875620719494546, - 4.877201993368561, - 4.878781817197859, - 4.880360192312147, - 4.881937120039913, - 4.883512601708423, - 4.885086638643731, - 4.88665923217067, - 4.888230383612863, - 4.889800094292715, - 4.891368365531422, - 4.8929351986489635, - 4.894500594964116, - 4.896064555794439, - 4.897627082456287, - 4.8991881762648095, - 4.900747838533947, - 4.902306070576437, - 4.903862873703812, - 4.905418249226401, - 4.906972198453333, - 4.908524722692538, - 4.910075823250742, - 4.911625501433478, - 4.913173758545077, - 4.914720595888676, - 4.916266014766219, - 4.917810016478453, - 4.919352602324933, - 4.920893773604024, - 4.922433531612898, - 4.92397187764754, - 4.925508813002744, - 4.927044338972118, - 4.928578456848083, - 4.930111167921877, - 4.931642473483551, - 4.933172374821975, - 4.934700873224836, - 4.936227969978641, - 4.937753666368717, - 4.939277963679212, - 4.940800863193096, - 4.942322366192164, - 4.943842473957035, - 4.945361187767151, - 4.946878508900788, - 4.948394438635041, - 4.949908978245838, - 4.9514221290079385, - 4.952933892194929, - 4.954444269079232, - 4.955953260932101, - 4.957460869023626, - 4.958967094622729, - 4.96047193899717, - 4.961975403413548, - 4.963477489137296, - 4.964978197432693, - 4.9664775295628525, - 4.967975486789734, - 4.969472070374138, - 4.970967281575708, - 4.972461121652937, - 4.973953591863155, - 4.975444693462548, - 4.976934427706146, - 4.978422795847829, - 4.979909799140324, - 4.981395438835215, - 4.982879716182935, - 4.984362632432769, - 4.98584418883286, - 4.987324386630203, - 4.988803227070652, - 4.990280711398915, - 4.991756840858565, - 4.993231616692026, - 4.994705040140592, - 4.996177112444413, - 4.9976478348425, - 4.999117208572734, - 5.000585234871856, - 5.002051914975476, - 5.003517250118067, - 5.004981241532974, - 5.006443890452409, - 5.007905198107454, - 5.009365165728063, - 5.010823794543062, - 5.012281085780149, - 5.013737040665897, - 5.015191660425755, - 5.016644946284046, - 5.018096899463973, - 5.019547521187615, - 5.020996812675933, - 5.022444775148766, - 5.0238914098248335, - 5.025336717921742, - 5.026780700655976, - 5.028223359242908, - 5.029664694896794, - 5.031104708830779, - 5.032543402256894, - 5.0339807763860565, - 5.035416832428078, - 5.036851571591656, - 5.038284995084384, - 5.039717104112744, - 5.041147899882115, - 5.042577383596768, - 5.044005556459873, - 5.045432419673493, - 5.046857974438591, - 5.048282221955028, - 5.049705163421564, - 5.051126800035862, - 5.052547132994482, - 5.053966163492893, - 5.055383892725463, - 5.0568003218854685, - 5.058215452165087, - 5.059629284755406, - 5.061041820846422, - 5.0624530616270365, - 5.063863008285065, - 5.065271662007229, - 5.066679023979165, - 5.068085095385422, - 5.069489877409461, - 5.070893371233662, - 5.072295578039314, - 5.073696499006629, - 5.075096135314733, - 5.076494488141672, - 5.077891558664413, - 5.079287348058841, - 5.080681857499766, - 5.082075088160915, - 5.083467041214946, - 5.084857717833436, - 5.0862471191868925, - 5.087635246444743, - 5.089022100775351, - 5.090407683346, - 5.091791995322909, - 5.093175037871227, - 5.09455681215503, - 5.095937319337334, - 5.09731656058008, - 5.098694537044152, - 5.100071249889363, - 5.101446700274465, - 5.102820889357148, - 5.104193818294038, - 5.105565488240703, - 5.10693590035165, - 5.108305055780328, - 5.109672955679126, - 5.111039601199381, - 5.112404993491368, - 5.113769133704313, - 5.115132022986385, - 5.1164936624847, - 5.117854053345324, - 5.119213196713269, - 5.120571093732501, - 5.121927745545933, - 5.123283153295432, - 5.124637318121819, - 5.1259902411648675, - 5.127341923563304, - 5.128692366454815, - 5.130041570976038, - 5.1313895382625745, - 5.132736269448982, - 5.134081765668775, - 5.135426028054432, - 5.136769057737392, - 5.138110855848055, - 5.139451423515788, - 5.140790761868918, - 5.142128872034741, - 5.143465755139515, - 5.144801412308472, - 5.146135844665804, - 5.147469053334678, - 5.148801039437228, - 5.150131804094562, - 5.151461348426757, - 5.1527896735528635, - 5.154116780590907, - 5.155442670657886, - 5.1567673448697775, - 5.158090804341532, - 5.159413050187079, - 5.160734083519328, - 5.162053905450164, - 5.1633725170904565, - 5.164689919550053, - 5.166006113937787, - 5.167321101361471, - 5.168634882927906, - 5.169947459742873, - 5.1712588329111435, - 5.1725690035364735, - 5.173877972721608, - 5.1751857415682805, - 5.1764923111772125, - 5.177797682648119, - 5.179101857079705, - 5.180404835569668, - 5.181706619214697, - 5.183007209110481, - 5.184306606351698, - 5.185604812032024, - 5.186901827244137, - 5.188197653079705, - 5.189492290629399, - 5.190785740982891, - 5.192078005228852, - 5.193369084454956, - 5.194658979747875, - 5.195947692193292, - 5.197235222875889, - 5.198521572879355, - 5.199806743286385, - 5.201090735178681, - 5.202373549636954, - 5.203655187740924, - 5.204935650569318, - 5.206214939199878, - 5.207493054709356, - 5.208769998173514, - 5.210045770667132, - 5.211320373264002, - 5.212593807036931, - 5.213866073057742, - 5.215137172397277, - 5.216407106125396, - 5.217675875310975, - 5.218943481021912, - 5.220209924325125, - 5.2214752062865575, - 5.222739327971168, - 5.224002290442945, - 5.2252640947648965, - 5.22652474199906, - 5.2277842332064965, - 5.229042569447295, - 5.230299751780572, - 5.231555781264471, - 5.232810658956169, - 5.234064385911871, - 5.235316963186815, - 5.236568391835268, - 5.237818672910533, - 5.239067807464949, - 5.2403157965498846, - 5.24156264121575, - 5.242808342511988, - 5.2440529014870805, - 5.245296319188548, - 5.24653859666295, - 5.247779734955889, - 5.249019735112002, - 5.250258598174977, - 5.251496325187537, - 5.252732917191454, - 5.253968375227543, - 5.255202700335664, - 5.256435893554722, - 5.257667955922674, - 5.25889888847652, - 5.260128692252312, - 5.261357368285153, - 5.262584917609192, - 5.263811341257635, - 5.265036640262738, - 5.266260815655811, - 5.267483868467218, - 5.268705799726377, - 5.269926610461765, - 5.27114630170091, - 5.272364874470408, - 5.273582329795902, - 5.274798668702102, - 5.276013892212778, - 5.277228001350756, - 5.27844099713793, - 5.279652880595252, - 5.2808636527427435, - 5.282073314599483, - 5.283281867183623, - 5.284489311512375, - 5.2856956486020215, - 5.286900879467913, - 5.288105005124468, - 5.289308026585175, - 5.290509944862594, - 5.291710760968354, - 5.29291047591316, - 5.294109090706788, - 5.295306606358086, - 5.296503023874979, - 5.29769834426447, - 5.298892568532635, - 5.300085697684629, - 5.301277732724685, - 5.302468674656115, - 5.303658524481312, - 5.304847283201749, - 5.306034951817978, - 5.3072215313296365, - 5.308407022735448, - 5.3095914270332125, - 5.310774745219824, - 5.311956978291255, - 5.313138127242567, - 5.314318193067912, - 5.315497176760526, - 5.316675079312737, - 5.317851901715961, - 5.319027644960707, - 5.320202310036574, - 5.321375897932255, - 5.322548409635535, - 5.323719846133293, - 5.324890208411505, - 5.3260594974552395, - 5.327227714248666, - 5.328394859775049, - 5.32956093501675, - 5.330725940955233, - 5.331889878571061, - 5.333052748843893, - 5.334214552752497, - 5.33537529127474, - 5.336534965387592, - 5.337693576067129, - 5.338851124288527, - 5.340007611026074, - 5.341163037253161, - 5.342317403942288, - 5.343470712065061, - 5.344622962592197, - 5.3457741564935235, - 5.346924294737976, - 5.348073378293603, - 5.3492214081275655, - 5.3503683852061386, - 5.351514310494707, - 5.352659184957776, - 5.353803009558963, - 5.354945785261001, - 5.356087513025742, - 5.357228193814158, - 5.358367828586334, - 5.359506418301479, - 5.360643963917922, - 5.36178046639311, - 5.362915926683617, - 5.364050345745137, - 5.365183724532487, - 5.36631606399961, - 5.367447365099573, - 5.36857762878457, - 5.369706856005921, - 5.370835047714074, - 5.3719622048586055, - 5.3730883283882225, - 5.374213419250759, - 5.37533747839318, - 5.376460506761588, - 5.377582505301211, - 5.378703474956413, - 5.379823416670692, - 5.380942331386681, - 5.382060220046147, - 5.383177083589995, - 5.384292922958268, - 5.3854077390901445, - 5.386521532923943, - 5.387634305397122, - 5.38874605744628, - 5.389856790007156, - 5.3909665040146315, - 5.392075200402731, - 5.393182880104622, - 5.394289544052617, - 5.395395193178172, - 5.39649982841189, - 5.39760345068352, - 5.398706060921961, - 5.399807660055255, - 5.400908249010598, - 5.402007828714335, - 5.403106400091956, - 5.4042039640681105, - 5.405300521566596, - 5.4063960735103604, - 5.407490620821511, - 5.4085841644213035, - 5.409676705230154, - 5.410768244167632, - 5.411858782152462, - 5.412948320102531, - 5.414036858934879, - 5.415124399565709, - 5.416210942910382, - 5.417296489883419, - 5.418381041398503, - 5.4194645983684815, - 5.420547161705361, - 5.421628732320314, - 5.422709311123676, - 5.42378889902495, - 5.424867496932802, - 5.425945105755068, - 5.42702172639875, - 5.428097359770017, - 5.429172006774208, - 5.430245668315832, - 5.431318345298569, - 5.432390038625271, - 5.433460749197958, - 5.4345304779178285, - 5.435599225685251, - 5.436666993399768, - 5.4377337819601, - 5.43879959226414, - 5.43986442520896, - 5.440928281690809, - 5.441991162605113, - 5.443053068846479, - 5.444114001308691, - 5.445173960884716, - 5.4462329484667, - 5.447290964945971, - 5.448348011213041, - 5.449404088157606, - 5.450459196668543, - 5.451513337633916, - 5.452566511940975, - 5.453618720476156, - 5.454669964125082, - 5.455720243772563, - 5.4567695603025985, - 5.457817914598379, - 5.458865307542281, - 5.459911740015876, - 5.460957212899924, - 5.462001727074381, - 5.463045283418391, - 5.464087882810295, - 5.4651295261276305, - 5.466170214247125, - 5.467209948044706, - 5.468248728395498, - 5.46928655617382, - 5.470323432253191, - 5.471359357506329, - 5.472394332805153, - 5.4734283590207795, - 5.474461437023528, - 5.47549356768292, - 5.4765247518676805, - 5.477554990445735, - 5.4785842842842145, - 5.479612634249457, - 5.4806400412070015, - 5.481666506021598, - 5.4826920295571995, - 5.483716612676971, - 5.484740256243281, - 5.485762961117714, - 5.486784728161056, - 5.487805558233312, - 5.488825452193691, - 5.489844410900617, - 5.490862435211731, - 5.4918795259838795, - 5.4928956840731304, - 5.493910910334762, - 5.4949252056232725, - 5.4959385707923705, - 5.496951006694989, - 5.497962514183271, - 5.498973094108585, - 5.499982747321516, - 5.500991474671868, - 5.501999277008666, - 5.503006155180159, - 5.504012110033815, - 5.505017142416326, - 5.506021253173609, - 5.5070244431508035, - 5.508026713192274, - 5.509028064141611, - 5.510028496841632, - 5.511028012134382, - 5.51202661086113, - 5.513024293862381, - 5.5140210619778625, - 5.515016916046535, - 5.516011856906587, - 5.517005885395443, - 5.5179990023497565, - 5.518991208605413, - 5.519982504997534, - 5.520972892360472, - 5.521962371527819, - 5.522950943332399, - 5.5239386086062705, - 5.524925368180735, - 5.525911222886327, - 5.526896173552821, - 5.52788022100923, - 5.528863366083808, - 5.529845609604048, - 5.530826952396684, - 5.531807395287694, - 5.532786939102295, - 5.533765584664953, - 5.534743332799372, - 5.535720184328503, - 5.536696140074543, - 5.537671200858936, - 5.538645367502369, - 5.539618640824779, - 5.540591021645351, - 5.541562510782519, - 5.542533109053966, - 5.543502817276624, - 5.544471636266678, - 5.545439566839565, - 5.546406609809972, - 5.547372765991838, - 5.548338036198357, - 5.549302421241982, - 5.550265921934413, - 5.551228539086609, - 5.552190273508788, - 5.553151126010421, - 5.55411109740024, - 5.555070188486232, - 5.556028400075646, - 5.556985732974989, - 5.5579421879900295, - 5.558897765925796, - 5.55985246758658, - 5.560806293775934, - 5.561759245296675, - 5.562711322950884, - 5.563662527539905, - 5.564612859864348, - 5.565562320724088, - 5.566510910918268, - 5.567458631245298, - 5.568405482502855, - 5.569351465487884, - 5.570296580996601, - 5.57124082982449, - 5.572184212766307, - 5.573126730616078, - 5.574068384167102, - 5.575009174211951, - 5.575949101542467, - 5.576888166949771, - 5.577826371224251, - 5.578763715155579, - 5.579700199532698, - 5.580635825143827, - 5.5815705927764645, - 5.582504503217385, - 5.583437557252643, - 5.584369755667571, - 5.585301099246782, - 5.586231588774168, - 5.587161225032904, - 5.588090008805448, - 5.589017940873538, - 5.589945022018195, - 5.590871253019725, - 5.59179663465772, - 5.592721167711052, - 5.593644852957884, - 5.594567691175665, - 5.595489683141126, - 5.59641082963029, - 5.59733113141847, - 5.598250589280265, - 5.599169203989562, - 5.600086976319543, - 5.601003907042677, - 5.601919996930729, - 5.602835246754751, - 5.603749657285092, - 5.604663229291392, - 5.605575963542585, - 5.606487860806905, - 5.607398921851875, - 5.608309147444318, - 5.609218538350353, - 5.610127095335394, - 5.611034819164158, - 5.611941710600657, - 5.612847770408203, - 5.613752999349408, - 5.614657398186187, - 5.615560967679753, - 5.616463708590623, - 5.617365621678616, - 5.618266707702853, - 5.619166967421761, - 5.620066401593072, - 5.62096501097382, - 5.621862796320347, - 5.622759758388302, - 5.623655897932639, - 5.62455121570762, - 5.625445712466819, - 5.626339388963113, - 5.6272322459486945, - 5.628124284175061, - 5.629015504393025, - 5.629905907352706, - 5.630795493803542, - 5.631684264494279, - 5.6325722201729755, - 5.6334593615870086, - 5.634345689483066, - 5.6352312046071535, - 5.63611590770459, - 5.636999799520014, - 5.6378828807973775, - 5.638765152279955, - 5.639646614710335, - 5.640527268830428, - 5.641407115381463, - 5.642286155103988, - 5.6431643887378735, - 5.644041817022313, - 5.644918440695817, - 5.645794260496226, - 5.646669277160698, - 5.6475434914257185, - 5.648416904027092, - 5.649289515699958, - 5.650161327178773, - 5.651032339197323, - 5.651902552488725, - 5.652771967785417, - 5.6536405858191685, - 5.654508407321079, - 5.655375433021577, - 5.656241663650419, - 5.657107099936695, - 5.657971742608827, - 5.658835592394565, - 5.659698650020996, - 5.6605609162145365, - 5.661422391700941, - 5.662283077205294, - 5.663142973452018, - 5.664002081164871, - 5.664860401066948, - 5.665717933880677, - 5.666574680327829, - 5.667430641129508, - 5.668285817006161, - 5.6691402086775735, - 5.669993816862866, - 5.670846642280506, - 5.671698685648298, - 5.672549947683393, - 5.673400429102279, - 5.6742501306207895, - 5.675099052954102, - 5.675947196816736, - 5.676794562922559, - 5.677641151984782, - 5.678486964715961, - 5.679332001828, - 5.68017626403215, - 5.681019752039011, - 5.681862466558527, - 5.682704408299998, - 5.683545577972066, - 5.684385976282728, - 5.6852256039393305, - 5.686064461648573, - 5.686902550116502, - 5.687739870048523, - 5.688576422149389, - 5.689412207123211, - 5.690247225673452, - 5.69108147850293, - 5.69191496631382, - 5.69274768980765, - 5.693579649685309, - 5.69441084664704, - 5.695241281392446, - 5.696070954620485, - 5.696899867029478, - 5.697728019317104, - 5.698555412180402, - 5.699382046315772, - 5.700207922418976, - 5.701033041185137, - 5.7018574033087415, - 5.702681009483638, - 5.703503860403039, - 5.704325956759523, - 5.705147299245031, - 5.705967888550871, - 5.706787725367717, - 5.7076068103856095, - 5.708425144293955, - 5.709242727781528, - 5.710059561536475, - 5.710875646246307, - 5.711690982597906, - 5.712505571277526, - 5.713319412970787, - 5.714132508362686, - 5.7149448581375895, - 5.7157564629792335, - 5.716567323570732, - 5.717377440594568, - 5.718186814732603, - 5.718995446666069, - 5.719803337075578, - 5.720610486641113, - 5.721416896042037, - 5.722222565957087, - 5.723027497064381, - 5.723831690041412, - 5.724635145565054, - 5.725437864311561, - 5.726239846956563, - 5.727041094175075, - 5.727841606641488, - 5.728641385029579, - 5.729440430012506, - 5.7302387422628085, - 5.731036322452409, - 5.7318331712526165, - 5.732629289334123, - 5.733424677367004, - 5.734219336020722, - 5.735013265964125, - 5.73580646786545, - 5.736598942392316, - 5.737390690211735, - 5.738181711990105, - 5.738972008393213, - 5.7397615800862365, - 5.740550427733742, - 5.741338551999686, - 5.742125953547418, - 5.742912633039678, - 5.743698591138597, - 5.744483828505702, - 5.745268345801911, - 5.746052143687536, - 5.746835222822286, - 5.747617583865261, - 5.748399227474959, - 5.749180154309275, - 5.7499603650254985, - 5.750739860280317, - 5.751518640729817, - 5.7522967070294815, - 5.753074059834195, - 5.753850699798239, - 5.754626627575296, - 5.755401843818448, - 5.75617634918018, - 5.756950144312377, - 5.757723229866328, - 5.758495606492723, - 5.759267274841655, - 5.760038235562623, - 5.76080848930453, - 5.761578036715683, - 5.762346878443793, - 5.7631150151359805, - 5.763882447438769, - 5.764649175998094, - 5.765415201459292, - 5.7661805244671145, - 5.766945145665716, - 5.767709065698665, - 5.768472285208937, - 5.769234804838918, - 5.769996625230407, - 5.770757747024611, - 5.771518170862152, - 5.772277897383065, - 5.773036927226793, - 5.773795261032201, - 5.77455289943756, - 5.775309843080561, - 5.776066092598307, - 5.776821648627319, - 5.777576511803533, - 5.778330682762302, - 5.779084162138397, - 5.779836950566008, - 5.780589048678739, - 5.781340457109619, - 5.782091176491091, - 5.782841207455023, - 5.783590550632699, - 5.784339206654827, - 5.785087176151536, - 5.785834459752377, - 5.786581058086323, - 5.787326971781772, - 5.7880722014665436, - 5.788816747767883, - 5.78956061131246, - 5.7903037927263705, - 5.7910462926351345, - 5.791788111663701, - 5.792529250436442, - 5.79326970957716, - 5.794009489709087, - 5.794748591454876, - 5.7954870154366205, - 5.796224762275832, - 5.79696183259346, - 5.797698227009881, - 5.798433946144904, - 5.799168990617768, - 5.799903361047147, - 5.800637058051145, - 5.801370082247301, - 5.8021024342525855, - 5.802834114683404, - 5.803565124155599, - 5.804295463284446, - 5.805025132684657, - 5.805754132970381, - 5.8064824647552005, - 5.807210128652141, - 5.80793712527366, - 5.808663455231659, - 5.809389119137472, - 5.810114117601877, - 5.8108384512350915, - 5.811562120646774, - 5.812285126446019, - 5.813007469241369, - 5.813729149640805, - 5.814450168251749, - 5.815170525681071, - 5.81589022253508, - 5.81660925941953, - 5.817327636939621, - 5.818045355699995, - 5.818762416304745, - 5.819478819357403, - 5.820194565460954, - 5.820909655217826, - 5.821624089229895, - 5.822337868098488, - 5.823050992424377, - 5.823763462807783, - 5.8244752798483805, - 5.825186444145292, - 5.825896956297089, - 5.826606816901795, - 5.827316026556885, - 5.828024585859291, - 5.828732495405387, - 5.829439755791011, - 5.830146367611449, - 5.83085233146144, - 5.831557647935182, - 5.832262317626324, - 5.832966341127975, - 5.833669719032695, - 5.834372451932503, - 5.835074540418877, - 5.83577598508275, - 5.836476786514515, - 5.837176945304022, - 5.83787646204058, - 5.838575337312958, - 5.839273571709387, - 5.8399711658175555, - 5.840668120224615, - 5.841364435517178, - 5.842060112281319, - 5.842755151102577, - 5.84344955256595, - 5.844143317255903, - 5.844836445756364, - 5.845528938650726, - 5.846220796521845, - 5.846912019952044, - 5.847602609523114, - 5.848292565816307, - 5.848981889412348, - 5.849670580891427, - 5.8503586408332025, - 5.851046069816797, - 5.85173286842081, - 5.852419037223305, - 5.853104576801814, - 5.853789487733347, - 5.854473770594375, - 5.855157425960847, - 5.855840454408183, - 5.8565228565112735, - 5.857204632844483, - 5.85788578398165, - 5.858566310496084, - 5.859246212960572, - 5.859925491947372, - 5.860604148028222, - 5.8612821817743335, - 5.861959593756392, - 5.862636384544564, - 5.863312554708489, - 5.863988104817288, - 5.8646630354395555, - 5.865337347143368, - 5.86601104049628, - 5.866684116065327, - 5.867356574417022, - 5.868028416117361, - 5.868699641731818, - 5.869370251825352, - 5.870040246962401, - 5.870709627706887, - 5.871378394622213, - 5.87204654827127, - 5.8727140892164265, - 5.87338101801954, - 5.87404733524195, - 5.874713041444484, - 5.875378137187453, - 5.876042623030654, - 5.8767064995333715, - 5.877369767254379, - 5.8780324267519335, - 5.878694478583783, - 5.879355923307164, - 5.880016761478801, - 5.880676993654908, - 5.881336620391189, - 5.881995642242839, - 5.882654059764544, - 5.883311873510481, - 5.883969084034319, - 5.884625691889217, - 5.885281697627829, - 5.885937101802304, - 5.886591904964281, - 5.887246107664897, - 5.887899710454778, - 5.88855271388405, - 5.889205118502333, - 5.889856924858743, - 5.890508133501893, - 5.891158744979891, - 5.891808759840345, - 5.892458178630358, - 5.893107001896534, - 5.893755230184975, - 5.8944028640412816, - 5.895049904010553, - 5.89569635063739, - 5.8963422044658955, - 5.896987466039671, - 5.89763213590182, - 5.898276214594948, - 5.898919702661165, - 5.89956260064208, - 5.900204909078807, - 5.9008466285119665, - 5.90148775948168, - 5.902128302527574, - 5.9027682581887815, - 5.903407627003939, - 5.904046409511191, - 5.90468460624819, - 5.905322217752091, - 5.905959244559561, - 5.906595687206772, - 5.907231546229404, - 5.907866822162648, - 5.908501515541203, - 5.9091356268992765, - 5.909769156770589, - 5.9104021056883695, - 5.9110344741853575, - 5.911666262793807, - 5.912297472045479, - 5.912928102471652, - 5.9135581546031135, - 5.914187628970167, - 5.914816526102628, - 5.915444846529827, - 5.916072590780609, - 5.9166997593833335, - 5.917326352865875, - 5.917952371755625, - 5.918577816579493, - 5.919202687863901, - 5.919826986134792, - 5.920450711917625, - 5.9210738657373785, - 5.9216964481185475, - 5.922318459585147, - 5.922939900660712, - 5.923560771868297, - 5.9241810737304785, - 5.924800806769349, - 5.925419971506528, - 5.926038568463155, - 5.926656598159886, - 5.9272740611169095, - 5.927890957853929, - 5.928507288890174, - 5.9291230547444, - 5.929738255934883, - 5.930352892979426, - 5.930966966395357, - 5.931580476699529, - 5.932193424408322, - 5.9328058100376415, - 5.93341763410292, - 5.934028897119118, - 5.934639599600724, - 5.935249742061753, - 5.93585932501575, - 5.936468348975789, - 5.937076814454473, - 5.937684721963937, - 5.938292072015842, - 5.9388988651213825, - 5.939505101791288, - 5.940110782535812, - 5.940715907864743, - 5.941320478287406, - 5.941924494312655, - 5.942527956448878, - 5.943130865203997, - 5.943733221085468, - 5.944335024600283, - 5.944936276254967, - 5.945536976555582, - 5.9461371260077245, - 5.946736725116529, - 5.947335774386666, - 5.947934274322344, - 5.948532225427307, - 5.94912962820484, - 5.9497264831577645, - 5.950322790788442, - 5.950918551598772, - 5.951513766090193, - 5.952108434763688, - 5.952702558119776, - 5.95329613665852, - 5.953889170879521, - 5.9544816612819265, - 5.9550736083644225, - 5.955665012625239, - 5.956255874562151, - 5.956846194672474, - 5.957435973453068, - 5.958025211400338, - 5.958613909010235, - 5.959202066778253, - 5.959789685199433, - 5.960376764768361, - 5.960963305979172, - 5.9615493093255445, - 5.962134775300706, - 5.962719704397433, - 5.963304097108047, - 5.963887953924419, - 5.9644712753379725, - 5.965054061839675, - 5.965636313920046, - 5.966218032069158, - 5.966799216776629, - 5.967379868531633, - 5.967959987822891, - 5.968539575138678, - 5.969118630966823, - 5.969697155794703, - 5.970275150109252, - 5.970852614396957, - 5.971429549143858, - 5.972005954835549, - 5.972581831957179, - 5.973157180993451, - 5.973732002428628, - 5.974306296746524, - 5.9748800644305105, - 5.9754533059635175, - 5.976026021828029, - 5.976598212506091, - 5.9771698784793035, - 5.9777410202288275, - 5.978311638235381, - 5.978881732979241, - 5.979451304940246, - 5.980020354597793, - 5.980588882430839, - 5.981156888917902, - 5.981724374537065, - 5.982291339765967, - 5.98285778508181, - 5.983423710961364, - 5.983989117880952, - 5.984554006316469, - 5.98511837674337, - 5.985682229636676, - 5.986245565470966, - 5.986808384720393, - 5.98737068785867, - 5.987932475359075, - 5.988493747694454, - 5.989054505337218, - 5.989614748759346, - 5.990174478432384, - 5.990733694827444, - 5.99129239841521, - 5.99185058966593, - 5.992408269049422, - 5.992965437035074, - 5.993522094091844, - 5.994078240688258, - 5.994633877292413, - 5.995189004371979, - 5.995743622394194, - 5.99629773182587, - 5.996851333133391, - 5.997404426782709, - 5.997957013239353, - 5.998509092968425, - 5.999060666434598, - 5.999611734102123, - 6.000162296434819, - 6.000712353896087, - 6.001261906948897, - 6.001810956055798, - 6.002359501678913, - 6.002907544279941, - 6.00345508432016, - 6.004002122260424, - 6.004548658561163, - 6.005094693682385, - 6.005640228083679, - 6.006185262224208, - 6.006729796562717, - 6.007273831557532, - 6.0078173676665525, - 6.008360405347265, - 6.008902945056732, - 6.0094449872516, - 6.009986532388093, - 6.0105275809220196, - 6.011068133308771, - 6.011608190003318, - 6.012147751460215, - 6.0126868181335995, - 6.013225390477196, - 6.013763468944307, - 6.0143010539878246, - 6.014838146060223, - 6.015374745613562, - 6.015910853099486, - 6.016446468969225, - 6.0169815936735995, - 6.01751622766301, - 6.018050371387448, - 6.018584025296493, - 6.01911718983931, - 6.019649865464654, - 6.020182052620864, - 6.020713751755876, - 6.021244963317207, - 6.021775687751969, - 6.022305925506862, - 6.0228356770281755, - 6.023364942761792, - 6.023893723153183, - 6.024422018647412, - 6.024949829689136, - 6.025477156722603, - 6.026004000191653, - 6.02653036053972, - 6.0270562382098305, - 6.027581633644606, - 6.028106547286261, - 6.028630979576604, - 6.029154930957041, - 6.02967840186857, - 6.0302013927517875, - 6.030723904046882, - 6.031245936193642, - 6.031767489631452, - 6.032288564799294, - 6.032809162135744, - 6.033329282078982, - 6.0338489250667795, - 6.0343680915365105, - 6.034886781925147, - 6.035404996669261, - 6.035922736205023, - 6.036440000968204, - 6.036956791394175, - 6.03747310791791, - 6.03798895097398, - 6.0385043209965605, - 6.039019218419429, - 6.039533643675965, - 6.040047597199147, - 6.040561079421563, - 6.041074090775398, - 6.041586631692445, - 6.042098702604099, - 6.04261030394136, - 6.043121436134832, - 6.043632099614725, - 6.044142294810856, - 6.0446520221526425, - 6.045161282069116, - 6.045670074988908, - 6.046178401340258, - 6.0466862615510175, - 6.0471936560486395, - 6.0477005852601895, - 6.04820704961234, - 6.04871304953137, - 6.049218585443171, - 6.049723657773242, - 6.050228266946694, - 6.050732413388244, - 6.051236097522222, - 6.051739319772571, - 6.052242080562841, - 6.052744380316198, - 6.053246219455415, - 6.053747598402883, - 6.054248517580601, - 6.054748977410181, - 6.055248978312853, - 6.055748520709456, - 6.056247605020447, - 6.056746231665892, - 6.057244401065478, - 6.057742113638502, - 6.05823936980388, - 6.058736169980143, - 6.059232514585437, - 6.059728404037527, - 6.06022383875379, - 6.060718819151225, - 6.061213345646448, - 6.061707418655692, - 6.062201038594806, - 6.062694205879264, - 6.063186920924154, - 6.063679184144181, - 6.064170995953678, - 6.064662356766591, - 6.065153266996488, - 6.065643727056558, - 6.066133737359612, - 6.066623298318084, - 6.067112410344024, - 6.067601073849111, - 6.068089289244642, - 6.068577056941536, - 6.069064377350341, - 6.069551250881224, - 6.070037677943975, - 6.070523658948011, - 6.071009194302373, - 6.071494284415726, - 6.07197892969636, - 6.072463130552192, - 6.072946887390765, - 6.073430200619247, - 6.073913070644432, - 6.074395497872742, - 6.074877482710228, - 6.075359025562566, - 6.075840126835062, - 6.076320786932647, - 6.0768010062598865, - 6.077280785220967, - 6.077760124219713, - 6.078239023659574, - 6.078717483943628, - 6.079195505474586, - 6.079673088654792, - 6.080150233886214, - 6.080626941570459, - 6.08110321210876, - 6.081579045901985, - 6.082054443350636, - 6.082529404854842, - 6.083003930814372, - 6.083478021628623, - 6.083951677696628, - 6.084424899417053, - 6.084897687188201, - 6.085370041408008, - 6.085841962474044, - 6.086313450783516, - 6.0867845067332675, - 6.087255130719775, - 6.087725323139154, - 6.088195084387157, - 6.088664414859171, - 6.089133314950223, - 6.089601785054977, - 6.090069825567734, - 6.090537436882435, - 6.091004619392661, - 6.091471373491627, - 6.091937699572194, - 6.092403598026856, - 6.092869069247751, - 6.093334113626658, - 6.093798731554996, - 6.094262923423822, - 6.094726689623841, - 6.095190030545394, - 6.095652946578466, - 6.096115438112682, - 6.096577505537314, - 6.097039149241275, - 6.09750036961312, - 6.097961167041049, - 6.098421541912909, - 6.098881494616185, - 6.099341025538011, - 6.099800135065165, - 6.100258823584072, - 6.100717091480798, - 6.10117493914106, - 6.101632366950219, - 6.102089375293282, - 6.1025459645549045, - 6.103002135119389, - 6.103457887370683, - 6.1039132216923875, - 6.104368138467746, - 6.104822638079653, - 6.105276720910652, - 6.105730387342936, - 6.106183637758346, - 6.1066364725383755, - 6.107088892064164, - 6.107540896716506, - 6.107992486875843, - 6.108443662922272, - 6.108894425235538, - 6.109344774195036, - 6.10979471017982, - 6.11024423356859, - 6.1106933447397, - 6.111142044071159, - 6.111590331940629, - 6.112038208725423, - 6.11248567480251, - 6.112932730548516, - 6.113379376339717, - 6.113825612552046, - 6.11427143956109, - 6.114716857742096, - 6.115161867469959, - 6.115606469119237, - 6.1160506630641445, - 6.116494449678548, - 6.116937829335975, - 6.117380802409608, - 6.1178233692722905, - 6.1182655302965205, - 6.118707285854457, - 6.1191486363179175, - 6.119589582058377, - 6.12003012344697, - 6.120470260854492, - 6.1209099946514, - 6.121349325207806, - 6.121788252893486, - 6.122226778077879, - 6.122664901130081, - 6.123102622418853, - 6.123539942312615, - 6.123976861179449, - 6.1244133793871045, - 6.124849497302988, - 6.125285215294172, - 6.125720533727391, - 6.1261554529690425, - 6.126589973385191, - 6.127024095341565, - 6.127457819203555, - 6.127891145336217, - 6.128324074104273, - 6.128756605872113, - 6.1291887410037855, - 6.129620479863014, - 6.130051822813183, - 6.1304827702173466, - 6.130913322438222, - 6.1313434798382, - 6.131773242779333, - 6.132202611623344, - 6.132631586731625, - 6.133060168465235, - 6.133488357184904, - 6.133916153251028, - 6.134343557023676, - 6.134770568862586, - 6.1351971891271635, - 6.135623418176486, - 6.136049256369303, - 6.136474704064034, - 6.1368997616187695, - 6.137324429391272, - 6.137748707738977, - 6.13817259701899, - 6.13859609758809, - 6.139019209802729, - 6.139441934019033, - 6.1398642705928, - 6.140286219879502, - 6.140707782234284, - 6.1411289580119695, - 6.141549747567052, - 6.141970151253702, - 6.142390169425766, - 6.142809802436762, - 6.143229050639889, - 6.143647914388021, - 6.144066394033706, - 6.144484489929168, - 6.144902202426311, - 6.1453195318767175, - 6.145736478631643, - 6.146153043042024, - 6.146569225458476, - 6.14698502623129, - 6.147400445710435, - 6.147815484245564, - 6.148230142186008, - 6.148644419880773, - 6.149058317678549, - 6.149471835927708, - 6.149884974976297, - 6.150297735172049, - 6.150710116862374, - 6.151122120394368, - 6.151533746114804, - 6.15194499437014, - 6.152355865506516, - 6.152766359869753, - 6.153176477805356, - 6.153586219658515, - 6.1539955857740996, - 6.154404576496665, - 6.154813192170452, - 6.155221433139382, - 6.155629299747066, - 6.156036792336794, - 6.1564439112515466, - 6.156850656833988, - 6.157257029426466, - 6.157663029371018, - 6.158068657009364, - 6.158473912682916, - 6.158878796732767, - 6.159283309499701, - 6.159687451324188, - 6.160091222546386, - 6.16049462350614, - 6.160897654542986, - 6.161300315996147, - 6.1617026082045365, - 6.162104531506753, - 6.1625060862410885, - 6.1629072727455245, - 6.16330809135773, - 6.163708542415067, - 6.164108626254588, - 6.1645083432130345, - 6.164907693626842, - 6.165306677832132, - 6.165705296164724, - 6.166103548960128, - 6.166501436553544, - 6.166898959279866, - 6.167296117473683, - 6.167692911469272, - 6.168089341600608, - 6.16848540820136, - 6.168881111604887, - 6.169276452144246, - 6.169671430152186, - 6.170066045961153, - 6.170460299903287, - 6.170854192310425, - 6.171247723514095, - 6.171640893845528, - 6.172033703635646, - 6.172426153215069, - 6.172818242914115, - 6.1732099730627965, - 6.173601343990826, - 6.173992356027612, - 6.174383009502263, - 6.174773304743582, - 6.175163242080075, - 6.1755528218399425, - 6.175942044351087, - 6.17633090994111, - 6.17671941893731, - 6.177107571666689, - 6.177495368455945, - 6.177882809631483, - 6.178269895519401, - 6.178656626445504, - 6.179043002735292, - 6.179429024713975, - 6.179814692706456, - 6.180200007037346, - 6.1805849680309555, - 6.180969576011299, - 6.181353831302094, - 6.1817377342267585, - 6.182121285108418, - 6.1825044842698995, - 6.182887332033733, - 6.183269828722154, - 6.183651974657103, - 6.184033770160225, - 6.184415215552868, - 6.184796311156088, - 6.1851770572906455, - 6.185557454277007, - 6.185937502435345, - 6.186317202085538, - 6.186696553547173, - 6.18707555713954, - 6.187454213181641, - 6.187832521992183, - 6.18821048388958, - 6.188588099191956, - 6.188965368217142, - 6.189342291282677, - 6.1897188687058105, - 6.190095100803499, - 6.190470987892412, - 6.1908465302889235, - 6.191221728309122, - 6.1915965822688035, - 6.191971092483475, - 6.192345259268354, - 6.192719082938369, - 6.193092563808162, - 6.193465702192082, - 6.193838498404193, - 6.194210952758269, - 6.1945830655678, - 6.194954837145984, - 6.195326267805734, - 6.195697357859675, - 6.19606810762015, - 6.196438517399206, - 6.196808587508612, - 6.19717831825985, - 6.197547709964113, - 6.197916762932313, - 6.198285477475072, - 6.19865385390273, - 6.1990218925253435, - 6.199389593652683, - 6.199756957594234, - 6.2001239846592, - 6.200490675156501, - 6.200857029394772, - 6.201223047682367, - 6.201588730327356, - 6.201954077637526, - 6.202319089920383, - 6.202683767483152, - 6.203048110632773, - 6.2034121196759076, - 6.2037757949189345, - 6.204139136667951, - 6.204502145228775, - 6.204864820906945, - 6.205227164007716, - 6.205589174836066, - 6.205950853696692, - 6.206312200894011, - 6.206673216732164, - 6.207033901515009, - 6.207394255546128, - 6.2077542791288245, - 6.208113972566121, - 6.208473336160765, - 6.208832370215226, - 6.209191075031696, - 6.20954945091209, - 6.209907498158045, - 6.210265217070924, - 6.210622607951809, - 6.210979671101511, - 6.211336406820562, - 6.21169281540922, - 6.212048897167466, - 6.212404652395008, - 6.212760081391277, - 6.2131151844554315, - 6.2134699618863545, - 6.213824413982654, - 6.214178541042666, - 6.214532343364453, - 6.214885821245801, - 6.215238974984228, - 6.215591804876976, - 6.215944311221013, - 6.216296494313038, - 6.216648354449476, - 6.2169998919264815, - 6.217351107039937, - 6.217702000085451, - 6.218052571358364, - 6.218402821153747, - 6.218752749766396, - 6.21910235749084, - 6.219451644621335, - 6.219800611451871, - 6.220149258276165, - 6.220497585387668, - 6.2208455930795585, - 6.221193281644748, - 6.221540651375879, - 6.221887702565326, - 6.222234435505193, - 6.222580850487321, - 6.222926947803279, - 6.223272727744372, - 6.223618190601633, - 6.223963336665834, - 6.224308166227477, - 6.224652679576797, - 6.224996877003765, - 6.225340758798085, - 6.225684325249194, - 6.226027576646267, - 6.226370513278211, - 6.22671313543367, - 6.227055443401021, - 6.227397437468378, - 6.227739117923591, - 6.228080485054245, - 6.228421539147662, - 6.2287622804909, - 6.229102709370756, - 6.22944282607376, - 6.2297826308861834, - 6.230122124094032, - 6.23046130598305, - 6.230800176838721, - 6.231138736946266, - 6.231476986590644, - 6.231814926056552, - 6.232152555628428, - 6.232489875590448, - 6.232826886226528, - 6.2331635878203215, - 6.233499980655225, - 6.233836065014373, - 6.23417184118064, - 6.234507309436643, - 6.23484247006474, - 6.235177323347028, - 6.235511869565346, - 6.235846109001275, - 6.236180041936138, - 6.236513668651001, - 6.2368469894266685, - 6.237180004543691, - 6.237512714282362, - 6.237845118922714, - 6.238177218744528, - 6.238509014027325, - 6.238840505050368, - 6.239171692092669, - 6.239502575432981, - 6.239833155349803, - 6.240163432121375, - 6.240493406025686, - 6.240823077340469, - 6.2411524463432, - 6.241481513311104, - 6.2418102785211484, - 6.2421387422500505, - 6.24246690477427, - 6.2427947663700145, - 6.24312232731324, - 6.243449587879647, - 6.243776548344684, - 6.244103208983548, - 6.2444295700711825, - 6.244755631882279, - 6.245081394691276, - 6.245406858772364, - 6.245732024399479, - 6.246056891846305, - 6.246381461386276, - 6.246705733292579, - 6.247029707838144, - 6.247353385295654, - 6.247676765937545, - 6.247999850035997, - 6.248322637862945, - 6.248645129690072, - 6.248967325788812, - 6.249289226430354, - 6.249610831885634, - 6.249932142425339, - 6.2502531583199135, - 6.250573879839546, - 6.2508943072541845, - 6.251214440833524, - 6.251534280847018, - 6.251853827563865, - 6.252173081253025, - 6.252492042183205, - 6.252810710622869, - 6.253129086840234, - 6.253447171103271, - 6.253764963679704, - 6.254082464837015, - 6.2543996748424355, - 6.254716593962956, - 6.255033222465323, - 6.2553495606160325, - 6.255665608681344, - 6.255981366927267, - 6.256296835619567, - 6.25661201502377, - 6.256926905405158, - 6.2572415070287635, - 6.257555820159384, - 6.257869845061568, - 6.258183581999627, - 6.258497031237624, - 6.258810193039385, - 6.259123067668491, - 6.259435655388283, - 6.25974795646186, - 6.260059971152079, - 6.260371699721556, - 6.2606831424326685, - 6.2609942995475505, - 6.261305171328097, - 6.261615758035962, - 6.26192605993256, - 6.262236077279067, - 6.262545810336418, - 6.262855259365309, - 6.263164424626197, - 6.2634733063793, - 6.263781904884598, - 6.264090220401832, - 6.264398253190506, - 6.264706003509883, - 6.2650134716189925, - 6.265320657776623, - 6.2656275622413276, - 6.26593418527142, - 6.266240527124981, - 6.2665465880598505, - 6.266852368333635, - 6.267157868203704, - 6.267463087927189, - 6.267768027760989, - 6.268072687961766, - 6.268377068785945, - 6.268681170489718, - 6.268984993329042, - 6.269288537559637, - 6.269591803436992, - 6.269894791216357, - 6.2701975011527535, - 6.270499933500966, - 6.270802088515545, - 6.271103966450808, - 6.2714055675608416, - 6.271706892099496, - 6.272007940320389, - 6.272308712476908, - 6.2726092088222085, - 6.27290942960921, - 6.273209375090603, - 6.273509045518846, - 6.273808441146166, - 6.274107562224557, - 6.274406409005784, - 6.2747049817413805, - 6.275003280682648, - 6.27530130608066, - 6.275599058186259, - 6.2758965372500555, - 6.276193743522433, - 6.276490677253544, - 6.276787338693311, - 6.277083728091428, - 6.277379845697362, - 6.277675691760345, - 6.277971266529389, - 6.278266570253272, - 6.2785616031805445, - 6.27885636555953, - 6.279150857638324, - 6.279445079664797, - 6.279739031886587, - 6.280032714551108, - 6.280326127905549, - 6.280619272196867, - 6.280912147671798, - 6.281204754576849, - 6.2814970931583, - 6.281789163662208, - 6.282080966334403, - 6.282372501420489, - 6.282663769165845, - 6.282954769815626, - 6.283245503614761, - 6.2835359708079555, - 6.2838261716396895, - 6.284116106354218, - 6.284405775195575, - 6.284695178407569, - 6.284984316233783, - 6.2852731889175795, - 6.2855617967020985, - 6.285850139830254, - 6.286138218544739, - 6.286426033088023, - 6.286713583702354, - 6.2870008706297575, - 6.287287894112037, - 6.287574654390776, - 6.287861151707333, - 6.288147386302848, - 6.288433358418239, - 6.288719068294203, - 6.289004516171215, - 6.289289702289533, - 6.289574626889191, - 6.289859290210005, - 6.290143692491571, - 6.290427833973263, - 6.290711714894238, - 6.290995335493433, - 6.291278696009566, - 6.291561796681135, - 6.291844637746422, - 6.292127219443487, - 6.292409542010175, - 6.292691605684109, - 6.292973410702698, - 6.29325495730313, - 6.29353624572238, - 6.293817276197201, - 6.2940980489641305, - 6.29437856425949, - 6.294658822319383, - 6.294938823379698, - 6.295218567676106, - 6.295498055444062, - 6.295777286918806, - 6.296056262335361, - 6.296334981928535, - 6.296613445932921, - 6.296891654582894, - 6.297169608112621, - 6.297447306756047, - 6.297724750746908, - 6.29800194031872, - 6.298278875704789, - 6.298555557138208, - 6.2988319848518515, - 6.299108159078384, - 6.299384080050257, - 6.299659747999705, - 6.2999351631587555, - 6.300210325759218, - 6.300485236032692, - 6.300759894210564, - 6.301034300524007, - 6.301308455203985, - 6.301582358481248, - 6.301856010586335, - 6.302129411749574, - 6.302402562201079, - 6.3026754621707575, - 6.302948111888304, - 6.303220511583202, - 6.303492661484724, - 6.303764561821935, - 6.304036212823686, - 6.3043076147186214, - 6.3045787677351735, - 6.304849672101568, - 6.3051203280458195, - 6.305390735795734, - 6.305660895578906, - 6.305930807622725, - 6.306200472154372, - 6.306469889400817, - 6.306739059588822, - 6.307007982944945, - 6.30727665969553, - 6.30754509006672, - 6.307813274284446, - 6.308081212574433, - 6.308348905162201, - 6.3086163522730585, - 6.308883554132113, - 6.309150510964262, - 6.309417222994198, - 6.309683690446407, - 6.309949913545169, - 6.310215892514559, - 6.310481627578445, - 6.310747118960494, - 6.311012366884163, - 6.3112773715727055, - 6.311542133249171, - 6.311806652136404, - 6.312070928457045, - 6.312334962433529, - 6.312598754288091, - 6.312862304242757, - 6.313125612519352, - 6.313388679339497, - 6.313651504924611, - 6.313914089495908, - 6.314176433274402, - 6.3144385364809015, - 6.3147003993360125, - 6.314962022060142, - 6.31522340487349, - 6.31548454799606, - 6.315745451647648, - 6.316006116047853, - 6.316266541416072, - 6.316526727971497, - 6.316786675933125, - 6.317046385519747, - 6.3173058569499565, - 6.3175650904421445, - 6.317824086214503, - 6.318082844485024, - 6.318341365471499, - 6.318599649391518, - 6.3188576964624765, - 6.319115506901567, - 6.319373080925781, - 6.319630418751916, - 6.319887520596567, - 6.320144386676133, - 6.32040101720681, - 6.3206574124046, - 6.320913572485307, - 6.321169497664536, - 6.321425188157693, - 6.321680644179986, - 6.321935865946432, - 6.322190853671841, - 6.322445607570834, - 6.322700127857831, - 6.322954414747057, - 6.323208468452541, - 6.3234622891881145, - 6.3237158771674125, - 6.323969232603875, - 6.324222355710748, - 6.324475246701077, - 6.324727905787718, - 6.324980333183329, - 6.325232529100372, - 6.325484493751116, - 6.325736227347635, - 6.325987730101806, - 6.326239002225316, - 6.326490043929656, - 6.326740855426121, - 6.326991436925815, - 6.327241788639647, - 6.327491910778334, - 6.327741803552398, - 6.3279914671721675, - 6.328240901847782, - 6.328490107789185, - 6.328739085206128, - 6.32898783430817, - 6.329236355304678, - 6.3294846484048275, - 6.329732713817601, - 6.329980551751792, - 6.330228162415999, - 6.330475546018631, - 6.330722702767908, - 6.330969632871854, - 6.331216336538307, - 6.331462813974912, - 6.331709065389124, - 6.331955090988209, - 6.33220089097924, - 6.332446465569104, - 6.332691814964494, - 6.332936939371917, - 6.333181838997689, - 6.333426514047938, - 6.333670964728601, - 6.333915191245428, - 6.334159193803979, - 6.334402972609626, - 6.3346465278675534, - 6.3348898597827565, - 6.335132968560043, - 6.335375854404033, - 6.3356185175191575, - 6.335860958109663, - 6.336103176379605, - 6.336345172532854, - 6.336586946773096, - 6.336828499303825, - 6.337069830328351, - 6.3373109400497984, - 6.337551828671103, - 6.337792496395018, - 6.338032943424108, - 6.338273169960751, - 6.338513176207143, - 6.338752962365291, - 6.33899252863702, - 6.339231875223965, - 6.339471002327582, - 6.339709910149138, - 6.339948598889719, - 6.340187068750222, - 6.340425319931363, - 6.340663352633674, - 6.340901167057503, - 6.341138763403012, - 6.341376141870182, - 6.341613302658809, - 6.341850245968507, - 6.3420869719987065, - 6.3423234809486555, - 6.342559773017419, - 6.3427958484038784, - 6.343031707306734, - 6.343267349924504, - 6.343502776455523, - 6.343737987097945, - 6.343972982049744, - 6.3442077615087085, - 6.344442325672448, - 6.344676674738391, - 6.3449108089037844, - 6.345144728365693, - 6.345378433321005, - 6.345611923966423, - 6.345845200498472, - 6.346078263113496, - 6.346311112007659, - 6.346543747376946, - 6.34677616941716, - 6.347008378323927, - 6.347240374292693, - 6.347472157518725, - 6.347703728197108, - 6.347935086522751, - 6.348166232690387, - 6.3483971668945625, - 6.348627889329653, - 6.348858400189853, - 6.349088699669177, - 6.349318787961465, - 6.349548665260377, - 6.3497783317593965, - 6.35000778765183, - 6.350237033130805, - 6.350466068389272, - 6.350694893620007, - 6.350923509015607, - 6.351151914768494, - 6.35138011107091, - 6.351608098114925, - 6.351835876092431, - 6.352063445195145, - 6.352290805614606, - 6.35251795754218, - 6.352744901169055, - 6.352971636686245, - 6.353198164284591, - 6.353424484154754, - 6.353650596487223, - 6.353876501472315, - 6.354102199300166, - 6.354327690160744, - 6.354552974243839, - 6.3547780517390695, - 6.355002922835878, - 6.355227587723533, - 6.3554520465911315, - 6.3556762996275955, - 6.355900347021675, - 6.356124188961946, - 6.356347825636811, - 6.356571257234501, - 6.356794483943075, - 6.3570175059504175, - 6.357240323444241, - 6.3574629366120865, - 6.3576853456413245, - 6.357907550719151, - 6.358129552032593, - 6.358351349768503, - 6.358572944113566, - 6.35879433525429, - 6.3590155233770185, - 6.3592365086679195, - 6.359457291312993, - 6.359677871498067, - 6.359898249408799, - 6.360118425230676, - 6.360338399149018, - 6.360558171348972, - 6.360777742015514, - 6.360997111333453, - 6.361216279487429, - 6.361435246661911, - 6.361654013041198, - 6.361872578809423, - 6.362090944150546, - 6.362309109248363, - 6.3625270742865, - 6.362744839448411, - 6.362962404917387, - 6.363179770876547, - 6.363396937508845, - 6.363613904997064, - 6.363830673523823, - 6.36404724327157, - 6.364263614422589, - 6.364479787158994, - 6.364695761662735, - 6.364911538115592, - 6.365127116699179, - 6.365342497594947, - 6.365557680984176, - 6.365772667047981, - 6.3659874559673115, - 6.366202047922953, - 6.366416443095521, - 6.366630641665469, - 6.366844643813083, - 6.367058449718486, - 6.367272059561631, - 6.367485473522311, - 6.367698691780153, - 6.367911714514618, - 6.368124541905002, - 6.368337174130438, - 6.368549611369896, - 6.3687618538021775, - 6.368973901605925, - 6.369185754959613, - 6.369397414041556, - 6.369608879029902, - 6.369820150102637, - 6.370031227437584, - 6.370242111212402, - 6.370452801604589, - 6.370663298791478, - 6.370873602950241, - 6.3710837142578844, - 6.371293632891258, - 6.371503359027044, - 6.3717128928417655, - 6.371922234511783, - 6.372131384213294, - 6.372340342122337, - 6.372549108414787, - 6.372757683266358, - 6.372966066852604, - 6.373174259348919, - 6.373382260930533, - 6.373590071772514, - 6.373797692049776, - 6.374005121937069, - 6.37421236160898, - 6.3744194112399395, - 6.374626271004217, - 6.3748329410759235, - 6.3750394216290065, - 6.375245712837259, - 6.375451814874312, - 6.3756577279136355, - 6.375863452128545, - 6.376068987692193, - 6.376274334777574, - 6.376479493557526, - 6.376684464204726, - 6.376889246891695, - 6.377093841790793, - 6.377298249074224, - 6.3775024689140345, - 6.377706501482111, - 6.377910346950184, - 6.3781140054898255, - 6.378317477272453, - 6.378520762469322, - 6.378723861251535, - 6.378926773790036, - 6.379129500255612, - 6.379332040818894, - 6.379534395650357, - 6.379736564920319, - 6.3799385487989415, - 6.380140347456229, - 6.380341961062034, - 6.380543389786049, - 6.380744633797813, - 6.3809456932667095, - 6.381146568361964, - 6.381347259252652, - 6.38154776610769, - 6.381748089095838, - 6.381948228385708, - 6.382148184145752, - 6.382347956544267, - 6.382547545749399, - 6.382746951929138, - 6.382946175251321, - 6.383145215883628, - 6.383344073993589, - 6.38354274974858, - 6.3837412433158205, - 6.38393955486238, - 6.3841376845551725, - 6.38433563256096, - 6.384533399046352, - 6.384730984177803, - 6.384928388121618, - 6.3851256110439465, - 6.385322653110789, - 6.385519514487991, - 6.385716195341247, - 6.385912695836098, - 6.386109016137937, - 6.386305156412001, - 6.386501116823378, - 6.3866968975370035, - 6.386892498717662, - 6.387087920529988, - 6.387283163138465, - 6.3874782267074215, - 6.387673111401042, - 6.3878678173833565, - 6.388062344818244, - 6.388256693869434, - 6.388450864700507, - 6.388644857474893, - 6.388838672355872, - 6.3890323095065735, - 6.389225769089978, - 6.389419051268916, - 6.389612156206072, - 6.389805084063975, - 6.389997835005011, - 6.390190409191413, - 6.390382806785268, - 6.390575027948514, - 6.390767072842937, - 6.39095894163018, - 6.3911506344717335, - 6.391342151528943, - 6.391533492963003, - 6.3917246589349626, - 6.391915649605721, - 6.392106465136034, - 6.392297105686506, - 6.392487571417593, - 6.39267786248961, - 6.39286797906272, - 6.393057921296938, - 6.393247689352138, - 6.3934372833880415, - 6.393626703564227, - 6.393815950040126, - 6.394005022975023, - 6.394193922528056, - 6.394382648858221, - 6.394571202124362, - 6.394759582485181, - 6.394947790099234, - 6.3951358251249335, - 6.395323687720544, - 6.395511378044184, - 6.395698896253831, - 6.395886242507314, - 6.396073416962318, - 6.396260419776387, - 6.396447251106913, - 6.396633911111152, - 6.39682039994621, - 6.3970067177690515, - 6.397192864736497, - 6.397378841005223, - 6.397564646731761, - 6.397750282072501, - 6.397935747183686, - 6.398121042221421, - 6.398306167341665, - 6.398491122700232, - 6.398675908452797, - 6.398860524754891, - 6.399044971761901, - 6.399229249629071, - 6.399413358511507, - 6.399597298564167, - 6.399781069941871, - 6.399964672799295, - 6.400148107290975, - 6.400331373571303, - 6.400514471794532, - 6.400697402114769, - 6.4008801646859865, - 6.401062759662011, - 6.401245187196528, - 6.4014274474430835, - 6.401609540555083, - 6.40179146668579, - 6.401973225988328, - 6.402154818615682, - 6.402336244720692, - 6.402517504456062, - 6.402698597974355, - 6.402879525427995, - 6.403060286969262, - 6.403240882750302, - 6.403421312923117, - 6.403601577639573, - 6.403781677051395, - 6.403961611310168, - 6.404141380567339, - 6.404320984974218, - 6.404500424681973, - 6.404679699841635, - 6.404858810604098, - 6.405037757120113, - 6.405216539540298, - 6.405395158015129, - 6.405573612694948, - 6.4057519037299535, - 6.405930031270211, - 6.406107995465649, - 6.406285796466053, - 6.4064634344210765, - 6.406640909480233, - 6.4068182217929, - 6.4069953715083185, - 6.407172358775591, - 6.407349183743683, - 6.407525846561427, - 6.407702347377516, - 6.4078786863405055, - 6.408054863598818, - 6.408230879300739, - 6.408406733594416, - 6.408582426627863, - 6.408757958548955, - 6.408933329505437, - 6.409108539644914, - 6.409283589114857, - 6.4094584780626, - 6.409633206635346, - 6.409807774980159, - 6.40998218324397, - 6.410156431573574, - 6.410330520115635, - 6.410504449016677, - 6.410678218423095, - 6.410851828481144, - 6.411025279336952, - 6.411198571136508, - 6.411371704025666, - 6.41154467815015, - 6.411717493655549, - 6.411890150687318, - 6.412062649390779, - 6.412234989911122, - 6.412407172393401, - 6.412579196982539, - 6.4127510638233245, - 6.412922773060417, - 6.4130943248383385, - 6.413265719301482, - 6.413436956594106, - 6.413608036860339, - 6.413778960244174, - 6.4139497268894745, - 6.4141203369399715, - 6.414290790539264, - 6.414461087830819, - 6.4146312289579726, - 6.414801214063929, - 6.414971043291763, - 6.415140716784414, - 6.415310234684695, - 6.415479597135283, - 6.41564880427873, - 6.415817856257451, - 6.415986753213738, - 6.416155495289744, - 6.416324082627498, - 6.416492515368898, - 6.416660793655707, - 6.416828917629563, - 6.416996887431974, - 6.417164703204316, - 6.417332365087835, - 6.41749987322365, - 6.417667227752748, - 6.41783442881599, - 6.418001476554102, - 6.418168371107689, - 6.41833511261722, - 6.4185017012230405, - 6.418668137065363, - 6.418834420284273, - 6.419000551019728, - 6.419166529411558, - 6.419332355599463, - 6.419498029723015, - 6.41966355192166, - 6.419828922334715, - 6.419994141101366, - 6.420159208360678, - 6.420324124251582, - 6.420488888912886, - 6.420653502483268, - 6.42081796510128, - 6.420982276905349, - 6.421146438033771, - 6.421310448624718, - 6.421474308816234, - 6.421638018746236, - 6.421801578552517, - 6.421964988372742, - 6.422128248344448, - 6.422291358605049, - 6.422454319291831, - 6.422617130541957, - 6.422779792492459, - 6.4229423052802455, - 6.423104669042105, - 6.423266883914692, - 6.423428950034539, - 6.423590867538058, - 6.423752636561528, - 6.423914257241107, - 6.42407572971283, - 6.424237054112604, - 6.4243982305762115, - 6.424559259239314, - 6.424720140237444, - 6.424880873706012, - 6.425041459780306, - 6.4252018985954855, - 6.42536219028659, - 6.425522334988534, - 6.425682332836107, - 6.4258421839639785, - 6.426001888506689, - 6.426161446598661, - 6.426320858374189, - 6.4264801239674485, - 6.426639243512489, - 6.426798217143239, - 6.426957044993505, - 6.427115727196966, - 6.427274263887184, - 6.427432655197595, - 6.427590901261515, - 6.427749002212135, - 6.427906958182525, - 6.428064769305636, - 6.428222435714294, - 6.4283799575412015, - 6.428537334918942, - 6.428694567979979, - 6.42885165685665, - 6.429008601681175, - 6.42916540258565, - 6.429322059702053, - 6.429478573162238, - 6.42963494309794, - 6.429791169640772, - 6.429947252922227, - 6.430103193073676, - 6.430258990226373, - 6.430414644511447, - 6.43057015605991, - 6.430725525002654, - 6.430880751470448, - 6.431035835593944, - 6.431190777503674, - 6.431345577330048, - 6.43150023520336, - 6.431654751253779, - 6.4318091256113625, - 6.431963358406041, - 6.432117449767631, - 6.432271399825826, - 6.432425208710205, - 6.432578876550225, - 6.4327324034752245, - 6.432885789614425, - 6.433039035096928, - 6.433192140051717, - 6.433345104607658, - 6.433497928893498, - 6.433650613037866, - 6.433803157169273, - 6.433955561416114, - 6.434107825906662, - 6.434259950769076, - 6.434411936131397, - 6.434563782121548, - 6.434715488867334, - 6.434867056496445, - 6.435018485136451, - 6.435169774914807, - 6.435320925958851, - 6.435471938395803, - 6.435622812352767, - 6.435773547956731, - 6.435924145334567, - 6.436074604613029, - 6.436224925918754, - 6.436375109378268, - 6.436525155117975, - 6.4366750632641665, - 6.436824833943015, - 6.436974467280583, - 6.4371239634028115, - 6.437273322435529, - 6.4374225445044475, - 6.437571629735165, - 6.437720578253162, - 6.437869390183809, - 6.438018065652354, - 6.438166604783937, - 6.43831500770358, - 6.43846327453619, - 6.43861140540656, - 6.43875940043937, - 6.4389072597591825, - 6.43905498349045, - 6.439202571757507, - 6.439350024684576, - 6.439497342395767, - 6.439644525015072, - 6.439791572666372, - 6.439938485473434, - 6.440085263559912, - 6.4402319070493474, - 6.440378416065165, - 6.440524790730681, - 6.440671031169093, - 6.44081713750349, - 6.440963109856848, - 6.441108948352028, - 6.44125465311178, - 6.4414002242587385, - 6.441545661915429, - 6.4416909662042645, - 6.441836137247545, - 6.441981175167457, - 6.4421260800860765, - 6.442270852125367, - 6.442415491407179, - 6.4425599980532535, - 6.4427043721852195, - 6.4428486139245935, - 6.44299272339278, - 6.443136700711074, - 6.443280546000658, - 6.4434242593826045, - 6.443567840977872, - 6.443711290907313, - 6.443854609291664, - 6.443997796251555, - 6.444140851907504, - 6.4442837763799155, - 6.444426569789089, - 6.444569232255208, - 6.4447117638983515, - 6.4448541648384845, - 6.4449964351954625, - 6.4451385750890315, - 6.445280584638829, - 6.4454224639643805, - 6.445564213185103, - 6.445705832420305, - 6.445847321789183, - 6.445988681410829, - 6.446129911404219, - 6.446271011888224, - 6.446411982981608, - 6.446552824803021, - 6.446693537471007, - 6.4468341211040014, - 6.446974575820332, - 6.447114901738215, - 6.44725509897576, - 6.447395167650969, - 6.447535107881735, - 6.447674919785843, - 6.447814603480969, - 6.447954159084683, - 6.448093586714445, - 6.44823288648761, - 6.448372058521422, - 6.44851110293302, - 6.4486500198394365, - 6.448788809357593, - 6.448927471604306, - 6.4490660066962855, - 6.449204414750135, - 6.449342695882348, - 6.449480850209313, - 6.449618877847313, - 6.449756778912522, - 6.449894553521007, - 6.4500322017887335, - 6.4501697238315545, - 6.450307119765222, - 6.450444389705379, - 6.4505815337675605, - 6.4507185520672, - 6.450855444719624, - 6.450992211840049, - 6.451128853543591, - 6.451265369945259, - 6.451401761159956, - 6.45153802730248, - 6.451674168487523, - 6.451810184829672, - 6.451946076443409, - 6.452081843443113, - 6.452217485943055, - 6.452353004057403, - 6.45248839790022, - 6.452623667585463, - 6.452758813226988, - 6.452893834938542, - 6.453028732833771, - 6.453163507026217, - 6.453298157629316, - 6.4534326847564, - 6.4535670885207, - 6.453701369035339, - 6.453835526413338, - 6.453969560767615, - 6.454103472210985, - 6.454237260856157, - 6.45437092681574, - 6.454504470202236, - 6.454637891128048, - 6.454771189705472, - 6.454904366046704, - 6.455037420263834, - 6.455170352468854, - 6.455303162773648, - 6.45543585129, - 6.455568418129592, - 6.455700863404002, - 6.455833187224709, - 6.455965389703083, - 6.4560974709504, - 6.456229431077829, - 6.456361270196438, - 6.456492988417193, - 6.456624585850959, - 6.456756062608499, - 6.456887418800474, - 6.457018654537444, - 6.457149769929868, - 6.457280765088103, - 6.457411640122405, - 6.457542395142928, - 6.457673030259728, - 6.457803545582756, - 6.457933941221865, - 6.458064217286806, - 6.45819437388723, - 6.458324411132687, - 6.4584543291326275, - 6.458584127996399, - 6.458713807833254, - 6.458843368752338, - 6.458972810862702, - 6.459102134273293, - 6.459231339092962, - 6.459360425430456, - 6.459489393394426, - 6.459618243093422, - 6.459746974635893, - 6.45987558813019, - 6.460004083684565, - 6.46013246140717, - 6.460260721406057, - 6.460388863789181, - 6.460516888664396, - 6.460644796139459, - 6.460772586322027, - 6.460900259319659, - 6.461027815239813, - 6.461155254189851, - 6.461282576277037, - 6.461409781608535, - 6.46153687029141, - 6.461663842432631, - 6.461790698139067, - 6.461917437517491, - 6.462044060674577, - 6.462170567716901, - 6.46229695875094, - 6.462423233883077, - 6.462549393219594, - 6.462675436866677, - 6.462801364930415, - 6.462927177516797, - 6.46305287473172, - 6.46317845668098, - 6.463303923470276, - 6.463429275205211, - 6.4635545119912905, - 6.463679633933926, - 6.4638046411384265, - 6.4639295337100116, - 6.4640543117538, - 6.4641789753748125, - 6.464303524677979, - 6.464427959768129, - 6.464552280749996, - 6.46467648772822, - 6.464800580807345, - 6.464924560091814, - 6.46504842568598, - 6.4651721776940985, - 6.465295816220328, - 6.465419341368733, - 6.465542753243283, - 6.46566605194785, - 6.465789237586213, - 6.465912310262054, - 6.466035270078962, - 6.466158117140427, - 6.466280851549851, - 6.4664034734105345, - 6.4665259828256865, - 6.4666483798984205, - 6.466770664731756, - 6.466892837428618, - 6.467014898091836, - 6.467136846824147, - 6.467258683728192, - 6.467380408906519, - 6.467502022461581, - 6.467623524495739, - 6.467744915111258, - 6.46786619441031, - 6.4679873624949735, - 6.468108419467233, - 6.468229365428981, - 6.468350200482015, - 6.468470924728038, - 6.4685915382686625, - 6.468712041205405, - 6.468832433639692, - 6.468952715672855, - 6.469072887406132, - 6.469192948940671, - 6.469312900377524, - 6.469432741817653, - 6.469552473361926, - 6.469672095111116, - 6.4697916071659085, - 6.4699110096268955, - 6.470030302594573, - 6.470149486169349, - 6.470268560451538, - 6.470387525541363, - 6.470506381538953, - 6.470625128544347, - 6.470743766657493, - 6.470862295978245, - 6.470980716606369, - 6.471099028641534, - 6.471217232183324, - 6.471335327331227, - 6.471453314184641, - 6.471571192842875, - 6.471688963405143, - 6.4718066259705695, - 6.471924180638192, - 6.472041627506952, - 6.4721589666757025, - 6.472276198243205, - 6.472393322308132, - 6.472510338969062, - 6.47262724832449, - 6.472744050472812, - 6.472860745512341, - 6.472977333541294, - 6.473093814657805, - 6.473210188959909, - 6.473326456545559, - 6.473442617512614, - 6.473558671958844, - 6.4736746199819315, - 6.4737904616794655, - 6.47390619714895, - 6.474021826487795, - 6.474137349793325, - 6.474252767162773, - 6.474368078693283, - 6.474483284481911, - 6.474598384625623, - 6.4747133792212965, - 6.474828268365721, - 6.474943052155596, - 6.475057730687532, - 6.475172304058054, - 6.475286772363592, - 6.475401135700496, - 6.47551539416502, - 6.475629547853336, - 6.475743596861522, - 6.475857541285572, - 6.475971381221392, - 6.476085116764796, - 6.476198748011516, - 6.476312275057191, - 6.476425697997375, - 6.476539016927535, - 6.4766522319430475, - 6.4767653431392045, - 6.476878350611209, - 6.476991254454177, - 6.477104054763139, - 6.4772167516330335, - 6.477329345158719, - 6.47744183543496, - 6.477554222556439, - 6.477666506617749, - 6.477778687713399, - 6.477890765937807, - 6.47800274138531, - 6.4781146141501535, - 6.478226384326499, - 6.4783380520084215, - 6.478449617289909, - 6.478561080264864, - 6.478672441027103, - 6.478783699670356, - 6.4788948562882664, - 6.479005910974394, - 6.479116863822209, - 6.4792277149251, - 6.479338464376368, - 6.479449112269228, - 6.479559658696812, - 6.479670103752161, - 6.4797804475282375, - 6.479890690117916, - 6.4800008316139825, - 6.480110872109144, - 6.480220811696018, - 6.480330650467138, - 6.480440388514954, - 6.48055002593183, - 6.480659562810046, - 6.480768999241795, - 6.480878335319191, - 6.480987571134257, - 6.481096706778935, - 6.481205742345084, - 6.481314677924475, - 6.481423513608799, - 6.481532249489659, - 6.481640885658576, - 6.481749422206988, - 6.481857859226248, - 6.481966196807624, - 6.4820744350423025, - 6.482182574021386, - 6.482290613835891, - 6.482398554576755, - 6.482506396334828, - 6.482614139200878, - 6.482721783265591, - 6.482829328619568, - 6.482936775353329, - 6.483044123557309, - 6.483151373321859, - 6.483258524737253, - 6.483365577893674, - 6.48347253288123, - 6.4835793897899405, - 6.483686148709746, - 6.483792809730503, - 6.483899372941988, - 6.484005838433888, - 6.484112206295818, - 6.484218476617304, - 6.484324649487791, - 6.484430724996642, - 6.48453670323314, - 6.484642584286484, - 6.484748368245794, - 6.484854055200103, - 6.484959645238367, - 6.485065138449459, - 6.4851705349221715, - 6.485275834745214, - 6.485381038007214, - 6.485486144796721, - 6.4855911552022, - 6.485696069312037, - 6.485800887214535, - 6.485905608997919, - 6.486010234750328, - 6.486114764559826, - 6.4862191985143935, - 6.4863235367019305, - 6.486427779210255, - 6.486531926127108, - 6.486635977540145, - 6.4867399335369464, - 6.486843794205009, - 6.4869475596317505, - 6.487051229904508, - 6.4871548051105385, - 6.48725828533702, - 6.48736167067105, - 6.4874649611996436, - 6.487568157009741, - 6.487671258188199, - 6.487774264821795, - 6.4878771769972285, - 6.487979994801118, - 6.488082718320005, - 6.488185347640347, - 6.488287882848527, - 6.488390324030847, - 6.488492671273528, - 6.488594924662716, - 6.488697084284473, - 6.4887991502247875, - 6.4889011225695645, - 6.489003001404632, - 6.489104786815741, - 6.489206478888561, - 6.489308077708683, - 6.489409583361623, - 6.489510995932815, - 6.4896123155076175, - 6.489713542171307, - 6.489814676009085, - 6.489915717106073, - 6.490016665547317, - 6.4901175214177815, - 6.490218284802356, - 6.490318955785851, - 6.4904195344529985, - 6.490520020888455, - 6.490620415176795, - 6.490720717402523, - 6.490820927650057, - 6.490921046003743, - 6.491021072547849, - 6.491121007366568, - 6.49122085054401, - 6.491320602164212, - 6.491420262311131, - 6.4915198310686515, - 6.491619308520578, - 6.491718694750639, - 6.491817989842485, - 6.491917193879691, - 6.4920163069457555, - 6.492115329124099, - 6.492214260498066, - 6.492313101150927, - 6.4924118511658735, - 6.492510510626023, - 6.492609079614412, - 6.492707558214004, - 6.492805946507691, - 6.492904244578279, - 6.493002452508507, - 6.493100570381034, - 6.493198598278442, - 6.493296536283243, - 6.493394384477865, - 6.4934921429446675, - 6.493589811765931, - 6.493687391023863, - 6.493784880800591, - 6.493882281178173, - 6.4939795922385875, - 6.49407681406374, - 6.494173946735459, - 6.4942709903355, - 6.494367944945543, - 6.494464810647192, - 6.494561587521978, - 6.494658275651355, - 6.494754875116704, - 6.494851385999331, - 6.494947808380467, - 6.495044142341269, - 6.4951403879628185, - 6.495236545326125, - 6.4953326145121215, - 6.495428595601667, - 6.4955244886755485, - 6.495620293814476, - 6.495716011099086, - 6.4958116406099435, - 6.495907182427536, - 6.496002636632281, - 6.49609800330452, - 6.496193282524521, - 6.496288474372479, - 6.496383578928514, - 6.4964785962726745, - 6.4965735264849345, - 6.496668369645195, - 6.496763125833283, - 6.496857795128953, - 6.496952377611888, - 6.497046873361693, - 6.497141282457907, - 6.497235604979989, - 6.497329841007329, - 6.497423990619247, - 6.497518053894982, - 6.497612030913707, - 6.497705921754521, - 6.497799726496451, - 6.497893445218449, - 6.4979870779993965, - 6.498080624918102, - 6.498174086053303, - 6.498267461483663, - 6.498360751287775, - 6.498453955544159, - 6.498547074331263, - 6.4986401077274625, - 6.498733055811063, - 6.498825918660296, - 6.498918696353323, - 6.499011388968234, - 6.499103996583045, - 6.499196519275703, - 6.499288957124081, - 6.499381310205984, - 6.499473578599143, - 6.499565762381218, - 6.499657861629799, - 6.4997498764224035, - 6.4998418068364785, - 6.499933652949401, - 6.500025414838475, - 6.500117092580934, - 6.500208686253944, - 6.500300195934595, - 6.500391621699911, - 6.50048296362684, - 6.500574221792266, - 6.500665396272997, - 6.500756487145774, - 6.5008474944872665, - 6.500938418374071, - 6.50102925888272, - 6.501120016089669, - 6.501210690071309, - 6.501301280903958, - 6.501391788663862, - 6.501482213427202, - 6.501572555270087, - 6.501662814268555, - 6.501752990498575, - 6.501843084036048, - 6.501933094956802, - 6.502023023336598, - 6.502112869251127, - 6.502202632776012, - 6.5022923139868025, - 6.502381912958983, - 6.502471429767967, - 6.502560864489099, - 6.502650217197654, - 6.50273948796884, - 6.502828676877792, - 6.50291778399958, - 6.503006809409204, - 6.503095753181593, - 6.503184615391611, - 6.50327339611405, - 6.503362095423638, - 6.503450713395028, - 6.5035392501028095, - 6.503627705621503, - 6.503716080025558, - 6.503804373389358, - 6.503892585787218, - 6.503980717293386, - 6.504068767982037, - 6.504156737927285, - 6.50424462720317, - 6.5043324358836685, - 6.504420164042687, - 6.504507811754063, - 6.504595379091571, - 6.504682866128911, - 6.504770272939721, - 6.504857599597569, - 6.504944846175957, - 6.505032012748318, - 6.505119099388018, - 6.505206106168358, - 6.505293033162568, - 6.5053798804438125, - 6.50546664808519, - 6.505553336159732, - 6.5056399447404, - 6.505726473900092, - 6.5058129237116376, - 6.5058992942478, - 6.505985585581275, - 6.506071797784693, - 6.506157930930616, - 6.506243985091543, - 6.506329960339901, - 6.506415856748056, - 6.506501674388304, - 6.506587413332877, - 6.506673073653939, - 6.506758655423589, - 6.50684415871386, - 6.506929583596716, - 6.50701493014406, - 6.507100198427725, - 6.50718538851948, - 6.507270500491029, - 6.507355534414007, - 6.507440490359986, - 6.507525368400473, - 6.507610168606907, - 6.507694891050663, - 6.507779535803051, - 6.507864102935313, - 6.507948592518629, - 6.50803300462411, - 6.508117339322806, - 6.5082015966857, - 6.508285776783708, - 6.508369879687685, - 6.508453905468417, - 6.508537854196627, - 6.508621725942974, - 6.50870552077805, - 6.508789238772384, - 6.50887287999644, - 6.508956444520617, - 6.509039932415249, - 6.509123343750607, - 6.509206678596897, - 6.509289937024258, - 6.509373119102769, - 6.509456224902442, - 6.509539254493225, - 6.509622207945005, - 6.509705085327598, - 6.509787886710763, - 6.5098706121641925, - 6.509953261757514, - 6.510035835560291, - 6.510118333642027, - 6.510200756072157, - 6.510283102920055, - 6.510365374255029, - 6.510447570146328, - 6.510529690663133, - 6.510611735874562, - 6.510693705849674, - 6.510775600657459, - 6.510857420366847, - 6.510939165046703, - 6.511020834765832, - 6.511102429592971, - 6.511183949596799, - 6.51126539484593, - 6.511346765408914, - 6.511428061354238, - 6.511509282750328, - 6.511590429665547, - 6.511671502168193, - 6.511752500326505, - 6.511833424208657, - 6.511914273882761, - 6.511995049416866, - 6.512075750878959, - 6.512156378336967, - 6.51223693185875, - 6.512317411512109, - 6.512397817364784, - 6.512478149484448, - 6.512558407938716, - 6.512638592795141, - 6.512718704121211, - 6.512798741984356, - 6.512878706451942, - 6.512958597591273, - 6.513038415469591, - 6.513118160154078, - 6.513197831711854, - 6.5132774302099765, - 6.513356955715442, - 6.513436408295186, - 6.513515788016081, - 6.51359509494494, - 6.513674329148514, - 6.513753490693493, - 6.513832579646505, - 6.513911596074118, - 6.5139905400428395, - 6.514069411619113, - 6.514148210869325, - 6.514226937859799, - 6.514305592656797, - 6.514384175326522, - 6.514462685935116, - 6.514541124548659, - 6.51461949123317, - 6.514697786054611, - 6.514776009078879, - 6.514854160371815, - 6.5149322399991965, - 6.515010248026741, - 6.515088184520106, - 6.51516604954489, - 6.51524384316663, - 6.515321565450803, - 6.515399216462828, - 6.51547679626806, - 6.515554304931797, - 6.515631742519279, - 6.51570910909568, - 6.51578640472612, - 6.515863629475657, - 6.515940783409288, - 6.516017866591955, - 6.516094879088535, - 6.516171820963849, - 6.516248692282655, - 6.516325493109657, - 6.516402223509496, - 6.516478883546754, - 6.516555473285954, - 6.516631992791561, - 6.516708442127979, - 6.516784821359553, - 6.516861130550573, - 6.516937369765263, - 6.517013539067795, - 6.517089638522279, - 6.517165668192765, - 6.517241628143246, - 6.517317518437657, - 6.517393339139872, - 6.517469090313708, - 6.517544772022924, - 6.517620384331218, - 6.517695927302235, - 6.517771400999555, - 6.5178468054867045, - 6.517922140827147, - 6.517997407084294, - 6.518072604321494, - 6.518147732602039, - 6.518222791989164, - 6.5182977825460435, - 6.518372704335796, - 6.518447557421483, - 6.518522341866106, - 6.518597057732609, - 6.518671705083879, - 6.518746283982746, - 6.518820794491981, - 6.5188952366742985, - 6.518969610592355, - 6.519043916308747, - 6.519118153886019, - 6.519192323386655, - 6.519266424873082, - 6.519340458407668, - 6.519414424052728, - 6.519488321870516, - 6.51956215192323, - 6.519635914273012, - 6.519709608981946, - 6.51978323611206, - 6.519856795725324, - 6.519930287883651, - 6.520003712648899, - 6.520077070082866, - 6.5201503602473, - 6.520223583203883, - 6.520296739014249, - 6.520369827739969, - 6.520442849442562, - 6.520515804183487, - 6.520588692024152, - 6.520661513025902, - 6.52073426725003, - 6.520806954757772, - 6.520879575610308, - 6.520952129868761, - 6.521024617594199, - 6.521097038847632, - 6.521169393690017, - 6.521241682182253, - 6.521313904385183, - 6.521386060359597, - 6.521458150166227, - 6.521530173865748, - 6.521602131518781, - 6.521674023185891, - 6.521745848927591, - 6.521817608804332, - 6.521889302876514, - 6.52196093120448, - 6.522032493848519, - 6.522103990868863, - 6.52217542232569, - 6.522246788279121, - 6.522318088789227, - 6.522389323916017, - 6.522460493719449, - 6.522531598259425, - 6.522602637595793, - 6.5226736117883455, - 6.522744520896819, - 6.5228153649808975, - 6.522886144100208, - 6.522956858314323, - 6.523027507682764, - 6.523098092264993, - 6.523168612120421, - 6.523239067308402, - 6.523309457888237, - 6.5233797839191725, - 6.5234500454604, - 6.523520242571059, - 6.523590375310231, - 6.523660443736947, - 6.5237304479101805, - 6.523800387888853, - 6.523870263731832, - 6.523940075497931, - 6.524009823245909, - 6.524079507034471, - 6.524149126922269, - 6.5242186829678985, - 6.524288175229906, - 6.524357603766781, - 6.524426968636959, - 6.524496269898825, - 6.524565507610707, - 6.524634681830883, - 6.524703792617573, - 6.524772840028947, - 6.524841824123121, - 6.524910744958158, - 6.524979602592067, - 6.525048397082804, - 6.525117128488271, - 6.52518579686632, - 6.525254402274746, - 6.525322944771294, - 6.5253914244136535, - 6.5254598412594635, - 6.5255281953663085, - 6.525596486791722, - 6.525664715593182, - 6.525732881828116, - 6.525800985553897, - 6.525869026827849, - 6.52593700570724, - 6.526004922249284, - 6.52607277651115, - 6.526140568549945, - 6.52620829842273, - 6.526275966186511, - 6.526343571898245, - 6.526411115614832, - 6.5264785973931225, - 6.526546017289915, - 6.526613375361955, - 6.526680671665938, - 6.526747906258504, - 6.526815079196244, - 6.526882190535697, - 6.526949240333347, - 6.52701622864563, - 6.5270831555289295, - 6.527150021039575, - 6.527216825233847, - 6.527283568167972, - 6.527350249898126, - 6.527416870480436, - 6.527483429970974, - 6.527549928425762, - 6.5276163659007675, - 6.527682742451913, - 6.527749058135066, - 6.527815313006042, - 6.5278815071206076, - 6.527947640534475, - 6.52801371330331, - 6.528079725482723, - 6.5281456771282755, - 6.528211568295477, - 6.528277399039789, - 6.528343169416618, - 6.528408879481322, - 6.528474529289207, - 6.528540118895531, - 6.528605648355498, - 6.528671117724264, - 6.528736527056933, - 6.528801876408558, - 6.528867165834142, - 6.528932395388639, - 6.528997565126951, - 6.52906267510393, - 6.529127725374377, - 6.5291927159930445, - 6.529257647014633, - 6.529322518493795, - 6.529387330485131, - 6.52945208304319, - 6.529516776222477, - 6.529581410077438, - 6.529645984662478, - 6.529710500031946, - 6.529774956240144, - 6.529839353341323, - 6.529903691389686, - 6.529967970439385, - 6.530032190544521, - 6.5300963517591475, - 6.530160454137267, - 6.530224497732834, - 6.530288482599754, - 6.530352408791879, - 6.530416276363016, - 6.530480085366921, - 6.5305438358573005, - 6.530607527887812, - 6.530671161512064, - 6.530734736783617, - 6.530798253755978, - 6.5308617124826105, - 6.530925113016925, - 6.5309884554122855, - 6.531051739722005, - 6.5311149659993495, - 6.5311781342975355, - 6.531241244669729, - 6.531304297169051, - 6.53136729184857, - 6.531430228761306, - 6.531493107960235, - 6.531555929498278, - 6.531618693428314, - 6.531681399803167, - 6.531744048675617, - 6.531806640098395, - 6.531869174124182, - 6.531931650805612, - 6.53199407019527, - 6.532056432345694, - 6.532118737309371, - 6.532180985138745, - 6.532243175886206, - 6.5323053096041, - 6.532367386344723, - 6.5324294061603245, - 6.532491369103106, - 6.532553275225219, - 6.532615124578769, - 6.532676917215813, - 6.532738653188362, - 6.532800332548377, - 6.532861955347772, - 6.532923521638415, - 6.532985031472124, - 6.5330464849006695, - 6.533107881975778, - 6.533169222749124, - 6.5332305072723384, - 6.533291735597003, - 6.533352907774652, - 6.533414023856773, - 6.533475083894806, - 6.533536087940144, - 6.533597036044133, - 6.533657928258072, - 6.533718764633213, - 6.533779545220759, - 6.53384027007187, - 6.5339009392376575, - 6.533961552769182, - 6.534022110717463, - 6.534082613133472, - 6.53414306006813, - 6.534203451572316, - 6.53426378769686, - 6.534324068492545, - 6.534384294010109, - 6.5344444643002415, - 6.534504579413588, - 6.534564639400744, - 6.534624644312264, - 6.53468459419865, - 6.534744489110363, - 6.534804329097813, - 6.534864114211367, - 6.534923844501347, - 6.534983520018025, - 6.535043140811626, - 6.535102706932337, - 6.53516221843029, - 6.535221675355576, - 6.5352810777582375, - 6.535340425688274, - 6.5353997191956354, - 6.5354589583302305, - 6.535518143141917, - 6.535577273680512, - 6.535636349995783, - 6.535695372137453, - 6.535754340155201, - 6.535813254098659, - 6.535872114017414, - 6.535930919961005, - 6.535989671978929, - 6.536048370120638, - 6.536107014435536, - 6.5361656049729815, - 6.5362241417822915, - 6.536282624912732, - 6.53634105441353, - 6.536399430333863, - 6.536457752722866, - 6.536516021629627, - 6.536574237103189, - 6.536632399192552, - 6.53669050794667, - 6.53674856341445, - 6.536806565644759, - 6.536864514686413, - 6.53692241058819, - 6.536980253398817, - 6.537038043166981, - 6.537095779941322, - 6.537153463770435, - 6.537211094702874, - 6.5372686727871425, - 6.537326198071705, - 6.537383670604977, - 6.537441090435335, - 6.537498457611107, - 6.537555772180577, - 6.5376130341919865, - 6.537670243693531, - 6.5377274007333614, - 6.537784505359589, - 6.5378415576202755, - 6.537898557563441, - 6.537955505237061, - 6.538012400689067, - 6.538069243967348, - 6.538126035119746, - 6.5381827741940635, - 6.538239461238055, - 6.538296096299431, - 6.538352679425864, - 6.538409210664977, - 6.53846569006435, - 6.538522117671523, - 6.538578493533988, - 6.538634817699197, - 6.538691090214556, - 6.538747311127429, - 6.538803480485134, - 6.53885959833495, - 6.538915664724109, - 6.538971679699802, - 6.5390276433091765, - 6.539083555599333, - 6.539139416617334, - 6.539195226410195, - 6.539250985024892, - 6.5393066925083545, - 6.5393623489074715, - 6.539417954269087, - 6.539473508640002, - 6.539529012066978, - 6.539584464596729, - 6.539639866275929, - 6.539695217151208, - 6.539750517269155, - 6.539805766676314, - 6.539860965419187, - 6.539916113544234, - 6.539971211097873, - 6.540026258126478, - 6.540081254676379, - 6.54013620079387, - 6.540191096525195, - 6.540245941916559, - 6.540300737014122, - 6.540355481864008, - 6.540410176512293, - 6.540464821005012, - 6.540519415388158, - 6.540573959707683, - 6.540628454009496, - 6.540682898339462, - 6.540737292743406, - 6.540791637267112, - 6.540845931956322, - 6.540900176856732, - 6.540954372013999, - 6.541008517473739, - 6.541062613281524, - 6.541116659482888, - 6.541170656123318, - 6.541224603248263, - 6.541278500903128, - 6.541332349133279, - 6.541386147984039, - 6.541439897500689, - 6.541493597728469, - 6.541547248712578, - 6.541600850498171, - 6.541654403130366, - 6.541707906654234, - 6.541761361114811, - 6.541814766557087, - 6.5418681230260125, - 6.5419214305664966, - 6.541974689223408, - 6.542027899041573, - 6.542081060065776, - 6.542134172340763, - 6.5421872359112365, - 6.542240250821861, - 6.5422932171172565, - 6.542346134842004, - 6.542399004040642, - 6.542451824757673, - 6.542504597037551, - 6.542557320924696, - 6.542609996463484, - 6.54266262369825, - 6.542715202673291, - 6.542767733432861, - 6.542820216021173, - 6.542872650482402, - 6.54292503686068, - 6.542977375200101, - 6.543029665544715, - 6.543081907938536, - 6.543134102425534, - 6.543186249049639, - 6.543238347854745, - 6.543290398884699, - 6.543342402183314, - 6.543394357794359, - 6.543446265761564, - 6.543498126128619, - 6.543549938939174, - 6.543601704236838, - 6.543653422065183, - 6.543705092467737, - 6.543756715487989, - 6.543808291169391, - 6.543859819555352, - 6.543911300689244, - 6.543962734614396, - 6.544014121374099, - 6.544065461011606, - 6.544116753570126, - 6.544167999092833, - 6.544219197622859, - 6.5442703492032965, - 6.544321453877198, - 6.544372511687578, - 6.544423522677411, - 6.544474486889632, - 6.544525404367135, - 6.544576275152778, - 6.544627099289377, - 6.54467787681971, - 6.544728607786516, - 6.544779292232494, - 6.544829930200304, - 6.544880521732566, - 6.544931066871863, - 6.544981565660737, - 6.5450320181416926, - 6.545082424357195, - 6.5451327843496685, - 6.545183098161502, - 6.545233365835042, - 6.545283587412599, - 6.545333762936442, - 6.545383892448805, - 6.5454339759918785, - 6.545484013607818, - 6.545534005338739, - 6.54558395122672, - 6.545633851313798, - 6.545683705641973, - 6.5457335142532065, - 6.545783277189421, - 6.5458329944925016, - 6.545882666204294, - 6.545932292366607, - 6.5459818730212085, - 6.5460314082098305, - 6.546080897974164, - 6.546130342355866, - 6.546179741396552, - 6.546229095137798, - 6.546278403621147, - 6.546327666888101, - 6.5463768849801225, - 6.546426057938637, - 6.546475185805034, - 6.5465242686206615, - 6.546573306426834, - 6.546622299264823, - 6.546671247175866, - 6.546720150201162, - 6.5467690083818715, - 6.5468178217591175, - 6.546866590373985, - 6.54691531426752, - 6.546963993480735, - 6.547012628054601, - 6.547061218030053, - 6.547109763447988, - 6.5471582643492665, - 6.547206720774709, - 6.547255132765103, - 6.547303500361194, - 6.547351823603692, - 6.54740010253327, - 6.5474483371905645, - 6.547496527616173, - 6.5475446738506555, - 6.547592775934536, - 6.547640833908302, - 6.547688847812402, - 6.547736817687248, - 6.547784743573216, - 6.547832625510645, - 6.547880463539835, - 6.547928257701051, - 6.547976008034521, - 6.548023714580434, - 6.548071377378944, - 6.548118996470169, - 6.548166571894187, - 6.548214103691043, - 6.548261591900744, - 6.548309036563258, - 6.548356437718519, - 6.548403795406425, - 6.548451109666834, - 6.54849838053957, - 6.548545608064421, - 6.548592792281136, - 6.548639933229429, - 6.5486870309489795, - 6.548734085479428, - 6.548781096860378, - 6.548828065131399, - 6.548874990332023, - 6.548921872501747, - 6.548968711680029, - 6.549015507906294, - 6.549062261219929, - 6.549108971660286, - 6.549155639266679, - 6.549202264078389, - 6.549248846134657, - 6.549295385474692, - 6.549341882137663, - 6.549388336162707, - 6.549434747588924, - 6.549481116455376, - 6.549527442801091, - 6.549573726665063, - 6.549619968086246, - 6.54966616710356, - 6.549712323755891, - 6.549758438082089, - 6.549804510120966, - 6.549850539911301, - 6.5498965274918355, - 6.549942472901276, - 6.549988376178295, - 6.550034237361527, - 6.550080056489574, - 6.550125833601001, - 6.550171568734336, - 6.550217261928076, - 6.550262913220677, - 6.550308522650564, - 6.550354090256127, - 6.550399616075717, - 6.5504451001476545, - 6.550490542510221, - 6.550535943201663, - 6.550581302260197, - 6.550626619723998, - 6.5506718956312096, - 6.55071713001994, - 6.5507623229282625, - 6.5508074743942135, - 6.550852584455797, - 6.550897653150982, - 6.550942680517701, - 6.550987666593852, - 6.5510326114173, - 6.551077515025874, - 6.551122377457368, - 6.551167198749543, - 6.551211978940122, - 6.5512567180667975, - 6.551301416167225, - 6.551346073279025, - 6.551390689439787, - 6.55143526468706, - 6.551479799058366, - 6.551524292591186, - 6.551568745322969, - 6.551613157291132, - 6.551657528533055, - 6.551701859086084, - 6.55174614898753, - 6.551790398274673, - 6.551834606984756, - 6.5518787751549885, - 6.551922902822546, - 6.551966990024569, - 6.552011036798167, - 6.552055043180411, - 6.552099009208342, - 6.552142934918964, - 6.55218682034925, - 6.552230665536135, - 6.552274470516524, - 6.552318235327287, - 6.552361960005261, - 6.552405644587246, - 6.552449289110012, - 6.552492893610292, - 6.55253645812479, - 6.55257998269017, - 6.552623467343068, - 6.552666912120083, - 6.552710317057783, - 6.552753682192699, - 6.552797007561333, - 6.552840293200149, - 6.552883539145582, - 6.5529267454340285, - 6.552969912101855, - 6.553013039185396, - 6.553056126720949, - 6.55309917474478, - 6.553142183293123, - 6.553185152402175, - 6.553228082108105, - 6.553270972447043, - 6.553313823455091, - 6.553356635168316, - 6.553399407622751, - 6.553442140854397, - 6.553484834899223, - 6.5535274897931615, - 6.553570105572114, - 6.553612682271952, - 6.55365521992851, - 6.553697718577591, - 6.553740178254966, - 6.553782598996371, - 6.55382498083751, - 6.553867323814058, - 6.5539096279616516, - 6.553951893315899, - 6.553994119912374, - 6.554036307786617, - 6.554078456974137, - 6.55412056751041, - 6.5541626394308805, - 6.554204672770959, - 6.554246667566024, - 6.554288623851423, - 6.554330541662466, - 6.554372421034438, - 6.554414262002588, - 6.55445606460213, - 6.554497828868251, - 6.554539554836102, - 6.554581242540803, - 6.554622892017443, - 6.554664503301075, - 6.554706076426724, - 6.554747611429382, - 6.554789108344006, - 6.554830567205525, - 6.554871988048833, - 6.554913370908794, - 6.554954715820239, - 6.554996022817966, - 6.555037291936744, - 6.555078523211306, - 6.555119716676359, - 6.555160872366572, - 6.5552019903165855, - 6.555243070561008, - 6.555284113134415, - 6.555325118071353, - 6.555366085406334, - 6.555407015173839, - 6.555447907408318, - 6.55548876214419, - 6.555529579415841, - 6.555570359257625, - 6.555611101703868, - 6.55565180678886, - 6.555692474546863, - 6.555733105012105, - 6.555773698218784, - 6.555814254201069, - 6.555854772993092, - 6.5558952546289575, - 6.555935699142739, - 6.555976106568478, - 6.556016476940184, - 6.556056810291835, - 6.556097106657381, - 6.556137366070737, - 6.556177588565788, - 6.55621777417639, - 6.556257922936366, - 6.556298034879509, - 6.55633811003958, - 6.5563781484503085, - 6.556418150145395, - 6.556458115158507, - 6.556498043523283, - 6.556537935273331, - 6.556577790442226, - 6.556617609063513, - 6.556657391170707, - 6.5566971367972915, - 6.55673684597672, - 6.5567765187424145, - 6.556816155127767, - 6.556855755166139, - 6.556895318890861, - 6.556934846335232, - 6.556974337532523, - 6.5570137925159715, - 6.557053211318787, - 6.557092593974147, - 6.557131940515199, - 6.557171250975061, - 6.55721052538682, - 6.55724976378353, - 6.55728896619822, - 6.557328132663884, - 6.557367263213489, - 6.557406357879971, - 6.5574454166962335, - 6.557484439695151, - 6.557523426909571, - 6.557562378372306, - 6.557601294116141, - 6.557640174173832, - 6.557679018578101, - 6.557717827361646, - 6.557756600557129, - 6.5577953381971845, - 6.557834040314419, - 6.5578727069414064, - 6.557911338110691, - 6.557949933854789, - 6.557988494206185, - 6.5580270191973336, - 6.558065508860662, - 6.558103963228566, - 6.558142382333412, - 6.558180766207536, - 6.5582191148832445, - 6.558257428392817, - 6.558295706768497, - 6.558333950042508, - 6.5583721582470345, - 6.558410331414238, - 6.558448469576246, - 6.55848657276516, - 6.558524641013051, - 6.5585626743519585, - 6.558600672813897, - 6.558638636430846, - 6.558676565234761, - 6.558714459257566, - 6.5587523185311545, - 6.558790143087391, - 6.558827932958114, - 6.55886568817513, - 6.558903408770216, - 6.558941094775121, - 6.558978746221563, - 6.559016363141235, - 6.559053945565798, - 6.559091493526883, - 6.559129007056094, - 6.559166486185006, - 6.559203930945164, - 6.559241341368084, - 6.559278717485254, - 6.559316059328134, - 6.5593533669281525, - 6.55939064031671, - 6.55942787952518, - 6.559465084584905, - 6.5595022555272005, - 6.559539392383352, - 6.559576495184617, - 6.559613563962224, - 6.559650598747375, - 6.559687599571238, - 6.5597245664649595, - 6.559761499459651, - 6.559798398586399, - 6.559835263876262, - 6.559872095360268, - 6.559908893069416, - 6.55994565703468, - 6.559982387287001, - 6.560019083857298, - 6.560055746776453, - 6.560092376075328, - 6.560128971784752, - 6.560165533935527, - 6.560202062558426, - 6.560238557684196, - 6.5602750193435515, - 6.560311447567184, - 6.560347842385754, - 6.560384203829893, - 6.560420531930207, - 6.560456826717272, - 6.560493088221638, - 6.560529316473824, - 6.560565511504323, - 6.5606016733436, - 6.5606378020220895, - 6.560673897570204, - 6.560709960018322, - 6.560745989396796, - 6.560781985735954, - 6.560817949066091, - 6.560853879417477, - 6.560889776820355, - 6.560925641304939, - 6.560961472901413, - 6.5609972716399385, - 6.5610330375506445, - 6.561068770663637, - 6.5611044710089885, - 6.56114013861675, - 6.561175773516942, - 6.561211375739555, - 6.561246945314559, - 6.5612824822718885, - 6.561317986641456, - 6.561353458453145, - 6.561388897736811, - 6.561424304522281, - 6.561459678839359, - 6.5614950207178175, - 6.561530330187402, - 6.561565607277834, - 6.561600852018804, - 6.561636064439977, - 6.561671244570991, - 6.561706392441455, - 6.561741508080956, - 6.561776591519045, - 6.561811642785254, - 6.561846661909085, - 6.5618816489200125, - 6.561916603847483, - 6.56195152672092, - 6.561986417569716, - 6.562021276423237, - 6.562056103310824, - 6.562090898261791, - 6.562125661305423, - 6.562160392470979, - 6.562195091787693, - 6.562229759284769, - 6.562264394991387, - 6.5622989989367, - 6.562333571149831, - 6.5623681116598815, - 6.562402620495921, - 6.562437097686996, - 6.562471543262126, - 6.562505957250303, - 6.562540339680492, - 6.5625746905816325, - 6.562609009982636, - 6.562643297912389, - 6.562677554399752, - 6.562711779473555, - 6.562745973162608, - 6.562780135495689, - 6.562814266501554, - 6.562848366208929, - 6.562882434646513, - 6.562916471842984, - 6.5629504778269885, - 6.562984452627149, - 6.563018396272062, - 6.563052308790296, - 6.563086190210397, - 6.56312004056088, - 6.563153859870237, - 6.563187648166933, - 6.563221405479406, - 6.563255131836069, - 6.5632888272653105, - 6.56332249179549, - 6.563356125454942, - 6.563389728271976, - 6.563423300274875, - 6.563456841491896, - 6.563490351951269, - 6.563523831681199, - 6.563557280709865, - 6.563590699065422, - 6.563624086775998, - 6.563657443869692, - 6.563690770374582, - 6.563724066318717, - 6.563757331730123, - 6.563790566636799, - 6.5638237710667156, - 6.563856945047823, - 6.563890088608041, - 6.563923201775268, - 6.5639562845773725, - 6.5639893370422016, - 6.5640223591975735, - 6.564055351071282, - 6.564088312691098, - 6.564121244084762, - 6.564154145279994, - 6.564187016304484, - 6.5642198571859005, - 6.564252667951885, - 6.564285448630053, - 6.564318199247996, - 6.564350919833278, - 6.564383610413441, - 6.5644162710159994, - 6.564448901668442, - 6.564481502398235, - 6.564514073232817, - 6.564546614199602, - 6.564579125325981, - 6.564611606639314, - 6.564644058166944, - 6.564676479936182, - 6.564708871974318, - 6.564741234308616, - 6.564773566966313, - 6.5648058699746255, - 6.56483814336074, - 6.564870387151822, - 6.5649026013750085, - 6.564934786057416, - 6.56496694122613, - 6.564999066908219, - 6.56503116313072, - 6.565063229920649, - 6.565095267304996, - 6.565127275310726, - 6.565159253964779, - 6.565191203294071, - 6.5652231233254925, - 6.565255014085912, - 6.565286875602168, - 6.56531870790108, - 6.5653505110094414, - 6.565382284954019, - 6.565414029761556, - 6.5654457454587725, - 6.565477432072361, - 6.565509089628994, - 6.565540718155314, - 6.565572317677946, - 6.5656038882234835, - 6.565635429818499, - 6.565666942489542, - 6.565698426263135, - 6.565729881165778, - 6.565761307223945, - 6.565792704464088, - 6.5658240729126325, - 6.5658554125959805, - 6.565886723540511, - 6.565918005772576, - 6.565949259318507, - 6.5659804842046094, - 6.566011680457164, - 6.566042848102427, - 6.566073987166634, - 6.566105097675992, - 6.566136179656687, - 6.5661672331348795, - 6.5661982581367075, - 6.566229254688284, - 6.566260222815697, - 6.566291162545013, - 6.566322073902272, - 6.5663529569134935, - 6.566383811604671, - 6.5664146380017705, - 6.566445436130742, - 6.566476206017507, - 6.566506947687962, - 6.566537661167985, - 6.566568346483423, - 6.566599003660105, - 6.566629632723836, - 6.566660233700394, - 6.5666908066155365, - 6.566721351494994, - 6.566751868364478, - 6.566782357249672, - 6.566812818176239, - 6.566843251169818, - 6.566873656256022, - 6.566904033460443, - 6.56693438280865, - 6.566964704326186, - 6.566994998038574, - 6.567025263971308, - 6.5670555021498656, - 6.567085712599697, - 6.5671158953462285, - 6.567146050414865, - 6.567176177830987, - 6.567206277619953, - 6.567236349807098, - 6.567266394417732, - 6.567296411477143, - 6.567326401010595, - 6.567356363043332, - 6.567386297600569, - 6.567416204707504, - 6.567446084389309, - 6.567475936671133, - 6.567505761578101, - 6.567535559135317, - 6.56756532936786, - 6.567595072300789, - 6.567624787959136, - 6.567654476367912, - 6.567684137552107, - 6.567713771536685, - 6.567743378346589, - 6.567772958006737, - 6.567802510542028, - 6.567832035977333, - 6.5678615343375055, - 6.567891005647372, - 6.567920449931738, - 6.567949867215386, - 6.567979257523078, - 6.568008620879549, - 6.568037957309514, - 6.568067266837666, - 6.568096549488673, - 6.568125805287182, - 6.568155034257818, - 6.568184236425181, - 6.568213411813851, - 6.568242560448383, - 6.568271682353313, - 6.56830077755315, - 6.568329846072383, - 6.56835888793548, - 6.568387903166885, - 6.568416891791018, - 6.568445853832278, - 6.568474789315043, - 6.568503698263668, - 6.568532580702484, - 6.568561436655799, - 6.568590266147904, - 6.568619069203062, - 6.5686478458455175, - 6.568676596099489, - 6.568705319989176, - 6.568734017538756, - 6.568762688772381, - 6.568791333714185, - 6.568819952388278, - 6.568848544818746, - 6.568877111029655, - 6.568905651045051, - 6.568934164888953, - 6.568962652585361, - 6.568991114158253, - 6.569019549631585, - 6.569047959029289, - 6.569076342375278, - 6.569104699693441, - 6.569133031007646, - 6.56916133634174, - 6.569189615719544, - 6.569217869164864, - 6.569246096701478, - 6.569274298353144, - 6.5693024741436, - 6.569330624096562, - 6.569358748235722, - 6.5693868465847505, - 6.569414919167299, - 6.569442966006995, - 6.569470987127445, - 6.569498982552233, - 6.5695269523049244, - 6.569554896409058, - 6.5695828148881565, - 6.569610707765717, - 6.569638575065215, - 6.569666416810109, - 6.569694233023831, - 6.569722023729792, - 6.569749788951385, - 6.569777528711978, - 6.569805243034921, - 6.569832931943539, - 6.5698605954611375, - 6.569888233611001, - 6.569915846416392, - 6.56994343390055, - 6.569970996086696, - 6.569998532998029, - 6.570026044657726, - 6.570053531088941, - 6.570080992314812, - 6.57010842835845, - 6.5701358392429485, - 6.570163224991379, - 6.570190585626791, - 6.570217921172214, - 6.570245231650654, - 6.570272517085101, - 6.5702997774985175, - 6.570327012913849, - 6.570354223354021, - 6.570381408841932, - 6.570408569400467, - 6.570435705052485, - 6.570462815820823, - 6.570489901728306, - 6.570516962797726, - 6.5705439990518615, - 6.570571010513469, - 6.570597997205283, - 6.570624959150018, - 6.570651896370367, - 6.570678808889003, - 6.570705696728577, - 6.57073255991172, - 6.570759398461043, - 6.570786212399135, - 6.570813001748564, - 6.570839766531878, - 6.570866506771607, - 6.570893222490255, - 6.570919913710309, - 6.570946580454235, - 6.5709732227444775, - 6.57099984060346, - 6.571026434053587, - 6.571053003117242, - 6.571079547816786, - 6.571106068174562, - 6.571132564212893, - 6.5711590359540795, - 6.571185483420401, - 6.57121190663412, - 6.571238305617474, - 6.571264680392684, - 6.571291030981948, - 6.5713173574074455, - 6.571343659691335, - 6.571369937855755, - 6.571396191922822, - 6.571422421914634, - 6.57144862785327, - 6.571474809760785, - 6.571500967659216, - 6.57152710157058, - 6.571553211516874, - 6.571579297520073, - 6.571605359602134, - 6.5716313977849925, - 6.571657412090564, - 6.571683402540746, - 6.5717093691574116, - 6.571735311962418, - 6.5717612309776, - 6.571787126224773, - 6.571812997725733, - 6.571838845502255, - 6.5718646695760965, - 6.5718904699689915, - 6.5719162467026555, - 6.571941999798784, - 6.571967729279054, - 6.571993435165121, - 6.57201911747862, - 6.572044776241168, - 6.572070411474363, - 6.57209602319978, - 6.572121611438977, - 6.57214717621349, - 6.572172717544837, - 6.572198235454516, - 6.572223729964003, - 6.572249201094758, - 6.572274648868219, - 6.572300073305806, - 6.572325474428916, - 6.57235085225893, - 6.572376206817209, - 6.572401538125091, - 6.572426846203899, - 6.572452131074933, - 6.572477392759476, - 6.572502631278788, - 6.572527846654114, - 6.572553038906677, - 6.5725782080576804, - 6.572603354128309, - 6.572628477139726, - 6.572653577113079, - 6.5726786540694935, - 6.572703708030075, - 6.572728739015912, - 6.572753747048075, - 6.572778732147608, - 6.572803694335543, - 6.572828633632891, - 6.572853550060642, - 6.572878443639768, - 6.57290331439122, - 6.572928162335932, - 6.572952987494819, - 6.572977789888776, - 6.5730025695386765, - 6.573027326465378, - 6.573052060689719, - 6.573076772232517, - 6.573101461114571, - 6.5731261273566615, - 6.57315077097955, - 6.573175392003977, - 6.573199990450666, - 6.573224566340323, - 6.573249119693632, - 6.573273650531258, - 6.573298158873848, - 6.573322644742031, - 6.573347108156418, - 6.573371549137597, - 6.573395967706139, - 6.573420363882597, - 6.573444737687508, - 6.5734690891413825, - 6.57349341826472, - 6.573517725077995, - 6.573542009601669, - 6.573566271856178, - 6.573590511861947, - 6.5736147296393765, - 6.573638925208851, - 6.573663098590733, - 6.573687249805371, - 6.573711378873091, - 6.573735485814205, - 6.573759570649, - 6.57378363339775, - 6.573807674080707, - 6.573831692718105, - 6.573855689330162, - 6.573879663937073, - 6.573903616559019, - 6.573927547216159, - 6.573951455928635, - 6.573975342716572, - 6.573999207600074, - 6.574023050599228, - 6.574046871734102, - 6.574070671024745, - 6.574094448491189, - 6.5741182041534465, - 6.574141938031514, - 6.574165650145366, - 6.574189340514962, - 6.574213009160238, - 6.57423665610112, - 6.574260281357509, - 6.57428388494929, - 6.5743074668963315, - 6.574331027218479, - 6.574354565935565, - 6.5743780830674, - 6.574401578633779, - 6.574425052654478, - 6.574448505149253, - 6.574471936137846, - 6.574495345639976, - 6.574518733675347, - 6.574542100263644, - 6.574565445424534, - 6.574588769177668, - 6.574612071542675, - 6.574635352539169, - 6.574658612186746, - 6.574681850504982, - 6.574705067513437, - 6.574728263231652, - 6.574751437679151, - 6.574774590875437, - 6.5747977228400005, - 6.57482083359231, - 6.574843923151817, - 6.574866991537956, - 6.5748900387701426, - 6.5749130648677765, - 6.574936069850238, - 6.5749590537368885, - 6.574982016547074, - 6.575004958300122, - 6.575027879015342, - 6.575050778712026, - 6.575073657409448, - 6.575096515126865, - 6.575119351883515, - 6.57514216769862, - 6.5751649625913835, - 6.575187736580991, - 6.575210489686612, - 6.575233221927396, - 6.575255933322477, - 6.575278623890972, - 6.575301293651977, - 6.575323942624573, - 6.575346570827825, - 6.575369178280776, - 6.575391765002457, - 6.575414331011877, - 6.5754368763280295, - 6.575459400969891, - 6.575481904956419, - 6.575504388306556, - 6.575526851039226, - 6.575549293173334, - 6.57557171472777, - 6.575594115721406, - 6.575616496173096, - 6.575638856101676, - 6.575661195525968, - 6.5756835144647745, - 6.57570581293688, - 6.575728090961052, - 6.575750348556043, - 6.575772585740585, - 6.575794802533396, - 6.575816998953176, - 6.575839175018606, - 6.575861330748351, - 6.57588346616106, - 6.575905581275364, - 6.575927676109877, - 6.575949750683193, - 6.575971805013895, - 6.575993839120545, - 6.576015853021689, - 6.576037846735853, - 6.576059820281552, - 6.576081773677278, - 6.576103706941511, - 6.576125620092711, - 6.576147513149321, - 6.576169386129769, - 6.5761912390524655, - 6.576213071935801, - 6.576234884798154, - 6.576256677657885, - 6.576278450533334, - 6.576300203442828, - 6.5763219364046765, - 6.576343649437171, - 6.576365342558588, - 6.5763870157871835, - 6.576408669141203, - 6.576430302638868, - 6.5764519162983905, - 6.57647351013796, - 6.576495084175753, - 6.576516638429926, - 6.576538172918623, - 6.576559687659968, - 6.5765811826720695, - 6.5766026579730195, - 6.576624113580894, - 6.57664554951375, - 6.576666965789633, - 6.576688362426564, - 6.576709739442555, - 6.576731096855599, - 6.576752434683671, - 6.576773752944732, - 6.576795051656724, - 6.576816330837573, - 6.576837590505192, - 6.576858830677471, - 6.57688005137229, - 6.5769012526075095, - 6.5769224344009745, - 6.576943596770512, - 6.576964739733936, - 6.57698586330904, - 6.577006967513604, - 6.577028052365392, - 6.577049117882149, - 6.577070164081606, - 6.577091190981479, - 6.5771121985994645, - 6.577133186953243, - 6.577154156060482, - 6.577175105938829, - 6.577196036605918, - 6.577216948079366, - 6.577237840376774, - 6.577258713515726, - 6.577279567513791, - 6.577300402388522, - 6.577321218157454, - 6.5773420148381065, - 6.577362792447986, - 6.57738355100458, - 6.57740429052536, - 6.577425011027781, - 6.5774457125292844, - 6.577466395047294, - 6.5774870585992185, - 6.577507703202449, - 6.577528328874361, - 6.577548935632317, - 6.577569523493659, - 6.577590092475716, - 6.577610642595801, - 6.577631173871211, - 6.577651686319227, - 6.577672179957113, - 6.577692654802117, - 6.577713110871474, - 6.577733548182401, - 6.5777539667521, - 6.577774366597756, - 6.57779474773654, - 6.577815110185606, - 6.577835453962093, - 6.577855779083124, - 6.577876085565806, - 6.57789637342723, - 6.577916642684474, - 6.577936893354595, - 6.57795712545464, - 6.577977339001636, - 6.577997534012599, - 6.5780177105045246, - 6.578037868494396, - 6.578058007999179, - 6.578078129035824, - 6.578098231621269, - 6.578118315772431, - 6.578138381506218, - 6.578158428839516, - 6.578178457789199, - 6.578198468372125, - 6.578218460605136, - 6.578238434505061, - 6.578258390088711, - 6.578278327372881, - 6.578298246374351, - 6.578318147109889, - 6.578338029596243, - 6.57835789385015, - 6.578377739888328, - 6.57839756772748, - 6.578417377384297, - 6.578437168875451, - 6.578456942217599, - 6.578476697427385, - 6.578496434521438, - 6.578516153516368, - 6.578535854428772, - 6.578555537275234, - 6.57857520207232, - 6.5785948488365795, - 6.5786144775845505, - 6.578634088332754, - 6.5786536810976965, - 6.578673255895868, - 6.578692812743744, - 6.578712351657785, - 6.578731872654439, - 6.578751375750132, - 6.578770860961283, - 6.578790328304291, - 6.578809777795541, - 6.578829209451405, - 6.578848623288235, - 6.578868019322375, - 6.578887397570147, - 6.5789067580478635, - 6.5789261007718185, - 6.5789454257582936, - 6.578964733023553, - 6.578984022583849, - 6.579003294455415, - 6.579022548654473, - 6.579041785197228, - 6.579061004099873, - 6.579080205378582, - 6.579099389049517, - 6.579118555128826, - 6.579137703632638, - 6.579156834577071, - 6.579175947978228, - 6.579195043852195, - 6.5792141222150455, - 6.579233183082839, - 6.579252226471616, - 6.5792712523974055, - 6.579290260876222, - 6.579309251924064, - 6.579328225556916, - 6.579347181790748, - 6.579366120641516, - 6.579385042125158, - 6.579403946257601, - 6.579422833054758, - 6.579441702532522, - 6.579460554706778, - 6.579479389593393, - 6.579498207208219, - 6.5795170075670955, - 6.579535790685846, - 6.579554556580279, - 6.57957330526619, - 6.579592036759359, - 6.5796107510755535, - 6.5796294482305235, - 6.579648128240007, - 6.579666791119725, - 6.579685436885388, - 6.579704065552687, - 6.579722677137304, - 6.5797412716549015, - 6.579759849121133, - 6.579778409551632, - 6.579796952962022, - 6.579815479367911, - 6.57983398878489, - 6.579852481228541, - 6.579870956714427, - 6.5798894152581, - 6.579907856875094, - 6.579926281580931, - 6.579944689391122, - 6.579963080321157, - 6.579981454386516, - 6.579999811602664, - 6.580018151985052, - 6.580036475549118, - 6.580054782310285, - 6.580073072283958, - 6.580091345485535, - 6.580109601930394, - 6.580127841633901, - 6.5801460646114105, - 6.5801642708782575, - 6.580182460449767, - 6.580200633341249, - 6.580218789567999, - 6.580236929145299, - 6.5802550520884155, - 6.580273158412604, - 6.580291248133103, - 6.58030932126514, - 6.580327377823925, - 6.580345417824655, - 6.580363441282516, - 6.580381448212677, - 6.580399438630295, - 6.58041741255051, - 6.580435369988452, - 6.5804533109592365, - 6.580471235477962, - 6.580489143559716, - 6.580507035219571, - 6.580524910472587, - 6.5805427693338086, - 6.5805606118182665, - 6.5805784379409795, - 6.580596247716952, - 6.580614041161172, - 6.5806318182886185, - 6.580649579114252, - 6.580667323653022, - 6.580685051919864, - 6.5807027639296996, - 6.580720459697437, - 6.58073813923797, - 6.580755802566178, - 6.580773449696929, - 6.580791080645078, - 6.580808695425461, - 6.5808262940529065, - 6.580843876542226, - 6.580861442908219, - 6.580878993165669, - 6.580896527329349, - 6.580914045414017, - 6.580931547434419, - 6.580949033405285, - 6.580966503341331, - 6.5809839572572635, - 6.581001395167773, - 6.581018817087535, - 6.581036223031213, - 6.58105361301346, - 6.58107098704891, - 6.581088345152187, - 6.581105687337901, - 6.58112301362065, - 6.581140324015015, - 6.581157618535568, - 6.581174897196864, - 6.581192160013447, - 6.581209406999847, - 6.581226638170578, - 6.581243853540145, - 6.581261053123037, - 6.581278236933733, - 6.581295404986695, - 6.58131255729637, - 6.581329693877199, - 6.581346814743603, - 6.581363919909994, - 6.581381009390768, - 6.581398083200308, - 6.581415141352987, - 6.58143218386316, - 6.581449210745173, - 6.581466222013357, - 6.581483217682029, - 6.581500197765496, - 6.581517162278048, - 6.581534111233963, - 6.581551044647509, - 6.581567962532937, - 6.581584864904487, - 6.581601751776385, - 6.581618623162845, - 6.581635479078065, - 6.581652319536235, - 6.581669144551529, - 6.5816859541381065, - 6.581702748310118, - 6.581719527081697, - 6.581736290466966, - 6.581753038480037, - 6.581769771135003, - 6.58178648844595, - 6.581803190426946, - 6.581819877092052, - 6.58183654845531, - 6.581853204530754, - 6.581869845332402, - 6.58188647087426, - 6.581903081170322, - 6.581919676234569, - 6.581936256080968, - 6.581952820723473, - 6.581969370176029, - 6.581985904452562, - 6.582002423566991, - 6.582018927533219, - 6.5820354163651364, - 6.582051890076623, - 6.582068348681542, - 6.582084792193749, - 6.582101220627083, - 6.582117633995371, - 6.582134032312428, - 6.582150415592057, - 6.582166783848047, - 6.582183137094175, - 6.582199475344204, - 6.5822157986118865, - 6.582232106910961, - 6.582248400255156, - 6.582264678658182, - 6.5822809421337425, - 6.582297190695525, - 6.5823134243572055, - 6.582329643132449, - 6.582345847034905, - 6.582362036078214, - 6.582378210276, - 6.582394369641876, - 6.582410514189445, - 6.582426643932295, - 6.582442758884001, - 6.582458859058128, - 6.582474944468227, - 6.582491015127835, - 6.582507071050481, - 6.582523112249677, - 6.582539138738925, - 6.582555150531715, - 6.582571147641523, - 6.582587130081813, - 6.582603097866039, - 6.582619051007638, - 6.58263498952004, - 6.582650913416658, - 6.582666822710896, - 6.582682717416145, - 6.582698597545782, - 6.582714463113175, - 6.582730314131675, - 6.582746150614626, - 6.582761972575355, - 6.582777780027182, - 6.582793572983408, - 6.582809351457329, - 6.5828251154622235, - 6.58284086501136, - 6.582856600117996, - 6.582872320795373, - 6.582888027056725, - 6.58290371891527, - 6.5829193963842165, - 6.5829350594767595, - 6.582950708206083, - 6.582966342585358, - 6.582981962627742, - 6.582997568346384, - 6.583013159754418, - 6.583028736864969, - 6.583044299691144, - 6.583059848246046, - 6.58307538254276, - 6.583090902594361, - 6.583106408413912, - 6.583121900014464, - 6.583137377409055, - 6.583152840610714, - 6.583168289632455, - 6.58318372448728, - 6.583199145188183, - 6.58321455174814, - 6.583229944180122, - 6.583245322497081, - 6.583260686711964, - 6.583276036837699, - 6.583291372887208, - 6.583306694873399, - 6.583322002809169, - 6.5833372967074, - 6.583352576580967, - 6.583367842442729, - 6.583383094305536, - 6.583398332182226, - 6.583413556085623, - 6.583428766028541, - 6.583443962023781, - 6.583459144084134, - 6.583474312222379, - 6.583489466451283, - 6.5835046067836, - 6.583519733232072, - 6.583534845809433, - 6.583549944528404, - 6.583565029401689, - 6.5835801004419885, - 6.583595157661986, - 6.583610201074355, - 6.583625230691756, - 6.5836402465268415, - 6.583655248592248, - 6.583670236900604, - 6.583685211464523, - 6.583700172296611, - 6.583715119409458, - 6.583730052815647, - 6.583744972527746, - 6.583759878558312, - 6.583774770919892, - 6.583789649625021, - 6.5838045146862205, - 6.583819366116004, - 6.5838342039268705, - 6.583849028131309, - 6.583863838741796, - 6.583878635770798, - 6.58389341923077, - 6.583908189134153, - 6.58392294549338, - 6.583937688320872, - 6.583952417629037, - 6.583967133430271, - 6.583981835736961, - 6.583996524561481, - 6.584011199916196, - 6.584025861813457, - 6.584040510265605, - 6.584055145284967, - 6.584069766883864, - 6.584084375074602, - 6.584098969869476, - 6.58411355128077, - 6.584128119320757, - 6.584142674001698, - 6.5841572153358445, - 6.5841717433354345, - 6.584186258012698, - 6.584200759379849, - 6.5842152474490945, - 6.58422972223263, - 6.584244183742636, - 6.584258631991286, - 6.5842730669907406, - 6.58428748875315, - 6.5843018972906515, - 6.584316292615373, - 6.584330674739431, - 6.58434504367493, - 6.584359399433965, - 6.584373742028618, - 6.584388071470962, - 6.584402387773057, - 6.584416690946953, - 6.584430981004688, - 6.584445257958292, - 6.584459521819778, - 6.584473772601155, - 6.5844880103144146, - 6.584502234971543, - 6.584516446584512, - 6.584530645165282, - 6.584544830725805, - 6.584559003278019, - 6.5845731628338555, - 6.584587309405231, - 6.584601443004052, - 6.584615563642215, - 6.584629671331605, - 6.5846437660840955, - 6.584657847911551, - 6.584671916825822, - 6.584685972838751, - 6.584700015962169, - 6.584714046207896, - 6.5847280635877405, - 6.5847420681135, - 6.584756059796963, - 6.584770038649906, - 6.584784004684095, - 6.584797957911284, - 6.584811898343216, - 6.5848258259916275, - 6.584839740868239, - 6.584853642984762, - 6.5848675323529, - 6.58488140898434, - 6.584895272890764, - 6.584909124083841, - 6.584922962575229, - 6.584936788376575, - 6.584950601499516, - 6.584964401955679, - 6.584978189756678, - 6.584991964914121, - 6.585005727439598, - 6.585019477344696, - 6.585033214640987, - 6.5850469393400335, - 6.585060651453387, - 6.585074350992588, - 6.58508803796917, - 6.58510171239465, - 6.585115374280537, - 6.585129023638333, - 6.585142660479525, - 6.585156284815589, - 6.5851698966579955, - 6.5851834960182, - 6.585197082907647, - 6.585210657337775, - 6.585224219320009, - 6.5852377688657615, - 6.58525130598644, - 6.585264830693436, - 6.585278342998135, - 6.585291842911908, - 6.585305330446119, - 6.58531880561212, - 6.5853322684212525, - 6.585345718884848, - 6.585359157014227, - 6.585372582820701, - 6.585385996315568, - 6.585399397510121, - 6.585412786415637, - 6.585426163043388, - 6.58543952740463, - 6.585452879510614, - 6.585466219372576, - 6.5854795470017455, - 6.585492862409339, - 6.585506165606563, - 6.585519456604616, - 6.585532735414685, - 6.585546002047947, - 6.585559256515565, - 6.585572498828699, - 6.585585728998492, - 6.585598947036082, - 6.585612152952592, - 6.585625346759138, - 6.585638528466825, - 6.585651698086749, - 6.585664855629992, - 6.58567800110763, - 6.5856911345307285, - 6.58570425591034, - 6.5857173652575085, - 6.5857304625832676, - 6.585743547898643, - 6.585756621214647, - 6.585769682542283, - 6.585782731892545, - 6.585795769276415, - 6.585808794704868, - 6.585821808188866, - 6.585834809739364, - 6.585847799367303, - 6.585860777083617, - 6.585873742899229, - 6.585886696825052, - 6.5858996388719895, - 6.585912569050935, - 6.58592548737277, - 6.585938393848368, - 6.585951288488594, - 6.5859641713042985, - 6.585977042306327, - 6.585989901505512, - 6.586002748912676, - 6.586015584538633, - 6.586028408394187, - 6.586041220490131, - 6.586054020837247, - 6.586066809446312, - 6.586079586328089, - 6.58609235149333, - 6.5861051049527815, - 6.586117846717177, - 6.586130576797241, - 6.586143295203688, - 6.586156001947224, - 6.586168697038541, - 6.586181380488328, - 6.586194052307258, - 6.586206712505997, - 6.586219361095201, - 6.586231998085516, - 6.586244623487579, - 6.586257237312014, - 6.586269839569441, - 6.586282430270467, - 6.586295009425688, - 6.586307577045691, - 6.586320133141054, - 6.586332677722348, - 6.586345210800128, - 6.586357732384945, - 6.586370242487337, - 6.586382741117835, - 6.586395228286956, - 6.586407704005214, - 6.586420168283106, - 6.5864326211311255, - 6.5864450625597515, - 6.586457492579458, - 6.586469911200706, - 6.586482318433948, - 6.586494714289627, - 6.586507098778177, - 6.58651947191002, - 6.586531833695573, - 6.586544184145239, - 6.586556523269412, - 6.586568851078479, - 6.586581167582817, - 6.586593472792791, - 6.586605766718759, - 6.586618049371067, - 6.586630320760054, - 6.586642580896049, - 6.586654829789371, - 6.586667067450329, - 6.586679293889223, - 6.5866915091163465, - 6.5867037131419774, - 6.586715905976388, - 6.586728087629843, - 6.586740258112594, - 6.586752417434885, - 6.586764565606949, - 6.586776702639012, - 6.58678882854129, - 6.586800943323989, - 6.586813046997305, - 6.586825139571426, - 6.586837221056529, - 6.586849291462783, - 6.586861350800349, - 6.586873399079375, - 6.586885436310003, - 6.586897462502364, - 6.586909477666581, - 6.586921481812768, - 6.586933474951025, - 6.586945457091449, - 6.586957428244126, - 6.58696938841913, - 6.586981337626527, - 6.5869932758763765, - 6.587005203178726, - 6.587017119543614, - 6.58702902498107, - 6.587040919501115, - 6.587052803113762, - 6.58706467582901, - 6.587076537656855, - 6.587088388607278, - 6.587100228690256, - 6.587112057915754, - 6.587123876293728, - 6.587135683834125, - 6.587147480546885, - 6.587159266441935, - 6.587171041529197, - 6.587182805818578, - 6.587194559319984, - 6.587206302043306, - 6.587218033998427, - 6.5872297551952235, - 6.587241465643558, - 6.587253165353289, - 6.587264854334264, - 6.58727653259632, - 6.587288200149287, - 6.587299857002988, - 6.587311503167231, - 6.587323138651819, - 6.587334763466545, - 6.587346377621196, - 6.587357981125543, - 6.587369573989356, - 6.587381156222391, - 6.5873927278343976, - 6.587404288835114, - 6.587415839234272, - 6.587427379041594, - 6.58743890826679, - 6.587450426919567, - 6.587461935009618, - 6.58747343254663, - 6.587484919540279, - 6.587496396000235, - 6.587507861936158, - 6.587519317357696, - 6.587530762274494, - 6.587542196696182, - 6.587553620632386, - 6.58756503409272, - 6.587576437086793, - 6.5875878296242, - 6.5875992117145294, - 6.587610583367365, - 6.587621944592274, - 6.587633295398822, - 6.587644635796561, - 6.587655965795037, - 6.587667285403785, - 6.587678594632332, - 6.587689893490199, - 6.587701181986896, - 6.587712460131921, - 6.587723727934771, - 6.587734985404926, - 6.587746232551863, - 6.58775746938505, - 6.587768695913942, - 6.587779912147989, - 6.587791118096632, - 6.587802313769303, - 6.587813499175424, - 6.587824674324411, - 6.5878358392256695, - 6.587846993888595, - 6.58785813832258, - 6.5878692725370005, - 6.58788039654123, - 6.587891510344631, - 6.587902613956559, - 6.587913707386357, - 6.587924790643364, - 6.587935863736908, - 6.5879469266763095, - 6.587957979470879, - 6.58796902212992, - 6.5879800546627285, - 6.587991077078588, - 6.588002089386776, - 6.588013091596562, - 6.588024083717206, - 6.588035065757962, - 6.58804603772807, - 6.588056999636767, - 6.5880679514932785, - 6.588078893306823, - 6.588089825086609, - 6.58810074684184, - 6.588111658581706, - 6.588122560315393, - 6.588133452052075, - 6.58814433380092, - 6.588155205571089, - 6.588166067371729, - 6.588176919211984, - 6.588187761100988, - 6.588198593047866, - 6.588209415061735, - 6.588220227151704, - 6.588231029326875, - 6.588241821596336, - 6.588252603969173, - 6.588263376454461, - 6.5882741390612685, - 6.5882848917986525, - 6.588295634675663, - 6.5883063677013425, - 6.5883170908847255, - 6.5883278042348365, - 6.588338507760694, - 6.588349201471305, - 6.588359885375672, - 6.588370559482787, - 6.588381223801633, - 6.588391878341188, - 6.5884025231104175, - 6.588413158118282, - 6.588423783373733, - 6.588434398885713, - 6.588445004663158, - 6.588455600714994, - 6.588466187050139, - 6.588476763677504, - 6.588487330605991, - 6.588497887844493, - 6.588508435401898, - 6.588518973287082, - 6.588529501508914, - 6.588540020076257, - 6.588550528997963, - 6.588561028282878, - 6.5885715179398385, - 6.5885819979776725, - 6.588592468405203, - 6.588602929231241, - 6.588613380464593, - 6.588623822114054, - 6.588634254188412, - 6.5886446766964495, - 6.588655089646938, - 6.588665493048641, - 6.588675886910316, - 6.588686271240712, - 6.588696646048566, - 6.588707011342614, - 6.588717367131579, - 6.588727713424177, - 6.588738050229115, - 6.5887483775550955, - 6.58875869541081, - 6.588769003804942, - 6.588779302746168, - 6.588789592243158, - 6.5887998723045715, - 6.588810142939061, - 6.58882040415527, - 6.588830655961837, - 6.588840898367389, - 6.588851131380548, - 6.588861355009928, - 6.588871569264131, - 6.588881774151757, - 6.588891969681394, - 6.588902155861622, - 6.5889123327010175, - 6.5889225002081435, - 6.588932658391561, - 6.588942807259816, - 6.588952946821453, - 6.588963077085005, - 6.588973198059, - 6.588983309751955, - 6.588993412172382, - 6.589003505328783, - 6.589013589229655, - 6.589023663883483, - 6.589033729298749, - 6.589043785483923, - 6.589053832447471, - 6.589063870197847, - 6.589073898743501, - 6.589083918092873, - 6.589093928254397, - 6.589103929236497, - 6.589113921047593, - 6.589123903696093, - 6.5891338771904, - 6.589143841538907, - 6.5891537967500025, - 6.589163742832065, - 6.589173679793467, - 6.589183607642571, - 6.589193526387733, - 6.589203436037302, - 6.5892133365996175, - 6.589223228083015, - 6.589233110495818, - 6.589242983846344, - 6.5892528481429045, - 6.5892627033938025, - 6.5892725496073306, - 6.589282386791779, - 6.589292214955426, - 6.589302034106543, - 6.589311844253397, - 6.589321645404242, - 6.58933143756733, - 6.589341220750901, - 6.589350994963191, - 6.589360760212426, - 6.589370516506824, - 6.589380263854599, - 6.589390002263952, - 6.589399731743084, - 6.58940945230018, - 6.589419163943424, - 6.589428866680989, - 6.589438560521042, - 6.5894482454717425, - 6.589457921541241, - 6.589467588737683, - 6.589477247069204, - 6.589486896543933, - 6.589496537169995, - 6.5895061689555, - 6.589515791908557, - 6.589525406037265, - 6.589535011349717, - 6.589544607853996, - 6.589554195558181, - 6.5895637744703395, - 6.589573344598537, - 6.589582905950825, - 6.589592458535253, - 6.589602002359862, - 6.589611537432683, - 6.589621063761742, - 6.589630581355057, - 6.58964009022064, - 6.589649590366493, - 6.589659081800613, - 6.589668564530989, - 6.589678038565601, - 6.589687503912423, - 6.589696960579425, - 6.589706408574563, - 6.58971584790579, - 6.589725278581053, - 6.589734700608287, - 6.5897441139954225, - 6.589753518750384, - 6.589762914881087, - 6.589772302395439, - 6.589781681301343, - 6.589791051606691, - 6.589800413319371, - 6.589809766447263, - 6.589819110998238, - 6.589828446980161, - 6.589837774400892, - 6.58984709326828, - 6.5898564035901686, - 6.589865705374395, - 6.589874998628787, - 6.589884283361168, - 6.589893559579352, - 6.589902827291146, - 6.589912086504351, - 6.589921337226762, - 6.589930579466164, - 6.589939813230333, - 6.589949038527045, - 6.589958255364064, - 6.589967463749146, - 6.5899766636900425, - 6.589985855194496, - 6.589995038270244, - 6.590004212925016, - 6.590013379166534, - 6.590022537002511, - 6.590031686440657, - 6.590040827488672, - 6.590049960154251, - 6.590059084445079, - 6.590068200368837, - 6.590077307933197, - 6.590086407145826, - 6.590095498014381, - 6.590104580546514, - 6.590113654749871, - 6.590122720632087, - 6.590131778200795, - 6.590140827463617, - 6.59014986842817, - 6.590158901102064, - 6.590167925492901, - 6.590176941608277, - 6.590185949455781, - 6.590194949042994, - 6.590203940377491, - 6.59021292346684, - 6.590221898318603, - 6.590230864940332, - 6.590239823339575, - 6.590248773523872, - 6.590257715500758, - 6.590266649277756, - 6.590275574862385, - 6.590284492262161, - 6.590293401484589, - 6.590302302537165, - 6.590311195427383, - 6.590320080162729, - 6.590328956750678, - 6.590337825198703, - 6.590346685514268, - 6.5903555377048315, - 6.590364381777843, - 6.590373217740747, - 6.590382045600981, - 6.590390865365974, - 6.590399677043149, - 6.590408480639925, - 6.590417276163711, - 6.5904260636219085, - 6.590434843021915, - 6.59044361437112, - 6.590452377676905, - 6.590461132946647, - 6.590469880187715, - 6.590478619407472, - 6.590487350613272, - 6.590496073812465, - 6.590504789012393, - 6.5905134962203915, - 6.590522195443789, - 6.5905308866899075, - 6.590539569966062, - 6.59054824527956, - 6.590556912637705, - 6.590565572047792, - 6.59057422351711, - 6.590582867052939, - 6.590591502662556, - 6.590600130353229, - 6.590608750132218, - 6.590617362006779, - 6.590625965984161, - 6.590634562071606, - 6.590643150276348, - 6.590651730605617, - 6.590660303066635, - 6.590668867666615, - 6.5906774244127675, - 6.5906859733122936, - 6.59069451437239, - 6.590703047600244, - 6.5907115730030394, - 6.590720090587951, - 6.590728600362148, - 6.590737102332792, - 6.59074559650704, - 6.590754082892042, - 6.59076256149494, - 6.59077103232287, - 6.590779495382962, - 6.590787950682339, - 6.590796398228118, - 6.59080483802741, - 6.590813270087315, - 6.5908216944149345, - 6.590830111017356, - 6.590838519901666, - 6.590846921074941, - 6.5908553145442506, - 6.590863700316662, - 6.590872078399233, - 6.590880448799013, - 6.59088881152305, - 6.59089716657838, - 6.590905513972038, - 6.590913853711048, - 6.590922185802429, - 6.590930510253196, - 6.590938827070355, - 6.590947136260905, - 6.590955437831839, - 6.590963731790146, - 6.590972018142807, - 6.590980296896795, - 6.590988568059079, - 6.590996831636621, - 6.5910050876363755, - 6.591013336065291, - 6.591021576930312, - 6.591029810238373, - 6.591038035996404, - 6.591046254211329, - 6.591054464890063, - 6.591062668039521, - 6.591070863666603, - 6.59107905177821, - 6.591087232381233, - 6.591095405482557, - 6.591103571089062, - 6.591111729207619, - 6.591119879845096, - 6.591128023008354, - 6.591136158704245, - 6.591144286939618, - 6.591152407721314, - 6.5911605210561675, - 6.591168626951009, - 6.59117672541266, - 6.591184816447935, - 6.591192900063647, - 6.591200976266599, - 6.5912090450635885, - 6.591217106461405, - 6.591225160466837, - 6.591233207086661, - 6.59124124632765, - 6.59124927819657, - 6.591257302700183, - 6.591265319845243, - 6.591273329638495, - 6.591281332086685, - 6.591289327196544, - 6.5912973149748035, - 6.591305295428188, - 6.591313268563413, - 6.5913212343871885, - 6.591329192906222, - 6.591337144127207, - 6.591345088056841, - 6.591353024701808, - 6.591360954068789, - 6.591368876164457, - 6.591376790995479, - 6.591384698568519, - 6.591392598890232, - 6.591400491967266, - 6.591408377806267, - 6.591416256413869, - 6.591424127796707, - 6.591431991961405, - 6.59143984891458, - 6.591447698662846, - 6.591455541212813, - 6.5914633765710775, - 6.591471204744238, - 6.591479025738881, - 6.591486839561589, - 6.5914946462189405, - 6.591502445717506, - 6.591510238063848, - 6.591518023264528, - 6.591525801326097, - 6.591533572255102, - 6.591541336058084, - 6.591549092741577, - 6.591556842312109, - 6.591564584776204, - 6.591572320140378, - 6.591580048411143, - 6.591587769595002, - 6.5915954836984545, - 6.5916031907279935, - 6.591610890690106, - 6.591618583591272, - 6.591626269437968, - 6.591633948236661, - 6.5916416199938155, - 6.5916492847158885, - 6.591656942409331, - 6.591664593080588, - 6.591672236736099, - 6.591679873382298, - 6.591687503025612, - 6.591695125672463, - 6.591702741329268, - 6.591710350002434, - 6.591717951698369, - 6.5917255464234685, - 6.591733134184125, - 6.591740714986726, - 6.591748288837652, - 6.591755855743277, - 6.591763415709971, - 6.591770968744094, - 6.591778514852007, - 6.5917860540400595, - 6.591793586314598, - 6.591801111681961, - 6.591808630148484, - 6.591816141720495, - 6.591823646404315, - 6.591831144206261, - 6.591838635132644, - 6.59184611918977, - 6.591853596383936, - 6.591861066721439, - 6.591868530208562, - 6.59187598685159, - 6.591883436656797, - 6.591890879630455, - 6.5918983157788285, - 6.591905745108176, - 6.5919131676247495, - 6.591920583334799, - 6.591927992244564, - 6.591935394360282, - 6.591942789688181, - 6.591950178234487, - 6.591957560005419, - 6.591964935007189, - 6.591972303246006, - 6.59197966472807, - 6.591987019459578, - 6.591994367446722, - 6.592001708695682, - 6.5920090432126415, - 6.592016371003771, - 6.592023692075239, - 6.592031006433208, - 6.592038314083834, - 6.5920456150332685, - 6.592052909287656, - 6.592060196853135, - 6.5920674777358395, - 6.5920747519419, - 6.592082019477436, - 6.592089280348566, - 6.592096534561402, - 6.592103782122048, - 6.592111023036605, - 6.592118257311167, - 6.592125484951825, - 6.592132705964659, - 6.592139920355749, - 6.592147128131167, - 6.592154329296979, - 6.592161523859246, - 6.592168711824025, - 6.592175893197363, - 6.592183067985309, - 6.592190236193899, - 6.592197397829167, - 6.5922045528971385, - 6.592211701403839, - 6.592218843355283, - 6.592225978757484, - 6.592233107616446, - 6.592240229938168, - 6.592247345728649, - 6.592254454993874, - 6.592261557739828, - 6.59226865397249, - 6.592275743697832, - 6.592282826921822, - 6.5922899036504194, - 6.592296973889584, - 6.592304037645265, - 6.592311094923408, - 6.592318145729954, - 6.592325190070836, - 6.592332227951983, - 6.592339259379321, - 6.592346284358764, - 6.592353302896228, - 6.59236031499762, - 6.592367320668841, - 6.5923743199157885, - 6.592381312744354, - 6.592388299160421, - 6.592395279169871, - 6.592402252778579, - 6.592409219992416, - 6.592416180817245, - 6.592423135258923, - 6.592430083323307, - 6.592437025016242, - 6.592443960343572, - 6.592450889311134, - 6.592457811924761, - 6.5924647281902775, - 6.592471638113507, - 6.592478541700264, - 6.59248543895636, - 6.5924923298876, - 6.592499214499783, - 6.592506092798705, - 6.5925129647901555, - 6.592519830479917, - 6.592526689873768, - 6.592533542977485, - 6.5925403897968335, - 6.592547230337576, - 6.592554064605473, - 6.592560892606272, - 6.592567714345724, - 6.592574529829569, - 6.592581339063544, - 6.59258814205338, - 6.592594938804804, - 6.592601729323535, - 6.592608513615289, - 6.592615291685776, - 6.592622063540703, - 6.592628829185767, - 6.592635588626663, - 6.592642341869082, - 6.592649088918705, - 6.592655829781214, - 6.592662564462281, - 6.592669292967575, - 6.59267601530276, - 6.592682731473492, - 6.592689441485427, - 6.59269614534421, - 6.592702843055482, - 6.592709534624884, - 6.592716220058048, - 6.592722899360599, - 6.5927295725381585, - 6.592736239596345, - 6.5927429005407685, - 6.592749555377037, - 6.59275620411075, - 6.5927628467475055, - 6.592769483292893, - 6.5927761137525, - 6.592782738131905, - 6.592789356436684, - 6.592795968672409, - 6.592802574844644, - 6.59280917495895, - 6.592815769020882, - 6.592822357035991, - 6.59282893900982, - 6.592835514947911, - 6.592842084855797, - 6.592848648739008, - 6.592855206603071, - 6.592861758453503, - 6.592868304295819, - 6.592874844135529, - 6.592881377978139, - 6.592887905829145, - 6.592894427694044, - 6.592900943578325, - 6.592907453487472, - 6.592913957426963, - 6.5929204554022744, - 6.592926947418873, - 6.592933433482226, - 6.592939913597789, - 6.592946387771019, - 6.592952856007364, - 6.592959318312269, - 6.592965774691171, - 6.5929722251495075, - 6.592978669692706, - 6.592985108326191, - 6.592991541055381, - 6.592997967885691, - 6.593004388822531, - 6.593010803871304, - 6.59301721303741, - 6.593023616326243, - 6.593030013743194, - 6.593036405293645, - 6.59304279098298, - 6.5930491708165695, - 6.5930555447997845, - 6.59306191293799, - 6.593068275236546, - 6.593074631700808, - 6.593080982336126, - 6.5930873271478445, - 6.593093666141304, - 6.593099999321841, - 6.593106326694784, - 6.59311264826546, - 6.593118964039189, - 6.593125274021288, - 6.593131578217067, - 6.593137876631832, - 6.593144169270884, - 6.593150456139521, - 6.593156737243033, - 6.593163012586707, - 6.593169282175826, - 6.593175546015666, - 6.593181804111499, - 6.593188056468593, - 6.5931943030922096, - 6.5932005439876065, - 6.593206779160037, - 6.593213008614749, - 6.5932192323569865, - 6.593225450391986, - 6.593231662724983, - 6.593237869361205, - 6.593244070305877, - 6.593250265564218, - 6.593256455141442, - 6.593262639042758, - 6.593268817273373, - 6.593274989838485, - 6.59328115674329, - 6.593287317992978, - 6.593293473592737, - 6.593299623547745, - 6.593305767863181, - 6.593311906544215, - 6.5933180395960145, - 6.5933241670237415, - 6.593330288832552, - 6.5933364050276, - 6.593342515614033, - 6.593348620596994, - 6.5933547199816225, - 6.593360813773051, - 6.59336690197641, - 6.5933729845968205, - 6.593379061639406, - 6.593385133109279, - 6.59339119901155, - 6.593397259351326, - 6.593403314133706, - 6.593409363363788, - 6.593415407046662, - 6.593421445187416, - 6.593427477791131, - 6.593433504862885, - 6.593439526407751, - 6.593445542430799, - 6.593451552937089, - 6.593457557931682, - 6.593463557419633, - 6.59346955140599, - 6.593475539895798, - 6.593481522894098, - 6.593487500405926, - 6.593493472436314, - 6.593499438990287, - 6.593505400072868, - 6.593511355689072, - 6.593517305843915, - 6.593523250542404, - 6.5935291897895425, - 6.5935351235903275, - 6.593541051949756, - 6.593546974872815, - 6.593552892364493, - 6.593558804429769, - 6.593564711073619, - 6.593570612301016, - 6.593576508116924, - 6.593582398526308, - 6.593588283534123, - 6.593594163145326, - 6.593600037364864, - 6.593605906197681, - 6.593611769648716, - 6.593617627722905, - 6.593623480425179, - 6.593629327760463, - 6.59363516973368, - 6.593641006349746, - 6.593646837613574, - 6.593652663530072, - 6.593658484104144, - 6.593664299340689, - 6.5936701092445995, - 6.593675913820768, - 6.593681713074078, - 6.593687507009414, - 6.59369329563165, - 6.593699078945658, - 6.593704856956307, - 6.593710629668459, - 6.5937163970869745, - 6.593722159216706, - 6.593727916062505, - 6.593733667629215, - 6.5937394139216785, - 6.593745154944732, - 6.593750890703206, - 6.593756621201931, - 6.593762346445728, - 6.5937680664394165, - 6.593773781187811, - 6.593779490695721, - 6.5937851949679525, - 6.593790894009306, - 6.5937965878245794, - 6.593802276418565, - 6.593807959796049, - 6.5938136379618175, - 6.593819310920647, - 6.593824978677315, - 6.593830641236591, - 6.5938362986032395, - 6.593841950782024, - 6.593847597777701, - 6.593853239595025, - 6.593858876238743, - 6.593864507713599, - 6.593870134024334, - 6.5938757551756835, - 6.593881371172377, - 6.593886982019143, - 6.5938925877207035, - 6.593898188281778, - 6.59390378370708, - 6.593909374001316, - 6.593914959169195, - 6.593920539215416, - 6.5939261141446766, - 6.593931683961668, - 6.59393724867108, - 6.5939428082775935, - 6.59394836278589, - 6.593953912200645, - 6.5939594565265285, - 6.593964995768206, - 6.593970529930342, - 6.593976059017593, - 6.593981583034613, - 6.593987101986051, - 6.593992615876553, - 6.59399812471076, - 6.594003628493308, - 6.59400912722883, - 6.5940146209219535, - 6.594020109577302, - 6.594025593199498, - 6.594031071793154, - 6.594036545362882, - 6.594042013913289, - 6.594047477448979, - 6.594052935974548, - 6.5940583894945926, - 6.594063838013702, - 6.594069281536462, - 6.5940747200674545, - 6.594080153611257, - 6.594085582172443, - 6.594091005755582, - 6.594096424365239, - 6.594101838005973, - 6.594107246682342, - 6.594112650398898, - 6.5941180491601905, - 6.594123442970761, - 6.594128831835151, - 6.594134215757896, - 6.594139594743527, - 6.594144968796572, - 6.594150337921554, - 6.594155702122992, - 6.594161061405401, - 6.594166415773293, - 6.594171765231173, - 6.594177109783543, - 6.5941824494349035, - 6.594187784189747, - 6.594193114052565, - 6.594198439027843, - 6.594203759120062, - 6.594209074333701, - 6.594214384673235, - 6.594219690143131, - 6.594224990747855, - 6.59423028649187, - 6.594235577379631, - 6.594240863415592, - 6.594246144604203, - 6.594251420949909, - 6.59425669245715, - 6.594261959130365, - 6.594267220973984, - 6.594272477992438, - 6.594277730190151, - 6.5942829775715435, - 6.594288220141033, - 6.59429345790303, - 6.594298690861946, - 6.594303919022183, - 6.594309142388142, - 6.59431436096422, - 6.594319574754809, - 6.594324783764296, - 6.594329987997068, - 6.594335187457505, - 6.594340382149981, - 6.594345572078869, - 6.594350757248539, - 6.594355937663354, - 6.594361113327674, - 6.594366284245855, - 6.59437145042225, - 6.594376611861208, - 6.5943817685670725, - 6.594386920544183, - 6.594392067796877, - 6.594397210329485, - 6.594402348146337, - 6.594407481251758, - 6.5944126096500675, - 6.594417733345582, - 6.594422852342613, - 6.594427966645471, - 6.594433076258459, - 6.594438181185878, - 6.594443281432026, - 6.5944483770011955, - 6.594453467897674, - 6.5944585541257466, - 6.594463635689696, - 6.594468712593796, - 6.594473784842323, - 6.594478852439546, - 6.594483915389728, - 6.594488973697131, - 6.5944940273660135, - 6.594499076400629, - 6.594504120805226, - 6.594509160584051, - 6.594514195741347, - 6.594519226281351, - 6.594524252208297, - 6.5945292735264145, - 6.594534290239931, - 6.594539302353069, - 6.594544309870046, - 6.5945493127950785, - 6.594554311132376, - 6.594559304886146, - 6.594564294060591, - 6.594569278659911, - 6.594574258688301, - 6.594579234149953, - 6.594584205049054, - 6.5945891713897895, - 6.594594133176337, - 6.594599090412875, - 6.594604043103575, - 6.594608991252606, - 6.594613934864133, - 6.5946188739423155, - 6.594623808491312, - 6.594628738515275, - 6.594633664018354, - 6.594638585004696, - 6.5946435014784415, - 6.594648413443729, - 6.594653320904693, - 6.594658223865464, - 6.594663122330169, - 6.594668016302929, - 6.594672905787866, - 6.594677790789094, - 6.594682671310724, - 6.594687547356864, - 6.594692418931619, - 6.594697286039089, - 6.594702148683371, - 6.594707006868558, - 6.594711860598737, - 6.5947167098779955, - 6.594721554710413, - 6.59472639510007, - 6.594731231051037, - 6.594736062567387, - 6.594740889653186, - 6.594745712312496, - 6.594750530549377, - 6.5947553443678855, - 6.5947601537720715, - 6.594764958765984, - 6.594769759353665, - 6.594774555539157, - 6.594779347326496, - 6.594784134719718, - 6.594788917722848, - 6.594793696339916, - 6.594798470574941, - 6.5948032404319425, - 6.5948080059149365, - 6.594812767027932, - 6.594817523774936, - 6.594822276159953, - 6.594827024186984, - 6.594831767860024, - 6.594836507183067, - 6.594841242160101, - 6.5948459727951105, - 6.5948506990920785, - 6.594855421054983, - 6.594860138687798, - 6.594864851994493, - 6.5948695609790375, - 6.594874265645394, - 6.5948789659975215, - 6.5948836620393765, - 6.594888353774913, - 6.594893041208078, - 6.594897724342818, - 6.594902403183075, - 6.594907077732785, - 6.594911747995885, - 6.594916413976305, - 6.594921075677972, - 6.59492573310481, - 6.594930386260738, - 6.594935035149673, - 6.5949396797755275, - 6.594944320142212, - 6.594948956253632, - 6.594953588113689, - 6.594958215726281, - 6.594962839095305, - 6.594967458224652, - 6.594972073118207, - 6.594976683779857, - 6.5949812902134815, - 6.594985892422958, - 6.594990490412162, - 6.59499508418496, - 6.594999673745221, - 6.5950042590968065, - 6.595008840243577, - 6.595013417189387, - 6.59501798993809, - 6.595022558493535, - 6.595027122859567, - 6.595031683040027, - 6.595036239038754, - 6.595040790859581, - 6.595045338506343, - 6.595049881982864, - 6.595054421292969, - 6.59505895644048, - 6.595063487429212, - 6.595068014262981, - 6.595072536945596, - 6.595077055480863, - 6.595081569872587, - 6.595086080124566, - 6.5950905862405955, - 6.59509508822447, - 6.595099586079979, - 6.595104079810906, - 6.595108569421036, - 6.595113054914146, - 6.595117536294012, - 6.5951220135644055, - 6.595126486729095, - 6.595130955791845, - 6.595135420756418, - 6.595139881626572, - 6.595144338406061, - 6.595148791098636, - 6.595153239708046, - 6.595157684238034, - 6.595162124692342, - 6.595166561074707, - 6.595170993388861, - 6.5951754216385385, - 6.595179845827463, - 6.595184265959361, - 6.595188682037952, - 6.595193094066952, - 6.595197502050075, - 6.595201905991032, - 6.595206305893528, - 6.5952107017612684, - 6.595215093597952, - 6.595219481407275, - 6.5952238651929305, - 6.595228244958609, - 6.595232620707996, - 6.595236992444775, - 6.5952413601726265, - 6.595245723895225, - 6.595250083616244, - 6.595254439339353, - 6.595258791068218, - 6.595263138806503, - 6.595267482557866, - 6.595271822325964, - 6.595276158114448, - 6.595280489926969, - 6.595284817767173, - 6.595289141638702, - 6.595293461545195, - 6.595297777490289, - 6.595302089477616, - 6.5953063975108055, - 6.595310701593483, - 6.595315001729272, - 6.595319297921791, - 6.595323590174656, - 6.5953278784914815, - 6.5953321628758745, - 6.595336443331442, - 6.595340719861788, - 6.595344992470511, - 6.595349261161206, - 6.595353525937467, - 6.595357786802884, - 6.5953620437610425, - 6.595366296815526, - 6.595370545969914, - 6.5953747912277825, - 6.595379032592705, - 6.59538327006825, - 6.595387503657988, - 6.595391733365479, - 6.595395959194284, - 6.595400181147959, - 6.595404399230058, - 6.595408613444132, - 6.595412823793727, - 6.595417030282388, - 6.595421232913655, - 6.595425431691064, - 6.5954296266181505, - 6.595433817698445, - 6.595438004935476, - 6.595442188332766, - 6.595446367893836, - 6.595450543622206, - 6.595454715521389, - 6.595458883594897, - 6.595463047846237, - 6.595467208278915, - 6.595471364896433, - 6.5954755177022895, - 6.59547966669998, - 6.595483811892994, - 6.595487953284824, - 6.595492090878954, - 6.595496224678867, - 6.595500354688042, - 6.5955044809099554, - 6.59550860334808, - 6.595512722005886, - 6.595516836886839, - 6.595520947994403, - 6.595525055332039, - 6.595529158903203, - 6.595533258711349, - 6.595537354759928, - 6.595541447052388, - 6.595545535592172, - 6.595549620382723, - 6.595553701427478, - 6.595557778729873, - 6.595561852293338, - 6.5955659221213025, - 6.595569988217192, - 6.595574050584429, - 6.595578109226434, - 6.59558216414662, - 6.595586215348403, - 6.595590262835191, - 6.595594306610391, - 6.5955983466774075, - 6.5956023830396395, - 6.595606415700485, - 6.595610444663338, - 6.59561446993159, - 6.5956184915086284, - 6.595622509397839, - 6.595626523602602, - 6.595630534126299, - 6.595634540972303, - 6.595638544143987, - 6.595642543644721, - 6.595646539477872, - 6.5956505316468, - 6.595654520154868, - 6.595658505005432, - 6.595662486201848, - 6.595666463747463, - 6.595670437645627, - 6.595674407899686, - 6.595678374512981, - 6.595682337488849, - 6.595686296830627, - 6.595690252541647, - 6.5956942046252385, - 6.595698153084728, - 6.595702097923438, - 6.595706039144691, - 6.5957099767518015, - 6.595713910748086, - 6.595717841136855, - 6.595721767921415, - 6.595725691105073, - 6.595729610691129, - 6.595733526682886, - 6.595737439083636, - 6.595741347896673, - 6.595745253125289, - 6.595749154772768, - 6.5957530528423955, - 6.595756947337453, - 6.595760838261217, - 6.595764725616964, - 6.5957686094079655, - 6.595772489637489, - 6.595776366308801, - 6.5957802394251654, - 6.595784108989841, - 6.595787975006086, - 6.595791837477154, - 6.595795696406294, - 6.595799551796756, - 6.595803403651785, - 6.595807251974621, - 6.595811096768507, - 6.595814938036675, - 6.5958187757823605, - 6.595822610008794, - 6.5958264407192, - 6.595830267916806, - 6.59583409160483, - 6.595837911786493, - 6.595841728465009, - 6.595845541643591, - 6.595849351325448, - 6.595853157513787, - 6.595856960211812, - 6.595860759422721, - 6.595864555149715, - 6.595868347395989, - 6.595872136164732, - 6.595875921459134, - 6.595879703282382, - 6.5958834816376575, - 6.595887256528143, - 6.5958910279570135, - 6.595894795927444, - 6.595898560442608, - 6.595902321505671, - 6.595906079119798, - 6.595909833288155, - 6.5959135840139, - 6.59591733130019, - 6.59592107515018, - 6.59592481556702, - 6.5959285525538585, - 6.595932286113841, - 6.59593601625011, - 6.595939742965805, - 6.595943466264062, - 6.595947186148016, - 6.595950902620797, - 6.5959546156855335, - 6.595958325345351, - 6.595962031603372, - 6.595965734462714, - 6.595969433926498, - 6.595973129997832, - 6.595976822679831, - 6.595980511975602, - 6.59598419788825, - 6.595987880420878, - 6.595991559576584, - 6.595995235358465, - 6.5959989077696175, - 6.59600257681313, - 6.596006242492091, - 6.596009904809586, - 6.596013563768698, - 6.596017219372505, - 6.596020871624085, - 6.5960245205265124, - 6.596028166082858, - 6.596031808296191, - 6.596035447169575, - 6.596039082706074, - 6.596042714908749, - 6.596046343780655, - 6.596049969324848, - 6.596053591544378, - 6.596057210442296, - 6.596060826021645, - 6.596064438285471, - 6.596068047236814, - 6.59607165287871, - 6.596075255214195, - 6.5960788542463, - 6.596082449978055, - 6.596086042412486, - 6.5960896315526165, - 6.596093217401469, - 6.59609679996206, - 6.596100379237407, - 6.596103955230519, - 6.596107527944408, - 6.596111097382082, - 6.596114663546543, - 6.596118226440795, - 6.596121786067835, - 6.59612534243066, - 6.596128895532263, - 6.596132445375634, - 6.596135991963761, - 6.59613953529963, - 6.596143075386223, - 6.596146612226519, - 6.596150145823497, - 6.596153676180129, - 6.596157203299386, - 6.596160727184238, - 6.596164247837651, - 6.596167765262587, - 6.596171279462008, - 6.596174790438871, - 6.596178298196132, - 6.5961818027367425, - 6.596185304063653, - 6.596188802179809, - 6.596192297088157, - 6.596195788791637, - 6.596199277293189, - 6.596202762595747, - 6.596206244702247, - 6.59620972361562, - 6.596213199338791, - 6.596216671874689, - 6.596220141226235, - 6.5962236073963485, - 6.596227070387947, - 6.596230530203947, - 6.596233986847259, - 6.596237440320793, - 6.596240890627455, - 6.59624433777015, - 6.59624778175178, - 6.5962512225752405, - 6.5962546602434315, - 6.596258094759245, - 6.59626152612557, - 6.596264954345297, - 6.596268379421311, - 6.596271801356495, - 6.596275220153727, - 6.596278635815887, - 6.596282048345849, - 6.596285457746485, - 6.596288864020665, - 6.596292267171256, - 6.5962956672011215, - 6.596299064113125, - 6.596302457910124, - 6.596305848594976, - 6.5963092361705336, - 6.596312620639649, - 6.596316002005171, - 6.596319380269946, - 6.596322755436816, - 6.596326127508624, - 6.596329496488205, - 6.5963328623783966, - 6.596336225182032, - 6.596339584901942, - 6.596342941540954, - 6.59634629510189, - 6.596349645587577, - 6.596352993000834, - 6.596356337344477, - 6.596359678621323, - 6.596363016834184, - 6.596366351985868, - 6.596369684079183, - 6.596373013116932, - 6.59637633910192, - 6.596379662036945, - 6.596382981924803, - 6.596386298768289, - 6.596389612570194, - 6.596392923333309, - 6.596396231060419, - 6.596399535754308, - 6.5964028374177595, - 6.59640613605355, - 6.5964094316644575, - 6.596412724253255, - 6.596416013822714, - 6.5964193003756035, - 6.5964225839146895, - 6.596425864442736, - 6.596429141962504, - 6.596432416476752, - 6.596435687988235, - 6.596438956499708, - 6.5964422220139225, - 6.596445484533626, - 6.596448744061565, - 6.596452000600482, - 6.596455254153119, - 6.596458504722214, - 6.596461752310504, - 6.59646499692072, - 6.5964682385555955, - 6.596471477217857, - 6.596474712910233, - 6.596477945635444, - 6.596481175396212, - 6.596484402195255, - 6.59648762603529, - 6.59649084691903, - 6.596494064849186, - 6.5964972798284665, - 6.596500491859577, - 6.596503700945221, - 6.5965069070881, - 6.596510110290912, - 6.596513310556354, - 6.596516507887118, - 6.596519702285898, - 6.596522893755379, - 6.596526082298251, - 6.596529267917194, - 6.596532450614892, - 6.596535630394023, - 6.596538807257263, - 6.596541981207285, - 6.5965451522467635, - 6.596548320378365, - 6.596551485604757, - 6.596554647928603, - 6.596557807352563, - 6.596560963879299, - 6.596564117511467, - 6.596567268251722, - 6.596570416102715, - 6.596573561067095, - 6.59657670314751, - 6.596579842346605, - 6.596582978667022, - 6.596586112111399, - 6.596589242682375, - 6.596592370382584, - 6.59659549521466, - 6.596598617181232, - 6.596601736284928, - 6.596604852528373, - 6.596607965914191, - 6.596611076445001, - 6.596614184123421, - 6.596617288952069, - 6.596620390933555, - 6.596623490070491, - 6.596626586365487, - 6.596629679821148, - 6.596632770440078, - 6.596635858224877, - 6.596638943178146, - 6.59664202530248, - 6.596645104600475, - 6.59664818107472, - 6.596651254727806, - 6.59665432556232, - 6.596657393580847, - 6.596660458785968, - 6.596663521180264, - 6.596666580766311, - 6.596669637546687, - 6.596672691523964, - 6.596675742700712, - 6.596678791079498, - 6.5966818366628885, - 6.596684879453447, - 6.596687919453735, - 6.596690956666311, - 6.596693991093731, - 6.596697022738549, - 6.596700051603317, - 6.596703077690584, - 6.596706101002899, - 6.596709121542803, - 6.596712139312841, - 6.596715154315552, - 6.596718166553475, - 6.596721176029143, - 6.596724182745091, - 6.596727186703848, - 6.596730187907945, - 6.596733186359906, - 6.596736182062255, - 6.596739175017513, - 6.5967421652282, - 6.596745152696832, - 6.596748137425925, - 6.5967511194179895, - 6.596754098675535, - 6.596757075201071, - 6.596760048997102, - 6.59676302006613, - 6.596765988410658, - 6.596768954033182, - 6.596771916936199, - 6.596774877122204, - 6.596777834593687, - 6.596780789353137, - 6.596783741403042, - 6.596786690745886, - 6.596789637384152, - 6.596792581320319, - 6.5967955225568655, - 6.596798461096268, - 6.596801396940999, - 6.596804330093531, - 6.5968072605563295, - 6.5968101883318635, - 6.596813113422597, - 6.596816035830991, - 6.596818955559507, - 6.5968218726106, - 6.596824786986726, - 6.5968276986903405, - 6.5968306077238905, - 6.596833514089827, - 6.596836417790596, - 6.59683931882864, - 6.596842217206403, - 6.596845112926322, - 6.596848005990836, - 6.596850896402379, - 6.596853784163385, - 6.596856669276284, - 6.5968595517435045, - 6.596862431567471, - 6.596865308750609, - 6.59686818329534, - 6.596871055204085, - 6.596873924479259, - 6.596876791123276, - 6.596879655138552, - 6.596882516527495, - 6.596885375292515, - 6.596888231436017, - 6.596891084960405, - 6.596893935868082, - 6.596896784161448, - 6.5968996298428975, - 6.5969024729148265, - 6.59690531337963, - 6.596908151239697, - 6.596910986497417, - 6.5969138191551755, - 6.596916649215358, - 6.596919476680346, - 6.596922301552518, - 6.596925123834253, - 6.596927943527925, - 6.596930760635909, - 6.596933575160576, - 6.596936387104294, - 6.59693919646943, - 6.5969420032583495, - 6.596944807473413, - 6.596947609116982, - 6.596950408191415, - 6.5969532046990675, - 6.596955998642294, - 6.596958790023444, - 6.596961578844868, - 6.5969643651089145, - 6.596967148817927, - 6.596969929974248, - 6.596972708580221, - 6.596975484638183, - 6.596978258150472, - 6.59698102911942, - 6.59698379754736, - 6.596986563436623, - 6.5969893267895365, - 6.5969920876084265, - 6.596994845895617, - 6.596997601653428, - 6.597000354884181, - 6.5970031055901925, - 6.597005853773778, - 6.59700859943725, - 6.5970113425829195, - 6.597014083213097, - 6.597016821330087, - 6.597019556936195, - 6.597022290033723, - 6.597025020624973, - 6.597027748712242, - 6.597030474297826, - 6.597033197384019, - 6.597035917973114, - 6.597038636067401, - 6.597041351669167, - 6.597044064780696, - 6.597046775404275, - 6.5970494835421825, - 6.597052189196699, - 6.597054892370103, - 6.597057593064668, - 6.597060291282668, - 6.597062987026374, - 6.597065680298055, - 6.597068371099977, - 6.597071059434405, - 6.597073745303603, - 6.597076428709831, - 6.597079109655347, - 6.597081788142408, - 6.597084464173268, - 6.59708713775018, - 6.597089808875394, - 6.597092477551158, - 6.597095143779718, - 6.597097807563318, - 6.597100468904202, - 6.5971031278046075, - 6.597105784266773, - 6.597108438292936, - 6.5971110898853285, - 6.597113739046184, - 6.5971163857777295, - 6.5971190300821965, - 6.5971216719618075, - 6.597124311418788, - 6.597126948455358, - 6.5971295830737375, - 6.597132215276145, - 6.5971348450647955, - 6.597137472441901, - 6.5971400974096746, - 6.597142719970326, - 6.597145340126062, - 6.597147957879087, - 6.597150573231605, - 6.5971531861858175, - 6.597155796743923, - 6.597158404908121, - 6.597161010680604, - 6.597163614063566, - 6.5971662150591985, - 6.597168813669691, - 6.59717140989723, - 6.597174003744001, - 6.597176595212188, - 6.597179184303972, - 6.597181771021531, - 6.597184355367043, - 6.597186937342683, - 6.597189516950624, - 6.597192094193038, - 6.597194669072094, - 6.597197241589957, - 6.597199811748796, - 6.597202379550772, - 6.5972049449980465, - 6.59720750809278, - 6.597210068837128, - 6.597212627233246, - 6.597215183283288, - 6.597217736989406, - 6.597220288353749, - 6.597222837378463, - 6.597225384065695, - 6.597227928417588, - 6.597230470436284, - 6.597233010123922, - 6.597235547482641, - 6.5972380825145756, - 6.597240615221858, - 6.597243145606622, - 6.5972456736709955, - 6.597248199417109, - 6.597250722847086, - 6.597253243963051, - 6.597255762767126, - 6.597258279261432, - 6.597260793448086, - 6.5972633053292045, - 6.597265814906901, - 6.59726832218329, - 6.5972708271604805, - 6.597273329840579, - 6.597275830225695, - 6.597278328317931, - 6.59728082411939, - 6.597283317632173, - 6.59728580885838, - 6.597288297800105, - 6.597290784459444, - 6.5972932688384915, - 6.597295750939336, - 6.5972982307640695, - 6.597300708314776, - 6.597303183593543, - 6.597305656602455, - 6.597308127343591, - 6.597310595819032, - 6.597313062030855, - 6.597315525981135, - 6.597317987671947, - 6.597320447105363, - 6.597322904283453, - 6.597325359208285, - 6.597327811881925, - 6.597330262306437, - 6.597332710483885, - 6.597335156416328, - 6.597337600105825, - 6.597340041554434, - 6.597342480764208, - 6.597344917737202, - 6.597347352475466, - 6.5973497849810485, - 6.597352215255999, - 6.597354643302361, - 6.59735706912218, - 6.597359492717496, - 6.59736191409035, - 6.597364333242781, - 6.597366750176822, - 6.597369164894511, - 6.597371577397877, - 6.597373987688953, - 6.597376395769766, - 6.5973788016423445, - 6.597381205308712, - 6.597383606770892, - 6.5973860060309075, - 6.5973884030907755, - 6.597390797952514, - 6.597393190618139, - 6.597395581089666, - 6.597397969369104, - 6.597400355458465, - 6.597402739359758, - 6.5974051210749876, - 6.59740750060616, - 6.597409877955277, - 6.59741225312434, - 6.597414626115348, - 6.597416996930298, - 6.597419365571187, - 6.597421732040007, - 6.59742409633875, - 6.597426458469406, - 6.597428818433964, - 6.59743117623441, - 6.597433531872728, - 6.5974358853509, - 6.597438236670908, - 6.597440585834732, - 6.597442932844347, - 6.5974452777017305, - 6.597447620408855, - 6.597449960967691, - 6.597452299380213, - 6.5974546356483845, - 6.597456969774173, - 6.597459301759545, - 6.597461631606461, - 6.597463959316884, - 6.5974662848927705, - 6.597468608336081, - 6.59747092964877, - 6.59747324883279, - 6.597475565890094, - 6.597477880822633, - 6.597480193632354, - 6.597482504321204, - 6.597484812891128, - 6.59748711934407, - 6.597489423681969, - 6.5974917259067665, - 6.5974940260204, - 6.597496324024805, - 6.597498619921916, - 6.597500913713665, - 6.597503205401983, - 6.597505494988799, - 6.597507782476041, - 6.597510067865632, - 6.597512351159497, - 6.597514632359558, - 6.597516911467734, - 6.597519188485943, - 6.597521463416104, - 6.59752373626013, - 6.597526007019933, - 6.597528275697427, - 6.59753054229452, - 6.597532806813119, - 6.597535069255131, - 6.597537329622461, - 6.597539587917009, - 6.597541844140677, - 6.597544098295366, - 6.59754635038297, - 6.5975486004053865, - 6.5975508483645084, - 6.597553094262229, - 6.597555338100436, - 6.5975575798810215, - 6.59755981960587, - 6.597562057276868, - 6.597564292895898, - 6.597566526464842, - 6.59756875798558, - 6.5975709874599895, - 6.597573214889947, - 6.597575440277329, - 6.5975776636240075, - 6.597579884931854, - 6.597582104202738, - 6.597584321438527, - 6.597586536641087, - 6.597588749812283, - 6.597590960953978, - 6.597593170068034, - 6.597595377156309, - 6.59759758222066, - 6.597599785262943, - 6.597601986285015, - 6.597604185288725, - 6.597606382275927, - 6.597608577248469, - 6.597610770208197, - 6.597612961156959, - 6.597615150096598, - 6.5976173370289555, - 6.597619521955873, - 6.597621704879191, - 6.597623885800744, - 6.597626064722371, - 6.597628241645902, - 6.597630416573172, - 6.59763258950601, - 6.5976347604462475, - 6.597636929395709, - 6.597639096356223, - 6.597641261329609, - 6.597643424317693, - 6.597645585322294, - 6.59764774434523, - 6.59764990138832, - 6.59765205645338, - 6.597654209542221, - 6.597656360656659, - 6.5976585097985, - 6.597660656969558, - 6.5976628021716355, - 6.5976649454065415, - 6.597667086676078, - 6.597669225982048, - 6.597671363326253, - 6.597673498710489, - 6.597675632136556, - 6.597677763606249, - 6.597679893121363, - 6.597682020683688, - 6.597684146295017, - 6.597686269957138, - 6.597688391671838, - 6.597690511440903, - 6.597692629266119, - 6.5976947451492665, - 6.597696859092126, - 6.597698971096478, - 6.597701081164101, - 6.5977031892967695, - 6.597705295496258, - 6.597707399764339, - 6.597709502102785, - 6.597711602513365, - 6.597713700997845, - 6.597715797557994, - 6.5977178921955755, - 6.5977199849123505, - 6.597722075710084, - 6.597724164590534, - 6.597726251555457, - 6.597728336606613, - 6.597730419745755, - 6.597732500974637, - 6.597734580295009, - 6.597736657708624, - 6.597738733217228, - 6.59774080682257, - 6.597742878526392, - 6.597744948330441, - 6.597747016236458, - 6.5977490822461835, - 6.5977511463613565, - 6.597753208583715, - 6.597755268914993, - 6.597757327356925, - 6.597759383911245, - 6.597761438579683, - 6.597763491363969, - 6.59776554226583, - 6.597767591286993, - 6.597769638429182, - 6.597771683694119, - 6.597773727083527, - 6.597775768599125, - 6.597777808242633, - 6.597779846015766, - 6.597781881920239, - 6.597783915957768, - 6.5977859481300625, - 6.597787978438833, - 6.5977900068857895, - 6.597792033472639, - 6.597794058201087, - 6.597796081072837, - 6.597798102089594, - 6.597800121253057, - 6.597802138564925, - 6.597804154026897, - 6.59780616764067, - 6.597808179407938, - 6.597810189330394, - 6.597812197409731, - 6.597814203647637, - 6.597816208045802, - 6.597818210605913, - 6.597820211329656, - 6.597822210218713, - 6.597824207274769, - 6.597826202499503, - 6.5978281958945955, - 6.597830187461723, - 6.597832177202563, - 6.5978341651187895, - 6.597836151212077, - 6.597838135484095, - 6.597840117936515, - 6.5978420985710065, - 6.597844077389235, - 6.597846054392865, - 6.597848029583563, - 6.59785000296299, - 6.597851974532809, - 6.597853944294676, - 6.597855912250251, - 6.597857878401191, - 6.59785984274915, - 6.597861805295781, - 6.597863766042735, - 6.597865724991665, - 6.597867682144217, - 6.597869637502041, - 6.597871591066779, - 6.59787354284008, - 6.597875492823585, - 6.597877441018933, - 6.597879387427765, - 6.5978813320517204, - 6.597883274892435, - 6.597885215951546, - 6.597887155230684, - 6.597889092731483, - 6.597891028455573, - 6.597892962404584, - 6.597894894580144, - 6.597896824983878, - 6.597898753617412, - 6.597900680482368, - 6.59790260558037, - 6.597904528913037, - 6.597906450481987, - 6.597908370288838, - 6.597910288335207, - 6.597912204622706, - 6.59791411915295, - 6.59791603192755, - 6.597917942948116, - 6.597919852216254, - 6.597921759733574, - 6.597923665501681, - 6.597925569522179, - 6.59792747179667, - 6.597929372326755, - 6.597931271114034, - 6.597933168160106, - 6.597935063466566, - 6.59793695703501, - 6.597938848867033, - 6.597940738964225, - 6.597942627328179, - 6.597944513960483, - 6.597946398862725, - 6.5979482820364925, - 6.59795016348337, - 6.597952043204941, - 6.597953921202787, - 6.59795579747849, - 6.597957672033629, - 6.597959544869781, - 6.597961415988522, - 6.597963285391427, - 6.597965153080071, - 6.597967019056024, - 6.597968883320858, - 6.597970745876141, - 6.5979726067234425, - 6.5979744658643265, - 6.59797632330036, - 6.597978179033104, - 6.597980033064122, - 6.597981885394974, - 6.597983736027219, - 6.597985584962416, - 6.597987432202118, - 6.5979892777478835, - 6.597991121601264, - 6.5979929637638115, - 6.597994804237076, - 6.597996643022608, - 6.597998480121954, - 6.598000315536661, - 6.598002149268273, - 6.598003981318334, - 6.598005811688386, - 6.59800764037997, - 6.598009467394625, - 6.598011292733887, - 6.5980131163992946, - 6.5980149383923825, - 6.598016758714682, - 6.598018577367728, - 6.59802039435305, - 6.598022209672176, - 6.598024023326637, - 6.598025835317958, - 6.5980276456476625, - 6.5980294543172775, - 6.598031261328322, - 6.598033066682319, - 6.598034870380787, - 6.598036672425246, - 6.59803847281721, - 6.5980402715581965, - 6.598042068649717, - 6.598043864093288, - 6.598045657890418, - 6.598047450042617, - 6.5980492405513935, - 6.5980510294182535, - 6.598052816644705, - 6.59805460223225, - 6.598056386182393, - 6.598058168496636, - 6.598059949176478, - 6.598061728223417, - 6.598063505638952, - 6.598065281424578, - 6.59806705558179, - 6.598068828112082, - 6.598070599016944, - 6.598072368297869, - 6.598074135956344, - 6.598075901993858, - 6.598077666411896, - 6.598079429211945, - 6.598081190395488, - 6.598082949964008, - 6.598084707918983, - 6.598086464261896, - 6.598088218994224, - 6.598089972117444, - 6.598091723633033, - 6.598093473542463, - 6.598095221847206, - 6.598096968548737, - 6.5980987136485245, - 6.598100457148037, - 6.598102199048742, - 6.5981039393521055, - 6.598105678059594, - 6.5981074151726675, - 6.598109150692792, - 6.598110884621425, - 6.5981126169600275, - 6.598114347710057, - 6.598116076872971, - 6.598117804450225, - 6.598119530443273, - 6.598121254853566, - 6.598122977682557, - 6.598124698931695, - 6.59812641860243, - 6.598128136696209, - 6.598129853214478, - 6.598131568158682, - 6.598133281530264, - 6.5981349933306666, - 6.598136703561329, - 6.598138412223693, - 6.598140119319197, - 6.598141824849276, - 6.598143528815365, - 6.5981452312189, - 6.598146932061312, - 6.598148631344034, - 6.598150329068496, - 6.598152025236128, - 6.598153719848355, - 6.598155412906606, - 6.598157104412304, - 6.598158794366874, - 6.598160482771739, - 6.598162169628318, - 6.598163854938031, - 6.598165538702299, - 6.598167220922536, - 6.59816890160016, - 6.598170580736585, - 6.598172258333224, - 6.5981739343914905, - 6.598175608912793, - 6.598177281898542, - 6.598178953350145, - 6.598180623269011, - 6.598182291656542, - 6.598183958514145, - 6.5981856238432215, - 6.598187287645175, - 6.598188949921403, - 6.598190610673308, - 6.5981922699022855, - 6.598193927609732, - 6.598195583797044, - 6.598197238465615, - 6.598198891616837, - 6.598200543252103, - 6.598202193372802, - 6.598203841980323, - 6.598205489076053, - 6.598207134661379, - 6.598208778737686, - 6.598210421306358, - 6.598212062368777, - 6.598213701926325, - 6.598215339980382, - 6.598216976532326, - 6.598218611583534, - 6.5982202451353835, - 6.598221877189249, - 6.598223507746503, - 6.598225136808519, - 6.598226764376669, - 6.598228390452322, - 6.598230015036846, - 6.598231638131609, - 6.598233259737977, - 6.598234879857316, - 6.598236498490986, - 6.5982381156403545, - 6.59823973130678, - 6.598241345491622, - 6.59824295819624, - 6.59824456942199, - 6.598246179170229, - 6.598247787442313, - 6.598249394239594, - 6.598250999563424, - 6.5982526034151565, - 6.59825420579614, - 6.598255806707724, - 6.598257406151254, - 6.598259004128078, - 6.598260600639541, - 6.598262195686986, - 6.598263789271756, - 6.5982653813951915, - 6.598266972058633, - 6.59826856126342, - 6.598270149010889, - 6.598271735302377, - 6.598273320139219, - 6.598274903522749, - 6.5982764854543, - 6.598278065935204, - 6.598279644966789, - 6.598281222550386, - 6.598282798687323, - 6.598284373378926, - 6.598285946626519, - 6.5982875184314285, - 6.598289088794976, - 6.598290657718484, - 6.598292225203271, - 6.59829379125066, - 6.598295355861966, - 6.598296919038508, - 6.5982984807816, - 6.598300041092558, - 6.598301599972694, - 6.598303157423321, - 6.598304713445748, - 6.598306268041289, - 6.598307821211248, - 6.598309372956933, - 6.5983109232796515, - 6.598312472180708, - 6.598314019661406, - 6.5983155657230474, - 6.598317110366934, - 6.598318653594367, - 6.598320195406643, - 6.5983217358050625, - 6.5983232747909195, - 6.59832481236551, - 6.598326348530129, - 6.5983278832860695, - 6.598329416634622, - 6.598330948577078, - 6.598332479114727, - 6.598334008248856, - 6.598335535980754, - 6.598337062311706, - 6.598338587242996, - 6.598340110775908, - 6.598341632911724, - 6.598343153651726, - 6.598344672997194, - 6.598346190949405, - 6.598347707509639, - 6.59834922267917, - 6.598350736459275, - 6.598352248851229, - 6.598353759856303, - 6.5983552694757694, - 6.598356777710899, - 6.598358284562961, - 6.598359790033225, - 6.598361294122956, - 6.598362796833421, - 6.598364298165885, - 6.598365798121611, - 6.598367296701862, - 6.598368793907898, - 6.5983702897409815, - 6.598371784202371, - 6.598373277293323, - 6.598374769015095, - 6.598376259368942, - 6.59837774835612, - 6.598379235977881, - 6.5983807222354764, - 6.598382207130159, - 6.598383690663177, - 6.59838517283578, - 6.598386653649215, - 6.598388133104729, - 6.598389611203566, - 6.598391087946972, - 6.598392563336188, - 6.598394037372456, - 6.598395510057018, - 6.5983969813911125, - 6.598398451375979, - 6.598399920012854, - 6.598401387302974, - 6.598402853247572, - 6.598404317847884, - 6.598405781105143, - 6.598407243020579, - 6.598408703595423, - 6.598410162830905, - 6.598411620728253, - 6.5984130772886935, - 6.598414532513453, - 6.598415986403757, - 6.598417438960827, - 6.598418890185887, - 6.5984203400801595, - 6.598421788644862, - 6.598423235881217, - 6.598424681790441, - 6.59842612637375, - 6.598427569632361, - 6.5984290115674895, - 6.598430452180348, - 6.598431891472149, - 6.598433329444106, - 6.5984347660974265, - 6.598436201433321, - 6.598437635452997, - 6.598439068157662, - 6.598440499548522, - 6.598441929626782, - 6.598443358393645, - 6.5984447858503135, - 6.59844621199799, - 6.598447636837873, - 6.598449060371164, - 6.598450482599059, - 6.598451903522757, - 6.598453323143453, - 6.598454741462342, - 6.598456158480617, - 6.598457574199471, - 6.598458988620097, - 6.598460401743684, - 6.598461813571422, - 6.598463224104499, - 6.598464633344102, - 6.598466041291418, - 6.598467447947631, - 6.598468853313927, - 6.598470257391487, - 6.598471660181493, - 6.598473061685126, - 6.598474461903565, - 6.598475860837989, - 6.5984772584895754, - 6.598478654859501, - 6.59848004994894, - 6.598481443759069, - 6.598482836291058, - 6.598484227546081, - 6.598485617525308, - 6.59848700622991, - 6.598488393661055, - 6.5984897798199125, - 6.598491164707646, - 6.598492548325424, - 6.59849393067441, - 6.598495311755767, - 6.598496691570658, - 6.598498070120245, - 6.598499447405687, - 6.598500823428143, - 6.598502198188774, - 6.598503571688733, - 6.598504943929179, - 6.598506314911266, - 6.598507684636149, - 6.59850905310498, - 6.5985104203189096, - 6.59851178627909, - 6.598513150986671, - 6.598514514442799, - 6.598515876648626, - 6.598517237605295, - 6.5985185973139515, - 6.598519955775742, - 6.598521312991808, - 6.598522668963294, - 6.598524023691339, - 6.598525377177084, - 6.5985267294216685, - 6.598528080426231, - 6.598529430191908, - 6.5985307787198355, - 6.59853212601115, - 6.598533472066983, - 6.598534816888469, - 6.598536160476739, - 6.598537502832925, - 6.598538843958155, - 6.598540183853561, - 6.598541522520267, - 6.5985428599594025, - 6.598544196172093, - 6.598545531159462, - 6.598546864922634, - 6.598548197462731, - 6.598549528780874, - 6.598550858878185, - 6.598552187755783, - 6.598553515414786, - 6.598554841856312, - 6.598556167081477, - 6.598557491091396, - 6.598558813887185, - 6.598560135469955, - 6.598561455840821, - 6.598562775000893, - 6.598564092951282, - 6.598565409693095, - 6.598566725227443, - 6.598568039555432, - 6.598569352678168, - 6.598570664596757, - 6.5985719753123036, - 6.5985732848259095, - 6.598574593138678, - 6.59857590025171, - 6.598577206166106, - 6.598578510882964, - 6.598579814403384, - 6.598581116728462, - 6.598582417859293, - 6.598583717796974, - 6.598585016542599, - 6.598586314097261, - 6.598587610462051, - 6.598588905638061, - 6.598590199626381, - 6.598591492428101, - 6.598592784044308, - 6.598594074476089, - 6.59859536372453, - 6.598596651790717, - 6.598597938675734, - 6.598599224380664, - 6.598600508906589, - 6.59860179225459, - 6.598603074425748, - 6.598604355421141, - 6.5986056352418485, - 6.598606913888947, - 6.598608191363512, - 6.598609467666619, - 6.598610742799344, - 6.598612016762758, - 6.598613289557934, - 6.598614561185945, - 6.598615831647859, - 6.598617100944746, - 6.598618369077674, - 6.598619636047711, - 6.598620901855923, - 6.598622166503376, - 6.598623429991134, - 6.59862469232026, - 6.598625953491818, - 6.598627213506868, - 6.59862847236647, - 6.598629730071686, - 6.598630986623572, - 6.598632242023187, - 6.598633496271588, - 6.59863474936983, - 6.598636001318968, - 6.598637252120055, - 6.598638501774144, - 6.598639750282288, - 6.5986409976455365, - 6.59864224386494, - 6.598643488941546, - 6.598644732876405, - 6.598645975670562, - 6.598647217325065, - 6.598648457840956, - 6.598649697219282, - 6.598650935461086, - 6.598652172567408, - 6.598653408539291, - 6.598654643377774, - 6.598655877083898, - 6.5986571096587, - 6.598658341103219, - 6.59865957141849, - 6.598660800605548, - 6.598662028665429, - 6.598663255599168, - 6.598664481407794, - 6.5986657060923415, - 6.598666929653839, - 6.598668152093319, - 6.59866937341181, - 6.598670593610337, - 6.598671812689931, - 6.598673030651615, - 6.598674247496416, - 6.598675463225359, - 6.598676677839464, - 6.598677891339755, - 6.598679103727254, - 6.59868031500298, - 6.5986815251679545, - 6.598682734223195, - 6.59868394216972, - 6.598685149008545, - 6.5986863547406855, - 6.598687559367157, - 6.598688762888974, - 6.598689965307148, - 6.598691166622692, - 6.598692366836618, - 6.598693565949935, - 6.5986947639636515, - 6.598695960878777, - 6.5986971566963195, - 6.598698351417285, - 6.5986995450426775 + 6.234356826390706e-6, + 0.0602797291975042, + 0.12000278500607195, + 0.1791804285879041, + 0.23781764084180476, + 0.2959193571792291, + 0.353490467939701, + 0.41053581880242196, + 0.4670602111941198, + 0.5230684026931862, + 0.5785651074301074, + 0.633554996484256, + 0.6880426982770397, + 0.7420327989614764, + 0.7955298428081936, + 0.8485383325879222, + 0.9010627299504909, + 0.95310745580035, + 1.0046768906686774, + 1.0557753750820726, + 1.106407209927902, + 1.1565766568163005, + 1.2062879384388552, + 1.2555452389240382, + 1.3043527041893592, + 1.3527144422903326, + 1.4006345237662512, + 1.4481169819827884, + 1.4951658134714931, + 1.541784978266155, + 1.5879784002361228, + 1.6337499674165799, + 1.6791035323357806, + 1.7240429123393277, + 1.7685718899114542, + 1.8126942129933985, + 1.856413595298871, + 1.8997337166266197, + 1.9426582231701681, + 1.9851907278246914, + 2.027334810491119, + 2.0690940183774535, + 2.110471866297332, + 2.151471836965857, + 2.1920973812927333, + 2.2323519186727347, + 2.272238837273501, + 2.3117614943207183, + 2.3509232163806906, + 2.38972729964033, + 2.4281770101846014, + 2.4662755842714135, + 2.5040262286040185, + 2.5414321206009087, + 2.5784964086632565, + 2.6152222124399183, + 2.651612623090002, + 2.6876707035430516, + 2.7233994887568453, + 2.7588019859728425, + 2.793881174969307, + 2.828640008312104, + 2.8630814116032166, + 2.8972082837269855, + 2.931023497094105, + 2.9645298978833967, + 2.997730306281359, + 3.030627516719546, + 3.0632242981097644, + 3.095523394077128, + 3.1275275231909956, + 3.1592393791937776, + 3.1906616312276728, + 3.2217969240593183, + 3.252647878302398, + 3.2832170906382236, + 3.3135071340342845, + 3.3435205579608165, + 3.3732598886053813, + 3.402727629085496, + 3.43192625965932, + 3.4608582379344086, + 3.4895259990745706, + 3.5179319560048286, + 3.5460784996145183, + 3.5739679989585196, + 3.6016028014566586, + 3.6289852330912877, + 3.6561175986030583, + 3.683002181684913, + 3.709641245174293, + 3.736037031243603, + 3.762191761588928, + 3.788107637617036, + 3.8137868406306636, + 3.8392315320121115, + 3.8644438534051697, + 3.88942592689537, + 3.914179855188606, + 3.938707721788113, + 3.9630115911698294, + 3.9870935089561663, + 4.010955502088177, + 4.034599578996175, + 4.058027729768764, + 4.081241926320357, + 4.104244122557136, + 4.127036254541518, + 4.149620240655108, + 4.171997981760168, + 4.194171361359606, + 4.216142245755512, + 4.237912484206238, + 4.259483909082053, + 4.280858336019366, + 4.302037564073548, + 4.3230233758703545, + 4.3438175377559665, + 4.3644217999456645, + 4.38483789667114, + 4.4050675463264595, + 4.425112451612705, + 4.4449742996812835, + 4.464654762275936, + 4.484155495873445, + 4.503478141823053, + 4.52262432648462, + 4.5415956613655055, + 4.560393743256211, + 4.579020154364779, + 4.597476462449963, + 4.615764220953186, + 4.633884969129287, + 4.651840232176086, + 4.669631521362752, + 4.687260334157003, + 4.70472815435115, + 4.722036452186983, + 4.73918668447952, + 4.756180294739629, + 4.7730187132955155, + 4.789703357413125, + 4.8062356314154195, + 4.822616926800587, + 4.8388486223591585, + 4.8549320842900565, + 4.870868666315589, + 4.886659709795388, + 4.902306543839314, + 4.917810485419322, + 4.933172839480309, + 4.9483948990499504, + 4.963477945347532, + 4.978423247891788, + 4.993232064607759, + 5.00790564193266, + 5.022445214920801, + 5.036852007347535, + 5.051127231812259, + 5.06527208984049, + 5.079287771984975, + 5.093175457925915, + 5.10693631657025, + 5.120571506150043, + 5.134082174319974, + 5.147469458253925, + 5.160734484740706, + 5.17387837027889, + 5.186902221170784, + 5.199807133615551, + 5.212594193801469, + 5.225264477997363, + 5.237819052643184, + 5.250258974439772, + 5.262585290437804, + 5.274799038125909, + 5.286901245518008, + 5.298892931239829, + 5.3107751046146445, + 5.322548765748234, + 5.334214905613045, + 5.345774506131622, + 5.3572285402592374, + 5.368577972065786, + 5.379823756816942, + 5.390966841054542, + 5.4020081626762755, + 5.412948651014611, + 5.42378922691502, + 5.43453080281349, + 5.445174282813313, + 5.455720562761191, + 5.4661705303226364, + 5.476525065056676, + 5.4867850384898995, + 5.496951314189796, + 5.507024747837457, + 5.517006187299589, + 5.5268964726998675, + 5.536696436489672, + 5.54640690351813, + 5.556028691101557, + 5.565562609092248, + 5.575009459946628, + 5.584370038792816, + 5.593645133497527, + 5.602835524732406, + 5.61194198603972, + 5.620965283897474, + 5.629906177783925, + 5.638765420241498, + 5.647543756940139, + 5.656241926740068, + 5.664860661753968, + 5.673400687408613, + 5.6818627225059135, + 5.690247479283434, + 5.698555663474326, + 5.706787974366733, + 5.714945104862658, + 5.723027741536265, + 5.731036564691688, + 5.738972248420275, + 5.7468354606573335, + 5.754626863238349, + 5.7623471119546865, + 5.769996856608794, + 5.7775767410688905, + 5.7850874033231605, + 5.7925294755334535, + 5.799903584088492, + 5.807210349656592, + 5.814450387237909, + 5.821624306216193, + 5.828732710410089, + 5.835776198123949, + 5.842755362198205, + 5.849670790059254, + 5.856523063768903, + 5.86331276007337, + 5.870040450451813, + 5.876706701164445, + 5.883312073300189, + 5.889857122823899, + 5.896342400623165, + 5.902768452554669, + 5.909135819490144, + 5.915445037361885, + 5.921696637207858, + 5.927891145216409, + 5.934029082770538, + 5.940110966491796, + 5.946137308283759, + 5.952108615375111, + 5.958025390362354, + 5.96388813125209, + 5.969697331502953, + 5.975453480067138, + 5.981157061431547, + 5.986808555658582, + 5.99240843842654, + 5.9979571810696575, + 6.00345525061778, + 6.008903109835661, + 6.0143012172619335, + 6.019650027247682, + 6.024949989994701, + 6.030201551593383, + 6.035405154060258, + 6.04056123537521, + 6.045670229518327, + 6.050732566506444, + 6.055748672429329, + 6.060718969485535, + 6.065643876017963, + 6.070523806549045, + 6.075359171815653, + 6.0801503788036655, + 6.0848978307822135, + 6.089601927337637, + 6.094263064407105, + 6.0988816343119545, + 6.103458025790703, + 6.107992624031762, + 6.112485810705873, + 6.116937963998219, + 6.121349458640267, + 6.125720665941299, + 6.130051953819665, + 6.134343686833763, + 6.138596226212702, + 6.1428099298867265, + 6.1469851525173365, + 6.151122245527125, + 6.155221557129383, + 6.1592834323573795, + 6.163308213093429, + 6.16729623809765, + 6.171247843036481, + 6.175163360510937, + 6.1790431200846, + 6.182887448311364, + 6.186696668762915, + 6.190471102055962, + 6.194211065879238, + 6.197916875020217, + 6.201588841391632, + 6.205227274057716, + 6.208832479260208, + 6.212404760444152, + 6.2159444182834145, + 6.2194517507060025, + 6.222927052919144, + 6.226370617434121, + 6.229782734090905, + 6.23316369008254, + 6.236513769979323, + 6.239833255752759, + 6.243122426799279, + 6.246381559963776, + 6.249610929562887, + 6.252810807408098, + 6.255981462828617, + 6.2591231626940385, + 6.262236171436807, + 6.265320751074479, + 6.268377161231773, + 6.271405659162421, + 6.2744064997708255, + 6.277379935633504, + 6.280326217020361, + 6.283245591915746, + 6.286138306039327, + 6.2890046028667745, + 6.291844723650245, + 6.294658907438703, + 6.297447391098027, + 6.300210409330955, + 6.302948194696836, + 6.305660977631201, + 6.308348986465164, + 6.3110124474446385, + 6.313651584749379, + 6.316266620511851, + 6.318857774835924, + 6.321425265815405, + 6.323969309552388, + 6.326490120175447, + 6.32898790985766, + 6.331462888834456, + 6.333915265421328, + 6.336345246031354, + 6.338753035192576, + 6.3411388355652125, + 6.343502847958713, + 6.3458452713486695, + 6.348166302893554, + 6.350466137951317, + 6.352744970095836, + 6.355002991133195, + 6.357240391117841, + 6.359457358368576, + 6.3616540794844045, + 6.36383073936025, + 6.365987521202498, + 6.368124606544439, + 6.370242175261529, + 6.372340405586543, + 6.374419474124569, + 6.3764795558678715, + 6.378520824210626, + 6.380543450963509, + 6.382547606368163, + 6.384533459111525, + 6.386501176340015, + 6.388450923673617, + 6.390382865219817, + 6.3922971635874095, + 6.394193979900189, + 6.396073473810507, + 6.397935803512716, + 6.3997811257564825, + 6.401609595859976, + 6.403421367722948, + 6.405216593839678, + 6.406995425311817, + 6.408758011861103, + 6.410504501841959, + 6.412235042253985, + 6.413949778754325, + 6.415648855669931, + 6.417332416009715, + 6.419000601476572, + 6.420653552479324, + 6.422291408144522, + 6.423914306328169, + 6.425522383627316, + 6.427115775391561, + 6.428694615734445, + 6.430259037544729, + 6.431809172497591, + 6.433345151065705, + 6.4348671025302195, + 6.436375154991647, + 6.43786943538063, + 6.439350069468645, + 6.440817181878574, + 6.442270896095201, + 6.443711334475603, + 6.445138618259441, + 6.446552867579182, + 6.447954201470197, + 6.449342737880782, + 6.450718593682091, + 6.452081884677962, + 6.453432725614678, + 6.454771230190616, + 6.456097511065816, + 6.457411679871474, + 6.45871384721932, + 6.460004122710944, + 6.461282614947016, + 6.462549431536424, + 6.463804679105333, + 6.465048463306161, + 6.46628088882647, + 6.467502059397776, + 6.468712077804287, + 6.469911045891546, + 6.471099064575003, + 6.472276233848516, + 6.473442652792763, + 6.474598419583582, + 6.475743631500236, + 6.476878384933591, + 6.478002775394247, + 6.479116897520562, + 6.480220845086626, + 6.481314711010149, + 6.482398587360279, + 6.483472565365363, + 6.4845367354206145, + 6.485591187095726, + 6.48663600914241, + 6.487671289501861, + 6.488697115312169, + 6.489713572915645, + 6.490720747866091, + 6.491718724936007, + 6.492707588123709, + 6.49368742066042, + 6.494658305017262, + 6.495620322912203, + 6.496573555316934, + 6.497518082463678, + 6.498453983851955, + 6.499381338255265, + 6.500300223727719, + 6.501210717610616, + 6.502112896538937, + 6.503006836447811, + 6.503892612578898, + 6.504770299486729, + 6.505639971044975, + 6.506501700452659, + 6.507355560240332, + 6.508201622276168, + 6.509039957772016, + 6.509870637289394, + 6.510693730745422, + 6.511509307418717, + 6.512317435955218, + 6.513118184373963, + 6.51391162007282, + 6.514697809834148, + 6.515476819830433, + 6.516248715629848, + 6.5170135622017735, + 6.5177714239222695, + 6.518522364579482, + 6.519266447379031, + 6.520003734949316, + 6.520734289346791, + 6.521458172061193, + 6.522175444020704, + 6.522886165597095, + 6.5235903966108, + 6.524288196335949, + 6.524979623505363, + 6.5256647363154885, + 6.5263435924313065, + 6.527016248991178, + 6.527682762611657, + 6.528343189392257, + 6.528997584920166, + 6.529646004274933, + 6.530288502033102, + 6.5309251322728015, + 6.531555948578305, + 6.532181004044525, + 6.532800351281502, + 6.533414042418819, + 6.534022129109994, + 6.534624662536829, + 6.535221693413707, + 6.535813271991878, + 6.536399448063676, + 6.536980270966714, + 6.53755578958804, + 6.538126052368238, + 6.538691107305526, + 6.539251001959783, + 6.539805783456549, + 6.540355498491004, + 6.540900193331882, + 6.541439913825382, + 6.541974705399016, + 6.542504613065439, + 6.5430296814262325, + 6.5435499546756555, + 6.544065476604376, + 6.544576290603148, + 6.545082439666465, + 6.545583966396182, + 6.546080913005093, + 6.546573321320493, + 6.547061232787699, + 6.547544688473528, + 6.548023729069768, + 6.5484983948965825, + 6.54896872590593, + 6.549434761684907, + 6.549896541459089, + 6.550354104095828, + 6.550807488107525, + 6.551256731654872, + 6.551701872550066, + 6.552142948259989, + 6.552579995909362, + 6.553013052283866, + 6.553442153833247, + 6.5538673366743785, + 6.554288636594299, + 6.554706089053231, + 6.555119729187556, + 6.555529591812781, + 6.555935711426467, + 6.5563381222111285, + 6.556736858037116, + 6.557131952465456, + 6.557523438750693, + 6.557911349843675, + 6.558295718394332, + 6.558676576754424, + 6.55905395698026, + 6.5594278908354005, + 6.559798409793332, + 6.560165545040113, + 6.560529327477003, + 6.560889787723048, + 6.561246956117685, + 6.561600862723273, + 6.561951537327631, + 6.562299009446548, + 6.562643308326258, + 6.562984462945916, + 6.563322502020023, + 6.563657454000852, + 6.563989347080842, + 6.564318209194958, + 6.564644068023066, + 6.564966950992242, + 6.565286885279092, + 6.565603897812034, + 6.5659180152735654, + 6.566229264102505, + 6.566537670496232, + 6.566843260412877, + 6.567146059573514, + 6.567446093464322, + 6.567743387338724, + 6.56803796621953, + 6.568329854901029, + 6.568619077951084, + 6.568905659713187, + 6.569189624308518, + 6.56947099563798, + 6.5697497973842, + 6.570026053013531, + 6.570299785778016, + 6.570571018717356, + 6.570839774660844, + 6.571106076229291, + 6.571369945836926, + 6.57163140569328, + 6.571890477805057, + 6.572147183977995, + 6.572401545818688, + 6.572653584736418, + 6.572903321944944, + 6.573150778464289, + 6.573395975122524, + 6.573638932557504, + 6.573879671218618, + 6.574118211368499, + 6.574354573084728, + 6.574588776261541, + 6.5748208406114905, + 6.575050785667106, + 6.575278630782539, + 6.575504395135186, + 6.575728097727319, + 6.575949757387669, + 6.576169392773018, + 6.576387022369768, + 6.576602664495488, + 6.576816337300476, + 6.577028058769272, + 6.577237846722174, + 6.577445718816739, + 6.57765169254926, + 6.577855785256262, + 6.578058014115939, + 6.578258396149613, + 6.5784569482231525, + 6.578653687048405, + 6.578848629184601, + 6.579041791039744, + 6.579233188872001, + 6.579422838791054, + 6.579610756759464, + 6.579796958594026, + 6.579981459967085, + 6.580164276407865, + 6.580345423303767, + 6.5805249159016626, + 6.5807027693091955, + 6.580878998496037, + 6.581053618295151, + 6.581226643404038, + 6.581398088385973, + 6.581567967671245, + 6.581736295558348, + 6.581903086215209, + 6.582068353680355, + 6.582232111864123, + 6.582394374549804, + 6.582555155394819, + 6.582714467931869, + 6.582872325570061, + 6.583028741596054, + 6.58318372917516, + 6.583337301352466, + 6.583489471053929, + 6.583640251087453, + 6.583789654143986, + 6.58393769279857, + 6.584084379511406, + 6.584229726628916, + 6.584373746384753, + 6.584516450900866, + 6.584657852188487, + 6.58479796214916, + 6.584936792575752, + 6.585074355153414, + 6.585210661460604, + 6.585345722970025, + 6.585479551049614, + 6.585612156963496, + 6.585743551872918, + 6.58587374683721, + 6.586002752814696, + 6.586130580663623, + 6.5862572411430875, + 6.586382744913919, + 6.586507102539598, + 6.5866303244871265, + 6.586752421127919, + 6.586873402738685, + 6.586993279502268, + 6.587112061508534, + 6.587229758755194, + 6.587346381148654, + 6.587461938504864, + 6.5875764405501185, + 6.587689896921898, + 6.587802317169663, + 6.587913710755663, + 6.588024087055746, + 6.588133455360123, + 6.588241824874176, + 6.588349204719212, + 6.588455603933237, + 6.5885610314717304, + 6.588665496208372, + 6.5887690069358165, + 6.588871572366416, + 6.588973201132951, + 6.589073901789382, + 6.5891736828115315, + 6.589272552597834, + 6.58937051947002, + 6.589467591673816, + 6.589563777379661, + 6.589659084683363, + 6.589753521606809, + 6.589847096098621, + 6.5899398160348275, + 6.59003168921954, + 6.59012272338559, + 6.590212926195199, + 6.590302305240611, + 6.590390868044727, + 6.590478622061761, + 6.59056557467784, + 6.590651733211648, + 6.590737104915024, + 6.590821696973582, + 6.590905516507322, + 6.590988570571208, + 6.591070866155793, + 6.591152410187774, + 6.5912332095305946, + 6.5913132709850295, + 6.591392601289731, + 6.591471207121826, + 6.591549095097451, + 6.591626271772327, + 6.591702743642311, + 6.5917785171439265, + 6.591853598654927, + 6.591927994494816, + 6.592001710925382, + 6.59207475415124, + 6.592147130320329, + 6.592218845524455, + 6.592289905799782, + 6.592360317127352, + 6.592430085433592, + 6.592499216590794, + 6.592567716417641, + 6.5926355906796585, + 6.592702845089727, + 6.592769485308561, + 6.5928355169451685, + 6.592900945557344, + 6.592965776652119, + 6.5930300156862325, + 6.593093668066599, + 6.593156739150745, + 6.593219234247277, + 6.593281158616319, + 6.593342517469956, + 6.5934033159726795, + 6.593463559241809, + 6.593523252347942, + 6.593582400315358, + 6.593641008122457, + 6.593699080702182, + 6.593756622942412, + 6.593813639686403, + 6.593870135733172, + 6.593926115837907, + 6.593981584712382, + 6.5940365470253255, + 6.594091007402847, + 6.594144970428794, + 6.594198440645157, + 6.594251422552454, + 6.594303920610091, + 6.594355939236763, + 6.5944074828108015, + 6.59445855567055, + 6.594509162114749, + 6.5945593064028625, + 6.594608992755473, + 6.594658225354608, + 6.594707008344099, + 6.594755345829952, + 6.5948032418806575, + 6.594850700527563, + 6.594897725765195, + 6.594944321551597, + 6.594990491808677, + 6.595036240422515, + 6.595081571243713, + 6.595126488087699, + 6.5951709947350565, + 6.595215094931855, + 6.59525879238994, + 6.595302090787269, + 6.5953449937682045, + 6.595387504943829, + 6.595429627892251, + 6.595471366158897, + 6.595512723256822, + 6.595553702666992, + 6.595594307838582, + 6.595634542189281, + 6.595674409105548, + 6.5957139119429335, + 6.595753054026332, + 6.595791838650275, + 6.595830269079214, + 6.595868348547779, + 6.595906080261073, + 6.595943467394915, + 6.5959805130961255, + 6.596017220482795, + 6.596053592644528, + 6.5960896326427205, + 6.596125343510809, + 6.596160728254521, + 6.596195789852149, + 6.596230531254769, + 6.596264955386526, + 6.596299065144845, + 6.5963328634006935, + 6.596366352998829, + 6.596399536758018, + 6.596432417471297, + 6.596464997906186, + 6.596497280804931, + 6.596529268884745, + 6.596560964838012, + 6.596592371332544, + 6.596623491011775, + 6.596654326495004, + 6.596684880377617, + 6.596715155231283, + 6.596745153604199, + 6.596774878021285, + 6.5968043309843996, + 6.596833514972563, + 6.596862432442145, + 6.596891085827092, + 6.59691947753912, + 6.596947609967912, + 6.596975485481344, + 6.5970031064256505, + 6.5970304751256545, + 6.597057593884938, + 6.597084464986046, + 6.597111090690687, + 6.597137473239902, + 6.5971636148542805, + 6.597189517734121, + 6.597215184059629, + 6.597240615991112, + 6.59726581566913, + 6.597290785214711, + 6.5973155267295045, + 6.597340042295967, + 6.597364333977542, + 6.597388403818823, + 6.597412253845741, + 6.597435886065713, + 6.59745930246783, + 6.597482505023021, + 6.597505495684207, + 6.597528276386486, + 6.597550849047274, + 6.597573215566478, + 6.597595377826662, + 6.597617337693186, + 6.597639097014386, + 6.597660657621712, + 6.597682021329886, + 6.597703189937068, + 6.597724165224983, + 6.597744948959098, + 6.597765542888746, + 6.597785948747288, + 6.597806168252261, + 6.597826203105507, + 6.597846054993337, + 6.597865725586654, + 6.5978852165411, + 6.5979045294972085, + 6.597923666080518, + 6.597942627901731, + 6.597961416556837, + 6.5979800336272465, + 6.597998480679937, + 6.598016759267567, + 6.598034870928625, + 6.59805281718754, + 6.598070599554821, + 6.59808821952719, + 6.59810567858769, + 6.598122978205831, + 6.598140119837696, + 6.5981571049260666, + 6.5981739349005615, + 6.5981906111777295, + 6.598207135161195, + 6.598223508241756, + 6.598239731797507, + 6.598255807193969, + 6.598271735784181, + 6.598287518908833, + 6.598303157896368, + 6.598318654063092, + 6.598334008713302, + 6.5983492231393726, + 6.5983642986218864, + 6.5983792364297225, + 6.598394037820171, + 6.59840870403905, + 6.59842323632079, + 6.598437635888558, + 6.598451903954342, + 6.598466041719062, + 6.598480050372681, + 6.598493931094279, + 6.598507685052185, + 6.598521313404047, + 6.5985348172969385, + 6.598548197867473, + 6.598561456241866, + 6.598574593536062, + 6.598587610855807, + 6.598600509296746, + 6.598613289944531, + 6.5986259538748815, + 6.598638502153711, + 6.598650935837187, + 6.598663255971832, + 6.5986754635946205, + 6.598687559733045, + 6.598699545405226 ], "y11": [ 0.0, @@ -30021,9997 +3021,997 @@ 0.0, 0.0, 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 5.562541456698697e-6, - 0.0076679355166768, - 0.01532572161805884, - 0.02297892359141171, - 0.03062754418090045, - 0.03827158612904784, - 0.045911052176734295, - 0.05354594506319981, - 0.06117626752604499, - 0.06880202230123053, - 0.0764232121230802, - 0.08403983972428108, - 0.09165190783588364, - 0.09925941918730381, - 0.10686237650632417, - 0.11446078251909364, - 0.1220546399501296, - 0.12964395152231842, - 0.13722871995691657, - 0.14480894797355104, - 0.15238463829022134, - 0.15995579362329967, - 0.16752241668753212, - 0.1750845101960398, - 0.1826420768603196, - 0.1901951193902453, - 0.19774364049406848, - 0.20528764287841939, - 0.21282712924830818, - 0.22036210230712613, - 0.22789256475664504, - 0.23541851929702026, - 0.24293996862679051, - 0.2504569154428792, - 0.25796936244059515, - 0.26547731231363414, - 0.2729807677540786, - 0.2804797314524001, - 0.2879742060974594, - 0.2954641943765079, - 0.30294969897518803, - 0.31043072257753473, - 0.31790726786597595, - 0.32537933752133424, - 0.3328469342228271, - 0.34031006064806824, - 0.3477687194730686, - 0.35522291337223716, - 0.36267264501838153, - 0.3701179170827099, - 0.3775587322348312, - 0.38499509314275626, - 0.39242700247289874, - 0.3998544628900762, - 0.40727747705751083, - 0.4146960476368307, - 0.4221101772880706, - 0.4295198686696731, - 0.43692512443848885, - 0.44432594724977825, - 0.4517223397572125, - 0.45911430461287384, - 0.46650184446725723, - 0.4738849619692706, - 0.48126365976623686, - 0.48863794050389364, - 0.4960078068263948, - 0.5033732613763114, - 0.5107343067946328, - 0.5180909457207671, - 0.5254431807925425, - 0.5327910146462081, - 0.5401344499164353, - 0.5474734892363178, - 0.554808135237373, - 0.5621383905495436, - 0.5694642578011975, - 0.5767857396191293, - 0.5841028386285609, - 0.5914155574531433, - 0.5987238987149563, - 0.6060278650345106, - 0.6133274590307478, - 0.6206226833210418, - 0.6279135405211997, - 0.6352000332454627, - 0.6424821641065072, - 0.6497599357154453, - 0.6570333506818262, - 0.6643024116136373, - 0.6715671211173044, - 0.6788274817976929, - 0.6860834962581094, - 0.6933351671003015, - 0.7005824969244596, - 0.7078254883292177, - 0.715064143911654, - 0.7222984662672922, - 0.7295284579901022, - 0.7367541216725012, - 0.7439754599053541, - 0.7511924752779755, - 0.7584051703781293, - 0.7656135477920306, - 0.7728176101043465, - 0.7800173598981963, - 0.787212799755154, - 0.7944039322552472, - 0.8015907599769595, - 0.8087732854972309, - 0.8159515113914588, - 0.8231254402334988, - 0.830295074595666, - 0.8374604170487351, - 0.844621470161943, - 0.8517782365029866, - 0.8589307186380283, - 0.8660789191316915, - 0.8732228405470676, - 0.8803624854457103, - 0.8874978563876427, - 0.8946289559313532, - 0.9017557866338007, - 0.9088783510504115, - 0.9159966517350838, - 0.9231106912401854, - 0.9302204721165578, - 0.9373259969135145, - 0.9444272681788429, - 0.9515242884588059, - 0.9586170602981414, - 0.9657055862400646, - 0.9727898688262678, - 0.9798699105969222, - 0.9869457140906778, - 0.9940172818446654, - 1.001084616394497, - 1.0081477202742666, - 1.015206596016551, - 1.0222612461524117, - 1.0293116732113936, - 1.0363578797215294, - 1.0433998682093362, - 1.0504376411998209, - 1.0574712012164766, - 1.0645005507812884, - 1.0715256924147285, - 1.078546628635764, - 1.08556336196185, - 1.0925758949089388, - 1.0995842299914727, - 1.1065883697223917, - 1.1135883166131302, - 1.1205840731736192, - 1.1275756419122875, - 1.1345630253360623, - 1.1415462259503697, - 1.1485252462591364, - 1.1555000887647902, - 1.1624707559682605, - 1.16943725036898, - 1.1763995744648852, - 1.1833577307524168, - 1.1903117217265213, - 1.1972615498806525, - 1.2042072177067695, - 1.211148727695342, - 1.2180860823353472, - 1.225019284114274, - 1.2319483355181196, - 1.238873239031396, - 1.2457939971371252, - 1.2527106123168454, - 1.2596230870506069, - 1.2665314238169776, - 1.2734356250930394, - 1.2803356933543935, - 1.287231631075158, - 1.2941234407279696, - 1.3010111247839857, - 1.3078946857128841, - 1.314774125982864, - 1.3216494480606473, - 1.3285206544114792, - 1.335387747499129, - 1.3422507297858912, - 1.3491096037325865, - 1.3559643717985626, - 1.3628150364416944, - 1.3696616001183861, - 1.3765040652835705, - 1.3833424343907126, - 1.390176709891806, - 1.39700689423738, - 1.403832989876493, - 1.410654999256741, - 1.4174729248242517, - 1.4242867690236913, - 1.4310965342982598, - 1.4379022230896976, - 1.4447038378382806, - 1.4515013809828259, - 1.4582948549606898, - 1.465084262207769, - 1.4718696051585038, - 1.4786508862458754, - 1.4854281079014091, - 1.4922012725551752, - 1.4989703826357885, - 1.5057354405704109, - 1.51249644878475, - 1.5192534097030628, - 1.5260063257481542, - 1.5327551993413786, - 1.5395000329026418, - 1.5462408288504, - 1.5529775896016624, - 1.5597103175719909, - 1.5664390151755014, - 1.5731636848248651, - 1.5798843289313083, - 1.5866009499046145, - 1.5933135501531241, - 1.600022132083736, - 1.6067266981019086, - 1.6134272506116594, - 1.620123792015568, - 1.6268163247147753, - 1.6335048511089842, - 1.6401893735964623, - 1.64686989457404, - 1.6535464164371148, - 1.6602189415796482, - 1.6668874723941702, - 1.673552011271778, - 1.6802125606021376, - 1.6868691227734838, - 1.6935217001726226, - 1.700170295184931, - 1.7068149101943575, - 1.7134555475834246, - 1.7200922097332272, - 1.726724899023436, - 1.733353617832297, - 1.7399783685366317, - 1.7465991535118397, - 1.753215975131898, - 1.759828835769363, - 1.76643773779537, - 1.773042683579636, - 1.7796436754904588, - 1.7862407158947182, - 1.7928338071578782, - 1.7994229516439855, - 1.8060081517156725, - 1.8125894097341568, - 1.8191667280592427, - 1.8257401090493222, - 1.8323095550613748, - 1.8388750684509698, - 1.8454366515722656, - 1.851994306778012, - 1.8585480364195501, - 1.8650978428468135, - 1.8716437284083292, - 1.8781856954512182, - 1.8847237463211965, - 1.8912578833625757, - 1.897788108918264, - 1.9043144253297677, - 1.9108368349371911, - 1.917355340079237, - 1.9238699430932091, - 1.9303806463150115, - 1.9368874520791506, - 1.943390362718734, - 1.9498893805654738, - 1.956384507949686, - 1.9628757472002911, - 1.9693631006448162, - 1.9758465706093948, - 1.982326159418768, - 1.9888018693962848, - 1.9952737028639038, - 2.001741662142194, - 2.008205749550334, - 2.014665967406116, - 2.0211223180259426, - 2.027574803724831, - 2.0340234268164132, - 2.040468189612934, - 2.0469090944252564, - 2.053346143562859, - 2.0597793393338373, - 2.066208684044906, - 2.072634180001399, - 2.0790558295072694, - 2.085473634865092, - 2.091887598376063, - 2.0982977223400003, - 2.1047040090553457, - 2.1111064608191654, - 2.1175050799271498, - 2.1238998686736164, - 2.130290829351507, - 2.1366779642523923, - 2.143061275666471, - 2.1494407658825723, - 2.155816437188151, - 2.162188291869297, - 2.16855633221073, - 2.174920560495803, - 2.181280979006499, - 2.1876375900234386, - 2.1939903958258746, - 2.200339398691699, - 2.2066846008974346, - 2.2130260047182455, - 2.2193636124279332, - 2.2256974262989386, - 2.23202744860234, - 2.2383536816078573, - 2.244676127583853, - 2.2509947887973305, - 2.2573096675139355, - 2.263620765997959, - 2.269928086512335, - 2.2762316313186437, - 2.282531402677113, - 2.288827402846614, - 2.295119634084668, - 2.3014080986474448, - 2.3076927987897653, - 2.313973736765096, - 2.320250914825558, - 2.326524335221924, - 2.332794000203619, - 2.33905991201872, - 2.3453220729139597, - 2.3515804851347255, - 2.3578351509250624, - 2.364086072527668, - 2.3703332521839005, - 2.3765766921337756, - 2.38281639461597, - 2.3890523618678157, - 2.395284596125309, - 2.401513099623106, - 2.407737874594528, - 2.4139589232715553, - 2.420176247884834, - 2.426389850663676, - 2.432599733836056, - 2.438805899628619, - 2.445008350266672, - 2.451207087974194, - 2.45740211497383, - 2.4635934334868974, - 2.4697810457333804, - 2.475964953931937, - 2.482145160299895, - 2.488321667053258, - 2.4944944764066985, - 2.5006635905735664, - 2.5068290117658862, - 2.5129907421943587, - 2.5191487840683595, - 2.525303139595943, - 2.531453810983841, - 2.5376008004374664, - 2.5437441101609086, - 2.54988374235694, - 2.556019699227013, - 2.5621519829712645, - 2.5682805957885106, - 2.574405539876254, - 2.5805268174306812, - 2.586644430646664, - 2.5927583817177604, - 2.5988686728362143, - 2.604975306192959, - 2.6110782839776143, - 2.617177608378492, - 2.62327328158259, - 2.6293653057756003, - 2.6354536831419058, - 2.6415384158645816, - 2.647619506125394, - 2.6536969561048065, - 2.659770767981975, - 2.6658409439347532, - 2.671907486139688, - 2.6779703967720256, - 2.684029678005709, - 2.690085332013382, - 2.6961373609663832, - 2.702185767034756, - 2.7082305523872425, - 2.7142717191912884, - 2.7203092696130384, - 2.726343205817344, - 2.732373529967759, - 2.7384002442265425, - 2.74442335075466, - 2.750442851711781, - 2.756458749256285, - 2.7624710455452575, - 2.768479742734494, - 2.7744848429784987, - 2.780486348430486, - 2.786484261242382, - 2.7924785835648245, - 2.798469317547163, - 2.804456465337461, - 2.8104400290824962, - 2.8164200109277617, - 2.8223964130174646, - 2.8283692374945297, - 2.8343384865005987, - 2.8403041621760323, - 2.8462662666599075, - 2.852224802090023, - 2.858179770602897, - 2.8641311743337687, - 2.8700790154165987, - 2.876023295984071, - 2.8819640181675923, - 2.887901184097294, - 2.8938347959020323, - 2.899764855709387, - 2.9056913656456675, - 2.9116143278359083, - 2.917533744403873, - 2.923449617472052, - 2.9293619491616667, - 2.935270741592668, - 2.9411759968837394, - 2.947077717152293, - 2.952975904514476, - 2.9588705610851678, - 2.9647616889779824, - 2.9706492903052673, - 2.976533367178107, - 2.9824139217063204, - 2.988290955998466, - 2.994164472161837, - 3.0000344723024677, - 3.005900958525131, - 3.011763932933339, - 3.017623397629345, - 3.0234793547141443, - 3.029331806287474, - 3.035180754447815, - 3.0410262012923903, - 3.046868148917169, - 3.0527065994168656, - 3.0585415548849397, - 3.0643730174135984, - 3.070200989093795, - 3.0760254720152336, - 3.0818464682663653, - 3.087663979934393, - 3.093478009105266, - 3.09928855786369, - 3.10509562829312, - 3.110899222475764, - 3.1166993424925837, - 3.122495990423295, - 3.1282891683463694, - 3.1340788783390336, - 3.1398651224772713, - 3.1456479028358233, - 3.1514272214881878, - 3.1572030805066227, - 3.1629754819621447, - 3.1687444279245307, - 3.1745099204623193, - 3.1802719616428106, - 3.186030553532067, - 3.1917856981949133, - 3.1975373976949393, - 3.2032856540944996, - 3.2090304694547145, - 3.2147718458354677, - 3.2205097852954143, - 3.226244289891973, - 3.2319753616813336, - 3.237703002718453, - 3.2434272150570593, - 3.249148000749651, - 3.2548653618474983, - 3.2605793004006416, - 3.2662898184578952, - 3.2719969180668484, - 3.2777006012738634, - 3.2834008701240767, - 3.2890977266614017, - 3.2947911729285284, - 3.3004812109669226, - 3.3061678428168286, - 3.311851070517271, - 3.3175308961060517, - 3.3232073216197535, - 3.3288803490937404, - 3.3345499805621572, - 3.3402162180579316, - 3.3458790636127747, - 3.35153851925718, - 3.357194587020427, - 3.3628472689305795, - 3.368496567014487, - 3.3741424832977875, - 3.379785019804904, - 3.3854241785590493, - 3.391059961582225, - 3.396692370895221, - 3.402321408517618, - 3.4079470764677886, - 3.4135693767628967, - 3.419188311418899, - 3.424803882450544, - 3.430416091871376, - 3.4360249416937316, - 3.441630433928746, - 3.447232570586347, - 3.452831353675262, - 3.4584267852030153, - 3.4640188671759278, - 3.469607601599122, - 3.4751929904765166, - 3.480775035810835, - 3.486353739603598, - 3.491929103855131, - 3.4975011305645594, - 3.503069821729813, - 3.508635179347627, - 3.5141972054135393, - 3.5197559019218945, - 3.5253112708658416, - 3.530863314237339, - 3.536412034027151, - 3.54195743222485, - 3.5474995108188185, - 3.553038271796248, - 3.558573717143141, - 3.5641058488443096, - 3.5696346688833795, - 3.575160179242788, - 3.5806823819037867, - 3.58620127884644, - 3.591716872049627, - 3.597229163491043, - 3.6027381551471995, - 3.6082438489934234, - 3.613746247003861, - 3.6192453511514753, - 3.624741163408049, - 3.6302336857441846, - 3.6357229201293038, - 3.641208868531651, - 3.6466915329182905, - 3.6521709152551116, - 3.6576470175068243, - 3.6631198416369637, - 3.66858938960789, - 3.674055663380787, - 3.6795186649156655, - 3.684978396171363, - 3.690434859105544, - 3.6958880556747022, - 3.701337987834159, - 3.706784657538065, - 3.712228066739403, - 3.717668217389985, - 3.723105111440453, - 3.7285387508402854, - 3.73396913753779, - 3.739396273480111, - 3.7448201606132248, - 3.750240800881944, - 3.7556581962299167, - 3.7610723485996282, - 3.7664832599324, - 3.7718909321683913, - 3.7772953672466003, - 3.782696567104866, - 3.788094533679865, - 3.7934892689071154, - 3.798880774720977, - 3.804269053054651, - 3.8096541058401825, - 3.815035935008459, - 3.8204145424892118, - 3.8257899302110183, - 3.8311621001013005, - 3.836531054086327, - 3.841896794091213, - 3.847259322039921, - 3.852618639855264, - 3.8579747494589, - 3.863327652771337, - 3.868677351711941, - 3.874023848198919, - 3.879367144149335, - 3.8847072414791035, - 3.8900441421029934, - 3.8953778479346273, - 3.9007083608864814, - 3.906035682869887, - 3.9113598157950316, - 3.91668076157096, - 3.9219985221055738, - 3.927313099305631, - 3.9326244950767504, - 3.9379327113234086, - 3.9432377499489424, - 3.9485396128555497, - 3.9538383019442884, - 3.9591338191150807, - 3.9644261662667093, - 3.9697153452968212, - 3.975001358101928, - 3.980284206577404, - 3.9855638926174906, - 3.990840418115295, - 3.9961137849627915, - 4.00138399505082, - 4.006651050269091, - 4.011914952506182, - 4.017175703649541, - 4.022433305585485, - 4.027687760199203, - 4.0329390693747555, - 4.038187234995074, - 4.043432258941962, - 4.0486741430960995, - 4.053912889337039, - 4.059148499543207, - 4.0643809755919085, - 4.069610319359321, - 4.074836532720502, - 4.080059617549383, - 4.085279575718777, - 4.090496409100376, - 4.095710119564749, - 4.100920708981346, - 4.1061281792185, - 4.111332532143423, - 4.116533769622209, - 4.121731893519839, - 4.126926905700173, - 4.132118808025957, - 4.137307602358823, - 4.142493290559287, - 4.14767587448675, - 4.152855355999504, - 4.158031736954726, - 4.1632050192084815, - 4.168375204615724, - 4.173542295030297, - 4.178706292304937, - 4.183867198291267, - 4.189025014839806, - 4.19417974379996, - 4.199331387020033, - 4.20447994634722, - 4.20962542362761, - 4.214767820706189, - 4.219907139426836, - 4.225043381632328, - 4.230176549164337, - 4.235306643863435, - 4.24043366756909, - 4.24555762211967, - 4.2506785093524435, - 4.255796331103576, - 4.260911089208137, - 4.266022785500096, - 4.271131421812324, - 4.2762369999765975, - 4.281339521823593, - 4.286438989182894, - 4.291535403882988, - 4.2966287677512645, - 4.301719082614025, - 4.3068063502964735, - 4.3118905726227235, - 4.316971751415794, - 4.322049888497617, - 4.327124985689029, - 4.33219704480978, - 4.337266067678529, - 4.342332056112847, - 4.3473950119292155, - 4.352454936943031, - 4.357511832968603, - 4.362565701819151, - 4.367616545306816, - 4.372664365242647, - 4.377709163436614, - 4.382750941697599, - 4.387789701833406, - 4.392825445650756, - 4.397858174955284, - 4.402887891551551, - 4.40791459724303, - 4.412938293832119, - 4.417958983120137, - 4.422976666907324, - 4.427991346992843, - 4.433003025174779, - 4.43801170325014, - 4.443017383014861, - 4.4480200662638, - 4.453019754790739, - 4.458016450388387, - 4.463010154848384, - 4.468000869961292, - 4.472988597516606, - 4.4779733393027445, - 4.482955097107058, - 4.48793387271583, - 4.492909667914269, - 4.497882484486516, - 4.502852324215651, - 4.507819188883675, - 4.512783080271534, - 4.517744000159099, - 4.52270195032518, - 4.52765693254752, - 4.532608948602802, - 4.537558000266639, - 4.542504089313584, - 4.54744721751713, - 4.5523873866497055, - 4.557324598482679, - 4.562258854786359, - 4.567190157329993, - 4.572118507881772, - 4.5770439082088235, - 4.581966360077222, - 4.586885865251983, - 4.5918024254970655, - 4.596716042575372, - 4.6016267182487525, - 4.606534454277998, - 4.611439252422849, - 4.616341114441989, - 4.621240042093052, - 4.626136037132618, - 4.6310291013162175, - 4.635919236398327, - 4.640806444132377, - 4.645690726270742, - 4.650572084564756, - 4.655450520764697, - 4.660326036619798, - 4.665198633878246, - 4.67006831428718, - 4.674935079592693, - 4.679798931539835, - 4.684659871872609, - 4.689517902333974, - 4.694373024665849, - 4.6992252406091035, - 4.704074551903571, - 4.708920960288043, - 4.713764467500266, - 4.718605075276951, - 4.723442785353767, - 4.728277599465343, - 4.733109519345273, - 4.737938546726109, - 4.7427646833393675, - 4.74758793091553, - 4.75240829118404, - 4.75722576587331, - 4.76204035671071, - 4.766852065422584, - 4.771660893734237, - 4.776466843369944, - 4.781269916052947, - 4.786070113505455, - 4.79086743744865, - 4.79566188960268, - 4.800453471686665, - 4.805242185418694, - 4.810028032515832, - 4.81481101469411, - 4.819591133668535, - 4.8243683911530875, - 4.829142788860722, - 4.833914328503367, - 4.838683011791926, - 4.843448840436279, - 4.848211816145283, - 4.852971940626771, - 4.857729215587552, - 4.862483642733416, - 4.86723522376913, - 4.871983960398444, - 4.876729854324084, - 4.8814729072477565, - 4.886213120870154, - 4.890950496890946, - 4.895685037008788, - 4.900416742921316, - 4.905145616325152, - 4.9098716589159, - 4.914594872388151, - 4.91931525843548, - 4.92403281875045, - 4.92874755502461, - 4.933459468948495, - 4.93816856221163, - 4.9428748365025275, - 4.94757829350869, - 4.952278934916609, - 4.956976762411767, - 4.961671777678636, - 4.966363982400684, - 4.971053378260366, - 4.975739966939131, - 4.980423750117424, - 4.985104729474683, - 4.9897829066893395, - 4.994458283438821, - 4.999130861399551, - 5.003800642246948, - 5.00846762765543, - 5.013131819298413, - 5.017793218848306, - 5.022451827976523, - 5.027107648353474, - 5.031760681648571, - 5.036410929530225, - 5.04105839366585, - 5.045703075721859, - 5.050344977363672, - 5.054984100255706, - 5.059620446061387, - 5.064254016443142, - 5.068884813062406, - 5.073512837579615, - 5.078138091654214, - 5.082760576944656, - 5.087380295108399, - 5.091997247801906, - 5.096611436680655, - 5.101222863399127, - 5.105831529610817, - 5.110437436968227, - 5.115040587122872, - 5.119640981725276, - 5.124238622424977, - 5.1288335108705265, - 5.133425648709485, - 5.138015037588431, - 5.142601679152955, - 5.147185575047663, - 5.151766726916176, - 5.156345136401133, - 5.160920805144187, - 5.165493734786011, - 5.170063926966293, - 5.1746313833237405, - 5.179196105496082, - 5.183758095120063, - 5.188317353831449, - 5.19287388326503, - 5.197427685054613, - 5.201978760833032, - 5.206527112232136, - 5.211072740882803, - 5.215615648414935, - 5.220155836457454, - 5.224693306638311, - 5.229228060584481, - 5.233760099921964, - 5.238289426275789, - 5.24281604127001, - 5.24733994652771, - 5.2518611436709985, - 5.256379634321017, - 5.260895420097934, - 5.26540850262095, - 5.269918883508295, - 5.274426564377231, - 5.278931546844052, - 5.283433832524082, - 5.287933423031682, - 5.2924303199802445, - 5.296924524982194, - 5.301416039648996, - 5.305904865591143, - 5.31039100441817, - 5.3148744577386475, - 5.319355227160179, - 5.323833314289412, - 5.328308720732027, - 5.332781448092744, - 5.337251497975324, - 5.341718871982569, - 5.346183571716319, - 5.350645598777454, - 5.355104954765902, - 5.359561641280624, - 5.364015659919633, - 5.368467012279978, - 5.3729156999577565, - 5.377361724548109, - 5.381805087645223, - 5.386245790842327, - 5.390683835731702, - 5.395119223904668, - 5.399551956951601, - 5.40398203646192, - 5.408409464024092, - 5.412834241225635, - 5.417256369653118, - 5.421675850892156, - 5.4260926865274195, - 5.4305068781426264, - 5.434918427320549, - 5.439327335643012, - 5.443733604690891, - 5.448137236044119, - 5.45253823128168, - 5.456936591981614, - 5.4613323197210155, - 5.465725416076037, - 5.470115882621885, - 5.474503720932824, - 5.478888932582176, - 5.483271519142324, - 5.487651482184704, - 5.492028823279816, - 5.496403543997219, - 5.500775645905531, - 5.505145130572431, - 5.50951199956466, - 5.513876254448023, - 5.518237896787387, - 5.522596928146678, - 5.526953350088891, - 5.5313071641760825, - 5.535658371969378, - 5.5400069750289616, - 5.544352974914088, - 5.54869637318308, - 5.553037171393322, - 5.557375371101272, - 5.561710973862453, - 5.566043981231456, - 5.570374394761943, - 5.574702216006649, - 5.579027446517372, - 5.5833500878449875, - 5.587670141539441, - 5.591987609149748, - 5.596302492223999, - 5.600614792309358, - 5.60492451095206, - 5.60923164969742, - 5.613536210089819, - 5.617838193672723, - 5.622137601988668, - 5.6264344365792684, - 5.630728698985217, - 5.6350203907462815, - 5.639309513401311, - 5.643596068488231, - 5.647880057544046, - 5.652161482104844, - 5.656440343705788, - 5.660716643881129, - 5.664990384164193, - 5.669261566087392, - 5.673530191182218, - 5.677796260979249, - 5.682059777008146, - 5.686320740797651, - 5.690579153875595, - 5.694835017768894, - 5.699088334003548, - 5.7033391041046455, - 5.707587329596359, - 5.711833012001952, - 5.716076152843775, - 5.720316753643266, - 5.724554815920953, - 5.728790341196455, - 5.7330233309884795, - 5.737253786814825, - 5.741481710192383, - 5.7457071026371365, - 5.74992996566416, - 5.754150300787621, - 5.758368109520781, - 5.762583393375995, - 5.766796153864715, - 5.771006392497486, - 5.775214110783949, - 5.779419310232842, - 5.783621992352, - 5.787822158648354, - 5.792019810627934, - 5.796214949795868, - 5.800407577656383, - 5.804597695712807, - 5.808785305467565, - 5.812970408422187, - 5.817153006077299, - 5.821333099932634, - 5.825510691487022, - 5.829685782238398, - 5.833858373683803, - 5.838028467319377, - 5.84219606464037, - 5.84636116714113, - 5.850523776315116, - 5.854683893654892, - 5.858841520652126, - 5.862996658797595, - 5.867149309581183, - 5.871299474491884, - 5.875447155017797, - 5.879592352646133, - 5.883735068863213, - 5.887875305154466, - 5.892013063004435, - 5.896148343896768, - 5.9002811493142335, - 5.904411480738706, - 5.908539339651176, - 5.912664727531745, - 5.916787645859632, - 5.920908096113166, - 5.925026079769795, - 5.929141598306081, - 5.933254653197701, - 5.937365245919451, - 5.941473377945242, - 5.945579050748104, - 5.9496822658001856, - 5.953783024572751, - 5.957881328536189, - 5.9619771791600025, - 5.966070577912817, - 5.970161526262382, - 5.974250025675564, - 5.978336077618354, - 5.982419683555863, - 5.986500844952327, - 5.990579563271105, - 5.99465583997468, - 5.998729676524659, - 6.002801074381775, - 6.0068700350058855, - 6.010936559855975, - 6.015000650390154, - 6.019062308065659, - 6.023121534338858, - 6.027178330665244, - 6.031232698499438, - 6.035284639295192, - 6.039334154505389, - 6.043381245582039, - 6.047425913976285, - 6.051468161138401, - 6.0555079885177925, - 6.0595453975629985, - 6.063580389721688, - 6.067612966440665, - 6.07164312916587, - 6.075670879342373, - 6.079696218414383, - 6.083719147825242, - 6.08773966901743, - 6.091757783432563, - 6.095773492511391, - 6.099786797693806, - 6.103797700418835, - 6.107806202124645, - 6.111812304248542, - 6.115816008226972, - 6.119817315495518, - 6.123816227488908, - 6.12781274564101, - 6.131806871384829, - 6.13579860615252, - 6.139787951375374, - 6.143774908483829, - 6.147759478907465, - 6.151741664075009, - 6.155721465414326, - 6.159698884352436, - 6.163673922315497, - 6.167646580728816, - 6.171616861016846, - 6.175584764603187, - 6.179550292910589, - 6.18351344736095, - 6.187474229375313, - 6.1914326403738755, - 6.195388681775984, - 6.1993423550001285, - 6.203293661463959, - 6.207242602584272, - 6.2111891797770165, - 6.215133394457296, - 6.2190752480393625, - 6.223014741936627, - 6.22695187756165, - 6.230886656326147, - 6.23481907964099, - 6.238749148916205, - 6.242676865560975, - 6.246602230983641, - 6.250525246591698, - 6.254445913791797, - 6.258364233989753, - 6.262280208590533, - 6.266193838998267, - 6.270105126616243, - 6.274014072846907, - 6.277920679091872, - 6.281824946751904, - 6.285726877226937, - 6.289626471916061, - 6.293523732217534, - 6.297418659528773, - 6.301311255246361, - 6.305201520766043, - 6.30908945748273, - 6.312975066790497, - 6.316858350082585, - 6.320739308751401, - 6.324617944188518, - 6.328494257784676, - 6.332368250929784, - 6.336239925012917, - 6.340109281422318, - 6.343976321545402, - 6.3478410467687505, - 6.351703458478117, - 6.355563558058424, - 6.3594213468937655, - 6.3632768263674055, - 6.367129997861784, - 6.3709808627585085, - 6.374829422438363, - 6.378675678281304, - 6.382519631666462, - 6.38636128397214, - 6.390200636575818, - 6.39403769085415, - 6.3978724481829685, - 6.401704909937279, - 6.405535077491267, - 6.409362952218292, - 6.413188535490896, - 6.417011828680795, - 6.420832833158886, - 6.424651550295245, - 6.428467981459127, - 6.432282128018968, - 6.436093991342385, - 6.439903572796177, - 6.443710873746324, - 6.447515895557985, - 6.4513186395955096, - 6.455119107222424, - 6.458917299801441, - 6.462713218694455, - 6.4665068652625495, - 6.47029824086599, - 6.474087346864228, - 6.477874184615902, - 6.481658755478838, - 6.4854410608100475, - 6.489221101965729, - 6.49299888030127, - 6.496774397171249, - 6.500547653929431, - 6.50431865192877, - 6.508087392521413, - 6.511853877058696, - 6.5156181068911465, - 6.51938008336848, - 6.523139807839608, - 6.5268972816526345, - 6.530652506154857, - 6.534405482692762, - 6.5381562126120345, - 6.541904697257553, - 6.54565093797339, - 6.5493949361028125, - 6.553136692988287, - 6.556876209971471, - 6.560613488393224, - 6.5643485295936, - 6.5680813349118505, - 6.571811905686428, - 6.575540243254981, - 6.579266348954361, - 6.582990224120612, - 6.586711870088986, - 6.5904312881939315, - 6.594148479769099, - 6.597863446147341, - 6.601576188660711, - 6.6052867086404685, - 6.608995007417071, - 6.6127010863201825, - 6.616404946678672, - 6.62010658982061, - 6.623806017073274, - 6.627503229763149, - 6.631198229215921, - 6.634891016756486, - 6.638581593708945, - 6.642269961396608, - 6.6459561211419915, - 6.649640074266822, - 6.653321822092033, - 6.6570013659377665, - 6.6606787071233775, - 6.664353846967428, - 6.668026786787693, - 6.671697527901158, - 6.675366071624018, - 6.679032419271683, - 6.682696572158773, - 6.686358531599126, - 6.6900182989057875, - 6.69367587539102, - 6.6973312623662995, - 6.700984461142318, - 6.704635473028982, - 6.708284299335412, - 6.711930941369951, - 6.7155754004401516, - 6.719217677852788, - 6.72285777491385, - 6.726495692928549, - 6.7301314332013105, - 6.73376499703578, - 6.737396385734828, - 6.741025600600537, - 6.744652642934215, - 6.74827751403639, - 6.751900215206812, - 6.755520747744453, - 6.759139112947505, - 6.762755312113387, - 6.766369346538736, - 6.769981217519417, - 6.773590926350519, - 6.7771984743263545, - 6.78080386274046, - 6.7844070928856, - 6.788008166053765, - 6.791607083536173, - 6.795203846623262, - 6.7987984566047075, - 6.802390914769408, - 6.805981222405489, - 6.809569380800308, - 6.81315539124045, - 6.81673925501173, - 6.820320973399196, - 6.823900547687121, - 6.827477979159014, - 6.831053269097616, - 6.834626418784897, - 6.83819742950206, - 6.841766302529543, - 6.845333039147017, - 6.8488976406333855, - 6.852460108266789, - 6.8560204433246, - 6.859578647083427, - 6.863134720819115, - 6.866688665806747, - 6.870240483320639, - 6.8737901746343475, - 6.877337741020663, - 6.880883183751618, - 6.884426504098482, - 6.887967703331762, - 6.8915067827212075, - 6.895043743535805, - 6.898578587043782, - 6.902111314512607, - 6.90564192720899, - 6.909170426398886, - 6.912696813347483, - 6.916221089319222, - 6.9197432555777825, - 6.923263313386086, - 6.9267812640063005, - 6.930297108699835, - 6.933810848727351, - 6.937322485348747, - 6.94083201982317, - 6.9443394534090155, - 6.947844787363924, - 6.951348022944782, - 6.9548491614077275, - 6.95834820400814, - 6.961845152000654, - 6.965340006639149, - 6.968832769176755, - 6.972323440865853, - 6.975812022958073, - 6.979298516704297, - 6.982782923354654, - 6.986265244158532, - 6.989745480364564, - 6.99322363322064, - 6.996699703973902, - 7.000173693870743, - 7.003645604156813, - 7.007115436077015, - 7.010583190875508, - 7.014048869795704, - 7.017512474080271, - 7.020974004971135, - 7.024433463709478, - 7.027890851535737, - 7.031346169689609, - 7.034799419410048, - 7.038250601935265, - 7.041699718502732, - 7.045146770349178, - 7.048591758710594, - 7.052034684822228, - 7.055475549918595, - 7.058914355233461, - 7.062351101999861, - 7.06578579145009, - 7.0692184248157055, - 7.072649003327526, - 7.076077528215637, - 7.079504000709384, - 7.082928422037377, - 7.086350793427491, - 7.089771116106867, - 7.0931893913019115, - 7.096605620238294, - 7.1000198041409535, - 7.103431944234095, - 7.106842041741189, - 7.1102500978849745, - 7.113656113887462, - 7.117060090969924, - 7.120462030352908, - 7.123861933256224, - 7.127259800898959, - 7.130655634499468, - 7.134049435275372, - 7.13744120444357, - 7.14083094322023, - 7.144218652820789, - 7.147604334459959, - 7.150987989351725, - 7.154369618709344, - 7.15774922374535, - 7.161126805671547, - 7.164502365699016, - 7.167875905038113, - 7.171247424898469, - 7.174616926488987, - 7.177984411017855, - 7.18134987969253, - 7.18471333371975, - 7.188074774305529, - 7.191434202655159, - 7.194791619973214, - 7.198147027463541, - 7.20150042632927, - 7.204851817772812, - 7.208201202995854, - 7.2115485831993675, - 7.214893959583603, - 7.218237333348093, - 7.221578705691654, - 7.224918077812379, - 7.228255450907652, - 7.231590826174133, - 7.234924204807769, - 7.238255588003792, - 7.241584976956716, - 7.244912372860341, - 7.248237776907753, - 7.251561190291324, - 7.2548826142027085, - 7.258202049832854, - 7.261519498371989, - 7.264834961009634, - 7.268148438934596, - 7.271459933334968, - 7.274769445398134, - 7.278076976310769, - 7.281382527258833, - 7.284686099427581, - 7.287987694001554, - 7.291287312164587, - 7.294584955099805, - 7.2978806239896254, - 7.301174320015758, - 7.304466044359205, - 7.30775579820026, - 7.3110435827185105, - 7.31432939909284, - 7.317613248501426, - 7.320895132121738, - 7.324175051130544, - 7.327453006703903, - 7.330729000017178, - 7.334003032245018, - 7.337275104561377, - 7.3405452181395034, - 7.343813374151943, - 7.347079573770538, - 7.350343818166434, - 7.3536061085100695, - 7.356866445971188, - 7.36012483171883, - 7.363381266921335, - 7.366635752746345, - 7.369888290360802, - 7.37313888093095, - 7.376387525622337, - 7.379634225599808, - 7.382878982027516, - 7.386121796068914, - 7.38936266888676, - 7.392601601643115, - 7.3958385954993435, - 7.399073651616117, - 7.4023067711534125, - 7.40553795527051, - 7.408767205125995, - 7.411994521877765, - 7.415219906683018, - 7.418443360698262, - 7.421664885079314, - 7.424884480981297, - 7.428102149558643, - 7.431317891965093, - 7.434531709353699, - 7.437743602876819, - 7.440953573686124, - 7.444161622932596, - 7.447367751766526, - 7.450571961337519, - 7.453774252794489, - 7.456974627285662, - 7.460173085958581, - 7.463369629960098, - 7.466564260436378, - 7.469756978532905, - 7.47294778539447, - 7.476136682165184, - 7.479323669988473, - 7.482508750007075, - 7.4856919233630475, - 7.4888731911977615, - 7.492052554651909, - 7.495230014865493, - 7.4984055729778385, - 7.501579230127587, - 7.5047509874527, - 7.507920846090455, - 7.511088807177451, - 7.514254871849605, - 7.5174190412421575, - 7.520581316489665, - 7.523741698726005, - 7.52690018908438, - 7.530056788697311, - 7.533211498696642, - 7.536364320213539, - 7.539515254378492, - 7.542664302321314, - 7.545811465171141, - 7.548956744056432, - 7.552100140104973, - 7.555241654443874, - 7.558381288199569, - 7.561519042497818, - 7.5646549184637095, - 7.567788917221656, - 7.570921039895398, - 7.574051287608002, - 7.577179661481864, - 7.580306162638706, - 7.583430792199582, - 7.5865535512848705, - 7.5896744410142825, - 7.592793462506856, - 7.595910616880964, - 7.599025905254304, - 7.60213932874391, - 7.6052508884661405, - 7.608360585536695, - 7.611468421070596, - 7.614574396182204, - 7.617678511985211, - 7.62078076959264, - 7.623881170116853, - 7.626979714669541, - 7.6300764043617315, - 7.6331712403037875, - 7.636264223605407, - 7.639355355375624, - 7.642444636722805, - 7.645532068754662, - 7.648617652578231, - 7.651701389299897, - 7.654783280025376, - 7.657863325859727, - 7.6609415279073385, - 7.66401788727195, - 7.667092405056632, - 7.670165082363794, - 7.673235920295193, - 7.676304919951919, - 7.679372082434408, - 7.682437408842431, - 7.685500900275109, - 7.688562557830899, - 7.691622382607603, - 7.694680375702364, - 7.697736538211669, - 7.70079087123135, - 7.7038433758565805, - 7.706894053181881, - 7.709942904301115, - 7.712989930307491, - 7.716035132293565, - 7.719078511351237, - 7.722120068571755, - 7.725159805045711, - 7.728197721863048, - 7.7312338201130535, - 7.734268100884364, - 7.737300565264966, - 7.740331214342191, - 7.743360049202725, - 7.746387070932594, - 7.749412280617186, - 7.752435679341229, - 7.755457268188809, - 7.758477048243356, - 7.76149502058766, - 7.764511186303855, - 7.767525546473433, - 7.770538102177235, - 7.773548854495453, - 7.7765578045076404, - 7.779564953292694, - 7.7825703019288754, - 7.78557385149379, - 7.788575603064409, - 7.791575557717051, - 7.794573716527391, - 7.797570080570465, - 7.800564650920659, - 7.803557428651723, - 7.806548414836754, - 7.809537610548219, - 7.812525016857933, - 7.815510634837077, - 7.818494465556185, - 7.821476510085151, - 7.824456769493232, - 7.827435244849041, - 7.830411937220555, - 7.833386847675108, - 7.836359977279397, - 7.8393313270994796, - 7.842300898200778, - 7.845268691648074, - 7.848234708505509, - 7.851198949836594, - 7.8541614167042, - 7.857122110170562, - 7.860081031297277, - 7.863038181145312, - 7.865993560774992, - 7.8689471712460115, - 7.871899013617432, - 7.874849088947675, - 7.877797398294536, - 7.880743942715171, - 7.883688723266109, - 7.88663174100324, - 7.889572996981825, - 7.892512492256497, - 7.895450227881249, - 7.8983862049094515, - 7.901320424393841, - 7.904252887386524, - 7.907183594938975, - 7.9101125481020444, - 7.913039747925947, - 7.915965195460275, - 7.918888891753988, - 7.921810837855418, - 7.924731034812273, - 7.92764948367163, - 7.930566185479941, - 7.933481141283032, - 7.936394352126102, - 7.939305819053724, - 7.942215543109843, - 7.945123525337787, - 7.9480297667802535, - 7.950934268479316, - 7.953837031476426, - 7.95673805681241, - 7.959637345527473, - 7.962534898661196, - 7.965430717252538, - 7.968324802339836, - 7.971217154960808, - 7.974107776152544, - 7.976996666951521, - 7.97988382839359, - 7.982769261513988, - 7.985652967347323, - 7.988534946927595, - 7.9914152012881745, - 7.994293731461817, - 7.997170538480666, - 8.000045623376236, - 8.002918987179434, - 8.005790630920544, - 8.008660555629236, - 8.011528762334562, - 8.014395252064958, - 8.017260025848246, - 8.020123084711631, - 8.022984429681703, - 8.02584406178444, - 8.028701982045202, - 8.03155819148874, - 8.034412691139188, - 8.037265482020066, - 8.040116565154284, - 8.04296594156414, - 8.045813612271314, - 8.048659578296883, - 8.051503840661308, - 8.054346400384443, - 8.057187258485524, - 8.060026415983184, - 8.062863873895441, - 8.065699633239708, - 8.068533695032789, - 8.071366060290874, - 8.07419673002955, - 8.077025705263795, - 8.079852987007976, - 8.082678576275857, - 8.085502474080593, - 8.088324681434734, - 8.09114519935022, - 8.093964028838393, - 8.096781170909978, - 8.099596626575108, - 8.1024103968433, - 8.105222482723477, - 8.108032885223947, - 8.110841605352423, - 8.113648644116012, - 8.116454002521216, - 8.119257681573941, - 8.122059682279483, - 8.124860005642537, - 8.127658652667202, - 8.130455624356975, - 8.133250921714746, - 8.13604454574281, - 8.138836497442863, - 8.141626777815999, - 8.144415387862711, - 8.147202328582894, - 8.14998760097585, - 8.152771206040276, - 8.155553144774272, - 8.158333418175342, - 8.161112027240394, - 8.16388897296574, - 8.16666425634709, - 8.169437878379565, - 8.172209840057684, - 8.174980142375377, - 8.177748786325973, - 8.180515772902206, - 8.183281103096226, - 8.186044777899575, - 8.188806798303212, - 8.191567165297498, - 8.194325879872201, - 8.197082943016499, - 8.199838355718976, - 8.202592118967624, - 8.205344233749846, - 8.208094701052453, - 8.210843521861658, - 8.213590697163097, - 8.216336227941808, - 8.219080115182237, - 8.221822359868247, - 8.224562962983107, - 8.227301925509503, - 8.230039248429526, - 8.23277493272468, - 8.23550897937589, - 8.238241389363484, - 8.240972163667207, - 8.243701303266219, - 8.24642880913909, - 8.249154682263807, - 8.25187892361777, - 8.254601534177796, - 8.257322514920116, - 8.260041866820373, - 8.262759590853635, - 8.265475687994378, - 8.268190159216502, - 8.270903005493313, - 8.273614227797543, - 8.27632382710134, - 8.279031804376269, - 8.281738160593315, - 8.284442896722881, - 8.28714601373479, - 8.289847512598278, - 8.29254739428201, - 8.295245659754071, - 8.297942309981956, - 8.300637345932591, - 8.303330768572318, - 8.306022578866905, - 8.308712777781535, - 8.31140136628082, - 8.314088345328795, - 8.316773715888909, - 8.319457478924042, - 8.322139635396494, - 8.324820186267997, - 8.327499132499694, - 8.330176475052165, - 8.332852214885406, - 8.335526352958842, - 8.338198890231325, - 8.340869827661129, - 8.343539166205959, - 8.346206906822944, - 8.348873050468642, - 8.351537598099032, - 8.354200550669532, - 8.35686190913498, - 8.35952167444964, - 8.362179847567216, - 8.364836429440826, - 8.367491421023033, - 8.370144823265816, - 8.372796637120596, - 8.375446863538214, - 8.37809550346895, - 8.380742557862511, - 8.383388027668035, - 8.386031913834096, - 8.38867421730869, - 8.391314939039262, - 8.393954079972675, - 8.396591641055233, - 8.39922762323267, - 8.401862027450155, - 8.404494854652295, - 8.407126105783123, - 8.409755781786112, - 8.412383883604173, - 8.41501041217965, - 8.417635368454318, - 8.420258753369398, - 8.422880567865537, - 8.425500812882825, - 8.428119489360794, - 8.4307365982384, - 8.433352140454053, - 8.435966116945586, - 8.438578528650282, - 8.441189376504855, - 8.443798661445468, - 8.446406384407712, - 8.449012546326625, - 8.451617148136684, - 8.454220190771805, - 8.456821675165347, - 8.459421602250112, - 8.462019972958338, - 8.464616788221706, - 8.467212048971348, - 8.469805756137827, - 8.472397910651154, - 8.474988513440785, - 8.477577565435615, - 8.48016506756399, - 8.48275102075369, - 8.48533542593195, - 8.487918284025445, - 8.490499595960294, - 8.493079362662066, - 8.49565758505577, - 8.498234264065868, - 8.50080940061626, - 8.503382995630306, - 8.5059550500308, - 8.508525564739987, - 8.511094540679567, - 8.513661978770681, - 8.51622787993392, - 8.518792245089324, - 8.521355075156384, - 8.523916371054039, - 8.526476133700681, - 8.529034364014146, - 8.531591062911724, - 8.53414623131016, - 8.536699870125641, - 8.539251980273816, - 8.541802562669774, - 8.54435161822807, - 8.5468991478627, - 8.549445152487118, - 8.551989633014232, - 8.5545325903564, - 8.557074025425436, - 8.559613939132609, - 8.562152332388642, - 8.56468920610371, - 8.567224561187446, - 8.569758398548938, - 8.572290719096731, - 8.574821523738825, - 8.577350813382672, - 8.57987858893519, - 8.582404851302746, - 8.58492960139117, - 8.587452840105744, - 8.589974568351215, - 8.592494787031782, - 8.59501349705111, - 8.597530699312312, - 8.600046394717971, - 8.602560584170126, - 8.605073268570273, - 8.607584448819374, - 8.610094125817845, - 8.61260230046557, - 8.615108973661888, - 8.617614146305606, - 8.620117819294988, - 8.62261999352776, - 8.625120669901113, - 8.627619849311703, - 8.630117532655644, - 8.632613720828518, - 8.635108414725366, - 8.637601615240701, - 8.64009332326849, - 8.642583539702173, - 8.645072265434655, - 8.647559501358302, - 8.650045248364947, - 8.652529507345895, - 8.655012279191904, - 8.657493564793217, - 8.659973365039528, - 8.66245168082001, - 8.664928513023293, - 8.667403862537483, - 8.669877730250155, - 8.672350117048346, - 8.674821023818565, - 8.677290451446796, - 8.679758400818482, - 8.682224872818544, - 8.68468986833137, - 8.687153388240823, - 8.689615433430227, - 8.69207600478239, - 8.69453510317958, - 8.696992729503547, - 8.699448884635505, - 8.70190356945614, - 8.704356784845622, - 8.706808531683581, - 8.70925881084913, - 8.711707623220846, - 8.714154969676793, - 8.716600851094496, - 8.719045268350962, - 8.721488222322675, - 8.723929713885587, - 8.726369743915134, - 8.728808313286219, - 8.731245422873231, - 8.733681073550027, - 8.736115266189945, - 8.7385480016658, - 8.740979280849883, - 8.743409104613967, - 8.745837473829297, - 8.748264389366602, - 8.750689852096086, - 8.753113862887433, - 8.755536422609808, - 8.757957532131853, - 8.760377192321693, - 8.76279540404693, - 8.76521216817465, - 8.767627485571417, - 8.77004135710328, - 8.772453783635765, - 8.774864766033883, - 8.777274305162125, - 8.779682401884468, - 8.782089057064368, - 8.784494271564764, - 8.786898046248085, - 8.789300381976236, - 8.791701279610608, - 8.794100740012079, - 8.796498764041008, - 8.798895352557242, - 8.801290506420111, - 8.803684226488434, - 8.80607651362051, - 8.808467368674133, - 8.810856792506573, - 8.813244785974598, - 8.81563134993445, - 8.818016485241872, - 8.820400192752086, - 8.822782473319801, - 8.825163327799224, - 8.82754275704404, - 8.82992076190743, - 8.83229734324206, - 8.834672501900089, - 8.837046238733162, - 8.839418554592418, - 8.841789450328488, - 8.844158926791481, - 8.846526984831016, - 8.848893625296189, - 8.851258849035595, - 8.85362265689732, - 8.855985049728938, - 8.858346028377522, - 8.860705593689632, - 8.863063746511324, - 8.86542048768815, - 8.867775818065152, - 8.870129738486865, - 8.872482249797324, - 8.874833352840055, - 8.87718304845808, - 8.879531337493916, - 8.881878220789572, - 8.884223699186562, - 8.886567773525886, - 8.888910444648051, - 8.89125171339305, - 8.893591580600383, - 8.895930047109038, - 8.898267113757509, - 8.900602781383784, - 8.90293705082535, - 8.905269922919194, - 8.907601398501797, - 8.909931478409145, - 8.912260163476724, - 8.914587454539515, - 8.916913352432, - 8.919237857988165, - 8.921560972041497, - 8.923882695424977, - 8.926203028971095, - 8.928521973511838, - 8.9308395298787, - 8.93315569890267, - 8.935470481414248, - 8.93778387824343, - 8.940095890219714, - 8.942406518172113, - 8.944715762929128, - 8.947023625318778, - 8.949330106168574, - 8.951635206305545, - 8.95393892655621, - 8.956241267746607, - 8.958542230702271, - 8.960841816248243, - 8.963140025209077, - 8.965436858408824, - 8.96773231667105, - 8.970026400818822, - 8.97231911167472, - 8.974610450060824, - 8.976900416798728, - 8.979189012709533, - 8.981476238613846, - 8.983762095331787, - 8.986046583682983, - 8.988329704486569, - 8.990611458561188, - 8.992891846725, - 8.99517086979567, - 8.99744852859037, - 8.999724823925794, - 9.001999756618131, - 9.004273327483101, - 9.006545537335919, - 9.00881638699132, - 9.01108587726355, - 9.013354008966369, - 9.015620782913045, - 9.017886199916362, - 9.02015026078862, - 9.022412966341628, - 9.024674317386715, - 9.026934314734717, - 9.029192959195992, - 9.031450251580408, - 9.033706192697347, - 9.03596078335571, - 9.038214024363917, - 9.040465916529895, - 9.042716460661092, - 9.044965657564477, - 9.047213508046529, - 9.049460012913247, - 9.051705172970149, - 9.053948989022267, - 9.056191461874155, - 9.058432592329881, - 9.060672381193038, - 9.062910829266734, - 9.065147937353595, - 9.067383706255768, - 9.069618136774922, - 9.071851229712243, - 9.074082985868436, - 9.076313406043733, - 9.078542491037881, - 9.080770241650152, - 9.082996658679335, - 9.085221742923746, - 9.087445495181221, - 9.089667916249116, - 9.091889006924315, - 9.094108768003219, - 9.096327200281756, - 9.098544304555377, - 9.10076008161906, - 9.102974532267295, - 9.105187657294112, - 9.107399457493056, - 9.1096099336572, - 9.111819086579144, - 9.114026917051008, - 9.116233425864445, - 9.118438613810627, - 9.120642481680255, - 9.12284503026356, - 9.125046260350297, - 9.12724617272975, - 9.129444768190726, - 9.131642047521565, - 9.13383801151013, - 9.136032660943819, - 9.138225996609552, - 9.140418019293785, - 9.142608729782495, - 9.144798128861193, - 9.146986217314923, - 9.149172995928252, - 9.151358465485279, - 9.15354262676964, - 9.155725480564495, - 9.157907027652538, - 9.160087268815996, - 9.162266204836621, - 9.164443836495703, - 9.166620164574068, - 9.168795189852062, - 9.170968913109578, - 9.173141335126031, - 9.175312456680377, - 9.177482278551102, - 9.179650801516225, - 9.181818026353303, - 9.183983953839425, - 9.186148584751214, - 9.188311919864832, - 9.190473959955971, - 9.192634705799865, - 9.194794158171275, - 9.19695231784451, - 9.199109185593402, - 9.201264762191332, - 9.203419048411211, - 9.205572045025491, - 9.207723752806158, - 9.209874172524739, - 9.212023304952295, - 9.21417115085943, - 9.216317711016286, - 9.21846298619254, - 9.220606977157415, - 9.222749684679666, - 9.224891109527594, - 9.227031252469034, - 9.229170114271371, - 9.231307695701517, - 9.233443997525939, - 9.235579020510636, - 9.237712765421152, - 9.23984523302257, - 9.241976424079517, - 9.244106339356163, - 9.246234979616219, - 9.24836234562294, - 9.250488438139124, - 9.252613257927111, - 9.254736805748786, - 9.256859082365576, - 9.258980088538456, - 9.26109982502794, - 9.263218292594095, - 9.265335491996524, - 9.26745142399438, - 9.26956608934636, - 9.27167948881071, - 9.273791623145216, - 9.275902493107216, - 9.278012099453594, - 9.280120442940776, - 9.282227524324743, - 9.284333344361016, - 9.28643790380467, - 9.28854120341032, - 9.290643243932138, - 9.292744026123842, - 9.294843550738692, - 9.29694181852951, - 9.299038830248652, - 9.301134586648038, - 9.303229088479128, - 9.305322336492937, - 9.307414331440029, - 9.309505074070517, - 9.31159456513407, - 9.313682805379901, - 9.315769795556783, - 9.317855536413031, - 9.319940028696521, - 9.322023273154677, - 9.324105270534474, - 9.326186021582446, - 9.328265527044673, - 9.330343787666791, - 9.33242080419399, - 9.33449657737102, - 9.33657110794217, - 9.3386443966513, - 9.340716444241814, - 9.342787251456674, - 9.3448568190384, - 9.346925147729062, - 9.34899223827029, - 9.351058091403269, - 9.353122707868742, - 9.355186088407006, - 9.357248233757913, - 9.359309144660878, - 9.361368821854867, - 9.363427266078412, - 9.365484478069591, - 9.36754045856605, - 9.369595208304991, - 9.371648728023175, - 9.373701018456918, - 9.375752080342098, - 9.377801914414155, - 9.379850521408084, - 9.381897902058444, - 9.383944057099352, - 9.385988987264488, - 9.388032693287089, - 9.390075175899955, - 9.39211643583545, - 9.394156473825491, - 9.396195290601568, - 9.398232886894727, - 9.400269263435575, - 9.402304420954287, - 9.404338360180597, - 9.406371081843805, - 9.408402586672768, - 9.410432875395914, - 9.41246194874123, - 9.414489807436272, - 9.416516452208157, - 9.418541883783567, - 9.420566102888749, - 9.422589110249518, - 9.42461090659125, - 9.426631492638888, - 9.428650869116945, - 9.430669036749496, - 9.432685996260183, - 9.434701748372216, - 9.436716293808376, - 9.438729633291, - 9.440741767542004, - 9.442752697282868, - 9.444762423234637, - 9.44677094611793, - 9.448778266652928, - 9.45078438555939, - 9.452789303556631, - 9.45479302136355, - 9.456795539698607, - 9.45879685927983, - 9.460796980824826, - 9.462795905050763, - 9.464793632674388, - 9.466790164412009, - 9.468785500979516, - 9.470779643092364, - 9.472772591465581, - 9.47476434681377, - 9.476754909851095, - 9.478744281291311, - 9.48073246184773, - 9.482719452233244, - 9.484705253160316, - 9.486689865340985, - 9.488673289486862, - 9.49065552630913, - 9.49263657651855, - 9.494616440825455, - 9.496595119939755, - 9.498572614570932, - 9.500548925428049, - 9.502524053219735, - 9.504497998654204, - 9.50647076243924, - 9.508442345282209, - 9.510412747890047, - 9.512381970969273, - 9.514350015225977, - 9.51631688136583, - 9.518282570094083, - 9.520247082115558, - 9.522210418134662, - 9.524172578855378, - 9.526133564981262, - 9.528093377215457, - 9.530052016260681, - 9.532009482819234, - 9.533965777592991, - 9.535920901283411, - 9.53787485459153, - 9.539827638217968, - 9.541779252862923, - 9.543729699226175, - 9.545678978007082, - 9.547627089904585, - 9.549574035617212, - 9.551519815843065, - 9.553464431279833, - 9.555407882624785, - 9.557350170574772, - 9.559291295826231, - 9.56123125907518, - 9.563170061017221, - 9.565107702347538, - 9.567044183760899, - 9.56897950595166, - 9.570913669613757, - 9.572846675440713, - 9.574778524125634, - 9.57670921636121, - 9.578638752839723, - 9.580567134253034, - 9.582494361292587, - 9.584420434649426, - 9.586345355014164, - 9.588269123077014, - 9.590191739527768, - 9.592113205055808, - 9.594033520350102, - 9.59595268609921, - 9.597870702991273, - 9.599787571714025, - 9.601703292954786, - 9.603617867400466, - 9.605531295737562, - 9.60744357865216, - 9.609354716829941, - 9.611264710956167, - 9.613173561715696, - 9.615081269792972, - 9.616987835872031, - 9.618893260636503, - 9.6207975447696, - 9.622700688954133, - 9.624602693872502, - 9.626503560206697, - 9.628403288638303, - 9.63030187984849, - 9.632199334518033, - 9.634095653327284, - 9.6359908369562, - 9.637884886084322, - 9.639777801390792, - 9.641669583554343, - 9.643560233253295, - 9.645449751165572, - 9.647338137968687, - 9.649225394339748, - 9.651111520955459, - 9.652996518492115, - 9.65488038762561, - 9.656763129031432, - 9.658644743384665, - 9.660525231359987, - 9.66240459363168, - 9.664282830873608, - 9.666159943759245, - 9.668035932961658, - 9.669910799153506, - 9.671784543007051, - 9.67365716519415, - 9.67552866638626, - 9.677399047254433, - 9.67926830846932, - 9.681136450701171, - 9.68300347461984, - 9.68486938089477, - 9.68673417019501, - 9.688597843189207, - 9.690460400545609, - 9.692321842932062, - 9.69418217101601, - 9.696041385464504, - 9.697899486944191, - 9.699756476121319, - 9.701612353661737, - 9.703467120230899, - 9.705320776493856, - 9.707173323115267, - 9.709024760759384, - 9.710875090090068, - 9.712724311770783, - 9.714572426464592, - 9.716419434834163, - 9.71826533754177, - 9.720110135249284, - 9.721953828618185, - 9.723796418309558, - 9.725637904984087, - 9.727478289302063, - 9.729317571923385, - 9.731155753507553, - 9.73299283471367, - 9.734828816200453, - 9.736663698626217, - 9.738497482648887, - 9.740330168925988, - 9.742161758114662, - 9.743992250871647, - 9.745821647853294, - 9.747649949715559, - 9.749477157114006, - 9.751303270703806, - 9.75312829113974, - 9.754952219076195, - 9.756775055167163, - 9.75859680006625, - 9.760417454426673, - 9.762237018901248, - 9.764055494142406, - 9.76587288080219, - 9.76768917953225, - 9.769504390983844, - 9.771318515807843, - 9.773131554654729, - 9.774943508174589, - 9.776754377017129, - 9.77856416183166, - 9.780372863267107, - 9.782180481972004, - 9.783987018594502, - 9.785792473782358, - 9.787596848182943, - 9.789400142443244, - 9.791202357209857, - 9.79300349312899, - 9.794803550846469, - 9.796602531007727, - 9.798400434257816, - 9.800197261241404, - 9.801993012602763, - 9.803787688985787, - 9.805581291033985, - 9.807373819390476, - 9.809165274697998, - 9.810955657598901, - 9.812744968735158, - 9.814533208748346, - 9.816320378279666, - 9.818106477969936, - 9.819891508459582, - 9.821675470388659, - 9.823458364396826, - 9.825240191123369, - 9.827020951207185, - 9.828800645286794, - 9.830579274000328, - 9.832356837985541, - 9.834133337879804, - 9.835908774320107, - 9.837683147943057, - 9.83945645938488, - 9.841228709281427, - 9.84299989826816, - 9.844770026980163, - 9.846539096052142, - 9.848307106118424, - 9.850074057812954, - 9.851839951769295, - 9.853604788620636, - 9.855368568999783, - 9.857131293539167, - 9.858892962870835, - 9.860653577626461, - 9.862413138437338, - 9.864171645934384, - 9.865929100748133, - 9.867685503508747, - 9.869440854846012, - 9.87119515538933, - 9.872948405767735, - 9.874700606609876, - 9.876451758544032, - 9.878201862198104, - 9.879950918199613, - 9.881698927175712, - 9.883445889753174, - 9.885191806558398, - 9.886936678217404, - 9.888680505355847, - 9.890423288598996, - 9.892165028571752, - 9.893905725898641, - 9.895645381203813, - 9.89738399511105, - 9.899121568243753, - 9.900858101224959, - 9.902593594677322, - 9.904328049223132, - 9.906061465484298, - 9.907793844082363, - 9.909525185638499, - 9.911255490773499, - 9.912984760107792, - 9.91471299426143, - 9.916440193854097, - 9.918166359505106, - 9.919891491833397, - 9.921615591457543, - 9.92333865899574, - 9.925060695065826, - 9.926781700285254, - 9.92850167527112, - 9.930220620640142, - 9.931938537008676, - 9.933655424992704, - 9.93537128520784, - 9.937086118269333, - 9.938799924792058, - 9.940512705390525, - 9.942224460678878, - 9.943935191270889, - 9.945644897779966, - 9.947353580819149, - 9.949061241001113, - 9.950767878938159, - 9.95247349524223, - 9.9541780905249, - 9.955881665397374, - 9.95758422047049, - 9.959285756354731, - 9.9609862736602, - 9.962685772996648, - 9.964384254973451, - 9.966081720199623, - 9.96777816928382, - 9.969473602834322, - 9.971168021459054, - 9.972861425765572, - 9.974553816361073, - 9.976245193852387, - 9.97793555884598, - 9.979624911947958, - 9.981313253764064, - 9.983000584899674, - 9.984686905959808, - 9.98637221754912, - 9.988056520271899, - 9.98973981473208, - 9.99142210153323, - 9.993103381278557, - 9.994783654570911, - 9.996462922012775, - 9.998141184206276, - 9.999818441753177, - 10.001494695254884, - 10.003169945312441, - 10.004844192526535, - 10.00651743749749, - 10.00818968082527, - 10.009860923109484, - 10.011531164949378, - 10.013200406943845, - 10.014868649691412, - 10.016535893790252, - 10.01820213983818, - 10.019867388432653, - 10.02153164017077, - 10.023194895649269, - 10.024857155464534, - 10.026518420212597, - 10.028178690489126, - 10.029837966889431, - 10.031496250008475, - 10.033153540440855, - 10.03480983878082, - 10.036465145622255, - 10.038119461558697, - 10.039772787183326, - 10.041425123088962, - 10.043076469868074, - 10.044726828112779, - 10.046376198414833, - 10.048024581365645, - 10.049671977556264, - 10.051318387577387, - 10.052963812019359, - 10.054608251472171, - 10.05625170652546, - 10.057894177768508, - 10.059535665790252, - 10.061176171179266, - 10.06281569452378, - 10.064454236411665, - 10.066091797430445, - 10.067728378167294, - 10.069363979209028, - 10.070998601142115, - 10.072632244552674, - 10.07426491002647, - 10.075896598148919, - 10.077527309505086, - 10.079157044679688, - 10.080785804257088, - 10.0824135888213, - 10.08404039895599, - 10.085666235244476, - 10.087291098269722, - 10.088914988614349, - 10.090537906860623, - 10.092159853590466, - 10.093780829385452, - 10.095400834826803, - 10.097019870495394, - 10.098637936971757, - 10.100255034836069, - 10.101871164668168, - 10.103486327047536, - 10.105100522553316, - 10.1067137517643, - 10.10832601525893, - 10.109937313615314, - 10.1115476474112, - 10.113157017224, - 10.114765423630772, - 10.11637286720824, - 10.11797934853277, - 10.119584868180393, - 10.121189426726787, - 10.122793024747292, - 10.1243956628169, - 10.125997341510262, - 10.12759806140168, - 10.129197823065116, - 10.130796627074186, - 10.132394474002169, - 10.13399136442199, - 10.13558729890624, - 10.137182278027163, - 10.138776302356664, - 10.140369372466303, - 10.141961488927295, - 10.143552652310518, - 10.145142863186503, - 10.14673212212545, - 10.148320429697204, - 10.14990778647128, - 10.151494193016847, - 10.153079649902729, - 10.15466415769742, - 10.156247716969064, - 10.157830328285472, - 10.15941199221411, - 10.160992709322107, - 10.16257248017625, - 10.16415130534299, - 10.165729185388438, - 10.167306120878365, - 10.168882112378203, - 10.170457160453045, - 10.172031265667652, - 10.173604428586437, - 10.175176649773483, - 10.17674792979253, - 10.178318269206985, - 10.179887668579914, - 10.18145612847405, - 10.183023649451785, - 10.184590232075175, - 10.186155876905945, - 10.187720584505476, - 10.189284355434816, - 10.190847190254678, - 10.192409089525437, - 10.19397005380714, - 10.195530083659488, - 10.197089179641853, - 10.198647342313272, - 10.200204572232446, - 10.201760869957742, - 10.203316236047193, - 10.204870671058499, - 10.206424175549024, - 10.2079767500758, - 10.209528395195521, - 10.211079111464556, - 10.212628899438936, - 10.214177759674358, - 10.215725692726188, - 10.217272699149461, - 10.218818779498879, - 10.220363934328809, - 10.22190816419329, - 10.223451469646024, - 10.22499385124039, - 10.226535309529428, - 10.228075845065854, - 10.229615458402044, - 10.231154150090052, - 10.232691920681596, - 10.234228770728066, - 10.235764700780523, - 10.237299711389696, - 10.238833803105983, - 10.240366976479457, - 10.241899232059858, - 10.2434305703966, - 10.244960992038763, - 10.246490497535104, - 10.248019087434049, - 10.249546762283696, - 10.251073522631813, - 10.252599369025845, - 10.254124302012903, - 10.255648322139773, - 10.257171429952916, - 10.258693625998465, - 10.260214910822224, - 10.26173528496967, - 10.26325474898596, - 10.264773303415915, - 10.266290948804034, - 10.26780768569449, - 10.269323514631138, - 10.27083843615749, - 10.272352450816749, - 10.273865559151787, - 10.275377761705146, - 10.276889059019053, - 10.278399451635403, - 10.279908940095769, - 10.2814175249414, - 10.28292520671322, - 10.28443198595183, - 10.285937863197509, - 10.287442838990208, - 10.288946913869559, - 10.29045008837487, - 10.291952363045125, - 10.293453738418986, - 10.294954215034792, - 10.296453793430565, - 10.297952474143996, - 10.299450257712458, - 10.300947144673005, - 10.302443135562363, - 10.303938230916948, - 10.305432431272843, - 10.306925737165814, - 10.308418149131311, - 10.309909667704458, - 10.31140029342006, - 10.312890026812603, - 10.31437886841625, - 10.31586681876485, - 10.317353878391925, - 10.318840047830685, - 10.320325327614015, - 10.321809718274485, - 10.323293220344343, - 10.324775834355522, - 10.326257560839633, - 10.327738400327968, - 10.329218353351507, - 10.330697420440908, - 10.33217560212651, - 10.333652898938336, - 10.335129311406094, - 10.33660484005917, - 10.338079485426638, - 10.339553248037253, - 10.341026128419454, - 10.342498127101361, - 10.343969244610783, - 10.345439481475209, - 10.346908838221813, - 10.348377315377457, - 10.34984491346868, - 10.351311633021714, - 10.352777474562469, - 10.354242438616547, - 10.355706525709229, - 10.357169736365485, - 10.358632071109971, - 10.360093530467028, - 10.361554114960683, - 10.363013825114647, - 10.364472661452323, - 10.3659306244968, - 10.367387714770844, - 10.368843932796922, - 10.370299279097182, - 10.371753754193454, - 10.373207358607266, - 10.374660092859823, - 10.37611195747203, - 10.377562952964473, - 10.379013079857422, - 10.380462338670847, - 10.381910729924396, - 10.383358254137413, - 10.384804911828928, - 10.386250703517659, - 10.387695629722016, - 10.3891396909601, - 10.390582887749698, - 10.392025220608291, - 10.393466690053046, - 10.394907296600822, - 10.39634704076817, - 10.397785923071332, - 10.399223944026238, - 10.400661104148512, - 10.402097403953467, - 10.403532843956112, - 10.404967424671142, - 10.406401146612948, - 10.40783401029561, - 10.409266016232904, - 10.410697164938293, - 10.412127456924937, - 10.413556892705689, - 10.414985472793093, - 10.416413197699386, - 10.4178400679365, - 10.419266084016062, - 10.420691246449387, - 10.422115555747487, - 10.42353901242107, - 10.424961616980537, - 10.426383369935984, - 10.4278042717972, - 10.429224323073669, - 10.430643524274572, - 10.432061875908783, - 10.433479378484872, - 10.434896032511107, - 10.436311838495447, - 10.43772679694555, - 10.43914090836877, - 10.440554173272158, - 10.44196659216246, - 10.443378165546118, - 10.444788893929271, - 10.446198777817758, - 10.447607817717111, - 10.449016014132564, - 10.450423367569043, - 10.451829878531177, - 10.453235547523292, - 10.454640375049406, - 10.456044361613245, - 10.457447507718225, - 10.458849813867465, - 10.460251280563783, - 10.461651908309694, - 10.463051697607414, - 10.464450648958856, - 10.465848762865637, - 10.467246039829066, - 10.468642480350162, - 10.470038084929634, - 10.4714328540679, - 10.472826788265069, - 10.474219888020961, - 10.475612153835092, - 10.477003586206678, - 10.478394185634635, - 10.479783952617584, - 10.481172887653845, - 10.48256099124144, - 10.483948263878096, - 10.485334706061238, - 10.486720318287995, - 10.488105101055195, - 10.489489054859378, - 10.490872180196776, - 10.492254477563328, - 10.49363594745468, - 10.495016590366173, - 10.49639640679286, - 10.497775397229493, - 10.499153562170529, - 10.500530902110127, - 10.501907417542153, - 10.50328310896018, - 10.504657976857475, - 10.506032021727023, - 10.507405244061502, - 10.508777644353303, - 10.51014922309452, - 10.511519980776955, - 10.512889917892107, - 10.51425903493119, - 10.51562733238512, - 10.51699481074452, - 10.518361470499718, - 10.51972731214075, - 10.52109233615736, - 10.522456543038993, - 10.523819933274808, - 10.525182507353666, - 10.526544265764139, - 10.527905208994504, - 10.529265337532747, - 10.530624651866562, - 10.531983152483349, - 10.53334083987022, - 10.534697714513992, - 10.536053776901191, - 10.537409027518057, - 10.53876346685053, - 10.540117095384263, - 10.541469913604622, - 10.542821921996678, - 10.544173121045214, - 10.54552351123472, - 10.546873093049399, - 10.54822186697316, - 10.549569833489631, - 10.55091699308214, - 10.552263346233731, - 10.55360889342716, - 10.554953635144892, - 10.556297571869102, - 10.557640704081678, - 10.558983032264221, - 10.560324556898038, - 10.561665278464156, - 10.563005197443308, - 10.564344314315942, - 10.565682629562216, - 10.567020143662004, - 10.56835685709489, - 10.569692770340172, - 10.571027883876859, - 10.572362198183678, - 10.573695713739065, - 10.57502843102117, - 10.57636035050786, - 10.577691472676714, - 10.579021798005023, - 10.580351326969794, - 10.58168006004775, - 10.583007997715328, - 10.584335140448676, - 10.585661488723664, - 10.58698704301587, - 10.588311803800591, - 10.58963577155284, - 10.590958946747346, - 10.592281329858551, - 10.593602921360612, - 10.594923721727406, - 10.596243731432526, - 10.59756295094928, - 10.598881380750694, - 10.600199021309507, - 10.601515873098181, - 10.602831936588892, - 10.60414721225353, - 10.605461700563708, - 10.606775401990756, - 10.608088317005718, - 10.60940044607936, - 10.610711789682163, - 10.61202234828433, - 10.61333212235578, - 10.61464111236615, - 10.615949318784802, - 10.617256742080805, - 10.618563382722959, - 10.619869241179776, - 10.621174317919492, - 10.622478613410061, - 10.623782128119156, - 10.625084862514173, - 10.626386817062222, - 10.627687992230143, - 10.628988388484485, - 10.630288006291527, - 10.631586846117266, - 10.632884908427418, - 10.634182193687423, - 10.63547870236244, - 10.636774434917351, - 10.63806939181676, - 10.639363573524994, - 10.640656980506096, - 10.64194961322384, - 10.643241472141717, - 10.64453255772294, - 10.645822870430447, - 10.647112410726898, - 10.648401179074677, - 10.649689175935887, - 10.650976401772363, - 10.652262857045653, - 10.653548542217038, - 10.654833457747518, - 10.656117604097815, - 10.657400981728383, - 10.65868359109939, - 10.659965432670738, - 10.661246506902048, - 10.662526814252669, - 10.66380635518167, - 10.665085130147851, - 10.666363139609738, - 10.667640384025574, - 10.668916863853337, - 10.670192579550726, - 10.671467531575168, - 10.672741720383812, - 10.674015146433542, - 10.67528781018096, - 10.676559712082398, - 10.677830852593912, - 10.679101232171293, - 10.68037085127005, - 10.681639710345426, - 10.682907809852384, - 10.684175150245624, - 10.685441731979568, - 10.686707555508365, - 10.687972621285896, - 10.689236929765766, - 10.690500481401314, - 10.691763276645602, - 10.693025315951425, - 10.694286599771306, - 10.695547128557495, - 10.696806902761972, - 10.698065922836449, - 10.699324189232364, - 10.700581702400887, - 10.701838462792917, - 10.703094470859083, - 10.704349727049747, - 10.705604231814997, - 10.706857985604653, - 10.708110988868269, - 10.709363242055126, - 10.710614745614235, - 10.711865499994346, - 10.713115505643929, - 10.714364763011195, - 10.715613272544081, - 10.716861034690261, - 10.718108049897136, - 10.71935431861184, - 10.720599841281242, - 10.721844618351941, - 10.723088650270272, - 10.724331937482297, - 10.725574480433817, - 10.726816279570363, - 10.728057335337201, - 10.729297648179326, - 10.730537218541473, - 10.731776046868106, - 10.733014133603424, - 10.734251479191364, - 10.735488084075591, - 10.73672394869951, - 10.737959073506254, - 10.739193458938699, - 10.740427105439448, - 10.741660013450845, - 10.742892183414966, - 10.744123615773624, - 10.745354310968365, - 10.746584269440472, - 10.747813491630966, - 10.749041977980601, - 10.75026972892987, - 10.751496744919, - 10.752723026387956, - 10.753948573776437, - 10.75517338752388, - 10.756397468069462, - 10.757620815852093, - 10.758843431310423, - 10.760065314882835, - 10.761286467007459, - 10.76250688812215, - 10.763726578664512, - 10.764945539071881, - 10.766163769781333, - 10.76738127122968, - 10.768598043853478, - 10.769814088089015, - 10.771029404372324, - 10.772243993139172, - 10.773457854825068, - 10.774670989865259, - 10.775883398694733, - 10.777095081748215, - 10.77830603946017, - 10.77951627226481, - 10.780725780596077, - 10.781934564887658, - 10.78314262557298, - 10.78434996308521, - 10.785556577857257, - 10.78676247032177, - 10.787967640911138, - 10.789172090057495, - 10.79037581819271, - 10.791578825748397, - 10.792781113155915, - 10.793982680846359, - 10.795183529250567, - 10.796383658799122, - 10.79758306992235, - 10.798781763050313, - 10.799979738612821, - 10.801176997039425, - 10.802373538759424, - 10.803569364201847, - 10.804764473795478, - 10.805958867968842, - 10.807152547150205, - 10.808345511767577, - 10.809537762248713, - 10.810729299021112, - 10.811920122512017, - 10.813110233148414, - 10.814299631357034, - 10.815488317564355, - 10.816676292196595, - 10.817863555679718, - 10.819050108439438, - 10.820235950901209, - 10.82142108349023, - 10.822605506631449, - 10.82378922074956, - 10.824972226268995, - 10.826154523613942, - 10.82733611320833, - 10.828516995475836, - 10.829697170839877, - 10.830876639723627, - 10.83205540255, - 10.83323345974166, - 10.834410811721012, - 10.835587458910215, - 10.836763401731174, - 10.837938640605536, - 10.839113175954704, - 10.840287008199825, - 10.841460137761787, - 10.842632565061239, - 10.843804290518568, - 10.844975314553915, - 10.846145637587167, - 10.84731526003796, - 10.848484182325677, - 10.849652404869454, - 10.850819928088173, - 10.851986752400467, - 10.85315287822472, - 10.854318305979055, - 10.85548303608136, - 10.856647068949263, - 10.857810405000148, - 10.85897304465114, - 10.860134988319125, - 10.861296236420731, - 10.862456789372343, - 10.863616647590092, - 10.864775811489864, - 10.865934281487291, - 10.86709205799776, - 10.86824914143641, - 10.86940553221813, - 10.870561230757556, - 10.871716237469084, - 10.872870552766857, - 10.874024177064772, - 10.875177110776477, - 10.876329354315374, - 10.877480908094615, - 10.878631772527108, - 10.879781948025508, - 10.88093143500223, - 10.88208023386944, - 10.883228345039054, - 10.884375768922743, - 10.885522505931936, - 10.886668556477808, - 10.887813920971293, - 10.88895859982308, - 10.890102593443608, - 10.891245902243073, - 10.892388526631423, - 10.893530467018365, - 10.894671723813357, - 10.89581229742561, - 10.8969521882641, - 10.898091396737545, - 10.899229923254426, - 10.900367768222978, - 10.901504932051193, - 10.902641415146817, - 10.90377721791735, - 10.904912340770052, - 10.906046784111938, - 10.907180548349778, - 10.908313633890101, - 10.909446041139189, - 10.910577770503084, - 10.911708822387585, - 10.912839197198243, - 10.913968895340373, - 10.915097917219047, - 10.916226263239086, - 10.917353933805078, - 10.918480929321365, - 10.919607250192048, - 10.920732896820983, - 10.92185786961179, - 10.922982168967843, - 10.924105795292276, - 10.925228748987978, - 10.926351030457603, - 10.927472640103561, - 10.928593578328021, - 10.929713845532913, - 10.930833442119923, - 10.931952368490498, - 10.933070625045845, - 10.934188212186932, - 10.935305130314486, - 10.936421379828992, - 10.9375369611307, - 10.938651874619616, - 10.93976612069551, - 10.940879699757907, - 10.941992612206102, - 10.943104858439142, - 10.94421643885584, - 10.945327353854767, - 10.94643760383426, - 10.947547189192415, - 10.948656110327088, - 10.9497643676359, - 10.950871961516233, - 10.95197889236523, - 10.953085160579795, - 10.954190766556598, - 10.95529571069207, - 10.956399993382405, - 10.957503615023558, - 10.95860657601125, - 10.959708876740962, - 10.960810517607941, - 10.961911499007194, - 10.963011821333497, - 10.964111484981382, - 10.965210490345152, - 10.966308837818872, - 10.967406527796367, - 10.96850356067123, - 10.969599936836822, - 10.97069565668626, - 10.97179072061243, - 10.972885129007986, - 10.973978882265344, - 10.975071980776681, - 10.976164424933945, - 10.977256215128847, - 10.978347351752868, - 10.979437835197244, - 10.980527665852987, - 10.981616844110873, - 10.98270537036144, - 10.983793244994995, - 10.984880468401611, - 10.985967040971127, - 10.98705296309315, - 10.988138235157054, - 10.989222857551978, - 10.990306830666828, - 10.99139015489028, - 10.992472830610772, - 10.993554858216518, - 10.994636238095488, - 10.995716970635431, - 10.996797056223858, - 10.997876495248052, - 10.998955288095056, - 11.000033435151689, - 11.001110936804535, - 11.00218779343995, - 11.003264005444054, - 11.00433957320274, - 11.005414497101668, - 11.006488777526267, - 11.007562414861734, - 11.00863540949304, - 11.00970776180492, - 11.010779472181884, - 11.011850541008206, - 11.012920968667936, - 11.013990755544889, - 11.015059902022653, - 11.016128408484585, - 11.017196275313816, - 11.018263502893241, - 11.019330091605534, - 11.020396041833132, - 11.02146135395825, - 11.022526028362867, - 11.02359006542874, - 11.024653465537396, - 11.02571622907013, - 11.026778356408009, - 11.027839847931878, - 11.02890070402235, - 11.029960925059806, - 11.031020511424407, - 11.032079463496082, - 11.033137781654533, - 11.034195466279236, - 11.03525251774944, - 11.036308936444163, - 11.0373647227422, - 11.03841987702212, - 11.039474399662263, - 11.04052829104074, - 11.041581551535442, - 11.042634181524031, - 11.043686181383942, - 11.044737551492384, - 11.04578829222634, - 11.046838403962573, - 11.047887887077609, - 11.048936741947756, - 11.0499849689491, - 11.051032568457499, - 11.052079540848577, - 11.053125886497748, - 11.05417160578019, - 11.055216699070863, - 11.0562611667445, - 11.057305009175609, - 11.058348226738476, - 11.05939081980716, - 11.060432788755497, - 11.061474133957104, - 11.062514855785365, - 11.063554954613448, - 11.064594430814296, - 11.065633284760626, - 11.066671516824936, - 11.0677091273795, - 11.068746116796365, - 11.069782485447362, - 11.070818233704093, - 11.071853361937942, - 11.072887870520066, - 11.073921759821406, - 11.074955030212676, - 11.07598768206437, - 11.077019715746765, - 11.078051131629904, - 11.079081930083621, - 11.080112111477522, - 11.081141676180993, - 11.082170624563197, - 11.083198956993082, - 11.08422667383937, - 11.085253775470562, - 11.086280262254942, - 11.087306134560572, - 11.08833139275529, - 11.089356037206722, - 11.090380068282265, - 11.091403486349101, - 11.09242629177419, - 11.093448484924275, - 11.09447006616588, - 11.095491035865303, - 11.09651139438863, - 11.097531142101726, - 11.098550279370235, - 11.099568806559581, - 11.100586724034976, - 11.101604032161404, - 11.102620731303642, - 11.103636821826234, - 11.10465230409352, - 11.105667178469613, - 11.106681445318413, - 11.107695105003597, - 11.108708157888627, - 11.10972060433675, - 11.110732444710994, - 11.111743679374165, - 11.112754308688858, - 11.113764333017448, - 11.114773752722094, - 11.115782568164738, - 11.116790779707106, - 11.117798387710705, - 11.11880539253683, - 11.119811794546553, - 11.120817594100737, - 11.121822791560025, - 11.122827387284843, - 11.123831381635409, - 11.124834774971712, - 11.125837567653535, - 11.126839760040447, - 11.127841352491798, - 11.12884234536672, - 11.129842739024136, - 11.13084253382275, - 11.131841730121055, - 11.132840328277325, - 11.133838328649622, - 11.134835731595793, - 11.135832537473473, - 11.136828746640077, - 11.137824359452816, - 11.138819376268676, - 11.139813797444438, - 11.140807623336663, - 11.141800854301705, - 11.142793490695697, - 11.143785532874565, - 11.144776981194022, - 11.145767836009563, - 11.146758097676475, - 11.147747766549829, - 11.148736842984487, - 11.149725327335094, - 11.150713219956087, - 11.151700521201688, - 11.152687231425908, - 11.15367335098255, - 11.154658880225194, - 11.155643819507223, - 11.156628169181793, - 11.157611929601863, - 11.158595101120174, - 11.159577684089255, - 11.160559678861423, - 11.161541085788791, - 11.162521905223253, - 11.163502137516497, - 11.164481783019998, - 11.165460842085022, - 11.166439315062627, - 11.167417202303657, - 11.168394504158748, - 11.169371220978325, - 11.170347353112605, - 11.17132290091159, - 11.172297864725083, - 11.173272244902666, - 11.174246041793719, - 11.175219255747411, - 11.1761918871127, - 11.177163936238342, - 11.178135403472874, - 11.179106289164631, - 11.180076593661738, - 11.181046317312111, - 11.18201546046346, - 11.182984023463282, - 11.183952006658874, - 11.184919410397315, - 11.185886235025485, - 11.186852480890051, - 11.187818148337476, - 11.188783237714011, - 11.189747749365708, - 11.190711683638401, - 11.191675040877724, - 11.192637821429104, - 11.193600025637757, - 11.194561653848698, - 11.19552270640673, - 11.196483183656454, - 11.197443085942265, - 11.198402413608346, - 11.199361166998678, - 11.200319346457036, - 11.201276952326989, - 11.202233984951903, - 11.203190444674933, - 11.20414633183903, - 11.205101646786943, - 11.206056389861216, - 11.207010561404182, - 11.207964161757976, - 11.208917191264522, - 11.209869650265544, - 11.21082153910256, - 11.211772858116882, - 11.212723607649622, - 11.21367378804168, - 11.214623399633762, - 11.215572442766362, - 11.216520917779775, - 11.217468825014087, - 11.218416164809188, - 11.219362937504755, - 11.220309143440272, - 11.221254782955011, - 11.222199856388047, - 11.223144364078246, - 11.22408830636428, - 11.22503168358461, - 11.225974496077498, - 11.226916744181002, - 11.22785842823298, - 11.228799548571086, - 11.22974010553277, - 11.230680099455284, - 11.23161953067568, - 11.232558399530797, - 11.233496706357283, - 11.234434451491584, - 11.235371635269939, - 11.236308258028389, - 11.237244320102777, - 11.238179821828735, - 11.239114763541705, - 11.240049145576924, - 11.240982968269426, - 11.241916231954047, - 11.242848936965425, - 11.24378108363799, - 11.24471267230598, - 11.245643703303426, - 11.246574176964165, - 11.247504093621831, - 11.248433453609861, - 11.249362257261488, - 11.250290504909747, - 11.251218196887478, - 11.252145333527315, - 11.253071915161696, - 11.253997942122863, - 11.254923414742857, - 11.255848333353514, - 11.25677269828648, - 11.2576965098732, - 11.258619768444918, - 11.259542474332683, - 11.260464627867345, - 11.261386229379555, - 11.262307279199764, - 11.26322777765823, - 11.264147725085008, - 11.265067121809965, - 11.265985968162756, - 11.266904264472851, - 11.26782201106952, - 11.268739208281827, - 11.269655856438652, - 11.270571955868672, - 11.271487506900367, - 11.272402509862019, - 11.273316965081717, - 11.274230872887355, - 11.27514423360662, - 11.276057047567019, - 11.276969315095847, - 11.277881036520219, - 11.278792212167037, - 11.279702842363022, - 11.28061292743469, - 11.281522467708369, - 11.282431463510184, - 11.28333991516607, - 11.284247823001765, - 11.285155187342813, - 11.286062008514563, - 11.286968286842166, - 11.287874022650584, - 11.288779216264578, - 11.289683868008723, - 11.290587978207391, - 11.291491547184766, - 11.292394575264833, - 11.293297062771389, - 11.29419901002803, - 11.295100417358166, - 11.296001285085007, - 11.296901613531574, - 11.29780140302069, - 11.298700653874988, - 11.299599366416908, - 11.3004975409687, - 11.30139517785241, - 11.3022922773899, - 11.303188839902845, - 11.304084865712714, - 11.304980355140788, - 11.305875308508165, - 11.30676972613574, - 11.307663608344214, - 11.308556955454108, - 11.309449767785742, - 11.310342045659246, - 11.31123378939456, - 11.31212499931143, - 11.313015675729416, - 11.313905818967879, - 11.314795429345994, - 11.315684507182741, - 11.316573052796917, - 11.317461066507118, - 11.318348548631755, - 11.31923549948905, - 11.320121919397028, - 11.32100780867353, - 11.321893167636203, - 11.322777996602507, - 11.32366229588971, - 11.324546065814888, - 11.325429306694932, - 11.326312018846536, - 11.327194202586215, - 11.328075858230285, - 11.328956986094877, - 11.329837586495932, - 11.330717659749203, - 11.33159720617025, - 11.332476226074451, - 11.333354719776988, - 11.334232687592857, - 11.33511012983687, - 11.335987046823643, - 11.336863438867608, - 11.337739306283009, - 11.3386146493839, - 11.339489468484148, - 11.340363763897429, - 11.341237535937239, - 11.342110784916878, - 11.342983511149464, - 11.343855714947924, - 11.344727396625, - 11.345598556493245, - 11.346469194865028, - 11.347339312052526, - 11.348208908367734, - 11.349077984122458, - 11.349946539628316, - 11.350814575196742, - 11.351682091138983, - 11.3525490877661, - 11.353415565388964, - 11.354281524318267, - 11.355146964864508, - 11.356011887338004, - 11.356876292048886, - 11.357740179307099, - 11.3586035494224, - 11.359466402704362, - 11.360328739462378, - 11.361190560005648, - 11.362051864643192, - 11.362912653683841, - 11.363772927436242, - 11.364632686208862, - 11.365491930309979, - 11.366350660047686, - 11.367208875729894, - 11.368066577664326, - 11.368923766158526, - 11.36978044151985, - 11.370636604055473, - 11.371492254072383, - 11.372347391877383, - 11.3732020177771, - 11.37405613207797, - 11.374909735086247, - 11.375762827108003, - 11.376615408449128, - 11.377467479415325, - 11.378319040312117, - 11.379170091444843, - 11.380020633118662, - 11.380870665638545, - 11.381720189309284, - 11.38256920443549, - 11.383417711321584, - 11.384265710271817, - 11.385113201590247, - 11.385960185580757, - 11.386806662547041, - 11.387652632792621, - 11.388498096620825, - 11.389343054334812, - 11.390187506237552, - 11.391031452631836, - 11.391874893820269, - 11.392717830105283, - 11.393560261789126, - 11.39440218917386, - 11.395243612561371, - 11.396084532253365, - 11.396924948551366, - 11.397764861756716, - 11.398604272170578, - 11.399443180093936, - 11.400281585827589, - 11.401119489672164, - 11.4019568919281, - 11.40279379289566, - 11.403630192874928, - 11.404466092165807, - 11.405301491068021, - 11.406136389881112, - 11.406970788904449, - 11.407804688437214, - 11.408638088778414, - 11.409470990226877, - 11.410303393081254, - 11.411135297640012, - 11.411966704201445, - 11.412797613063663, - 11.413628024524602, - 11.414457938882018, - 11.415287356433488, - 11.416116277476412, - 11.41694470230801, - 11.417772631225327, - 11.41860006452523, - 11.419427002504403, - 11.42025344545936, - 11.421079393686433, - 11.421904847481779, - 11.422729807141373, - 11.423554272961018, - 11.424378245236339, - 11.42520172426278, - 11.426024710335614, - 11.426847203749935, - 11.427669204800658, - 11.428490713782523, - 11.429311730990094, - 11.43013225671776, - 11.43095229125973, - 11.431771834910043, - 11.432590887962553, - 11.433409450710945, - 11.434227523448728, - 11.435045106469234, - 11.435862200065616, - 11.436678804530857, - 11.437494920157762, - 11.438310547238961, - 11.439125686066909, - 11.439940336933883, - 11.440754500131993, - 11.441568175953162, - 11.44238136468915, - 11.443194066631536, - 11.444006282071728, - 11.444818011300955, - 11.445629254610274, - 11.44644001229057, - 11.447250284632549, - 11.448060071926747, - 11.448869374463525, - 11.449678192533073, - 11.450486526425399, - 11.451294376430345, - 11.452101742837577, - 11.452908625936589, - 11.453715026016699, - 11.454520943367053, - 11.455326378276625, - 11.456131331034216, - 11.456935801928454, - 11.457739791247791, - 11.45854329928051, - 11.459346326314721, - 11.460148872638358, - 11.46095093853919, - 11.461752524304805, - 11.462553630222626, - 11.4633542565799, - 11.464154403663704, - 11.464954071760939, - 11.46575326115834, - 11.466551972142469, - 11.467350204999713, - 11.46814796001629, - 11.468945237478247, - 11.469742037671459, - 11.470538360881632, - 11.471334207394294, - 11.472129577494814, - 11.472924471468378, - 11.47371888960001, - 11.474512832174556, - 11.475306299476701, - 11.476099291790948, - 11.476891809401641, - 11.477683852592946, - 11.478475421648863, - 11.479266516853217, - 11.48005713848967, - 11.480847286841708, - 11.481636962192653, - 11.482426164825652, - 11.483214895023687, - 11.484003153069567, - 11.484790939245933, - 11.485578253835257, - 11.486365097119844, - 11.487151469381825, - 11.487937370903165, - 11.488722801965663, - 11.489507762850947, - 11.490292253840472, - 11.491076275215532, - 11.491859827257246, - 11.492642910246571, - 11.49342552446429, - 11.494207670191022, - 11.494989347707218, - 11.495770557293156, - 11.496551299228953, - 11.497331573794552, - 11.498111381269736, - 11.498890721934112, - 11.499669596067127, - 11.500448003948055, - 11.501225945856007, - 11.502003422069924, - 11.502780432868581, - 11.503556978530588, - 11.504333059334385, - 11.505108675558246, - 11.505883827480282, - 11.506658515378435, - 11.507432739530477, - 11.508206500214019, - 11.508979797706505, - 11.509752632285212, - 11.51052500422725, - 11.511296913809563, - 11.51206836130893, - 11.512839347001968, - 11.513609871165121, - 11.514379934074675, - 11.515149536006744, - 11.515918677237282, - 11.516687358042073, - 11.517455578696744, - 11.518223339476744, - 11.51899064065737, - 11.519757482513745, - 11.520523865320834, - 11.521289789353435, - 11.52205525488618, - 11.522820262193537, - 11.523584811549812, - 11.524348903229141, - 11.525112537505505, - 11.525875714652715, - 11.526638434944415, - 11.527400698654093, - 11.52816250605507, - 11.528923857420502, - 11.52968475302338, - 11.53044519313654, - 11.531205178032643, - 11.531964707984192, - 11.532723783263533, - 11.53348240414284, - 11.534240570894125, - 11.534998283789244, - 11.535755543099883, - 11.536512349097569, - 11.537268702053666, - 11.538024602239375, - 11.538780049925734, - 11.539535045383621, - 11.540289588883748, - 11.54104368069667, - 11.541797321092778, - 11.542550510342299, - 11.543303248715297, - 11.544055536481682, - 11.544807373911194, - 11.545558761273417, - 11.546309698837772, - 11.547060186873518, - 11.547810225649753, - 11.548559815435413, - 11.549308956499276, - 11.550057649109954, - 11.550805893535907, - 11.551553690045425, - 11.552301038906641, - 11.553047940387529, - 11.5537943947559, - 11.554540402279407, - 11.555285963225543, - 11.556031077861636, - 11.556775746454859, - 11.557519969272224, - 11.558263746580582, - 11.559007078646626, - 11.55974996573689, - 11.560492408117742, - 11.5612344060554, - 11.561975959815914, - 11.562717069665183, - 11.563457735868939, - 11.56419795869276, - 11.564937738402065, - 11.56567707526211, - 11.566415969537996, - 11.567154421494664, - 11.567892431396896, - 11.568629999509316, - 11.56936712609639, - 11.570103811422426, - 11.570840055751573, - 11.57157585934782, - 11.572311222475003, - 11.573046145396795, - 11.573780628376712, - 11.574514671678116, - 11.575248275564206, - 11.57598144029803, - 11.57671416614247, - 11.577446453360258, - 11.578178302213967, - 11.578909712966011, - 11.579640685878648, - 11.580371221213976, - 11.581101319233943, - 11.581830980200333, - 11.58256020437478, - 11.583288992018753, - 11.584017343393574, - 11.5847452587604, - 11.585472738380236, - 11.586199782513933, - 11.58692639142218, - 11.587652565365516, - 11.588378304604317, - 11.589103609398814, - 11.589828480009068, - 11.590552916694996, - 11.591276919716352, - 11.59200048933274, - 11.592723625803607, - 11.593446329388243, - 11.594168600345782, - 11.594890438935208, - 11.595611845415343, - 11.596332820044859, - 11.597053363082274, - 11.597773474785946, - 11.598493155414083, - 11.599212405224735, - 11.599931224475801, - 11.600649613425023, - 11.601367572329991, - 11.602085101448138, - 11.602802201036745, - 11.60351887135294, - 11.604235112653692, - 11.604950925195821, - 11.605666309235993, - 11.606381265030716, - 11.607095792836352, - 11.607809892909103, - 11.608523565505019, - 11.609236810879997, - 11.609949629289785, - 11.610662020989972, - 11.611373986235995, - 11.612085525283142, - 11.612796638386543, - 11.613507325801178, - 11.614217587781877, - 11.614927424583312, - 11.615636836460006, - 11.616345823666327, - 11.617054386456497, - 11.617762525084576, - 11.618470239804479, - 11.61917753086997, - 11.619884398534657, - 11.620590843051994, - 11.62129686467529, - 11.6220024636577, - 11.622707640252225, - 11.623412394711716, - 11.624116727288873, - 11.624820638236246, - 11.62552412780623, - 11.626227196251074, - 11.626929843822872, - 11.627632070773567, - 11.628333877354953, - 11.629035263818674, - 11.62973623041622, - 11.630436777398936, - 11.63113690501801, - 11.631836613524484, - 11.63253590316925, - 11.633234774203046, - 11.633933226876465, - 11.634631261439944, - 11.635328878143774, - 11.636026077238098, - 11.636722858972902, - 11.637419223598032, - 11.638115171363175, - 11.638810702517876, - 11.63950581731153, - 11.640200515993374, - 11.640894798812509, - 11.641588666017872, - 11.642282117858267, - 11.642975154582338, - 11.643667776438582, - 11.644359983675347, - 11.64505177654084, - 11.645743155283107, - 11.646434120150056, - 11.64712467138944, - 11.647814809248867, - 11.648504533975794, - 11.649193845817535, - 11.64988274502125, - 11.650571231833954, - 11.651259306502515, - 11.651946969273652, - 11.652634220393933, - 11.653321060109787, - 11.654007488667485, - 11.654693506313162, - 11.655379113292792, - 11.656064309852214, - 11.656749096237116, - 11.657433472693034, - 11.658117439465363, - 11.65880099679935, - 11.659484144940093, - 11.660166884132545, - 11.660849214621512, - 11.661531136651652, - 11.662212650467481, - 11.662893756313363, - 11.663574454433517, - 11.664254745072022, - 11.6649346284728, - 11.665614104879637, - 11.666293174536168, - 11.666971837685884, - 11.667650094572126, - 11.668327945438095, - 11.669005390526845, - 11.669682430081284, - 11.67035906434417, - 11.671035293558125, - 11.67171111796562, - 11.672386537808977, - 11.673061553330381, - 11.67373616477187, - 11.674410372375334, - 11.675084176382517, - 11.675757577035025, - 11.676430574574315, - 11.677103169241697, - 11.677775361278341, - 11.678447150925273, - 11.67911853842337, - 11.679789524013371, - 11.680460107935863, - 11.681130290431296, - 11.681800071739973, - 11.682469452102055, - 11.683138431757557, - 11.683807010946351, - 11.684475189908165, - 11.685142968882586, - 11.685810348109055, - 11.686477327826868, - 11.687143908275184, - 11.687810089693013, - 11.688475872319223, - 11.68914125639254, - 11.68980624215155, - 11.69047082983469, - 11.691135019680257, - 11.69179881192641, - 11.692462206811156, - 11.693125204572368, - 11.693787805447773, - 11.694450009674956, - 11.695111817491357, - 11.695773229134282, - 11.696434244840884, - 11.697094864848184, - 11.697755089393054, - 11.69841491871223, - 11.699074353042299, - 11.699733392619713, - 11.70039203768078, - 11.701050288461667, - 11.701708145198399, - 11.702365608126861, - 11.703022677482794, - 11.7036793535018, - 11.704335636419337, - 11.704991526470732, - 11.705647023891155, - 11.70630212891565, - 11.706956841779114, - 11.707611162716299, - 11.708265091961826, - 11.708918629750169, - 11.709571776315663, - 11.710224531892502, - 11.710876896714744, - 11.7115288710163, - 11.71218045503095, - 11.712831648992323, - 11.713482453133915, - 11.714132867689084, - 11.714782892891044, - 11.715432528972872, - 11.716081776167503, - 11.716730634707732, - 11.71737910482622, - 11.718027186755483, - 11.718674880727901, - 11.719322186975713, - 11.719969105731023, - 11.720615637225789, - 11.721261781691837, - 11.721907539360847, - 11.72255291046437, - 11.723197895233811, - 11.723842493900438, - 11.724486706695382, - 11.725130533849633, - 11.725773975594048, - 11.726417032159338, - 11.727059703776083, - 11.727701990674719, - 11.728343893085553, - 11.72898541123874, - 11.729626545364313, - 11.730267295692157, - 11.73090766245202, - 11.731547645873519, - 11.732187246186125, - 11.73282646361918, - 11.733465298401882, - 11.734103750763294, - 11.734741820932344, - 11.735379509137818, - 11.736016815608373, - 11.736653740572521, - 11.737290284258641, - 11.737926446894976, - 11.73856222870963, - 11.739197629930572, - 11.739832650785635, - 11.740467291502513, - 11.741101552308768, - 11.74173543343182, - 11.74236893509896, - 11.743002057537337, - 11.743634800973965, - 11.744267165635724, - 11.74489915174936, - 11.745530759541477, - 11.74616198923855, - 11.746792841066915, - 11.747423315252771, - 11.748053412022184, - 11.748683131601085, - 11.74931247421527, - 11.749941440090396, - 11.75057002945199, - 11.751198242525442, - 11.751826079536006, - 11.7524535407088, - 11.753080626268812, - 11.75370733644089, - 11.754333671449752, - 11.754959631519979, - 11.75558521687602, - 11.756210427742182, - 11.756835264342648, - 11.75745972690146, - 11.75808381564253, - 11.758707530789632, - 11.759330872566409, - 11.759953841196369, - 11.760576436902884, - 11.7611986599092, - 11.761820510438419, - 11.762441988713514, - 11.76306309495733, - 11.76368382939257, - 11.764304192241806, - 11.76492418372748, - 11.7655438040719, - 11.766163053497237, - 11.766781932225536, - 11.7674004404787, - 11.768018578478504, - 11.768636346446595, - 11.769253744604478, - 11.769870773173533, - 11.770487432375003, - 11.771103722429999, - 11.771719643559502, - 11.77233519598436, - 11.772950379925286, - 11.773565195602865, - 11.774179643237547, - 11.774793723049651, - 11.775407435259364, - 11.776020780086741, - 11.776633757751707, - 11.777246368474053, - 11.777858612473437, - 11.778470489969393, - 11.779082001181317, - 11.779693146328471, - 11.780303925629992, - 11.780914339304887, - 11.781524387572025, - 11.782134070650148, - 11.782743388757867, - 11.783352342113663, - 11.783960930935882, - 11.784569155442744, - 11.785177015852335, - 11.785784512382616, - 11.786391645251411, - 11.786998414676416, - 11.787604820875197, - 11.78821086406519, - 11.788816544463701, - 11.789421862287904, - 11.790026817754844, - 11.790631411081439, - 11.791235642484473, - 11.7918395121806, - 11.792443020386349, - 11.793046167318117, - 11.793648953192168, - 11.79425137822464, - 11.794853442631544, - 11.795455146628758, - 11.796056490432028, - 11.796657474256977, - 11.797258098319098, - 11.79785836283375, - 11.79845826801617, - 11.79905781408146, - 11.799657001244595, - 11.800255829720426, - 11.800854299723667, - 11.801452411468912, - 11.802050165170618, - 11.802647561043123, - 11.80324459930063, - 11.803841280157215, - 11.804437603826827, - 11.805033570523285, - 11.805629180460283, - 11.806224433851385, - 11.806819330910027, - 11.807413871849521, - 11.808008056883043, - 11.80860188622365, - 11.809195360084267, - 11.809788478677694, - 11.8103812422166, - 11.810973650913532, - 11.811565704980902, - 11.812157404631003, - 11.812748750075997, - 11.813339741527916, - 11.813930379198673, - 11.814520663300048, - 11.815110594043693, - 11.815700171641142, - 11.816289396303791, - 11.816878268242917, - 11.81746678766967, - 11.81805495479507, - 11.818642769830014, - 11.81923023298527, - 11.819817344471481, - 11.820404104499168, - 11.82099051327872, - 11.8215765710204, - 11.822162277934348, - 11.82274763423058, - 11.823332640118982, - 11.823917295809318, - 11.824501601511225, - 11.825085557434212, - 11.825669163787666, - 11.826252420780847, - 11.826835328622888, - 11.827417887522802, - 11.828000097689474, - 11.828581959331663, - 11.829163472658001, - 11.829744637877003, - 11.83032545519705, - 11.830905924826405, - 11.831486046973202, - 11.832065821845454, - 11.832645249651046, - 11.83322433059774, - 11.833803064893175, - 11.834381452744863, - 11.834959494360193, - 11.835537189946432, - 11.83611453971072, - 11.836691543860075, - 11.83726820260139, - 11.83784451614143, - 11.838420484686846, - 11.838996108444158, - 11.839571387619765, - 11.84014632241994, - 11.840720913050832, - 11.841295159718474, - 11.841869062628767, - 11.842442621987491, - 11.843015838000307, - 11.84358871087275, - 11.844161240810227, - 11.844733428018031, - 11.845305272701328, - 11.84587677506516, - 11.846447935314446, - 11.847018753653986, - 11.847589230288454, - 11.848159365422402, - 11.84872915926026, - 11.84929861200634, - 11.849867723864824, - 11.850436495039773, - 11.851004925735133, - 11.851573016154717, - 11.852140766502227, - 11.852708176981237, - 11.853275247795198, - 11.853841979147441, - 11.85440837124118, - 11.854974424279499, - 11.855540138465367, - 11.856105514001626, - 11.856670551091003, - 11.857235249936098, - 11.85779961073939, - 11.858363633703243, - 11.858927319029894, - 11.859490666921458, - 11.860053677579934, - 11.860616351207197, - 11.861178688005001, - 11.861740688174981, - 11.862302351918649, - 11.862863679437396, - 11.863424670932499, - 11.863985326605107, - 11.864545646656248, - 11.86510563128684, - 11.865665280697666, - 11.8662245950894, - 11.866783574662593, - 11.867342219617672, - 11.86790053015495, - 11.868458506474616, - 11.86901614877674, - 11.869573457261275, - 11.870130432128049, - 11.870687073576773, - 11.871243381807043, - 11.871799357018325, - 11.872354999409977, - 11.872910309181233, - 11.873465286531202, - 11.874019931658884, - 11.874574244763153, - 11.875128226042765, - 11.87568187569636, - 11.876235193922454, - 11.876788180919451, - 11.877340836885631, - 11.877893162019156, - 11.878445156518069, - 11.8789968205803, - 11.879548154403649, - 11.88009915818581, - 11.880649832124353, - 11.881200176416728, - 11.88175019126027, - 11.882299876852194, - 11.882849233389601, - 11.883398261069464, - 11.88394696008865, - 11.884495330643903, - 11.885043372931845, - 11.885591087148988, - 11.886138473491721, - 11.886685532156319, - 11.887232263338937, - 11.887778667235612, - 11.888324744042265, - 11.888870493954704, - 11.889415917168607, - 11.889961013879551, - 11.890505784282984, - 11.891050228574244, - 11.891594346948546, - 11.892138139600997, - 11.892681606726574, - 11.89322474852015, - 11.893767565176478, - 11.894310056890188, - 11.894852223855802, - 11.895394066267716, - 11.895935584320222, - 11.896476778207486, - 11.89701764812356, - 11.897558194262384, - 11.898098416817774, - 11.898638315983439, - 11.899177891952965, - 11.899717144919823, - 11.900256075077374, - 11.900794682618857, - 11.901332967737396, - 11.901870930626004, - 11.902408571477572, - 11.90294589048488, - 11.903482887840592, - 11.90401956373726, - 11.90455591836731, - 11.905091951923062, - 11.90562766459672, - 11.90616305658037, - 11.906698128065985, - 11.90723287924542, - 11.907767310310422, - 11.908301421452617, - 11.908835212863519, - 11.909368684734526, - 11.909901837256921, - 11.910434670621873, - 11.910967185020441, - 11.911499380643562, - 11.912031257682061, - 11.912562816326655, - 11.913094056767937, - 11.913624979196397, - 11.9141555838024, - 11.9146858707762, - 11.915215840307944, - 11.915745492587659, - 11.916274827805259, - 11.916803846150541, - 11.917332547813198, - 11.9178609329828, - 11.918389001848807, - 11.918916754600566, - 11.919444191427313, - 11.919971312518165, - 11.920498118062131, - 11.921024608248102, - 11.92155078326486, - 11.922076643301075, - 11.922602188545298, - 11.923127419185972, - 11.923652335411425, - 11.924176937409875, - 11.924701225369425, - 11.925225199478065, - 11.925748859923674, - 11.92627220689402, - 11.926795240576753, - 11.927317961159417, - 11.92784036882944, - 11.928362463774137, - 11.928884246180715, - 11.929405716236266, - 11.92992687412777, - 11.930447720042096, - 11.930968254166, - 11.931488476686129, - 11.932008387789015, - 11.932527987661079, - 11.933047276488631, - 11.93356625445787, - 11.934084921754884, - 11.934603278565646, - 11.935121325076024, - 11.935639061471766, - 11.936156487938518, - 11.93667360466181, - 11.937190411827057, - 11.937706909619575, - 11.938223098224556, - 11.938738977827091, - 11.939254548612151, - 11.939769810764608, - 11.94028476446921, - 11.940799409910605, - 11.941313747273325, - 11.941827776741793, - 11.942341498500323, - 11.942854912733115, - 11.943368019624263, - 11.943880819357748, - 11.944393312117441, - 11.944905498087104, - 11.945417377450392, - 11.945928950390842, - 11.946440217091887, - 11.946951177736851, - 11.947461832508944, - 11.94797218159127, - 11.94848222516682, - 11.94899196341848, - 11.949501396529023, - 11.950010524681112, - 11.950519348057302, - 11.951027866840043, - 11.951536081211668, - 11.952043991354406, - 11.952551597450373, - 11.953058899681583, - 11.953565898229932, - 11.954072593277214, - 11.954578985005114, - 11.9550850735952, - 11.955590859228941, - 11.956096342087694, - 11.956601522352708, - 11.95710640020512, - 11.957610975825961, - 11.958115249396156, - 11.958619221096518, - 11.959122891107754, - 11.959626259610463, - 11.960129326785133, - 11.960632092812148, - 11.961134557871778, - 11.961636722144195, - 11.962138585809452, - 11.962640149047502, - 11.963141412038189, - 11.963642374961243, - 11.964143037996296, - 11.964643401322865, - 11.965143465120367, - 11.965643229568101, - 11.966142694845269, - 11.96664186113096, - 11.967140728604157, - 11.967639297443736, - 11.968137567828466, - 11.96863553993701, - 11.969133213947922, - 11.969630590039651, - 11.970127668390537, - 11.970624449178818, - 11.971120932582616, - 11.971617118779957, - 11.972113007948753, - 11.972608600266813, - 11.97310389591184, - 11.973598895061428, - 11.974093597893068, - 11.97458800458414, - 11.975082115311922, - 11.975575930253584, - 11.97606944958619, - 11.9765626734867, - 11.977055602131966, - 11.977548235698734, - 11.978040574363645, - 11.978532618303234, - 11.97902436769393, - 11.979515822712058, - 11.980006983533835, - 11.980497850335375, - 11.980988423292684, - 11.981478702581667, - 11.981968688378116, - 11.982458380857723, - 11.982947780196078, - 11.98343688656866, - 11.983925700150843, - 11.984414221117902, - 11.984902449645002, - 11.985390385907204, - 11.985878030079464, - 11.986365382336633, - 11.98685244285346, - 11.987339211804587, - 11.98782568936455, - 11.988311875707785, - 11.98879777100862, - 11.98928337544128, - 11.989768689179886, - 11.990253712398454, - 11.990738445270894, - 11.991222887971016, - 11.991707040672527, - 11.99219090354902, - 11.992674476773994, - 11.993157760520843, - 11.993640754962852, - 11.994123460273208, - 11.994605876624991, - 11.99508800419118, - 11.995569843144645, - 11.99605139365816, - 11.99653265590439, - 11.9970136300559, - 11.997494316285147, - 11.99797471476449, - 11.998454825666181, - 11.998934649162376, - 11.999414185425115, - 11.999893434626347, - 12.000372396937916, - 12.000851072531555, - 12.001329461578903, - 12.001807564251495, - 12.002285380720759, - 12.002762911158023, - 12.003240155734513, - 12.003717114621352, - 12.00419378798956, - 12.004670176010057, - 12.005146278853655, - 12.005622096691072, - 12.006097629692913, - 12.006572878029695, - 12.00704784187182, - 12.007522521389593, - 12.00799691675322, - 12.0084710281328, - 12.008944855698333, - 12.009418399619717, - 12.009891660066748, - 12.010364637209118, - 12.010837331216424, - 12.011309742258153, - 12.011781870503698, - 12.012253716122347, - 12.012725279283282, - 12.013196560155597, - 12.01366755890827, - 12.014138275710188, - 12.014608710730132, - 12.01507886413678, - 12.01554873609872, - 12.016018326784422, - 12.016487636362271, - 12.016956665000544, - 12.017425412867416, - 12.017893880130964, - 12.018362066959163, - 12.018829973519889, - 12.019297599980915, - 12.019764946509918, - 12.020232013274468, - 12.020698800442043, - 12.021165308180013, - 12.02163153665565, - 12.022097486036133, - 12.022563156488527, - 12.02302854817981, - 12.023493661276852, - 12.02395849594643, - 12.024423052355212, - 12.024887330669776, - 12.02535133105659, - 12.025815053682035, - 12.02627849871238, - 12.026741666313802, - 12.027204556652377, - 12.027667169894078, - 12.028129506204785, - 12.028591565750274, - 12.029053348696223, - 12.029514855208209, - 12.029976085451715, - 12.03043703959212, - 12.030897717794705, - 12.031358120224654, - 12.031818247047052, - 12.032278098426882, - 12.03273767452903, - 12.033196975518287, - 12.033656001559338, - 12.034114752816775, - 12.03457322945509, - 12.035031431638675, - 12.035489359531827, - 12.035947013298742, - 12.036404393103517, - 12.036861499110154, - 12.037318331482554, - 12.03777489038452, - 12.038231175979758, - 12.03868718843188, - 12.039142927904388, - 12.039598394560699, - 12.040053588564126, - 12.040508510077887, - 12.040963159265097, - 12.041417536288778, - 12.041871641311857, - 12.042325474497156, - 12.042779036007405, - 12.043232326005233, - 12.043685344653177, - 12.04413809211367, - 12.044590568549054, - 12.045042774121569, - 12.04549470899336, - 12.045946373326474, - 12.046397767282864, - 12.046848891024382, - 12.047299744712785, - 12.047750328509734, - 12.048200642576791, - 12.048650687075424, - 12.049100462167003, - 12.049549968012798, - 12.04999920477399, - 12.050448172611656, - 12.050896871686781, - 12.051345302160254, - 12.051793464192865, - 12.05224135794531, - 12.052688983578184, - 12.053136341251994, - 12.053583431127144, - 12.054030253363944, - 12.054476808122612, - 12.054923095563263, - 12.05536911584592, - 12.055814869130513, - 12.05626035557687, - 12.056705575344727, - 12.057150528593725, - 12.057595215483408, - 12.058039636173227, - 12.058483790822532, - 12.058927679590582, - 12.05937130263654, - 12.059814660119473, - 12.060257752198353, - 12.060700579032058, - 12.06114314077937, - 12.061585437598975, - 12.062027469649465, - 12.062469237089337, - 12.062910740076994, - 12.06335197877074, - 12.063792953328791, - 12.064233663909263, - 12.06467411067018, - 12.06511429376947, - 12.065554213364969, - 12.065993869614413, - 12.066433262675448, - 12.066872392705626, - 12.067311259862402, - 12.067749864303138, - 12.068188206185104, - 12.068626285665472, - 12.069064102901322, - 12.069501658049639, - 12.069938951267316, - 12.07037598271115, - 12.070812752537845, - 12.071249260904011, - 12.071685507966166, - 12.072121493880728, - 12.07255721880403, - 12.072992682892307, - 12.0734278863017, - 12.073862829188258, - 12.074297511707934, - 12.074731934016592, - 12.075166096270001, - 12.075599998623835, - 12.076033641233673, - 12.076467024255008, - 12.076900147843235, - 12.077333012153654, - 12.077765617341479, - 12.078197963561822, - 12.078630050969709, - 12.079061879720072, - 12.07949344996775, - 12.079924761867485, - 12.080355815573933, - 12.080786611241654, - 12.081217149025116, - 12.081647429078696, - 12.082077451556675, - 12.082507216613243, - 12.0829367244025, - 12.083365975078452, - 12.083794968795013, - 12.084223705706005, - 12.084652185965156, - 12.085080409726107, - 12.0855083771424, - 12.085936088367491, - 12.086363543554743, - 12.086790742857422, - 12.087217686428712, - 12.087644374421696, - 12.08807080698937, - 12.088496984284637, - 12.08892290646031, - 12.089348573669108, - 12.089773986063662, - 12.090199143796509, - 12.090624047020095, - 12.091048695886776, - 12.091473090548815, - 12.091897231158386, - 12.092321117867568, - 12.092744750828354, - 12.093168130192643, - 12.093591256112244, - 12.094014128738873, - 12.094436748224162, - 12.094859114719641, - 12.09528122837676, - 12.095703089346872, - 12.096124697781242, - 12.096546053831043, - 12.09696715764736, - 12.097388009381183, - 12.097808609183415, - 12.09822895720487, - 12.09864905359627, - 12.099068898508245, - 12.099488492091336, - 12.099907834495994, - 12.100326925872583, - 12.100745766371372, - 12.101164356142544, - 12.101582695336187, - 12.102000784102307, - 12.102418622590811, - 12.102836210951525, - 12.103253549334177, - 12.103670637888415, - 12.104087476763787, - 12.104504066109762, - 12.104920406075708, - 12.105336496810914, - 12.105752338464573, - 12.106167931185793, - 12.106583275123588, - 12.10699837042689, - 12.107413217244533, - 12.107827815725265, - 12.108242166017753, - 12.108656268270561, - 12.109070122632177, - 12.109483729250991, - 12.109897088275307, - 12.110310199853343, - 12.110723064133227, - 12.111135681262994, - 12.111548051390598, - 12.111960174663896, - 12.112372051230663, - 12.112783681238582, - 12.11319506483525, - 12.113606202168173, - 12.11401709338477, - 12.114427738632376, - 12.11483813805823, - 12.115248291809488, - 12.115658200033213, - 12.116067862876388, - 12.116477280485903, - 12.11688645300856, - 12.117295380591072, - 12.117704063380065, - 12.118112501522083, - 12.118520695163573, - 12.1189286444509, - 12.11933634953034, - 12.119743810548082, - 12.120151027650227, - 12.120558000982786, - 12.120964730691687, - 12.121371216922771, - 12.121777459821786, - 12.122183459534398, - 12.122589216206185, - 12.122994729982635, - 12.123400001009148, - 12.123805029431047, - 12.124209815393556, - 12.124614359041816, - 12.125018660520885, - 12.125422719975727, - 12.125826537551228, - 12.12623011339218, - 12.126633447643291, - 12.127036540449184, - 12.127439391954391, - 12.12784200230336, - 12.128244371640456, - 12.128646500109951, - 12.129048387856038, - 12.129450035022815, - 12.129851441754301, - 12.130252608194425, - 12.130653534487031, - 12.131054220775876, - 12.131454667204636, - 12.131854873916893, - 12.132254841056147, - 12.132654568765812, - 12.13305405718922, - 12.133453306469608, - 12.133852316750133, - 12.134251088173869, - 12.1346496208838, - 12.135047915022826, - 12.135445970733759, - 12.13584378815933, - 12.13624136744218, - 12.136638708724867, - 12.137035812149866, - 12.137432677859561, - 12.137829305996256, - 12.138225696702166, - 12.138621850119424, - 12.139017766390078, - 12.139413445656084, - 12.139808888059324, - 12.140204093741586, - 12.14059906284458, - 12.140993795509923, - 12.141388291879156, - 12.141782552093732, - 12.142176576295014, - 12.14257036462429, - 12.142963917222756, - 12.143357234231527, - 12.14375031579163, - 12.144143162044012, - 12.144535773129535, - 12.144928149188972, - 12.145320290363019, - 12.14571219679228, - 12.14610386861728, - 12.146495305978458, - 12.146886509016172, - 12.147277477870691, - 12.147668212682204, - 12.148058713590812, - 12.14844898073654, - 12.148839014259316, - 12.149228814298999, - 12.149618380995353, - 12.150007714488066, - 12.150396814916737, - 12.150785682420885, - 12.151174317139942, - 12.151562719213262, - 12.151950888780108, - 12.152338825979665, - 12.152726530951035, - 12.153114003833235, - 12.153501244765197, - 12.153888253885773, - 12.154275031333732, - 12.154661577247756, - 12.155047891766449, - 12.155433975028327, - 12.155819827171827, - 12.156205448335303, - 12.156590838657023, - 12.156975998275175, - 12.157360927327863, - 12.15774562595311, - 12.158130094288854, - 12.158514332472954, - 12.158898340643182, - 12.159282118937229, - 12.159665667492705, - 12.160048986447137, - 12.16043207593797, - 12.160814936102566, - 12.161197567078204, - 12.161579969002084, - 12.161962142011319, - 12.162344086242944, - 12.162725801833911, - 12.163107288921088, - 12.163488547641263, - 12.163869578131143, - 12.164250380527351, - 12.16463095496643, - 12.16501130158484, - 12.165391420518961, - 12.165771311905088, - 12.166150975879436, - 12.16653041257814, - 12.166909622137254, - 12.167288604692748, - 12.167667360380511, - 12.168045889336351, - 12.168424191695996, - 12.16880226759509, - 12.169180117169201, - 12.16955774055381, - 12.169935137884318, - 12.170312309296047, - 12.17068925492424, - 12.171065974904053, - 12.171442469370565, - 12.171818738458773, - 12.172194782303595, - 12.172570601039869, - 12.172946194802345, - 12.1733215637257, - 12.173696707944531, - 12.174071627593346, - 12.174446322806581, - 12.174820793718586, - 12.175195040463636, - 12.175569063175923, - 12.175942861989554, - 12.176316437038563, - 12.1766897884569, - 12.177062916378436, - 12.177435820936958, - 12.177808502266181, - 12.178180960499732, - 12.178553195771164, - 12.178925208213945, - 12.179296997961465, - 12.179668565147036, - 12.18003990990389, - 12.180411032365175, - 12.180781932663963, - 12.181152610933248, - 12.181523067305939, - 12.181893301914869, - 12.182263314892792, - 12.182633106372382, - 12.183002676486232, - 12.183372025366856, - 12.18374115314669, - 12.18411005995809, - 12.184478745933335, - 12.184847211204618, - 12.18521545590406, - 12.185583480163704, - 12.185951284115504, - 12.186318867891345, - 12.186686231623028, - 12.187053375442277, - 12.187420299480738, - 12.187787003869975, - 12.188153488741476, - 12.188519754226649, - 12.188885800456825, - 12.189251627563253, - 12.189617235677106, - 12.18998262492948, - 12.190347795451387, - 12.190712747373768, - 12.19107748082748, - 12.191441995943304, - 12.19180629285194, - 12.192170371684014, - 12.192534232570074, - 12.19289787564058, - 12.19326130102593, - 12.193624508856429, - 12.193987499262313, - 12.194350272373738, - 12.19471282832078, - 12.195075167233439, - 12.195437289241639, - 12.19579919447522, - 12.196160883063953, - 12.196522355137523, - 12.196883610825543, - 12.197244650257545, - 12.197605473562986, - 12.197966080871241, - 12.198326472311615, - 12.19868664801333, - 12.199046608105533, - 12.199406352717292, - 12.199765881977598, - 12.200125196015366, - 12.200484294959434, - 12.20084317893856, - 12.20120184808143, - 12.201560302516649, - 12.201918542372743, - 12.202276567778169, - 12.202634378861298, - 12.202991975750429, - 12.203349358573785, - 12.203706527459511, - 12.204063482535672, - 12.204420223930263, - 12.204776751771195, - 12.205133066186312, - 12.205489167303368, - 12.205845055250053, - 12.206200730153975, - 12.206556192142665, - 12.206911441343582, - 12.207266477884103, - 12.207621301891532, - 12.207975913493096, - 12.208330312815946, - 12.208684499987157, - 12.209038475133731, - 12.209392238382586, - 12.209745789860571, - 12.210099129694457, - 12.21045225801094, - 12.210805174936636, - 12.211157880598094, - 12.211510375121776, - 12.211862658634077, - 12.212214731261314, - 12.212566593129724, - 12.212918244365476, - 12.213269685094657, - 12.213620915443283, - 12.213971935537291, - 12.214322745502544, - 12.214673345464833, - 12.215023735549867, - 12.215373915883285, - 12.21572388659065, - 12.216073647797447, - 12.21642319962909, - 12.216772542210915, - 12.217121675668185, - 12.217470600126083, - 12.217819315709724, - 12.218167822544146, - 12.218516120754307, - 12.2188642104651, - 12.21921209180133, - 12.219559764887741, - 12.219907229848994, - 12.22025448680968, - 12.220601535894307, - 12.22094837722732, - 12.221295010933082, - 12.221641437135883, - 12.221987655959941, - 12.222333667529396, - 12.222679471968315, - 12.223025069400691, - 12.223370459950447, - 12.223715643741421, - 12.22406062089739, - 12.224405391542046, - 12.224749955799014, - 12.22509431379184, - 12.225438465644002, - 12.225782411478898, - 12.226126151419855, - 12.226469685590127, - 12.22681301411289, - 12.227156137111255, - 12.227499054708248, - 12.22784176702683, - 12.228184274189884, - 12.228526576320222, - 12.22886867354058, - 12.229210565973622, - 12.229552253741941, - 12.229893736968052, - 12.230235015774399, - 12.230576090283352, - 12.23091696061721, - 12.231257626898193, - 12.231598089248454, - 12.231938347790074, - 12.23227840264505, - 12.232618253935321, - 12.232957901782742, - 12.233297346309099, - 12.233636587636104, - 12.233975625885398, - 12.234314461178547, - 12.234653093637048, - 12.234991523382318, - 12.23532975053571, - 12.235667775218499, - 12.236005597551886, - 12.236343217657005, - 12.236680635654913, - 12.237017851666597, - 12.23735486581297, - 12.237691678214874, - 12.238028288993076, - 12.238364698268276, - 12.238700906161094, - 12.239036912792088, - 12.239372718281732, - 12.239708322750438, - 12.240043726318538, - 12.2403789291063, - 12.240713931233913, - 12.241048732821495, - 12.2413833339891, - 12.241717734856698, - 12.242051935544199, - 12.242385936171429, - 12.242719736858152, - 12.243053337724056, - 12.243386738888761, - 12.243719940471811, - 12.244052942592681, - 12.24438574537077, - 12.244718348925415, - 12.245050753375871, - 12.24538295884133, - 12.245714965440905, - 12.246046773293644, - 12.246378382518522, - 12.24670979323444, - 12.247041005560236, - 12.247372019614664, - 12.247702835516415, - 12.248033453384112, - 12.248363873336299, - 12.248694095491453, - 12.24902411996798, - 12.249353946884218, - 12.249683576358429, - 12.250013008508803, - 12.250342243453467, - 12.250671281310472, - 12.251000122197802, - 12.25132876623336, - 12.251657213534992, - 12.251985464220466, - 12.252313518407483, - 12.252641376213667, - 12.25296903775658, - 12.253296503153708, - 12.25362377252247, - 12.253950845980212, - 12.254277723644208, - 12.254604405631671, - 12.25493089205973, - 12.255257183045458, - 12.25558327870585, - 12.255909179157829, - 12.256234884518253, - 12.25656039490391, - 12.256885710431515, - 12.257210831217712, - 12.257535757379081, - 12.25786048903213, - 12.258185026293294, - 12.258509369278938, - 12.258833518105366, - 12.259157472888802, - 12.259481233745404, - 12.259804800791263, - 12.2601281741424, - 12.260451353914762, - 12.260774340224232, - 12.261097133186619, - 12.261419732917666, - 12.261742139533048, - 12.262064353148366, - 12.262386373879155, - 12.26270820184088, - 12.263029837148936, - 12.263351279918652, - 12.263672530265286, - 12.263993588304023, - 12.26431445414999, - 12.26463512791823, - 12.264955609723733, - 12.265275899681408, - 12.265595997906098, - 12.265915904512582, - 12.266235619615564, - 12.266555143329686, - 12.266874475769516, - 12.267193617049555, - 12.267512567284234, - 12.26783132658792, - 12.268149895074911, - 12.268468272859431, - 12.268786460055638, - 12.269104456777622, - 12.269422263139408, - 12.26973987925495, - 12.270057305238131, - 12.270374541202772, - 12.27069158726262, - 12.27100844353136, - 12.2713251101226, - 12.271641587149889, - 12.271957874726702, - 12.27227397296645, - 12.272589881982475, - 12.272905601888048, - 12.27322113279638, - 12.273536474820604, - 12.273851628073794, - 12.274166592668951, - 12.27448136871901, - 12.274795956336838, - 12.275110355635237, - 12.275424566726938, - 12.275738589724604, - 12.276052424740836, - 12.276366071888162, - 12.276679531279045, - 12.27699280302588, - 12.277305887240997, - 12.277618784036655, - 12.277931493525045, - 12.278244015818299, - 12.278556351028474, - 12.278868499267562, - 12.279180460647485, - 12.279492235280108, - 12.279803823277218, - 12.28011522475054, - 12.28042643981173, - 12.280737468572383, - 12.281048311144017, - 12.281358967638093, - 12.281669438166, - 12.281979722839063, - 12.282289821768536, - 12.282599735065615, - 12.282909462841417, - 12.283219005207004, - 12.283528362273366, - 12.283837534151424, - 12.28414652095204, - 12.284455322786005, - 12.284763939764046, - 12.285072371996817, - 12.285380619594914, - 12.285688682668864, - 12.285996561329124, - 12.286304255686092, - 12.286611765850097, - 12.286919091931399, - 12.287226234040194, - 12.287533192286613, - 12.28783996678072, - 12.28814655763251, - 12.288452964951924, - 12.28875918884882, - 12.289065229433007, - 12.289371086814212, - 12.289676761102111, - 12.289982252406302, - 12.290287560836328, - 12.290592686501663, - 12.290897629511706, - 12.291202389975806, - 12.29150696800324, - 12.291811363703212, - 12.292115577184875, - 12.292419608557303, - 12.292723457929515, - 12.29302712541046, - 12.293330611109019, - 12.293633915134015, - 12.2939370375942, - 12.294239978598263, - 12.29454273825483, - 12.294845316672456, - 12.295147713959638, - 12.295449930224803, - 12.295751965576317, - 12.296053820122477, - 12.29635549397152, - 12.296656987231612, - 12.296958300010859, - 12.2972594324173, - 12.297560384558915, - 12.29786115654361, - 12.298161748479231, - 12.298462160473562, - 12.298762392634318, - 12.299062445069154, - 12.299362317885658, - 12.299662011191348, - 12.299961525093691, - 12.300260859700076, - 12.300560015117838, - 12.300858991454241, - 12.30115778881649, - 12.30145640731172, - 12.301754847047008, - 12.302053108129359, - 12.302351190665723, - 12.302649094762982, - 12.302946820527952, - 12.303244368067384, - 12.303541737487974, - 12.303838928896342, - 12.304135942399055, - 12.30443277810261, - 12.304729436113442, - 12.305025916537922, - 12.305322219482354, - 12.305618345052986, - 12.305914293355997, - 12.306210064497503, - 12.306505658583557, - 12.306801075720148, - 12.307096316013203, - 12.307391379568584, - 12.30768626649209, - 12.307980976889455, - 12.308275510866356, - 12.308569868528402, - 12.308864049981135, - 12.309158055330043, - 12.309451884680541, - 12.309745538137989, - 12.310039015807678, - 12.310332317794842, - 12.310625444204646, - 12.310918395142195, - 12.311211170712532, - 12.311503771020636, - 12.31179619617142, - 12.312088446269742, - 12.312380521420389, - 12.312672421728088, - 12.312964147297507, - 12.313255698233245, - 12.313547074639846, - 12.313838276621786, - 12.314129304283478, - 12.314420157729273, - 12.314710837063465, - 12.315001342390278, - 12.315291673813876, - 12.315581831438365, - 12.315871815367782, - 12.316161625706108, - 12.316451262557253, - 12.316740726025078, - 12.317030016213367, - 12.317319133225855, - 12.317608077166206, - 12.317896848138025, - 12.318185446244856, - 12.31847387159018, - 12.318762124277415, - 12.319050204409919, - 12.319338112090987, - 12.319625847423852, - 12.319913410511687, - 12.320200801457599, - 12.320488020364637, - 12.32077506733579, - 12.321061942473982, - 12.321348645882075, - 12.321635177662872, - 12.32192153791911, - 12.32220772675347, - 12.32249374426857, - 12.322779590566965, - 12.323065265751147, - 12.323350769923552, - 12.32363610318655, - 12.323921265642452, - 12.324206257393506, - 12.324491078541902, - 12.324775729189765, - 12.325060209439162, - 12.325344519392093, - 12.325628659150505, - 12.325912628816281, - 12.326196428491242, - 12.326480058277149, - 12.3267635182757, - 12.327046808588532, - 12.327329929317226, - 12.327612880563299, - 12.327895662428206, - 12.328178275013341, - 12.328460718420041, - 12.32874299274958, - 12.329025098103171, - 12.329307034581968, - 12.32958880228706, - 12.32987040131948, - 12.330151831780205, - 12.330433093770138, - 12.330714187390134, - 12.330995112740982, - 12.331275869923413, - 12.331556459038094, - 12.331836880185634, - 12.332117133466586, - 12.332397218981436, - 12.332677136830613, - 12.332956887114484, - 12.333236469933361, - 12.333515885387492, - 12.33379513357706, - 12.334074214602202, - 12.334353128562979, - 12.334631875559403, - 12.334910455691421, - 12.335188869058925, - 12.335467115761743, - 12.335745195899642, - 12.336023109572334, - 12.33630085687947, - 12.336578437920638, - 12.336855852795365, - 12.33713310160313, - 12.337410184443337, - 12.337687101415344, - 12.33796385261844, - 12.338240438151862, - 12.33851685811478, - 12.338793112606309, - 12.339069201725506, - 12.339345125571363, - 12.339620884242821, - 12.339896477838755, - 12.34017190645798, - 12.34044717019926, - 12.340722269161292, - 12.340997203442715, - 12.341271973142113, - 12.34154657835801, - 12.341821019188867, - 12.342095295733088, - 12.342369408089024, - 12.342643356354957, - 12.342917140629115, - 12.343190761009673, - 12.343464217594734, - 12.343737510482352, - 12.344010639770524, - 12.344283605557179, - 12.344556407940196, - 12.344829047017392, - 12.345101522886523, - 12.345373835645292, - 12.345645985391341, - 12.345917972222251, - 12.34618979623555, - 12.346461457528699, - 12.346732956199112, - 12.347004292344135, - 12.34727546606106, - 12.347546477447121, - 12.347817326599493, - 12.348088013615293, - 12.348358538591578, - 12.34862890162535, - 12.348899102813553, - 12.349169142253068, - 12.349439020040727, - 12.349708736273291, - 12.349978291047476, - 12.350247684459932, - 12.350516916607257, - 12.350785987585985, - 12.351054897492595, - 12.351323646423511, - 12.351592234475097, - 12.351860661743657, - 12.35212892832544, - 12.35239703431664, - 12.352664979813385, - 12.352932764911753, - 12.353200389707762, - 12.353467854297373, - 12.353735158776491, - 12.354002303240959, - 12.354269287786567, - 12.354536112509045, - 12.354802777504068, - 12.355069282867252, - 12.355335628694155, - 12.35560181508028, - 12.355867842121073, - 12.356133709911921, - 12.356399418548156, - 12.356664968125049, - 12.35693035873782, - 12.357195590481624, - 12.357460663451567, - 12.357725577742695, - 12.357990333449996, - 12.358254930668402, - 12.358519369492788, - 12.35878365001797, - 12.359047772338714, - 12.359311736549722, - 12.359575542745644, - 12.359839191021068, - 12.360102681470533, - 12.360366014188516, - 12.360629189269437, - 12.36089220680766, - 12.3611550668975, - 12.361417769633201, - 12.361680315108968, - 12.361942703418933, - 12.362204934657182, - 12.362467008917742, - 12.362728926294581, - 12.36299068688162, - 12.363252290772706, - 12.363513738061652, - 12.363775028842197, - 12.364036163208032, - 12.36429714125279, - 12.364557963070048, - 12.36481862875333, - 12.3650791383961, - 12.365339492091769, - 12.365599689933688, - 12.365859732015155, - 12.366119618429412, - 12.366379349269646, - 12.366638924628985, - 12.366898344600505, - 12.367157609277228, - 12.36741671875211, - 12.367675673118063, - 12.367934472467939, - 12.368193116894533, - 12.368451606490584, - 12.36870994134878, - 12.368968121561752, - 12.36922614722207, - 12.369484018422256, - 12.36974173525477, - 12.369999297812024, - 12.37025670618637, - 12.370513960470104, - 12.37077106075547, - 12.371028007134651, - 12.371284799699781, - 12.371541438542938, - 12.371797923756143, - 12.372054255431362, - 12.372310433660505, - 12.372566458535433, - 12.372822330147942, - 12.37307804858978, - 12.37333361395264, - 12.373589026328158, - 12.373844285807916, - 12.37409939248344, - 12.374354346446202, - 12.37460914778762, - 12.374863796599056, - 12.37511829297182, - 12.375372636997163, - 12.375626828766286, - 12.37588086837033, - 12.37613475590039, - 12.376388491447495, - 12.376642075102627, - 12.376895506956712, - 12.377148787100623, - 12.377401915625176, - 12.377654892621136, - 12.377907718179209, - 12.37816039239005, - 12.37841291534426, - 12.378665287132385, - 12.378917507844914, - 12.379169577572288, - 12.379421496404886, - 12.379673264433041, - 12.379924881747025, - 12.380176348437061, - 12.380427664593313, - 12.380678830305897, - 12.380929845664872, - 12.381180710760242, - 12.38143142568196, - 12.38168199051992, - 12.381932405363969, - 12.382182670303896, - 12.382432785429437, - 12.382682750830272, - 12.38293256659603, - 12.383182232816292, - 12.383431749580573, - 12.383681116978345, - 12.383930335099018, - 12.384179404031956, - 12.384428323866464, - 12.384677094691796, - 12.384925716597156, - 12.385174189671686, - 12.38542251400448, - 12.385670689684583, - 12.38591871680098, - 12.3861665954426, - 12.38641432569833, - 12.386661907656993, - 12.386909341407364, - 12.387156627038165, - 12.387403764638062, - 12.387650754295672, - 12.387897596099554, - 12.38814429013822, - 12.388390836500122, - 12.388637235273665, - 12.388883486547199, - 12.38912959040902, - 12.389375546947372, - 12.389621356250448, - 12.389867018406383, - 12.390112533503265, - 12.390357901629127, - 12.390603122871948, - 12.390848197319658, - 12.391093125060129, - 12.391337906181187, - 12.391582540770598, - 12.391827028916081, - 12.392071370705299, - 12.392315566225866, - 12.392559615565345, - 12.392803518811236, - 12.393047276051, - 12.393290887372038, - 12.393534352861698, - 12.39377767260728, - 12.394020846696032, - 12.394263875215143, - 12.394506758251756, - 12.394749495892963, - 12.394992088225798, - 12.395234535337247, - 12.395476837314243, - 12.395718994243666, - 12.395961006212346, - 12.396202873307061, - 12.396444595614533, - 12.396686173221434, - 12.39692760621439, - 12.397168894679966, - 12.397410038704681, - 12.397651038375, - 12.39789189377734, - 12.39813260499806, - 12.398373172123469, - 12.39861359523983, - 12.398853874433348, - 12.399094009790177, - 12.399334001396422, - 12.399573849338138, - 12.399813553701323, - 12.400053114571929, - 12.400292532035849, - 12.400531806178932, - 12.400770937086977, - 12.401009924845724, - 12.401248769540866, - 12.401487471258045, - 12.40172603008285, - 12.40196444610082, - 12.402202719397442, - 12.402440850058154, - 12.40267883816834, - 12.402916683813334, - 12.40315438707842, - 12.403391948048828, - 12.40362936680974, - 12.403866643446289, - 12.404103778043545, - 12.404340770686547, - 12.404577621460263, - 12.404814330449623, - 12.405050897739505, - 12.40528732341473, - 12.405523607560072, - 12.405759750260254, - 12.405995751599951, - 12.406231611663783, - 12.406467330536321, - 12.406702908302085, - 12.406938345045544, - 12.40717364085112, - 12.407408795803178, - 12.40764380998604, - 12.407878683483972, - 12.40811341638119, - 12.40834800876186, - 12.408582460710104, - 12.408816772309983, - 12.409050943645514, - 12.409284974800663, - 12.409518865859344, - 12.409752616905426, - 12.409986228022717, - 12.41021969929499, - 12.41045303080595, - 12.410686222639269, - 12.410919274878557, - 12.41115218760738, - 12.411384960909253, - 12.41161759486764, - 12.411850089565952, - 12.412082445087556, - 12.412314661515765, - 12.412546738933846, - 12.412778677425013, - 12.413010477072428, - 12.413242137959207, - 12.41347366016842, - 12.413705043783077, - 12.413936288886147, - 12.414167395560545, - 12.41439836388914, - 12.414629193954745, - 12.414859885840128, - 12.41509043962801, - 12.415320855401056, - 12.415551133241888, - 12.415781273233073, - 12.41601127545713, - 12.416241139996533, - 12.4164708669337, - 12.416700456351007, - 12.416929908330774, - 12.417159222955274, - 12.417388400306729, - 12.41761744046732, - 12.417846343519164, - 12.418075109544347, - 12.418303738624891, - 12.418532230842775, - 12.418760586279925, - 12.418988805018225, - 12.419216887139507, - 12.419444832725551, - 12.41967264185809, - 12.419900314618811, - 12.420127851089346, - 12.420355251351282, - 12.420582515486156, - 12.42080964357546, - 12.42103663570063, - 12.421263491943062, - 12.421490212384091, - 12.421716797105018, - 12.421943246187086, - 12.422169559711492, - 12.422395737759384, - 12.422621780411859, - 12.422847687749972, - 12.423073459854718, - 12.42329909680706, - 12.423524598687896, - 12.42374996557809, - 12.423975197558443, - 12.424200294709722, - 12.424425257112635, - 12.424650084847844, - 12.424874777995967, - 12.42509933663757, - 12.425323760853171, - 12.425548050723242, - 12.425772206328206, - 12.425996227748435, - 12.426220115064256, - 12.426443868355946, - 12.426667487703739, - 12.426890973187811, - 12.427114324888302, - 12.427337542885294, - 12.427560627258822, - 12.427783578088885, - 12.428006395455418, - 12.428229079438319, - 12.42845163011743, - 12.428674047572553, - 12.428896331883438, - 12.42911848312979, - 12.429340501391264, - 12.429562386747465, - 12.429784139277956, - 12.430005759062249, - 12.430227246179811, - 12.430448600710056, - 12.430669822732355, - 12.430890912326031, - 12.431111869570357, - 12.431332694544562, - 12.431553387327826, - 12.43177394799928, - 12.431994376638013, - 12.43221467332306, - 12.432434838133409, - 12.432654871148006, - 12.43287477244575, - 12.433094542105485, - 12.433314180206015, - 12.433533686826092, - 12.433753062044426, - 12.433972305939676, - 12.434191418590455, - 12.434410400075329, - 12.434629250472817, - 12.43484796986139, - 12.435066558319477, - 12.43528501592545, - 12.435503342757643, - 12.43572153889434, - 12.43593960441378, - 12.436157539394152, - 12.436375343913602, - 12.436593018050223, - 12.436810561882066, - 12.437027975487135, - 12.437245258943388, - 12.437462412328733, - 12.437679435721035, - 12.43789632919811, - 12.438113092837732, - 12.438329726717619, - 12.438546230915453, - 12.43876260550886, - 12.438978850575428, - 12.43919496619269, - 12.439410952438143, - 12.43962680938923, - 12.43984253712335, - 12.440058135717855, - 12.440273605250049, - 12.440488945797194, - 12.4407041574365, - 12.440919240245139, - 12.44113419430023, - 12.441349019678846, - 12.441563716458019, - 12.441778284714728, - 12.441992724525912, - 12.442207035968462, - 12.442421219119222, - 12.442635274054988, - 12.442849200852516, - 12.443062999588511, - 12.443276670339634, - 12.443490213182498, - 12.443703628193672, - 12.443916915449682, - 12.444130075027003, - 12.444343107002066, - 12.444556011451258, - 12.444768788450917, - 12.444981438077338, - 12.44519396040677, - 12.445406355515418, - 12.445618623479438, - 12.445830764374938, - 12.446042778277988, - 12.446254665264608, - 12.446466425410772, - 12.446678058792411, - 12.446889565485408, - 12.447100945565603, - 12.447312199108788, - 12.447523326190712, - 12.447734326887078, - 12.447945201273544, - 12.44815594942572, - 12.448366571419175, - 12.448577067329428, - 12.448787437231957, - 12.44899768120219, - 12.449207799315516, - 12.449417791647278, - 12.44962765827277, - 12.449837399267237, - 12.450047014705891, - 12.450256504663892, - 12.450465869216355, - 12.450675108438348, - 12.450884222404902, - 12.451093211190994, - 12.451302074871561, - 12.451510813521493, - 12.451719427215638, - 12.451927916028797, - 12.452136280035726, - 12.452344519311136, - 12.452552633929693, - 12.452760623966025, - 12.452968489494706, - 12.45317623059027, - 12.453383847327203, - 12.453591339779951, - 12.453798708022918, - 12.45400595213045, - 12.454213072176863, - 12.454420068236423, - 12.45462694038335, - 12.454833688691819, - 12.455040313235967, - 12.455246814089879, - 12.455453191327598, - 12.455659445023127, - 12.455865575250417, - 12.456071582083386, - 12.456277465595893, - 12.456483225861763, - 12.456688862954776, - 12.456894376948663, - 12.457099767917114, - 12.45730503593378, - 12.45751018107226, - 12.45771520340611, - 12.457920103008846, - 12.458124879953935, - 12.458329534314807, - 12.45853406616484, - 12.458738475577373, - 12.458942762625698, - 12.459146927383069, - 12.459350969922689, - 12.459554890317722, - 12.459758688641285, - 12.459962364966454, - 12.460165919366261, - 12.460369351913693, - 12.460572662681692, - 12.460775851743158, - 12.460978919170948, - 12.461181865037876, - 12.461384689416708, - 12.461587392380173, - 12.461789974000952, - 12.461992434351684, - 12.462194773504962, - 12.46239699153334, - 12.462599088509325, - 12.46280106450538, - 12.46300291959393, - 12.463204653847349, - 12.463406267337977, - 12.4636077601381, - 12.46380913231997, - 12.464010383955788, - 12.46421151511772, - 12.464412525877883, - 12.464613416308351, - 12.464814186481158, - 12.465014836468294, - 12.465215366341699, - 12.46541577617328, - 12.4656160660349, - 12.465816235998371, - 12.466016286135465, - 12.466216216517918, - 12.466416027217415, - 12.466615718305603, - 12.46681528985408, - 12.467014741934413, - 12.467214074618113, - 12.467413287976653, - 12.467612382081466, - 12.467811357003939, - 12.468010212815416, - 12.468208949587204, - 12.468407567390555, - 12.468606066296696, - 12.468804446376794, - 12.469002707701982, - 12.469200850343354, - 12.469398874371954, - 12.469596779858787, - 12.469794566874812, - 12.469992235490952, - 12.47018978577808, - 12.470387217807037, - 12.470584531648608, - 12.470781727373547, - 12.47097880505256, - 12.471175764756312, - 12.471372606555427, - 12.471569330520483, - 12.47176593672202, - 12.471962425230535, - 12.472158796116478, - 12.472355049450265, - 12.472551185302262, - 12.472747203742799, - 12.472943104842159, - 12.473138888670587, - 12.473334555298283, - 12.473530104795406, - 12.473725537232072, - 12.47392085267836, - 12.474116051204296, - 12.474311132879881, - 12.474506097775057, - 12.474700945959734, - 12.474895677503778, - 12.475090292477011, - 12.475284790949214, - 12.47547917299013, - 12.475673438669459, - 12.475867588056854, - 12.476061621221932, - 12.476255538234264, - 12.476449339163386, - 12.476643024078783, - 12.476836593049907, - 12.477030046146163, - 12.477223383436916, - 12.477416604991493, - 12.477609710879175, - 12.477802701169203, - 12.477995575930777, - 12.478188335233051, - 12.478380979145145, - 12.478573507736137, - 12.478765921075054, - 12.478958219230892, - 12.479150402272603, - 12.4793424702691, - 12.479534423289243, - 12.479726261401865, - 12.479917984675753, - 12.480109593179654, - 12.480301086982266, - 12.480492466152256, - 12.480683730758244, - 12.48087488086881, - 12.481065916552497, - 12.481256837877801, - 12.481447644913178, - 12.48163833772705, - 12.481828916387789, - 12.48201938096373, - 12.482209731523163, - 12.482399968134349, - 12.482590090865495, - 12.48278009978477, - 12.482969994960312, - 12.483159776460205, - 12.483349444352497, - 12.4835389987052, - 12.483728439586276, - 12.483917767063659, - 12.484106981205228, - 12.484296082078835, - 12.484485069752282, - 12.484673944293332, - 12.484862705769709, - 12.485051354249098, - 12.485239889799137, - 12.485428312487434, - 12.485616622381547, - 12.485804819549, - 12.48599290405727, - 12.4861808759738, - 12.486368735365987, - 12.486556482301197, - 12.486744116846744, - 12.486931639069908, - 12.48711904903793, - 12.487306346818006, - 12.487493532477293, - 12.487680606082913, - 12.48786756770194, - 12.488054417401415, - 12.488241155248337, - 12.488427781309658, - 12.488614295652301, - 12.488800698343141, - 12.488986989449016, - 12.48917316903672, - 12.489359237173012, - 12.489545193924613, - 12.489731039358196, - 12.4899167735404, - 12.490102396537825, - 12.490287908417026, - 12.490473309244523, - 12.490658599086792, - 12.490843778010271, - 12.49102884608136, - 12.491213803366417, - 12.491398649931764, - 12.491583385843676, - 12.491768011168396, - 12.491952525972122, - 12.492136930321015, - 12.492321224281195, - 12.492505407918745, - 12.492689481299706, - 12.49287344449008, - 12.493057297555831, - 12.493241040562879, - 12.493424673577112, - 12.493608196664372, - 12.49379160989046, - 12.493974913321148, - 12.494158107022157, - 12.494341191059176, - 12.494524165497852, - 12.494707030403793, - 12.49488978584257, - 12.49507243187971, - 12.495254968580703, - 12.495437396011004, - 12.495619714236023, - 12.495801923321128, - 12.49598402333166, - 12.496166014332909, - 12.49634789639013, - 12.496529669568545, - 12.496711333933325, - 12.496892889549612, - 12.497074336482502, - 12.49725567479706, - 12.497436904558304, - 12.497618025831219, - 12.497799038680746, - 12.497979943171792, - 12.498160739369222, - 12.498341427337865, - 12.498522007142505, - 12.498702478847894, - 12.498882842518743, - 12.499063098219722, - 12.499243246015466, - 12.49942328597057, - 12.49960321814959, - 12.499783042617041, - 12.499962759437402, - 12.500142368675114, - 12.500321870394579, - 12.500501264660162, - 12.500680551536183, - 12.50085973108693, - 12.50103880337665, - 12.501217768469552, - 12.501396626429806, - 12.501575377321545, - 12.501754021208862, - 12.501932558155815, - 12.502110988226416, - 12.502289311484647, - 12.502467527994447, - 12.50264563781972, - 12.502823641024328, - 12.503001537672096, - 12.503179327826814, - 12.50335701155223, - 12.503534588912055, - 12.503712059969962, - 12.503889424789582, - 12.50406668343452, - 12.504243835968326, - 12.504420882454527, - 12.504597822956601, - 12.504774657537995, - 12.504951386262116, - 12.50512800919233, - 12.505304526391969, - 12.505480937924329, - 12.505657243852658, - 12.50583344424018, - 12.506009539150071, - 12.506185528645473, - 12.50636141278949, - 12.506537191645185, - 12.50671286527559, - 12.50688843374369, - 12.507063897112442, - 12.507239255444759, - 12.50741450880352, - 12.507589657251561, - 12.50776470085169, - 12.507939639666667, - 12.50811447375922, - 12.508289203192039, - 12.508463828027773, - 12.50863834832904, - 12.508812764158412, - 12.50898707557843, - 12.509161282651599, - 12.509335385440382, - 12.509509384007204, - 12.509683278414455, - 12.50985706872449, - 12.51003075499962, - 12.510204337302127, - 12.51037781569425, - 12.510551190238191, - 12.510724460996116, - 12.510897628030156, - 12.5110706914024, - 12.511243651174901, - 12.511416507409683, - 12.51158926016872, - 12.511761909513954, - 12.511934455507296, - 12.51210689821061, - 12.51227923768573, - 12.512451473994453, - 12.512623607198533, - 12.512795637359694, - 12.512967564539617, - 12.51313938879995, - 12.513311110202302, - 12.513482728808249, - 12.513654244679326, - 12.513825657877032, - 12.513996968462829, - 12.514168176498146, - 12.514339282044366, - 12.514510285162848, - 12.514681185914903, - 12.514851984361812, - 12.515022680564817, - 12.515193274585123, - 12.5153637664839, - 12.51553415632228, - 12.515704444161358, - 12.515874630062195, - 12.51604471408581, - 12.516214696293193, - 12.51638457674529, - 12.516554355503017, - 12.516724032627248, - 12.516893608178826, - 12.517063082218554, - 12.517232454807198, - 12.51740172600549, - 12.517570895874123, - 12.517739964473757, - 12.517908931865012, - 12.518077798108477, - 12.5182465632647, - 12.518415227394193, - 12.518583790557432, - 12.518752252814863, - 12.518920614226888, - 12.519088874853871, - 12.51925703475615, - 12.519425093994018, - 12.519593052627734, - 12.519760910717526, - 12.519928668323578, - 12.520096325506046, - 12.520263882325041, - 12.520431338840645, - 12.520598695112904, - 12.520765951201824, - 12.520933107167378, - 12.521100163069502, - 12.521267118968096, - 12.52143397492302, - 12.52160073099411, - 12.521767387241155, - 12.521933943723912, - 12.522100400502104, - 12.522266757635416, - 12.522433015183497, - 12.52259917320596, - 12.522765231762383, - 12.522931190912313, - 12.523097050715252, - 12.523262811230676, - 12.523428472518017, - 12.523594034636675, - 12.523759497646019, - 12.523924861605373, - 12.524090126574034, - 12.52425529261126, - 12.52442035977627, - 12.524585328128257, - 12.52475019772637, - 12.524914968629723, - 12.5250796408974, - 12.525244214588447, - 12.52540868976187, - 12.525573066476646, - 12.525737344791716, - 12.525901524765986, - 12.526065606458323, - 12.52622958992756, - 12.526393475232494, - 12.526557262431892, - 12.526720951584483, - 12.526884542748956, - 12.52704803598397, - 12.52721143134815, - 12.527374728900083, - 12.527537928698322, - 12.527701030801381, - 12.527864035267749, - 12.528026942155867, - 12.52818975152415, - 12.528352463430979, - 12.528515077934694, - 12.528677595093601, - 12.528840014965976, - 12.529002337610056, - 12.529164563084041, - 12.529326691446107, - 12.529488722754378, - 12.529650657066957, - 12.52981249444191, - 12.529974234937264, - 12.530135878611013, - 12.530297425521116, - 12.5304588757255, - 12.530620229282054, - 12.530781486248634, - 12.53094264668306, - 12.53110371064312, - 12.531264678186565, - 12.531425549371114, - 12.531586324254445, - 12.53174700289421, - 12.531907585348021, - 12.532068071673457, - 12.532228461928067, - 12.532388756169356, - 12.5325489544548, - 12.532709056841844, - 12.532869063387892, - 12.53302897415032, - 12.533188789186461, - 12.533348508553622, - 12.533508132309075, - 12.53366766051005, - 12.533827093213754, - 12.533986430477347, - 12.534145672357967, - 12.53430481891271, - 12.534463870198644, - 12.534622826272797, - 12.534781687192162, - 12.534940453013704, - 12.535099123794348, - 12.535257699590993, - 12.535416180460492, - 12.535574566459676, - 12.535732857645336, - 12.535891054074224, - 12.536049155803068, - 12.53620716288856, - 12.536365075387353, - 12.536522893356068, - 12.536680616851292, - 12.536838245929582, - 12.536995780647455, - 12.5371532210614, - 12.537310567227872, - 12.537467819203282, - 12.53762497704402, - 12.537782040806437, - 12.53793901054685, - 12.538095886321544, - 12.538252668186768, - 12.538409356198738, - 12.538565950413636, - 12.538722450887612, - 12.538878857676782, - 12.539035170837229, - 12.539191390424996, - 12.539347516496102, - 12.539503549106529, - 12.539659488312223, - 12.539815334169099, - 12.539971086733035, - 12.540126746059883, - 12.540282312205454, - 12.540437785225528, - 12.540593165175855, - 12.540748452112148, - 12.540903646090085, - 12.541058747165314, - 12.54121375539345, - 12.541368670830071, - 12.541523493530725, - 12.54167822355093, - 12.541832860946158, - 12.541987405771865, - 12.542141858083461, - 12.542296217936329, - 12.542450485385814, - 12.542604660487234, - 12.542758743295868, - 12.542912733866967, - 12.543066632255746, - 12.543220438517386, - 12.543374152707038, - 12.543527774879818, - 12.543681305090807, - 12.543834743395058, - 12.543988089847588, - 12.544141344503382, - 12.544294507417392, - 12.544447578644537, - 12.5446005582397, - 12.544753446257738, - 12.54490624275347, - 12.54505894778168, - 12.545211561397126, - 12.54536408365453, - 12.545516514608579, - 12.54566885431393, - 12.545821102825208, - 12.545973260197002, - 12.546125326483871, - 12.546277301740341, - 12.546429186020902, - 12.54658097938002, - 12.546732681872117, - 12.54688429355159, - 12.547035814472803, - 12.547187244690088, - 12.547338584257737, - 12.547489833230019, - 12.547640991661163, - 12.547792059605372, - 12.547943037116815, - 12.54809392424962, - 12.548244721057898, - 12.548395427595713, - 12.548546043917108, - 12.548696570076086, - 12.54884700612662, - 12.548997352122651, - 12.54914760811809, - 12.549297774166813, - 12.549447850322663, - 12.54959783663945, - 12.549747733170955, - 12.549897539970928, - 12.550047257093082, - 12.5501968845911, - 12.550346422518635, - 12.550495870929305, - 12.550645229876695, - 12.550794499414364, - 12.550943679595832, - 12.551092770474591, - 12.551241772104097, - 12.551390684537779, - 12.551539507829032, - 12.551688242031215, - 12.551836887197663, - 12.551985443381673, - 12.552133910636515, - 12.55228228901542, - 12.55243057857159, - 12.5525787793582, - 12.552726891428387, - 12.552874914835263, - 12.553022849631901, - 12.553170695871346, - 12.553318453606607, - 12.55346612289067, - 12.553613703776481, - 12.553761196316955, - 12.553908600564982, - 12.554055916573414, - 12.554203144395071, - 12.554350284082746, - 12.554497335689197, - 12.554644299267155, - 12.55479117486931, - 12.554937962548331, - 12.555084662356853, - 12.55523127434747, - 12.555377798572755, - 12.55552423508525, - 12.555670583937456, - 12.555816845181852, - 12.555963018870882, - 12.556109105056958, - 12.556255103792463, - 12.556401015129742, - 12.556546839121118, - 12.556692575818879, - 12.556838225275277, - 12.556983787542539, - 12.557129262672857, - 12.557274650718396, - 12.557419951731287, - 12.557565165763625, - 12.557710292867483, - 12.557855333094897, - 12.558000286497872, - 12.558145153128386, - 12.558289933038383, - 12.558434626279771, - 12.558579232904437, - 12.558723752964228, - 12.558868186510969, - 12.559012533596444, - 12.559156794272413, - 12.559300968590602, - 12.559445056602705, - 12.55958905836039, - 12.559732973915288, - 12.559876803319005, - 12.560020546623111, - 12.560164203879145, - 12.560307775138623, - 12.560451260453021, - 12.56059465987379, - 12.560737973452344, - 12.560881201240072, - 12.56102434328833, - 12.561167399648447, - 12.561310370371714, - 12.561453255509395, - 12.561596055112728, - 12.561738769232912, - 12.561881397921118, - 12.562023941228492, - 12.562166399206141, - 12.56230877190515, - 12.562451059376562, - 12.562593261671399, - 12.562735378840651, - 12.562877410935275, - 12.563019358006201, - 12.563161220104325, - 12.563302997280514, - 12.5634446895856, - 12.563586297070394, - 12.563727819785669, - 12.563869257782171, - 12.564010611110614, - 12.564151879821683, - 12.564293063966032, - 12.564434163594283, - 12.564575178757032, - 12.564716109504838, - 12.564856955888235, - 12.56499771795773, - 12.56513839576379, - 12.565278989356857, - 12.565419498787346, - 12.565559924105639, - 12.565700265362082, - 12.565840522607004, - 12.56598069589069, - 12.566120785263406, - 12.566260790775377, - 12.56640071247681, - 12.566540550417873, - 12.566680304648706, - 12.566819975219422, - 12.566959562180102, - 12.567099065580795, - 12.567238485471524, - 12.567377821902278, - 12.567517074923021, - 12.56765624458368, - 12.56779533093416, - 12.567934334024331, - 12.568073253904034, - 12.568212090623081, - 12.568350844231254, - 12.568489514778305, - 12.568628102313957, - 12.568766606887902, - 12.568905028549803, - 12.569043367349293, - 12.569181623335975, - 12.569319796559421, - 12.569457887069179, - 12.56959589491476, - 12.569733820145652, - 12.569871662811307, - 12.570009422961151, - 12.57014710064458, - 12.570284695910962, - 12.570422208809632, - 12.570559639389897, - 12.570696987701035, - 12.570834253792295, - 12.570971437712895, - 12.571108539512025, - 12.571245559238845, - 12.571382496942482, - 12.571519352672043, - 12.571656126476594, - 12.57179281840518, - 12.571929428506815, - 12.572065956830478, - 12.572202403425127, - 12.572338768339684, - 12.572475051623048, - 12.572611253324084, - 12.57274737349163, - 12.572883412174493, - 12.57301936942145, - 12.57315524528125, - 12.573291039802616, - 12.573426753034239, - 12.573562385024779, - 12.57369793582287, - 12.573833405477117, - 12.573968794036091, - 12.574104101548341, - 12.574239328062381, - 12.5743744736267, - 12.574509538289755, - 12.574644522099975, - 12.574779425105762, - 12.574914247355489, - 12.575048988897494, - 12.575183649780094, - 12.575318230051572, - 12.575452729760183, - 12.575587148954156, - 12.575721487681689, - 12.575855745990946, - 12.575989923930075, - 12.576124021547184, - 12.576258038890352, - 12.576391976007638, - 12.576525832947066, - 12.57665960975663, - 12.5767933064843, - 12.576926923178014, - 12.577060459885681, - 12.577193916655185, - 12.577327293534376, - 12.577460590571082, - 12.577593807813095, - 12.57772694530818, - 12.577860003104083, - 12.577992981248507, - 12.578125879789136, - 12.578258698773622, - 12.578391438249588, - 12.578524098264632, - 12.57865667886632, - 12.57878918010219, - 12.578921602019754, - 12.579053944666493, - 12.57918620808986, - 12.579318392337282, - 12.579450497456149, - 12.579582523493835, - 12.579714470497679, - 12.579846338514992, - 12.579978127593058, - 12.580109837779132, - 12.58024146912044, - 12.580373021664178, - 12.58050449545752, - 12.580635890547603, - 12.580767206981545, - 12.580898444806428, - 12.581029604069313, - 12.581160684817226, - 12.581291687097169, - 12.581422610956114, - 12.581553456441009, - 12.581684223598767, - 12.581814912476275, - 12.5819455231204, - 12.582076055577968, - 12.582206509895784, - 12.582336886120627, - 12.582467184299244, - 12.582597404478353, - 12.58272754670465, - 12.582857611024796, - 12.58298759748543, - 12.583117506133158, - 12.583247337014566, - 12.5833770901762, - 12.583506765664588, - 12.583636363526228, - 12.583765883807587, - 12.583895326555107, - 12.584024691815204, - 12.58415397963426, - 12.584283190058636, - 12.58441232313466, - 12.584541378908636, - 12.584670357426837, - 12.584799258735513, - 12.58492808288088, - 12.585056829909133, - 12.585185499866434, - 12.585314092798919, - 12.5854426087527, - 12.585571047773854, - 12.585699409908434, - 12.585827695202473, - 12.585955903701963, - 12.586084035452878, - 12.586212090501162, - 12.58634006889273, - 12.586467970673468, - 12.586595795889242, - 12.586723544585881, - 12.586851216809192, - 12.586978812604958, - 12.587106332018925, - 12.58723377509682, - 12.587361141884337, - 12.587488432427147, - 12.587615646770892, - 12.587742784961186, - 12.587869847043615, - 12.587996833063743, - 12.588123743067097, - 12.588250577099183, - 12.588377335205486, - 12.588504017431449, - 12.5886306238225, - 12.588757154424032, - 12.588883609281421, - 12.589009988440004, - 12.589136291945097, - 12.589262519841988, - 12.589388672175936, - 12.58951474899218, - 12.58964075033592, - 12.58976667625234, - 12.589892526786594, - 12.590018301983802, - 12.590144001889067, - 12.59026962654746, - 12.590395176004021, - 12.590520650303771, - 12.590646049491701, - 12.590771373612776, - 12.59089662271193, - 12.591021796834074, - 12.59114689602409, - 12.591271920326836, - 12.59139686978714, - 12.591521744449803, - 12.591646544359604, - 12.591771269561288, - 12.59189592009958, - 12.592020496019174, - 12.59214499736474, - 12.592269424180918, - 12.592393776512324, - 12.592518054403545, - 12.592642257899145, - 12.592766387043657, - 12.59289044188159, - 12.593014422457424, - 12.593138328815614, - 12.593262161000592, - 12.593385919056757, - 12.593509603028485, - 12.593633212960125, - 12.593756748895997, - 12.593880210880398, - 12.594003598957599, - 12.59412691317184, - 12.594250153567339, - 12.59437332018828, - 12.594496413078835, - 12.594619432283134, - 12.59474237784529, - 12.594865249809386, - 12.59498804821948, - 12.595110773119604, - 12.595233424553763, - 12.595356002565934, - 12.595478507200067, - 12.595600938500093, - 12.595723296509908, - 12.595845581273382, - 12.595967792834369, - 12.596089931236685, - 12.596211996524126, - 12.596333988740462, - 12.596455907929434, - 12.596577754134755, - 12.596699527400117, - 12.596821227769185, - 12.596942855285596, - 12.597064409992958, - 12.59718589193486, - 12.597307301154858, - 12.597428637696487, - 12.597549901603251, - 12.597671092918635, - 12.597792211686093, - 12.597913257949052, - 12.598034231750916, - 12.598155133135062, - 12.598275962144841, - 12.598396718823576, - 12.59851740321457, - 12.598638015361093, - 12.598758555306395, - 12.598879023093694, - 12.598999418766185, - 12.59911974236704, - 12.599239993939404, - 12.599360173526392, - 12.599480281171095, - 12.599600316916584, - 12.599720280805897, - 12.59984017288205, - 12.59995999318803, - 12.600079741766802, - 12.6001994186613, - 12.600319023914441, - 12.600438557569108, - 12.60055801966816, - 12.600677410254436, - 12.600796729370744, - 12.600915977059866, - 12.60103515336456, - 12.601154258327561, - 12.601273291991575, - 12.601392254399281, - 12.601511145593335, - 12.601629965616368, - 12.601748714510984, - 12.601867392319765, - 12.60198599908526, - 12.602104534850003, - 12.60222299965649, - 12.602341393547203, - 12.602459716564592, - 12.602577968751083, - 12.60269615014908, - 12.602814260800956, - 12.60293230074906, - 12.603050270035718, - 12.603168168703231, - 12.603285996793872, - 12.603403754349891, - 12.603521441413513, - 12.603639058026932, - 12.603756604232323, - 12.603874080071837, - 12.603991485587592, - 12.604108820821688, - 12.604226085816197, - 12.604343280613167, - 12.604460405254617, - 12.604577459782545, - 12.604694444238925, - 12.6048113586657, - 12.604928203104791, - 12.605044977598098, - 12.60516168218749, - 12.605278316914815, - 12.605394881821889, - 12.605511376950512, - 12.605627802342454, - 12.60574415803946, - 12.605860444083255, - 12.60597666051553, - 12.606092807377962, - 12.60620888471219, - 12.60632489255984, - 12.606440830962509, - 12.606556699961763, - 12.606672499599153, - 12.606788229916198, - 12.606903890954397, - 12.60701948275522, - 12.607135005360119, - 12.607250458810508, - 12.607365843147791, - 12.60748115841334, - 12.6075964046485, - 12.607711581894597, - 12.607826690192926, - 12.607941729584764, - 12.60805670011136, - 12.60817160181394, - 12.608286434733696, - 12.608401198911809, - 12.608515894389429, - 12.608630521207681, - 12.608745079407667, - 12.608859569030463, - 12.60897399011712, - 12.609088342708667, - 12.609202626846104, - 12.60931684257041, - 12.609430989922538, - 12.60954506894342, - 12.60965907967396, - 12.609773022155037, - 12.609886896427508, - 12.610000702532203, - 12.61011444050993, - 12.61022811040147, - 12.610341712247582, - 12.610455246088998, - 12.610568711966431, - 12.61068210992056, - 12.610795439992051, - 12.610908702221538, - 12.611021896649632, - 12.61113502331692, - 12.611248082263968, - 12.611361073531311, - 12.611473997159464, - 12.611586853188923, - 12.611699641660149, - 12.611812362613586, - 12.611925016089648, - 12.612037602128733, - 12.612150120771211, - 12.612262572057423, - 12.612374956027692, - 12.612487272722314, - 12.612599522181563, - 12.612711704445688, - 12.612823819554913, - 12.612935867549439, - 12.613047848469442, - 12.613159762355071, - 12.613271609246459, - 12.613383389183708, - 12.6134951022069, - 12.613606748356089, - 12.613718327671311, - 12.61382984019257, - 12.613941285959854, - 12.614052665013121, - 12.614163977392307, - 12.614275223137328, - 12.61438640228807, - 12.614497514884398, - 12.614608560966156, - 12.614719540573157, - 12.614830453745197, - 12.614941300522045, - 12.615052080943446, - 12.615162795049123, - 12.615273442878772, - 12.615384024472071, - 12.615494539868667, - 12.615604989108187, - 12.615715372230236, - 12.615825689274393, - 12.615935940280215, - 12.616046125287232, - 12.616156244334954, - 12.616266297462866, - 12.616376284710425, - 12.616486206117074, - 12.616596061722221, - 12.616705851565262, - 12.616815575685562, - 12.616925234122462, - 12.617034826915283, - 12.61714435410332, - 12.617253815725851, - 12.61736321182212, - 12.61747254243135, - 12.61758180759275, - 12.617691007345492, - 12.617800141728738, - 12.617909210781614, - 12.61801821454323, - 12.61812715305267, - 12.618236026348997, - 12.61834483447125, - 12.618453577458443, - 12.618562255349564, - 12.618670868183584, - 12.618779415999448, - 12.618887898836077, - 12.61899631673237, - 12.619104669727198, - 12.619212957859416, - 12.619321181167852, - 12.619429339691306, - 12.619537433468567, - 12.619645462538392, - 12.619753426939514, - 12.619861326710646, - 12.619969161890477, - 12.620076932517675, - 12.620184638630878, - 12.620292280268709, - 12.620399857469764, - 12.620507370272616, - 12.620614818715817, - 12.620722202837891, - 12.620829522677345, - 12.620936778272661, - 12.62104396966229, - 12.621151096884674, - 12.621258159978224, - 12.621365158981327, - 12.62147209393235, - 12.621578964869634, - 12.621685771831503, - 12.621792514856253, - 12.621899193982156, - 12.622005809247463, - 12.622112360690407, - 12.622218848349188, - 12.622325272261993, - 12.62243163246698, - 12.622537929002288, - 12.622644161906027, - 12.622750331216292, - 12.62285643697115, - 12.622962479208645, - 12.623068457966804, - 12.623174373283623, - 12.623280225197083, - 12.623386013745137, - 12.623491738965717, - 12.623597400896731, - 12.623702999576068, - 12.62380853504159, - 12.623914007331141, - 12.624019416482538, - 12.624124762533578, - 12.624230045522031, - 12.624335265485652, - 12.624440422462166, - 12.62454551648928, - 12.624650547604675, - 12.624755515846015, - 12.624860421250936, - 12.624965263857053, - 12.625070043701959, - 12.625174760823223, - 12.625279415258394, - 12.625384007044998, - 12.625488536220539, - 12.625593002822493, - 12.625697406888321, - 12.62580174845546, - 12.62590602756132, - 12.626010244243295, - 12.626114398538752, - 12.626218490485034, - 12.62632252011947, - 12.626426487479357, - 12.626530392601977, - 12.626634235524582, - 12.626738016284413, - 12.62684173491868, - 12.626945391464568, - 12.62704898595925, - 12.62715251843987, - 12.62725598894355, - 12.627359397507389, - 12.62746274416847, - 12.62756602896385, - 12.627669251930557, - 12.627772413105609, - 12.62787551252599, - 12.627978550228674, - 12.628081526250604, - 12.628184440628704, - 12.628287293399874, - 12.628390084600994, - 12.628492814268922, - 12.628595482440492, - 12.628698089152518, - 12.62880063444179, - 12.628903118345079, - 12.629005540899131, - 12.629107902140673, - 12.629210202106405, - 12.629312440833008, - 12.629414618357144, - 12.629516734715446, - 12.629618789944534, - 12.629720784081, - 12.629822717161414, - 12.629924589222327, - 12.630026400300265, - 12.630128150431736, - 12.630229839653222, - 12.630331468001186, - 12.63043303551207, - 12.630534542222293, - 12.630635988168246, - 12.630737373386308, - 12.630838697912832, - 12.630939961784149, - 12.631041165036567, - 12.631142307706376, - 12.631243389829843, - 12.63134441144321, - 12.6314453725827, - 12.631546273284515, - 12.631647113584833, - 12.631747893519815, - 12.631848613125594, - 12.631949272438288, - 12.632049871493985, - 12.632150410328759, - 12.632250888978657, - 12.632351307479713, - 12.632451665867928, - 12.632551964179287, - 12.632652202449757, - 12.632752380715276, - 12.632852499011769, - 12.632952557375132, - 12.633052555841239, - 12.633152494445953, - 12.633252373225105, - 12.633352192214504, - 12.633451951449947, - 12.633551650967203, - 12.633651290802018, - 12.633750870990124, - 12.633850391567224, - 12.633949852569001, - 12.634049254031122, - 12.634148595989224, - 12.634247878478932, - 12.634347101535843, - 12.634446265195534, - 12.634545369493566, - 12.63464441446547, - 12.63474340014676, - 12.634842326572931, - 12.634941193779452, - 12.635040001801775, - 12.635138750675328, - 12.635237440435521, - 12.635336071117736, - 12.635434642757343, - 12.635533155389684, - 12.635631609050085, - 12.635730003773846, - 12.635828339596245, - 12.635926616552545, - 12.636024834677984, - 12.636122994007781, - 12.636221094577131, - 12.636319136421207, - 12.636417119575167, - 12.636515044074143, - 12.636612909953245, - 12.636710717247567, - 12.63680846599218, - 12.636906156222132, - 12.63700378797245, - 12.637101361278141, - 12.637198876174192, - 12.637296332695572, - 12.637393730877218, - 12.637491070754061, - 12.637588352360998, - 12.637685575732915, - 12.63778274090467, - 12.637879847911105, - 12.637976896787038, - 12.638073887567268, - 12.63817082028657, - 12.638267694979705, - 12.638364511681404, - 12.638461270426385, - 12.63855797124934, - 12.638654614184944, - 12.63875119926785, - 12.63884772653269, - 12.638944196014076, - 12.639040607746598, - 12.639136961764823, - 12.639233258103303, - 12.639329496796567, - 12.639425677879117, - 12.639521801385449, - 12.639617867350024, - 12.639713875807287, - 12.639809826791666, - 12.639905720337566, - 12.640001556479367, - 12.640097335251436, - 12.640193056688116, - 12.640288720823724, - 12.640384327692571, - 12.64047987732893, - 12.640575369767067, - 12.640670805041218, - 12.640766183185605, - 12.640861504234426, - 12.640956768221864, - 12.641051975182071, - 12.641147125149187, - 12.641242218157334, - 12.641337254240602, - 12.641432233433072, - 12.641527155768797, - 12.641622021281814, - 12.64171683000614, - 12.64181158197577, - 12.641906277224678, - 12.642000915786818, - 12.642095497696122, - 12.642190022986505, - 12.64228449169186, - 12.642378903846065, - 12.642473259482966, - 12.6425675586364, - 12.64266180134018, - 12.642755987628096, - 12.642850117533918, - 12.642944191091399, - 12.64303820833427, - 12.643132169296246, - 12.643226074011013, - 12.643319922512244, - 12.64341371483359, - 12.64350745100868, - 12.64360113107113, - 12.64369475505452, - 12.64378832299243, - 12.643881834918405, - 12.643975290865976, - 12.644068690868654, - 12.644162034959928, - 12.644255323173269, - 12.644348555542127, - 12.644441732099928, - 12.644534852880087, - 12.644627917915988, - 12.644720927241009, - 12.64481388088849, - 12.64490677889177, - 12.644999621284153, - 12.64509240809893, - 12.645185139369373, - 12.64527781512873, - 12.645370435410232, - 12.64546300024709, - 12.645555509672494, - 12.645647963719616, - 12.645740362421604, - 12.64583270581159, - 12.645924993922684, - 12.646017226787977, - 12.646109404440542, - 12.646201526913433, - 12.64629359423968, - 12.646385606452291, - 12.646477563584263, - 12.646569465668566, - 12.646661312738155, - 12.646753104825962, - 12.6468448419649, - 12.646936524187863, - 12.647028151527728, - 12.647119724017342, - 12.647211241689545, - 12.647302704577152, - 12.647394112712957, - 12.647485466129737, - 12.647576764860245, - 12.64766800893722, - 12.647759198393379, - 12.647850333261418, - 12.647941413574017, - 12.64803243936383, - 12.648123410663496, - 12.648214327505638, - 12.648305189922855, - 12.648395997947725, - 12.64848675161281, - 12.64857745095065, - 12.648668095993767, - 12.648758686774663, - 12.64884922332582, - 12.6489397056797, - 12.64903013386875, - 12.649120507925394, - 12.649210827882033, - 12.649301093771054, - 12.649391305624826, - 12.649481463475695, - 12.649571567355988, - 12.649661617298012, - 12.649751613334056, - 12.649841555496387, - 12.649931443817259, - 12.650021278328904, - 12.65011105906353, - 12.650200786053329, - 12.650290459330476, - 12.650380078927123, - 12.650469644875402, - 12.650559157207434, - 12.65064861595531, - 12.65073802115111, - 12.65082737282689, - 12.65091667101469, - 12.651005915746525, - 12.6510951070544, - 12.651184244970294, - 12.651273329526164, - 12.651362360753959, - 12.6514513386856, - 12.651540263352992, - 12.651629134788017, - 12.651717953022546, - 12.651806718088423, - 12.651895430017477, - 12.651984088841518, - 12.652072694592333, - 12.652161247301693, - 12.652249747001354, - 12.652338193723045, - 12.652426587498482, - 12.652514928359357, - 12.652603216337349, - 12.652691451464115, - 12.652779633771289, - 12.652867763290493, - 12.652955840053329, - 12.653043864091373, - 12.653131835436191, - 12.653219754119325, - 12.653307620172301, - 12.653395433626622, - 12.653483194513779, - 12.653570902865237, - 12.653658558712445, - 12.653746162086835, - 12.653833713019816, - 12.65392121154278, - 12.654008657687104, - 12.654096051484142, - 12.654183392965232, - 12.654270682161687, - 12.65435791910481, - 12.654445103825877, - 12.654532236356152, - 12.654619316726878, - 12.654706344969279, - 12.654793321114559, - 12.654880245193906, - 12.654967117238485, - 12.65505393727945, - 12.655140705347925, - 12.655227421475029, - 12.65531408569185, - 12.655400698029466, - 12.655487258518932, - 12.655573767191285, - 12.655660224077543, - 12.655746629208709, - 12.655832982615761, - 12.655919284329666, - 12.656005534381368, - 12.65609173280179, - 12.656177879621843, - 12.656263974872417, - 12.65635001858438, - 12.656436010788585, - 12.656521951515867, - 12.65660784079704, - 12.656693678662899, - 12.656779465144226, - 12.656865200271778, - 12.6569508840763, - 12.65703651658851, - 12.657122097839121, - 12.657207627858812, - 12.657293106678253, - 12.657378534328092, - 12.657463910838965, - 12.657549236241483, - 12.657634510566238, - 12.657719733843809, - 12.657804906104753, - 12.65789002737961, - 12.657975097698902, - 12.65806011709313, - 12.658145085592784, - 12.658230003228324, - 12.6583148700302, - 12.658399686028847, - 12.658484451254672, - 12.658569165738072, - 12.658653829509419, - 12.658738442599073, - 12.658823005037375, - 12.658907516854642, - 12.658991978081179, - 12.659076388747271, - 12.659160748883183, - 12.659245058519167, - 12.65932931768545, - 12.659413526412244, - 12.659497684729747, - 12.659581792668131, - 12.65966585025756, - 12.659749857528167, - 12.659833814510078, - 12.659917721233397, - 12.66000157772821, - 12.660085384024582, - 12.660169140152563, - 12.660252846142187, - 12.660336502023473, - 12.66042010782641, - 12.660503663580977, - 12.660587169317136, - 12.660670625064826, - 12.660754030853976, - 12.660837386714489, - 12.660920692676253, - 12.66100394876914, - 12.661087155023004, - 12.661170311467679, - 12.66125341813298, - 12.661336475048708, - 12.661419482244643, - 12.661502439750551, - 12.661585347596173, - 12.661668205811239, - 12.66175101442546, - 12.661833773468528, - 12.661916482970117, - 12.661999142959884, - 12.662081753467467, - 12.662164314522489, - 12.66224682615455, - 12.66232928839324, - 12.662411701268123, - 12.662494064808751, - 12.662576379044658, - 12.662658644005361, - 12.662740859720351, - 12.662823026219112, - 12.662905143531106, - 12.662987211685774, - 12.663069230712546, - 12.66315120064083, - 12.663233121500017, - 12.663314993319482, - 12.663396816128579, - 12.66347858995665, - 12.663560314833015, - 12.663641990786976, - 12.663723617847818, - 12.663805196044816, - 12.663886725407213, - 12.663968205964249, - 12.664049637745135, - 12.664131020779074, - 12.664212355095243, - 12.664293640722809, - 12.664374877690916, - 12.664456066028693, - 12.664537205765251, - 12.664618296929687, - 12.664699339551072, - 12.66478033365847, - 12.66486127928092, - 12.664942176447447, - 12.665023025187057, - 12.66510382552874, - 12.665184577501467, - 12.665265281134195, - 12.665345936455859, - 12.665426543495382, - 12.665507102281664, - 12.665587612843593, - 12.665668075210034, - 12.66574848940984, - 12.665828855471844, - 12.665909173424863, - 12.665989443297699, - 12.666069665119128, - 12.66614983891792, - 12.666229964722818, - 12.666310042562557, - 12.666390072465846, - 12.666470054461383, - 12.666549988577845, - 12.666629874843895, - 12.666709713288178, - 12.666789503939317, - 12.666869246825927, - 12.6669489419766, - 12.667028589419909, - 12.667108189184416, - 12.66718774129866, - 12.667267245791168, - 12.667346702690448, - 12.667426112024987, - 12.66750547382326, - 12.667584788113725, - 12.667664054924817, - 12.667743274284964, - 12.667822446222567, - 12.667901570766015, - 12.667980647943677, - 12.668059677783912, - 12.668138660315055, - 12.668217595565427, - 12.668296483563331, - 12.668375324337052, - 12.668454117914862, - 12.668532864325012, - 12.668611563595737, - 12.668690215755259, - 12.668768820831776, - 12.668847378853476, - 12.668925889848524, - 12.669004353845075, - 12.669082770871258, - 12.669161140955197, - 12.669239464124988, - 12.669317740408715, - 12.669395969834449, - 12.669474152430237, - 12.669552288224114, - 12.669630377244093, - 12.669708419518182, - 12.669786415074356, - 12.669864363940585, - 12.669942266144817, - 12.670020121714987, - 12.67009793067901, - 12.670175693064786, - 12.670253408900198, - 12.670331078213113, - 12.670408701031379, - 12.67048627738283, - 12.670563807295279, - 12.670641290796532, - 12.670718727914364, - 12.670796118676547, - 12.670873463110826, - 12.670950761244939, - 12.671028013106596, - 12.671105218723504, - 12.671182378123339, - 12.671259491333773, - 12.671336558382453, - 12.671413579297013, - 12.671490554105072, - 12.671567482834229, - 12.671644365512067, - 12.671721202166154, - 12.671797992824041, - 12.671874737513265, - 12.67195143626134, - 12.67202808909577, - 12.672104696044038, - 12.672181257133614, - 12.67225777239195, - 12.67233424184648, - 12.672410665524625, - 12.672487043453785, - 12.67256337566135, - 12.672639662174689, - 12.672715903021153, - 12.672792098228083, - 12.6728682478228, - 12.672944351832605, - 12.673020410284789, - 12.673096423206621, - 12.67317239062536, - 12.673248312568242, - 12.673324189062495, - 12.673400020135318, - 12.673475805813906, - 12.673551546125434, - 12.673627241097057, - 12.673702890755917, - 12.67377849512914, - 12.673854054243838, - 12.673929568127098, - 12.674005036806003, - 12.674080460307607, - 12.674155838658958, - 12.674231171887083, - 12.674306460018995, - 12.674381703081686, - 12.67445690110214, - 12.674532054107315, - 12.674607162124165, - 12.674682225179616, - 12.674757243300585, - 12.674832216513968, - 12.674907144846651, - 12.6749820283255, - 12.675056866977364, - 12.675131660829079, - 12.675206409907464, - 12.67528111423932, - 12.675355773851432, - 12.675430388770573, - 12.675504959023497, - 12.675579484636941, - 12.675653965637627, - 12.675728402052263, - 12.675802793907538, - 12.675877141230126, - 12.675951444046685, - 12.67602570238386, - 12.676099916268274, - 12.676174085726538, - 12.676248210785248, - 12.676322291470983, - 12.676396327810306, - 12.676470319829757, - 12.676544267555878, - 12.676618171015173, - 12.67669203023415, - 12.676765845239288, - 12.676839616057054, - 12.676913342713902, - 12.676987025236265, - 12.677060663650566, - 12.677134257983207, - 12.677207808260578, - 12.677281314509047, - 12.677354776754976, - 12.677428195024705, - 12.677501569344559, - 12.677574899740845, - 12.677648186239857, - 12.677721428867876, - 12.677794627651163, - 12.677867782615964, - 12.677940893788508, - 12.678013961195012, - 12.678086984861675, - 12.67815996481468, - 12.678232901080197, - 12.678305793684377, - 12.678378642653355, - 12.678451448013256, - 12.678524209790183, - 12.678596928010224, - 12.678669602699458, - 12.67874223388394, - 12.678814821589711, - 12.678887365842803, - 12.678959866669228, - 12.679032324094978, - 12.679104738146036, - 12.679177108848366, - 12.679249436227916, - 12.679321720310625, - 12.67939396112241, - 12.679466158689172, - 12.679538313036797, - 12.679610424191162, - 12.679682492178118, - 12.679754517023511, - 12.679826498753162, - 12.679898437392886, - 12.679970332968473, - 12.680042185505704, - 12.680113995030343, - 12.680185761568142, - 12.680257485144827, - 12.680329165786118, - 12.680400803517719, - 12.680472398365318, - 12.680543950354581, - 12.680615459511166, - 12.680686925860714, - 12.680758349428853, - 12.68082973024119, - 12.680901068323319, - 12.680972363700823, - 12.681043616399265, - 12.68111482644419, - 12.681185993861135, - 12.681257118675616, - 12.681328200913136, - 12.681399240599182, - 12.681470237759227, - 12.68154119241873, - 12.681612104603131, - 12.681682974337857, - 12.68175380164832, - 12.681824586559918, - 12.681895329098024, - 12.681966029288011, - 12.682036687155227, - 12.68210730272501, - 12.682177876022678, - 12.682248407073534, - 12.68231889590287, - 12.682389342535965, - 12.682459746998072, - 12.682530109314438, - 12.682600429510297, - 12.682670707610855, - 12.682740943641315, - 12.682811137626862, - 12.682881289592663, - 12.682951399563875, - 12.683021467565634, - 12.683091493623067, - 12.68316147776128, - 12.683231420005367, - 12.683301320380409, - 12.683371178911466, - 12.68344099562359, - 12.683510770541815, - 12.683580503691159, - 12.683650195096627, - 12.683719844783205, - 12.68378945277587, - 12.683859019099577, - 12.683928543779272, - 12.683998026839886, - 12.68406746830633, - 12.684136868203504, - 12.684206226556295, - 12.68427554338957, - 12.684344818728183, - 12.684414052596974, - 12.68448324502077, - 12.684552396024378, - 12.684621505632595, - 12.684690573870203, - 12.684759600761964, - 12.68482858633263, - 12.684897530606934, - 12.6849664336096, - 12.685035295365333, - 12.685104115898826, - 12.685172895234755, - 12.68524163339778, - 12.68531033041255, - 12.685378986303698, - 12.685447601095838, - 12.685516174813575, - 12.685584707481498, - 12.685653199124182, - 12.685721649766183, - 12.685790059432042, - 12.685858428146295, - 12.685926755933451, - 12.685995042818012, - 12.686063288824462, - 12.686131493977273, - 12.6861996583009, - 12.686267781819787, - 12.686335864558359, - 12.686403906541026, - 12.686471907792187, - 12.686539868336228, - 12.686607788197511, - 12.686675667400394, - 12.686743505969215, - 12.686811303928298, - 12.686879061301951, - 12.686946778114473, - 12.687014454390145, - 12.68708209015323, - 12.68714968542798, - 12.687217240238638, - 12.687284754609422, - 12.68735222856454, - 12.687419662128187, - 12.68748705532454, - 12.68755440817777, - 12.687621720712018, - 12.687688992951426, - 12.687756224920115, - 12.68782341664219, - 12.687890568141746, - 12.687957679442858, - 12.688024750569593, - 12.688091781546, - 12.688158772396111, - 12.68822572314395, - 12.68829263381352, - 12.688359504428814, - 12.688426335013808, - 12.68849312559247, - 12.688559876188743, - 12.688626586826564, - 12.688693257529854, - 12.688759888322519, - 12.68882647922845, - 12.68889303027152, - 12.688959541475597, - 12.689026012864527, - 12.689092444462146, - 12.689158836292272, - 12.689225188378709, - 12.689291500745254, - 12.68935777341568, - 12.689424006413752, - 12.689490199763219, - 12.689556353487813, - 12.689622467611258, - 12.689688542157258, - 12.689754577149502, - 12.689820572611675, - 12.689886528567435, - 12.689952445040433, - 12.690018322054305, - 12.69008415963267, - 12.690149957799138, - 12.6902157165773, - 12.690281435990736, - 12.690347116063007, - 12.690412756817668, - 12.690478358278254, - 12.690543920468288, - 12.690609443411276, - 12.690674927130713, - 12.69074037165008, - 12.690805776992843, - 12.690871143182454, - 12.69093647024235, - 12.691001758195958, - 12.691067007066684, - 12.691132216877927, - 12.691197387653066, - 12.69126251941547, - 12.691327612188493, - 12.691392665995478, - 12.691457680859747, - 12.691522656804612, - 12.691587593853372, - 12.691652492029313, - 12.691717351355704, - 12.6917821718558, - 12.691846953552846, - 12.691911696470065, - 12.691976400630677, - 12.69204106605788, - 12.692105692774863, - 12.692170280804795, - 12.692234830170838, - 12.692299340896136, - 12.69236381300382, - 12.692428246517009, - 12.692492641458806, - 12.692556997852298, - 12.692621315720565, - 12.692685595086667, - 12.692749835973652, - 12.692814038404554, - 12.692878202402394, - 12.692942327990181, - 12.693006415190906, - 12.69307046402755, - 12.693134474523077, - 12.69319844670044, - 12.693262380582576, - 12.69332627619241, - 12.693390133552853, - 12.693453952686804, - 12.693517733617144, - 12.69358147636674, - 12.693645180958452, - 12.693708847415122, - 12.693772475759575, - 12.69383606601463, - 12.693899618203083, - 12.693963132347726, - 12.694026608471333, - 12.694090046596662, - 12.69415344674646, - 12.694216808943462, - 12.694280133210386, - 12.694343419569938, - 12.694406668044808, - 12.69446987865768, - 12.694533051431213, - 12.694596186388065, - 12.694659283550868, - 12.69472234294225, - 12.694785364584819, - 12.694848348501175, - 12.6949112947139, - 12.694974203245565, - 12.695037074118726, - 12.695099907355928, - 12.6951627029797, - 12.695225461012555, - 12.695288181477002, - 12.695350864395527, - 12.695413509790605, - 12.695476117684699, - 12.69553868810026, - 12.695601221059722, - 12.695663716585507, - 12.695726174700022, - 12.695788595425665, - 12.695850978784817, - 12.695913324799845, - 12.695975633493106, - 12.696037904886941, - 12.696100139003677, - 12.696162335865631, - 12.696224495495104, - 12.69628661791438, - 12.696348703145741, - 12.696410751211443, - 12.69647276213374, - 12.696534735934863, - 12.696596672637032, - 12.696658572262457, - 12.696720434833335, - 12.696782260371844, - 12.696844048900155, - 12.696905800440422, - 12.696967515014789, - 12.697029192645385, - 12.697090833354322, - 12.697152437163703, - 12.697214004095619, - 12.697275534172142, - 12.69733702741534, - 12.697398483847255, - 12.69745990348993, - 12.697521286365385, - 12.69758263249563, - 12.69764394190266, - 12.697705214608462, - 12.697766450635001, - 12.697827650004239, - 12.697888812738118, - 12.697949938858567, - 12.698011028387507, - 12.69807208134684, - 12.69813309775846, - 12.698194077644242, - 12.698255021026053, - 12.698315927925744, - 12.698376798365157, - 12.698437632366113, - 12.698498429950428, - 12.698559191139903, - 12.698619915956323, - 12.698680604421464, - 12.698741256557081, - 12.698801872384928, - 12.698862451926738, - 12.698922995204232, - 12.698983502239116, - 12.69904397305309, - 12.699104407667836, - 12.69916480610502, - 12.699225168386304, - 12.699285494533326, - 12.699345784567722, - 12.699406038511107, - 12.699466256385087, - 12.699526438211254, - 12.699586584011188, - 12.699646693806452, - 12.6997067676186, - 12.699766805469176, - 12.699826807379704, - 12.699886773371698, - 12.699946703466663, - 12.700006597686086, - 12.70006645605144, - 12.700126278584193, - 12.700186065305795, - 12.700245816237679, - 12.700305531401272, - 12.700365210817987, - 12.70042485450922, - 12.700484462496359, - 12.700544034800778, - 12.700603571443835, - 12.700663072446881, - 12.700722537831249, - 12.70078196761826, - 12.700841361829225, - 12.700900720485441, - 12.700960043608191, - 12.701019331218747, - 12.701078583338365, - 12.701137799988295, - 12.701196981189767, - 12.701256126964003, - 12.70131523733221, - 12.70137431231558, - 12.701433351935298, - 12.701492356212531, - 12.701551325168442, - 12.70161025882417, - 12.701669157200845, - 12.701728020319589, - 12.701786848201507, - 12.701845640867692, - 12.701904398339225, - 12.701963120637181, - 12.702021807782605, - 12.70208045979655, - 12.702139076700037, - 12.702197658514091, - 12.702256205259713, - 12.702314716957902, - 12.702373193629631, - 12.702431635295872, - 12.70249004197758, - 12.702548413695693, - 12.702606750471146, - 12.702665052324853, - 12.702723319277721, - 12.702781551350643, - 12.7028397485645, - 12.702897910940155, - 12.702956038498467, - 12.703014131260275, - 12.703072189246413, - 12.703130212477696, - 12.703188200974928, - 12.703246154758906, - 12.703304073850406, - 12.703361958270198, - 12.703419808039035, - 12.703477623177664, - 12.703535403706809, - 12.703593149647194, - 12.703650861019522, - 12.703708537844484, - 12.703766180142766, - 12.703823787935034, - 12.703881361241942, - 12.703938900084138, - 12.703996404482249, - 12.704053874456898, - 12.704111310028688, - 12.704168711218218, - 12.704226078046066, - 12.704283410532803, - 12.704340708698984, - 12.704397972565157, - 12.704455202151856, - 12.704512397479599, - 12.704569558568892, - 12.704626685440237, - 12.704683778114113, - 12.704740836610995, - 12.704797860951338, - 12.70485485115559, - 12.704911807244187, - 12.704968729237553, - 12.705025617156094, - 12.70508247102021, - 12.705139290850289, - 12.705196076666699, - 12.705252828489806, - 12.70530954633996, - 12.705366230237495, - 12.705422880202736, - 12.705479496255998, - 12.70553607841758, - 12.705592626707768, - 12.705649141146841, - 12.705705621755063, - 12.705762068552685, - 12.705818481559948, - 12.70587486079708, - 12.705931206284294, - 12.705987518041795, - 12.706043796089773, - 12.706100040448408, - 12.70615625113787, - 12.706212428178311, - 12.706268571589876, - 12.706324681392696, - 12.706380757606889, - 12.706436800252563, - 12.706492809349811, - 12.706548784918716, - 12.706604726979352, - 12.706660635551772, - 12.706716510656028, - 12.706772352312154, - 12.706828160540173, - 12.706883935360093, - 12.706939676791915, - 12.706995384855626, - 12.7070510595712, - 12.7071067009586, - 12.707162309037779, - 12.707217883828672, - 12.707273425351211, - 12.707328933625309, - 12.707384408670869, - 12.70743985050778, - 12.707495259155927, - 12.707550634635174, - 12.707605976965377, - 12.70766128616638, - 12.707716562258016, - 12.707771805260101, - 12.707827015192448, - 12.707882192074852, - 12.707937335927095, - 12.707992446768953, - 12.708047524620186, - 12.708102569500541, - 12.708157581429756, - 12.708212560427556, - 12.708267506513657, - 12.70832241970776, - 12.708377300029552, - 12.708432147498712, - 12.70848696213491, - 12.708541743957797, - 12.708596492987017, - 12.708651209242198, - 12.708705892742966, - 12.708760543508921, - 12.708815161559663, - 12.708869746914775, - 12.708924299593832, - 12.708978819616393, - 12.709033307002004, - 12.709087761770206, - 12.709142183940523, - 12.70919657353247, - 12.709250930565547, - 12.709305255059245, - 12.709359547033046, - 12.709413806506412, - 12.709468033498803, - 12.709522228029659, - 12.709576390118414, - 12.70963051978449, - 12.709684617047294, - 12.709738681926225, - 12.709792714440669, - 12.709846714609998, - 12.709900682453576, - 12.709954617990755, - 12.710008521240871, - 12.710062392223254, - 12.71011623095722, - 12.710170037462074, - 12.710223811757109, - 12.710277553861605, - 12.710331263794833, - 12.710384941576054, - 12.71043858722451, - 12.710492200759441, - 12.710545782200068, - 12.710599331565604, - 12.710652848875249, - 12.710706334148194, - 12.710759787403617, - 12.710813208660683, - 12.710866597938548, - 12.710919955256356, - 12.710973280633239, - 12.711026574088315, - 12.711079835640698, - 12.71113306530948, - 12.711186263113753, - 12.711239429072586, - 12.711292563205047, - 12.711345665530187, - 12.711398736067045, - 12.711451774834652, - 12.711504781852025, - 12.71155775713817, - 12.711610700712082, - 12.711663612592744, - 12.711716492799132, - 12.711769341350204, - 12.711822158264908, - 12.711874943562187, - 12.711927697260961, - 12.71198041938015, - 12.71203310993866, - 12.712085768955381, - 12.712138396449195, - 12.712190992438973, - 12.712243556943575, - 12.712296089981846, - 12.712348591572626, - 12.712401061734738, - 12.712453500486998, - 12.712505907848207, - 12.712558283837156, - 12.712610628472625, - 12.712662941773383, - 12.712715223758186, - 12.712767474445785, - 12.712819693854915, - 12.712871882004297, - 12.712924038912643, - 12.712976164598656, - 12.713028259081028, - 12.713080322378435, - 12.713132354509549, - 12.713184355493025, - 12.713236325347506, - 12.713288264091632, - 12.713340171744024, - 12.713392048323291, - 12.713443893848039, - 12.713495708336854, - 12.713547491808317, - 12.713599244280996, - 12.713650965773446, - 12.713702656304216, - 12.713754315891833, - 12.713805944554826, - 12.713857542311708, - 12.71390910918098, - 12.713960645181128, - 12.714012150330635, - 12.714063624647965, - 12.714115068151578, - 12.714166480859918, - 12.714217862791422, - 12.714269213964512, - 12.7143205343976, - 12.714371824109088, - 12.714423083117369, - 12.714474311440819, - 12.714525509097811, - 12.714576676106699, - 12.71462781248583, - 12.714678918253544, - 12.714729993428161, - 12.714781038027997, - 12.714832052071353, - 12.714883035576522, - 12.714933988561784, - 12.714984911045411, - 12.715035803045659, - 12.715086664580777, - 12.715137495669003, - 12.715188296328565, - 12.715239066577675, - 12.715289806434539, - 12.71534051591735, - 12.715391195044289, - 12.715441843833531, - 12.715492462303235, - 12.71554305047155, - 12.71559360835662, - 12.715644135976566, - 12.71569463334951, - 12.715745100493558, - 12.715795537426805, - 12.715845944167336, - 12.715896320733227, - 12.71594666714254, - 12.715996983413323, - 12.716047269563626, - 12.716097525611472, - 12.716147751574885, - 12.716197947471876, - 12.716248113320438, - 12.716298249138564, - 12.716348354944227, - 12.716398430755396, - 12.716448476590024, - 12.716498492466057, - 12.71654847840143, - 12.716598434414065, - 12.716648360521875, - 12.71669825674276, - 12.716748123094613, - 12.716797959595311, - 12.716847766262728, - 12.716897543114719, - 12.716947290169136, - 12.716997007443815, - 12.717046694956581, - 12.717096352725251, - 12.717145980767633, - 12.717195579101519, - 12.717245147744695, - 12.717294686714935, - 12.717344196029998, - 12.71739367570764, - 12.717443125765602, - 12.717492546221614, - 12.717541937093397, - 12.717591298398661, - 12.717640630155104, - 12.717689932380416, - 12.717739205092277, - 12.717788448308351, - 12.717837662046296, - 12.717886846323758, - 12.717936001158373, - 12.717985126567767, - 12.718034222569553, - 12.718083289181335, - 12.718132326420706, - 12.718181334305251, - 12.718230312852542, - 12.718279262080141, - 12.7183281820056, - 12.718377072646458, - 12.718425934020248, - 12.718474766144489, - 12.718523569036687, - 12.718572342714348, - 12.718621087194952, - 12.718669802495983, - 12.718718488634908, - 12.718767145629185, - 12.718815773496258, - 12.718864372253561, - 12.718912941918527, - 12.718961482508567, - 12.719009994041084, - 12.719058476533476, - 12.719106930003125, - 12.719155354467405, - 12.719203749943679, - 12.7192521164493, - 12.719300454001614, - 12.71934876261795, - 12.71939704231563, - 12.719445293111965, - 12.719493515024256, - 12.719541708069794, - 12.71958987226586, - 12.719638007629724, - 12.719686114178645, - 12.719734191929868, - 12.71978224090064, - 12.719830261108184, - 12.719878252569721, - 12.719926215302458, - 12.719974149323594, - 12.720022054650313, - 12.720069931299797, - 12.72011777928921, - 12.720165598635706, - 12.720213389356436, - 12.720261151468536, - 12.720308884989127, - 12.72035658993533, - 12.720404266324246, - 12.720451914172973, - 12.720499533498593, - 12.720547124318184, - 12.720594686648809, - 12.720642220507521, - 12.720689725911367, - 12.720737202877377, - 12.720784651422576, - 12.720832071563978, - 12.720879463318585, - 12.72092682670339, - 12.720974161735379, - 12.72102146843152, - 12.721068746808779, - 12.721115996884107, - 12.721163218674445, - 12.721210412196724, - 12.721257577467872, - 12.721304714504793, - 12.721351823324394, - 12.721398903943566, - 12.72144595637919, - 12.721492980648136, - 12.721539976767266, - 12.721586944753431, - 12.721633884623472, - 12.721680796394221, - 12.721727680082498, - 12.721774535705114, - 12.721821363278869, - 12.721868162820554, - 12.721914934346952, - 12.721961677874829, - 12.722008393420952, - 12.722055081002063, - 12.72210174063491, - 12.72214837233622, - 12.722194976122715, - 12.722241552011104, - 12.722288100018087, - 12.722334620160355, - 12.72238111245459, - 12.722427576917463, - 12.722474013565632, - 12.72252042241575, - 12.722566803484451, - 12.722613156788375, - 12.722659482344138, - 12.72270578016835, - 12.722752050277613, - 12.722798292688518, - 12.722844507417642, - 12.722890694481562, - 12.722936853896838, - 12.722982985680016, - 12.723029089847644, - 12.723075166416248, - 12.723121215402351, - 12.723167236822466, - 12.72321323069309, - 12.723259197030723, - 12.723305135851842, - 12.723351047172915, - 12.723396931010411, - 12.72344278738078, - 12.723488616300465, - 12.723534417785896, - 12.7235801918535, - 12.723625938519687, - 12.72367165780086, - 12.723717349713413, - 12.723763014273729, - 12.723808651498182, - 12.723854261403135, - 12.723899844004944, - 12.723945399319954, - 12.723990927364497, - 12.724036428154898, - 12.724081901707473, - 12.724127348038527, - 12.724172767164355, - 12.724218159101243, - 12.724263523865465, - 12.72430886147329, - 12.724354171940973, - 12.724399455284765, - 12.724444711520896, - 12.724489940665595, - 12.724535142735082, - 12.724580317745566, - 12.72462546571324, - 12.724670586654296, - 12.72471568058491, - 12.724760747521259, - 12.724805787479493, - 12.724850800475766, - 12.724895786526217, - 12.724940745646977, - 12.724985677854168, - 12.725030583163898, - 12.72507546159227, - 12.725120313155376, - 12.7251651378693, - 12.72520993575011, - 12.725254706813873, - 12.725299451076639, - 12.725344168554455, - 12.725388859263353, - 12.725433523219358, - 12.725478160438488, - 12.725522770936744, - 12.725567354730122, - 12.725611911834612, - 12.725656442266185, - 12.725700946040813, - 12.72574542317445, - 12.725789873683045, - 12.725834297582535, - 12.725878694888852, - 12.725923065617913, - 12.725967409785628, - 12.726011727407899, - 12.726056018500616, - 12.72610028307966, - 12.7261445211609, - 12.726188732760203, - 12.72623291789342, - 12.726277076576391, - 12.72632120882495, - 12.726365314654926, - 12.72640939408213, - 12.72645344712237, - 12.72649747379144, - 12.726541474105128, - 12.726585448079208, - 12.72662939572945, - 12.72667331707161, - 12.72671721212144, - 12.726761080894676, - 12.726804923407046, - 12.726848739674278, - 12.726892529712075, - 12.726936293536141, - 12.726980031162169, - 12.727023742605844, - 12.727067427882835, - 12.72711108700881, - 12.72715471999942, - 12.727198326870312, - 12.72724190763712, - 12.727285462315473, - 12.727328990920988, - 12.727372493469272, - 12.727415969975924, - 12.727459420456533, - 12.727502844926676, - 12.727546243401928, - 12.727589615897848, - 12.727632962429988, - 12.727676283013889, - 12.727719577665088, - 12.727762846399104, - 12.727806089231455, - 12.727849306177646, - 12.727892497253173, - 12.727935662473522, - 12.727978801854169, - 12.728021915410586, - 12.72806500315823, - 12.72810806511255, - 12.72815110128899, - 12.728194111702976, - 12.728237096369933, - 12.728280055305275, - 12.728322988524404, - 12.728365896042712, - 12.728408777875586, - 12.728451634038402, - 12.728494464546527, - 12.72853726941532, - 12.728580048660127, - 12.72862280229629, - 12.728665530339134, - 12.728708232803982, - 12.728750909706147, - 12.728793561060929, - 12.728836186883626, - 12.728878787189515, - 12.728921361993878, - 12.728963911311975, - 12.729006435159068, - 12.7290489335504, - 12.72909140650121, - 12.729133854026731, - 12.729176276142178, - 12.729218672862766, - 12.729261044203696, - 12.72930339018016, - 12.729345710807342, - 12.729388006100418, - 12.729430276074552, - 12.7294725207449, - 12.72951474012661, - 12.729556934234822, - 12.729599103084663, - 12.729641246691257, - 12.72968336506971, - 12.729725458235128, - 12.729767526202602, - 12.729809568987216, - 12.729851586604049, - 12.729893579068163, - 12.729935546394612, - 12.72997748859845, - 12.730019405694716, - 12.730061297698436, - 12.730103164624634, - 12.730145006488318, - 12.730186823304495, - 12.730228615088159, - 12.730270381854291, - 12.730312123617873, - 12.730353840393871, - 12.730395532197239, - 12.73043719904293, - 12.73047884094588, - 12.730520457921024, - 12.730562049983284, - 12.73060361714757, - 12.730645159428791, - 12.730686676841842, - 12.730728169401607, - 12.730769637122965, - 12.730811080020786, - 12.730852498109929, - 12.730893891405245, - 12.730935259921576, - 12.730976603673756, - 12.731017922676608, - 12.73105921694495, - 12.731100486493585, - 12.731141731337315, - 12.731182951490924, - 12.731224146969195, - 12.7312653177869, - 12.731306463958799, - 12.73134758549965, - 12.731388682424193, - 12.731429754747166, - 12.731470802483296, - 12.731511825647301, - 12.73155282425389, - 12.731593798317766, - 12.731634747853617, - 12.731675672876126, - 12.731716573399972, - 12.731757449439819, - 12.731798301010318, - 12.731839128126124, - 12.731879930801874, - 12.731920709052195, - 12.731961462891713, - 12.732002192335038, - 12.732042897396777, - 12.732083578091522, - 12.732124234433863, - 12.732164866438378, - 12.732205474119631, - 12.732246057492189, - 12.732286616570597, - 12.732327151369404, - 12.732367661903142, - 12.732408148186336, - 12.732448610233504, - 12.732489048059152, - 12.732529461677784, - 12.732569851103888, - 12.732610216351945, - 12.732650557436433, - 12.732690874371812, - 12.73273116717254, - 12.732771435853065, - 12.732811680427826, - 12.732851900911253, - 12.73289209731777, - 12.732932269661784, - 12.732972417957706, - 12.733012542219926, - 12.733052642462837, - 12.733092718700812, - 12.733132770948224, - 12.733172799219433, - 12.733212803528794, - 12.733252783890645, - 12.73329274031933, - 12.73333267282917, - 12.733372581434486, - 12.733412466149586, - 12.733452326988774, - 12.73349216396634, - 12.733531977096568, - 12.733571766393734, - 12.733611531872109, - 12.733651273545945, - 12.733690991429498, - 12.733730685537004, - 12.733770355882697, - 12.733810002480807, - 12.733849625345544, - 12.733889224491115, - 12.733928799931723, - 12.733968351681554, - 12.734007879754794, - 12.734047384165613, - 12.734086864928177, - 12.734126322056643, - 12.73416575556516, - 12.734205165467863, - 12.734244551778888, - 12.734283914512355, - 12.73432325368238, - 12.734362569303066, - 12.734401861388513, - 12.734441129952806, - 12.734480375010028, - 12.73451959657425, - 12.734558794659536, - 12.73459796927994, - 12.734637120449511, - 12.734676248182284, - 12.73471535249229, - 12.734754433393553, - 12.734793490900081, - 12.734832525025885, - 12.734871535784956, - 12.734910523191282, - 12.734949487258845, - 12.734988428001614, - 12.735027345433556, - 12.735066239568619, - 12.735105110420754, - 12.7351439580039, - 12.735182782331979, - 12.735221583418918, - 12.735260361278629, - 12.735299115925017, - 12.735337847371973, - 12.735376555633389, - 12.735415240723146, - 12.735453902655111, - 12.735492541443149, - 12.735531157101114, - 12.73556974964285, - 12.735608319082202, - 12.73564686543299, - 12.735685388709042, - 12.735723888924168, - 12.735762366092176, - 12.73580082022686, - 12.735839251342009, - 12.735877659451402, - 12.735916044568812, - 12.735954406708002, - 12.735992745882728, - 12.736031062106735, - 12.736069355393763, - 12.736107625757544, - 12.736145873211798, - 12.736184097770243, - 12.736222299446581, - 12.736260478254513, - 12.736298634207726, - 12.736336767319901, - 12.736374877604712, - 12.736412965075827, - 12.736451029746895, - 12.736489071631572, - 12.7365270907435, - 12.736565087096304, - 12.736603060703613, - 12.73664101157904, - 12.736678939736194, - 12.736716845188678, - 12.736754727950078, - 12.73679258803398, - 12.736830425453961, - 12.736868240223586, - 12.736906032356416, - 12.736943801865998, - 12.736981548765879, - 12.737019273069592, - 12.737056974790661, - 12.73709465394261, - 12.737132310538945, - 12.73716994459317, - 12.73720755611878, - 12.73724514512926, - 12.737282711638086, - 12.737320255658732, - 12.73735777720466, - 12.737395276289318, - 12.737432752926159, - 12.737470207128617, - 12.73750763891012, - 12.737545048284092, - 12.737582435263949, - 12.737619799863095, - 12.737657142094926, - 12.737694461972833, - 12.737731759510197, - 12.73776903472039, - 12.73780628761678, - 12.737843518212724, - 12.73788072652157, - 12.737917912556664, - 12.737955076331335, - 12.737992217858912, - 12.73802933715271, - 12.73806643422604, - 12.738103509092202, - 12.73814056176449, - 12.738177592256193, - 12.738214600580585, - 12.738251586750938, - 12.738288550780512, - 12.738325492682561, - 12.738362412470336, - 12.73839931015707, - 12.738436185755994, - 12.738473039280331, - 12.738509870743295, - 12.738546680158091, - 12.73858346753792, - 12.738620232895974, - 12.738656976245432, - 12.738693697599473, - 12.73873039697126, - 12.738767074373952, - 12.738803729820702, - 12.738840363324654, - 12.738876974898941, - 12.738913564556695, - 12.738950132311029, - 12.73898667817506, - 12.739023202161894, - 12.739059704284621, - 12.739096184556333, - 12.739132642990109, - 12.739169079599025, - 12.739205494396142, - 12.739241887394517, - 12.739278258607202, - 12.739314608047238, - 12.739350935727655, - 12.739387241661484, - 12.73942352586174, - 12.739459788341433, - 12.73949602911357, - 12.739532248191137, - 12.739568445587128, - 12.73960462131452, - 12.739640775386285, - 12.739676907815383, - 12.739713018614774, - 12.739749107797405, - 12.739785175376214, - 12.739821221364139, - 12.739857245774099, - 12.739893248619014, - 12.73992922991179, - 12.739965189665334, - 12.740001127892537, - 12.740037044606284, - 12.740072939819456, - 12.740108813544921, - 12.740144665795546, - 12.74018049658418, - 12.740216305923678, - 12.740252093826873, - 12.740287860306603, - 12.74032360537569, - 12.74035932904695, - 12.740395031333195, - 12.740430712247225, - 12.740466371801833, - 12.740502010009807, - 12.740537626883924, - 12.740573222436955, - 12.740608796681663, - 12.740644349630807, - 12.740679881297131, - 12.74071539169338, - 12.740750880832282, - 12.740786348726564, - 12.740821795388944, - 12.740857220832131, - 12.740892625068827, - 12.740928008111728, - 12.740963369973521, - 12.740998710666885, - 12.74103403020449, - 12.741069328599004, - 12.74110460586308, - 12.741139862009371, - 12.741175097050514, - 12.741210310999147, - 12.741245503867896, - 12.74128067566938, - 12.741315826416207, - 12.741350956120986, - 12.741386064796309, - 12.741421152454764, - 12.741456219108937, - 12.7414912647714, - 12.741526289454715, - 12.741561293171445, - 12.741596275934143, - 12.741631237755346, - 12.741666178647595, - 12.741701098623416, - 12.741735997695333, - 12.741770875875858, - 12.741805733177497, - 12.741840569612744, - 12.741875385194096, - 12.741910179934036, - 12.741944953845039, - 12.741979706939574, - 12.742014439230102, - 12.742049150729077, - 12.742083841448945, - 12.742118511402145, - 12.742153160601108, - 12.74218778905826, - 12.742222396786014, - 12.742256983796782, - 12.742291550102966, - 12.742326095716956, - 12.742360620651144, - 12.742395124917905, - 12.742429608529614, - 12.742464071498636, - 12.742498513837326, - 12.742532935558035, - 12.742567336673108, - 12.742601717194875, - 12.742636077135664, - 12.7426704165078, - 12.74270473532359, - 12.742739033595344, - 12.742773311335357, - 12.742807568555923, - 12.742841805269325, - 12.742876021487834, - 12.742910217223727, - 12.74294439248926, - 12.742978547296687, - 12.743012681658255, - 12.743046795586205, - 12.743080889092768, - 12.743114962190166, - 12.743149014890623, - 12.743183047206344, - 12.743217059149531, - 12.743251050732384, - 12.743285021967086, - 12.743318972865824, - 12.743352903440766, - 12.74338681370408, - 12.743420703667926, - 12.743454573344456, - 12.743488422745813, - 12.743522251884135, - 12.743556060771551, - 12.743589849420186, - 12.743623617842152, - 12.74365736604956, - 12.743691094054508, - 12.743724801869094, - 12.743758489505401, - 12.74379215697551, - 12.743825804291491, - 12.743859431465411, - 12.743893038509324, - 12.743926625435284, - 12.743960192255331, - 12.743993738981503, - 12.744027265625828, - 12.744060772200328, - 12.744094258717016, - 12.7441277251879, - 12.744161171624981, - 12.74419459804025, - 12.744228004445695, - 12.744261390853291, - 12.74429475727501, - 12.744328103722818, - 12.744361430208668, - 12.744394736744514, - 12.744428023342298, - 12.74446129001395, - 12.744494536771404, - 12.74452776362658, - 12.74456097059139, - 12.744594157677744, - 12.74462732489754, - 12.744660472262668, - 12.744693599785016, - 12.744726707476463, - 12.74475979534888, - 12.744792863414132, - 12.744825911684073, - 12.744858940170554, - 12.744891948885419, - 12.744924937840503, - 12.744957907047636, - 12.744990856518637, - 12.745023786265323, - 12.7450566962995, - 12.745089586632968, - 12.745122457277521, - 12.745155308244946, - 12.74518813954702, - 12.745220951195519, - 12.745253743202205, - 12.745286515578837, - 12.745319268337164, - 12.745352001488932, - 12.745384715045878, - 12.745417409019732, - 12.745450083422215, - 12.745482738265046, - 12.745515373559932, - 12.745547989318576, - 12.74558058555267, - 12.745613162273902, - 12.745645719493957, - 12.745678257224506, - 12.745710775477217, - 12.745743274263749, - 12.745775753595755, - 12.74580821348488, - 12.745840653942766, - 12.745873074981041, - 12.745905476611332, - 12.745937858845258, - 12.745970221694426, - 12.746002565170446, - 12.746034889284912, - 12.746067194049415, - 12.74609947947554, - 12.74613174557486, - 12.746163992358946, - 12.74619621983936, - 12.74622842802766, - 12.74626061693539, - 12.746292786574097, - 12.746324936955315, - 12.74635706809057, - 12.74638917999138, - 12.746421272669265, - 12.746453346135729, - 12.746485400402275, - 12.746517435480394, - 12.746549451381576, - 12.746581448117297, - 12.746613425699032, - 12.746645384138246, - 12.746677323446399, - 12.746709243634943, - 12.74674114471532, - 12.746773026698975, - 12.746804889597337, - 12.746836733421828, - 12.746868558183872, - 12.746900363894873, - 12.74693215056624, - 12.74696391820937, - 12.746995666835653, - 12.747027396456472, - 12.747059107083208, - 12.74709079872723, - 12.747122471399898, - 12.747154125112571, - 12.7471857598766, - 12.747217375703327, - 12.747248972604087, - 12.747280550590212, - 12.747312109673022, - 12.747343649863835, - 12.74737517117396, - 12.7474066736147, - 12.747438157197347, - 12.747469621933195, - 12.747501067833523, - 12.747532494909606, - 12.747563903172717, - 12.747595292634111, - 12.747626663305049, - 12.747658015196775, - 12.747689348320533, - 12.74772066268756, - 12.747751958309081, - 12.747783235196318, - 12.747814493360487, - 12.747845732812793, - 12.747876953564443, - 12.747908155626629, - 12.747939339010536, - 12.74797050372735, - 12.74800164978824, - 12.748032777204376, - 12.748063885986921, - 12.74809497614703, - 12.748126047695846, - 12.74815710064452, - 12.748188135004174, - 12.748219150785944, - 12.748250148000949, - 12.748281126660304, - 12.748312086775117, - 12.748343028356489, - 12.748373951415513, - 12.74840485596328, - 12.748435742010866, - 12.748466609569352, - 12.748497458649803, - 12.748528289263279, - 12.748559101420836, - 12.748589895133524, - 12.748620670412382, - 12.748651427268443, - 12.748682165712742, - 12.748712885756294, - 12.748743587410118, - 12.748774270685223, - 12.748804935592606, - 12.748835582143267, - 12.748866210348194, - 12.748896820218366, - 12.748927411764761, - 12.74895798499835, - 12.748988539930092, - 12.749019076570946, - 12.74904959493186, - 12.749080095023777, - 12.749110576857632, - 12.749141040444355, - 12.749171485794871, - 12.749201912920096, - 12.74923232183094, - 12.749262712538304, - 12.749293085053088, - 12.749323439386181, - 12.749353775548467, - 12.749384093550825, - 12.749414393404125, - 12.749444675119232, - 12.749474938707003, - 12.749505184178291, - 12.749535411543938, - 12.749565620814785, - 12.749595812001662, - 12.749625985115397, - 12.749656140166806, - 12.749686277166704, - 12.749716396125896, - 12.749746497055183, - 12.749776579965356, - 12.749806644867203, - 12.7498366917715, - 12.74986672068903, - 12.749896731630551, - 12.74992672460683, - 12.749956699628619, - 12.749986656706668, - 12.750016595851713, - 12.750046517074495, - 12.750076420385739, - 12.75010630579617, - 12.750136173316502, - 12.750166022957446, - 12.750195854729702, - 12.75022566864397, - 12.750255464710937, - 12.75028524294129, - 12.750315003345705, - 12.750344745934852, - 12.750374470719397, - 12.750404177709997, - 12.750433866917307, - 12.750463538351967, - 12.75049319202462, - 12.750522827945899, - 12.750552446126429, - 12.750582046576831, - 12.750611629307718, - 12.750641194329699, - 12.750670741653373, - 12.750700271289336, - 12.750729783248174, - 12.75075927754047, - 12.7507887541768, - 12.750818213167731, - 12.750847654523831, - 12.750877078255652, - 12.750906484373745, - 12.750935872888657, - 12.750965243810924, - 12.750994597151076, - 12.75102393291964, - 12.751053251127134, - 12.751082551784071, - 12.751111834900955, - 12.751141100488288, - 12.751170348556563, - 12.751199579116268, - 12.751228792177882, - 12.751257987751883, - 12.751287165848735, - 12.751316326478904, - 12.751345469652843, - 12.751374595381005, - 12.751403703673832, - 12.751432794541762, - 12.751461867995223, - 12.751490924044644, - 12.75151996270044, - 12.751548983973024, - 12.751577987872802, - 12.751606974410175, - 12.751635943595533, - 12.75166489543927, - 12.75169382995176, - 12.751722747143381, - 12.751751647024504, - 12.751780529605488, - 12.751809394896691, - 12.751838242908462, - 12.751867073651145, - 12.75189588713508, - 12.751924683370595, - 12.751953462368018, - 12.751982224137667, - 12.752010968689854, - 12.752039696034887, - 12.752068406183065, - 12.752097099144684, - 12.752125774930033, - 12.752154433549393, - 12.752183075013036, - 12.752211699331239, - 12.752240306514262, - 12.752268896572362, - 12.752297469515794, - 12.7523260253548, - 12.752354564099619, - 12.752383085760485, - 12.752411590347627, - 12.75244007787126, - 12.752468548341604, - 12.752497001768864, - 12.752525438163245, - 12.752553857534942, - 12.752582259894144, - 12.752610645251037, - 12.752639013615799, - 12.752667364998599, - 12.752695699409607, - 12.752724016858979, - 12.752752317356869, - 12.752780600913429, - 12.752808867538796, - 12.752837117243107, - 12.75286535003649, - 12.752893565929071, - 12.752921764930964, - 12.752949947052281, - 12.752978112303131, - 12.753006260693606, - 12.753034392233806, - 12.753062506933814, - 12.75309060480371, - 12.753118685853574, - 12.75314675009347, - 12.753174797533461, - 12.753202828183607, - 12.753230842053958, - 12.753258839154556, - 12.753286819495441, - 12.753314783086648, - 12.7533427299382, - 12.753370660060122, - 12.753398573462427, - 12.753426470155121, - 12.753454350148209, - 12.75348221345169, - 12.753510060075548, - 12.753537890029776, - 12.753565703324346, - 12.753593499969236, - 12.75362127997441, - 12.753649043349832, - 12.753676790105455, - 12.753704520251226, - 12.753732233797091, - 12.753759930752985, - 12.75378761112884, - 12.753815274934581, - 12.753842922180128, - 12.753870552875394, - 12.753898167030286, - 12.753925764654706, - 12.75395334575855, - 12.753980910351705, - 12.754008458444059, - 12.754035990045482, - 12.754063505165854, - 12.754091003815038, - 12.754118486002895, - 12.754145951739277, - 12.754173401034036, - 12.75420083389701, - 12.754228250338036, - 12.754255650366947, - 12.754283033993564, - 12.754310401227713, - 12.754337752079199, - 12.754365086557831, - 12.754392404673412, - 12.754419706435737, - 12.754446991854595, - 12.75447426093977, - 12.754501513701038, - 12.754528750148172, - 12.754555970290939, - 12.754583174139098, - 12.754610361702406, - 12.754637532990609, - 12.754664688013449, - 12.754691826780665, - 12.754718949301985, - 12.754746055587136, - 12.754773145645837, - 12.754800219487803, - 12.75482727712274, - 12.75485431856035, - 12.754881343810329, - 12.754908352882369, - 12.754935345786153, - 12.754962322531359, - 12.75498928312766, - 12.755016227584726, - 12.755043155912215, - 12.755070068119785, - 12.755096964217085, - 12.755123844213756, - 12.75515070811944, - 12.755177555943769, - 12.755204387696368, - 12.755231203386861, - 12.755258003024858, - 12.755284786619974, - 12.75531155418181, - 12.755338305719963, - 12.755365041244024, - 12.755391760763583, - 12.755418464288217, - 12.755445151827505, - 12.755471823391016, - 12.75549847898831, - 12.755525118628944, - 12.755551742322474, - 12.755578350078448, - 12.7556049419064, - 12.75563151781587, - 12.755658077816383, - 12.755684621917466, - 12.755711150128635, - 12.755737662459401, - 12.755764158919273, - 12.755790639517752, - 12.755817104264331, - 12.755843553168502, - 12.755869986239746, - 12.755896403487542, - 12.75592280492136, - 12.755949190550671, - 12.755975560384933, - 12.7560019144336, - 12.756028252706123, - 12.75605457521195, - 12.756080881960512, - 12.756107172961247, - 12.756133448223581, - 12.756159707756932, - 12.75618595157072, - 12.756212179674353, - 12.756238392077238, - 12.75626458878877, - 12.756290769818348, - 12.756316935175352, - 12.756343084869169, - 12.756369218909173, - 12.756395337304735, - 12.75642144006522, - 12.75644752719999, - 12.756473598718399, - 12.75649965462979, - 12.756525694943512, - 12.756551719668897, - 12.75657772881528, - 12.756603722391986, - 12.756629700408334, - 12.756655662873642, - 12.756681609797218, - 12.756707541188364, - 12.756733457056377, - 12.756759357410555, - 12.75678524226018, - 12.756811111614535, - 12.756836965482897, - 12.756862803874533, - 12.756888626798709, - 12.756914434264687, - 12.756940226281717, - 12.756966002859048, - 12.756991764005924, - 12.75701750973158, - 12.75704324004525, - 12.757068954956159, - 12.757094654473526, - 12.757120338606567, - 12.757146007364492, - 12.757171660756503, - 12.7571972987918, - 12.757222921479576, - 12.757248528829017, - 12.757274120849306, - 12.75729969754962, - 12.75732525893913, - 12.757350805026999, - 12.757376335822388, - 12.757401851334453, - 12.75742735157234, - 12.757452836545196, - 12.757478306262158, - 12.757503760732357, - 12.757529199964923, - 12.757554623968971, - 12.757580032753625, - 12.757605426327991, - 12.757630804701176, - 12.757656167882281, - 12.757681515880398, - 12.757706848704615, - 12.757732166364017, - 12.757757468867682, - 12.757782756224683, - 12.757808028444087, - 12.757833285534955, - 12.757858527506345, - 12.757883754367304, - 12.757908966126882, - 12.757934162794115, - 12.75795934437804, - 12.757984510887688, - 12.758009662332082, - 12.758034798720237, - 12.75805992006117, - 12.758085026363887, - 12.758110117637386, - 12.75813519389067, - 12.75816025513273, - 12.75818530137255, - 12.758210332619107, - 12.758235348881385, - 12.758260350168348, - 12.758285336488962, - 12.758310307852184, - 12.758335264266972, - 12.75836020574227, - 12.758385132287026, - 12.758410043910173, - 12.758434940620646, - 12.758459822427374, - 12.758484689339275, - 12.75850954136527, - 12.758534378514263, - 12.758559200795164, - 12.758584008216875, - 12.758608800788288, - 12.758633578518292, - 12.758658341415778, - 12.758683089489617, - 12.758707822748688, - 12.758732541201857, - 12.758757244857987, - 12.758781933725936, - 12.758806607814558, - 12.758831267132699, - 12.758855911689203, - 12.758880541492905, - 12.758905156552636, - 12.75892975687722, - 12.758954342475482, - 12.758978913356236, - 12.759003469528292, - 12.759028011000455, - 12.759052537781523, - 12.759077049880293, - 12.759101547305555, - 12.75912603006609, - 12.759150498170678, - 12.759174951628092, - 12.7591993904471, - 12.759223814636465, - 12.759248224204944, - 12.759272619161289, - 12.759296999514252, - 12.75932136527257, - 12.759345716444981, - 12.759370053040216, - 12.759394375067004, - 12.759418682534061, - 12.759442975450106, - 12.75946725382385, - 12.759491517663998, - 12.759515766979248, - 12.759540001778296, - 12.759564222069834, - 12.759588427862544, - 12.759612619165107, - 12.759636795986196, - 12.759660958334479, - 12.759685106218623, - 12.759709239647282, - 12.759733358629115, - 12.759757463172765, - 12.759781553286878, - 12.759805628980091, - 12.759829690261038, - 12.759853737138343, - 12.759877769620633, - 12.75990178771652, - 12.759925791434622, - 12.75994978078354, - 12.75997375577188, - 12.759997716408234, - 12.760021662701199, - 12.76004559465936, - 12.760069512291295, - 12.760093415605581, - 12.76011730461079, - 12.760141179315488, - 12.760165039728234, - 12.760188885857586, - 12.760212717712092, - 12.760236535300299, - 12.760260338630747, - 12.760284127711971, - 12.760307902552498, - 12.760331663160857, - 12.760355409545564, - 12.760379141715138, - 12.760402859678083, - 12.760426563442909, - 12.760450253018112, - 12.760473928412187, - 12.760497589633623, - 12.760521236690902, - 12.760544869592506, - 12.760568488346909, - 12.760592092962579, - 12.760615683447979, - 12.760639259811569, - 12.760662822061802, - 12.760686370207125, - 12.760709904255982, - 12.760733424216815, - 12.760756930098053, - 12.760780421908128, - 12.76080389965546, - 12.760827363348472, - 12.760850812995573, - 12.760874248605171, - 12.760897670185672, - 12.760921077745474, - 12.76094447129297, - 12.760967850836543, - 12.760991216384582, - 12.761014567945463, - 12.761037905527557, - 12.761061229139235, - 12.761084538788861, - 12.76110783448479, - 12.761131116235378, - 12.761154384048968, - 12.761177637933905, - 12.761200877898531, - 12.761224103951175, - 12.761247316100166, - 12.761270514353829, - 12.76129369872048, - 12.761316869208434, - 12.761340025825996, - 12.76136316858147, - 12.761386297483154, - 12.761409412539345, - 12.761432513758326, - 12.761455601148384, - 12.761478674717795, - 12.761501734474834, - 12.761524780427768, - 12.76154781258486, - 12.76157083095437, - 12.76159383554455, - 12.761616826363651, - 12.761639803419916, - 12.761662766721583, - 12.761685716276887, - 12.761708652094052, - 12.761731574181308, - 12.761754482546872, - 12.761777377198959, - 12.761800258145776, - 12.76182312539553, - 12.761845978956421, - 12.76186881883664, - 12.761891645044374, - 12.761914457587816, - 12.76193725647514, - 12.761960041714522, - 12.761982813314132, - 12.762005571282137, - 12.762028315626695, - 12.76205104635596, - 12.762073763478085, - 12.762096467001216, - 12.762119156933492, - 12.76214183328305, - 12.76216449605802, - 12.762187145266527, - 12.762209780916692, - 12.762232403016634, - 12.762255011574466, - 12.762277606598289, - 12.76230018809621, - 12.76232275607632, - 12.762345310546719, - 12.762367851515489, - 12.762390378990712, - 12.762412892980468, - 12.762435393492828, - 12.762457880535859, - 12.762480354117624, - 12.762502814246186, - 12.762525260929596, - 12.7625476941759, - 12.762570113993144, - 12.762592520389367, - 12.7626149133726, - 12.762637292950876, - 12.762659659132218, - 12.762682011924648, - 12.762704351336176, - 12.762726677374816, - 12.762748990048573, - 12.762771289365446, - 12.762793575333433, - 12.762815847960523, - 12.762838107254705, - 12.762860353223955, - 12.762882585876254, - 12.762904805219573, - 12.76292701126188, - 12.762949204011134, - 12.762971383475296, - 12.762993549662317, - 12.763015702580146, - 12.763037842236727, - 12.763059968639995, - 12.763082081797885, - 12.763104181718328, - 12.763126268409247, - 12.763148341878562, - 12.763170402134188, - 12.76319244918403, - 12.763214483036002, - 12.763236503697998, - 12.763258511177916, - 12.76328050548365, - 12.763302486623079, - 12.763324454604094, - 12.763346409434565, - 12.763368351122363, - 12.763390279675363, - 12.763412195101422, - 12.7634340974084, - 12.763455986604148, - 12.763477862696519, - 12.763499725693352, - 12.763521575602491, - 12.763543412431767, - 12.763565236189013, - 12.763587046882053, - 12.763608844518707, - 12.76363062910679, - 12.763652400654117, - 12.76367415916849, - 12.763695904657713, - 12.763717637129583, - 12.76373935659189, - 12.763761063052426, - 12.763782756518975, - 12.763804436999308, - 12.763826104501208, - 12.763847759032435, - 12.763869400600761, - 12.763891029213944, - 12.763912644879735, - 12.76393424760589, - 12.763955837400152, - 12.763977414270265, - 12.763998978223963, - 12.764020529268981, - 12.764042067413044, - 12.764063592663874, - 12.764085105029192, - 12.76410660451671, - 12.764128091134138, - 12.764149564889179, - 12.764171025789533, - 12.764192473842893, - 12.764213909056952, - 12.764235331439398, - 12.764256740997908, - 12.764278137740162, - 12.764299521673829, - 12.76432089280658, - 12.764342251146076, - 12.764363596699974, - 12.764384929475929, - 12.764406249481594, - 12.764427556724607, - 12.764448851212613, - 12.764470132953246, - 12.764491401954134, - 12.764512658222907, - 12.764533901767185, - 12.764555132594587, - 12.764576350712723, - 12.764597556129203, - 12.76461874885163, - 12.764639928887604, - 12.764661096244717, - 12.76468225093056, - 12.764703392952718, - 12.764724522318772, - 12.764745639036299, - 12.76476674311287, - 12.764787834556053, - 12.764808913373408, - 12.764829979572495, - 12.764851033160866, - 12.764872074146075, - 12.764893102535662, - 12.764914118337169, - 12.764935121558128, - 12.764956112206075, - 12.764977090288534, - 12.764998055813026, - 12.765019008787071, - 12.76503994921818, - 12.76506087711386, - 12.76508179248162, - 12.765102695328958, - 12.765123585663366, - 12.765144463492335, - 12.765165328823354, - 12.765186181663903, - 12.765207022021457, - 12.765227849903493, - 12.765248665317474, - 12.765269468270867, - 12.765290258771133, - 12.76531103682572, - 12.765331802442088, - 12.765352555627674, - 12.765373296389924, - 12.765394024736272, - 12.765414740674155, - 12.765435444210997, - 12.765456135354222, - 12.76547681411125, - 12.765497480489493, - 12.765518134496364, - 12.765538776139271, - 12.765559405425611, - 12.765580022362784, - 12.76560062695818, - 12.76562121921919, - 12.765641799153194, - 12.765662366767572, - 12.7656829220697, - 12.76570346506695, - 12.765723995766686, - 12.765744514176271, - 12.76576502030306, - 12.765785514154407, - 12.76580599573766, - 12.765826465060163, - 12.765846922129256, - 12.765867366952273, - 12.765887799536547, - 12.765908219889402 + 7.889459835640341e-6, + 0.07642552514944899, + 0.152386937507522, + 0.22789485024732214, + 0.3029519708211862, + 0.3775609905176124, + 0.45172458455774894, + 0.5254454121913261, + 0.5987261167919986, + 0.6715693259521364, + 0.7439776515770347, + 0.8159536899785725, + 0.8875000219683085, + 0.9586192129500073, + 1.0293138130116462, + 1.0995863570168378, + 1.1694393646957257, + 1.2388753407353368, + 1.307896774869377, + 1.376506141967526, + 1.4447059021241608, + 1.512498500746573, + 1.57988636864265, + 1.6468719221080388, + 1.7134575630127795, + 1.7796456788874362, + 1.8454386430087004, + 1.9108388144844894, + 1.9758485383385378, + 2.0404701455944765, + 2.1047059533594217, + 2.1685582649070554, + 2.232029369760213, + 2.2951215437729755, + 2.3578370492122827, + 2.4201781348390297, + 2.482147035988725, + 2.543745974651629, + 2.604977159552423, + 2.6658427862294207, + 2.726345037113269, + 2.7864860816052293, + 2.846268076154948, + 2.905693164337784, + 2.96476347693167, + 3.023481131993513, + 3.081848234935142, + 3.139866878598802, + 3.1975391433321936, + 3.254867097063068, + 3.3118527953733765, + 3.368498281572975, + 3.4248055867728917, + 3.480776729958154, + 3.5364137180601856, + 3.5917185460287624, + 3.6466931969035508, + 3.701339641885208, + 3.7556598404060644, + 3.809655740200382, + 3.863329277374193, + 3.916682376474722, + 3.9697169505593948, + 4.022434901264432, + 4.074838118873034, + 4.126928482383166, + 4.178707859574924, + 4.230178107077516, + 4.281341070435826, + 4.332198584176592, + 4.3827524718741895, + 4.4330045462160115, + 4.4829566090674735, + 4.532610451536615, + 4.58196785403832, + 4.63103058635817, + 4.67980040771589, + 4.728279066828433, + 4.776468301972682, + 4.8243698410477736, + 4.871985401637066, + 4.919316691069717, + 4.966365406481904, + 5.013133234877677, + 5.059621853189454, + 5.1058329283381445, + 5.151768117292917, + 5.197429067130622, + 5.242817415094838, + 5.287934788654594, + 5.332782805562706, + 5.377363073913796, + 5.421677192201951, + 5.4657267493780335, + 5.509513324906668, + 5.553038488822862, + 5.59630380178831, + 5.639310815147348, + 5.682061070982583, + 5.724556102170193, + 5.766797432434875, + 5.808786576404493, + 5.850525039664382, + 5.892014318811334, + 5.933255901507267, + 5.974251266532556, + 6.015001883839064, + 6.055509214602849, + 6.095774711276554, + 6.135799817641493, + 6.175585968859411, + 6.215134591523952, + 6.254447103711807, + 6.29352491503356, + 6.33236942668424, + 6.370982031493555, + 6.409364113975836, + 6.447517050379681, + 6.485442208737303, + 6.523140948913585, + 6.560614622654835, + 6.597864573637262, + 6.634892137515144, + 6.671698641968733, + 6.708285406751858, + 6.744653743739238, + 6.78080495697353, + 6.816740342712085, + 6.8524611894734235, + 6.88796877808345, + 6.923264381721363, + 6.958349265965312, + 6.993224688837787, + 7.027891900850707, + 7.062352145050282, + 7.096606657061566, + 7.1306566651327685, + 7.164503390179299, + 7.198148045827537, + 7.231591838458362, + 7.264835967250391, + 7.297881624222991, + 7.330729994279017, + 7.363382255247298, + 7.39583957792487, + 7.428103126118958, + 7.460174056688702, + 7.4920535195866425, + 7.52374265789995, + 7.555242607891421, + 7.586554499040208, + 7.617679454082324, + 7.648618589050899, + 7.679373013316205, + 7.709943829625425, + 7.740332134142195, + 7.770539016485911, + 7.800565559770792, + 7.830412840644732, + 7.860081929327894, + 7.889573889651079, + 7.9188897790938855, + 7.948030648822618, + 7.976997543727976, + 8.00579150246253, + 8.034413557477952, + 8.062864735062046, + 8.091146055375544, + 8.119258532488681, + 8.147203174417562, + 8.1749809831603, + 8.202592954732948, + 8.230040079205219, + 8.257323340735969, + 8.284443717608504, + 8.311402182265649, + 8.338199701344612, + 8.36483723571166, + 8.39131574049655, + 8.4176361651268, + 8.44379945336171, + 8.469806543326223, + 8.49565836754455, + 8.521355852973603, + 8.546899921036246, + 8.572291487654327, + 8.597531463281518, + 8.622620752935969, + 8.64756025623274, + 8.672350867416084, + 8.696993475391489, + 8.721488963757567, + 8.745838210837727, + 8.77004208971167, + 8.7941014682467, + 8.818017209128834, + 8.841790169893748, + 8.865421202957513, + 8.888911155647161, + 8.912260870231076, + 8.935471183949181, + 8.958542929042975, + 8.981476932785366, + 9.004274017510323, + 9.026935000642386, + 9.049460694725953, + 9.071851907454434, + 9.0941094416992, + 9.116234095538367, + 9.138226662285433, + 9.1600879305177, + 9.181818684104558, + 9.203419702235607, + 9.22489175944857, + 9.246235625657082, + 9.267452066178292, + 9.288541841760306, + 9.309505708609468, + 9.330344418417459, + 9.351058718388277, + 9.371649351264995, + 9.392117055356433, + 9.412462564563597, + 9.432686608406009, + 9.452789912047868, + 9.472773196324042, + 9.492637177765923, + 9.51238256862712, + 9.532010076908985, + 9.55152040638602, + 9.570914256631092, + 9.59019232304053, + 9.609355296859054, + 9.628403865204563, + 9.647338711092772, + 9.666160513461701, + 9.684869947196022, + 9.70346768315126, + 9.721954388177833, + 9.740330725144991, + 9.758597352964552, + 9.776754926614553, + 9.794804097162723, + 9.812745511789831, + 9.830579813812895, + 9.848307642708239, + 9.865929634134433, + 9.883446419955089, + 9.900858628261496, + 9.918166883395166, + 9.935371805970204, + 9.952474012895573, + 9.969474117397205, + 9.98637272903999, + 10.003170453749643, + 10.019867893834414, + 10.036465648006699, + 10.052964311404503, + 10.069364475612774, + 10.085666728684627, + 10.101871655162412, + 10.117979836098696, + 10.133991849077082, + 10.149908268232917, + 10.165729664273893, + 10.181456604500497, + 10.197089652826357, + 10.212629369798467, + 10.228076312617276, + 10.24343103515668, + 10.258694087983866, + 10.27386601837907, + 10.288947370355194, + 10.303938684677302, + 10.31884049888203, + 10.333653347296844, + 10.348377761059204, + 10.363014268135617, + 10.377563393340546, + 10.392025658355262, + 10.40640158174651, + 10.42069167898514, + 10.434896462464565, + 10.449016441519142, + 10.46305212244244, + 10.477004008505379, + 10.490872599974296, + 10.50465839412887, + 10.518361885279946, + 10.531983564787282, + 10.545523921077143, + 10.558983439659828, + 10.57236260314708, + 10.58566189126938, + 10.598881780893162, + 10.612022746037894, + 10.625085257893096, + 10.63806978483522, + 10.650976792444448, + 10.663806743521393, + 10.676560098103678, + 10.68923731348245, + 10.701838844218761, + 10.714365142159878, + 10.72681665645548, + 10.73919383357376, + 10.751497117317438, + 10.763726948839683, + 10.775883766659904, + 10.78796800667951, + 10.799980102197505, + 10.811920483926052, + 10.823789580005904, + 10.835587816021748, + 10.847315615017491, + 10.858973397511397, + 10.870561581511188, + 10.882080582529028, + 10.893530813596406, + 10.904912685278978, + 10.916226605691248, + 10.92747298051124, + 10.938652212995017, + 10.949764703991155, + 10.960810851955108, + 10.971791052963502, + 10.98270570072833, + 10.993555186611074, + 11.00433989963674, + 11.015060226507797, + 11.025716551618052, + 11.036309257066433, + 11.046838722670685, + 11.057305325980993, + 11.067709442293514, + 11.07805144466384, + 11.088331703920373, + 11.098550588677618, + 11.108708465349409, + 11.118805698162031, + 11.1288426491673, + 11.138819678255528, + 11.148737143168438, + 11.158595399511992, + 11.168394800769127, + 11.178135698312447, + 11.18781844141682, + 11.197443377271885, + 11.207010850994529, + 11.216521205641229, + 11.225974782220382, + 11.235371919704512, + 11.244712955042441, + 11.253998223171356, + 11.263228057028824, + 11.272402787564733, + 11.281522743753161, + 11.290588252604161, + 11.299599639175497, + 11.308557226584291, + 11.317461336018619, + 11.326312286749017, + 11.335110396139939, + 11.343855979661129, + 11.352549350898931, + 11.361190821567542, + 11.369780701520185, + 11.378319298760214, + 11.386806919452173, + 11.395243867932747, + 11.403630446721703, + 11.411966956532723, + 11.420253696284185, + 11.428490963109892, + 11.43667905236971, + 11.444818257660176, + 11.452908870825013, + 11.460951181965596, + 11.468945479451367, + 11.476892049930152, + 11.484791178338458, + 11.492643147911684, + 11.500448240194274, + 11.50820673504982, + 11.515918910671083, + 11.523585043589982, + 11.531205408687502, + 11.538780279203557, + 11.54630992674678, + 11.55379462130426, + 11.561234631251232, + 11.568630223360698, + 11.575981662812987, + 11.583289213205267, + 11.590553136560997, + 11.597773693339319, + 11.604951142444401, + 11.61208574123472, + 11.619177745532292, + 11.626227409631833, + 11.633234986309896, + 11.640200726833918, + 11.647124880971239, + 11.654007696998057, + 11.660849421708324, + 11.667650300422602, + 11.674410576996857, + 11.681130493831205, + 11.6878102918786, + 11.694450210653468, + 11.701050488240314, + 11.707611361302241, + 11.714133065089444, + 11.720615833447642, + 11.727059898826464, + 11.733465492287786, + 11.739832843514012, + 11.746162180816317, + 11.752453731142822, + 11.758707720086738, + 11.764924371894459, + 11.771103909473599, + 11.777246554400978, + 11.783352526930582, + 11.789422046001441, + 11.7954553292455, + 11.801452592995409, + 11.807414052292282, + 11.813339920893412, + 11.819230411279932, + 11.82508573466443, + 11.830906100998536, + 11.836691718980436, + 11.842442796062363, + 11.848159538458024, + 11.853842151150014, + 11.859490837897152, + 11.865105801241787, + 11.87068724251707, + 11.876235361854155, + 11.881750358189398, + 11.887232429271474, + 11.892681771668473, + 11.898098580774949, + 11.903483050818922, + 11.908835374868845, + 11.914155744840532, + 11.919444351504028, + 11.924701384490463, + 11.929927032298835, + 11.935121482302785, + 11.940284920757309, + 11.94541753280543, + 11.950519502484854, + 11.95559101273454, + 11.960632245401298, + 11.965643381246272, + 11.970624599951448, + 11.975576080126087, + 11.980497999313119, + 11.98539053399553, + 11.990253859602673, + 11.99508815051657, + 11.99989358007816, + 12.004670320593505, + 12.009418543339983, + 12.014138418572426, + 12.018830115529218, + 12.023493802438372, + 12.028129646523551, + 12.032737814010076, + 12.03731847013088, + 12.041871779132434, + 12.046397904280635, + 12.05089700786666, + 12.055369251212785, + 12.059814794678179, + 12.064233797664636, + 12.06862641862231, + 12.072992815055375, + 12.077333143527692, + 12.081647559668417, + 12.085936218177572, + 12.09019927283161, + 12.094436876488905, + 12.098649181095256, + 12.102836337689324, + 12.106998496408048, + 12.111135806492033, + 12.11524841629089, + 12.119336473268572, + 12.123400124008647, + 12.127439514219565, + 12.131454788739875, + 12.135446091543416, + 12.139413565744492, + 12.14335735360299, + 12.147277596529491, + 12.151174435090338, + 12.155048009012663, + 12.158898457189421, + 12.162725917684355, + 12.166530527736944, + 12.170312423767335, + 12.174071741381226, + 12.177808615374733, + 12.181523179739218, + 12.1852155676661, + 12.188885911551631, + 12.19253434300163, + 12.19616099283622, + 12.199765991094509, + 12.203349467039253, + 12.206911549161498, + 12.210452365185173, + 12.21397204207168, + 12.21747070602445, + 12.220948482493458, + 12.224405496179735, + 12.227841871039812, + 12.231257730290205, + 12.234653196411793, + 12.238028391154243, + 12.241383435540351, + 12.24471844987039, + 12.248033553726431, + 12.251328865976623, + 12.254604504779453, + 12.25786058758799, + 12.261097231154087, + 12.26431455153258, + 12.267512664085437, + 12.270691683485905, + 12.273851723722615, + 12.276992898103666, + 12.280115319260698, + 12.283219099152925, + 12.286304349071147, + 12.289371179641746, + 12.292419700830647, + 12.295450021947268, + 12.29846225164843, + 12.301456497942267, + 12.304432868192082, + 12.307391469120207, + 12.31033240681183, + 12.313255786718793, + 12.316161713663382, + 12.319050291842077, + 12.321921624829288, + 12.324775815581077, + 12.327612966438842, + 12.33043317913299, + 12.333236554786593, + 12.336023193918983, + 12.3387931964494, + 12.341546661700544, + 12.344283688402147, + 12.347004374694512, + 12.349708818132026, + 12.352397115686669, + 12.355069363751486, + 12.357725658144041, + 12.360366094109859, + 12.362990766325824, + 12.365599768903598, + 12.368193195392985, + 12.370771138785276, + 12.3733336915166, + 12.375880945471222, + 12.378412991984852, + 12.380929921847914, + 12.383431825308797, + 12.385918792077103, + 12.388390911326841, + 12.390848271699651, + 12.393290961307974, + 12.395719067738199, + 12.39813267805382, + 12.400531878798539, + 12.402916755999398, + 12.40528739516983, + 12.407643881312753, + 12.409986298923602, + 12.412314731993359, + 12.414629264011575, + 12.416929977969357, + 12.41921695636234, + 12.421490281193654, + 12.423750033976853, + 12.42599629573885, + 12.428229147022817, + 12.430448667891072, + 12.432654937927948, + 12.434848036242649, + 12.437028041472086, + 12.439195031783704, + 12.44134908487827, + 12.443490277992678, + 12.445618687902693, + 12.447734390925724, + 12.449837462923561, + 12.451927979305085, + 12.454006015028977, + 12.4560716446064, + 12.458124942103682, + 12.46016598114496, + 12.46219483491483, + 12.46421157616097, + 12.46621627719673, + 12.46820900990375, + 12.47018984573453, + 12.472158855714985, + 12.474116110446996, + 12.476061680110938, + 12.477995634468206, + 12.479918042863709, + 12.481828974228355, + 12.48372849708153, + 12.485616679533544, + 12.487493589288082, + 12.48935929364463, + 12.49121385950089, + 12.493057353355177, + 12.49488984130879, + 12.496711389068407, + 12.498522061948425, + 12.500321924873301, + 12.502111042379896, + 12.503889478619758, + 12.505657297361465, + 12.507414561992869, + 12.5091613355234, + 12.51089768058631, + 12.512623659440925, + 12.514339333974862, + 12.516044765706273, + 12.517740015786039, + 12.519425144999962, + 12.521100213770938, + 12.522765282161128, + 12.524420409874129, + 12.526065656257082, + 12.527701080302837, + 12.52932674065203, + 12.530942695595217, + 12.53254900307495, + 12.534145720687844, + 12.535732905686677, + 12.537310614982399, + 12.53887890514621, + 12.540437832411564, + 12.541987452676192, + 12.543527821504119, + 12.545058994127627, + 12.546581025449278, + 12.548093970043839, + 12.549597882160263, + 12.55109281572364, + 12.552578824337104, + 12.554055961283787, + 12.555524279528703, + 12.556983831720654, + 12.55843467019414, + 12.559876846971198, + 12.561310413763298, + 12.562735421973182, + 12.564151922696704, + 12.565559966724688, + 12.566959604544708, + 12.56835088634294, + 12.569733862005927, + 12.571108581122383, + 12.572475092984988, + 12.573833446592115, + 12.575183690649633, + 12.576525873572612, + 12.577860043487085, + 12.579186248231771, + 12.580504535359772, + 12.581814952140313, + 12.583117545560393, + 12.584412362326503, + 12.585699448866297, + 12.586978851330235, + 12.588250615593264, + 12.589514787256448, + 12.590771411648602, + 12.592020533827931, + 12.593262198583625, + 12.594496450437493, + 12.595723333645529, + 12.596942892199513, + 12.598155169828601, + 12.599360210000865, + 12.600558055924878, + 12.601748750551247, + 12.602932336574154, + 12.604108856432905, + 12.605278352313421, + 12.606440866149782, + 12.607596439625707, + 12.608745114176056, + 12.609886930988328, + 12.611021931004114, + 12.612150154920597, + 12.61327164319197, + 12.614386436030921, + 12.615494573410068, + 12.616596095063372, + 12.617691040487594, + 12.618779448943682, + 12.619861359458195, + 12.620936810824704, + 12.622005841605164, + 12.623068490131322, + 12.624124794506077, + 12.62517479260484, + 12.626218522076915, + 12.627256020346822, + 12.628287324615663, + 12.629312471862436, + 12.630331498845367, + 12.631344442103245, + 12.6323513379567, + 12.633352222509538, + 12.634347131650014, + 12.635336101052115, + 12.636319166176873, + 12.637296362273592, + 12.638267724381148, + 12.639233287329215, + 12.640193085739542, + 12.641147154027179, + 12.642095526401702, + 12.643038236868477, + 12.643975319229826, + 12.64490680708628, + 12.645832733837773, + 12.646753132684827, + 12.647668036629765, + 12.648577478477872, + 12.649481490838577, + 12.650380106126642, + 12.651273356563296, + 12.652161274177415, + 12.653043890806645, + 12.653921238098555, + 12.654793347511795, + 12.65566025031718, + 12.65652197759885, + 12.657378560255356, + 12.658230029000789, + 12.659076414365876, + 12.659917746699055, + 12.660754056167603, + 12.661585372758672, + 12.662411726280402, + 12.663233146362968, + 12.664049662459648, + 12.66486130384789, + 12.665668099630338, + 12.666470078735891, + 12.667267269920755, + 12.668059701769435, + 12.668847402695803, + 12.669630400944087, + 12.67040872458988, + 12.671182401541191, + 12.671951459539383, + 12.672715926160224, + 12.673475828814837, + 12.674231194750694, + 12.67498205105261, + 12.675728424643687, + 12.676470342286304, + 12.677207830583058, + 12.67794091597772, + 12.678669624756202, + 12.67939398304747, + 12.680114016824513, + 12.680829751905247, + 12.681541213953448, + 12.682248428479692, + 12.682951420842231, + 12.683650216247951, + 12.684344839753228, + 12.685035316264855, + 12.685721670540937, + 12.686403927191751, + 12.68708211068067, + 12.687756245325001, + 12.688426355296874, + 12.689092464624121, + 12.689754597191106, + 12.690412776739622, + 12.691067026869705, + 12.691717371040493, + 12.692363832571086, + 12.69300643464135, + 12.693645200292776, + 12.694280152429286, + 12.69491131381806, + 12.695538707090371, + 12.69616235474236, + 12.69678227913588, + 12.697398502499272, + 12.698011046928166, + 12.698619934386294, + 12.699225186706242, + 12.699826825590273, + 12.700424872611071, + 12.701019349212528, + 12.701610276710523, + 12.702197676293661, + 12.70278156902407, + 12.703361975838114, + 12.703938917547168, + 12.704512414838375, + 12.705082488275353, + 12.70564915829897, + 12.706212445228045, + 12.706772369260097, + 12.70732895047207, + 12.70788220882103, + 12.708432164144913, + 12.708978836163213, + 12.709522244477691, + 12.710062408573094, + 12.710599347817828, + 12.711133081464682, + 12.711663628651499, + 12.712191008401858, + 12.712715239625776, + 12.713236341120364, + 12.713754331570525, + 12.7142692295496, + 12.71478105352004, + 12.715289821834094, + 12.715795552734424, + 12.716298264354794, + 12.716797974720702, + 12.717294701750022, + 12.71778846325368, + 12.718279276936242, + 12.718767160396595, + 12.71925213112855, + 12.719734206521474, + 12.72021340386093, + 12.720689740329265, + 12.721163233006264, + 12.721633898869735, + 12.722101754796117, + 12.722566817561114, + 12.723029103840261, + 12.723488630209548, + 12.723945413146, + 12.724399469028263, + 12.72485081413722, + 12.725299464656533, + 12.725745436673268, + 12.726188746178433, + 12.726629409067565, + 12.72706744114132, + 12.727502858106007, + 12.727935675574171, + 12.72836590906515, + 12.728793574005623, + 12.72921868573018, + 12.72964125948185, + 12.73006131041267, + 12.73047885358421, + 12.73089390396812, + 12.731306476446674, + 12.731716585813286, + 12.732124246773068, + 12.732529473943327, + 12.7329322818541, + 12.733332684948694, + 12.733730697584168, + 12.734126334031886, + 12.734519608477997, + 12.73491053502396, + 12.735299127687053, + 12.735685400400856, + 12.736069367015777, + 12.73645104129953, + 12.736830436937625, + 12.737207567533888, + 12.737582446610906, + 12.737955087610555, + 12.738325503894444, + 12.738693708744417, + 12.739059715363032, + 12.73942353687401, + 12.739785186322743, + 12.740144676676723, + 12.740502020826021, + 12.740857231583774, + 12.741210321686602, + 12.741561303795098, + 12.741910190494263, + 12.742256994293962, + 12.74260172762939, + 12.742944402861477, + 12.743285032277383, + 12.743623628090894, + 12.74396020244288, + 12.744294767401739, + 12.744627334963807, + 12.74495791705381, + 12.745286525525275, + 12.745613172160962, + 12.745937868673291, + 12.746260626704752, + 12.746581457828336, + 12.746900373547936, + 12.747217385298754, + 12.747532504447749, + 12.747845742293993, + 12.748157110069117, + 12.74846661893769, + 12.74877427999762, + 12.74908010428058, + 12.749384102752362, + 12.749686286313304, + 12.749986665798662, + 12.750285251978996, + 12.750582055560583, + 12.750877087185764, + 12.75117035743336, + 12.751461876819022, + 12.751751655795623, + 12.75203970475364, + 12.752326034021504, + 12.752610653865998, + 12.752893574492605, + 12.753174806045871, + 12.753454358609794, + 12.753732242208155, + 12.754008466804907, + 12.7542830423045, + 12.754555978552258, + 12.75482728533474, + 12.755096972380056, + 12.75536504935826, + 12.755631525881663, + 12.755896411505185, + 12.756159715726712, + 12.756421447987417, + 12.756681617672122, + 12.756940234109605, + 12.75719730657295, + 12.757452844279896, + 12.757706856393135, + 12.757959352020666, + 12.758210340216106, + 12.758459829979017, + 12.758707830255249, + 12.758954349937222, + 12.75919939786429, + 12.759442982823018, + 12.759685113547512, + 12.759925798719756, + 12.760165046969872, + 12.760402866876488, + 12.760639266966995, + 12.760874255717878, + 12.761107841555027, + 12.761340032854017, + 12.76157083794043, + 12.761800265090134, + 12.762028322529586, + 12.762255018436148, + 12.762480360938339, + 12.762704358116173, + 12.762927018001406, + 12.763148348577849, + 12.763368357781655, + 12.763587053501585, + 12.763804443579321, + 12.764020535809713, + 12.764235337941075, + 12.764448857675479, + 12.764661102668994, + 12.764872080531996, + 12.765081798829419, + 12.765290265081033, + 12.765497486761722, + 12.76570347130173, + 12.765908226086957 ] } }, diff --git a/control/tests/dde_test.py b/control/tests/dde_test.py index de8cc416c..0733eabeb 100644 --- a/control/tests/dde_test.py +++ b/control/tests/dde_test.py @@ -5,5 +5,124 @@ from control.dde import * from control.xferfcn import tf +from control.delaylti import ( + delay, tf2dlti, exp, hcat, vcat, mimo_delay, ss2dlti +) +from control.julia.utils import julia_json, assert_delayLTI s = tf('s') + +@pytest.fixture +def simple_siso_tf(): + return tf([1], [1, 1]) + +@pytest.fixture +def delay_siso_tf(): + P_tf = 1 / (s + 1) + D = delay(1.5) + return P_tf * D + +@pytest.fixture +def wood_berry(): + # Construct a 2x2 MIMO system with delays + G_wb = mimo_delay([ + [12.8 / (16.7 * s + 1) * exp(-s), -18.9 / (21.0 * s + 1) * exp(-3 * s)], + [6.6 / (10.9 * s + 1) * exp(-7 * s), -19.4 / (14.4 * s + 1) * exp(-3 * s)] + ]) + return G_wb + + +class TestTimeResp: + def test_siso_delayed_step_response(self, delay_siso_tf, simple_siso_tf): + from control.timeresp import step_response + timepts = np.linspace(0, 10, 1001) + step = step_response(simple_siso_tf, timepts=timepts) + delay_step = step_response(delay_siso_tf, timepts=timepts) + # Construct a manually delayed step response by shifting the step response + hand_delayed_step = np.zeros_like(step.y[0][0]) + count = 0 + for i, t in enumerate(step.t): + if t >= 1.5: + hand_delayed_step[i] = step.y[0][0][count] + count += 1 + plt.figure() + plt.plot(delay_step.y[0][0] - hand_delayed_step) + plt.legend() + plt.show() + assert np.allclose(delay_step.y[0][0], hand_delayed_step) + + def test_siso_delayed_step_response_mos(self, delay_siso_tf, simple_siso_tf): + from control.timeresp import step_response + timepts = np.linspace(0, 10, 1001) + step = step_response(simple_siso_tf, timepts=timepts) + delay_step = step_response(delay_siso_tf, timepts=timepts) + # Construct a manually delayed step response by shifting the step response + hand_delayed_step = np.zeros_like(step.y[0][0]) + count = 0 + for i, t in enumerate(step.t): + if t >= 1.5: + hand_delayed_step[i] = step.y[0][0][count] + count += 1 + + plt.figure() + plt.plot(delay_step.y[0][0] - hand_delayed_step) + plt.legend() + plt.show() + assert np.allclose(delay_step.y[0][0], hand_delayed_step, atol=1e-5) + + # wood berry step response compared to julia + def test_mimo_step_response(self, wood_berry, plot=False): + from control.timeresp import step_response + import matplotlib.pyplot as plt + timepts = np.linspace(0, 100, 1001) + step = step_response(wood_berry, timepts=timepts) + + plot = True + if plot: + plt.figure() + plt.plot(step.y[0][0] - julia_json["TestTimeResp"]["test_mimo_step_response"]["y11"]) + plt.plot(step.y[1][0] - julia_json["TestTimeResp"]["test_mimo_step_response"]["y21"]) + plt.plot(step.y[0][1] - julia_json["TestTimeResp"]["test_mimo_step_response"]["y12"]) + plt.plot(step.y[1][1] - julia_json["TestTimeResp"]["test_mimo_step_response"]["y22"]) + plt.show() + + assert np.allclose(step.y[0][0], julia_json["TestTimeResp"]["test_mimo_step_response"]["y11"], atol=1e-3) + assert np.allclose(step.y[0][1], julia_json["TestTimeResp"]["test_mimo_step_response"]["y12"], atol=1e-3) + assert np.allclose(step.y[1][1], julia_json["TestTimeResp"]["test_mimo_step_response"]["y22"], atol=1e-3) + assert np.allclose(step.y[1][0], julia_json["TestTimeResp"]["test_mimo_step_response"]["y21"], atol=1e-3) + + def test_forced_response(self, delay_siso_tf, simple_siso_tf, plot=False): + from control.timeresp import forced_response + + timepts = np.linspace(0, 10, 1001) + inputs = np.sin(timepts) + resp = forced_response(simple_siso_tf, timepts=timepts, inputs=inputs) + delay_resp = forced_response(delay_siso_tf, timepts=timepts, inputs=inputs) + hand_delayed_resp = np.zeros_like(resp.y[0]) + count = 0 + for i, t in enumerate(resp.t): + if t >= 1.5: + hand_delayed_resp[i] = resp.y[0][count] + count += 1 + + # Optionally, inspect the plot: + if plot: + plt.figure() + plt.plot(resp.t, inputs, label="input") + plt.plot(resp.t, resp.y[0], label="response") + plt.plot(resp.t, delay_resp.y[0], label="delay LTI") + plt.plot(resp.t, hand_delayed_resp, label="hand delay") + plt.legend() + plt.show() + + plt.figure() + plt.plot(resp.t, delay_resp.y[0] - hand_delayed_resp) + plt.show() + + assert np.allclose(delay_resp.y[0], hand_delayed_resp, atol=1e-5) + + def test_mimo_forced_response(self, wood_berry, plot=False): + from control.timeresp import forced_response + timepts = np.linspace(0, 100, 1001) + pass + diff --git a/control/tests/delay_lti_test.py b/control/tests/delay_lti_test.py index f0628b9e9..723c15212 100644 --- a/control/tests/delay_lti_test.py +++ b/control/tests/delay_lti_test.py @@ -179,97 +179,4 @@ def test_cat(self, cat_func, expected_A, expected_tau): dlti2 = ss2dlti(sys1) * delay(2) dlti_cat = cat_func(dlti1, dlti2) assert np.allclose(dlti_cat.P.A, np.array(expected_A)) - assert np.allclose(dlti_cat.tau, np.array(expected_tau)) - - -class TestTimeResp: - def test_siso_delayed_step_response(self, delay_siso_tf, simple_siso_tf): - from control.timeresp import step_response - timepts = np.linspace(0, 10, 1001) - step = step_response(simple_siso_tf, timepts=timepts) - delay_step = step_response(delay_siso_tf, timepts=timepts) - # Construct a manually delayed step response by shifting the step response - hand_delayed_step = np.zeros_like(step.y[0][0]) - count = 0 - for i, t in enumerate(step.t): - if t >= 1.5: - hand_delayed_step[i] = step.y[0][0][count] - count += 1 - plt.figure() - plt.plot(delay_step.y[0][0] - hand_delayed_step) - plt.legend() - plt.show() - assert np.allclose(delay_step.y[0][0], hand_delayed_step) - - def test_siso_delayed_step_response_mos(self, delay_siso_tf, simple_siso_tf): - from control.timeresp import step_response - timepts = np.linspace(0, 10, 1001) - step = step_response(simple_siso_tf, timepts=timepts) - delay_step = step_response(delay_siso_tf, timepts=timepts, use_mos=True) - # Construct a manually delayed step response by shifting the step response - hand_delayed_step = np.zeros_like(step.y[0][0]) - count = 0 - for i, t in enumerate(step.t): - if t >= 1.5: - hand_delayed_step[i] = step.y[0][0][count] - count += 1 - - plt.figure() - plt.plot(delay_step.y[0][0] - hand_delayed_step) - plt.legend() - plt.show() - assert np.allclose(delay_step.y[0][0], hand_delayed_step, atol=1e-5) - - # wood berry step response compared to julia - def test_mimo_step_response(self, wood_berry, plot=False): - from control.timeresp import step_response - import matplotlib.pyplot as plt - timepts = np.linspace(0, 100, 10001) - step = step_response(wood_berry, timepts=timepts, use_mos=True) - #step_lsoda = step_response(wood_berry, timepts=timepts) - - if plot: - plt.figure() - plt.plot(step.y[0][0] - julia_json["TestTimeResp"]["test_mimo_step_response"]["y11"]) - plt.plot(step.y[1][0] - julia_json["TestTimeResp"]["test_mimo_step_response"]["y21"]) - plt.plot(step.y[0][1] - julia_json["TestTimeResp"]["test_mimo_step_response"]["y12"]) - plt.plot(step.y[1][1] - julia_json["TestTimeResp"]["test_mimo_step_response"]["y22"]) - plt.show() - - assert np.allclose(step.y[0][0], julia_json["TestTimeResp"]["test_mimo_step_response"]["y11"], atol=1e-5) - assert np.allclose(step.y[0][1], julia_json["TestTimeResp"]["test_mimo_step_response"]["y12"], atol=1e-5) - assert np.allclose(step.y[1][1], julia_json["TestTimeResp"]["test_mimo_step_response"]["y22"], atol=1e-5) - assert np.allclose(step.y[1][0], julia_json["TestTimeResp"]["test_mimo_step_response"]["y21"], atol=1e-5) - - - def test_forced_response(self, delay_siso_tf, simple_siso_tf, plot=False): - from control.timeresp import forced_response - - timepts = np.linspace(0, 10, 1001) - inputs = np.sin(timepts) - resp = forced_response(simple_siso_tf, timepts=timepts, inputs=inputs) - delay_resp = forced_response(delay_siso_tf, timepts=timepts, inputs=inputs, use_mos=True) - hand_delayed_resp = np.zeros_like(resp.y[0]) - count = 0 - for i, t in enumerate(resp.t): - if t >= 1.5: - hand_delayed_resp[i] = resp.y[0][count] - count += 1 - - # Optionally, inspect the plot: - plot=True - if plot: - plt.figure() - plt.plot(resp.t, inputs, label="input") - plt.plot(resp.t, resp.y[0], label="response") - plt.plot(resp.t, delay_resp.y[0], label="delay LTI smaller step size") - #plt.plot(delay_resp_few.t, delay_resp_few.y[0], label="delay LTI bigger step size") - plt.plot(resp.t, hand_delayed_resp, label="hand delay") - plt.legend() - plt.show() - - plt.figure() - plt.plot(resp.t, delay_resp.y[0] - hand_delayed_resp) - plt.show() - - assert np.allclose(delay_resp.y[0], hand_delayed_resp, atol=1e-5) \ No newline at end of file + assert np.allclose(dlti_cat.tau, np.array(expected_tau)) \ No newline at end of file diff --git a/control/timeresp.py b/control/timeresp.py index 1ba6e5d0b..d3c6bb39c 100644 --- a/control/timeresp.py +++ b/control/timeresp.py @@ -921,7 +921,7 @@ def shape_matches(s_legal, s_actual): # Forced response of a linear system def forced_response( sysdata, timepts=None, inputs=0., initial_state=0., transpose=False, - params=None, interpolate=False, return_states=None, squeeze=None, use_mos=False, + params=None, interpolate=False, return_states=None, squeeze=None, **kwargs): from .delaylti import DelayLTI """Compute the output of a linear system given the input. @@ -1096,14 +1096,9 @@ def forced_response( if isinstance(sys, DelayLTI): # step size must be small enough to ensure accuracy. # Stiff problems may require very small step size or specific dde solver - if use_mos: - return dde_response( - sysdata, T=timepts, U=inputs, X0=initial_state, params=params, - transpose=transpose, return_x=return_states, squeeze=squeeze, method="mos") - else: - return dde_response( - sysdata, T=timepts, U=inputs, X0=initial_state, params=params, - transpose=transpose, return_x=return_states, squeeze=squeeze, method="LSODA") + return dde_response( + sysdata, T=timepts, U=inputs, X0=initial_state, params=params, + transpose=transpose, return_x=return_states, squeeze=squeeze) else: sys = _convert_to_statespace(sys) A, B, C, D = np.asarray(sys.A), np.asarray(sys.B), np.asarray(sys.C), \ @@ -1364,7 +1359,7 @@ def _process_time_response( def step_response( sysdata, timepts=None, initial_state=0., input_indices=None, output_indices=None, timepts_num=None, transpose=False, - return_states=False, squeeze=None, params=None, use_mos=False, + return_states=False, squeeze=None, params=None, **kwargs): # pylint: disable=W0622 """Compute the step response for a linear system. @@ -1484,7 +1479,7 @@ def step_response( sys, T, initial_state=X0, input_indices=input, output_indices=output, timepts_num=T_num, transpose=transpose, return_states=return_x, squeeze=squeeze, - params=params, use_mos=use_mos)) + params=params)) return TimeResponseList(responses) else: sys = sysdata @@ -1539,7 +1534,7 @@ def step_response( #print(U) - response = forced_response(sys, T, U, X0, squeeze=True, params=params, use_mos=use_mos,) + response = forced_response(sys, T, U, X0, squeeze=True, params=params,) inpidx = i if input is None else 0 yout[:, inpidx, :] = response.y if output is None \ else response.y[output] From a4605137c07976e5721c28be0c941a25f709a709 Mon Sep 17 00:00:00 2001 From: MythasNauveili Date: Fri, 9 May 2025 12:51:57 +0200 Subject: [PATCH 12/16] mimo forced response passed. TODO: clean --- .gitignore | 3 ++ control/dde.py | 26 +++------ control/julia/compute_tests.jl | 12 +++++ control/julia/test.ipynb | 98 ++++++++++++---------------------- control/tests/dde_test.py | 60 ++++++++++++++++----- control/timeresp.py | 2 +- 6 files changed, 105 insertions(+), 96 deletions(-) diff --git a/.gitignore b/.gitignore index 9359defa9..f33555aa5 100644 --- a/.gitignore +++ b/.gitignore @@ -45,3 +45,6 @@ venv.bak/ # Files for MacOS .DS_Store + +# tests files +control/julia/test.ipynb diff --git a/control/dde.py b/control/dde.py index 176127921..ff89c98a8 100644 --- a/control/dde.py +++ b/control/dde.py @@ -96,7 +96,7 @@ def dde_response(delay_sys, T, U=0, X0=0, params=None, xout[:, 0] = X0 yout = np.zeros((n_outputs, n_steps)) tout = T - xout, yout = solve_dde_mos(delay_sys, T, U, X0, dt) + xout, yout = solve_dde(delay_sys, T, U, X0, dt) return TimeResponseData( tout, yout, xout, U, @@ -119,14 +119,10 @@ def negative_wrapper(interp): if np.ndim(U) == 1: return np.array([negative_wrapper(PchipInterpolator(T, U))]) elif np.ndim(U) == 0: - print("U is a scalar !") return U else: return np.array([negative_wrapper(PchipInterpolator(T, ui)) for ui in U]) - - - class DdeHistory: """ @@ -169,7 +165,7 @@ def __call__(self, t): return np.zeros_like(self.last_state) # Deal with first call -def dde_wrapper_mos(t, x, A, B1, B2, C2, D21, tau_list, u_func, history_x): +def dde_wrapper(t, x, A, B1, B2, C2, D21, tau_list, u_func, history_x): """ Wrapper function for DDE solver using scipy's solve_ivp. @@ -181,7 +177,6 @@ def dde_wrapper_mos(t, x, A, B1, B2, C2, D21, tau_list, u_func, history_x): dx/dt = A @ x + B1 @ u(t) + B2 @ z(t - tau) """ - #print(t) z_delayed = [] for i,tau in enumerate(tau_list): u_delayed = np.array([u_func[i](t - tau) for i in range(len(u_func))]) @@ -194,9 +189,9 @@ def dde_wrapper_mos(t, x, A, B1, B2, C2, D21, tau_list, u_func, history_x): return dxdt.flatten() -def solve_dde_mos(delay_sys, T, U, X0, dt): +def solve_dde(delay_sys, T, U, X0, dt): """ - Method using MOS solver. + Solving delay differential equation using Method Of Steps. Parameters ---------- @@ -209,10 +204,8 @@ def solve_dde_mos(delay_sys, T, U, X0, dt): Input array giving input at each time in `T`. X0 : array_like or float, default=0. Initial condition. - xout : array_like - Array to store the state vector at each time step. - yout : array_like - Array to store the output vector at each time step. + dt : float + Time step for the integration. Returns ------- @@ -239,7 +232,6 @@ def solve_dde_mos(delay_sys, T, U, X0, dt): # TODO: handle discontinuity propagation discontinuity_times = set(tau_list) - print("discontinuity times:", discontinuity_times) while current_t < tf: t_stop = min(discontinuity_times) if discontinuity_times else tf if not np.isclose(t_stop, tf): @@ -248,19 +240,18 @@ def solve_dde_mos(delay_sys, T, U, X0, dt): print("Integrate bewtween ", current_t, " and ", t_stop) sol_segment = solve_ivp( - fun = dde_wrapper_mos, + fun = dde_wrapper, t_span=(current_t, t_stop), t_eval=local_t_eval, y0=current_x, method='LSODA', dense_output=True, args=(A, B1, B2, C2, D21, tau_list, u_func, history_x), - max_step=dt, + rtol=1e-9, atol=1e-12 ) # --- Update History and Store Results --- history_x.add_segment(sol_segment) - print(history_x) segment_ts = sol_segment.t segment_xs = sol_segment.y @@ -286,6 +277,5 @@ def solve_dde_mos(delay_sys, T, U, X0, dt): z_delayed = np.array(z_delayed) u_current = np.array(u_current) - solution_ys = C1 @ solution_xs.T + D11 @ u_current.T + D12 @ z_delayed.T return solution_xs.T, solution_ys \ No newline at end of file diff --git a/control/julia/compute_tests.jl b/control/julia/compute_tests.jl index d8148ad2b..721fc8e06 100644 --- a/control/julia/compute_tests.jl +++ b/control/julia/compute_tests.jl @@ -166,6 +166,11 @@ function test_step_response(tf, t) return step(tf, t).y end +function test_forced_response(tf, u, t, x0) + # TO BE IMPLEMENTED + #return lsim(tf, u, t, x0=x0) +end + function main() """ Main function to compute and export test results. @@ -223,6 +228,13 @@ function main() "y12" => test_step_response(wood_berry, 0:0.1:100)[1, :, 2], "y21" => test_step_response(wood_berry, 0:0.1:100)[2, :, 1], "y22" => test_step_response(wood_berry, 0:0.1:100)[2, :, 2] + ), + # TO BE IMPLEMENTED + "test_mimo_forced_response" => Dict( + "y11" => test_forced_response(wood_berry, ones(100), 0:0.1:100, [0, 0])[1, :, 1], + "y12" => test_forced_response(wood_berry, ones(100), 0:0.1:100, [0, 0])[1, :, 2], + "y21" => test_forced_response(wood_berry, ones(100), 0:0.1:100, [0, 0])[2, :, 1], + "y22" => test_forced_response(wood_berry, ones(100), 0:0.1:100, [0, 0])[2, :, 2] ) ) diff --git a/control/julia/test.ipynb b/control/julia/test.ipynb index 90935c7a2..1aa2ad04f 100644 --- a/control/julia/test.ipynb +++ b/control/julia/test.ipynb @@ -2,26 +2,9 @@ "cells": [ { "cell_type": "code", - "execution_count": 7, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "2×1001×2 Array{Float64, 3}:\n", - "[:, :, 1] =\n", - " 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 … 12.7655 12.7657 12.7659\n", - " 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 6.59868 6.59869 6.5987\n", - "\n", - "[:, :, 2] =\n", - " 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 … -18.7118 -18.7127 -18.7136\n", - " 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -19.3766 -19.3768 -19.377" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "using ControlSystems\n", "using Plots\n", @@ -33,63 +16,24 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "1001-element Vector{Float64}:\n", - " 0.0\n", - " 0.0\n", - " 0.0\n", - " 0.0\n", - " 0.0\n", - " 0.0\n", - " 0.0\n", - " 0.0\n", - " 0.0\n", - " 0.0\n", - " ⋮\n", - " 12.764235337941075\n", - " 12.764448857675479\n", - " 12.764661102668994\n", - " 12.764872080531996\n", - " 12.765081798829419\n", - " 12.765290265081033\n", - " 12.765497486761722\n", - " 12.76570347130173\n", - " 12.765908226086957" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "res[1, :, 1]" ] }, { "cell_type": "code", - "execution_count": 14, + "execution_count": null, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "11-element Vector{Int64}:\n", - " 0\n", - " 1\n", - " 2\n", - " 3\n", - " 4\n", - " 5\n", - " 6\n", - " 7\n", - " 8\n", - " 9\n", - " 10" + "2×1001 Matrix{Float64}:\n", + " 0.0 0.0 0.0 0.0 0.0 0.0 0.0 … -0.0263751 -0.0320198 -0.0376148\n", + " 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -5.92877 -5.93249 -5.93617" ] }, "metadata": {}, @@ -97,7 +41,31 @@ } ], "source": [ - "collect(0:1:10)" + "using Interpolations, StaticArrays, ControlSystems, Plots\n", + "\n", + "# Define system\n", + "s = tf(\"s\")\n", + "wood_berry = [\n", + " 12.8/(16.7s+1)*exp(-s) -18.9/(21s+1)*exp(-3s);\n", + " 6.6/(10.9s+1)*exp(-7s) -19.4/(14.4s+1)*exp(-3s)\n", + "]\n", + "\n", + "# Time and raw inputs\n", + "t = 0:0.1:100\n", + "u1 = 1.0 .+ 0.2*sin.(0.05 .* t)\n", + "u2 = 0.5 .+ 0.1.*(t .> 50)\n", + "\n", + "# 1-D ZOH interpolants with zero extrapolation\n", + "itp1 = interpolate((t,), u1, Gridded(Constant()))\n", + "itp2 = interpolate((t,), u2, Gridded(Constant()))\n", + "eitp1 = extrapolate(itp1, 0)\n", + "eitp2 = extrapolate(itp2, 0)\n", + "\n", + "# Correct input function signature: u(x, t)\n", + "u_fun = (x, τ) -> @SVector [eitp1(τ); eitp2(τ)]\n", + "\n", + "# Simulate\n", + "y, tout, xhist = lsim(wood_berry, u_fun, t)" ] } ], diff --git a/control/tests/dde_test.py b/control/tests/dde_test.py index 0733eabeb..3f75c0d4a 100644 --- a/control/tests/dde_test.py +++ b/control/tests/dde_test.py @@ -2,13 +2,9 @@ import pytest import matplotlib.pyplot as plt -from control.dde import * from control.xferfcn import tf - -from control.delaylti import ( - delay, tf2dlti, exp, hcat, vcat, mimo_delay, ss2dlti -) -from control.julia.utils import julia_json, assert_delayLTI +from control.delaylti import delay, exp, mimo_delay +from control.julia.utils import julia_json s = tf('s') @@ -76,6 +72,7 @@ def test_mimo_step_response(self, wood_berry, plot=False): import matplotlib.pyplot as plt timepts = np.linspace(0, 100, 1001) step = step_response(wood_berry, timepts=timepts) + print(step.y[0].shape) plot = True if plot: @@ -84,12 +81,14 @@ def test_mimo_step_response(self, wood_berry, plot=False): plt.plot(step.y[1][0] - julia_json["TestTimeResp"]["test_mimo_step_response"]["y21"]) plt.plot(step.y[0][1] - julia_json["TestTimeResp"]["test_mimo_step_response"]["y12"]) plt.plot(step.y[1][1] - julia_json["TestTimeResp"]["test_mimo_step_response"]["y22"]) + plt.title("Step response") plt.show() - assert np.allclose(step.y[0][0], julia_json["TestTimeResp"]["test_mimo_step_response"]["y11"], atol=1e-3) - assert np.allclose(step.y[0][1], julia_json["TestTimeResp"]["test_mimo_step_response"]["y12"], atol=1e-3) - assert np.allclose(step.y[1][1], julia_json["TestTimeResp"]["test_mimo_step_response"]["y22"], atol=1e-3) - assert np.allclose(step.y[1][0], julia_json["TestTimeResp"]["test_mimo_step_response"]["y21"], atol=1e-3) + # Precision is currently between 1e-5 and 1e-6 compared to julia solver for mimo + assert np.allclose(step.y[0][0], julia_json["TestTimeResp"]["test_mimo_step_response"]["y11"], atol=1e-5) + assert np.allclose(step.y[0][1], julia_json["TestTimeResp"]["test_mimo_step_response"]["y12"], atol=1e-5) + assert np.allclose(step.y[1][1], julia_json["TestTimeResp"]["test_mimo_step_response"]["y22"], atol=1e-5) + assert np.allclose(step.y[1][0], julia_json["TestTimeResp"]["test_mimo_step_response"]["y21"], atol=1e-5) def test_forced_response(self, delay_siso_tf, simple_siso_tf, plot=False): from control.timeresp import forced_response @@ -106,6 +105,7 @@ def test_forced_response(self, delay_siso_tf, simple_siso_tf, plot=False): count += 1 # Optionally, inspect the plot: + #plot = True if plot: plt.figure() plt.plot(resp.t, inputs, label="input") @@ -123,6 +123,42 @@ def test_forced_response(self, delay_siso_tf, simple_siso_tf, plot=False): def test_mimo_forced_response(self, wood_berry, plot=False): from control.timeresp import forced_response - timepts = np.linspace(0, 100, 1001) - pass + timepts = np.linspace(0, 100, 10001) + inputs = np.array([np.sin(timepts), np.cos(timepts)]) + resp = forced_response(wood_berry, timepts=timepts, inputs=inputs) + + resp_wb_11 = forced_response(12.8 / (16.7 * s + 1), timepts=timepts, inputs=inputs[0]) + resp_wb_12 = forced_response(-18.9 / (21.0 * s + 1), timepts=timepts, inputs=inputs[1]) + resp_wb_21 = forced_response(6.6 / (10.9 * s + 1), timepts=timepts, inputs=inputs[0]) + resp_wb_22 = forced_response(-19.4 / (14.4 * s + 1), timepts=timepts, inputs=inputs[1]) + + hand_delayed_resp_y1 = np.zeros_like(resp.y[0]) + hand_delayed_resp_y2 = np.zeros_like(resp.y[1]) + count11 = 0 + count12 = 0 + count21 = 0 + count22 = 0 + for i, t in enumerate(resp.t): + if t >= 1: + hand_delayed_resp_y1[i] = resp_wb_11.y[0][count11] + count11 += 1 + if t >= 3: + hand_delayed_resp_y1[i] += resp_wb_12.y[0][count12] + count12 += 1 + hand_delayed_resp_y2[i] += resp_wb_22.y[0][count22] + count22 += 1 + if t >= 7: + hand_delayed_resp_y2[i] += resp_wb_21.y[0][count21] + count21 += 1 + #plot = True + if plot: + plt.figure() + plt.plot(resp.t, resp.y[0] - hand_delayed_resp_y1, label="y1 - hand y1") + plt.plot(resp.t, resp.y[1] - hand_delayed_resp_y2, label="y2 - hand y2") + + plt.legend() + plt.show() + + assert np.allclose(resp.y[0], hand_delayed_resp_y1, atol=1e-5) + assert np.allclose(resp.y[1], hand_delayed_resp_y2, atol=1e-5) diff --git a/control/timeresp.py b/control/timeresp.py index d3c6bb39c..a9e711c83 100644 --- a/control/timeresp.py +++ b/control/timeresp.py @@ -1532,7 +1532,7 @@ def step_response( U = np.zeros((sys.ninputs, T.size)) U[i, :] = np.ones_like(T) - #print(U) + #print(U) response = forced_response(sys, T, U, X0, squeeze=True, params=params,) inpidx = i if input is None else 0 From f56e5de3b9abd9786362ea6636fcbb6db3dcf472 Mon Sep 17 00:00:00 2001 From: MythasNauveili Date: Fri, 9 May 2025 18:08:23 +0200 Subject: [PATCH 13/16] docstrings, ruff check and format --- .gitignore | 2 +- control/__init__.py | 1 + control/dde.py | 239 +++++--- control/delaylti.py | 358 ++++++++---- control/julia/utils.py | 13 +- control/partitionedssp.py | 207 ++++--- control/tests/dde_test.py | 92 +++- control/tests/delay_lti_test.py | 116 ++-- control/tests/partionedssp_test.py | 127 +++-- control/timeresp.py | 839 ++++++++++++++++++----------- 10 files changed, 1304 insertions(+), 690 deletions(-) diff --git a/.gitignore b/.gitignore index f33555aa5..8ce34c9a1 100644 --- a/.gitignore +++ b/.gitignore @@ -47,4 +47,4 @@ venv.bak/ .DS_Store # tests files -control/julia/test.ipynb +control/julia/test.ipynb \ No newline at end of file diff --git a/control/__init__.py b/control/__init__.py index d2929c799..91275fe1f 100644 --- a/control/__init__.py +++ b/control/__init__.py @@ -89,6 +89,7 @@ # Allow access to phase_plane functions as ct.phaseplot.fcn or ct.pp.fcn from . import phaseplot as phaseplot + pp = phaseplot # Exceptions diff --git a/control/dde.py b/control/dde.py index ff89c98a8..81839cb60 100644 --- a/control/dde.py +++ b/control/dde.py @@ -2,10 +2,12 @@ from scipy.integrate import solve_ivp, OdeSolution from scipy.interpolate import PchipInterpolator -from typing import Callable, List +from typing import List -def dde_response(delay_sys, T, U=0, X0=0, params=None, - transpose=False, return_x=False, squeeze=None): + +def dde_response( + delay_sys, T, U=0, X0=0, params=None, transpose=False, return_x=False, squeeze=None +): """Compute the output of a delay linear system given the input. Parameters @@ -13,12 +15,15 @@ def dde_response(delay_sys, T, U=0, X0=0, params=None, delay_sys : DelayLTI Delay I/O system for which forced response is computed. T : array_like - An array representing the time points where the input is specified. + An array representing the time points where the input is specified. The time points must be uniformly spaced. U : array_like or float, optional - Input array giving input at each time in `T`. + Input array giving input at each time T. If a scalar is passed, + it is converted to an array with the same scalar value at each time. + Defaults to 0. X0 : array_like or float, default=0. - Initial condition. + Initial condition of the state vector. If a scalar is passed, + it is converted to an array with that scalar as the initial state. params : dict, optional If system is a nonlinear I/O system, set parameter values. transpose : bool, default=False @@ -37,60 +42,50 @@ def dde_response(delay_sys, T, U=0, X0=0, params=None, the shape of the output even if the system is not SISO. If `squeeze` is False, keep the output as a 2D array (indexed by the output number and time) even if the system is SISO. The default - behavior can be overridden by - `config.defaults['control.squeeze_time_response']`. - method : str, default=None - Method used to solve the DDE. If None, use the Skogestad-Python - solver. If 'LSODA', use the LSODA solver. + behavior can be overridden by `config.defaults['control.squeeze_time_response']`. Returns ------- resp : `TimeResponseData` Input/output response data object. When accessed as a tuple, returns ``(time, outputs)`` (default) or ``(time, outputs, states)`` - if `return_ + if `return_x` is True. """ from .timeresp import TimeResponseData, _check_convert_array from .delaylti import DelayLTI - if not isinstance(delay_sys, DelayLTI): - raise TypeError("Input must be a DelayLTI") - A, B1, B2 = delay_sys.P.A, delay_sys.P.B1, delay_sys.P.B2 - C1, C2 = delay_sys.P.C1, delay_sys.P.C2 - D11, D12 = delay_sys.P.D11, delay_sys.P.D12 - D21, D22 = delay_sys.P.D21, delay_sys.P.D22 - tau = delay_sys.tau + if not isinstance(delay_sys, DelayLTI): + raise TypeError("Input must be a DelayLTI") - n_states = A.shape[0] - n_inputs = B1.shape[1] # External inputs u - n_outputs = C1.shape[0] # External outputs y - n_internal_outputs = C2.shape[0] # 'z' outputs feeding delays - n_internal_inputs = B2.shape[1] # 'w' inputs from delays + n_states = delay_sys.P.A.shape[0] + n_inputs = delay_sys.P.B1.shape[1] # External inputs u + n_outputs = delay_sys.P.C1.shape[0] # External outputs y if U is not None: U = np.asarray(U) if T is not None: T = np.asarray(T) - T = _check_convert_array(T, [('any',), (1, 'any')], - 'Parameter `T`: ', squeeze=True, - transpose=transpose) + T = _check_convert_array( + T, [("any",), (1, "any")], "Parameter `T`: ", squeeze=True, transpose=transpose + ) - n_steps = T.shape[0] + n_steps = T.shape[0] dt = (T[-1] - T[0]) / (n_steps - 1) if not np.allclose(np.diff(T), dt): - raise ValueError("Parameter `T`: time values must be equally " - "spaced.") + raise ValueError("Parameter `T`: time values must be equally spaced.") X0 = _check_convert_array( - X0, [(n_states,), (n_states, 1)], 'Parameter `X0`: ', squeeze=True) - + X0, [(n_states,), (n_states, 1)], "Parameter `X0`: ", squeeze=True + ) + # Test if U has correct shape and type - legal_shapes = [(n_steps,), (1, n_steps)] if n_inputs == 1 else \ - [(n_inputs, n_steps)] - U = _check_convert_array(U, legal_shapes, - 'Parameter `U`: ', squeeze=False, - transpose=transpose) + legal_shapes = ( + [(n_steps,), (1, n_steps)] if n_inputs == 1 else [(n_inputs, n_steps)] + ) + U = _check_convert_array( + U, legal_shapes, "Parameter `U`: ", squeeze=False, transpose=transpose + ) print("U shape: ", U.shape) xout = np.zeros((n_states, n_steps)) xout[:, 0] = X0 @@ -99,46 +94,90 @@ def dde_response(delay_sys, T, U=0, X0=0, params=None, xout, yout = solve_dde(delay_sys, T, U, X0, dt) return TimeResponseData( - tout, yout, xout, U, - params=params, + tout, + yout, + xout, + U, + params=params, issiso=delay_sys.issiso(), - sysname=delay_sys.name, + sysname=delay_sys.name, plot_inputs=True, - title="Forced response for " + delay_sys.name, - trace_types=['forced'], - transpose=transpose, - return_x=return_x, - squeeze=squeeze + title="Forced response for " + delay_sys.name, + trace_types=["forced"], + transpose=transpose, + return_x=return_x, + squeeze=squeeze, ) def pchip_interp_u(T, U): + """Create PCHIP interpolator functions for the input signal(s) U over time T. + + For time points `t < T[0]`, the interpolator returns 0. + + Parameters + ---------- + T : array_like + Time vector, 1D array. + U : array_like + Input signal(s). Can be: + - 0D array (scalar): Assumed constant input. (Note: this path might + not be hit if U is pre-processed by `_check_convert_array`). + - 1D array `(n_steps,)`: Single input signal. + - 2D array `(n_inputs, n_steps)`: Multiple input signals. + + Returns + ------- + np.ndarray of PchipInterpolator or scalar + If U is 1D or 2D, returns a 1D NumPy array of PchipInterpolator + objects, one for each input signal. + If U is a scalar (0D), returns U itself. + """ def negative_wrapper(interp): return lambda t: interp(t) if t >= T[0] else 0 - + if np.ndim(U) == 1: + # Single input signal, U.shape is (n_steps,) return np.array([negative_wrapper(PchipInterpolator(T, U))]) elif np.ndim(U) == 0: + # Scalar input, assumed constant. return U else: + # Multiple input signals, U.shape is (n_inputs, n_steps) return np.array([negative_wrapper(PchipInterpolator(T, ui)) for ui in U]) - + class DdeHistory: """ Stores the computed solution history for a DDE and provides a callable interface to retrieve the state x(t) at any requested past time t. + The history object is callable: `history(t)` returns the state vector x(t). Handles three regimes: 1. t <= t0: Uses the provided initial history function. 2. t0 < t <= t_last_computed: Interpolates using dense output from solve_ivp segments. - 3. t > t_last_computed: Performs constant extrapolation using the last computed state. + 3. t > t_last_computed: Performs constant extrapolation using the last computed state + (the state at `t_last_computed`). + + Attributes + ---------- + initial_history_func : callable + Function `f(t)` that returns the state vector for `t <= t0`. + t0 : float + Initial time. History before or at this time is given by `initial_history_func`. + segments : list of OdeSolution + List of `OdeSolution` objects from `scipy.integrate.solve_ivp`, + each representing a computed segment of the solution. + last_valid_time : float + The time at the end of the most recently added solution segment. + last_state : np.ndarray + The state vector at `last_valid_time`. """ def __init__(self, initial_history_func, t0): self.initial_history_func = initial_history_func self.t0: float = t0 - self.segments: List[OdeSolution] = [] # Stores OdeResult objects from solve_ivp + self.segments: List[OdeSolution] = [] # Stores OdeResult objects from solve_ivp self.last_valid_time: float = t0 initial_state = np.asarray(initial_history_func(t0)) @@ -147,6 +186,11 @@ def __init__(self, initial_history_func, t0): def add_segment(self, segment: OdeSolution): """ Adds a new computed solution segment (from solve_ivp) to the history. + + Parameters + ---------- + segment : OdeSolution + The solution object returned by `solve_ivp` for a time segment. """ self.segments.append(segment) @@ -154,6 +198,18 @@ def add_segment(self, segment: OdeSolution): self.last_state = segment.y[:, -1] def __call__(self, t): + """Return the state vector x(t) by looking up or interpolating from history. + + Parameters + ---------- + t : float + Time at which to retrieve the state. + + Returns + ------- + np.ndarray + State vector x(t). + """ if t <= self.t0: return np.asarray(self.initial_history_func(self.t0)) elif t > self.last_valid_time: @@ -162,23 +218,46 @@ def __call__(self, t): for segment in self.segments: if segment.t[0] <= t <= segment.t[-1]: return segment.sol(t) - return np.zeros_like(self.last_state) # Deal with first call + # Fallback: should ideally not be reached if t is within (t0, last_valid_time] + # and segments cover this range. + return np.zeros_like(self.last_state) # Deal with first call def dde_wrapper(t, x, A, B1, B2, C2, D21, tau_list, u_func, history_x): """ Wrapper function for DDE solver using scipy's solve_ivp. + Computes the derivative dx/dt for the DDE system. + + The system is defined by: + dx/dt = A @ x(t) + B1 @ u(t) + B2 @ z_delayed_vector(t) + where: + z_delayed_vector(t) is a vector where the k-th component is z_k(t - tau_list[k]), + and z_k(t') = (C2 @ x(t') + D21 @ u(t'))_k. + (Assuming D22 is zero for the internal feedback path). - y is the current state vector. - history is an object of History class that contains the history of the system. - A is the system matrix. - B1 is the input matrix. - B2 is the delayed system matrix. + Parameters + ---------- + t : float + Current time. + x : np.ndarray + Current state vector, x(t). + A, B1, B2, C2, D21 : np.ndarray + State-space matrices of the underlying `PartitionedStateSpace`. + tau_list : array_like + List or array of time delays. + u_func : array_like of callable + Array of interpolating functions for the input u(t). `u_funci` + gives the i-th input signal at time t. + history_x : DdeHistory + Callable history object to retrieve past states x(t-tau). - dx/dt = A @ x + B1 @ u(t) + B2 @ z(t - tau) + Returns + ------- + np.ndarray + The derivative of the state vector, dx/dt. """ z_delayed = [] - for i,tau in enumerate(tau_list): + for i, tau in enumerate(tau_list): u_delayed = np.array([u_func[i](t - tau) for i in range(len(u_func))]) z = C2 @ history_x(t - tau) + D21 @ u_delayed z_delayed.append(z[i]) @@ -192,20 +271,21 @@ def dde_wrapper(t, x, A, B1, B2, C2, D21, tau_list, u_func, history_x): def solve_dde(delay_sys, T, U, X0, dt): """ Solving delay differential equation using Method Of Steps. - + Parameters ---------- delay_sys : DelayLTI Delay I/O system for which forced response is computed. T : array_like - An array representing the time points where the input is specified. + An array representing the time points where the input is specified. The time points must be uniformly spaced. U : array_like or float, optional Input array giving input at each time in `T`. X0 : array_like or float, default=0. Initial condition. - dt : float - Time step for the integration. + dt : float # Unused beyond T check + Time step of the `T` array. Used to verify `T` is uniformly spaced. + Not directly used as integration step by `solve_ivp`. Returns ------- @@ -218,18 +298,28 @@ def solve_dde(delay_sys, T, U, X0, dt): intial_history_func = lambda t: np.zeros(X0.shape) t0, tf = T[0], T[-1] u_func = pchip_interp_u(T, U) - - history_x = DdeHistory(intial_history_func, t0) # to access x(t-tau) + + history_x = DdeHistory(intial_history_func, t0) # to access x(t-tau) current_t = 0 current_x = np.asarray(X0).flatten() - A, B1, B2, C1, C2 = delay_sys.P.A, delay_sys.P.B1, delay_sys.P.B2, delay_sys.P.C1, delay_sys.P.C2 - D11, D12, D21, D22 = delay_sys.P.D11, delay_sys.P.D12, delay_sys.P.D21, delay_sys.P.D22 + A, B1, B2, C1, C2 = ( + delay_sys.P.A, + delay_sys.P.B1, + delay_sys.P.B2, + delay_sys.P.C1, + delay_sys.P.C2, + ) + D11, D12, D21 = ( + delay_sys.P.D11, + delay_sys.P.D12, + delay_sys.P.D21, + ) # in control systems, D22 is always 0 tau_list = delay_sys.tau solution_ts = [current_t] solution_xs = [current_x] - + # TODO: handle discontinuity propagation discontinuity_times = set(tau_list) while current_t < tf: @@ -240,14 +330,15 @@ def solve_dde(delay_sys, T, U, X0, dt): print("Integrate bewtween ", current_t, " and ", t_stop) sol_segment = solve_ivp( - fun = dde_wrapper, + fun=dde_wrapper, t_span=(current_t, t_stop), t_eval=local_t_eval, y0=current_x, - method='LSODA', + method="LSODA", dense_output=True, args=(A, B1, B2, C2, D21, tau_list, u_func, history_x), - rtol=1e-9, atol=1e-12 + rtol=1e-9, + atol=1e-12, ) # --- Update History and Store Results --- @@ -269,13 +360,15 @@ def solve_dde(delay_sys, T, U, X0, dt): u_current = [] for i, ti in enumerate(solution_ts): z_delayed.append([]) - for j,tau in enumerate(tau_list): - z = C2 @ history_x(ti - tau) + D21 @ np.array([u_func[i](ti - tau) for i in range(len(u_func))]) + for j, tau in enumerate(tau_list): + z = C2 @ history_x(ti - tau) + D21 @ np.array( + [u_func[i](ti - tau) for i in range(len(u_func))] + ) z_delayed[i].append(z[j]) u_current.append([u_func[i](ti) for i in range(len(u_func))]) z_delayed = np.array(z_delayed) u_current = np.array(u_current) - + solution_ys = C1 @ solution_xs.T + D11 @ u_current.T + D12 @ z_delayed.T - return solution_xs.T, solution_ys \ No newline at end of file + return solution_xs.T, solution_ys diff --git a/control/delaylti.py b/control/delaylti.py index da78b7db7..05f604b41 100644 --- a/control/delaylti.py +++ b/control/delaylti.py @@ -3,11 +3,9 @@ from .partitionedssp import PartitionedStateSpace from .statesp import ss, StateSpace, tf2ss from .xferfcn import TransferFunction -from .iosys import _process_iosys_keywords from scipy.linalg import solve, LinAlgError, inv, eigvals - class DelayLTI(LTI): """Delay Linear Time Invariant (DelayLTI) class. @@ -70,10 +68,25 @@ class DelayLTI(LTI): Create a DelayLTI system from a TransferFunction system. size() Return the number of outputs and inputs. + poles() + Compute poles of the non-delayed part of the system. + zeros() + Compute zeros of the non-delayed part of the system. + feedback(other=1, sign=-1) + Feedback interconnection between two DelayLTI systems or a DelayLTI + system and a static gain. + issiso() + Check if the system is single-input, single-output. + __call__(x, squeeze=False, warn_infinite=True) + Evaluate the system's frequency response at complex frequencies. + to_ss() + Convert to StateSpace (not implemented for DelayLTI). + to_tf() + Convert to TransferFunction (not implemented for DelayLTI). Notes ----- - The preferred way to create a DelayLTI object is by multiplying a transfert + The way to create a DelayLTI object is by multiplying a transfert function object with a delay(tau) or exp(-tau*s). For example >>> ct.tf([1], [1,1]) * delay(1.5) @@ -88,7 +101,7 @@ class DelayLTI(LTI): """ - def __init__(self, P: PartitionedStateSpace, tau = None, **kwargs): + def __init__(self, P: PartitionedStateSpace, tau=None): """Initialize the DelayLTI object. Parameters @@ -97,24 +110,18 @@ def __init__(self, P: PartitionedStateSpace, tau = None, **kwargs): The underlying partitioned state-space representation of the system. tau : array_like, optional An array of time delays associated with the system. - **kwargs : keyword arguments - Additional keyword arguments for the LTI system. - """ if not isinstance(P, PartitionedStateSpace): raise TypeError("Input must be a PartitionedStateSpace") - + self.P = P self.tau = np.array([]) if tau is None else np.array(tau) - - static = (self.P.A.size == 0) - self.nu = self.P.sys.ninputs - len(self.tau) self.ny = self.P.sys.noutputs - len(self.tau) super().__init__(self.nu, self.ny, self.P.sys.nstates) @classmethod - def from_ss(cls, sys: StateSpace, tau: np.ndarray = None): + def from_ss(cls, sys: StateSpace, tau=None): """Create a DelayLTI system from a StateSpace system. Parameters @@ -132,9 +139,9 @@ def from_ss(cls, sys: StateSpace, tau: np.ndarray = None): """ if not isinstance(sys, StateSpace): raise TypeError("Input must be a StateSpace") - + tau = np.array([]) if tau is None else np.array(tau) - + nu = sys.D.shape[1] - len(tau) ny = sys.D.shape[0] - len(tau) @@ -143,7 +150,7 @@ def from_ss(cls, sys: StateSpace, tau: np.ndarray = None): psys = PartitionedStateSpace(sys, nu, ny) return cls(psys, tau) - + @classmethod def from_tf(cls, sys: TransferFunction, tau: np.ndarray = None): """Create a DelayLTI system from a TransferFunction system. @@ -168,19 +175,31 @@ def from_tf(cls, sys: TransferFunction, tau: np.ndarray = None): def size(self): """Return the number of outputs and inputs.""" return (self.noutputs, self.ninputs) - + # Poles and zeros functions for DelayLTI are not supported by julia ControlSystems.jl # might not be accurate for delayLTI, to be discussed - # Here the poles and zeros computed are the ones of the system without taking the delay + # Here the poles and zeros computed are the ones of the system without taking into accoutn the delay def poles(self): - """Compute the poles of a delay lti system.""" + """Compute the poles of a delay lti system. - return eigvals(self.P.A).astype(complex) if self.nstates \ - else np.array([]) + Notes + ----- + This method computes the poles of the underlying LTI system (P.A) + and does not account for the time delays. The poles of a system + with delays are generally infinite in number. + """ + + return eigvals(self.P.A).astype(complex) if self.nstates else np.array([]) def zeros(self): - """Compute the zeros of a delay lti system.""" + """Compute the zeros of the non-delayed part of the LTI system. + + Notes + ----- + This method computes the zeros of the underlying LTI system (P.A, + P.B, P.C, P.D) and does not account for the time delays. + """ if not self.nstates: return np.array([]) @@ -190,21 +209,28 @@ def zeros(self): try: from slycot import ab08nd - out = ab08nd(self.P.A.shape[0], self.P.B.shape[1], self.P.C.shape[0], - self.P.A, self.P.B, self.P.C, self.P.D) + out = ab08nd( + self.P.A.shape[0], + self.P.B.shape[1], + self.P.C.shape[0], + self.P.A, + self.P.B, + self.P.C, + self.P.D, + ) nu = out[0] if nu == 0: return np.array([]) else: # Use SciPy generalized eigenvalue function - return eigvals(out[8][0:nu, 0:nu], - out[9][0:nu, 0:nu]).astype(complex) + return eigvals(out[8][0:nu, 0:nu], out[9][0:nu, 0:nu]).astype(complex) except ImportError: # Slycot unavailable. Fall back to SciPy. if self.P.C.shape[0] != self.P.D.shape[1]: raise NotImplementedError( "StateSpace.zero only supports systems with the same " - "number of inputs as outputs.") + "number of inputs as outputs." + ) # This implements the QZ algorithm for finding transmission zeros # from @@ -216,14 +242,23 @@ def zeros(self): # # The generalized eigenvalue problem is only solvable if its # arguments are square matrices. - L = np.concatenate((np.concatenate((self.P.A, self.P.B), axis=1), - np.concatenate((self.P.C, self.P.D), axis=1)), axis=0) - M = np.pad(np.eye(self.P.A.shape[0]), ((0, self.P.C.shape[0]), - (0, self.P.B.shape[1])), "constant") - return np.array([x for x in eigvals(L, M, - overwrite_a=True) - if not np.isinf(x)], dtype=complex) - + L = np.concatenate( + ( + np.concatenate((self.P.A, self.P.B), axis=1), + np.concatenate((self.P.C, self.P.D), axis=1), + ), + axis=0, + ) + M = np.pad( + np.eye(self.P.A.shape[0]), + ((0, self.P.C.shape[0]), (0, self.P.B.shape[1])), + "constant", + ) + return np.array( + [x for x in eigvals(L, M, overwrite_a=True) if not np.isinf(x)], + dtype=complex, + ) + def _isstatic(self): """Check if the system is static.""" return self.nstates == 0 @@ -249,47 +284,75 @@ def __mul__(self, other): if isinstance(other, (int, float, complex)): new_B = np.hstack([self.P.B1 * other, self.P.B2]) - new_D = np.block([[self.P.D11 * other, self.P.D12], [self.P.D21 * other, self.P.D22]]) + new_D = np.block( + [[self.P.D11 * other, self.P.D12], [self.P.D21 * other, self.P.D22]] + ) - new_P = PartitionedStateSpace(ss(self.P.A, new_B, self.P.C, new_D), self.P.nu1, self.P.ny1) + new_P = PartitionedStateSpace( + ss(self.P.A, new_B, self.P.C, new_D), self.P.nu1, self.P.ny1 + ) return DelayLTI(new_P, self.tau) elif isinstance(other, DelayLTI): psys_new = self.P * other.P tau_new = np.concatenate([self.tau, other.tau]) return DelayLTI(psys_new, tau_new) - + elif isinstance(other, TransferFunction): dlti = tf2dlti(other) return self * dlti - + elif isinstance(other, StateSpace): return self * DelayLTI.from_ss(other) else: - raise TypeError("Unsupported operand type(s) for *: '{}' and '{}'".format(type(self), type(other))) - + raise TypeError( + "Unsupported operand type(s) for *: '{}' and '{}'".format( + type(self), type(other) + ) + ) + def __rmul__(self, other): """ - Right multiply a DelayLTI system with a scalar, TransferFunction, StateSpace. + Right multiply a DelayLTI system by a scalar or LTI system. + + Parameters + ---------- + other : scalar, TransferFunction, StateSpace + The scalar or system to multiply with. + + Returns + ------- + DelayLTI + The resulting DelayLTI system. + Note that this function does not call __mul__ for scalar multiplication. + """ if isinstance(other, (int, float, complex)): new_C = np.vstack([self.P.C1 * other, self.P.C2]) - new_D = np.block([[self.P.D11 * other, self.P.D12 * other], [self.P.D21, self.P.D22]]) + new_D = np.block( + [[self.P.D11 * other, self.P.D12 * other], [self.P.D21, self.P.D22]] + ) - new_P = PartitionedStateSpace(ss(self.P.A, self.P.B, new_C, new_D), self.P.nu1, self.P.ny1) + new_P = PartitionedStateSpace( + ss(self.P.A, self.P.B, new_C, new_D), self.P.nu1, self.P.ny1 + ) return DelayLTI(new_P, self.tau) - + elif isinstance(other, TransferFunction): dlti = tf2dlti(other) return dlti * self - + elif isinstance(other, StateSpace): return DelayLTI.from_ss(other) * self else: - raise TypeError("Unsupported operand type(s) for *: '{}' and '{}'".format(type(other), type(self))) + raise TypeError( + "Unsupported operand type(s) for *: '{}' and '{}'".format( + type(other), type(self) + ) + ) def __add__(self, other): """Add two DelayLTI systems or a DelayLTI system with a scalar. @@ -312,8 +375,10 @@ def __add__(self, other): if isinstance(other, (int, float, complex)): new_D = self.P.sys.D.copy() - new_D[:self.ny, :self.nu] += other - pnew = PartitionedStateSpace(ss(self.P.A, self.P.B, self.P.C, new_D), self.P.nu1, self.P.ny1) + new_D[: self.ny, : self.nu] += other + pnew = PartitionedStateSpace( + ss(self.P.A, self.P.B, self.P.C, new_D), self.P.nu1, self.P.ny1 + ) return DelayLTI(pnew, self.tau) elif isinstance(other, DelayLTI): psys_new = self.P + other.P @@ -322,22 +387,47 @@ def __add__(self, other): else: sys = _convert_to_delay_lti(other) return self + sys - def __sub__(self, other): + """Subtract two DelayLTI systems or a DelayLTI system and a scalar.""" return self + (-other) def __neg__(self): + """Negate a DelayLTI system.""" return self * -1 def __rsub__(self, other): + """Right subtract a DelayLTI system from a scalar or LTI system.""" return -self + other def __eq__(self, other): + """Check for equality between two DelayLTI systems. + + Parameters + ---------- + other : DelayLTI + The other DelayLTI system to compare against. + + Returns + ------- + bool + True if the systems are equal, False otherwise. + + Raises + ------ + TypeError + If `other` is not a DelayLTI object. + + Notes + ----- + Two DelayLTI systems are considered equal if their underlying + PartitionedStateSpace representations are equal and their delay + vectors (`tau`) are element-wise identical. + """ if not isinstance(other, DelayLTI): raise TypeError(f"{other} is not a DelayLTI object, is {type(other)}") return (self.P == other.P) and (self.tau == other.tau) - + def feedback(self, other=1, sign=-1): """Standard or LFT feedback interconnection for DelayLTI. @@ -368,30 +458,35 @@ def feedback(self, other=1, sign=-1): psys_new = self.P.feedback(other.P) tau_new = np.concatenate([self.tau, other.tau]) return DelayLTI(psys_new, tau_new) - + elif isinstance(other, (StateSpace, TransferFunction)): other_delay_lti = _convert_to_delay_lti(other) return self.feedback(other_delay_lti) - + else: # Convert feedback 'other' to a static gain matrix K if isinstance(other, (int, float, complex, np.number)): if not self.issiso(): - raise ValueError("Scalar feedback gain requires SISO system G.") + raise ValueError("Scalar feedback gain requires SISO system G.") K = np.array([[other]], dtype=float) elif isinstance(other, np.ndarray): K = np.asarray(other, dtype=float) - if K.ndim == 0: K = K.reshape(1,1) + if K.ndim == 0: + K = K.reshape(1, 1) elif K.ndim == 1: - if self.nu != 1: raise ValueError("1D array feedback requires SISO system G.") - K = K.reshape(self.ninputs, 1) - elif K.ndim != 2: raise ValueError("Feedback gain must be scalar, 1D, or 2D array.") + if self.nu != 1: + raise ValueError("1D array feedback requires SISO system G.") + K = K.reshape(self.ninputs, 1) + elif K.ndim != 2: + raise ValueError("Feedback gain must be scalar, 1D, or 2D array.") else: - raise TypeError(f"Unsupported type for static feedback: {type(other)}") + raise TypeError(f"Unsupported type for static feedback: {type(other)}") # Check dimensions of K if K.shape != (self.nu, self.ny): - raise ValueError(f"Feedback gain K has incompatible shape. Expected ({self.nu}, {self.ny}), got {K.shape}.") + raise ValueError( + f"Feedback gain K has incompatible shape. Expected ({self.nu}, {self.ny}), got {K.shape}." + ) # Get matrices from self's underlying PartitionedStateSpace P_g = self.P @@ -401,13 +496,14 @@ def feedback(self, other=1, sign=-1): D21_g, D22_g = P_g.D21, P_g.D22 taus = self.tau n_states = self.nstates - n_w = B2_g.shape[1] # Delay input dimension - n_z = C2_g.shape[0] # Delay output dimension - n_r = self.nu # Reference input dimension + n_w = B2_g.shape[1] # Delay input dimension + n_z = C2_g.shape[0] # Delay output dimension + n_r = self.nu # Reference input dimension # Promote types, handle empty states T = np.promote_types(A_g.dtype if A_g.size > 0 else float, K.dtype) - if n_states == 0: A_g = np.zeros((0,0), dtype=T) + if n_states == 0: + A_g = np.zeros((0, 0), dtype=T) # Calculate closed-loop matrices for map [r, w] -> [y, z] F = np.eye(self.nu, dtype=T) - sign * K @ D11_g @@ -427,19 +523,34 @@ def feedback(self, other=1, sign=-1): D21_new = D21_g @ invF D22_new = D22_g + D21_g @ invF_signK @ D12_g - B_new = np.hstack([B1_new, B2_new]) if B1_new.size > 0 or B2_new.size > 0 else np.zeros((n_states, n_r + n_w), dtype=T) - C_new = np.vstack([C1_new, C2_new]) if C1_new.size > 0 or C2_new.size > 0 else np.zeros((self.ny + n_z, n_states), dtype=T) - D_new = np.block([[D11_new, D12_new], [D21_new, D22_new]]) if D11_new.size>0 or D12_new.size>0 or D21_new.size>0 or D22_new.size>0 else np.zeros((self.ny + n_z, n_r + n_w), dtype=T) + B_new = ( + np.hstack([B1_new, B2_new]) + if B1_new.size > 0 or B2_new.size > 0 + else np.zeros((n_states, n_r + n_w), dtype=T) + ) + C_new = ( + np.vstack([C1_new, C2_new]) + if C1_new.size > 0 or C2_new.size > 0 + else np.zeros((self.ny + n_z, n_states), dtype=T) + ) + D_new = ( + np.block([[D11_new, D12_new], [D21_new, D22_new]]) + if D11_new.size > 0 + or D12_new.size > 0 + or D21_new.size > 0 + or D22_new.size > 0 + else np.zeros((self.ny + n_z, n_r + n_w), dtype=T) + ) clsys_ss = StateSpace(A_new, B_new, C_new, D_new, self.dt) clsys_part = PartitionedStateSpace(clsys_ss, nu1=n_r, ny1=self.ny) return DelayLTI(clsys_part, taus) - + def issiso(self): """Check if the system is single-input, single-output.""" # Based on EXTERNAL dimensions return self.nu == 1 and self.ny == 1 - + def __call__(self, x, squeeze=False, warn_infinite=True): """Evaluate the frequency response of the system. @@ -468,40 +579,48 @@ def __call__(self, x, squeeze=False, warn_infinite=True): if len(x_arr.shape) > 1: raise ValueError("input list must be 1D") - + out = np.empty((self.ny, self.nu, len(x_arr)), dtype=complex) sys_call = self.P.sys(x_arr, squeeze=squeeze, warn_infinite=warn_infinite) for i, xi in enumerate(x_arr): - P11_fr = sys_call[:self.ny, :self.nu, i] - P12_fr = sys_call[:self.ny, self.nu:, i] - P21_fr = sys_call[self.ny:, :self.nu, i] - P22_fr = sys_call[self.ny:, self.nu:, i] + P11_fr = sys_call[: self.ny, : self.nu, i] + P12_fr = sys_call[: self.ny, self.nu :, i] + P21_fr = sys_call[self.ny :, : self.nu, i] + P22_fr = sys_call[self.ny :, self.nu :, i] delay_term_inv = np.exp(xi * self.tau) delay_term_fr = np.diag(delay_term_inv) - out[:,:,i] = P11_fr + P12_fr @ inv(delay_term_fr - P22_fr) @ P21_fr + out[:, :, i] = P11_fr + P12_fr @ inv(delay_term_fr - P22_fr) @ P21_fr return out def __str__(self): - # To be improved - s = f"DelayLTI with {self.noutputs} outputs, {self.ninputs} inputs, " \ + """Return a string representation of the DelayLTI system.""" + s = ( + f"DelayLTI with {self.noutputs} outputs, {self.ninputs} inputs, " f"{self.nstates} states, and {len(self.tau)} delays.\n" + ) s += f"Delays: {self.tau}\n" s += "Underlying PartitionedStateSpace P:\n" + str(self.P) s += "\n" return s def __repr__(self): - return (f"{type(self).__name__}(" - f"P={self.P.__repr__()}, tau={self.tau.__repr__()})") - - # Some functions from LTI that are not currently supported with delayLTI + """Return a string representation of the DelayLTI system (for eval).""" + return ( + f"{type(self).__name__}(P={self.P.__repr__()}, tau={self.tau.__repr__()})" + ) + def to_ss(self, *args, **kwargs): - return NotImplementedError - - def to_tf(self, *args, **kwargs): - raise NotImplementedError + """Convert to `StateSpace` object (not implemented for DelayLTI).""" + raise NotImplementedError( + "Conversion of DelayLTI to StateSpace is not supported." + ) + def to_tf(self, *args, **kwargs): + """Convert to `TransferFunction` object (not implemented for DelayLTI).""" + raise NotImplementedError( + "Conversion of DelayLTI to TransferFunction is not supported." + ) def delay(tau): @@ -528,21 +647,16 @@ def delay(tau): if isinstance(tau, (int, float)): tau_arr = [float(tau)] - num_delays = 1 elif isinstance(tau, (list, np.ndarray)): - tau_arr = [float(t) for t in tau] - num_delays = len(tau_arr) + tau_arr = [float(t) for t in tau] else: raise TypeError("tau must be a number, list, or NumPy array") - - D = np.array([ - [0, 1], - [1, 0] - ]) + + D = np.array([[0, 1], [1, 0]]) ny, nu = D.shape[0], D.shape[1] - A = np.zeros((0,0)) + A = np.zeros((0, 0)) B = np.zeros((0, nu)) C = np.zeros((ny, 0)) @@ -580,11 +694,26 @@ def exp(G): def tf2dlti(tf: TransferFunction): """ - Convert a TransferFunction to a DelayLTI + Convert a TransferFunction to a DelayLTI system with no delays. + + Parameters + ---------- + tf : TransferFunction + The transfer function to convert. + + Returns + ------- + DelayLTI + The equivalent DelayLTI system (with tau = []). + + Raises + ------ + TypeError + If `tf` is not a TransferFunction object. """ if not isinstance(tf, TransferFunction): raise TypeError("Input must be a TransferFunction") - + ss_tf = tf2ss(tf) return DelayLTI.from_ss(ss_tf) @@ -597,7 +726,24 @@ def ss2dlti(ss: StateSpace): def _convert_to_delay_lti(sys): - """Convert a system to a DelayLTI if necessary.""" + """ + Convert a StateSpace system to a DelayLTI system with no delays. + + Parameters + ---------- + ss : StateSpace + The state-space system to convert. + + Returns + ------- + DelayLTI + The equivalent DelayLTI system (with tau = []). + + Raises + ------ + TypeError + If `ss` is not a StateSpace object. + """ if isinstance(sys, DelayLTI): return sys elif isinstance(sys, StateSpace): @@ -605,8 +751,10 @@ def _convert_to_delay_lti(sys): elif isinstance(sys, TransferFunction): return tf2dlti(sys) else: - raise TypeError("Unsupported system type for DelayLTI conversion: {}".format(type(sys))) - + raise TypeError( + "Unsupported system type for DelayLTI conversion: {}".format(type(sys)) + ) + def vcat(*systems: list[DelayLTI]) -> DelayLTI: """Vertically concatenate a list of DelayLTI systems. @@ -636,7 +784,7 @@ def vcat(*systems: list[DelayLTI]) -> DelayLTI: P = vcat_pss(*part_ssp) tau = np.concatenate([sys.tau for sys in systems]) return DelayLTI(P, tau) - + def hcat(*systems: list[DelayLTI]) -> DelayLTI: """Horizontally concatenate a list of DelayLTI systems. @@ -659,14 +807,14 @@ def hcat(*systems: list[DelayLTI]) -> DelayLTI: from .partitionedssp import hcat_pss - if not(all(isinstance(sys, DelayLTI) for sys in systems)): + if not (all(isinstance(sys, DelayLTI) for sys in systems)): raise TypeError("All inputs must be DelayLTIs") - + part_ssp = [sys.P for sys in systems] P = hcat_pss(*part_ssp) tau = np.concatenate([sys.tau for sys in systems]) return DelayLTI(P, tau) - + def mimo_delay(array: np.ndarray[DelayLTI]): """Create a MIMO delay system from an array of DelayLTI systems. @@ -681,10 +829,14 @@ def mimo_delay(array: np.ndarray[DelayLTI]): DelayLTI The resulting DelayLTI system. + Raises + ------ + TypeError + If any element in the array is not a DelayLTI system. """ if not all(isinstance(item, DelayLTI) for row in array for item in row): raise TypeError("All elements in the array must be DelayLTI systems") rows = [hcat(*row) for row in array] - return vcat(*rows) \ No newline at end of file + return vcat(*rows) diff --git a/control/julia/utils.py b/control/julia/utils.py index d23bbe164..58ca7f538 100644 --- a/control/julia/utils.py +++ b/control/julia/utils.py @@ -3,6 +3,7 @@ from pathlib import Path + def _recursive_reshape(node): """Reshape arrays in a nested dictionary or list. @@ -34,23 +35,23 @@ def _recursive_reshape(node): return array_data else: return np.transpose(array_data) - + elif isinstance(node, dict): new_node = {} for key, value in node.items(): new_node[key] = _recursive_reshape(value) return new_node - + elif isinstance(node, list) and any(isinstance(item, dict) for item in node): new_node = [] for i, item in enumerate(node): new_node[i] = _recursive_reshape(item) return new_node - + else: return node - - + + def load_julia_results(json_path: str): """Load Julia results from a JSON file and reshape arrays. @@ -95,4 +96,4 @@ def assert_delayLTI(dlti, julia_results): # Load julia results file script_dir = Path(__file__).parent -julia_json = load_julia_results(f"{script_dir}/julia_results.json") \ No newline at end of file +julia_json = load_julia_results(f"{script_dir}/julia_results.json") diff --git a/control/partitionedssp.py b/control/partitionedssp.py index 40651b6c3..17b6144a8 100644 --- a/control/partitionedssp.py +++ b/control/partitionedssp.py @@ -1,8 +1,9 @@ import numpy as np -from scipy.linalg import block_diag, inv, solve, LinAlgError +from scipy.linalg import block_diag, solve from .statesp import ss, StateSpace + class PartitionedStateSpace: """Partitioned State Space class. @@ -107,41 +108,40 @@ def __init__(self, sys: StateSpace, nu1: int, ny1: int): self.noutputs_total = sys.noutputs self.ninputs_total = sys.ninputs - self.nu2 = self.ninputs_total - self.nu1 # Dimension of external input w - self.ny2 = self.noutputs_total - self.ny1 # Dimension of external output z + self.nu2 = self.ninputs_total - self.nu1 # Dimension of external input w + self.ny2 = self.noutputs_total - self.ny1 # Dimension of external output z @property def B1(self): - return self.B[:, :self.nu1] + return self.B[:, : self.nu1] @property def B2(self): - return self.B[:, self.nu1:] + return self.B[:, self.nu1 :] @property def C1(self): - return self.C[:self.ny1, :] + return self.C[: self.ny1, :] @property def C2(self): - return self.C[self.ny1:, :] + return self.C[self.ny1 :, :] @property def D11(self): - return self.D[:self.ny1, :self.nu1] + return self.D[: self.ny1, : self.nu1] @property def D12(self): - return self.D[:self.ny1, self.nu1:] + return self.D[: self.ny1, self.nu1 :] @property def D21(self): - return self.D[self.ny1:, :self.nu1] + return self.D[self.ny1 :, : self.nu1] @property def D22(self): - return self.D[self.ny1:, self.nu1:] - + return self.D[self.ny1 :, self.nu1 :] @classmethod def from_matrices(cls, A, B1, B2, C1, C2, D11, D12, D21, D22): @@ -179,10 +179,10 @@ def from_matrices(cls, A, B1, B2, C1, C2, D11, D12, D21, D22): If the matrices have incompatible shapes. """ - nx = A.shape[0] - nw = B1.shape[1] - nu = B2.shape[1] - nz = C1.shape[0] + nx = A.shape[0] + nw = B1.shape[1] + nu = B2.shape[1] + nz = C1.shape[0] ny = C2.shape[0] # Shape validations @@ -220,7 +220,6 @@ def from_matrices(cls, A, B1, B2, C1, C2, D11, D12, D21, D22): sys = ss(A, B, C, D) return cls(sys, nw, nz) - def __add__(self, other): """Add two PartitionedStateSpace systems. @@ -261,7 +260,7 @@ def __add__(self, other): P = ss(A, B, C, D) return PartitionedStateSpace(P, self.nu1 + other.nu1, self.ny1 + other.ny1) - + def __mul__(self, other): """Multiply two PartitionedStateSpace systems. @@ -284,38 +283,52 @@ def __mul__(self, other): if not isinstance(other, PartitionedStateSpace): raise TypeError("Can only multiply PartitionedStateSpace objects") - A = np.block([ - [self.A, self.B1 @ other.C1], - [np.zeros((other.A.shape[0], self.A.shape[1])), other.A] - ]) - - B = np.block([ - [self.B1 @ other.D11, self.B2, self.B1 @ other.D12], - [other.B1, np.zeros((other.B2.shape[0], self.B2.shape[1])), other.B2] - ]) - - C = np.block([ - [self.C1, self.D11 @ other.C1], - [self.C2, self.D21 @ other.C1], - [np.zeros((other.C2.shape[0], self.C2.shape[1])), other.C2] - ]) - - D = np.block([ - [self.D11 @ other.D11, self.D12, self.D11 @ other.D12], - [self.D21 @ other.D11, self.D22, self.D21 @ other.D12], - [other.D21, np.zeros((other.D22.shape[0], self.D22.shape[1])), other.D22] - ]) + A = np.block( + [ + [self.A, self.B1 @ other.C1], + [np.zeros((other.A.shape[0], self.A.shape[1])), other.A], + ] + ) + + B = np.block( + [ + [self.B1 @ other.D11, self.B2, self.B1 @ other.D12], + [other.B1, np.zeros((other.B2.shape[0], self.B2.shape[1])), other.B2], + ] + ) + + C = np.block( + [ + [self.C1, self.D11 @ other.C1], + [self.C2, self.D21 @ other.C1], + [np.zeros((other.C2.shape[0], self.C2.shape[1])), other.C2], + ] + ) + + D = np.block( + [ + [self.D11 @ other.D11, self.D12, self.D11 @ other.D12], + [self.D21 @ other.D11, self.D22, self.D21 @ other.D12], + [ + other.D21, + np.zeros((other.D22.shape[0], self.D22.shape[1])), + other.D22, + ], + ] + ) P = ss(A, B, C, D) return PartitionedStateSpace(P, other.nu1, self.ny1) - + def __eq__(self, other): - return (np.allclose(self.A, other.A) and - np.allclose(self.B, other.B) and - np.allclose(self.C, other.C) and - np.allclose(self.D, other.D) and - self.nu1 == other.nu1 and - self.ny1 == other.ny1) + return ( + np.allclose(self.A, other.A) + and np.allclose(self.B, other.B) + and np.allclose(self.C, other.C) + and np.allclose(self.D, other.D) + and self.nu1 == other.nu1 + and self.ny1 == other.ny1 + ) def feedback(self, other): """Feedback interconnection for PartitionedStateSpace. @@ -337,48 +350,72 @@ def feedback(self, other): """ if not isinstance(other, PartitionedStateSpace): - raise TypeError("Feedback connection only defined for PartitionedStateSpace objects.") + raise TypeError( + "Feedback connection only defined for PartitionedStateSpace objects." + ) # Pre-calculate repeated inverses I_self = np.eye(self.D11.shape[0]) I_other = np.eye(other.D11.shape[0]) - X_11 = solve(I_other + other.D11 @ self.D11, np.hstack((-other.D11 @ self.C1, -other.C1))) - X_21 = solve(I_self + self.D11 @ other.D11, np.hstack((self.C1, -self.D11 @ other.C1))) - - X_12 = solve(I_other + other.D11 @ self.D11, np.hstack((I_other, -other.D11 @ self.D12, -other.D12))) # maybe I_other - X_22 = solve(I_self + self.D11 @ other.D11, np.hstack((self.D11, self.D12, -self.D11 @ other.D12))) - - A_new = np.vstack((self.B1 @ X_11, other.B1 @ X_21)) + block_diag(self.A, other.A) + X_11 = solve( + I_other + other.D11 @ self.D11, np.hstack((-other.D11 @ self.C1, -other.C1)) + ) + X_21 = solve( + I_self + self.D11 @ other.D11, np.hstack((self.C1, -self.D11 @ other.C1)) + ) + + X_12 = solve( + I_other + other.D11 @ self.D11, + np.hstack((I_other, -other.D11 @ self.D12, -other.D12)), + ) # maybe I_other + X_22 = solve( + I_self + self.D11 @ other.D11, + np.hstack((self.D11, self.D12, -self.D11 @ other.D12)), + ) + + A_new = np.vstack((self.B1 @ X_11, other.B1 @ X_21)) + block_diag( + self.A, other.A + ) B_new = np.vstack((self.B1 @ X_12, other.B1 @ X_22)) tmp = block_diag(self.B2, other.B2) - B_new[:, -tmp.shape[1]:] += tmp - - C_new = np.vstack([ - self.D11 @ X_11, - self.D21 @ X_11, - other.D21 @ X_21, - ]) + np.vstack([ - np.hstack([self.C1, np.zeros((self.C1.shape[0], other.C1.shape[1]))]), - block_diag(self.C2, other.C2), - ]) - - D_new = np.vstack([ - self.D11 @ X_12, - self.D21 @ X_12, - other.D21 @ X_22, - ]) - tmp = np.vstack([ - np.hstack([self.D12, np.zeros((self.D12.shape[0], other.D12.shape[1]))]), - block_diag(self.D22, other.D22), - ]) - D_new[:, -tmp.shape[1]:] += tmp + B_new[:, -tmp.shape[1] :] += tmp + + C_new = np.vstack( + [ + self.D11 @ X_11, + self.D21 @ X_11, + other.D21 @ X_21, + ] + ) + np.vstack( + [ + np.hstack([self.C1, np.zeros((self.C1.shape[0], other.C1.shape[1]))]), + block_diag(self.C2, other.C2), + ] + ) + + D_new = np.vstack( + [ + self.D11 @ X_12, + self.D21 @ X_12, + other.D21 @ X_22, + ] + ) + tmp = np.vstack( + [ + np.hstack( + [self.D12, np.zeros((self.D12.shape[0], other.D12.shape[1]))] + ), + block_diag(self.D22, other.D22), + ] + ) + D_new[:, -tmp.shape[1] :] += tmp P_new = StateSpace(A_new, B_new, C_new, D_new) return PartitionedStateSpace(P_new, other.nu1, self.ny1) - + def __str__(self): s = "PartitionedStateSpace\n" s += "A = \n" @@ -414,17 +451,16 @@ def vcat_pss(*systems: list[PartitionedStateSpace]) -> PartitionedStateSpace: If the systems do not have the same number of inputs. """ - if not all(isinstance(pss, PartitionedStateSpace) for pss in systems): raise TypeError("All arguments must be PartitionedStateSpace objects") - # Not used, to be checked nu1 = systems[0].nu1 - ny1 = sum(space.ny1 for space in systems) if not (all(space.nu1 == nu1 for space in systems)): - raise ValueError("All PartitionedStateSpace objects must have the same input dimension") - + raise ValueError( + "All PartitionedStateSpace objects must have the same input dimension" + ) + A = block_diag(*[space.A for space in systems]) B1 = np.vstack([space.B1 for space in systems]) B2 = block_diag(*[space.B2 for space in systems]) @@ -461,11 +497,12 @@ def hcat_pss(*systems: list[PartitionedStateSpace]) -> PartitionedStateSpace: if not all(isinstance(pss, PartitionedStateSpace) for pss in systems): raise TypeError("All arguments must be PartitionedStateSpace objects") - nu1 = sum(space.nu1 for space in systems) ny1 = systems[0].ny1 if not (all(space.ny1 == ny1 for space in systems)): - raise ValueError("All PartitionedStateSpace objects must have the same output dimension") - + raise ValueError( + "All PartitionedStateSpace objects must have the same output dimension" + ) + A = block_diag(*[space.A for space in systems]) B1 = block_diag(*[space.B1 for space in systems]) B2 = block_diag(*[space.B2 for space in systems]) @@ -477,5 +514,3 @@ def hcat_pss(*systems: list[PartitionedStateSpace]) -> PartitionedStateSpace: D22 = block_diag(*[space.D22 for space in systems]) return PartitionedStateSpace.from_matrices(A, B1, B2, C1, C2, D11, D12, D21, D22) - - diff --git a/control/tests/dde_test.py b/control/tests/dde_test.py index 3f75c0d4a..a9aa55ea6 100644 --- a/control/tests/dde_test.py +++ b/control/tests/dde_test.py @@ -6,31 +6,37 @@ from control.delaylti import delay, exp, mimo_delay from control.julia.utils import julia_json -s = tf('s') +s = tf("s") + @pytest.fixture def simple_siso_tf(): return tf([1], [1, 1]) + @pytest.fixture def delay_siso_tf(): P_tf = 1 / (s + 1) D = delay(1.5) return P_tf * D + @pytest.fixture def wood_berry(): # Construct a 2x2 MIMO system with delays - G_wb = mimo_delay([ - [12.8 / (16.7 * s + 1) * exp(-s), -18.9 / (21.0 * s + 1) * exp(-3 * s)], - [6.6 / (10.9 * s + 1) * exp(-7 * s), -19.4 / (14.4 * s + 1) * exp(-3 * s)] - ]) + G_wb = mimo_delay( + [ + [12.8 / (16.7 * s + 1) * exp(-s), -18.9 / (21.0 * s + 1) * exp(-3 * s)], + [6.6 / (10.9 * s + 1) * exp(-7 * s), -19.4 / (14.4 * s + 1) * exp(-3 * s)], + ] + ) return G_wb class TestTimeResp: def test_siso_delayed_step_response(self, delay_siso_tf, simple_siso_tf): from control.timeresp import step_response + timepts = np.linspace(0, 10, 1001) step = step_response(simple_siso_tf, timepts=timepts) delay_step = step_response(delay_siso_tf, timepts=timepts) @@ -49,6 +55,7 @@ def test_siso_delayed_step_response(self, delay_siso_tf, simple_siso_tf): def test_siso_delayed_step_response_mos(self, delay_siso_tf, simple_siso_tf): from control.timeresp import step_response + timepts = np.linspace(0, 10, 1001) step = step_response(simple_siso_tf, timepts=timepts) delay_step = step_response(delay_siso_tf, timepts=timepts) @@ -70,6 +77,7 @@ def test_siso_delayed_step_response_mos(self, delay_siso_tf, simple_siso_tf): def test_mimo_step_response(self, wood_berry, plot=False): from control.timeresp import step_response import matplotlib.pyplot as plt + timepts = np.linspace(0, 100, 1001) step = step_response(wood_berry, timepts=timepts) print(step.y[0].shape) @@ -77,23 +85,51 @@ def test_mimo_step_response(self, wood_berry, plot=False): plot = True if plot: plt.figure() - plt.plot(step.y[0][0] - julia_json["TestTimeResp"]["test_mimo_step_response"]["y11"]) - plt.plot(step.y[1][0] - julia_json["TestTimeResp"]["test_mimo_step_response"]["y21"]) - plt.plot(step.y[0][1] - julia_json["TestTimeResp"]["test_mimo_step_response"]["y12"]) - plt.plot(step.y[1][1] - julia_json["TestTimeResp"]["test_mimo_step_response"]["y22"]) + plt.plot( + step.y[0][0] + - julia_json["TestTimeResp"]["test_mimo_step_response"]["y11"] + ) + plt.plot( + step.y[1][0] + - julia_json["TestTimeResp"]["test_mimo_step_response"]["y21"] + ) + plt.plot( + step.y[0][1] + - julia_json["TestTimeResp"]["test_mimo_step_response"]["y12"] + ) + plt.plot( + step.y[1][1] + - julia_json["TestTimeResp"]["test_mimo_step_response"]["y22"] + ) plt.title("Step response") plt.show() # Precision is currently between 1e-5 and 1e-6 compared to julia solver for mimo - assert np.allclose(step.y[0][0], julia_json["TestTimeResp"]["test_mimo_step_response"]["y11"], atol=1e-5) - assert np.allclose(step.y[0][1], julia_json["TestTimeResp"]["test_mimo_step_response"]["y12"], atol=1e-5) - assert np.allclose(step.y[1][1], julia_json["TestTimeResp"]["test_mimo_step_response"]["y22"], atol=1e-5) - assert np.allclose(step.y[1][0], julia_json["TestTimeResp"]["test_mimo_step_response"]["y21"], atol=1e-5) - + assert np.allclose( + step.y[0][0], + julia_json["TestTimeResp"]["test_mimo_step_response"]["y11"], + atol=1e-5, + ) + assert np.allclose( + step.y[0][1], + julia_json["TestTimeResp"]["test_mimo_step_response"]["y12"], + atol=1e-5, + ) + assert np.allclose( + step.y[1][1], + julia_json["TestTimeResp"]["test_mimo_step_response"]["y22"], + atol=1e-5, + ) + assert np.allclose( + step.y[1][0], + julia_json["TestTimeResp"]["test_mimo_step_response"]["y21"], + atol=1e-5, + ) + def test_forced_response(self, delay_siso_tf, simple_siso_tf, plot=False): from control.timeresp import forced_response - timepts = np.linspace(0, 10, 1001) + timepts = np.linspace(0, 10, 1001) inputs = np.sin(timepts) resp = forced_response(simple_siso_tf, timepts=timepts, inputs=inputs) delay_resp = forced_response(delay_siso_tf, timepts=timepts, inputs=inputs) @@ -105,7 +141,7 @@ def test_forced_response(self, delay_siso_tf, simple_siso_tf, plot=False): count += 1 # Optionally, inspect the plot: - #plot = True + # plot = True if plot: plt.figure() plt.plot(resp.t, inputs, label="input") @@ -123,15 +159,24 @@ def test_forced_response(self, delay_siso_tf, simple_siso_tf, plot=False): def test_mimo_forced_response(self, wood_berry, plot=False): from control.timeresp import forced_response + timepts = np.linspace(0, 100, 10001) inputs = np.array([np.sin(timepts), np.cos(timepts)]) resp = forced_response(wood_berry, timepts=timepts, inputs=inputs) - resp_wb_11 = forced_response(12.8 / (16.7 * s + 1), timepts=timepts, inputs=inputs[0]) - resp_wb_12 = forced_response(-18.9 / (21.0 * s + 1), timepts=timepts, inputs=inputs[1]) - resp_wb_21 = forced_response(6.6 / (10.9 * s + 1), timepts=timepts, inputs=inputs[0]) - resp_wb_22 = forced_response(-19.4 / (14.4 * s + 1), timepts=timepts, inputs=inputs[1]) - + resp_wb_11 = forced_response( + 12.8 / (16.7 * s + 1), timepts=timepts, inputs=inputs[0] + ) + resp_wb_12 = forced_response( + -18.9 / (21.0 * s + 1), timepts=timepts, inputs=inputs[1] + ) + resp_wb_21 = forced_response( + 6.6 / (10.9 * s + 1), timepts=timepts, inputs=inputs[0] + ) + resp_wb_22 = forced_response( + -19.4 / (14.4 * s + 1), timepts=timepts, inputs=inputs[1] + ) + hand_delayed_resp_y1 = np.zeros_like(resp.y[0]) hand_delayed_resp_y2 = np.zeros_like(resp.y[1]) count11 = 0 @@ -150,8 +195,8 @@ def test_mimo_forced_response(self, wood_berry, plot=False): if t >= 7: hand_delayed_resp_y2[i] += resp_wb_21.y[0][count21] count21 += 1 - #plot = True - if plot: + # plot = True + if plot: plt.figure() plt.plot(resp.t, resp.y[0] - hand_delayed_resp_y1, label="y1 - hand y1") plt.plot(resp.t, resp.y[1] - hand_delayed_resp_y2, label="y2 - hand y2") @@ -161,4 +206,3 @@ def test_mimo_forced_response(self, wood_berry, plot=False): assert np.allclose(resp.y[0], hand_delayed_resp_y1, atol=1e-5) assert np.allclose(resp.y[1], hand_delayed_resp_y2, atol=1e-5) - diff --git a/control/tests/delay_lti_test.py b/control/tests/delay_lti_test.py index 723c15212..0f2404e44 100644 --- a/control/tests/delay_lti_test.py +++ b/control/tests/delay_lti_test.py @@ -1,44 +1,47 @@ import numpy as np import pytest -import matplotlib.pyplot as plt -from dataclasses import dataclass -from control.delaylti import ( - delay, tf2dlti, exp, hcat, vcat, mimo_delay, ss2dlti -) +from control.delaylti import delay, tf2dlti, exp, hcat, vcat, mimo_delay, ss2dlti from control.statesp import ss from control.xferfcn import tf from control.julia.utils import julia_json, assert_delayLTI -s = tf('s') +s = tf("s") + @pytest.fixture def simple_siso_tf(): return tf([1], [1, 1]) + @pytest.fixture def tf_one(): return tf([1], [1]) + @pytest.fixture def delay_siso_tf(): P_tf = 1 / (s + 1) D = delay(1.5) return P_tf * D + @pytest.fixture def delay_siso_tf2(): P_tf = 3 / (2 * s + 5) D = delay(0.5) return P_tf * D + @pytest.fixture def wood_berry(): # Construct a 2x2 MIMO system with delays - G_wb = mimo_delay([ - [12.8 / (16.7 * s + 1) * exp(-s), -18.9 / (21.0 * s + 1) * exp(-3 * s)], - [6.6 / (10.9 * s + 1) * exp(-7 * s), -19.4 / (14.4 * s + 1) * exp(-3 * s)] - ]) + G_wb = mimo_delay( + [ + [12.8 / (16.7 * s + 1) * exp(-s), -18.9 / (21.0 * s + 1) * exp(-3 * s)], + [6.6 / (10.9 * s + 1) * exp(-7 * s), -19.4 / (14.4 * s + 1) * exp(-3 * s)], + ] + ) return G_wb @@ -61,7 +64,7 @@ def test_exp_delay(self, tau): G = exp(-tau * s) julia_results = julia_json["TestConstructors"]["test_exp_delay"] assert_delayLTI(G, julia_results[str(tau)]) - + @pytest.mark.parametrize("tau", [1, 1.5, 10]) def test_two_ways_delay(self, tau): delay_exp = exp(-tau * s) @@ -69,17 +72,21 @@ def test_two_ways_delay(self, tau): assert delay_exp == delay_pure def test_siso_delay(self, delay_siso_tf): - assert_delayLTI(delay_siso_tf, julia_json["TestConstructors"]["test_siso_delay"]) + assert_delayLTI( + delay_siso_tf, julia_json["TestConstructors"]["test_siso_delay"] + ) def test_build_wood_berry(self, wood_berry): - assert_delayLTI(wood_berry, julia_json["TestConstructors"]["test_build_wood_berry"]) + assert_delayLTI( + wood_berry, julia_json["TestConstructors"]["test_build_wood_berry"] + ) class TestOperators: def test_siso_add(self, delay_siso_tf, delay_siso_tf2): G = delay_siso_tf + delay_siso_tf2 assert_delayLTI(G, julia_json["TestOperators"]["test_siso_add"]) - + def test_siso_add_constant(self, delay_siso_tf): G = delay_siso_tf + 2.5 assert_delayLTI(G, julia_json["TestOperators"]["test_siso_add_constant"]) @@ -87,23 +94,23 @@ def test_siso_add_constant(self, delay_siso_tf): def test_siso_sub(self, delay_siso_tf, delay_siso_tf2): G = delay_siso_tf - delay_siso_tf2 assert_delayLTI(G, julia_json["TestOperators"]["test_siso_sub"]) - + def test_siso_sub_constant(self, delay_siso_tf): G = delay_siso_tf - 2.5 assert_delayLTI(G, julia_json["TestOperators"]["test_siso_sub_constant"]) - + def test_siso_mul(self, delay_siso_tf, delay_siso_tf2): G = delay_siso_tf * delay_siso_tf2 assert_delayLTI(G, julia_json["TestOperators"]["test_siso_mul"]) def test_siso_mul_constant(self, delay_siso_tf): - G = delay_siso_tf * 2. + G = delay_siso_tf * 2.0 assert_delayLTI(G, julia_json["TestOperators"]["test_siso_mul_constant"]) def test_siso_rmul_constant(self, delay_siso_tf): - G = 2. * delay_siso_tf + G = 2.0 * delay_siso_tf assert_delayLTI(G, julia_json["TestOperators"]["test_siso_rmul_constant"]) - + def test_mimo_add(self, wood_berry): G = wood_berry + wood_berry assert_delayLTI(G, julia_json["TestOperators"]["test_mimo_add"]) @@ -122,7 +129,6 @@ def test_mimo_mul_constant(self, wood_berry): class TestDelayLtiMethods: - @pytest.mark.parametrize("key", ["empty", "tf_one", "delay_siso_tf"]) def test_feedback(self, request, key, delay_siso_tf): G = delay_siso_tf @@ -140,26 +146,58 @@ def test_mimo_feedback(self, wood_berry): def test_siso_freq_resp(self, delay_siso_tf): from control.lti import frequency_response + w = np.logspace(-2, 2, 100, base=10) resp = frequency_response(delay_siso_tf, w).complex - assert(np.allclose(np.real(resp), julia_json["TestDelayLtiMethods"]["test_siso_freq_resp"]["real"])) - assert(np.allclose(np.imag(resp), julia_json["TestDelayLtiMethods"]["test_siso_freq_resp"]["imag"])) - + assert np.allclose( + np.real(resp), + julia_json["TestDelayLtiMethods"]["test_siso_freq_resp"]["real"], + ) + assert np.allclose( + np.imag(resp), + julia_json["TestDelayLtiMethods"]["test_siso_freq_resp"]["imag"], + ) + def test_tito_freq_response(self, wood_berry): from control.lti import frequency_response + w = np.logspace(-2, 2, 100, base=10) resp = frequency_response(wood_berry, w).complex - assert(np.allclose(np.real(resp[0][0]), julia_json["TestDelayLtiMethods"]["test_tito_freq_response"]["r11"]["real"])) - assert(np.allclose(np.imag(resp[0][0]), julia_json["TestDelayLtiMethods"]["test_tito_freq_response"]["r11"]["imag"])) - - assert(np.allclose(np.real(resp[0][1]), julia_json["TestDelayLtiMethods"]["test_tito_freq_response"]["r12"]["real"])) - assert(np.allclose(np.imag(resp[0][1]), julia_json["TestDelayLtiMethods"]["test_tito_freq_response"]["r12"]["imag"])) - - assert(np.allclose(np.real(resp[1][0]), julia_json["TestDelayLtiMethods"]["test_tito_freq_response"]["r21"]["real"])) - assert(np.allclose(np.imag(resp[1][0]), julia_json["TestDelayLtiMethods"]["test_tito_freq_response"]["r21"]["imag"])) - - assert(np.allclose(np.real(resp[1][1]), julia_json["TestDelayLtiMethods"]["test_tito_freq_response"]["r22"]["real"])) - assert(np.allclose(np.imag(resp[1][1]), julia_json["TestDelayLtiMethods"]["test_tito_freq_response"]["r22"]["imag"])) + assert np.allclose( + np.real(resp[0][0]), + julia_json["TestDelayLtiMethods"]["test_tito_freq_response"]["r11"]["real"], + ) + assert np.allclose( + np.imag(resp[0][0]), + julia_json["TestDelayLtiMethods"]["test_tito_freq_response"]["r11"]["imag"], + ) + + assert np.allclose( + np.real(resp[0][1]), + julia_json["TestDelayLtiMethods"]["test_tito_freq_response"]["r12"]["real"], + ) + assert np.allclose( + np.imag(resp[0][1]), + julia_json["TestDelayLtiMethods"]["test_tito_freq_response"]["r12"]["imag"], + ) + + assert np.allclose( + np.real(resp[1][0]), + julia_json["TestDelayLtiMethods"]["test_tito_freq_response"]["r21"]["real"], + ) + assert np.allclose( + np.imag(resp[1][0]), + julia_json["TestDelayLtiMethods"]["test_tito_freq_response"]["r21"]["imag"], + ) + + assert np.allclose( + np.real(resp[1][1]), + julia_json["TestDelayLtiMethods"]["test_tito_freq_response"]["r22"]["real"], + ) + assert np.allclose( + np.imag(resp[1][1]), + julia_json["TestDelayLtiMethods"]["test_tito_freq_response"]["r22"]["imag"], + ) def test_call(self): sys = tf([1], [1, 1]) @@ -168,10 +206,10 @@ def test_call(self): expected = 1 / (2 * np.pi * 1j + 1) assert np.allclose(freq_resp, expected) - @pytest.mark.parametrize("cat_func, expected_A, expected_tau", [ - (vcat, [[-1, 0], [0, -1]], [1, 2]), - (hcat, [[-1, 0], [0, -1]], [1, 2]) - ]) + @pytest.mark.parametrize( + "cat_func, expected_A, expected_tau", + [(vcat, [[-1, 0], [0, -1]], [1, 2]), (hcat, [[-1, 0], [0, -1]], [1, 2])], + ) def test_cat(self, cat_func, expected_A, expected_tau): # Create two simple delayed state-space systems sys1 = ss([[-1]], [[1]], [[1]], [[0]]) @@ -179,4 +217,4 @@ def test_cat(self, cat_func, expected_A, expected_tau): dlti2 = ss2dlti(sys1) * delay(2) dlti_cat = cat_func(dlti1, dlti2) assert np.allclose(dlti_cat.P.A, np.array(expected_A)) - assert np.allclose(dlti_cat.tau, np.array(expected_tau)) \ No newline at end of file + assert np.allclose(dlti_cat.tau, np.array(expected_tau)) diff --git a/control/tests/partionedssp_test.py b/control/tests/partionedssp_test.py index 6959fb15e..ec5a7c38e 100644 --- a/control/tests/partionedssp_test.py +++ b/control/tests/partionedssp_test.py @@ -101,23 +101,41 @@ def test_from_matrices_invalid_shapes(self): D22 = np.array([[16]]) with pytest.raises(ValueError): - PartitionedStateSpace.from_matrices(A, B1, B2, C1, C2, D11, D12, D21, np.array([[16, 17]])) + PartitionedStateSpace.from_matrices( + A, B1, B2, C1, C2, D11, D12, D21, np.array([[16, 17]]) + ) with pytest.raises(ValueError): - PartitionedStateSpace.from_matrices(A, B1, B2, C1, C2, D11, D12, np.array([[15, 16]]), D22) + PartitionedStateSpace.from_matrices( + A, B1, B2, C1, C2, D11, D12, np.array([[15, 16]]), D22 + ) with pytest.raises(ValueError): - PartitionedStateSpace.from_matrices(A, B1, B2, C1, C2, D11, np.array([[14, 15]]), D21, D22) + PartitionedStateSpace.from_matrices( + A, B1, B2, C1, C2, D11, np.array([[14, 15]]), D21, D22 + ) with pytest.raises(ValueError): - PartitionedStateSpace.from_matrices(A, B1, B2, C1, C2, np.array([[13, 14]]), D12, D21, D22) + PartitionedStateSpace.from_matrices( + A, B1, B2, C1, C2, np.array([[13, 14]]), D12, D21, D22 + ) with pytest.raises(ValueError): - PartitionedStateSpace.from_matrices(A, B1, B2, C1, np.array([[11, 12, 13]]), D11, D12, D21, D22) + PartitionedStateSpace.from_matrices( + A, B1, B2, C1, np.array([[11, 12, 13]]), D11, D12, D21, D22 + ) with pytest.raises(ValueError): - PartitionedStateSpace.from_matrices(A, B1, B2, np.array([[9, 10, 11]]), C2, D11, D12, D21, D22) + PartitionedStateSpace.from_matrices( + A, B1, B2, np.array([[9, 10, 11]]), C2, D11, D12, D21, D22 + ) with pytest.raises(ValueError): - PartitionedStateSpace.from_matrices(A, B1, np.array([[6, 7], [8, 9]]), C1, C2, D11, D12, D21, D22) + PartitionedStateSpace.from_matrices( + A, B1, np.array([[6, 7], [8, 9]]), C1, C2, D11, D12, D21, D22 + ) with pytest.raises(ValueError): - PartitionedStateSpace.from_matrices(A, np.array([[5, 6], [7, 8]]), B2, C1, C2, D11, D12, D21, D22) + PartitionedStateSpace.from_matrices( + A, np.array([[5, 6], [7, 8]]), B2, C1, C2, D11, D12, D21, D22 + ) with pytest.raises(ValueError): - PartitionedStateSpace.from_matrices(np.array([[1, 2, 3], [4, 5, 6]]), B1, B2, C1, C2, D11, D12, D21, D22) + PartitionedStateSpace.from_matrices( + np.array([[1, 2, 3], [4, 5, 6]]), B1, B2, C1, C2, D11, D12, D21, D22 + ) def test_add_invalid_type(self): A = np.array([[1, 2], [3, 4]]) @@ -159,7 +177,9 @@ def test_vcat_pss(self): D12_1 = np.array([[14]]) D21_1 = np.array([[15]]) D22_1 = np.array([[16]]) - pss1 = PartitionedStateSpace.from_matrices(A1, B1_1, B1_2, C1_1, C1_2, D11_1, D12_1, D21_1, D22_1) + pss1 = PartitionedStateSpace.from_matrices( + A1, B1_1, B1_2, C1_1, C1_2, D11_1, D12_1, D21_1, D22_1 + ) A2 = np.array([[1, 2], [3, 4]]) B2_1 = np.array([[5], [7]]) @@ -170,19 +190,38 @@ def test_vcat_pss(self): D12_2 = np.array([[14]]) D21_2 = np.array([[15]]) D22_2 = np.array([[16]]) - pss2 = PartitionedStateSpace.from_matrices(A2, B2_1, B2_2, C2_1, C2_2, D11_2, D12_2, D21_2, D22_2) + pss2 = PartitionedStateSpace.from_matrices( + A2, B2_1, B2_2, C2_1, C2_2, D11_2, D12_2, D21_2, D22_2 + ) pss_vcat = vcat_pss(pss1, pss2) - assert np.array_equal(pss_vcat.A, np.block([[A1, np.zeros_like(A1)], [np.zeros_like(A2), A2]])) + assert np.array_equal( + pss_vcat.A, np.block([[A1, np.zeros_like(A1)], [np.zeros_like(A2), A2]]) + ) assert np.array_equal(pss_vcat.B1, np.vstack((B1_1, B2_1))) - assert np.array_equal(pss_vcat.B2, np.block([[B1_2, np.zeros_like(B2_2)], [np.zeros_like(B1_2), B2_2]])) - assert np.array_equal(pss_vcat.C1, np.block([[C1_1, np.zeros_like(C2_1)], [np.zeros_like(C1_1), C2_1]])) - assert np.array_equal(pss_vcat.C2, np.block([[C1_2, np.zeros_like(C2_2)], [np.zeros_like(C1_2), C2_2]])) + assert np.array_equal( + pss_vcat.B2, + np.block([[B1_2, np.zeros_like(B2_2)], [np.zeros_like(B1_2), B2_2]]), + ) + assert np.array_equal( + pss_vcat.C1, + np.block([[C1_1, np.zeros_like(C2_1)], [np.zeros_like(C1_1), C2_1]]), + ) + assert np.array_equal( + pss_vcat.C2, + np.block([[C1_2, np.zeros_like(C2_2)], [np.zeros_like(C1_2), C2_2]]), + ) assert np.array_equal(pss_vcat.D11, np.vstack((D11_1, D11_2))) - assert np.array_equal(pss_vcat.D12, np.block([[D12_1, np.zeros_like(D12_2)], [np.zeros_like(D12_1), D12_2]])) + assert np.array_equal( + pss_vcat.D12, + np.block([[D12_1, np.zeros_like(D12_2)], [np.zeros_like(D12_1), D12_2]]), + ) assert np.array_equal(pss_vcat.D21, np.vstack((D21_1, D21_2))) - assert np.array_equal(pss_vcat.D22, np.block([[D22_1, np.zeros_like(D22_2)], [np.zeros_like(D22_1), D22_2]])) + assert np.array_equal( + pss_vcat.D22, + np.block([[D22_1, np.zeros_like(D22_2)], [np.zeros_like(D22_1), D22_2]]), + ) assert pss_vcat.nu1 == 1 assert pss_vcat.ny1 == 2 assert pss_vcat.nu2 == 2 @@ -211,7 +250,9 @@ def test_vcat_pss_invalid_input_dimension(self): D12_1 = np.array([[14]]) D21_1 = np.array([[15]]) D22_1 = np.array([[16]]) - pss1 = PartitionedStateSpace.from_matrices(A1, B1_1, B1_2, C1_1, C1_2, D11_1, D12_1, D21_1, D22_1) + pss1 = PartitionedStateSpace.from_matrices( + A1, B1_1, B1_2, C1_1, C1_2, D11_1, D12_1, D21_1, D22_1 + ) A2 = np.array([[1, 2], [3, 4]]) B2_1 = np.array([[5, 6], [7, 8]]) @@ -222,7 +263,9 @@ def test_vcat_pss_invalid_input_dimension(self): D12_2 = np.array([[14, 15]]) D21_2 = np.array([[15, 16]]) D22_2 = np.array([[16, 17]]) - pss2 = PartitionedStateSpace.from_matrices(A2, B2_1, B2_2, C2_1, C2_2, D11_2, D12_2, D21_2, D22_2) + pss2 = PartitionedStateSpace.from_matrices( + A2, B2_1, B2_2, C2_1, C2_2, D11_2, D12_2, D21_2, D22_2 + ) with pytest.raises(ValueError): vcat_pss(pss1, pss2) @@ -237,7 +280,9 @@ def test_hcat_pss(self): D12_1 = np.array([[14]]) D21_1 = np.array([[15]]) D22_1 = np.array([[16]]) - pss1 = PartitionedStateSpace.from_matrices(A1, B1_1, B1_2, C1_1, C1_2, D11_1, D12_1, D21_1, D22_1) + pss1 = PartitionedStateSpace.from_matrices( + A1, B1_1, B1_2, C1_1, C1_2, D11_1, D12_1, D21_1, D22_1 + ) A2 = np.array([[1, 2], [3, 4]]) B2_1 = np.array([[5], [7]]) @@ -248,19 +293,38 @@ def test_hcat_pss(self): D12_2 = np.array([[14]]) D21_2 = np.array([[15]]) D22_2 = np.array([[16]]) - pss2 = PartitionedStateSpace.from_matrices(A2, B2_1, B2_2, C2_1, C2_2, D11_2, D12_2, D21_2, D22_2) + pss2 = PartitionedStateSpace.from_matrices( + A2, B2_1, B2_2, C2_1, C2_2, D11_2, D12_2, D21_2, D22_2 + ) pss_hcat = hcat_pss(pss1, pss2) - assert np.array_equal(pss_hcat.A, np.block([[A1, np.zeros_like(A1)], [np.zeros_like(A2), A2]])) - assert np.array_equal(pss_hcat.B1, np.block([[B1_1, np.zeros_like(B2_1)], [np.zeros_like(B1_1), B2_1]])) - assert np.array_equal(pss_hcat.B2, np.block([[B1_2, np.zeros_like(B2_2)], [np.zeros_like(B1_2), B2_2]])) + assert np.array_equal( + pss_hcat.A, np.block([[A1, np.zeros_like(A1)], [np.zeros_like(A2), A2]]) + ) + assert np.array_equal( + pss_hcat.B1, + np.block([[B1_1, np.zeros_like(B2_1)], [np.zeros_like(B1_1), B2_1]]), + ) + assert np.array_equal( + pss_hcat.B2, + np.block([[B1_2, np.zeros_like(B2_2)], [np.zeros_like(B1_2), B2_2]]), + ) assert np.array_equal(pss_hcat.C1, np.hstack((C1_1, C2_1))) - assert np.array_equal(pss_hcat.C2, np.block([[C1_2, np.zeros_like(C2_2)], [np.zeros_like(C1_2), C2_2]])) + assert np.array_equal( + pss_hcat.C2, + np.block([[C1_2, np.zeros_like(C2_2)], [np.zeros_like(C1_2), C2_2]]), + ) assert np.array_equal(pss_hcat.D11, np.hstack((D11_1, D11_2))) assert np.array_equal(pss_hcat.D12, np.hstack((D12_1, D12_2))) - assert np.array_equal(pss_hcat.D21, np.block([[D21_1, np.zeros_like(D21_2)], [np.zeros_like(D21_1), D21_2]])) - assert np.array_equal(pss_hcat.D22, np.block([[D22_1, np.zeros_like(D22_2)], [np.zeros_like(D22_1), D22_2]])) + assert np.array_equal( + pss_hcat.D21, + np.block([[D21_1, np.zeros_like(D21_2)], [np.zeros_like(D21_1), D21_2]]), + ) + assert np.array_equal( + pss_hcat.D22, + np.block([[D22_1, np.zeros_like(D22_2)], [np.zeros_like(D22_1), D22_2]]), + ) assert pss_hcat.nu1 == 2 assert pss_hcat.ny1 == 1 assert pss_hcat.nu2 == 2 @@ -289,7 +353,9 @@ def test_hcat_pss_invalid_output_dimension(self): D12_1 = np.array([[14]]) D21_1 = np.array([[15]]) D22_1 = np.array([[16]]) - pss1 = PartitionedStateSpace.from_matrices(A1, B1_1, B1_2, C1_1, C1_2, D11_1, D12_1, D21_1, D22_1) + pss1 = PartitionedStateSpace.from_matrices( + A1, B1_1, B1_2, C1_1, C1_2, D11_1, D12_1, D21_1, D22_1 + ) A2 = np.array([[1, 2], [3, 4]]) B2_1 = np.array([[5], [7]]) @@ -300,8 +366,9 @@ def test_hcat_pss_invalid_output_dimension(self): D12_2 = np.array([[14], [15]]) D21_2 = np.array([[15], [16]]) D22_2 = np.array([[16], [17]]) - pss2 = PartitionedStateSpace.from_matrices(A2, B2_1, B2_2, C2_1, C2_2, D11_2, D12_2, D21_2, D22_2) + pss2 = PartitionedStateSpace.from_matrices( + A2, B2_1, B2_2, C2_1, C2_2, D11_2, D12_2, D21_2, D22_2 + ) with pytest.raises(ValueError): hcat_pss(pss1, pss2) - diff --git a/control/timeresp.py b/control/timeresp.py index a9e711c83..1c24d76a9 100644 --- a/control/timeresp.py +++ b/control/timeresp.py @@ -43,32 +43,37 @@ import scipy as sp from numpy import einsum, maximum, minimum from scipy.linalg import eig, eigvals, matrix_balance, norm -from scipy.integrate import LSODA from . import config -from . config import _process_kwargs, _process_param +from .config import _process_kwargs, _process_param from .exception import pandas_check from .iosys import NamedSignal, isctime, isdtime from .timeplot import time_response_plot from .dde import dde_response -__all__ = ['forced_response', 'step_response', 'step_info', - 'initial_response', 'impulse_response', 'TimeResponseData', - 'TimeResponseList'] +__all__ = [ + "forced_response", + "step_response", + "step_info", + "initial_response", + "impulse_response", + "TimeResponseData", + "TimeResponseList", +] # Dictionary of aliases for time response commands _timeresp_aliases = { # param: ([alias, ...], [legacy, ...]) - 'timepts': (['T'], []), - 'inputs': (['U'], ['u']), - 'outputs': (['Y'], ['y']), - 'initial_state': (['X0'], ['x0']), - 'final_output': (['yfinal'], []), - 'return_states': (['return_x'], []), - 'evaluation_times': (['t_eval'], []), - 'timepts_num': (['T_num'], []), - 'input_indices': (['input'], []), - 'output_indices': (['output'], []), + "timepts": (["T"], []), + "inputs": (["U"], ["u"]), + "outputs": (["Y"], ["y"]), + "initial_state": (["X0"], ["x0"]), + "final_output": (["yfinal"], []), + "return_states": (["return_x"], []), + "evaluation_times": (["t_eval"], []), + "timepts_num": (["T_num"], []), + "input_indices": (["input"], []), + "output_indices": (["output"], []), } @@ -252,6 +257,7 @@ class TimeResponseData: See `TimeResponseData.__call__` for more information. """ + # # Class attributes # @@ -280,12 +286,27 @@ class TimeResponseData: squeeze = None def __init__( - self, time, outputs, states=None, inputs=None, issiso=None, - output_labels=None, state_labels=None, input_labels=None, - title=None, transpose=False, return_x=False, squeeze=None, - multi_trace=False, trace_labels=None, trace_types=None, - plot_inputs=True, sysname=None, params=None, success=True, - message=None + self, + time, + outputs, + states=None, + inputs=None, + issiso=None, + output_labels=None, + state_labels=None, + input_labels=None, + title=None, + transpose=False, + return_x=False, + squeeze=None, + multi_trace=False, + trace_labels=None, + trace_types=None, + plot_inputs=True, + sysname=None, + params=None, + success=True, + message=None, ): """Create an input/output time response object. @@ -338,8 +359,7 @@ def __init__( raise ValueError("Output vector is the wrong shape") # Check and store labels, if present - self.output_labels = _process_labels( - output_labels, "output", self.noutputs) + self.output_labels = _process_labels(output_labels, "output", self.noutputs) # Make sure time dimension of output is the right length if self.t.shape[-1] != self.y.shape[-1]: @@ -359,9 +379,12 @@ def __init__( self.nstates = self.x.shape[0] # Make sure the shape is OK - if multi_trace and \ - (self.x.ndim != 3 or self.x.shape[1] != self.ntraces) or \ - not multi_trace and self.x.ndim != 2: + if ( + multi_trace + and (self.x.ndim != 3 or self.x.shape[1] != self.ntraces) + or not multi_trace + and self.x.ndim != 2 + ): raise ValueError("State vector is the wrong shape") # Make sure time dimension of state is the right length @@ -369,8 +392,7 @@ def __init__( raise ValueError("State vector does not match time vector") # Check and store labels, if present - self.state_labels = _process_labels( - state_labels, "state", self.nstates) + self.state_labels = _process_labels(state_labels, "state", self.nstates) # # Input vector (optional) @@ -388,16 +410,13 @@ def __init__( self.plot_inputs = plot_inputs # Make sure the shape is OK and figure out the number of inputs - if multi_trace and self.u.ndim == 3 and \ - self.u.shape[1] == self.ntraces: + if multi_trace and self.u.ndim == 3 and self.u.shape[1] == self.ntraces: self.ninputs = self.u.shape[0] - elif multi_trace and self.u.ndim == 2 and \ - self.u.shape[0] == self.ntraces: + elif multi_trace and self.u.ndim == 2 and self.u.shape[0] == self.ntraces: self.ninputs = 1 - elif not multi_trace and self.u.ndim == 2 and \ - self.ntraces == 0: + elif not multi_trace and self.u.ndim == 2 and self.ntraces == 0: self.ninputs = self.u.shape[0] elif not multi_trace and self.u.ndim == 1: @@ -414,19 +433,17 @@ def __init__( raise ValueError("Input vector does not match time vector") # Check and store labels, if present - self.input_labels = _process_labels( - input_labels, "input", self.ninputs) + self.input_labels = _process_labels(input_labels, "input", self.ninputs) # Check and store trace labels, if present - self.trace_labels = _process_labels( - trace_labels, "trace", self.ntraces) + self.trace_labels = _process_labels(trace_labels, "trace", self.ntraces) self.trace_types = trace_types # Figure out if the system is SISO if issiso is None: # Figure out based on the data if self.ninputs == 1: - issiso = (self.noutputs == 1) + issiso = self.noutputs == 1 elif self.ninputs > 1: issiso = False else: @@ -489,25 +506,28 @@ def __call__(self, **kwargs): response = copy(self) # Update any keywords that we were passed - response.transpose = kwargs.pop('transpose', self.transpose) - response.squeeze = kwargs.pop('squeeze', self.squeeze) - response.return_x = kwargs.pop('return_x', self.return_x) + response.transpose = kwargs.pop("transpose", self.transpose) + response.squeeze = kwargs.pop("squeeze", self.squeeze) + response.return_x = kwargs.pop("return_x", self.return_x) # Check for new labels - input_labels = kwargs.pop('input_labels', None) + input_labels = kwargs.pop("input_labels", None) if input_labels is not None: response.input_labels = _process_labels( - input_labels, "input", response.ninputs) + input_labels, "input", response.ninputs + ) - output_labels = kwargs.pop('output_labels', None) + output_labels = kwargs.pop("output_labels", None) if output_labels is not None: response.output_labels = _process_labels( - output_labels, "output", response.noutputs) + output_labels, "output", response.noutputs + ) - state_labels = kwargs.pop('state_labels', None) + state_labels = kwargs.pop("state_labels", None) if state_labels is not None: response.state_labels = _process_labels( - state_labels, "state", response.nstates) + state_labels, "state", response.nstates + ) # Make sure there were no extraneous keywords if kwargs: @@ -517,7 +537,6 @@ def __call__(self, **kwargs): @property def time(self): - """Time vector. Time values of the input/output response(s). @@ -544,8 +563,8 @@ def outputs(self): """ # TODO: move to __init__ to avoid recomputing each time? y = _process_time_response( - self.y, issiso=self.issiso, - transpose=self.transpose, squeeze=self.squeeze) + self.y, issiso=self.issiso, transpose=self.transpose, squeeze=self.squeeze + ) return NamedSignal(y, self.output_labels, self.input_labels) # Getter for states (implements squeeze processing) @@ -568,12 +587,16 @@ def states(self): """ # TODO: move to __init__ to avoid recomputing each time? x = _process_time_response( - self.x, transpose=self.transpose, - squeeze=self.squeeze, issiso=False) + self.x, transpose=self.transpose, squeeze=self.squeeze, issiso=False + ) # Special processing for SISO case: always retain state index - if self.issiso and self.ntraces == 1 and x.ndim == 3 and \ - self.squeeze is not False: + if ( + self.issiso + and self.ntraces == 1 + and x.ndim == 3 + and self.squeeze is not False + ): # Single-input, single-output system with single trace x = x[:, 0, :] @@ -608,8 +631,8 @@ def inputs(self): return None u = _process_time_response( - self.u, issiso=self.issiso, - transpose=self.transpose, squeeze=self.squeeze) + self.u, issiso=self.issiso, transpose=self.transpose, squeeze=self.squeeze + ) return NamedSignal(u, self.input_labels, self.input_labels) # Getter for legacy state (implements non-standard squeeze processing) @@ -632,8 +655,12 @@ def _legacy_states(self): if self.x is None: return None - elif self.ninputs == 1 and self.noutputs == 1 and \ - self.ntraces == 1 and self.x.ndim == 3: + elif ( + self.ninputs == 1 + and self.noutputs == 1 + and self.ntraces == 1 + and self.x.ndim == 3 + ): # Single-input, single-output system with single trace x = self.x[:, 0, :] @@ -688,23 +715,32 @@ def to_pandas(self): import pandas # Create a dict for setting up the data frame - data = {'time': np.tile( - self.time, self.ntraces if self.ntraces > 0 else 1)} + data = {"time": np.tile(self.time, self.ntraces if self.ntraces > 0 else 1)} if self.ntraces > 0: - data['trace'] = np.hstack([ - np.full(self.time.size, label) for label in self.trace_labels]) + data["trace"] = np.hstack( + [np.full(self.time.size, label) for label in self.trace_labels] + ) if self.ninputs > 0: data.update( - {name: self.u[i].reshape(-1) - for i, name in enumerate(self.input_labels)}) + { + name: self.u[i].reshape(-1) + for i, name in enumerate(self.input_labels) + } + ) if self.noutputs > 0: data.update( - {name: self.y[i].reshape(-1) - for i, name in enumerate(self.output_labels)}) + { + name: self.y[i].reshape(-1) + for i, name in enumerate(self.output_labels) + } + ) if self.nstates > 0: data.update( - {name: self.x[i].reshape(-1) - for i, name in enumerate(self.state_labels)}) + { + name: self.x[i].reshape(-1) + for i, name in enumerate(self.state_labels) + } + ) return pandas.DataFrame(data) @@ -727,6 +763,7 @@ def plot(self, *args, **kwargs): # objects. # + class TimeResponseList(list): """List of TimeResponseData objects with plotting capability. @@ -735,6 +772,7 @@ class TimeResponseList(list): plots the individual `TimeResponseData` objects. """ + def plot(self, *args, **kwargs): """Plot a list of time responses. @@ -744,10 +782,9 @@ def plot(self, *args, **kwargs): from .ctrlplot import ControlPlot lines = None - label = kwargs.pop('label', [None] * len(self)) + label = kwargs.pop("label", [None] * len(self)) for i, response in enumerate(self): - cplt = TimeResponseData.plot( - response, *args, label=label[i], **kwargs) + cplt = TimeResponseData.plot(response, *args, label=label[i], **kwargs) if lines is None: lines = cplt.lines else: @@ -810,9 +847,9 @@ def _process_labels(labels, signal, length): # Helper function for checking array_like parameters -def _check_convert_array(in_obj, legal_shapes, err_msg_start, squeeze=False, - transpose=False): - +def _check_convert_array( + in_obj, legal_shapes, err_msg_start, squeeze=False, transpose=False +): """Helper function for checking array_like parameters. * Check type and shape of `in_obj`. @@ -862,14 +899,17 @@ def _check_convert_array(in_obj, legal_shapes, err_msg_start, squeeze=False, """ # convert nearly everything to an array. out_array = np.asarray(in_obj) - if (transpose): + if transpose: out_array = np.transpose(out_array) # Test element data type, elements must be numbers legal_kinds = set(("i", "f", "c")) # integer, float, complex if out_array.dtype.kind not in legal_kinds: - err_msg = "Wrong element data type: '{d}'. Array elements " \ - "must be numbers.".format(d=str(out_array.dtype)) + err_msg = ( + "Wrong element data type: '{d}'. Array elements must be numbers.".format( + d=str(out_array.dtype) + ) + ) raise TypeError(err_msg_start + err_msg) # If array is zero dimensional (in_obj is scalar): @@ -880,7 +920,7 @@ def _check_convert_array(in_obj, legal_shapes, err_msg_start, squeeze=False, if "any" in s_legal: continue the_val = out_array[()] - out_array = np.empty(s_legal, 'd') + out_array = np.empty(s_legal, "d") out_array.fill(the_val) break @@ -904,8 +944,9 @@ def shape_matches(s_legal, s_actual): break else: legal_shape_str = " or ".join([str(s) for s in legal_shapes]) - err_msg = "Wrong shape (rows, columns): {a}. Expected: {e}." \ - .format(e=legal_shape_str, a=str(out_array.shape)) + err_msg = "Wrong shape (rows, columns): {a}. Expected: {e}.".format( + e=legal_shape_str, a=str(out_array.shape) + ) raise ValueError(err_msg_start + err_msg) # Convert shape @@ -920,10 +961,19 @@ def shape_matches(s_legal, s_actual): # Forced response of a linear system def forced_response( - sysdata, timepts=None, inputs=0., initial_state=0., transpose=False, - params=None, interpolate=False, return_states=None, squeeze=None, - **kwargs): + sysdata, + timepts=None, + inputs=0.0, + initial_state=0.0, + transpose=False, + params=None, + interpolate=False, + return_states=None, + squeeze=None, + **kwargs, +): from .delaylti import DelayLTI + """Compute the output of a linear system given the input. As a convenience for parameters `U`, `X0`: Numbers (scalars) are @@ -1042,12 +1092,14 @@ def forced_response( # Process keyword arguments _process_kwargs(kwargs, _timeresp_aliases) - T = _process_param('timepts', timepts, kwargs, _timeresp_aliases) - U = _process_param('inputs', inputs, kwargs, _timeresp_aliases, sigval=0.) + T = _process_param("timepts", timepts, kwargs, _timeresp_aliases) + U = _process_param("inputs", inputs, kwargs, _timeresp_aliases, sigval=0.0) X0 = _process_param( - 'initial_state', initial_state, kwargs, _timeresp_aliases, sigval=0.) + "initial_state", initial_state, kwargs, _timeresp_aliases, sigval=0.0 + ) return_x = _process_param( - 'return_states', return_states, kwargs, _timeresp_aliases, sigval=None) + "return_states", return_states, kwargs, _timeresp_aliases, sigval=None + ) if kwargs: raise TypeError("unrecognized keyword(s): ", str(kwargs)) @@ -1056,10 +1108,19 @@ def forced_response( if isinstance(sysdata, (list, tuple)): responses = [] for sys in sysdata: - responses.append(forced_response( - sys, T, inputs=U, initial_state=X0, transpose=transpose, - params=params, interpolate=interpolate, - return_states=return_x, squeeze=squeeze)) + responses.append( + forced_response( + sys, + T, + inputs=U, + initial_state=X0, + transpose=transpose, + params=params, + interpolate=interpolate, + return_states=return_x, + squeeze=squeeze, + ) + ) return TimeResponseList(responses) else: sys = sysdata @@ -1067,42 +1128,62 @@ def forced_response( if not isinstance(sys, (StateSpace, TransferFunction, DelayLTI)): if isinstance(sys, NonlinearIOSystem): if interpolate: - warnings.warn( - "interpolation not supported for nonlinear I/O systems") + warnings.warn("interpolation not supported for nonlinear I/O systems") return input_output_response( - sys, T, U, X0, params=params, transpose=transpose, - return_x=return_x, squeeze=squeeze) + sys, + T, + U, + X0, + params=params, + transpose=transpose, + return_x=return_x, + squeeze=squeeze, + ) else: - raise TypeError('Parameter `sys`: must be a `StateSpace` or' - ' `TransferFunction`)') + raise TypeError( + "Parameter `sys`: must be a `StateSpace` or `TransferFunction`)" + ) # If return_x was not specified, figure out the default if return_x is None: - return_x = config.defaults['forced_response.return_x'] + return_x = config.defaults["forced_response.return_x"] # If return_x is used for TransferFunction, issue a warning if return_x and isinstance(sys, TransferFunction): warnings.warn( "return_x specified for a transfer function system. Internal " - "conversion to state space used; results may meaningless.") + "conversion to state space used; results may meaningless." + ) # If we are passed a transfer function and X0 is non-zero, warn the user if isinstance(sys, TransferFunction) and np.any(X0 != 0): warnings.warn( "Non-zero initial condition given for transfer function system. " "Internal conversion to state space used; may not be consistent " - "with given X0.") + "with given X0." + ) if isinstance(sys, DelayLTI): - # step size must be small enough to ensure accuracy. + # step size must be small enough to ensure accuracy. # Stiff problems may require very small step size or specific dde solver return dde_response( - sysdata, T=timepts, U=inputs, X0=initial_state, params=params, - transpose=transpose, return_x=return_states, squeeze=squeeze) + sysdata, + T=timepts, + U=inputs, + X0=initial_state, + params=params, + transpose=transpose, + return_x=return_states, + squeeze=squeeze, + ) else: sys = _convert_to_statespace(sys) - A, B, C, D = np.asarray(sys.A), np.asarray(sys.B), np.asarray(sys.C), \ - np.asarray(sys.D) + A, B, C, D = ( + np.asarray(sys.A), + np.asarray(sys.B), + np.asarray(sys.C), + np.asarray(sys.D), + ) # d_type = A.dtype n_states = A.shape[0] n_inputs = B.shape[1] @@ -1118,48 +1199,55 @@ def forced_response( # Set and/or check time vector in discrete-time case if isdtime(sys): if T is None: - if U is None or (U.ndim == 0 and U == 0.): - raise ValueError('Parameters `T` and `U` can\'t both be ' - 'zero for discrete-time simulation') + if U is None or (U.ndim == 0 and U == 0.0): + raise ValueError( + "Parameters `T` and `U` can't both be " + "zero for discrete-time simulation" + ) # Set T to equally spaced samples with same length as U if U.ndim == 1: n_steps = U.shape[0] else: n_steps = U.shape[1] - dt = 1. if sys.dt in [True, None] else sys.dt + dt = 1.0 if sys.dt in [True, None] else sys.dt T = np.array(range(n_steps)) * dt else: if U.ndim == 0: U = np.full((n_inputs, T.shape[0]), U) else: if T is None: - raise ValueError('Parameter `T` is mandatory for continuous ' - 'time systems.') + raise ValueError( + "Parameter `T` is mandatory for continuous time systems." + ) # Test if T has shape (n,) or (1, n); - T = _check_convert_array(T, [('any',), (1, 'any')], - 'Parameter `T`: ', squeeze=True, - transpose=transpose) + T = _check_convert_array( + T, + [("any",), (1, "any")], + "Parameter `T`: ", + squeeze=True, + transpose=transpose, + ) - n_steps = T.shape[0] # number of simulation steps + n_steps = T.shape[0] # number of simulation steps # equally spaced also implies strictly monotonic increase, dt = (T[-1] - T[0]) / (n_steps - 1) if not np.allclose(np.diff(T), dt): - raise ValueError("Parameter `T`: time values must be equally " - "spaced.") - + raise ValueError("Parameter `T`: time values must be equally spaced.") + # create X0 if not given, test if X0 has correct shape - X0 = _check_convert_array(X0, [(n_states,), (n_states, 1)], - 'Parameter `X0`: ', squeeze=True) + X0 = _check_convert_array( + X0, [(n_states,), (n_states, 1)], "Parameter `X0`: ", squeeze=True + ) # Test if U has correct shape and type - legal_shapes = [(n_steps,), (1, n_steps)] if n_inputs == 1 else \ - [(n_inputs, n_steps)] - U = _check_convert_array(U, legal_shapes, - 'Parameter `U`: ', squeeze=False, - transpose=transpose) - + legal_shapes = ( + [(n_steps,), (1, n_steps)] if n_inputs == 1 else [(n_inputs, n_steps)] + ) + U = _check_convert_array( + U, legal_shapes, "Parameter `U`: ", squeeze=False, transpose=transpose + ) xout = np.zeros((n_states, n_steps)) xout[:, 0] = X0 @@ -1175,7 +1263,7 @@ def forced_response( # Solve using matrix exponential expAdt = sp.linalg.expm(A * dt) for i in range(1, n_steps): - xout[:, i] = expAdt @ xout[:, i-1] + xout[:, i] = expAdt @ xout[:, i - 1] yout = C @ xout # General algorithm that interpolates U in between output points @@ -1194,23 +1282,30 @@ def forced_response( # [ u(dt) ] = exp [ 0 0 I ] [ u0 ] # [u1 - u0] [ 0 0 0 ] [u1 - u0] - M = np.block([[A * dt, B * dt, np.zeros((n_states, n_inputs))], - [np.zeros((n_inputs, n_states + n_inputs)), - np.identity(n_inputs)], - [np.zeros((n_inputs, n_states + 2 * n_inputs))]]) + M = np.block( + [ + [A * dt, B * dt, np.zeros((n_states, n_inputs))], + [ + np.zeros((n_inputs, n_states + n_inputs)), + np.identity(n_inputs), + ], + [np.zeros((n_inputs, n_states + 2 * n_inputs))], + ] + ) expM = sp.linalg.expm(M) Ad = expM[:n_states, :n_states] - Bd1 = expM[:n_states, n_states+n_inputs:] - Bd0 = expM[:n_states, n_states:n_states + n_inputs] - Bd1 - + Bd1 = expM[:n_states, n_states + n_inputs :] + Bd0 = expM[:n_states, n_states : n_states + n_inputs] - Bd1 + for i in range(1, n_steps): - xout[:, i] = (Ad @ xout[:, i-1] - + Bd0 @ U[:, i-1] + Bd1 @ U[:, i]) + xout[:, i] = Ad @ xout[:, i - 1] + Bd0 @ U[:, i - 1] + Bd1 @ U[:, i] # debug print if i < 10: - print("dxdt = ", (Ad @ xout[:, i-1] - + Bd0 @ U[:, i-1] + Bd1 @ U[:, i])) - + print( + "dxdt = ", + (Ad @ xout[:, i - 1] + Bd0 @ U[:, i - 1] + Bd1 @ U[:, i]), + ) + yout = C @ xout + D @ U tout = T @@ -1230,10 +1325,10 @@ def forced_response( # Now check to make sure it is a multiple (with check against # sys.dt because floating point mod can have small errors - if not (np.isclose(dt % sys.dt, 0) or - np.isclose(dt % sys.dt, sys.dt)): - raise ValueError("Time steps `T` must be multiples of " - "sampling time") + if not (np.isclose(dt % sys.dt, 0) or np.isclose(dt % sys.dt, sys.dt)): + raise ValueError( + "Time steps `T` must be multiples of sampling time" + ) sys_dt = sys.dt # sp.signal.dlsim returns not enough samples if @@ -1246,7 +1341,7 @@ def forced_response( spT[-1] = spT[-1] * (n_steps / (spT[-1] / sys_dt + 1)) else: - sys_dt = dt # For unspecified sampling time, use time incr + sys_dt = dt # For unspecified sampling time, use time incr # Discrete time simulation using signal processing toolbox dsys = (A, B, C, D, sys_dt) @@ -1259,7 +1354,7 @@ def forced_response( if not interpolate: # If dt is different from sys.dt, resample the output inc = int(round(dt / sys_dt)) - tout = T # Return exact list of time steps + tout = T # Return exact list of time steps yout = yout[::inc, :] xout = xout[::inc, :] else: @@ -1271,25 +1366,27 @@ def forced_response( yout = np.transpose(yout) return TimeResponseData( - tout, yout, xout, U, - params=params, + tout, + yout, + xout, + U, + params=params, issiso=sys.issiso(), - output_labels=sys.output_labels, + output_labels=sys.output_labels, input_labels=sys.input_labels, - state_labels=sys.state_labels, - sysname=sys.name, + state_labels=sys.state_labels, + sysname=sys.name, plot_inputs=True, - title="Forced response for " + sys.name, - trace_types=['forced'], - transpose=transpose, - return_x=return_x, - squeeze=squeeze + title="Forced response for " + sys.name, + trace_types=["forced"], + transpose=transpose, + return_x=return_x, + squeeze=squeeze, ) # Process time responses in a uniform way -def _process_time_response( - signal, issiso=False, transpose=None, squeeze=None): +def _process_time_response(signal, issiso=False, transpose=None, squeeze=None): """Process time response signals. This function processes the outputs (or inputs) of time response @@ -1331,19 +1428,19 @@ def _process_time_response( """ # If squeeze was not specified, figure out the default (might remain None) if squeeze is None: - squeeze = config.defaults['control.squeeze_time_response'] + squeeze = config.defaults["control.squeeze_time_response"] # Figure out whether and how to squeeze output data - if squeeze is True: # squeeze all dimensions + if squeeze is True: # squeeze all dimensions signal = np.squeeze(signal) - elif squeeze is False: # squeeze no dimensions + elif squeeze is False: # squeeze no dimensions pass - elif squeeze is None: # squeeze signals if SISO + elif squeeze is None: # squeeze signals if SISO if issiso: if signal.ndim == 3: - signal = signal[0][0] # remove input and output + signal = signal[0][0] # remove input and output else: - signal = signal[0] # remove input + signal = signal[0] # remove input else: raise ValueError("Unknown squeeze value") @@ -1357,10 +1454,18 @@ def _process_time_response( def step_response( - sysdata, timepts=None, initial_state=0., input_indices=None, - output_indices=None, timepts_num=None, transpose=False, - return_states=False, squeeze=None, params=None, - **kwargs): + sysdata, + timepts=None, + initial_state=0.0, + input_indices=None, + output_indices=None, + timepts_num=None, + transpose=False, + return_states=False, + squeeze=None, + params=None, + **kwargs, +): # pylint: disable=W0622 """Compute the step response for a linear system. @@ -1448,18 +1553,16 @@ def step_response( # Process keyword arguments _process_kwargs(kwargs, _timeresp_aliases) - T = _process_param('timepts', timepts, kwargs, _timeresp_aliases) + T = _process_param("timepts", timepts, kwargs, _timeresp_aliases) X0 = _process_param( - 'initial_state', initial_state, kwargs, _timeresp_aliases, sigval=0.) - input = _process_param( - 'input_indices', input_indices, kwargs, _timeresp_aliases) - output = _process_param( - 'output_indices', output_indices, kwargs, _timeresp_aliases) + "initial_state", initial_state, kwargs, _timeresp_aliases, sigval=0.0 + ) + input = _process_param("input_indices", input_indices, kwargs, _timeresp_aliases) + output = _process_param("output_indices", output_indices, kwargs, _timeresp_aliases) return_x = _process_param( - 'return_states', return_states, kwargs, _timeresp_aliases, - sigval=False) - T_num = _process_param( - 'timepts_num', timepts_num, kwargs, _timeresp_aliases) + "return_states", return_states, kwargs, _timeresp_aliases, sigval=False + ) + T_num = _process_param("timepts_num", timepts_num, kwargs, _timeresp_aliases) if kwargs: raise TypeError("unrecognized keyword(s): ", str(kwargs)) @@ -1475,11 +1578,20 @@ def step_response( if isinstance(sysdata, (list, tuple)): responses = [] for sys in sysdata: - responses.append(step_response( - sys, T, initial_state=X0, input_indices=input, - output_indices=output, timepts_num=T_num, - transpose=transpose, return_states=return_x, squeeze=squeeze, - params=params)) + responses.append( + step_response( + sys, + T, + initial_state=X0, + input_indices=input, + output_indices=output, + timepts_num=T_num, + transpose=transpose, + return_states=return_x, + squeeze=squeeze, + params=params, + ) + ) return TimeResponseList(responses) else: sys = sysdata @@ -1489,11 +1601,12 @@ def step_response( warnings.warn( "Non-zero initial condition given for transfer function system. " "Internal conversion to state space used; may not be consistent " - "with given X0.") + "with given X0." + ) # Convert to state space so that we can simulate if isinstance(sys, LTI) and sys.nstates is None: - sys = _convert_to_statespace(sys) + sys = _convert_to_statespace(sys) # Only single input and output are allowed for now if isinstance(input, (list, tuple)): @@ -1526,18 +1639,24 @@ def step_response( # Save a label and type for this plot trace_labels.append(f"From {sys.input_labels[i]}") - trace_types.append('step') + trace_types.append("step") # Create a set of single inputs system for simulation U = np.zeros((sys.ninputs, T.size)) U[i, :] = np.ones_like(T) - #print(U) + # print(U) - response = forced_response(sys, T, U, X0, squeeze=True, params=params,) + response = forced_response( + sys, + T, + U, + X0, + squeeze=True, + params=params, + ) inpidx = i if input is None else 0 - yout[:, inpidx, :] = response.y if output is None \ - else response.y[output] + yout[:, inpidx, :] = response.y if output is None else response.y[output] xout[:, inpidx, :] = response.x uout[:, inpidx, :] = U if input is None else U[i] @@ -1545,24 +1664,40 @@ def step_response( issiso = sys.issiso() or (input is not None and output is not None) # Select only the given input and output, if any - input_labels = sys.input_labels if input is None \ - else sys.input_labels[input] - output_labels = sys.output_labels if output is None \ - else sys.output_labels[output] + input_labels = sys.input_labels if input is None else sys.input_labels[input] + output_labels = sys.output_labels if output is None else sys.output_labels[output] return TimeResponseData( - response.time, yout, xout, uout, issiso=issiso, - output_labels=output_labels, input_labels=input_labels, - state_labels=sys.state_labels, title="Step response for " + sys.name, - transpose=transpose, return_x=return_x, squeeze=squeeze, - sysname=sys.name, params=params, trace_labels=trace_labels, - trace_types=trace_types, plot_inputs=False) + response.time, + yout, + xout, + uout, + issiso=issiso, + output_labels=output_labels, + input_labels=input_labels, + state_labels=sys.state_labels, + title="Step response for " + sys.name, + transpose=transpose, + return_x=return_x, + squeeze=squeeze, + sysname=sys.name, + params=params, + trace_labels=trace_labels, + trace_types=trace_types, + plot_inputs=False, + ) def step_info( - sysdata, timepts=None, timepts_num=None, final_output=None, - params=None, SettlingTimeThreshold=0.02, RiseTimeLimits=(0.1, 0.9), - **kwargs): + sysdata, + timepts=None, + timepts_num=None, + final_output=None, + params=None, + SettlingTimeThreshold=0.02, + RiseTimeLimits=(0.1, 0.9), + **kwargs, +): """Step response characteristics (rise time, settling time, etc). Parameters @@ -1662,18 +1797,17 @@ def step_info( # Process keyword arguments _process_kwargs(kwargs, _timeresp_aliases) - T = _process_param('timepts', timepts, kwargs, _timeresp_aliases) - T_num = _process_param( - 'timepts_num', timepts_num, kwargs, _timeresp_aliases) - yfinal = _process_param( - 'final_output', final_output, kwargs, _timeresp_aliases) + T = _process_param("timepts", timepts, kwargs, _timeresp_aliases) + T_num = _process_param("timepts_num", timepts_num, kwargs, _timeresp_aliases) + yfinal = _process_param("final_output", final_output, kwargs, _timeresp_aliases) if kwargs: raise TypeError("unrecognized keyword(s): ", str(kwargs)) if isinstance(sysdata, (StateSpace, TransferFunction, NonlinearIOSystem)): T, Yout = step_response( - sysdata, T, timepts_num=T_num, squeeze=False, params=params) + sysdata, T, timepts_num=T_num, squeeze=False, params=params + ) if yfinal: InfValues = np.atleast_2d(yfinal) else: @@ -1683,9 +1817,11 @@ def step_info( ninputs = sysdata.ninputs else: # Time series of response data - errmsg = ("`sys` must be a LTI system, or time response data" - " with a shape following the python-control" - " time series data convention.") + errmsg = ( + "`sys` must be a LTI system, or time response data" + " with a shape following the python-control" + " time series data convention." + ) try: Yout = np.array(sysdata, dtype=float) except ValueError: @@ -1698,8 +1834,9 @@ def step_info( else: raise ValueError(errmsg) if T is None or Yout.shape[2] != len(np.squeeze(T)): - raise ValueError("For time response data, a matching time vector" - " must be given") + raise ValueError( + "For time response data, a matching time vector must be given" + ) T = np.squeeze(T) noutputs = Yout.shape[0] ninputs = Yout.shape[1] @@ -1729,17 +1866,19 @@ def step_info( # RiseTime tr_lower_index = np.nonzero( sgnInf * (yout - RiseTimeLimits[0] * InfValue) >= 0 - )[0][0] + )[0][0] tr_upper_index = np.nonzero( sgnInf * (yout - RiseTimeLimits[1] * InfValue) >= 0 - )[0][0] + )[0][0] rise_time = T[tr_upper_index] - T[tr_lower_index] # SettlingTime outside_threshold = np.nonzero( - np.abs(yout/InfValue - 1) >= SettlingTimeThreshold)[0] - settled = 0 if outside_threshold.size == 0 \ - else outside_threshold[-1] + 1 + np.abs(yout / InfValue - 1) >= SettlingTimeThreshold + )[0] + settled = ( + 0 if outside_threshold.size == 0 else outside_threshold[-1] + 1 + ) # MIMO systems can have unsettled channels without infinite # InfValue if settled < len(T): @@ -1752,7 +1891,7 @@ def step_info( y_os = (sgnInf * yout).max() dy_os = np.abs(y_os) - np.abs(InfValue) if dy_os > 0: - overshoot = np.abs(100. * dy_os / InfValue) + overshoot = np.abs(100.0 * dy_os / InfValue) else: overshoot = 0 @@ -1760,7 +1899,7 @@ def step_info( y_us_index = (sgnInf * yout).argmin() y_us = yout[y_us_index] if (sgnInf * y_us) < 0: - undershoot = (-100. * y_us / InfValue) + undershoot = -100.0 * y_us / InfValue else: undershoot = 0 @@ -1773,16 +1912,16 @@ def step_info( steady_state_value = InfValue retij = { - 'RiseTime': float(rise_time), - 'SettlingTime': float(settling_time), - 'SettlingMin': float(settling_min), - 'SettlingMax': float(settling_max), - 'Overshoot': float(overshoot), - 'Undershoot': float(undershoot), - 'Peak': float(peak_value), - 'PeakTime': float(peak_time), - 'SteadyStateValue': float(steady_state_value) - } + "RiseTime": float(rise_time), + "SettlingTime": float(settling_time), + "SettlingMin": float(settling_min), + "SettlingMax": float(settling_max), + "Overshoot": float(overshoot), + "Undershoot": float(undershoot), + "Peak": float(peak_value), + "PeakTime": float(peak_time), + "SteadyStateValue": float(steady_state_value), + } retrow.append(retij) ret.append(retrow) @@ -1791,9 +1930,17 @@ def step_info( def initial_response( - sysdata, timepts=None, initial_state=0, output_indices=None, - timepts_num=None, params=None, transpose=False, return_states=False, - squeeze=None, **kwargs): + sysdata, + timepts=None, + initial_state=0, + output_indices=None, + timepts_num=None, + params=None, + transpose=False, + return_states=False, + squeeze=None, + **kwargs, +): # pylint: disable=W0622 """Compute the initial condition response for a linear system. @@ -1864,16 +2011,15 @@ def initial_response( """ # Process keyword arguments _process_kwargs(kwargs, _timeresp_aliases) - T = _process_param('timepts', timepts, kwargs, _timeresp_aliases) + T = _process_param("timepts", timepts, kwargs, _timeresp_aliases) X0 = _process_param( - 'initial_state', initial_state, kwargs, _timeresp_aliases, sigval=0.) - output = _process_param( - 'output_indices', output_indices, kwargs, _timeresp_aliases) + "initial_state", initial_state, kwargs, _timeresp_aliases, sigval=0.0 + ) + output = _process_param("output_indices", output_indices, kwargs, _timeresp_aliases) return_x = _process_param( - 'return_states', return_states, kwargs, _timeresp_aliases, - sigval=False) - T_num = _process_param( - 'timepts_num', timepts_num, kwargs, _timeresp_aliases) + "return_states", return_states, kwargs, _timeresp_aliases, sigval=False + ) + T_num = _process_param("timepts_num", timepts_num, kwargs, _timeresp_aliases) if kwargs: raise TypeError("unrecognized keyword(s): ", str(kwargs)) @@ -1889,10 +2035,19 @@ def initial_response( if isinstance(sysdata, (list, tuple)): responses = [] for sys in sysdata: - responses.append(initial_response( - sys, T, initial_state=X0, output_indices=output, - timepts_num=T_num, transpose=transpose, - return_states=return_x, squeeze=squeeze, params=params)) + responses.append( + initial_response( + sys, + T, + initial_state=X0, + output_indices=output, + timepts_num=T_num, + transpose=transpose, + return_states=return_x, + squeeze=squeeze, + params=params, + ) + ) return TimeResponseList(responses) else: sys = sysdata @@ -1905,22 +2060,39 @@ def initial_response( # Select only the given output, if any yout = response.y if output is None else response.y[output] - output_labels = sys.output_labels if output is None \ - else sys.output_labels[output] + output_labels = sys.output_labels if output is None else sys.output_labels[output] # Store the response without an input return TimeResponseData( - response.t, yout, response.x, None, params=params, issiso=issiso, - output_labels=output_labels, input_labels=None, - state_labels=sys.state_labels, sysname=sys.name, - title="Initial response for " + sys.name, trace_types=['initial'], - transpose=transpose, return_x=return_x, squeeze=squeeze) + response.t, + yout, + response.x, + None, + params=params, + issiso=issiso, + output_labels=output_labels, + input_labels=None, + state_labels=sys.state_labels, + sysname=sys.name, + title="Initial response for " + sys.name, + trace_types=["initial"], + transpose=transpose, + return_x=return_x, + squeeze=squeeze, + ) def impulse_response( - sysdata, timepts=None, input_indices=None, output_indices=None, - timepts_num=None, transpose=False, return_states=False, squeeze=None, - **kwargs): + sysdata, + timepts=None, + input_indices=None, + output_indices=None, + timepts_num=None, + transpose=False, + return_states=False, + squeeze=None, + **kwargs, +): # pylint: disable=W0622 """Compute the impulse response for a linear system. @@ -1998,16 +2170,13 @@ def impulse_response( # Process keyword arguments _process_kwargs(kwargs, _timeresp_aliases) - T = _process_param('timepts', timepts, kwargs, _timeresp_aliases) - input = _process_param( - 'input_indices', input_indices, kwargs, _timeresp_aliases) - output = _process_param( - 'output_indices', output_indices, kwargs, _timeresp_aliases) + T = _process_param("timepts", timepts, kwargs, _timeresp_aliases) + input = _process_param("input_indices", input_indices, kwargs, _timeresp_aliases) + output = _process_param("output_indices", output_indices, kwargs, _timeresp_aliases) return_x = _process_param( - 'return_states', return_states, kwargs, _timeresp_aliases, - sigval=False) - T_num = _process_param( - 'timepts_num', timepts_num, kwargs, _timeresp_aliases) + "return_states", return_states, kwargs, _timeresp_aliases, sigval=False + ) + T_num = _process_param("timepts_num", timepts_num, kwargs, _timeresp_aliases) if kwargs: raise TypeError("unrecognized keyword(s): ", str(kwargs)) @@ -2023,9 +2192,18 @@ def impulse_response( if isinstance(sysdata, (list, tuple)): responses = [] for sys in sysdata: - responses.append(impulse_response( - sys, T, input=input, output=output, T_num=T_num, - transpose=transpose, return_x=return_x, squeeze=squeeze)) + responses.append( + impulse_response( + sys, + T, + input=input, + output=output, + T_num=T_num, + transpose=transpose, + return_x=return_x, + squeeze=squeeze, + ) + ) return TimeResponseList(responses) else: sys = sysdata @@ -2040,10 +2218,12 @@ def impulse_response( # Check to make sure there is not a direct term if np.any(sys.D != 0) and isctime(sys): - warnings.warn("System has direct feedthrough: `D != 0`. The " - "infinite impulse at `t=0` does not appear in the " - "output.\n" - "Results may be meaningless!") + warnings.warn( + "System has direct feedthrough: `D != 0`. The " + "infinite impulse at `t=0` does not appear in the " + "output.\n" + "Results may be meaningless!" + ) # Only single input and output are allowed for now if isinstance(input, (list, tuple)): @@ -2076,7 +2256,7 @@ def impulse_response( # Save a label for this plot trace_labels.append(f"From {sys.input_labels[i]}") - trace_types.append('impulse') + trace_types.append("impulse") # # Compute new X0 that contains the impulse @@ -2091,15 +2271,14 @@ def impulse_response( else: X0 = 0 U = np.zeros((sys.ninputs, T.size)) - U[i, 0] = 1./sys.dt # unit area impulse + U[i, 0] = 1.0 / sys.dt # unit area impulse # Simulate the impulse response for this input response = forced_response(sys, T, U, X0) # Store the output (and states) inpidx = i if input is None else 0 - yout[:, inpidx, :] = response.y if output is None \ - else response.y[output] + yout[:, inpidx, :] = response.y if output is None else response.y[output] xout[:, inpidx, :] = response.x uout[:, inpidx, :] = U if input is None else U[i] @@ -2107,18 +2286,27 @@ def impulse_response( issiso = sys.issiso() or (input is not None and output is not None) # Select only the given input and output, if any - input_labels = sys.input_labels if input is None \ - else sys.input_labels[input] - output_labels = sys.output_labels if output is None \ - else sys.output_labels[output] + input_labels = sys.input_labels if input is None else sys.input_labels[input] + output_labels = sys.output_labels if output is None else sys.output_labels[output] return TimeResponseData( - response.time, yout, xout, uout, issiso=issiso, - output_labels=output_labels, input_labels=input_labels, - state_labels=sys.state_labels, trace_labels=trace_labels, - trace_types=trace_types, title="Impulse response for " + sys.name, - sysname=sys.name, plot_inputs=False, transpose=transpose, - return_x=return_x, squeeze=squeeze) + response.time, + yout, + xout, + uout, + issiso=issiso, + output_labels=output_labels, + input_labels=input_labels, + state_labels=sys.state_labels, + trace_labels=trace_labels, + trace_types=trace_types, + title="Impulse response for " + sys.name, + sysname=sys.name, + plot_inputs=False, + transpose=transpose, + return_x=return_x, + squeeze=squeeze, + ) # utility function to find time period and time increment using pole locations @@ -2169,14 +2357,13 @@ def _ideal_tfinal_and_dt(sys, is_step=True): """ from .statesp import _convert_to_statespace - from .delaylti import DelayLTI - sqrt_eps = np.sqrt(np.spacing(1.)) - default_tfinal = 5 # Default simulation horizon + sqrt_eps = np.sqrt(np.spacing(1.0)) + default_tfinal = 5 # Default simulation horizon default_dt = 0.1 - total_cycles = 5 # Number cycles for oscillating modes - pts_per_cycle = 25 # Number points divide period of osc - log_decay_percent = np.log(1000) # Reduction factor for real pole decays + total_cycles = 5 # Number cycles for oscillating modes + pts_per_cycle = 25 # Number points divide period of osc + log_decay_percent = np.log(1000) # Reduction factor for real pole decays if sys._isstatic(): tfinal = default_tfinal @@ -2188,13 +2375,12 @@ def _ideal_tfinal_and_dt(sys, is_step=True): p = eigvals(A) # Array Masks # unstable - m_u = (np.abs(p) >= 1 + sqrt_eps) + m_u = np.abs(p) >= 1 + sqrt_eps p_u, p = p[m_u], p[~m_u] if p_u.size > 0: m_u = (p_u.real < 0) & (np.abs(p_u.imag) < sqrt_eps) if np.any(~m_u): - t_emp = np.max( - log_decay_percent / np.abs(np.log(p_u[~m_u]) / dt)) + t_emp = np.max(log_decay_percent / np.abs(np.log(p_u[~m_u]) / dt)) tfinal = max(tfinal, t_emp) # zero - negligible effect on tfinal @@ -2204,25 +2390,25 @@ def _ideal_tfinal_and_dt(sys, is_step=True): m_nr = (p.real < 0) & (np.abs(p.imag) < sqrt_eps) p_nr, p = p[m_nr], p[~m_nr] if p_nr.size > 0: - t_emp = np.max(log_decay_percent / np.abs((np.log(p_nr)/dt).real)) + t_emp = np.max(log_decay_percent / np.abs((np.log(p_nr) / dt).real)) tfinal = max(tfinal, t_emp) # discrete integrators m_int = (p.real - 1 < sqrt_eps) & (np.abs(p.imag) < sqrt_eps) p_int, p = p[m_int], p[~m_int] # pure oscillatory modes - m_w = (np.abs(np.abs(p) - 1) < sqrt_eps) + m_w = np.abs(np.abs(p) - 1) < sqrt_eps p_w, p = p[m_w], p[~m_w] if p_w.size > 0: - t_emp = total_cycles * 2 * np.pi / np.abs(np.log(p_w)/dt).min() + t_emp = total_cycles * 2 * np.pi / np.abs(np.log(p_w) / dt).min() tfinal = max(tfinal, t_emp) if p.size > 0: - t_emp = log_decay_percent / np.abs((np.log(p)/dt).real).min() + t_emp = log_decay_percent / np.abs((np.log(p) / dt).real).min() tfinal = max(tfinal, t_emp) if p_int.size > 0: tfinal = tfinal * 5 - else: # cont time + else: # cont time sys_ss = _convert_to_statespace(sys) # Improve conditioning via balancing and zeroing tiny entries # See for [[1,2,0], [9,1,0.01], [1,2,10*np.pi]] @@ -2232,10 +2418,10 @@ def _ideal_tfinal_and_dt(sys, is_step=True): # Reciprocal of inner product for each eigval, (bound the # ~infs by 1e12) # G = Transfer([1], [1,0,1]) gives zero sensitivity (bound by 1e-12) - eig_sens = np.reciprocal(maximum(1e-12, einsum('ij,ij->j', l, r).real)) + eig_sens = np.reciprocal(maximum(1e-12, einsum("ij,ij->j", l, r).real)) eig_sens = minimum(1e12, eig_sens) # Tolerances - p[np.abs(p) < np.spacing(eig_sens * norm(b, 1))] = 0. + p[np.abs(p) < np.spacing(eig_sens * norm(b, 1))] = 0.0 # Incorporate balancing to outer factors l[perm, :] *= np.reciprocal(sca)[:, None] r[perm, :] *= sca[:, None] @@ -2244,29 +2430,29 @@ def _ideal_tfinal_and_dt(sys, is_step=True): origin = False # Computing the "size" of the response of each simple mode wn = np.abs(p) - if np.any(wn == 0.): + if np.any(wn == 0.0): origin = True dc = np.zeros_like(p, dtype=float) # well-conditioned nonzero poles, np.abs just in case - ok = np.abs(eig_sens) <= 1/sqrt_eps + ok = np.abs(eig_sens) <= 1 / sqrt_eps # the averaged t->inf response of each simple eigval on each i/o # channel. See, A = [[-1, k], [0, -2]], response sizes are # k-dependent (that is R/L eigenvector dependent) - dc[ok] = norm(v[ok, :], axis=1)*norm(w[:, ok], axis=0)*eig_sens[ok] - dc[wn != 0.] /= wn[wn != 0] if is_step else 1. - dc[wn == 0.] = 0. + dc[ok] = norm(v[ok, :], axis=1) * norm(w[:, ok], axis=0) * eig_sens[ok] + dc[wn != 0.0] /= wn[wn != 0] if is_step else 1.0 + dc[wn == 0.0] = 0.0 # double the oscillating mode magnitude for the conjugate - dc[p.imag != 0.] *= 2 + dc[p.imag != 0.0] *= 2 # Now get rid of noncontributing integrators and simple modes if any - relevance = (dc > 0.1*dc.max()) | ~ok + relevance = (dc > 0.1 * dc.max()) | ~ok psub = p[relevance] wnsub = wn[relevance] tfinal, dt = [], [] - ints = wnsub == 0. - iw = (psub.imag != 0.) & (np.abs(psub.real) <= sqrt_eps) + ints = wnsub == 0.0 + iw = (psub.imag != 0.0) & (np.abs(psub.real) <= sqrt_eps) # Pure imaginary? if np.any(iw): @@ -2276,15 +2462,14 @@ def _ideal_tfinal_and_dt(sys, is_step=True): texp_mode = log_decay_percent / np.abs(psub[~iw & ~ints].real) tfinal += texp_mode.tolist() dt += minimum( - texp_mode / 50, - (2 * np.pi / pts_per_cycle / wnsub[~iw & ~ints]) + texp_mode / 50, (2 * np.pi / pts_per_cycle / wnsub[~iw & ~ints]) ).tolist() # All integrators? if len(tfinal) == 0: - return default_tfinal*5, default_dt*5 + return default_tfinal * 5, default_dt * 5 - tfinal = np.max(tfinal)*(5 if origin else 1) + tfinal = np.max(tfinal) * (5 if origin else 1) dt = np.min(dt) return tfinal, dt @@ -2292,14 +2477,13 @@ def _ideal_tfinal_and_dt(sys, is_step=True): def _default_time_vector(sysdata, N=None, tfinal=None, is_step=True): """Returns a time vector that has a reasonable number of points. - if system is discrete time, N is ignored """ + if system is discrete time, N is ignored""" from .lti import LTI if isinstance(sysdata, (list, tuple)): tfinal_max = N_max = 0 for sys in sysdata: - timevec = _default_time_vector( - sys, N=N, tfinal=tfinal, is_step=is_step) + timevec = _default_time_vector(sys, N=N, tfinal=tfinal, is_step=is_step) tfinal_max = max(tfinal_max, timevec[-1]) N_max = max(N_max, timevec.size) return np.linspace(0, tfinal_max, N_max, endpoint=True) @@ -2309,19 +2493,18 @@ def _default_time_vector(sysdata, N=None, tfinal=None, is_step=True): # For non-LTI system, need tfinal if not isinstance(sys, LTI): if tfinal is None: - raise ValueError( - "can't automatically compute T for non-LTI system") + raise ValueError("can't automatically compute T for non-LTI system") elif isinstance(tfinal, (int, float, np.number)): if N is None: return np.linspace(0, tfinal) else: return np.linspace(0, tfinal, N) else: - return tfinal # Assume we got passed something appropriate + return tfinal # Assume we got passed something appropriate N_max = 5000 - N_min_ct = 100 # min points for cont time systems - N_min_dt = 20 # more common to see just a few samples in discrete time + N_min_ct = 100 # min points for cont time systems + N_min_dt = 20 # more common to see just a few samples in discrete time ideal_tfinal, ideal_dt = _ideal_tfinal_and_dt(sys, is_step=is_step) @@ -2330,17 +2513,17 @@ def _default_time_vector(sysdata, N=None, tfinal=None, is_step=True): if tfinal is None: # for discrete time, change from ideal_tfinal if N too large/small # [N_min, N_max] - N = int(np.clip(np.ceil(ideal_tfinal/sys.dt)+1, N_min_dt, N_max)) - tfinal = sys.dt * (N-1) + N = int(np.clip(np.ceil(ideal_tfinal / sys.dt) + 1, N_min_dt, N_max)) + tfinal = sys.dt * (N - 1) else: - N = int(np.ceil(tfinal/sys.dt)) + 1 - tfinal = sys.dt * (N-1) # make tfinal integer multiple of sys.dt + N = int(np.ceil(tfinal / sys.dt)) + 1 + tfinal = sys.dt * (N - 1) # make tfinal integer multiple of sys.dt else: if tfinal is None: # for continuous time, simulate to ideal_tfinal but limit N tfinal = ideal_tfinal if N is None: # [N_min, N_max] - N = int(np.clip(np.ceil(tfinal/ideal_dt)+1, N_min_ct, N_max)) + N = int(np.clip(np.ceil(tfinal / ideal_dt) + 1, N_min_ct, N_max)) return np.linspace(0, tfinal, N, endpoint=True) From 36ad284840875bba529e4a7afb569a883cd5555a Mon Sep 17 00:00:00 2001 From: MythasNauveili Date: Mon, 12 May 2025 20:36:49 +0200 Subject: [PATCH 14/16] improve formatting, underscore internal functions, add file description --- .gitignore | 5 +- control/__init__.py | 1 - control/dde.py | 71 ++++++++++------ control/delaylti.py | 119 ++++++++++++++++---------- control/partitionedssp.py | 142 ++++++++++++++++++++------------ control/tests/dde_test.py | 61 +++++++++----- control/tests/delay_lti_test.py | 111 +++++++++++++++++-------- 7 files changed, 329 insertions(+), 181 deletions(-) diff --git a/.gitignore b/.gitignore index 8ce34c9a1..435b7f106 100644 --- a/.gitignore +++ b/.gitignore @@ -44,7 +44,4 @@ env.bak/ venv.bak/ # Files for MacOS -.DS_Store - -# tests files -control/julia/test.ipynb \ No newline at end of file +.DS_Store \ No newline at end of file diff --git a/control/__init__.py b/control/__init__.py index 91275fe1f..d2929c799 100644 --- a/control/__init__.py +++ b/control/__init__.py @@ -89,7 +89,6 @@ # Allow access to phase_plane functions as ct.phaseplot.fcn or ct.pp.fcn from . import phaseplot as phaseplot - pp = phaseplot # Exceptions diff --git a/control/dde.py b/control/dde.py index 81839cb60..26786995b 100644 --- a/control/dde.py +++ b/control/dde.py @@ -1,3 +1,15 @@ +# dde.py - Delay differential equations + +"""Delay differential equations. + +This module contains a minimal implementation of +a delay differential equation (DDE) solver using the +Method of Steps (MoS) approach and scipy's solve_ivp function. +The solver is designed to handle delayed +linear time-invariant (delayLTI) systems. + +""" + import numpy as np from scipy.integrate import solve_ivp, OdeSolution @@ -6,7 +18,8 @@ def dde_response( - delay_sys, T, U=0, X0=0, params=None, transpose=False, return_x=False, squeeze=None + delay_sys, T, U=0, X0=0, params=None, + transpose=False, return_x=False, squeeze=None ): """Compute the output of a delay linear system given the input. @@ -41,8 +54,9 @@ def dde_response( If `squeeze` is True, remove single-dimensional entries from the shape of the output even if the system is not SISO. If `squeeze` is False, keep the output as a 2D array (indexed by - the output number and time) even if the system is SISO. The default - behavior can be overridden by `config.defaults['control.squeeze_time_response']`. + the output number and time) even if the system is SISO. + The default behavior can be overridden by + `config.defaults['control.squeeze_time_response']`. Returns ------- @@ -67,7 +81,8 @@ def dde_response( T = np.asarray(T) T = _check_convert_array( - T, [("any",), (1, "any")], "Parameter `T`: ", squeeze=True, transpose=transpose + T, [("any",), (1, "any")], "Parameter `T`: ", + squeeze=True, transpose=transpose ) n_steps = T.shape[0] @@ -86,12 +101,11 @@ def dde_response( U = _check_convert_array( U, legal_shapes, "Parameter `U`: ", squeeze=False, transpose=transpose ) - print("U shape: ", U.shape) xout = np.zeros((n_states, n_steps)) xout[:, 0] = X0 yout = np.zeros((n_outputs, n_steps)) tout = T - xout, yout = solve_dde(delay_sys, T, U, X0, dt) + xout, yout = _solve_dde(delay_sys, T, U, X0, dt) return TimeResponseData( tout, @@ -110,8 +124,9 @@ def dde_response( ) -def pchip_interp_u(T, U): - """Create PCHIP interpolator functions for the input signal(s) U over time T. +def _pchip_interp_u(T, U): + """Create PCHIP interpolator functions for the + input signal(s) U over time T. For time points `t < T[0]`, the interpolator returns 0. @@ -144,10 +159,12 @@ def negative_wrapper(interp): return U else: # Multiple input signals, U.shape is (n_inputs, n_steps) - return np.array([negative_wrapper(PchipInterpolator(T, ui)) for ui in U]) + return np.array([ + negative_wrapper(PchipInterpolator(T, ui)) for ui in U + ]) -class DdeHistory: +class _DDEHistory: """ Stores the computed solution history for a DDE and provides a callable interface to retrieve the state x(t) at any requested past time t. @@ -155,8 +172,10 @@ class DdeHistory: Handles three regimes: 1. t <= t0: Uses the provided initial history function. - 2. t0 < t <= t_last_computed: Interpolates using dense output from solve_ivp segments. - 3. t > t_last_computed: Performs constant extrapolation using the last computed state + 2. t0 < t <= t_last_computed: + Interpolates using dense output from solve_ivp segments. + 3. t > t_last_computed: Performs constant + interpolation using theextrapolation using the last computed state (the state at `t_last_computed`). Attributes @@ -164,7 +183,8 @@ class DdeHistory: initial_history_func : callable Function `f(t)` that returns the state vector for `t <= t0`. t0 : float - Initial time. History before or at this time is given by `initial_history_func`. + Initial time. History before or at this time + is given by `initial_history_func`. segments : list of OdeSolution List of `OdeSolution` objects from `scipy.integrate.solve_ivp`, each representing a computed segment of the solution. @@ -177,7 +197,8 @@ class DdeHistory: def __init__(self, initial_history_func, t0): self.initial_history_func = initial_history_func self.t0: float = t0 - self.segments: List[OdeSolution] = [] # Stores OdeResult objects from solve_ivp + # Stores OdeResult objects from solve_ivp + self.segments: List[OdeSolution] = [] self.last_valid_time: float = t0 initial_state = np.asarray(initial_history_func(t0)) @@ -198,7 +219,8 @@ def add_segment(self, segment: OdeSolution): self.last_state = segment.y[:, -1] def __call__(self, t): - """Return the state vector x(t) by looking up or interpolating from history. + """Return the state vector x(t) by looking up or + interpolating from history. Parameters ---------- @@ -218,12 +240,13 @@ def __call__(self, t): for segment in self.segments: if segment.t[0] <= t <= segment.t[-1]: return segment.sol(t) - # Fallback: should ideally not be reached if t is within (t0, last_valid_time] + # Fallback: should ideally not be reached + # if t is within (t0, last_valid_time] # and segments cover this range. return np.zeros_like(self.last_state) # Deal with first call -def dde_wrapper(t, x, A, B1, B2, C2, D21, tau_list, u_func, history_x): +def _dde_wrapper(t, x, A, B1, B2, C2, D21, tau_list, u_func, history_x): """ Wrapper function for DDE solver using scipy's solve_ivp. Computes the derivative dx/dt for the DDE system. @@ -231,8 +254,9 @@ def dde_wrapper(t, x, A, B1, B2, C2, D21, tau_list, u_func, history_x): The system is defined by: dx/dt = A @ x(t) + B1 @ u(t) + B2 @ z_delayed_vector(t) where: - z_delayed_vector(t) is a vector where the k-th component is z_k(t - tau_list[k]), - and z_k(t') = (C2 @ x(t') + D21 @ u(t'))_k. + z_delayed_vector(t) is a vector where the k-th component is + z_k(t - tau_list[k]) and + z_k(t') = (C2 @ x(t') + D21 @ u(t'))_k. (Assuming D22 is zero for the internal feedback path). Parameters @@ -268,7 +292,7 @@ def dde_wrapper(t, x, A, B1, B2, C2, D21, tau_list, u_func, history_x): return dxdt.flatten() -def solve_dde(delay_sys, T, U, X0, dt): +def _solve_dde(delay_sys, T, U, X0, dt): """ Solving delay differential equation using Method Of Steps. @@ -297,9 +321,9 @@ def solve_dde(delay_sys, T, U, X0, dt): """ intial_history_func = lambda t: np.zeros(X0.shape) t0, tf = T[0], T[-1] - u_func = pchip_interp_u(T, U) + u_func = _pchip_interp_u(T, U) - history_x = DdeHistory(intial_history_func, t0) # to access x(t-tau) + history_x = _DDEHistory(intial_history_func, t0) # to access x(t-tau) current_t = 0 current_x = np.asarray(X0).flatten() @@ -328,9 +352,8 @@ def solve_dde(delay_sys, T, U, X0, dt): discontinuity_times.remove(t_stop) local_t_eval = [t for t in T if current_t < t <= t_stop] - print("Integrate bewtween ", current_t, " and ", t_stop) sol_segment = solve_ivp( - fun=dde_wrapper, + fun=_dde_wrapper, t_span=(current_t, t_stop), t_eval=local_t_eval, y0=current_x, diff --git a/control/delaylti.py b/control/delaylti.py index 05f604b41..b2e76fc08 100644 --- a/control/delaylti.py +++ b/control/delaylti.py @@ -1,3 +1,12 @@ +# delaylti.py - DelayLTI class and functions for delayed linear systems + +"""DelayLTI class and functions for delayed linear systems. + +This module contains the delayLTI class and related functions for +creating and manipulating delayed linear sytems. + +""" + import numpy as np from .lti import LTI from .partitionedssp import PartitionedStateSpace @@ -86,7 +95,7 @@ class DelayLTI(LTI): Notes ----- - The way to create a DelayLTI object is by multiplying a transfert + The way to create a DelayLTI object is by multiplying a transfer function object with a delay(tau) or exp(-tau*s). For example >>> ct.tf([1], [1,1]) * delay(1.5) @@ -96,8 +105,8 @@ class DelayLTI(LTI): >>> s = ct.tf('s') >>> ct.tf([1], [1,1]) * exp(-1.5*s) - It's possible to MIMO delayed systems from arrays of SISO delayed systems, - see function mimo_delay + It's possible to create MIMO delayed systems from arrays + of SISO delayed systems, see function mimo_delay. """ @@ -107,7 +116,8 @@ def __init__(self, P: PartitionedStateSpace, tau=None): Parameters ---------- P : PartitionedStateSpace - The underlying partitioned state-space representation of the system. + The underlying partitioned state-space + representation of the system. tau : array_like, optional An array of time delays associated with the system. """ @@ -176,9 +186,13 @@ def size(self): """Return the number of outputs and inputs.""" return (self.noutputs, self.ninputs) - # Poles and zeros functions for DelayLTI are not supported by julia ControlSystems.jl - # might not be accurate for delayLTI, to be discussed - # Here the poles and zeros computed are the ones of the system without taking into accoutn the delay + # Poles and zeros functions for DelayLTI + # are not supported by julia ControlSystems.jl + + # Might not be accurate for delayLTI, to be discussed + + # Poles and zeros computed are the ones + # of the system without taking into accoutn the delay def poles(self): """Compute the poles of a delay lti system. @@ -190,7 +204,8 @@ def poles(self): with delays are generally infinite in number. """ - return eigvals(self.P.A).astype(complex) if self.nstates else np.array([]) + return eigvals(self.P.A).astype(complex) \ + if self.nstates else np.array([]) def zeros(self): """Compute the zeros of the non-delayed part of the LTI system. @@ -223,7 +238,9 @@ def zeros(self): return np.array([]) else: # Use SciPy generalized eigenvalue function - return eigvals(out[8][0:nu, 0:nu], out[9][0:nu, 0:nu]).astype(complex) + return eigvals( + out[8][0:nu, 0:nu], out[9][0:nu, 0:nu] + ).astype(complex) except ImportError: # Slycot unavailable. Fall back to SciPy. if self.P.C.shape[0] != self.P.D.shape[1]: @@ -254,10 +271,9 @@ def zeros(self): ((0, self.P.C.shape[0]), (0, self.P.B.shape[1])), "constant", ) - return np.array( - [x for x in eigvals(L, M, overwrite_a=True) if not np.isinf(x)], - dtype=complex, - ) + return np.array([ + x for x in eigvals(L, M, overwrite_a=True) if not np.isinf(x) + ], dtype=complex) def _isstatic(self): """Check if the system is static.""" @@ -284,12 +300,14 @@ def __mul__(self, other): if isinstance(other, (int, float, complex)): new_B = np.hstack([self.P.B1 * other, self.P.B2]) - new_D = np.block( - [[self.P.D11 * other, self.P.D12], [self.P.D21 * other, self.P.D22]] - ) + new_D = np.block([ + [self.P.D11 * other, self.P.D12 * other], + [self.P.D21 * other, self.P.D22 * other] + ]) new_P = PartitionedStateSpace( - ss(self.P.A, new_B, self.P.C, new_D), self.P.nu1, self.P.ny1 + ss(self.P.A, new_B, self.P.C, new_D), + self.P.nu1, self.P.ny1 ) return DelayLTI(new_P, self.tau) @@ -325,18 +343,21 @@ def __rmul__(self, other): ------- DelayLTI The resulting DelayLTI system. - - Note that this function does not call __mul__ for scalar multiplication. + + Note that this function does not call __mul__ + for scalar multiplication. """ if isinstance(other, (int, float, complex)): new_C = np.vstack([self.P.C1 * other, self.P.C2]) - new_D = np.block( - [[self.P.D11 * other, self.P.D12 * other], [self.P.D21, self.P.D22]] - ) + new_D = np.block([ + [self.P.D11 * other, self.P.D12 * other], + [self.P.D21, self.P.D22] + ]) new_P = PartitionedStateSpace( - ss(self.P.A, self.P.B, new_C, new_D), self.P.nu1, self.P.ny1 + ss(self.P.A, self.P.B, new_C, new_D), + self.P.nu1, self.P.ny1 ) return DelayLTI(new_P, self.tau) @@ -348,11 +369,8 @@ def __rmul__(self, other): return DelayLTI.from_ss(other) * self else: - raise TypeError( - "Unsupported operand type(s) for *: '{}' and '{}'".format( - type(other), type(self) - ) - ) + raise TypeError(f"Unsupported operand type(s) for *:\ + {type(other)} and {type(self)}") def __add__(self, other): """Add two DelayLTI systems or a DelayLTI system with a scalar. @@ -425,7 +443,8 @@ def __eq__(self, other): vectors (`tau`) are element-wise identical. """ if not isinstance(other, DelayLTI): - raise TypeError(f"{other} is not a DelayLTI object, is {type(other)}") + raise TypeError(f"{other} is not a DelayLTI object,\ + is {type(other)}") return (self.P == other.P) and (self.tau == other.tau) def feedback(self, other=1, sign=-1): @@ -467,7 +486,8 @@ def feedback(self, other=1, sign=-1): # Convert feedback 'other' to a static gain matrix K if isinstance(other, (int, float, complex, np.number)): if not self.issiso(): - raise ValueError("Scalar feedback gain requires SISO system G.") + raise ValueError("Scalar feedback gain\ + requires SISO system G.") K = np.array([[other]], dtype=float) elif isinstance(other, np.ndarray): K = np.asarray(other, dtype=float) @@ -475,18 +495,22 @@ def feedback(self, other=1, sign=-1): K = K.reshape(1, 1) elif K.ndim == 1: if self.nu != 1: - raise ValueError("1D array feedback requires SISO system G.") + raise ValueError("1D array feedback \ + requires SISO system G.") K = K.reshape(self.ninputs, 1) elif K.ndim != 2: - raise ValueError("Feedback gain must be scalar, 1D, or 2D array.") + raise ValueError("Feedback gain must \ + be scalar, 1D, or 2D array.") else: - raise TypeError(f"Unsupported type for static feedback: {type(other)}") + raise TypeError( + f"Unsupported type for static feedback: {type(other)}" + ) # Check dimensions of K if K.shape != (self.nu, self.ny): raise ValueError( - f"Feedback gain K has incompatible shape. Expected ({self.nu}, {self.ny}), got {K.shape}." - ) + f"Feedback gain K has incompatible shape.\ + Expected ({self.nu}, {self.ny}), got {K.shape}.") # Get matrices from self's underlying PartitionedStateSpace P_g = self.P @@ -582,15 +606,20 @@ def __call__(self, x, squeeze=False, warn_infinite=True): out = np.empty((self.ny, self.nu, len(x_arr)), dtype=complex) - sys_call = self.P.sys(x_arr, squeeze=squeeze, warn_infinite=warn_infinite) + sys_call = self.P.sys( + x_arr, + squeeze=squeeze, + warn_infinite=warn_infinite + ) for i, xi in enumerate(x_arr): P11_fr = sys_call[: self.ny, : self.nu, i] - P12_fr = sys_call[: self.ny, self.nu :, i] - P21_fr = sys_call[self.ny :, : self.nu, i] - P22_fr = sys_call[self.ny :, self.nu :, i] + P12_fr = sys_call[: self.ny, self.nu:, i] + P21_fr = sys_call[self.ny:, : self.nu, i] + P22_fr = sys_call[self.ny:, self.nu:, i] delay_term_inv = np.exp(xi * self.tau) delay_term_fr = np.diag(delay_term_inv) - out[:, :, i] = P11_fr + P12_fr @ inv(delay_term_fr - P22_fr) @ P21_fr + out[:, :, i] = P11_fr + \ + P12_fr @ inv(delay_term_fr - P22_fr) @ P21_fr return out def __str__(self): @@ -607,7 +636,8 @@ def __str__(self): def __repr__(self): """Return a string representation of the DelayLTI system (for eval).""" return ( - f"{type(self).__name__}(P={self.P.__repr__()}, tau={self.tau.__repr__()})" + f"{type(self).__name__}(P={self.P.__repr__()},\ + tau={self.tau.__repr__()})" ) def to_ss(self, *args, **kwargs): @@ -617,7 +647,9 @@ def to_ss(self, *args, **kwargs): ) def to_tf(self, *args, **kwargs): - """Convert to `TransferFunction` object (not implemented for DelayLTI).""" + """Convert to `TransferFunction` object + (not implemented for DelayLTI). + """ raise NotImplementedError( "Conversion of DelayLTI to TransferFunction is not supported." ) @@ -752,7 +784,8 @@ def _convert_to_delay_lti(sys): return tf2dlti(sys) else: raise TypeError( - "Unsupported system type for DelayLTI conversion: {}".format(type(sys)) + "Unsupported system type for DelayLTI \ + conversion: {}".format(type(sys)) ) diff --git a/control/partitionedssp.py b/control/partitionedssp.py index 17b6144a8..b643acc4c 100644 --- a/control/partitionedssp.py +++ b/control/partitionedssp.py @@ -1,3 +1,14 @@ +# partitionedssp.py - PartitionedStateSpace class and functions +# for Partitioned state-space systems + +"""PartitionedStateSpace class +and functions for Partitioned state-space systems + +This module contains the PartitionedStateSpace class and +functions for creating and manipulating partitioned state-space systems. +This class is needed to handle systems with time delays (delayLTI class). +""" + import numpy as np from scipy.linalg import block_diag, solve @@ -108,8 +119,10 @@ def __init__(self, sys: StateSpace, nu1: int, ny1: int): self.noutputs_total = sys.noutputs self.ninputs_total = sys.ninputs - self.nu2 = self.ninputs_total - self.nu1 # Dimension of external input w - self.ny2 = self.noutputs_total - self.ny1 # Dimension of external output z + # Dimension of external input w + self.nu2 = self.ninputs_total - self.nu1 + # Dimension of external output z + self.ny2 = self.noutputs_total - self.ny1 @property def B1(self): @@ -117,7 +130,7 @@ def B1(self): @property def B2(self): - return self.B[:, self.nu1 :] + return self.B[:, self.nu1:] @property def C1(self): @@ -125,7 +138,7 @@ def C1(self): @property def C2(self): - return self.C[self.ny1 :, :] + return self.C[self.ny1:, :] @property def D11(self): @@ -133,15 +146,15 @@ def D11(self): @property def D12(self): - return self.D[: self.ny1, self.nu1 :] + return self.D[: self.ny1, self.nu1:] @property def D21(self): - return self.D[self.ny1 :, : self.nu1] + return self.D[self.ny1:, : self.nu1] @property def D22(self): - return self.D[self.ny1 :, self.nu1 :] + return self.D[self.ny1:, self.nu1:] @classmethod def from_matrices(cls, A, B1, B2, C1, C2, D11, D12, D21, D22): @@ -160,13 +173,18 @@ def from_matrices(cls, A, B1, B2, C1, C2, D11, D12, D21, D22): C2 : array_like The output matrix for delayed outputs. D11 : array_like - The direct feedthrough matrix for external inputs to external outputs. + The direct feedthrough matrix for external inputs + to external outputs. D12 : array_like - The direct feedthrough matrix for delayed inputs to external outputs. + The direct feedthrough matrix for delayed inputs + to external outputs. D21 : array_like - The direct feedthrough matrix for external inputs to delayed outputs. + The direct feedthrough matrix for external inputs + to delayed outputs. D22 : array_like - The direct feedthrough matrix for delayed inputs to delayed outputs. + The direct feedthrough matrix for delayed inputs + to delayed outputs (should be zeros for + delay LTI). Returns ------- @@ -259,7 +277,9 @@ def __add__(self, other): D = np.block([[D11, D12], [D21, D22]]) P = ss(A, B, C, D) - return PartitionedStateSpace(P, self.nu1 + other.nu1, self.ny1 + other.ny1) + return PartitionedStateSpace( + P, self.nu1 + other.nu1, self.ny1 + other.ny1 + ) def __mul__(self, other): """Multiply two PartitionedStateSpace systems. @@ -292,16 +312,32 @@ def __mul__(self, other): B = np.block( [ - [self.B1 @ other.D11, self.B2, self.B1 @ other.D12], - [other.B1, np.zeros((other.B2.shape[0], self.B2.shape[1])), other.B2], + [ + self.B1 @ other.D11, + self.B2, self.B1 @ other.D12 + ], + [ + other.B1, + np.zeros((other.B2.shape[0], self.B2.shape[1])), + other.B2 + ] ] ) C = np.block( [ - [self.C1, self.D11 @ other.C1], - [self.C2, self.D21 @ other.C1], - [np.zeros((other.C2.shape[0], self.C2.shape[1])), other.C2], + [ + self.C1, + self.D11 @ other.C1, + ], + [ + self.C2, + self.D21 @ other.C1 + ], + [ + np.zeros((other.C2.shape[0], self.C2.shape[1])), + other.C2 + ] ] ) @@ -350,19 +386,20 @@ def feedback(self, other): """ if not isinstance(other, PartitionedStateSpace): - raise TypeError( - "Feedback connection only defined for PartitionedStateSpace objects." - ) + raise TypeError("Feedback connection only defined\ + for PartitionedStateSpace objects.") # Pre-calculate repeated inverses I_self = np.eye(self.D11.shape[0]) I_other = np.eye(other.D11.shape[0]) X_11 = solve( - I_other + other.D11 @ self.D11, np.hstack((-other.D11 @ self.C1, -other.C1)) + I_other + other.D11 @ self.D11, + np.hstack((-other.D11 @ self.C1, -other.C1)) ) X_21 = solve( - I_self + self.D11 @ other.D11, np.hstack((self.C1, -self.D11 @ other.C1)) + I_self + self.D11 @ other.D11, + np.hstack((self.C1, -self.D11 @ other.C1)) ) X_12 = solve( @@ -374,43 +411,38 @@ def feedback(self, other): np.hstack((self.D11, self.D12, -self.D11 @ other.D12)), ) - A_new = np.vstack((self.B1 @ X_11, other.B1 @ X_21)) + block_diag( - self.A, other.A - ) + A_new = np.vstack((self.B1 @ X_11, other.B1 @ X_21)) + \ + block_diag(self.A, other.A) B_new = np.vstack((self.B1 @ X_12, other.B1 @ X_22)) tmp = block_diag(self.B2, other.B2) - B_new[:, -tmp.shape[1] :] += tmp + B_new[:, -tmp.shape[1]:] += tmp - C_new = np.vstack( - [ + C_new = np.vstack([ self.D11 @ X_11, self.D21 @ X_11, other.D21 @ X_21, - ] - ) + np.vstack( - [ - np.hstack([self.C1, np.zeros((self.C1.shape[0], other.C1.shape[1]))]), + ]) + np.vstack([ + np.hstack([ + self.C1, + np.zeros((self.C1.shape[0], other.C1.shape[1])) + ]), block_diag(self.C2, other.C2), - ] - ) + ]) - D_new = np.vstack( - [ + D_new = np.vstack([ self.D11 @ X_12, self.D21 @ X_12, other.D21 @ X_22, - ] - ) - tmp = np.vstack( - [ - np.hstack( - [self.D12, np.zeros((self.D12.shape[0], other.D12.shape[1]))] - ), + ]) + tmp = np.vstack([ + np.hstack([ + self.D12, + np.zeros((self.D12.shape[0], other.D12.shape[1])) + ]), block_diag(self.D22, other.D22), - ] - ) - D_new[:, -tmp.shape[1] :] += tmp + ]) + D_new[:, -tmp.shape[1]:] += tmp P_new = StateSpace(A_new, B_new, C_new, D_new) @@ -457,9 +489,8 @@ def vcat_pss(*systems: list[PartitionedStateSpace]) -> PartitionedStateSpace: nu1 = systems[0].nu1 if not (all(space.nu1 == nu1 for space in systems)): - raise ValueError( - "All PartitionedStateSpace objects must have the same input dimension" - ) + raise ValueError("All PartitionedStateSpace objects\ + must have the same input dimension") A = block_diag(*[space.A for space in systems]) B1 = np.vstack([space.B1 for space in systems]) @@ -471,7 +502,9 @@ def vcat_pss(*systems: list[PartitionedStateSpace]) -> PartitionedStateSpace: D21 = np.vstack([space.D21 for space in systems]) D22 = block_diag(*[space.D22 for space in systems]) - return PartitionedStateSpace.from_matrices(A, B1, B2, C1, C2, D11, D12, D21, D22) + return PartitionedStateSpace.from_matrices( + A, B1, B2, C1, C2, D11, D12, D21, D22 + ) def hcat_pss(*systems: list[PartitionedStateSpace]) -> PartitionedStateSpace: @@ -499,9 +532,8 @@ def hcat_pss(*systems: list[PartitionedStateSpace]) -> PartitionedStateSpace: ny1 = systems[0].ny1 if not (all(space.ny1 == ny1 for space in systems)): - raise ValueError( - "All PartitionedStateSpace objects must have the same output dimension" - ) + raise ValueError("All PartitionedStateSpace objects\ + must have the same output dimension") A = block_diag(*[space.A for space in systems]) B1 = block_diag(*[space.B1 for space in systems]) @@ -513,4 +545,6 @@ def hcat_pss(*systems: list[PartitionedStateSpace]) -> PartitionedStateSpace: D21 = block_diag(*[space.D21 for space in systems]) D22 = block_diag(*[space.D22 for space in systems]) - return PartitionedStateSpace.from_matrices(A, B1, B2, C1, C2, D11, D12, D21, D22) + return PartitionedStateSpace.from_matrices( + A, B1, B2, C1, C2, D11, D12, D21, D22 + ) diff --git a/control/tests/dde_test.py b/control/tests/dde_test.py index a9aa55ea6..a4b57c696 100644 --- a/control/tests/dde_test.py +++ b/control/tests/dde_test.py @@ -26,40 +26,53 @@ def wood_berry(): # Construct a 2x2 MIMO system with delays G_wb = mimo_delay( [ - [12.8 / (16.7 * s + 1) * exp(-s), -18.9 / (21.0 * s + 1) * exp(-3 * s)], - [6.6 / (10.9 * s + 1) * exp(-7 * s), -19.4 / (14.4 * s + 1) * exp(-3 * s)], + [ + 12.8 / (16.7 * s + 1) * exp(-s), + -18.9 / (21.0 * s + 1) * exp(-3 * s) + ], + [ + 6.6 / (10.9 * s + 1) * exp(-7 * s), + -19.4 / (14.4 * s + 1) * exp(-3 * s) + ] ] ) return G_wb class TestTimeResp: - def test_siso_delayed_step_response(self, delay_siso_tf, simple_siso_tf): + def test_siso_delayed_step_response( + self, delay_siso_tf, simple_siso_tf, plot=False + ): from control.timeresp import step_response timepts = np.linspace(0, 10, 1001) step = step_response(simple_siso_tf, timepts=timepts) delay_step = step_response(delay_siso_tf, timepts=timepts) - # Construct a manually delayed step response by shifting the step response + # Construct a manually delayed step response + # by shifting the step response hand_delayed_step = np.zeros_like(step.y[0][0]) count = 0 for i, t in enumerate(step.t): if t >= 1.5: hand_delayed_step[i] = step.y[0][0][count] count += 1 - plt.figure() - plt.plot(delay_step.y[0][0] - hand_delayed_step) - plt.legend() - plt.show() + if plot: + plt.figure() + plt.plot(delay_step.y[0][0] - hand_delayed_step, label="error") + plt.legend() + plt.show() assert np.allclose(delay_step.y[0][0], hand_delayed_step) - def test_siso_delayed_step_response_mos(self, delay_siso_tf, simple_siso_tf): + def test_siso_delayed_step_response_mos( + self, delay_siso_tf, simple_siso_tf, plot=False + ): from control.timeresp import step_response timepts = np.linspace(0, 10, 1001) step = step_response(simple_siso_tf, timepts=timepts) delay_step = step_response(delay_siso_tf, timepts=timepts) - # Construct a manually delayed step response by shifting the step response + # Construct a manually delayed step response + # by shifting the step response hand_delayed_step = np.zeros_like(step.y[0][0]) count = 0 for i, t in enumerate(step.t): @@ -67,10 +80,11 @@ def test_siso_delayed_step_response_mos(self, delay_siso_tf, simple_siso_tf): hand_delayed_step[i] = step.y[0][0][count] count += 1 - plt.figure() - plt.plot(delay_step.y[0][0] - hand_delayed_step) - plt.legend() - plt.show() + if plot: + plt.figure() + plt.plot(delay_step.y[0][0] - hand_delayed_step, label="error") + plt.legend() + plt.show() assert np.allclose(delay_step.y[0][0], hand_delayed_step, atol=1e-5) # wood berry step response compared to julia @@ -82,7 +96,6 @@ def test_mimo_step_response(self, wood_berry, plot=False): step = step_response(wood_berry, timepts=timepts) print(step.y[0].shape) - plot = True if plot: plt.figure() plt.plot( @@ -104,7 +117,8 @@ def test_mimo_step_response(self, wood_berry, plot=False): plt.title("Step response") plt.show() - # Precision is currently between 1e-5 and 1e-6 compared to julia solver for mimo + # Precision is currently between 1e-5 and 1e-6 + # compared to julia solver for mimo assert np.allclose( step.y[0][0], julia_json["TestTimeResp"]["test_mimo_step_response"]["y11"], @@ -132,7 +146,9 @@ def test_forced_response(self, delay_siso_tf, simple_siso_tf, plot=False): timepts = np.linspace(0, 10, 1001) inputs = np.sin(timepts) resp = forced_response(simple_siso_tf, timepts=timepts, inputs=inputs) - delay_resp = forced_response(delay_siso_tf, timepts=timepts, inputs=inputs) + delay_resp = forced_response( + delay_siso_tf, timepts=timepts, inputs=inputs + ) hand_delayed_resp = np.zeros_like(resp.y[0]) count = 0 for i, t in enumerate(resp.t): @@ -141,7 +157,6 @@ def test_forced_response(self, delay_siso_tf, simple_siso_tf, plot=False): count += 1 # Optionally, inspect the plot: - # plot = True if plot: plt.figure() plt.plot(resp.t, inputs, label="input") @@ -198,8 +213,14 @@ def test_mimo_forced_response(self, wood_berry, plot=False): # plot = True if plot: plt.figure() - plt.plot(resp.t, resp.y[0] - hand_delayed_resp_y1, label="y1 - hand y1") - plt.plot(resp.t, resp.y[1] - hand_delayed_resp_y2, label="y2 - hand y2") + plt.plot( + resp.t, + resp.y[0] - hand_delayed_resp_y1, label="y1 - hand y1" + ) + plt.plot( + resp.t, + resp.y[1] - hand_delayed_resp_y2, label="y2 - hand y2" + ) plt.legend() plt.show() diff --git a/control/tests/delay_lti_test.py b/control/tests/delay_lti_test.py index 0f2404e44..d443ab8a0 100644 --- a/control/tests/delay_lti_test.py +++ b/control/tests/delay_lti_test.py @@ -1,7 +1,10 @@ import numpy as np import pytest -from control.delaylti import delay, tf2dlti, exp, hcat, vcat, mimo_delay, ss2dlti +from control.delaylti import ( + delay, tf2dlti, exp, hcat, + vcat, mimo_delay, ss2dlti +) from control.statesp import ss from control.xferfcn import tf from control.julia.utils import julia_json, assert_delayLTI @@ -38,8 +41,14 @@ def wood_berry(): # Construct a 2x2 MIMO system with delays G_wb = mimo_delay( [ - [12.8 / (16.7 * s + 1) * exp(-s), -18.9 / (21.0 * s + 1) * exp(-3 * s)], - [6.6 / (10.9 * s + 1) * exp(-7 * s), -19.4 / (14.4 * s + 1) * exp(-3 * s)], + [ + 12.8 / (16.7 * s + 1) * exp(-s), + -18.9 / (21.0 * s + 1) * exp(-3 * s) + ], + [ + 6.6 / (10.9 * s + 1) * exp(-7 * s), + -19.4 / (14.4 * s + 1) * exp(-3 * s) + ] ] ) return G_wb @@ -84,48 +93,70 @@ def test_build_wood_berry(self, wood_berry): class TestOperators: def test_siso_add(self, delay_siso_tf, delay_siso_tf2): - G = delay_siso_tf + delay_siso_tf2 - assert_delayLTI(G, julia_json["TestOperators"]["test_siso_add"]) + assert_delayLTI( + delay_siso_tf + delay_siso_tf2, + julia_json["TestOperators"]["test_siso_add"] + ) def test_siso_add_constant(self, delay_siso_tf): - G = delay_siso_tf + 2.5 - assert_delayLTI(G, julia_json["TestOperators"]["test_siso_add_constant"]) + assert_delayLTI( + delay_siso_tf + 2.5, + julia_json["TestOperators"]["test_siso_add_constant"] + ) def test_siso_sub(self, delay_siso_tf, delay_siso_tf2): - G = delay_siso_tf - delay_siso_tf2 - assert_delayLTI(G, julia_json["TestOperators"]["test_siso_sub"]) + assert_delayLTI( + delay_siso_tf - delay_siso_tf2, + julia_json["TestOperators"]["test_siso_sub"] + ) def test_siso_sub_constant(self, delay_siso_tf): - G = delay_siso_tf - 2.5 - assert_delayLTI(G, julia_json["TestOperators"]["test_siso_sub_constant"]) + assert_delayLTI( + delay_siso_tf - 2.5, + julia_json["TestOperators"]["test_siso_sub_constant"] + ) def test_siso_mul(self, delay_siso_tf, delay_siso_tf2): - G = delay_siso_tf * delay_siso_tf2 - assert_delayLTI(G, julia_json["TestOperators"]["test_siso_mul"]) + assert_delayLTI( + delay_siso_tf * delay_siso_tf2, + julia_json["TestOperators"]["test_siso_mul"] + ) def test_siso_mul_constant(self, delay_siso_tf): - G = delay_siso_tf * 2.0 - assert_delayLTI(G, julia_json["TestOperators"]["test_siso_mul_constant"]) + assert_delayLTI( + delay_siso_tf * 2.0, + julia_json["TestOperators"]["test_siso_mul_constant"] + ) def test_siso_rmul_constant(self, delay_siso_tf): - G = 2.0 * delay_siso_tf - assert_delayLTI(G, julia_json["TestOperators"]["test_siso_rmul_constant"]) + assert_delayLTI( + 2.0 * delay_siso_tf, + julia_json["TestOperators"]["test_siso_rmul_constant"] + ) def test_mimo_add(self, wood_berry): - G = wood_berry + wood_berry - assert_delayLTI(G, julia_json["TestOperators"]["test_mimo_add"]) + assert_delayLTI( + wood_berry + wood_berry, + julia_json["TestOperators"]["test_mimo_add"] + ) def test_mimo_add_constant(self, wood_berry): - G = wood_berry + 2.7 - assert_delayLTI(G, julia_json["TestOperators"]["test_mimo_add_constant"]) + assert_delayLTI( + wood_berry + 2.7, + julia_json["TestOperators"]["test_mimo_add_constant"] + ) def test_mimo_mul(self, wood_berry): - G = wood_berry * wood_berry - assert_delayLTI(G, julia_json["TestOperators"]["test_mimo_mul"]) + assert_delayLTI( + wood_berry * wood_berry, + julia_json["TestOperators"]["test_mimo_mul"] + ) def test_mimo_mul_constant(self, wood_berry): - G = wood_berry * 2.7 - assert_delayLTI(G, julia_json["TestOperators"]["test_mimo_mul_constant"]) + assert_delayLTI( + wood_berry * 2.7, + julia_json["TestOperators"]["test_mimo_mul_constant"] + ) class TestDelayLtiMethods: @@ -141,8 +172,10 @@ def test_feedback(self, request, key, delay_siso_tf): assert_delayLTI(H, julia_results[key]) def test_mimo_feedback(self, wood_berry): - H = wood_berry.feedback(wood_berry) - assert_delayLTI(H, julia_json["TestDelayLtiMethods"]["test_mimo_feedback"]) + G = wood_berry.feedback(wood_berry) + assert_delayLTI( + G, julia_json["TestDelayLtiMethods"]["test_mimo_feedback"] + ) def test_siso_freq_resp(self, delay_siso_tf): from control.lti import frequency_response @@ -165,38 +198,46 @@ def test_tito_freq_response(self, wood_berry): resp = frequency_response(wood_berry, w).complex assert np.allclose( np.real(resp[0][0]), - julia_json["TestDelayLtiMethods"]["test_tito_freq_response"]["r11"]["real"], + julia_json["TestDelayLtiMethods"] + ["test_tito_freq_response"]["r11"]["real"], ) assert np.allclose( np.imag(resp[0][0]), - julia_json["TestDelayLtiMethods"]["test_tito_freq_response"]["r11"]["imag"], + julia_json["TestDelayLtiMethods"] + ["test_tito_freq_response"]["r11"]["imag"], ) assert np.allclose( np.real(resp[0][1]), - julia_json["TestDelayLtiMethods"]["test_tito_freq_response"]["r12"]["real"], + julia_json["TestDelayLtiMethods"] + ["test_tito_freq_response"]["r12"]["real"], ) assert np.allclose( np.imag(resp[0][1]), - julia_json["TestDelayLtiMethods"]["test_tito_freq_response"]["r12"]["imag"], + julia_json["TestDelayLtiMethods"] + ["test_tito_freq_response"]["r12"]["imag"], ) assert np.allclose( np.real(resp[1][0]), - julia_json["TestDelayLtiMethods"]["test_tito_freq_response"]["r21"]["real"], + julia_json["TestDelayLtiMethods"] + ["test_tito_freq_response"]["r21"]["real"], ) assert np.allclose( np.imag(resp[1][0]), - julia_json["TestDelayLtiMethods"]["test_tito_freq_response"]["r21"]["imag"], + julia_json["TestDelayLtiMethods"] + ["test_tito_freq_response"]["r21"]["imag"], ) assert np.allclose( np.real(resp[1][1]), - julia_json["TestDelayLtiMethods"]["test_tito_freq_response"]["r22"]["real"], + julia_json["TestDelayLtiMethods"] + ["test_tito_freq_response"]["r22"]["real"], ) assert np.allclose( np.imag(resp[1][1]), - julia_json["TestDelayLtiMethods"]["test_tito_freq_response"]["r22"]["imag"], + julia_json["TestDelayLtiMethods"] + ["test_tito_freq_response"]["r22"]["imag"], ) def test_call(self): From 4870463ba2d6e128ce5baa6b847e7c084be49a63 Mon Sep 17 00:00:00 2001 From: MythasNauveili Date: Mon, 12 May 2025 21:29:26 +0200 Subject: [PATCH 15/16] implement delay case in input_output_response, move and test issiso for delayLTI to iosys.py --- control/dde.py | 27 +++++++++++++++++---------- control/delaylti.py | 5 ----- control/iosys.py | 7 ++++++- control/nlsys.py | 10 +++++++++- control/tests/dde_test.py | 26 ++++++++++++++++++++++++++ control/tests/delay_lti_test.py | 4 ++++ 6 files changed, 62 insertions(+), 17 deletions(-) diff --git a/control/dde.py b/control/dde.py index 26786995b..cbb9b3cf4 100644 --- a/control/dde.py +++ b/control/dde.py @@ -5,7 +5,7 @@ This module contains a minimal implementation of a delay differential equation (DDE) solver using the Method of Steps (MoS) approach and scipy's solve_ivp function. -The solver is designed to handle delayed +The solver is designed to handle delayed linear time-invariant (delayLTI) systems. """ @@ -19,7 +19,8 @@ def dde_response( delay_sys, T, U=0, X0=0, params=None, - transpose=False, return_x=False, squeeze=None + transpose=False, return_x=False, squeeze=None, + t_eval=None ): """Compute the output of a delay linear system given the input. @@ -105,7 +106,10 @@ def dde_response( xout[:, 0] = X0 yout = np.zeros((n_outputs, n_steps)) tout = T - xout, yout = _solve_dde(delay_sys, T, U, X0, dt) + + if t_eval is None: + t_eval = T + xout, yout = _solve_dde(delay_sys, T, U, X0, t_eval) return TimeResponseData( tout, @@ -292,7 +296,7 @@ def _dde_wrapper(t, x, A, B1, B2, C2, D21, tau_list, u_func, history_x): return dxdt.flatten() -def _solve_dde(delay_sys, T, U, X0, dt): +def _solve_dde(delay_sys, T, U, X0, t_eval): """ Solving delay differential equation using Method Of Steps. @@ -307,9 +311,8 @@ def _solve_dde(delay_sys, T, U, X0, dt): Input array giving input at each time in `T`. X0 : array_like or float, default=0. Initial condition. - dt : float # Unused beyond T check - Time step of the `T` array. Used to verify `T` is uniformly spaced. - Not directly used as integration step by `solve_ivp`. + t_eval : array-list, optional + List of times at which the time response should be computed. Returns ------- @@ -319,11 +322,15 @@ def _solve_dde(delay_sys, T, U, X0, dt): Array containing the output vector at each time step. """ - intial_history_func = lambda t: np.zeros(X0.shape) + + def initial_history_func(t): + """Initial history function for the DDE solver.""" + return np.zeros(X0.shape) + t0, tf = T[0], T[-1] u_func = _pchip_interp_u(T, U) - history_x = _DDEHistory(intial_history_func, t0) # to access x(t-tau) + history_x = _DDEHistory(initial_history_func, t0) # to access x(t-tau) current_t = 0 current_x = np.asarray(X0).flatten() @@ -350,7 +357,7 @@ def _solve_dde(delay_sys, T, U, X0, dt): t_stop = min(discontinuity_times) if discontinuity_times else tf if not np.isclose(t_stop, tf): discontinuity_times.remove(t_stop) - local_t_eval = [t for t in T if current_t < t <= t_stop] + local_t_eval = [t for t in t_eval if current_t < t <= t_stop] sol_segment = solve_ivp( fun=_dde_wrapper, diff --git a/control/delaylti.py b/control/delaylti.py index b2e76fc08..50a372e35 100644 --- a/control/delaylti.py +++ b/control/delaylti.py @@ -570,11 +570,6 @@ def feedback(self, other=1, sign=-1): clsys_part = PartitionedStateSpace(clsys_ss, nu1=n_r, ny1=self.ny) return DelayLTI(clsys_part, taus) - def issiso(self): - """Check if the system is single-input, single-output.""" - # Based on EXTERNAL dimensions - return self.nu == 1 and self.ny == 1 - def __call__(self, x, squeeze=False, warn_infinite=True): """Evaluate the frequency response of the system. diff --git a/control/iosys.py b/control/iosys.py index 29f5bfefb..d7b32d977 100644 --- a/control/iosys.py +++ b/control/iosys.py @@ -758,7 +758,12 @@ def isdtime(self, strict=False): def issiso(self): """Check to see if a system is single input, single output.""" - return self.ninputs == 1 and self.noutputs == 1 + from .delaylti import DelayLTI + if isinstance(self, DelayLTI): + # DelayLTI special case: external and internal inputs/outputs + return self.nu == 1 and self.ny == 1 + else: + return self.ninputs == 1 and self.noutputs == 1 # Test to see if a system is SISO diff --git a/control/nlsys.py b/control/nlsys.py index 30f06f819..9da21021a 100644 --- a/control/nlsys.py +++ b/control/nlsys.py @@ -23,6 +23,7 @@ from . import config from .config import _process_param, _process_kwargs +from .dde import dde_response from .iosys import InputOutputSystem, _parse_spec, _process_iosys_keywords, \ common_timebase, iosys_repr, isctime, isdtime from .timeresp import TimeResponseData, TimeResponseList, \ @@ -1580,6 +1581,7 @@ def input_output_response( results. """ + from .delaylti import DelayLTI # # Process keyword arguments # @@ -1626,7 +1628,7 @@ def input_output_response( return TimeResponseList(responses) # Sanity checking on the input - if not isinstance(sys, NonlinearIOSystem): + if not (isinstance(sys, NonlinearIOSystem) or isinstance(sys, DelayLTI)): raise TypeError("System of type ", type(sys), " not valid") # Compute the time interval and number of steps @@ -1702,6 +1704,12 @@ def input_output_response( # Process initial states X0, nstates = _process_vector_argument(X0, "X0", sys.nstates) + # Case DelayLTI + if isinstance(sys, DelayLTI): + return dde_response( + sys, T, U, X0, t_eval=t_eval, params=params + ) + # Update the parameter values (prior to evaluating outfcn) sys._update_params(params) diff --git a/control/tests/dde_test.py b/control/tests/dde_test.py index a4b57c696..64c065ef1 100644 --- a/control/tests/dde_test.py +++ b/control/tests/dde_test.py @@ -227,3 +227,29 @@ def test_mimo_forced_response(self, wood_berry, plot=False): assert np.allclose(resp.y[0], hand_delayed_resp_y1, atol=1e-5) assert np.allclose(resp.y[1], hand_delayed_resp_y2, atol=1e-5) + + + def test_input_output_response(self, delay_siso_tf, wood_berry): + from control.nlsys import input_output_response + from control.timeresp import forced_response + + timepts = np.linspace(0, 10, 1001) + + inputs_siso = np.sin(timepts) + io_resp_siso = input_output_response( + delay_siso_tf, timepts=timepts, inputs=inputs_siso + ) + forced_resp_siso = forced_response( + delay_siso_tf, timepts=timepts, inputs=inputs_siso + ) + assert np.allclose(io_resp_siso.y[0], forced_resp_siso.y[0]) + + inputs_mimo = np.array([np.sin(timepts), np.cos(timepts)]) + io_resp_mimo = input_output_response( + wood_berry, timepts=timepts, inputs=inputs_mimo + ) + forced_resp_mimo = forced_response( + wood_berry, timepts=timepts, inputs=inputs_mimo + ) + assert np.allclose(io_resp_mimo.y[0], forced_resp_mimo.y[0]) + assert np.allclose(io_resp_mimo.y[1], forced_resp_mimo.y[1]) diff --git a/control/tests/delay_lti_test.py b/control/tests/delay_lti_test.py index d443ab8a0..0b2786608 100644 --- a/control/tests/delay_lti_test.py +++ b/control/tests/delay_lti_test.py @@ -259,3 +259,7 @@ def test_cat(self, cat_func, expected_A, expected_tau): dlti_cat = cat_func(dlti1, dlti2) assert np.allclose(dlti_cat.P.A, np.array(expected_A)) assert np.allclose(dlti_cat.tau, np.array(expected_tau)) + + def test_issiso(self, delay_siso_tf, wood_berry): + assert delay_siso_tf.issiso() + assert not wood_berry.issiso() From 115064642a3e8ac649981afeae8aa733c4d776c2 Mon Sep 17 00:00:00 2001 From: MythasNauveili Date: Tue, 13 May 2025 08:15:57 +0200 Subject: [PATCH 16/16] remove forgotten debug print in timeresp, and unused imports in delay_test --- control/tests/delay_test.py | 3 --- control/timeresp.py | 8 -------- 2 files changed, 11 deletions(-) diff --git a/control/tests/delay_test.py b/control/tests/delay_test.py index 995efb128..65571b727 100644 --- a/control/tests/delay_test.py +++ b/control/tests/delay_test.py @@ -9,9 +9,6 @@ from control.delay import pade -from control.delaylti import delay -from control.xferfcn import tf - class TestPade: """Test Pade approx diff --git a/control/timeresp.py b/control/timeresp.py index 1c24d76a9..7144bdb6e 100644 --- a/control/timeresp.py +++ b/control/timeresp.py @@ -1299,12 +1299,6 @@ def forced_response( for i in range(1, n_steps): xout[:, i] = Ad @ xout[:, i - 1] + Bd0 @ U[:, i - 1] + Bd1 @ U[:, i] - # debug print - if i < 10: - print( - "dxdt = ", - (Ad @ xout[:, i - 1] + Bd0 @ U[:, i - 1] + Bd1 @ U[:, i]), - ) yout = C @ xout + D @ U tout = T @@ -1645,8 +1639,6 @@ def step_response( U = np.zeros((sys.ninputs, T.size)) U[i, :] = np.ones_like(T) - # print(U) - response = forced_response( sys, T,