From 37988c651479597225b377b7766c3281965bb37b Mon Sep 17 00:00:00 2001 From: uristern123 <93463615+uristern123@users.noreply.github.com> Date: Fri, 25 Aug 2023 12:11:00 +0200 Subject: [PATCH 1/3] Added the keras to RModel python parser --- .../_pythonization/_tmva/_rmodel_keras.py | 1012 +++++++++++++++++ 1 file changed, 1012 insertions(+) create mode 100644 bindings/pyroot/pythonizations/python/ROOT/_pythonization/_tmva/_rmodel_keras.py diff --git a/bindings/pyroot/pythonizations/python/ROOT/_pythonization/_tmva/_rmodel_keras.py b/bindings/pyroot/pythonizations/python/ROOT/_pythonization/_tmva/_rmodel_keras.py new file mode 100644 index 0000000000000..b956b5405eae0 --- /dev/null +++ b/bindings/pyroot/pythonizations/python/ROOT/_pythonization/_tmva/_rmodel_keras.py @@ -0,0 +1,1012 @@ +from tensorflow import keras +import os +import ROOT +import numpy as np +import math +import time +from .. import pythonization +from cppyy import gbl as gbl_namespace + +def MakeKerasIdentity(layer): + input = layer['layerInput'] + output = layer['layerOutput'] + fLayerType = layer_data['layerDType'] + fLayerInputName = input[0] + fLayerOutputName = output[0] + if gbl_namespace.TMVA.Experimental.SOFIE.ConvertStringToType(fLayerDType) == gbl_namespace.TMVA.Experimental.SOFIE.ETensorType.FLOAT: + op = gbl_namespace.TMVA.Experimental.SOFIE.ROperator_Identity('float')(fLayerInputName, fLayerOutputName) + return op + else: + raise RuntimeError( + "TMVA::SOFIE - Unsupported - Operator Identity does not yet support input type " + fLayerDType + ) + +def MakeKerasBinary(layer): + input = layer['layerInput'] + output = layer['layerOutput'] + fLayerType = layer_data['layerType'] + fLayerDType = layer_data['layerDType'] + fX1 = input[0] + fX2 = input[1] + fY = output[0] + op = None + if gbl_namespace.TMVA.Experimental.SOFIE.ConvertStringToType(fLayerDType) == gbl_namespace.TMVA.Experimental.SOFIE.ETensorType.FLOAT: + if fLayerType == "Add": + op = gbl_namespace.TMVA.Experimental.SOFIE.ROperator_BasicBinary('Add')(fX1, fX2, fY) + elif fLayerType == "Subtract": + op = gbl_namespace.TMVA.Experimental.SOFIE.ROperator_BasicBinary('Sub')(fX1, fX2, fY) + else: + op = gbl_namespace.TMVA.Experimental.SOFIE.ROperator_BasicBinary('Mul')(fX1, fX2, fY) + else: + raise RuntimeError( + "TMVA::SOFIE - Unsupported - Operator Identity does not yet support input type " + fLayerDType + ) + return op + + +def MakeKerasConcat(layer): + finput = layer['layerInput'] + foutput = layer['layerOutput'] + attributes = layer['layerAttributes'] + input = [str(i) for i in finput] + output = str(foutput[0]) + axis = int(attributes["axis"]) + op = gbl_namespace.TMVA.Experimental.SOFIE.ROperator_Concat('float')(inputs, axis, 0, output) + return op + +def MakeKerasReshape(layer): + """ + Create a Keras-compatible reshaping operation using SOFIE framework. + + This function takes a dictionary representing a layer and its attributes and + constructs a Keras-compatible reshaping operation using the SOFIE framework. Assumes layerDtype is float. + + Parameters: + layer (dict): A dictionary containing layer information including input, output, + name, data type, and other relevant information. + + Returns: + ROperator_Reshape: A SOFIE framework operator representing the reshaping operation. + """ + finput = layer['layerInput'] + foutput = layer['layerOutput'] + attributes = layer['layerAttributes'] + flayername = attributes['_name'] + fOpMode =gbl_namespace.TMVA.Experimental.SOFIE.ReshapeOpMode.Reshape + fLayerDType = layer['layerDType'] + fNameData = finput[0] + fNameOutput = foutput[0] + fNameShape = flayername + "ReshapeAxes" + op = gbl_namespace.TMVA.Experimental.SOFIE.ROperator_Reshape('float')(fOpMode, 0, fNameData, fNameShape, fNameOutput) + return op + +def MakeKerasFlatten(layer): + """ + Create a Keras-compatible flattening operation using SOFIE framework. + + This function takes a dictionary representing a layer and its attributes and + constructs a Keras-compatible flattening operation using the SOFIE framework. + Flattening is the process of converting a multi-dimensional tensor into a + one-dimensional tensor. Assumes layerDtype is float. + + Parameters: + layer (dict): A dictionary containing layer information including input, output, + name, data type, and other relevant information. + + Returns: + ROperator_Reshape: A SOFIE framework operator representing the flattening operation. + """ + finput = layer['layerInput'] + foutput = layer['layerOutput'] + attributes = layer['layerAttributes'] + flayername = attributes['_name'] + fOpMode =gbl_namespace.TMVA.Experimental.SOFIE.ReshapeOpMode.Flatten + fLayerDType = layer['layerDType'] + fNameData = finput[0] + fNameOutput = foutput[0] + fNameShape = flayername + "ReshapeAxes" + op = gbl_namespace.TMVA.Experimental.SOFIE.ROperator_Reshape('float')(fOpMode, 0, fNameData, fNameShape, fNameOutput) + return op + + +def MakeKerasBatchNorm(layer): + """ + Create a Keras-compatible batch normalization operation using SOFIE framework. + + This function takes a dictionary representing a batch normalization layer and its + attributes and constructs a Keras-compatible batch normalization operation using + the SOFIE framework. Batch normalization is used to normalize the activations of + a neural network, typically applied after the convolutional or dense layers. + + Parameters: + layer (dict): A dictionary containing layer information including input, output, + gamma, beta, moving mean, moving variance, epsilon, + momentum, data type (assumed to be float), and other relevant information. + + Returns: + ROperator_BatchNormalization: A SOFIE framework operator representing the batch normalization operation. + """ + + finput = layer['layerInput'] + foutput = layer['layerOutput'] + attributes = layer['layerAttributes'] + gamma = attributes["gamma"] + beta = attributes["beta"] + moving_mean = attributes["moving_mean"] + moving_variance = attributes["moving_variance"] + fLayerDType = layer["layerDType"] + fNX = str(finput[0]) + fNY = str(foutput[0]) + fNScale = str(gamma.name) + fNB = str(beta.name) + fNMean = str(moving_mean.name) + fNVar = str(moving_variance.name) + epsilon = attributes["epsilon"] + momentum = attributes["momentum"] + op = gbl_namespace.TMVA.Experimental.SOFIE.ROperator_BatchNormalization('float')(epsilon, momentum, 0, fNX, fNScale, fNB, fNMean, fNVar, fNY) + return op + +def MakeKerasActivation(layer): + attributes = layer['layerAttributes'] + activation = attributes['activation'] + fLayerActivation = str(activation.__name__) + if fLayerActivation in mapKerasLayer.keys(): + return mapKerasLayer[fLayerActivation](layer) + else: + raise Exception("TMVA.SOFIE - parsing keras activation layer " + fLayerActivation + " is not yet supported") + +def MakeKerasReLU(layer): + """ + Create a Keras-compatible rectified linear unit (ReLU) activation operation using SOFIE framework. + + This function takes a dictionary representing a layer and its attributes and + constructs a Keras-compatible ReLU activation operation using the SOFIE framework. + ReLU is a popular activation function that replaces all negative values in a tensor + with zero, while leaving positive values unchanged. + + Parameters: + layer (dict): A dictionary containing layer information including input, output, + and data type, which must be float. + + Returns: + ROperator_Relu: A SOFIE framework operator representing the ReLU activation operation. + """ + + finput = layer['layerInput'] + foutput = layer['layerOutput'] + fLayerDType = layer['layerDType'] + fLayerInputName = finput[0] + fLayerOutputName = foutput[0] + if gbl_namespace.TMVA.Experimental.SOFIE.ConvertStringToType(fLayerDType) == gbl_namespace.TMVA.Experimental.SOFIE.ETensorType.FLOAT: + op = gbl_namespace.TMVA.Experimental.SOFIE.ROperator_Relu('float')(fLayerInputName, fLayerOutputName) + return op + else: + raise RuntimeError( + "TMVA::SOFIE - Unsupported - Operator Relu does not yet support input type " + fLayerDType + ) + + +def MakeKerasSeLU(layer): + """ + Create a Keras-compatible scaled exponential linear unit (SeLU) activation operation using SOFIE framework. + + This function takes a dictionary representing a layer and its attributes and + constructs a Keras-compatible SeLU activation operation using the SOFIE framework. + SeLU is a type of activation function that introduces self-normalizing properties + to the neural network. + + Parameters: + layer (dict): A dictionary containing layer information including input, output, + and data type - must be float32. + + Returns: + ROperator_Selu: A SOFIE framework operator representing the SeLU activation operation. + """ + + finput = layer['layerInput'] + foutput = layer['layerOutput'] + fLayerDType = layer['layerDType'] + fLayerInputName = finput[0] + fLayerOutputName = foutput[0] + if gbl_namespace.TMVA.Experimental.SOFIE.ConvertStringToType(fLayerDType) == gbl_namespace.TMVA.Experimental.SOFIE.ETensorType.FLOAT: + op = gbl_namespace.TMVA.Experimental.SOFIE.ROperator_Selu('float')(fLayerInputName, fLayerOutputName) + return op + else: + raise RuntimeError( + "TMVA::SOFIE - Unsupported - Operator Selu does not yet support input type " + fLayerDType + ) + + +def MakeKerasSigmoid(layer): + """ + Create a Keras-compatible sigmoid activation operation using SOFIE framework. + + This function takes a dictionary representing a layer and its attributes and + constructs a Keras-compatible sigmoid activation operation using the SOFIE framework. + Sigmoid is a commonly used activation function that maps input values to the range + between 0 and 1, providing a way to introduce non-linearity in neural networks. + + Parameters: + layer (dict): A dictionary containing layer information including input, output, + and data type - must be float. + + Returns: + ROperator_Sigmoid: A SOFIE framework operator representing the sigmoid activation operation. + """ + + finput = layer['layerInput'] + foutput = layer['layerOutput'] + fLayerDType = layer['layerDType'] + fLayerInputName = finput[0] + fLayerOutputName = foutput[0] + if gbl_namespace.TMVA.Experimental.SOFIE.ConvertStringToType(fLayerDType) == gbl_namespace.TMVA.Experimental.SOFIE.ETensorType.FLOAT: + op = gbl_namespace.TMVA.Experimental.SOFIE.ROperator_Sigmoid('float')(fLayerInputName, fLayerOutputName) + return op + else: + raise RuntimeError( + "TMVA::SOFIE - Unsupported - Operator Sigmoid does not yet support input type " + fLayerDType + ) + + +def MakeKerasSoftmax(layer): + """ + Create a Keras-compatible softmax activation operation using SOFIE framework. + + This function takes a dictionary representing a layer and its attributes and + constructs a Keras-compatible softmax activation operation using the SOFIE framework. + Softmax is an activation function that converts input values into a probability + distribution, often used in the output layer of a neural network for multi-class + classification tasks. + + Parameters: + layer (dict): A dictionary containing layer information including input, output, + and data type - must be float. + + Returns: + ROperator_Softmax: A SOFIE framework operator representing the softmax activation operation. + """ + + finput = layer['layerInput'] + foutput = layer['layerOutput'] + fLayerDType = layer['layerDType'] + fLayerInputName = finput[0] + fLayerOutputName = foutput[0] + if gbl_namespace.TMVA.Experimental.SOFIE.ConvertStringToType(fLayerDType) == gbl_namespace.TMVA.Experimental.SOFIE.ETensorType.FLOAT: + op = gbl_namespace.TMVA.Experimental.SOFIE.ROperator_Softmax('float')(-1, fLayerInputName, fLayerOutputName) + return op + else: + raise RuntimeError( + "TMVA::SOFIE - Unsupported - Operator Softmax does not yet support input type " + fLayerDType + ) + + +def MakeKerasLeakyRelu(layer): + """ + Create a Keras-compatible Leaky ReLU activation operation using SOFIE framework. + + This function takes a dictionary representing a layer and its attributes and + constructs a Keras-compatible Leaky ReLU activation operation using the SOFIE framework. + Leaky ReLU is a variation of the ReLU activation function that allows small negative + values to pass through, introducing non-linearity while preventing "dying" neurons. + + Parameters: + layer (dict): A dictionary containing layer information including input, output, + attributes, and data type - must be float. + + Returns: + ROperator_LeakyRelu: A SOFIE framework operator representing the Leaky ReLU activation operation. + """ + + finput = layer['layerInput'] + foutput = layer['layerOutput'] + fLayerDType = layer['layerDType'] + fLayerInputName = finput[0] + fLayerOutputName = foutput[0] + attributes = layer['layerAttributes'] + fAlpha = float(attributes["alpha"]) + if gbl_namespace.TMVA.Experimental.SOFIE.ConvertStringToType(fLayerDType) == gbl_namespace.TMVA.Experimental.SOFIE.ETensorType.FLOAT: + op = gbl_namespace.TMVA.Experimental.SOFIE.ROperator_LeakyRelu('float')(fAlpha, fLayerInputName, fLayerOutputName) + return op + else: + raise RuntimeError( + "TMVA::SOFIE - Unsupported - Operator LeakyRelu does not yet support input type " + fLayerDType + ) + + +def MakeKerasTanh(layer): + """ + Create a Keras-compatible hyperbolic tangent (tanh) activation operation using SOFIE framework. + + This function takes a dictionary representing a layer and its attributes and + constructs a Keras-compatible tanh activation operation using the SOFIE framework. + Tanh is an activation function that squashes input values to the range between -1 and 1, + introducing non-linearity in neural networks. + + Parameters: + layer (dict): A dictionary containing layer information including input, output, + and data type - must be float. + + Returns: + ROperator_Tanh: A SOFIE framework operator representing the tanh activation operation. + """ + + finput = layer['layerInput'] + foutput = layer['layerOutput'] + fLayerDType = layer['layerDType'] + fLayerInputName = finput[0] + fLayerOutputName = foutput[0] + if gbl_namespace.TMVA.Experimental.SOFIE.ConvertStringToType(fLayerDType) == gbl_namespace.TMVA.Experimental.SOFIE.ETensorType.FLOAT: + op = gbl_namespace.TMVA.Experimental.SOFIE.ROperator_Tanh('float')(fLayerInputName, fLayerOutputName) + return op + else: + raise RuntimeError( + "TMVA::SOFIE - Unsupported - Operator Tanh does not yet support input type " + fLayerDType + ) + + +def MakeKerasSwish(layer): + """ + Create a Keras-compatible swish activation operation using SOFIE framework. + + This function takes a dictionary representing a layer and its attributes and + constructs a Keras-compatible swish activation operation using the SOFIE framework. + Swish is an activation function that aims to combine the benefits of ReLU and sigmoid, + allowing some non-linearity while still keeping positive values unbounded. + + Parameters: + layer (dict): A dictionary containing layer information including input, output, + and data type. + + Returns: + ROperator_Swish: A SOFIE framework operator representing the swish activation operation. + """ + + finput = layer['layerInput'] + foutput = layer['layerOutput'] + fLayerDType = layer['layerDType'] + fLayerInputName = finput[0] + fLayerOutputName = foutput[0] + if gbl_namespace.TMVA.Experimental.SOFIE.ConvertStringToType(fLayerDType) == gbl_namespace.TMVA.Experimental.SOFIE.ETensorType.FLOAT: + op = gbl_namespace.TMVA.Experimental.SOFIE.ROperator_Swish('float')(fLayerInputName, fLayerOutputName) + return op + else: + raise RuntimeError( + "TMVA::SOFIE - Unsupported - Operator Swish does not yet support input type " + fLayerDType + ) + + +def MakeKerasPermute(layer): + """ + Create a Keras-compatible permutation operation using SOFIE framework. + + This function takes a dictionary representing a layer and its attributes and + constructs a Keras-compatible permutation operation using the SOFIE framework. + Permutation is an operation that rearranges the dimensions of a tensor based on + specified dimensions. + + Parameters: + layer (dict): A dictionary containing layer information including input, output, + attributes, and data type - must be float. + + Returns: + ROperator_Transpose: A SOFIE framework operator representing the permutation operation. + """ + finput = layer['layerInput'] + foutput = layer['layerOutput'] + fLayerDType = layer['layerDType'] + fLayerInputName = finput[0] + fLayerOutputName = foutput[0] + attributes = layer['layerAttributes'] + fAttributePermute = np.asarray(attributes["dims"]) + if gbl_namespace.TMVA.Experimental.SOFIE.ConvertStringToType(fLayerDType) == gbl_namespace.TMVA.Experimental.SOFIE.ETensorType.FLOAT: + if len(fAttributePermute) > 0: + op = gbl_namespace.TMVA.Experimental.SOFIE.ROperator_Transpose('float')(fPermuteDims, fLayerInputName, fLayerOutputName) + else: + op = gbl_namespace.TMVA.Experimental.SOFIE.ROperator_Transpose('float')(fLayerInputName, fLayerOutputName) + return op + else: + raise RuntimeError( + "TMVA::SOFIE - Unsupported - Operator Transpose does not yet support input type " + fLayerDType + ) + + +def MakeKerasDense(layer): + """ + Create a Keras-compatible dense (fully connected) layer operation using SOFIE framework. + + This function takes a dictionary representing a dense layer and its attributes and + constructs a Keras-compatible dense (fully connected) layer operation using the SOFIE framework. + A dense layer applies a matrix multiplication between the input tensor and weight matrix, + and adds a bias term. + + Parameters: + layer (dict): A dictionary containing layer information including input, output, + layer weight names, and data type - must be float. + + Returns: + ROperator_Gemm: A SOFIE framework operator representing the dense layer operation. + """ + finput = layer['layerInput'] + foutput = layer['layerOutput'] + fLayerDType = layer['layerDType'] + fLayerInputName = finput[0] + fLayerOutputName = foutput[0] + fWeightNames = layer["layerWeight"] + fKernelName = fWeightNames[0] + fBiasName = fWeightNames[1] + attr_alpha = 1.0 + attr_beta = 1.0 + attr_transA = 0 + attr_transB = 0 + if gbl_namespace.TMVA.Experimental.SOFIE.ConvertStringToType(fLayerDType) == gbl_namespace.TMVA.Experimental.SOFIE.ETensorType.FLOAT: + op = gbl_namespace.TMVA.Experimental.SOFIE.ROperator_Gemm['float'](attr_alpha, attr_beta, attr_transA, attr_transB, fLayerInputName, fKernelName, fBiasName, fLayerOutputName) + return op + else: + raise RuntimeError( + "TMVA::SOFIE - Unsupported - Operator Gemm does not yet support input type " + fLayerDType + ) + + +def MakeKerasConv(layer): + """ + Create a Keras-compatible convolutional layer operation using SOFIE framework. + + This function takes a dictionary representing a convolutional layer and its attributes and + constructs a Keras-compatible convolutional layer operation using the SOFIE framework. + A convolutional layer applies a convolution operation between the input tensor and a set + of learnable filters (kernels). + + Parameters: + layer (dict): A dictionary containing layer information including input, output, + data type (must be float), weight and bias name, kernel size, dilations, padding and strides. + When padding is same (keep in the same dimensions), the padding shape is calculated. + + Returns: + ROperator_Conv: A SOFIE framework operator representing the convolutional layer operation. + """ + finput = layer['layerInput'] + foutput = layer['layerOutput'] + fLayerDType = layer['layerDType'] + fLayerInputName = finput[0] + fLayerOutputName = foutput[0] + attributes = layer['layerAttributes'] + fWeightNames = layer["layerWeight"] + fKernelName = fWeightNames[0] + fBiasName = fWeightNames[1] + fAttrDilations = attributes["dilation_rate"] + fAttrGroup = int(attributes["groups"]) + fAttrKernelShape = attributes["kernel_size"] + fKerasPadding = str(attributes["padding"]) + fAttrStrides = attributes["strides"] + + if fKerasPadding == 'valid': + fAttrAutopad = 'VALID' + elif fKerasPadding == 'same': + fAttrAutopad = 'NOTSET' + fInputShape = attributes['_build_input_shape'] + inputHeight = fInputShape[1] + inputWidth = fInputShape[2] + outputHeight = math.ceil(float(inputHeight) / float(fAttrStrides[0])) + outputWidth = math.ceil(float(inputWidth) / float(fAttrStrides[1])) + padding_height = max((outputHeight - 1) * fAttrStrides[0] + fAttrKernelShape[0] - inputHeight, 0) + padding_width = max((outputWidth - 1) * fAttrStrides[1] + fAttrKernelShape[1] - inputWidth, 0) + padding_top = math.floor(padding_height / 2) + padding_bottom = padding_height - padding_top + padding_left = math.floor(padding_width / 2) + padding_right = padding_width - padding_left + fAttrPads = [padding_top, padding_bottom, padding_left, padding_right] + else: + raise RuntimeError( + "TMVA::SOFIE - RModel Keras Parser doesn't yet supports Convolution layer with padding " + fKerasPadding + ) + if gbl_namespace.TMVA.Experimental.SOFIE.ConvertStringToType(fLayerDType) == gbl_namespace.TMVA.Experimental.SOFIE.ETensorType.FLOAT: + op = gbl_namespace.TMVA.Experimental.SOFIE.ROperator_Conv['float'](fAttrAutopad, fAttrDilations, fAttrGroup, + fAttrKernelShape, fAttrPads, fAttrStrides, + fLayerInputName, fKernelName, fBiasName, + fLayerOutputName) + return op + else: + raise RuntimeError( + "TMVA::SOFIE - Unsupported - Operator Gemm does not yet support input type " + fLayerDType + ) + + +def MakeKerasPooling(layer): + """ + Create a Keras-compatible pooling layer operation using SOFIE framework. + + This function takes a dictionary representing a pooling layer and its attributes and + constructs a Keras-compatible pooling layer operation using the SOFIE framework. + Pooling layers downsample the input tensor by selecting a representative value from + a group of neighboring values, either by taking the maximum or the average. + + Parameters: + layer (dict): A dictionary containing layer information including input, output, + layer type (the selection rule), the pool size, padding, strides, and data type. + + Returns: + ROperator_Pool: A SOFIE framework operator representing the pooling layer operation. + """ + + #extract attributes from layer data + fLayerDType = layer['layerDType'] + finput = layer['layerInput'] + foutput = layer['layerOutput'] + fLayerType = layer['layerType'] + fLayerInputName = finput[0] + fLayerOutputName = foutput[0] + pool_atrr =gbl_namespace.TMVA.Experimental.SOFIE.RAttributes_Pool() + attributes = layer['layerAttributes'] + fAttrKernelShape = attributes["pool_size"] + fKerasPadding = str(attributes["padding"]) + fAttrStrides = attributes["strides"] + if fKerasPadding == 'valid': + fAttrAutopad = 'VALID' + elif fKerasPadding == 'same': + fAttrAutopad = 'NOTSET' + else: + raise RuntimeError( + "TMVA::SOFIE - RModel Keras Parser doesn't yet supports Convolution layer with padding " + fKerasPadding + ) + pool_atrr.dilations = list(fAttrDilations) + pool_atrr.strides = list(fAttrStrides) + pool_atrr.pads = fpads + pool_atrr.kernel_shape = list(fAttrKernelShape) + pool_atrr.auto_pad = fAttrAutopad + + #choose pooling type + if fLayerType.startswith("Max"): + PoolMode = gbl_namespace.TMVA.Experimental.SOFIE.PoolOpMode.MaxPool + elif fLayerType.startswith("AveragePool"): + PoolMode = gbl_namespace.TMVA.Experimental.SOFIE.PoolOpMode.AveragePool + elif fLayerType.startswith("GlobalAverage"): + PoolMode = gbl_namespace.TMVA.Experimental.SOFIE.PoolOpMode.GloabalAveragePool + else: + raise RuntimeError( + "TMVA::SOFIE - Unsupported - Operator poolong does not yet support pooling type " + fLayerType + ) + + #Set default values + fAttrDilations = (1,1) + fpads = [0,0,0,0,0,0] + pool_atrr.ceil_mode = 0 + pool_atrr.count_include_pad = 0 + pool_atrr.storage_order = 0 + + #create operator + if gbl_namespace.TMVA.Experimental.SOFIE.ConvertStringToType(fLayerDType) == gbl_namespace.TMVA.Experimental.SOFIE.ETensorType.FLOAT: + op = gbl_namespace.TMVA.Experimental.SOFIE.ROperator_Pool['float'](PoolMode, pool_atrr, fLayerInputName, fLayerOutputName) + return op + else: + raise RuntimeError( + "TMVA::SOFIE - Unsupported - Operator Pooling does not yet support input type " + fLayerDType + ) + + +def MakeKerasRNN(layer): + """ + Create a Keras-compatible RNN (Recurrent Neural Network) layer operation using SOFIE framework. + + This function takes a dictionary representing an RNN layer and its attributes and + constructs a Keras-compatible RNN layer operation using the SOFIE framework. + RNN layers are used to model sequences, and they maintain internal states that are + updated through recurrent connections. + + Parameters: + layer (dict): A dictionary containing layer information including input, output, + layer type, attributes, weights, and data type - must be float. + + Returns: + ROperator_RNN: A SOFIE framework operator representing the RNN layer operation. + """ + + # Extract required information from the layer dictionary + fLayerDType = layer['layerDType'] + finput = layer['layerInput'] + foutput = layer['layerOutput'] + attributes = layer['layerAttributes'] + direction = attributes['direction'] + hidden_size = attributes["hidden_size"] + layout = int(attributes["layout"]) + nameX = finput[0] + nameY = foutput[0] + nameW = layer["layerWeight"][0] + nameR = layer["layerWeight"][1] + if len(layer["layerWeight"]) > 2: + nameB = layer["layerWeight"][2] + else: + nameB = "" + + # Check if the provided activation function is supported + fPActivation = attributes['activation'] + if not fPActivation.__name__ in ['relu', 'sigmoid', 'tanh', 'softsign', 'softplus']: #avoiding functions with parameters + raise RuntimeError( + "TMVA::SOFIE - Unsupported - Operator RNN does not yet support activation function " + fPActivation.__name__ + ) + activations = [fPActivation.__name__[0].upper()+fPActivation.__name__[1:]] + + #set default values + activation_alpha = {} + activation_beta = {} + clip = 0.0 + nameY_h = "" + nameInitial_h = "" + name_seq_len = "" + + if gbl_namespace.TMVA.Experimental.SOFIE.ConvertStringToType(fLayerDType) == gbl_namespace.TMVA.Experimental.SOFIE.ETensorType.FLOAT: + if layer['layerType'] == "SimpleRNN": + op = gbl_namespace.TMVA.Experimental.SOFIE.ROperator_RNN['float'](activation_alpha, activation_beta, activations, clip, direction, hidden_size, layout, nameX, nameW, nameR, nameB, name_seq_len, nameInitial_h, nameY, nameY_h) + + elif layer['layerType'] == "GRU": + #an additional activation function is required, given by the user + activations.insert(0,attributes['recurrent_activation']) + + #new variable needed: + linear_before_reset = attributes['linear_before_reset'] + op = gbl_namespace.TMVA.Experimental.SOFIE.ROperator_GRU['float'](activation_alpha, activation_beta, activations, clip, direction, hidden_size, layout, linear_before_reset, nameX, nameW, nameR, nameB, name_seq_len, nameInitial_h, nameY, nameY_h) + + elif layer['layerType'] == "LSTM": + #an additional activation function is required, the first given by the user, the second set to tanh as default + fPRecurrentActivation = attributes['recurrent_activation'] + if not fPActivation.__name__ in ['relu', 'sigmoid', 'tanh', 'softsign', 'softplus']: #avoiding functions with parameters + raise RuntimeError( + "TMVA::SOFIE - Unsupported - Operator RNN does not yet support recurrent activation function " + fPActivation.__name__ + ) + fPRecurrentActivationName = fPRecurrentActivation.__name__[0].upper()+fPRecurrentActivation.__name__[1:] + activations.insert(0,fPRecurrentActivationName) + activations.insert(2,'Tanh') + + #new variables needed: + input_forget = 0 + nameInitial_c = "" + nameP = "" #No peephole connections in keras LSTM model + nameY_c = "" + op = gbl_namespace.TMVA.Experimental.SOFIE.ROperator_LSTM['float'](activation_alpha, activation_beta, activations, clip, direction, hidden_size, input_forget, layout, nameX, nameW, nameR, nameB, name_seq_len, nameInitial_h, nameInitial_c, nameP, nameY, nameY_h, nameY_c) + + else: + raise RuntimeError( + "TMVA::SOFIE - Unsupported - Operator RNN does not yet support operator type " + layer['layerType'] + ) + return op + else: + raise RuntimeError( + "TMVA::SOFIE - Unsupported - Operator RNN does not yet support input type " + fLayerDType + ) + +#Set global dictionaries, mapping layers to corresponding functions that create their ROperator instances +mapKerasLayer = {"Activation": MakeKerasActivation, + "Permute": MakeKerasPermute, + "BatchNormalization": MakeKerasBatchNorm, + "Reshape": MakeKerasReshape, + "Flatten": MakeKerasFlatten, + "Concatenate": MakeKerasConcat, + "swish": MakeKerasSwish, + "Add": MakeKerasBinary, + "Subtract": MakeKerasBinary, + "Multiply": MakeKerasBinary, + "Softmax": MakeKerasSoftmax, + "tanh": MakeKerasTanh, + "Identity": MakeKerasIdentity, + "Dropout": MakeKerasIdentity, + "ReLU": MakeKerasReLU, + "relu": MakeKerasReLU, + "selu": MakeKerasSeLU, + "sigmoid": MakeKerasSigmoid, + "LeakyReLU": MakeKerasLeakyRelu, + "softmax": MakeKerasSoftmax, + "MaxPooling2D": MakeKerasPooling, + "SimpleRNN": MakeKerasRNN, + "GRU": MakeKerasRNN, + "LSTM": MakeKerasRNN, + } + +mapKerasLayerWithActivation = {"Dense": MakeKerasDense,"Conv2D": MakeKerasConv} + + +def add_layer_into_RModel(rmodel, layer_data): + """ + Add a Keras layer operation to an existing RModel using the SOFIE framework. + + This function takes an existing RModel and a dictionary representing a Keras layer + and its attributes, and adds the corresponding layer operation to the RModel using + the SOFIE framework. The function supports various types of Keras layers, including + those with or without activation functions. + + Parameters: + rmodel (RModel): An existing RModel to which the layer operation will be added. + layer_data (dict): A dictionary containing layer information including type, + attributes, input, output, and layer data type. + + Returns: + RModel: The updated RModel after adding the layer operation. + + Raises exception: If the provided layer type or activation function is not supported. + """ + + fLayerType = layer_data['layerType'] + + #reshape and flatten layers don't have weights, but they are needed inside the list of initialized tensor list in the Rmodel + if fLayerType == "Reshape" or fLayerType == "Flatten": + Attributes = layer_data['layerAttributes'] + LayerName = Attributes['_name'] + if fLayerType == "Reshape": + TargetShape = np.asarray(Attributes['target_shape']).astype("int") + TargetShape = np.insert(TargetShape,0,0) + else: + input_shape = layer_data['layerAttributes']['_build_input_shape'] + TargetShape = [gbl_namespace.TMVA.Experimental.SOFIE.ConvertShapeToLength(input_shape[1:])] + TargetShape = np.asarray(TargetShape) + + #since the AddInitializedTensor method in RModel requires unique pointer, we call a helper function in c++ that does the conversion from a regular pointer to unique one in c++ + rmodel.AddInitializedTensorFromPy['long'](LayerName+"ReshapeAxes",gbl_namespace.TMVA.Experimental.SOFIE.ETensorType.INT64,[len(TargetShape)], TargetShape) + + #These layers only have one operator - excluding the recurrent layers, in which the activation function(s) are included in the recurrent operator + if fLayerType in mapKerasLayer.keys(): + Attribues = layer_data['layerAttributes'] + inputs = layer_data['layerInput'] + outputs = layer_data['layerOutput'] + LayerName = Attribues['_name'] + + #Pooling layers in keras by default assume the channels dimension is the last one, + #while in onnx (and the RModel) it is the first one (other than batch size), + #so a transpose is needed before and after the pooling, if the data format is channels last (can be set to channels first by the user). + if fLayerType == 'MaxPooling2D': + if layer_data['channels_last']: + op = gbl_namespace.TMVA.Experimental.SOFIE.ROperator_Transpose('float')([0,3,1,2], inputs[0], LayerName+"PreTrans") + rmodel.AddOperatorFromPy(op) + inputs[0] = LayerName+"PreTrans" + layer_data["layerInput"] = inputs + outputs[0] = LayerName+fLayerType + layer_data['layerOutput'] = outputs + rmodel.AddOperatorFromPy(mapKerasLayer[fLayerType](layer_data)) + if fLayerType == 'MaxPooling2D': + if layer_data['channels_last']: + op = gbl_namespace.TMVA.Experimental.SOFIE.ROperator_Transpose('float')([0,2,3,1], LayerName+fLayerType, LayerName+"PostTrans") + rmodel.AddOperatorFromPy(op) + return rmodel + + #These layers require two operators - dense/conv and their activation funciton + elif fLayerType in mapKerasLayerWithActivation.keys(): + Attribues = layer_data['layerAttributes'] + LayerName = Attribues['_name'] + fPActivation = Attribues['activation'] + LayerActivation = fPActivation.__name__ + if LayerActivation in ['selu', 'sigmoid']: + rmodel.AddNeededStdLib("cmath") + + #if there is an activation function after the layer + if LayerActivation != 'linear': + outputs = layer_data['layerOutput'] + inputs = layer_data['layerInput'] + fActivationLayerOutput = outputs[0] + + #like pooling, convolutional layer from keras requires transpose before and after to match the onnx format + # if the data format is channels last (can be set to channels first by the user). + if fLayerType == 'Conv2D': + if layer_data['channels_last']: + op = gbl_namespace.TMVA.Experimental.SOFIE.ROperator_Transpose('float')([0,3,1,2], inputs[0], LayerName+"PreTrans") + rmodel.AddOperatorFromPy(op) + inputs[0] = LayerName+"PreTrans" + layer_data["layerInput"] = inputs + outputs[0] = LayerName+fLayerType + layer_data['layerOutput'] = outputs + op = mapKerasLayerWithActivation[fLayerType](layer_data) + rmodel.AddOperatorFromPy(op) + Activation_layer_input = LayerName+fLayerType + if fLayerType == 'Conv2D': + if layer_data['channels_last']: + op = gbl_namespace.TMVA.Experimental.SOFIE.ROperator_Transpose('float')([0,2,3,1], LayerName+fLayerType, LayerName+"PostTrans") + rmodel.AddOperatorFromPy(op) + Activation_layer_input = LayerName + "PostTrans" + + #Adding the activation function + inputs[0] = Activation_layer_input + outputs[0] = fActivationLayerOutput + layer_data['layerInput'] = inputs + layer_data['layerOutput'] = outputs + if not LayerActivation in mapKerasLayer.keys(): + raise Exception("TMVA.SOFIE - parsing keras activation function " + LayerActivation + " is not yet supported") + rmodel.AddOperatorFromPy(mapKerasLayer[LayerActivation](layer_data)) + + else: #there is a bug here if it is conv and the activation is linear, need to add transpose before and after + rmodel.AddOperatorFromPy(mapKerasLayerWithActivation[fLayerType](layer_data)) + return rmodel + else: + raise Exception("TMVA.SOFIE - parsing keras layer " + fLayerType + " is not yet supported") + + +def Keras_Parser_into_RModel(filename): + #Check if file exists + if not os.path.exists(filename): + raise RuntimeError("Model file {} not found!".format(filename)) + + #load model + keras_model = keras.models.load_model(modelFile) + keras_model.load_weights(modelFile) + + #create new RModel object + sep = '/' + if os.name == 'nt': + sep = '\\' + + isep = filename.rfind(sep) + filename_nodir = filename + if isep != -1: + filename_nodir = filename[isep+1:] + + ttime = time.time() + gmt_time = time.gmtime(ttime) + parsetime = time.asctime(gmt_time) + + rmodel = gbl_namespace.TMVA.Experimental.SOFIE.RModel.RModel(filename_nodir, parsetime) + + #iterate over the layers and add them to the RModel + for layer in keras_model.layers: + layer_data={} + layer_data['layerType']=layer.__class__.__name__ + layer_data['layerAttributes']=layer.__dict__ + layer_data['layerInput']=[x.name for x in layer.input] if isinstance(layer.input,list) else [layer.input.name] + layer_data['layerOutput']=[x.name for x in layer.output] if isinstance(layer.output,list) else [layer.output.name] + layer_data['layerDType']=layer.dtype + layer_data['layerWeight']=[x.name for x in layer.weights] + + #for convolutional and pooling layers we need to know the format of the data + if layer_data['layerType'] in ['Conv2D', 'MaxPooling2D']: + layer_data['channels_last'] = True if layer.data_format == 'channels_last' else False + + #for recurrent type layers we need to extract additional unique information + if layer_data['layerType'] in ["SimpleRNN", "LSTM", "GRU"]: + layer_data['layerAttributes']['activation'] = layer.activation + layer_data['layerAttributes']['direction'] = 'backward' if layer.go_backwards else 'forward' + layer_data['layerAttributes']["units"] = layer.units + layer_data['layerAttributes']["layout"] = layer.input.shape[0] is None + layer_data['layerAttributes']["hidden_size"] = layer.output.shape[-1] + + #for GRU and LSTM we need to extract an additional activation function + if layer_data['layerType'] != "SimpleRNN": + layer_data['layerAttributes']['recurrent_activation'] = layer.recurrent_activation + + #for GRU there are two variants of the reset gate location, we need to know which one is it + if layer_data['layerType'] == "GRU": + layer_data['layerAttributes']['linear_before_reset'] = 1 if layer.reset_after and layer.recurrent_activation.__name__ == "sigmoid" else 0 + + if layer_data['layerInput'][0].startswith('max_pooling2d'): + pooling_layer_name = layer_data['layerInput'][0].split('/')[0] + layer_data['layerInput'][0] = pooling_layer_name + 'PostTrans' + + fLayerType = layer_data['layerType'] + #Ignoring the input layer for models built using Keras Functional API + #NEED TO TEST KERAS FUNCTIONAL API + if(fLayerType == "InputLayer"): + continue; + + #Adding any required routines depending on the Layer types for generating inference code. + elif (fLayerType == "Dense"): + rmodel.AddBlasRoutines({"Gemm", "Gemv"}) + elif (fLayerType == "BatchNormalization"): + rmodel.AddBlasRoutines({"Copy", "Axpy"}) + elif (fLayerType == "Conv1D" or fLayerType == "Conv2D" or fLayerType == "Conv3D"): + rmodel.AddBlasRoutines({"Gemm", "Axpy"}) + rmodel = add_layer_into_RModel(rmodel, layer_data) + + # Extracting model's weights + weight = [] + for idx in range(len(keras_model.get_weights())): + weightProp = {} + weightProp['name'] = keras_model.weights[idx].name + weightProp['dtype'] = keras_model.get_weights()[idx].dtype.name + if 'conv' in keras_model.weights[idx].name and keras_model.weights[idx].shape.ndims == 4: + weightProp['value'] = keras_model.get_weights()[idx].transpose((3, 2, 0, 1)).copy() + else: + weightProp['value'] = keras_model.get_weights()[idx] + weight.append(weightProp) + + # Traversing through all the Weight tensors + for weightIter in range(len(weight)): + fWeightTensor = weight[weightIter] + fWeightName = fWeightTensor['name'] + fWeightDType =gbl_namespace.TMVA.Experimental.SOFIE.ConvertStringToType(fWeightTensor['dtype']) + fWeightTensorValue = fWeightTensor['value'] + fWeightTensorSize = 1 + fWeightTensorShape = [] + + #IS IT BATCH SIZE? CHECK ONNX + if fWeightName.startswith("simple_rnn") or fWeightName.startswith("lstm") or (fWeightName.startswith("gru") and not 'bias' in fWeightName): + fWeightTensorShape.append(1) + + # Building the shape vector and finding the tensor size + for j in range(len(fWeightTensorValue.shape)): + fWeightTensorShape.append(fWeightTensorValue.shape[j]) + fWeightTensorSize *= fWeightTensorValue.shape[j] + + if fWeightDType == gbl_namespace.TMVA.Experimental.SOFIE.ETensorType.FLOAT: + fWeightArray = fWeightTensorValue + + #weights conversion format between keras and onnx for lstm: the order of the different elements (input, output, forget, cell) inside the vector/matrix is different + if fWeightName.startswith("lstm"): + if 'kernel' in fWeightName: + units = int(fWeightArray.shape[1]/4) + W_i = fWeightArray[:, :units].copy() + W_f = fWeightArray[:, units: units * 2].copy() + W_c = fWeightArray[:, units * 2: units * 3].copy() + W_o = fWeightArray[:, units * 3:].copy() + fWeightArray[:, units: units * 2] = W_o + fWeightArray[:, units * 2: units * 3] = W_f + fWeightArray[:, units * 3:] = W_c + else: #bias + units = int(fWeightArray.shape[0]/4) + W_i = fWeightArray[:units].copy() + W_f = fWeightArray[units: units * 2].copy() + W_c = fWeightArray[units * 2: units * 3].copy() + W_o = fWeightArray[units * 3:].copy() + fWeightArray[units: units * 2] = W_o + fWeightArray[units * 2: units * 3] = W_f + fWeightArray[units * 3:] = W_c + + #need to make specific adjustments for recurrent weights and biases + if (fWeightName.startswith("simple_rnn") or fWeightName.startswith("lstm") or fWeightName.startswith("gru")): + #reshaping weight matrices for recurrent layers due to keras-onnx inconsistencies + if 'kernel' in fWeightName: + fWeightArray = np.transpose(fWeightArray) + fWeightTensorShape[1], fWeightTensorShape[2] = fWeightTensorShape[2], fWeightTensorShape[1] + + fData = fWeightArray.flatten() + + #the recurrent bias and the cell bias can be the same, in which case we need to add a vector of zeros for the recurrent bias + if 'bias' in fWeightName and len(fData.shape) == 1: + fWeightTensorShape[1] *= 2 + fRbias = fData.copy()*0 + fData = np.concatenate((fData,fRbias)) + + else: + fData = fWeightArray.flatten() + + rmodel.AddInitializedTensorFromPy['float'](fWeightName, gbl_namespace.TMVA.Experimental.SOFIE.ETensorType.FLOAT, fWeightTensorShape, fData) + else: + raise TypeError("Type error: TMVA SOFIE does not yet support data layer type: " + fWeightDType) + + # Extracting input tensor info + fPInputs = keras_model.input_names + fPInputShape = keras_model.input_shape if isinstance(keras_model.input_shape, list) else [keras_model.input_shape] + fPInputDType = [] + for idx in range(len(keras_model.inputs)): + fPInputDType.append(keras_model.inputs[idx].dtype.__str__()[9:-2]) + + if len(fPInputShape) == 1: + fInputName = fPInputs[0] + fInputDType =gbl_namespace.TMVA.Experimental.SOFIE.ConvertStringToType(fPInputDType[0]) + if fInputDType == gbl_namespace.TMVA.Experimental.SOFIE.ETensorType.FLOAT: + if fPInputShape[0][0] is None or fPInputShape[0][0] <= 0: + fPInputShape = list(fPInputShape[0]) + fPInputShape[0] = 1 + rmodel.AddInputTensorInfo(fInputName, gbl_namespace.TMVA.Experimental.SOFIE.ETensorType.FLOAT, fPInputShape) + rmodel.AddInputTensorName(fInputName) + else: + raise TypeError("Type error: TMVA SOFIE does not yet support data type "+TMVA.Experimental.SOFIE.ConvertStringToType(fInputDType)) + else: + #Iterating through multiple input tensors + for fInputName, fInputDType, fInputShapeTuple in zip(fPInputs, fPInputDType, fPInputShape): + fInputDType =gbl_namespace.TMVA.Experimental.SOFIE.ConvertStringToType(fInputDType) + if fInputDType == gbl_namespace.TMVA.Experimental.SOFIE.ETensorType.FLOAT: + if fInputShapeTuple[0] is None or fInputShapeTuple[0] <= 0: + fInputShapeTuple = list(fInputShapeTuple) + fInputShapeTuple[0] = 1 + print("Model does not have a defined batch size. Assuming it is 1 - input shape: ", fInputShapeTuple) + rmodel.AddInputTensorInfo(fInputName, gbl_namespace.TMVA.Experimental.SOFIE.ETensorType.FLOAT, fInputShapeTuple) + rmodel.AddInputTensorName(fInputName) + else: + raise TypeError("Type error: TMVA SOFIE does not yet support data type "+TMVA.Experimental.SOFIE.ConvertStringToType(fInputDType)) + + # Adding OutputTensorInfos + outputNames = [] + for layerName in keras_model.output_names: + outputNames.append(keras_model.get_layer(layerName).output.name) + rmodel.AddOutputTensorNameList(outputNames) + return rmodel + +@pythonization("Keras_Parser_into_RModel", ns="TMVA::Experimental") +def Keras_Parser_into_RModel(klass): + # Parameters: + # klass: class to be pythonized + klass.__init__ = Keras_Parser_into_RModel + From c70a66f82f215ea3da82106739aa633ce11db777 Mon Sep 17 00:00:00 2001 From: uristern123 <93463615+uristern123@users.noreply.github.com> Date: Fri, 25 Aug 2023 12:19:32 +0200 Subject: [PATCH 2/3] create keras2python parser test folder --- tmva/sofie/test/KerasParserTest/Readme.txt | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 tmva/sofie/test/KerasParserTest/Readme.txt diff --git a/tmva/sofie/test/KerasParserTest/Readme.txt b/tmva/sofie/test/KerasParserTest/Readme.txt new file mode 100644 index 0000000000000..f623bf7c8a2ad --- /dev/null +++ b/tmva/sofie/test/KerasParserTest/Readme.txt @@ -0,0 +1,6 @@ +This folder is used to test the python parser from keras neural networks to RModel class. +This is done by comparing the results of the inference using keras and the generated c++ code. +For each model in the folder, the Tester file will create a c++ inference code and compare the results. + +This was part of summer student internship done by Uri Stern, under the supervision of Lorenzo Moneta. +For questions/more information, please contact ustern@gmail.com. From a3386182cdf5c5fb5470dc9748827f481904013c Mon Sep 17 00:00:00 2001 From: uristern123 <93463615+uristern123@users.noreply.github.com> Date: Fri, 25 Aug 2023 12:22:07 +0200 Subject: [PATCH 3/3] Added keras2rmodel python parser tests --- .../BatchNormalizationtest.dat | 12 + .../KerasParserTest/BatchNormalizationtest.h5 | Bin 0 -> 18016 bytes .../BatchNormalizationtest.hxx | 160 ++ tmva/sofie/test/KerasParserTest/CNNtest.dat | 12 + tmva/sofie/test/KerasParserTest/CNNtest.h5 | Bin 0 -> 184536 bytes tmva/sofie/test/KerasParserTest/CNNtest.hxx | 302 +++ tmva/sofie/test/KerasParserTest/Convtest.dat | 4 + tmva/sofie/test/KerasParserTest/Convtest.h5 | Bin 0 -> 13456 bytes tmva/sofie/test/KerasParserTest/Convtest.hxx | 136 + .../sofie/test/KerasParserTest/Flattentest.h5 | Bin 0 -> 9472 bytes .../test/KerasParserTest/Flattentest.hxx | 33 + tmva/sofie/test/KerasParserTest/GRUtest.dat | 6 + tmva/sofie/test/KerasParserTest/GRUtest.h5 | Bin 0 -> 14776 bytes tmva/sofie/test/KerasParserTest/GRUtest.hxx | 187 ++ .../test/KerasParserTest/GRUtestWithBias.dat | 6 + .../test/KerasParserTest/GRUtestWithBias.h5 | Bin 0 -> 14776 bytes .../test/KerasParserTest/GRUtestWithBias.hxx | 187 ++ tmva/sofie/test/KerasParserTest/LSTMtest.dat | 6 + tmva/sofie/test/KerasParserTest/LSTMtest.h5 | Bin 0 -> 14776 bytes tmva/sofie/test/KerasParserTest/LSTMtest.hxx | 197 ++ .../test/KerasParserTest/LSTMtestWithBias.dat | 6 + .../test/KerasParserTest/LSTMtestWithBias.h5 | Bin 0 -> 14776 bytes .../test/KerasParserTest/LSTMtestWithBias.hxx | 197 ++ .../test/KerasParserTest/LeakyRelutest.dat | 4 + .../test/KerasParserTest/LeakyRelutest.h5 | Bin 0 -> 13456 bytes .../test/KerasParserTest/LeakyRelutest.hxx | 97 + tmva/sofie/test/KerasParserTest/MLPtest.dat | 20 + tmva/sofie/test/KerasParserTest/MLPtest.h5 | Bin 0 -> 75016 bytes tmva/sofie/test/KerasParserTest/MLPtest.hxx | 311 +++ .../test/KerasParserTest/MaxPooltest.dat | 4 + .../sofie/test/KerasParserTest/MaxPooltest.h5 | Bin 0 -> 15128 bytes .../test/KerasParserTest/MaxPooltest.hxx | 155 ++ tmva/sofie/test/KerasParserTest/Relutest.dat | 4 + tmva/sofie/test/KerasParserTest/Relutest.h5 | Bin 0 -> 12584 bytes tmva/sofie/test/KerasParserTest/Relutest.hxx | 96 + tmva/sofie/test/KerasParserTest/Selutest.dat | 4 + tmva/sofie/test/KerasParserTest/Selutest.h5 | Bin 0 -> 12584 bytes tmva/sofie/test/KerasParserTest/Selutest.hxx | 95 + .../test/KerasParserTest/Sigmoidtest.dat | 4 + .../sofie/test/KerasParserTest/Sigmoidtest.h5 | Bin 0 -> 12584 bytes .../test/KerasParserTest/Sigmoidtest.hxx | 95 + .../test/KerasParserTest/SimpleRNNtest.dat | 6 + .../test/KerasParserTest/SimpleRNNtest.h5 | Bin 0 -> 14776 bytes .../test/KerasParserTest/SimpleRNNtest.hxx | 143 ++ .../KerasParserTest/SimpleRNNtestWithBias.dat | 6 + .../KerasParserTest/SimpleRNNtestWithBias.h5 | Bin 0 -> 14776 bytes .../KerasParserTest/SimpleRNNtestWithBias.hxx | 143 ++ .../test/KerasParserTest/Softmaxtest.dat | 4 + .../sofie/test/KerasParserTest/Softmaxtest.h5 | Bin 0 -> 12584 bytes .../test/KerasParserTest/Softmaxtest.hxx | 104 + tmva/sofie/test/KerasParserTest/Swishtest.h5 | Bin 0 -> 12584 bytes tmva/sofie/test/KerasParserTest/Tanhtest.dat | 4 + tmva/sofie/test/KerasParserTest/Tanhtest.h5 | Bin 0 -> 12584 bytes tmva/sofie/test/KerasParserTest/Tanhtest.hxx | 97 + tmva/sofie/test/KerasParserTest/Tester.ipynb | 2192 +++++++++++++++++ 55 files changed, 5039 insertions(+) create mode 100644 tmva/sofie/test/KerasParserTest/BatchNormalizationtest.dat create mode 100644 tmva/sofie/test/KerasParserTest/BatchNormalizationtest.h5 create mode 100644 tmva/sofie/test/KerasParserTest/BatchNormalizationtest.hxx create mode 100644 tmva/sofie/test/KerasParserTest/CNNtest.dat create mode 100644 tmva/sofie/test/KerasParserTest/CNNtest.h5 create mode 100644 tmva/sofie/test/KerasParserTest/CNNtest.hxx create mode 100644 tmva/sofie/test/KerasParserTest/Convtest.dat create mode 100644 tmva/sofie/test/KerasParserTest/Convtest.h5 create mode 100644 tmva/sofie/test/KerasParserTest/Convtest.hxx create mode 100644 tmva/sofie/test/KerasParserTest/Flattentest.h5 create mode 100644 tmva/sofie/test/KerasParserTest/Flattentest.hxx create mode 100644 tmva/sofie/test/KerasParserTest/GRUtest.dat create mode 100644 tmva/sofie/test/KerasParserTest/GRUtest.h5 create mode 100644 tmva/sofie/test/KerasParserTest/GRUtest.hxx create mode 100644 tmva/sofie/test/KerasParserTest/GRUtestWithBias.dat create mode 100644 tmva/sofie/test/KerasParserTest/GRUtestWithBias.h5 create mode 100644 tmva/sofie/test/KerasParserTest/GRUtestWithBias.hxx create mode 100644 tmva/sofie/test/KerasParserTest/LSTMtest.dat create mode 100644 tmva/sofie/test/KerasParserTest/LSTMtest.h5 create mode 100644 tmva/sofie/test/KerasParserTest/LSTMtest.hxx create mode 100644 tmva/sofie/test/KerasParserTest/LSTMtestWithBias.dat create mode 100644 tmva/sofie/test/KerasParserTest/LSTMtestWithBias.h5 create mode 100644 tmva/sofie/test/KerasParserTest/LSTMtestWithBias.hxx create mode 100644 tmva/sofie/test/KerasParserTest/LeakyRelutest.dat create mode 100644 tmva/sofie/test/KerasParserTest/LeakyRelutest.h5 create mode 100644 tmva/sofie/test/KerasParserTest/LeakyRelutest.hxx create mode 100644 tmva/sofie/test/KerasParserTest/MLPtest.dat create mode 100644 tmva/sofie/test/KerasParserTest/MLPtest.h5 create mode 100644 tmva/sofie/test/KerasParserTest/MLPtest.hxx create mode 100644 tmva/sofie/test/KerasParserTest/MaxPooltest.dat create mode 100644 tmva/sofie/test/KerasParserTest/MaxPooltest.h5 create mode 100644 tmva/sofie/test/KerasParserTest/MaxPooltest.hxx create mode 100644 tmva/sofie/test/KerasParserTest/Relutest.dat create mode 100644 tmva/sofie/test/KerasParserTest/Relutest.h5 create mode 100644 tmva/sofie/test/KerasParserTest/Relutest.hxx create mode 100644 tmva/sofie/test/KerasParserTest/Selutest.dat create mode 100644 tmva/sofie/test/KerasParserTest/Selutest.h5 create mode 100644 tmva/sofie/test/KerasParserTest/Selutest.hxx create mode 100644 tmva/sofie/test/KerasParserTest/Sigmoidtest.dat create mode 100644 tmva/sofie/test/KerasParserTest/Sigmoidtest.h5 create mode 100644 tmva/sofie/test/KerasParserTest/Sigmoidtest.hxx create mode 100644 tmva/sofie/test/KerasParserTest/SimpleRNNtest.dat create mode 100644 tmva/sofie/test/KerasParserTest/SimpleRNNtest.h5 create mode 100644 tmva/sofie/test/KerasParserTest/SimpleRNNtest.hxx create mode 100644 tmva/sofie/test/KerasParserTest/SimpleRNNtestWithBias.dat create mode 100644 tmva/sofie/test/KerasParserTest/SimpleRNNtestWithBias.h5 create mode 100644 tmva/sofie/test/KerasParserTest/SimpleRNNtestWithBias.hxx create mode 100644 tmva/sofie/test/KerasParserTest/Softmaxtest.dat create mode 100644 tmva/sofie/test/KerasParserTest/Softmaxtest.h5 create mode 100644 tmva/sofie/test/KerasParserTest/Softmaxtest.hxx create mode 100644 tmva/sofie/test/KerasParserTest/Swishtest.h5 create mode 100644 tmva/sofie/test/KerasParserTest/Tanhtest.dat create mode 100644 tmva/sofie/test/KerasParserTest/Tanhtest.h5 create mode 100644 tmva/sofie/test/KerasParserTest/Tanhtest.hxx create mode 100644 tmva/sofie/test/KerasParserTest/Tester.ipynb diff --git a/tmva/sofie/test/KerasParserTest/BatchNormalizationtest.dat b/tmva/sofie/test/KerasParserTest/BatchNormalizationtest.dat new file mode 100644 index 0000000000000..07d67c52cd1b6 --- /dev/null +++ b/tmva/sofie/test/KerasParserTest/BatchNormalizationtest.dat @@ -0,0 +1,12 @@ +tensor_batchnormalization1movingvariance0 64 +0.999500394 0.999500394 0.999500394 0.999500394 0.999500394 0.999500394 0.999500394 0.999500394 0.999500394 0.999500394 0.999500394 0.999500394 0.999500394 0.999500394 0.999500394 0.999500394 0.999500394 0.999500394 0.999500394 0.999500394 0.999500394 0.999500394 0.999500394 0.999500394 0.999500394 0.999500394 0.999500394 0.999500394 0.999500394 0.999500394 0.999500394 0.999500394 0.999500394 0.999500394 0.999500394 0.999500394 0.999500394 0.999500394 0.999500394 0.999500394 0.999500394 0.999500394 0.999500394 0.999500394 0.999500394 0.999500394 0.999500394 0.999500394 0.999500394 0.999500394 0.999500394 0.999500394 0.999500394 0.999500394 0.999500394 0.999500394 0.999500394 0.999500394 0.999500394 0.999500394 0.999500394 0.999500394 0.999500394 0.999500394 +tensor_batchnormalization1beta0 64 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +tensor_batchnormalization1gamma0 64 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +tensor_dense17kernel0 448 +0.0108048618 0.215931386 0.0123945177 0.285069078 -0.104697779 -0.209598348 0.00423592329 -0.2823928 0.116487086 -0.12513034 0.0747551024 -0.00770813227 0.239529043 0.159453094 -0.28320843 -0.00874188542 -0.157378957 0.0602476597 -0.205106258 0.228819519 0.156571299 -0.234788939 -0.0700670928 -0.263461113 0.143216401 0.0773885548 -0.00458329916 -0.170526713 -0.145017579 0.122938514 -0.290278703 0.0688058138 0.0361943543 -0.0493358076 -0.00392708182 -0.284400582 0.166610718 0.122950584 -0.0912979394 -0.0632623136 -0.19157052 -0.0420778245 -0.0250469148 0.277549595 -0.246620253 0.153357059 -0.193938583 0.0913421512 0.17182675 -0.161206797 -0.146403342 0.168200165 0.0514654517 0.285589248 0.177236408 0.239046842 0.271209925 -0.0295130908 0.243002325 -0.177540243 -0.168115333 -0.228779823 0.0283973515 0.179595679 -0.198399067 0.215017587 0.0389697552 -0.0777019709 -0.0739576519 -0.0860316157 -0.0285128355 -0.142276645 -0.137453258 -0.157670751 0.11001423 -0.251886994 -0.290008962 0.238182813 -0.156130373 -0.248245955 -0.124903694 -0.129840136 0.0469535887 -0.156804115 0.0401303768 0.221745759 -0.0454875827 0.179246753 -0.0117903352 0.0204212666 -0.268830091 0.218235701 -0.264822543 0.151397437 -0.220389888 0.217418164 0.253188759 0.0389984548 0.202692091 0.0823853612 -0.223403066 0.273629099 0.230908662 -0.107497707 -0.110331237 -0.120720729 -0.235759467 0.0507353544 -0.122409225 0.112901539 -0.189501375 -0.118903041 -0.269068241 0.0767331123 -0.209109575 -0.0241218507 0.249974757 0.228964657 0.251895219 -0.0699959695 0.245350212 -0.271214575 -0.226293862 0.245217532 0.0605310798 -0.105240524 -0.181201681 0.276239663 -0.154074326 0.0106938779 0.230460852 0.115790337 0.161239386 0.154280871 0.215945214 0.287186056 -0.226439416 -0.244549721 0.25764963 0.132598132 -0.167660266 -0.124990329 0.0322424471 -0.144228578 -0.0685434043 -0.263268828 0.287399143 -0.167323902 -0.175259233 -0.220007718 0.247749418 0.249331802 0.0275261402 0.285681635 0.224241287 0.279460758 0.0549612343 0.136446476 -0.1061299 -0.211200207 0.190035731 -0.148243546 -0.000311821699 0.231444687 -0.0228230059 -0.199860305 -0.269175649 0.0455857217 -0.259420276 -0.131201625 -0.117612928 -0.189057663 0.185323805 0.0275135934 0.0949172378 -0.0632302165 0.187787294 0.021389991 -0.122828677 -0.231739581 -0.0210861564 0.130167186 0.230645269 -0.204621851 -0.0380035043 0.0184370279 0.0357265174 0.274054497 0.154319197 -0.280433387 0.276268095 0.192360759 0.181914926 -0.10357748 -0.0122078657 0.0994132161 -0.189529791 0.14017576 0.194115937 -0.0822871476 0.190085024 0.28514728 0.196474433 -0.126136974 0.0876276493 0.22874549 -0.0943528563 -0.21709615 -0.166011333 -0.204499945 -0.228483602 -0.029565841 -0.221954465 0.169807643 0.116328508 0.10293144 0.238334745 0.0139791071 -0.279547811 -0.057903856 0.116980433 0.211231321 -0.0950945914 0.0762212574 -0.122185215 -0.2635867 -0.189521894 -0.133030325 0.276025444 -0.274003267 0.0397931337 -0.0262677968 -0.0421609879 -0.205390483 0.265192062 0.169212639 -0.0588397384 -0.113253638 -0.286851257 -0.173200786 0.0343206823 -0.128531307 0.120894819 0.16205284 -0.26693207 -0.103117675 -0.0463741124 0.234895021 0.0869942904 -0.195388302 -0.243550718 0.111745328 0.259278566 0.232909232 0.269730121 0.128117055 -0.285545975 -0.015607506 0.0385112166 0.223638445 0.236599356 0.191709965 -0.19348073 0.067645669 -0.14132981 0.241881877 -0.254734188 -0.228491291 -0.239838064 -0.0670351833 0.154426962 -0.0801543146 0.132534206 -0.157252058 0.139873505 0.103443086 -0.184833378 0.231345206 0.272313625 0.144612879 -0.0427127481 -0.116279498 0.266867608 0.148977041 -0.11838904 -0.243089601 -0.220981985 0.273647815 0.265305191 -0.108035192 -0.00552237034 0.0897967219 0.0963402092 0.257930547 0.00589051843 0.24955228 -0.287052602 -0.216473341 -0.118245646 -0.229325905 0.00889033079 -0.141335711 0.16459924 -0.279934347 0.264600664 0.189448148 0.20955357 0.0990448296 -0.027635932 0.0795616508 0.243308693 0.0665873885 -0.193698078 0.178786546 0.0275886059 0.19980213 0.0518908501 -0.227167904 -0.0288101733 -0.217772186 0.0663120151 0.0809931457 0.23769322 -0.284707844 -0.277737409 0.202413201 -0.0784830749 0.200194508 -0.191186607 -0.163768932 -0.0959100127 -0.24673669 -0.11973758 -0.18587245 0.237517565 0.266499251 -0.0500470549 0.0682872534 -0.114201352 -0.203679815 0.0936342776 -0.0233978629 -0.0219255388 0.190061122 -0.156872734 0.167493641 -0.229817986 -0.132643729 -0.282223672 0.0858635902 -0.12809591 0.14055869 -0.203111768 -0.153313249 -0.0905048549 0.032363534 0.0640204847 -0.11933282 -0.0381491482 0.288048357 0.0544538796 0.0737758577 -0.186934054 -0.0764555931 -0.118738636 0.0113504529 -0.23289682 -0.24103862 0.183179826 -0.0324722826 0.0281182528 -0.106172249 0.137558669 -0.101038292 -0.0941964239 -0.109811425 0.205613256 -0.0358462334 -0.202844858 0.259382457 0.00479933619 0.279637247 -0.250478655 0.201448083 0.0918923318 0.0203225613 0.133025885 -0.160158649 -0.139158651 0.103551477 -0.0765164495 0.235947281 0.0446474254 0.0191914439 -0.115890756 -0.239997402 0.0594975352 -0.206928521 0.283032924 -0.15147914 0.251403838 -0.049104169 -0.129442304 -0.115165785 0.0916467011 -0.0739351213 -0.00163686275 0.0691559017 -0.0499850214 0.13808167 -0.151729494 0.08843413 0.257064074 -0.224859029 -0.0825117826 -0.0263075829 -0.257945806 -0.198194474 0.200157225 -0.120868146 -0.17015183 -0.268784493 0.235713631 0.208676606 -0.0274443626 -0.278948426 -0.220054567 0.093952328 -0.00847533345 0.169271052 -0.109093592 0.111329764 -0.232666582 -0.130706757 0.0706871152 -0.215322942 -0.287200451 -0.0953007936 0.101649582 0.0647162497 -0.266912311 -0.0801778883 -0.205314517 -0.285931677 0.214427441 0.217154175 0.148746103 0.0555344224 +tensor_dense17bias0 64 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +tensor_batchnormalization1movingmean0 64 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 diff --git a/tmva/sofie/test/KerasParserTest/BatchNormalizationtest.h5 b/tmva/sofie/test/KerasParserTest/BatchNormalizationtest.h5 new file mode 100644 index 0000000000000000000000000000000000000000..72eaebfd025149837ff4d7a398354821bd36f735 GIT binary patch literal 18016 zcmeHP3s_V~mcA`2L{Y)VMp3lw_=@uMg<@BwC8%hK5EPea6t2w`TAS{+yFrN}o#-kU z6clG96JIe-!epHB5jR7$>kQFo{G8yrnl&b$6VY{I;wHo>j*Mn?Z{1r3((+jSb`p2! z`+auZsycP*)L-YEsyer@FfMj-mrg;Q1p4^-3GIad<(2>3V^7*-wS?z+eHwewu(W`s zTLy56ijfbrM*s0Ep<;mo8-lLVQP^XDmRR?on%zQFs^mJo=WG%=BmH-!zF z>(g+xYr14kT_Tw>GMx^&kn5#^6Fg)Z$n@1yulnRqSwp6o}Bm0!bo`u^nwIlj)Ke1O;a^V!~&tJ%7cI_|QPjA62 z=1TTdi`l%Kn2s+`aKsF(qbCw2NMph~=qI;p=N$A6g*@d)1`b-zm=~#4A0q zf$(uD{z+~%GHhHJwI$xax=|1Wr;L-;zQAlFasy!Y;c{ZojiWe2K0e#V%!Jn?*a5MV&I0ZId<1SWV8{)Fx{gPg%(v3eZk@ zc=xk>prWa%jG+!<`u+Z)vGnzd+oUIHW|EsyKyj%_(eg;Dp;^`}*-EmrWQilf#*ddv zB%8xzwpx^eh=@qJ#3)lJQ^uy#VH6uFlH?R0aWXQ*tgP1BCRn7V<}u5fLw5yPl4yCv z&KZXsSqnsqQEG)tGh)oAgKttP)Uh>Lr8Ig#DP*M8HV@R~<;~5@Q{A58+v%&a&r$rI z+3KM4DQmAqwCAQ8WxaREGiJBia;a8iNlv@TNGX^~s(V!_UB-^r%z41&Jul<>yi)(q zcF|^g!1Hk@BN~m_cG0Nx)ReLxE*ZsKH7`q`Oh=@Wr3Rp6N2*y5 zi-?p$BcfyyG0Tx*7wdg?o;*8z{ZiIPd0v{dQn{RO3)m7`zy7mrr_kJb$LV=Le4Ttk z=1HHY)THTt!|$_}Xu7%z_5BR}-?Za4BDd|#=-IZnnf@q-YDfNzKDfnx6vbB>bYXPe zSjrc{aO(4Aimt3Y(6e53!fL0ijwWRs*!#-7uU-Va2zU|jBH%^9i@;Bdz>Mh$u^Kr- z$@en_EPlb`0G{!TpH{m6KfN^{zim0*dVlW zE_9B09G%CFg#IdFC8KXG-s&2t5_0`v&Adq)LBKQKs%7I&;|CI!Z|?lX{mi(B#7p&C zKJ|X9j>S7UKW&i8(7@!-GX9C`af^ME5rm~IUp7)DU|B)?teWTi;#fX&5@YlalJK~- zCtm(S0gGGH??}A`HA>MCxNi2l4~tu~Wu!hnqMSFGlb~l%Wm;ICo?(^qGRxC5v~mt+ zdG!q5oFAjBSA!qp`!JQ<``gA4@bqH_HvVBue>faGGQuM& zo{=1nC}w^9gZmM_-g17P`>#r-x18Qnk9j+9+869`*?gttuh_}99g5rnq<@A01@uY`Y31lqFh)3JLWF9Kc!+A0D+ z;l6SR!}zh@SN?=}@K51hJY>a?&mDYA{g~s?bX+-Ll&al3n3A^^kFkwa3HiB%HS;EI z1Od-@3_o{PusAJ;f!{~rd2SpAUht49j~{x*g&XeiK3Y7K-=F2Fa$kliH@!on+^=DI z_0G-1#XHY2`>GqG4!AY@I?e*_Ui*4T1^EXd_p~o98&_}Uclj_quW_+!UuvvPCSq#D z$y-f5Qy@yrIo*t$FwX5_j?uff9cUOeOsxm?ii`>A3PVQb$?D@TDt+CSag=$*f9%SRcj}l z_(cgEFR4KzbOMa-^Ez^E`teZElx)0v%2Rm1umQBu-P|{Z4g|xo9F*pp1n(v+#L+Xg zc%|6}v+|2c+U3=d^iFqtId2n&cEkVMEA7 zw`jvYyd;66n- z$zjHahn^=XH!l*4{uZfOxEQMcEdlM_cbj}W?h1O_KL%_oZ;-?zgX^>UIe)>s5^X z28d`!MQ6No_UGiw*c3Qe7K4XXJqg0{w>~&~&x{jq9dw74$3yzR7eeofXyiV<3MyXg z2>utYk>s+8u=*&%5$PB8b;iT!+=^F7;&TQZ5WPqLt95tCpy#uo+P&LdG_3=k9A?Jp z1usC!Z~79$6PxvQ$=%U~#3KAfhyM81reg4Mti$7O$KtQ2L}QEgQ{wW8a}Rs{PpD7N z7|^fnhG!m|jEAo-CvX2c2A{dR0hdKg#a)JLK%4U(iqS8`-Sr<5=k$3{efMdwX1)M# z+%iGH=<9C3I3sku6pDAD8dOnr8g=aI#5?>X{bg-2l!aswTj}?xB!+-D2I z`rG7e?P~Dt9s@z+{b0Df|pMejSmd0viq(z8_ua5eF|xx#0fd zGJ3jl6+WDA!GS?*asNmk+-uZE*ztb8`x*&GFKZ+mG{ug$CB))W117_%!nNo~MF3pd zvjqQ(`Bm8dHxu+L%LbTQNP=|z@%5p*i2oma@t%$YL731D*L{8l{WTWB;lG&iKJ#mM zL9d>;&E`vbD0xIGF9UWq5W}tU`d5});M3DNu%dJVF4uG*hLo@LXKkO8u=Dgbs#Uo1*{u_{h7@ChU62_!9s7@TBiFLG_1B{O z@SDOQcq6|neA4|>RDNI!8NOvP9#=gUrA2Mk>r%cW7eCB~z3(|t_rJ`5eczPe7lZqP zrox4t1E-SJMeU)}`TruZ`wpS_MVpCGboStuH`k%wB%Z`cUGVLBeWAABzoIK!S7Q6b z1#s<7IT2QV=FSaV1uJe$gZ6)o#}$RQNSr-4I8*JOd3rtkm@Goi zg_THqzLPsWITYuZFOc)XWi-TKfxDk|fXt6d(6+pn;9BQW2nanw%0o|~+QL=nP +#include +#include "TMVA/SOFIE_common.hxx" +#include + +namespace TMVA_SOFIE_BatchNormalizationtest{ +namespace BLAS{ + extern "C" void saxpy_(const int * n, const float * alpha, const float * x, + const int * incx, float * y, const int * incy); + extern "C" void scopy_(const int *n, const float* x, const int *incx, float* y, const int* incy); + extern "C" void sgemm_(const char * transa, const char * transb, const int * m, const int * n, const int * k, + const float * alpha, const float * A, const int * lda, const float * B, const int * ldb, + const float * beta, float * C, const int * ldc); + extern "C" void sgemv_(const char * trans, const int * m, const int * n, const float * alpha, const float * A, + const int * lda, const float * X, const int * incx, const float * beta, const float * Y, const int * incy); +}//BLAS +struct Session { +std::vector fTensor_batchnormalization1movingvariance0 = std::vector(64); +float * tensor_batchnormalization1movingvariance0 = fTensor_batchnormalization1movingvariance0.data(); +std::vector fTensor_batchnormalization1beta0 = std::vector(64); +float * tensor_batchnormalization1beta0 = fTensor_batchnormalization1beta0.data(); +std::vector fTensor_batchnormalization1gamma0 = std::vector(64); +float * tensor_batchnormalization1gamma0 = fTensor_batchnormalization1gamma0.data(); +std::vector fTensor_dense17kernel0 = std::vector(448); +float * tensor_dense17kernel0 = fTensor_dense17kernel0.data(); +std::vector fTensor_dense17bias0 = std::vector(64); +float * tensor_dense17bias0 = fTensor_dense17bias0.data(); +std::vector fTensor_batchnormalization1movingmean0 = std::vector(64); +float * tensor_batchnormalization1movingmean0 = fTensor_batchnormalization1movingmean0.data(); +std::vector fTensor_batchnormalization1batchnormadd10 = std::vector(64); +float * tensor_batchnormalization1batchnormadd10 = fTensor_batchnormalization1batchnormadd10.data(); +std::vector fTensor_dense17BiasAdd0 = std::vector(64); +float * tensor_dense17BiasAdd0 = fTensor_dense17BiasAdd0.data(); +std::vector fTensor_dense17bias0bcast = std::vector(64); +float * tensor_dense17bias0bcast = fTensor_dense17bias0bcast.data(); + + +Session(std::string filename ="") { + if (filename.empty()) filename = "BatchNormalizationtest.dat"; + std::ifstream f; + f.open(filename); + if (!f.is_open()){ + throw std::runtime_error("tmva-sofie failed to open file for input weights"); + } + std::string tensor_name; + int length; + f >> tensor_name >> length; + if (tensor_name != "tensor_batchnormalization1movingvariance0" ) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor name; expected name is tensor_batchnormalization1movingvariance0 , read " + tensor_name; + throw std::runtime_error(err_msg); + } + if (length != 64) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor size; expected size is 64 , read " + std::to_string(length) ; + throw std::runtime_error(err_msg); + } + for (int i =0; i < length; ++i) + f >> tensor_batchnormalization1movingvariance0[i]; + f >> tensor_name >> length; + if (tensor_name != "tensor_batchnormalization1beta0" ) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor name; expected name is tensor_batchnormalization1beta0 , read " + tensor_name; + throw std::runtime_error(err_msg); + } + if (length != 64) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor size; expected size is 64 , read " + std::to_string(length) ; + throw std::runtime_error(err_msg); + } + for (int i =0; i < length; ++i) + f >> tensor_batchnormalization1beta0[i]; + f >> tensor_name >> length; + if (tensor_name != "tensor_batchnormalization1gamma0" ) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor name; expected name is tensor_batchnormalization1gamma0 , read " + tensor_name; + throw std::runtime_error(err_msg); + } + if (length != 64) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor size; expected size is 64 , read " + std::to_string(length) ; + throw std::runtime_error(err_msg); + } + for (int i =0; i < length; ++i) + f >> tensor_batchnormalization1gamma0[i]; + f >> tensor_name >> length; + if (tensor_name != "tensor_dense17kernel0" ) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor name; expected name is tensor_dense17kernel0 , read " + tensor_name; + throw std::runtime_error(err_msg); + } + if (length != 448) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor size; expected size is 448 , read " + std::to_string(length) ; + throw std::runtime_error(err_msg); + } + for (int i =0; i < length; ++i) + f >> tensor_dense17kernel0[i]; + f >> tensor_name >> length; + if (tensor_name != "tensor_dense17bias0" ) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor name; expected name is tensor_dense17bias0 , read " + tensor_name; + throw std::runtime_error(err_msg); + } + if (length != 64) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor size; expected size is 64 , read " + std::to_string(length) ; + throw std::runtime_error(err_msg); + } + for (int i =0; i < length; ++i) + f >> tensor_dense17bias0[i]; + f >> tensor_name >> length; + if (tensor_name != "tensor_batchnormalization1movingmean0" ) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor name; expected name is tensor_batchnormalization1movingmean0 , read " + tensor_name; + throw std::runtime_error(err_msg); + } + if (length != 64) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor size; expected size is 64 , read " + std::to_string(length) ; + throw std::runtime_error(err_msg); + } + for (int i =0; i < length; ++i) + f >> tensor_batchnormalization1movingmean0[i]; + f.close(); + { + float * data = TMVA::Experimental::SOFIE::UTILITY::UnidirectionalBroadcast(tensor_dense17bias0,{ 64 }, { 1 , 64 }); + std::copy(data, data + 64, tensor_dense17bias0bcast); + delete [] data; + } +} + +std::vector infer(float* tensor_dense17input){ + +//--------- Gemm + char op_0_transA = 'n'; + char op_0_transB = 'n'; + int op_0_m = 1; + int op_0_n = 64; + int op_0_k = 7; + float op_0_alpha = 1; + float op_0_beta = 1; + int op_0_lda = 7; + int op_0_ldb = 64; + std::copy(tensor_dense17bias0bcast, tensor_dense17bias0bcast + 64, tensor_dense17BiasAdd0); + BLAS::sgemm_(&op_0_transB, &op_0_transA, &op_0_n, &op_0_m, &op_0_k, &op_0_alpha, tensor_dense17kernel0, &op_0_ldb, tensor_dense17input, &op_0_lda, &op_0_beta, tensor_dense17BiasAdd0, &op_0_n); + constexpr int op_1_N =64; + constexpr int op_1_incx = 1; + constexpr int op_1_incy = 1; + BLAS::scopy_(&op_1_N, tensor_dense17BiasAdd0, &op_1_incx,tensor_batchnormalization1batchnormadd10, &op_1_incy); + + float op_1_alpha = -1; + BLAS::saxpy_(&op_1_N, &op_1_alpha, tensor_batchnormalization1movingmean0, &op_1_incx,tensor_batchnormalization1batchnormadd10, &op_1_incy); + + for (size_t i = 0; i < 64; i++) { + tensor_batchnormalization1batchnormadd10[i] *= tensor_batchnormalization1gamma0[i] * tensor_batchnormalization1movingvariance0[i]; + } + op_1_alpha = 1; + BLAS::saxpy_(&op_1_N, &op_1_alpha, tensor_batchnormalization1beta0, &op_1_incx, tensor_batchnormalization1batchnormadd10, &op_1_incy); + + std::vector ret (tensor_batchnormalization1batchnormadd10, tensor_batchnormalization1batchnormadd10 + 64); + return ret; +} +}; +} //TMVA_SOFIE_BatchNormalizationtest + +#endif // ROOT_TMVA_SOFIE_BATCHNORMALIZATIONTEST diff --git a/tmva/sofie/test/KerasParserTest/CNNtest.dat b/tmva/sofie/test/KerasParserTest/CNNtest.dat new file mode 100644 index 0000000000000..7da61896f3cad --- /dev/null +++ b/tmva/sofie/test/KerasParserTest/CNNtest.dat @@ -0,0 +1,12 @@ +tensor_dense1bias0 2 +0 0 +tensor_dense1kernel0 128 +-0.273429334 -0.242458299 -0.271134526 0.22176069 0.160095453 0.0573874414 -0.237070233 0.0986026525 0.293885887 0.0136824846 -0.261926591 0.0828011334 -0.287304819 0.0939099491 -0.136848629 0.111558884 0.134410113 0.0811731219 -0.181930214 -0.0225485265 -0.230313241 0.0897078514 0.230362654 0.0779522955 0.254732788 0.221711457 -0.201655641 0.0791558027 0.0297540128 0.263908505 0.251250803 -0.247956917 -0.217679292 -0.0698667765 -0.198423147 0.273819745 -0.0885926932 -0.236000419 0.0682967901 0.108136594 0.288755059 -0.0210249722 0.267940283 0.112079054 -0.0369003415 0.0997010171 -0.258126408 0.100490808 -0.0256198645 -0.176111266 0.187079191 0.0780341029 0.0748235285 -0.15443702 -0.0103217959 -0.0204695165 -0.219308376 -0.280591965 0.0768744349 0.292846203 0.0968263745 -0.253676087 0.105917633 -0.100127727 0.0324001312 0.0904945731 -0.00262001157 0.131956577 -0.203090906 -0.255756974 0.184198797 0.24737227 -0.229076236 0.169514298 0.28614068 0.217840016 -0.117445901 0.294710577 -0.187424093 0.198880672 -0.188419074 0.0236699581 0.118036002 -0.241595954 -0.170471609 0.0886412859 -0.00834918022 -0.262962162 0.216530263 0.0690090358 0.00374668837 0.0464490652 -0.269823551 0.12741375 -0.172189385 -0.261488438 -0.295124441 -0.112968922 -0.0254932642 -0.0596192181 -0.087402761 -0.292161942 -0.242644906 0.15951246 0.206225097 0.218320549 0.199845254 -0.100934356 0.273027062 -0.286521971 -0.0618494153 -0.265791684 -0.127135262 -0.104222134 0.0622035861 -0.236902088 -0.0503375232 -0.207609594 0.259485722 -0.100060374 0.0632984042 -0.239267349 0.27381587 0.116547674 -0.228086352 -0.251814395 0.0626878142 -0.0723151416 +tensor_densebias0 64 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +tensor_conv2dkernel0 90 +0.00920188054 0.0839131102 0.01429867 -0.0311637055 -0.0144039365 -0.0424352661 0.00577064464 -0.099428229 -0.0117422352 0.0585242175 0.0400683992 0.000320953986 -0.00437914161 0.0651558638 -0.0441484414 0.0430999361 0.013847338 0.0222443771 -0.0806622431 -0.00505291671 -0.049329564 -0.0366222598 0.048805818 0.035817977 0.0155720478 0.0833889544 0.0714531094 -0.0807194188 0.0463105068 -0.0372469053 0.0316770934 -0.0160574447 0.0227629077 0.0317016579 0.0435244404 0.00589957414 -0.0711666569 0.0614454858 0.0759042427 -0.0562249497 -0.0255881995 0.00843326189 0.0776767656 -0.0164612681 -0.0554594882 0.0295275599 0.0416304208 -0.0365259014 -0.0276708398 -0.0370529629 0.0961797461 -0.0374306515 0.00593554974 0.0727296397 -0.0241174363 0.0646661893 -0.00330106961 4.24884856e-05 -0.0355032571 0.00215339637 0.0440903865 -0.0426049381 0.014920773 -0.0233879443 -0.0233479049 -0.0553915277 -0.0109824827 0.0267938133 -0.0721504912 0.0418764763 -0.0136704268 0.0422013476 -0.00263763079 -0.0445093177 0.0491298959 -0.0294470638 0.0202196185 -0.0397402719 0.0453890488 -0.0287147891 0.00617681304 -0.044607386 -0.00576408301 0.0793464705 0.0111119598 0.0170671605 -0.0600193702 0.0348663181 -0.0753527805 -0.0201753732 +tensor_densekernel0 40960 +-0.0221337974 0.04323598 -0.074028708 -0.0519530587 -0.0547263138 -0.0736082196 -0.0797883868 -0.0649054945 -0.0403959751 -0.0112537369 -0.0463001989 -0.0436933003 0.0521038994 -0.0902238786 -0.0593602657 -0.0457693934 -0.0354193412 0.0283417627 -0.0887995139 0.0331479684 -0.0105886459 0.000131733716 -0.0556173176 -0.0371342674 0.00819852948 0.0556585267 -0.0739444941 0.0607088879 -0.0673547983 -0.0360101908 0.0861660466 -0.0075031966 -0.080121778 0.0649235919 0.0505026057 0.0408254638 -0.0376461856 -0.0406097434 0.086936675 0.0589003786 0.0295939147 -0.0696576461 0.0833167359 0.0258793011 0.0290675387 0.0484126285 0.0855892375 -0.0681120679 0.0843675807 0.00114542246 0.0678722933 -0.0222658142 0.0253355503 -0.042885337 0.0912477896 -0.0587367527 0.0517774597 0.0752786174 0.0471837148 -0.0494426973 -0.0551629141 0.0673886016 0.0564077869 -0.0445684344 0.0614354089 0.0870144442 0.0102852061 0.0508862957 -0.010736905 -0.0265141875 0.0415811911 -0.0812525004 -0.0598369464 0.0898458883 0.00690405071 -0.00427104533 0.0358195826 0.0281906426 0.0659860298 -0.0596695356 -0.0763747096 0.00127889961 0.0616201982 -0.0472184308 -0.0908396915 -0.0385754444 -0.0381811485 0.0779133067 -0.0427177288 0.048133187 -0.0668561757 0.055018343 -0.0537151955 0.0630124584 -0.0590246059 -0.0493057705 0.0132616609 -0.0655003339 0.0636265054 -0.0811076015 -0.0639499128 -0.0311464928 -0.0840623528 -0.000759206712 -0.0538675077 -0.0754759386 0.0193076506 0.0533018336 -0.0439671986 0.0870276764 0.00708354264 -0.0303171612 0.00141712278 0.0570398495 -0.0285481364 0.0217671692 -0.0238844231 -0.0363960564 0.0106511787 0.0216306373 0.0110794529 -0.0601745211 -0.0544049814 -0.0782554224 -0.00666858256 0.0344982073 -0.058073137 0.030979082 0.0334448293 0.0178535059 0.0608868673 -0.0629392117 -0.053561803 -0.0429395512 -0.065682888 0.0235836506 -0.0855694562 -0.0859874114 -0.0308545902 -0.0170087218 0.0696802214 -0.0570755117 -0.0472504981 0.0230257735 0.0613549873 -0.0110641792 -0.0763232559 -0.0611640438 -0.0856784061 0.0775463805 0.0217078328 -0.0212909281 -0.0452604666 0.0785960481 0.0779047683 -0.0224326774 -0.0528332368 -0.0866917744 -0.00950370729 -0.0189820528 0.0624495223 0.0386962816 -0.0687293783 0.0377494171 0.0534660444 -0.0333467051 -0.00359891355 -0.0672701448 0.0468237177 -0.0814165846 0.0209558606 0.0907890871 0.00697533786 0.0628104731 0.0353089646 -0.0731189027 0.056611903 0.0841169134 -0.0251050368 0.0846051946 -0.0603278466 0.0429712012 0.0656820759 0.0561810061 -0.0168688521 -0.0389778204 0.0294996053 0.0371190533 -0.0665191486 0.0475167409 0.0165059194 -0.0713730976 -0.0281019583 -0.0723218843 -0.0728693902 -0.0829819068 0.0448343381 0.0505690202 -0.0916505978 -0.0704301 0.00537139177 0.0471286103 -0.00964668393 0.0319344699 0.0343484059 0.0855069086 -0.0392959788 -0.081404306 0.0553572699 0.0363217965 0.0576886162 0.0549551323 0.0674760714 -0.0694880113 0.0318767577 0.0425072685 -0.00830637664 0.0731699839 0.00605710596 0.0772894248 -0.0850552022 0.0293270871 0.0803381875 -0.0496339053 -0.0748673901 0.0840652362 0.0104187205 0.0052048862 0.0766167864 0.0256285518 -0.0331775546 0.0751029328 0.00801427662 -0.0248098299 -0.0128577724 0.0393099114 0.0870745406 -0.020016171 -0.0585613959 0.0626208708 -0.0839986578 0.0677014366 0.0804293081 0.0648956522 -0.0335948952 -0.0684137195 -0.0756282955 0.0359907523 -0.0487053245 0.00394077599 -0.0497863702 -0.0189026147 -0.00565123558 0.0138135552 0.0451611802 -0.0576910563 -0.0863848329 -0.0841667056 -0.0261433795 0.0243364722 -0.0528305285 0.0457531437 -0.00161706656 0.0118920803 -0.0727223828 0.0648328438 0.0815579668 -0.0868494734 -0.072903946 -0.0214751363 0.0797358826 0.0361481681 0.0601060912 0.0505511388 -0.039972581 -0.0646228343 0.0418927744 0.0127923787 0.0195574313 0.0147296488 -0.0289703608 0.0637282208 -0.0112974271 0.0816302672 -0.0575665683 0.0872423872 -0.00251179188 -0.0383488275 0.00998562574 0.0818716064 0.0823104307 0.0817868635 0.00359120965 0.0213027894 -0.0461196452 0.059216775 0.0426172242 -0.0290498435 -0.0179122314 0.0417522117 -0.0616638362 0.055693455 0.0321777686 -0.0809392259 0.0041718632 0.00438349694 0.0655662045 -0.0178182051 -0.0423379838 -0.0136142671 -0.0666181296 0.0371067747 0.057333447 -0.0831905454 -0.049538292 0.00565087795 -0.0556082949 -0.0844091773 -0.0520585328 0.0103510618 -0.0276780352 0.0517474785 0.0744122639 0.0537680015 0.0659692362 0.00971526653 -0.0770918131 -0.0217285007 -0.0645005479 0.0675668642 0.0534142628 0.0436166599 0.00501658022 -0.0223056152 0.086269699 -0.0637897402 0.0781883821 0.00616748631 0.0377523676 0.0212417543 0.0655713752 0.0512356237 -0.0861788392 0.00916744769 -0.0177442282 -0.0793812573 -0.0729112774 0.0776932761 -0.016224429 0.0857650861 -0.0688306466 -0.0842788294 0.0836601183 0.054269515 -0.0452863723 0.0565057918 -0.0173346773 -0.0241310745 -0.0819981918 0.0419862345 -0.078298673 0.00216908753 -0.000968880951 -0.0341262035 0.0374309644 -0.0336751454 0.0272287577 0.0555795059 -0.0785456523 -0.0264414251 0.0404999033 0.0652526841 0.0173598602 0.0442333445 0.0270933509 -0.00613304228 0.00398303568 0.0346938148 -0.0389189646 0.00290776044 -0.0382316411 -0.0899209082 0.0785527155 -0.0421273634 0.0344761685 0.0108838454 -0.0501037389 -0.0296238065 -0.0429782234 0.0559576228 0.0101453513 0.0495597497 0.0428745523 0.0485873297 0.0352251008 -0.0605716556 -0.090189606 -0.0619447604 0.0452660099 -0.0188380852 -0.00597665459 0.0149677396 0.0600590333 0.0618368164 0.0724831894 -0.00233900547 0.0531092659 -0.0615601242 -0.0779776052 -0.0573202707 -0.0217294022 0.0686290935 -0.0243336335 -0.0615019947 -0.0914429501 0.0309879929 -0.00654800236 0.0880224332 -0.0744362772 -0.036440473 -0.0883274153 -0.0857174098 0.0675213113 -0.0491170101 0.0468185022 0.0250290781 0.00187762827 0.07780727 -0.0108569115 -0.0765093714 0.0161783397 -0.0438922308 0.0125854984 -0.0653838739 0.0747712925 0.0644012168 -0.0558946058 0.0429392383 -0.0707680285 0.0215432569 -0.0309091993 0.0354498252 -0.00966561586 -0.0431347154 -0.0781382844 -0.0121639967 -0.0514301769 -0.0836036131 -0.0726314187 -0.0465376675 0.059663929 -0.0120561942 0.0277566165 -0.067552276 0.0501976535 -0.0762242526 -0.00109010935 0.0208827034 -0.00983128697 -0.0629281849 -0.0596067831 0.00559704006 -0.0713821426 -0.0504876226 0.0754675791 0.0494334474 0.0327502713 0.0446631685 -0.0223760679 0.0529638007 0.0611090884 -0.0311723538 0.0745229945 -0.0474210158 -0.0214181691 0.0604245141 0.00767855346 0.0847745761 0.00503978133 0.0543075874 -0.0152748972 0.0614232644 0.0272988603 0.0365655199 -0.0822426155 -0.0870367214 -0.05411385 0.0401513353 0.00126703084 0.0595964417 0.0780038014 -0.000617153943 0.076945506 0.0156025663 -0.0587389544 0.0660532787 0.0252426863 -0.0388120785 -0.0612305179 -0.0290651396 0.0346153602 0.0408210829 -0.0895498767 -0.043648839 -0.0491830409 -0.0491188131 -0.0383964777 -0.0645617843 -0.0715185404 -0.00754072517 0.0122821108 0.0283284932 -0.0125727132 0.0402082875 0.0475428179 -0.0690454021 -0.045923885 -0.0586945377 -0.0436244272 0.0855727419 -0.0595415011 -0.0167974904 -0.08771649 -0.0366320983 0.0884172544 0.0387737229 0.0783086494 0.0220544264 0.067603983 0.0894738361 -0.00101529807 0.0191664323 -0.052042421 -0.0278094634 -0.025492996 0.0281988531 0.0561148599 0.047000967 0.014219515 -0.0809525847 -0.0206311643 0.0905399248 0.0513894185 0.0669635162 -0.0477558151 -0.0236778334 0.0800149217 -0.0790690184 0.0123075992 0.00281122327 0.0435074642 -0.00272247195 -0.0671346486 0.000970683992 0.00118570775 0.029692702 0.0275551304 0.0400213525 -0.0743061677 0.0768330768 0.0871990845 0.0796096399 -0.0251114443 0.00488962978 -0.0445567034 -0.0100695267 -0.0489600301 0.0638914928 -0.0582591929 0.0741942748 -0.00455973297 0.0341798887 -0.0514563061 0.0768220797 -0.053691797 -0.0189579278 0.0902773812 -0.0457181074 -0.0900042355 -0.0632647723 0.0544343218 0.0419459566 -0.0867286399 -0.0563285872 0.0105139166 0.0374283418 0.0598774627 0.0832743421 -0.0351996571 -0.0609860681 -0.0612202808 0.0284832716 0.00745928288 -0.0723288357 0.042607896 0.0047481209 0.069684498 -0.066986829 -0.00810784101 -0.0612817556 0.000164441764 0.0851833448 0.0721376315 -0.0651869252 -0.050282795 -0.00756449252 0.0134463757 0.0381545648 0.0813645795 0.0117290094 -0.0510220826 0.0601391718 -0.0181408748 -0.0876815841 0.0489594564 -0.0530342795 -0.00281424075 0.0471898839 0.0716542378 0.0745561644 0.0834620669 0.0797327831 -0.0585361719 -0.0356764905 -0.0292404965 -0.0800149813 -0.00144727528 -0.0726844147 0.0682476833 -0.0483914353 -0.0466427691 0.00932595134 -0.0061621815 -0.0871984959 -0.0514881536 -0.0403326526 0.00171644241 0.0881891474 0.0770928338 -0.0832390785 0.0665261224 -0.0451612882 -0.0357641801 0.0383828953 -0.0329282619 0.0288667828 0.0759614184 -0.0192143694 -0.0791255161 0.0081935972 0.0649652556 0.0514863208 -0.0574741438 0.0485284999 0.0415972695 0.0407589749 0.0143969432 0.0555175021 -0.0895604193 0.0186218545 0.0818816945 -0.0291478336 0.0807771608 -0.0922219455 0.0270140916 0.0679773614 0.0787012801 0.0254364461 -0.0582951568 -0.0809522793 0.0546847954 -0.0668790042 0.0631763265 0.0321367905 0.0459016934 0.0337537155 -0.0695319027 -0.0311587304 -0.0288554654 0.022936672 -0.0291262195 0.0767771974 0.0721644685 -0.0600859076 0.0592204407 -0.0369080193 0.0227153152 -0.0528996401 0.0158179998 -0.0688801035 0.045056738 0.0681117848 0.0265867114 0.0138872415 -0.0464796051 -0.0325151272 -0.00737450272 0.0452144369 -0.0558094941 0.0250638798 -0.0021302402 -0.0748179331 -0.00743159652 0.0812299624 0.0224295557 0.0114999861 0.0601947978 0.0369486734 0.0584277734 0.0858404264 0.0621971712 -0.0219153017 0.0808677152 -0.0867797434 -0.0343727432 0.0910524651 0.0718490705 -0.00150109082 0.0797882304 0.0503951833 -0.0725474656 0.0904843286 0.0264841914 0.0470935479 -0.0057509169 0.0800207779 0.061369054 0.0157303587 0.0340678617 -0.050488703 -0.0922572538 0.0260500312 -0.0155156255 -0.0543931834 -0.0595838912 0.0139859617 0.0597556159 0.0422235653 0.0723632649 0.00775662065 -0.00275610387 -0.0472933762 -0.0441396944 -0.0580694601 -0.00610493869 -0.0693074167 0.040008612 0.0409487858 -0.0399514735 -0.0488402061 0.0386506096 0.0876981094 -0.0366831832 0.032767646 -0.0399391688 -0.0560081378 -0.0670159906 0.0284129679 -0.0319919139 0.00831573457 -0.088916637 0.0872463956 -0.000182665884 0.0739420131 -0.0168310553 0.011853829 -0.060397882 -0.0217178464 0.0524467751 0.0180385262 -0.0834406242 -0.0649743676 -0.0875592902 0.00394447148 -0.0329950415 0.0440288261 -0.0153730363 -0.000412650406 0.0284364522 0.0560420826 0.0300864875 0.00375736505 -0.0461275019 -0.0270189568 -0.0171740875 -0.0172421262 0.0760389939 0.0283014849 -0.030104056 -0.0247077495 -0.0411288366 -0.0134316683 0.0129240453 -0.0351540931 -0.0128855258 -0.0716865733 0.0133730546 0.0484088287 -0.0502680913 -0.000109791756 -0.03102649 -0.082609728 0.0614123866 -0.0246398449 -0.0522357821 -0.0918365195 -0.0508448109 -0.0306014679 0.041772835 0.083213307 -0.0433522463 -0.0378756002 -0.00741834193 0.0294093564 0.0532175824 -0.0731508881 0.0009072721 -0.0226721093 0.0347410664 -0.0454476215 0.0249019861 0.0486162975 0.0873794481 -0.0123571604 -0.0149468482 0.0103318244 -0.0789020658 -0.0678140968 -0.0866947174 0.00868073106 0.0441511348 -0.0234866962 0.0740881488 -0.0414299853 -0.0482853651 0.0436872467 0.028892003 -0.0775709376 -0.0574369691 0.0337006971 -0.0712451935 0.0684306249 -0.0836716443 -0.00558821857 0.0657768026 -0.0915156528 -0.0905161127 -0.0753169358 0.0332622752 -0.000986970961 -0.0613625795 -0.0384552479 0.0776538923 -0.0646809638 0.083871223 -0.0319224484 -0.0532831289 -0.00665803254 -0.00685641915 0.00412277877 0.0206411108 0.0577491596 0.0591159984 -0.0428899825 0.0637789145 -0.0322978608 -0.0409661569 0.0581448749 -0.0380194597 -0.0692962781 0.0500789061 0.0921062008 -0.0499891527 -0.0144857317 0.0744706914 0.0603210703 -0.0656231269 0.0604206696 -0.0680049881 -0.0101026744 -0.0762470961 0.0810612962 -0.000277422369 0.0647490248 0.0600247458 0.0691318139 0.0757296309 -0.060285233 -0.0246615708 -0.0567747839 0.0527016595 -0.00208908319 0.00417692959 0.0796266124 0.0121849328 -0.0827711374 -0.0292562544 -0.0160188898 -0.00294935703 0.0231194496 -0.0503094047 0.0913202688 0.0636470094 0.0876444653 -0.0449221879 0.0399569497 -0.0231893137 0.0404098406 -0.0482074916 0.00384063274 0.0113992468 -0.0153965056 -0.0282625929 0.0768380538 0.0844767019 0.0339728519 0.0531674698 -0.066739589 -0.0402105153 0.0298937038 -0.0436995924 -0.0758031681 -0.0718760639 0.0613586679 -0.00348091125 0.0524508879 0.0342166945 0.0631354824 0.0153503045 0.00588234514 0.0591234788 -0.00324804336 0.0750042126 -0.0316745453 0.0490564629 0.079463847 0.00768953562 0.051561676 -0.0710498989 0.0278150737 -0.0141058117 0.0451352671 -0.00072876364 0.0326464176 0.0403941646 0.0343731567 -0.0359990112 0.0369168743 0.0238652974 -0.0680631623 0.0768123493 -0.0119087249 0.047822468 0.0554679558 0.0121040866 -0.0683264285 0.067724444 0.0909912512 -0.0768719316 -0.0104082003 0.0392761305 -0.00367017835 0.012720339 0.0334547684 0.07291881 -0.0817821175 -0.0249081999 -0.0220031664 0.0242020786 -0.00953689963 -0.064276062 -0.059518721 0.0253261551 0.0520008728 -0.0457456 0.0422567204 -0.016717419 -0.0468026958 0.00989130884 0.0137525424 -0.0904748216 -0.0299047939 -0.0132626742 -0.0684522837 0.0921372995 -0.0876158401 -0.0610275604 -0.0539608113 0.0320537612 0.0494208261 0.0897636339 -0.024082385 -0.0611645505 -0.0882255286 -0.0178249851 -0.0444332473 -0.000134415925 0.0481837913 -0.000495016575 0.0246677101 -0.0731916875 -0.0787048116 0.0586143062 -0.0368276164 0.0643786564 -0.0682953298 -0.0676159561 0.0298679695 -0.064115189 0.0419744179 0.0333618745 0.0884719416 -0.0716283545 0.0903654769 -0.0821844041 -0.0816550031 0.00562376529 0.0796209946 0.0321303383 0.00988633186 0.0222929344 -0.0464964211 0.0205747709 0.0881750807 -0.0418485776 0.04901921 0.0495116338 -0.0233878642 -0.0480912328 0.0025909394 0.0477866158 -0.0597427413 -0.0670740753 0.0734970942 -0.0337406024 -0.0492592193 -0.0569454767 0.0579986796 -0.0253301114 -0.0872512758 0.0820451155 0.0131725222 0.0144312978 -0.0863711461 0.0222201198 -0.0837066025 0.0126065463 -0.0388442613 0.00465513021 -0.000924110413 -0.0123017654 0.0897136107 0.0921508595 0.0410474017 0.0517209992 -0.00716797262 0.0361148342 -0.00290648639 -0.0871737599 0.074056901 0.076156728 -0.00321000814 -0.0859024078 -0.0357244089 -0.00346621126 0.0534153953 -0.0085586831 -0.0262571946 0.0168385878 0.000254109502 -0.0767596811 0.0363092199 -0.0419454239 0.0556014255 -0.0628971756 -0.0431985706 -0.0266029388 0.0824861452 0.0391274467 -0.0258400738 -0.0101898834 0.023228094 0.0742765442 -0.0379718319 -0.0213608593 0.0272808373 0.0518747643 0.0432917252 0.0297561139 -0.0556210168 -0.0508744791 -0.000623181462 -0.0764092505 0.066812776 0.0746410415 -0.0023669824 0.0701403543 0.0603911951 -0.0378237218 0.029822737 -0.0564464331 -0.0098118484 -0.0342160277 -0.0730453879 -0.0100700334 0.0798946992 -0.0250654817 -0.0397460498 0.0580153987 0.056641005 -0.0911232755 0.0865050182 -0.0285121724 0.0276130661 -0.0172336251 -0.062329039 0.0683983341 -0.0588936657 -0.0593833774 0.0548533723 0.0536629632 -0.0120288134 -0.0551397353 -0.0643973202 -0.0640382841 -0.0540810302 -0.0527012832 0.000532567501 0.0476050004 0.0226823017 0.0887172893 0.0384460911 0.050964959 0.0253047347 -0.0371343754 -0.0401015431 -0.0777662173 -0.049233865 0.0365895703 0.0253041834 0.0662887916 0.0518268123 0.0665481165 0.0712357685 -0.0503987446 -0.0429980978 -0.0627239048 -0.0512839854 -0.0503749736 -0.037529882 -0.0114875734 0.0907890424 0.0226122141 0.0523797795 0.0588642135 -0.00745921582 0.00505881757 -0.0875509083 -0.0622214302 0.053151004 -0.0235826373 -0.054971464 -0.0543217622 -0.074725382 -0.0263909772 -0.070951201 0.0530366972 0.0381404683 -0.0889715701 -0.0903230831 -0.0166699216 -0.00132118165 0.0156514049 0.043097876 -0.0585044324 -0.0826112479 0.0524866208 -0.0901681259 0.0762354508 -0.0728501081 0.031221129 -0.0244246051 -0.0268855318 0.0327817872 0.00126797706 0.0171894282 0.00342938304 0.0249531865 -0.0655075312 -0.0446991324 0.0218043029 0.0848480389 -0.0773252174 0.0394227579 0.00571195781 0.0366305634 -0.0292530656 0.0113353059 -0.0338203907 -0.0469245911 0.0691550151 0.0789580569 -0.00365327299 0.0245315507 -0.0838573501 0.073111929 -0.019250229 -0.0804239586 0.058057867 -0.0430054702 -0.0326459333 -0.0263987705 -0.0819822103 0.0759046152 -0.0475890003 0.024586603 0.0510866866 -0.0041315183 0.0147486925 0.0891279504 0.0421473905 -0.051982332 -0.0749100447 -0.0423417911 0.0140340775 -0.0620062128 0.0184324086 0.0572543517 0.0838971063 0.0177480802 0.0398134068 -0.088158682 -0.0503422022 -0.0262115449 -0.0455072932 -0.0669791028 -0.0169358477 0.0658250526 0.0886001065 0.0635558143 -0.0674596131 -0.0095563978 -0.0776658282 -0.0837657005 0.0508744195 -0.0229096487 -0.0450248681 -0.0658202916 0.0198295861 0.00362184644 -0.0584340207 -0.082134679 -0.0453580618 -0.0704216063 0.0836719945 0.071498163 -0.0854616091 0.0465548113 -0.0825536922 -0.0495433323 -0.0824001729 0.0766019747 -0.0522716381 -0.0241967067 0.058755137 -0.0230292082 0.00805973262 0.0922737643 0.0412545577 0.0453356728 0.0164121762 0.0718773827 -0.0635614246 -0.00849124789 -0.032382492 0.0361184403 -0.0922128782 0.0367006436 -0.0554607362 -0.000386126339 0.0323703885 -0.0841270462 -0.0170120895 0.0670132861 0.0166917294 -0.036364384 0.0669984743 -0.0598043948 0.0381590351 -0.00296364725 -0.0230879337 0.0431650206 -0.0269301906 -0.0764369816 -0.0338453278 -0.0620229393 -0.0435984544 -0.0529011376 -0.090439342 0.0228217766 0.0345306471 0.00144752115 0.0748783126 0.0799877718 0.0712645426 -0.0663520023 0.04075066 -0.0207602382 -0.0544899851 -0.0370815285 -0.0171501413 -0.0563346185 -0.085417673 0.054713808 0.05043035 -0.0573676564 -0.0453559272 0.0801491812 0.0480493978 -0.0383647829 -0.0902967975 -0.0804613084 0.0459641144 0.0800023451 -0.0706923828 0.0440580621 -0.0724178031 -0.0645233542 0.0297136083 0.0917731598 -0.00379935652 2.579391e-05 0.00244095922 -0.0526949018 0.0435508266 -0.0476148166 0.0103714466 -0.02870965 1.95428729e-05 0.00248064846 -0.0625121668 0.0543275699 -0.0849474221 0.052239202 0.0915064588 0.0273547471 0.0628054962 0.030546248 -0.0394574478 0.043961741 -0.0333479792 0.0094878599 -0.0630623847 -0.0135958716 -0.0176922828 -0.0503013507 0.0110135376 0.0746975318 -0.00396921486 0.048343502 0.0721883252 -0.00790715218 0.0362962112 0.086551629 0.0142392144 -0.0468645468 -0.0812661871 -0.0307185203 0.0453557894 0.0446589366 0.052357398 -9.57921147e-05 0.0156711265 -0.044783432 -0.00548003614 -0.00484069437 0.0395728871 -0.0383845493 0.0763569251 -0.0076347962 0.0674668178 0.0783863589 0.0218963251 0.0682634339 -0.0114218518 0.0910366103 -0.0112773925 -0.00286642462 -0.0675863922 0.0267459825 0.0888823196 -0.0561274104 -0.0419059843 -0.0361370817 -0.00261871517 0.033339791 -0.0680090189 0.0664575174 -0.0865488574 0.0900586471 0.0297995582 -0.0746837407 0.0840651765 0.0645783618 0.046513252 -0.0647894591 0.0521011427 -0.0444920808 -0.00446044654 0.0284601822 -0.0755621791 -0.0452511124 0.0848732665 0.0097739473 -0.0784656629 -0.0538709201 0.0621014014 -0.0796338469 -0.0628756285 -0.0449644029 -0.0218869075 0.00830780715 0.0840780959 0.0768559352 -0.071536243 -0.0502669029 0.0823509321 -0.0504056364 0.0659406111 0.02060581 0.0343575552 -0.0615339316 -0.0197582319 0.0184792876 0.0113521442 -0.00382493436 0.0501234159 0.071533449 0.0129137412 -0.0665634349 -0.0049212575 0.0920312628 0.00837234408 0.0126298517 0.00702303648 0.02302441 0.0291452557 0.0288247392 0.0834879205 0.0790823326 0.0383776352 -0.0418619402 0.0575244352 0.0460972115 0.00198787451 -0.033788871 0.0315936357 -0.0502065942 0.0849436596 -0.0356972255 -0.0854775831 -0.0605461672 -0.019297488 -0.0346155427 -0.028069295 -0.0472282469 0.0304352716 0.0259633809 -0.0773643255 0.0908062086 -0.0676310062 0.00977920741 0.0548634455 -0.0638682097 0.0640398636 0.0678609982 -0.0718793422 -0.0270019397 -0.0625938475 -0.00817431509 0.0730543062 0.0437494889 0.0683690831 -0.0613850541 0.0124744326 0.0913607702 -0.0238640383 0.0102300942 -0.055480171 0.0858275518 0.0810378566 -0.0757072866 0.0653581396 0.0824360922 0.0589628443 0.0680078939 -0.0252311155 0.0049739033 0.084975414 -0.0599709451 0.0320213437 0.0321654901 0.0433384255 0.0810298845 0.0513349101 -0.0833620504 0.0518045947 -0.0912890583 0.00676348805 0.0137061849 0.0224105343 -0.0556969084 -0.0157945156 -0.0524613895 -0.044346679 0.0422825888 -0.0621429831 0.063141726 0.0644035712 0.0611688718 -0.0739704669 -0.0413691029 0.00379779935 0.0274552703 -0.0898985192 0.00207153708 -0.0803094581 -0.0644039214 0.0245209411 0.0151694193 -0.0375756845 0.0703468099 -0.0050509423 -0.0878437757 0.0150228739 0.0115320757 0.0448116586 -0.00581406802 0.00577966124 -0.0826723948 -0.0185840353 -0.0643019676 0.0742878094 -0.0427944586 0.0833752528 -0.0216807574 -0.0777673796 -0.050620459 -0.0827102512 -0.0242789388 0.00855648518 0.0823662505 -0.0886503533 0.0114488825 0.0874739811 0.0833512619 -0.0365757719 0.0466228053 -0.086405918 -0.0823646411 0.0810143277 -0.020251967 -0.0545742214 -0.0873931795 0.0782028362 0.0392102972 -0.0533761457 0.0612542704 -0.0434998274 0.0354094878 0.0720430985 -0.0323349051 -0.0689317584 0.00382418931 0.0607749894 -0.0636621714 -0.0672971532 0.0468292609 -0.0349145532 0.0626872852 0.0165822282 0.0351827219 0.0453275517 0.0635829046 -0.0168523863 -0.0284960791 0.0734884217 -0.0680963993 0.0652899966 0.0597398654 -0.0369976461 0.01941403 -0.085111022 0.0201863348 0.0626561865 0.0546021983 -0.0683944002 0.0158385634 -0.0815305784 0.0095942989 0.0538776591 -0.0886906534 -0.0645411164 0.0559246913 -0.00377497077 -0.0564662404 -0.00139977783 0.0493003353 0.0432886854 0.0514147952 0.0867680088 -0.0182905942 -0.0418303087 0.0530543998 0.0178795233 -0.0558001176 -0.0525076799 -0.0757509395 -0.0871629491 -0.0119733214 0.0299612284 0.0445440039 0.0565827861 0.0831186399 0.0774956867 0.00560817868 -0.0382772684 0.0651116744 -0.0600001775 0.0184660181 0.0586278066 -0.0792088285 0.059972547 0.0885886326 0.089556627 -0.0683524907 0.0832121149 -0.00662918389 0.0726729706 -0.0159938857 -0.0590090007 0.0408034101 0.0503027365 0.0298633054 -0.0823688284 0.00610392541 0.0441638604 0.0842178389 0.0195655748 -0.0757575408 0.00930809975 -0.0807818696 -0.0719104409 -0.0120878667 0.078352578 0.00654523075 0.0465859398 -0.0881329924 0.0782173648 0.0249723792 -0.0161815956 0.0152498931 0.0197824165 0.0366295651 0.0682447925 0.0515095964 0.0332215056 -0.0127227604 -0.0883509666 -0.0729850382 -0.0781012177 0.0318307132 0.0677679405 -0.0129507631 -0.0139890462 0.054706268 0.051769577 0.014760375 -0.0204227716 0.0339918956 0.0706416443 -0.0426718593 -0.059652146 0.0338458195 -0.0209414437 0.0397285745 0.00316154212 0.0044837296 0.00925474614 -0.0358822457 -0.0102547929 0.0570362434 -0.0634696186 -0.0462009534 0.0902699754 -0.0145743415 -0.081182152 0.0329345837 -0.00336249918 0.0172612965 -0.0719642118 -0.034769129 -0.030648727 -0.0570716597 0.0877969339 -0.0869738385 -0.043430008 -0.0132900104 -0.0352154374 0.0304517746 -0.0204996318 -0.0595503263 -0.0771315843 0.0727022067 -0.0830627084 -0.00466240942 -0.0501608327 0.0743778422 -0.0343054794 0.00377288461 -0.070044741 0.0223034546 -0.0509367697 0.0065029487 -0.00602340698 -0.0517288148 0.0759624168 -0.0277823657 0.032380335 0.0110386685 -0.0789320245 0.0120702609 0.0330957696 -0.0064182356 0.0315100849 0.057309024 0.0374833271 0.0109075978 -0.073596023 -0.0895601511 -0.0148975477 -0.0166800618 -0.0824837238 -0.063604854 -0.0430667922 -0.0588623025 -0.00700730085 0.0473304465 -0.0234849304 -0.00936376303 -0.0801298097 0.0667422339 -0.0867770165 0.036755003 -0.00698911399 -0.0285914093 0.0180505887 0.0535447076 -0.0328592174 -0.0134464651 -0.0663404465 -0.0108752847 -0.00349841267 -0.0905798748 -0.050628446 0.0190238729 -0.0920117274 0.0677005574 -0.0166446269 0.0645952746 -0.0729345232 0.0116832256 0.0689262822 -0.0774235353 0.0524437651 0.054302521 0.0113095343 -0.0383329988 -0.05981135 -0.00976087153 -0.0552027747 0.00631991029 -0.0756401345 -0.0778476298 0.0890765116 0.0914600715 0.0347813293 -0.0513972715 0.035251461 -0.040226277 -0.00312568247 0.0344975814 -0.0833607092 -0.015786767 0.0363906845 0.0720918104 0.0344014391 -0.0644274279 -0.0369438753 0.035732545 -0.0474388227 0.0108362436 0.0325207636 -0.0539137535 0.0568775907 -0.0168843195 -0.0446366444 0.07435406 -0.0902612284 0.0199831128 0.0631320402 0.0792714879 -0.0789034292 -0.0687675849 0.0385306254 -0.0603554249 0.0521456525 0.0278890058 0.0599347129 -0.0549240559 0.0718255714 0.0625853017 0.0883392766 0.0181603581 0.0673177317 -0.00820761919 -0.084137544 0.0552559569 0.035374172 -0.00133515894 -0.0404902697 -0.0488032512 0.0521800742 -0.0702349991 -0.0860080793 0.00847209245 0.0415183529 0.0885259286 -0.0501223169 0.0315193534 -0.0792748109 0.0592451021 -0.0576211289 0.0762941167 0.0216013864 -0.0332340524 -0.0223567411 -0.0769214109 -0.0374721922 0.0742693469 0.0216701478 -0.0115170702 0.0885658786 0.000158630311 0.0579675362 0.0376497582 0.0286120996 -0.0426645502 -0.00687904656 0.057133846 0.00578433275 -0.0384932794 0.0145920888 -0.0885349289 0.0742831007 -0.0861733332 -0.0241078287 -0.0860323384 -0.0753745809 0.0109143332 0.0384745076 0.0730092749 -0.0324819349 0.0666725561 0.041418381 0.0561554506 0.0849100873 -0.0602797978 0.0343223885 -0.00545465946 -0.0878550038 -0.0225811154 -0.0107028782 0.046854876 -0.0827064887 0.0562618002 -0.00968009979 -0.0598392375 -0.0580735542 -0.0554438978 -0.0105074272 -0.0880759433 -0.0219227374 -0.0656406283 -0.00682641566 -0.063898012 0.026212804 -0.0109958798 0.00738053024 -0.0412557945 -0.0791324303 -0.0386441611 0.000423572958 0.00338400155 -0.0636376515 0.0231873095 -0.0697125643 -0.0194131508 0.01328706 -0.0478222892 0.0843408033 0.0294826105 0.0597448125 -0.0194123387 -0.0384798981 -0.068062216 0.0208751708 -0.0684221536 -0.0850162655 -0.0873245969 -0.0337873958 0.0107837245 0.0795967653 -0.0376224369 0.0424476638 -0.0369258486 -0.048605334 -0.0346849412 -0.0835071877 -0.0788954198 0.0358029827 -0.01942233 -0.0551875867 -2.64793634e-05 0.0532726273 0.0304867104 -0.0789638311 0.0546437725 0.0867949054 0.0286765844 -0.0107122809 -0.0899544507 -0.000328332186 0.0914741233 0.0894938335 -0.0705610886 -0.0328763612 0.0745409057 0.0622053668 -0.00761401653 -0.0331244208 -0.0853171945 -0.00473377109 0.0315505415 0.0443716422 0.0699930862 0.0371377841 -0.0267350897 -0.0528372638 -0.00999343395 -0.0168473199 -0.029237017 0.0771296546 -0.0509002768 0.0347330347 0.0499237403 -0.0798668936 -0.0385666639 0.0591904745 -0.0243784264 0.0131788775 -0.0645645112 -0.0348605178 0.0235556737 0.0912810192 0.0501758084 0.0657168701 -0.0627605543 0.00238520652 -0.0479009748 0.020145528 0.0485960022 -0.0911846608 0.0880737826 -0.0153536275 -0.0249862447 0.0437489823 -0.0775802284 0.0148172081 -0.0280747786 0.0238979608 -0.0235797316 0.0423610881 0.0545268133 -0.074753575 0.0495893285 0.0751602873 -0.0343606807 -0.0698071197 -0.0199304819 0.00846558064 0.0688513294 -0.078879416 0.0704642609 0.0568299368 0.072301738 0.0113207996 0.0677503571 -0.0162104741 -0.0239943415 -0.012167789 -0.0532049946 -0.0272085294 -0.037605729 -0.0100759342 0.0548598096 -0.00675292313 -0.0739073604 0.0346606597 0.00559066236 0.0425145552 -0.0755540729 -0.0766796693 -0.0624428317 -0.0873144716 0.0151550472 -0.0291267484 -0.0044953078 0.0334587619 -0.0102402866 -0.0859285146 -0.0787902325 0.0762132928 0.0360028222 0.0477723256 0.0430506989 0.00563113391 -0.0182368457 0.0431398675 -0.0150470436 0.0320593789 -0.0859002322 0.0565301403 0.046321325 0.0527548715 -0.0439660735 0.0170066357 0.0368816033 0.0287948251 -0.0685198605 -0.00872035325 -0.0832144022 -0.0191608891 0.0258956105 0.0782479569 0.0585964099 -0.0224545598 0.0722927675 -0.0429841205 0.0427661464 0.00829707086 -0.0134962052 0.072605066 0.0263223276 -0.086547628 -0.0467049927 -0.0873330906 -0.0696011484 -0.065603137 -0.0847358555 -0.0635682717 0.0377923772 0.0406199768 0.0520705953 0.0455263034 0.0448635444 0.059092246 -0.00217203796 0.0212884173 0.0710569397 -0.0221928284 0.0490217432 0.0830393806 0.0732303634 0.015966922 0.0254063606 -0.0065818131 0.0128223971 0.0894278213 0.0300100073 0.0413382426 0.0877172425 -0.0791815817 -0.00518324971 0.0465569571 -0.0763559639 -0.0672130287 0.0729581341 -0.0590248704 0.0383064076 -0.0863678455 -0.0801677778 -0.0539518073 -0.071651198 -0.0901680589 0.0902542397 0.00978200138 0.0411270484 -0.0331972316 -0.0909473225 0.0654508993 -0.0129559338 -0.0567379817 0.000111550093 -0.0850081891 0.0704492703 0.0405879989 -0.0243087187 -0.0832649842 0.0282706693 -0.0691337287 -0.0148332119 0.0361058936 -0.00105238706 0.0524713472 -0.0525640473 -0.0251871794 0.0664029941 0.0341072753 0.0455153063 0.0903442726 -0.00433415174 -0.0248609856 -0.0273317918 0.0252463669 -0.0116087645 -0.00739283115 0.0439102724 0.00388379395 0.0682206675 0.0102329552 -0.0712830275 -0.08628764 0.0173220411 0.0097746104 -0.0252792239 -0.0723928437 0.0596740916 -0.0755312964 -0.0394033492 -0.0670061558 0.0136760324 0.0753665641 0.0465443656 0.0178189501 0.0606936589 0.0457171425 0.0370092466 -0.0315037891 -0.0406271294 0.0728816763 -0.00625885278 -0.0735865831 0.0762740895 -0.0392402932 -0.0567026995 0.0289262086 -0.0157414526 -0.0497767515 0.082434006 0.0407827422 0.0206246302 -0.0550914444 -0.0161072612 -0.0278953239 0.0729065612 -0.0267276242 -0.0466956608 0.0766743198 0.0457128957 -0.0274234191 -0.00514582545 0.0164132565 -0.0791077986 -0.0677751973 -0.00741090626 -0.0354556367 -0.0288223624 -0.0507757626 0.039964281 0.0721436366 -0.0467522256 0.0172968879 -0.0472698025 0.0401768163 0.0416387096 -0.0451174416 0.0586451069 0.0645661876 0.0136304274 -0.0663179979 0.00867712498 0.0531602427 0.0348475501 0.0690153763 -0.0452078171 -0.0686492622 0.0303287804 -0.0773709938 -0.0837596431 0.0760012791 0.00130845606 -0.0839452595 0.0182308778 -0.066039674 0.0869883224 0.0726511404 -0.063937895 -0.059213873 0.0517520532 0.0395690277 -0.0519238301 -0.0683356747 -0.0777670294 0.0902865604 -0.0761081874 -0.091015555 -0.0722072944 -0.010894455 -0.0285403654 -0.0275504664 -0.043528419 0.0414698943 0.00239031762 -0.0863899216 0.0815801397 0.0391281024 -0.0685287043 0.00518606603 0.0239017233 -0.0822739154 0.0180915967 -0.0031882599 -0.0667519569 0.0578839406 0.0174611509 0.0474205241 -0.06812644 0.0298026204 0.0439173803 0.055877544 0.0494619086 0.0408850983 0.0479241237 -0.0257571638 -0.0553201102 0.0603898987 0.0810571983 -0.0778900906 0.0685311332 0.0786246732 0.0858890042 -0.0232823491 0.00444772094 -0.0919344872 0.0591870919 0.0430614278 0.0789828524 0.0744216368 0.0845257267 0.0443737581 -0.0485875271 0.0407883152 -0.0702462494 -0.0868332759 0.0740564242 0.0203997716 -0.0466897376 0.0339844152 -0.0262346342 -0.0559345335 0.0730093196 0.0436624363 0.00573548675 -0.00769189 0.0371897742 -0.0735037103 0.0441830084 0.0174924284 -0.0592786744 -0.0625611395 -0.00885802507 0.0791314319 0.0666788593 -0.0119850785 0.0169042647 0.0673163459 0.082608901 -0.00612214953 -0.0678882673 -0.0117842779 0.0698744431 0.0266057998 0.0622432902 0.0617404506 -0.0652317777 -0.033939071 -0.0853756517 0.0587819144 0.0395478234 -0.0454042628 0.00954899937 0.0849023238 0.0475104675 0.0225743577 0.0444375202 -0.0654035956 -0.0569657683 -0.00743487477 0.0697758868 0.0429002866 -0.0813921764 -0.059548039 -0.0381722786 0.0667618588 0.0367716476 -0.0610602684 0.0822200999 0.0705335513 -0.0819016993 0.0165972859 -0.0329931267 -0.0773605853 0.0319423229 -0.0584283434 -0.0404892787 -0.0810907185 0.0597451851 0.0875014737 0.0556807294 -0.0548267029 0.0329673514 -0.0680285618 -0.0449994206 0.0798448399 0.0233391151 -0.0157138035 -0.0508487485 0.0380008891 0.0866763815 -0.0237916261 -0.00439821929 -0.0338865779 -0.0185492858 -0.0517390072 0.0210607424 -0.00962654501 -0.045723699 -0.0575838462 0.0529660955 0.0151753426 -0.0354081839 0.0177148432 -0.0241093263 -0.0464472063 0.0611472353 -0.0530370548 0.0272361338 0.0121341944 -0.0272767022 0.0749008879 0.0356596485 -0.0600278452 0.0719001219 0.080045484 0.0771159455 -0.0830738246 -0.0909068435 0.00475928187 -0.0871810168 -0.014836669 0.0349788889 0.0921716765 -0.0326863229 0.0774501935 -0.0230629295 -0.0170200393 -0.0125868246 0.0150965005 0.0672705248 0.0617188886 -0.0627322495 0.0186981633 0.0735785738 -0.0125852823 0.0417616442 0.0059876442 0.02279526 -0.0860958844 -0.0811378881 0.0749780163 0.0895198807 0.0779669359 -0.0121312067 -0.0726186037 0.0903589949 0.079365097 -0.0212768391 0.00752458721 0.0837609246 0.0497834012 -0.0379050076 0.0378382728 -0.0500029102 0.0626485273 -0.00446471572 0.00115370005 -0.0813632086 -0.0764618516 0.00635715574 -0.0474912077 0.0825098678 -0.0632979199 -0.038359236 0.0651732162 -0.09186095 -0.0143064559 -0.0661027133 0.00323168933 -0.0355503261 0.0423760638 -0.0533205718 0.0553757027 -0.0797672346 -0.0644726157 0.0877504721 -0.0503118932 -0.0366881564 0.0793092623 0.0475819185 -0.00526023656 -0.076581195 -0.0440602563 -0.029390648 -0.00797466189 0.0314865783 3.88473272e-05 -0.0920035839 -0.00968889892 -0.0584854595 -0.0707947314 0.0299844742 0.0150627792 0.00785518438 -0.0120450109 -0.0852452666 -0.0263449103 0.0356615707 -0.0296610072 0.0391167328 0.0836243108 0.0224058256 -0.0392866246 -0.033738073 0.0220622197 -0.0596127026 -0.0711985305 -0.0732484981 0.0299924165 0.0417387709 -0.0124093294 0.084061034 -0.0164033026 -0.00938854367 -0.0739352703 -0.0888442174 -0.0168338716 -0.00297491252 0.0739211366 0.0517646447 -0.0454659127 0.0126442909 0.0788915232 0.08587908 -0.0645450354 -0.0113503635 -0.0482499935 -0.0511419736 -0.0717962533 -0.0830877572 -0.0838730857 -0.080396533 0.0918465778 -0.0013699308 0.0202357471 0.0384325907 -0.0713760704 0.0229366943 0.0802701488 -0.00412487239 0.0268583223 -0.0500585511 -0.0920251086 0.0846249238 -0.0427050963 -0.0182267651 0.0131154433 -0.0308570787 -0.0511263683 -0.0085870102 0.0606918558 -0.0530840904 0.0273889974 -0.030999992 -0.0610135607 0.0169222057 -0.023894988 -0.0789259449 -0.0442623347 0.0676499233 0.0195761845 -0.0832430422 -0.0222747996 -0.0423766114 0.0734846666 0.0302481353 0.0475275293 -0.0206588954 0.0389728174 0.0213156044 0.0035244897 -0.0609762743 0.0638430491 -0.0856974944 0.0916200951 0.0488593802 -0.0546988882 0.0652744099 0.00424958766 -0.0142629594 -0.0151884779 0.0806055292 -0.0048032105 -0.0119495317 -0.0332325138 0.0618970171 0.0592256561 -0.020162411 0.0106062293 0.0131795406 0.0105688795 -0.086195983 0.00039742142 -0.0480310805 0.0198219493 -0.0779237226 -0.0192020237 -0.0707916245 0.045349054 -0.0677372515 -0.0584088862 0.0410115197 -0.0644164234 -0.0728033409 -0.0662006363 0.0276045203 -0.0180610269 -0.00161471218 -0.0408114903 -0.00704726577 0.0495241657 0.0475253835 0.0245626345 -0.0291164443 -0.00186663866 -0.0684454218 0.0491081998 0.0830223337 0.0528355911 -0.0446632132 0.0212101936 -0.00682152808 0.0785125867 -0.0397419333 -0.00531321764 -0.0861603916 -0.0508424975 -0.0212416053 -0.014720425 -0.0744534209 0.0674430802 0.0522578433 0.07759092 0.0872658268 0.0821558908 0.0711892918 -0.0506614633 0.0496394113 0.0688685849 -0.0106595606 0.0556154028 0.0499112085 -0.0817356706 0.034572728 -0.0370480716 -0.0395320654 0.0875857547 -0.0516916625 0.0464991555 0.0349177048 0.0349461809 0.053716056 0.0265475586 -0.0670096576 -0.0583047532 -0.0237135589 0.0882081166 0.0905500576 0.0349741802 -0.0454492941 0.0061994046 -0.00787279755 0.0173461661 -0.0758761764 0.0803108439 -0.0206862986 0.0119568631 0.0641182438 0.0372840241 0.0736004934 -0.0284255147 0.0889350995 0.0858561024 0.0376604423 -0.0618746988 -0.0810649917 -0.0233350843 0.0792289004 -0.0355126671 0.00113457441 0.0736971572 -0.0490746163 0.0885375664 -0.057371445 0.02126652 0.0164860189 0.00293965638 -0.0667630881 -0.0678194389 -0.0489798188 0.00691419095 0.0881966278 -0.0437642597 0.0528842732 -0.0297073573 0.0661598668 0.0881750062 0.0471898541 -0.0347070619 -0.0200014859 0.0148249343 -0.0342128612 0.0784707889 -0.0343291648 0.00293096155 -0.0122582242 -0.0472674929 0.0179302841 0.0654226169 0.0760348961 0.0889784619 0.0394875333 0.0150074661 -0.0327433534 -0.0157290772 -0.0715309158 -0.0702274069 0.0338020399 -0.0448647626 -0.0353790186 -0.0455203429 0.00317474455 0.0457089767 0.0503674522 0.0216949731 0.0629805252 0.0507614836 -0.0689154714 -0.0719908625 -0.0352144465 0.0117092878 0.0792061463 -0.04318358 0.0547791645 -0.0267570317 -0.0418404788 -0.053702496 0.08251407 0.0720417574 0.0451261625 0.0754668042 0.0502500013 -0.0884301811 0.0446458831 -0.0141647086 -0.0355575457 0.080662109 -0.0737155825 0.0541240796 0.0307764336 -0.0312810205 -0.0560528859 -0.0283514708 -0.0662083402 -0.0564194247 0.0595171526 -0.0733004883 -0.0907513797 -0.0617045127 0.0638531968 0.0197080225 -0.0250399709 -0.0461801291 0.0109282881 -0.0726963431 0.0750423148 -0.071572952 -0.0271332338 -0.0482617915 0.0441628769 0.0636094138 0.0341657177 -0.0587126315 0.0727150366 -0.00849879533 0.0375838801 0.0518121943 -0.00665424764 -0.0528039858 -0.0396299437 -0.0722134113 0.0728666559 0.0723533407 0.0668781176 0.0761623308 -0.0601798482 0.0432642326 -0.0593289249 0.0663428679 -0.0816545635 -0.0372391231 0.0828007534 0.0677074566 -0.00546927005 0.000244885683 0.0638382509 -0.0284989402 0.0536360666 0.0590456054 0.0569435135 0.00993792713 -0.00803346932 0.0796413943 0.0815834478 0.0579874739 -0.0230784416 0.0691599622 0.0696178451 0.0589292571 -0.0703392923 0.050733991 0.0905753598 0.0634291843 0.0742493793 0.0912298486 -0.0247509331 -0.00589288771 -0.0346336551 -0.0916547403 -0.0682289451 0.0314105973 0.0551488325 -0.0914136767 0.0531133786 0.00916146487 0.0855608508 -0.0615053847 -0.0190767199 -0.0719489157 0.0891045853 0.0484726354 0.0412534848 0.0895915702 0.0454182997 -0.0877648294 0.0598480031 0.0633044317 0.0537819043 -0.0489723124 0.0889716372 0.0624059811 0.0441901013 -0.0317150019 0.0565573052 -0.000371649861 0.0193441212 0.0446381196 0.0505843982 0.0801885352 -0.0681618601 -0.0872240737 0.0208319873 0.0287901387 -0.031449642 0.0312169269 -0.0414363444 0.0677929893 -0.00395043939 -0.0277537778 -0.0643297881 -0.0809412077 -0.0279186368 -0.0284003988 -0.0333935656 -0.0594896451 -0.0131950155 0.028135702 -0.0730711371 -0.0913408697 -0.0823875368 0.020656921 -0.0765333921 -0.0627294779 -0.0138360709 -0.040317595 0.0402534083 0.00431884825 0.0358801559 -0.089386493 0.0763774589 0.0145444125 0.0163671672 0.0909400508 0.029236488 0.0348135307 -0.0605163872 0.089790456 -0.0311919898 -0.0150801688 -0.0651359484 0.0684242025 0.0589336082 0.00550539047 0.000235579908 0.0697477981 -0.0217342228 -0.0065998435 -0.0291817263 0.0336481407 -0.0553844683 -0.0013198331 0.0350424275 0.0724518821 -0.0751603544 -0.0292239413 -0.0272438824 -0.000759489834 -0.0819199458 -0.0403381549 -0.0620305985 -0.0678554922 0.0176531225 -0.041260615 0.0485669747 0.046262078 -0.0178228021 0.0808942541 -0.0116704181 0.0335009322 0.00842037052 0.0866486952 -0.0157326236 0.0122642145 -0.0139008015 -0.0453291163 -0.0577568486 -0.0542825833 -0.0237362459 0.0298951119 0.00231922418 0.0719948038 0.0837561861 0.0653707162 -0.0295219421 -0.0378490984 0.0579676703 0.0128119439 -0.00456701964 -0.0102160498 0.0250423253 0.0864775255 -0.0445775054 -0.0610076822 0.0650118366 -0.0190016404 0.0126091391 -0.0429160222 0.0681528524 0.0493566766 0.0788932219 -0.014991425 -0.0202770606 -0.00803674757 0.0334930941 -0.00511263311 -0.0270061269 -0.0686542094 0.01247067 -0.0060833618 0.0734292939 0.0330564752 0.0558489636 0.0743354037 0.00350545347 -0.051856719 -0.075300321 0.076124616 0.0660452917 0.0822559819 0.0403597429 0.077421613 0.00518258661 0.0571656898 -0.0538274273 -0.0170647204 0.0745693073 0.0444781855 -0.0144879073 -0.00553959608 -0.039503254 -0.0380510464 -0.0204798877 0.0118169636 0.085623078 -0.00682032108 0.0424089506 0.0140280202 -0.00148399174 0.0678229257 -0.0791215301 -0.0564242452 0.0773832723 -0.0251476914 -0.0711606964 -0.0118225515 -0.000157773495 -0.0291913897 -0.0616483428 -0.00855989754 -0.0866688341 0.053735055 -0.04927117 -0.0628041327 0.0438000485 0.0416126475 0.0355593339 -0.0580323525 0.0120564327 -0.0840870738 -0.0413381122 -0.0866005346 -0.00810225308 0.0181980357 0.0834561363 -0.0674327612 -0.0373697355 0.0669862106 -0.0381945558 -0.0295246914 -0.0224604979 0.0221423358 0.0325416476 -0.00207582861 -0.00986526906 -0.0192239732 -0.0274156928 -0.0200435966 -0.0865887851 0.0416727886 0.0137410536 0.00549460948 0.0202672631 -0.0743040815 -0.027554512 0.0447133258 0.0473576859 0.0267534629 0.012715362 -0.0468652509 0.00573112816 0.0103066713 0.0684144124 -0.0297427103 -0.0256353766 -0.0455399342 0.0415711179 -0.0857415795 -0.0472701974 -0.0427183025 -0.0759827271 -0.0782772526 0.0611802712 -0.04323918 -0.0587951019 0.0405660942 0.0399970338 -0.0717894286 0.0376394317 -0.0426139496 -0.0108558312 -0.0897668526 0.0276935548 -0.0303507037 0.0181777701 -0.0806828886 0.0529241636 -0.0792515948 0.00387813896 0.0285050347 -0.0751800984 0.0840864852 -0.0251135305 -0.00574710965 -0.0633424893 0.0592958853 -0.0147896484 0.00556439906 -0.0607083403 -0.0689285249 0.0260482281 0.0345578268 -0.0734312981 0.0841421261 -0.0487260371 0.0633938685 0.0706484094 -0.0823304653 0.00517506152 0.0158385187 -0.0300811417 0.0734207258 0.0695280954 0.0337807909 -0.0304769129 -0.0811767131 -0.0480340943 -0.0315445513 0.0302481577 -0.0139207691 -0.0805980414 -0.0837915614 0.0126131475 0.0149450004 0.072673209 0.0528922305 0.0605130717 -0.0235740766 -0.05211116 -0.000536106527 -0.0123620704 0.0259339288 -0.0229718462 -0.0393748879 -0.0655003339 -0.0532926172 -0.0466549844 -0.0312491283 -0.0148978084 0.00292365253 0.0921503082 -0.081941098 -0.0774915218 -0.0323518068 -0.0456806682 0.00845554471 -0.0607390478 -0.0879785717 -0.0182445943 -0.0194189623 0.0389966145 0.0488903299 -0.0313800015 -0.00658009946 0.0867613032 -0.0577522032 0.00963528454 0.0240010321 -0.0496825241 -0.033666715 0.00126677006 -0.0739600807 -0.040906772 0.0694370344 -0.0649123862 0.0668045208 -0.0642234981 -0.0636974722 0.00286176056 0.0324297696 -0.0556579717 0.0194614157 -0.0520860031 0.066068612 -0.0343732052 0.00926383585 0.0317663327 0.0127564967 -0.0717132688 0.0591483936 -0.0845637992 0.0679083243 0.0216328874 -0.0151876658 -0.0382166542 0.0592403039 -0.0156861842 0.0878913626 0.0761730298 -0.0563770756 0.087788336 0.0276096314 0.00127971172 -0.0508273542 0.00399445742 0.0494268313 -0.00759625435 -0.0502780192 -0.0763716996 -0.0365472473 -0.00368378311 -0.0187020153 0.0773896798 0.0651563928 0.0191484764 -0.0222755447 -0.0130330622 0.0250322223 -0.0349124856 0.074923791 0.0795340911 -0.00932535529 -0.0537013076 -0.0146432593 0.070910506 0.0821496025 -0.0572446845 -0.00144053996 -0.0415514819 -0.0643264651 -0.0754500106 -0.0156188533 -0.0205382183 0.0176037326 -0.081328921 -0.0897046775 0.0245104432 0.0902874246 0.0762814507 0.0178423524 0.0915391818 -0.0471581668 -0.0191279128 0.00178857148 -0.041619584 -0.0490474142 0.0689659193 -0.0150454566 0.00683211535 -0.0822701305 -0.057114251 -0.00665781647 0.0367591456 -0.0721954554 -0.0899733603 0.0288336799 -0.0581551045 0.0849767551 -0.0816016048 -0.0177172869 0.0509029105 0.0707205608 0.0168830901 0.0373085514 0.00491020828 0.0789468512 0.0918914601 -0.0331800841 0.02272062 0.0781840011 -0.0208773762 -0.0553712845 -0.08698266 0.0443404242 -0.064392522 0.0790308788 0.000876434147 -0.0430400707 0.0532369539 0.0763294324 0.0372696742 0.0884887651 -0.027416952 -0.0278793275 -0.0596463792 -0.00987709314 -0.0896731317 -0.0428872965 0.0920398608 -0.0818030015 0.053084515 0.0668677762 -0.0597451851 -0.0500018522 0.0410603359 -0.0308811553 0.0837401226 -0.0605239831 0.0356051102 -0.0175561234 -0.052953016 -0.0650055557 -0.0906540081 0.0406295136 -0.0802508667 0.0774782524 -0.0743422657 -0.0296465233 0.0710032359 0.0810750946 0.0806353316 -0.0160329789 0.0795984194 -0.0183161944 0.0536796078 0.0864238217 -0.0428412072 0.0443269536 0.0699140504 -0.0434481688 0.0339374617 0.0746009126 0.0234189928 -0.0223837495 0.0509752408 -0.00165725499 -0.0435185358 -0.0441326946 0.0275324136 0.0337462649 -0.0217860565 -0.050940752 0.0305614322 0.0805975273 -0.0525391549 0.0508385971 -0.0657975152 0.0432606861 -0.0854528248 -0.0209032148 0.053579174 -0.0848325044 -0.00535138696 0.0489195362 0.022489287 -0.0746998265 -0.00850128382 -0.0291730538 0.087343283 -0.0726110563 0.032697238 -0.050759498 0.0352324322 -0.0185353905 0.0233943164 0.0437214747 -0.0690370798 -0.0562997982 0.0764841959 -0.0273514688 -0.062287353 -0.0561979339 0.0260309055 0.030122675 -0.0722498894 0.0504904017 0.0101529658 -0.0318273418 -0.0243400857 -0.0613061264 0.0204298124 -0.0690566301 -0.0796961188 0.0202075318 0.02767203 0.060247533 -0.0805016533 -0.0188222155 -0.00507807732 -0.0316395722 -0.0591422096 0.00693679601 -0.0703541487 -0.0669193864 0.0695611313 -0.0914436579 -0.0415817015 0.0811917111 0.0910484418 -0.00911491364 0.0110706091 0.0273953378 -0.0714866742 0.0794757977 0.0374094918 -0.0227869824 0.0385973975 -0.0377853364 0.0160723105 0.0525050983 -0.0790345222 0.00662305951 0.058856748 0.00212458521 0.0360229537 -0.00665887445 -0.0203303471 0.0624683723 -0.0448151492 -0.00421927869 0.0900559649 -0.0267236456 0.0266993642 0.0758542046 0.0561937913 -0.0503159203 -0.0339791737 -0.0103705227 0.0846667811 0.0438887998 -0.0617346242 0.0129736364 -0.06564679 -0.0343326181 -0.0776520222 0.00553131849 0.0559582189 0.0235257 0.0763220266 -0.0554104857 0.0100450739 0.045596309 0.0130885243 -0.071076043 -0.0534323826 -0.0157951787 0.0686851516 0.0587677285 0.00211377442 -0.0403750427 -0.0343788862 -0.0321593061 0.0632393882 0.0162675679 0.08135546 0.0501699671 0.0692057982 -0.0378754251 0.00643773377 0.0609652326 -0.0214422941 -0.00170640647 0.0159956738 0.00664936751 -0.011105299 0.0891456529 0.0441549942 0.0736731514 -0.0139091462 0.0380888656 -0.0834849104 -0.0371019319 -0.0225442275 -0.0744099468 0.0328706428 0.0010143742 -0.057476785 -0.00487364829 0.0306047052 0.0315559506 -0.0115234107 0.0219146386 0.0689639375 -0.0907836705 -0.0780039504 0.00701761991 0.0299927667 -0.0776877478 -0.0793568939 0.0065471679 -0.0845617056 0.0551260039 -0.00415793061 -0.0252005607 -0.0153812915 -0.00994303077 0.0588266626 0.0433825925 -0.0225502327 -0.0400140062 -0.0297112763 0.0548485592 -0.084777765 0.071282573 -0.0828906298 0.0210420787 0.0494003519 -0.0443999879 0.0373266116 -0.000462308526 -0.0510339662 -0.0526653416 0.0370870903 0.0459998026 0.0571659133 -0.0809769034 0.0794527307 -0.0900753736 0.0593742654 0.0355614647 0.03448046 -0.0536251292 0.0387472585 0.0616061762 -0.00132276118 -0.0112339482 -0.0341308713 0.039575763 0.086781241 0.0420433506 0.0897964165 0.0236177668 -0.0805908442 0.0809954628 -0.0153989047 0.0315241739 -0.0376732126 -0.0200865194 0.0523050353 -0.0690178275 0.0884517655 0.0740432516 -0.0333310999 -0.0909711346 -0.00534495711 -0.024442099 0.0828643963 -0.0921105072 0.0914978459 -0.0130887926 -0.0587089993 -0.0759249106 -0.0810959414 -0.0813584551 -0.038416706 -0.0239547938 0.0565449968 -0.0611571148 -0.0889079422 0.0165947303 0.00553415716 -0.0889067724 0.0504499003 -0.0519793406 -0.0467332304 -0.0408965833 0.0883106664 0.028766498 0.025360845 0.0654612854 0.0677543953 -0.0430286042 -0.0324346349 -0.0652213469 0.0445804968 -0.0865285397 0.036328502 0.0376955792 -0.0133950263 -0.00524441153 0.055590488 0.0683165416 0.0439555123 -0.0121597275 0.067650117 -0.0172887668 -0.0460913852 -0.089306131 0.0450807884 -0.0449299142 -0.013010852 -0.0833833963 0.0779487416 0.00149174035 -0.0166852847 -0.0453656763 0.0389800146 -0.00344356149 -0.0883751512 -0.0854311436 0.0354221985 0.0232027993 -0.0168585703 0.0565236434 0.0247884169 0.0668696836 -0.0237157568 0.0696887895 -0.0862439275 -0.0372288674 0.0527817383 0.00379506499 -0.0266433731 0.0893235877 0.00460892916 0.0099170804 0.000198952854 -0.0364272222 -0.0411746614 -0.0178914145 -0.0810569376 -0.0774546787 0.0290605798 -0.0769742802 -0.0603486672 -0.0564358681 0.0490466431 0.0830647275 -0.025101319 0.0601370856 0.0404087678 -0.0869045034 0.0637654439 -0.0777865127 0.036209248 -0.0366291255 0.0169292241 0.0160784274 -0.0128076971 0.0734889433 -0.0662256628 0.0868600681 -0.0786707774 -0.0776223093 0.0407953337 0.0624000505 0.0247990489 0.0869179741 0.0368772671 0.0820013657 -0.0203530192 0.023655206 0.0137299821 0.0284802541 0.0856646523 0.00714483857 -0.00992630422 0.059241958 -0.0708797351 -0.00794205815 -0.0207811669 0.0636410639 -0.0161463767 -0.0197402909 0.0128405392 0.0881506279 0.0135329217 0.0802368745 -0.0470778719 -0.00383561105 -0.0287643224 0.0847297087 -0.0855478644 0.0895587429 0.0561340824 -0.0243549421 -0.00455733389 -0.0605443195 0.041944541 -0.070895426 0.0383122936 -0.0797974765 0.0794189349 -0.0447614901 0.0517232493 -0.051444795 0.0640676394 -0.0546804667 -0.0159709081 -0.0549632795 0.0134854019 -0.0359789133 -0.0811815113 0.00260034204 -0.0872012451 0.0814140514 0.0240716413 0.0867565945 0.0584912226 0.0494272932 -0.0770082399 -0.0389683545 0.0421653166 -0.0110412464 0.0783178583 0.0256659538 -0.0877175257 0.0271485299 -0.0045549795 -0.0278879106 -0.053264223 0.0126023367 0.029835023 -0.0283744484 0.0418557152 0.00298321247 -0.0550936237 0.0530344322 0.0771969184 0.0664386377 0.0631738231 -0.0802906826 0.0779338256 -0.0477684066 -0.0614095517 -0.0538161807 0.0102554485 -0.0478390381 -0.000515416265 0.0714089349 -0.00936812162 0.0111892447 0.0900725797 0.0289576426 -0.0372226611 0.0899353847 0.0334743485 -0.0907601416 0.0395191833 -0.0500196144 -0.00616689771 -0.0517489128 0.0267274529 -0.0348067246 0.0252820477 -0.0457181744 0.0124399662 0.00730228424 0.0297338143 0.089017503 0.0306634083 -0.0343470797 -0.044002194 -0.0440220907 -0.0594778024 0.0810856 0.0331879482 -0.0109494627 -0.0354114845 0.0116839483 0.0644210652 0.0185994878 -0.0462304913 0.0855735764 -0.0745293126 -0.0416863412 0.0483318493 -0.0607790165 -0.0386421382 -0.019779183 -0.00615516305 -0.0808793753 0.02219785 -0.0780956671 -0.0812942311 0.044571422 0.0849023238 0.026774399 -0.0909810439 0.0839444026 -0.0651287735 0.0407302901 0.0906706229 0.0302598923 -0.0141840801 -0.0400586873 -0.0440643504 0.0862644836 0.0163913742 -0.0922974646 -0.0548383668 0.0483407453 0.0843317434 -0.0046364218 -0.0789948404 -0.045957163 -0.0904926956 -0.0323754475 -0.0170795545 -0.0858499333 0.0202688053 0.0489777103 0.050082542 -0.048425395 -0.0567185916 0.00956716388 0.0159746259 -0.0429949947 -0.0559116192 -0.0771731883 0.0672860369 0.0192865431 0.0101786554 -0.0136387646 -0.035854511 0.0125057772 0.0510217771 0.0740264133 0.0903018638 0.0908566192 -0.0169192106 -0.00481373817 0.0500228032 0.0112428591 -0.0173270628 0.0328340754 -0.0486992523 -0.0191924945 0.0688566789 -0.0584857464 0.0293953195 -0.0292806178 0.0487985238 0.0328872129 0.0567446128 0.0651441291 8.97794962e-06 0.00462099165 -0.049506288 0.0867186859 0.0128307194 0.0393465832 -0.04695886 0.0685437545 0.0113729462 0.0541410968 0.0921839848 -0.0776824877 0.00292490423 -0.0588608272 -0.0261666477 -0.0760113895 -0.0364437327 0.0216850936 0.0171804279 -0.0600781813 -0.0293521583 -0.00265420228 0.0121674314 0.0440614 0.0564564243 0.0150246322 -0.0624818578 0.0280925632 0.00373312831 0.0280629098 0.0253326669 0.0437229201 0.0444807038 0.0867209807 0.032276243 -0.0215683728 -0.0732098743 -0.00501763821 -0.0378361568 -0.0594609194 0.00560085475 -0.0543504842 -0.0622644387 0.0866363272 -0.0915831402 -0.0782377049 0.0292640701 -0.0599401742 -0.0795576721 0.0357842073 -0.0720195249 0.0707985833 0.0318943411 0.0178579316 0.0742294565 -0.00618190318 0.0742445663 -0.0306868479 0.0281296521 -0.0178083032 -0.05219163 -0.00541305542 -0.0397138707 -0.0215495527 -0.00752771646 0.0682637915 0.0730405524 -0.0157802999 0.0188171044 0.0874264762 -0.0481564067 0.0626509711 -0.0568895675 -0.0665506497 0.0529573038 0.0220659375 0.0434306636 -0.0896672979 0.0294235796 -0.0816154331 -0.0582096241 0.0378705785 -0.0546210147 -0.0636622608 -0.0066960454 0.0726307109 0.0202229619 -0.0755647048 0.0883272365 0.0291202962 0.0158908367 0.0359085277 -0.00616881251 -0.0829463601 0.0188712552 0.0816427395 0.0307746902 -0.0871619582 -0.00881759077 -0.0549286567 -0.0540798195 -0.0364638939 -0.0783459917 -0.0575039461 -0.0578990579 0.0166202411 -0.0765203089 0.00254764408 0.0471871272 -0.0747597218 -0.0444160551 -0.0112274513 0.021120213 -0.0426963344 -0.0514635034 0.0743654445 -0.0176850855 0.073682569 -0.0547814704 0.0271875337 0.0461324975 0.0252975151 0.00796814263 0.0105063245 -0.0515175164 0.026206769 0.0330868885 0.0456236377 -0.0543309376 -0.0452317633 0.0679125413 0.0739146248 -0.0499683768 -0.0556701235 -0.0738769472 -0.00333555788 0.0855959579 -0.0768740848 -0.0247594491 -0.00933700055 -0.0693854392 0.0825576112 -0.0715351626 -0.0199112445 -0.0450915582 -0.030918289 0.0226586834 0.013858825 0.0447538123 0.0142548829 -0.0786710903 -0.0315933265 0.0703516379 -0.0267808437 0.00641660392 0.0429125652 0.0403578803 0.0798564181 -0.0568971857 0.0592094436 -0.0284461379 -0.0257848725 0.080893524 0.0212935954 0.0393418297 -0.0694715679 -0.0596316345 0.0500955805 -0.00369998068 0.0459936783 -0.0256020799 -0.0406662636 0.070272617 0.0863688812 0.0853735581 -0.0562233776 0.0588944331 0.0422799811 0.06762252 -0.0712411255 0.0690711066 0.0083874017 -0.0254175216 0.01982034 -0.00647860765 0.0204484314 0.00454610586 -0.0695432574 0.036255978 0.0792540833 0.0812816694 0.0746647492 -0.0741450936 0.0641218647 0.0411546156 0.072784923 0.0108308047 0.0728523955 -0.0516886711 0.0526807234 0.0683561936 0.0122950077 0.037503697 -0.042732276 0.0670262054 -0.0549404547 -0.0571205243 -0.0119279623 -0.0870330185 -0.0493956618 -0.0338407084 0.0174981505 -0.0900998712 0.00261241943 -0.0436458662 0.0574408397 0.0379968062 -0.0431238674 -0.0631357431 0.0292699486 0.00492931157 -0.0857472792 0.0730826333 0.0402820781 0.0744689777 -0.0521451458 0.000490173697 -0.00710123777 0.0631562844 -0.0121339783 -0.0170205459 0.00770135224 -0.0668397769 0.074032031 -0.00779047608 -0.0878211483 0.00968762487 -0.0511111133 -0.0412074812 0.00578653067 -0.00431856513 -0.00582546741 -0.08878728 -0.0109425485 0.0634007528 0.0105016828 -0.0458724685 -0.033344347 0.0104774013 0.033227466 -0.0654375777 0.068172209 -0.0923014507 0.073481746 -0.0659995526 0.0125127584 -0.0626826137 0.0565298572 -0.0554844402 0.0206821859 -0.0223263428 0.0576344654 0.0566944405 0.0199616924 -0.0624372214 0.0595026538 -0.0756604746 -0.0208944753 0.0530955568 -0.0387974009 -0.0686270297 0.0761358365 -0.0324403569 -0.0535293184 0.0128819793 0.00850385427 0.00288187712 -0.0168626234 0.0493722633 0.000810801983 0.0819175169 0.00836440176 -0.0790630057 -0.0551274754 -0.0475864001 -0.0616404861 0.0618712381 0.0644105002 -0.0254519656 0.0552272871 0.00867540389 0.0153278261 0.0679157749 0.0103854463 -0.0105540454 0.065254651 -0.0243760049 -0.0318674035 0.0909902826 -0.0204744712 -0.0262225941 -0.0571655594 0.0743362829 0.0400392488 0.0425044522 -0.0472333543 -0.0493210256 -0.0698087513 -0.035587173 0.0922307447 -0.0455904044 0.010888584 0.00213699788 -0.05227549 0.0689653084 -0.00573548675 0.0368774906 0.0104292482 0.00118149817 0.0655618086 0.0375416949 0.0399102643 0.00500766933 -0.0649902374 0.0380084589 0.0450556204 -0.00738175958 -0.0548125729 0.048474662 -0.0133725256 -0.0195152983 -0.0129961073 -0.0669625998 0.0191158578 -0.0774018764 -0.0267198309 0.0369971022 -0.0148706287 0.0664501265 0.0456101075 0.0669988319 0.0744815692 -0.0465268157 0.0108251497 0.0813094452 -0.0639649928 0.0511804447 -0.0818125755 0.0734495595 0.0274152085 -0.000640638173 0.000349022448 -0.0750548765 -0.030618947 0.0617928132 -0.0730879977 0.0871792808 0.0541660115 -0.0898986533 0.0868063644 -0.0102937296 0.0113046914 0.0651153401 -0.0724406242 -0.0100512579 0.0412022844 0.0729504153 -0.0271404982 0.0771790668 0.0812218562 -0.00919733942 0.0595636889 -0.0493590385 -0.0130246505 0.0673317835 -0.0575585328 -0.0914384201 0.0165277943 0.0223859251 0.0661293939 -0.000926792622 -0.052064389 -0.00683986396 -0.0908132568 -0.0763044134 0.0461484417 0.0287570134 0.0358236358 0.067240499 -0.0249496177 0.0237554386 0.0224406496 0.00268175453 -0.0906023309 -0.00874256343 0.0574708059 0.00212834775 0.0679104999 -0.0598758832 0.024781175 -0.08463718 0.00729970634 0.0790416077 0.0424302444 0.0806765035 0.0051657483 -0.0795181841 -0.0126087666 -0.0397732779 0.0150001571 0.0112467781 -0.0699048936 -0.046976909 -0.0300390795 -0.0757171512 -0.0577171631 0.0773835406 -0.00419433415 -0.030652117 -0.0734623298 -0.0329417102 -0.0916003957 -0.000886358321 -0.0571465828 -0.0308846347 -0.00688701123 0.0465327874 -0.0482810512 -0.0464018844 -0.02090808 -0.0904041901 0.0265733525 0.0845336244 -0.0288363621 0.0848881677 -0.0784340352 0.0333765522 0.0451691225 -0.00682795793 0.0889808014 0.0837978497 -0.0676260367 -0.0298311263 -0.0490956381 0.0630313233 -0.038788572 -0.0207258761 -0.088744998 0.0574903265 0.0192776099 0.0615135953 -0.0826291665 0.0162778273 -0.00959168375 0.00741633773 -0.00481342524 0.0669158921 0.0406185463 -0.0360157825 -0.0262823328 -0.0332694687 -0.0853626281 -0.0830228254 0.0195631981 -0.0566862561 -0.0484577306 0.046208255 -0.0841107368 -0.0760152787 0.0167261735 0.012888588 0.036405541 0.0427299663 -0.041202154 0.0361145362 -0.0293712169 0.0193166807 0.0695188865 0.0163394734 -0.0280998051 -0.0262221321 0.0797863081 0.0390905514 -0.0439880639 -0.0300971866 0.0139719173 -0.0639654696 -0.0552323349 0.0741946623 0.00790459663 -0.00952973962 0.0418033227 -0.0100678355 -0.0645819008 0.0111649483 -0.00897305459 0.0696454123 -0.0451329835 0.0677881166 -0.0149175525 -0.0267847851 0.0010837093 0.0470396802 -0.0412290059 -0.0560592003 -0.0321760774 0.0293278769 -0.0529509485 -0.0690612271 -0.0207805485 0.0205013454 0.0436813012 -0.0683548674 0.0345392749 -0.0605377592 -0.0916607007 -0.0911809579 0.0168165267 0.0256530941 0.0813298449 0.0186625272 -0.0785573572 -0.0624148548 0.0792272463 -0.0551269241 0.0360207781 0.0322544128 0.0363949612 -0.0148991719 0.00428746641 -0.0599758551 -0.0878089592 -0.00521066785 0.0496101156 -0.00111888349 0.0307040811 0.0616006926 0.090060167 0.00515121967 0.0627197847 -0.0265228599 -0.00932498276 0.0173047408 0.0889952704 -0.0611952767 -0.0354259908 -0.0508050807 0.0497339889 0.0741653219 -0.0677293539 -0.0751045346 0.00732041895 -0.0813802481 -0.0795877352 -0.0730009526 0.00972479582 0.00427265465 0.030009456 0.080753617 -0.0710066035 0.024280414 0.0112719834 -0.0297387466 0.0548654869 0.0750947371 0.0414169952 -0.0293960869 -0.0355482362 0.0392841622 0.0573962554 0.0472640321 -0.0398709178 0.0103948414 0.00445659459 0.0701416358 0.0168458447 -0.0867450833 -0.002873227 0.0485681966 -0.0267613232 -0.0136437193 -0.0284071341 0.0466836616 -0.0798338577 0.010781303 0.039234899 0.0267431661 0.0616651103 -0.0522317104 -0.0922325775 -0.0679157823 -0.0348263793 0.0147835985 0.0915859714 -0.0470068865 -0.0753164291 0.0818672702 0.0190696344 -0.0693809763 -0.069197163 0.0718833879 0.0306614712 -0.0922353268 -0.0012748912 0.0518505797 0.0215972066 0.0762555078 -0.0207919925 0.0549108014 0.045092307 -0.0511865653 0.0433729365 -0.0081114769 -0.0581891313 -0.0575883128 0.0211400688 -0.0318357274 -0.0135677382 0.0185752586 -0.0272108912 -0.0313332528 0.0760957524 -0.0467901491 0.0906542018 -0.034708336 -0.046153035 -0.0265791416 -0.045069173 0.0459663644 0.0912031755 0.0279869959 -0.0650743619 0.0501460806 0.00408153236 -0.0622796044 -0.00681226701 -0.0581076071 -0.0804156139 0.00430247188 0.0827785507 0.0491838381 0.00356373936 -0.0362972058 0.00238465518 0.0870555863 -0.0292247385 0.0836030468 -0.0539049916 -0.0617582649 -0.0819184929 0.0323705375 0.029548049 -0.0193702057 0.0038106963 0.0196483731 -0.0558139831 0.0621107146 -0.0313034952 0.0840990767 -0.0696897134 0.0486553386 0.0201133043 0.0881831422 -0.0628063381 0.0234003216 -0.0550199561 0.0205072016 0.00105210394 -0.0492369011 -0.0514101721 0.035830982 0.00409777462 0.00569008291 0.0430928096 -0.0444828384 -0.0150408372 -0.00151924789 -0.00242907554 0.0649567321 0.0355661586 -0.0190470964 0.0677018538 -0.0847884566 -0.00833395869 -0.0132052079 -0.0613816865 0.0607231781 0.0357693359 -0.0242802575 0.059299849 -0.0348855443 -0.0672883242 -0.0550044812 0.0883692577 -0.0066369921 -0.0289506614 0.0587338433 -0.0269498229 -0.075100176 0.0103900433 0.0717183128 -0.00355942547 -0.011437878 0.0292011872 -0.00234312564 -0.0456885472 -0.0329523422 0.00980335474 -0.0215064138 -0.0545803383 0.0763779059 -0.0405811928 -0.00881966203 0.0885267034 -0.0410294607 -0.0498881675 -0.0386531875 0.0181977972 -0.0699345395 0.0229751468 -0.0323900618 0.0127660558 -0.0645190179 0.0190186352 0.00813493878 -0.0398115963 -0.0848559663 0.03064996 -0.00421836972 -0.0540838726 -0.0418243445 -0.0510247238 0.0513817593 0.0787155107 0.034792237 -0.0252530351 0.0380452648 -0.0650790706 0.00307887048 -0.0106877983 0.0102108121 0.0809430555 -0.0177385956 0.0332536921 0.0193690434 -0.0149455518 0.0656094626 -0.0768355876 -0.0816296488 0.0114371702 0.00209192187 0.033705987 -0.0917147845 -0.0224112645 0.00453505665 -0.0607473888 -0.0141276866 -0.0882581472 0.0815933272 0.0350648835 0.0419981256 0.0344375893 -0.0903022364 -0.0293834507 0.0575280264 0.0532223806 0.0504287705 0.00768374652 0.0509496853 -0.0352723561 -0.0515797399 0.0654058233 -0.0153908879 0.0628872737 0.00853900611 0.00290121883 -0.0583820529 -0.0339263715 -0.0405543409 0.0146129951 -0.00966501981 -0.00341094285 -0.064129293 0.0319366232 0.0305288807 -0.0335325822 0.00765321404 -0.0128635615 0.00285262614 -0.0483946279 0.0562607124 -0.0769815445 0.0489669666 -0.0693182871 0.0224454701 0.0817578211 -0.0739918798 0.0173355341 0.0915387198 0.0670829639 0.0745312646 -0.0672760233 0.0173162147 0.0319842547 0.0458162948 -0.0459706783 -0.0836912841 0.06380523 0.0462092534 -0.0124100521 0.0716925189 -0.0478998311 0.0762267783 -0.0880014375 -0.00415762514 -0.0096431002 -0.0226030201 0.00829520077 -0.000645808876 0.026320979 0.0656421408 -0.0788139403 -0.0402171426 -0.0293463469 0.0471231714 0.0862750635 0.0909979865 -0.0144609064 -0.0405599326 0.0910777822 0.065875493 -0.0332042314 -0.0136645883 -0.0811869726 0.0490865931 0.0609251186 0.0274518579 0.0544837192 -0.0488643311 -0.0476778336 -0.0048103258 -0.000627562404 0.0919572338 0.0083976537 -0.0578042343 0.0706560686 0.0893991664 0.00374688953 -0.067451559 -0.0240517259 0.0635258779 0.0695015863 0.0144198313 -0.0525986254 -0.0391805582 0.0474536195 -0.0591658466 0.0241070613 0.00587575883 0.0866127387 0.0636443123 0.0697658882 -0.0725355819 -0.052175805 0.0694321916 0.0411803201 0.0110799819 0.0287493318 -0.0671066567 0.0266531184 0.0252849907 -0.00555764139 0.0601788089 0.0442926809 0.0216418877 -0.0609253868 -0.0794271231 -0.0460523143 0.0157750398 0.0214064866 0.0256621018 -0.0912548751 -0.0764968693 -0.0755142123 0.0120381862 0.0300822183 -0.0184447542 0.0784661546 -0.0135637373 -0.0419109128 0.0827098116 0.0619313046 -0.0360810645 0.0650418922 0.0339712277 0.00304237753 0.0844936147 -0.0608678721 -0.040417105 -0.0739588663 -0.0555192195 -0.0502100512 0.079808332 -0.0541229174 0.0227097496 -0.0583081879 -0.0574843138 -0.0381656997 0.0794761404 0.0226614773 -0.0647741407 0.0428747013 -0.0541995801 0.0162939131 0.0278668851 0.0811234042 0.0468517318 -0.0467752293 0.0471201465 -0.0815039054 0.0175410062 0.0253854692 0.0860570595 0.0252811387 -0.00957387686 -0.0801277831 -0.0181699321 0.0360149518 0.0747145936 -0.0485508554 0.0587880984 0.0496647432 -0.0894026458 0.00912857801 0.0865628496 0.00325299054 -0.0627913252 0.0226326436 -0.00253655016 -0.0813661367 -0.0766379833 -0.024785623 0.0471072271 -0.0772652775 0.0868358538 -0.0114583224 -0.0820179805 0.065638639 -0.0376307555 -0.0323728956 0.0901506469 0.0103830248 0.0548393801 -0.0200346336 0.0533910021 -0.0231543779 0.0655063316 -0.063851878 0.0435008779 -0.0246436521 -0.0861100554 0.0664319173 0.0412297919 0.0211755037 -0.00987852365 -0.0618292689 0.0701044574 0.0163007379 -0.0784450173 -0.0686388686 0.0268226638 -0.0432723723 -0.00670238584 0.0470574871 0.0530448034 0.0214080438 0.0904533789 -0.0210143924 -0.0308954194 -0.0287331343 0.0212267935 0.0447251722 0.0743548945 0.0670989677 -0.0826511309 -0.0453661606 0.0835362598 -0.087539725 0.0319067091 0.0345701501 0.012607865 0.023418352 0.0186828449 0.025749065 -0.0888888091 0.0717841908 -0.0395670161 0.00291913748 0.0610122457 -0.0258606151 0.0265291557 0.0816791877 0.0801427141 0.00450342894 -0.00244390965 0.0255319327 0.0669952855 0.0161722153 -0.00835333019 -0.0603944957 0.0196625963 0.0383148268 -0.0156424269 0.0845018849 -0.0569390915 -0.0249733478 0.0133406371 0.0668217316 -0.0141379684 -0.0263059735 -0.0748402327 -0.0618328117 -0.0862519816 -0.0858085752 -0.0559636764 0.0889643803 -0.0325298943 0.0188135654 -0.0148467943 -0.0636626333 -0.0486231372 0.0410427377 0.0912256017 -0.0576361641 -0.0570662692 -0.0446638279 0.0587944016 -0.052059304 -0.028192997 0.00065613538 -0.0571235605 0.0735527351 -0.0780490488 0.0505895838 -0.0675022453 0.0528869405 0.0594973639 0.0303925052 -0.0598944165 0.0295438468 -0.0473435819 0.0210836157 0.0845673159 -0.0190144107 0.0203998536 0.0581841394 0.085941039 0.00511204451 -0.0562995337 0.0793418363 -0.0681278557 0.056468524 -0.000701867044 -0.0479016565 -0.0209026635 -0.0114804655 -0.0813709572 -0.0819409862 -0.00685771555 -0.00872305781 -0.0313734002 -0.0786266029 0.00793677568 0.0728246495 -0.0634853542 0.0904678926 -0.0603865273 0.0092260614 -0.057890296 0.0845065042 0.0583505407 0.0204357356 -0.0825554505 -0.053039737 -0.034795478 0.024744682 -0.0749951601 0.0216992646 0.0693658516 -0.0588557646 -0.0657447577 -0.0174524114 -0.0304971412 -0.0398279727 -0.059358526 0.0406117067 -0.00420140475 0.0424134359 -0.0581813417 0.0856505409 0.0565753207 0.0902435407 -0.0886092335 0.0842276141 -0.0913649276 0.0108475536 -0.0398635194 -0.0695118904 -0.033899188 0.0411530659 -0.0336224064 0.0757414475 -0.0211310014 -0.0223958567 0.0341376737 0.0518774316 -0.0284417793 0.0603497401 0.0323971957 0.0129941478 -0.0561371185 -0.0150281563 0.0235943943 -0.018727988 -0.0295526907 -0.0218619034 -0.0214245543 -0.0570631661 0.0355925485 -0.0123422816 0.0776082948 0.0144331455 0.067822285 -0.0681107938 0.00609041005 -0.042689994 -0.082254529 0.0440752879 0.0909805372 -0.0437211655 0.0494478419 -0.0916049927 0.0693244711 -0.0756814256 -0.0901826322 0.0894481465 -0.0822952464 0.070401974 0.0474415496 0.0250806734 0.0303514749 0.00547616184 0.0507225469 -0.0101325437 -0.00207917392 -0.0774516165 -0.00408692658 -0.0921077803 0.0892073736 -0.0325816423 0.0195986778 0.0559449419 -0.0505992845 0.0899510607 0.0608985052 -0.0353402793 -0.0822651386 -0.0696254447 0.0895078555 -0.0482642576 -0.0286687762 -0.0110267848 -0.0572983027 -0.0102555156 0.0187181681 0.0493817255 -0.0363915451 -0.0522041097 0.0377844796 -0.0740375966 0.0809021965 -0.0624672212 0.0613611117 -0.0753024742 0.0462877825 0.0282023922 0.0402716175 0.00593939424 0.0895457342 -0.0281131417 0.0806107894 -0.00999425352 0.0408654436 0.0346815363 0.0399999395 0.0367597863 0.0756527111 0.072213389 -0.0394590572 0.00312694162 0.0754414424 0.00565862656 0.0575610474 0.0728299245 -0.0869304091 0.0248484612 0.00342969596 0.0818213001 0.059259437 0.0601525828 0.0689859316 0.0272308514 -0.042068135 -0.0864785984 -0.0521361195 -0.0301780961 0.0256370082 -0.0511980765 -0.0652891845 0.00306548923 -0.0559540577 0.0421743616 0.0477640107 -0.0647581145 -0.0457026362 0.0822091028 -0.0680703372 -0.085657917 -0.00429759175 -0.0827245414 0.0263672024 0.0302210823 0.0527177528 0.0779222324 0.0857198164 -0.0483398624 0.0574905351 0.079427518 0.0753413215 -0.04883435 -0.0568751507 0.0229063034 -0.0682421103 -0.0236634836 0.00111614913 0.0395163223 -0.0201921463 0.0391702279 -0.0315291882 0.0614819154 0.0628223643 -0.0530221723 -0.059995003 0.0284922943 -0.0120379701 -0.0595930479 -0.0716487318 0.0499452427 -0.00540009141 -0.0066422075 0.0161092877 0.01041089 -0.0767870173 -0.0502139442 -0.0605829246 -0.0715399384 0.01296518 0.0611103699 0.0350129381 0.00557355583 0.00810933858 0.0223339424 0.018991448 -0.00312454253 -0.0160737187 -0.0753312856 -0.0446676798 0.0921022817 0.0715387687 -0.0629141852 -0.0786452517 0.0312191248 -0.00990664959 0.0732498392 -0.017554231 0.0857481584 0.0202515945 -0.0734583437 0.0177983269 -0.0673744977 -0.0873843059 -0.0687008947 -0.0206178725 0.0858562514 0.0787986889 0.0795985237 -0.0612004288 0.0344580337 -0.0039954707 -0.077817522 0.0362925008 0.00943509489 -0.0813287199 0.0744474754 0.0213465467 -0.0864708945 -0.0283495784 -0.0149737895 0.025648959 0.00511596352 -0.0423859209 -0.0490467511 0.0888216421 -0.0836774409 0.0244148299 0.0541692302 -0.0667940155 -0.085040018 -0.0864125714 0.00416064262 -0.0558388755 -0.0326953493 -0.0418984331 -0.049093347 -0.0118925646 -0.00118283927 -0.0578180365 0.0169652104 0.0769029185 0.0357763991 0.058058612 -0.0569880866 -0.0357655659 -0.0745487511 -0.0675233603 0.0868986771 0.0387291685 -0.0550208129 -0.0207074508 0.0589220747 0.000249840319 -0.0346502289 -0.0256284699 -0.0347880609 -0.0608577691 -0.0901763141 -0.0419674367 0.0780059919 0.032925494 -0.0458465852 -0.0709381476 0.0421569422 0.0280273482 -0.0690020397 0.0276110843 -0.0534227863 -0.0898336992 -0.046704486 0.0575791821 -0.00399606675 0.0486682877 -0.0439323969 0.089321427 -0.00275865942 0.0917431787 0.0142648146 -0.0361974128 -0.0521497242 -0.0287895426 -0.0751463324 -0.0604477599 0.0192470178 0.0833377913 -0.0788206309 -0.0664669648 -0.0661673993 0.0697172657 -0.0485018604 0.07734368 -0.0724574178 0.0266508535 -0.038241636 0.0478104427 -0.0910733715 -0.0833314732 0.0437315479 -0.0847345367 -0.0833504945 -0.0205966085 -0.0766090602 -0.000191599131 0.049535282 -0.0365532339 0.0613907948 0.00741277635 -0.0770638436 0.042569004 -0.0499235839 -0.0521760248 0.0186733752 -0.0657734573 -0.0505297072 0.0499575213 0.0599516258 -0.0335962586 -0.0596516393 -0.0431972258 -0.0343936533 0.0277668536 0.0102504939 -0.0584796481 -0.0189034566 0.0804671273 0.0255989954 0.0366440937 -0.0341149792 0.0648075715 -0.0624043569 -0.0658591911 0.0161847398 0.0488080755 0.0259793103 -0.0315329731 0.0378280208 0.0057990998 0.0495223328 0.0498160794 -0.0467011854 0.0708723888 0.0882772282 -0.0489913523 0.0913080052 0.0726579651 -0.0471291542 -0.0803100094 -0.0796386674 0.0241084024 -0.0788606852 -0.0879626572 0.0391092673 -0.0181525871 0.0048327744 0.0462763384 0.0789666399 -0.0378150493 0.0575735494 -0.0574574396 -0.0179999247 0.00974135101 0.0610534921 0.029087171 0.0801759288 -0.0311500579 -0.0638232827 0.0284647346 -0.0775537044 -0.0601071268 -0.049705524 -0.0188755468 -0.0730376616 -0.0149790272 0.0598915592 0.0257158503 -0.0713358819 0.00278802216 0.0521268323 -0.0845429525 0.0469828472 0.069207795 0.068238236 0.020468995 0.0741039887 0.0309959203 0.00251755863 0.0445528701 -0.00219459832 0.0382435247 0.040332742 -0.0222243518 0.0318860039 -0.0608890019 0.0923142359 -0.00460366905 -0.0698007792 0.0557319894 0.0123743117 0.0606540218 0.0132130831 0.0266624317 0.0648530051 -0.0250237957 -0.00558134913 -0.0249807462 -0.0407523699 -0.086972028 -0.0106305778 -0.0433664657 0.0218598768 0.0156327412 0.00495480001 0.049827151 -0.0688892603 0.0251541212 0.0543500707 -0.0303026326 0.0660788044 0.0237486809 0.0921673998 -0.0369245075 0.0403814241 0.0102054402 -0.0403506793 -0.0291843489 0.0231739059 -0.0777275413 -0.0836120844 -0.00947923213 -0.0877166912 -0.0116582662 0.0468672588 -0.0516152866 0.0391278192 -0.0856028944 0.047771953 0.0343791023 0.0891178921 -0.0733123571 -0.00472772121 0.0727237538 0.0196660906 0.0296567157 0.045290269 0.0519352034 0.064342685 0.075733088 0.0151364282 -0.0046017319 0.000291354954 -0.0174997598 -0.0255467668 -0.0449208021 0.0157335699 -0.0330819823 0.0671608821 -0.0236849636 0.0276423171 -0.0627218187 -0.0597304143 0.0307873487 0.0327594206 -0.0257275999 -0.0223262608 0.0204643235 0.0773134604 0.0909314528 -0.0482522175 -0.0153283328 0.0810749903 -0.0586326234 0.0275149867 -0.0162484869 -0.0251679197 0.0558586195 -0.029070355 -0.0718312711 -0.0751133561 0.0727215037 0.0905152485 0.0361737981 -0.0792548731 -0.0495120548 -0.0323075242 0.0558372661 -0.0340228863 -0.0297727287 0.0231567994 -0.0540142283 0.0816014037 -0.0165197179 -0.0734675974 -0.058131706 0.0224531889 0.020120874 -0.0391500741 0.039942123 -0.0525243394 -0.0798351765 0.0443752334 0.0340131149 -0.0116258413 0.0916632488 0.0524196997 0.0187699795 0.0463191196 -0.0402915366 0.0403997675 0.0548345372 -0.0323632099 -0.0796880126 -0.0718706027 -0.0178960562 -0.00145700574 -0.0456038974 -0.0427981764 -0.0756585374 0.0532429442 -0.0390636586 -0.00143559277 0.0920177624 -0.0704240724 0.0254121721 0.0841684416 -0.0719616786 -0.015244171 0.0750003532 -0.0918247476 0.0382952318 0.0152490288 0.0615061298 -0.0352248587 0.029114373 0.0544518903 0.0626470968 -0.0565589033 0.0465243086 0.0597080812 0.0789490864 -0.0212450996 -0.0213093311 0.0246523023 0.0624178723 -0.0210181773 0.00636707991 -0.0853138268 -0.0619927868 0.0864303932 -0.0627755225 -0.0306492336 0.00254821777 0.0446558818 0.0816674456 0.0872782394 0.0589607731 0.0577602163 -0.078912057 -0.0724091306 -0.0809890553 -0.0850369781 -0.0889028534 0.0638013855 0.0464653149 0.0382155254 0.076872848 -0.0227313414 0.0281508863 0.0778282657 -0.0601892471 -0.0887242854 0.00579857081 -0.0041706115 0.023089096 -0.0618799143 0.0643875226 -0.0394225195 0.00754886866 0.0162905678 0.0392230228 -0.0583224706 0.0173875019 0.058753036 -0.0364262983 0.0582184121 -0.0287391171 -0.0499168485 0.036331825 -0.00257012248 0.0335739627 0.0437671617 -0.089031592 0.0632778481 0.00349539518 0.0258396342 -0.0203330517 0.074703522 0.0170738772 -0.0218994319 0.0567911193 0.0661732927 0.0505873933 0.0571166053 -0.0855214968 0.0461828336 -0.0661759824 0.0921880081 0.0019230321 0.0268321559 -0.0773060843 0.0765561536 -0.0635630563 -0.0529483519 0.0905949101 -0.0319605507 0.0162853748 -0.0476715378 0.0778553858 -0.0635498315 0.0565194413 -0.0452842824 -0.032579992 0.0437502638 0.0216829777 -0.0859941468 -0.0723607764 -0.0432355702 -0.0667395219 -0.0557744727 0.0724468306 0.0217903033 -0.054750964 -0.0874217302 -0.0155284554 0.00419416279 0.0423595682 0.018136695 -0.0321764722 -0.0523829684 -0.0799788386 -0.0723181367 -0.0247404799 0.0517893508 -0.00843342394 0.0449766442 -0.0328465365 0.0750483349 -0.0204146504 0.0138958916 0.018790476 -0.0600453652 -0.0155631676 -0.00355876237 -0.0266750231 -0.0477690436 0.00556911528 -0.00452658534 0.055272989 0.0707248971 0.0376972929 -0.022138752 0.0700965747 0.0625425205 0.0470236614 -0.0425546318 0.054893367 0.0220438838 0.0872724131 -0.0398511067 0.00649867952 0.0885400102 0.0416619554 -0.0447726063 0.0712537095 -0.079179287 0.0841562822 -0.0210555717 0.0818449184 0.0730424151 -0.00285297632 -0.0900662839 0.0218301639 -0.0375538282 -0.0370258205 -0.0291296542 -0.036483638 -0.00476159155 0.0300277248 -0.0848433748 0.0194294378 -0.0885596424 -0.0768859759 0.0648378357 0.0586602464 0.0316812396 0.0130710304 -0.013763696 -0.041469492 -0.0320225991 0.0175160691 -0.0722940415 -0.0323042013 0.0518665984 -0.0377625339 0.0859691426 -0.0645317584 0.0157064945 0.0425101891 -0.0758133158 0.00369540602 -0.0901223049 -0.0589878038 0.0458061472 0.0718074813 0.0112642348 -0.00851803273 -0.0610169061 -0.0584075637 -0.0336920694 -0.0853100419 -0.0335265733 -0.0130155832 -0.00262761116 -0.0341828391 -0.0181938782 0.0464757755 0.0144677013 0.0777430013 0.0628511235 -0.0261171684 -0.0632300824 -0.0337504856 0.0111769661 0.0489269868 0.0217893794 0.0444158539 0.0674182996 0.00821338594 0.00910001248 -0.0172312707 -0.0230276883 -0.0659713298 -0.0741211474 0.0618211403 -0.0892614499 0.0377731249 0.0883525684 0.022350274 -0.083669737 -0.0223511308 -0.065355368 -0.0874516591 -0.090824239 0.0875555649 0.0822223201 0.0891840383 -0.0279543325 0.0319264755 0.0244338289 0.00576676428 -0.0847330838 0.0867998824 0.0622589812 0.0399953201 0.0168306604 0.0149716139 -0.0895471051 0.0485753343 0.0614059642 -0.0497984551 0.00613557547 -0.0682853162 -0.00393564999 0.0167267472 0.00960827619 0.0513182059 -0.0437755957 -0.00804183632 0.0657979771 -0.0332613923 -0.0144955069 -0.0358481929 -0.089450784 0.0596025065 0.00543405861 0.0238065049 -0.0586510673 -0.0603852943 -0.0530766733 0.00379401445 0.00261852145 -0.0424104631 0.0552914813 0.0797168091 0.012993902 0.084349744 -0.0558458306 0.0735000595 -0.00954114646 -0.0263539776 0.0582949743 0.0546010509 -0.0015296191 0.00554446131 0.0102063194 -0.0473285913 0.00285092741 0.0615425631 -0.0827070847 -0.0649772286 -0.0186289623 -0.070337683 -0.00984838605 -0.0878803805 -0.0880615935 -0.00978127867 -0.00164550543 0.0744529739 -0.0570373237 0.0341413245 -0.0149858966 0.0125850588 -0.00725832582 0.0422168747 -0.04665998 -0.0123494193 0.0813325718 -0.0550428666 -0.0526349209 -0.0218985751 0.0848397389 -0.0503466241 0.0291024894 -0.057463292 -0.0450890921 -0.0654806048 0.0615319684 -0.0410580933 0.0599524155 0.0544632152 0.0455463603 0.0866176113 -0.00297757983 -0.027580969 -0.0407994278 -0.0157570988 -0.0733335242 0.0191253647 0.0374522284 -0.0274162441 -0.0678683072 0.0569632873 -0.0541173257 -0.0558731891 0.00502257049 0.0757238194 0.00838627666 0.0187620148 -0.0726980194 -0.0492342822 0.0812037215 -0.0804385096 -0.0380313247 0.0842079744 0.0223585665 0.087292619 -0.0652507544 0.068749778 -0.0687131733 0.0457114205 0.0608891174 0.0469935909 0.059204109 -0.0357850678 0.066193305 -0.0354603902 0.0290803015 -0.0547499731 0.0204729289 -0.0918572545 -0.0500730127 -0.0755580589 0.0706878677 -0.0289266258 -0.053696882 0.0852679983 0.0466371998 -0.0293723792 -0.0328220837 -0.0807152689 0.0522611663 0.0697795227 0.0717750266 -0.0316660516 -0.0406019278 0.0663485304 0.0703303143 0.0452160016 -0.0584667735 -0.0301912613 0.00541547686 0.000231571496 -0.0536098741 -0.0165780485 0.0235666558 0.0853173509 0.0665796325 0.0616648123 0.0922101513 0.0421542004 -0.0497671328 -0.0409326777 0.0502898321 -0.0795774832 0.0177366138 -0.0810991749 -0.0414258689 0.0368461683 0.0202222094 0.00805468857 0.0424974635 -0.0370316543 0.0726982132 -0.0243331268 -0.0446527563 0.0200170949 0.0852301195 -0.0609972961 -0.0849470645 -0.0845773369 0.0443114117 -0.0329000019 0.054320462 0.00771066546 0.000199899077 -0.0464481525 -0.0426064432 0.0627518967 0.0599813834 -0.0803219154 -0.0716231167 0.0487943962 -0.0346060321 0.0831078663 -0.0681630448 0.0476886407 -0.0696334988 0.0142984241 -0.0783160627 0.00802963972 -0.0421729684 0.00961828977 0.0861743018 0.0406281874 -0.00228776783 0.0820074603 0.0416697189 -0.0354489014 0.00497575104 -0.0685963035 0.0882216766 -0.0821165666 -0.00372758508 -0.0168583244 -0.0207133517 -0.0778751448 -0.0376587324 -0.0280376226 0.00598075241 -0.0484729409 -0.0369852558 -0.006410487 -0.0595986173 -0.0619001426 -0.0603840835 0.0527820364 -0.0741649047 -0.00155937672 0.0337603018 0.0281071737 -0.022864081 -0.0384503603 0.0906171128 0.0671508685 0.0788219199 -0.0438383929 0.0871326402 0.0764415786 -0.0721643269 -0.0598963536 -0.0539890267 -0.00946094096 -0.0861575752 -0.0581067018 -0.0627425015 0.0463432744 -0.0814255923 -0.0416749381 0.0371033922 -0.0368243158 0.0117294043 0.0546579733 0.0167832971 -0.00639626384 0.0903333649 -0.0460825376 -0.00202608854 0.00544898212 0.0244496539 -0.0782718435 -0.0774744898 -0.0773978233 -0.0852615535 0.0122634619 0.0476160124 -0.0862700045 0.0165524259 -0.0652810857 0.0212575421 0.0794508085 -0.0142447799 0.0240182057 -0.0452809371 -0.0629305393 0.0363021567 0.0038408041 -0.0829708576 -0.0570285209 -0.0164665654 -0.086655654 0.0679944679 0.0103827342 8.08015466e-05 -0.033679612 0.0163553208 0.0728348866 0.0517778769 -0.0222098678 -0.0550267771 -0.0771797001 0.0623155013 0.0316011831 -0.0495280549 -0.00802843273 -0.0904422477 -0.0460301079 -0.0631364882 0.0665516183 -0.0539990664 -0.0562139563 0.0198468193 0.00385953486 -0.0380094685 -0.0306195393 -0.00276183337 0.0417609587 0.0869332775 0.000399179757 0.0615109727 -0.0592726879 -0.0793918893 -0.0638873801 -0.00307517499 -0.00279664993 0.0662641004 0.0390510634 -0.0738714859 -0.0470044464 0.0792682841 -0.0183754638 -0.0532277524 0.0256233364 0.0829333141 0.00720081478 -0.0698738769 0.0914915279 -0.0642573982 0.0305016488 -0.0866256282 -0.0600564145 -0.0404834002 0.000779435039 0.0846316144 -0.0754784048 0.0726367906 -0.0379248597 -0.0111941099 -0.00148104131 0.00520481914 -0.0838877261 0.0566688254 0.0241653174 -0.0519720092 0.069787018 -0.0771944076 0.0737978593 0.0865219161 0.0589989647 0.0774420276 -0.0591838956 -0.0698860884 -0.0369204991 -0.0445296988 0.0813219473 0.0597150102 0.0117802471 0.0145468116 -0.011858277 0.0604183152 0.00964712352 0.00353514403 -0.00295457244 -0.0178764686 -0.079649277 0.0397841707 0.0412521139 0.0506254062 -0.0486602485 -0.018987976 -0.00083578378 0.0665576234 0.0104829296 0.0634713545 0.0627636388 0.000588387251 0.0561293885 0.00439417362 -0.0779473409 0.0318442434 0.0188649371 -0.0334318392 -0.0389374942 0.0577891096 0.0897670761 0.042111434 0.00937998295 0.0901031122 -0.00633122772 0.032453455 0.0650056377 0.0827401206 0.0555093512 0.0823907927 -0.0815265328 -0.0674141198 0.0449934825 0.0212235749 0.0338672921 0.0578980371 -0.0502298363 -0.032833837 0.0912245438 0.0107022822 -0.0571721829 0.024587214 0.0647351369 0.087800853 0.0571202561 0.0461390391 -0.0380322039 0.0908423141 -0.0024767518 -0.057543017 -0.0409970172 -0.0750362128 -0.0709441155 0.00508069992 -0.0233548954 0.0687286928 0.0303272828 0.0833913162 0.00482011586 0.0459633693 0.0440735295 0.0634558871 0.0196314901 -0.0346602462 0.0167939663 -0.0898412317 -0.0513816886 0.0731447861 -0.0517771058 0.0574976727 0.0346320495 -0.0229886845 0.0754131004 0.0790550187 0.0583973452 -0.015353933 0.015001215 -0.0505675673 -0.000695794821 0.0894109234 -0.0513137653 -0.00036586076 -0.0292556807 0.0627557263 0.0152033195 0.0234248191 0.0341409668 0.0603704527 -0.062727958 0.0231418535 0.0744126961 0.0189689323 -0.019604221 0.0241262317 -0.0402803123 0.0219129026 -0.0446735583 -0.0635186136 0.0426134244 0.0755256787 0.03282056 -0.0184365436 -0.069713816 -0.017092742 -0.00640724599 -0.0761843026 -0.0663452223 0.0628969744 0.0627322868 0.0814041719 -0.051775191 0.0339005366 -0.0705407038 0.0621122941 -0.0641603768 -0.0326024406 -0.07828518 -0.0823696628 -0.0883501098 -0.00935352594 0.00316821039 -0.081580475 0.0786279067 0.0862683281 0.0742666349 -0.0746507645 -0.0644943863 -0.0592561327 -0.0296804383 -0.0018267408 0.0682948604 -0.0632337332 0.012484476 -0.0661852509 0.0227546692 -0.0797948316 0.00509410352 -0.0552708954 -0.0511319824 -0.00429305434 0.0836968347 0.00525090843 -0.00251188129 -0.0509933569 -0.0158257708 -0.0511023328 -0.076317355 -0.0834302604 0.0225077793 -0.0897255838 0.0242767408 0.00879507512 0.0314252302 0.0561577454 0.0774554536 -0.00387351215 -0.0520659052 0.0312300697 -0.0523328707 0.0689826235 0.0169957802 -0.0501681641 0.0860095993 -0.0894982368 -0.0697037131 -0.0771185383 -0.0504587479 -0.0623746216 -0.0235292837 0.067207776 -0.0520740524 0.0132082179 0.0752138868 -0.00313068181 0.0707414672 -0.056310825 -0.0871315822 -0.0333055444 0.0379518643 -0.0673503578 0.0292404294 -0.0254153162 -0.0336789526 -0.0624211952 -0.0562425926 -0.0192669109 -0.0501557924 0.0818464234 0.0778804794 -0.0600569211 -0.0334385112 -0.0266256705 -0.0356597826 -0.0201086402 -0.0862429366 0.0156878084 0.0851006284 0.0603220388 -0.0793646574 -0.0625552163 0.0906659886 0.0429183766 0.0817913339 -0.0735842735 0.0164205581 0.0567185506 -0.0312168598 0.0465041026 -0.0867823437 -0.0581797324 -0.0418924466 -0.0165578648 -0.0270713195 0.00867505372 0.0913269743 -0.0203864053 0.0400116071 0.0833884403 -0.0125482604 -0.0635469705 -0.0423122533 0.00488548726 0.0464622453 -0.0391955897 0.0839606002 0.0474456176 -0.0666695684 0.0291141793 -0.0137683898 -0.0568993203 0.0739468858 -0.0645359382 0.0368406847 0.00762861222 -0.038660273 0.00151414424 0.052612029 0.0814522728 -0.0614191033 0.0185499862 -0.0711856782 -0.00129135698 0.0519466475 0.0594288483 0.00124801695 0.0471934751 -0.089801304 -0.0769301057 0.0691935495 0.0850240812 0.032430537 -0.0820303261 0.0214550421 0.0617190376 -0.0181819275 0.0856454447 -0.0762490556 -0.059308432 -0.0176522881 -0.00311499089 0.0608501062 0.0701987967 -0.0701799765 -0.0180496648 -0.0107260793 -0.0510341004 -0.0861880183 0.0921564922 0.0268856585 -0.0605231449 -0.0160160512 0.0334267095 0.0464285836 -0.0438653119 -0.0309114419 0.0210128278 0.0767461434 0.0246400014 -0.0222612843 0.0527158305 0.0848208442 -0.0537381098 -0.0233512819 -0.0309312306 0.0832104012 0.00876032561 -0.0793204606 0.0257691815 0.0525949225 0.0123768821 0.0711475536 0.074128814 0.0677763 0.0146478787 -0.0841801986 0.0747548267 0.0328354612 -0.0740224347 -0.0570938252 -0.0417554751 0.0578551218 -0.0910284519 0.08199846 -0.0610184036 0.0787209496 0.0243121088 0.0393906757 0.0692881271 -0.0536366627 0.0174823031 -0.0719694719 0.0602360591 0.0835262462 -0.0155040026 0.0181730762 0.0303473398 0.0412610546 -0.0257830471 0.0665038154 0.0901862904 -0.00093806535 0.0125580132 0.0552677885 -0.0380936153 0.0573924407 -0.0673350543 -0.0420428216 -0.0596490875 0.0240892768 -0.035807915 0.00707108527 0.0173513368 0.0276431963 0.00477796793 0.0871411636 -0.0552616529 0.0362012014 -0.0379994549 0.021834895 0.0373187587 0.0188030824 -0.0841909871 0.000197567046 0.00866772234 0.0580395088 -0.0396154635 -0.00509115309 0.0378506258 -0.0514937006 0.0482745096 0.00087018311 -0.0771373361 0.0705427304 0.0454368964 -0.0416915342 -0.00667866319 -0.0399649888 0.0795848593 -0.0442005321 0.0421327725 0.0153194666 0.00919025391 0.077502735 -0.03818639 0.0213301331 0.0901841 0.029994905 -0.0583059862 -0.00592103601 -0.00606016815 -0.0254175663 0.0155518502 -0.0267336145 0.0873673335 -0.0712356865 0.010467805 0.0830087587 0.0418161079 -0.0832886025 -0.0533505492 -0.0052729845 -0.0630532503 -0.0255501345 0.0225159451 -0.0441291519 -0.0547811612 0.0797267333 -0.0781970918 0.0509578809 -0.0688795969 0.0645134673 0.0633165017 0.0624622181 0.0699610338 -0.0895154327 -0.0474442132 0.0628888384 -0.0799427181 -0.053449288 -0.0760272145 -0.0520295016 -0.0457262099 -0.0336827375 -0.0810081139 -0.0570729598 0.0432116166 -0.0745011121 0.0626884624 0.0667175129 -0.0670197755 0.0820140019 0.0113391131 -0.0501369759 0.0802019015 0.0591726527 0.0912161842 0.02180776 -0.0650289953 0.0809825435 0.0181915238 0.0342513099 0.0893254951 -0.0693615377 0.050614737 -0.0762668848 -0.04240584 0.0485282913 -0.00217021257 0.0320235863 0.0495507494 -0.0570982732 0.084623538 -0.0510130152 -0.091391623 -0.0393864885 0.0598090217 0.0769283399 0.0251397043 -0.0336217694 -0.0771553591 0.0532305762 -0.0295036957 -0.0229518414 0.0239868164 -0.00150254369 0.0919538662 0.0418956205 -0.00872241706 0.0101432651 -0.0240794793 -0.0884516165 -0.0336093754 -0.0603764467 0.074284561 -0.00926145911 -0.00209584087 -0.0216006637 -0.0739880726 0.0621099696 -0.0585264638 0.0652867779 -0.0664738268 -0.0265201107 0.0397083834 0.0362748876 0.0424853936 0.0282407999 0.00332342833 0.0757060423 0.0691890046 0.0474262312 -0.000572554767 0.0159327462 0.021173127 0.0877161399 0.0158425868 0.0656070784 0.0870598033 -0.019712165 0.0609462783 -0.0796797425 0.0176273063 0.0209736452 0.0693752542 -0.0109585077 0.00728964806 0.0699291006 -0.0649234131 0.0570968613 -0.0385441259 -0.00802230835 0.0591882393 -0.0789964944 0.0707720295 -0.0560030304 0.0882533714 0.0144103914 0.0714141652 0.0880497023 0.082051836 -0.022587873 0.00534636527 0.00718646497 0.00371173769 0.0354112014 0.033583872 -0.00607544184 0.0589182302 0.0402881727 -0.0223139748 -0.0705467165 -0.0196067318 -0.0857929513 -0.0118825957 0.0825328454 0.0542088225 -0.0701485276 -0.0524299368 -0.0525746569 0.0239681751 0.0392593965 -0.080439806 0.0263398662 -0.0847178251 0.0393760577 0.059306629 0.00341171026 0.0143491998 -0.0127242953 0.0270734355 0.0372923687 -0.00856310874 0.0185181573 -0.0194057971 -0.0433526002 -0.0688081309 -0.0777095407 -0.0721323714 -0.0593607053 -0.0594877489 0.0180098936 -0.0299919769 -0.0466033034 0.0398050323 0.0455138013 0.0386524871 0.038376607 0.0456657931 -0.0529527292 -0.0335454792 -0.0106327981 0.0863067135 -0.00152994692 -0.0171033069 -0.00624131411 0.0394161418 -0.0124308765 0.0312922224 0.0410735235 -0.0810841173 0.0609071031 0.00595647097 0.0885106996 0.0781944916 -0.0305320248 0.0625451431 0.0346993133 -0.0241662264 0.0620585009 0.086758025 0.0845452622 0.0485166982 -0.0748485476 -0.0224242955 -0.00801071525 0.0617206916 0.0142105594 -0.0601667948 0.0511452332 -0.0271268934 -0.0488096327 -0.0691449121 0.0564308688 0.0404585078 0.0186262503 0.071719341 0.0890899226 -0.0619398728 0.0482549444 0.0222383291 0.0226525441 -0.0895475447 -0.0899312049 -0.0848312676 -0.00653897971 -0.0901660174 -0.0569936559 -0.0431966782 -0.0367848948 -0.00548199564 -0.0569929965 0.0282957852 0.0157448649 0.0528678522 0.0841348842 -0.0773278996 -0.0602971204 -0.0865712613 -0.0482641272 -0.0360583924 0.0876654908 0.0534373596 0.0610522106 -0.0671830922 0.0104389936 -0.0800138786 -0.0173862502 -0.0637101084 0.0255137905 0.0194647014 -0.0332079269 -0.0746980011 0.0286657363 0.0493777916 -0.0153156146 0.0173248872 0.0679199174 -0.031074211 -0.00672452897 -0.0881703496 0.00544576347 -0.0717025697 -0.0492122062 -0.0421430133 -0.0903750733 0.00948230922 -0.064084813 0.0606371984 -0.0757846087 -0.0347535908 -0.0441703536 -0.0391327515 0.076837264 0.0783675238 0.0319032148 0.0109307319 -0.0438298732 0.0486961082 0.0394733623 -0.0809587911 0.0599249825 0.0760663971 0.0281208903 0.00559550524 0.0569385663 -0.0879128054 0.0339738503 0.0674430653 -0.00552847981 0.0713416263 -0.0613751933 0.0365711227 0.0397109613 -0.0519858338 0.0530493781 0.0467406437 -0.0356350653 0.00866158307 0.0582275167 -0.0362594798 -0.0379505232 -0.083113417 0.00196859241 0.0637030229 -0.0476011932 0.0548660979 0.0442415848 -0.0179888085 -0.057781674 -0.0646222457 0.0430787876 -0.055733975 0.0558587536 -0.0152740553 -0.0575202778 0.0474726781 0.0493539348 -0.0197845772 -0.0680550188 -0.0395378321 -0.00513233244 -0.0140746832 0.0728909597 0.0867272094 -0.0662783086 -0.0785583481 0.0166371018 -0.0569868535 0.0127644688 0.00393881649 0.0779306367 0.0119133666 0.0775620267 -0.0597786643 -0.0840674415 0.0745427832 0.0311500132 0.0179490373 0.0152331814 0.0702080205 0.0290719867 0.0864162818 -0.0542731397 0.0784286037 -0.04928625 -0.0412964039 -0.00336260349 -0.0439870954 -0.059934739 -0.0484336279 -0.0917288214 0.00583328307 -0.0212251842 0.0394556597 -0.0366527662 0.0542091951 0.0315394029 -0.00839937478 0.0899645016 0.0261468589 0.0489628688 0.0541233197 -0.0739929378 -0.0643146485 -0.0252207667 -0.017567046 0.0657652542 -0.0411122851 0.0170530304 -0.0543665737 0.0679821894 0.0373732373 0.00595706701 0.0555046275 -0.00480484217 -0.0452211797 0.00348423421 -0.0330078304 -0.0374864116 -0.0469486043 0.0872341469 0.0724919066 -0.0330785066 0.0662361905 -0.0743322745 -0.0341126025 0.0541586354 0.0443114862 -0.00878898054 0.048046194 0.0349192843 -0.0316870473 -0.062734738 -0.0338103101 0.0705608502 -0.00845237076 -0.0781644732 0.0918950513 -0.080811277 0.0686544552 -0.0106651559 0.00845833868 0.0370457247 -0.0403798856 -0.0675138682 -0.0147727728 -0.0900527239 -0.0498745888 0.0564924702 0.0528930649 -0.0892011002 0.0505740866 0.0775495246 0.0248759314 0.0708320513 -0.0527600721 -0.045777183 0.0903580114 -0.00789354742 0.0502872393 0.0824104324 -0.0725427568 0.0299784616 -0.0337466113 0.0479189977 0.0103020445 0.0607567653 -0.00437790155 -0.0723622739 -0.0110812411 -0.0265394598 -0.0893273503 -0.0425533764 0.0564673916 -0.047230538 -0.0733085424 -0.0668472797 0.0784390047 -0.0170166269 -0.0273513123 -0.0817722529 -0.0341750458 0.0149390176 0.0265794992 0.0390329733 0.0199073479 -0.0663062409 0.0813083872 0.0222695991 -0.0463235304 0.0028020665 -0.0271271616 0.0462218001 -0.000307328999 0.022972554 0.0626879409 -0.0745616481 -0.027322039 -0.0182682052 0.0295692682 -0.00296784937 0.00098118186 -0.0256491974 -0.0248750672 -0.0811987743 -0.0678064972 -0.0145636946 0.0917430893 0.0409256145 -0.0600605942 -0.0693229139 0.090467073 0.0418200269 -0.0105849877 0.0139585361 0.0549424961 -0.0137386099 0.0754436776 0.0913207456 -0.0902140662 -0.039194975 -0.0911830738 0.00302036852 -0.0762174726 0.00530789047 -0.0846335292 -0.0141224712 -0.00437385589 -0.0361781977 0.0779461339 -0.046623949 0.0222059712 0.0828488246 -0.0588725805 0.0221345052 0.0289078951 0.0388299748 0.0417365208 -0.0709603131 -0.0345938168 -0.0910206363 0.0341472849 -0.0675771981 -0.0921908244 0.0551476106 -0.0174469724 -0.01586999 0.0801594183 -0.0705970973 0.0308960378 0.0379461274 0.0596968308 0.0564978644 -0.0583979897 -0.0730829388 -0.00490312278 -0.0704923272 0.027341187 -0.0528185107 0.0144776106 -0.0263552293 0.0104226172 0.0602032021 0.0517716929 0.0350635275 -0.0611162186 0.0377384499 0.0024105683 0.0918153301 0.0466492549 -0.0281629711 0.0119833574 -0.0865118355 -0.0144521222 -0.0269363299 -0.0282321274 -0.0701272413 -0.0014295131 -0.0578448437 -0.0585851222 0.0458480194 -0.000185877085 -0.0649372563 -0.0446800962 -0.0552044474 -0.0139004514 0.0207720771 0.0693438277 -0.0881900936 0.0138737485 -0.0791238472 -0.0663252622 0.0482582673 0.0745249912 -0.0177809596 -0.0502102263 -0.0781342983 -0.085244447 0.0921009555 0.00123964995 0.0352093205 -0.0143941045 -0.0305490419 0.052797623 0.0762736872 0.0142735913 0.0281165317 -0.0401769504 -0.0560546443 -0.0533763878 -0.0164762735 -0.00262100995 -0.00163914263 -0.0678356886 -0.0770681351 0.092044346 -0.00714393705 -0.0850472376 -0.04379021 -0.0223538131 -0.00268882513 -0.0382362865 0.0892058089 0.0258489698 -0.0359387882 0.0850239471 0.00156241655 -0.0527441613 -0.000502936542 0.00900290161 -0.0539741255 0.0794596747 0.0291426778 -0.0562060997 -0.013651602 -0.0582472831 -0.0672873184 0.00335327536 0.0120000467 -0.0482464284 -0.0534825213 0.0445926711 -0.0859927833 -0.00138837844 -0.0620696694 0.0617540106 0.0361510739 0.074376069 0.0677597746 0.0264702588 -0.0631860793 -0.0897707716 0.0652934536 0.0408489034 -0.0497389808 0.0022052303 0.0726681575 0.0612359717 0.091422312 -0.0117717534 -0.0750521943 -0.0144148543 0.0745468512 0.00684666634 0.0779471174 -0.00974797457 -0.0843331739 0.0648187473 -0.0498082936 -0.0228270814 -0.0433130227 -0.0922764465 0.0739084557 -0.00566860288 0.0480827764 -0.000841215253 0.0303869098 -0.0442318954 -0.00707872212 -0.0680082664 0.00488038361 0.0598011389 -0.045356717 -0.0811345875 -0.0799954608 -0.0109591931 0.0497163609 0.0438860729 -0.0784615949 -0.0905625522 0.0878253803 0.01556997 -0.071664229 0.00178012252 0.0512182787 -0.0438392498 0.0534286872 -0.0225230083 -0.0647592396 0.0201001167 0.0788938776 0.0864206627 -0.0516844876 -0.0877840444 0.0452395752 0.0111565813 0.00635959953 -0.0602285787 0.0543378666 0.0546297953 -0.0672248527 -0.0198481232 -0.00104770064 -0.000290758908 -0.0505354293 -0.0739681125 0.0225441828 0.088052772 0.0438028052 -0.0880970731 -0.000158078969 -0.0359831415 -0.0798781216 0.0254502445 -0.0373744443 0.0721534565 -0.0494037606 -0.00442919135 0.0858245417 0.0157030672 -0.00710878521 0.0533726439 0.082979016 -0.0697605014 0.0772764757 -0.0221992806 0.0130727887 -0.0640228093 -0.0107592493 -0.0292869583 -0.0221703351 0.0862501487 -0.0605450682 -0.057664182 0.00932598859 -0.0310530365 0.0102393404 -0.0271395072 0.066528745 0.0917967334 -0.036875885 0.0239350721 0.0418405011 0.0808425471 0.00794851035 -0.0513477288 0.0157080144 0.0107658729 0.0731715932 0.00932568312 0.00347439945 0.0679457411 -0.0235904306 -0.0745179355 0.0380124822 -0.049719546 0.0749509409 0.00285819173 0.0180699378 0.010781236 0.029220663 -0.0329347774 -0.0799413323 -0.0412172079 0.0739334449 0.0530393049 0.0897750631 -0.0796148553 -0.0247141719 0.0572232082 0.0609085336 0.0291343853 -0.0803172514 -0.0182634071 -0.032600835 0.0527561381 0.0897283778 0.0695184544 0.021823056 0.0378369018 -0.0686318502 0.040735282 0.031114161 0.0699504688 0.0126884654 -0.0859658867 0.0831919983 -0.0560527742 0.0139982402 0.063058503 0.00514510274 0.0805898532 0.0670322999 -0.0248682275 0.00802495331 0.0613703653 0.031309329 -0.0562840812 0.00155182928 0.0103577077 0.0461403355 -0.0800173804 -0.0551944524 0.00379563868 -0.060870491 -0.0160373822 -0.0362130627 -0.0374263227 -0.0168530643 0.0626359507 0.0359634832 -0.00243154168 0.00732783973 0.0346204117 0.0497331247 0.055340521 0.0702026412 -0.0867084116 -0.0561649613 0.0137039199 0.0659651235 -0.0770213827 0.0811856315 -0.0216861293 0.0420954004 0.0443347469 -0.0563379191 -0.00682362169 -0.0357857719 0.0310147181 -0.0417233407 0.0754814371 0.0112405941 -0.0615614206 -0.0277324691 -0.0316616036 -0.0335737839 -0.0382315107 -0.0121200681 0.0835317448 0.0355008021 0.0503617451 -0.00139332563 -0.0748848021 -0.0698726028 -0.00212867558 -0.0549862571 -0.0637462065 0.0567751303 0.0143763572 0.0786930099 0.00793528557 -0.0917580128 -0.09227442 0.0694625005 -0.00116087496 -0.0674400032 0.0542275086 0.02739124 -0.044890888 0.00318537652 -0.0429115742 -0.0430288687 0.0836382583 -0.0480294712 -0.0357880816 -0.043182943 -0.0871470124 0.0391868576 0.0730030164 0.0292073265 0.0160608217 -0.04036415 0.0407246575 -0.0674060881 -0.0355355777 -0.017626144 -0.00627820194 -0.0475339517 0.0227073282 0.000321947038 0.0747090653 -0.0359627567 -0.0164289922 0.00866624713 0.0489933118 -0.0755114406 -0.0114114657 -0.082856141 -0.0483886823 -0.0891943201 -0.0128523335 -0.00486530364 0.0357546732 0.0724034086 0.005550161 -0.0116102174 -0.00637482852 -0.0435335897 -0.0608145855 0.0281508863 -0.0349847674 -0.0806564316 0.0923060998 -0.0487579517 0.080168061 0.0597862825 0.0211506113 -0.0337430462 -0.0787199065 0.0786460415 -0.00849439204 0.0600018725 0.0407068506 0.081751518 -0.0742415488 -0.029048413 0.0397499427 -0.0364264548 -0.0404061228 -0.0698399544 0.043289192 -0.057069879 0.0311040133 0.0785542205 -0.0191338137 0.0567493364 -0.0623452589 0.00445085019 0.0360891595 -0.00452971458 0.0504326895 0.0873801336 -0.0680213645 0.0246562213 0.0736913309 0.0327623412 0.0463614091 -0.0643535852 0.0093485117 -0.0519838072 0.0904782936 0.0153196827 -0.0921424925 -0.0830110013 0.0350957438 0.0497074649 0.0274814442 0.0358188972 -0.0458102003 -0.0113282204 0.0440318659 -0.0821094513 0.0705526099 0.06622421 -0.0266892835 -0.0254507735 0.0204139426 -0.0248732194 0.00899504125 0.0565442666 -0.0735272169 -0.0573725887 -0.0579660349 -0.0189089105 -0.085561268 0.0282130018 -0.0204746276 0.0269764736 -0.0821399614 0.070369117 0.0464503989 -0.0652571172 -0.030450806 0.0579121485 0.0661259517 0.079342626 -0.0331217796 -0.0526139028 -0.0123209134 -0.0261854604 -0.0789412856 0.0602872148 0.00730749965 -0.0758629888 0.0870225653 0.0581089631 -0.0408797003 -0.0638637617 0.0473514125 0.0590094253 0.00836591423 0.0453222916 0.0778649971 -0.0736557841 0.0528086498 -0.0229536891 0.0492771342 0.040038459 -0.0264275596 0.042503275 0.0362370089 0.0287555382 -0.0835219547 -0.0389739461 -0.066396907 0.0652382895 -0.0783461258 0.0269870162 -0.034960974 -0.0464229509 -0.0642166808 0.0689176098 -0.0367393307 -0.0385708883 -0.0741464794 -0.0620247424 0.0546856597 0.0860198364 0.0902541652 0.0740567073 0.048375167 -0.0411513112 0.088384755 0.0855131522 -0.0657896549 -0.0197796226 -0.071310699 0.0747393295 0.0739105269 0.0329490378 -0.0757309496 -0.0245372728 -0.043271888 0.0144176781 0.0136968791 -0.0422567204 0.0283987969 0.0767988339 0.0283535421 0.0316283479 -0.09044341 -0.0134233311 -0.0244839191 -0.061573945 -0.0402276628 -0.014768742 0.0762509033 -0.0608272217 0.0211865976 -0.0756254569 0.0648425296 -0.034788698 -0.0556692854 -0.0607793257 0.0597851351 0.0879527554 0.0149601474 -0.0252634659 0.0568157211 0.0542516336 0.0361317918 -0.00825089216 -0.0450149849 -0.025292106 -0.0474689081 0.0780744776 -0.0775227398 -0.064078629 -0.035356082 0.0234380066 -0.0380838849 0.0888624713 0.0463247225 0.0337265655 0.0666942373 -0.0164322257 0.0417485163 0.0897269472 0.0356119946 0.04049436 0.0853326395 -0.0320741683 -0.0599818192 -0.0706790611 0.0884989575 -0.0697303265 0.01760488 0.00682989508 -0.0202770829 -0.0747205839 0.00982446223 -0.00453151762 -0.0177261755 -0.0110208839 0.0219864175 -0.0915836021 0.0872395411 -0.0779422522 0.00656420738 -0.0225195512 0.00433272123 0.0274818167 -0.0269170254 -0.0218655318 0.0860939249 -0.0404192843 0.0143023804 -0.0215494856 0.0445546135 0.0253722221 0.0290631801 0.0792658105 -0.046562057 -0.00361911952 -0.0859364346 -0.0345999151 0.060870938 0.0915715322 -0.0460334308 -0.065768525 -0.0531672016 0.0720138475 -0.0504391342 -0.0611823574 0.0573152676 0.00972790271 0.0399850383 -0.0595438108 0.0345111415 0.0605668649 -0.0581416115 -0.00471455604 0.0268029869 -0.0232204795 0.00746522844 0.0827705786 -0.0852474198 0.0880403295 -0.0762497634 0.0545108542 -0.0130298063 -0.0738021284 0.030555509 0.0767281875 -0.0784401149 0.0919279382 0.00855190307 -0.043628633 -0.0295288786 0.00887244195 -0.0657324344 0.0413109884 0.0673738346 0.0850753263 0.0423044786 -0.0261683837 0.0478247479 0.0477451012 -0.00779115409 0.0872237459 -0.0783062205 0.00405883789 0.0501053408 0.0466034636 -0.062235184 -0.0136131272 -0.0339438468 -0.00549724698 -0.0698157251 -0.0694826618 -0.0893969238 -0.0449211746 0.0606128648 -0.061338149 -0.062194664 0.0791552141 0.0146558955 0.024594456 0.0623651817 -0.0105712786 0.0882214978 -0.0833444446 0.0547341034 0.00844865292 0.00136028975 -0.00377871096 0.0530302897 -0.0493274964 0.0652021542 -0.0869249925 -0.0638468415 0.00853552669 0.0511781797 0.0913046971 -0.0638014302 -0.0837082267 0.0213949978 -0.0397352651 -0.0250425264 0.0062410906 -0.0304514691 0.0745138451 -0.0338245742 0.0170236081 0.00128893554 -0.0778573602 -0.0151568055 -0.0385705829 0.055871062 0.0572315082 0.08880537 -0.0107531101 0.0797120705 -0.0411483161 -0.0203667507 -0.0518125445 -0.0435342751 -0.00101932883 -0.0739619732 -0.0657761693 0.0629767403 0.0477596447 0.06787806 0.0829456523 -0.0900273919 -2.26050615e-05 0.000100299716 -0.0410131924 0.0278198943 0.0642823651 0.0139283612 -0.00235069543 0.0688106641 -0.0862928331 0.0895870999 0.0410149172 -0.00488375127 -0.0309345536 -0.0922850296 -0.0209336355 0.00205225497 -0.0704425424 0.0235960633 -0.0752437487 0.071388863 -0.00828185678 0.0738344416 -0.00656019896 -0.00501035154 0.0703232214 0.0689382628 -0.0608866699 0.00562833995 -0.0460232161 -0.0299517848 0.085617952 -0.0904893503 -0.0462101102 0.0370351747 -0.0614682287 -0.061743848 0.0246510059 -0.0869383141 -0.0305612125 0.0227100775 -0.0153340399 0.0264516994 0.0176572427 0.0778014138 0.0581630245 0.0307129771 0.0584354475 -0.0731640905 -0.087851502 -0.0271686092 -0.0826171488 -0.00822835416 0.0052748993 0.0659395084 -0.00835093111 -0.036124073 0.0358706042 -0.0885573775 -0.0200463906 0.0232945234 0.0500368103 -0.0604914278 0.000871837139 0.0602138266 -0.0427638181 -0.0902422369 -0.0212601349 0.0855575725 0.0139587745 -0.0356213748 -0.0709439814 -0.0870779455 0.0849833116 -0.03234208 -0.0710029006 -0.0254940689 0.064623408 0.0476810709 0.0433345512 -0.0793207958 0.0604039803 0.0588609353 -0.0690586716 0.0403252617 0.0344257429 -0.0687600821 -0.00905829668 -0.00361141562 0.0375519171 -0.00893121213 0.0150328428 -0.0327117443 -0.05298841 -0.0456771255 -0.0166755095 0.0130308792 -0.0596852079 -0.00510931015 -0.0678752139 0.0404116437 -0.0249672309 0.0569061264 0.0779291317 -0.0563523807 -0.0434717871 0.010665834 -0.0653118342 0.0359363034 0.0204605386 0.0798386857 0.074761413 0.0127248466 0.000288404524 -0.0902678147 0.0429159924 0.0657784566 -0.0213270709 -0.038716048 -0.0843237936 0.0898036733 -0.0586868785 -0.0403032228 -0.0554810725 0.0413107798 0.0799264535 -0.0311201252 -0.00288068503 -0.0517811812 -0.0685218871 -0.0737581104 -0.0705950931 0.030253239 0.0839099362 0.0869987532 0.0509333089 -0.0652349889 0.0631141141 -0.0351139233 -0.0428556912 0.0554866865 -0.00271316618 0.0837406889 -0.0608697869 -0.0503110774 -0.0752642602 -0.020582214 -0.0307656676 -0.0358960666 -0.0273370296 0.00475829095 0.0640804097 -0.000793211162 0.0642770603 -0.0605983324 -0.0864445269 0.0680228248 0.068016611 -0.0211441889 0.0641772971 0.0202041417 0.078288056 -0.019996427 0.0877035782 -0.0287593454 0.00833699852 0.0441826805 -0.0228198841 -0.0695909336 0.0745398179 -0.0108807907 0.0116375759 -0.0536845364 -0.0444353819 0.0615738556 -0.0798830092 0.0654812232 0.0146929398 -0.0381747223 0.0811479762 -0.03762215 0.0873071775 0.0785817429 -0.022232227 0.0512394086 -0.0642071962 -0.0805454999 -0.0849332437 0.00221407413 -0.0733788013 0.0583950803 0.0732906237 -0.0711428449 0.0857475027 -0.0127200037 -0.0537633784 -0.0137333274 -0.067631036 0.0574510172 0.0681990758 -0.0895218998 0.0195035711 0.0701721385 0.0442061201 0.0828007832 -0.042779468 0.0286850184 0.0231588706 -0.00810086727 -0.0439061858 0.0621773228 -0.0583556406 0.0314415619 -0.00708893687 0.0718572214 -0.0694514513 0.0181609541 -0.00512111187 -0.076627925 -0.0119887963 0.0885745659 0.0793708637 0.0608476177 -0.0294104144 0.0273449123 0.0224583 -0.016939722 0.090794839 -0.0314363502 0.0433149114 0.0623882934 -0.0473029949 -0.000326655805 0.0444504991 -0.0619226396 -0.00475822389 -0.0627751052 -0.0651979521 0.0374251828 -0.00793259591 0.0568661764 -0.0742395893 -0.0638819635 0.0170256719 0.0584067479 0.0907899514 -0.0901594982 -0.0118649676 -0.09027569 0.0896203145 -0.0575586222 0.0300938189 0.0618742779 -0.0567008518 -0.0242874548 -0.0433085561 0.0631586835 0.00897849351 0.087808378 -0.0392236747 -0.0199950859 0.0151328817 -0.022909686 -0.0408255532 -0.051557906 -0.0674312413 0.00518960506 -0.0285454243 -0.0518053696 -0.0620319396 0.0484872833 -0.0249231383 0.0225235596 -0.0106878877 0.0173361972 -0.048137214 -0.0366830081 0.0296649933 0.0456941649 -0.0265611857 0.0300982222 -0.0164855123 0.0241099671 -0.0171971098 0.00571154058 0.0589793697 -0.0373870991 -0.011603944 -0.0573043115 0.0574805662 -0.0528659672 0.0463719741 0.0330509767 0.00845330209 0.0330635682 -0.0325705484 -0.0544722006 0.0407556966 0.00821089745 -0.0633948967 0.00353442132 -0.0175055042 -0.0233796313 0.0912339464 0.0108628273 -0.0637132972 -0.0460933 0.0903429613 -0.0723236203 -0.0757395998 -0.0836983249 0.0685811564 0.0358018652 0.0348297879 0.00640011579 0.00428744406 0.035977833 -0.056597732 0.0708610192 0.0635970905 0.0461413637 0.0206123441 0.057867907 0.0127314776 0.0535961166 -0.00323870778 0.0381979868 0.0564275458 -0.0160207227 -0.0826935247 -0.0626992583 -0.000117778778 0.0201128647 -0.0332583748 -0.0600687154 0.0324291736 0.0520742908 0.0596910641 0.0759605393 0.0537322387 0.0165243223 0.0673265979 0.0565620288 0.0513192639 -0.0336719528 0.0370580927 0.0313101411 -0.0300739892 -0.0588909797 -0.0510969833 -0.00617314875 0.0096007064 0.049294211 0.0693636313 -0.0853538886 0.0523361936 -0.0917572826 -0.0255474672 -0.0167528763 -0.00573128462 -0.0424907133 -0.0899237692 -0.066982761 -0.0284963623 0.0162389949 0.057979919 0.0228297934 -0.0539217629 0.0526804551 0.0896368995 0.0810891315 0.064243488 0.0797827467 0.0734191015 -0.0779073462 0.0571939573 -0.0736197308 -0.048576057 -0.0234287381 0.0348758176 0.0639937297 -0.0496676229 -0.0160643458 0.0830368921 -0.036335066 -0.00966774672 -0.0416070595 -0.0894759446 -0.0438515544 -0.0828165859 -0.0304829888 -0.0199093074 0.0883180127 0.0766376927 -0.0636425316 -0.0280601159 0.044751741 0.0275451615 -0.0478720516 -0.0135072097 0.0446019098 -0.0770527497 -0.0631143078 0.0323778912 0.0686270967 0.023636654 -0.00178483129 0.0417481437 0.0582926944 0.0459969416 0.0554242805 -0.0494629256 0.0470620915 0.053466849 -0.0765766203 -0.0543446951 -0.0080826208 0.0239095166 0.0243004188 0.0887591764 0.0427695885 -0.0689851791 -0.0826675966 0.0317180157 -0.0116963685 0.0336282775 0.0294585526 0.0690546855 0.0193095878 0.0573151633 0.0263414755 0.0869669691 0.0433290079 -0.0178711638 0.0354974344 0.0829879567 0.0095205009 0.0507144406 0.0127183348 0.0464281663 0.0783762112 0.0420261547 -0.036029011 -0.09004841 0.0696163252 0.0530977324 0.0262009799 0.0642382279 0.0387582704 -0.0418152325 0.0771702453 -0.0818895027 0.0832562819 -0.0638927519 -0.0657494217 0.017027013 0.0326927975 -0.0367393307 0.0597863272 0.0395369008 -0.0646359324 0.0802476928 -0.00775756687 0.0280635729 0.0842352435 0.0656035617 -0.0483409427 -0.0340200476 0.0538973734 -0.0130596086 0.000448420644 0.0380367413 0.0630963072 0.0535659268 -0.037900757 0.0188465342 -0.0788960382 -0.0509829707 0.0085767135 0.0337586924 -0.0343949981 -0.03368067 0.0164726377 -0.0871839002 -0.087422125 -0.0851967111 -0.0385002121 -0.0201642588 -0.0538248084 0.0584293827 -0.00901976228 -0.0634450167 -0.0492339507 0.0713821873 -0.00199753791 0.0639253035 -0.051546175 -0.0875221789 -0.0801209807 0.0284175277 0.017964974 -0.00786665082 -0.0392174236 -0.0182868764 0.0055084303 0.0214808583 -0.0783691034 0.0538442209 0.0861955509 -0.0716186464 0.0357631966 0.0593813136 0.00426195562 -0.0154175013 0.0018433556 -0.0679978132 0.00982376188 0.006805107 0.00728665292 -0.0782930553 0.0172083601 0.0177271068 0.0424752459 -0.00708539039 0.0849333033 -0.0333942249 0.0275270268 -0.031069722 -0.0414098017 -0.0850781202 0.0260870531 -0.067732431 0.042411603 0.0474294499 0.0773124322 0.0871812627 0.0689236596 -0.0452704169 0.0197517797 0.00331506133 0.0648683384 0.0459372476 -0.0551262423 0.0103434697 0.0425180271 0.0553555712 -0.0357627049 0.0754584149 -0.0576676168 0.00383935124 0.0262607634 0.00391612202 0.0413218513 0.0865877792 -0.00241290033 0.0548849478 0.0463660136 -0.0522460192 -0.00798916072 -0.0868060738 -0.0222945437 0.00648523122 0.0129881352 0.063174285 -0.0234628767 0.0688980445 0.0618548915 -0.0270988122 -0.0881717354 0.0493465587 -0.0713386983 -0.0653924122 -0.00026410073 -0.0405617356 0.0732300356 0.0597609058 -0.0262807906 -0.00758448243 -0.0693734437 0.0189899579 0.0788403079 0.0618010089 0.00217718631 -0.0434604734 0.0194709674 -0.0580481105 -0.0214786157 -0.0402778909 0.0679764822 -0.0373092256 0.0584543124 0.0520954207 -0.068595022 -0.0667433515 -0.0640561134 -0.00916112959 -0.0591378063 -0.0886616185 -0.0713932365 -0.0905713141 0.0100053698 0.0911725387 0.0697921291 0.0302956328 -0.039254535 0.00240869075 0.00988210738 0.0840432718 -0.0660350099 0.0911707506 0.0879599974 0.0701423809 0.0400421545 0.042762585 0.0403770283 0.0380599126 -0.0630103499 -0.0481364653 0.0803891644 0.0840730146 0.0853180811 0.0459168479 -0.0299188383 0.0599884614 0.0296827778 0.0884846076 0.0370653942 0.0391053632 -0.025933817 -0.0754593462 -0.0412652344 -0.0717201605 0.0246657282 0.0466392413 0.069009982 0.000593997538 -0.0831124038 0.0369942114 0.0543018803 0.0345792696 0.0815567002 -0.088063553 0.0382413492 -0.0588289127 0.00010740757 -0.0226454288 -0.0165771917 -0.0278124139 -0.0678298771 -0.0177318156 -0.0148257017 -0.0752811432 -0.0614491701 0.0501811728 -0.0427848175 -0.0293906108 -0.0774151906 -0.0119299591 0.0289041549 0.0463362709 0.028588064 0.0434487686 0.051600717 -0.0416808575 -0.0686932802 -0.0307830125 -0.0367936082 0.0640297458 0.0363769755 0.0748648122 0.0511053875 0.0533810928 -0.027765356 -0.0563977435 -0.0477345996 -0.0567151792 0.0859435275 -0.0433625691 0.0741134211 0.0628727451 -0.0448633321 -0.04300908 0.0351526216 -0.0784337744 0.0655378327 -0.0613193512 -0.00440255553 -0.0835813433 -0.0202253386 -0.0644355267 -0.0156911761 0.0372492746 0.0575597659 -0.0794286877 -0.0797688812 -0.0123149231 0.0303852633 -0.0377139561 0.0620857403 0.0144083425 -0.0541650243 -0.0793080479 -0.0641122833 0.0748819038 -0.0194902942 -0.0672309697 -0.0278195441 0.0467270687 -0.0435255133 0.0401934609 -0.0458622985 -0.0516442955 -0.0111079141 -0.0243321583 -0.0780637786 0.00338556617 0.0420245156 0.0727541521 0.0208952054 0.0547109023 -0.0839009732 -0.0715556964 0.0623457655 -0.0490699746 0.0625922009 -0.0209531337 0.0897229686 -0.0463960096 -0.0239981934 -0.0638266057 0.0696627721 -0.00163390487 0.0118468702 -0.0860384107 -0.0711052567 -0.0815143585 0.045826219 0.0350079611 -0.0897713676 -0.0308336802 0.039253436 0.0535412952 -0.0627666265 -0.0253962129 0.0101558343 0.0123514608 0.0424233004 0.0692706779 -0.0317306072 -0.0850598738 -0.0809325576 0.000146567822 -0.0905872285 -0.0797387958 0.0404761806 -0.032987427 -0.0628893599 -0.0327808149 0.0345352963 -0.0749909356 -0.0226005763 -0.0298479833 0.0866911486 -0.03389569 0.042756848 0.0800099894 0.0142065063 -0.0825267509 -0.0661782548 0.0409082249 -0.0448140055 0.0124933198 -0.0219799653 0.0158751011 0.0295855328 -0.0592272989 0.00434079766 -0.037375588 0.0256913528 -0.0112807825 -0.0673083365 -0.035730239 -0.0877026021 0.0750370249 0.0485120341 -0.0255312026 -0.0905457586 0.0591019914 -0.036836464 -0.0271204263 0.0684416518 0.0827799365 0.0474483892 -0.0658376813 -0.0805281773 -0.0211526155 -0.0357869156 -0.0776222497 -0.0798455253 0.0783102438 -0.0216702595 -0.00773142278 -0.0463460013 0.0632225499 -0.0546308979 0.021767281 -0.0639998987 -0.0224264488 -0.0573824048 -0.0888081193 0.0138399005 -0.0236567259 0.0309185535 0.0487858132 -0.00604845583 0.0410429016 -0.0135013089 -0.076816842 0.0745031461 -0.0564455725 0.066676192 0.0289063528 0.0410177931 0.0331582054 0.0154748783 0.0667822137 0.0385882631 -0.0812138468 0.0279330537 0.0363044515 -0.0288460255 -0.0357978567 -0.0147426575 0.062593542 0.0737570897 0.0898230001 0.0145431533 0.0526696369 0.0400802419 0.0333066955 -0.0447554588 -0.0649876595 -0.0105325803 0.0437620804 0.0530042574 0.0270433426 -0.0140301362 0.0704443678 0.0682580248 0.0632712618 0.0855719075 -0.0850193948 -0.0331266001 0.010002397 0.0473385826 -0.0100293383 -0.00821486115 0.0696876422 -0.0829186887 -0.0142216906 -0.0889493823 -0.0824532136 0.0685049519 0.0592367724 -0.0201980025 -0.0387655497 -0.0355571061 -0.0670020133 0.0668213293 0.0788429454 -0.0878563225 -0.0162122548 -0.0250672475 0.00494170189 -0.02533824 -0.0100131109 -0.0839211792 0.0754228905 0.0151129663 0.036486052 0.0762976781 -0.0664641857 -0.0380825661 0.075681515 -0.0178629532 0.03347186 -0.065604724 0.00434248894 0.00677869469 0.0860336646 -0.0825192034 0.0429411307 -0.00341140479 0.0506717786 0.0690800622 -0.00496783108 -0.0307301655 0.0472424701 -0.0294486284 -0.0649562776 0.0680125132 0.0587117299 0.0844495669 -0.0221793577 0.0530319735 -0.0832527205 0.0872544721 0.0348959789 0.0287599191 -0.0674190521 0.0210395679 -0.0553797148 0.0484558418 0.0191909075 0.0164227858 -0.0917384848 0.0679737851 -0.0123702586 -0.0597974397 -0.0809475631 0.0320455357 0.00153298676 -0.024420552 0.0144763067 0.0450680479 0.0648418143 -0.058746282 -0.0117526278 -0.0521580428 0.080808498 0.00340528786 -0.0599545278 0.0456270501 0.0599546656 -0.0619114786 0.011533007 0.00400586426 -0.0206234828 0.0342634246 -0.00449253619 0.00930431485 -0.0451148003 0.00952265412 0.0600777194 -0.0524939448 0.0847763345 0.0844014212 0.0240081623 -0.0854076371 0.0406369939 -0.0382547975 -0.0501131825 -0.0760185868 -0.0128032044 -0.00549603999 -0.0259644985 0.0904846564 -0.0885673314 0.034541823 -0.0404327102 0.0266181007 0.035025157 0.0269769356 -0.0849363506 0.0445135012 0.0164064988 -0.0509476885 -0.0339780077 -0.0759992823 0.0690872297 -0.00184051692 -0.06302239 -0.0267346501 0.0220434889 0.0747392699 -0.0341360196 0.0410911962 0.0481458828 -0.06938155 -0.0369039923 -0.00652236491 -0.0807956904 0.00431277603 0.0371399298 -0.00988457352 -0.0206595585 -0.044841893 0.0625550672 -0.0611015782 0.0463228449 -0.0807791203 -0.000120855868 0.0277772397 0.0363982543 0.00684583187 -0.0180499554 0.0209594518 0.0909162685 0.00549612194 -0.0261550248 0.0884743407 -0.0297904238 -0.00729363412 -0.0751729161 0.0848375633 -0.0195430368 0.0679302588 0.0251352116 -0.0405018702 -0.0441764295 0.0677108839 -0.0322619379 0.0664446726 -0.00657371432 -0.0661265925 -0.0369411446 0.0267769322 0.0450770929 -0.0479248799 -0.042892471 -0.0345343687 -0.0608774684 0.00611950457 -0.0611659586 0.042684488 0.0658553764 -0.0790967941 -0.00710079819 -0.0187136382 0.0454566851 -0.0256544426 0.0425586775 0.00645492226 0.0230253339 0.0109844357 0.00311844051 0.0100169033 -0.0610262156 0.071162276 0.0813362226 0.0350092426 -0.0524916761 0.0352269635 0.0205060765 -0.0778195262 -0.0764256269 -0.0292410702 0.00489424914 0.0713074133 0.0889750943 -0.0193333849 -0.0680409074 0.0643112287 -0.00594190508 0.0894463137 0.0566098765 0.0629781261 -0.0810539871 -0.0679727644 -0.0707811043 0.0420374945 -0.0761131868 -0.0804239139 -0.0824871957 0.0613505617 -0.023493275 0.0828435048 -0.0462954864 -0.00660222024 -0.0559305288 0.0106409863 -0.00538684428 -0.078864783 -0.0466932841 0.0187955126 0.0812427029 0.0510224327 -0.0284214392 0.0387317464 0.0263261572 0.0580664501 -0.0679711401 -0.070603922 -0.0262589827 -0.0916538537 0.0108659118 0.0518411174 0.0434516743 0.0447142944 -0.0117488354 -0.0461619496 -0.0702249631 0.0850837454 -0.083135888 -0.0372701809 -0.0261603966 0.0323874429 -0.0835312903 -0.0117448568 0.0708241388 0.0327065513 0.0760078058 0.0735511258 0.0270162523 -0.081777446 0.0491616651 -0.0276307166 0.0653161481 -0.0853628442 0.0857610777 -0.0175864324 -0.0422314294 -0.0496382192 -0.0887141824 0.0790563449 0.0726547167 -0.0475006253 0.0696305558 0.0750434324 -0.0712434575 -0.0683995709 -0.0914369896 -0.0131852403 -0.0234191194 -0.0359008871 -0.0300991237 0.0519173369 -0.00911874324 -0.0367814377 0.0265070572 -0.0740006417 0.0162378773 0.00269843638 0.0819167122 -0.0706208497 -0.0283129066 0.0358394161 0.0710078105 0.0493387058 0.0338133648 0.0535335615 -0.0485978276 0.0684658661 0.0906158164 -0.0892121717 -0.0329050869 0.00619991124 0.038634859 -0.00734879076 -0.0908639655 0.0640871301 0.069118388 0.0828231946 0.0892365798 -0.0622690842 -0.0732243359 0.0906682685 -0.0832575858 -0.0323135965 -0.0230052397 0.0401112512 -0.061628446 -0.0196241885 0.0208122656 -0.0202798545 0.0668241903 -0.0571769141 0.0783488974 -0.055601757 -0.0256579369 0.0855252668 0.00530549139 0.0283297896 0.0730903819 -0.064332366 0.0148606151 0.0807994083 -0.0886082202 -0.0543263182 0.0691963509 0.0136834681 0.0242805704 -0.0218814462 0.0742795393 0.0636698082 0.0903078988 -0.0303865597 -0.0290813372 0.040999122 0.0252291113 -0.0696306154 0.0333435759 -0.0308691598 0.073326312 0.0910193995 0.0381090865 -0.0342836231 0.0659288689 -0.026744552 -0.0464603454 -0.0759968609 -0.0165017545 0.00390525162 -0.0409896411 -0.0616442263 0.0243898481 -0.0789491013 -0.0154235736 -0.0327965729 -0.0745220259 -0.0455331765 0.0270753726 -0.0877103955 -0.0314183235 -0.073193036 -0.0439075045 0.0773618892 -0.0105844215 -0.0530740321 0.0606111363 0.0845532492 -0.0486845262 0.0162529945 -0.086596027 -0.0351777785 -0.0381812379 0.0755290911 -0.0393588655 -0.00350560993 0.0383951291 0.00429692864 -0.0801414549 0.0715178624 -0.0724231526 0.0613477454 0.0504441336 0.0838476643 -0.0218920112 -0.0420954041 -0.0721686929 0.00371589512 -0.0635213926 -0.0394868553 0.0861788616 0.0850632563 -0.0101466551 -0.0794500187 -0.00970192999 -0.0109779015 0.0788514838 -0.0146370307 -0.0312833525 0.0750570819 0.0307752639 -0.0453499407 -0.0853320956 -0.0434355997 -0.0404533781 0.00757534802 -0.0397604033 -0.0889080912 0.086205028 0.0731793866 0.0450338945 0.0870297626 -0.0491278395 0.0308740065 -0.0867075101 -0.0695452839 0.000528208911 0.0746007785 -0.0629649609 -0.0577650554 -0.0506157465 0.0584257171 0.0788462684 -0.0223861262 -0.067600064 0.00879776478 0.0620840117 -0.0567292869 -0.0105716065 -0.0775263682 0.00256624818 -0.0320481285 0.0579300001 0.0494949147 0.0767009929 -0.0252312198 0.0497001782 0.0487749055 0.0846567973 -0.0842369199 -0.0811145604 -0.0765324607 0.0708705261 -0.0265203565 -0.0365278348 -0.00516898185 -0.0780755281 0.0532211885 0.083579801 0.0159632713 0.0268201828 0.034056358 0.0810809657 -0.0500456989 0.0627411827 -0.0176524222 0.0388165936 0.0529209897 0.067727305 -0.0228484347 0.0391509607 0.0111532137 -0.0718774199 -0.0509998724 -0.0220534354 -0.0148461759 -0.0886523798 0.0498963967 0.0449217185 -0.00882388651 0.00557371229 0.0749379322 -0.0266706869 -0.0884172618 0.0698712096 0.0367211029 0.0508074388 0.0251283646 -0.0306724086 0.0833637938 -0.0677695647 0.038612552 0.0643604919 0.0341413096 0.031565994 -0.0275970176 -0.0128933191 0.0510769114 -0.00531233847 -0.0145890042 0.0260689184 0.0567746982 0.0195060372 -0.0450011604 -0.00998371094 0.073871173 -0.0913696587 -0.0681916624 -0.0481578819 -0.0384349525 -0.0203376114 0.07396283 -0.029388316 0.0303145647 0.0486771688 0.0695009157 -0.0889479741 -0.0743057728 0.0721500441 0.0390801504 -0.0746724457 -0.0616472214 -0.017615512 0.0472033247 -0.0543311797 0.0221090615 -0.019852303 0.0230160877 0.0245990381 -0.0161771476 0.00601284206 0.038678132 -0.0617813952 -0.0919942483 0.0136267468 -0.0893441886 0.0127564147 0.0237508416 0.0106623322 0.0679120645 0.0197209865 -0.0286510363 -0.0590022653 -0.0436254181 -0.0474224687 -0.0447458401 0.0496420041 0.0897472724 -0.0586147271 -0.042570632 0.00604660809 0.0638413504 -0.0333979204 0.0664551631 -0.0179161951 -0.0551406592 0.0525849387 -0.0683533922 -0.0253030211 0.0546974614 -0.00563527644 -0.0234532356 -0.0236246362 -0.0708281398 0.0396641567 -0.0833618939 -0.000475823879 0.00289774686 -0.0846299604 0.0179411098 0.0431053266 -0.00661859661 -0.0356192179 0.0671915933 -0.0834872872 0.0575007573 -0.0128030926 -0.0909204036 0.061566405 0.0446185097 0.035902448 -0.0804652274 0.0493174866 -0.01229994 0.0530249253 -0.0220698789 -0.0848207697 -0.00304928422 -0.0504103899 -0.0794726908 0.0786227062 0.00752864033 -0.0204816461 -0.0635242909 -0.0883685276 -0.0558528751 0.0876613781 -0.0882525966 -0.0775967985 -0.0642427355 0.0386918858 0.00882124901 -0.0896794721 -0.0356331505 -0.0901258439 -0.0783593357 -0.0490387194 0.0587472245 0.0916845873 -0.0378851108 0.0819300488 0.00717548281 -0.0703365356 -0.0672481805 -0.0801011324 -0.029261604 -0.0183617547 -0.0340064019 -0.00931674987 -0.0910183713 0.0554469302 7.01919198e-05 -0.012721613 0.0144014284 -0.0719826818 -0.039394699 0.0871218368 -0.000445492566 0.00379990786 -0.070243828 -0.0916840956 -0.0599372499 0.0160134807 -0.0909658074 0.0368605927 -0.0729017705 0.0368919298 0.0557527021 0.0180075616 -0.0632764995 0.0262362659 -0.0149207488 0.0161540806 0.0437780991 0.011596635 -0.0390153266 0.0136559606 -0.0494548492 0.0814402774 -0.0554131493 -0.0473152772 0.0686444864 -0.079596214 -0.0108270869 -0.0394473448 0.0263453051 -0.0485938862 0.0882418826 0.0257310793 0.0533091053 0.0917368159 0.00178824365 0.0859628543 -0.0296971276 0.0796882436 -0.078299351 -0.0191426873 -0.0183681399 -0.0876118764 0.0497762486 0.0629507527 -0.0674345866 -0.059220653 0.0299549326 -0.0251603499 0.0918434039 -0.0716626197 -0.0601946823 0.0234336257 0.054779537 -0.0223732963 0.0385408476 0.0674256906 -0.0165741965 0.00576659292 0.0804396495 -0.00591173023 -0.0908016339 -0.0775301754 0.000610023737 0.0176301897 -0.0895938054 0.0363802239 0.0451478139 -0.0258446112 -0.0644047409 -0.00575580448 0.0208110139 0.00651285797 0.0286502168 -0.0894148201 0.0849498883 0.0409359559 0.0917201266 0.0622122511 -0.0343311876 -0.060691461 -0.0849700049 -0.0242313519 -0.038797114 -0.0167735219 -0.0797290206 0.0042495206 0.0907484815 0.0282219797 0.087483339 -0.00203356892 0.0665911213 -0.0515669957 0.0101040602 0.0439898297 0.065489985 -0.0864957869 -0.0266932696 -0.054024376 -0.081176497 -0.0590666682 0.0542230681 0.0747268274 -0.0269931853 -0.0808093399 0.0733451322 -0.0479722433 -0.0244310722 -0.0531116463 -0.0881121755 0.0227794349 -0.0277769789 0.0814506784 0.029183425 -0.0630773902 0.0243918523 -0.0362197757 0.0773140714 0.0839342549 0.0562120453 0.0567140952 0.0395764634 0.0451705083 -0.0271210447 0.0907697156 -0.0515288077 0.0594227985 0.0687585399 -0.0767372027 -0.00800232589 -0.00142014027 0.00963854045 0.0676037446 -0.0329146832 -0.017649956 0.0804511681 0.0391651466 -0.0412793458 0.0476860926 0.0447474048 -0.0513248369 -0.0592805445 0.0899482444 -0.050741557 0.0363957062 -0.00352907181 0.00653167069 0.0114220679 0.0593607351 -0.0395991318 -0.065509066 0.0688083544 0.0810324773 0.0428768024 -0.0160919875 0.00696059316 0.0814068094 0.0469125733 0.0219283327 -0.0215023831 -0.0451595038 -0.03704869 -0.0658499897 0.0799609199 -0.0877865478 0.0916381404 -0.006163463 0.0259917751 0.0360906199 0.0347092226 -0.0862086192 0.010006398 0.0174455866 -0.0383594781 0.0444519743 0.000776857138 0.0283162519 0.0417622253 0.00919720531 0.00896658003 0.0142401159 0.019842796 -0.0290871933 -0.0479883365 0.0315826088 -0.0288684964 0.0295544341 -0.0302519202 0.00583522022 0.0743580237 -0.0608899482 -0.0742278323 -0.0732245296 -0.0454093665 -0.00982609391 0.00811488926 -0.00223606825 0.0170377567 -0.0417676903 -0.0848848447 -0.0204275027 -0.0365940183 -0.0134888291 0.0805378035 -0.0591247529 -0.0605118982 0.0843337402 -0.0836667642 0.0434426442 0.0376042053 0.0803973302 -0.0141816586 0.0664503649 0.0120475441 0.0118216947 -0.0385848656 0.0586067662 -0.00498321652 0.071454443 -0.0876434594 -0.0438200124 0.0644147471 0.0852831081 0.0349358097 0.019713439 -0.0148009658 0.0458915457 -0.0818179026 -0.0478602126 -0.0140370727 0.072750397 0.0154598728 0.0199526697 0.0727469847 -0.0599802583 0.085537605 -0.0665872991 0.0175640061 0.0713646933 -0.0688692331 0.02371151 -0.053589914 -0.0786999464 0.0681337938 -0.049102217 -0.0864951313 0.0853743181 0.0184679776 0.0535973683 0.00709140301 -0.0184201002 0.0672485754 0.0864326134 0.0243012831 -0.0450858809 0.0572997406 -0.0328979753 0.0777690336 -0.0596914366 0.0876527056 -0.042866081 0.0248671472 -0.0549114645 -0.0401412696 -0.0345652699 -0.0625678301 -0.0114826411 -0.0680024624 -0.0242672488 0.0757095292 -0.0139714107 -0.0359502994 -0.083852157 -0.0599084161 0.0450648889 0.0681699589 0.0595414415 0.0207432657 0.0449224934 0.0315394923 -0.0773925856 0.0275040865 0.0734342858 -0.0157088563 0.0831313059 -0.080279395 -0.0528882854 0.0919642225 -0.0901478976 0.000929437578 -0.0835094526 0.00022135675 0.0243344307 0.0121114179 0.0595697835 -0.00235384703 0.0748386905 -0.0720385611 -0.0287926719 -0.0288745686 0.0686752275 -0.0313330106 0.0761023536 -0.0220461935 -0.0320104472 0.0319172144 0.0313565806 -0.00864804536 0.0234351233 -0.0655145943 0.0840693936 -0.0100980327 0.0312931016 0.0545586124 -0.0260992274 -0.0641222969 0.0445517972 -0.0565250516 0.0254326388 0.0825350508 0.0716766939 0.0899798051 0.0826488808 0.0708161667 0.0345789418 0.0567948744 0.0182729438 0.0218276754 0.0297085494 -0.0769449174 -0.0455563962 -0.0911208913 0.0226824954 -0.00325840712 -0.0922532678 -0.0288410485 -0.0474343076 0.0252301022 -0.0711545348 -0.0797744542 0.0386143401 -0.0236469954 -0.0468424037 0.0364680365 -0.0827526003 0.00730648637 0.0835987255 -0.04417447 0.0682050362 -0.0557617061 0.0162544698 -0.0779180676 -0.079328455 0.00403610617 0.0750321224 -0.0282282308 0.0459427312 -0.067238979 0.0832524821 -0.0511085391 0.05541832 0.0597156659 -0.0497226268 0.0192193016 -0.0416999198 0.00519070774 -0.00651923567 0.0888449028 -0.0181907341 0.0808973983 0.0800481364 -0.046084363 0.0351641551 -0.0426408909 -0.088761963 -0.076613836 -0.0286952779 -0.0313856155 0.0542503372 0.0721367523 -0.0568387024 -0.0887121111 -0.00408314168 -0.0414898954 -0.0508378334 0.089494653 0.0909546688 0.076332517 -0.0247331932 0.0855055824 -0.0224218965 0.0475106612 0.00682421774 0.0667793378 -0.00328772515 -0.0528434701 0.0164910629 0.0252664387 -0.0763826817 0.0125235841 -0.0150248781 0.00203511119 -0.03357099 0.0793580636 -0.0130537748 0.029315114 0.0475751534 -0.0897573456 0.00325974822 0.0634018108 0.019223839 0.0100849122 0.0913517252 0.0360318646 -0.0647023842 -0.02178251 -0.0267259106 0.0753052905 -0.0460493006 -0.0482890867 -0.0354259685 -0.0883458555 -0.07326065 -0.0589921623 0.0732078478 0.0449327156 0.0611460581 0.0278545618 0.0387205854 -0.0353701711 -0.0858782008 -0.0731285661 -0.0549738444 -0.0466889702 0.028599374 -0.0530416965 0.00692612678 0.0403101072 0.0761364326 -0.0187683776 0.0527625605 0.0856164768 0.0141763538 -0.0830365792 0.0614031032 -0.0670060217 -0.0144579113 0.039186947 -0.0563266277 -0.0590324216 0.050967671 0.00368983299 0.010683246 0.0546155497 -0.0474518277 0.0455423966 0.0909493044 -0.0846251845 -0.0536135733 -0.0781019181 -0.0565696917 0.0684912726 -0.0188886598 -0.0140331984 0.0892640427 0.0262013748 0.00293186307 0.0393777117 -0.0866579637 0.0680796728 0.0540103391 0.0312491506 0.0300304964 0.0607487783 0.0667422041 -0.0285255089 -0.0847472772 0.0392557904 0.0562964305 0.0242265537 -0.0821523741 -0.0636509657 0.0514527783 0.067732878 0.0372223482 -0.0750919208 0.0157685205 0.040887095 -0.0249800161 -0.0261373743 -0.0571222864 0.0511180982 0.0542033836 -0.0814331621 0.0691438094 0.0815613344 -0.0488494709 0.0556221828 0.00466745347 -0.0886053592 -0.0888826698 0.00859797001 -0.00407156348 -0.0508299321 0.0745985135 -0.0241813436 -0.0686099455 0.0276919305 0.0738839582 -0.0745521188 -0.0662688017 0.0256192684 -0.00115189701 -0.0642687976 -0.0480387621 0.0288112015 -0.0474327914 0.0915533379 0.0566545799 -0.0782653689 -0.083133094 0.067633234 0.0579339936 0.012644425 0.0438159481 -0.0332016535 0.0839716718 0.064824827 0.087624602 0.0369688347 0.00230474025 -0.0532997698 0.0797193423 -0.0783113465 0.0574235693 -0.0054448396 -0.00566710532 0.0657323822 0.0151139945 -0.0229662135 0.0507213697 -0.0146132559 -0.0179143026 0.0884956643 -0.0475325435 -0.0741739944 0.0801818892 -0.023058258 0.0185353681 0.0376348123 0.0855838284 0.0879129395 0.0757264122 -0.0309421457 0.023441352 -0.0445038788 0.0713150278 0.0905918255 -0.0145348161 -0.0662764013 0.0076277107 -0.0795233324 -0.0702769309 -0.00406236202 0.0648071691 0.0338383093 -0.055988878 0.00310210884 0.0229800791 -0.0376765169 0.072055243 -0.0820712224 -0.0153446421 0.0912745073 0.00446090847 0.0918106362 0.0064952448 -0.0410338826 0.0828989521 -0.0235008448 -0.0901222378 0.0567472652 0.059891887 0.084091194 0.0611063316 -0.0364495218 0.0489264503 0.0184246153 0.0230149403 -0.0518285669 -0.0134352595 -0.0876258984 -0.09076415 0.0861519352 -0.0559590086 -0.0165803581 -0.0307398289 -0.0254286155 0.0176055357 0.0356492475 -0.0449452549 -0.0531940758 -0.0849409699 0.0202081054 -0.00685130805 0.0292851105 0.0915869251 -0.00764619559 -0.0561784096 -0.0148929432 -0.0754466653 -0.042898301 -0.0248919502 -0.0648380816 -0.0271997526 -0.0737811103 -0.0134781823 0.0414185598 0.0668546781 0.0632075146 0.0166482851 -0.0412694626 0.0226790607 0.0674306527 -0.0599848554 -0.0631816834 0.0660830513 0.011264123 -0.0598275922 0.0276903883 -0.064392671 0.0282225981 -0.0833665133 -0.0188618749 -0.0126318559 -0.0719634145 -0.0338627622 -0.0712380409 0.0341205224 -0.0224362016 -0.00245548785 0.0247330368 0.0285126939 0.00289034843 -0.0897511169 -0.0180712566 -0.0195833817 -0.0491486602 0.032187745 0.0609708652 -0.0858206823 0.0636441186 -0.00585760176 -0.0292295814 0.0636534467 0.0517994985 0.0683890209 0.0889579877 -0.0793423429 -0.0517080612 0.0902191475 -0.0162841603 -5.4076314e-05 -0.0474101417 0.0451157913 0.0822902992 -0.00488390028 0.00681442022 -0.0257257521 0.0438821241 0.020222716 0.0714159235 -0.083795324 0.0677603409 -0.0602157265 0.00912175328 0.080488421 0.0693766102 0.0871548131 -0.00149612129 -0.055660855 -0.0182803571 0.0499059483 0.00958873332 -0.0036836043 -0.0690997243 0.0533967987 -0.0372804143 0.0302363187 0.0496164933 -0.0756378248 -0.0766682923 -0.00155072659 0.0304218233 0.0196874216 0.0401808694 -0.0724351257 0.00621972233 0.0274107456 0.0372298732 -0.0525897108 0.00279247016 -0.00680669397 0.0627577379 0.043202199 -0.0375600569 0.0442511365 0.0123911723 -0.0440935604 -0.0421260223 0.0539941564 0.0875777081 0.00964010507 0.0420493856 0.000636763871 -0.0102866367 -0.0507512651 -0.00919835269 -0.0719190463 -0.0386600532 0.0272873268 0.0513933077 -0.0269757733 -0.00425662845 -0.00880088657 -0.0777778402 -0.0632268041 -0.0453771204 0.0816273764 0.0346984342 0.0348408446 -0.0363482721 0.0432761833 -0.0709113181 0.0747467801 -0.0418710746 -0.0560746752 -0.00988771766 -0.0818766505 -0.0716966093 -0.00808418542 -0.0289348364 0.0650574788 0.016759038 -0.00114384294 -0.03767436 -0.0659911633 -0.0844387785 0.0850962475 0.0157502294 -0.0349028222 -0.0299360715 0.0373721048 -0.0728803724 0.0521287844 -0.0323488601 0.0120291635 0.0336524025 -0.0493916348 0.0279550627 -0.0743669197 0.07871712 0.0209211335 0.0670494512 -0.0594058074 0.0392447188 -0.0424967892 0.0392889157 -0.030670207 0.0919198468 0.069860898 -0.033031404 -0.0534085445 0.086367093 0.0779886171 -0.0660683513 -0.0257568955 0.0320470035 -0.0266634226 -0.0341963507 -0.0704010278 0.0118170306 0.0532089099 0.0153821483 0.0336041823 0.0322736278 -0.0876407772 0.0484377518 -0.0477855317 -0.0224210992 -0.0715707764 -0.0778613016 0.0830015764 -0.0166986659 -0.0897381082 -0.0154986978 0.0687403753 -0.00265575945 0.0204369649 0.0178937688 0.0884116217 -0.0911161155 0.0646619722 -0.0686716884 0.0594315156 0.0108345672 -0.0593190193 -0.0236371383 0.0163685307 0.079397656 -0.0137606189 0.0820272192 -0.0214254335 0.0602580085 -0.0491945967 0.00938414037 -0.00262992084 -0.0466322042 -0.0216275156 0.0338904336 0.0703806654 0.0413096771 -0.00531819463 -0.0238118544 -0.0603630207 -0.0425940305 -0.0218652487 0.038486816 -0.054494191 -0.0377003737 -0.0428997763 0.0544949844 0.00827877969 -0.0750217512 0.0123922303 0.023368232 -0.07169687 -0.0836661011 0.0376993343 0.0882633254 -0.0388289168 0.0677951351 -0.0242973864 0.0618172362 0.0298743993 -0.0182040036 0.0858501717 -0.00490516424 -0.0343170352 0.00517494977 0.00179200619 -0.0746844411 0.0389278606 0.0289750919 -0.00590664148 -0.0894215107 0.0491865799 0.0639784411 0.0682021156 -0.036736954 -0.035684105 -0.0640803427 0.074912928 -0.0635456666 0.0540379509 0.0154087171 -0.0360910557 0.0238472894 -0.0223434716 0.0611935332 0.0198470876 -0.027128987 0.0537827387 -0.0304331556 0.0653173104 -0.0872560069 -0.0323204435 -0.0211896375 -0.015160881 0.0859575644 0.0107631907 -0.0338740535 0.0360878482 0.0898684934 -0.0848996565 0.0150754377 -0.0188074186 0.0505561605 0.0870671347 -0.0814526379 0.00987993181 0.0274884179 0.0818627402 0.0813897327 -0.0898426399 -0.0481198914 -0.0536428019 -0.0765870959 0.0172163919 0.047576718 -0.0202391595 0.0482199565 0.00891109556 -0.0320023037 0.0645997748 -0.0670049414 0.0470148847 -0.0109860227 0.0325515345 0.0762290284 -0.031446673 -0.00887908787 0.0197261795 -0.0544849895 -0.0391461328 -0.036461316 -0.0639670342 0.0485384837 -0.0207063109 0.0623413846 0.00723026693 0.0760609135 0.0462931469 -0.00608424842 0.0525855348 0.00168497115 -0.0067718327 0.0293133259 -0.0858330801 -0.0865919739 0.00150910765 -0.0163174197 -0.0162141919 -0.074573949 -0.0333511941 -0.0268180221 -0.0500351563 0.0469935462 -0.0374191701 -0.0668937713 0.0417989269 0.0194541365 0.0298563018 0.0429667756 0.0493457839 -0.0555309728 0.072645016 0.0432187095 -0.0812598914 0.0228188336 -0.00204200298 0.0217765868 -0.0409377851 -0.0769317523 -0.0345668085 0.0799005553 -0.00523111969 0.0641546771 0.00077906251 0.0156277195 0.0710349306 -0.0769301951 -0.0812757835 -0.015248701 -0.0284394026 0.0580031201 0.0905988738 0.0758721754 -0.0709179193 0.0588904247 0.00533828884 -0.037409354 -0.0704665482 0.0796165094 -0.0781394467 0.00112092495 0.0291185156 0.0652284101 0.0173733979 0.0657320842 0.0367045924 -0.0467846692 -0.0363370888 -0.0900589526 0.0119466707 -0.0163425133 0.0243337005 0.0418206975 -0.0438605994 -0.0469440706 -0.0591149144 -0.0854606628 -0.01497861 0.0796543136 0.0702113137 -0.0496015251 0.0801925436 0.077042453 0.0817414001 0.0778548345 -0.0308712721 -0.0768731609 -0.0267246515 0.0586521253 -0.0808582231 -0.0559644699 0.0015630275 -7.03930855e-05 -0.084905602 -0.0516027622 -0.0647746474 0.00314699113 -0.0547816046 -0.00350580364 0.00152246654 -0.0681612641 -0.0688751042 -0.0652281716 -0.0210740194 -0.0401480719 -0.0437607393 0.0109412298 0.0884299651 -0.072558254 0.0218972489 0.0411684588 -0.0735353604 -0.075001128 -0.0803341344 -0.0531420223 -0.029844638 -0.0249449313 -0.019836694 0.0446491316 0.0211077109 -0.0223824531 0.0577685609 -0.0212835148 -0.0377879776 -0.025010325 0.0153737664 0.00283530354 0.0536685959 -0.0687567145 -0.0440613814 0.0696166381 0.0379418507 -0.00284259021 -0.0142012686 -0.00122012943 0.0687839016 -2.87443399e-05 0.0312024653 0.0276439413 -0.0302668214 -0.0586945824 -0.0724196285 0.0860311314 -0.0372395627 -0.00288979709 0.0424592569 -0.0110955909 0.0730983838 -0.0329687633 -0.0171872973 -0.0628010333 0.0642128065 0.0145727172 0.0492108837 -0.0321227685 -0.0818620324 -0.00086723268 -0.0534154996 0.0837120786 -0.0193325877 -0.0730014145 -0.0572928675 0.0606968477 0.0626448616 -0.0787578076 0.058522217 0.0827163979 -0.0242783651 -0.0510316789 0.0894391462 -0.0415754057 0.0440369323 0.0623991415 -0.000701010227 0.0620625094 -0.0624459162 -0.0276796222 -0.0215787366 -0.0429930128 0.0916257724 -0.087803565 0.0366146937 0.0152709559 0.0498658791 0.0612066761 -0.0439384952 -0.0548334382 -0.0835561603 0.0156827495 0.0504352674 -0.0222171098 0.00420197845 0.0141589642 0.0263459012 0.0171661898 0.0610083863 0.031100139 0.00269346684 0.0230753422 -0.0609636642 0.0790917948 -0.00713355094 -0.0393426195 0.0237899572 -0.0677146316 0.0560423359 0.0396480188 -0.0835541785 0.0884437189 -0.0815242156 -0.0480594933 -0.0661935061 0.056829147 -0.0631727874 0.0118943304 0.0378712937 -0.0090842694 -0.00759946555 -0.0296682939 -0.0275339335 -0.0713911504 0.0810795799 -0.0742291138 -0.0541094467 -0.0590195432 0.0889790729 -0.0524524972 0.0841307417 0.0250759572 -0.0218603164 -0.0800621733 0.0279837623 0.0627119169 -0.0446161106 -0.0348032266 0.0470131859 0.0224755332 -0.0587339364 0.0261327922 0.0772668794 0.0839098915 -0.0702852979 -0.0331729092 -0.058870025 0.0366512462 0.0125770047 0.0078451708 -0.058437299 -0.00228651613 -0.0895439088 -0.0314097591 -0.0206796303 0.050586842 -0.0705738291 -0.00857166946 0.0703806058 -0.00800234824 0.00524377823 0.0198847055 0.0108531862 -0.0203035623 -0.0533240922 -0.0599775501 0.0468500778 -0.0521916524 -0.0116169974 -0.0564956479 0.0575191155 0.039347358 0.0830866173 -0.0723043159 0.0630102381 0.00807788968 -0.00964261591 -0.0260839313 0.0511202738 0.0629832372 0.00781515241 0.0675500706 0.0658108965 0.0338622257 -0.0591521561 -0.0193833932 -0.0301455446 0.0653636381 -0.029888615 0.0201082379 0.0448538736 -0.0922631919 0.0769787058 -0.0680658519 -0.0375610478 0.0741722956 0.0614924654 0.0836478695 -0.0157244802 0.0371535942 -0.0509363972 -0.0200165212 0.0432406589 0.0118784606 -0.0564910248 -0.0717520937 0.0707798526 -0.0288349763 -0.0136505887 0.0172235444 -0.0534568354 0.0304735675 0.0608082488 0.0912763104 -0.0759930536 -0.0215634406 0.0475511476 -0.0384038091 -0.0687196478 -0.0841026381 0.0850528255 -0.000248961151 -0.0907475501 -0.0450270474 -0.0799763948 -0.0371161513 -0.0853749961 0.00385159254 -0.0662615821 -0.0335888416 0.00947181135 -0.00442661345 -0.0203529969 -0.0846474394 0.0245249495 0.0814718828 -0.0813266933 -0.0434749126 0.0509487018 -0.0333089344 0.0506016985 -0.0699219033 0.0742466375 0.0267699957 0.0237985849 0.018799454 0.0204522386 0.0605240092 -0.0238201991 -0.0125191361 0.00561205298 0.0303812996 0.0484996364 0.0694214031 0.0233285949 -0.0389296822 -0.019491151 0.0253692046 -0.0619857386 0.0599586889 0.0746738985 0.04906068 -0.0127899349 -0.0640352666 0.0270675123 0.00897243619 0.0533275679 -0.0850853622 0.0775119439 -0.0241541862 -0.073899284 -0.0573200919 0.0491058901 -0.0733002052 0.0355441198 0.0578280464 -0.0479498617 0.0595197603 -0.0420617275 0.0598958507 0.0539868549 0.0852506086 0.0128572211 -0.0652041137 0.0186374784 0.0548282042 0.00159992278 0.0902236179 0.0911847427 0.00655247271 0.0496968105 0.0327920988 -0.0724671707 -0.053865768 -0.0652842522 0.0103041828 -0.0693821833 0.00473194569 -0.0524401069 0.0264114663 -0.0162425414 0.0672310963 -0.0554698706 -0.0633962825 -0.0141210407 -0.0336759351 -0.056004066 0.0851541385 0.0230603516 0.0407940373 -0.0685633272 0.0159159526 -0.0207173824 -0.0323962271 0.0648359582 0.00853865594 -0.0582996234 -0.0736064762 -0.0759109333 0.0323853493 0.0659848973 0.00945506245 -0.0116071552 0.0185863078 -0.0664324537 0.0369749293 0.0411083922 0.00390342623 -0.0647158101 0.0256274343 0.0844803825 0.00864204019 -0.0214553252 -0.0342543721 -0.0602543987 0.0282014906 -0.0678681731 -0.0309183747 -0.0388657637 0.0216279551 0.0122166052 0.0118727162 -0.0869425386 0.037256442 -0.0865194052 0.0649595335 0.0505794957 0.014859207 0.0868095234 0.0825000778 0.0366121754 0.0688949451 0.028523393 -0.0902646855 -0.0637740716 0.0721790716 -0.0100776926 0.0277377293 -0.0620781183 0.0175141767 -0.0819351077 -0.0831152424 0.0794693455 -0.0406532548 -0.0691077113 -0.039852649 0.0319089144 -0.0140422434 0.0121548027 -0.0335755236 0.0673265234 0.0260091349 0.015597634 -0.0369026512 0.0405282304 -0.0838397667 0.0760037526 -0.0802022442 -0.0156845078 -0.0455465131 -0.0843640342 -0.0342754796 -0.0675435364 0.00873117894 0.0554219559 0.0336412713 0.0756139383 -0.0718417466 0.0570057556 0.0460057035 -0.0901915431 -0.00155492872 0.0256055295 -0.063600935 -0.0138286501 0.0894699171 0.0640247092 -0.0474127606 0.0845653191 -0.06709373 -0.0774178803 0.0244822055 0.0573760495 -0.0470483564 -0.0812090263 0.0631729141 -0.062089432 0.0767141655 -0.00711585581 -0.0179501995 0.00229388475 0.0803484246 -0.087547563 -0.0256833136 0.00924871117 0.00716421008 -0.0480772145 -0.0211727545 -0.0626032054 0.0673349425 0.0785613731 -0.0234795436 0.0396369174 -0.00928767025 0.0863322988 0.0188346729 0.0105591267 -0.045136746 0.00314969569 -0.0740590543 -0.0249684826 -0.0459511764 -0.0782020018 0.031483762 -0.0556706078 0.040417321 0.0873268172 0.0481205359 0.00189837813 -0.0254422128 -0.0892376602 0.0720775053 -0.0647401959 0.0465299413 0.0710871443 -0.052969899 0.0240424126 -0.0901219249 -0.0793251321 -0.0291125029 0.030620642 0.00367902964 0.051456444 -0.0773398727 0.00528389961 0.0605040118 0.0119543746 -0.0227503777 -0.0502218679 0.0100853294 0.0814527348 -0.0753730386 -0.0518393964 -0.0370370224 -0.0488495156 -0.0651021153 0.0221215859 0.0358689949 -0.0355538055 0.0616459623 0.0804569051 0.00603143871 -0.0305889249 0.0827799216 0.0472393557 -0.0391647778 -0.0860578939 -0.0385177359 0.0294742063 -0.0172749609 -0.0921521261 -0.0249829665 -0.0157981738 0.078367345 -0.0559931025 -0.0256321207 0.0406455472 0.0363275781 -0.0860119984 0.0205491334 -0.00352466851 0.0682566836 -0.0602738336 -0.0112864673 0.0915280208 0.074052237 0.0851217136 -0.030791264 -0.0699082166 -0.0626888648 0.070560731 -0.0868958086 0.0868342295 -0.0712901428 -0.0860617682 0.0403848812 -0.00604057312 0.000983409584 -0.0579788014 -0.0822992474 0.0506203845 -0.00472009927 -0.0544757023 -0.0575814471 0.0745508 0.0101315081 0.0495254323 -0.0803296864 -0.0680437982 0.0759669021 -0.0185714662 -0.0904045179 -0.0578070767 0.0844076052 0.00581615418 0.092173107 -0.0271226242 -0.0251975656 0.0461412594 -0.0811427757 0.0406795517 0.0693842247 -0.0168301091 0.0703477338 -0.0868585408 -0.0196377411 -0.0838550627 0.0731418207 0.0878855065 -0.033614438 -0.021572642 0.0378357247 -0.0593532659 -0.0582477227 -0.0213918239 0.0779620931 -0.0899610296 0.063345708 -0.0101671666 -0.0194561109 -0.0439517908 0.0532525107 -0.0507488437 -0.0481573977 0.0323395506 -0.0456048213 0.0872087255 0.0185832679 0.0249727741 -0.0178900659 0.00408450514 -0.0318046957 -0.0595875457 -0.0595994964 0.0898605064 -0.0235108137 -0.027168341 -0.0103773847 0.00240506232 -0.0528862588 0.0236938596 -0.0765908137 0.0754370466 0.0538755581 0.0354617611 -0.0472456999 0.0427755341 0.0460965857 -0.0504657887 -0.0452380814 -0.0341019928 -0.0530210733 0.0859232917 -0.0480655693 -0.0616620779 0.0669903234 0.0642686263 -0.0207208991 -0.0383709259 0.0870848969 0.0015399158 0.0623026267 -0.0913557038 -0.0143153071 -0.0336797871 -0.00765343755 -0.0148875117 -0.088774465 0.0107779577 0.0209050179 0.0496518239 0.0489993617 0.0596226081 -0.0433056056 0.0766414776 -0.0561307557 0.075185515 -0.0230117068 0.0465836003 0.0273607597 0.0741705224 -0.0618573986 0.0180013552 -0.0829403102 -0.0298455432 -0.0438049808 0.0498529449 0.0793296918 0.00172500312 0.0645961836 0.0527743176 0.0566941127 -0.02785597 -0.036904566 0.0695758089 0.057868503 0.00740186125 0.0239109918 0.0207139924 -0.0527190678 0.0185622498 -0.0316906795 -0.071417205 -0.0717129186 0.0913594738 -0.0176711306 -0.000225059688 -0.0921420082 -0.0351387523 0.0384357497 -0.00407583266 0.0610066727 -0.087139532 -0.0921964124 -0.00095769763 0.0210258588 0.0785453692 0.0140321404 -0.0845456868 -0.0473379903 0.0810182914 -0.026365906 0.0602540448 0.0335495695 0.00938960165 -0.0435025133 0.0726855621 0.00704979897 -0.0896325707 0.0553877428 0.0557883009 -0.0141258612 0.0781368688 0.00575333834 0.0150518417 0.00867182016 -0.0159604996 0.00144524872 0.0330321118 -0.0417863987 -0.0889236331 0.0593414232 -0.0315800123 -0.0298917405 0.0576654598 0.0449278429 0.0369025543 0.0821185932 0.0166794732 -0.0481876619 0.0306613594 0.0263263509 -0.0612045452 0.0135257244 0.0616245493 0.0509437844 -0.0596000925 0.0729167834 0.0171075314 -0.00147892535 -0.0213246942 0.0421939418 0.0588810816 0.0728054717 -0.0429997034 -0.0591650754 0.0651241913 0.00651069731 -0.0646359995 -0.0398739986 -0.0917219594 -0.0323622636 -0.0255806148 0.0328953788 -0.00650944561 -0.0256461427 -0.0129836723 0.0559082255 -0.00788578391 -0.0180915743 -0.0272059143 -0.0370984972 0.0727189705 -0.0658716038 0.0446304604 0.0312392861 0.0305850953 -0.0865894035 0.0291882232 -0.0441089012 -0.0789211467 0.0627229139 -0.0643919259 0.043875508 0.0442745909 0.0542914346 0.0614332333 0.0242912397 -0.0494683832 -0.0333393961 -0.0795552954 -0.0264031887 -0.020196192 -3.4712255e-05 -0.0908969641 -0.00723479688 -0.0912652612 -0.0746282712 0.0618409291 0.0867764428 -0.0474007651 -0.0129103735 0.0817620233 0.08138787 -0.00571570545 0.00864525139 -0.053829737 0.0902816728 -0.0868338272 0.0401467308 -0.0400534496 0.0228928477 0.0801019445 -0.0790318847 -0.0675940365 0.0385406688 -0.0842398927 0.0686725006 -0.0891300291 0.0430168733 0.0874156132 -0.0544387251 0.0353303775 0.0667932853 0.0679867491 0.0868409202 0.0537899658 -0.0900087282 -0.00744363666 0.0331698284 0.0163040385 -0.00184863806 0.0300142765 -0.0348005407 -0.0679632351 0.0723999366 -0.0114529282 0.0443560109 -0.0748329461 -0.0230207965 -0.0292767063 -0.0433212332 -0.0922318324 -0.00189375877 0.0202154294 -0.00650127977 0.0425953493 -0.040761482 -0.0439878665 0.023286663 0.0808387026 -0.0501882583 -0.0425174758 0.0496527031 -0.0281729847 -0.021071136 0.045269914 -0.0908411443 -0.0671600997 0.016003482 -0.0414943658 0.0809294507 0.015503563 0.0349914208 0.0425228849 -0.0403006934 0.0891843662 0.0219716281 -0.0657107681 -0.0505672358 -0.023486279 0.0411796197 0.0691380873 -0.0287031308 0.00825382024 -0.0660533458 -0.0828200877 -0.0263502374 -0.0139377788 0.0103588328 -0.0884204507 -0.0354412869 -0.0750516653 0.0620361045 0.0161426142 -0.00673146546 0.00564346462 -0.0817301944 0.0705066398 0.0405498967 -0.0384045802 0.0779740587 0.0297798812 0.0500020459 0.0243921801 0.0800975934 0.0478448644 -0.0518490151 -0.0267455652 -0.0341764316 -0.0616850778 0.0335236713 0.0906676576 0.0813948438 0.0764124617 -0.0901095346 -0.0241463035 0.040322639 0.000321768224 0.0672798976 -0.0472852327 -0.0665329099 -0.0664657354 0.0188656822 0.0521204248 -0.0578400232 -0.0372560956 0.0919401273 -0.0428061225 0.0889111087 -0.0587502904 0.0645213202 0.0172831044 -0.0583154745 0.0282615125 0.0168636069 0.0691869333 -0.0453267843 0.0552650467 -0.00757052749 -0.0169381127 -0.0475678705 0.0644746348 -0.0881575346 -0.00927679986 -0.0124844313 -0.0464615338 -0.025682196 -0.00752779841 -0.0580802672 0.00834080577 -0.0477165729 -0.0102824122 -0.0472165607 -0.0911904275 -0.0718649179 -0.0749030933 0.0918713585 -0.0883144066 -0.0316083618 -0.0855666623 -0.0115489364 0.0793340728 0.00845908374 0.0422849432 0.0888338313 -0.0112967864 -0.091358982 0.0516370162 0.0119586661 0.0641545877 -0.0794218481 -0.0749346614 -0.0269007832 0.0625062957 0.0296850652 0.0242273659 0.0444689021 0.0112867951 -0.0120962709 -0.0102680847 0.0729311481 0.0414977744 -0.00261986256 0.0578312054 0.0314718112 -0.0657585338 -0.084083043 0.0732147321 -0.0168575346 0.0744731799 0.0426551476 0.00105692446 -0.00566483289 0.0809950456 0.0211035758 -0.0782536194 0.0367518738 -0.0437943712 -0.0145124942 0.0195087194 -0.0771600008 -0.0895541906 -0.00125085562 -0.0137979239 -0.0198913962 0.015032053 0.0743453279 0.0435364023 -0.0219523013 0.0731502399 -0.0778351724 0.0514266118 -0.0796468109 0.0162214562 -0.0842731744 -0.0546151586 -0.0699321181 -0.0387156084 -0.0733875185 0.0670389459 0.0774031058 -0.0141283497 -0.0318157226 -0.0624270737 -0.0843506902 0.0336432233 -0.0229953974 0.0294153914 -0.0469230488 0.0314530358 -0.0499876328 0.0854284093 0.0652840808 0.0761559978 -0.0415342934 -0.032743901 -0.0325659029 -0.0416980051 0.0701722279 0.060466595 0.0287768021 -0.0571350306 -0.0502153747 -0.0325053968 -0.00600582361 0.0188263953 -0.055546511 0.0471700504 -0.0628724769 0.0703616068 0.0235484764 -0.0776432902 -0.0562863946 0.0620483235 -0.0616779253 0.0429334119 -0.0739176422 -0.0403492041 0.0650138035 0.0401153937 0.040721558 0.0249365047 0.00525990874 0.021826975 0.0263973996 0.0587813929 0.0498950109 -0.0011702776 0.0404991433 -0.0694919974 -0.0389841124 0.0734991357 0.00764661282 -0.0330996364 0.0824506357 -0.0278913006 0.0634265915 0.0754902288 0.0554144755 0.0132703558 -0.0525645986 -0.0403322987 0.035598062 -0.0614732057 -0.0300954059 -0.0164641663 0.00291797519 0.0308280885 -0.0757937431 0.0655989125 0.0445404127 0.00300396979 0.0364474282 -0.0468352959 -0.0789730921 0.0173186958 0.0131348148 -0.0579182506 -0.0537111238 -0.033886224 -0.05822514 0.050308682 0.031094484 -0.0411999971 -0.0653479993 -0.060730461 0.0785185322 0.0426551327 -0.0558407456 0.03924229 -0.0315429904 0.0466085449 -0.0389336012 0.0487817898 -0.0669081882 0.0569424555 -0.0748869777 0.0495546237 0.0131400079 -0.0460842736 -0.038315963 0.0788059756 0.0266459882 0.0189891607 -0.00703199208 0.0178932846 0.0678303167 -0.0833815932 -0.0642465204 -0.0177590847 -0.0492488071 -0.073246412 -0.059904255 0.0575103685 -0.0511938967 0.0606201068 0.0406102911 -0.0613094047 0.0375680104 -0.0408455618 -0.0896299928 -0.0162084922 -0.0807587802 0.0805964097 0.0175925121 0.072467722 0.0836885944 -0.031156484 -0.00453849137 0.00655793399 0.0663008913 0.0891404822 -0.0310473368 -0.0326635428 0.0114675462 -0.0668838397 0.0915791765 -0.0152857006 0.0739043728 -0.0530554093 -0.00266253948 -0.0264931917 -0.0330135524 -0.0430622809 -0.0100840554 -0.000199131668 -0.0421083681 0.0915746167 -0.0157293901 0.0881493762 -0.0682159141 0.0876970962 -0.0774018764 0.0461092517 -0.0259428844 0.027763769 -0.0261519402 -0.041149769 0.0908411369 -0.0530323647 0.0624661669 0.046240218 -0.0824343115 0.026253365 -0.0124852881 0.0865980908 0.0472680405 -0.0319850035 0.0634056851 0.0542459711 -0.0311798155 -0.0680527091 -0.0794517994 0.063855134 0.0452024415 -0.0240959227 -0.00200539827 0.0358822867 -0.0759678036 -0.0292263627 0.0600486025 0.00644541532 -0.0915745124 -0.0741759092 -0.092071265 -0.0665442199 0.0713908896 0.0866073146 -0.0558496192 -0.0705432147 0.0351697579 0.0152167901 0.0668621138 -0.0774195939 0.0346188173 -0.0609189831 -0.0903438181 0.0715769157 -0.0197023675 0.0525903925 -0.0541359931 -0.0808129758 0.00294273347 0.0582201853 -0.0262126699 0.034502916 -0.0637976229 -0.0663653165 0.0369078293 -0.000483945012 -0.0411621593 0.0746141151 -0.0584034063 -0.086747326 -0.00290126354 0.0527831838 0.0670210794 -0.0602708831 -0.0156950057 0.0385209844 0.049176462 -0.0317588896 -0.0112442896 -0.00663518906 -0.00483825058 0.0836496875 0.0177319869 -0.049303066 -0.0103003085 -0.00566274673 -0.082098119 0.0185425505 -0.0582361706 -0.0662009716 -0.05128612 0.0652625337 -0.0583473444 0.0786113366 -0.0421478562 -0.0350370631 -0.0218680203 -0.0712274536 0.0870469138 0.0684255585 -0.0191941261 0.0867381468 0.0157203674 0.087654911 -0.0845660865 0.0500434265 0.0853246078 0.0866294876 0.0218415409 -0.0366347618 0.0620578304 0.00922102481 0.054417856 -0.00891549885 0.0274986774 -0.0212449953 -0.058855433 0.0595220402 -0.0635980964 0.0276020169 -0.0790415257 -0.0215680152 0.00563567132 0.0844750032 0.0190862045 0.0506297722 -0.0344722308 0.0593509749 -0.0561544187 0.0360541269 -0.0766150877 0.08342015 0.0125980675 -0.0332476795 -0.0281298459 0.00982582569 -0.0183177292 0.0400287136 -0.0222210288 -0.088699542 -0.0207794309 -0.0656588674 -0.0559678562 0.0615417734 0.0707012489 -0.0854261667 -0.0439781137 0.00225164741 0.0382310078 -0.00532545894 0.0286655352 0.0452568159 -0.0533286929 0.0745602623 -0.0179659799 -0.0627269223 0.0408525392 0.0646189377 -0.0363129005 0.00676520169 -0.0598943271 -0.0433460176 0.0921231881 -0.0490388274 -0.0774258226 -0.0146086365 -0.0661232024 -0.02900628 0.0866430178 0.0291916803 0.0812811181 0.0571248755 -0.00633833557 0.0731641725 -0.0443181545 -0.0854692459 -0.0580072813 -0.080612123 -0.0155158192 0.082330592 0.0796624646 -0.0186806619 -0.0411135629 0.0118993223 -0.0448206738 -0.00474138558 0.0329969749 0.0527700856 0.0484261736 0.0283761024 -0.0573414005 0.0189386681 -0.0339940302 -0.0163760334 -0.0519020185 0.0717373863 -0.0880579799 -0.00882390887 -0.0133155435 0.07965561 0.0813487694 -0.053613089 -0.0683479309 0.0879037604 -0.00814864784 0.0895357504 -0.0355646983 0.0787687525 0.059605591 0.0775042698 0.0653837994 0.0822174326 0.0837690607 -0.0320737511 -0.0155726969 8.13305378e-05 -0.0146673173 0.0343314782 -0.0140134767 0.0658112988 0.0279474258 -0.0273773745 -0.0455951355 0.0804118291 -0.0284660384 0.0854800567 0.0875839218 0.0325099081 -0.0229484066 -0.0594022162 -0.0649050996 -0.087058112 0.0394929722 -0.0661722198 0.0250959694 0.0385274664 0.00729101151 0.0409935191 0.00448983163 -0.0280890614 0.0219060779 0.0912449881 0.0489778742 0.0438502505 -0.039281562 -0.0916197821 0.00328717381 0.00219094753 -0.00275021046 0.0203088671 0.0647766665 0.0681563094 0.0300871953 -0.00780907273 -0.0128225088 0.0439022705 0.0888230279 -0.0852285624 -0.0477441959 0.0496415123 -0.0882965997 0.0600947812 0.0364318416 -0.0898090899 0.0374810919 -0.052634459 -0.0314836279 -0.0584741458 0.0766714588 0.045201309 -0.056860514 0.0282913148 -0.0362586901 -0.0173025653 -0.0144215077 0.000320799649 -0.00818142295 -0.0672710538 0.0109338537 -0.0741552636 -0.0614565648 -0.0523432605 -0.0914368555 0.025277622 -0.0363090262 -0.0681997836 0.0709857866 -0.0918539092 0.0330376253 -0.0873479918 -0.00774355233 0.0729841515 0.0726018772 0.0481530353 -0.0315401703 0.029989928 0.0449958369 0.00646687299 0.0454341695 0.058702983 0.0703842565 -0.0634304211 0.00590963662 0.00121229142 0.0203699693 0.0150379986 0.0640919432 0.0723048821 -0.029217124 0.0802304819 -0.00865597278 0.0168478042 -0.0114234164 0.0773075446 0.0256532058 -0.0277815312 0.0656164363 0.0744999871 -0.0386353582 0.0515629426 0.0460086539 -0.0312029719 0.0440944806 -0.0607592501 -0.0133932605 -0.0843721777 0.089028053 -0.0851104707 0.028308481 0.0454429761 0.0241015106 -0.00146766007 0.0555791035 0.0462508276 0.0756799355 -0.0137191936 0.0777506158 -0.0337781757 -0.0500476994 -0.0770742521 0.0124457777 0.0362228975 0.0419732854 0.0670964196 0.0278879106 0.0537553206 0.0879689977 0.0597979501 -0.080509603 -0.0518780686 0.018652156 0.0247881934 0.0789240077 0.0240974873 -0.00308959186 0.0404843763 -0.076356709 0.0859652236 -0.00161097199 -0.0281117782 0.0914930478 0.00591745228 -0.0437612459 -0.0193493217 0.0263273865 0.00945232809 0.0760640875 0.0487068221 0.0189346001 0.0167228952 0.00943472236 -0.0348439664 0.0618089959 0.0740832463 -0.0744397044 0.00468818843 -0.0862324759 -0.0327449813 -0.0663215667 0.0809204206 0.00127519667 -0.0352458097 0.0866999552 0.0483716503 0.0162882134 0.0161657706 0.0572124198 -0.0399497375 -0.0845846832 -0.0350325964 0.0575052872 -0.0907911137 -0.0457227305 0.0583168343 -0.0829806477 -0.0593627989 -0.0392756648 -0.0430011153 -0.0696303323 0.0265363306 -0.0722156167 -0.0776157081 -0.01978755 -0.0670083985 0.0517437682 0.0705004111 0.0631658509 -0.0221461877 0.0504204854 -0.0656044185 0.0850930884 0.03573028 0.0250193477 0.0858694836 -0.0494373292 -0.0201834738 0.0919388309 -0.00366380066 0.0278745666 0.0338970497 -0.0833382979 -0.0760626495 -0.00626224279 0.0490696058 -0.0167966336 0.00693739206 -0.0533589348 0.0842165872 -0.088965714 0.0689998642 -0.0635914057 -0.0677573085 -0.0567154214 -0.0744043142 -0.0115656257 -0.0432987623 -0.00925265253 -0.0260601565 -0.0461402908 -0.0214918181 0.0240112469 -0.0516627394 0.0051119104 -0.0369685255 0.0484966263 -0.0404510237 -0.0169060901 0.0375176296 -0.0323688239 0.0614008531 -0.0838881657 -0.058952719 0.040926598 0.0722977147 -0.0765273571 -0.0770126879 -0.0654676259 0.0862634853 -0.0261807516 -0.0294545293 -0.0539026596 0.0386668071 -0.0443299972 0.0362276956 -0.0300110839 -0.0731399655 0.0141960979 -0.0467480682 0.04975795 0.0441627875 -0.0823004395 0.0532313213 0.00273455679 -0.0154040307 -0.0645013377 -0.0103459358 0.0770054683 0.081674926 -0.0335237794 0.083945699 -0.0328170881 -0.0303243808 -0.042275738 -0.000153720379 -0.0320023261 0.0753581449 0.0132728666 -0.0747071579 0.0459481552 -0.00139196217 -0.0750170425 0.0875263587 -0.0904916823 0.0180258527 -0.0421610624 0.0107448325 -0.0113276467 0.0242738798 -0.0213562548 -0.047633063 0.0669258311 0.0701136813 0.0775695369 -0.0651456267 -0.0673407763 0.00999194384 0.0685847476 0.0876822695 0.0551033542 0.0297518447 -0.00212680548 0.0712363049 0.0292429626 0.0283780843 0.0755715445 0.0608352944 0.0732460544 0.00869862735 0.0440844223 0.0850552544 -0.00780487061 -0.056259077 0.0737819895 -0.0164724812 0.0630679503 0.0685340539 0.0587350801 -0.0650702715 0.0512529537 0.0208937749 0.0826758072 0.0402346328 -0.039583832 -0.0756407306 0.0793865994 -0.0258242488 -0.0782126561 0.024306275 0.0595419183 0.0882685408 -0.0174245685 -0.0641430542 -0.0579939 -0.0111872852 -0.0261132047 0.0342190489 -0.0707828254 0.0337302312 -1.05425715e-05 -0.0206961185 -0.0760486275 0.0324644595 0.0319865867 -0.0521098189 0.0612610057 0.071324192 0.0803134814 -0.0498140156 0.0609834269 -0.0154599398 0.0630118325 0.00105022639 0.00777269155 0.0559867844 -0.0103886351 -0.0597243644 -0.0277842581 -0.0541020744 0.00370136648 -0.0397888385 -0.0384104997 -0.0678839982 0.0554445609 0.0799634978 -0.00161851943 0.0307200849 -0.092185542 -0.0819598511 0.0872412995 -0.0812448636 0.0194929838 0.0581407025 -0.0149110407 -0.0300719626 -0.0727470815 -0.0639039129 -0.0861226246 -0.0743465573 0.0647302642 -0.0591808148 -0.0162911192 0.0300632045 0.0570323691 -0.0913157985 0.0280914381 -0.0838953406 -0.023416087 0.0715551302 -0.0917468518 -0.0468427353 0.0351091996 -0.0859411061 0.00981585681 -0.047176633 -0.0872363523 0.0504984483 0.00339632481 0.0819631293 -0.0448589511 -0.0261945575 -0.0889278799 0.0873838738 -0.00089751929 0.0202745721 0.0254622027 -0.0594306774 -0.0829442888 -0.00678157806 0.0848809704 -0.0508788601 -0.0427030027 -0.0204877481 0.0675937459 0.00101347268 -0.00514741242 0.0120167285 -0.0379233398 -0.0694829673 0.0832808241 -0.0220901296 -0.0229408592 -0.0797535405 0.0850792006 0.0246363655 -0.087028794 -0.0303022824 0.0185195431 -0.0723313689 -0.012740612 0.0382081792 0.0193943083 -0.0707664192 -0.0484207533 -0.077760756 0.0665716305 0.0398758873 0.0256869271 -0.0769418776 -0.0912837312 0.0390322879 0.0255508572 0.00951039791 0.0600807741 0.0503119752 -0.0836843923 0.0404701307 0.0592047796 0.082049869 -0.0898595154 0.0735083595 0.0464486554 0.0795330629 -0.061398413 0.024278082 0.0786902383 -0.0282909647 -0.0848487243 -0.0869097188 0.00845248252 0.022784777 0.00723103434 0.0298697948 -0.0462092496 0.0642069057 0.00364678353 0.0783960447 -0.0309826694 0.0642996803 0.0274423957 0.0651645586 0.0317491144 -0.0210753381 -0.0381752066 0.0482216403 -0.0689433366 0.0760256127 0.0727498904 -0.0299909227 -0.0190992802 0.064822115 -0.0507656597 -0.060024213 0.0228756368 0.0863306299 0.0863408074 -0.0389682464 -0.0724917576 -0.00193910301 -0.00234521925 0.0120758489 0.0538462475 0.0141980574 -0.0833361223 0.0510185584 -0.031152457 -0.00295279175 0.089338176 -0.056794174 -0.0364220738 0.00430630147 0.054226853 -0.0522191226 -0.000434793532 0.0177847743 -0.0609627813 0.0920337364 -0.0350837708 0.0283700228 -0.0762618631 -0.0555498339 0.0888663605 0.0156803951 -0.0919469893 -0.0548769534 0.019807227 -0.00176477432 0.0257854909 0.0384675041 -0.0832223296 0.00505182147 -0.0879572183 0.0574441925 0.0160477906 -0.0352973379 -0.00812190771 0.084093459 0.0403861627 0.0213206857 0.0132018402 0.0741133168 0.0185286403 -0.0345883146 0.0771018788 0.0265937597 0.0362659022 -0.0268782005 -0.0758349523 -0.036417868 -0.0285880193 -0.0544434786 -0.0802506506 -0.0645645782 -0.0305042267 0.0663829967 0.0026941672 -0.0662594289 0.0782919303 -0.0844949707 -0.0390598737 -0.0185482055 0.0585665628 -0.0741196722 0.0300242454 -0.061827112 0.00599567592 -0.0247252211 0.0508990213 -0.0289775804 -0.0729637295 0.0655379668 -0.055748567 0.0357100591 0.0350673124 0.0517105237 -0.00603091717 -0.0691164732 -0.0476021171 -0.0866665244 0.0556022599 0.0307500809 -0.0854789317 0.00528784096 0.088755466 0.00931054354 -0.018750526 0.0766715035 -0.0846938342 0.0641865507 0.0840195045 -0.0362304263 0.0493202135 -0.0804257393 -0.058450155 -0.0282422975 0.0835643485 0.0058465749 -0.0455633514 0.0843867436 7.3119998e-05 -0.0542582609 -0.0711734891 -0.0147524774 0.0390700623 0.00283534825 -0.0162955001 -0.0198459402 0.0202526525 -0.0667256117 -0.0663484782 0.0572304651 0.0425683036 -0.0586121082 0.08466997 0.0132310465 -0.0921538472 0.0690888092 -0.0635460839 -0.0421016105 -0.0683636069 -0.0162331834 0.0384740457 -0.0128743872 0.0555839017 0.0182795227 0.0526431128 -0.0413812511 0.0529125854 0.0592562929 -0.0774714947 -0.0810972378 0.0323332772 0.0868143961 -0.0373633951 0.087115474 0.0275164396 0.00465279073 -0.0147390515 0.0591016635 -0.0921435878 -0.0458522178 0.00923733413 -0.0347593129 0.0613284037 -0.00870102644 0.0819844827 -0.0253443792 -0.075891912 0.00533580035 -0.077139996 -0.0732539818 0.0118958056 -0.0254963785 0.0176122338 0.0249383077 0.00332307816 -0.0572368503 0.0776580945 -0.0597545393 0.0682142898 -0.073885791 -0.0844376385 0.0764066502 0.08556851 0.065501608 -0.0833386481 -0.00640179217 0.0120778754 -0.00531053543 -0.0762721896 -0.0529090613 0.00219383091 0.0168101937 -0.00911643356 -0.0201665014 -0.0397323593 0.0888018236 0.0452300981 0.0764579549 -0.0740881562 0.0409845635 0.0241508633 0.0116493925 0.0102787837 0.0903820023 -0.0717465952 -0.0751864165 0.0253528059 0.091541402 0.0507384166 -0.0738063306 -0.0205284879 0.00954145193 0.0396909192 0.0634369627 0.0613634363 0.0441244915 0.02019912 0.0493452772 0.0517897233 -0.012637049 -0.0225079134 -0.0312117971 -0.0277399942 0.0728718117 0.0662881657 -0.0815967172 -0.00677770376 -0.0429957658 0.0822987631 -0.0583233759 0.0291144624 0.0252107084 -0.00621452183 -0.0666774735 -0.0301410109 -0.0783797577 -0.0910346806 0.0386561975 -0.00304224342 0.0258401856 0.0327073261 0.0180926099 -0.0808010846 -0.0274647102 0.0487601086 0.00909941643 0.0485103503 0.0158415735 -0.0127512366 -0.0895553753 -0.0723166913 -0.0304790251 -0.0480748788 0.0806000009 -0.00341197848 -0.0545371771 -0.0769439936 0.00692663342 -0.0546017326 0.0227416158 0.0557182208 0.0388668254 -0.0304369852 0.0781957433 -0.00697854906 -0.0313056931 0.0552442893 -0.00250058621 -0.0814860314 -0.053853333 -0.0824247971 0.0792768821 -0.0529062673 0.0306034535 -0.0891591012 0.0121608973 -0.0910372138 0.0855026618 0.0289474726 0.0415368155 0.00312597305 -0.017582491 -0.0889815241 0.0530262664 -0.0139006302 0.0332462713 0.0343904868 0.050526984 -0.0132277012 -0.0857764855 0.0693909451 0.0807679221 -0.00483305752 -0.0299542062 0.0387861803 -0.0653045923 -0.014559336 -0.0061307773 0.0553095266 0.0272115022 0.00729845464 0.0717133507 -0.0685478747 -0.0259965062 0.0539983138 0.0292400569 0.0312149003 -0.00320551544 0.07296177 0.0873499438 -0.0874033496 -0.0810325071 -0.0152088404 -0.0812397972 0.0682248101 0.0487450138 -0.00274329633 -0.0296551511 -0.0301216617 -0.0214525312 -0.0106864348 0.00203081965 -0.0323785506 -0.0285963342 -0.0237392411 0.00485365838 0.0623769984 0.0100664869 0.00769604743 -0.0112763643 0.0801520422 -0.0528456047 -0.0547875464 0.0799818411 0.0335296914 -0.0868130699 0.0364448056 -0.0720629096 0.0215899646 0.0088622123 -0.0472948737 -0.0151935443 -0.0106317624 0.0296723619 -0.013099581 -0.0604940243 -0.0239926726 -0.016570583 -0.0625720769 -0.0588988811 -0.0181843266 -0.0875176713 -0.0714168996 -0.0918065906 -0.0318924263 -0.050200738 -0.0739536732 0.0608650073 -0.0402812585 -0.0568506531 0.0342074856 -0.0166877657 0.0399013534 0.0198729932 0.0766968206 0.0186665952 0.0141327083 -0.0404403508 -0.0151604414 0.0695246086 0.077662237 0.0147281066 -0.0757779032 0.0408001915 -0.0675744638 -0.0170504153 0.0265040025 -0.0424393415 0.0262317285 -0.0739666149 0.0522059575 0.0838066116 0.0820873752 0.0307841599 0.0607431605 0.0693586543 -0.0642143041 -0.0160714313 -0.0660738349 0.0753344372 0.0837242976 -0.0166614652 -0.0865634084 0.00140757114 -0.0099934563 -0.0287105069 -0.0812114701 0.0656791404 -0.050078515 -0.0417708606 -0.0627399981 0.00849701464 0.0264943838 0.000318862498 0.0074930042 -0.0238582492 0.0532168075 -0.0736535639 0.0649031922 0.0392011181 -0.0918096676 -0.0805916339 -0.0328840651 0.0883730873 -0.049485907 0.0701475963 0.0442691818 0.0358554348 -0.0086915195 -0.0324573703 0.040617384 0.0795918033 -0.0775598884 0.0553228334 0.0516250357 -0.00685483217 -0.0586263053 -0.0423498899 -0.086745128 -0.0763764307 -0.0586469285 -0.00289329886 -0.0844164416 0.0598217174 0.00522786379 -0.0378013141 -0.0209869221 -0.00887204707 0.0789708868 -0.0154498965 -0.0516503267 0.0571755543 -0.0326109827 -0.0829255804 -0.0168965161 0.0259894803 0.0246736333 0.0671322122 0.0170490071 0.057254605 0.0604385212 0.0732122287 -0.0613006651 0.0247278214 0.083407633 -0.023395963 0.052086316 0.00684915483 0.00214055926 -0.0640400201 0.0846238658 0.0907079354 0.0473105684 -0.0735257417 -0.0250376165 -0.023087047 0.0913004056 0.0874017254 -0.0664570332 -0.0685294122 0.0617766604 -0.0200147405 0.0661080107 0.0570872054 -0.0489360616 0.0402785316 0.0100969076 -0.0434599891 0.0867105201 -0.00351775438 -0.058542069 0.0207751989 0.092047818 -0.0634049103 0.0230749846 0.0130842552 -0.0709020272 0.0798539147 0.0291468874 0.0882758871 0.00151834637 -0.0127333701 -0.0488746762 0.0070200637 -0.0824987516 -0.0638619363 -0.0459523201 0.0885194317 -0.0868684053 0.0748599246 0.0137652382 -0.0773466304 -0.0317701139 -0.0578751974 -0.0209240839 -0.00380732864 0.0119973347 -0.0654441565 -0.0111052096 -0.00955494493 0.0848825797 0.0673363581 -0.013072066 -0.011445269 0.014040105 -0.0806324854 0.0752138123 0.0530688986 -0.0163948536 0.0625414625 -0.0658326894 -0.00172733516 -0.0356990956 -0.0156480819 -0.00222543627 -0.00896768272 0.0079452768 -0.0485539176 0.0723305717 -0.0124251992 0.0192330852 -0.0792659 -0.0824616477 0.0408886746 -0.0701479092 -0.0748233274 0.0498356745 0.0105683729 -0.0772567838 -0.00354540348 0.0483681485 0.0643505976 0.065980427 0.044338204 -0.0874050856 0.0371045694 0.0922323987 0.052704908 0.0724015608 -0.0406412594 -0.0210862309 0.0526651219 -0.000253342092 -0.0269410163 0.00830169022 0.018185012 -0.0411647372 0.0528538153 -0.0258150697 0.0760778114 -0.0233656392 -0.000284329057 0.0594978705 -0.04347381 -0.0693656355 0.046537213 -0.0498346612 0.0197732374 -0.0831714794 0.0865939781 -0.0915199891 0.00281886011 0.050560765 -0.0572896302 0.0581088588 0.0059870705 0.00865920633 -0.0758507326 0.0165335611 0.00257969648 0.0498933122 -0.0243442431 0.000940330327 -0.0547940396 -0.0700395927 -0.0369077548 0.0629869923 -0.0874480754 -0.0485052057 0.0889864489 0.057564877 0.0645049438 -0.0062757805 0.0428213999 -0.0482898578 -0.0144333914 -0.00942948461 0.0546844229 0.0691052303 0.0157678425 -0.0381934308 0.00861291587 0.0116431192 -0.0134685859 0.0271565691 -0.0897307768 0.0812899396 -0.0139448047 0.0376943275 -0.0396490954 -0.0294502303 -0.0340521187 0.0793530867 -0.0769352764 0.00834747404 -0.0542298667 -0.037151698 0.0123202056 0.0709451661 0.0210547149 -0.0796841681 -0.0525233522 0.0391362086 0.0827355459 -0.0539581925 -0.0489262901 0.0728059635 -0.0510739163 0.0786475763 -0.0402130894 -0.0310902782 -0.0798990503 0.0140188634 -0.0714284554 -0.055641178 -0.0527567714 -0.0868500471 0.0606861487 -0.0754058361 -0.0139327645 -0.0623195954 0.0281434953 -0.0680235177 -0.0324140526 -0.0546650141 -0.0667048544 0.0619678423 -0.0446691327 0.0482472256 0.00115420669 -0.0686030388 0.025551714 0.0536076501 0.00693979114 -0.0622621924 0.0693226978 0.0830469057 -0.0258866698 -0.0583581291 -0.0297451317 -0.0126795545 -0.0690475851 -0.0662719086 0.0547733679 -0.0339432769 -0.0868855491 0.0298808664 -0.031997133 -0.0429663137 0.0399041995 0.00378439575 -0.00589413941 -0.0680453554 0.0896628723 -0.0402632765 0.0505365357 0.0382858142 -0.084454827 -0.0146302953 0.0073748529 0.0496684089 -0.0546052791 0.0231387094 0.0253067166 0.0255862921 -0.0205336139 0.0709721819 -0.0374893621 0.00721437484 -0.00983449817 0.0300673842 -0.0168160424 -0.0817563161 0.000639140606 -0.0323851109 0.0170100927 -0.0102737173 0.0382819995 0.0860009119 -0.0510235578 0.000201508403 -0.0888363868 -0.0402166992 0.0645157769 0.0614080504 0.0416341797 0.087725915 -0.0275240317 0.0205484703 -0.0157537311 0.0433629379 -0.0301621407 -0.0683347285 -0.0903255716 0.0336392596 0.0828809366 0.0510896072 0.0308662578 -0.0420867316 -0.083645083 -0.0231758654 -0.0211555883 -0.0540589988 0.0117004588 0.0473182276 -0.0657239109 -0.0864488408 0.0435472205 0.0866043195 -0.0688439831 0.0630777404 -0.090926826 0.0800372139 0.0844548866 0.0227816552 -0.0809352174 -0.0150607526 -0.0424475074 -0.0181926936 0.0185011923 -0.0598608069 0.090896301 -0.0527795292 0.0748365149 -0.00283237547 -0.0740397349 -0.0894330889 -0.0267568976 -0.00588300079 0.0472074077 -0.0299328119 -0.090032652 -0.0348386168 -0.00488815457 -0.0459058806 0.0308072865 -0.00201642513 -0.0716366321 0.0597325489 0.0166226849 0.00872001797 -0.0667213351 -0.0702848136 -0.0767590851 0.02015616 0.0123525411 -0.0370751694 -0.0765943974 0.0853113905 0.0725355223 0.0917014405 0.0547896996 0.026275754 -0.00759761781 0.0716785118 -0.0295808464 -0.0464710854 -0.0670204163 -0.0476747528 0.0559256598 -0.00553398579 0.066435881 -0.0378464162 -0.0519301482 -0.0710671544 0.0303667262 -0.0128662214 0.0388248935 0.067024596 -0.0381808206 -0.0721179098 0.00508178025 -0.0480087399 0.0771351978 -0.00209458172 0.00897668302 -0.0245566219 -0.0323919989 0.0788088962 -0.0821133256 0.0761623159 -0.061514385 0.0505398139 -0.075328581 0.034595497 0.0529754385 0.0901681706 -0.0290658176 0.0117824897 0.0375432596 0.0383972302 0.0247202739 -0.0217671022 0.0735843554 -0.0364323072 0.0550844446 0.041538693 0.028104797 0.0591978654 0.0383558646 0.042456381 -0.0797433481 -0.0260093361 -0.081896022 0.0859337673 0.0026203692 0.0294354632 -0.0173782185 0.0150327384 0.0893724486 0.0315565243 -0.0256655514 -0.0823445693 -0.0898224786 0.0832352415 0.0271766856 -0.0821707547 -0.0909153596 -0.0484880172 -0.0615605637 0.0512277707 0.0803922787 0.0743639842 0.0258904323 -0.0623989664 0.0592573658 -0.0875848904 0.0493543223 -0.0350981876 -0.0301307552 -0.0369122699 -0.0664750859 0.0505342707 -0.0686699897 0.0849059299 0.0573934093 -0.0836392939 -0.0908509567 0.0712342337 -0.0627486482 -0.0517511368 -0.0615939125 -0.0416190326 -0.0685536861 0.0250309035 0.0489015505 -0.0240677893 -0.0246266127 0.0251517668 0.025459975 -0.0750555843 -0.0468889102 0.0127392411 0.0683669522 0.0322681442 -0.0177676007 0.0735102668 0.0839866772 -0.0643422008 0.0804853663 -0.044096265 0.0877747312 -0.0788207352 -0.0636570156 -0.0323222056 0.0559602454 0.0443417504 0.0440516695 -0.0229334384 -0.0449424163 0.0792572722 0.0471593514 -0.064587906 0.0741322413 -0.090724729 -0.08217749 0.0363497213 -0.0877760947 -0.0144101456 0.0661456063 0.0521464869 0.0842486992 0.0824513808 -0.033690311 -0.0675740018 -0.0437510535 0.0455317274 0.0102816895 0.079795517 -0.0693932325 0.0630733445 0.0107064024 0.0513316616 -0.0819840133 -0.0378143229 0.073498778 0.0519453958 0.0661531761 0.0317714587 -0.0182669535 0.0231873542 -0.0224244669 0.0675252303 -0.0143191367 -0.0237639397 -0.0576179177 0.0114686638 -0.0328749977 0.0592671409 0.00969514996 0.0878206417 -0.0111991689 0.0578990355 0.0812237784 -0.0392329656 -0.0790068582 0.0275155157 0.0801262632 -0.0193112418 0.039239563 0.0298855975 -0.0211706012 0.0297538266 -0.0307203494 0.0170857608 0.091673471 0.0305950418 0.0238272399 0.065867357 0.0153212249 -0.0551517755 -0.0731350183 0.0790956691 -0.00538986176 0.0790056661 -0.0568588413 -0.0905748382 -0.072094515 0.0706980303 0.0484968498 -0.0666593611 0.0329421982 0.0817936733 -0.00840791315 0.0482424721 -0.0404293425 -0.080552347 -0.0623067394 -0.0881845206 -0.00943753868 -0.0628463924 0.0630524978 0.0521922931 0.0214880332 0.00674095005 -0.0291881561 -0.0270176381 -0.0617297143 -0.00473863631 -0.0028104037 0.0193634257 -0.0470915399 0.0361044183 -0.0227920189 0.082996957 0.0790148452 0.0624868795 0.0571288392 -0.00412771106 -0.00294902921 0.0723000839 0.0163383931 -0.000536262989 -0.0715661719 -0.0806629509 0.0665519908 0.0741353706 -0.0258428901 -0.0373797044 0.00753992796 0.0511558428 -0.0509897918 -0.0606812015 -0.0361828841 -0.0896747634 -0.0148999691 -0.0325326025 0.0609547421 0.0637006387 0.0753105506 -0.0405880623 -0.0190378726 -0.0049547106 -0.0605228581 -0.0140138939 -0.0480468385 -0.0548570342 -0.0815733224 -0.0259613097 -0.0367729403 -0.0878935233 -0.0751441121 0.0531630889 -0.0164832473 -0.0553977862 -0.0768152326 0.0876744911 -0.0572273619 0.00687160343 0.00223623961 -0.0824541822 0.0240177661 -0.0897653997 0.0588010624 0.0770892426 -0.00579953939 0.0603023097 -0.0865564719 0.0370916799 -0.0472301617 0.0841438845 -0.0908340514 0.0131082088 -0.0659409314 -0.0891762003 0.0916777775 0.0104299486 -0.0313599519 -0.0791813806 0.0282423645 0.0781118646 0.0470440164 -0.0878647566 -0.0375987515 -0.0465945452 0.0214538947 0.0560839996 0.0173188075 0.0742506608 -0.00528207421 -0.0719367191 -0.0890350714 0.0882650092 -0.0205236897 0.0188413635 -0.0760684162 0.0688085034 0.0100888982 0.0164987892 0.0264747664 -0.0406685099 -0.0530162081 -0.00759775192 0.02789592 0.0507836416 0.0477649793 -0.044206012 0.00649689883 -0.0213555321 0.00751974434 -0.0652541667 -0.0291092694 0.040741168 0.0785166696 -0.0502763018 -0.0763669237 0.055882372 -0.0243443102 0.0136396512 0.0413023606 -0.0812055469 -0.00528495759 0.0186164826 0.0124211684 -0.0188258886 -0.00268901885 0.0397362188 -0.0110576898 0.0229196846 0.0809387192 -0.00306715816 -0.0882486403 0.0583296195 -0.00378188491 -0.0574555025 -0.0855563357 -0.0727749243 -0.0149437711 0.014801383 -0.0200394541 -0.078148298 0.0321642384 0.0405039117 -0.0278422162 -0.0394572504 -0.075717479 0.0840780661 -0.0687438995 0.0258322209 0.0271107852 -0.065036945 0.0220029429 0.0262195393 0.0217821151 -0.0173817798 0.00544121116 0.0697083399 -0.0274510235 -0.0619362369 0.0342035517 0.0152411982 0.0335366353 -0.00649616867 0.0512047186 0.0549780205 0.079468973 0.00710178912 -0.0763379782 -0.038800437 0.00844416767 0.0686374977 -0.0536482856 0.0340840146 -0.0607627966 0.0688234493 -0.0517290384 0.0761088952 -0.0143404603 -0.0187440515 -0.0166342407 -0.0160437897 -0.0731619149 -0.0109938607 -0.0114999637 -0.0483614579 0.0343541726 0.0114076957 0.0890423432 0.0907590911 -0.0421851836 -0.0533444509 -0.0609655343 -0.0588227697 -0.0760350078 0.0481049195 -0.0331928506 0.0877650902 0.0757470205 0.051628761 0.0543577895 -0.0315776542 0.0374466553 0.0413528755 -0.0211310908 0.0642528608 0.0295138657 -0.0886185244 0.0549331084 0.0867627487 -0.00192921609 0.058619 -0.062281847 0.0752172247 0.0817246065 -0.0724946856 -0.0594483502 0.0735229775 -0.0809411407 -0.0158449411 0.0189049244 -0.0184790045 -0.072648935 0.0544324145 -0.0192667171 0.070961751 -0.00898604095 -0.033333078 -0.0763821751 -0.00971291214 0.0863216147 0.0653306767 0.0729993358 -0.0442341194 0.0871072337 0.0888366774 0.0841957852 0.0683539435 -0.00860708207 0.0834532455 -0.0547222197 0.0439927056 0.0600393489 -0.0655407384 -0.00539234281 0.0434363708 -0.0593142845 0.0911182389 0.0609474257 0.0922561064 -0.0275028348 0.0073935166 0.0676986501 0.0559811965 -0.0449533984 -0.0655946657 0.0186253488 0.020685181 0.0096783787 -0.0423333608 -0.0652861893 0.0745795444 0.0818528607 -0.0763654485 0.0518678799 -0.0524377748 0.0461253747 -0.0733442232 0.0795856193 0.0439116582 -0.054325413 0.0238633379 0.0402999446 0.0254811049 -0.0376475714 0.0408055261 -0.000193737447 -0.00187604129 -0.00883857161 0.0268096775 0.0211244002 0.0709372237 0.0112786293 0.0907942429 -0.00715973973 -0.0655176342 -0.0410992764 -0.0200694352 0.0207945704 -0.0482551455 -0.0326898433 -0.0607462227 0.0870908275 0.0594866052 0.00425536931 -0.0327166989 -0.0852494016 0.0186674371 0.0105618164 -0.0033133477 -0.0197075605 -0.0727450773 0.0529608503 0.0537948981 0.0639619008 0.0900367871 0.0696313456 0.0374567881 0.08671581 0.0124559477 0.0432189927 -0.0440369248 -0.0215209201 -0.0647214055 -0.0019556284 0.0299343541 0.0393910185 0.0765529498 -0.0319103897 0.0815263316 0.045618929 0.0778202936 0.0070643723 -0.0807444081 -0.0764105916 0.0877345875 0.0884657279 0.03666199 -0.0445651561 0.0170439184 -0.0802951977 -0.0913975239 -0.0682138503 0.0215284899 0.071967341 0.0494608507 -0.0827924833 -0.0266421139 -0.0277354196 -0.0339946039 -0.0518530011 0.0732030049 -0.0680544898 -0.0422940925 0.0731801167 0.00250373781 0.0388951227 0.0787177011 0.0799192414 0.0727116391 0.00895665586 -0.014792338 0.00569102913 0.0456867889 -0.0181876272 -0.0886770487 0.0145560578 0.021959208 -0.080966033 -0.0844599307 0.012822777 -0.0532187484 -0.0597083382 0.0469034985 0.0256446898 -0.0674469322 0.0409001485 -0.0470401235 -0.06406793 -0.0418904871 0.0223304406 -0.053380087 0.0694319084 0.0421716496 -0.0203215182 0.0774322525 0.0406365916 -0.0394590124 -0.0502938889 0.0913271978 -0.0296281874 -0.0309976377 -0.0480924882 0.0206402093 -0.0742675215 0.048306413 -0.0571060404 0.025023289 -0.0501149856 0.00637141615 0.0767676458 -0.0709764212 -0.0868016481 -0.0398514383 -0.0251863673 0.0701352879 -0.0702825934 -0.0436872467 -0.0090598613 0.0401748195 0.00234151632 -0.0723527372 -0.0205015466 -0.0895955935 -0.0593139566 -0.0347452946 0.0776879415 0.0675076619 -0.0792163089 -0.00527402014 -0.0128570423 0.0493168607 0.0406698361 0.0148607045 0.0738467649 -0.0795218125 -0.0236717984 0.0124566108 -0.026437901 -0.080116868 0.0219662562 -0.0067320168 0.087466754 -0.047356084 0.0756076947 0.0451728627 -0.026051268 0.0349728391 0.0842390582 -0.0413579419 0.0245354697 -0.00622170419 0.075777851 -0.0689643174 -0.0504151657 0.0327529535 0.0355541781 0.0593219474 0.0920347199 0.000485531986 -0.0190010443 -0.00320087373 -0.0208655745 -0.0100592077 0.0686859563 -0.0856480151 -0.0877020061 0.0345908925 -0.0851674378 0.0240620896 -0.0550971888 0.0138438866 0.0468661711 -0.0720600933 0.0438968912 0.00607645512 0.027557224 0.0112745762 0.0323150083 0.0660790578 0.0659450069 -0.0155721456 -0.00660089403 0.0125891343 0.051802285 -0.0367211513 0.0633985326 -0.0301220827 0.00285475701 -0.0861729831 -0.0363197885 -0.0453456454 0.0422134921 0.0151260793 0.0646730885 -0.048492901 -0.00039678067 0.0869145319 -0.0481125824 -0.0278397053 -0.0421542376 -0.0125346109 0.0855843797 0.0191353112 0.056347914 0.0746703818 0.0623588637 -0.0592293032 0.0725391284 0.0312789083 -0.0261414871 0.0457767174 -0.0918968767 0.00890048593 -0.0444327183 0.0614427403 0.0395893976 0.0262412131 -0.0692814887 0.00170061737 0.0216213539 0.0587836131 -0.0906067118 0.056106545 -0.0922337025 0.0669550523 -0.0477854423 -0.0871606171 0.0586632863 0.0643250421 -0.00564434379 0.0298598707 0.0289786384 -0.0381360725 0.0867629126 -0.0861129165 -0.0521075726 -0.0768239051 -0.0565985665 -0.0584369935 0.0588498637 -0.0789515674 -0.0829858705 0.00700252503 0.083974801 0.0158176273 -0.0576359443 -0.0447853915 0.0344919339 -0.00657952577 -0.0766844228 -0.0088987872 -0.00701740384 0.0234437957 0.0128640234 -0.069636032 -0.0895739794 0.0040865764 -0.0137562156 -0.00311012566 0.038995333 -0.0667265132 -0.0542918257 -0.067302838 -0.0387041643 0.013767615 0.0121549964 0.0443773642 0.0228787884 0.0231496021 -0.084435679 0.0718980655 0.053412281 -0.0592199266 -0.0128740817 -0.0402925275 -0.0893379375 -0.00294914097 -0.0354654081 0.0148108676 -0.00861521065 0.0512139276 -0.0835372284 0.0766712204 0.0766992792 0.0147085413 -0.0296723172 -0.0872207731 -0.0316919573 -0.0717765093 0.0658919886 -0.0263368487 -0.0479779467 -0.069783546 0.0569402352 -0.0386385955 -0.0477926843 -0.0384134911 0.030171141 -0.0232629329 0.0712098703 -0.0314989686 -0.0759460181 -0.0871396437 -0.0233582854 0.00555890054 0.0267551392 0.0478570238 -0.0259368792 0.0188813731 0.0294923633 -0.0481519178 0.0915376022 0.0396573469 0.0591120347 -0.0918184295 -0.00540009141 0.0660114959 0.000213526189 0.043351911 0.0804236308 0.00726048648 -0.062650986 0.0900095478 -0.02117531 0.0271792784 0.0882215425 0.0297556967 -0.017260924 -0.00528671592 -0.0139464736 -0.00558176637 -0.0588510111 0.0698522255 -0.00794384629 -0.039126236 0.0343199447 0.0684839413 0.0261496305 0.0888158306 0.00822040439 0.0427284464 -0.00558777899 -0.0100810379 -0.060919445 0.0802038386 -0.0154241025 -0.0365062617 -0.0511620902 -0.00679612905 -0.0825201049 -0.0604057424 -0.0145578831 0.0160022527 -0.055683285 0.0484688953 0.061778672 0.069451414 0.0574791357 -0.0478083119 -0.0178674012 -0.0839807615 0.053484194 0.00630005449 -0.0474522933 0.0710360929 -0.0533325225 -0.0195655301 0.0691993013 0.081502907 -0.0288521647 0.0870504305 -0.0218028501 -0.0638355911 0.0530589297 0.0529185906 -0.0492470041 -0.0672153234 -0.0261485726 0.0308584422 0.0425883904 0.0659096316 0.00517123193 0.0535879806 0.085244976 -0.0496256277 -0.0490443744 -0.0610379912 0.0709828809 0.0340853706 -0.0232521743 0.0915906206 0.0819696262 0.0598177537 -0.0300667919 0.0278358981 -0.0344408229 -0.0728983134 0.0888710693 -0.0735421404 0.0513705239 0.0145387575 0.0440159217 -0.0835235193 -0.0492540896 0.0640994087 -0.0591455773 0.00142660737 -0.0342413634 0.038051568 0.0645929649 -0.00973316282 0.0895330384 0.053605698 -0.0323955864 -0.0484281257 0.0212197006 -0.035777539 0.0607822463 0.087834619 -0.0881040543 -0.00327438861 0.0696829185 -0.000417806208 -0.0757081509 0.0732356086 0.0899380073 0.0306877941 -0.0162154883 -0.0138543174 0.0853449926 -0.0911261737 0.0514159873 0.0134735554 -0.0335583352 -0.0316093937 -0.0773187205 0.0180319697 -0.0101656467 0.0213306174 0.0828609839 0.0478899106 -0.0336216576 -0.0807209685 -0.0181603581 -0.0675318092 0.0113531351 -0.0458857417 0.0626279041 -0.0405671969 -0.0274157599 0.0889216587 -0.0700492561 0.0684147105 0.00628682971 0.045368664 0.0760865733 0.0475026444 0.0370505229 -0.0400490686 0.0840044692 0.00860391557 0.0690785274 -0.0568623208 -0.0817115083 -0.0912824944 -0.00135161728 0.0117015615 0.00454987586 -0.0819713399 0.0188341439 -0.0668604001 -0.0337288044 0.0324336439 0.0908505842 -0.0499951616 0.0690210983 -0.0726427734 0.0359275863 0.0221271291 0.0191135406 -0.00241606683 -0.087746866 -0.0315404795 -0.0504944474 -0.0881156325 0.000884510577 0.0666173324 0.0741799399 0.0773806795 -0.0740236193 0.0634391829 0.0528978184 -0.0701253042 0.010854423 0.0114505738 -0.0720314309 0.0430599675 0.00204198062 0.0388173237 0.0849952325 0.0875387117 0.0795530751 0.0901873931 -0.0304481015 -0.0865326151 -0.0291141123 -0.0589497276 0.0634847209 0.045744963 -0.0258187503 0.0838678107 -0.0148978531 0.0629482195 -0.0571099147 -0.0661029518 0.0653770342 -0.0514473468 -0.0558205433 -0.0729240477 -0.0415330827 -0.0857642293 -0.0401371345 -0.0870638788 0.0404289886 0.0349800363 -0.024619922 0.0540670529 0.0124500915 0.0628515258 -0.0302460007 0.0348302349 -0.0871771276 0.0834820345 0.0580072775 -0.0852482617 -0.043014098 -0.067714408 -0.0526183248 -0.0229469538 0.0222178325 -0.011425592 0.0298725516 0.0529301986 0.0716935918 0.0773671642 0.00512313843 -0.0679623559 0.0890322104 -0.0369511172 -0.0748148561 -0.088486284 -0.0164563507 0.081769444 -0.0577515848 -0.0295424387 0.0340463296 -0.0287770852 -0.0554548167 -0.0724030584 -0.0735288709 0.0378369465 0.0336278602 -0.0192011222 -0.0235088393 -0.0412564985 0.0297042578 0.0885484442 0.065432556 0.00699263811 -0.0864268988 -0.0186276361 -0.02653189 0.026046291 0.0900830999 -0.0600441769 -0.0596914999 0.0578512773 -0.0721158385 -0.0150599405 -0.0711420774 0.0214371234 0.017212145 0.0319573134 -0.0156352073 0.0174509138 -0.0374814384 0.0156737491 0.021260865 0.0744045153 0.0496527627 0.079689689 0.00627054274 -0.0728431344 -0.0799127445 -0.0839539096 0.0115014613 -0.0825041682 0.0291724801 0.0852237567 -0.0547972731 -0.0112083033 0.00692557544 -0.0303510129 0.0382613614 0.0645067766 0.0723132119 0.0667835847 0.0441422686 0.0758674219 0.0791832879 0.0714442506 0.0884214267 0.0741650388 0.0600566342 -0.0442016087 -0.0581516922 0.00146138668 0.063529186 0.0564144775 0.0368626341 0.0216209069 0.0170311108 -0.0122056901 0.0552668646 0.0509669408 -0.0495386422 0.0141428933 -0.0256182328 -0.0545557961 -0.029826086 -0.0535856858 0.0575313643 -0.00395074487 -0.0563225783 -0.0584801771 -0.080108881 0.0483685657 0.0136783198 -0.0181115419 -0.0431161635 0.0798594728 -0.000960230827 0.0606857315 -0.07706514 0.026844278 -0.026067026 -0.00424251705 -0.00780832767 -0.0730229393 -0.02052439 0.0297189355 -0.0796656981 0.0126703084 0.0862852558 -0.0460083596 -0.0580539443 0.066693671 -0.0623963922 -0.00166057795 -0.0414618105 -0.0507811792 0.0593613461 -0.0640760958 -0.0172052979 0.0334103629 0.0764113888 0.0191116706 0.0239173919 0.0164068267 0.0432631746 0.0228297487 0.0808713064 -0.000512115657 -0.00167202204 0.0246125311 -0.00773483515 0.0464058444 0.00903199613 -0.07832665 -0.0268716663 -0.00617899746 0.0489444211 0.0898800567 -0.0343941823 -0.0517901815 -0.082665965 0.0256651789 -0.0161076859 -0.053367231 0.0306400061 -0.0229529366 -0.0899426937 0.00711992383 0.0407219902 0.0247954577 -0.0653449595 -0.0784833431 0.0424678847 -0.0331739001 0.0292320028 -0.0500884876 0.0478970781 -0.0288820341 -0.0350097269 -0.00147822499 0.0452586338 0.0407677367 0.0133183375 -0.0192226917 0.0715089664 0.066500999 0.0310507268 -0.0399449803 -0.0382353626 -0.0791924074 -0.0285103843 0.0414446667 0.0226913467 0.00547043979 -0.00468090177 0.0355664119 -0.0196551755 -0.050425157 0.0400513634 0.0266277865 0.00860144943 0.0747088119 0.0839251205 -0.00846846402 0.0563343987 -0.0726706386 0.025282748 0.0285620913 0.0608512536 0.0733130798 0.0642838553 0.0797017887 -0.0503715836 -0.0576869845 -0.0401395969 0.0599412099 0.0427825227 0.00622408092 -0.0593511537 0.00543724746 -0.0879811645 0.0616723374 -0.0262453556 -0.0389623456 -0.0429272242 -0.0280167162 -0.0191323832 -0.00349339098 0.0176563859 -0.0311871246 -0.0404641852 0.00145308673 0.0465475991 -0.0867619663 -0.0404045619 0.058880724 -0.0315748155 0.0637667999 -0.0170889348 0.06446632 -0.0218763873 0.0210400745 0.0184737891 -0.0348013304 0.0835693404 -0.0445466675 0.0127878189 -0.0054281801 -0.00238510221 0.0809473172 0.0347390249 -0.0541495942 -0.0844978541 0.0516296104 -0.0372263566 -0.0894085467 0.0446257666 0.0713896975 0.0798728094 0.0020596981 -0.0336795673 0.0220547393 -0.0515772067 -0.0302182212 0.0103543177 -0.0151477158 -0.0338575877 -0.0834683627 -0.00821983069 -0.00656112283 0.0121857002 0.0920009688 0.000133931637 0.0866985694 0.0234386027 -0.0574742556 0.0101822615 0.0847176686 -0.0684926733 -0.0424046069 -0.0562904663 0.013527438 -0.0140883327 0.0730038956 -0.0207956061 0.0100153834 0.0437984839 0.0237844735 0.0641183779 0.0389675573 0.0132940859 -0.0502960235 -0.0682487786 0.0332639441 0.0547563955 0.0468540862 -0.0868170112 -0.0604049489 0.00304681808 0.00509493798 0.0536283627 0.0880300328 0.0720465556 -0.0315668918 -0.0345143154 0.0904535428 -0.037659809 0.0811640844 0.0135706887 -0.0809598491 0.0241042674 -0.00528117269 0.0293353572 0.0222298056 0.0134375244 -0.063236028 0.0878223553 0.0207666159 0.0178353712 -0.00429563224 0.036479257 0.0626302734 0.019924365 -0.0262806118 -0.0507061668 0.0576839969 -0.0790397227 -0.0086652562 -0.0310787223 0.0291603357 0.0663720146 0.0173748881 0.0289494097 -0.00477065891 0.0684557036 -0.0169406012 0.0223243013 0.0340508893 0.0308866575 -0.0128672346 0.0221945718 0.0233650878 -0.0679365396 0.0667227879 0.0387202576 -0.0157189742 -0.0369373374 -0.0458436124 0.0068641454 0.00720153749 -0.0413034447 0.0270717815 0.0318703949 0.0623118952 0.00797307491 0.0900586322 0.0910668299 -0.0848735273 -0.00725993514 0.00212465227 -0.0892110467 -0.0356307514 -0.0331986398 0.0910035297 -0.0916068628 -0.0768691823 0.0355639532 -0.0394534431 -0.0697172284 -0.0192104802 0.0224184617 -0.0671859384 0.0916594192 0.0285309404 -0.0833921134 0.0254286155 -0.0183170289 -0.0336043574 -0.0606503896 -0.0210673437 -0.0478987284 0.0778744891 -0.0369631797 0.0240458474 0.0351337269 -0.0385587178 0.00428506732 -0.0534210242 0.0294136554 0.0899288729 0.0724086538 -0.0864776522 0.00625638664 -0.0517773069 -0.0888751224 -0.0705202371 -0.0827708244 0.0588122085 0.0524879321 0.00425741822 0.0781618133 -0.0641130358 0.0334481075 0.0703524277 0.0752831325 0.071544759 0.000513263047 -0.0265513659 -0.000806130469 0.0687340572 0.0466016904 -0.0663485229 -0.0851268917 0.0674504116 0.00981253386 -0.0289973915 -0.0860676393 -0.0824952349 -0.0404994041 0.00348282605 -0.0723268986 0.0658026412 -0.0613306463 0.0365742072 -0.0428545661 0.0865634456 -0.021910809 -0.0434506126 -0.0745518729 -0.0600758046 0.0447424576 0.0864306018 0.00301717222 0.0632259175 0.0189447477 -0.00329690427 0.045380123 0.0542870089 0.0646838024 -0.0033428818 -0.0552455857 -0.0454471372 -0.038500566 0.0629783943 0.0756536797 0.0675934777 -0.0725216493 0.0221546441 0.0696711764 0.0354071632 -0.0358307399 -0.0210938901 -0.0301877595 0.0597513244 0.0690726563 -0.0129256472 0.078194119 -0.0580401421 0.0519340709 0.0279391482 0.0699511394 0.0875995234 -0.0719695166 -0.0364278406 0.0913907215 -0.0737097934 -0.0813113302 -0.01139009 0.0244242549 -0.00417465717 -0.0439553782 -0.0629906729 -0.0487406962 -0.0761523396 -0.0805508718 -0.0403388366 0.0243016332 0.0287263319 -0.0258165672 0.0898568556 -0.0580778271 0.019596301 -0.0133807138 0.0275892243 -0.0671056658 0.0212966949 0.0631276593 -0.0508081168 0.0570290908 -0.0404553823 0.0149559379 -0.0865125656 0.0700998381 -0.0174093843 -0.019312121 0.0726986155 -0.0272559449 0.0674442127 0.0902874842 0.0245325863 0.00454612821 0.0319959 -0.0566930808 -0.0229374915 -0.0433745421 -0.0880816653 -0.0860738084 -0.0777979121 -0.0397029556 0.00744671375 -0.00141919404 -0.0382518694 -0.00105190277 -0.0807273537 -0.0439384505 -0.0416061543 0.0549824312 0.000733077526 0.0891513601 -0.0741666853 -0.0366500355 0.035457246 0.0826554075 -0.0220620036 -0.0585000068 -0.0166369453 0.0261777416 -0.0721254796 -0.0772719458 -0.0110499188 -0.0713379681 -0.00307677686 -0.045957122 -0.0762010962 -0.0821693689 -0.0086357668 0.0502517 -0.0805056393 -0.0217938051 0.0779001936 0.0141895562 -0.0918103084 0.0807925388 0.0678843334 0.0458130911 -0.0330172293 0.0581349358 -0.016003266 -0.0421842821 0.0599329844 -0.0617097542 -0.0403891765 0.00552047044 0.000465258956 -0.00845464319 0.0588713661 0.0497997478 0.0246144235 0.0292174742 0.0709617957 0.0470078364 0.0160572603 -0.00459455699 0.0227595344 -0.0631615669 0.0673738793 0.0419380292 0.0825865343 -0.0425227806 -0.0642719865 -0.0719911754 -0.028036654 -0.0850462466 -0.00789760053 0.00169672072 0.0217171162 0.0169899091 0.00509011745 -0.0391759351 -0.0431139395 -0.0112759471 0.0377297774 0.0917559341 -0.00066062063 -0.0431769565 0.0921924934 0.0638167486 -0.0632441267 -0.080869168 0.0322583318 0.0371851251 -0.0840883479 0.0735598579 -0.0617544577 -0.0695449561 0.0254168808 0.0802333727 0.0292554423 -0.0812513754 -0.0526037328 -0.0210491419 0.0906755403 -0.0239976421 0.0632049963 0.00146662444 -0.0452903584 -0.0355275236 0.0134429857 -0.0620198771 0.0222200155 0.0274195224 -0.0711124241 0.0812827572 -0.0268277526 -0.00546739995 0.0668841079 -0.0307668112 -0.0314353146 0.0727328435 -0.0476928204 0.0868047103 -0.0339616984 0.025152117 -0.016279541 -0.0861326829 -0.00787455589 0.0121393055 0.0833098218 -0.0249825493 0.0858938769 0.0815517381 -0.0444735922 -0.0875061154 -0.0253408775 0.0841792747 -0.054623127 0.0257159397 0.0504648611 -0.0348157249 0.0252243802 -0.0453312285 -0.0531437397 0.0857731625 0.0855913088 -0.0492263585 0.0205008164 -0.0731141493 -0.0527973808 0.0818439052 0.0392212346 0.0493294373 -0.0797170922 -0.0431763828 0.0524760708 -0.0505100526 -0.0589369163 0.0896855965 0.0372224376 -0.0297261998 -0.0865386426 -0.0355420485 0.0752775595 0.0455086306 0.0565100834 -0.034477625 0.0460503325 0.062996529 -0.0313165225 -0.0222894996 0.000115379691 -0.0473409183 0.0625521317 0.0616857186 -0.0571453311 0.0416474268 0.0659803376 0.0904283151 0.0582353547 0.0704668835 -0.0493052229 -0.0503800139 -0.0590911433 0.0884100869 0.04771965 -0.0112450868 0.0301797241 0.0840249136 0.0628856793 0.0447815433 0.0201413184 0.0393452123 -0.0225291476 0.0126084611 -0.0123401284 0.0409159139 -0.0730977729 0.00103266537 0.0458397642 0.090066202 0.0504851565 0.0532977656 0.0049457103 0.0591124073 -0.0473388731 0.0722167417 0.0215149969 -0.00809589028 -0.0262335986 0.0843194798 0.00643023103 0.0579002723 -0.000958114862 -0.0787473768 -0.0429706946 -0.00345461071 -0.0734487325 -0.0813257471 -0.0865787938 0.0113199651 -0.0654978231 0.0864070877 0.00558271259 0.0507175401 -0.0368868895 -0.082234934 0.0757055357 -0.0643789619 -0.0338723585 0.0228653178 0.0480372235 0.000225543976 0.0527464226 0.0281758904 0.00183624774 -0.0283001214 0.0171079487 -0.0149687752 0.0355022922 0.0572907552 0.0084938854 -0.00301649421 -0.0521756522 0.00563117862 0.0796911493 0.031346105 -0.0807479993 0.0908040926 -0.0572926663 -0.0558933727 -0.0156333148 0.0474167243 -0.0467925481 -0.0508929454 -0.0868526921 -0.0922350213 0.0667543337 -0.0255488753 -0.0804982483 0.0320034698 0.071934931 -0.0392735079 -0.00444772094 0.0147773251 -0.0459783599 0.0105641037 -0.0085195303 0.0420701578 -0.0503181666 0.00181309134 0.0422068164 0.0750583336 0.00638774782 0.0225071386 -0.0492026731 -0.000938504934 -0.0831194073 -0.0215948746 0.0430210158 0.0181855559 -0.00899796933 -0.0808682144 -0.0568427294 0.0713991597 -0.0417287983 0.0772203133 0.0860404 0.0365829691 -0.0142667294 0.00781950355 0.0264247209 -0.0166810527 -0.0365780629 -0.0146991014 0.0145694166 -0.0423374996 -0.0493899621 0.015066959 0.0474083349 -0.0589035265 0.0494321957 -0.0260970667 -0.0652258173 -0.00436291844 -0.0475255214 0.0296456665 0.0185264573 0.0434139892 0.0389553979 -0.0539939813 -0.0592492446 -0.0340344198 -0.00462378561 -0.0810890272 -0.0351647697 0.0501244441 -0.0809343606 -0.0092253387 -0.0392041951 0.0764059201 -0.0271599814 0.0766988769 0.0490340367 0.0678072646 0.0892296657 0.0162436664 0.0133339465 -0.00334517658 0.0395385548 0.022873722 -0.0565000474 0.0905081853 -0.0742935389 -0.0462760963 0.0197456852 -0.0858439505 -0.0527573451 -0.0346379057 -0.040654093 -0.0800689086 0.0504760221 -0.0587130263 -0.0234606341 -0.0529306121 -0.0794478804 0.030959405 -0.0458269939 -0.0303845778 0.0793771371 -0.00403942913 0.0538308546 -0.062569961 0.0319007486 0.0150010586 0.0129875019 -0.00380506366 0.0686234608 0.0145567134 -0.0656976998 -0.040525157 -0.0557713918 -0.0472549461 -0.0680396557 -0.0208754614 -0.000126712024 -0.0761280432 0.00181177258 -0.0240884125 -0.0551297441 0.0263182074 0.0582922474 -0.0911213979 0.062398307 -0.0115816891 -0.0374053456 -0.0532080978 0.0398486927 0.000625468791 0.0609112307 -0.0778358579 0.062118955 -0.0626036227 0.0920777842 -0.00509216636 -0.035024561 0.0788562372 0.088787131 0.0518116876 0.0899663195 -0.0136624724 -0.0677585602 0.00698460639 0.0343962237 0.0472360328 0.0324244872 -0.08065366 0.0288981199 -0.0448651575 0.0878184363 0.0213782191 0.0894389376 0.00686570257 0.0743896142 -0.0424994491 0.077943705 0.0886685476 -0.0535923988 0.0414564386 -0.0195527598 -0.0433004573 -0.0644785166 0.051933445 -0.0530543737 -0.0753610209 0.0555280671 -0.0333712436 -0.0505317114 -0.0551293455 0.065315403 0.0453624353 -0.0195113346 -0.0223067105 0.0812538043 -0.0602965467 -0.030920621 -0.0688016564 0.0088371858 0.0702467188 0.0262278095 -0.0336021334 -0.0125522241 0.0227281004 0.0803690925 0.0769150928 -0.0917373672 0.0679495707 -0.0454499125 -0.0317081772 -0.0811284259 0.0587095097 -0.0910081789 -0.0604518764 -0.0241157785 -0.0667699128 0.0127655938 0.0637432113 0.0922894552 0.0450668409 0.038467817 0.0233140886 -0.00427936763 0.0194537342 -0.0052337572 0.0653059706 0.0238337964 0.0852640793 -0.0681997836 0.00874453783 0.0699258223 0.0554236248 -0.0805903152 0.0371832177 0.0353335664 -0.0107443705 0.063205339 -0.0278853104 0.0857284442 -0.0742333606 0.00190166384 -0.0654488206 -0.0730385855 -0.0103892758 -0.0293717682 0.0012755543 -0.0501208417 0.0673875883 0.0710062906 -0.0446642265 0.0743953362 -0.0231105164 -0.0188207626 0.0256763622 0.0125785694 0.0197884738 -0.0673530623 -0.00486371666 0.0274059474 0.0126009956 -0.0230900198 -0.00877029449 0.0777905211 0.00514835864 0.0427339748 0.0831608102 0.0779224262 -0.0165579319 0.0895369574 -0.0194895491 -0.0428286605 0.0291012824 0.0523602292 -0.0262383521 0.0530983731 0.072433807 0.0595004782 -0.0154475197 0.0881785378 0.0282928348 -0.0560564287 0.07417465 -0.013075456 0.0228853226 -0.0745431557 0.0390798971 -0.0803651214 -0.0366419144 0.0851632282 0.0739284679 0.0742335096 0.0674189553 -0.0310345478 -0.0280441195 -0.0440086424 -0.0493724197 -0.0594761074 -0.0692215264 -0.0333519652 -0.0513449758 -0.0418400615 -0.0198176354 0.0382809713 0.0733479634 -0.00293007493 -0.0494990237 -0.0498556606 -0.0375217386 0.0161399096 -0.00145821273 0.0301151946 0.058988817 -0.0858122334 -0.0244837031 0.0161330625 -0.0189937875 0.0750296488 0.0110167488 0.0649865344 -0.0147221684 0.0238483027 0.00255697966 -0.0144078806 0.00987869501 -0.0326513946 0.00434678048 -0.00910575688 -0.0912124589 0.0865709409 0.00996046513 -0.0631568059 -0.0574353822 -0.0774805844 0.0510197058 0.0423172638 0.035120137 -0.0634342507 0.0586128756 0.0275839642 -0.0907874107 -0.0257838815 -0.0311325602 0.0714497343 -0.0800825506 -0.0236440226 -0.034998171 -0.0141347498 0.0678138062 -0.0535821207 -0.0336458273 0.05018159 -0.0428112969 -0.0320222229 -0.030539114 0.0587953702 0.0301401317 0.0590193644 -0.0724408925 0.0560826883 -0.086479038 -0.0439677462 -0.0804065913 -0.0434923209 -0.0716170594 -0.0806955025 -0.0106515288 -0.0467380062 -0.018580012 0.0253402591 0.0405559316 -0.0769522041 0.0105462745 -0.0596396662 -0.0554891974 -0.00221363455 0.020107165 0.0647808686 -0.0574677624 -0.0753615946 -0.035053879 -0.00249068439 -0.084400855 0.0616878942 -0.0593575351 -0.00931569189 -0.0600622892 -0.0197533891 -0.0103237256 0.0115642175 0.0247928798 -0.0404457636 0.0205183625 -0.0808041468 -0.00544147193 -0.0227871984 0.0338682607 -0.0353564359 -0.000974908471 -0.04568661 0.0142918825 0.00494612753 0.0838255957 -0.0518735796 -0.00668609887 0.0566395745 -0.0651713163 -0.0167979524 0.0693967566 0.0707650557 0.0084855184 0.00738638639 0.0272122547 -0.0706525147 -0.00876529515 -0.0219674855 0.0459974036 -0.00369861722 0.0799308196 0.0303246453 0.0357844755 0.059948869 -0.0874155164 0.0739649162 -0.012289241 -0.0423807688 -0.0882961601 0.0637530759 -0.0718774498 0.0888272449 -0.0187067017 -0.0801445544 -0.0122722909 7.54743814e-06 0.0737548694 0.0640584603 -0.0868951678 0.000347211957 0.0216243416 0.0682585761 -0.0697353184 -0.0271028578 -0.0350287221 -0.0382571742 0.0244046152 0.088741146 0.0555202588 -0.0662222505 0.0538328364 -0.0672546104 -0.0525109358 0.00496476889 0.047855176 -0.0710039809 0.0812410042 -0.0618650131 0.0239599198 0.0403875187 0.00181821734 0.00604442507 0.0804188773 0.00512201339 0.0386061892 0.0423757359 0.0374641344 0.00824552029 0.0536501482 0.0511397496 0.0572581366 0.0297571942 -0.035140425 -0.0648303777 0.00329752266 -0.0439758897 -0.0728800669 -0.0765507966 -0.0786728486 -0.0561809205 -0.0746353343 -0.075402908 0.00458927453 0.0288175866 0.05828356 -0.0122576132 0.0136812255 0.0700724795 0.0131522939 -0.0235075578 0.0611056015 -0.0878529996 0.0382384285 0.0541010126 0.0535724387 0.0208137184 0.00836065412 0.0485227033 0.0382833704 0.00952078402 -0.00892861187 -0.0124427602 -0.0770002306 0.0502525344 0.0224000365 -0.0346260183 -0.00269685686 -0.0520509854 -0.0391297564 -0.00653044134 -0.0505318642 -0.000391833484 -0.0667229444 0.0620194152 0.0302264318 0.0291219056 0.0758978948 0.0496435389 -0.0803359821 0.0215042979 0.0183913559 -0.0895158052 0.0921677276 -0.0186648816 -0.0119348913 -0.0030651316 -0.0346005745 0.00403520465 -0.0219625756 0.083549045 0.00878688693 0.0644620135 0.0862554088 -0.0815654024 -0.0322975069 -0.0326103196 0.0448684767 0.0504640266 -0.0866709948 -0.00393936783 -0.010562323 -0.00704469532 -0.0493459404 0.0698338673 0.0101900995 0.0705829039 -0.066360414 -0.0370077044 -0.0445634164 0.0682713315 -0.0826622248 -0.00998084992 0.0657253042 0.0697497204 -0.000362426043 0.0844845101 0.0651087835 -0.0666489676 0.0468649641 -0.021002017 0.0790424272 0.0644796416 0.0159010515 0.0640321448 0.0827908739 -0.0439102575 0.0748977736 -0.0777142718 0.0612057373 0.0302933678 0.029207103 0.0669379011 -0.024607487 0.079391025 0.0407622978 -0.0493405685 -0.0116271898 0.0745467171 -0.0686146617 0.0458327159 0.036664106 0.0114510357 0.00933167338 0.0730033889 0.086221315 -0.0141810402 0.0506535098 0.0661404803 0.00835575163 0.0907114819 0.00114885718 -0.0815216005 0.0912310407 -0.0122013316 -0.0352262221 0.0508120134 -0.0648527369 -0.0826657936 0.080604203 -0.0446643569 -0.0871823654 0.0841374174 0.0515065119 -0.0182224736 0.0391012952 -0.0861652344 0.0308241695 -0.0580015145 -0.0520684831 0.0187908262 -0.0202495009 0.0165640041 0.0111205727 -0.0447728485 0.0155702531 0.0645535067 0.0221016407 0.0135819614 -0.0797873959 -0.0893095434 -0.0142347664 -0.0743756816 0.0769857243 -0.03205337 -0.0182894915 -0.0826943591 0.00462895632 0.0841446742 0.0391124114 -0.0876864716 -0.0252831429 -0.0579014122 -0.0358768515 -0.0516886488 0.0107495859 0.0799972489 0.0634840801 -0.0748030543 -0.0493912585 -0.0547341034 -0.0208009556 0.0113235116 0.0725854859 0.0718520507 0.0264759585 0.0661447719 0.0430565998 -0.0846289024 0.0492432341 0.015917927 -0.025959678 0.0666608289 0.0789621547 -0.0899379179 -0.0670575947 -0.00658936054 0.0150215775 0.0474496707 0.0521067306 -0.0701392591 -0.0199241042 0.0795802101 0.0381856188 0.0291332603 -0.0845063701 0.0401361808 -0.0887870118 -0.00569908321 0.0250511989 -0.0346600674 0.0772902593 0.0077130869 0.0188431889 -0.0739377365 -0.00378593057 -0.0842785016 0.0586844757 0.0431956574 -0.0491987132 0.0714038685 -0.0286589339 0.0464746282 0.0848503783 -0.0171057284 -0.0741650835 0.0242269933 -0.0101564676 0.000867083669 -0.0900465399 0.0378464386 0.0577179119 -0.066068247 0.0593041852 0.0723210499 0.0490409359 -0.00160295516 0.0462332442 0.0908741131 -0.0651494861 -0.0294538438 -0.0669285655 0.0577306822 0.0121134445 -0.0520457886 0.0194815546 -0.0358232781 0.088041164 -0.0259759873 0.0515053943 0.0528816655 0.00572734326 0.0876067653 0.0898007527 0.0831668004 -0.076596953 0.0863145366 0.0640395805 -0.0210209042 -0.00396221876 0.0297729522 -0.00250032544 0.0717644021 -0.00928866118 0.0227949694 -0.00585434586 -0.074509196 0.0781747475 0.0037843734 -0.00134224445 0.0247055218 -0.0169467032 -0.0689580888 0.0487962738 0.070134677 -0.0742213428 -0.0728625059 0.0717410222 0.00949217379 -0.0448281132 0.0182425231 -0.00992551446 -0.0802623108 0.0822031572 0.0914918408 -0.0794462338 0.0842311159 0.0164964944 -0.0704975426 0.0267510638 0.00917821378 -0.0178493261 0.0731617138 0.00139152259 0.0631359592 0.0129969418 0.0714797005 0.0782173052 0.048612766 7.53849745e-05 0.0169404894 0.0622007623 0.0678007528 -0.0177096277 0.0522590652 -0.086732775 -0.0416298844 -0.0398325063 0.0910973027 -0.0199190825 -0.0528005511 -0.0355700925 -0.0313969515 -0.0354288071 0.072472848 -0.0669747889 -0.0385369509 0.028137356 -0.0570493415 -0.0275382027 -0.0443927273 -0.00511461496 -0.0827315599 -0.0725951865 0.0268457159 0.0324013308 -0.0541866161 0.0731855705 -0.0463924222 -0.0574704036 0.0151055902 -0.0872959569 0.0445124134 -0.0786191449 -0.0778768659 -0.0304116495 0.0409250483 -0.0358301252 -0.0648433864 -0.0485527925 0.0625439957 -0.0548285954 -0.0792557746 -0.0131680518 -0.0622106642 0.0432832018 0.0826400891 -0.0218012184 -0.054222405 0.0732435957 0.0275080055 -0.020500645 -0.0315381251 0.0329481587 0.0165044889 0.0178931728 -0.032134302 0.0810241774 0.00653649122 0.00787065923 0.0710881874 0.0146361738 -0.041272454 -0.0679616034 -0.06034486 -0.0862074345 -0.0628838539 0.0580850914 0.0147799924 0.0844582543 -0.00453384966 -0.0533478633 0.00908008963 -0.0303545557 -0.0247892067 -0.0214003846 -0.0438850336 0.0168652162 0.0174743757 -0.0801567063 -0.0544559807 -0.0394746624 -0.0498396121 0.0573870316 -0.0727188587 0.0662705824 0.0703213438 -0.00397907197 -0.0270381495 0.0816133544 -0.0197378919 -0.0301774144 0.00742875785 -0.0574314222 0.0696484521 0.0584739521 0.0682400391 -0.00976118445 0.0520358458 0.0464627072 -0.0153400004 0.0237426087 0.0845352039 0.00380349904 -0.0166970789 0.0553434864 0.0807123408 -0.0881597847 -0.0340447426 0.0774547532 0.0510779694 0.0777796432 -0.0117325485 0.0629518256 0.0475789383 -0.0455684587 -0.0186095461 0.0859136805 0.080227159 0.0241489634 0.0478183553 -0.0242475942 0.0526294038 0.0498786196 -0.00350723416 0.00711325556 0.0400613919 -0.0636918843 0.0395756438 0.0233555362 0.0649921224 0.000647991896 -0.0293827951 0.0883881226 0.0804045871 0.0254228264 -0.0404982604 0.0390719846 0.043797411 -0.0259296596 0.0720940903 0.0450629815 -0.0731861219 0.0540823117 0.0888478085 -0.0427576117 0.0137879327 0.011112757 -0.017516464 -0.0920028314 -0.0114977658 -0.0349248983 0.0263805836 -0.0293987915 -0.0481813438 0.0634428337 0.0422674641 -0.0576375499 0.0550406948 -0.0909689814 0.032825388 0.0549635217 -0.0318141133 0.0620292947 -0.0807639509 -0.0306058265 0.00438474864 0.00183098763 -0.0693894252 -0.0700616464 -0.0332495943 -0.0453459769 -0.0810164139 -0.0239337906 0.0281826034 -0.0670913309 -0.0793863833 -0.0394526273 -0.0349805616 -0.0644967407 0.0312219635 0.0652426258 -0.0817217156 -0.0385451578 -0.0809853598 0.0678118095 0.01941742 0.0286805928 -0.0358985998 0.0570733175 -0.00738024712 0.00681571662 -0.0901056826 0.0243076831 -0.0295994654 0.0266070738 -0.0747511536 0.078816615 -0.0274662524 -0.0369039252 0.0852012709 -0.0127626881 0.0242614374 -0.0726176128 -0.066457741 -0.0645253509 0.0426993892 -0.0116671324 -0.0248592645 -0.0424301624 0.00326114148 0.0180085078 0.0572861955 -0.0669336766 -0.0200447366 -0.0346393995 0.0623015687 -0.0851687789 0.0716782138 0.0598983839 0.0321683735 -0.0192363635 0.0361264274 0.0400393382 -0.0309536383 0.0900606886 0.0887443349 0.0905001387 0.0176502839 -0.0395576842 -0.0322122164 0.00844376534 0.0323114842 -0.045949921 -0.0618926361 0.0268103629 0.075144358 0.0283029824 0.00439082831 0.028400071 -0.0579389408 0.0851615444 0.0908402577 0.016043894 0.088385053 0.0561600551 0.00341591239 0.0210099444 0.0297931582 -0.0685089231 -0.045790147 -0.0325125493 0.00140921772 -0.00431928784 0.0252242908 0.00454956293 -0.00951305777 -0.0851150304 -0.022265397 -0.0550131314 0.00778567791 -0.0790275708 -0.066573754 0.0383771136 0.0184184536 -0.0665418431 0.0795053914 -0.060397841 0.00942523777 -0.00541778654 -0.0772519857 0.0577338263 0.0101287365 -0.0831120983 0.0184618756 0.0192774534 -0.00675591826 -0.0208119154 0.00106546283 0.0816143081 -0.00851950794 -0.0424078666 -0.0349001363 -0.038659703 0.00392585248 -0.0132947862 0.00418516248 -0.0890480801 -0.0201760307 0.0644967034 -0.0552457161 -0.0673178881 0.00943056494 0.0318217501 -0.0696087405 0.0656501129 0.0450345054 -0.004327856 0.0286676511 0.02130422 -0.0380416475 -0.0646502376 0.0377904847 0.0703573301 0.0160834044 0.0236057267 -0.00799587369 0.0147145763 0.0178275555 0.0897970274 -0.0655885264 0.0331937745 -0.0762033165 0.0826241747 0.00183498859 0.0700420514 -0.0563801341 0.0389150903 -0.00390122086 -0.0904970542 -0.0144922212 -0.00148073584 0.0202573389 0.0476346239 0.00858522952 0.0444657132 0.00422088057 -0.0548148155 0.0592243746 0.0399221554 -0.0587925278 -0.0329605751 -0.0664016828 -0.0639933795 0.0261552855 -0.0793921947 0.0190427825 0.07219816 0.0716079697 0.0503004417 0.0293772444 -0.05912273 -0.077042006 -0.026768893 -0.00414182246 0.0893275514 0.00914222747 -0.0844018459 0.0425550565 0.0312123224 0.0884912089 -0.00573388487 -0.0159001052 -0.0357046649 -0.035234455 -0.0232926905 -0.0697577745 -0.0831040442 0.0020506084 0.0897023156 0.0127443075 -0.0509658232 -0.0889367312 0.0864560381 -0.0847093984 -0.0906933844 0.0472119525 0.0912742391 0.0277163386 0.0189697891 0.0427311584 -0.0383944325 -0.0799558833 0.0882309154 0.0872192308 -0.0462360792 -0.083305791 0.0266098231 -0.0136586428 0.0740923807 0.055721201 -0.0780076683 -0.0566761345 0.0154659897 0.0411189124 -0.0461372994 -0.061469771 -0.0841282979 -0.0890387297 0.0446350202 0.0387718901 -0.0482505448 -0.0817391276 0.0588816479 0.0646423027 -0.0744922906 -0.0572902262 -0.0765260607 0.0867316797 0.040278323 -0.0379081331 0.0520129278 0.0600954369 0.00752107054 0.0160018131 0.0354114994 0.0771289542 0.0146618113 0.0636253878 0.0837518051 -0.0789549351 -0.0642174035 0.0575377271 0.0525682345 0.0309827998 0.0483340248 -0.0539560989 0.0423899069 -0.0100191012 -0.0656792521 0.0119997114 -0.0520427525 0.0147369802 0.0396238193 -0.0328832939 -0.0301948935 0.0400220379 -0.00768390298 -0.037236657 0.0155854821 0.0717411563 -0.0727660954 0.00514382869 0.0440934673 0.0303813666 -0.0208261088 0.0812957957 -0.0543935373 -0.0634360313 0.0826053694 0.0193383396 -0.0848716125 0.0904223248 0.0880489871 0.0667606518 -0.044124838 -0.00904733688 -0.0441937298 0.0446879044 0.0742045417 -0.00875924528 0.0867259726 0.0335649326 -0.00473515689 0.029370226 -0.0686550885 0.0441589579 -0.0274178535 0.0765235946 0.0118641704 -0.00405069441 -0.0600336753 0.0121458173 0.0506032482 0.0439979658 -0.0787050053 0.0756611601 0.0156245977 0.0829022005 0.0609400049 0.0667614564 -0.0654740259 -0.0757104158 -0.069744125 0.0489476398 -0.0503488034 0.0545540377 0.0224330723 0.0146568641 -0.0909647718 0.029430069 -0.0783120543 -0.0794770494 -0.017632477 0.0227540061 0.0516059324 -0.0114794523 0.0375504866 0.0871897116 -0.0207227543 -0.023117885 0.0921838954 -0.00395900011 0.0396954939 -0.0179144815 -0.0126970932 0.0822556689 0.0755250826 -0.0829311907 -0.0855126455 0.037598826 0.0766822025 0.0710997656 -0.00649683177 0.0831539109 0.0562869236 0.00944747031 0.0609066114 0.0909760222 -0.0304705724 0.0719071403 -0.0502193384 -0.0319044665 -0.0195815489 -0.0588118955 0.0749607608 0.0166225731 -0.0842585117 -0.0332032628 0.0832422748 0.0592680797 -0.0626839399 0.00789088756 0.0848939046 -0.0793794766 -0.0276574343 0.0872139856 0.0556635335 -0.00470286608 0.0387161598 0.0911889896 0.0549625233 0.0787141696 0.0269643739 -0.0358769409 0.0564115867 -0.0699966103 -0.012206614 0.0501566455 0.0645736381 -0.0139570832 -0.020504117 0.00142542273 0.0074281171 0.0225102454 0.036249496 -0.0886097178 0.0847397223 0.048442699 -0.0461415015 -0.0226132944 0.0923043266 -0.0728924349 -0.0864232033 0.0123845264 -0.0782592967 -0.0501707159 -0.0101572797 -0.0777636394 -0.066847682 0.0637609288 0.0375878587 0.0223212838 0.0770931318 -0.053100951 -0.071113795 -0.0147229582 -0.0844590738 0.0681217834 -0.00657334179 -0.054692924 0.0912053511 -0.0884421319 0.0308426172 -0.00951483846 0.0860201642 -0.0617290102 0.0875648633 0.0493390784 0.0882832631 0.0282968879 0.0141833276 0.0326824561 0.0335453227 0.00204221904 -0.021401003 -0.0426396132 0.0475394949 0.00247347355 0.0544133708 -0.074207738 -0.000907972455 -0.0475969873 -0.0360090695 0.00586799532 -0.0864673555 -0.0310908295 -0.0460304357 -0.0439231545 0.0211498663 0.0374293402 0.0622629449 -0.0619236492 0.0724221542 -0.0528068691 -0.0835617483 0.0313543826 0.01583682 -0.0230494142 0.0306188762 0.0321404636 -0.0482506566 0.0529622808 0.0519014224 -0.0645031258 -0.0594107136 -0.00809879601 -0.0914436579 -0.0109141991 0.0620819107 0.0916835293 0.0464018211 0.00608365238 0.0412868932 -0.00194935501 -0.035761144 -0.0361958705 -0.0268536806 -0.0618844032 0.0104433969 0.0116936117 0.0191455707 0.079479374 -0.0303210355 -0.0454511642 -0.0708762556 0.0705719218 0.0918412134 0.065259032 0.0216950178 0.0428574458 -0.00385062397 0.0653053895 0.0821041539 -0.0730981678 -0.00811354816 -0.0554386377 -0.084178701 -0.0509072542 -0.0295907706 0.0523470715 0.0779704228 0.0846575424 -0.0722660422 0.0633191541 0.0514578745 -0.033437144 0.0405620858 0.00758262724 0.0237747878 -0.0780086145 -0.065441519 0.0785655752 -0.0339016542 0.0298682749 0.0639519617 -0.0537085049 0.0868114457 -0.0110377669 0.0282979608 0.0157468021 -0.00126271695 -0.0553103387 -0.0513117388 0.0197743848 -0.0331235826 -0.00663880259 0.0385806188 -0.0833882168 0.0591439679 -0.0527346954 -0.0262016878 -0.0682879984 0.0202664286 -0.0273427293 0.0634658113 0.0345452204 0.0398013815 0.0899946019 0.0423657522 -0.0577508807 0.0682500377 0.032089971 -0.0806964934 0.0489018783 0.0760168508 -0.00968725234 -0.0311321206 0.0791377798 0.037373431 0.0125266016 -0.012751326 -0.0420941077 -0.0406406224 0.0844250396 0.0405533537 -0.079384163 -0.0332821682 -0.0587950386 0.00392818451 0.0580134466 -0.0201904476 0.00720884651 0.00393421948 0.0677318648 0.089243032 -0.0904530957 0.0334602818 0.0438959226 -0.0144426152 0.0751524493 -0.0610397533 -0.0152768567 0.0593509749 -0.0144381002 0.0517932698 0.0299286991 0.0506623164 -0.0412519425 0.00610845536 -0.0724826455 -0.0773920789 -0.00055488199 0.0780718997 -0.0554781035 0.0840966329 0.00405910611 0.0165633187 0.0116630867 0.018016167 0.0440670177 -0.0453815907 -0.0766290426 0.0518458858 0.0760654882 -0.00421597064 -0.0908604041 -0.0702050254 0.0233667344 -0.0193518475 0.02442839 -0.0757493973 0.057732217 -0.0170547068 -0.0341898166 0.00546425581 -0.0850390494 0.0316754952 -0.0886460841 0.0195966512 -0.0578814261 -0.0397735424 0.0342405215 0.0184871033 0.0778856501 0.000743642449 -0.0833745301 0.0195601583 0.0768198743 -0.0805955529 -0.0207440779 0.0831063762 0.0220330581 -0.0822014362 0.0601849779 0.0637830719 0.0916128531 -0.069228664 0.0871357247 0.035376288 0.0478841588 0.0159558728 -0.0648284405 -0.0885275304 -0.0267810673 2.09361315e-06 -0.0573460422 -0.0756229237 0.0684826151 0.0575594082 0.00868935883 -0.0140423924 -0.0461172909 -0.0327812545 -0.0581599921 0.0269899666 -0.000181876123 0.0380164906 -0.00973976403 0.0487213209 0.0054006651 0.0389268473 -0.0679334998 -0.0633564442 -0.0839022547 0.0227442831 -0.0863845274 0.0577060059 -0.0715145171 -0.00541105121 0.0518411323 0.0585492626 0.0289710015 0.00362961739 -0.0444144271 -0.0806092471 -0.0129116774 0.0852346346 0.00613643229 -0.0255756825 -0.00731280446 -0.0380656831 0.0164687186 0.0677109286 -0.0391259268 -0.0445274748 0.0777699128 -0.0560322367 -0.00181909651 0.0453710184 0.0827664509 -0.0896386877 -0.0242986605 0.0915259495 -0.0163134784 -0.0197139904 -0.0638058111 0.00823869556 0.0272681564 -0.0619396269 -0.0817572027 0.00853251666 0.0776728466 -0.0592440069 -0.0731721893 0.0535600707 0.0343747959 0.0327042863 -0.0396998934 -0.0593536422 0.0491217896 0.0456651077 -0.0784960166 0.00363790989 -0.0172545388 -0.0162248686 -0.0640112981 0.0574325696 -0.0528756045 -0.0517699309 -0.0101728216 0.00395327806 0.0565405414 0.0306133553 0.0140962303 -0.0802568346 0.0655279234 0.0231169611 0.0685399547 -0.00576084852 0.0914071128 -0.0211961493 -0.047247 -0.0701852366 -0.067032896 -0.0620478541 -0.0165388659 0.0635028556 0.067331396 -0.0764345601 0.0403042957 -0.0891466439 0.0840568319 -0.0753252506 0.0855787918 -0.0758356303 0.0668537095 -0.0125865564 -0.0756303445 0.0886430666 -0.0842864886 -0.0429176055 0.0823298171 0.0655698553 -0.0588940606 0.0755554363 0.0171429217 -0.0821192041 -0.0702197254 -0.0636316165 -0.0836018547 -0.00655524433 -0.0103563219 0.0418514684 -0.0580727197 0.0837718025 0.0842972919 -0.0088140294 -0.0275221393 0.0206763074 0.0922560468 0.0435837731 0.0475135967 0.0191031322 0.02010452 -0.0908159614 -0.0416316204 0.0758484229 -0.0724429637 -0.0104762614 0.000106886029 0.0858999863 0.0158510208 -0.0847117975 -0.000964172184 -0.0100685582 -0.0664920509 0.0405401066 -0.0133690089 0.026971966 -0.0114412233 -0.0854793936 0.0831701383 -0.0226324871 0.0428901985 0.0297399163 0.026442565 -0.0807639509 0.00104232877 -0.0550993457 -0.060623996 -0.0215062797 -0.0166621059 -0.00944332778 0.0830895379 0.036817424 -0.0614985153 0.0432432666 0.0882051215 -0.0311165154 -0.0409025028 0.0863050893 -0.0176707581 0.0552326813 0.011882484 0.0553568974 0.0867616758 -0.00223039091 0.0805701241 -0.0627913475 0.081283398 -0.0809388086 0.0755239204 -0.0765278637 0.0694752261 -0.0236878246 0.0687402859 0.0654898509 0.0751912817 -0.014224112 0.0235026479 -0.0527965017 -0.0467849784 -0.08962024 -0.06420739 0.0851018205 -0.0183598623 0.0890834108 -0.0363567248 0.0598713681 0.0121048614 -0.0645590946 0.0425989851 -0.00388099998 0.06070856 -0.0320171379 0.0637031719 -0.0116537735 -0.0296758413 0.0682671592 0.0869465247 -0.0690621063 -0.055938717 -0.0484456457 -0.0607849397 -0.0592589751 -0.0446309671 -0.0543196909 -0.0140317678 0.0881549641 0.0775444433 -0.0182968676 0.0100835264 -0.0522374138 0.0612234697 0.00951851904 0.00944425166 0.0383972451 -0.0799355879 0.0428159162 0.00807172805 0.0711495802 -0.0898740664 0.062713258 0.0274129882 0.0854378715 -0.0636696517 -0.0138240084 0.0590358302 0.034822531 -0.0310714804 0.0355884209 -0.0131485537 0.0855007842 -0.0147061422 -0.0360234194 0.0334200189 0.0399754271 0.0374752954 -0.0800341517 0.0782754347 -0.0417358652 0.0897920355 -0.076082021 -0.0203595087 0.0783842728 0.069906123 -0.0536793172 -0.0769273937 -0.0336235724 0.0201757029 -0.00975878537 -0.0647073165 0.0915132537 0.0673393235 -0.0397363231 0.0385928974 -0.0733644292 0.0053364858 0.0644211099 -0.00636963546 -0.0379683748 0.0426851735 -0.0419155806 -0.037135981 0.0688525066 0.022233285 -0.078583315 -0.0302739553 0.0151585042 -0.0760697126 0.0863684788 0.009710446 0.0806020871 0.0448224619 0.00629999489 0.0846635029 0.079347156 -0.0380195491 -0.0412872024 -0.0889407545 -0.078981854 0.0297524184 -0.0551969633 -0.0233286396 -0.0293343738 -0.0699721277 0.0555894598 0.0869819298 -0.0719931796 -0.0465626493 0.00720072538 -0.040620856 -0.0504774339 -0.0715046972 0.0159187242 0.0119204298 0.0500876233 -0.0177450404 -0.0859101787 0.0256662592 0.0287842378 0.0428964272 -0.0879076496 0.0524636135 0.024694562 0.048619397 0.0475637987 -0.0346657708 0.0860136971 -0.0662683621 -0.0743615702 0.0769770816 0.00805424899 -0.0713426769 -0.0753751993 0.0816610381 -0.0579784922 0.0729864165 -0.00147031993 0.0786421821 0.0519285873 -0.00362499058 -0.0716717988 -0.00780125707 -0.0715751126 0.0133769736 0.0738341734 0.0666744933 -0.0569001324 -0.070323348 -0.0474837869 0.0287593454 0.0790589079 0.0505698398 0.0329165384 -0.0724719912 -0.0369661264 -0.0313379839 0.00705070049 -0.0334406458 0.0554686412 0.0141500458 0.0388744846 -0.0823223442 -0.0680225939 -0.0380975306 -0.0584020168 0.0148314089 0.0770542249 -0.0069193691 -0.0655881763 -0.0299695693 0.0783558264 -0.00357445329 0.0792099014 0.00518791378 0.0400092229 -0.0500748158 -0.029792428 0.0491592214 0.0764016584 0.0396773145 0.0358728245 0.0530609563 0.0684952214 0.0373619273 -0.0228553861 0.0588645861 -0.0853326246 0.0535984561 -0.0209913254 -0.0506914407 -0.014355652 0.00744015723 0.0420032665 0.0741882548 0.000381857157 -0.0530190915 0.0370491222 -0.0326039605 -0.0132553205 0.035263218 0.00912626833 -0.0921530128 0.0500793234 -0.0136869475 0.0283158794 0.0740195885 -0.0684440285 -0.0412382074 0.0173250586 -0.0172134861 0.0157719776 0.0468919054 -0.00586979836 0.014431566 -0.0105972961 -0.0597704761 -0.0436250232 0.0884477273 -0.0466230027 -0.0576126985 0.0376115367 -0.0664010867 0.0273087695 0.036824517 -0.00316119194 -0.0106306002 0.0838123187 -0.027337186 -0.0392027646 -0.0479362346 0.0675922111 -0.0114795193 0.0080005005 -0.016239062 0.0825185403 -0.0318865292 -0.0266549438 0.0859248117 0.0392713323 -0.012406908 -0.0176950768 -0.0544238016 -0.033339154 -0.00225158036 -0.00610093027 -0.00843595713 0.0891426876 -0.050432995 0.0218941495 -0.0335704386 0.0391612276 0.031934157 -0.0847277343 -0.064030692 -0.00170952827 0.0360642746 0.0729039684 0.0618307367 -0.0487028174 -0.0505268015 -0.076432161 0.0595226362 -0.0685397536 -0.0842550993 0.0177989453 0.082075201 -0.0103889406 0.0733180121 0.0199053064 -0.0147271454 0.0138688907 0.0306828395 0.0649606809 0.0190828592 -0.070899561 -0.0851228461 -0.0153122917 -0.0463888347 -0.066064477 -0.0909982771 -0.00715899467 -0.0207040012 0.0811481699 -0.0373623818 -0.0886977389 -0.0177120715 -0.0602605827 -0.0596092939 0.064535968 -0.0892297998 0.0867727473 0.01450257 -0.0782339796 0.000726699829 -0.0871648639 0.00237772614 0.0611720607 0.0331376716 -0.0215403065 -0.00134386867 -0.0179789215 0.0415385589 -0.00390974432 0.0160327405 0.0578731969 0.0680429116 -0.0540930703 0.00171177834 0.0337080434 0.0668222979 0.0918126777 -0.0264804736 0.0765044615 -0.00117657334 0.0213594884 -0.0185158476 -0.034688551 -0.061231792 0.00909261405 0.0909204707 0.0564253405 -0.0326008573 0.0603467152 -0.0682173669 -0.0533227064 -0.066854611 -0.030757349 -0.0857719779 0.0158302635 -0.0711898357 -0.0772200674 0.0650554523 -0.0249880701 -0.039926447 -0.0619715899 0.0714030042 -0.0397825018 0.015545249 0.068186529 -0.0580149852 -0.0378004797 0.0829857811 0.0754126534 0.0325340107 -0.015867725 -0.025648497 -0.0587190129 -0.0564304069 -0.0274010152 -0.0236573815 0.0334936902 -0.0281777233 0.067175664 0.0133813098 0.0235954449 -0.0151373968 -0.0747717172 -0.028499119 -0.0323427841 0.0801560208 -0.0291592553 0.0907091871 -0.0722725317 0.0726598576 -0.03927375 -0.0552756935 0.0751526877 -0.00105144083 -0.0912031233 -0.0597288758 -0.0618520938 -0.0106208026 0.0835527256 -0.0615665317 -0.0129103288 0.0215593502 0.0818311498 0.0404842421 0.0906733796 0.0219776332 0.0745610967 0.0144493729 0.00819073617 0.0189595148 -0.0366619639 -0.0854627267 0.0915710703 0.01361797 0.0913818255 -0.0591267347 -0.0548084788 0.00617730618 -0.026645571 0.0310155973 -0.0577848218 0.0276535377 -0.0327833891 0.00533434749 0.0302108079 -0.0856447369 0.0829135701 0.0627931282 0.0297260433 0.0413138345 0.0269131511 0.00438787788 -0.0872700736 0.03713689 -0.0718645677 0.0384150371 -0.0317379795 -0.0174937919 -0.0161056817 0.0544148162 -0.0730914772 0.0431120023 0.066412203 -0.0460025296 0.0307890624 -0.0297435448 -0.0420501716 0.0674318299 -0.0829080418 0.0466212854 -0.0500382595 -0.0127916485 0.0121155977 0.0383127555 -0.0502788536 0.0190117881 0.0611316189 -0.0676499829 0.0568914637 -0.0818070993 -0.0162224025 -0.0878189951 -0.0852080435 0.057787247 -0.0710611641 0.0436275378 0.0765599981 0.0535380766 0.0228159875 -0.0784272999 0.0494040325 0.0829300955 -0.045103047 0.0245783702 -0.0701926351 0.0876188949 -0.00720118731 0.0177476853 -0.090568319 0.0377600715 -0.0655927509 -0.00243186951 -0.0401783586 -0.0775230229 0.0280504301 -0.0560379177 -0.0897849724 -0.0292108729 -0.0734278187 0.0618448034 -0.0276285112 0.0678026304 -0.0242764056 0.0455804989 -0.00437501818 0.00555027276 -0.0503022522 -0.038165763 -0.0919182226 0.0252313763 -0.0465687476 0.00918679684 0.00153414905 -0.0830709189 0.0151921585 -0.0607837476 0.0626394674 0.0516785607 0.00911777467 -0.0807171166 0.0669169948 0.0543802455 -0.0860819072 0.0455945656 -0.0114347041 0.0688491985 0.0738190189 0.0628771856 0.0418855771 -0.00876180083 0.0275058076 0.0228347033 -0.0783352777 0.0401563272 0.0740993991 -0.018978864 0.0259214267 -0.0335939676 0.0473670438 0.0331325606 0.0708964393 -0.0300437696 -0.0592124648 0.0363733247 -0.0396327637 0.00594564527 -0.0112985298 -0.0875164345 -0.0143119767 -0.0833059028 -0.056430541 0.0573358759 0.0879505351 0.0629444048 -0.0743996948 -0.0540462993 -0.0486258231 -0.0283663273 0.0141230673 -0.053446006 -0.0497372225 -0.0680294037 -0.0370026641 -0.0161018744 -0.074093923 0.0557959601 0.0123702139 0.0578078404 -0.0845988169 -0.0450251736 0.0545749441 0.0898987576 -0.0747702569 -0.0423039533 -0.0159395263 -0.0660543591 0.0013261959 -0.0223005489 0.0546118841 0.0351987556 -0.0912130997 0.01645796 -0.0601805747 0.0844606534 0.0231166333 -0.010426648 0.0644285008 0.0198628008 0.0669162795 -0.0871430486 -0.0810477361 0.0710794404 -0.0782736465 -0.0303895287 -0.073782891 -0.0828505903 -0.0915771499 -0.0602727085 0.0748454854 0.0858551934 0.0735533461 -0.0105200782 -0.0804142952 -0.0345604718 -0.0419641994 0.0888587907 -0.0533923693 0.0741214976 -0.0428820364 -0.0377893858 -0.0685316995 0.0170930922 0.0638863072 0.0214552805 -0.0519844666 0.00728692114 0.0902241692 -0.0879426077 0.0202294737 0.0806431547 -0.00603424013 0.0124641359 0.00892031938 -0.0332139358 -0.0470824949 -0.0595669448 0.0906843171 0.0314844623 -0.0881622434 0.0287933946 0.0891977474 -0.0795412511 0.0377629027 0.00194457918 0.0666185245 -0.0792614743 0.0208365247 0.0365606323 0.0922026262 -0.0487698391 -0.0873408839 0.0612379387 0.0192479864 -0.0523451529 0.0272264481 -0.0416312702 -0.0596708991 -0.00264546275 -0.0540440306 -0.0576029271 0.0469719544 0.0729163811 -0.0131638944 0.0728077814 0.0450838283 -0.0559322238 -0.0895068422 -0.0317345262 -0.0107814148 0.0228233188 0.0464119241 0.0525898412 -0.0566751845 -0.0834868923 0.0889855996 0.00987202674 0.0199989378 -0.0342270769 0.0696943775 -0.0266934633 0.0771648958 0.0154780746 0.0530981347 0.00901467353 -0.057139609 0.0101746246 -0.0550700054 0.0458170846 0.05980023 0.0336686 0.0651605949 0.0364753976 0.0586586669 0.0430583879 0.0609021261 -0.0339654163 0.00882014632 -0.0716932416 0.090782769 -0.0913194716 0.0700239465 0.0873905644 -0.0524482951 0.0436144397 -0.066561386 0.026761964 -0.0502569117 0.0892404243 -0.0530616157 0.0919601396 -0.0261777192 0.0539452955 0.0820661113 0.0735006556 0.0652423874 0.0730219707 0.082313247 0.0612999126 0.0552620962 -0.0338492915 0.0212400407 0.00165124983 -0.0365223736 0.0729492083 0.0576058403 0.00691155344 -0.0342843272 0.0125920177 0.0304929614 0.0500778332 -0.0222543031 -0.0726679564 0.0646669939 0.0810569748 -0.0221625641 0.0706947073 -0.0329604857 -0.00377334654 0.087601088 -0.0864631906 -0.0143737867 -0.0259462744 -0.0269122943 0.072817035 0.0200258344 0.0382831916 0.0417198464 0.0713574216 -0.0581505038 0.0482900515 -0.040877454 -0.0693977475 0.00115407258 -0.0813046396 0.0255448297 -0.0615085103 0.0420306548 -0.0438579582 -0.0656018183 -0.0630075336 0.0671348646 0.0238295048 0.072865583 0.0299256146 -0.00669362396 0.0410103723 -0.0898211077 0.0143692493 -0.0470357202 0.052136071 -0.0655006617 0.0161795467 -0.0768517479 0.0643235669 -0.00615248084 0.0316934735 0.0203981847 -0.013532415 -0.0266123563 -0.0493861325 -0.0704298615 0.0137228295 -0.025645636 -0.0710573345 -0.00521859527 0.0350695476 0.0570508316 0.0246483162 -0.0551770888 0.0410995409 -0.022676684 0.052123569 0.0147940964 -0.0513254739 -0.0812287256 0.00133860856 -0.0442252494 0.0685336217 0.0525082722 0.0665373281 -0.0374555737 -0.00590688735 -0.0885724351 0.0490387902 -0.0691964626 0.0349899903 0.0493066981 -0.0848620385 -0.071741879 0.0750926211 -0.019478038 0.0690359846 -0.0180794671 -0.092238456 0.0141239017 0.0687527284 -0.0312555991 0.0631453022 0.0759098902 0.04179921 0.0156988129 -0.0102679729 0.0750400051 0.0207193866 -0.0625216737 0.0541631803 0.0453337207 -0.0390404612 -0.00413046032 0.0719777271 0.0470991507 0.0212033913 0.0868242756 0.0518183932 0.0344750062 0.0595526174 0.0685282722 -0.00574985892 -0.00282202661 -0.0474213883 0.0611162558 0.0845004991 -0.090285264 -0.0893801078 -0.053384006 -0.00322077423 -0.00943153352 0.0326434672 0.0463102087 -0.0799949542 0.0300820023 0.0083206445 -0.0391672179 -0.0460829549 -0.0513993427 -0.0095782727 0.0861222222 0.0165833756 0.044298999 -0.00451956689 -0.0480688065 -0.0446277298 -0.0711455345 -0.0453969538 0.0440631434 -0.0869682208 0.0865554437 0.0450346842 -0.00479645282 -0.0635106266 0.0790703967 0.0487107113 0.0732085928 0.0770670548 0.0742812082 -0.00176178664 0.0459085926 -0.0211652517 0.0265090838 -0.00731612742 0.0845943466 -0.0402847342 -0.0574834757 -0.0590013638 -0.0292153135 -0.0403069668 -0.0789581239 -0.0897368342 -0.0604539886 -0.0711025 -0.0334576592 0.0111833885 0.0087230131 -0.0836731046 0.040044643 0.0120727643 -0.0823002458 0.0418786183 0.0285830423 0.0110928193 -0.0174405724 0.0331115201 0.0185983628 0.0278743505 -0.0568687245 -0.0754409656 -0.0205333978 -0.0237112418 -0.0261105821 0.0605789647 0.00643698126 0.0755181834 -0.0922438055 0.0256989896 0.0485202 0.0456760898 -0.0482162982 -0.0184073597 0.0079036057 0.00761085004 0.00364363939 0.0740257725 0.0226111412 0.0783640817 0.00869878381 -0.0595115237 0.0687410906 0.00354357809 0.00756427646 -0.0158829316 -0.0737896711 -0.00403440744 -0.0258608982 0.0599239543 -0.0711385757 0.020946838 -0.0891404599 0.0189688876 0.0719868317 0.0634907708 -0.00139652193 -0.0920674801 -0.0673489273 0.0316995904 0.000839829445 -0.0564609356 -0.00109431893 -0.0491938479 0.0377692655 -0.0372057781 -0.060118679 0.00432512164 0.0316200703 -0.0669298619 -8.38190317e-05 0.0114948377 -0.0195444003 -0.0415995307 0.00809586793 -0.00826530904 0.0574202165 -0.0723961666 -0.0819158703 0.0454738215 -0.0655942932 0.0603346005 0.081127651 0.0869370326 -0.0374879725 -0.0876718536 -0.0297982842 -0.0784385726 0.0460477397 0.0266648084 0.014023602 0.0913704261 -0.0675346926 0.0181623623 0.0127891004 -0.0503200814 0.0581767634 -0.0748850852 0.00134052336 0.0870750621 -0.0810722113 -0.0696156323 0.0299580842 -0.0675390065 0.0164758712 0.0869182125 -0.0454732627 0.0528307781 0.0664571896 0.0405248925 0.0522795692 0.0733958408 -0.0829183608 -0.0057630688 -0.0770279393 -0.0428764895 0.0401962325 0.0530113503 -0.0202365592 -0.0765930116 0.0276582986 -0.034928903 0.0739841983 0.0728642568 -0.0846498609 0.00151361525 0.00841396302 -0.0856918097 -0.0198567733 0.0481808558 -0.0487390906 0.0226824731 0.0466135666 -0.02168791 0.056527324 -0.0153712332 -0.0913490355 -0.0188249201 -0.0144747496 0.0202247873 -0.0299278609 0.0602858886 -0.0526791625 -0.0757184252 0.0872961953 0.0118971691 -0.0052466616 0.073752366 -0.0688328445 0.0262307599 0.053623043 -0.0478524864 -0.00552707165 -0.0349988304 0.017020829 0.0814426914 -0.0231733099 -0.079847239 -0.0415078774 0.0677303448 0.0209020898 0.000892393291 0.0142522007 -0.0790120065 -0.0379544199 0.0881071165 0.0511544272 0.0495405868 -0.0443628579 -0.0861618221 0.090520449 0.000104397535 -0.0354737081 0.063444905 0.00302965194 0.0304938629 0.00972213596 -0.0114921555 -0.0324760117 0.0743105933 -0.0551911294 -0.0505731553 0.0827556327 0.0545415953 -0.00167484581 0.0230112895 0.0784716234 -0.00437838584 0.0280987918 0.0058047995 -0.0807536989 0.0705234483 -0.0523300767 0.00539049506 0.0516765788 0.0689410344 -0.00861192495 0.0209482014 0.0606285259 0.0713931099 -0.0857978165 0.0610720441 0.0625270233 0.0316005051 0.00333137065 0.0648171082 0.0647105649 0.0169360936 0.0778124854 0.0578208938 -0.0563367978 -0.0206079036 -0.024293907 -0.0105765164 -0.0255191624 -0.0735230371 -0.0435975529 0.0471156165 0.0627049133 -0.0556038283 -0.0444119647 -0.00553479791 0.0908057764 -0.0236176327 0.0439096019 -0.0641449019 0.0852469876 -0.0711286739 -0.087991029 -0.0687301904 -0.000535055995 0.0254678354 0.0362865254 -0.0496400893 -0.0483504944 0.0506172851 0.0644204244 0.0446289852 -0.0332002901 0.0123018324 0.0221840292 -0.0470405184 -0.00757360458 0.0489261523 0.0215922073 0.0124454722 0.0631809607 -0.0370742008 -0.0503447987 0.0908744708 0.00957316905 0.0645664409 0.0880595222 0.0869008973 -0.0488298386 -0.0370719321 0.042529963 -0.0609311759 -0.0367596261 0.0792474076 -0.000904917717 0.0323681161 -0.0611275509 -0.0625137985 0.052813895 0.0538368747 0.0334239677 -0.0644377321 0.0726039484 -0.0689607039 -0.0893268436 -0.0520817339 -0.0296778455 0.0262012035 -0.00175445527 -0.0753673166 0.0796130672 0.0407471582 -0.0120501369 -0.0869960636 0.0259400681 -0.038856212 -0.0794154853 -0.00370419025 0.0529540703 0.0188260451 0.0838545784 0.00345802307 -0.0437468514 -0.026155442 -0.00599034876 -0.0768882856 0.0191116482 0.0275202915 0.0840181634 -0.081900157 0.0781973973 0.0118297264 0.00802455842 -0.00220961124 -0.0520444028 -0.0445436314 -0.0798972473 -0.0667828172 0.0822639689 0.0808284655 0.075585492 0.072856687 -0.0776649863 0.0891470984 0.0302034542 -0.0646083355 0.0376683101 -0.0330854394 -0.0322696865 -0.00565680116 -0.0780261606 -0.0632175803 0.0729603991 0.0213800967 0.0301767141 -0.0541327335 0.0227264538 0.0859972909 -0.0422654152 -0.00712656975 0.0509404168 0.0735329464 0.0705943182 -0.0227182657 0.067816712 0.0884231851 0.0819528922 -0.0356671587 0.078798987 -0.0701887384 -0.0177139416 0.0662577525 0.0473455116 -0.0515935607 0.0116118491 -0.0373766907 -0.0142410174 -0.0618538335 0.0612733737 0.0834253505 0.0349682644 0.0591344759 -0.0440246016 -0.0637425035 0.0502451733 0.0292272642 -0.0690999627 0.00984935462 0.092063047 -0.0748079196 0.0152973682 0.0105530769 -0.0263612196 -0.0454601459 -0.0844660252 -0.0632579699 0.0212970451 0.0677484944 -0.00823792815 -0.0221019015 0.054656364 -0.00424896926 0.0263118297 0.00886429846 0.0689947978 -0.0311000496 0.0446271226 -0.00194044411 -0.0256584659 0.0822332576 -0.00641840696 -0.0785874501 -0.00845631212 0.00828951597 -0.00629211217 0.015780516 -0.0689101219 0.00992240757 0.0147119537 -0.0150072947 -0.0112860054 -0.0836632177 -0.0175525174 -0.0436990224 -0.0667589307 -0.0417699814 -0.0621840991 0.03783039 -0.0603804067 0.0739882514 0.078670688 0.071526967 0.0444620326 -0.0170393437 -0.0409660675 -0.0920446292 0.0451370701 0.0895479098 -0.0753441826 -0.0640420467 0.0242174417 -0.0103649274 -0.0272774696 0.0367854014 -0.0922221914 0.0541295931 -0.033057265 0.0170596167 0.0765016004 -0.0743874982 -0.0496931337 0.0358289108 -0.0916525796 0.0107038915 0.0554244891 -0.0532717519 -0.0456347987 -0.0143624693 0.082083948 0.0561494604 0.0320823342 -0.0745303258 0.0409282967 0.00292296708 -0.0368774906 0.0711174533 -0.0703196302 0.0163350701 0.0672714934 0.0245346799 -0.0919293836 0.0251951441 -0.0102009103 -0.0594686456 0.0380249843 -0.00577893853 -0.0208740532 0.0756368414 0.0222705528 -0.0543257445 0.0272604302 0.0901939198 -0.0304151736 0.0665012076 0.0018844232 0.00547417998 0.0734227076 0.0288601518 0.0404510722 0.0194194019 -0.0456373729 -0.0562755875 -0.0762482435 0.0183028728 -0.0811993852 0.036963217 -0.0186352804 -0.0633814707 -0.0720618963 -0.0603592992 -0.0193515643 -0.0482299887 -0.0381827354 0.00200733542 -0.0406120755 0.0495062843 -0.0727195665 -0.0234795213 0.0766530558 0.0204453766 0.0919574872 0.0534320548 0.0418499485 -0.0877121091 0.0753972009 0.0663077012 -0.00644671172 -0.007431373 0.0382560566 0.0495807305 -0.0424644537 -0.047073666 0.0510125533 -0.0166914463 0.0307860747 0.000571087003 -0.0890113041 -0.0688828081 -0.0587597527 -0.0231394321 0.0224492326 -0.0817822218 0.0463220105 0.0792645141 0.0256610885 0.0140885934 0.0118838102 0.0694024637 -0.0824787915 0.022103779 0.0735093877 0.0439257249 -0.0332510248 -0.04475284 -0.0507570095 -0.00581056625 -0.000588953495 0.0857775733 0.00246085972 -0.0152551532 0.0901718661 -0.00411954522 -0.0316996165 -0.0669650584 -0.0694595277 0.0662301257 0.0669043586 -0.0384973735 -0.0205351561 -0.0295686722 -0.0802440047 -0.0772541463 -0.0281542316 -0.051378455 0.0622032955 0.0367977694 0.0182842761 -0.0105938613 0.0472692028 -0.0475760773 -0.00163240731 -0.0203308761 0.0566026345 0.0104599968 0.0726069435 -0.036503423 0.0378401205 0.0901750997 0.0290091187 -0.0305222534 -0.0703308582 0.0219078138 -0.0245574117 -0.0868871808 0.0295273811 0.0679013655 -0.0164322481 0.0745773986 -0.0718500614 0.0487796292 0.0417770669 0.0280014127 -0.0801458135 0.0222993642 0.0695343837 -0.0436413772 -0.0106922239 -0.0265597329 0.0367376134 0.0689287856 0.0605195537 -0.0447984897 0.0922634527 0.0162902623 0.0599492863 -0.00950401276 -0.0716954395 0.0751861855 -0.0820817426 0.0661183372 0.0112277418 -0.0178590119 0.0158254206 0.0904926434 -0.0804221109 0.0777216628 0.022915788 0.0519870594 -0.0313973464 -0.007444866 0.0851922408 -0.0601669066 -0.0428785607 -0.0418200307 -0.0600502044 -0.0153593048 -0.0725645274 -0.0499464981 -0.0654619411 -0.0528723262 0.0463266149 -0.0729512274 0.0696593001 0.00695346296 0.0676797554 0.0116810426 -0.079127036 0.0705602095 0.0191684365 0.0868120119 -0.028655611 0.00967327505 -0.0252692774 -0.0242623687 0.0477025285 0.0681606457 -0.0744190365 0.00224445015 -0.0619739667 0.0615809485 -0.0689539909 0.0583508387 -0.0881423056 0.0917908028 -0.0152005851 -0.0543807708 0.0327793583 -0.0421785377 0.0035354346 0.0341924056 -0.0281716883 -0.0144303739 -0.046240747 -0.022204563 0.0524763539 -0.0533858091 -0.072972469 -0.0655883253 -0.0177867487 -0.0375518724 0.0217086896 -0.0161272287 -0.0708069876 -0.0359364785 0.0521655008 -0.0120479837 0.0895371065 -0.0596368723 -0.0186956301 -0.0617564581 -0.0296272635 -0.0686997026 -0.0318756551 -0.0074512735 -0.027714245 0.0734042004 -0.0217153579 -0.0613463819 0.0347120985 -0.0649496913 -0.0142504573 -0.0610628426 0.0268740803 -0.0245531872 -0.0659095719 0.0256090537 0.034154661 -0.0157359019 -0.0118797123 -0.0796989352 -0.0505942218 0.049961172 0.0254614502 -0.076663889 0.0393677279 0.0355409309 -0.0246424675 -0.00411829352 0.0367907956 -0.00190734118 -0.032542441 0.0278224051 0.0706791803 -0.0152838975 0.0703225806 0.0622839555 -0.0111314431 -0.0300283618 0.0343665406 0.0569650456 0.0892429426 0.0392207876 0.0835115686 0.0262790099 0.0787591562 0.029530108 0.00923788548 0.0414301381 -0.0221488774 0.0517969802 0.00642956793 -0.0496866852 0.0143547431 0.0790200159 0.0197795779 0.00683040172 0.00404202193 -0.0530380234 -0.000162787735 0.00883720815 0.07953123 -0.0204315931 0.0208514482 0.0439179316 0.0302426293 -0.0672334582 0.0683573112 0.0809466913 -0.0847750306 -0.0297976658 0.0168428123 0.091798313 -0.0793500915 0.0338031277 -0.0510316119 0.0605824366 0.0904230252 0.0190057829 -0.0869564041 -0.0313964225 0.00315918773 0.0383437648 0.0388855562 0.0756233409 0.0498713925 -0.0182568282 0.00490058959 0.0870034173 -0.00354178995 -0.0263826326 0.0889553055 -0.0142111257 -0.0816921145 0.0556161776 0.0456405804 -0.0511007048 -0.0360564999 -0.0524316318 -0.0709052831 -0.0199208409 -0.0388516337 -0.0885199606 0.084773846 0.00101771951 -0.0313709565 -0.0196761563 -0.0294993594 -0.0117410943 0.00858666003 -0.0910201073 0.0468685701 -0.0292739049 0.0525492951 -0.00400330871 -0.0438637473 -0.0365245305 -0.0543951876 0.051482521 0.00552973896 0.0519922748 0.0855282769 0.0154593438 -0.00866699964 0.0830419883 0.0609323606 -0.0394538194 0.0649011657 0.0497544929 -0.089406848 -0.0535491258 0.0118296146 0.0327877626 0.0836895034 -0.0247468576 0.0664213076 0.00853528827 0.00697754323 -0.00111036003 0.0862105712 0.0900658295 0.070247598 -0.0418620482 0.00805565715 0.0198088065 -0.0212637931 -0.0404696874 -0.0355568863 0.0454728678 -0.042940937 -0.0185066238 0.052196674 -0.0789706111 0.0558743402 -0.0482885353 0.0739111081 -0.0907555446 -0.0263437405 0.0175912306 0.0751201436 -0.0253414959 0.0429460928 -0.0583883263 0.0754267946 0.0714309886 -0.0504599586 -0.0431454815 0.0642972663 -0.0343447253 0.0592511818 0.024288252 0.0271836147 -0.0683403015 -0.0136008859 -0.0425787345 0.0353546962 -0.0755971968 -0.00806162506 -0.0350443721 -0.0542404093 -0.0640652478 -0.0448141173 -0.0552231781 0.0131095722 -0.0690628812 0.0805178955 0.0681599602 -0.0018222481 0.01813934 -0.0322655924 0.0585005358 -0.0654175729 0.0900635347 -0.0117100775 0.0716981217 0.0284681469 0.0453929529 0.0675659254 0.0236284658 0.0303775594 -0.0103677884 -0.0670388415 -0.0632821172 0.0113364309 0.0188388526 0.00897461921 0.0671779737 -0.0314376019 -0.0822283104 0.0506937131 -0.0101739913 0.0686552897 0.00589191914 0.026980415 0.0566747263 0.0428963378 0.00986038148 -0.0603689179 -0.0530635528 0.0836858377 0.00211524963 -0.0238324329 -0.0201861337 -0.0580364242 0.0565431938 -0.000925384462 -0.00591201335 0.053049989 -0.0737430975 0.092080228 0.040350087 0.0341226682 0.0326114893 -0.0227506384 -0.0724900216 0.0824951008 -0.0717741549 0.00670641661 0.0813994631 -0.00583939999 -0.0488711745 0.048764132 0.0251174942 -0.0686883256 -0.0689650401 0.0705242679 -0.00649374723 0.0903036967 -0.0891901776 -0.0895108059 0.0389191583 -0.0470980108 0.0154423937 0.0230079666 0.0532485023 -0.0061121136 0.0528750047 0.0142345726 0.019133158 0.0117790997 -0.0211688131 0.0714278445 -0.0880356207 -0.0618006103 0.0724147931 -0.0037464276 0.0361079201 -0.0570251532 0.0604195371 0.0129114762 -0.0394826941 0.0881538317 0.0040140748 0.00843846053 -0.0162395015 0.0329913422 0.0810236856 0.0625335351 -0.049557507 0.0382130817 0.0381846502 -0.0769663975 -0.0029437691 0.0514554307 -0.0800024122 0.08602155 -0.0346651971 0.00208952278 -0.0852481946 0.00123245269 -0.0424025841 0.0227510184 -0.0555479191 -0.0779773444 0.0664920285 -0.0150747746 0.057144545 0.0486264005 -0.0678769127 0.0811693445 -0.0627790242 -0.0539901517 -0.0328208283 -0.0577545352 0.0496232882 0.0791065916 0.0502224788 -0.0263533592 0.0665612295 -0.0653316826 -0.0693557709 0.0215616152 -0.0220227093 -0.00116864592 -0.0524776354 -0.0301892795 0.0871751234 -0.0763709247 0.0638226196 0.0457176045 0.0451567546 -0.0308638774 -0.0752480179 0.0851385966 0.0117572024 -0.0826441348 -0.0257428139 -0.046848543 -0.0369840227 0.00466699153 -0.079453893 0.0434046313 -0.00311560184 -0.0559731834 -0.0901549459 -0.0140347555 0.05463361 0.0544632897 -0.0535473861 0.0632629022 -0.083046861 -0.0469819047 0.0147579983 -0.0810211673 0.0527758077 0.0589640066 0.0260259956 -0.064003706 -0.0264161527 -0.0430907197 0.0497529134 0.0436553732 -0.0739485025 0.0440015271 0.0225599185 -0.0199693516 0.085598968 -0.0520535819 0.00739010423 -0.0280496627 -0.065447174 -0.0763443857 0.0816825107 0.0507309958 0.0224116147 0.0384397581 0.0405684784 -0.0120549351 -0.0868133381 -0.0671203434 -0.0663364828 0.0498647317 0.0490291491 -0.0329206474 0.0396154001 -0.071690008 -0.0481032059 -0.0772336274 -0.041588679 0.0868264362 -0.0355280526 -0.0129173324 0.00816550851 -0.0864265412 0.0668802932 -0.0890823752 0.076355584 -0.0564955585 0.05098515 0.0894140974 0.0253180116 -0.0590062924 0.0907529518 0.0251428932 -0.0297635943 -0.0674311519 -0.0778274685 -0.0493084565 -0.0163493827 -0.0395992845 -0.0874005109 0.0397647843 0.0804061964 0.0310087502 0.0237004608 0.0838164613 0.02118323 0.00550081581 0.065246366 -0.0566223375 -0.0259543285 -0.00669188797 -0.0828879625 -0.0045382753 0.0503111854 0.0685517117 0.0349838808 -0.00340792537 -0.0211836472 -0.0281256884 0.0880859569 0.0181402862 -0.0638133585 0.0232851878 0.0746195391 -0.0276568457 0.0831631795 0.0584831014 -0.0486355536 0.0305097103 -0.000537894666 0.0574412867 0.0673410818 -0.0260863304 0.0733776614 -0.0607857294 -0.0439467058 0.0725129619 0.063184984 0.0384882465 -0.0479609109 -0.0126846358 -0.0169831514 0.0707174316 0.00620739162 -0.0277129933 0.0664050207 0.00051240623 -0.0362909362 -0.0142272189 0.0658699796 0.0204442069 -0.000996127725 0.0860739425 -0.000931859016 -0.0761339664 -0.0495027006 -0.0160702392 0.0146422461 -0.0220759735 -0.0862460136 -0.0614947975 0.0803798065 0.0848170146 0.0324693471 -0.0147393122 0.0327111706 -0.0660006925 0.070573695 0.0696947947 -0.0593676828 -0.046141129 -0.0837409347 -0.0255396515 -0.0550968163 -0.0884039253 -0.0606467351 -0.0630084127 -0.0870521292 0.0784801021 -0.0633750632 -0.0495128036 -0.0376825258 0.0773480013 0.0878670141 0.0452430323 -0.0241522938 -0.0686887875 0.0221209452 0.0400545523 0.0413754657 -0.053641811 -0.0720368475 -0.0783692822 0.0607574061 0.0310441405 -0.0761300698 0.0754522607 -0.0687107593 0.0783384517 0.0364509001 -0.0154628381 0.0612787828 0.0783269927 0.0227225572 -0.0589625575 0.0832321271 0.0830375776 -0.0123808235 0.0298894271 -0.0824982896 0.0185966939 -0.0542715527 0.0250043347 0.0725829974 -0.00350921601 -0.0909245834 -0.0331600755 -0.0676753148 0.0249961093 -0.0761928186 0.0437655821 -0.0766835883 0.0310082212 -0.0499422476 -0.00717752427 0.0888001546 0.0646087304 -0.0355058201 -0.0546344407 0.0192920938 0.0461045876 -0.0776384696 -0.0115287527 -0.0480541885 -0.00376889855 -0.0333721265 0.0277993158 -0.0537980869 0.0872204229 0.0866954103 -0.0211227238 0.00952228159 -0.0801012665 -0.0117310509 0.0370195433 -0.0718799755 0.084262453 0.0563857779 -0.0624830686 -0.0169433951 0.0287426189 0.062301062 -0.000447645783 0.0796488747 -0.0366948918 -0.01559636 0.0202459842 -0.0449091569 -0.0654616803 -0.0146806091 0.025485374 -0.0890888423 -0.0786711127 0.006790407 0.0691601858 -0.0647591501 0.0822175965 -0.004726246 0.0736627802 0.0542138889 0.0479430333 0.0668798313 -0.0565149076 -0.090094462 0.0269762576 0.00486477464 0.0110367984 -0.0528253987 0.0350924656 -0.00215473771 -0.0398332104 -0.0284872726 0.0447816029 -0.0240188837 0.038786836 -0.00570854545 0.0856074914 -0.0723856464 -0.0165488794 -0.0612709522 -0.0142591298 -0.0863330215 -0.0558361486 -0.0469753258 -0.0110374391 0.0132547095 0.00174397975 -0.0114672557 0.0342648253 0.00250349194 0.0454369411 0.0538903996 -0.0492744744 0.0750434175 -0.0288215503 -0.0572289489 0.0666239187 -0.0561154149 -0.0561135672 -0.0844333023 0.00876604766 -0.0508018471 0.0380753949 0.0359432325 0.0791516826 0.051115118 -0.0570109785 0.0182798505 -0.0133305117 -0.0717975944 -0.00860136002 -0.0435519703 0.0548156574 -0.0819140226 0.0638698414 0.0210384876 -0.0808650255 -0.0526516065 0.000330843031 -0.0206597596 -0.0620609522 0.0502569601 0.0575370267 0.0296823978 0.0800338611 0.0570129529 -0.0290039033 -0.0565940998 -0.0318536684 0.0118505955 -0.0708571076 0.033374764 -0.0571880303 -0.0483376198 -0.0394981243 -0.0234343335 -0.0488775782 0.0752712414 0.0474987105 0.00714288652 -0.0719314367 0.0738494471 -0.0500840843 0.00819315761 0.0562868789 0.0617735609 0.0703633204 0.0619169548 -0.0794915482 -0.0557105318 0.0597009733 0.0160568804 0.0285236388 0.00605752319 0.0556393489 -0.0325777456 -0.0239956826 -0.00525130332 0.0479384139 0.0549651906 0.0111418962 -0.0537618138 -0.0134985372 0.0252318829 -0.0682305545 0.00912827253 -0.0356718674 0.0264403671 0.0657369569 0.0540639684 0.0210007653 0.032329157 0.0880703256 0.0822671577 0.0896300301 0.0548125282 -0.0630861744 0.0786890462 -0.0702256039 0.0552534238 0.0778025761 0.0495430157 0.0055309236 0.0164949819 0.0770832822 -0.0298398398 -0.075554274 -0.0720218569 -0.0618621297 -0.0893208086 0.044280149 -0.0631872043 0.0403253064 -0.00531951338 0.00306344032 0.0639625713 0.043620728 0.088439621 -0.0369037949 0.0115216002 -0.0181588605 -0.016098991 -0.0572860651 0.00321487337 0.0455839708 -0.0791561306 -0.0823128074 0.0175881758 0.0220423415 0.00852619857 -0.0662376136 0.0481200889 0.0755910352 0.0307288244 0.0712126866 0.0814708695 0.0874799266 -0.0394362956 -0.0828368813 0.0722338632 -0.0748635605 -0.00286642462 -0.0301167108 -0.0432416424 -0.0815364122 0.0445092097 -0.0773023888 0.0101161897 0.0406464711 -0.0603844337 0.0237967521 -0.0104219839 -0.0299742818 -0.0902604833 -0.026312463 -0.0666840523 -0.00559490919 -0.0486024693 -0.0661960393 0.020053722 -0.0564982444 0.00144177675 -0.0314598568 -0.0862554163 -0.0579844564 -0.00451850891 0.0129373595 0.00163914263 -0.0365249291 -0.0478198901 -0.0563684478 -0.0467557274 0.075459756 0.0179304779 0.0469307378 0.0741849616 -0.0463614538 -0.0478969924 0.0827819481 0.0584750548 -0.0849404857 0.0482282713 -0.0345373154 -0.0873374939 0.0176920816 0.0328068808 -0.0194160566 0.0877269283 -0.0542585701 -0.00525294989 0.045518674 0.0442689881 -0.0794172436 -0.0397077091 0.0278742164 -0.0707035363 -0.074438408 0.0803576633 -0.0462791771 0.0572967157 -0.0338918157 0.0637844577 0.0421306267 0.0150690749 0.0734660551 -0.0656976327 -0.0880680829 0.0479946062 -0.0676590726 -0.0401908383 0.0469044074 0.0282169431 0.0695056245 0.0152500421 0.021499984 0.00945963711 0.053615205 0.0783659592 0.0616961494 0.0609355941 -0.00900371373 0.0423286781 -0.0534681492 -0.030833371 0.00179792196 0.0095185414 -0.0840482712 0.0864886865 0.0179206431 0.0117302611 0.0804432109 0.0503242388 0.0145941973 -0.0539151393 0.0837805793 -0.0581191182 -0.0259805024 -0.00410620868 0.0856504068 0.0778246745 0.0614859983 -0.0790708661 0.0445003286 0.08683189 -0.0502158403 0.085393928 -0.00684059411 0.0319296941 0.0677739605 -0.058425393 0.0363990739 0.0876396373 0.0258995891 -0.0110393539 -0.0876360238 -0.0444116779 0.060791336 -0.0829329789 -0.0181582645 -0.0664350912 0.00191618502 -0.0381467491 -4.03672457e-05 0.0746679381 0.0655115619 -0.00266765058 -0.0378301032 -0.0507256016 -0.0103331059 -0.0432452112 -0.00780746341 -0.0466120429 0.00508459657 -0.0389730856 -0.000406511128 0.0892146602 0.029612869 0.0564009771 -0.0356722437 -0.014194265 -0.0201072916 -0.0143026263 0.0528861955 0.000406555831 -0.00364200771 -0.0155769885 0.0580941513 0.0553532764 0.0399496481 -0.0195108131 0.0378882959 0.0588131323 0.0819900855 -0.0324214697 -8.56220722e-05 -0.000772856176 0.0761669949 0.0692587271 -0.0646586046 0.00589561462 0.0585463867 -0.016083777 -0.00365085155 -0.0346039422 -8.59498978e-05 -0.0823089555 -0.0346068032 -0.0160967857 0.0271416008 -0.0541223027 0.0202728808 -0.0858980715 -0.0266414806 -0.0322794802 0.0324701369 -0.0589341857 0.0471008047 0.0140480995 0.0563283041 0.0215859339 -0.00155079365 0.0252430886 0.091457881 -0.0764006823 -0.0545263924 -0.0132630914 0.0623580292 0.0189669952 -0.0597852655 0.0635859892 -0.0655088499 -0.0575416721 0.00191576779 -0.0615283623 0.0902926251 0.0431364104 -0.0892308131 -0.00373022258 0.0345097557 0.0108771101 -0.0515527986 -0.069291696 0.0562909022 0.0411431268 -0.0295645595 0.0107622445 -0.051202327 -0.0586092249 0.0104325041 0.00813326985 -0.0283024758 -0.0126644745 0.0439791903 -0.016288124 0.0262021944 -0.0806032568 -0.0485200211 -0.0121928751 0.0105933994 0.00309599191 -0.0108502358 -0.071443513 0.0194289982 -0.0216949508 -0.0343140848 0.000276386738 0.0364625975 -0.0604632534 -0.00966601074 -0.0576064289 0.04911194 0.0665986761 -0.0206172317 0.0313305035 -0.0750739872 0.07261803 -0.0655271858 -0.0299606547 0.0834103152 -0.0507338122 0.0319947526 -0.060248211 0.0379660353 0.0258262753 0.0622046813 -0.0378130041 0.0563078597 0.000474080443 0.092231892 -0.0148804858 0.0299066454 -0.0762519389 -0.0142956674 -0.0804007128 -0.051552467 0.0804629102 -0.0374722593 0.0445627198 0.0343697891 0.0869653597 0.0426218733 0.0432299152 0.0472186282 -0.00265035033 -0.0363228954 -0.022048153 0.0518865809 0.00371792167 -0.0835170224 0.0394174829 -0.000395044684 -0.0509123392 0.0265669078 -0.0597095713 -0.041744072 -0.0704444796 -0.0101560056 0.0337566063 0.0318901613 0.0725406036 -0.0562506914 0.0547675118 -0.0575345419 0.0125546232 0.0733154193 -0.0126398429 0.0709982887 -0.0477769449 0.0294166654 0.0665562227 -0.0510064997 -0.0556321107 0.000923424959 0.031744428 -0.0129036829 -0.0162604377 -0.00727571547 0.0697542951 0.0254225358 -0.0783085302 0.0832495317 0.0529438332 0.00703378022 0.0829004869 0.0246813372 -0.0452850983 0.0878981724 0.0022662878 -0.0471291542 -0.0312070437 0.014921844 -0.0630512685 0.0544905141 -0.0643496215 -0.00901826471 -0.0307137892 0.0843010768 0.0611245111 0.00110688806 0.0228896588 -0.0881430954 0.0249259993 0.0202664509 0.0707899705 -0.0827272907 -0.0662536174 0.0524546579 -0.0204994306 0.00828507543 -0.0739327818 0.0249063671 0.0528650805 0.0244461969 0.00546128303 -0.0641501844 0.0709702149 -0.0745509714 0.0430178568 -0.0476720668 0.0089559108 0.065780811 0.05652944 0.0522598699 -0.0404798798 -0.0103127435 0.0863810256 -0.0203378499 0.0856271461 -0.0219334811 -0.0109330416 -0.0158518329 -0.010987252 -0.0761198997 -0.00416066498 0.0541453287 0.0575259402 0.0207530186 0.0204137862 0.0433383211 0.00954288244 -0.0198915675 0.0152170956 -0.0784794688 -0.0840732753 0.0471826866 0.0766064152 -0.0291932151 -0.0468133278 -0.0477724113 0.0680650994 -0.0249482319 0.0267140642 -0.0145488381 -0.0603933074 0.0596776083 -0.0337780006 0.0490672663 -0.04900546 -0.0301229842 -0.0606570132 -0.0876602083 0.0712443516 0.0407622978 0.09048035 -0.0807182789 -0.084344089 -0.0163253471 0.0352757946 -0.0744902864 0.0418309495 0.0133081451 0.0180554539 0.0495201573 0.0542288348 0.0605637804 -0.022125937 -0.0672822297 0.0479239598 -0.0744469017 0.0308782086 0.0256479681 0.0336574242 0.0075668022 -0.0757317245 -0.0296164155 0.0693053678 -0.0157060996 -0.0149378926 0.0198138505 -0.0612910688 -0.000790067017 -0.0749294162 0.0872528031 -0.0564223975 0.0761914924 -0.0875161514 0.0294622928 -0.0206037387 -0.0742683783 -0.0391575135 -0.0750113651 -0.0638088286 0.0753615126 -0.038726218 0.0205898732 0.0610269383 0.0200911835 0.0344036445 -0.000726386905 0.0178945139 0.0383046791 -0.0650412142 -0.0156081095 0.039039664 0.0897350535 0.0146079957 -0.025656797 -0.068449825 0.0433366671 0.0465680882 -0.0196734667 0.024570249 0.0723638162 -0.0195431411 -0.0700141266 -0.0290503725 0.0655131117 -0.0314052477 0.0561004505 -0.0292638466 0.0676659122 -0.0526599474 0.0858177617 -0.0146469995 -0.081638515 0.0274277553 0.0806225762 -0.0182333663 0.0499647036 0.0302011445 0.0237428099 0.082108967 -0.045173876 0.0610889271 0.00461504608 0.00225446373 -7.51018524e-05 -0.0548746847 -0.0864619389 0.00492070615 0.0659415498 -0.0658756346 -0.0736430585 0.0586962774 -0.0470266305 -0.0794038847 -0.056140244 -0.0312384516 0.0693701431 -0.00701726973 0.029726401 0.0136628225 0.00785472244 0.0278726742 -0.047241915 0.00988192856 -0.0095558688 0.0521236137 -0.0233723298 0.0878590271 -0.091711767 0.0274115577 0.0781187192 0.0889619514 0.0624047741 0.0477343723 0.0287879854 0.0443562493 -0.018955417 -0.0921145603 0.0752635822 0.0221054479 -0.00734980404 0.0395550504 0.0228159651 0.0367527083 0.0228143409 0.0301650912 0.0561948046 0.056259878 -0.0551508069 0.0630256757 -0.0444458388 0.0358968601 0.0753717795 -0.0650056899 0.0497604385 0.0784539357 -0.0807009414 -0.0521199852 0.0896131173 -0.0246348679 0.037145026 -0.0772613436 0.044829078 -0.0129294395 0.0564827546 0.00561093539 -0.0429767706 -0.0812349543 0.0484880432 0.0487974659 0.0649892911 0.053078033 -0.0388310738 -0.0557280965 -0.0387296937 -0.0825978667 0.0553153828 0.0427095369 0.0173675641 0.0784688368 -0.0722199082 0.0874736682 0.0880322978 0.0554679707 -0.0876339078 -0.0732665509 -0.0432177633 0.0679571107 -0.0393268168 0.0475260541 -0.00380772352 0.0718101636 0.0297219306 0.00484155864 0.0637172684 -0.0478335135 -0.028398484 0.0910812095 -0.0757536888 0.00525379181 -0.0123113617 -0.0791921467 -0.0152432621 0.0371359214 0.0541292951 -0.0807433128 0.0433523282 -0.0472057313 -0.0749918818 -0.0770457685 -0.0136387646 -0.0382770486 0.00537249446 -0.00821325183 -0.0389936902 -0.0896427408 0.0332432911 -0.0397228301 -0.0905197039 0.0390296504 0.038498424 -0.00178872794 -0.0795452818 -0.091717422 0.025177516 0.0364510193 -0.0168474987 0.0708702877 0.0472502187 -0.0801413432 0.0568226352 -0.0613038987 0.0574369654 0.0820891187 -0.0550096743 0.0332666114 0.0223004147 0.0610036179 0.0551038608 0.0879233703 -0.0657584891 0.0862714872 0.0735432431 0.032907553 0.027695775 -0.00848785788 0.0794123188 -0.0820285454 0.0207868442 -0.019307144 -0.0121305659 -0.0396097191 0.0305236205 0.00120133162 -0.000525809824 0.0775318518 0.0225948095 0.0283757076 0.0266166478 0.0169405118 -0.052318763 -0.0160065666 0.0159751326 0.0546982661 -0.0381785296 0.00754380226 -0.0368221588 0.0138865188 0.0051722005 0.053707622 0.0266654491 0.0122755021 0.000229150057 -0.032171037 -0.0710829571 0.0502658859 0.0285374373 -0.076263167 -0.0402775146 -0.0689157844 -0.0676574856 -0.0138111338 -0.0604269169 -0.0878307223 0.00807872415 -0.0701710433 -0.00842023641 0.0586579069 0.00365006179 -0.021655798 0.0659761503 0.025116019 0.0606091693 0.0156264678 0.0518877283 -0.0329263471 0.0577278808 0.0340341553 -0.056286525 0.039536275 0.0203353241 -0.0777004957 0.0546018258 0.0283517987 0.0920240656 -0.00936125219 -0.0213244259 -0.091083169 -0.0770907402 -0.0185671076 -0.0880464315 0.0208161399 0.0915260389 0.0778809115 0.0215993598 0.0832250491 -0.0477302186 0.0504507944 -0.0442319401 -0.0216875598 0.0332833603 0.0427487865 -0.0834690183 0.0645336285 0.0234726295 0.0567494109 -0.0479404405 -0.0131835714 -0.0156790316 0.0920737013 0.0869054422 0.031343773 0.0649756417 -0.0791042969 -0.0378034487 0.0446559712 0.0608273074 0.0611459985 -0.0737676844 0.0417314544 -0.0818357542 -0.0768629909 -0.0307011344 0.0641089156 -0.0610259734 -0.010701865 0.0577326789 0.0151567012 -0.0803471208 0.0198379979 0.0816326216 0.0678574964 -0.00741374493 0.0820302442 -0.0730780512 -0.0778919384 -0.0697544068 0.0787556097 0.0236246809 0.00431671739 0.0269435048 -0.0657576099 -0.0694687068 0.0721616521 0.0225097835 -0.00154742599 -0.0207874402 -0.082132414 0.016059041 0.022254087 -0.0353308804 -0.0479665659 -0.00841442496 0.0539846495 -0.0376841761 0.075117521 0.0885528848 -0.0768453628 -0.0843387842 0.0309180245 0.0824579671 0.0894512758 0.0512156412 0.0349785015 0.00472225994 -0.00384642184 -0.0452866592 0.0313478038 -0.0664727315 -0.0913389325 -0.0445887297 -0.0701377392 0.0195763558 0.025415495 -0.0458522849 0.0231141001 -0.0174581781 0.0912700668 -0.0923158675 -0.00315114856 0.0247083008 0.0677550361 0.0350424275 0.0252107307 -0.0694334209 0.030509904 0.0224964023 0.081245698 0.0399827138 -0.0718622357 -0.055126112 -0.0315685198 0.0211488307 0.0754674897 -0.0285541862 -0.0126911253 -0.0339962766 0.0912193879 -0.0820900872 0.00556431711 0.0606149361 -0.0208852068 -0.0544544384 -0.0830840766 0.086537011 -0.05086473 0.0785531178 -0.0558408797 -0.0589033961 -0.034299098 -0.00774900615 -0.064567171 0.0914251432 0.0389785692 -0.0314724892 0.00942143053 -0.0598353855 0.0554245785 0.0806139484 -0.0905338526 -0.0256284699 0.0673783049 -0.0320646614 0.0593118593 0.00331640244 0.065302901 0.0472051576 -0.0435058363 -0.0401921384 -0.0301321186 -0.0809838176 0.0617820397 0.00813865662 -0.0783568025 0.0314299688 -0.0440261401 0.083802186 -0.0696517676 -0.048427552 -0.084964633 0.000546649098 -0.0100910515 0.022815004 -0.0196062252 0.056381084 -0.032865487 0.0119991228 0.0454611406 0.0488160774 0.0647535399 0.0227744132 0.0770061687 0.0415010527 -0.0606850982 0.0392168537 -0.00788150728 0.0661441162 -0.0671588629 0.0460424349 0.0031979233 0.0100888982 0.0133168399 -0.0667241141 -0.00585337728 -0.089877218 0.070115529 -0.0756862462 0.0726521686 0.052602984 -0.0087473169 0.0245682001 -0.00778383017 0.0758434758 -0.0104906112 -0.0728569105 -0.039516855 -0.0423105806 0.0734828487 0.0734237209 0.089332141 -0.0363338329 -0.0690306798 -0.00730393082 0.0586130098 -0.0749534294 -0.0722069889 0.0312286392 0.0770543739 0.0860406533 0.0870704874 -0.0907232538 -0.0884140655 -0.0664570332 0.0391629115 0.0569834486 -0.0399182402 -0.0151842535 0.00339984894 -0.0385194719 -0.011515744 0.0816585496 0.0669751838 -0.0472920127 -0.079243958 0.0429210141 -0.0417852327 0.0749638155 -0.0424914621 -0.0522572212 -0.0659950152 0.0764724389 0.0273347422 -0.0250749066 0.0314927176 -0.00815849006 -0.0254741535 -0.0833909735 -0.0609506778 -0.0250510424 -0.00209154189 0.0639442578 0.0272091031 0.00796297193 0.0325563699 0.0351272598 -0.003184475 -0.0514053069 -0.012416549 -0.0390529186 -0.0483354181 0.0223540813 -0.0216888338 0.0782106146 -0.0199111775 0.0690496489 -0.0907847062 0.0272703171 -0.0519125164 0.0560372844 0.0875895843 -0.00345014036 -0.0882338881 -0.0560493842 0.0858061537 0.012727648 -0.0871922672 0.0683451667 0.0403235629 -0.0282601267 0.0600476786 0.019601427 0.0733242407 -0.047367882 0.0013012588 -0.074660778 0.0620597377 0.0919085816 0.0561122224 -0.0225559995 -0.0406987965 0.0387029573 -0.00470989197 -0.0672701672 -0.0428896099 -0.0472893491 -0.0709196851 -0.0304957107 0.0577644184 0.014571704 -0.0186832398 -0.0649509877 -0.0352424867 -0.0234507918 0.05905696 -0.081174694 -0.0779158473 0.0384146199 -0.0140316337 -0.0523859598 -0.0627980605 0.0617554709 0.0576505587 -0.0749231875 0.0144365355 -0.031639196 -0.0471548215 -0.0478942618 0.0409898832 -0.01225169 0.0741619542 -0.0470142178 0.0849385038 -0.0795329958 -0.0892039612 -0.0558522791 -0.0446602628 -0.0761488229 -0.045791734 0.0789249167 0.075083755 0.0380753204 -0.00839173794 0.0343582109 -0.0347669721 0.0473399237 0.0467570201 -0.00802601129 -0.0184639916 0.0762276575 -0.0842824429 -0.0485944822 -0.0625576824 0.0702099577 -0.0080371052 0.0727517083 -0.0295218527 0.0379545912 -0.00529932976 0.0919715092 -0.0503411666 -0.045737125 0.000867210329 -0.0432248712 0.0185048655 0.0500668511 0.0133430138 0.0674127713 -0.0517596528 0.0211707726 0.0800146535 -0.0168430284 0.0826127902 -0.0704659149 0.00300744176 -0.0833644941 0.0281890556 0.0898493752 0.00584188849 -0.0228457302 0.044279106 -0.010389097 0.0505101904 -0.058516562 0.0264487788 -0.0772018656 -0.0336847417 -0.0105508938 -0.0243165568 -0.0377918966 0.041964598 0.0196105167 -0.0242938399 -0.0561464503 0.0849454626 -0.0901771709 0.0384645984 -0.0141348839 0.0577358976 0.0113897398 0.0677590594 0.0636680648 -0.0045184195 -0.0548408329 -0.0505435541 -0.055212833 0.0285411775 -0.0416879915 -0.0115803033 -0.00841359049 0.0838461444 -0.0402514562 -0.0571938641 -0.0379284918 -0.0448554978 0.0058793053 0.0848714784 -0.0757497475 -0.00311610848 -0.0665716454 0.00478214771 0.0837649927 -0.07908649 0.0832407996 0.0664658472 -0.0503849238 -0.054858353 -0.00514765829 -0.00749614835 -0.080232136 -0.02638717 -0.0649550632 0.0608434454 0.0242949203 0.0178818181 0.015648216 0.0704206601 0.0213679224 -0.0113102347 -0.051051531 -0.0171466395 -0.0548346937 0.0767216608 0.0628794059 0.00664520264 -0.0202987418 0.0485198721 -0.0792057663 0.0782955065 0.00926642865 -0.0500065833 0.0710197464 -0.013718091 -0.0754401237 -0.0331285782 -0.0692650452 0.00104629248 -0.0322189964 -0.0810521394 0.0143201053 0.0199349746 0.0619977191 -0.0603780746 -0.0517764464 0.0471027419 -0.0505457968 -0.064854078 0.0241119042 0.0908671394 0.0173453987 -0.08576148 0.0687382892 0.0607575551 0.07432767 -0.0134728774 0.0797406659 0.0623595193 -0.0912693366 0.00659180433 -0.0820748806 -0.0724766403 -0.021406129 -0.0620062985 -0.0303414389 -0.0176572874 -0.0341373645 0.0322748795 0.0251255482 -0.0714804828 -0.091548577 0.0132224187 -0.00518443435 0.0789079592 -0.0842111707 -0.0558606461 0.0118074939 0.0639389232 -0.0491849333 -0.00577279925 -0.0408281088 0.010818854 -0.0179158226 -0.000575438142 0.00442907959 -0.0406784602 0.0756940916 0.0415076539 -0.0827175379 0.0194581598 0.0150824785 0.0716990009 -0.0297345221 0.0197027624 0.0213376582 -0.0865020826 -0.0874097124 0.00630016625 0.064230077 -0.045315735 -0.0820195675 -0.0281583071 -0.0705238879 -0.0103229806 0.0239717588 0.0803938732 0.035535343 0.086359255 0.00163464993 -0.0182417706 0.0290954933 0.0795271471 -0.0527212918 -0.046446126 0.0416117087 -0.036419034 -0.00732404739 -0.0243921354 -0.0743979737 0.0582932457 -0.0365738124 0.0874655321 0.0824510083 0.021612592 -0.0332476571 0.024186559 0.000161841512 -0.0435442887 0.0524181798 -0.0604146123 -0.0410796218 -0.0580688454 -0.0509728901 0.056614019 -0.0791302919 0.044811897 0.0240081847 0.0503352061 -0.0382561386 -0.0149113908 -0.0612492263 -0.054015331 -0.0110936314 0.0331230536 -0.0695802346 0.0690056309 -0.0866757706 0.0680634752 -0.0862640887 -0.066290766 -0.0478138588 -0.0510401763 -0.0894499272 -0.0130019635 0.0793935135 -0.080984503 0.0852108821 -0.0513974279 -0.0540720075 0.023246251 0.0142598376 0.00452504307 -0.0239685476 0.045320265 0.0439294949 0.0793135241 -0.0683266521 -0.0762221143 -0.0377009474 0.0634637401 -0.0638853535 0.0324802846 0.0148461536 0.0405929014 0.0612183735 -0.0312202275 -0.0495602116 0.0359459594 -0.036695905 -0.0549853556 0.00228908658 -0.0178389847 0.025643833 -0.0921765864 -0.0491106249 -0.0429395288 0.0730410293 0.0039062649 -0.0626842678 -0.00743748993 0.0241092145 -0.0847695991 0.0394841954 0.0691100731 0.0275399014 0.0795567706 -0.0544100888 -0.0294622108 -0.0177149773 0.0732087716 0.0391529128 0.073710151 -0.0809331238 0.0494261459 -0.0306911394 0.0876254365 -0.000771865249 0.00925789028 0.0432826206 0.0603840575 -0.0285049975 -0.0346765555 0.0375252143 0.0163254514 -0.0304304473 -0.0294883102 0.0505520925 -0.0145869553 -0.0282411575 0.0267438665 -0.0836567059 -0.0276411921 -0.0854936317 -0.0761654824 0.0589946434 -0.0763396919 0.0862009451 -0.052886501 -0.0239165351 -0.0741458461 -0.0827225372 -0.0528388917 -0.0161531568 -0.0419691317 -0.0291237086 -0.087211661 0.0149555206 0.0058426559 -0.0654046088 -0.0235361755 -0.045577988 -0.0314670093 0.0704037771 0.0472768471 -0.034759976 -0.0862634927 -0.0370294973 -0.0748171881 -0.0645798296 0.036916621 0.0801900998 -0.000511191785 5.37261367e-05 0.0530137643 0.0179424733 0.0539418831 -0.080384165 -0.0663119704 0.0804879144 -0.0855343491 0.0607863441 -0.0202217698 0.081620343 -0.0404011942 0.0579681918 0.0120717511 0.0172553957 -0.086026527 0.0897771046 -0.0130541921 0.000943765044 0.0693866238 -0.0428069383 0.000433206558 -0.0570045747 0.0114626139 0.0385934934 0.0121301487 0.0208390355 0.0322385654 0.0516852811 0.0789347962 0.0715205446 -0.072483331 0.0202449039 0.0159794465 -0.0298406109 -0.0630692244 -0.0690453127 -0.0532932095 0.0568915978 0.0810422823 0.0877656564 -0.0436964259 -0.0211012438 -0.0079190135 0.0229459405 -0.0507401489 0.00318480283 0.0178747252 0.0326921567 0.0781322494 0.0350668952 -0.0105891973 0.056166105 -0.0771791935 -0.0216837972 0.00962788612 -0.0470530875 0.0456274226 -0.054068815 -0.0717334747 -0.0275032297 -0.00548879802 0.0449125543 0.0418975577 0.0617463365 -0.0223972201 -0.0775106996 -0.0540737249 -0.00987952948 0.0236201212 0.0813292041 0.0384459868 -0.0567534789 0.0102992058 0.073854588 0.0663467273 -0.0490940101 0.00834311545 -0.0452112742 -0.0846370906 0.00420948118 0.0176032037 -0.0790651888 -0.00694357604 0.0356317237 0.0486746803 -0.053187076 -0.062043719 -0.0718482584 0.00826607645 -0.0277814642 0.0471965149 -0.0311799943 -0.0715109706 0.0649770275 -0.000967621803 -0.0638762861 0.0207018852 -0.0522958301 0.0219177008 -0.091644302 0.0672290102 0.0660782382 0.00538785756 -0.0635503083 0.0270936638 -0.0245070085 0.0316335186 0.0550271049 -0.0741439983 0.0773817375 -0.0449489951 0.0683638677 -0.0665123686 0.00683739781 0.0068378821 -0.0344181284 0.0315590799 -0.00978057086 0.000486671925 -0.0176834092 0.0407579318 0.00680115074 0.0463902578 -0.0919547155 0.0636039004 0.0187238231 0.0637916401 -0.0123269185 -0.0216226056 -0.0568374917 0.0624923334 0.0483378097 -0.0670620203 0.0623714253 0.0219382793 -0.0731774494 -0.079273954 -0.0801137835 0.0298482254 -0.0203806832 0.0300964639 0.0365251526 -0.0208114088 -0.0114325732 0.0325429887 -0.0667300746 -0.0331631787 -0.0157612786 0.0288935229 0.0543876365 -0.0890166909 -0.0648952872 -0.0131027475 0.072156541 0.084340103 0.0388663784 -0.0758652389 -0.0182960555 0.00641118735 -0.0271833539 0.0288736671 -0.0646947026 0.0597317144 0.0626680478 -0.0538832881 0.039522402 0.0353385136 0.0177733675 0.0742372051 -0.0886147618 -0.00746652484 0.0444230065 -0.0564768054 0.0574676916 -0.0802659467 -0.0199275538 -0.0109576508 -0.00840087235 -0.047384806 0.0116544813 0.037959747 -0.0109608173 0.0669651702 -0.043358013 -0.00311912596 0.0112226158 0.0587269142 -0.0635145903 -0.0898545459 -0.0526663102 -0.0259750187 -0.035481941 -0.0516156591 0.0529673174 0.0586824492 -0.0534176789 0.0894318298 0.0274610817 -0.0778971985 -0.00688375533 -0.0761872977 0.0216471255 0.0232174397 -0.0746872798 0.0370799229 0.0427828208 -0.0319918692 0.0639218315 0.0627681091 0.0477303788 -0.0382069461 0.0812643841 0.0823890939 0.0488619581 -0.0298298709 0.0758878663 0.0161618963 0.0268575326 0.082555525 0.0142249763 -0.0517058372 0.0301704854 -0.0661388934 0.0287733451 -0.00581851602 -0.014804177 0.0732519999 -0.080848299 -0.01462695 -0.0493425056 -0.0495830812 -0.00370506942 0.0338600352 -0.0727000833 -0.0340164155 -0.0753787607 0.0415649042 -0.0283715427 0.0639319047 0.0835915729 0.0453869328 0.090740107 0.0239816457 0.00429745764 -0.0841591805 -0.00715384632 -0.00498326123 0.0380214676 -0.0889690667 0.0796571746 0.0109583959 -0.0498604141 -0.0152914673 -0.0253260881 0.0160397142 0.00432763249 -0.0613071807 -0.0567988865 -0.0471970364 0.0445379242 0.0731034502 0.059245564 0.00837685913 -0.0167774186 -0.0699981451 -0.0550932921 0.0255529508 0.0361092016 0.0704210177 -0.0184663236 0.0264163762 0.0281364694 -0.0249217302 0.054144077 0.0623281971 0.0257725939 0.0489784554 0.0707919076 -0.0591717474 -0.0203796104 -0.0363774784 0.0654661432 -0.0140930861 -0.0064445138 -0.0213119239 0.0741291419 0.0258119479 0.0779104456 -0.0212916136 0.0550658926 0.0870307758 0.0422418788 0.0835937336 0.0605109707 0.00637042522 0.0807685778 0.0158672407 0.0303412154 -0.0412537456 -0.083946161 0.0231782869 0.0675129518 0.0622431263 0.0347345099 0.02162835 0.0729403123 0.0747277364 -0.0339130536 -0.033626698 -0.0330616683 0.0190676302 0.0647694692 -0.0236124396 -0.0722970292 -0.0797611997 0.0201053098 0.0709160045 0.0557494238 0.0337284282 0.0439811572 -0.0578304939 0.060023658 0.0753932819 -0.0439495891 -0.0789852664 0.0583178028 0.0767300054 -0.0814525336 -0.0492396727 -0.0622556582 -0.0125158578 -0.0732837617 -0.0246876478 -0.0129315481 0.0885404274 -0.0656932965 -0.00632292777 -0.0917152911 0.0224703178 -0.049806159 -0.0146886259 0.0289047509 -0.0717889667 0.0858872458 0.0304188505 -0.0339725502 -0.0691313297 -0.0900751129 -0.0832037255 0.0629885569 0.080241181 0.0573041514 -0.0913883001 -0.0564792044 -0.0306100957 -0.0334176421 0.0756582096 0.086048685 -0.087994352 0.0795513913 0.0885500088 0.0776958093 -0.067469433 -0.0764649361 -0.00724666566 -0.0247871801 0.0632899329 0.074056305 0.0183581412 0.0176269561 -0.0187570825 -0.00791282952 -0.0491183959 -0.0760537833 0.0559092239 -0.0504232645 -0.0488914922 0.00952223688 0.0831782147 -0.00923119485 0.0403452143 -0.0815438777 -0.0112420022 -0.0257481188 -0.0820975453 -0.00607744604 -0.000771574676 -0.0461357348 -0.0481719673 0.0625093505 0.0875220671 0.0703106299 0.0602825508 -0.0612886921 0.0334584936 0.0810478255 0.00523325056 -0.0214507058 -0.0882451162 -0.0109378844 0.0799598172 0.0808237866 -0.0143417194 0.00711292773 -0.0208657533 -0.0765569583 -0.0473479629 0.0026987046 0.00744077563 0.0527782366 0.0883120224 -0.0199099705 -0.0631047562 0.0801357552 -0.0176581889 0.0550807491 -0.078582719 -0.0700138807 -0.0460676551 -0.0479663014 0.0537883118 0.0673792139 -0.0052338019 0.0445325598 -0.0425711833 -0.0829000697 0.00253131241 -0.0655386895 -0.00895254314 -0.0319004618 0.0363795534 0.0731776729 0.0513251498 0.05978439 0.0763960406 -0.0680360645 -0.0533507243 -0.00736325234 -0.0598887801 0.019942373 -0.00841022283 0.0398892537 -0.0419923961 0.0625449643 -0.0478835851 -0.0667529032 0.0192643553 -0.0612035096 -0.0735189617 -0.0165159553 -0.0300189629 -0.0278794095 -0.0142759681 0.0877772644 -0.0351492725 -0.0887414068 0.0623424277 -0.00591584295 0.0232690573 0.0656946823 -0.0628233925 0.0442362949 0.0127561688 0.081025444 -0.0446660519 0.0743654594 0.0227940902 0.0701156184 -0.0637701079 -0.045011837 0.0146440715 -0.0420157276 0.0856637731 -0.0511717759 -0.00915309787 0.0767400637 -0.0646209717 -0.0750895217 -0.0263726413 -0.0291938558 -0.00418249518 -0.0883259401 -0.0850367621 0.0848144069 -0.0624159351 0.0342398062 -0.0748428926 -0.058149118 0.0863809362 0.0829482898 -0.022093825 -0.0538392924 0.0120876208 0.0151918456 -0.00954140723 -0.0744689852 0.0402206555 0.0464863107 0.0115460753 -0.0607559048 -0.0343539678 0.0763757899 -0.090995416 -0.0568558276 -0.0128568262 -0.0217130035 -0.0388782211 0.0540085062 -0.0515773632 -0.071493566 0.0302663818 0.0152153745 0.074088119 -0.0687511265 0.0107969493 -0.0311170854 0.0674629137 -0.0205109641 -0.0326196961 0.0687562302 -0.0821024328 0.043172054 -0.028940469 0.0799562111 -0.00286204368 -0.0446345992 -0.00612573326 -0.00705210865 0.047380887 0.0551256761 0.0193905681 -0.0222322717 -0.0609935969 0.0522535518 -0.0611063987 0.0725364611 -0.0903128237 -0.0192189068 -0.0807481706 0.0211099386 0.00682784617 -0.000777631998 0.0394812003 -0.0405859053 -0.00777225196 0.04511372 0.047609441 0.033677347 -0.0864964277 0.00477814674 -0.0653313547 -0.00249677896 0.013145797 0.0839205608 0.0799511299 0.00578279048 0.0827630535 -0.0699834228 0.0822680667 -0.00363051891 -0.017527625 0.0811805949 0.000834397972 0.00942821056 -0.0183224678 0.0544162765 0.0201645866 -0.0380308628 -0.0579436943 -0.0518995747 -0.0768773034 -0.0214277655 -0.0132489651 -0.0143589526 0.0591555759 0.0745035186 0.0745686516 0.0915931538 -0.0636456385 0.0568470433 -0.0782278627 -0.000281356275 0.0820719078 0.0386629179 -0.000688418746 0.0158163086 0.0034281984 0.0121882334 0.00348243117 -0.0759370998 -0.0391119272 -0.00819152594 -0.0880572125 0.0838577226 -0.0733239949 0.0114506632 0.0131803751 -0.0442523658 -0.0509555452 -0.0891851187 -0.0768119544 0.0737673566 0.00119761378 0.0537573025 0.0608667657 0.0161395743 -0.0100052357 0.0873076245 0.0432867184 -0.0648823828 -0.0397355296 0.00195334107 -0.0405466817 0.00747907162 -0.0458951816 0.0174333975 0.0375147983 0.0220963135 0.066248931 -0.00460188091 -0.0476560853 0.0652049258 -0.0323276184 0.0103036761 0.0871841386 0.0109611526 0.0857595876 -0.00804788619 -0.0311717167 -0.00881133974 0.0869189873 -0.011282064 0.0668371841 0.0495182797 0.0748874918 0.0751804188 0.030800797 -0.0262266919 -0.0871666223 0.00116530061 0.0250483155 -0.0473108515 -0.0734738261 -0.037730068 -0.0547753088 0.00735808164 0.0757626966 0.0603086725 0.0631356165 0.0434852764 -0.0860958174 0.0864544734 -0.0492724702 0.0116061643 -0.0215651989 -0.0690443218 0.0774776116 0.024598971 0.0380261466 0.0241053849 -0.0778758079 -0.045409631 -0.0625180453 -0.00571988523 0.0786608532 -0.0113817453 0.0431099609 -0.0472020321 0.00554776192 -0.0358462781 0.0286013335 -0.0570476912 0.057858251 -0.0125912204 -0.0723171979 -0.0835375786 -0.0444868207 -0.0775808468 -0.0264179856 -0.0381053686 -0.0423302129 -0.0451984853 -0.0253236443 -0.06510894 -0.0290918127 -0.088393271 -0.0696515515 -0.068067193 -0.0762170777 -0.0358174443 -0.0800496489 -0.00880049169 0.0374935493 0.00952298194 0.0866112784 0.068747066 0.0150223225 0.0170429721 -0.0111873522 0.0608913079 -0.0769930556 0.0644500181 0.0783499107 0.0237000883 -0.0620150566 -0.0324398056 -0.0709076822 0.0861752257 0.0435039625 -0.0758680776 0.0274561048 0.0242745578 0.0180322751 0.0474620685 0.0876250789 -0.0858095661 0.0729160532 0.0399836823 -0.0737144649 -0.0438056178 -0.0157922283 0.0656322762 0.0701873228 0.0323481336 0.0901696756 0.0734171197 -0.0655520335 -0.050758332 0.00371864438 0.0235193819 -0.0220401883 -0.0889193192 -0.0528642274 -0.0503955744 0.000152513385 0.079862915 -0.00403764844 0.0920676067 0.0335195735 0.0198185593 0.0650934502 -0.0299762189 -0.0660251677 -0.0226419121 0.0885435566 0.0892152116 0.0864067301 0.0780307129 -0.0105316341 -0.0581293516 0.0536059961 -0.0165624842 0.0402425155 -0.02758535 -0.0778420642 0.0217796937 -0.0749350339 -0.0584251285 -0.0886906981 0.0814111754 -0.0129055977 -0.0750496164 -0.00853667408 0.0732908323 0.0751730278 -0.0733122006 0.0412834361 -0.0152791217 -0.0485844016 0.0653377548 -0.0720827132 0.0495106056 0.0858748034 0.0412762687 0.0403486714 0.0464539006 0.0181713402 0.0100875944 -0.059569452 0.0723793879 -0.00448866189 -0.0815446004 0.084900476 -0.0468669012 0.0471705422 0.00378507376 -0.0750772655 0.0565818176 -0.0783454478 -0.0587802231 -0.0601646379 0.0302889198 -0.0358884297 -0.0166015774 0.0515357628 0.0709447786 0.0888732001 -0.0723698661 -0.0203827992 0.0286392123 0.0809335485 0.0218270347 0.085611321 0.0367001519 0.0214565769 0.0791013017 0.0285588503 -0.0263589472 0.0288520306 -0.0264705643 -0.038367711 -0.0249348283 -0.00791919231 -0.0476893894 -0.0786426291 -0.0543221571 0.0619330332 -0.0817421451 -0.00962518156 -0.0381552204 -0.0504050627 -0.0538979284 0.0562410727 -0.0103322864 -0.0651564598 -0.0704375207 -0.0289320871 -0.0489182547 0.0430765674 -0.0702619851 0.0371437147 0.0795819536 -0.0797132179 -0.0888189971 0.0336421356 0.0822728202 -0.0145777985 0.0799367949 -0.00941926986 0.0798441842 -0.0742848217 0.0214568898 -0.015793927 -0.00953155011 -0.0215190649 -0.0256105959 -0.0332799442 -0.054430712 -0.0145091042 0.0107884556 -0.0312134475 0.0228169784 -0.0823966488 0.0157700852 -0.054066021 -0.0883812532 0.054192476 -0.0305174105 0.0214168504 0.00219970196 0.0494747832 -0.0684236288 0.0538032129 -0.0226261318 0.0748923495 -0.00148141384 0.0389706418 -0.0641459599 0.0844876841 -0.0365999192 -0.0319524929 -0.0777860731 0.035094209 0.0758400634 -0.017117478 -0.0545213744 0.0563060418 0.0247568116 0.0191650689 -0.0866698474 -0.0123076588 -0.0237086937 -0.0724460185 0.0108845979 -0.0168403015 -0.0678520352 -0.0717472285 -0.0432171226 -0.0671793967 0.0374257937 -0.0259412155 0.00613220781 -0.0446416847 -0.0104117021 -0.0664880946 0.05621811 0.0205035508 -0.049570933 0.0521737114 -0.0156391487 -0.0184599608 0.0661252663 -0.0601754673 0.0536587462 -0.0121747404 -0.0403983518 -0.0376291052 -0.0726641864 0.0542812422 0.00312502682 -0.000802740455 -0.0853802338 1.03861094e-05 -0.0887522399 0.0290252119 0.0859565064 -0.0349604897 -0.0218037069 0.0757531896 0.0315034613 0.00818173587 0.0564892218 -0.0508424342 0.0122811869 0.0594040826 -0.0302730277 -0.00793623179 -0.071996212 -0.0567473806 -0.0570211895 -0.0392082259 -0.0310777985 -0.0509900562 -0.0113581717 -0.0332129672 0.0504461154 0.00855892897 0.0222758353 0.0158679411 0.0497868732 0.0359100029 -0.0596942082 -0.0418337211 -0.0730056614 0.0900903419 0.074471496 -0.0170772672 -0.000312238932 -0.0180502832 -0.0134600177 -0.0870503187 -0.00227108598 0.0606605634 0.0496043935 0.0454784557 0.0721827373 0.0217036679 0.0511293635 0.0748401061 0.0275294259 -0.0604086481 0.0114546046 0.0221702456 -0.0821247771 0.0598340854 0.0869553015 -0.089771539 -0.0820142627 0.0670967773 -0.0731604844 0.0323225781 0.00367918611 0.00732085854 -0.0236195028 -0.0605654493 0.00133753568 -0.0612697192 0.00519321859 -0.0559322461 -0.0696897805 0.0821314678 0.0131612048 -0.0493094027 -0.0423440784 0.0823759064 -0.0682209581 -0.082068339 -0.0817461461 -0.0213985592 0.0754808858 -0.00422343612 0.0800022557 -0.0442176312 0.0539367571 0.032749556 0.0247234851 -0.00913874805 -0.0570527986 0.063861303 -0.0497494824 0.0568195358 0.0317636207 -0.0440915339 0.0102447495 -0.0125196427 -0.0615293086 0.0634089783 -0.0228347406 -0.0722298548 -0.0724270716 -0.010767065 -0.0579527169 0.0430367664 0.0918153003 0.0270973593 -0.0106281787 -0.0344172716 -0.0170690119 0.0200234801 -0.0882523581 -0.0367931463 -0.0818354487 -0.0393721163 -0.0253784284 0.0902323052 -0.0523301885 -0.00799037516 0.0473433211 0.0702496544 0.0895981416 -0.0376319662 0.0530823097 -0.0902721062 -0.0729509145 0.0535176769 0.00562215596 0.0757349953 0.0108958259 0.0426241681 -0.0729715824 0.0824559703 -0.0791903809 0.0099504292 0.0528443083 0.0418153033 0.00584193319 0.0582414046 -0.0710841641 -0.0476892777 -0.0828375146 -0.00292281806 0.0917911753 0.0503066555 -0.0290147141 -0.046747297 0.0819685385 0.0888497606 0.0206517652 -0.0662564784 0.0847585425 0.0304201469 0.0784679279 0.0262197778 0.0132890418 0.0176582113 0.0688656494 0.0424552336 -0.00698255748 0.0313838124 0.00890251249 0.0280410349 0.0498684421 -0.0747551396 0.0321427956 0.0790843293 -0.075065285 0.0843359008 0.0129514262 -0.0393558927 0.050535582 0.0737330839 0.0288038328 -0.0137827396 -0.0667149574 -0.0481767207 0.0842216089 0.00217538327 0.0665963218 -0.0877918974 0.0353813693 -0.000824205577 -0.0821938217 0.058992587 -0.0268554389 0.0849337503 0.0543613508 0.0405648872 0.0478900596 0.0807121024 0.0304447562 -0.0235417411 -0.072287634 -0.0190829262 -0.0451596156 0.0745178238 -0.0654202104 -0.0106950626 -0.0103224292 -0.0147404373 0.0902342424 0.0916421935 0.0385525301 -0.0921212956 -0.00777973235 0.0295499861 -0.0153831393 0.0735341236 -0.0397263505 0.00448518246 0.0913156942 -0.0499774665 0.00692839175 -0.0701207221 0.0884009674 0.0103159323 0.0672107562 -0.0703160018 0.0203872919 -0.0525886342 -0.085222289 -0.016350016 -0.0207678303 -0.00178454071 -0.0835956708 -0.0163201466 -0.0555750579 0.0378006622 -0.068703711 0.000310614705 0.0810481086 0.0702313557 0.0666060075 0.0623866692 0.0529369786 -0.051594045 -0.0425708741 0.0715504363 0.0302865431 -0.0311128832 -0.0743976682 -0.0672276244 -0.0895008817 0.0295681655 -0.0099722445 0.0296058953 -0.0754478723 -0.0635176897 0.0513241366 -0.0200540721 -0.0397496149 0.0907728896 -0.0434887335 0.0644046888 0.00544241816 -0.0696104541 0.0172906369 0.0327020362 0.076885663 -0.0713733584 -0.0363821909 -0.0630557984 -0.0197623894 -0.0220226198 0.049028106 -0.00135747343 -0.0443766564 -0.0678315461 -0.069831416 0.00392158329 -0.0218399167 0.0147336796 0.00610240549 -0.0207426697 0.043156974 0.0493099764 0.0162182599 -0.0421707034 -0.00125732273 -0.0765841678 0.0736971423 0.012700133 0.0678285733 -0.0749212503 0.0642149672 -0.0732708424 -0.0305776969 -0.0885138214 0.0493302867 -0.0307342596 -0.0648363605 -0.0605146065 0.0241073221 -0.0633991212 0.0305563733 -0.0332591012 0.00784314424 -0.0541668497 -0.0328423567 0.00685342401 -0.0695883334 0.0708403811 -0.0655684546 0.0460653082 0.0865089968 -0.0511761345 0.0824660733 -0.0268600434 0.0678947195 -0.0775891617 0.0175481588 -0.0843092054 0.0560975596 0.0317001417 0.0092189759 -0.0198297203 -0.0863133222 -0.0809280202 -0.083320491 -0.0383398905 0.0268797651 0.0447380468 -0.0236880705 0.0376606658 0.0382998362 -0.0665912554 -0.0492024533 -0.0637234449 0.0641014948 -0.0299409553 -0.0296389759 0.0261139944 0.0129184499 -0.0222649574 0.0361404642 0.0138487667 -0.0899488628 0.0786368772 0.0375898108 0.0390492007 0.0663196221 0.00389120728 0.0148083791 -0.0194407031 0.0255130231 0.021583207 -0.0578314401 -0.0667129308 0.0145164132 -0.0303850397 0.0816166475 -0.0534764268 -0.0914792269 0.0649640188 0.0177424699 -0.0745983794 0.0578747317 0.052815713 -0.033559721 -0.0296500474 0.0208098441 -0.0465629585 -0.0698843971 -0.0307637975 -0.00640080124 0.0389808938 -0.0744305924 0.019119814 -0.072881341 0.045606412 0.0668116286 0.0236431211 0.0354438201 -0.00419999659 -0.0125971437 0.0462350622 -0.0386341698 0.0187705308 0.0366004035 -0.0324517563 -0.0517823249 0.0467255786 -0.0836957693 -0.0651882216 0.0643015131 -0.0858136192 -0.0693512559 -0.0134075284 0.0821785256 -0.00872860849 -0.0564076938 0.0656159446 -0.0584199131 -0.0362068564 0.0763459429 -0.0146555826 0.0515971556 -0.00238038599 0.0312169045 0.0613946244 0.0506570563 0.00694159418 -0.0338289104 -0.0367975719 -0.0601367056 -0.0776153579 0.0797149613 -0.0412471667 0.0250495896 -0.0430078059 0.0374286994 0.0324849933 -0.0662219897 0.0163574144 0.0374011621 -0.0448691435 0.0855363384 0.0532035604 -0.0495872423 -0.0662693307 -0.0472429283 0.0439447835 0.0518793091 -0.01115942 -0.0467279926 -0.0494541004 0.0694921687 -0.0207787454 0.0289187878 0.0917172208 -0.0239735842 -0.00875902176 -0.0211698711 -0.0359720923 0.044976376 -0.0621795654 -0.0635599941 0.0912447497 0.0551508293 -0.0294389427 -0.0488049909 -0.0225089043 0.0717269555 0.0584552363 0.0639182553 0.0775792226 -0.080065079 -0.0116126612 0.000353179872 -0.0183840916 -0.0061122179 -0.0711665303 0.0708961114 -0.0348564908 0.0859167352 -0.0450325273 -0.0740029737 -0.0545046031 -0.045899123 -0.00492147356 0.0164716914 0.0477379933 -0.0848933831 -0.0458478592 -0.041204378 -0.0199097916 -0.0788594112 0.0389662012 -0.0781498402 -0.0834077448 -0.0344732217 -0.0465488285 -0.0529014468 0.0328004435 -0.004762806 -0.0277965218 -0.0822388306 -0.0345330238 0.0277387425 0.0497613922 0.0330237225 0.0583756492 0.0100013837 -0.0571855009 0.0347959027 -0.00477153808 0.0777215734 -0.0869503692 0.0384933427 -0.0825896338 -0.0622770265 0.00863906741 -0.0464332737 -0.0171510205 0.0210549086 -0.0514791533 0.082784228 0.0472474024 -0.0172922388 0.0361949727 -0.0668384582 -0.0354239419 0.0919474289 0.0784156099 0.0120289475 -0.0230679885 -0.04159493 0.068105869 -0.0292794332 -0.0502044149 -0.0584840067 0.0202749446 0.00622546673 -0.0486963019 0.0628429875 -0.0664081946 0.0877910778 0.0691011176 -0.0388350822 0.0813954994 -0.0776790082 0.0412790999 0.0116146654 -0.0797343031 -0.0835758373 -0.0832891762 -0.0417860933 -0.0245532319 0.0217838064 -0.0816653967 -0.0566241667 0.0827181712 0.090093933 0.0493487194 0.0605877265 -0.00490199775 -0.0375586264 0.063042812 0.0780529901 -0.0212419331 -0.0173327848 -0.0200399384 0.0632803366 -0.0535764433 0.0687986389 -0.0212310851 -0.0155814812 0.0622687563 -0.0629495159 0.0519495383 0.0900032744 -5.38378954e-05 -0.0649576187 -0.0418342277 0.0537415668 -0.0324803069 0.0463143215 0.0484229997 0.027772598 0.0121048763 -0.0737757832 -0.0580666438 0.0632145926 -0.0783638656 0.0526103154 0.0321379304 0.0499276593 -0.025323756 0.00327392668 -0.035312172 0.00171734393 0.0644027814 0.0845575407 -0.035832081 0.08574415 -0.0434239991 0.0471609607 -0.0607192591 -0.0229174122 0.0188571438 -0.0745420158 0.0685154274 0.0203186199 0.034199439 -0.0608873963 -0.0776414797 0.0330732241 -0.047818657 0.00402787328 0.0665622875 0.0116173699 0.0771872923 -0.0620762035 -0.00870130956 0.0215327144 0.0554514304 -0.0304217748 0.0806800798 0.0804475322 0.0494578257 0.0479757711 -0.00330993533 -0.00859627873 0.0417002216 0.0489061996 0.0545001701 0.0542103872 0.0163441598 -0.0487834178 0.0739080682 -0.0248923451 0.0228514075 -0.0498076752 0.0881691352 -0.0278212577 0.0840532854 0.0407709405 -0.08151678 -0.00123657286 -0.0515688658 -0.0511107408 -0.0209280401 -0.0920661092 -0.0876166746 0.0538214371 -0.0218809173 0.0876527652 0.00215920806 -0.0761006176 -0.00753477961 0.0590645149 -0.0591331609 0.0414389148 -0.0480465069 0.0362994894 -0.0216417089 -0.078052111 -0.0757187381 0.0274312571 0.0830193684 0.0808209106 0.00260557979 0.00530932099 -0.014732182 0.0696650222 -0.0091181919 -0.0254783332 0.031828776 0.0606341884 0.0428115204 0.0429777876 0.0324776173 0.0500900224 0.00845754892 0.0460312888 -0.0438777022 -0.00999940187 -0.0595136993 -0.0601951219 -0.00164735317 0.0152828395 0.0902476534 -0.02805686 0.0887978598 0.0130712688 0.00699143112 0.0607744977 0.0922200605 -0.020486556 0.0301318541 -0.00331798941 0.0728990659 -0.00057015568 -0.0295934528 0.0764059648 0.0448720977 0.0844331011 -0.0745738372 -0.0605156161 0.0350204483 -0.0102704614 -0.0278675705 -0.0852701142 0.0713463798 -0.0538815297 0.0270319209 -0.0620777011 0.0373031273 0.0245901197 -0.00607982278 0.0600222126 -0.0152762383 -0.0804951191 0.0355799571 -0.0903321058 0.0313138813 0.00429908931 -0.0121658742 0.0297431946 0.0452855155 0.0345725939 0.0384500995 0.019230023 -0.0398747697 -0.0739730895 0.0341418162 0.08101096 -0.0737099499 0.0509758219 0.0214779079 0.0180701613 0.0398864076 0.00919128954 0.0410966203 0.0627245232 -0.0617471486 0.0808793381 0.031342119 0.041885145 0.0318195745 0.0601714775 0.0506139919 0.0332178101 0.0338994339 0.0423031226 -0.00375762582 0.00782434642 -0.00638604909 0.0555780008 -0.0289240479 -0.0726664811 0.0651410893 -0.0663310066 0.00425039977 -0.0431479663 -0.0326956995 0.0533100739 -0.0276896134 -0.0656476691 -0.0807405561 -0.0126128793 -0.0233857557 0.0213807523 0.0353211239 0.0478775129 0.089476265 0.00620842725 0.0243235976 -0.0696097091 0.0611900464 0.0268954113 0.0037535131 -0.0497372635 -0.060235206 0.0234684274 0.0557063296 -0.0507812202 -0.0011555925 0.0847576484 -0.0293174237 0.0163644105 0.0541105047 -0.0457748063 -0.0271983445 -0.0912084728 -0.0403814055 -0.0180388168 -0.00329294056 0.0580156967 -0.0053358674 -0.0844372585 -0.0276461467 0.0893680528 -0.0459296964 0.00276647508 0.0700291321 -0.087729387 0.0461236462 0.0882598236 0.0820785686 0.074382253 -0.0831242502 -0.00688104331 -0.0756142288 0.0321163833 0.0539085194 0.0774787143 -0.0257449672 0.018786706 0.0360702351 -0.0613971353 0.0285121724 -0.0520217307 -0.04251552 -0.055960726 -0.0231386423 0.0374613032 -0.0633406863 -0.084412232 0.047017999 0.0156561807 0.0911661014 -0.0795616508 0.0567694381 0.0546284989 -0.0503547452 0.0630892143 0.0129003376 0.00024856627 0.0561984852 0.0415392593 0.0842263177 -0.0608584546 -0.0613852516 -0.00613649935 -0.0208660811 -0.044060193 0.0812308565 0.0122116283 -0.0518886335 0.00326345116 -0.0509708636 0.0122456774 0.0202063844 -0.066211313 -0.0702218413 -0.0626464039 -0.00443000346 -0.0867060795 -0.00792385638 0.0300800428 0.0174932629 0.0250330642 -0.000823698938 -0.0796664208 -0.025792554 0.0845797285 -0.0265630111 0.0393196866 0.043537356 0.0444565788 -0.00453270227 -0.0125839412 -0.0491573997 0.0797647014 0.0829143599 0.0328995213 0.0757356808 0.00220366567 0.062972717 0.0838626698 0.0414957926 0.0324286893 -0.0804386437 0.0815884843 2.69860029e-05 0.0743989423 0.0478623733 -0.0785477608 -0.0432100371 -0.0909351483 0.00882426649 0.0488145426 -0.0392154008 -0.0914326534 -0.07448221 0.0268105641 0.0151380077 -0.029668577 -0.0829561353 -0.0686279088 -0.090192385 -0.0205502957 0.0333940014 -0.0514695756 0.0555507317 0.0500246957 -0.0192347988 0.0753572956 -0.0440947935 0.0129385293 -0.0483516604 0.00132243335 -0.0735075176 -0.0918540433 0.0892101601 0.00100596994 -0.0331198871 -0.072447896 0.0691712573 -0.0271437541 0.0352407917 0.0268460438 0.0436930135 -0.00383052975 -0.0117281303 -0.0562711842 -0.0242607817 -0.023207821 -0.0460327938 -0.00208899379 0.0325835571 0.0128132403 0.00767106563 0.0359718874 0.0691074505 0.0616788492 -0.0498591363 0.0290595889 0.0395320281 -0.000592127442 0.0754947737 -0.0554360189 0.0204896852 0.0612353608 -0.0433764346 0.0705745146 0.0713702515 -0.0579471923 -0.000369004905 0.0545122549 0.0376273915 0.0481331125 0.0341518 0.0874066278 -0.0351215191 0.0471878424 -0.0915628225 0.052156724 -0.0922590122 -0.0747126564 -0.0189039782 0.0402381346 -0.0318751037 0.0415485576 0.0253116712 0.0755307004 0.0811228529 -0.0901206061 -0.0549745262 0.0741797462 -0.0721971691 0.0468186811 0.0906814709 -0.0915628448 0.0761958286 -0.0371497609 -0.0845306069 -0.071481742 0.0686241463 0.0254988447 0.038754411 0.0802089199 -0.00933384895 -0.0204694122 0.0406297073 0.0787530765 0.0872323737 -0.0146643445 0.0123975724 -0.0617298931 -0.0584635139 0.084986113 -0.0388304815 -0.085376054 0.0483352169 0.0368622765 0.0492499098 -0.0605236515 -0.0849194899 0.00398649275 -0.0141006336 0.0380909517 -0.0704174042 0.0689584389 -0.0548335686 0.07761655 -0.0352351815 -0.0672114491 0.0483813509 0.0905996487 0.00754701346 -0.0879238993 0.0336201116 -0.0226718858 0.0179443434 -0.0235220417 -0.0213136226 -0.000911936164 0.00468992442 -0.027033858 0.0782133564 -0.037099313 -0.0298664719 -0.0301702842 -0.0505082048 -0.0755234584 -0.0546417944 -0.0531237535 0.0283925459 0.043985866 -0.0112820417 0.0585140362 0.00682062656 -0.062209785 -0.0613777675 -0.0917060003 -0.00788844377 -0.034181606 -0.000735677779 -0.0576182455 -0.00704427809 -0.0516904742 0.0874994621 -0.0738954097 0.0248517394 -0.0350866094 -0.0884909332 0.0197088197 0.0335639492 -0.0368294194 0.0760960206 0.0906790718 -0.0443006344 0.0810809508 0.0915102139 0.036910139 -0.0401933268 -0.087587975 0.0291792378 -0.0280662626 -0.0212970003 -0.0733212456 -0.0439874232 0.0661941394 -0.0819116458 0.0102571025 -0.0146417841 -0.0571084842 -0.0917095393 -0.0726186708 0.0378853008 -0.0316018462 -0.0175121501 -0.0495934263 0.0670957342 -0.0127856433 -0.0185706094 -0.0618698113 -0.0771038756 0.0210639387 -0.0428175032 -0.0232613087 0.0792084113 -0.0749692768 -0.0853647366 -0.0601427145 -0.0362421386 0.0739485398 -0.0496218875 0.00725522637 0.0277595446 -0.0800635144 0.00533291698 0.00686645508 -0.00300647318 0.0514365658 -0.0782790408 -0.0865399465 0.0436375514 -0.0735983327 -0.0512177572 0.0223332793 0.012658 -0.0561604053 -0.0523386374 0.0294965431 0.0226578638 -0.0251678973 -0.0260860845 -0.0120196119 -0.0390838869 0.0855411813 0.0648369715 0.0404523686 -0.065456152 0.0735830441 0.0367128029 0.0111501068 0.0200571567 -0.0310860723 0.0877489075 0.0562244728 0.03602577 0.0495149568 0.052003555 -0.0481097437 -0.0415542126 -0.0836183429 -0.0719427764 -0.070012629 0.0338111445 -0.0816573128 -0.0857688263 0.0836748555 0.0555590615 0.079199411 -0.0444590859 0.0886792019 0.0318240598 -0.0415463522 0.070764415 0.0341998562 -0.0655938312 -0.0370221213 0.0502902493 0.0850911662 -0.0285703465 -0.0479620993 -0.00812179595 0.0120520294 0.0364613011 -0.0541624911 0.0273775086 0.0266684815 0.0319716632 -0.0408169925 -0.0144476071 -0.0738123432 0.0559498295 0.0625880137 0.0387256518 0.0711947754 0.0281059667 0.0545054451 -0.0855698287 -0.0888237283 -0.0662223399 -0.0921853632 0.0686333701 -0.059258908 0.0559416637 0.0186122134 0.0895125195 -0.031509161 0.0393376872 -0.0584754013 0.0513774678 0.0108374283 -0.0901786238 0.0406734571 0.0819121525 -0.0590081438 -0.0251517668 -0.0357716195 0.00774671882 -0.0198352411 -0.0527434126 -0.0037169531 -0.0890804157 0.0191610381 0.075292103 -0.0162051916 -0.00553354621 0.064591147 -0.0465003625 -0.0633175522 0.0264152065 0.0429789647 0.0253487378 -0.0900125802 0.0593155399 -0.0282256603 0.0693139359 0.0693239942 -0.055015441 -0.0759994984 0.0154035464 0.0831330791 -0.078204751 0.0142381564 0.0686506853 -0.0438542403 -0.035015054 0.019064419 -0.0248319954 0.0852202103 -0.0232989863 0.0368903056 -0.048396036 0.00787248462 0.0497195199 -0.00710090995 -0.052841533 0.0562443808 -0.0178830922 0.0742151812 0.00458649546 -0.0276773348 -0.0600240789 -0.00678138435 -0.072788015 0.00169181079 0.0171093792 0.02583424 -0.0291160047 0.0278005078 0.027597107 0.0495207682 0.0438927785 -0.0652093738 0.0187336653 0.0514122173 0.0725480244 0.0886282995 0.0673804805 -0.0507724173 0.0867026374 0.0473810807 0.0554169789 0.0705683902 -0.00697465986 0.0202568993 -0.0447166748 -0.0340153836 0.0183069035 -0.00687045604 -0.0715132207 0.0129238665 -0.0658681914 0.0877020583 0.0472853854 0.0320375413 0.077622138 -0.0722021013 -0.0170089006 0.0757818893 0.0626239553 -0.0909491926 -0.0535693765 -0.0146905854 0.0452908203 0.0334035978 0.0820092037 0.0571693406 0.00218378752 -0.0333875567 -0.0822563767 0.0605004057 -0.0889876857 0.0293372944 0.0660036877 0.0619325861 -0.0421813764 0.0508524254 -0.0176641941 0.0503663048 0.0212004036 -0.0507553369 -0.00279990584 -0.0740576684 -0.014628008 0.0681340173 -0.0612709299 0.0456905887 -0.0331613533 -0.0910166726 0.0601311103 -0.047603637 -0.0307735913 0.0892601982 0.0174436718 -0.0378102958 0.0339037254 0.00545439124 0.0397656783 0.0167166218 -0.0512089729 -0.00637458265 -0.0221284702 0.0101178437 0.0701451823 -0.0808236673 -0.0342512466 0.0521620288 0.0383068547 -0.0422457568 -0.0144589022 0.00153945386 -0.0677313507 -0.0148821846 -0.023685731 -0.0840070248 0.0403008237 -0.0439293161 0.0901441798 0.0678502545 0.0369125977 0.0590684786 0.080272533 -0.0593923777 0.0850591436 0.00908050686 -0.00946069509 0.0331560746 -0.0597102121 -0.0213033408 -0.0872435048 -0.0394646674 0.0750271007 -0.00895278156 -0.0491180867 0.0293358415 0.0637221858 0.00821998715 -0.0499917716 0.060943611 0.0334143266 0.00242392719 0.0413017347 -0.0422145911 0.00331418216 0.0719608292 -0.0578006022 -0.0759667754 -0.0056161508 -0.0828387961 -0.0635291785 -0.066585049 0.0251857713 -0.0338551439 -0.0395725183 0.00398127735 0.0280390754 -0.00348888338 0.00144280493 0.081724517 -0.00964126736 0.0763897225 -0.00299435109 0.0122539327 0.0509850606 -0.0175799876 0.0357027426 -0.00729682297 0.0429800674 -0.0624364056 0.0641497448 0.0605793819 0.0472562686 0.0168054551 0.0796775892 0.00806859881 -0.0619183257 0.0272268206 0.00653316826 0.0470701531 -0.020083718 -0.0178300664 0.0678406134 -0.0433489904 0.0823564157 -0.0342188925 0.0284347832 0.0341414288 -0.0808851197 -0.0408214182 0.0198597834 0.0223530009 -0.0287797078 0.0536333099 -0.0644916743 -0.0389684215 -0.0540048964 -0.0768786892 0.0807818994 0.050249882 -0.0170138553 -0.000662386417 -0.0683028325 0.0163651854 -0.0471711308 -0.023626022 -0.023189418 0.0528875366 0.0299862996 0.0536815897 0.0533972606 0.00679896772 0.0808875635 -0.00185889751 -0.0426540747 -0.0841269791 -0.00669553876 0.0722636804 -0.0509390794 -0.0113680139 0.0395458713 -0.0909396857 -0.0352495536 -0.00172308832 -0.035196308 0.00315328687 0.0898926929 -0.0272945687 -0.0360782258 0.0318286195 -0.069098562 0.0693463758 -0.0630519986 -0.0782522485 -0.0885896012 -0.0410404652 -0.0534633063 -0.00935479999 -0.0189172775 -0.0461589359 -0.0765826255 0.0654845312 -0.0264026448 0.00318779796 0.0785245672 -0.0784615055 -0.0239869505 -0.0183002129 0.086848177 -0.0237252414 0.0443218723 -0.0256051123 0.0468266681 -0.0576979034 0.0605413094 -0.0160005763 -0.0322031491 -0.065561235 -0.056706816 0.0253937691 0.0360329077 0.064585112 -0.038915839 0.0807879195 -0.0200845823 0.0852803513 0.0271180049 0.0619114563 0.0258728936 0.0107946619 -0.0836730376 0.0679741576 0.0267128795 -0.0764617473 0.0775663182 0.0256083682 -0.0479156785 -0.0339393131 0.0436991081 0.057346873 -0.0301870555 -0.0476037227 -0.0317005627 -0.0508361161 -0.0736133009 -0.0360875353 -0.0289105996 0.0590069816 0.00303011388 0.055606626 -0.0456068888 -0.012345545 -0.0242738798 -0.0179099441 0.0771788433 0.0013230294 0.0734433308 0.0220018923 -0.0215268359 -0.0358190946 0.0916682705 -0.0303147621 0.0463506654 0.0606236085 0.0276210979 -0.00724870712 -0.01679454 0.0786959454 -0.0603411421 -0.0382837392 0.0750206932 -0.0224997699 -0.0396691225 -0.00761567056 0.042607151 0.0501610711 -0.0614049956 0.00846278667 -0.0124113113 0.0431734547 -0.0308788009 -0.0831301063 -0.0910087302 0.075327374 0.00877865404 -0.0918762535 0.0847837254 -0.0456107184 0.0285573974 -0.0638099015 -0.0226214826 -0.0363143086 0.0597791299 0.0567055121 -0.0256057978 -0.0345593691 -0.0449591652 -0.0749855638 0.0793524906 -0.0746039301 0.0134181976 0.0413277522 -0.0284919664 0.0355655327 -0.020519264 0.0917513594 -0.0343353488 0.0224089697 -0.0287460089 -0.0794280097 0.0575211421 0.0628132448 0.0343104824 -0.0123171955 -0.0561086163 0.0865316615 -0.00258112699 -0.0410179906 -0.0109897852 -0.00959033519 -0.0538258217 -0.0632206202 0.0350044295 -0.0275700092 -0.0814913586 0.0109036341 0.0692757592 -0.0751690045 0.0178773254 0.0271888971 -0.059542954 0.0103230625 -0.0107400343 0.0243601352 0.0109919608 -0.0137168616 0.0458329991 -0.0734502524 -0.0226026177 0.0186253265 0.0592625663 -0.0540973209 0.0754677728 0.0474036708 0.0399869308 0.00718829036 -0.0596512668 0.0307165161 0.0456561223 0.00368787348 0.0375659391 -0.0747809559 -0.0391491503 -0.0786532164 0.0245722309 0.0771721378 0.077716805 -0.0558862872 0.0374392942 -0.0860632434 -0.0301394686 0.0830476955 0.087332584 -0.0332186893 -0.0150616094 -0.0382593982 0.0863582864 -0.0442160033 -0.0254130736 0.0351082012 -0.059838511 0.0517314747 0.0465483144 -0.0798644274 0.051089637 -0.0134382769 -0.074495703 -0.0623520613 0.0749709979 0.00935643166 0.091706194 0.00998236239 -0.0451074056 0.0868507549 0.0325681269 0.0526371673 -0.092121996 0.00760430843 -0.0345609561 -0.0524684116 0.0390715823 -0.0375264473 -0.0899606124 0.0336517319 -0.0116493106 -0.0150304213 0.0387175307 0.0294156075 0.00560626388 -0.0856208727 0.030687578 -0.0546231046 0.00801313668 0.0187227875 -0.032299269 -0.00209072977 0.0257612765 -0.0532143489 -0.0647951588 -0.00997041166 0.0318459645 0.00976222008 0.0694703385 -0.0876970738 -0.0606772415 0.0199289843 -0.0642558113 0.054126285 0.0905071571 -0.0665132105 0.0740600303 0.0784754977 -0.062376976 0.0581515208 0.049904041 0.00525275618 -0.0798248351 0.0300994739 -0.0161789954 0.0382257178 0.0146574974 0.0617994294 -0.0231863409 0.0692197755 -0.0742461681 -0.0492856093 0.0671679154 -0.0889496952 0.072871156 0.0709361658 -0.0495065935 -0.0335232727 0.00502879918 0.0515234396 -0.00173345953 -0.0721445233 -0.0568356663 0.0662107691 0.0892133787 0.0265810117 -0.00384952128 0.0827768371 0.0644328818 0.0811790302 0.0557257906 -0.00215828419 0.0893995687 0.0137124583 0.089777492 0.0294916555 0.0231989324 0.0749269351 -0.052963648 -0.0199472085 0.0711617097 0.0583942309 0.0686227158 0.0271186233 0.0881720707 0.045432128 -0.0149656013 0.0649945959 -0.00229100138 0.0860197023 -0.0576865897 0.0322291404 -0.0162512138 0.0304598957 -0.0550265126 -0.00435373932 -0.0449834652 -0.0462975129 -0.00253516436 -0.0206084698 0.042539902 0.0135166794 0.07621672 0.0881973132 -0.0744796097 0.0608758703 -0.0176370591 0.0869807079 -0.0597574003 -0.0246784315 0.0609469637 0.0118329599 -0.0700320676 0.0868967548 -0.00309396535 0.0383166298 -0.0914421603 -0.0874178559 0.0643900558 -0.0105203241 0.0494097993 -0.0690860748 -0.0437209867 -0.0236409009 -0.00833657384 -0.0909341797 -0.0721645057 0.0102712736 -0.0843522102 -0.0466761813 -0.0391071104 -0.07049869 0.00326786935 -0.0687007159 -0.0112144649 0.0769876167 -0.0177906901 -0.0421770848 0.0540750399 0.0759697929 -0.0651907325 -0.0551416725 -0.0463635214 -0.0393745378 -0.0692693591 -0.0179403871 -0.0355948322 0.0378861204 -0.0682869405 0.00760983676 -0.037126869 0.0563266054 -0.0534078404 0.0475383475 -0.0479132794 0.0503974929 -0.0368978083 0.0257713124 -0.0207368359 -0.0701508522 -0.0487538166 -0.0814734176 -0.019885473 0.0360627994 0.0821582153 0.0889356956 -0.0782656521 -0.0467826687 0.0511456206 0.00909595937 -0.0373063236 0.0504476056 -0.0556451194 0.0809317455 -0.045862034 -0.0471305661 -0.00349546224 0.0899607465 0.0202127919 0.0866441652 -0.0383077338 0.0151872709 0.00552155077 0.0875325873 -0.0283295289 0.0183235183 0.00912310183 -0.0195761845 -0.0105199292 -0.00294086337 -0.058991503 -0.0122970343 0.0204871744 -0.00885109603 0.0295679271 -0.0604011863 0.0456607863 0.0438041165 -0.0667987317 -0.0133352652 -0.0490872301 -0.0111987516 0.0380418673 -0.0517977104 0.0264618471 0.0228899866 0.0521444455 0.0674939081 0.0731782392 0.0366281345 0.00671225041 -0.0741682947 -0.0807794929 -0.0734146982 -0.0477505103 -0.0273924321 0.0728601292 -0.0905232206 0.0281528458 -0.0775078833 -0.00557371229 -0.03116595 0.0897325203 -0.0677976757 -0.0374904163 0.0897234306 -0.0720654353 0.0659461543 -0.0455403291 0.00859733671 -0.000620938838 0.0423907861 0.070729427 -0.0435034819 0.0320781097 0.00188691169 0.062655963 0.0286981165 -0.0483887494 0.0710474327 -0.0468657799 -0.0046133697 -0.0816529766 0.0909375921 -0.0406353176 -0.0493910164 0.0493242219 -0.0278415084 0.0842672959 -0.0478301458 -0.0327030532 0.0887307301 0.040311195 0.0613120869 0.0553149208 0.047844626 -0.0848269314 0.0628095642 0.0844061151 -0.0846574306 -0.01577878 -0.0181797072 0.0444315746 -0.00247543305 -0.0665585473 -0.0713777617 -0.0408414677 0.0504862592 -0.0139949173 -0.0396374725 -0.051439248 0.0231776908 0.0574101135 0.0167185813 0.008519575 -0.0326925516 0.0669582561 0.040057756 -0.0223489031 -0.00968207419 -0.0158741921 -0.0588750243 0.012260057 -0.0891878232 -0.0242824852 0.0613843277 -0.0148601532 -0.0737471879 -0.0894560888 -0.0450565405 -0.0285953656 -0.0164741799 -0.0342247896 0.0568429753 0.0327012017 -0.012596108 -0.0907260254 0.0229815766 0.0190790519 -0.0921073183 -0.0137487799 0.0521467254 0.0914426669 -0.0573532619 -0.0297149345 -0.0395119712 -0.0685092732 -0.0340794772 -0.049880024 0.0923041627 -0.00778959692 0.0230274647 0.0130539089 -0.0717902854 -0.0228308067 0.00885626674 0.00643079728 0.0459938571 -0.0450974554 -0.00697469711 0.0368278846 -0.0310331173 0.0267281979 -0.0256485865 0.0223376378 0.0847728923 -0.0782912076 0.0854174122 -0.0368856788 -0.000164553523 -0.0604139306 -0.00656171888 -0.0553838313 -0.018508032 -0.0723122805 0.0812061206 0.00604264438 0.0147453919 0.0385448262 -0.0501219854 -0.0154241249 -0.0701091886 0.0291577801 -0.0746677369 -0.0266043916 -0.0227257907 0.0249159634 -0.0627610609 -0.0151089132 0.06822934 0.00474499911 0.00164378434 -0.065334022 -0.0787189379 0.0455134735 -0.0587394834 -0.0254539028 -0.0600451007 0.074968107 -0.0122714564 -0.00894203782 0.0118215382 0.0836331323 0.0654926226 -0.0161859542 0.0647985265 0.0303131565 0.00244536251 -0.0872704908 0.073963441 0.0663995221 0.0667229667 0.0881743357 -0.00588022918 -0.0058189556 0.0251320451 0.0897232369 0.0465622172 0.0686699226 0.0479624048 -0.00529783219 -0.077411212 0.0260394216 0.0635343269 -0.0162134841 -0.0566456281 -0.0915624946 -0.0626688823 -0.0710458681 -0.0180915967 -0.0338794217 -0.0222494379 0.031040445 0.0498375222 -0.00961571187 -0.0720916986 -0.0321982838 0.0749337599 -0.0335410796 0.0349768028 0.0702870861 -0.0585441403 0.0213549584 -0.0434438549 -0.0562552027 -0.0862452462 0.0159323066 0.0592158809 0.0667059794 0.0882294402 -0.0725845322 -0.0368868895 -0.0093048811 0.0602450892 -0.081542708 -0.0531714931 0.0663009807 -0.0884513557 -0.0534152798 0.0359941199 0.0663581416 0.0523980036 -0.0093902424 0.00257469714 0.0177195966 0.0793015584 0.0273733288 0.00608983636 -0.00407002121 -0.0114769414 0.00708319247 -0.0922806039 -0.0101288706 -0.0525036715 0.0886929259 -0.0784694478 -0.0844536796 0.0380704179 -0.0916500911 0.00266894698 -0.0605288446 0.0128689259 0.0112336427 -0.054816246 -0.0272291377 -0.0624735355 -0.0275755823 0.0219170153 0.0105605572 0.0913086608 -0.0260812417 0.0577950403 0.0726048276 0.0103875324 0.0914224312 -0.0380829386 0.0552139804 0.0716918036 -0.00575802475 0.0194948092 0.0196607858 -0.0688251257 -0.0154603794 0.0704079345 0.0560163185 -0.0347393081 0.0753906891 0.0701325014 -0.000469639897 -0.0216646418 -0.0284605548 0.00611382723 -0.0681919679 0.0562765375 0.0616083965 0.0364361778 0.0321768224 -0.0617880002 -0.0599653982 0.0103796124 0.0800723806 0.0539981201 -0.025802061 -0.00405045599 -0.012535803 -0.0164230466 0.0724722967 -0.0123292133 -0.00934457034 -0.0656369701 0.0623990819 -0.0235828608 -0.0635599345 -0.0589410998 0.0551406667 -0.0882816762 -0.0197012872 -0.0424018987 0.0906395689 0.080585368 0.0702244416 0.0197363719 0.0692917481 -0.0448485389 0.0176439732 0.0276687518 -0.00969041884 0.030776076 -0.0630964115 -0.0922390297 -0.0853958577 -0.0125331804 0.0269996077 0.0473394915 0.0318145081 -0.040960148 -0.0363958813 -0.0430064164 0.0788817033 0.0769019052 0.0892185792 0.0189443231 0.0628849342 0.025081642 0.0701119378 0.0885592774 -0.0427200831 0.0752520636 -0.0117199197 -0.0222317651 -0.0694730207 -0.0147468224 -0.0167672932 0.0572016165 -0.0736428201 0.0720352903 -0.0847357437 -0.0792911202 -0.0895221606 -0.0786787271 0.00508192927 -0.000954993069 -0.0295485556 -0.0553220473 -0.0238265991 0.0246657506 0.0107206181 0.0281157419 -0.0680829063 0.0163073838 -0.0921222195 -0.0609017462 0.00700557977 0.0440785661 0.00965441018 -0.0222821683 0.00422319025 -0.00459642708 0.0527205244 -0.0655058324 -0.0192549154 -0.0627388731 -0.0692510903 0.0433776453 0.0242662132 0.0597412214 -0.037314225 -0.0279151574 -0.0886844695 0.0274477899 -0.0389660448 -0.0744969994 0.00665123761 -0.0878738463 0.0481140986 0.0520396456 -0.0847634152 -0.00766935199 0.0134441704 0.000225782394 -0.0283882692 0.0194426402 -0.0856006667 -0.0729357302 -0.0656678304 0.0818499699 -0.031481538 -0.0378429368 -0.060106311 0.0372583196 0.0522702113 0.026716508 -0.0447012261 -0.089292109 -0.0119122416 -0.0193740577 0.0757481828 -0.0828429312 -0.0700832009 0.00791921467 -0.00751303136 -0.0751070231 0.000131383538 -0.0284781605 -0.0361783952 0.012543112 0.0786280558 0.0632327422 0.034018971 0.0587976053 -0.0492696539 0.0267035887 -0.0782551542 -0.0813252628 0.0164554045 0.0841793492 0.0246086344 0.0104194731 -0.0823999494 -0.0327219591 -0.0110897124 0.0406872854 -0.0135334954 0.0152908266 0.0378580764 0.0214075595 0.0134624392 -0.0298741348 -0.00838275254 -0.0764734074 -0.0848822445 -0.07616698 -0.0202015415 0.0408487692 0.0583840087 -0.0383970961 0.0405282304 0.0554296151 -0.0354356728 0.0407022908 0.0295078605 -0.0703505352 0.0314286202 0.0744181201 -0.0101754442 -0.048784256 -0.0900577679 0.0342917964 0.0375905707 -0.0704376549 -0.0793072358 0.021738708 -0.0459132083 0.0823807344 0.0265655592 0.0712454841 -0.0593587682 0.0692155883 -0.0655479804 0.0317614675 0.00144644082 0.0180369243 0.0901006684 -0.0519926324 -0.0309030563 -0.0283592865 0.0493290201 -0.0651202053 -0.0733277798 -0.047854688 0.0728779361 0.0374856219 -0.0103715807 -0.0323845372 0.0750987157 0.0490045324 -0.0282365978 -0.0601338893 -0.0739357769 -0.0493408106 0.0282944664 0.0776436999 -0.0750780329 0.0561088845 -0.0572902896 -0.0286985338 -0.0473889671 0.0535841063 0.0392706469 0.0647413209 -0.0920809954 -0.0179115087 0.0518255755 -0.0474525541 -0.0380550511 -0.0302917399 -0.0223803371 -0.0714597553 -0.06438829 -0.018086113 0.00358939916 0.0225623623 -0.0243096873 0.0167284235 -0.0860905573 -0.0696610585 -0.0905402601 -0.000404044986 -0.00424786657 0.0156959519 0.0663768128 -0.00309383869 -0.0857530013 -0.0363427699 -0.0782935843 -0.0433808602 -0.0542082302 -0.037915878 0.0600795522 -0.0566194989 0.0252671018 -0.0520395152 -0.0390247442 0.0415542349 0.035917528 -0.0239101127 -0.00980260968 -0.0635374337 0.0373316631 -0.0335949585 0.0753984824 0.0283310041 0.0781964585 -0.0799549818 0.055764325 0.0281152353 -0.0610491522 0.0569498315 -0.0233487114 0.0604980364 0.0196767673 0.0433181301 0.0501344427 -0.0459677503 -0.0189323276 0.00819434226 0.0898106173 0.0857534483 0.0709472373 -0.00312909484 0.0913086012 -0.00983964652 -0.00159648806 -0.0110796988 -0.07689403 -0.0312684961 -0.0130491704 0.0660640821 0.0249166265 -0.0803184435 -0.0722656846 0.079882212 0.0318474621 0.0658377931 -0.0817855448 -0.0835483 -0.0263824165 0.084554933 -0.0765790194 0.0480241403 0.0417684987 0.013507165 0.00901406258 -0.0287532285 0.0161168203 -0.0518190153 0.0126633719 -0.00498405099 0.0592834428 -0.0668109432 -0.0798943192 0.0756597295 -0.0241614282 -0.0767712146 -0.0782345533 -0.000957742333 -0.0825936422 -0.0527717397 0.0342587456 0.0815137699 -0.00483436137 -0.0551046953 0.0252043679 0.0257170349 -0.0195867494 0.0460532233 -0.0729084164 0.0425474271 0.00105220824 -0.0704917759 0.0683519915 -0.015837945 -0.030696027 -0.065206334 0.0383043364 0.0488417521 -0.0582475699 -0.0305930376 0.0180189386 0.0831864104 -0.0847430527 0.0697994605 -0.0677175522 -0.00234732777 0.0279155746 0.0784195736 0.00239445269 -0.0453126319 0.0758997127 -0.011977531 -0.0457662679 -0.0146971419 0.0236039013 -0.0907551944 0.0749821588 -0.0201099589 -0.0433993265 0.0842263326 -0.0393139869 0.0590882376 -0.077143915 0.0652583912 0.0240814835 -0.0472414754 0.0624507293 -0.073756896 0.0725516006 0.0436642691 -0.0884316117 -0.0879511684 0.0334065929 0.040255703 0.0316602141 0.0752350315 -0.00245907903 0.0917652026 0.0602237359 0.0391811058 0.0826917812 -0.00815309584 0.00519621372 -0.0524743982 -0.00015796721 0.0792477205 -0.0482083969 0.0272583216 -0.069923684 -0.0750396699 -0.0810786784 0.0130027533 0.0120187551 -0.0211638436 -0.0880207419 0.0395844653 0.0756538734 -0.0852359086 0.0409150049 0.0533229187 0.0784764066 -0.0474124514 -0.0475477278 0.0204186961 -0.0255350322 0.0327979997 -0.0838906318 -0.0786775798 -0.0733570307 0.0717668608 -0.00288339704 0.0823448822 0.044741489 -0.00460430235 -0.0899717286 0.0740714297 0.017260462 -0.0537689663 -0.0214726031 -0.0114969313 0.0342758521 -0.0292352811 0.0540806577 -0.0880932435 -0.0537161641 0.0117441043 0.0289189219 -0.0908737406 -0.065851219 -0.0341103114 0.00771416724 0.0779271796 0.0891914144 -0.0464344621 0.0251250193 0.0343350694 -0.0229758546 0.0575756356 -0.0449321158 0.0825725272 0.0566559508 0.0683165714 0.0414741561 0.077680923 0.0696423724 0.00660324842 -0.0356161147 -0.00811550021 -0.00628071278 -0.0598747395 -0.0806045309 0.0893124714 -0.0601720996 0.0663680658 0.00260297954 -0.0797981769 0.0666619167 -0.0344192535 0.0478478 -0.0767314583 0.0141631439 0.0087127164 0.0267311037 0.0728412792 0.0559755787 0.0353911892 0.0361608043 0.0600932762 0.0826150849 -0.0338648073 -0.0202607289 0.0600465015 -0.0314847939 -0.0694039091 0.0532312766 0.0177428201 0.0235908031 0.0830036327 0.00989560038 -0.029509902 -0.00996627659 -0.0440333821 -0.0120966509 -0.00932546705 -0.0500445738 -0.06444332 0.0817989036 -0.0321149305 -0.0238542035 -0.0698831007 -0.0854547173 -0.0805422664 -0.0318390951 0.00437238067 -0.0903951898 0.0617361441 0.0619327202 0.0172528028 -0.0805622041 -0.0687605664 -0.0098092556 -0.0347673707 0.0636228397 -0.0482063703 -0.0250013694 -0.0316448547 0.0748561695 0.0758805349 -0.0632332936 -0.0584836975 0.0127416402 0.0605967268 0.0343605503 -0.0293573514 -0.0672984719 -0.0163930058 -0.0803308114 -0.0774092525 -0.0803000629 0.0753927454 -0.0130868554 -0.0604719259 -0.019474782 -0.0519997664 0.0212504268 0.0533295944 0.0897590891 -0.0375825986 -0.0312626213 -0.0493660793 -0.0380711406 0.0180748925 -0.0619105548 0.0277875438 0.00571896136 -0.0411305316 0.0391473398 -0.0603450127 0.026844874 -0.0323379859 0.0095955506 0.0142925903 0.0501675233 0.0243690461 0.0700920448 -0.00319090486 -0.0767757222 -0.0398432054 -0.0207085758 -0.0513788722 0.0667929128 0.0654833093 0.015620105 -0.00658361614 -0.0285806432 0.0390142873 -0.0548800789 0.0747399107 0.012866728 -0.012620233 0.0657529458 0.0189784393 -0.0394438468 -0.0677533001 -0.00324055552 0.0279299244 -0.0857068449 0.0734960362 0.0671927556 -0.0552048422 0.0236993805 -0.064163506 0.0596027151 0.0384226516 -0.0532989353 -0.00184670091 0.0128680468 0.0577013567 0.0375506356 0.0826076791 -0.0644016117 -0.0652792603 -0.0888343602 0.0351723358 -0.0217125192 0.0473509505 0.0510337725 -0.0564662628 -0.0786068141 -0.0652955025 -0.0774459839 -0.0233133808 0.00359220058 -0.014722012 -0.0406507924 -0.0234802216 -0.066068992 -0.0577193648 -0.0134186596 0.043599911 -0.0091079995 -0.0784760341 -0.0449919812 0.0453011617 0.0186058059 -0.0595008023 0.0397362784 0.021075137 -0.00679386407 0.0446152315 0.013171114 0.0658091381 0.0446413383 0.0523648337 0.0473541096 -0.07482557 -0.0859153047 -0.0408226252 0.0309243426 -0.0394716039 0.000613875687 0.015070945 0.0319366008 -0.00925680995 -0.031492386 -0.0556347743 0.065484859 -0.0211648121 -0.0178358331 -0.063625589 0.0586894676 0.00424370915 0.0205996037 -0.0542308353 -0.0215042308 -0.0710195005 0.091408588 0.0655890033 0.0694425777 -0.0133776143 0.0359431282 -0.0474362895 0.0740895197 -0.0504920259 0.0434364751 -0.0599819086 0.00160159171 0.090311788 -0.0178436488 0.024496004 -0.0721535012 -0.0745445862 0.0771200284 -0.052601818 0.00579988956 0.0771365389 -0.0755355433 -0.00535235554 -0.0275977626 0.062851809 -0.0779298395 0.0329374894 0.0546475425 0.0129107907 -0.029750526 -0.05124221 -0.0881424621 0.0558476523 0.0760351792 -0.020093143 -0.0389747173 0.0816282108 -0.0077341944 -0.0390953757 -0.0259654894 0.0355650559 0.0407696739 -0.0877613276 0.000597253442 -0.0654259995 -0.00860536844 -0.0371668413 0.0396517292 0.0841578618 0.0745314732 0.011693567 -0.0922368243 0.0404597148 0.0481887832 0.0596735701 -0.0172911659 -0.0301221684 -0.0403938629 -0.043032147 -0.0717266276 0.0813722834 0.0431592539 0.056185402 0.0195771679 0.0844395533 0.0306424052 -0.0277582631 0.00894353539 -0.0791975781 -0.0674923211 0.0193295106 -0.0921101794 0.0876451507 -0.0759794489 0.0308627337 0.084184669 -0.0895200297 0.0722040161 -0.0742612928 -0.0261109173 0.0635607168 -0.0477038696 -0.0687004775 -0.0836953074 0.00837734342 0.00982151181 0.00463463366 0.0215594321 0.0899075493 0.0236111656 -0.0296302363 -0.0684252381 -0.0626690537 0.0346005484 0.0554379746 0.0543930307 -0.0353270955 -0.0853624716 -0.00717297196 -0.00883049518 0.0750336125 0.016964525 -0.0824198723 0.00546167791 -0.0330283865 -0.0537059531 0.0593389645 -0.0457048155 0.0704543963 -0.0304732807 0.0890637711 -0.0210168734 0.00183235109 -0.0898652822 -0.0791582465 0.0640004501 -0.0419387333 -0.0518144369 -0.0694819838 0.0253044069 0.0713414922 0.0282374322 -0.0193995014 -0.0335592814 -0.041025497 0.0160065442 0.0499179885 -0.00323721021 -0.00623979419 0.0412350222 -0.0424582027 -0.0445150807 0.00747489184 -0.0494308807 -0.00817832351 -0.0170228556 -0.0851813927 -0.00216299295 0.046973668 0.00819507241 0.0156642571 0.0858761743 -0.0738927871 -0.0883229002 -0.0513785183 0.0686205849 -0.00211619586 -0.0423462801 0.0619576946 0.0154525861 0.0772461966 -0.0708236694 0.00582045317 -0.0233747065 0.0665954128 0.00810100138 -0.0198479444 0.0757182911 -0.02184394 0.0897210762 -0.0700842515 0.00369843841 0.0308100879 -0.0795123726 0.0363623574 0.0788775012 -0.0445341878 -0.00421775877 -0.0417819321 -0.00675598532 -0.0136854947 -0.0871196762 0.0200695023 0.0348405316 -0.0655301958 0.0377905145 0.0598724559 0.0657413676 -0.071166046 -0.0265231952 0.0750888661 0.037020959 -0.00616383553 0.0433418378 0.0754653886 0.0128334686 0.0874429271 0.00292820483 0.0450677797 -0.0152361766 0.0184520185 0.0749751106 -0.0424559377 -0.0700655207 0.0457742587 -0.050064493 0.0749139711 0.0866615698 0.0221063495 0.0592437908 -0.0223186836 0.0840123519 0.0384870246 -0.0442113578 -0.0678559095 -0.0590539239 0.0284667164 0.0410082564 0.0208447129 0.0524903312 -0.0403055586 -0.0581637993 -0.040902812 0.0025466308 0.0393212214 0.024623841 0.0586822107 -0.0359282903 0.0292654559 0.0533831194 0.0653904602 0.0521025136 0.0222913474 -0.0740333498 -0.0634634569 0.0736104622 0.0700476095 0.0447442159 0.0228638649 0.0776691511 -0.0192857087 0.0621808842 0.0660453811 -0.0494335629 0.0428402796 0.0381222293 0.048199214 0.079217501 -0.0892055854 -0.0542613864 0.00177980959 0.0161582828 -0.0345273688 -0.0424256511 -0.0446279943 -0.0310669914 -0.000502765179 0.0559446439 0.0308083221 0.0300729126 -0.0113437548 0.0462851599 0.0257746577 -0.0842954889 0.0417893007 0.0805403218 0.00452462584 0.00540672243 -0.0244979635 0.0728695914 0.0612450913 -0.0635398328 -0.087952286 0.089438729 0.0661830232 -0.060876105 -0.0909267217 -0.0413870625 -0.0044830516 0.0730676129 0.0374808386 -0.0262475982 0.00046210736 -0.0466747731 -0.0399579667 0.0305046439 -0.0113629326 0.00147606432 -0.0700466186 -0.0826743543 -0.0315386541 0.0252410844 -0.0863475502 -0.0312564559 0.0396915749 0.00991050154 -0.0779284984 -0.0445330441 0.0630287006 -0.0012312904 -0.090403527 -0.0343152732 0.0813900456 0.0702386275 0.0575535074 -0.0682822317 -0.00535175949 -0.07581646 -0.0787042379 -0.0327303 -0.0574347004 0.0251877084 -0.0599679314 0.0474349037 -0.055091314 -0.0652665123 -0.0127678588 -0.0489089899 -0.0745287836 0.0657540038 0.0234588981 0.0433546528 0.0518504009 0.0422923043 -0.0847800076 -0.0727735609 0.0101921037 -0.0708022788 0.0390599892 0.0471609607 -0.0622954965 -0.073141329 0.011789754 -0.0343205333 -0.00988838077 -0.084838137 -0.0888806432 -0.0537204556 0.0853371099 0.0502780601 0.0876140371 0.0569310561 -0.016658999 0.020976156 0.0888499394 0.0427817628 0.0835494921 -0.0418274477 -0.0115987733 0.0467025265 -0.0854871348 -0.0312636755 -0.0123502761 0.0199774355 0.00796649605 0.0881465301 0.047969453 -0.0719593465 0.0839828923 0.00480851531 -0.0337073468 -0.0628215894 0.0356874689 -0.0312394202 0.0571214035 -0.0805426612 0.0431021228 0.0708272979 -0.00520351529 0.0209027082 -0.0834143907 0.0155303255 0.063216947 0.0711120144 -0.0665131658 -0.00960862637 -0.0647201464 0.0607202724 0.0719613656 -0.0288904384 -0.0650755316 0.0718827471 0.00345181674 0.0191100463 0.00836481899 0.0815359429 0.0424638763 0.0845313743 -0.000830739737 -0.0166236535 -0.0681845993 0.00639764965 0.0519128516 -0.079917565 -0.0631318688 -0.000190675259 0.0333567336 -0.0337447636 0.0196974128 -0.0622133315 0.0115164071 0.0564497039 0.051413931 0.0520983711 -0.0411712937 -0.0834797844 -0.0843180716 -0.0513388142 -0.0323457979 0.0577993467 0.0226193294 0.00917750597 0.0511825606 0.0188421756 0.0839067474 -0.0596304461 0.0778358802 0.0848049447 -0.000316403806 -0.0479907542 0.0720806196 0.0826202706 -0.0134400353 0.0351868197 -0.0391968228 0.0726048723 0.0775093362 0.0768529996 0.0277606472 0.0176472962 -0.0612789169 0.0354054496 0.0760929212 -0.0212305114 -0.0416097008 0.0537914112 0.0812728181 0.0362894759 -0.0762694627 0.0257795006 -0.00997266173 0.038172476 0.0529636517 -0.039712023 0.0430259928 -0.056927558 -0.0178886354 0.0452092066 -0.0742715001 -0.0394057706 -0.0444652513 0.0852413401 0.083244361 -0.0470354371 -0.0850232467 -0.0579346493 0.089753367 0.0646491423 -0.0717637613 -0.0535288975 -0.0297190249 -0.0922747478 -0.0204343051 -0.0332546569 0.0647475645 0.0717578903 -0.020205088 0.0105415434 0.0833752826 -0.00693693012 -0.0266112164 -0.0491181314 0.0143433437 0.00332298875 0.082650207 -0.0150208473 -0.00127691776 0.0559852645 -0.0423020609 0.00848855823 0.0682327822 -0.0384395085 0.0744563714 -0.0758979023 0.0202717781 -0.0602902099 -0.0778341591 0.00503470004 0.0133792609 0.0730996057 0.00195347518 0.0102194175 -0.0314110145 0.0353950188 -0.0197190046 0.0422863737 -0.0621283911 -0.00121766329 -0.0390870571 -0.0859475285 0.0360419974 0.0489809439 -0.064087674 0.0875444636 -0.0815476179 -0.0313799344 -0.0910565332 0.0789678767 0.0542966947 -0.00945026428 -0.0685216859 -0.0269289985 0.00287164003 -0.05576884 -0.0852353349 -0.0108835846 -0.0118065253 0.0744971707 -0.0154862851 0.0355273411 0.000683270395 -0.0632200018 0.0106706545 -0.0772751868 0.0470203832 0.00745895505 -0.0211389661 0.0119916126 -0.0283424705 0.068135865 0.0542329773 -0.068122305 -0.0845407993 0.00301992148 0.0607324913 -0.0675374418 -0.08177571 -0.0796428919 0.0757414028 0.0257378593 -0.0707890093 0.0524418876 -0.067624405 0.0705946758 -0.0819510892 -0.0888125673 0.0129322559 -0.0214631632 -0.0890812278 -0.0865577087 -0.0775956139 0.00644490868 0.0532273725 -0.0119510964 -0.0422962494 -0.0774738491 -0.0544120483 0.0137981251 -0.0535289869 -0.0426276848 0.0604275391 0.0562156662 0.0890263394 0.041303508 0.0154168382 -0.00622141361 -0.0242531896 -0.0669352114 -0.0707544088 -0.00627021492 0.0343346372 -0.0122798383 0.0787778869 0.0244409591 0.089786239 -0.0622633174 0.0419266298 0.00551474839 0.0687185451 -0.0315139368 0.00763043761 -0.00835867226 0.0806936696 -0.0658804476 0.0851793811 0.0368846282 0.00114027411 0.0913190171 -0.0762084052 0.0827502385 -0.0200816095 -0.0207676962 0.0373554304 0.00259197503 -0.0917424262 0.0782960728 0.0671122447 0.0920193419 -0.0820911825 0.0216243863 0.0570800528 0.0691463277 0.0574594811 -0.0412386023 0.0565474108 -0.0681316182 0.00780718029 0.0228941068 0.00492271036 -0.0253222585 -0.0830949768 0.0648788586 0.0605991706 -0.00400984287 0.0539594665 0.03096167 -0.0757663846 -0.0699411631 0.0774613693 0.0207441226 -0.0134791732 0.00856762379 -0.0263319686 0.0567304716 0.0102531835 -0.0897589773 0.0615189597 0.0559846088 0.0353504643 0.0645185784 -0.0331989489 0.0440861806 -0.0528371558 -0.0409049913 0.0713833794 0.00365730375 -0.0371340476 0.00692306459 -0.0319123268 -0.0384802073 0.0588902757 0.0471893921 0.084898226 0.024422951 0.0136223286 0.016342029 -0.0789765939 0.0290855169 0.0917715058 0.0597128347 0.0165146813 -0.0198081285 -0.0591265373 0.0370203331 -0.02741988 0.0602392331 0.0769968554 -0.0752692148 -0.0293223932 -0.0822581798 0.0199418217 0.020813413 -0.0504712686 -0.0669115782 0.0391214564 -0.0670118779 -0.0543663763 0.076139532 -0.0501377471 -0.0504402593 -0.0848381594 -0.0264840797 0.0768978968 0.0533185676 -0.0444833413 0.0555359647 -0.01291731 0.0126556456 0.0206590295 -0.0915444195 -0.0436744802 -0.0344910286 -0.057612218 -0.00679608434 0.0836783573 0.072365351 0.0765939429 0.0785712078 -0.00897091627 0.0409705117 -0.0815604925 0.075704895 -0.0702616349 -0.03905873 0.0119577646 0.0757262036 0.0723558441 0.075256072 -0.0148771629 0.0821059123 -0.0630966574 -0.0309044011 0.0695781633 0.000723816454 0.033126317 0.0475056842 0.0656891987 0.0785734728 -0.0167137384 -0.0883473977 -0.030687023 0.0839827284 -0.0571900122 -0.0242090151 0.0485423878 0.0399459228 -0.0277299359 -0.0240680128 -0.0371288955 0.0899254903 -0.0326623991 0.0792564079 -0.0773322582 0.0873415694 -0.0517515317 0.0494344905 -0.0411474593 -0.0625553504 0.048406519 0.0615813807 -0.0758855939 0.0242880285 -0.0837282166 -0.0584521592 0.0806632116 -0.0579106994 0.055064477 0.00382101536 0.0915947631 0.00360826403 -0.0770582706 0.05766242 0.0441877171 0.0471367463 -0.0818408579 -0.0137299374 0.0257408991 0.0775323585 0.0324841812 -0.0633810908 -0.0720241219 -0.045825541 0.0414280519 0.0304793343 0.00802528113 -0.0573270693 -0.00255893916 -0.0649169236 0.0223162398 0.0140822381 0.042194657 -0.0524982363 -0.0910679623 0.0726104155 -0.0605150908 -0.041141998 0.0226157829 0.0186861008 -0.0686310083 -0.0517543256 0.0838892683 0.0691472664 -0.0737671778 0.0418720618 0.00474219769 -0.0195437148 -0.0183378309 -0.0850124136 -0.0499484986 0.0402959809 -0.0113079026 -0.0633956045 0.0486479923 0.0257686749 0.0854971781 0.0390739813 0.00909657776 -0.0785392895 -0.0834001303 -0.0511039831 -0.0207810327 -0.0696260631 0.0254649743 -0.0794718489 0.017118074 0.0368236974 -0.00065369159 -0.032641422 0.0373486057 0.021847114 0.0872195885 0.0176795423 -0.0673264936 -0.0361984484 -0.0246591046 -0.0337445214 0.0451204106 -0.0222041011 -0.0181249455 0.027462557 0.0720325783 -0.0637734532 -0.0385283865 -0.0756247267 -0.0745134652 -0.00846650451 -0.059269473 -0.0763585344 0.00782521069 0.0658852533 -0.000558406115 -0.0317311585 0.0570100322 0.0203183964 -0.0294221938 0.0359682217 0.0500599816 0.0675087795 -0.0394168198 0.085544534 -0.0486398451 -0.0255187005 -0.0107446089 -0.0584836565 0.0252407342 0.0421481803 -0.0428073779 0.0807635859 -0.0334100053 -0.0131026804 -0.0489750654 0.0684038922 0.0368937775 0.0288818553 -0.0092760697 -0.0746787637 -0.0874724388 0.0470220968 0.0428948924 -0.0448031984 -0.0884587318 -0.0530690327 -0.0354376994 -0.0757262409 -0.087255463 -0.0683797598 -0.086526759 -0.0547979586 -0.0839233175 0.0457078889 0.0803683773 -0.0289217606 -0.0443894006 -0.0580658726 -0.0560374111 0.0354851708 -0.0489041917 -0.0144273564 -0.0315051079 0.0841961727 -0.0247455835 0.0920520052 0.0723567083 -0.0256425515 -0.0402440391 -0.0514981262 0.0696570501 -0.0430941284 -0.00737016648 0.0692928955 0.00403128564 0.074251987 -0.069137454 0.00525031239 0.00292827189 -0.0901167095 0.0459726378 -0.0143861994 0.0625113472 -0.0356789343 -0.0481767021 -0.0421107002 0.0218107477 0.0362201706 0.0580024645 0.0748260841 -0.0745702535 -0.019814536 -0.0018312484 0.00118088722 0.0583289489 -0.0515526459 0.0339422002 -0.0720700398 0.0352996662 0.0580349043 -0.051685039 0.0593608841 0.0224493146 -0.0372074507 0.00312463194 -0.00102516264 0.0257024467 0.0465570763 -0.043348439 -0.0580575988 0.0749565586 -0.034942925 0.0828673467 0.0737716034 -0.0877443776 0.0796486363 -0.0838605389 0.0459579751 -0.0224704295 0.0555006042 -0.0700331181 -0.0776629448 0.0132570192 0.0373726115 0.0036759451 0.0730495527 0.0594489947 -0.0324207656 -0.0816112012 -0.0502637997 -0.0077790767 0.0913698152 0.0570572391 0.0570342615 0.00603623688 0.0710326657 -0.0786707401 -0.0416128039 -0.0662758201 -0.0864122584 0.0131338015 0.0259036422 -0.0132811219 0.0222179443 0.0429499373 0.00591971725 0.0365291908 0.0807412192 0.0193613842 0.0784634575 -0.0432603098 -0.0848247781 0.039415963 -0.0591032952 0.0708707944 0.0283129737 0.00219215453 0.0357500091 0.039150618 0.0887759253 0.0365586206 -0.0506987274 0.0797015354 -0.0760554075 0.0135874152 0.0440953597 0.0097027868 -0.0576575361 0.0670725629 0.0066254586 -0.07734029 -0.00324297696 -0.0374861471 0.00515615195 0.0351858959 0.0834689066 -0.0745929182 0.0585096553 -0.0187244639 0.00444349647 -0.0250397548 0.0123572722 0.0380488411 0.00789863616 -0.00464110821 -0.0152710229 0.0115815774 0.00182031095 -0.0699909329 0.071376048 0.062894024 -0.0183851719 -0.0426281467 0.00232450664 -0.00493007898 -0.032161396 0.00173211098 -0.0391745046 0.0778625831 0.00558469445 0.060194768 0.0107290745 0.0539751425 -0.0279476419 -0.0798344091 -0.0669482648 -0.0579233356 0.0665366724 -0.00539278239 -0.0780212954 0.0311642364 0.0419963524 0.0121700317 -0.0752013326 0.0916068479 0.0839795545 -0.0478382893 -0.0576924682 -0.0334969237 0.0655053332 0.0702688172 -0.0549835488 0.00658093393 -0.0243948027 0.0196280628 0.0799465999 -0.0812174603 -0.0156198665 0.0583201572 0.0342652872 -0.00239669532 -0.0522667542 0.0861625448 0.0290867537 -0.0742072761 -0.0284428149 -0.0599745139 0.036812298 0.048205398 0.0658448115 -0.0562750138 -0.0394410081 -0.0772241652 -0.0222352892 0.0124573782 0.0527110323 0.0662728325 -0.0376349837 0.0765253827 -0.0801819339 -1.30310655e-05 -0.0245031118 -0.0491301939 0.0843431875 -0.0898371115 0.0421105698 -0.0402795635 0.0825755224 0.0543205217 -0.00657144934 0.0753588453 -0.0760560706 0.033641167 0.00450243801 0.0352102891 0.0230974406 -0.0542030595 0.0780372545 0.0427601859 0.0286160111 -0.00496377796 -0.0677871704 -0.042780567 -0.0583357215 0.0181967616 -0.0143215582 -0.016971834 0.0123344734 -0.0305324458 -0.0126180574 -0.0441792011 -0.0484315604 -0.0150613487 0.00428528339 0.0669422969 -0.0504756719 0.0674778596 0.0732742324 0.0157499239 -0.0899093971 -0.0204565749 0.0035078302 -0.0457459725 -0.0107300431 0.074779965 0.0888072923 0.0895299539 -0.0147232935 -0.0462994054 -0.0466691144 -0.0200386196 0.0697882548 -0.019515872 0.0566796735 0.0511654392 0.0281044915 0.0200485513 0.0831796005 0.0627222136 -0.0235877857 0.0316119045 0.0635669008 0.0792827532 -0.0429157801 -0.0102220848 -0.0696889237 0.0860113576 0.0270456523 -0.000717870891 -0.00749126822 -0.0492111705 0.0635329708 -0.0837471858 0.0194599405 0.0517228469 -0.00871088356 -0.0448994301 -0.00168342888 -0.0118525773 -0.0610189736 -0.0446016937 -0.0755659416 0.0741240755 0.054358758 -0.0659133568 0.0597284064 0.0854297504 -0.0897718072 0.0336170122 -0.00320668519 -0.0674970523 -0.0377974398 0.0545480326 -0.0923049897 0.0227857679 0.00389110297 0.0204477534 -0.0753458813 0.00772816688 0.0649276003 0.0247690454 0.0363932326 0.0597630963 0.0893546864 0.00262353569 0.0544105992 0.0330595747 -0.0544251204 -0.0453452282 0.0915676877 0.030381918 -0.0488910936 0.0197412819 -0.0113145709 -0.0515624844 0.0310934931 0.0440509543 0.0771848336 -0.0347492993 -0.0405017808 -0.0126654655 -0.0610168837 -0.0763768256 0.067172952 0.0377278253 -0.0749561638 0.0328075811 0.0451442972 0.0512792245 -0.00785236806 -0.070298478 -0.0695677102 -0.03777292 0.0064895004 -0.0148672387 -0.065947473 0.00946897268 0.0292207301 0.020675011 0.0405988619 0.0230351016 -0.0707909912 -0.0872428939 -0.0752614662 0.0369316414 0.0877713636 -0.0606527664 -0.0142873749 0.0597790107 -0.0251490548 -0.0127754733 0.0149227679 0.0745545849 -0.0223588124 -0.0877082571 -0.0369449332 0.0435473546 0.0074140504 -0.0808919668 -0.0121536329 -0.0124088898 0.0396883115 -0.0313774496 0.0468422547 -0.00127059966 0.0473315194 -0.0220182687 -0.0903290659 -0.0718025416 0.0795013085 0.0417935476 0.00622352958 -0.02600687 -0.0206305459 -0.0807736367 0.0590923503 -0.0143360794 0.0840692744 -0.0809802115 0.0661565885 0.0785069987 0.00208078325 -0.0714908987 0.0332708284 0.0576435402 0.00236485153 -0.0358220451 -0.00131164491 -0.0620777905 -0.0682438239 -0.0822445974 -0.0775292963 -0.0849856064 0.00188674033 0.0016643405 0.0691258982 0.0427618846 0.0356954411 -0.0231943503 0.00492797047 -0.0843569636 0.0688579902 0.0757141188 0.0900687352 -0.0806900635 0.0508215651 0.0902823135 0.00232417136 0.0477913693 -0.078201361 0.0812417194 -0.0267010629 -0.0755953044 0.025976561 -0.0874459371 -0.0377459154 0.00180868804 -0.0536540933 -0.0535433814 0.0261293799 0.0823161528 -0.069011353 0.0202353075 -0.04351037 -0.0239763856 -0.0531849638 -0.0421747081 -0.00179618597 -0.014490135 0.08457122 -0.0456411801 0.0583749041 -0.00577942282 -0.038797643 -0.0222007558 -0.0743784085 0.0812177733 -0.0506502166 0.04766462 0.029690899 -0.0714763254 -0.0721584335 -0.0727276653 -0.0213280618 0.0642524436 0.0542418137 -0.0121331662 0.067582272 -0.087131165 0.00846350938 0.0887119994 -0.0766369477 -0.0106401518 -0.00936678052 0.0260800794 0.0851427838 -0.0708028525 0.0489822403 -0.0823851153 -0.0587328337 0.00277291983 0.0162975043 -0.0304922089 0.0329750553 0.053529121 0.0322802514 -0.0677941293 0.0807251111 -0.0634700656 -0.042267371 0.00860497355 0.0727676824 -0.0533769391 -0.0239729956 -0.0435381681 0.00365585089 0.0769173577 0.0686657503 -0.09153568 -0.00326412916 -0.0503738746 -0.0339260846 0.02164983 -0.0221197754 -0.0693204701 -0.0310481712 0.090933241 -0.0416571759 0.0738399848 0.0738134906 -0.0085933283 -0.041609019 -0.0272390395 -0.0451687276 -0.0151173845 -0.0547672957 0.0204710811 0.0581331179 0.076908879 0.0480791107 0.0355780348 0.0258536339 0.0631984994 0.0688439384 0.0399621055 0.089573212 0.0484712645 -0.0889766589 -0.0175252035 -0.0507414043 -0.0287572369 -0.018181555 0.0729179755 0.0445709452 -0.091616638 -0.0283059776 -0.0300529227 0.0914534107 0.0324673876 0.00204994529 0.0685011223 0.0480849817 0.0770846233 -0.0303970799 0.0259303153 -0.066540502 0.069445841 0.0355328247 -0.0501447245 -0.0719537809 0.0328883603 0.0844803825 0.0363676026 0.0373215899 -0.0766256154 -0.0083438158 0.0497430041 0.0782556459 -0.0425890982 0.00393461436 0.0580722168 -0.0604279935 -0.0278441533 0.0569467917 0.0317602754 0.0872888491 -0.0506704636 -0.0526877455 0.0718363598 0.0543461964 -0.0234022364 -0.0560031198 0.0540044382 -0.0289801806 -0.0650133491 0.0794140324 -0.066101633 -0.0599880032 0.0351130441 0.0572191551 -0.0555631742 0.0870525017 0.0676843897 0.0718966797 0.0391976759 0.0825186744 0.071509473 -0.0452096872 0.0913360044 -0.0856990144 -0.0109020323 -0.0727649778 0.0359813794 -0.0914137661 -0.0252569765 0.00746289641 -0.0873885974 -0.0465791151 0.0776501819 -0.0360773653 0.0600611195 -0.0531460717 -0.0390805863 0.00407262146 0.0122502148 -0.0311514884 0.0658861771 -0.0713928193 -0.00472912937 0.0259855837 -0.086924687 0.0729174837 0.0658292249 0.0725726858 0.0909978524 -0.0643713698 0.0483344868 0.000982835889 -0.078797847 0.0791289285 -0.0432849154 0.0667815879 0.029847987 0.00380933285 0.00570346415 0.0197975636 -0.0272156894 0.0835651681 -0.0560892671 -0.0215287507 0.0253025144 0.051817365 -0.00262602419 -0.0679093525 -0.0559260175 0.0702439323 -0.0564491376 0.0382292941 -0.0132064596 -0.0449037887 -0.0208583549 -0.0154229775 0.0204158127 -0.000173710287 -0.0623915493 0.0268756226 -0.00393969566 0.0578751788 -0.015230611 -0.0536271743 0.079972662 0.0873123184 0.0539532825 -0.0488303453 -0.0333550684 0.0290020779 0.0160446241 -0.0490718447 -0.0157742649 -0.0487883501 -0.0493939891 0.000168003142 0.0191767812 -0.06772995 0.01726605 0.000979423523 -0.0327796713 0.0359939858 0.034894608 0.0641686097 0.0693857446 0.0747199878 0.0800955817 0.0302630365 0.050979279 -0.0388117284 -0.0257451683 0.0730767772 0.039499484 0.0218781233 -0.0746209398 -0.0864934996 -0.0851069763 0.0807639584 0.0586694852 0.0473392084 0.0395031497 -0.0250706151 -0.00256630778 -0.0422302634 -0.0890669003 0.061014615 0.0588132665 -0.0655793697 -0.0431536473 0.0480206832 0.0384420231 0.0723253414 0.0305496752 0.0864413306 0.091325365 0.0687975809 0.0294279829 0.0740879551 -0.00452727079 -0.0112180114 0.0901282057 0.0753954872 0.0560579076 -0.0596376844 0.0187733695 0.017185092 -0.0675978661 0.0282041356 0.0389212295 0.0218589529 0.0686200336 -0.0732911825 -0.0390557125 0.0913673714 -0.0405147672 -0.0885105208 -0.0135996342 0.046379678 -0.0617399737 0.0342738554 0.0421599224 -0.0922015011 0.0297682434 0.0412993804 0.0136348084 0.0832228735 0.015981257 -0.07464993 0.0746113285 0.0921128467 0.0134825781 0.0597974584 -0.0473581962 -0.00765319914 0.0200934932 0.0720694885 0.0209624246 0.0206306577 0.0887981579 0.0459490642 0.0486597642 -0.0358558968 0.0640505478 0.0351639315 -0.076939702 0.0449614152 -0.058876805 0.077853702 -0.0396764763 -0.0318560898 -0.050594043 -0.0811086595 -0.0363908187 0.0894368514 -0.0730902255 0.0188239291 0.0307284668 -0.0480306596 0.0513466522 0.0303787887 0.014643833 0.0406889543 0.00754831731 0.0172024593 -0.0193944201 0.0491503552 -0.0439832658 0.0153624117 -0.0294510275 -0.0633089468 0.055883117 -0.0802865922 -0.0696599558 -0.0220540315 -0.0125932246 -0.0320609175 -0.0455475263 0.0361965969 -0.0166954696 -0.0749000609 -0.0469518825 0.0169246048 0.0369334891 -0.0112530068 0.0607865378 0.0870986059 -0.0274435356 -0.0355660208 -0.0104249269 -0.0414125957 0.0917879865 -0.0557805039 0.0235160813 0.0482160822 -0.0437865779 -0.000607818365 -0.0714185685 0.0547789857 -0.0678428188 0.0874921605 -0.0633013546 0.0374933705 -0.0862509012 -0.0717649311 -0.0160147548 0.0774049088 -0.0312145054 0.0121107996 0.0383613035 0.0433553085 0.00713993609 -0.0815095827 -0.0671454817 0.0837964639 0.0727778748 -0.0471783727 0.00773410499 -0.00251445174 -0.0301380381 0.0542948619 0.0317576155 0.0416484997 -0.0865035579 -0.0366487801 -0.000923827291 -0.0427687056 0.0303221568 0.0184710994 0.0116280466 0.0790669844 0.0298506021 -0.0238369927 -0.0496752821 0.031561695 0.0643861666 -0.0529293343 -0.0760603845 -0.0445500799 0.0906393453 -0.0784163401 0.039927654 -0.0408085845 -0.0207299516 0.0558256879 0.0122098923 0.0341812745 -0.0378054529 -0.0729104206 0.0198265687 0.0185686499 -0.00482621789 -0.0292360038 -0.0104807019 0.0608734861 0.0048783794 -0.0640434101 -0.073763147 -0.047281269 0.0433108732 0.00491616875 0.00381600112 -0.0382242911 -0.0639974549 0.0805959329 -0.0678908676 -0.0218971446 0.0709172413 -0.0216130316 -0.0826806277 -0.0488719456 -0.0688000917 -0.0282598659 -0.0517171286 0.0703915432 0.0218631551 -0.0808896795 -0.0115889311 0.0532942936 -0.024479188 0.0719246194 -0.0338024311 0.0852121338 -0.0312522538 -0.0107468814 -0.0291083679 -0.0336040705 -0.0664925873 -0.0695773289 0.0667710826 0.0118920356 -0.009371005 0.0881308839 -0.0329475217 0.0548032001 0.0412838534 -0.0514052846 0.073617138 -0.00970937312 0.0548994765 -0.0673026592 -0.0737983212 -0.0754424781 -0.00248161703 -0.0743319467 -0.00153598189 0.0640059039 -0.0228823721 0.00689026713 0.0913798735 -0.0761891231 -0.0765111595 -0.0594565384 0.018473655 -0.0492072962 -0.00316625088 -0.0859710574 -0.0674448237 0.0234550238 0.0378750786 -0.0145454481 -0.00417263806 -0.0096443966 0.0311410353 -0.0907132179 -0.024103336 -0.0669448376 0.0585696027 -0.00985366851 0.0851095095 0.00565832108 0.0455335751 0.0755398795 -0.0324390568 -0.0622768104 -0.0878883898 -0.0554090999 0.0726023987 0.0374099985 -0.0765473843 0.0848196968 -0.060912028 0.0319325998 -0.0231664628 0.0567349717 -0.085827373 0.0879573002 0.0905890092 0.00519017875 -0.024278678 -0.0286474004 -0.0852433741 0.0036347881 0.0754470155 0.0562826321 0.0256194621 0.056705676 -0.0399516523 0.00575448573 -0.0456932373 0.0125678927 -0.0124768764 -0.00773181766 -0.0121593326 0.0319818109 0.0653584674 0.00357780606 0.00442637503 -0.00822222978 0.0319204703 0.0275531933 0.00685573369 0.0129679963 0.0481831953 -0.0519492067 -0.0232253 -0.0772760436 0.0410905555 0.0781903341 -0.014125526 0.0361877456 -0.0832083747 0.0639747605 0.0752912238 0.068334721 0.045397751 0.0172085389 0.0584060177 0.0300420523 -0.0678578466 0.0622012392 -0.0258198008 0.0889163986 -0.0338577665 0.0768896714 -0.0272313803 -0.00230077654 0.055992879 -0.00771306455 0.0218998268 -0.0311688557 -0.0679808259 -0.00404972583 0.0672908351 0.0363934115 0.0567513183 0.0198964551 0.0758544132 -0.0810155571 0.0141373724 0.0644451901 0.0714263245 -0.0894610435 -0.0872750729 0.0117740855 0.078595899 -0.0748649538 0.0817466751 -0.0455523692 -0.0876581445 -0.0657911748 -0.0469818413 0.0885954574 -0.0562666953 -0.0764865056 0.00924345106 0.0635991916 0.0588687435 -0.0169659555 -0.0867875591 -0.0543545336 0.0820157304 0.0789097771 0.000805608928 -0.0662364513 0.0681725517 0.0430856124 0.00935935974 0.0488532558 0.0765485093 0.00163839012 -0.0213575959 0.0794842914 0.0422949567 0.0321055576 -0.0330489017 0.0160835832 -0.0772341788 0.0388599113 0.0350539461 -0.0425946228 0.0625506863 0.00946272165 -0.055441916 0.0187958851 0.0916181132 -0.047026962 -0.0121817589 0.00392010808 0.00134406984 0.0301379934 0.046816431 -0.0497067794 0.0864066705 -0.0669306591 0.00820594281 0.060716413 0.00178357214 0.0122921914 -0.044089444 0.0486353114 -0.0515808836 0.0712973848 0.0634013489 0.0278727412 -0.0724960715 0.0266846865 0.0115692541 -0.0240998417 -0.0491897985 0.0663096085 0.014951013 -0.0173614398 -0.0624974407 0.0892314091 -0.0515418611 0.0680392608 0.0135358721 0.0184487626 0.0731950328 0.0143771544 -0.0444883406 0.0370330438 -0.0508922003 0.0743269101 -0.0810249299 0.0549555942 0.0143605769 -0.0596535131 -0.0879601464 0.0716620907 -0.0624333918 0.0653400943 0.0303165466 -0.0361734666 0.00317320228 -0.0353717543 -0.017052725 0.0221853703 0.0486534908 0.0643574372 0.0868746415 -0.0264839232 0.0209928155 0.0712451711 -0.0882055163 0.0717541948 0.0915054157 -0.0699696466 0.0193449184 -0.0558756553 -0.00692643225 -0.0832594112 -0.0257149711 -0.0112075582 -0.0879752934 -0.0508564748 0.0712465122 0.091848962 -0.0906051695 -0.0444612242 0.0110847354 0.0420133695 0.00670900941 -0.087393485 -0.0377204046 -0.0550989956 0.0153453723 -0.0317120068 0.0868867859 0.0342467055 -0.014418073 0.0589602664 -0.00591687858 -0.0564505905 0.00915569812 -0.0327851512 -0.0133223459 -0.0769390836 -0.0523430854 -0.0854836851 0.0587852821 -0.0683789477 -0.059548609 -0.0405832417 0.0405757204 -0.0743162036 0.0132237375 -0.0226756707 0.0407088622 0.0493408367 0.049797155 0.0728437528 -0.0399161242 0.0874720886 -0.0576984324 -0.0789436027 0.0451319888 -0.0354354307 0.0165431798 -0.0561635979 0.0395930931 -0.00971650332 0.0186405182 -0.0736691207 0.0254123881 0.0682055429 -0.0212179422 -0.0571929812 0.0759293512 0.0837568119 0.0210826695 -0.0883669853 -0.0175726116 -0.0737694204 0.00347883999 -0.0150188282 0.0314374492 -0.0610148609 0.0440289304 0.0546238795 0.0684999004 -0.0329841487 0.0876237378 0.0814831182 0.0228651837 -0.0806926414 0.0586370453 -0.0890687481 0.0352015719 -0.0490463339 -0.0647256225 0.0197038203 0.048871465 -0.0520416722 0.0297172219 -0.0607255325 -0.0471888036 -0.0559041388 0.0780865774 0.0275629237 -0.014848046 -0.00600516051 -0.0571203716 -0.00464982539 0.0380540416 0.0769831315 -0.0404362753 -0.0556656085 -0.0779916495 0.0394502804 0.0847351924 0.0916581228 0.0232108831 0.0196401402 0.0602687523 0.0670511052 0.023170054 -0.0121266693 0.0237417966 0.0238500461 0.0788063183 0.0366873816 -0.0343771465 -0.0792628154 0.00420710444 0.0337452218 0.0345649645 0.00507662445 -0.0787676275 -0.0835840702 0.00982842594 -0.081066139 -0.081247896 -0.0165585428 -0.0644059032 0.0300920606 -0.0465799719 -0.0813410878 -0.0652205572 -0.0239891708 0.00314620137 0.060236983 -0.0517737828 -0.0193827748 0.0562159196 0.0532466099 0.0574078783 -0.034736909 -0.00583061576 0.0888389573 0.0695931092 0.0745297894 0.0612431243 0.06370648 0.00300455838 -0.0538722835 0.00768400729 -0.0912991986 -0.0540260039 0.0555554107 0.0430354103 -0.0185371563 0.00817169994 0.0159566253 0.028756395 -0.00305071473 -0.0583572276 -0.0304176398 0.0289402977 0.0882118121 0.08266709 -0.0180647224 -0.0865975469 0.0838387087 0.0614414439 -0.089914389 0.0339662954 0.0855522677 0.0103858188 0.0222112089 0.0261804685 0.0353965983 -0.00344379991 0.0571075454 0.0183197111 -0.0378998108 -0.0264692903 -0.0197905824 0.0132522658 0.0790565982 0.0690162554 -0.0183016211 0.0657120869 -0.0296334699 0.0473556891 -0.00204829127 -0.00180303305 0.0502033308 0.0782539621 -0.00899592042 -0.0307621248 0.0317841992 0.0368102714 -0.0647004023 -0.00298477709 0.0406567976 0.0129668564 -0.0858128518 -0.0574641526 0.0603122786 0.013728261 -0.0306609422 -0.0127691999 -0.0918324739 0.0626445189 -0.0343702361 -0.0893699601 -0.0693047047 -0.014033258 0.0844399408 0.0858030394 -0.0616848581 -0.0821526647 0.041017659 -0.0647954866 0.059364073 0.0912521705 -0.0273084193 -0.0279861838 -0.00362105668 0.0919976011 -0.0453066453 0.080468066 0.0593372658 0.0437847152 0.0445632115 0.0071933493 -0.00559460372 0.0558146611 0.0611250922 -0.0125338882 -0.0401147492 0.0825386867 0.0115395635 0.020947963 0.0443314239 0.00710187852 -0.0342149511 0.0341861024 -0.0911892354 0.0505436435 0.0378554985 0.0228586718 -0.0350831524 0.0375129804 0.00839091837 -0.0723640323 -0.0285258144 0.075822182 0.06467513 -0.0619439855 0.0365954265 -0.0651023164 0.0698575452 -0.0865947306 0.0248992145 0.0393467173 -0.090088211 0.0169323683 0.011037305 0.0315212905 0.010933876 0.0207363069 0.0117072165 0.0587312505 -0.0288298428 0.0282863826 -0.00242605805 -0.0754873827 0.0878596082 -0.0289928541 0.0798692927 0.0301225856 0.00595247 -0.015979737 0.0551793054 0.0327364132 0.0777467564 0.0597720221 0.0835484043 0.0873410627 0.0101657808 -0.0412001051 -0.0319857746 -0.0150457025 0.0541433915 -0.0424655341 -0.0695548803 -0.0251470953 -0.0123780742 0.0241792351 -0.00730433315 -0.047200691 0.0878524557 0.0583629087 -0.0522398129 0.0616468415 0.0385633633 0.0245816931 0.00246651471 0.0529708192 -0.0320968628 -0.0438739397 -0.0757348239 0.0302510634 0.0707578138 0.081387274 0.0743183419 -0.0775822774 -0.0635532364 -0.016431652 -0.0483716466 0.0599237755 -0.0673662424 0.0333086327 -0.0277442038 0.0895232633 -0.0266459212 0.0633507892 0.0565815046 0.062676765 0.06597846 0.0515652522 -0.0756745636 -0.0531559773 0.026761435 0.0766556486 -0.0620033927 -0.0269519091 0.0844779387 0.0550452843 0.0569410995 0.0638834462 -0.0589630194 -0.050665535 0.0858837739 -0.0287200138 0.0228114352 -0.0900255889 -0.0785562396 0.0151874721 0.00443000346 -0.0771999508 0.0465269759 0.0505536124 -0.0774464682 0.00858043134 0.0308564827 0.0423048362 0.0902361646 -0.0915115401 -0.0209782496 -0.0696002617 0.0885162428 -0.0154959038 0.0746614859 -0.0109132528 0.0781856105 -0.0737932175 -0.058706224 0.0090392381 -0.072775051 -0.0901059061 -0.0678222775 -0.0373703279 -0.0714531541 0.0377498493 0.0230464861 0.0906957015 -0.062552996 0.082785286 0.00422011316 -0.0751730055 -0.0679201409 0.0559100583 0.0535694882 0.00518003106 -0.0270735621 0.0036469847 -0.0881414264 -0.0756229013 0.0337591842 0.012060903 -0.0819802731 0.0210111737 -0.0663223118 0.072157003 0.0888850018 0.0234507322 0.0390064791 0.0611229464 0.0105483904 0.0724697188 0.080204092 -0.0411235541 -0.0760896578 0.0164383426 0.0501154885 0.0393182263 -0.0453906357 0.0299069285 0.0848958269 0.0196153373 0.0395636931 -0.019569777 0.00131842494 -0.0313685797 0.045630239 0.04980845 0.0815862641 0.0449780449 0.0178920254 0.0908852741 0.0594831035 0.0429675207 0.0747989193 0.0513876155 0.00431715697 0.090658702 0.00825498253 -0.0716656148 -0.063386336 0.0866380408 0.0740463808 0.0577756688 -0.0754820332 0.0187140331 -0.0254099667 -0.0732944831 -0.0110402331 -0.0882184654 0.0865972564 -0.0536771193 -0.0242922306 -0.0667081326 0.0338917896 -0.0435720198 -0.0475788526 0.0882747248 0.0242030025 0.0502857044 -0.073364608 0.0693259314 0.0536181703 0.0295651257 -0.0347606577 -0.0737232268 0.0920597985 -0.0784669667 -0.0342712738 0.0398441926 -0.0591032505 -0.0842513368 -0.0781178102 -0.0754632801 -0.0171676204 -0.0680496022 0.0613831803 -0.0120099932 -0.087786682 0.0582580492 0.0471680537 -0.00508743525 0.0863177255 0.00440112501 0.0726260021 -0.0114361569 -0.0178644508 0.00563444197 0.0500133261 -0.0480961204 -0.0326401033 0.0558380857 0.00980637223 -0.00951790065 0.0686123446 0.0456218943 -0.081209071 0.0729715899 0.0356110558 -0.0183783472 0.0647783354 -0.0787308663 0.0876930282 0.0715010688 0.0299079865 0.061984174 0.0241135731 -0.0468985513 -0.0542711578 0.0621506199 -0.0561586022 -0.0187424496 -0.064472422 0.0496462807 0.0568554774 0.0242329165 0.0398621932 -0.0823475644 -0.0363905318 0.0354823545 0.0483821407 -0.00337011367 0.0879300609 0.0905376896 0.0881553367 -0.00891952217 -0.0280443132 -0.0640706867 -0.0559160002 -0.0838963985 -0.0494651496 0.0156908035 -0.0748203993 -0.0148998126 -0.0673556775 -0.0827099234 0.0670379624 0.0911403522 -0.0222521499 -0.0742706433 0.092102401 -0.0897611529 0.0920043662 -0.0403219983 -0.0403187424 -0.0293499082 -0.0160601437 0.0593916699 -0.0417351574 -0.0443258807 -0.0771825165 0.00206346065 -0.041148074 -0.015221037 -0.0751207098 -0.052137021 -0.0469264612 -0.0152815878 -0.0012428686 -0.0200131312 -0.0515098572 -0.0128305852 -0.0855096355 0.0633035377 0.0242559165 -0.0753135681 0.0430395678 -0.0650152862 -0.0308685452 0.091903545 -0.0452456549 -0.0873775482 0.039239414 -0.0187088549 -0.0440598615 -0.0874243453 0.0215787366 0.0430616364 0.0492131785 -0.0198021829 -0.0844847783 -0.0472072698 -0.0741684288 -0.0217879713 0.0854001567 0.0651122555 0.0195557326 -0.0161115602 -0.0920001045 0.00722275674 0.0458852723 0.084660776 -0.0681058615 -0.0623917691 0.0264274478 0.0403888896 -0.0726997107 0.00793243945 0.0889261588 0.0669634119 -0.00889641047 -0.0693768784 -0.0503659286 -0.00684224069 -0.00440958142 0.0176600814 0.0672292933 0.00413999707 -0.0286673009 0.0609529391 -0.0553320646 0.0797369406 0.0219879374 -0.0709223449 0.0862362459 0.0544018075 0.00577902794 -0.0902081206 -0.0368622169 0.0297560692 -0.0872211009 0.090899311 -0.0816544518 0.0815416053 -0.0223976374 -0.0225354657 -0.076387763 -0.00457536429 0.025887154 -0.0633755475 -0.0736288428 0.0275543854 -0.0790068805 -0.0100708902 0.0545070246 -0.0281084105 0.0306851938 0.0779924467 0.056230776 -0.00473035872 -0.0244474709 0.0499846414 0.0248520672 0.0175555572 -0.0165435746 -0.0353229158 -0.0338292383 0.0689375028 -0.0280198827 0.0606496409 0.0501111522 0.0834625736 0.0724716857 0.00178302079 -0.0820769444 -0.031420745 -0.0076860562 -0.0778009892 0.0793265328 -0.0530150868 -0.0798956454 -0.0636044145 -0.090209201 -0.0452988297 0.042659007 0.00686682761 0.024820596 0.0853614435 -0.0304663703 -0.0234891623 -0.012245506 0.0891076699 0.065596424 0.0285355896 -0.0797798485 -0.0210009217 0.0550322756 0.0118405372 0.0210532844 -0.0584543794 0.042003639 -0.0560875051 0.0830153152 -0.0487114899 -0.0580614954 0.0636779293 0.0863580778 -0.00729653984 0.0469001606 -0.084408164 0.0730613843 0.0499647185 0.0234779343 0.0899947509 0.0217734873 -0.0709644705 -0.0368874185 -0.0452557355 -0.0177685916 0.0105009973 -0.0264163762 -0.0276317075 0.0747674927 -0.0736002475 -0.0920389742 0.0681326762 -0.0738980472 -0.0662938282 0.0531206951 -0.0875948817 0.0639592186 -0.0334644392 0.0808758512 0.0724915192 0.0594345257 0.0874441341 -0.0525696613 0.0472864136 0.0663617477 0.0103465319 0.0281370655 0.0703457966 -0.00232197344 -0.0910751149 0.0359089002 0.0861473456 0.0130527392 0.0581404045 0.0362645909 0.0814717934 -0.0465475284 -0.0803439096 -0.0214365274 -0.00516030937 0.0687896237 0.0836786702 0.00492790341 -0.0661518574 0.00530239195 -0.0517166443 0.00176534802 -0.0233280882 -0.0659514964 -0.0700570941 0.00518907607 -0.0585006475 0.0187998042 0.0510458574 0.0181690529 -0.00808647275 -0.0725526214 -0.0395568945 0.0270711184 -0.00660470128 0.0400507227 0.0488043502 0.0121752247 0.0679587051 0.0861639753 0.090294607 -0.0799829364 -0.0784971192 -0.0457694791 0.00714594126 0.0222742036 0.0211943686 0.00296784937 -0.0356871225 -0.0870026052 0.0791284516 0.008021079 -0.0510698669 -0.0609895922 -0.0651286393 -0.0423760824 -0.0510734767 0.00907903165 0.0119170845 0.0676815882 -0.0828254744 0.0206363797 -0.00934630632 -0.0917173773 -0.0713148564 -0.0506600104 0.07803718 0.0361492559 4.56720591e-05 -0.0302264318 -0.0596434101 -0.0861333236 -0.0779678747 -0.0769417509 0.023947902 0.0592292622 -0.0515769869 0.0111738816 0.0112096891 -0.0732583404 0.0393385664 0.0661832765 -0.0213403627 0.00671684742 0.0679796115 -0.0735775977 -0.0887466893 0.0568492636 0.0560576841 0.0118636638 0.0869233236 0.0730165914 0.0266527906 -0.0816713348 0.0677134171 -0.0546857901 -0.0360565893 -0.0787743181 0.00141296536 -0.0435861312 0.0291919857 -0.0279531926 -0.0755655617 0.0420504883 0.0614924356 -0.00990988314 -0.0205870345 -0.0587922633 0.049143903 0.0307095423 -0.0301245451 0.0815444514 0.0171432123 0.0305280611 0.0514265224 -0.0440643504 0.0498818681 -0.0520781241 0.048967801 0.052437 -0.0307131298 0.0810338929 0.067249991 -0.053954076 0.000760860741 -0.0712848827 0.0761478469 -0.0467212349 0.0612848029 0.021066837 -0.0555962771 -0.0891015902 -0.00457426161 0.0475952998 -0.091115877 -0.018204093 -0.0835681781 -0.0743539557 -0.0446170792 0.0013383925 0.0352118537 -0.0460976362 -0.0739719421 -0.0314922556 -0.00352134556 -0.0696057677 -0.0487332121 0.0428506508 0.0519164726 -0.0791131929 0.0416307375 0.0582958832 -0.0599182546 -0.0909402296 -0.0881295204 0.0486935452 -0.0691315308 -0.024781175 -0.0532485284 0.00462162495 -0.0837881267 0.040272586 -0.00805497169 -0.0246434137 -0.0768478513 0.0539496318 -0.0221225321 -0.0500217266 0.0673059598 0.0114872456 -0.0376103744 -0.0922606215 -0.0275243819 -0.0377320908 -0.0650268868 0.0909316912 -0.0179984048 0.0263341665 0.0517556742 -0.0807118788 0.0173437893 0.0521590039 0.0321652219 -0.0334024355 -0.0330339111 -0.0469833799 0.0623166934 0.012687102 -0.051977206 0.0412625447 -0.0653615519 0.0886204615 -0.0155143663 0.0474373624 0.052770786 -0.0388165265 0.0304625183 0.00279823691 0.0367709324 0.041211836 -0.000245660543 0.031190291 -0.0599889085 -0.0306950361 0.0569107905 -0.0212382153 -0.0165104717 -0.0136319026 0.0445894524 -0.0851215422 0.0917680487 0.0573646203 0.033432804 0.0854910985 -0.0833090693 0.0070585832 0.0315255597 -0.089482829 -0.0464094132 0.0130322054 0.0241839439 -0.0515666418 -0.0914900526 0.0643720999 -0.0400448442 -0.00967342407 0.0663546398 0.00359624624 0.0558615401 -0.0311757214 -0.0689536408 -0.0407574996 0.00595579296 -0.0407929569 -0.0580862351 0.0576377288 0.0350413844 0.0894089714 -0.0222363025 -0.0382215157 0.0616621897 0.0708033368 0.0852761939 0.0578463599 -0.0576382764 -0.0357705839 0.0465651825 -0.0560536981 -0.0245277658 -0.0674674287 -0.0253954828 0.0782700554 -0.0725975856 -0.0814248845 0.0134172291 0.0893080309 -0.0896343738 0.0515813306 0.092216529 -0.0842618346 -0.000293396413 0.0173913091 -0.0385196917 -0.021626763 0.0691289529 -0.00624027848 -0.0475871488 -0.0526518263 0.0838271901 -0.088660039 0.0923000202 0.000322520733 0.00141973794 -0.0365673639 0.0515212789 -0.0575803444 -0.069821842 -0.0335066319 0.0385399684 0.0589276925 0.0718035772 -0.0129932016 -0.0483687185 -0.0178866759 -0.0564989038 0.0612098351 0.0540713742 0.0198677555 0.00409839302 -0.0202668905 -0.00531238317 -0.0608137287 0.0472010151 0.0102276728 -0.0339659899 0.0238450915 -0.051011648 0.00271134079 0.0286528841 0.0508492514 0.0622023866 -0.000158146024 -0.0616232939 0.0489349887 -0.0147994682 0.00383332372 -0.0598510131 0.0203787014 -0.0735266209 0.0180964172 -0.0535171442 0.0214081779 0.00959298015 -0.0608643293 0.0377395377 0.090691112 -0.0134218782 -0.079648219 0.0287867039 -0.0561579838 0.0261475593 0.0526953861 0.0356213376 0.0202650651 0.0504136309 0.0111357793 -0.00172771513 -0.0901797712 -0.0725483 -0.0241147205 0.0211353824 -0.0464452915 -0.0828655809 -0.0104724094 -0.0202826932 -0.0325062573 -0.0181060135 0.0240637437 0.0508144572 0.022905685 0.0431338772 -0.05210099 -0.0740120411 -0.00828655064 0.0630166903 -0.0648723692 0.0170915946 0.0668281987 0.0605821833 -0.0183641985 0.0861967131 0.0653655753 0.0194350928 -0.0349020734 -0.0735583901 0.0669708923 -0.086133346 -0.0360641405 -0.05145723 -0.00508670509 0.0173269287 -0.0794540495 -0.0217114165 0.0323932767 0.0828757063 0.0803413913 -0.0279063955 -0.0206202269 -0.0449227393 -0.0514315441 0.0812263563 0.0121201798 -0.0502181053 -0.0341314413 -0.0797759444 -0.0173907205 -0.0153678879 -0.0774599835 0.0637906715 0.0803864524 -0.00946932286 0.0566060022 0.0133864582 -0.000591814518 -0.0675907731 -0.0506582931 0.0604968891 -0.0374688022 0.090440549 0.0350758061 0.0556041524 0.0175343156 -0.0252806768 0.00370337069 0.0427111909 0.0667551979 0.01668863 -0.0372241363 -0.033299908 0.0176834986 0.0869720951 -0.0169465244 0.0265863165 0.068883203 4.91961837e-05 -0.0304709263 -0.0475828573 -0.0777560025 -0.0707735345 -0.0733797699 0.0634755716 -0.000673010945 -0.0636159256 0.0539659634 -0.0505432673 -0.0913251936 0.0344173983 -0.0808972493 -0.0131115094 0.0112169757 -0.0644754991 0.0721276626 -0.0501023531 0.0656524375 -0.0524629094 -0.0111293346 -0.0597199388 0.0792738274 0.0362723842 0.0717174485 0.0118143186 -0.0284303352 0.0474432185 -0.0207295045 0.0202585086 -0.0805615038 -0.0531266145 -0.0133323818 0.0287075788 -0.056319695 -0.00729281455 0.0294591933 0.0868633017 -0.060070809 -0.0736931562 0.062300466 0.0830489472 0.0779438242 -0.0418435186 0.0775344744 -0.00260809064 0.0442992523 0.00940685719 0.0336213037 0.0706404373 0.0625685379 -0.0882224441 -0.0072651729 -0.0526694134 0.0832496658 0.031110175 -0.0285233483 0.0741712078 0.0822802559 -0.0556120574 0.0135310739 0.0258750916 0.0189076364 0.00720275193 0.0465585068 -0.00326161832 -0.0921294615 -0.0916801617 -0.0152474046 -0.0190928504 0.0897783861 0.0676558837 0.0278517455 0.0845665261 0.0688896105 -0.0307115205 -0.0234471858 0.0671481416 -0.066495955 0.051911585 -0.0119265318 -0.0677128211 -0.0452476554 -0.06954588 -0.0427960195 0.0577784404 0.0295436233 -0.0650128201 0.0286131278 0.0158065781 -0.00644537061 0.0172755346 0.00886742771 -0.0684261173 -0.00113525987 0.0285705626 -0.00762289017 0.0243675336 0.0518638119 0.0281529576 -0.0477776937 -0.0807913542 0.02606152 0.0349227414 -0.0569682345 -0.0322260186 0.0535400435 0.0417329744 0.0125179738 0.0346051082 -0.0184790716 0.0529327914 -0.0104379132 -0.0269044787 -0.0780546218 0.0580685809 0.0744213089 0.0408395305 0.0438680127 0.0791008398 0.0736665502 0.0334065035 -0.0187162086 -0.0448320098 -0.0746328905 0.0336983874 -0.0377260409 -0.0121873096 0.00882960856 -0.0825217366 0.00246021897 0.0746853724 -0.0183769166 -0.0684754401 -0.0499360859 -0.0913993493 0.0840137824 0.0730753168 0.0436433777 0.00821151584 0.0554962829 0.0422655866 0.0914276615 0.0179801807 -0.0611291155 -0.0702250525 0.0904276744 0.0456517264 -0.0729967654 -0.0345725119 -0.00976668298 -0.0711401626 0.0704131499 -0.00701601803 -0.0301133655 -0.0594398566 -0.0755403191 -0.0540628508 -0.0676605478 0.0664364174 0.0583942905 -0.0248474255 -0.020391427 -0.0526943058 0.0506471172 -0.0501154475 0.0561021939 0.0841884091 0.0782334581 0.017661579 0.068645142 0.00920628011 -0.0869014859 0.00883764774 -0.0237951502 0.0015732646 0.0852861181 -0.0188715607 0.0676849112 0.0592879876 -0.0117866546 0.0716818795 -0.0469410978 -0.0105170459 -0.0248394981 -0.0645913631 -0.0912989378 -0.0824366659 0.0793213174 -0.0551488027 0.034056358 0.0487091169 0.0849372521 0.0466401652 -0.0850039199 -0.014233008 -0.0667972565 0.00581941754 0.0445396677 -0.00297506899 -0.0244887173 0.068574883 0.0589131191 0.0370336398 0.0759818926 0.0396149829 0.0568975732 -0.00832484663 0.0625335351 -0.0810392648 0.0214575902 -0.0515039153 0.0482668057 0.0375993326 -0.0242071822 -0.0797357559 0.044312425 0.0643418506 0.0357629731 0.0236528516 -0.000176854432 0.00843846053 0.0584184602 -0.00644607842 0.0715473369 0.0536307618 0.0720151588 -0.0500071123 -0.0421320945 -0.0234406888 0.0130362958 0.00472263247 0.0140782744 0.0626526102 -0.0608388409 0.00515227765 0.053305842 0.0601198748 0.0577773377 0.0230449438 -0.069408156 0.00832838565 -0.0820431113 -0.0170791149 -0.0775664523 -0.0825229436 -0.082810685 -0.00929071009 0.050439395 0.0583362356 0.0730560794 0.0260584876 0.0128170252 0.0557755902 0.0142354742 -0.0417339504 -0.071869567 -0.0508848019 0.01160115 0.0499161705 0.0662096366 -0.0459462255 -0.0701978728 0.0651944652 0.0300497115 0.0778803453 0.00768215954 0.0486289486 0.0527915284 0.0664415136 -0.0796956569 -0.0717335641 0.0709216669 0.022530295 5.69447875e-05 -0.0251344666 -0.00425557047 -0.0259288251 -0.0592794642 0.0488748923 0.0256345868 -0.0274730995 -0.0487019159 -0.0824956074 0.0896883383 0.0725164786 -0.0635436177 -0.0206975043 -0.0374956764 0.0600203797 0.065628536 -0.0635421872 -0.033132147 0.00924268365 0.0163164958 0.0219371319 -0.064356491 0.00763290375 0.0209118649 -0.0824351236 0.0504985675 0.0388972834 0.0741724744 0.0658007786 0.0499312207 -0.0444188528 0.0907231644 0.078241922 -0.00503480434 -0.0787156373 -0.064252533 -0.0511607714 -0.00535081327 -0.0699782968 -0.0137827843 -0.0877180994 -0.0394194387 -0.0318009965 0.0400219485 0.020550102 0.0401777849 -0.0703113377 -0.0278222486 -0.0205497667 -0.0800499544 -0.00765751302 6.34044409e-06 -0.0160817727 -0.0227981657 0.0579656586 -0.0301595218 -0.086211063 0.0622594878 -0.0762811452 0.079081215 -0.0330293365 0.0647665635 0.0324362814 -0.03370893 0.0417788103 0.021020487 0.0335137919 0.00256298482 -0.018422924 -0.0239259973 0.0350694433 -0.0826533362 0.0418660119 -0.0411811322 -0.092297554 -0.00737093389 -0.0475656912 -0.0158906579 -0.00512819737 -0.0711378753 0.0550272688 -0.0152376294 -0.0277255774 -0.051140368 0.0763750449 0.0285881311 0.0699920282 0.035037674 -0.0258453116 -0.0579422414 -0.0910471156 -0.0451180376 0.045817025 0.0106856897 -0.0393390767 -0.0767985061 0.0819060132 0.0584904626 -0.0725168735 0.0260815546 -0.00605688244 -0.0221985057 0.0238531232 0.000552728772 0.0296001285 0.0443331227 0.0414129719 0.090635784 -0.0633816272 -0.0207965076 0.0426653251 0.00844209641 -0.0441499501 -0.0726401955 0.0488644168 0.0632942393 -0.0563556366 -0.0280455053 0.0321707726 0.0834797993 -0.0317330956 -0.0155155584 0.0836584643 -0.063501671 -0.0555946045 0.0759287998 -0.0896372125 -0.0551343448 0.0387072489 0.02884195 -0.016839996 -0.048545111 0.086942561 0.0355852619 0.0773740187 -0.0858765021 -0.0324738547 -0.0365553237 0.0295524076 0.0430687591 -0.068038404 0.0414703265 -0.0568922311 -0.0692907125 -0.0904955342 0.0109886825 -0.0663544908 0.0150738955 0.0406609997 0.044951953 0.0262095183 -0.0301018097 -0.0294008628 -0.0445810705 -0.0801142454 0.0480444357 0.0523404852 -0.0392670371 -0.0759031624 -0.0570355207 -0.0821067244 0.0114635155 -0.0383606665 0.0839189813 -0.012057513 0.0626995042 0.0250673741 -0.0484819636 -0.0297933519 0.00241868943 0.0816391632 0.0655327514 0.0898618326 -0.0608269796 -0.0135315955 -0.0919598937 -0.0451598354 -0.0107244924 0.0467813686 0.0722529814 0.0315812677 -0.0466499664 0.00566639751 0.0111451149 0.0114545375 -0.0301394463 0.0403432772 -0.060608767 -0.056458097 -0.0687172934 -0.0725845546 0.050275974 0.0362385884 -0.03469982 -0.0213552415 -0.0540567748 -0.0330953673 -0.091339238 -0.0637675747 -0.0557792932 0.0698022917 -0.0314339064 -0.0706683025 0.0133371353 0.00329080969 -0.0547741205 -0.0812849849 -0.0741517469 -0.0746231228 -0.0610704124 0.00901284814 0.0104256794 -0.0828641951 0.0885237232 0.0849033073 0.0614254251 -0.00713830441 -0.0462512895 -0.0325720906 0.0767396465 -0.0705426857 0.0904687867 0.0182337612 -0.0278364047 0.0656448677 0.0612676069 -0.0848357379 0.0449124649 0.0204486772 0.0632433519 -0.0655114427 0.00104763359 0.00217905641 -0.0674900338 0.0678093806 -0.0894180536 -0.0688139871 -0.0575379543 0.0360041186 0.0178168416 0.0706362352 0.0156025887 -0.067440182 0.0216059834 0.0183958039 0.0451421216 -0.0120783821 -0.0346714929 0.0633483455 -0.0355508104 -0.0619897917 -0.0179337412 -0.01396285 0.00701715797 -0.0623905584 0.0446217284 -0.00897298753 0.0593863204 -0.0540545098 0.00655980408 0.0810192302 -0.0785920024 0.0690297261 -0.0566616058 0.0416924134 -0.0722378045 -0.036168579 -0.0649591386 -0.00665984303 -0.0448279381 0.0702350214 0.00813740492 -0.0165493265 0.0813008174 0.0804635957 0.0567908511 -0.0390947163 -0.0157212466 -0.0863650292 -0.0820491463 -0.0851018205 0.0851645693 0.0793621466 0.0869625881 0.0344615355 -0.0138854831 0.0407867953 -0.0655267686 -0.00154493749 0.0426009819 0.0404855981 -0.084978275 0.0434884205 0.0470030531 -0.0912496746 -0.0152365938 -0.030092366 0.0579710677 -0.0602386817 0.0830666646 0.029199183 0.0593672171 0.0303875282 0.00353362411 -0.0252139196 0.0242198408 -0.0337474048 -0.0211238712 -0.0909673944 -0.0194236934 0.0411901847 0.0585799888 0.0323625505 0.0587382987 0.0121994615 -0.0493223891 0.0717083886 0.029256016 -0.0894679725 0.0857258663 -0.079471238 0.00582339615 0.0516886488 -0.0550270863 0.0056225732 0.0420858935 0.0255602151 0.0346611068 0.0566955432 0.0896189287 -0.0781133026 -0.0291346461 -0.049201794 -0.0524404161 -0.076739803 -0.00163526833 0.0829960778 -0.0539712012 0.00377587229 -0.063593477 -0.0838219598 0.0360994264 0.0400822982 0.0919577107 0.0519945249 -0.0393401794 -0.00994818658 -0.0285052583 0.0104019269 -0.0370864794 -0.0904914811 -0.0902730078 -0.0541865714 0.0350209251 0.00441620499 0.0840867832 -0.00111857057 -0.0452809371 -0.0061847046 0.0294171721 -0.0390571244 -0.0221213624 0.000273898244 -0.0227465034 0.0876159295 -2.49147415e-05 0.0830895826 -0.00293505192 -0.0178884417 0.0827732757 -0.0407042988 -0.076960437 0.0194418281 -0.0845390558 0.0579207614 0.0839461014 -0.0806719735 0.035951905 -0.0194370747 -0.0385202207 0.00508457422 -0.0436864085 0.0341540202 0.0389653817 -0.0395894684 0.0143272579 -0.0112782568 -0.00856094807 -0.0203173831 -0.0402879044 -0.0691455901 0.0685228482 0.0114617124 -0.00210274756 -0.0226376206 0.0599560067 0.0186481327 0.0707495585 -0.0446337387 -0.0911799297 -0.0416239612 0.056584321 0.0556915328 -0.0644436479 -0.00612604618 -0.0843976215 0.0634499267 0.0346724316 -0.071406886 0.0212002918 0.0426915511 0.0849043205 -0.0294583589 0.0819991156 0.0393748209 0.077845715 0.0145918652 -0.0300886482 -0.0732256994 -0.0542652383 0.0857662484 0.00914471596 -0.0438764915 -0.0674563572 -0.00784307718 -0.0891581774 -0.0601111986 -0.0585231632 0.0335287675 -0.00400603563 -0.000729776919 -0.058686614 0.00135093927 -0.0116348043 0.00373061746 0.0768254176 0.0786960647 0.0460043326 -0.0358787887 0.0323132649 0.0327944979 -0.00842175633 -0.00171899796 -0.0561526343 0.026939787 0.0335064307 -0.0731825382 -0.0435278676 -0.0183507502 0.0492039546 -0.0720270947 -0.0484256186 -0.0142986178 0.0845129266 -0.0361456871 0.0809699669 -0.0804780573 -0.0838970095 -0.00157929212 0.0588529184 -0.0821811631 0.00720607489 -0.0128139704 -0.0426398329 -0.0146312192 -0.0442086756 -0.0189784393 -0.0016406849 -0.0176482201 0.000619880855 0.0688175038 -0.00371882319 0.0154064745 0.0268741474 -0.0176792964 -0.0785260648 0.0844921991 -0.0333271138 -0.0772434697 -0.0365448929 -0.0206486657 0.0628806874 -0.077050373 0.0638978854 -0.0900542662 0.0422713384 0.0623958185 -0.0120589882 0.0564220175 -0.0224611834 -0.08250954 0.048402153 -0.0786028802 0.028698951 -0.0307560042 -0.0819616765 0.0800891742 0.00803692639 -0.0725556985 -0.0321774408 -0.011204347 0.057658501 0.0400477871 -0.063806206 -0.0918274745 0.0178622231 -0.0416503325 0.0570031926 0.0626057312 -0.043978028 0.0504396632 0.0299392417 0.0386696234 -0.0717427433 0.00687003881 -0.0232689008 -0.0918442011 0.0179050565 -0.0763337985 -0.0323123224 -0.0460405834 -0.0278501362 0.0568312034 0.0627885982 -0.0706357509 0.0907965079 -0.080983907 0.0515849814 0.068414934 0.0903489068 0.0267396197 0.00490516424 -0.0169527084 -0.0134630129 -0.0121048614 -0.0141029283 -0.0641624928 -0.0855682045 -0.0435757637 -0.0565129034 -0.0191163197 -0.0100183785 0.0418396369 -0.0484915823 -0.0803362504 -0.0296378955 0.0368639156 -0.0574111715 -0.0284841061 0.0204312205 -0.0899336934 0.018274039 -0.0178299397 -0.0504346676 0.0104529262 0.0179469883 -0.0659456477 0.0753952488 -0.0551304482 -0.00278089195 0.0354953483 0.0448796675 -0.0430056714 -0.0774008855 0.0621637776 0.0239188671 -0.0781927556 0.0236164927 0.0366364792 -0.0724702552 -0.0473226719 -0.0439345352 0.0474664196 -0.0417751297 -0.0887148827 -0.0181746632 -0.0157975107 -0.0815872326 0.030485101 0.0106027275 0.0787207857 -0.0781895667 0.0498177335 -0.0407068096 -0.0268860385 -0.0110008344 -0.0886871293 0.0758211538 0.00667857379 -0.0115581378 0.0143007115 -0.00949358195 0.00784222037 0.0424074754 0.0632892027 -0.0470017828 0.0540973023 0.0744256005 0.00905708969 -0.0502785668 0.00881495327 -0.0501299538 0.0886291787 0.0146201029 -0.0910632089 0.0792785361 -0.0841576606 -0.0780551881 0.0380212888 0.0561101362 0.083347939 0.0237686485 0.0666595176 0.0584415272 0.0101404041 -0.0867514387 0.0224658921 -0.0894895643 0.048197858 0.0879120752 0.0536309555 0.0619057789 0.0667789802 -0.0344259664 0.0181180984 0.047705017 -0.0586839728 0.0334618017 -0.0640904307 -0.0197308511 0.0345807448 0.00851123035 -0.0549941361 0.0149063542 -0.0885137096 0.00803232938 0.0865609422 -0.0593334585 -0.0734078586 -0.0632067025 -0.0426943302 -0.000466622412 0.0881903693 0.0569551215 0.0385449007 0.030115746 -0.0576244332 0.0427611843 0.0457900837 0.0783066377 -0.0322196558 0.0444409326 0.0119716749 0.0187614858 0.0148809478 -0.0907528102 0.0820291415 -0.0818493366 0.032932885 -0.0179809481 -0.0332276262 0.0471807942 -0.00727402419 0.0667409524 -0.00254888088 -0.0596242584 0.0346551761 -0.0494434237 -0.0219598711 0.0769412592 0.0801877901 -0.0341431983 0.0869759694 0.0533895567 0.0856247917 -0.0855628774 0.0171202049 -0.0545134731 0.0474509969 0.0624380782 0.0147413164 -0.0277105495 0.0629133508 -0.0573090203 -0.00801537931 -0.0807580799 0.0715855286 -0.0222282261 -0.0663409755 -0.0849707946 -0.0463488176 0.0381704047 -0.0747983009 -0.0275037587 -0.0805274546 -0.0698363706 -0.0463012084 -0.0204491392 0.0620317683 -0.0258694366 0.037789382 0.00453536958 -0.000661149621 0.0545808747 -0.0126769319 -0.0794989243 -0.0496498607 0.00554395467 0.0593196079 0.079592146 -0.0478557423 0.0139020979 -0.0816619843 0.0377656743 0.0701160356 0.0149745643 -0.0485399403 0.0591954365 0.0700102821 -0.0084078908 0.051819019 0.00787065923 0.0372611061 0.0460038856 0.0617817417 -0.0147110075 0.033985801 -0.00881561637 0.0755672529 0.0306976363 0.0601737574 0.0499123111 -0.04771569 -0.0296833664 0.0742584094 0.00592368096 -0.086041823 0.050007306 0.0608805493 0.00194904953 0.06960354 -0.00165060908 0.0884172395 -0.0886658281 -0.0383516215 -0.0593982562 -0.0848287642 -0.00487270206 -0.0870114937 0.0270452574 0.0753403082 0.056753628 0.0791926309 -0.01137501 -0.0265200436 0.0802915618 -0.0902331024 -0.000166751444 0.0693872049 0.0341896787 0.0143959969 0.00172945112 0.0667417422 -0.0244790167 0.00552370399 0.00103105605 0.019233413 0.0586084947 -0.00510623306 -0.0528675504 0.02260755 -0.010882549 0.0359766707 -0.00189380348 -0.0431534052 -0.0697193891 0.058339633 0.0103458017 0.0914417431 -0.0412531756 -0.083560124 -0.0571700707 0.0263272747 0.0584615543 -0.0630331337 0.0107535273 0.00900888443 -0.0476094037 -0.0143106356 -0.0111200213 -0.021471858 -0.00395020097 0.0376188681 -0.0358704254 -0.0373730585 -0.0619315282 -0.0517097786 0.0739894137 0.000364601612 0.0184405744 0.0162737072 -0.0643674508 -0.0563980527 0.0124700963 -0.0551558025 -0.0458575226 -0.035501793 -0.086139001 0.021915257 0.061127089 0.0251014903 -0.0236166641 0.0111532137 0.00314542651 0.0352324769 0.0905618444 -0.0776371881 -0.0316146761 0.0660646185 0.00467434525 -0.034422949 -0.0698189139 -0.00510838628 0.0794652328 0.0460982099 0.0876810327 -0.0445129238 0.0476826355 -0.0580142364 -0.0819604024 0.0248430669 -0.0391343571 0.0121320859 -0.0241991282 0.063694723 -0.0397719778 0.0542440191 -0.0707887635 0.0281753838 0.0566124544 0.0691571906 -0.0868589431 -0.0920390859 -0.0826307088 0.0768750533 -0.0476643629 0.0700719878 -0.0517819263 0.0740941241 -0.0703360066 -0.0866050497 0.0153924078 -0.0427913964 -0.0212829858 -0.0552198552 0.0109875202 -0.0914913565 -0.0885194764 0.00275278091 -0.044921793 -0.0183340833 -0.0822896361 -0.00870679319 0.0569175258 -0.0179483294 -0.0433669724 -0.0474026576 0.0187049434 0.0703079626 -0.0713658333 -0.0242853686 -0.00778420269 0.0615158007 -0.0637985021 0.00697205961 -0.0805931538 0.0274500996 0.0427988991 -0.00414065272 0.0726293847 -0.0850522518 0.0144713596 0.0497617796 -0.0122359991 0.079862915 0.0634160265 -0.0519472249 -0.00774464756 -7.83577561e-05 0.0253711641 0.0161264539 -0.0845365301 0.0882447585 0.0595140085 0.0732361302 0.0819287524 0.0417583957 -0.0405460224 -0.0419579037 0.0415603891 0.00735979527 -0.0670819134 0.0550684705 0.0601499155 -0.0343242325 -0.0567225106 -0.0106308833 -0.00662323833 -0.0421151929 0.0553887561 0.00494603813 -0.0377811305 -0.0125240237 0.0483377352 -0.00647445023 -0.0808788687 0.0757594928 0.005047068 0.0767504051 0.0624930188 -0.018050611 0.030403398 -0.0309370421 0.0497585461 0.0883846208 -0.00858456641 -0.0849250332 -0.026675351 -0.0792638063 -0.0521562584 0.0881173834 0.0798958465 0.0873430446 -0.0270628035 0.0154305547 0.0494412854 -0.0605697185 0.0136699155 0.068169497 -0.0661437213 0.0916075483 0.0263870135 0.0162418112 -0.0459179431 -0.0105868652 0.0754757002 0.0076161772 0.0648473725 -0.0804221556 -0.0588599443 0.0421153829 0.0663752481 0.0233271196 -0.0834685564 0.026884608 -0.0892843157 0.085752584 -0.0667249486 -0.044036705 0.0290679336 0.0504175797 -0.0572815537 0.0856395438 -0.0744021833 -0.0275609195 -0.0651929975 -0.0024721697 0.0237716213 0.0784306303 0.0310740992 0.00491824001 -0.0416435301 0.0409546271 0.0679108128 0.0171460956 0.0857240334 -0.0749185905 0.0422055051 -0.0537737422 0.0861284807 0.0264347345 -0.0461657345 -0.0762525797 0.0460478738 -0.0403863564 0.0175337866 0.0449476764 -0.0327397436 -0.090335384 -0.00778484344 0.0677951798 -0.0894957334 -0.016847454 0.0426023975 -0.0469027795 -0.0582788028 -0.0159662664 -0.00350741297 0.00436456501 0.0764878765 0.0203633606 0.0281639621 -0.0291156322 -0.0585891083 -0.0655455366 0.0352468714 -0.0631882846 0.0480744615 0.0783444121 -0.0635116622 0.051303573 0.0272910297 0.0611509308 -0.05139089 -0.0641317368 0.0257634148 0.0555438772 0.0289246663 -0.0117673278 -0.0712757707 0.0145811886 0.048523657 0.0629203543 0.00633043051 -0.0441132374 0.00733619928 -0.0482208543 0.0847282186 -0.0564443395 -0.0374924205 -0.0908993781 -0.0353286602 0.0605501756 0.0162353218 0.0506349131 0.034230046 -0.070225805 -0.0738539845 0.0359421149 -0.0107075647 0.0799611732 -0.0908278674 0.034899272 -0.0895221829 0.0303897709 -0.0667527691 0.0901053473 0.0749660507 -0.0121392608 0.0854664668 -0.0272590443 0.0548735335 0.0115051791 -0.0878359824 0.00816971809 0.0253690332 -0.053980995 -0.0546311848 -0.00568180531 0.0471114889 0.025561884 0.056898348 -0.0508421473 -0.0203118399 -0.00975000113 -0.0102830082 -0.072942093 -0.0275788605 0.0562999472 0.0370567068 0.0574421808 -0.0614357889 -0.0198459402 -0.0747559071 0.0549613908 0.0656113103 -0.0624259263 0.0165078565 -0.0305009484 0.00931613147 0.0261518732 -0.0134537295 -0.0400841534 -0.0387718678 -0.0548074879 -0.0865238532 0.0536306724 0.0415479168 -0.0415160432 0.0848446563 -0.0281872079 -0.0140221044 0.0165701434 -0.0896033198 0.0532815382 -0.0584054291 -0.0588994548 0.00378659368 0.073261179 -0.0562524088 -0.0764533579 0.0260186046 -0.0358482376 0.0904518887 -0.0865316465 0.00127581507 0.0749038383 -0.0313203745 0.0790725574 0.0617474094 -0.0835796222 0.0133325607 0.0283225924 0.0514344051 -0.0633181259 -0.0696890131 -0.0190840289 -0.0317807682 -0.0549716428 0.00661370903 0.0862617716 0.023561269 0.0198117122 -0.0475028493 -0.0389704034 -0.0770302117 -0.0706771463 0.0795230046 -0.00619460642 -0.0584758855 0.0454253629 -0.0374223627 -0.0686015636 0.0760550275 -0.067576997 -0.0504095741 -0.0475257412 0.00737603754 -0.0459491313 0.0917511806 -0.0876971632 0.0540890917 0.0200221986 -0.0159581453 0.081222631 0.0374931023 -0.0261631906 0.0830541626 0.0258430466 0.0114178434 0.0215012357 -0.00789570808 0.0701752678 0.0639949664 -0.0239693373 -0.000676378608 -0.0530095398 0.0440826789 0.0137312785 0.0279892683 0.0136375576 -0.0739171579 -0.0817274153 0.031954363 0.0527390763 0.0698831454 0.0504507944 0.0480296537 -0.0209536403 0.0316695496 -0.0493284203 0.0245054066 -0.0185919628 0.00725764781 -0.0477349944 0.035235174 0.04267589 0.0152342841 0.0647269711 0.0827619508 0.0387482718 -0.0725371838 0.0384534672 0.0421084836 -0.044365719 0.0760764703 -0.0479512028 -0.0880804807 -0.0907532573 -0.0472388342 0.0369401351 -0.0632840246 0.00615619868 0.0660616234 0.0252512097 0.0519689247 0.0517135486 0.0443467423 -0.0157329738 0.0181162506 0.0604645684 0.0469645783 -0.0702926219 -0.0528670214 0.0356314555 -0.0655524507 0.0236545205 -0.0237839893 0.0905569866 0.0904209986 -0.0563824028 -0.0898839533 -0.0176301897 -0.0668882877 -0.0241940469 0.0135580301 -0.0703148767 -0.0299594477 0.0860836729 0.0856831148 0.0815519765 -0.0549775846 -0.00796629488 -0.0241642445 0.0318643227 0.0408789292 -0.078839533 0.0398293361 -0.0627729893 0.0226619393 0.0566915795 0.0114206374 0.0205648243 0.0607897118 0.0674912408 -0.0630460083 -0.0320470072 -0.0232746899 -0.0451124907 -0.0623434335 -0.00629856437 0.0392907932 -0.0713359639 -0.0310029835 -0.0823842809 0.0210387781 0.0480910763 -0.0607142635 0.00459994376 -0.00939906389 -0.035833668 -0.01139348 0.0435556844 -0.0388242975 -0.0439998619 0.00327891856 0.0765969381 0.0919284001 0.0515954718 -0.0514934361 -0.0665313229 0.0705374107 -0.0382763222 0.0104845762 -0.0498127379 -0.0500934832 0.0523779318 0.0716690347 0.00600102544 0.01880683 -0.0719013736 0.0413021967 -0.0304278731 0.029688783 -0.0567448065 -0.0366066322 -0.00385949016 0.0081339702 -0.00902451575 0.0452952459 -0.0361075439 0.0625728741 -0.0609618351 0.0115868002 -0.0872032717 0.0253449753 -0.0185332373 0.0891063437 0.017546773 0.000360839069 0.0795180276 -0.0879627243 0.00108087063 0.085815154 -0.00129505247 -0.076697737 -0.0636875704 0.0703934953 0.0629745647 -0.0678935722 -0.0110780224 -0.0794021189 -0.0350868963 -0.0680307224 0.0599595681 0.0469707474 0.0849938169 -0.0139007345 -0.00363593549 -0.00789630413 0.0335307792 0.0478744283 0.0494070426 -0.0915855616 -0.000679239631 -0.0477152504 -0.0849602744 -0.0596612357 -0.0549328141 -0.0408420414 0.0223722607 0.0493868068 0.044328697 -0.0257144198 -0.0566378348 0.0835171565 -0.0154711157 -0.05841377 -0.0565299839 0.0724063739 0.0921025202 -0.0229433849 -0.0883017033 -0.0539616235 0.0335248336 0.0799336359 -0.0528208651 0.02132117 0.060718812 0.0346555784 -0.0623314157 0.0340463445 0.0559266284 0.0332046971 -0.0742988586 -0.0168344453 -0.070797503 0.0607925132 0.0703169182 -0.0770433471 -0.0326011665 -0.0313283205 -0.0762927458 0.0909607485 0.0588944629 0.0155910552 -0.00633593649 0.0527826622 -0.0568594374 -0.0680725574 -0.0172650814 0.0390303358 0.0134470537 0.0579979494 -0.074184984 -0.081498839 0.0572123304 -0.0547624975 0.0199971497 0.0791801438 0.067772381 -0.0817742124 -0.00651344657 0.0716995522 -0.0479168445 0.0920338258 -0.0638485327 -0.0670739263 0.018597573 0.0600257292 -0.0595363937 0.00759471208 0.0344362631 0.00801418722 -0.0152421892 0.0123909935 -0.0275981426 0.0651949272 0.0387855098 0.0552984998 -0.0178318545 0.0765167549 0.00330154598 0.0790582374 0.0851121619 0.0216806456 0.0351950303 0.0584149435 0.00750280172 0.0290608928 0.0327215567 -0.0851890296 0.0293239579 0.0385924354 0.0536699817 0.0440141931 -0.0693278387 0.00149869174 0.0555034205 0.0550155565 -0.0825716779 -0.00587956607 0.0417962596 -0.0723881349 -0.0431741811 -0.0284427479 -0.00535307825 0.0254472792 -0.0841969922 -0.029131107 -0.000473640859 -0.0201508552 -0.086128369 -0.0263574123 0.013641566 0.0598202571 -0.043866545 0.0129722431 -0.0327044614 -0.0252457932 0.0243066475 0.0609368309 0.0706496313 0.0311293006 0.0209863037 0.0273069441 -0.049346447 0.0464703813 -0.0763098076 -0.0315018073 0.0358506367 0.0362580344 -0.0531354845 0.0430677459 0.0463976786 -0.0335493982 -0.0885953903 -0.024186343 -0.0558656864 -0.0263365433 0.0857513919 -0.0103259087 0.0476977453 -0.0785404816 -0.0182058737 -0.0626836047 -0.0108750239 -0.0282953456 -0.0127789304 -0.0613291487 -0.0112935305 0.0599936768 0.0175795481 -0.0764817297 0.0471047536 0.0686984584 -0.0246272087 0.048868604 -0.013428852 -0.0820354149 -0.0490984768 0.0899705216 0.00533428043 -0.0287979543 0.0766959563 -0.0205623806 -0.0634624436 -0.0326098576 0.0529908314 -0.057249438 0.0849467739 -0.0253489763 -0.0903135985 -0.0123185366 -0.00652447343 0.0342986062 0.0028943345 0.0431663916 0.0619514063 0.0276213139 0.0428904817 -0.0621309653 0.0189059824 -0.040070463 -0.0468650535 0.0483635291 0.000971741974 0.0521259233 -0.0902772993 0.0108531862 -0.0126450136 -0.0178401694 0.0574607328 0.00495862961 -0.0420655161 -0.0674886256 0.0656453297 0.0910125002 0.0131696165 -0.000154450536 0.0724305883 -0.0781338364 0.0547905341 -0.00169192255 -0.0231992826 0.0272085294 -0.00764162093 0.0207720548 0.0455773696 0.0536421016 0.0757715181 -0.00473647565 -0.0628547817 -0.0658188909 0.0795516893 -0.0707081854 0.0731574818 -0.0430538282 -0.0744184852 0.0454304144 0.0327040479 0.0622201934 -0.0723703504 0.0211735666 0.0747974142 -0.0710792989 -0.0394203402 -0.0162173361 -0.031800095 -0.0003695786 0.0661306009 -0.00956062227 0.0491371974 0.0872321054 -0.0130819231 0.0801342353 -0.0209825411 0.00964979082 0.0547172949 0.0663077608 -0.0556545593 0.0299055204 -0.0177144483 0.00813449919 0.00412511826 -0.0222451016 -0.0688273907 -0.0161026418 0.00259503722 0.0716776773 -0.00291130692 0.085954912 -0.0498746969 0.0416822508 0.0478271767 -0.0821849257 0.0583290979 -0.01752498 0.0720565394 0.033649303 0.0665208623 0.0821524635 0.0180725157 -0.0310352296 0.0484326854 -0.0284161791 0.0768513009 0.0273825005 0.0375675038 0.0272571519 -0.0151296481 -0.031806387 0.0739327446 0.0372904316 -0.0744306147 -0.0158222765 0.0312269405 -0.0126364529 -0.0644828081 0.0618212298 -0.00969471037 -0.023646906 -0.00136365741 -0.0745538324 0.0331018791 0.0820019618 0.0827924237 -0.053756509 -0.0162638873 0.0515748337 -0.00919567049 0.0349276885 0.0503863171 -0.0650761873 -0.025758855 0.0209781826 -0.0758726597 0.0870442465 -0.0298634134 0.0420987979 0.0859056041 0.0304606482 0.0837148502 -0.0480655022 -0.0249430388 0.0827740803 -0.0730091184 -0.0861501843 -0.0253774822 0.0649318621 -0.00173719972 -0.0294710994 0.0219026208 0.0421234742 -0.000337794423 0.0329720154 -0.0586915649 -0.0441769138 0.0225623623 -0.0184437633 0.0401753411 -0.0593667366 -0.0125754848 -0.0424221717 -0.0279258564 0.0558237061 -0.00121636689 -0.0809425488 0.00850603729 0.0428153053 0.0864208415 -0.0413063504 -0.0559881516 0.0517722443 -0.0911947414 0.0258667544 0.0504961833 0.0259773806 -0.0651755854 -0.0354209282 -0.0913686454 -0.0192381442 -0.0292417705 0.0701884106 -0.0792696178 -0.00976710021 0.031144537 0.0847756937 0.0209725052 -0.0727186203 0.0738361552 -0.0383851007 -0.0858654305 -0.0265388191 -0.0153074041 -0.0664827451 0.0383743569 0.0691392496 0.0751054808 -0.0475669652 0.0381890461 -0.0467229299 -0.0276573449 0.0704665259 0.0883977786 -0.0697446987 -0.091311574 0.0832691267 0.0242983326 0.0235489383 -0.0237367973 -0.0261499137 -0.0479327589 0.0505439863 -0.0371264517 0.00569813699 -0.0444905199 -0.0668977946 -0.0302983411 -0.0182066262 0.0105836913 -0.0163364783 0.0418112949 -0.0422644466 0.0575054362 0.0739136413 -0.0467014499 -0.0677210093 0.069408752 -0.0417449772 0.00702184439 -0.0277765095 -0.0891511738 -0.0725635588 -0.0110737309 -0.0780968815 0.00282555073 0.00036688894 -0.0187062621 0.0655553564 0.0212953314 0.0241553262 -0.0270380154 0.0792776123 -0.0367160887 0.0610611215 -0.0144902021 0.0532740578 0.0419188365 -0.0847468376 0.056894131 0.0726204738 -0.0471913777 0.0896210596 0.0349671766 -0.0540552363 0.0468376949 0.0513308272 0.00573643297 0.0735067055 0.0907424912 -0.0361709557 -0.0310142748 0.0623731688 -0.0807074532 -0.00266689807 0.0721153542 -0.01612553 -0.0255563185 -0.00661348552 -0.0910558328 -0.0683942884 0.0159948319 -0.0690274686 -0.0880033299 -0.0441246144 -0.0260941461 0.0466362461 0.0380403325 -0.0570505746 -0.0396791399 0.0339618996 0.0540192947 0.0532003269 -0.0244213492 -0.0514546111 -0.0907419175 0.0630413219 0.0103394836 -0.0867331326 0.0605306253 0.0274309069 0.0816167966 -0.027262345 -0.051173538 -0.0126216188 -0.079407163 -0.0419556163 -0.038878154 0.091934599 0.0586979464 -0.0785529837 -0.0920325667 -0.0474362038 -0.0680695027 -0.0666045994 0.0773199722 0.0519323274 -0.0530889742 0.0555659458 -0.0411178768 -0.00187309086 0.0848679468 0.026660189 -0.0465558916 -0.0631531551 -0.0916025043 0.0249791145 0.0390496776 0.0037991181 0.0231283009 -0.0146061704 0.0559279993 0.0237981007 0.00717306137 -0.00116373599 0.0630322322 -0.0182264298 -0.0746873692 -0.0813928396 0.0585486069 -0.087034367 0.000819385052 -0.0281369537 0.0448580757 -0.0371283889 0.0862280354 0.00614406914 0.0203156695 -0.0868645087 -0.0469595864 0.0227469429 0.0229508951 0.0548060611 -0.0532832406 0.0642743185 0.0467873141 0.052963905 0.0429958925 0.0643447563 0.0413702503 0.0234274641 0.0769669935 0.0163698047 0.07936012 -0.0234800056 -0.0653525516 -0.0480703004 -0.0164844766 -0.0325377323 0.0413988605 -0.0378265381 -0.0856027156 -0.0658444017 -0.00658579916 -0.0540850833 -0.0229062364 -0.0827162415 -0.0629609823 0.0836978033 0.0328524783 -0.0511785336 -0.031122148 0.00623857975 -0.0522322394 0.0572785214 -0.0467463955 -0.0914392099 0.0714488849 -0.0494720824 -0.0685624033 0.00619493425 0.0363624468 0.0265516713 -0.0331990793 -0.0569149032 0.0337141976 0.00348051637 0.0123215094 0.0850745812 0.0490299538 -0.0345757455 -0.0490692481 0.050963439 -0.0832774416 0.060893707 0.0115042329 0.0159272403 0.0249476135 -0.0692701489 0.0729515627 0.0292987376 -0.00728084147 -0.0372404456 0.0450755581 -0.0758658797 0.00160707533 0.0895934179 0.0157848746 0.0692998245 -0.0361267142 -0.0414646082 0.0572220162 0.00757604837 -0.0285900608 0.0681522116 0.00892104208 -0.0462135412 -0.0154964328 0.0166278556 -0.0132112578 0.0572390482 -0.0700295791 -0.0774992704 0.00720061362 0.0291038081 0.00458277762 0.0136074498 -0.0917818025 -0.0481800251 0.00858285278 -0.0628899112 0.0830142125 -0.0264672637 -0.0850436687 0.0313905254 -0.0533611998 -0.0679884851 0.0614101961 0.0636309311 0.069693692 -0.0836574733 0.090545781 0.00593426824 -0.0676005706 -0.0187795311 0.00190743059 -0.0677280277 -0.0521295182 -0.0118924603 0.0706599578 0.0369796231 -0.0860395357 -0.0396158583 0.0617341027 0.0648242161 0.0160389245 0.0319202468 0.0761265531 -0.0841709748 0.0406720117 0.0330305025 -0.0168914124 -0.0113826469 0.0740403309 0.0759547278 -0.0581488982 0.0702761784 -0.0374507979 0.0377015248 0.076766409 -0.0570214316 -0.0727174953 -0.0384540595 -0.0750305578 0.0296442807 -0.0677949414 0.0906131193 -0.0492791831 0.0160562694 -0.0583607927 -0.0718457103 -0.031803418 0.00716790557 0.013616316 -0.0794089213 -0.0196601972 0.0241577253 0.0306761265 0.0247539654 0.0322305709 0.0287429914 0.00217927992 -0.0680803508 -0.0530767143 0.00150095671 -0.0740042776 0.0708215162 -0.0571867973 -0.0882791877 -0.0515298657 0.0301568136 0.0435948297 0.0691583529 0.0707950965 -0.024317652 0.0767670497 -0.0535532199 0.0657181218 -0.0558813773 0.0134557709 -0.0633116961 -0.0355505235 -0.037810646 0.034567453 0.0208534896 0.0310017765 0.0697035864 0.0920372531 -0.0698552579 0.0831770226 -0.03311643 0.0542683378 0.0590763018 0.0705628917 0.0695144311 -0.0101680234 0.0687089935 -0.0229586661 -0.00228710473 0.0260011256 0.00705985725 -0.0829208493 0.0631024167 0.00557304919 -0.0543968156 0.0859159455 0.0148713291 -0.0723380819 0.0239632651 0.0879964903 3.94880772e-07 -0.0501174293 -0.02732829 -0.00614820421 -0.060736008 0.0308685675 0.0687238798 -0.0346525647 0.0546680316 -0.0517537557 -0.0518654585 -0.0414955094 -0.0242379308 0.0198807418 -0.0459774807 -0.00323287398 -0.0702116936 0.0397262648 -0.0308441333 0.0558936819 -0.0217047259 -0.0166395009 0.0111624822 -0.0845831707 -0.0295198336 0.0882356539 -0.0319946893 0.010573566 0.053494893 -0.00511613488 -0.0884837508 0.0295453593 0.0193394125 -0.0635465235 0.0442446247 -0.0338742957 -0.0843731463 -0.0169365332 0.0422519222 -0.0875900388 0.0711820647 -0.0355167389 0.0913177058 0.0652910098 0.039245747 -0.0752203315 -0.0872944146 -0.0202840567 0.0543175712 -0.0713425875 -0.0901079103 0.0811570361 -0.032765761 -0.0699322969 -0.00829444826 0.0836587772 0.0283170491 0.0576070473 -0.0427629836 -0.0214518011 0.0520520583 0.0536443666 -0.00361984223 -0.0886383355 -0.0610366724 -0.00289466232 0.00920838863 -0.0489018559 -0.0773622841 0.0690512732 0.0916927233 -0.0816242546 -0.0272653177 -0.0393231846 -0.0369605385 0.0330271944 0.0300230756 0.0921386108 0.00801709294 -0.0153083727 -0.068527624 0.0279590711 -0.0344625898 -0.0549003296 -0.0807595551 -0.0419801362 -0.0370013453 0.0641671345 -0.0206301063 0.00769937038 0.0201145783 -0.0160129517 -0.0525004156 0.00872860849 0.0758250281 0.0740753189 -0.0398095734 -0.0379741192 0.0511978343 -0.0457672365 0.0767895207 0.0492288694 0.0151150078 -0.0371473618 0.0921899453 0.0198802352 -0.00884928554 -0.0726766661 0.00348194689 0.0783802643 -0.00401121378 -0.0242938846 0.0483344421 0.078209199 -0.0578480139 -0.0646375194 0.066487439 -0.0429933667 0.0693638995 -0.0814234987 0.0261384472 0.0376100913 -0.0414155684 -0.0566440187 0.0638827756 -0.0501732267 0.0293964595 -0.0275951475 -0.0921296105 -0.00894477218 0.0884535089 -0.053695783 -0.0574145615 -0.0765554458 0.0121054053 0.091774337 -0.0203631669 0.0112916157 0.0896662846 0.0591641739 0.0539027527 0.0808881 0.0488383099 0.0147617832 -0.0176012069 -0.0132991895 0.0114963576 -0.0857915431 0.00296395272 -0.0263971612 -0.0786943138 0.046525456 -0.0687068403 -0.0828730613 0.0430802032 -0.0784293264 -0.0515850224 -0.021827586 0.00828764588 -0.053353563 0.0173018426 -0.0638696402 0.066023387 0.0512644574 -0.0815515369 0.0321878493 -0.0183004066 0.0810983852 0.0171277598 -0.0152044371 0.0574467704 -0.058022581 -0.0637886673 -0.05336041 0.0609320179 -0.0457716398 -0.0127389804 -0.0667315722 -0.00875134021 0.0254392177 0.06302201 -0.0790220648 -0.0382306501 0.00119030476 0.0750889257 -0.0899529308 0.0605260655 0.00206273049 -0.0499438122 0.061619021 -0.0391764864 0.0256846622 -0.00420699269 -0.00850273669 0.0195229575 0.0604774579 0.0110404119 0.0506939068 -0.0180717856 -0.0795227438 0.00947716087 0.0332162902 0.0658480003 -0.0604721457 -0.0543575287 0.0878310129 0.0207625926 -0.0785379484 -0.00147936493 0.0630619451 0.0270946324 0.0323053673 -0.0437511876 0.0835242644 0.0413730368 -0.0829154775 -0.050383646 -0.0482839793 -0.00997263938 -0.0675560832 0.026523456 -0.0712890625 0.0193086639 0.0502413884 0.0107718185 -0.0920203552 -0.0196050182 -0.00163339823 0.0285128057 0.0113480911 0.0287027135 -0.00845754892 0.0526466593 -0.00431843102 -0.0693176687 -0.0680268854 0.0496269092 0.0427722856 0.0873496607 0.0281202942 0.00199881196 0.0605930313 -0.0736776143 0.0143334419 -0.0437390581 0.0613305047 0.0372838899 -0.075713411 -0.0214072764 0.0912692472 -0.0325292796 -0.0789608136 0.0470733121 0.00726658106 0.0134775639 -0.00514193624 9.96664166e-05 -0.0348847061 -0.0168398842 0.0114110187 -0.0230258629 -0.0871008113 -0.00252493471 -0.0180277899 0.0415228084 0.0127784908 0.0502511933 -0.0202246532 0.0282514542 -0.0837781578 -0.000342965126 0.0535983369 -0.0784189999 0.0635479763 -0.0810451582 0.0199974626 0.0385170355 -0.0882046595 -0.0694008917 0.0783574656 0.00853836536 0.00521291792 0.0484627113 0.0402986482 0.0435744897 0.0801777318 -0.0196185485 0.0254760459 0.00911653787 -0.0567920394 -0.0364498049 0.0695415363 -0.0446901545 0.0544934049 -0.0777321234 0.0770201012 0.0411115959 0.0119376257 -0.0454076715 -0.0695616826 0.00240706652 -0.0893573686 0.0328338668 -0.0184980631 -0.0539187491 0.0617223904 -0.0103394389 -0.01979056 0.0708524659 -0.00658476353 0.064269729 0.0803227946 -0.00407765806 -0.0140354186 -0.00643564016 0.00160553306 0.0478351489 0.074566789 0.0436961427 -0.0680483282 -0.0919235051 0.0423536524 -0.0355498642 0.0640442446 -0.0733959675 -0.0705048516 0.0262621492 0.0446421728 0.0446336493 0.00425764173 -0.0343913659 -0.0114215612 0.045345448 0.0354852453 0.0836366937 -0.0246531814 0.0916824415 0.0714792833 0.0262688845 -0.0669835284 0.00912034512 0.0552343801 0.0271217898 -0.00821177661 0.0402921364 -0.00611131638 0.0861585662 -0.0617857315 0.0724185482 -0.000402063131 -0.0797046795 0.0602093413 0.0372378752 0.00102876872 -0.031546995 0.00289963931 0.0185481384 -0.0433464348 0.0663071498 -0.0549316928 0.0731602833 -0.0664928034 -0.0830214396 -0.0783237219 -0.0536555685 -0.00111000985 -0.0781825036 0.0565718636 -0.0105592161 -0.0819539279 0.0532507971 0.0425626263 -0.0865667313 -0.0795184448 0.0376768187 -0.00251095742 -0.0237606987 0.00126370788 -0.000344596803 -0.0338448212 0.089253135 0.0499004796 -0.00434458256 0.0861676857 -0.0131324381 0.0209442228 -0.0120782703 0.0848101452 -0.0364034288 -0.0798590407 0.0136127919 -0.0738687813 0.017732054 -0.0756193101 0.0896697715 0.0656210557 0.0619490966 0.0463829115 -0.0312110707 -0.0849949196 -0.0844510198 0.0720270053 -0.0140455887 -0.0178059042 0.075955309 0.0282334089 0.0133005306 0.036561884 -0.0869680494 -0.0464191437 0.0720042214 0.0411779806 -0.0578899682 -0.0549184866 0.0735646412 -0.0673502013 -0.0747992024 -0.0171597824 0.0525850877 0.0775864795 0.0627804026 -0.0332571007 -0.0854130536 0.0890145823 0.0785295442 0.0726578757 -0.0159180388 -0.017504178 0.0270483419 -0.02224911 -0.0293980688 0.0117432922 -0.050808955 -0.0541784279 -0.0368834548 0.0338111743 -0.0493885763 0.0483701453 -0.0224139243 -0.0274968669 -0.0268084705 0.011214532 0.0693523362 -0.040340554 -0.0787141621 0.0883762166 0.0876985118 -0.0784726664 -0.0341235846 0.0375981554 -0.0753665268 0.0113139153 -0.0558110774 -0.0706543922 -0.0135693476 -0.036674533 0.0912177339 0.0369106457 0.045136489 -0.0835219547 0.0709958449 -0.0739100054 -0.0798906907 0.0813440457 -0.0185224488 0.0491943583 0.0700134858 0.0191818401 0.000441797078 0.0749256983 0.0119188055 0.0457314178 -0.0319092646 -0.0534564629 0.0497018024 -0.0727572441 -0.024225302 0.0209168419 -0.0317042619 0.0185056999 -0.0221920609 0.0352608487 -0.0608145408 0.0336855724 -0.0701793805 0.0191952661 0.0128619745 0.00455951691 0.0157476142 -0.0471162349 -0.0167161599 0.0916091129 -0.013041161 -0.0224550217 -0.0239491314 0.0424886867 -0.0602816232 0.0696670189 0.0127235278 -0.0668571219 -0.00974603742 -0.0277484506 0.070765458 0.0837119445 -0.00507695973 0.0695485249 0.00483180583 0.0553982779 0.0363041386 0.0223544985 -0.0731800497 -0.0302782245 -0.0843537301 -0.0609591305 -0.0786360949 0.0485620126 -0.0859072506 0.0664202347 0.0725595728 0.00193569064 0.070494689 0.0647281185 -0.0310706012 0.0760741606 0.0438440964 0.00772202015 0.0289578587 -0.0800265819 -0.0141929239 0.0460452512 0.0491759107 -0.0824144557 0.0273760334 -0.0289016888 -0.0154660791 0.0292750746 0.0331920758 -0.0666336045 0.0240596682 0.0664418712 0.085580878 -0.0436072387 0.0430223718 -0.0334823988 0.0831926391 -0.0745045096 0.0612134114 0.00609465688 -0.0665376186 0.0691787824 0.0816733763 -0.0665192828 0.0457635894 -0.0401481614 0.0838805214 0.0180979595 -0.0633726642 0.0323779583 -0.0602098927 0.0858562812 0.0137648657 -0.0229337215 -0.0345641673 0.0841567144 0.0549743548 -0.0200836137 -0.000180751085 0.00209520012 -0.030729726 0.0331022069 -0.0745211691 0.0569753274 -0.00178280473 0.0603409186 0.083349131 -0.0687909871 0.0451918766 0.00801108778 0.0342787132 -0.0426538102 0.00539888442 0.0873715654 0.0808297172 0.0323337391 -0.077081494 0.0477353856 0.0118659362 0.0241188332 -0.0347459093 -0.0341322348 0.0330451205 0.0731769726 -0.00934983045 0.0686371699 -0.077774711 0.0462157801 0.0757745132 0.00366523117 0.0387527123 0.0857842341 0.0204118341 0.0751653537 -0.0806601346 0.071580939 -0.00918100774 0.0453841463 -0.0164721757 -0.0799770579 -0.0751758069 0.0359132066 0.0345244631 -0.020312652 -0.0283106863 -0.0612715892 -0.0191491544 -0.0375707783 -0.0354901701 0.0452017412 -0.0917332917 0.00518223643 0.0285563469 0.045852907 0.00324469805 -0.00685989112 0.0737202987 0.0222540647 -0.0210750476 0.0465770885 0.0426965579 -0.0562344491 -0.0250401944 -0.0175302401 0.0767340288 -0.00827307999 -0.00715443492 0.0902501866 0.0408895239 -0.045622848 -0.016490221 0.0792204514 0.0010330826 0.082839109 -0.0732608438 0.0392873362 0.0220624208 0.0782276019 0.0315003544 0.0487068668 -0.0388602614 0.0691508725 -0.0729086399 0.0554265156 0.0193250403 0.0644463822 -0.0600759573 -0.0694843382 0.0644636527 0.0149340183 0.00937304646 0.050772436 0.0885684267 -0.0709505826 0.0428389385 -0.0902150348 -0.0342855826 -0.00742543489 -0.0844145864 0.0801556036 -0.0139044598 -0.051568184 0.0596472099 -0.0867861509 0.072744973 -0.0460912511 0.0908085033 0.0701722279 -0.0504453853 -0.0302922018 -0.0359896757 0.0818454102 -0.0177909583 -0.0625284985 -0.0222258046 -0.0489998907 0.0568111464 -0.0660091192 0.0216678604 -0.00205674767 0.0444946513 -0.00108285248 -0.0718307644 0.0735410675 -0.0621081442 -0.0547323674 0.0774615631 -0.0909307897 0.061794959 0.0223821849 0.0428586379 -0.0299096368 -0.017981261 -0.0192180276 -0.0548759624 -0.0759523958 -0.0263983086 -0.0334416553 0.0621593371 0.0895370468 -0.0779534131 -0.0128669515 0.0648470297 0.000583432615 -0.047971759 0.0718109086 0.0476939008 -0.0226483569 0.0602820441 -0.0375163034 0.0565772131 -0.0561208948 -0.0515807532 -0.0881539285 -0.0171084777 -0.0525756478 0.06337706 0.0231475756 0.0397108272 -0.0121298656 -0.0470758229 -0.0447906107 0.00018799305 0.0372323915 0.0118084401 0.058252044 -0.0654295012 0.0566433594 0.011161156 -0.00607062131 0.0126696676 0.0849957392 0.022265248 0.0732949153 -0.00783795118 -0.066155687 0.0593031719 0.0299870893 0.0224498659 0.00687054545 -0.0312997513 -0.0334769599 -0.00100076944 0.0174883083 -0.0425835326 -0.074772723 -0.0546586737 -0.0145823359 0.0118354484 -0.0902202725 -0.0344512127 -0.0176169425 -0.0500562862 0.0180137232 -0.0821227059 -0.0839833617 0.0880361423 0.0660667643 0.0662949756 0.0191488937 0.0699196979 0.0560770556 0.069677867 0.0300989896 -0.0207628086 0.0146251917 -0.0627058595 -0.0920857936 -0.0256102011 -0.00452328473 -0.0565219484 0.0402774438 -0.0520871915 -0.0838609189 0.0479714349 -0.0340482667 -0.0911417827 0.0354264006 0.063248001 -0.0268048421 0.0351754203 -0.0323029682 0.00542617589 0.0072523877 -0.00949247926 -0.0688682422 -0.0194984376 -0.030425407 0.0356307253 -0.00317811221 0.0641476288 0.0315997303 -0.0653103366 0.00757902116 -0.0258092806 0.0632869378 -0.079558067 -0.0366637483 -0.054349713 -0.0449404344 -0.0297361463 -0.0278876871 -0.0447520465 -0.086485751 -0.0225806311 0.0801088139 0.0723863766 0.041660212 0.0208800808 0.0268634334 0.0614305958 0.010215655 0.0907227471 0.0107738003 0.0690679476 -0.0899167433 -0.0317039751 -0.0655942932 0.00115927309 0.0414256677 -0.0822875872 0.00118566304 -0.0886987299 0.0542977974 0.0558938757 0.0813534781 0.0485367104 0.0263148397 0.0511377975 0.0533847138 0.0610256717 -0.0455162488 -0.00771947205 0.00987812132 -0.0807023048 0.0263960361 0.059021838 0.0742337778 -0.0581128448 -0.00910826772 0.0513995811 0.00322400779 -0.0114104301 0.0114848688 0.0893828794 -0.0142994747 0.0523903444 -0.0415303744 0.000904850662 0.0154933482 -0.0820114464 -0.0574222654 -0.0467711538 -0.0852739885 -0.0830955207 -0.0887403339 -0.0698468015 -0.0023720935 0.0566469505 0.0470253602 0.0504999682 -0.0335956216 0.0195434764 0.0423172936 -0.0348658897 0.0864595547 -0.056406945 0.0876069739 -0.0317162797 0.0423582718 0.0361946002 0.0497889742 -0.00556625426 0.0425486639 0.0231125131 -0.0371038243 0.0150933117 0.0892239735 -0.0814222023 -0.0288869888 0.0446608588 -0.000680498779 0.0355189666 0.0707922801 0.018962726 0.0323222727 -0.0576547831 -0.00934307277 0.0501421914 0.0420902148 0.0417198464 -0.0860081241 0.0578218475 0.0378515497 0.0496431962 0.0915872529 0.0297857374 -0.0315141343 -0.0315483361 -0.063059479 -0.010078311 0.0206957236 -0.0180917978 -0.0404917859 -0.0843413621 -0.0144498125 -0.0155531317 -0.0897785202 -0.0710949302 -0.0323479362 0.0120135993 0.044660531 0.0170397386 -0.0916150957 0.0138366669 0.0773221329 -0.0431426615 -0.0247750357 -0.0683630556 0.00831659138 0.0862018242 0.0150257349 0.0856570527 0.0551954433 0.0779779628 0.0679941997 -0.0463428535 0.0335561708 0.0239183381 0.0472601876 -0.0459417365 0.0554387197 -0.0035026148 -0.0513780154 0.0741967186 -0.0648678839 7.08773732e-05 -0.0413930491 0.0865001753 -0.0571043678 -0.0791096464 0.020251967 0.00543005019 -0.00700254738 -0.0639782622 -0.0388638936 -0.0307094529 -0.0365681127 -0.0343291424 -0.0270836428 0.0834087059 0.0330896601 -0.014956668 0.0311497301 -0.0455030017 0.0512224063 0.0922359899 0.063004382 0.0879549459 0.0725537613 0.0237824246 -0.0593256429 -0.0508221835 -0.0306030549 -0.0661163181 -0.049308084 -0.0292035192 -0.0363142639 0.0158388466 -0.0176444352 -0.0867398679 -0.0647530258 0.00267310441 -0.0518424548 0.0418704823 0.00579188019 0.087799035 -0.0869171992 0.0203062892 0.0333456323 -0.0210216343 -0.0599239543 -0.0779632106 0.0402620658 -0.00557294488 -0.0178376809 -0.0222719386 -0.0797784775 0.0106346011 0.0600792393 -0.0603587925 -0.037803188 0.0505698845 0.0610870495 0.0135996565 0.0295053944 0.0303705558 -0.00613617152 0.0703361854 -0.0487714447 0.0592547432 -0.000407636166 0.0672131404 0.0369899198 0.0626867786 -0.0916965157 0.0571703389 0.0735061541 -0.03773183 0.00287089497 0.0439367965 0.0401611403 0.00544255227 0.0419758931 -0.0275427848 -0.0742073879 -0.0392459519 0.0672169998 0.0785690919 -0.0921068564 0.0890718028 0.0494370833 0.0782699659 -0.0509211868 -0.0194038376 0.0656764582 0.0773352012 -0.0161861926 -0.0649027675 0.0122862682 -0.0375710428 -0.0875746086 0.027294904 -0.0200010017 0.0875428692 -0.0539800711 0.0444815531 -0.0790757537 0.0791194364 -0.0807659328 0.0541184768 -0.0634854883 0.0148314685 -0.0131342858 -0.0209234655 0.0395975634 -0.00680717826 -0.0415128097 0.084241055 -0.0407810509 -0.0843644962 -0.019460164 0.0455847904 -0.0437175333 -0.0434979126 -0.0798420683 -0.0495699421 0.0912708119 -0.075809814 -0.0177843049 0.0531247035 -0.0266861767 -0.0156973228 -0.044778876 0.0704388842 0.0639614239 -0.00144115835 -0.0847797021 -0.00701073557 0.043051742 0.084320806 0.064455159 -0.00752599537 0.06557367 0.0117297992 -0.0408409387 0.0112365484 -0.0169413984 0.0520282313 0.0483798161 -0.0552780069 -0.0338231437 0.0753138736 -0.0799872503 -0.0837819204 0.0372892842 -0.0489900745 0.0854363665 -0.0586053953 -0.00278795511 -0.0562519245 0.0267377943 0.0898404792 -0.0269514322 0.082169272 -0.0600416437 0.0835839584 -0.0834921971 0.0490675047 0.0629573688 0.0584875718 -0.0617902428 0.0575592443 0.0574252084 -0.00720985979 -0.0822733194 0.0236194357 -0.0776783973 -0.0442175455 -0.0642763078 -0.0445872992 0.0589676872 -0.052884873 0.00640055537 -0.0722945184 0.078283377 0.0563946888 0.0329786465 0.0702355579 -0.0335073136 -0.00724609196 -0.0542687811 -0.0405947752 -0.0676563457 -0.0809428096 -0.0547436774 0.0497434959 -0.019754909 0.062276803 -0.0803306103 -0.0475744717 -0.0141099244 0.030057393 0.00974591076 0.0389227197 0.073150374 0.0620673969 0.00411564857 -0.0412926599 0.0411879495 -0.0298708752 0.0322051495 0.0689098611 -0.0542153604 0.0163909793 -0.00302822143 -0.0748637393 -0.0483611263 0.0209344923 0.0787575021 -0.0792552903 -0.0175492167 -0.0513064563 -0.0692248493 0.0460488424 -0.0664770678 0.0871598199 0.0618706718 -0.0284007713 0.0563623235 -0.0877251625 -0.00563446432 0.00263027102 0.00399679691 -0.00054064393 -0.0628627241 0.019017756 0.0420512483 -0.0723025128 0.064895235 0.0310413465 0.0769198313 0.035309352 -0.0782215446 0.0644632652 0.0873778537 0.0672463998 -0.0559503809 0.0633841828 -0.00408941507 -0.0800647736 -0.0119953752 -0.0862915367 -0.00836580992 0.0391422138 -0.0436604805 0.0157458112 0.0573559925 -0.0771623179 -0.0396099165 -0.0192890763 -0.02905301 -0.0161967576 -0.0616390556 0.0759956017 0.0792261288 0.00329217315 -0.0712118894 0.0405475572 0.0750277117 -0.0765932798 0.00913438946 0.0800907388 0.0160540417 0.0356131867 0.0649476871 -0.0700642467 -0.0495037548 0.06996236 -0.0667443201 0.0609627441 0.00733470172 0.0453194156 0.0443795845 -0.0688638166 0.0723496303 -0.0856570825 -0.0559842996 0.0916676298 0.0653419271 0.0596081093 0.0407270566 0.0509908274 0.0827136263 -0.0535375066 -0.00286719203 -0.0314746015 -0.084071666 0.0596582368 -0.0289503112 0.0656264499 -0.0567954071 0.0331667885 0.00865885615 0.0518179312 0.0879384652 -0.0600903109 -0.0834234133 -0.0236297399 -0.00312403589 0.0752854124 -0.0430485681 0.0731564984 -0.0747692287 -0.0355109945 0.00819408149 0.0483137593 0.0402566269 0.00560951978 0.0017490387 0.0158414245 0.0916206464 0.0499458537 0.0668238178 -0.00229095668 0.0623020157 0.0522213951 -0.0801160336 -0.0412472077 0.0277211815 0.0431220159 -0.0872079805 0.000930689275 -0.0233276039 -0.0845265388 0.0918594822 0.0745476857 0.00407783687 0.0773637816 -0.0722394064 -0.0821886063 -0.0756661519 0.0680346414 0.0361204669 0.0453756228 0.0641936734 -0.0832784101 0.0707255974 0.0480202213 -0.00500824302 0.0426572189 0.0698050484 0.0152591094 -0.0570385791 -0.0157407001 0.00789493322 -0.0274416208 -0.00693289936 0.0726367161 -0.0202684775 0.0110729188 0.0772799328 -0.0805128589 0.0204708204 0.0644668564 0.0450257882 0.0287565514 -0.0525714867 0.0419914201 0.0362760797 -0.00502485782 0.0281639621 0.0647092536 -0.0519734174 -0.0303953625 0.00179983675 -0.0158704296 0.0463306978 -0.0557489432 -0.0437126011 -0.0573480688 -0.0603820346 -0.0573910773 -0.0632501766 0.0304104835 -0.0554100685 0.0904079154 -0.0379065461 0.0201204792 0.0418072417 0.0155410692 -0.00719816983 0.0451031402 -0.0233123302 -0.0491732247 -0.0659987554 -0.0448223054 -0.000130608678 -0.0752181113 -0.0359320752 0.0830916688 0.0350858644 -0.0111445859 -0.052699279 0.0650375113 0.077713348 -0.000580899417 -0.0474306345 0.0750000104 -0.0393027812 0.0821816996 0.0547624603 0.0188433453 0.0130117983 0.0126828551 -0.0150889903 -0.00694839656 0.0118201971 0.024889864 0.0126310438 0.0310699642 0.0140452981 -0.0623331107 0.0447470024 -0.0753087029 -0.0592268817 0.0552029237 0.0617223904 0.0464154258 0.0247887447 0.0837860629 -0.00870019197 -0.0523681976 -0.0895259306 -0.0376739614 -0.0361196697 -0.0554015934 -0.0436607674 -0.0463940054 -0.0188693181 0.0829480961 0.0560835823 0.0741341636 -0.0248988643 -1.34259462e-05 -0.0347676761 -0.0286526158 -0.0702950656 0.000220566988 0.043558456 0.0430864468 -0.0250938088 -0.0119580477 0.0595098212 -0.0855172724 -0.0397236235 0.043437995 -0.0918561518 -0.0786398798 0.0561442748 0.0477949753 0.0189049467 0.0821640566 0.0111189857 -0.0191687867 -0.00653207302 -0.0910241157 0.0117613599 0.0121122301 -0.0823832452 -0.0632251725 0.060593687 -0.0306670368 0.0507336631 0.0458225533 -0.0443778038 0.0808918998 -0.00751628727 -0.00397916138 -0.0630105287 0.0753916129 0.0837211236 -0.0200914443 0.0440155342 0.00259105116 0.0627027079 -0.0497252457 -0.0413106866 -0.066856131 0.0660410449 0.0165420845 -0.013543576 -0.0218802392 0.0882517174 -0.0214772001 0.070625715 0.01397755 -0.0288315415 -0.0350790173 0.0284434557 -0.0824773386 -0.0282450244 0.0379154012 -0.0480400361 0.025136508 -0.00206977874 0.0669379607 0.0141127631 -0.0672441274 -0.0312792584 0.0189846307 0.0480105504 0.0697979406 -0.00229432434 0.0738651827 0.0202283263 0.0877413824 -0.0786824003 -0.0462685451 -0.05497545 -0.0665017217 -0.0478551276 -0.0674616843 0.0710360482 0.0204092115 -0.0688458979 -0.0655575097 -0.0737058967 0.0743696913 -0.0614488833 0.0686681494 0.00739109516 0.0286232531 0.0848106518 -0.0184183419 -0.0365148038 -0.0842666551 -0.0198726878 0.0479980782 -0.0477365367 0.0408437774 -0.0880831182 -0.0119870603 -0.0297546387 0.0830005929 -0.0146790519 -0.0521526486 0.0914667919 0.0512156263 -0.0864413157 -0.0497101918 0.0734465793 0.0616265908 0.0128717721 0.0498075858 0.0889483765 0.0672310814 0.0495271757 -0.0495809689 0.0379654244 -0.00741823018 0.0449670181 -0.072145246 0.0313561633 -0.0545423701 -0.012605533 0.0235689878 -0.0725914836 -0.0379367471 0.0177663043 0.0270061716 0.0415299311 0.0643891469 -0.0724397674 -0.0459370241 -0.018034257 0.00371149182 0.0698135421 -0.0222696438 -0.0557363071 -0.0828497559 0.0148622617 -0.0466140434 -0.0232582241 0.0194555223 -0.0317712389 -0.0128172264 0.0530367717 -0.0687327459 0.0570859686 -0.0152984038 0.0886690989 0.080915384 -0.0119365007 0.00220502913 0.0126638338 0.0488547161 0.0820082799 -0.0511807129 -0.0852883607 -0.00825080276 -0.0637759641 0.0691074505 0.0552816316 0.014296636 -0.0394327305 0.0131746083 0.0140333697 0.0560700074 -0.0675881952 0.0346197709 0.0895315334 0.00425861031 -0.0901645198 -0.0448781438 0.0341042802 0.0342303291 -0.0627955943 -0.0896873325 0.0585852936 0.0652145669 -0.00153956562 -0.00195963681 -0.0170175508 0.00622392446 -0.0680425391 -0.0367411599 0.073123239 0.0377850011 0.0258537903 0.0491465405 0.0828681365 0.0218342319 0.0090899542 0.0243424624 -0.0738858804 0.00567234308 -0.0749951601 0.0561794266 0.063506119 -0.0896300152 0.0281738937 -0.0860332176 -0.0859222189 0.032226786 0.0473900512 -0.0239653587 0.0867497697 -0.000171683729 -0.0324929841 -0.069958657 -0.0541929118 -0.00669873506 -0.032833375 0.0917250887 -0.0473639853 -0.0734926611 0.0796397105 -0.07509166 -0.0615382455 0.0546126291 -0.0131687969 0.0648576841 -0.0705728382 0.0116817057 0.0214503706 -0.0582391843 0.00797243416 -0.0710224286 0.057751812 -0.0480814613 0.0553244725 0.0458973125 -0.0749856308 -0.00769213587 -0.00634218752 0.0697762892 -0.0802792832 -0.0349188447 0.0170279369 -0.0230857283 -0.010018222 0.0337056294 0.0803642198 -0.0831264928 -0.0232492238 -0.0509623028 -0.0390943438 -0.0168324634 -0.0856966376 -0.0430248193 -0.081200555 0.0604403839 -0.0390077531 -0.013061963 -0.0253497735 -0.0504418425 0.0683696344 -0.0795795023 0.0403217748 -0.0106520802 0.0496054515 -0.0838615075 0.0572644994 0.01715637 0.0210260302 0.0298828036 0.0885384008 -0.0671560243 -0.0504698157 0.0530368313 -0.0827653855 -0.0289024338 0.0257377028 0.030838944 0.0825174823 0.00139253587 -0.0568217747 -0.0610695332 0.0428991988 -0.000666543841 0.0901477411 0.0274492204 -0.0268230215 -0.0138496533 0.0891222134 0.0753780827 0.0758034363 0.0680917278 0.0857248679 0.030481644 0.0111597478 0.086145781 0.00218762457 0.0809584633 0.0594929233 0.0583079681 -0.0771172792 -0.0293643698 -0.0333991759 0.0249796212 0.0802754536 -0.0413237847 -0.0504940934 0.0717312321 0.0436372384 0.0668989643 -0.0906441957 -0.0444393642 -0.00152741373 0.0904873088 0.0656239018 0.0702113584 0.040556632 -0.00104892999 0.0567539856 0.0838315263 -0.0865555704 0.0098413229 0.0796609148 0.0220585018 -0.049371846 0.0336792842 -0.0787194893 -0.018953681 -0.0499269739 -0.073958382 -0.0388141274 -0.0595299453 0.0755991712 -0.0709430799 0.0823609456 -0.0700531974 0.0149827898 0.0734775439 0.0334485844 0.070977591 -0.0397878923 0.0905854478 -0.0581428446 0.0575720444 0.00908178836 0.012568593 0.0899567977 0.0919684246 -0.0826841891 -0.00618897378 -0.0712628216 -0.0335781015 0.0815940574 0.0645621493 -0.0798673332 -0.0557351187 -0.00624005497 -0.0357565209 0.00694617629 -0.0523571484 0.0346314833 0.0459763333 -0.0097265169 -0.0724509507 -0.0500876941 0.0575496331 -0.0488801785 -0.0428872742 0.00618366897 0.00715327263 -0.0568813346 0.0746305808 -0.0636205673 -0.071460478 -0.0636715665 -0.0531519912 -0.0902445018 0.0381381884 0.0911317691 -0.0205659494 0.0418198928 0.0483925417 0.0159825757 -0.0149834082 -0.0133094713 0.0186335146 0.0107157752 -0.0630041659 -0.0448070951 0.0587827042 -0.0159152448 0.0602000132 -0.0868497863 -0.0888387859 -0.03090702 0.0655410662 -0.0458169803 0.0724809244 -0.0487010777 0.0514927581 -0.0544697158 0.0581481978 0.0750057325 -0.0751303956 -0.0582617 -0.0384969786 -0.0488135964 -0.0395012051 -0.0554768927 0.00281570852 -0.0296386182 0.0187420473 -0.0546095259 -0.0223247409 -0.0297947451 0.0840673521 0.0368521139 -0.025321357 0.0847545788 -0.03879641 0.0481802002 0.0462002084 0.0805801675 0.0644374713 0.0854287371 -0.0804568827 0.00492352247 0.0600624457 0.0509641692 -0.0303831026 0.0604472682 -0.0531390496 0.0340419337 0.0852181539 0.02083157 -0.0446030349 0.0623994991 -0.0651132315 -0.0652540103 0.0184918121 0.0442369804 -0.0591255464 -0.0517055504 0.00353433192 -0.022690244 -0.0313192531 -0.0114843398 0.0725939795 0.0211823508 -0.0795479864 -0.0360164419 -0.00524542481 -0.0573392212 0.0305556655 0.0547559187 -0.0222352892 0.0691051409 -0.0451084189 0.0345036611 -0.0277132317 0.0902348682 0.0666771159 0.0593000874 0.0269561186 -0.0552104115 0.0650974736 0.00851950794 0.0501154736 0.0276278108 -0.0454554781 0.0738569573 -0.0551959276 0.0375537351 0.0058349967 -0.0551562421 0.00593274832 0.0515492484 -0.0358032919 -0.0657648966 -0.00371296704 -0.00208025426 -0.0118488744 -0.000486627221 -0.00944205374 -0.0299832597 -0.0398886353 -0.0667756796 -0.0798136294 -0.0216370672 0.0130022466 0.0825227425 -0.0376002938 -0.0241804421 -0.0525286347 -0.0375250392 0.0218222365 -0.0762095004 0.0313490778 -0.0454826392 0.0428048894 0.0281508416 0.0244370848 0.0254298449 -0.0145840496 -0.00164090097 0.0845566019 -0.0245193392 0.0764068887 0.0261948407 -1.17942691e-05 0.0258914232 0.0628928766 0.0180762783 -0.0244725198 0.0497925505 0.0858459249 -0.0876805931 0.0569529161 -0.019033052 -0.0813229531 0.066309683 -0.0411604233 -0.0317721181 -0.00935526192 -0.0494006574 0.0394556299 -0.00602640212 0.0312400386 -0.0710020438 -0.0827377886 -0.0250377059 -0.038982749 0.0436322913 0.0766320154 -0.0284197703 -0.0385525338 0.0392562971 -0.0713873357 -0.0311656632 0.0177517757 0.0565344766 -0.0251603276 0.0761612728 0.0914441869 -0.0426697247 0.0686047748 0.053285338 0.0282250866 0.0644930676 -0.0424715206 0.00396688282 -0.0237134248 0.00724186748 0.0502680019 0.0814470723 0.00780359656 -0.0564808547 -0.0881300867 0.056400843 0.0420177951 -0.0264674425 -0.0859400928 0.0209889859 0.066390343 6.65560365e-05 0.0419341847 0.0806840584 0.0694632307 -0.0824098513 -0.0455269031 0.0841839686 0.0827297345 0.0454719886 -0.00026705116 0.0664260611 -0.0893738121 0.0911772028 0.0289881006 0.0276832134 -0.022171326 -0.04859237 0.0358269587 -0.0883752629 -0.0686485544 -0.0650775954 0.0895749852 0.053664811 -0.0887133926 0.069870241 0.0714927688 0.0801560059 -0.0195092261 0.0294337943 -0.0226488635 0.0531261936 -0.0760769099 0.0078151077 -0.0635142624 -0.0851607919 0.0224925652 0.0751734748 -0.0759560764 -0.00136176497 0.0213830173 -0.0566666909 -0.0874314308 0.0253481194 -0.0861574858 0.0401230082 -0.0416268222 -0.0909133106 0.0397816375 -0.0491731577 -0.0322974846 -0.00871387869 0.00246349722 0.0747527257 0.00804795325 0.0464036539 -0.0433373004 -0.00934335589 0.075672932 0.0659199134 -0.0614958778 -0.00713700801 -0.058432173 -0.0159925669 -0.0900795758 -0.0532453619 -0.0308391154 -0.0187270641 -0.0486090071 0.0187081993 0.0224833712 0.0226784497 0.020226039 -0.0362463407 0.0169143677 0.0696058944 -0.045854222 0.0194935724 -0.0349303782 0.02201996 0.0231411979 -0.043177221 0.0618040934 -0.0434505679 -0.060914427 0.028833434 0.00999669731 0.0747681484 0.00176946819 -0.0408751443 0.00736206025 -0.0106523857 0.0189022869 -0.0763840899 -0.00161510706 0.0294042304 -0.0863009319 -0.0254289433 -0.00245968997 0.0744362101 -0.00723695755 0.0689512566 -0.0845045224 -0.0818446875 -0.0761783347 0.0166413262 0.0181616768 0.0328484699 0.0652611628 -0.0163484588 0.0358366594 -0.07659024 -0.0111367926 0.0445506051 0.0271961167 0.0717331842 -0.0486432575 -0.0236314163 -0.0339776985 -0.00143323094 0.0244479105 -0.0524524339 -0.0545469932 0.0854872689 0.0823492631 0.0199932382 0.0757804736 0.00254747272 0.0588628724 0.0731738135 -0.00960341096 -0.0386838019 -0.0375530384 0.0171033293 -0.0550504848 -0.0336568765 0.0362712815 -0.02349253 -0.0819430798 0.0233612582 0.054115735 0.0886502191 0.0730590597 -0.0189824253 -0.0793479085 -0.00166236609 -0.00468461961 -0.0367616303 -0.0874147713 0.0620223954 0.00507710874 0.0719902888 0.0189878866 -0.0361223556 0.0862525031 -0.0269072726 0.0465312228 0.0524177626 0.00916859508 -0.0549812838 -0.0646601468 -0.0252660438 -0.0229068696 0.0693144426 -0.0623583794 0.0687448308 0.0223580003 -0.0269850418 -0.0539633185 -0.0169767216 -0.0481057391 -0.0730386302 0.0601854548 0.0317072123 -0.0605234765 0.0329689011 0.0506866053 -0.0535661206 0.00762407482 0.01356107 -0.0143748671 -0.0914717168 0.0713885203 0.0679895207 -0.0231352076 0.00905165076 0.0343465731 -0.070274733 0.027055338 -0.0624712482 0.0597949103 0.0238999873 -0.0522226654 0.0424172655 0.0875555947 -0.090732038 -0.0617125481 -0.0647165626 0.0266548395 -0.0737261921 -0.0165679008 -0.0269414112 0.0636640415 0.0410648808 -0.0873014852 -0.0579066947 0.0711680278 0.0893051401 -0.0889321044 -0.0390760526 -0.0169295967 0.0338941738 -0.0517598502 0.0238549039 0.0133712739 0.0853539929 0.0892258212 -0.0414133444 -0.0685593188 0.0703645572 0.0131921098 0.049892135 0.0886343047 -0.0499079116 -0.03856574 -0.0618956089 0.0168254897 0.0568386987 0.0737769231 -0.0304719172 0.0192128792 0.0547226742 0.0595781878 0.0154718459 0.00936814398 -0.0647754595 0.0696129873 0.0824851766 -0.0210471377 0.0466400161 0.0704758391 -0.0302062482 -0.0917886719 -0.0142528787 0.0325518399 -0.00586975366 -0.016245842 -0.0136110336 -0.0645776689 -0.0217075869 0.0460665599 -0.0905096456 0.0785056874 -0.0658229813 0.000711046159 0.0793494806 0.0226977319 0.0572979972 0.0837615803 -0.056899298 -0.0264238119 0.0149192289 -0.0836428776 0.0109484494 0.0233405009 -0.0220682323 -0.037633881 -0.00728055835 -0.0127552673 0.0460411534 0.0834853575 -0.00525935739 0.019866541 -0.00937564671 0.0476967022 -0.0129333735 0.0303999633 0.0120975077 0.071711041 -0.00238896906 0.0492334738 0.050522007 0.0239941701 0.0152658448 -0.0382369235 0.00300335139 -0.0696649998 -0.00126624107 0.0670793131 -0.0511530675 -0.0728669688 0.0888462439 -0.0532187484 -0.00619871914 0.0133071393 -0.0309347063 -0.0162070841 0.0838767365 -0.0755336508 0.0551488772 0.0130372196 -0.0204784125 -0.079593569 0.0899690166 -0.0723133832 -0.0895844772 -0.0204158798 0.0629250631 -0.0432552248 0.0719982013 -0.0723857135 0.0771915689 -0.0658658817 0.0489194617 -0.0330997445 0.0855835155 0.0298828483 -0.0295476764 0.0921690837 -0.0145159513 -0.0364891626 0.012754783 -0.06594228 0.00143567473 -0.0343182236 -0.0208214 -0.00143605471 -0.000755749643 -0.0365139656 -0.0283961073 -0.0277230963 -0.0873625875 -0.0479359701 0.0837632492 -0.0806097239 0.0253691152 0.0367083624 -0.025196515 -0.0259652734 -0.0502854362 -0.0586716905 0.0821915492 0.0402327403 -0.0412303917 -0.0761047751 -0.064910911 0.0813311264 0.0819196329 -0.0195340514 -0.0296923518 -0.0508661605 0.0113608167 0.0423960611 -0.0661721975 -0.0916267857 -0.0700345337 -0.00317102671 0.0210430697 -0.0302316286 0.0125742555 -0.0457450263 -0.0904584229 0.0119607523 -0.0295350403 0.0437108353 -0.0168530047 -0.0632528216 0.0275038481 -0.0870429948 0.0594555214 -0.0433077626 0.0154962763 0.0625248179 -0.0625123829 0.0896124318 0.0852641091 -0.0146532059 0.0240228474 -0.0574209876 -0.073540315 0.0366272554 -0.0150119811 -0.0418805182 0.0440015122 0.0199926868 0.0421430841 -0.0797897726 0.0517994538 0.0132330954 0.00304343551 -0.0327827297 0.00646315515 -0.0168160871 0.0279103369 0.0749221519 -0.048860237 0.00196073949 0.0396496728 -0.0316267163 -0.0795818791 -0.0712934881 0.0556373075 0.0405540988 -0.0516552813 -0.062143378 0.0576196834 0.013481833 0.000666566193 0.0686726347 -0.00787902623 0.0421408936 -0.034864258 -0.0784332678 -0.0652999431 0.0336591378 0.0137129202 0.0325943828 -0.0590716861 0.056652762 0.0475684032 0.018775329 0.021272704 0.0460827723 0.000733323395 0.0772870556 -0.0105245486 0.0505769476 0.0493541285 -0.036740981 -0.0387519263 -0.0567234121 0.0454493836 -0.0319666453 0.0212695375 0.0175656378 -0.0369722024 0.0687301978 -0.0588995665 0.0290651172 0.0256902054 0.0804439858 -0.0891713202 -0.0513103753 0.0566633418 -0.0320843607 -0.0626098067 0.0350217298 0.0891397521 -0.000461556017 -0.0304312855 -0.0541294552 0.0462940112 0.0676869676 -0.0413913541 0.0776538476 -0.0585512929 -0.0215297192 -0.0529627241 0.0886788741 0.0674255267 0.0253220797 0.0570474043 -0.072044149 -0.0906467661 0.0898283049 0.0687633827 0.0242284015 0.0563735142 0.0913704261 0.0246516019 -0.0679131001 0.0882010236 -0.0277569667 -0.044453498 -0.0472700894 -0.00351159275 -0.0213129595 0.087128453 -0.0479337499 -0.0158182904 0.0487746969 -0.0432455167 0.0272901729 -0.0456353948 -0.0373653322 0.0887088701 -0.0230031461 0.0885893628 0.0791560188 -0.00630714744 0.0178257301 0.0207186341 0.0227855295 -0.0461064838 -0.0779217854 -0.0528480932 -0.0334049426 -0.0140796602 -0.0153383315 0.0575110987 -0.0718737915 -0.014948234 -0.057644859 0.00811021775 0.0415614471 0.0469086543 0.0460898206 0.00204193592 -0.051295694 -0.0007564798 0.00518392771 0.0836115554 0.090897046 0.0631544963 0.0922245458 -0.0570647493 0.00847112387 -0.0699369609 -0.0923126116 -0.000826336443 -0.0717877746 -0.0332628004 0.0734684542 -0.0484065115 0.036214076 0.00527566671 0.0397118405 -0.0846779197 0.000979490578 -0.0496283807 -0.0832097381 -0.0577236563 0.0505873039 0.0469431505 0.088746734 -0.0177945644 0.0101686195 -0.0101471171 0.0790220723 -0.0835821107 -0.0773736387 0.0307756364 0.00785639882 0.059384726 -0.0015469864 0.0914059356 -0.0457477123 -0.0448430367 0.0598154888 -0.0274387151 -0.0813730955 0.0204762742 0.0182355195 -0.0321587101 0.0543608293 0.0645675436 -0.0534820817 -0.0556371734 0.000929124653 0.0532664433 0.0612225011 -0.0596067384 0.0685130283 -0.0785900652 -0.0359793752 -0.00766955316 0.0353889689 -0.0591200218 0.0724665597 0.063577719 0.0820497647 -0.0762186348 0.0196139514 0.0122732595 -0.0910261199 0.0417236313 0.0333437547 0.0469256416 -0.0093370378 -0.0907591283 0.0336948708 -0.0453146771 0.0552120581 -0.0111059546 -0.0749247521 -0.0050374046 -0.0479016565 -0.0580080971 -0.0636948571 -0.0721577704 -0.0450417474 0.0530551746 -0.0315282643 0.0472581759 -0.0375696346 0.000948451459 -0.0592486523 -0.0433189236 0.0286350772 -0.00366170704 -0.035105098 0.0695730224 0.0706211254 0.0528952554 -0.00497817248 -0.0260064527 0.0785511062 0.0176243782 0.085307993 -0.0852949619 -0.0509661995 0.0916712955 0.0869254991 -0.0138664469 -0.0561313741 -0.0696111396 0.0509120449 -0.0858584791 -0.0134294927 -0.0477698147 -0.0782081187 0.0748941973 0.017435886 0.0215103701 0.0539454445 -0.026202172 -0.0829220116 -0.0677320808 -0.0307880528 0.056963481 -0.0393514484 0.00802149624 0.0859656855 0.068746902 0.0721785203 0.0305189714 0.0764689371 0.0482748523 0.0679942891 -0.0223739296 0.0863718763 -0.0837523416 -0.0748011395 0.0683117881 0.030141294 -0.0911416039 -0.0516400486 0.00062045455 -0.0871692002 0.059228994 -0.0363110304 -0.0205190182 -0.00981057435 0.0476751551 0.0818778798 0.0112572983 -0.00808953494 -0.0138665289 -0.065119192 -0.0285722613 -0.00866072625 0.00248365849 0.0817251131 0.0111136138 0.0462761 0.0192189962 0.0684325173 -0.00416602939 0.0154465958 -0.0714180917 0.0656721368 0.0226723701 0.0535450354 0.0901758745 -0.0255168304 0.0368284509 0.0435336307 0.0344232842 0.0394146815 0.0641781762 0.00147250295 -0.0438278504 -0.0642204657 0.051089935 -0.024381198 0.00583577156 -0.0559814833 0.0420786515 -0.0895780921 -0.0422074832 0.017230086 0.00194203109 0.0212361664 0.000277504325 0.0844131634 0.0398255363 -0.0888218805 0.0202972442 0.0498745218 0.0439383462 -0.00496732444 -0.0267858654 0.0596536025 -0.0239554495 -0.00712457299 0.0221722946 0.0243502334 -0.0658026859 0.0835052952 -0.0560563616 0.0725273564 -0.0234288722 -0.0565290153 0.00224658847 -0.0387618095 -0.0346308835 -0.0153065473 0.0277750641 0.0443548933 -0.0383400656 -0.0335174613 -0.030969616 0.0758304819 -0.0692785159 0.0297097117 0.0896663293 -0.0095429942 -0.0586883314 0.0160739645 0.0545581952 0.0383318588 0.000793918967 -0.0296676755 0.0203826427 -0.029768154 0.0318779871 -0.0827547163 -0.0341720507 -0.0233244523 0.0471153334 -0.0631706566 -0.0352956876 -0.0473227166 0.0176209658 0.000346466899 0.0496106669 0.0903708711 0.0784576908 -0.0477292724 0.0515098944 0.0501291677 0.0200608969 -0.0437544882 -0.0683184192 0.0846861824 -0.0300317295 0.00126870722 -0.0373681709 -0.0239753947 0.0623920038 0.0804269686 0.0858762786 0.00794692338 0.0359126404 0.0729440972 -0.000311866403 -0.0591199547 0.0659765527 0.0216315389 0.0317296162 -0.0272698998 -0.00661498308 -0.0147251636 -0.0415683649 -0.0834685341 0.0208855867 -0.0660402477 -0.00777541846 -0.0757052898 -0.0323613174 0.0895281509 -0.00380750746 -0.0651040301 0.0654933974 0.0838066116 0.0749984011 0.0542574003 0.0202949345 -0.0378712192 0.0902309045 0.0805050954 0.0631249622 0.00575543195 0.00124077499 -0.0278629735 -0.0683871135 0.0209624246 -0.0912174731 0.0636495724 -0.0643504411 0.0807640478 0.0611533746 -0.0379087031 -0.0362903848 0.0381785259 0.075171493 0.00814691186 -0.0304916799 0.0155898407 -0.0276852548 0.0272960663 -0.0406344831 0.0663697049 0.0589014962 0.0372054651 0.00970034301 -0.0713756084 0.0712114945 0.0592564866 0.0638559237 0.0481191501 0.0594852343 -0.0872581676 -0.0599474832 -0.0445110314 -0.0897792652 -0.050142765 -0.0874028206 -0.0506372079 -0.0916503146 0.0897726044 -0.0573495664 -0.0564805679 -0.0377473682 -0.0584433302 0.0355914161 0.0822867975 -0.0575484745 -0.00548683852 0.0250850469 -0.076183863 0.0675872937 0.00927212834 -0.029748477 -0.0504736267 0.0336141363 -0.0643138736 -0.024850376 0.0824146792 -0.0402956977 0.0817887411 -0.0639059767 -0.0412384495 0.045260556 -0.0422348641 0.0389013961 0.0817059651 0.0731539056 0.0830233023 0.00690246373 -0.0723931938 -0.0147745535 0.0706038997 -0.0399869978 -0.0823036507 0.00305514038 0.0809820369 0.0916924402 -0.0176853687 -0.0723977089 0.0580588505 0.00780240446 0.0024421066 0.0882164761 0.08339075 0.0648703948 0.0314351618 -0.028930746 0.0543773398 0.0589913949 0.0109285936 -0.0389687493 -0.0629467219 0.070381619 0.0862830207 -0.0768736005 0.0308485404 0.0254898444 -0.0037914142 0.0694998577 0.0657330975 -0.0383753702 -0.0316196755 -0.0167079493 0.0532055721 -0.0313069262 0.0426154211 -0.0418914109 0.0134729221 -0.0317833647 0.00439251959 -0.0593556426 -0.061063569 0.0509058163 -0.0819303542 0.032883577 0.0793959871 0.0588310435 0.0661042705 0.042088069 -0.0623845719 0.049203597 -0.0806294084 -0.020360902 -0.00297264755 -0.0511255302 0.0527025089 -0.0398814604 0.0697497353 -0.00527460873 0.0907686129 -0.0169821829 0.0652757809 -0.0873610228 -0.0179557279 0.0226853117 -0.0442487337 -0.0531787574 0.0313578844 -0.0843454525 -0.05470144 -0.0722905174 0.0366451666 0.061372973 0.0457250848 -0.0592964143 -0.0188551843 -0.0301405042 -0.0822450817 0.0904098526 -0.0467366651 0.0709431693 -0.0565608181 -0.0693962723 0.0140405446 -0.0884601623 -0.046182245 0.0686852857 -0.0593360104 0.0415797904 -0.068830803 -0.0813942477 -0.0221348107 -0.041588679 -0.00519220531 0.0088378191 -0.0218860954 0.0600651279 0.0265294686 -0.026665315 -0.0221161023 -0.085698612 -0.000753946602 -0.00384756178 0.00525702536 0.0876993015 0.050732784 0.0370211527 0.0518180057 0.071268566 -0.0398424119 -0.00111062825 0.0611219183 0.0306905881 0.0881844088 0.0148380771 0.00849025697 -0.0907402262 -0.080860272 -0.0876604766 -0.0491516329 -0.0645273775 -0.0787525252 0.0689142421 -0.0758482441 0.00969611853 -0.0251122341 -0.0339602232 -0.0699381009 -0.0160749331 0.0215305313 -0.0533629842 -0.0865005851 0.0188224316 -0.0810477138 0.0592573211 -0.0395806208 -0.041140195 -0.0140853375 -0.0400127955 -0.0369477719 -0.0324501731 -0.0240642726 0.0202033892 0.00151716173 0.00875701755 0.0442176536 -0.0706811547 0.0615664348 -0.0161990225 -0.0829637721 -0.0692894086 0.0280988812 -0.0574142337 0.0502343699 -0.000519402325 0.0359798893 -0.0712794438 -0.0135803744 0.00504880399 -0.0576037876 0.0134134218 0.0581655428 0.0888096914 -0.091533877 -0.0454955399 -0.0499376692 0.00667978078 -0.0202670023 -0.0651702136 0.04209245 -0.0696880668 -0.0128611848 -0.00285561383 -0.0285109133 0.0508164093 -0.073811397 0.0327521339 0.011351265 -0.0387062095 -0.0181572288 -0.00863435864 0.0704914853 -0.00222719461 0.00943368673 0.0277580917 -0.00871454179 -0.0447219126 -0.0814679116 -0.0812352896 -0.0764971823 -0.0776756629 0.0634226725 -0.0194519088 0.0238057822 -0.0453132913 0.00827760994 0.0116432086 -0.089602679 0.0686807111 -0.0410469584 -0.0375841372 0.0142715722 0.0101094991 0.0714348629 0.0541322753 0.0187107548 -0.0469997339 0.069156386 0.0791800544 -0.0673077181 -0.0110523403 0.0105758756 -0.0107931644 -0.0904616788 -0.0755472332 -0.0917588696 -0.0374716856 0.0861163363 -0.0280871019 -0.00796992332 -0.0789430961 -0.0359534472 -0.0753052235 0.0921620056 -0.0449807346 0.0700304583 -0.0536038466 0.0297197104 -0.0809926242 -0.0693375021 -0.0289410427 -0.0177384838 0.0803776309 -0.0165995061 -0.0546962693 -0.084911786 0.00345396996 0.090519391 0.020043835 -0.057242088 0.0712038353 0.0902876928 -0.0880918577 -0.0742925704 -0.0729009137 -0.0825329348 0.00665666908 0.0130347535 -0.0437190495 -0.0421892591 -0.0763929635 0.0186470747 -0.0745225325 0.024695836 0.0276881382 0.0840971991 -0.0781559348 0.0178936124 0.0684170201 0.0601365492 0.00422152132 0.0622271076 0.0699580386 -0.0651952177 0.091389887 0.0262270644 -0.058153674 -0.0651502982 -0.0131889433 -0.0907992572 -0.0454907641 -0.0163782984 0.0217195153 -0.0559732281 -0.00825066864 -0.0502529927 0.0227418393 -0.0497785993 0.00752454251 -0.0526965074 0.0774951354 -0.0108228326 0.0554936603 -0.02747605 0.0748377219 -0.084221825 0.0356912836 0.0328521952 -0.0880402029 0.0681522563 0.0814839676 -0.0768069997 -0.0595348738 -0.054620441 0.0114445686 -0.0770315304 -0.0276157707 0.0268159285 0.00970947742 0.0904649422 0.0913522914 -0.0861588567 -0.0561358184 0.013788484 -0.0869768262 0.0830520317 -0.0853679925 -0.0845984221 0.0597940013 0.0906646028 -0.0527813137 -0.046997752 -0.0179754719 -0.0552781373 0.00903078914 0.0509527251 0.0305474326 0.0525031164 -0.082054846 0.0503806695 -0.00503551215 -0.0214730203 -0.0626163632 -0.051131364 -0.0334789418 -0.0854815915 -0.0535912998 -0.0110565647 -0.0461752452 0.0734615251 -0.0860971361 0.0727139488 0.0364143476 -0.0486485623 0.072845377 -0.0206568539 0.00144192576 0.0286095887 0.0529348329 -0.0657772645 0.0683607385 -0.0118295923 0.0470381007 0.0620998666 0.0478703305 -0.0693546981 -0.0720557943 0.0108411685 -0.0441256501 0.0590645298 -0.0147074461 -0.0676536113 0.0250196829 -0.017547518 0.0536467656 -0.0337997675 0.0635125712 -0.0199999511 0.0232304931 -0.0578872375 -0.0379638635 0.0742082521 0.0322487354 -0.0361825787 -0.0254763737 -0.0375429802 -0.0853223652 -0.0849311948 0.033859767 0.0874420926 -0.0246627107 -0.0795983672 -0.0309958309 -0.0197359324 0.0362982377 0.0399538502 -0.00945072621 -0.0640877858 -0.0606153905 -0.0613285303 0.0815436319 -0.0810814574 -0.0227833912 0.0196006596 0.0153991655 -0.0362709947 0.076300256 -0.0436546691 -0.0430931412 -0.0665873811 -0.0314156823 0.0773361549 -0.0714328587 -0.0218912438 -0.00797078758 -0.055988878 0.0574649051 0.0690449551 0.0761655495 0.0224774033 0.0328326896 -0.0347759537 0.0790831968 -0.0108154193 0.0914871916 0.0353243425 0.0255088657 -0.0461565778 0.0619274303 -0.0646962896 0.0569266602 -0.0836550742 -0.0182215273 0.0556597039 0.0730673596 -0.0313466564 -0.0405984707 -0.0901438743 0.03153456 -0.0675396621 0.0587909147 -0.00565710664 0.0748752132 -0.058110334 -0.00708407164 -0.0794379562 -0.00127671659 -0.0699649975 -0.0233722404 0.0747273788 0.0846193507 -0.00298625231 0.0754423514 0.0184382871 0.00226153433 -0.0878577754 -0.0747812241 0.0442691222 0.0779831484 -0.0888564363 0.01843483 0.0385610685 -0.0895994231 -0.0613545701 0.0831553116 -0.0448311754 -0.05397043 -0.0920553058 0.0087383762 0.082771875 -0.0875743255 0.0025235042 0.00510810316 0.0476038828 -0.0204784796 0.0418275222 -0.0850874931 0.00997103006 0.0526259467 0.0492381975 0.053105481 -0.0351229273 0.0828553215 -0.000604428351 -0.0705510303 0.0752388462 -0.0920997262 0.0267186239 0.0715872422 0.0833317563 -0.0347030759 -0.0629416108 -0.00480710715 -0.0301650017 -0.013563931 0.0343354866 0.0486624315 -0.0221490487 0.074085556 -0.0636574179 -0.0188572332 0.0614087805 -0.0297363475 -0.0687893108 -0.0576043352 -0.00851913542 -0.0690006986 -0.0516585149 0.057732068 -0.0297094956 0.0426746979 0.0196404308 -0.0744847655 -0.0600797646 0.0760541335 -0.00872356445 0.0242440552 0.075412564 0.0776503757 -0.0827334076 -0.0714617968 0.000582948327 -0.0576148592 0.0186944231 -0.0482985079 0.0705426708 -0.0209219456 -0.0605930723 -0.0777243525 -0.0573465936 -0.0102725327 0.0688333139 -0.0469959266 0.0172787756 0.0515331402 0.0615636185 -0.0411264598 0.0314279422 0.0301615447 0.0272102728 0.0267574489 0.0733294263 0.0351677909 0.062953718 -0.0654559359 0.0816140249 0.0500002876 0.0335008278 0.00357280672 0.0284477696 -0.0431431234 -0.040810544 -0.0415784903 0.0673272684 0.0493647531 -0.0496815108 0.00214055926 0.0906362012 -0.0111091062 0.0898946747 -0.0652861893 0.0208787844 -0.076716274 0.0307736993 -0.0608900599 -0.0881976634 0.0021590963 -0.0492196679 0.0214691013 -0.0215292796 0.0155601501 -0.0921671838 -0.0343824513 -0.0213519186 -0.0797760785 0.036082007 -0.065295741 -0.0713592544 -0.0611979887 -0.0492995419 0.089087747 -0.082786873 -0.0272027031 -0.0800743848 -0.0658060312 0.0842481628 -0.0390072018 0.0616706684 -0.0458628051 0.0450730249 -0.0405576639 -0.0800806582 0.0285703018 0.0441715196 -0.0910656899 0.0203888714 -0.0568152182 -0.0419530645 0.00323985517 -0.00206328183 0.0311499238 -0.0347436629 0.030594252 0.0768150613 -0.0600446165 -0.0801156387 0.0764627084 -0.0589424632 0.0519913062 0.0491676405 0.0468065217 -0.0157308877 0.034704484 -0.0585940145 -0.00695284456 0.0333309397 0.0652698204 -0.0883872136 -0.0673763677 -0.0753249004 -0.00342430174 -0.0497618057 -0.0922420621 -0.0205822363 -0.00140561163 0.0423106179 0.00769525766 0.0678936318 -0.057575196 0.0211031586 -0.00800313801 0.0868681893 -0.00303634256 0.0315263271 -0.0814876109 0.00615606457 0.0470592901 -0.0418211557 -0.0283992961 -0.00691672415 -0.0712992996 -0.0318866372 0.00703327358 -0.0731399208 -0.0722739846 0.0849523321 -0.0188976899 0.0478298441 0.0774846151 -0.00186862051 0.0608987585 -0.0300094299 0.0401715562 0.0646871701 -0.0772417933 0.0754053965 -0.0711810142 -0.0512774922 0.0543775633 0.0908922479 0.070853062 0.0347163305 -0.0476497933 -0.041931361 -0.0836508721 0.0459860042 0.0816245154 0.0188959911 -0.0619519576 0.0766267851 0.0573629662 0.0842248574 0.0522523597 0.0339214876 -0.0415557064 -0.0399403162 0.0679031238 -0.0474313609 -0.0433535911 0.0063771829 0.0319648236 0.0244171843 -0.044711329 -0.0295910984 -0.0351030529 -0.0290521979 0.0287602469 -0.0615992174 -0.0197299868 0.0477181152 -0.011731185 -0.0525095277 0.088408567 -0.0873712748 -0.0133415833 0.0117021948 0.0789639577 -0.0512795374 -0.0110066906 -0.0685452819 -0.0600240342 -0.081582278 -0.0689039379 0.0254267827 -0.0150859356 0.0170812905 0.0292779133 0.0864029899 -0.0357222296 -0.0510987453 0.0234260783 0.0434104428 -0.00975880772 0.0327719823 0.0296575502 -0.065733619 -0.012373738 0.0496737882 -0.0275614932 -0.0822221264 -0.0604632311 0.017863214 -0.0183446705 -0.0729445815 -0.0125240013 0.0409824029 0.0212752596 -0.00298061222 0.0547624305 0.0169641972 -0.0353504717 0.0192077458 0.0179633424 -0.0544781238 0.00445768982 0.0441382453 0.0379556343 -0.0314238891 -0.0868435353 -0.0107029676 0.0436429605 0.0283650309 0.0515582636 -0.00976718962 -0.0018607229 -0.0066055879 -0.0878615379 -0.0408432931 0.0676504895 -0.0866794437 0.00246077031 -0.00715078413 -0.0451411903 -0.0301980823 -0.058631476 0.006429106 0.0132333115 0.0898265317 -0.022042498 -0.0659731179 -0.0580456033 -0.0281695351 -0.0535690673 0.0632393882 0.0286374539 -0.0112454817 -0.00308434665 -0.0768411607 0.0792610571 -0.0455129482 -0.0451477058 -0.0645190179 -0.0197782144 0.0628750995 -0.0348207466 0.0705219135 -0.0807947665 -0.0386475511 -0.0490597375 -0.00623631477 -0.0878167301 0.008157745 -0.016851835 -0.0798659697 0.0266314596 -0.0201920122 0.0130890533 -0.0463875122 -0.0368582122 -0.0282148048 -0.0837605447 -0.0859548151 0.0475554094 0.00127779692 -0.0683951899 -0.0890591964 -0.0807357803 -0.0780287981 -0.000733941793 0.0821617767 0.016457431 -0.0603833348 -0.00443427265 -0.0269331411 0.00447488576 0.0265269801 -0.0388939604 -0.0401302204 -0.025017105 -0.0877213106 -0.0247572511 -0.0483131222 -0.0841641352 0.0102391839 -0.0153786987 0.0556390807 -0.0840928853 0.0266495571 0.00280087441 0.0749113485 0.0368515924 -0.0630676225 -0.0445147529 -0.00337602943 -0.0570416152 -0.081644021 -0.0603285059 -0.0389748923 -0.0403209217 -0.0599687882 0.0129741803 0.0437678024 -0.0362359323 0.00490170717 0.0375273451 -0.0188520551 -0.0588891543 -0.0315929316 -0.027486302 -0.0538356379 0.000565670431 -0.0736441612 -0.0391090028 0.0133677945 0.0596498623 -0.0414884426 0.00375179201 -0.0776135474 -0.0548556447 0.0805538371 -0.0911703557 -0.0315156318 0.00134384632 -0.0872957408 -0.03092793 0.0510390028 0.044629626 0.0562122986 0.0849037096 0.0642602816 -0.0126120672 0.0460676178 -0.0866003856 0.060308747 -0.0443971716 -0.0734026879 -0.0527843721 0.0740799829 0.0800060704 -0.0439242534 0.000549577177 0.00878937542 -0.000225670636 0.0539068356 -0.04474058 -0.0543042831 -0.0631869882 -0.0445523672 -0.0515691303 0.0274889246 0.0731547996 0.0375702754 -0.0165627524 -0.000256001949 -0.0630896762 -0.0607442185 0.0815318152 0.0647723302 -0.0397289284 -0.0546374992 -0.024282746 0.0711356029 0.0172331408 0.0540167764 -0.073830016 -0.0458985716 0.0561494157 -0.0705354661 0.0220721439 -0.021413222 0.0733814612 -0.0389493592 -0.0689851195 -0.0115323663 0.0770481303 0.0688187107 -0.00192252547 0.056388475 -0.00759832561 0.0198467746 -0.028807506 0.0711390004 0.0229674652 0.0149201974 0.0206690654 0.0672313049 0.00209669769 -0.0863668993 -0.0318081938 0.024083972 -0.0276260972 -0.0516398288 -0.0292884335 0.0119574741 0.0173415244 -0.0891938135 0.064553 -0.0516862273 -0.0116336122 -0.0503412746 0.0698592886 0.0593406484 0.0355938002 0.0439712927 0.0461807474 -0.0783252195 -0.0251185298 -0.0462118462 -0.0317954719 0.0262423158 0.0557010248 0.0322827175 -0.0102651119 -0.0583779812 -0.0272472054 0.0783121362 0.0249988362 0.0890375748 0.0445617661 -0.0843764246 -0.0509151556 -0.0247367769 -0.0202726126 0.0643828139 -0.00188422948 -0.0910611376 -0.0683381185 -0.028008461 0.0555150583 0.0841178373 0.0608078912 -0.0472759232 -0.0483443327 0.0282163471 0.0263256282 0.0350180939 -0.0108686835 0.0789755806 0.0356966779 -0.0351107754 0.0910157487 -0.0138946176 0.0899837837 0.0902564302 0.0566062555 0.0448974445 0.000865541399 -0.00351396948 0.0874600634 -0.0877068043 0.0878503397 -0.0478841811 -0.0828405321 0.0457695499 0.00415564328 -0.0728419647 0.0575136468 0.0680205896 -0.0122245103 0.0662139729 -0.0899015144 0.0628864542 -0.0464062206 0.0569126084 -0.0187416524 -0.0397490896 -0.0174756348 -0.0898526311 -0.080467537 0.0182308108 0.0351917073 -0.0419339798 -0.039483618 -0.0350282602 0.0866813436 0.0284080803 -0.0618491247 0.036607109 -0.0270044506 0.0884090438 0.00296863914 0.0453900173 -0.0520508736 -0.0645559877 0.0810421929 -0.041909527 -0.0147613436 -0.0661183 -0.0490616523 0.0326026157 -0.0553405359 -0.0589566827 0.0845716521 0.0285249129 0.0048000887 0.0910497829 -0.0640052035 -0.0676699653 0.0890688971 -0.052811183 0.0787101164 -0.0523677133 0.0626849756 -0.021093294 0.0920935348 0.0308690518 -0.0399554595 0.001477696 0.0260792598 0.0449397042 0.0571135506 0.0758445635 -0.0781040788 0.0119597465 -0.049195081 -0.0880649611 -0.0894216001 -0.0830165297 -0.0433864295 0.0847060904 0.0551079586 0.0921675637 0.0635897592 0.0167259797 0.0384709612 0.0453206226 -0.0152259022 0.0527895913 -0.0121988431 -0.012793541 -0.0317258947 -0.0492936671 -0.0536170714 0.0556054935 0.00899536908 0.00952232629 -0.0691230595 -0.0306422114 -0.0147595629 0.0503153279 0.0590340421 0.0758897588 -0.0769941807 -0.0215784311 0.060445644 -0.0431618989 -0.0306999013 0.0726162121 0.0258218944 -0.0424841978 -0.076161474 -0.0910586715 -0.0492050722 -0.0759720132 0.0325937271 -0.0850043818 0.0842272863 -0.00449685007 0.0310245976 0.0500425771 -0.0676795691 -0.00157777965 -0.0578922555 0.0307914168 0.00393399596 0.0297350734 0.0702902302 0.0041674003 -0.000495232642 -0.0137538165 -0.0376464948 0.0909635797 0.0223877802 -0.0887716711 -0.0540954471 -0.0820607021 -0.0776950568 -0.0240691826 0.0448976085 -0.0678053498 -0.0712027401 0.0212523416 0.0370244756 0.0356923416 0.0558250472 -0.0671469793 0.0254101679 0.00650407374 0.0522847995 0.00107741356 -0.0462547913 0.00749459118 0.0569228306 0.0426120833 -0.0315779857 -0.0610445738 -0.0822117627 -0.0266414136 -0.0734824538 -0.025312461 0.0312738419 0.00652652234 0.035471864 -0.0687832981 -0.0619776174 -0.043137338 0.0572580472 0.053771086 0.0411398187 0.0807507709 0.04971876 -0.0360286795 -0.0271876901 0.0303660035 -0.00294931233 -0.0271881074 0.089166306 0.073282592 0.0856160149 -0.058765851 -0.0597376563 -0.076662764 0.0623747334 -0.0529937148 0.00908451527 -0.0183261186 -0.0781626925 -0.0779114217 0.0342718735 0.051609315 -0.000627651811 0.0171466395 -0.00693743676 -0.0575711653 0.0829564109 -0.000546716154 0.0607490614 -0.0526045039 -0.0212109834 -0.0416458622 0.0190847963 -0.00974269211 0.0735663995 0.0901097581 -0.0241760388 0.0440044329 0.0643004254 0.00203612447 0.0778704807 -0.0796152502 -0.00288902968 -0.0838366151 0.0564542189 0.0539015755 -0.0264572278 -0.0495787002 -0.0626809895 -0.0716222525 -0.0607253537 0.0283539817 -0.028427586 -0.0537166037 -0.0441287756 0.0251127854 -0.00178751349 0.0795551166 -0.0233791694 -0.0165331662 -0.0727784187 0.0390183404 -0.0758151859 0.077662982 -0.00681532174 0.0534574315 -0.0448521078 -0.0788297802 -0.0583450533 0.0476146564 0.0490817204 0.0244084671 -0.045785021 -0.00530047715 -0.0762560368 0.0617867485 0.0859906301 -0.0811556131 -0.0762337595 0.0433985367 0.0707187727 -0.00639423728 -0.0857073963 0.0636700913 0.0275141075 0.0335200205 0.00915393233 0.0895271972 -0.0642732903 0.0662627742 0.0452787355 0.0539413765 0.0689291582 0.00470599532 -0.0491221808 0.0177186057 -0.0165764615 0.0167831853 0.0381693318 -0.0916950628 0.0673480406 -0.0452439599 -0.00189978629 0.0514201596 0.0634646192 0.000194773078 0.0276488736 -0.018152371 -0.0758943334 0.00707163662 -0.0829026029 -0.00400973856 -0.0160893276 -0.0866758376 0.0882932022 -0.0803058073 -0.0395613164 0.0644685403 0.00261799246 0.00131772459 0.0703209713 -0.0156641528 -0.068676576 0.0792683437 -0.0315155648 0.0831837878 -0.00703791529 -0.0859885588 0.0393917039 -0.0829254687 0.0912057087 0.0466655716 -0.0446562134 -0.0513210297 -0.00100623071 -0.0334757082 -0.0921492875 -0.0574586056 -0.0586004853 0.0137666464 -0.0842774883 0.0281471908 -0.0817411542 -0.0534090735 -0.0388418175 0.0356251374 -0.080462873 0.0389175788 -0.0409054086 -0.0745765865 0.0605154261 0.068501763 0.0374286547 -0.0240352824 -0.0921148211 0.0604897514 -0.0232061669 -0.0516671874 -0.0425863266 0.0251314268 -0.0817845389 -0.0561693646 0.0807623044 -0.0100265443 -0.0290741399 -0.0889727846 0.0225926712 0.0374208912 -0.0596182942 0.082831271 -0.0176732466 0.0288638771 -0.0807546899 0.0789583251 -0.0043265745 -0.0124376789 -0.00895610452 -0.0209267214 -0.0404611491 0.0805286244 0.0214642212 -0.00595143437 0.0331653878 -0.0644480735 -0.0206691995 0.0207891092 -0.0829672068 0.025512889 0.0509058461 0.0443250909 -0.0918700024 -0.0766776204 0.029003419 0.053323172 -0.079497315 0.0530582443 0.00664404035 -0.0335536227 0.0721490756 -0.0406282507 -0.0840265676 0.0364612564 0.0284674242 -0.0523249917 -0.0257532224 0.0752708241 -0.0872589126 -0.0612951852 -0.0842921883 -0.0676275566 -0.0708255917 -0.0356241725 0.0266764536 -0.0485287569 -0.0730127022 -0.0792204887 -0.0865085348 0.0244040489 -0.0721731782 0.0913471803 0.0114287436 0.0503158495 0.0286882743 -0.0117743686 0.0871696845 -0.0796651244 -0.0744712949 -0.0808997378 0.00935898721 0.0153871924 -0.0791212469 -0.0864727423 -0.0711499304 0.0859261528 -0.0270173922 0.00165457278 0.045093976 -0.0807760134 -0.0580652356 0.0768739358 -0.0417237356 0.0445887223 -0.0479354002 0.0888871029 -0.0359999351 0.0414704606 0.0302005485 0.0881294534 -0.00497872382 -0.03607006 0.0373919383 0.00873096287 0.0146252736 -0.0781038776 -0.00490358472 0.0818501785 -0.0246562436 0.0176710412 -0.0342540182 -0.0480455197 0.0484760031 -0.0624688044 0.0565786436 -0.0733236223 0.0066223368 -0.0177581385 -0.000840775669 0.0845424309 -0.0164134055 0.0437070802 0.0271921754 0.0733863339 -0.0828205496 -0.0843574926 0.0460968837 -0.0539380088 0.041502662 0.0118199736 0.0163394287 0.0217437968 0.000400103629 0.0178724378 -0.0668623596 0.0345699415 -0.0310082883 0.0746499076 0.077358909 -0.0287282914 0.00864331424 0.0544472858 0.0232449323 0.0044329986 0.00755386055 -0.047616601 -0.0829469338 0.0261308774 0.0238421187 0.0467253998 0.0795350149 0.0438760594 0.0119503886 0.0600268915 0.0071503222 0.0609337017 -0.0747324005 -0.0136156753 -0.0396468043 -0.0683187246 0.0178060085 0.0433034971 0.0282816961 -0.00846567005 -0.00359746069 -0.00962628424 0.0268782005 -0.0590298437 -0.0398153402 0.00751890987 0.0138702542 0.0467016026 -0.0762005225 0.0160193741 -0.075038217 0.031728074 0.0365500227 -0.0156216025 -0.0859122947 -0.0440377854 0.0531408712 -0.0149125159 -0.0392931849 0.0441339538 -0.0571546406 -0.0750097781 0.0133698881 -0.0725444928 -0.0900982693 0.0330463871 0.00815052539 -0.0919482708 -0.0511436015 0.0519475415 0.0913063511 0.0358910039 0.0381361172 0.0548646078 -0.0519309603 0.0161863044 0.0173019692 0.0432865843 0.0111891106 0.0117608532 0.074208729 -0.0725353807 0.0509238318 -0.0280234963 -0.0357324183 -0.046697773 -0.0808825269 -0.064406544 0.0202291682 -0.0723437592 -0.0598901249 0.0692868754 0.0560999438 -0.0280980617 0.0368562117 0.0203606337 0.0705024227 0.080732353 0.0416359827 0.0500096604 -0.0884510055 0.000357739627 0.0518270954 -0.0415144376 -0.0206494555 -0.0254051909 -0.0625259653 0.00440137088 0.0725847259 0.0909741297 -0.026113905 0.0305101722 -0.0909059197 -0.0118628517 -0.0483247638 0.00288282335 0.0196700096 0.0572614148 -0.0445193946 0.0398871228 0.00455310941 0.0565632358 0.0590477809 -0.0715235397 0.0129221752 -0.0831969231 -0.0458393209 -0.0534988344 -0.0623929352 -0.0507485569 -0.0537876338 -0.0593907274 -0.000483460724 0.0353047922 0.0867180899 -0.0534722432 0.0413341299 0.0416947976 0.0296439454 0.0808363929 0.080685623 -0.0853700191 -0.0661193058 0.0348931327 -0.0254991129 -0.0743211806 0.0900499299 0.00130865723 0.0265906975 0.0447177365 0.0862930492 0.0885829404 -0.0115287751 -0.0884061679 0.0550132617 -0.0202903971 -0.0582907125 0.0162931904 -0.0272794291 0.035311617 -0.0639065057 -0.0884843022 0.0225988105 -0.0624992251 0.0565625802 0.0556041971 0.0788726136 0.0614866689 0.0772277489 -0.0691758171 0.0410383716 0.021607548 0.0276096091 0.0543420389 -0.0432460681 0.0322852731 -0.0860121995 0.0362003669 0.044539772 -0.0768863484 -0.0384275131 0.00521250069 0.0635172501 -0.0444433056 0.0467424914 0.0849284306 0.0837857798 0.081847094 -0.0231421441 0.0259674937 -0.00126635283 -0.0465490483 0.0919262096 -0.0821733922 -0.0920407996 0.0534373149 -0.0884326249 0.0494785532 0.0159430876 0.0359839574 0.0866103992 0.0607851073 -0.0183358267 -0.0378044397 -0.0276258066 -0.0409137718 -0.0286512524 0.0835805461 0.00844255835 -0.012276493 0.0600710437 0.0111623257 -0.0720805824 -0.0552725233 0.00923860818 -0.0259522647 -0.0860371813 0.0422785804 0.0592419431 -0.00949069858 -0.0576191731 -0.0444628075 -0.0403761677 -0.0611076131 -0.00742424279 0.0108307824 0.0871657655 0.0576599315 -0.0511883721 -0.0629806146 0.0376295522 0.0635631457 -4.13805246e-05 0.0133984759 -0.0137020722 0.0874103978 0.0248635337 0.0656826869 -0.00693470985 -0.076490134 0.0191717371 -0.0527275205 0.0188040063 0.0543488041 0.0747469142 -0.0470614508 -0.0902686715 -0.00424918532 0.031264998 0.02782958 0.0200121626 -0.077277936 0.0164984539 -0.0262862295 0.00775686651 0.0854587033 -0.0900294185 -0.0537391193 -0.086899288 0.00445696712 0.0182761103 -0.0275889859 0.0564428195 -0.0154067352 -0.0595863797 0.0179991946 -0.00491870195 -0.0261003077 0.0244733766 0.0276052058 -0.0730270967 0.0200910047 -0.0220614299 -0.0794206336 -0.0692121536 0.0590824261 0.0375231877 -0.00651485473 0.0220023096 0.0334471837 0.0729684159 0.00766979158 -0.0128023028 0.0472899452 0.0308785588 -0.0140886381 0.062266998 -0.0565895438 0.0630847737 -0.0041436702 -0.0833573192 -0.0193832591 -0.0120949969 0.0287418291 0.0380510911 0.0112582892 -0.0177911296 -0.00154808164 0.0781342164 -0.0234948173 0.0573291555 0.0637433454 0.0800994113 -0.0295794755 -0.0908983946 -0.00201162696 0.00459017605 0.0398105457 0.01284419 -0.0609113872 -0.0759429112 0.0183122978 0.0207936466 -0.000209495425 -0.0421055295 -0.0468685292 -0.046449516 0.058051385 -0.0824967325 -0.058583077 -0.0279997215 0.0323287174 0.0316434205 0.0594571307 -0.0921937749 0.0760403797 -0.0209629983 0.024397023 0.0636953786 -0.0791392475 0.0496637896 -0.0581636876 -0.0380192623 -0.0615138561 -0.0543317087 -0.0328265317 -0.0090226233 -0.0388091952 -0.0190702677 0.0384510234 0.0516864434 -0.0561152622 -0.0796384513 -0.0211112127 -0.0168922246 0.0430838242 0.0495859459 0.0346717313 -0.0805047378 0.070002906 0.0175588802 0.0659257546 -0.0107745901 -0.0335090086 0.00399786979 -0.0675401986 -0.0160548165 0.0656528249 -0.0893114358 0.0244574249 0.0248733535 0.0596031323 -0.0664881393 0.0137856901 0.0646012053 -0.054170087 -0.0651407242 0.0194142684 -0.0271281749 -0.0164704621 0.0669229552 0.0140687898 -0.0248715729 0.0629746094 -0.082015492 -0.034253668 -0.0909812599 -0.0771324039 -0.0651393831 0.031031996 -0.0476963446 0.0697602555 0.0723665878 -0.0071227178 0.036905311 0.0689421669 0.0324928537 -0.0550288036 -0.0232007578 -0.0723593682 -0.00379005075 -0.0639533028 0.00317276269 -0.077780284 -0.0656490102 -0.0645337179 0.0847781375 -0.0894953087 0.0544517711 -0.0159355402 -0.00210116059 0.0419710949 -0.0549986698 -0.053299617 0.0137740001 0.0209428966 0.0626727566 -0.0821711048 -0.0862873495 -0.0420567989 0.066504024 0.00713055581 0.0905077979 -0.0603714474 -0.0736948699 0.0141179785 -0.0412080958 0.0361916497 0.0809867159 0.0617234632 0.0247233063 0.0181940123 -0.0822817758 -0.0702819303 -0.0847170129 0.0515182391 -0.0548918545 -0.0128601044 -0.00495781749 -0.0467598625 -0.090846248 -0.0174151734 0.0186849758 0.0295675695 -0.0684991702 -0.0628737733 -0.0480465293 0.0538113341 -0.0415333025 -0.015440762 -0.0624471232 0.0363946036 0.00173081458 0.0219740495 0.00510066003 -0.00486541539 -0.0830989331 -0.0250742659 0.0151593834 0.0295690224 -0.0545886606 0.0764617398 0.0724415556 0.0643369928 -0.00316638499 0.0500114337 -0.0439172983 0.0205170438 0.0479232743 0.0528728589 -0.091058366 0.0778776333 -0.0640987903 -0.0428860225 -0.0542475618 0.0144106522 0.025778994 -0.0470530204 -0.0414428599 -0.0221223533 0.0766901746 0.0225273445 -0.0431548804 -0.0189448968 0.0326800942 0.0250409171 -0.0172212124 -0.0857049748 -0.0675300062 -0.00953744352 -0.0894723982 0.0637022778 -0.0529838316 0.0464119241 -0.00984860957 0.0769157782 -0.0440839194 -0.00116107613 -0.0154725239 -0.0912209079 -0.0290044323 0.0324739218 -0.0294564217 -0.0549817234 -0.0169971883 -0.0585448891 0.0867897347 -0.0555624478 -0.0869830772 -0.00561627746 -0.0656455085 0.0333263502 0.0597628132 -0.00280560553 -0.0424247049 -0.0899156928 0.0647599474 -0.024703145 -0.0396517366 -0.0717778727 0.0537853912 -0.0450873114 0.0448501632 0.0531772599 -0.01699882 0.00536408275 0.0709579512 0.0416061059 0.0367154256 0.073373653 -0.0297461674 0.00535932928 0.0526918843 -0.0538609065 0.0155737773 -0.0555267036 -0.0284267664 -0.028146863 -0.0166401789 0.00869648904 -0.0491436198 -0.0605958477 0.0828168765 0.00312306732 0.0913920626 -0.0686923116 0.0559703186 -0.00329817832 -0.0706982315 0.00664579868 0.0663670823 0.0141587853 0.00478496403 -0.0686111376 -0.0603296086 -0.0922698006 0.0363006666 0.051468648 -0.0388358943 0.032568872 -0.079656519 0.0743765309 -0.0916513726 0.069927536 0.0810685828 0.00504931062 -0.040575847 -0.0704278126 -0.0383764915 -0.061268352 0.0378054157 -0.0334393233 -0.0081730634 0.0546365604 -0.0200064853 -0.0822183192 -0.00657650828 -0.0480741523 0.0873487666 -0.0693199635 -0.0531285293 -0.0076848492 -0.0228575021 0.0745299235 0.0759380087 0.0517396852 -0.0557891093 0.00564903021 0.0307786316 -0.0823854879 0.0559471175 -0.0032126084 0.0313594863 -0.0415126346 0.0496813133 0.0399992988 0.0529479161 0.0459957644 -0.0773103982 -0.0287855193 0.0492219403 -0.0283484757 -0.0664729327 -0.0184760094 -0.0171668902 -0.080392085 0.0559768602 -0.0534249209 -0.0236526728 -0.0437030718 -0.0787531659 0.0093325302 0.0814366564 -0.0363719761 0.0542664751 -0.0464648344 0.0339798406 0.0159276798 -0.00343735516 -0.0104853287 -0.0401430763 -0.0156440511 0.0106597394 0.02055455 0.0672677085 -0.0464862511 -0.00589731336 0.0644707903 0.0838487074 -0.0835757926 0.0645620003 -0.0255897716 -0.0847670659 0.0586797968 0.00632922351 -0.0389261842 -0.0749411955 -0.0650287122 0.00460384041 0.00563195348 -0.00691815466 -0.0695074052 0.057895489 0.0763054267 0.0614510849 -0.0592911318 -0.0785919577 -0.0232360139 0.0499565527 0.0318554714 -0.0028135106 -0.0525289625 -0.00691067427 0.0724096224 0.0489893928 -0.0250298455 -0.0870817974 0.00982327759 -0.0323466808 0.0435384139 0.0227073655 0.0349735841 0.0230237246 -0.0439076386 -0.00280794501 0.024945721 -0.0310407765 0.0821066871 0.0812778547 0.00802794844 0.0740342066 -0.0487620682 0.0549796298 -0.060151808 0.030328691 0.00490098447 0.0716384277 -0.027357541 0.0794509873 -0.0298708975 -0.0240892097 0.0445489362 0.0161806047 0.088237457 -0.0621294044 0.0632974729 0.00634694099 -0.0757980198 -0.0820451826 -0.0806841254 -0.0767810941 -0.022478722 0.0819245055 0.0060884729 0.0645564571 0.0212834924 0.0151551589 -0.0518785752 -0.00804518163 -0.000847361982 -0.0789494142 -0.00517239422 -0.0893717036 -0.0252786353 -0.00251152366 0.0232860222 -0.0484143682 -0.043466568 0.0423109755 0.0820909068 -0.0229025781 0.0293251947 -0.0527949594 -0.000638745725 -0.00339139253 0.0447228774 0.026004605 -0.00940533727 0.0474456176 0.0188944265 0.0230932757 0.0358595327 -0.0366320983 0.091851823 -0.0682313219 0.0583406463 -0.0785844773 -0.0412143916 -0.0153742954 0.0758291408 -0.0906078517 -0.0268137753 -0.0830477625 0.00041115284 0.0513118133 -0.0841812119 0.0484368578 0.0586286411 -0.0847903341 0.0749108568 0.0196049064 0.060579367 0.0117515475 0.0857401118 0.0138476491 -0.0530376248 -0.0264147669 -0.0101383105 0.0241445675 -0.066442728 -0.0347519405 0.0611675456 0.0605525747 -0.0590156689 0.00574823469 0.0136678219 0.0903493688 -0.0188643858 0.0562498942 -0.0545479171 -8.04290175e-05 0.0680121258 -0.0750537813 0.0789098367 -0.0797952488 0.0299679637 0.0672503635 0.0865062401 0.0300895944 -0.0193496495 -0.0665544569 -0.0702024475 0.0851730928 -0.0706217289 -0.0575409904 -0.0827971697 -0.0645823404 0.0870515332 -0.0793011189 0.0629704967 0.0910133794 0.0523352697 0.0769720152 -0.0871310085 0.0447283611 0.0515920445 0.0222607329 -0.0084156841 0.0742370412 0.0382432416 -0.00768823922 0.0879231021 0.0336123332 0.0592652634 -0.071451433 -0.0622656271 -0.0717064887 -0.0517045408 -0.0503671169 -0.0273306891 -0.0360881314 -0.0221931413 -0.0455824584 -0.0380981266 0.00440821052 0.00589656085 -0.0601642653 0.0349253342 -0.0247635022 0.0657514855 -0.0728859231 0.00582467765 0.00782562792 -0.0902410448 0.00105111301 0.000204145908 0.0796607509 0.0794454142 0.00682872534 -0.0263270587 0.0680274144 -0.0659058541 0.0682242289 0.0489615276 0.0597597286 0.0451439247 -0.0387139134 0.00279343873 -0.047525961 -0.0194609091 0.0608622804 -0.0911970735 -0.0403168909 0.0690586045 0.061329253 0.00846392661 -0.0711190999 -0.0534958169 -0.0649650395 -0.0434143618 -0.0457536131 0.00442696363 -0.0373149514 0.0570913628 -0.0799423456 0.0550742969 0.0297684595 0.0698962882 0.0502886549 -0.0414735191 -0.0298587047 0.0225717202 0.000201702118 0.00778891146 0.0847709402 0.0432480052 0.0137235969 0.0893182531 -0.0705116317 -0.00817620754 0.0807703659 -0.0640339926 -0.0389724933 -0.0419872887 0.0189078301 -0.0121727362 -0.00116737187 0.0690116808 -0.0588812083 0.0515333191 0.0569443777 -0.0379380211 0.0582869872 0.0571239814 -0.00780055672 0.041200988 -0.0612218007 0.0359453633 0.066703625 0.0063323006 0.0792769715 0.0359836742 0.0146435872 -0.0807409734 -0.0150115192 0.0352669582 0.0136011764 0.058591865 0.0790152028 0.00145982206 0.00073800981 -0.0136889294 -0.0737156048 -0.0908176377 0.0021128282 0.0743939504 0.0892672315 -0.0484518744 0.0215103701 -0.0808512941 0.0319106728 -0.00789601356 -0.0545179397 0.0475096032 -0.0877563953 0.0296301022 0.0634584203 0.0808104351 0.0811642781 0.041156508 0.0484756306 -0.0506735668 0.0853222981 0.0240987167 0.0529242232 -0.0218851268 -0.0107682049 0.0589292422 -0.0280005559 0.0744310543 -0.00896163285 -0.0508383177 0.0290569514 -0.00207886845 0.0661757216 -0.0238271281 -0.070579797 0.0130006596 -0.0559086278 -0.0355508551 0.0706559941 -0.0654517114 -0.0372919478 0.0260684788 -0.0710305274 0.0915125981 0.0120107606 -0.0842289776 0.0331155732 0.00208124518 -0.0320277028 -0.045780465 -0.0404983908 0.0700264797 -0.0163369402 -0.0487000644 0.0418534204 -0.0755811036 0.0318931788 -0.0912427008 -0.0753990114 0.000776350498 0.0471140519 -0.0195760503 -0.00318396837 -0.0852241591 0.0856088176 -0.0520564653 0.0132490471 -0.000840932131 0.052642189 -0.0729466677 -0.00292783231 0.0877127722 -0.0872811228 -0.09198571 0.0334105566 -0.0717841014 0.0913662687 0.0787790045 -0.0915182531 0.0127511322 -0.087568298 -0.0372359529 0.0596909449 -0.0662889406 -0.0149996057 0.027034454 0.0858071223 0.00861879438 0.0439293608 -0.0903067067 0.024692826 -0.025787957 -0.0554106422 -0.0718548149 -0.0832640827 0.0150315911 0.0615849271 0.0331237093 0.0328011587 -0.0289332718 -0.0722035542 0.000418484211 -0.0849380866 0.0429215953 -0.001491189 0.0918796137 0.0585684404 -0.0487118401 0.0116261989 -0.0854493454 0.0472867265 0.0173512995 -0.0805865526 -0.078576006 -0.00444620103 0.0120261684 -0.0845015943 0.0398427919 0.0445080325 -0.0496766716 -0.0876216441 -0.0232457891 0.0124989152 -0.0377845205 -0.0142501965 -0.0184289739 0.0633556023 0.0859406367 -0.0306219161 -0.0878139511 -0.00123663992 0.00850313157 -0.0152707323 -0.0291422829 -0.0663411915 -0.0304468013 -0.0917144045 -0.0278801844 -0.0239634439 -0.0175946429 0.015252687 -0.0299972147 -0.0523505472 0.0730753019 0.0223584846 -0.0352831855 -0.0184311271 0.0207748264 0.0720567182 -0.056055747 -0.0859253481 0.013351202 0.0471800491 0.0874020681 -0.0316879936 0.0180304721 -0.0373125933 -0.0221739262 -0.0311283544 0.0365275517 0.0385524705 0.0331998542 -0.0605286248 0.0221845731 -0.0676542968 0.0339323953 -0.052138146 0.0879117921 0.0581255481 -0.0585085265 -0.0469639003 -0.019982405 0.0455973223 0.0193594024 -0.0231750458 0.0910856351 0.0696979985 0.0530269518 0.0197241604 0.077828221 -0.00701092929 0.0562360361 -0.027629815 -0.0355206579 -0.0268762857 0.0658378378 0.0179915801 -0.0330831073 -0.0177737251 0.0516414419 0.0887002423 -0.0863722414 0.0871113613 0.0849567577 -0.0854865909 0.0873219594 -0.0660207868 -0.00216092169 0.0124363378 -0.0739550591 0.0178513974 -0.0255903229 -0.0630480349 0.0102249682 0.00356574357 0.0034693554 -0.0141233727 -0.0481405593 0.0183201507 0.0451358482 -0.0921950042 0.0182756931 0.0848456845 0.0201758593 0.0411233529 0.00607715547 0.00889207423 -0.0563979857 0.0284161568 0.0353830531 -0.0710251331 -0.064792715 -0.0797808766 0.0186923295 -0.015943177 0.0148926601 0.0445024297 0.0549565628 0.0855280384 -0.0535326861 -0.0883396715 -0.0513734147 0.0100760013 -0.0722551495 -0.0507542603 -0.0724100322 0.0286513194 0.00656893849 -0.0399154872 0.0918926224 0.0617897138 0.0517227426 0.0205093399 0.062061958 -0.0533168279 -0.00983954221 0.0302327499 0.0537188873 -0.0453040488 -0.0069436878 0.00710843503 -0.0564959124 -0.080442667 0.0738945082 -0.0758856237 -0.0904425308 0.0434419438 0.0121511221 -0.0264926851 -0.0528149679 0.0401001945 0.0260140672 0.0292926356 -0.0662544966 -0.057620734 0.0309008807 -0.012249954 -0.0172908083 -0.0565144643 0.0219703019 0.0303497985 0.0391404703 0.0357950404 -0.00736307353 0.0576044098 0.0664166883 -0.0363287032 -0.0113007054 0.0204058215 0.0532506183 0.0468774661 0.0734395906 0.0182244554 -0.0603832677 -0.057972353 -0.0728440806 -0.0355548821 -0.0461308286 -0.0603822134 -0.00500575453 -0.0550388172 0.0559311286 0.0711904094 0.0646916404 0.0115139186 0.0384732559 -0.0524659902 -0.0714048594 -0.0725827515 -0.0081043914 -0.0181266144 -0.00896733254 0.0798584595 0.00695312768 0.0301192626 -0.033837162 0.032791771 0.0336084589 -0.0503482744 0.0115045011 0.0882656947 0.0670948848 -0.0589677095 0.0547006652 0.0503018126 -0.0442377925 -0.020825386 0.0534777865 -0.0754410774 0.0270314813 0.0384279266 -0.000195719302 0.0229014382 0.0865626857 0.058134608 0.0667098984 -0.0844309181 0.0474161133 0.00928126276 -0.0173918605 -0.0399622582 0.0419971868 0.0498828366 -0.055995062 -0.0412712432 0.00557062775 -0.0626817346 0.0739171281 0.0699249431 0.0495678112 0.00779049844 -0.0594597086 -0.000283800066 0.062980853 0.0176457316 0.000938922167 -0.00832429528 -0.0489780121 0.0152432397 -0.0682780519 0.0159435496 -0.0416560322 -0.00155413896 0.0801245943 0.0758475885 0.0373580083 -0.0664698482 0.0821729973 -0.0126973391 -0.0249309987 0.0198592544 0.0137646869 0.089580752 -0.0759810358 -0.037952859 -0.0377409831 -0.0656235218 -0.0292938724 -0.036202848 0.0375448093 -0.089214392 -0.083544448 0.0237152502 0.046535857 -0.0385464132 0.0806710199 -0.0298789553 -0.0485912226 0.0124593601 -0.0685339421 -0.0553383343 0.0229339227 -0.0747786239 -0.0712116957 -0.0288916528 -0.0293079987 -0.0546982065 -0.072562784 -0.0204547942 -0.0196876004 0.0406216308 0.030009076 -0.0546808839 0.0106955022 -0.090170458 0.00889876485 -0.048148416 -0.0721998513 0.0293285623 -0.00763659924 -0.0115290657 0.0599411502 -0.0660547093 0.00879248232 -0.054652974 0.0482418016 -0.0265998989 0.0205132142 -0.0446569175 0.053419508 -0.0744383857 0.0575876907 0.00372892618 -0.0240225419 0.0865719691 -0.077081427 -0.00312517583 0.072802417 0.086582996 -0.0499136113 0.0250270292 0.0349403992 0.00474442542 -0.0815842003 0.0745616034 -0.0865884125 0.0206538364 0.0921445563 0.0503247008 -0.0530832298 -0.0728633851 0.0339036062 0.0437474921 0.0262225941 0.0408166125 0.0267455876 0.0693675056 -0.0837521628 0.0269634426 0.00192796439 0.0789682791 -0.0154832453 0.0126143098 -0.066583313 0.0654953942 0.0300526172 0.0122130364 0.0515497848 0.0134727657 0.0885623321 -0.022259675 0.0639801547 -0.0790523961 0.0795155689 0.00148718059 0.078918837 0.0230542123 -0.0607256852 -0.0403498188 0.0148762167 0.0619161054 0.0596086606 0.066404365 0.0317166299 -0.0723516792 0.0378316417 -0.0515495203 -0.0296975449 0.0147702172 -0.0295276642 -0.0616450384 -0.0782073736 0.0354897305 0.0386943892 0.0194335952 0.0664961115 -0.00438072532 -0.0412444584 -0.0194132403 -0.0253800973 0.00266522914 0.0580247864 -0.0154591873 0.0366762653 -0.0474918894 0.0478268191 -0.084141463 0.0377057269 -0.0763327852 -0.0608484372 0.0718041733 0.0722272769 -0.0649828613 0.0532534793 0.0832048878 0.0302345976 0.00929442793 -0.0685860664 -0.0094511658 0.0290222168 0.0220646635 0.0815973803 0.0422018692 0.0891525373 -0.0469712317 0.059526138 0.0845709071 -0.0533665717 -0.0711214989 -0.0765398368 -0.00106991082 0.0735431835 -0.0271233991 0.05760739 -0.0410201065 -0.0653479546 0.0621075407 -0.014245905 0.0678923801 -0.0908115581 0.0490855798 -0.00513283908 -0.00879494846 0.0392156467 0.0688013509 0.0859206095 -0.0286505744 -0.032194566 -0.0278946683 -0.0479934402 -0.0025331825 -0.0694503337 -0.0437942408 0.00708656013 -0.0342927352 -0.0192585289 0.0329098776 0.0140779242 0.0125409514 0.072908856 -0.0396750458 0.0313430652 0.0476079509 -0.0138551742 0.085885711 0.0248761028 0.000214777887 -0.0291998833 -0.0318474174 0.0321258232 0.0080967322 -0.0409637578 -0.0852587819 0.0353079066 0.0281701908 0.00932438672 0.049143903 -0.0390655324 -0.0656253025 -0.00565770268 0.000110469759 0.0189458653 -0.0430037566 -0.00959328562 0.0112652481 0.0820806697 0.0288472772 -0.0368076526 0.0866601244 -0.0782096162 0.068986766 -0.00482223183 0.019788824 -0.0697559267 0.0151977241 -0.0412691534 -0.0734593421 -0.075905472 -0.00959962606 0.0656726435 0.0730055496 -0.00874502212 -0.00351634622 0.0918392912 -0.0750799701 -0.0151055902 -0.00866077095 0.0575513765 -0.0437522866 -0.0694973618 -0.0535073057 -0.0761739314 0.0877302215 0.0633377358 0.0169584528 -0.0442009494 -0.0824440122 -0.0517803878 -0.00914055109 0.045201458 0.0901383981 0.0896230564 0.0132106841 -0.0418545455 0.0553403422 -0.0132085979 0.0432665423 -0.0379995853 0.0574503317 0.0894893631 0.0412682518 0.0469544157 -0.0297032446 -0.0483355075 0.0641203448 0.0606891885 -0.0114925727 0.0711063072 0.0241706669 0.0484330729 -0.0778112933 -0.0341243111 -0.00165113807 0.00997202098 0.044438161 0.0635651276 0.0816934779 0.0539447442 0.0844441131 0.070334442 0.00236293674 0.0259497315 -0.0405198075 0.0593233481 0.016005598 -0.0403791592 0.0563131794 0.0493408516 -0.0879277885 0.0260825679 0.0258710906 0.0120536834 -0.0783170313 -0.0284667388 -0.0249929577 0.0494756326 -0.0260869488 0.0337255076 -0.0481094792 0.0520837978 0.00995883346 -0.0253665 0.0366657302 0.0710260794 -0.028482765 0.0219628215 -0.0899259672 0.0508344844 0.028792806 -0.0278178677 0.0605131462 0.0236482918 0.0071862638 0.0823127851 -0.0126453713 0.0784605369 0.0314894393 -0.00108163804 -0.0485517159 -0.0631642267 -0.0511190146 0.0133671388 0.0679882988 -0.0264187306 -0.0128578991 0.0287143141 -0.0438446663 0.0411547646 0.013306655 0.0701803789 0.0351971909 0.0770941898 -0.0311166458 -0.026250042 0.034677811 0.00983872265 0.00351782143 0.075192295 0.0830255523 -0.0218125805 -0.05788761 0.0516575202 -0.0740786269 0.028207235 -0.0531749725 -0.0347493663 0.0147480071 0.0806007311 -0.0279248431 0.0212181658 0.0350219682 -0.0719687045 -0.0129544213 0.0667495951 0.0183851272 -0.0573216565 -0.0445237979 0.0140046701 0.0897764489 0.067539908 -0.0115869045 -0.0408023559 -0.076895684 -0.0297513157 0.00665394217 -0.0529737733 0.019930616 -0.0186437294 0.0526887551 0.021528095 -0.0877566412 0.0705302879 -0.0436728746 0.0858003423 -0.0298409648 0.0650280938 0.0368760899 0.0175387785 0.0347287133 0.0716133639 0.0222155899 -0.0716652423 -0.0297332406 0.0733985826 -0.0588938184 -0.00330084562 0.0886473134 -0.0687620863 -0.0284517929 0.0133329332 -0.0631907284 -0.0121470317 0.0407939032 0.00840639323 0.048431389 0.0912663415 -0.0391636528 -0.0128325447 0.0779116228 -0.0618028343 -0.0243676156 -0.0423676968 -0.0303290002 0.0753823444 -0.0727636963 -0.0287934616 -0.081882596 0.0237072632 -0.0384272486 -0.041686736 0.0194847509 0.0704022571 0.0278152749 -0.0532257482 -0.0695490018 -0.0171488002 -0.0251239613 0.0534472242 0.0333499983 -0.078422524 -0.0083662495 0.0406772867 0.0282543153 0.00974667817 -0.0343105644 0.0142871514 -0.0380203426 -0.0489637069 -0.0371734872 -0.0471665971 -0.0415267646 -0.0833370686 0.0490405485 -0.0339926668 -0.0840920061 -0.000107325613 0.0774224773 -0.0134915411 0.00527412444 0.0264440849 -0.00140860677 0.057685487 0.00570306927 0.0802406743 0.0576558635 -0.0332268551 0.049111791 0.03353291 -0.0186578184 -0.0402518287 -0.0078337267 -0.007486552 0.0352782533 -0.0348481685 0.0629934296 0.0612133965 -0.0669204667 0.00844013691 0.0522906706 0.0856700018 0.0180177316 0.018073678 -0.0286431983 -0.00741383433 -0.0490423068 -0.0657133013 -0.0277902707 -0.0355497114 -0.00883866102 -0.0480751209 -0.0907035097 -0.018930681 0.0613256916 0.0770115033 -0.0256040171 -0.0751702338 0.0586651787 -0.077477172 -0.0525298007 0.0867925808 0.0306080952 0.0101317316 0.0411278531 -0.078704834 0.0920405313 0.0140964761 0.00303605944 0.0852866694 -0.0921543762 0.0786573961 -0.0618122965 0.0547252074 0.064677991 0.00363448262 0.0908797309 0.00276513398 0.0581424013 -0.00808794796 0.042044647 0.0710026249 0.0826895908 -0.0621562116 0.0910396799 0.0641475841 0.0240900442 -0.00964091718 0.0673643276 0.0863109306 0.027068615 0.0473892167 0.0274281129 0.0344429538 0.0526168719 0.0133168399 0.021057792 0.000970907509 -0.0522544049 0.0600844398 -0.0647839308 -0.069199875 -0.0758317411 0.0197255686 0.0608306602 -0.0673459768 -0.0671916381 -0.0835065916 0.0842060223 -0.0494846515 -0.00703269988 0.00272989273 -0.0464466773 0.050176464 -0.00991347432 -0.0536141694 -0.075500235 -0.0721789449 0.0140191317 -0.0134377927 0.0771572515 0.055277504 0.088817589 -0.0537706167 0.00376751274 0.0878336802 -0.0578252561 -0.0390922725 -0.074743256 0.07736402 0.000150352716 -0.00262664258 -0.000460743904 0.0850049779 -0.0242810324 0.0918409601 0.0804518685 -0.0643125772 0.0336390957 0.068516098 -0.0442619622 -0.0772696584 -0.0346352831 0.0511175022 0.0835160986 -0.0424325168 0.00299698859 0.0257039815 0.00521811098 0.0469501689 0.039304547 0.0474711731 0.0507836416 0.0862121806 0.0639567748 0.0699069425 -0.0150348693 -0.0520720258 0.0639231727 0.0658184066 -0.0897100046 0.0348873511 0.0213059857 -0.0666229948 -0.0517138727 0.0208532065 -0.0305167958 0.0742190257 -0.0482553877 0.016017288 -0.0194569752 0.0448904112 0.0673258826 -0.0887508541 0.0716171935 0.0168478265 0.00818362832 0.0754740164 0.0142124742 -0.0836375356 -0.0143349841 0.0490011945 -4.39360738e-05 0.0381381139 -0.0792995542 0.00256928056 0.0559048876 0.0855266079 0.0759915784 -0.0391738005 -0.0824458003 0.0788450614 0.0713511035 0.0736158267 -0.0286614224 0.0885599926 -0.047259964 0.00117040426 0.0741791949 0.0501812771 0.0181882232 -0.0768910348 0.0523897186 -0.0914216489 -0.0646045506 -0.00575842708 0.0685299113 -0.0859939083 0.0839908943 -0.0433769189 -0.0311117806 0.0138808414 0.0656415001 0.0683579966 0.0488986596 -0.0823230445 -0.0633569062 0.000579029322 -0.0215727761 0.0721168146 0.0562568828 0.00694593042 -0.0681729317 -0.00424531102 0.0164272115 -0.0707851127 -0.0458472446 0.0828380212 -0.0505700298 0.0198934376 -0.043132361 -0.0210082009 0.0623432174 -0.0361690857 0.0256651565 -0.00778556615 0.0339466706 0.0340767428 -0.0557154194 -0.0706925094 0.00543658435 0.0134510398 0.0515681133 -0.0871264115 -0.0330276825 0.0742262229 0.077961497 0.0892423913 0.0804922506 -0.0562392473 0.0463692024 0.0442556217 -0.0907375589 -0.0896755308 -0.0197130665 0.016727455 0.0815297589 -0.0576012544 -0.0864775181 -0.0814478621 0.0177751109 0.0135531053 0.0309960768 -0.0195649788 -0.0625466108 -0.0662702993 0.00474396348 -0.0865589827 0.0903272703 -0.0443833061 -0.0701966584 -0.0658841506 -0.0412965119 -0.0108668581 0.0275480449 0.0140279159 -0.0123558193 0.0262806565 0.024706468 0.0614260212 0.0521088466 0.00876084715 -0.0860352218 0.0654876307 -0.0771234855 0.025544256 -0.0616766699 0.0525051877 0.0688552335 -0.0736840218 0.0583947822 -0.0220120549 0.0561042801 0.0769175217 -0.0911480561 0.0895585194 -0.00977813452 -0.00658617169 0.0649672374 0.0262589604 0.0494584516 0.0698124692 -0.0440721437 0.0729653612 0.0577460155 -0.0238578767 -0.0455069169 -0.0786139965 0.054263033 0.0720476583 0.0864805207 0.0536362454 -0.0457438156 -0.0706754327 -0.0139741227 0.0429763272 -0.0589248762 0.0404788181 -0.036904566 0.01460848 -0.0870532691 0.0283606052 -0.0419087335 -0.0060685277 -0.0703897178 -0.0400522836 -0.0403978676 -0.0864588991 0.0518835261 -0.0549356118 0.0911367014 -0.0355498642 -0.0430077836 0.0499194488 0.0876588002 -0.0208921656 -0.0534917675 0.0368357673 0.0605702922 -0.00692537427 -0.061834354 -0.0791480541 -0.0557646565 -0.0520226993 0.0625799522 -0.0176313147 -0.0539677441 0.0503596738 0.0786231533 0.0595329627 0.0375127867 -0.0405014493 0.0638822094 -0.065881528 -0.00393503159 0.0636441186 0.00577197969 -0.0745804608 0.068909429 0.0919104293 -0.0828996748 -0.0762736872 0.0716006383 -0.00258990377 0.0139726028 0.00978051126 -0.0590369329 0.0515658334 -0.0879423171 -0.0763865337 -0.0111783519 -0.00748299062 0.0133687183 0.0695777908 -0.071577929 -0.0513630696 -0.0819736049 0.0752441511 0.031062983 -0.0743913949 -0.0662433356 0.0453439578 -0.0920395479 0.00980986655 -0.0282390863 0.090288572 -0.092248559 -0.0514058359 -0.000499173999 0.0565912798 -0.00485106558 -0.0598707758 0.0512344167 -0.0579943173 0.0559275374 0.0753346905 -0.0817714632 0.0247282386 -0.0236920044 -0.0109084323 -0.0828931183 -0.00390271842 0.00360558182 -0.023765415 0.077447392 -0.0557959564 -0.0836086124 0.0295108259 -0.0660538971 0.0732200816 -0.0324898139 0.0508562401 0.0513535663 -0.0629450232 0.0183085725 0.06350521 0.0508202091 -0.0842845961 -0.0240605101 -0.02833087 0.0334622636 0.0333864614 0.0533891097 0.0857577845 -0.0379734375 -0.051731877 0.063406162 -0.00303484499 -0.0398320667 0.00612718612 -0.0173319504 -0.0493755676 -0.0185396001 -0.0823466182 0.0609701797 0.0526770279 -0.0223151445 0.0666988865 -0.0911465138 0.0233193487 0.0813488588 -0.0608695038 0.0658179149 -0.0188894123 -0.0257022455 -0.0531946048 0.0778542534 -0.0712035298 0.00430859625 0.0639440194 0.0230647326 -0.0876261815 -0.07486891 0.0631760433 0.0661244765 0.0578762963 0.00750286132 0.047628589 -0.0248989984 0.0575436577 0.0263418481 0.0709808692 0.0160640106 0.0644221529 -0.00890249014 -0.0754273385 -0.0684622377 -0.0302465707 0.0411398038 -0.0604544505 0.0914880261 -0.0641025752 -0.0609615073 0.0916782841 -0.0541592129 0.0114158392 0.0226929113 0.0350559428 0.00832812488 0.0321522579 -0.0409255698 -0.0116454363 -0.0762277097 -0.0211375132 0.0895220116 0.0227424949 0.0886267945 -0.0338275209 -0.0579962321 0.0344762877 -0.0754368231 0.0129271448 -0.0707571805 0.0640849844 -0.080115743 0.0365433022 0.0753454342 0.0549679175 -0.0304434784 0.0115817785 0.00629035383 0.0105714351 -0.011933066 0.0471855626 -0.0715946779 0.0878589675 -0.0738995671 0.0186656713 0.0868693069 -0.0870298967 0.0150662139 -0.00809457153 -0.0716126412 0.0592209026 -9.75057483e-05 -1.59367919e-05 0.00795412064 -0.0850397348 0.0227658078 -0.0532193892 -0.0866380632 -0.00489068031 -0.0794168264 0.042049177 -0.0322550721 0.0588361546 -0.0557000563 0.049740769 -0.0704597533 -0.0114815682 0.0097290948 -0.0331770256 0.0577548221 0.0436893627 0.052264832 0.0375224873 -0.0384980142 -0.0310602561 -0.00131105632 0.0183719471 -0.0898967385 0.0373054817 0.0896556601 -0.0204213411 -0.084486939 -0.0522020198 0.0334230736 0.0834807083 -0.0467404053 0.0781723782 -0.0046993494 0.0619518831 -0.0413030721 0.0214766338 0.060003452 0.030669108 0.016790688 0.0847290978 0.0619457737 -0.0709744021 0.0724139139 -0.0193207264 0.0795140937 0.00320731848 -0.0348742083 -0.0391704999 0.0583506897 -0.0773976296 -0.045953203 0.0583558902 0.0728835389 0.000235773623 0.0223124102 0.0729543343 -0.0885956585 0.0309735984 -0.00418480486 -0.0110831112 0.0340119228 0.0636216626 0.0565465763 0.0513865575 -0.0254576653 0.0286933184 -0.0464279018 0.0120865256 -0.0329510644 0.0701810345 0.044134669 -0.060531266 -0.00537452102 -0.0717123896 0.04573109 0.0546671674 0.0783432052 -0.0271761566 -0.0496962816 0.0180320144 0.0696547851 0.0177559555 0.0117078349 0.0542523637 -0.0631429404 -0.0146747753 -0.0225982442 0.0278538615 7.70390034e-05 -0.0633832067 0.070107393 -0.0428106561 -0.0394549184 -0.000660933554 -0.0352162085 -0.0145775154 -0.0104505494 0.0549647585 -0.0579165109 -0.0541106127 0.0242204815 -0.0237764195 0.0143149272 -0.0243068486 0.0690598264 0.0392641947 -0.0257340521 -0.00615412742 0.0395546928 0.046964027 0.0688124821 -0.00399784744 0.0305922031 -0.0866864696 0.0584374592 -0.0196361616 -0.0808509141 0.0379950032 -0.0343763083 0.0529337749 -0.000477075577 -0.0196859017 0.0723840222 0.0221683308 -0.0282363594 -0.039502129 -0.0462331548 0.0642137453 0.0377827808 -0.0780453309 0.0507531539 -0.0432668254 0.0653169379 -0.0204187185 0.00180675089 -0.013942115 -0.0436640047 0.0314904302 0.0119948462 0.0614197031 -0.0731280148 0.0475858226 -0.0838286504 0.0101350769 0.00532657653 -0.026951693 -0.0583901331 -0.0835101753 -0.0748364031 -0.0806444362 -0.00776023418 -0.0151162222 0.0382670835 0.0728635862 -0.0908715576 -0.0516004749 0.0188851655 -0.0477265418 0.0837387368 0.0466800556 -0.0393619686 -0.0522760637 0.0122229904 -0.0582753047 -0.059345562 -0.0567073002 -0.00765299797 0.0275505558 0.00870217383 0.0704057887 -0.0436795875 -0.0334888026 0.0594028309 -0.0295344666 0.0454286262 0.0907076523 -0.0745434463 0.087243028 -0.0478154197 -0.0784179717 0.0499257371 -0.0609858483 0.0090951249 -0.029472135 0.0853720233 0.0816548094 0.0884676799 0.0358306095 0.0463123843 -0.0207694769 0.00157716125 -0.0323986039 -0.0299006552 0.0689486042 0.0184212923 0.0261956081 -0.0800178424 0.00350847095 0.0611531958 0.0176204816 -0.0586653091 -0.0686133802 -0.0904271677 -0.00734606385 -0.0841507912 0.0428536609 0.00780005008 -0.0554482564 -0.0447725616 0.0366168246 0.0629726723 -0.0230526924 0.0898253545 -0.0667624101 -0.0474299714 -0.0291427672 0.0567307696 0.00845277309 0.0500204489 -0.0127279982 -0.0663049892 0.0331717655 -0.059825018 -0.0616458133 0.0840440914 0.0120994896 -0.00614001602 -0.0602654889 -0.00174058974 -0.0195140243 -0.0279170498 -0.0198160484 -0.0863818005 -0.0852535665 -0.00679711998 -0.091538012 0.0671168491 0.0579916313 -0.0117960945 -0.0648182258 -0.0647795051 0.0741540119 -0.0135068372 -0.085735105 -0.0717420131 -0.0716705918 0.029091768 0.0173906982 -0.0695108324 0.0572910979 -0.0500416681 0.0915516391 -0.0547453947 0.0788840577 -0.00733692944 0.000786326826 -0.0447484143 0.0501227751 0.0150541291 0.0559567437 0.0829794779 0.0560491607 0.0275783315 -0.0883375406 -0.00284208357 0.0301409885 0.0090162158 0.0187838078 0.087805979 0.00100310892 0.0875410214 -0.0598849952 0.0295909047 0.0178738683 0.0898310617 0.0381247178 0.0156113282 -0.0187146217 0.00277034938 -0.0109447539 -0.0297937542 0.0390831158 0.0795658603 0.0690116361 -0.0874675065 -0.0652379692 -0.0270983279 -0.0142530799 -0.00552757829 -0.0669069514 -0.00039292872 -0.0368433744 -0.04106877 -0.088840656 -0.0493729934 0.0359177664 0.0553616658 -0.0789834633 0.00708233565 -0.0449415147 -0.0717239231 0.0767902508 -0.0758991987 -0.0395535678 0.0734666064 0.00547268242 0.0194760337 -0.0072818324 0.0171608403 -0.0492624342 0.0688002035 -0.0845203474 -0.0456454754 0.0795967653 0.0177259371 0.0883027241 0.0252158567 -0.0730408132 -0.0509553254 -0.0131288096 0.0198925808 0.0823277608 -0.0383927599 0.0173786357 0.00273513049 0.0497832075 -0.0729028732 0.00163639337 -0.0353201181 -0.0751624405 0.00105879456 -0.0483258665 -0.00732883066 -0.0789759979 -0.0237353668 -0.0717834607 0.077510722 0.00554408878 0.0671149269 -0.0602392778 -0.0108725131 -0.00438426435 0.0765279904 0.0903780386 0.061613299 0.0455897823 -0.0322675519 -0.0391517244 -0.0685123056 0.00497249514 -0.0885172784 -0.0408885255 -0.0538973548 -0.0153485388 -0.00733393431 -0.0867710784 -0.0819279552 0.0902553722 -0.0257058963 -0.0706587285 0.0305854455 0.0303567797 -0.011262916 0.0169631392 -0.0762172937 0.0699660107 0.0379229262 -0.0266079977 0.051721178 -0.0626196414 0.0474923775 0.0531147793 -0.0316150971 0.0475847945 0.033567749 0.0546084717 -0.0674761459 0.0717066452 -0.0106151477 -0.0430701151 0.0582680181 0.0550129786 0.0582196638 -0.0355530977 -0.0796597525 0.0468702093 0.0253843069 0.0355949029 0.00373700261 -0.00653272867 -0.0646028742 0.0369265303 -0.076213114 0.0880100951 -0.0134952366 -0.0168885514 0.0765339807 0.0672441348 -0.0486466885 0.0213957429 0.0830073282 -0.0546036921 0.0886778161 -0.0540668778 -0.0524773933 0.050164856 -0.0242203921 -0.0168660954 0.0675913468 0.0122755021 -0.0224891827 -0.0366841741 0.0148667097 0.0517603382 0.0618583038 -0.0847542584 0.0902352408 -0.0716853589 0.0727312937 -0.0380381905 0.0793778822 -0.0165341794 0.0349201486 0.0374793634 -0.0180739909 -0.0708077401 -0.0503587537 0.0491215065 -0.0650797114 -0.0129986182 0.0520699397 0.0248610303 0.0290938392 -0.0870127082 -0.0522158854 0.0308370069 0.00885019451 0.0857523605 -0.0758752525 0.0898420885 -0.0356234685 0.0653939769 -0.0564617068 -0.0583280846 0.0233735591 0.0297747999 0.0385653451 0.0132612884 -0.0494847819 -0.0205415636 0.0707112476 -0.0259640366 0.0733908936 -0.0491285212 0.00428009033 0.00952938944 -0.0455856919 0.0812173113 -0.0829143375 -0.00656785816 0.0769989565 0.0138366669 -0.0374620035 -0.0765386224 -0.0919074193 -0.0585558936 -0.041231297 -0.0778140873 0.0767159685 0.0297812894 -0.0401162878 -0.0506678894 0.0108671859 -0.0817871317 -0.0561409704 0.0526634231 -0.0757992938 -0.00865378976 -0.0292719454 -0.0844057649 0.0298029706 0.0488818213 0.091031231 -0.0170952082 0.0365197137 -0.0672153383 -0.00178010017 -0.0602968112 0.0659618601 -0.00671693683 0.0624289289 -0.0767906681 -0.0910834298 -0.000230714679 -0.0709564835 -0.0842879191 -0.0535997525 -0.00806318223 0.0710240081 -0.078952603 0.0516699627 0.0589899793 -0.0325327106 -0.0669292063 0.00270581245 0.0431682989 0.0844649002 -0.00423756987 -0.0625620186 0.0541850552 0.0174581558 0.0862271711 0.0820155814 0.0470281467 -0.00831273943 -0.00849280506 0.0917005017 -0.0809653476 -0.0205180496 0.0586736277 0.0242540017 0.0546438769 -0.0730243251 -0.015765354 -0.0291768163 0.0407201424 0.00331711024 -0.0285110697 0.00683165342 0.063836433 0.0484953746 -0.0799870268 0.0491637215 -0.0197502375 -0.0817805082 0.0374198034 0.0648390278 -0.0106665418 -0.0787005126 0.0783378109 0.0147295445 0.0879815891 -0.0303593986 -0.0610003546 0.0235147551 -0.0175944045 0.058672525 0.0451927856 -0.0362010226 0.0764444694 -0.0355699584 -0.0298087597 0.0803202614 -0.0633238256 0.0475726947 -0.0899958089 -0.0471655615 -0.0902962983 -0.0765450075 0.0471978113 -0.0272853076 0.0664143786 -0.0643462092 0.0723962113 -0.0154187977 -0.038583789 0.0734480843 -0.0262938887 0.0265007615 0.0416621789 0.055660747 -0.0128807724 0.0776555017 0.089477174 -0.00466685742 -0.0281245634 -0.00980830938 -0.0584936924 -0.0895258188 0.0313974768 0.0787921473 -0.0716871172 0.0871601328 0.00926275551 -0.0885551572 -0.0346409194 -0.0893726274 -0.0500082597 -0.0641474575 0.0741827413 0.00398926437 -0.046567712 0.00575296581 0.0739069805 -0.0889349654 -0.0418225415 -0.0160969645 -0.0334749818 0.0806050375 -0.0106895417 0.028929837 0.0251068398 -0.0800838768 -0.0702735409 -0.0763699412 0.0201186985 -0.0303496681 -0.0212645382 -0.0440237634 -0.0838881657 0.0186479092 0.0842744932 0.0319444388 -0.0288591832 -0.0264566541 0.045920454 0.048480995 -0.0127535313 -0.0286963508 -0.00928302854 -0.0252555013 -0.06185247 0.040973492 0.063814126 -0.00761945546 0.00409319997 -0.0427598804 0.065642558 0.0628351197 0.0475096926 0.0331723616 0.0109053776 -0.0824449137 0.0151631907 -0.00112453848 -0.0519385748 -0.0358377174 0.0851802304 0.0843838677 0.0704613999 0.00840029866 -0.07669653 0.0178731903 0.011611715 0.0327009186 0.024348557 -0.0188183412 -0.0746629387 0.0899569765 0.0555793718 0.0184233636 0.0223882422 -0.015540272 0.0178698599 0.0452842638 0.00173055381 -0.0614908561 -0.0133343861 -0.091023542 0.00936466455 -0.00625900924 0.0376398638 0.0491970405 -0.0723719969 -0.0762301534 0.00442595035 0.0494741276 -0.0543290004 0.0830262527 -0.0412516333 0.0484113172 -0.0879001468 -0.0151966065 -0.0868049487 -0.0352629125 -0.0798840821 -0.0377278663 0.0152011141 0.011471048 -0.0631150305 0.0815143064 -0.0029361546 -0.0546111315 -0.0736889318 0.0285884812 0.068126224 -0.0664992929 0.0085804984 0.0893600807 0.00302958488 -0.0328569263 0.00924607366 0.0514322296 -0.00769730657 -0.0623418242 -0.0333047509 -0.0520423129 -0.0632719696 0.0529646352 -0.0269941315 -0.02150172 -0.0146565959 0.0779830143 0.019942835 0.0468662009 0.0297474191 0.0585647449 0.0531186685 0.050849326 0.004630059 -0.0696029514 0.0638797209 0.0519259796 0.0769200698 0.0772832558 0.0697558746 0.0373766646 -0.0137865692 -0.00867591053 -0.0911598057 -0.0691946596 -0.0593440868 -0.0675962567 0.0594755635 0.0618934557 0.0370005742 0.00797148794 -0.0107843801 -0.0613682158 0.00429215282 0.077177681 0.0348715857 -0.0239249915 0.0386810228 -0.0452019647 0.0171241239 -0.0178880692 -0.0353492834 -0.00458300114 0.0450716391 0.0466369763 -0.0865766108 -0.00603553653 -0.0178347155 0.0313704237 -0.0355658419 0.0534600243 -0.0252290443 0.0740664378 -0.00414622575 -0.0217979848 -0.0519243143 0.0396030471 -0.0515979417 0.0149419457 -0.0774765164 -0.0488252155 -0.0486789569 -0.0328505002 -0.066637896 0.0412667319 0.058828257 0.00174041092 -0.0135888904 0.0492317751 -0.043391712 -0.0320193842 0.00509487092 -0.0867514834 0.0878874287 -0.0317575261 0.0595713481 -0.023328945 -0.0704223812 0.0153744891 0.045772098 -0.0657549948 -0.030409053 -0.0556702539 -0.043526724 -0.068838194 -0.055085063 0.00861043483 -0.0388222262 0.0192437768 -0.0317486115 -0.0151251107 0.0482323244 -0.00347615778 -0.0174274743 -0.0194834918 -0.00135496259 -0.0121005252 0.0859925225 0.0497999564 0.0116744637 -0.0791933537 0.00508180261 0.0646073893 0.0116246343 -0.0783706903 -0.0841579884 -0.0220316052 0.00630749762 -0.0264314115 0.0112871453 -0.0214427337 0.0103280842 0.0330316648 -0.0755378306 -0.0272575915 -0.0693487972 0.00412192196 -0.0755597949 -0.0362803899 -0.0534031317 -0.0317510106 -0.078399919 0.0254075676 0.0818905458 -0.0401335657 0.078430213 -0.0819081664 0.0616118982 0.00736796111 0.052413322 0.0017285049 0.0564700738 0.0744343624 0.000188961625 0.0126734301 -0.081345275 0.0829594508 -0.0775555074 0.0674380884 -0.0603293888 -0.0109923854 0.0242629796 -0.0633419156 -0.0417553633 0.0296062231 -0.00762665272 0.077029638 -0.0538478754 0.0210355446 0.0552462861 -0.0687189251 0.0608266965 0.0690623745 -0.0559918918 -0.0717567801 -0.063221015 -0.0808193758 0.00834784657 -0.0220696628 -0.0743219256 -0.0619193353 0.0696439371 -0.0554870591 0.0365238562 -0.0350465961 -0.0856369659 -0.024358198 0.0663145259 -0.069086954 0.0901341364 -0.0622868463 0.030005604 0.0411101207 0.0327205732 -0.0566921122 0.0783898607 -0.0134409815 0.0653318688 0.0304163173 0.0912233517 -0.0219493061 -0.0258503109 -0.0140762478 0.0181557387 0.0787283853 0.0617701486 -0.0460386239 -0.0662659407 -0.065278247 0.0662429854 0.0222474635 -0.0454235859 -0.0749955177 0.0178521872 0.0615799055 0.0800965354 0.0487061813 0.0169202015 0.0463511571 0.0343225971 0.0698092952 -0.0620853379 -0.0213393494 -0.0129617006 0.0659030154 -0.0736010671 -0.00233770907 0.0205535591 -0.034680672 0.0491529033 0.0421643481 0.0797990188 -0.0765551999 -0.0431776829 0.00277607143 0.0144759342 -0.0855265558 0.00141441822 -0.0575118698 -0.0320699848 0.0388779566 -0.0485145375 -0.0143951997 -0.0527308881 -0.0180771351 0.0323862135 0.0206849575 -0.0632394999 0.0684716776 -0.0408788435 -0.0196063593 -0.0491661169 0.0497352108 -0.0365293734 -0.0352738537 -0.0609700233 -0.00734817237 0.0374893621 -0.0612231866 -0.0210343525 -0.0392211452 0.042842336 -0.0718605444 0.00217208266 -0.0707022175 -0.0136320964 -0.0526209213 -0.0360793695 0.0341352001 0.0882947519 -0.0107533038 0.0607889816 -0.0179901272 0.0138064623 0.0164391398 -0.0427691899 -0.0326543413 -0.0830347314 -0.070721522 -0.0298375972 0.0827168748 0.0612884536 -0.0522824228 -0.0761289224 0.0745198205 0.0225315243 0.0387443528 0.0793396756 -0.0712137222 -0.075913772 0.0296444744 -0.082422927 -0.0871510655 0.0677470341 0.0511708781 0.0553146526 -0.0281929523 -0.0643622577 -0.0530417636 -0.00909723341 0.0497494861 0.0698555186 -0.0164264366 -0.0159675404 -0.0879839808 -0.0382098965 0.0435534641 0.0185144618 -0.0236189142 -0.0404791757 0.0216492787 0.0631886944 -0.000253647566 0.0792766139 0.0884728804 -0.0198326707 -0.00780016184 -0.0808395818 0.0507366732 0.0300521553 -0.00589713454 -0.02229736 0.033494018 -0.0724163502 -0.026005201 -0.0468230546 0.0250265673 0.0568578467 0.0879220292 0.0615310743 -0.0449986309 0.0483125076 -0.0253500342 0.0399854556 -0.0592703745 -0.0477717072 -0.0147695765 -0.058369752 -0.0134448558 -0.0408062749 0.0013101548 -0.0142424703 -0.0272773355 -0.00284287333 0.0773303881 -0.0804127529 0.0773750916 -0.0526717678 0.0459474549 0.0495453402 0.0382786617 -0.0532668643 0.00683623552 -0.0173915997 -0.0161127001 -0.0157929957 0.0096539706 0.0635469928 -0.00472738594 -0.0383079536 0.0613140538 -0.0766389295 -0.0908783153 0.0356494561 -0.01077912 0.0539212301 0.0160309076 -0.0706041381 0.0267314315 0.0441632047 0.0753887519 0.0317870229 -0.0207980499 0.0273823515 -0.0228588656 0.0497742817 0.0821997896 0.0908324048 -0.0885706097 -0.0231484845 0.0287646726 -0.0620466247 0.00833792239 -0.0345929377 0.061525993 -0.00261481851 -0.0307136998 0.0707090273 -0.0517306887 -0.0595982447 0.0287263319 -0.0458654687 -0.0349414721 0.010474585 -0.0889659375 -0.0175238177 0.0202742219 -0.0691041276 0.0371046439 -0.080256328 0.0403467193 0.0782461539 -0.0909152105 -0.0844156668 0.044330962 -0.0749908239 0.0374719724 -0.0195643604 -0.0226685852 0.000414147973 -0.0524944961 -0.00599397719 -0.0479532927 0.0701892897 0.0535347983 0.0642777607 0.0574316904 -0.0476670042 -0.0269320384 -0.0671723336 0.00243618339 0.0650718585 -0.0253911689 -0.00775378197 0.0724219903 0.0413242206 -0.0392211005 0.0922214016 -0.0474969931 0.081703566 0.0283838287 0.0412609503 0.0711558536 -0.0798697099 -0.0274715796 0.0384096876 0.0908166841 0.0890090391 0.0656945929 0.00795806199 0.0620312169 -0.0917372555 0.0756976232 0.0436406955 0.069121398 -0.0618860349 0.00567954034 0.024929367 -0.0411775894 0.0780709311 0.0485865995 -0.0763841793 -0.0420603193 0.0624276474 -0.0894306451 0.0920807049 0.0457414612 -0.0762941986 -0.0837543458 -0.0502632931 -0.0132358447 0.00952604413 0.0336210206 0.021271579 0.0918440893 0.0855659172 0.0567905381 -0.0678224564 0.0682808235 -0.0312623568 -0.0674226806 -0.00560501218 0.0727012828 0.00308839977 0.0605925843 -0.0255988166 -0.0775613636 -0.0512308069 -0.0515724532 0.00407092273 -0.0840056762 -0.0846004039 -0.0580868274 -0.0326518118 -0.064367339 0.0562257096 -0.0738763511 0.0146218464 -0.0597933233 -0.0774565712 0.0915269479 -0.00601504743 0.0846658424 0.0105920359 0.0912524983 -0.0751193911 -0.0799526945 -0.0634066314 -0.0181879774 -0.0339021385 0.0333815739 0.0580304787 -0.0213868693 0.0735380873 -0.0703210384 -0.0528500527 0.0201932043 -0.0661955327 0.0316287652 -0.0461736806 0.00107188523 -0.013204284 0.0919539258 0.0271943361 -0.0564720519 0.0655912086 -0.0667872801 0.0228034258 0.017513141 0.0221675187 -0.0628479123 0.00668233633 -0.0184097365 0.0838804469 0.00292941928 0.0706054345 0.0597787574 0.0830911919 0.0328676626 -0.031232357 0.0293310285 0.0874413177 -0.073853679 0.00302146375 -0.047230538 0.0390943661 0.07850077 0.0316321552 -0.0544647202 0.0700904801 -0.0129991621 -0.00907978415 -0.0284967646 -0.0576382987 -0.00113235414 -0.0326075479 -0.0506556965 -0.011376597 0.040793024 0.0334532931 0.0865450278 0.00267033279 -0.0723152757 0.00758054107 -0.0798805431 -0.0411035009 -0.0776411518 0.0660624728 0.0592555031 -0.0538093336 -0.0747390538 0.00620475411 -0.0579114482 0.0838812068 -0.00865555555 0.0656507239 -0.0231326744 0.0396496728 0.0912274942 -0.0414865501 -0.0764364302 0.0782003328 0.0100099221 0.0320170298 -0.0709745139 -0.0173233896 -0.0775747225 -0.0559924655 0.0733253881 -0.033697594 0.0747591034 0.0606850311 -0.024596855 0.0567253307 0.0176684037 0.0131662041 0.0143076852 -0.0529120341 -0.0902338922 -0.0639291555 0.0902260318 -0.077383101 -0.0396204591 -0.073358953 -0.0385850631 -0.0807141438 -0.05645933 -0.0558234453 -0.0177194849 -0.069668889 -0.0234764367 0.0782970712 -0.0101032257 0.0737477168 0.069032751 0.0666653588 0.0583592728 0.0138097703 -0.0514904223 0.0413655117 -0.0919432715 0.0672928616 0.0758949891 -0.0193400308 0.062963821 -0.00249222666 -0.0568791367 -0.0571138337 -0.0918558016 -0.0389316417 0.0706189796 -0.0896641091 -0.0318730809 0.00914651901 -0.0497410297 0.0622165725 0.0112103298 0.0594758168 0.0100923553 -0.0573966466 0.0154752806 -0.0679151416 0.0409826413 0.0205368698 0.0771296248 -0.0131718814 0.0585901365 -0.044429373 0.0292551294 0.0473739579 0.0611791238 -0.0699031502 -0.0223656818 0.0277785808 0.0360511765 -0.0804043263 -0.079380244 0.0812743083 0.0185308158 0.03951139 0.0533514693 0.0874929354 0.0668412521 -0.0827559456 0.0366314873 -0.0466072001 -0.0876606703 0.015402399 -0.0401960313 0.0116110295 0.0125597715 0.0471437648 0.0402916446 0.0670300797 0.0699609742 -0.0596810468 0.0339206532 0.0759244934 -0.0909508169 0.00143666565 -0.0329905748 0.00477836281 -0.0320333615 0.0396276936 -0.0466912352 -0.0435146838 0.018037647 -0.0462089851 -0.0582037494 0.0496515408 0.060723044 -0.0791170672 0.0248909146 0.0415671542 -0.0809772611 0.0226561278 -0.0186521783 0.0651749298 0.0766113475 -0.0489477068 -0.0733744875 -0.0786874667 -0.0260430798 0.0484272167 0.0415378734 0.0451277718 0.0366097614 -0.0561448894 -0.053920202 0.0896727964 -0.012592569 -0.0444521084 0.0449307784 -0.0819390267 0.00618005544 0.0655212328 0.0620299652 0.0816388205 -0.0149351209 0.0618494079 0.0701557919 -0.00130733103 0.00586339086 0.0902230367 0.0508599356 -0.0320017524 0.0210224241 -0.0226687416 -0.00538554788 -0.0525105186 -0.0898874253 0.013868995 0.0907900408 0.0799830183 -0.0742946118 0.0811024532 0.0865439251 0.00621069223 0.0268367976 -0.00015629828 -0.000861801207 -0.0794731528 0.0747257099 -0.0618150495 -0.0887539312 -0.018521376 -0.00250424445 -0.0468241796 -0.0363322273 0.0502454266 -0.0756945238 -0.0253196359 0.00109370053 0.0385616049 0.00396230072 0.0461158529 -0.0309215672 0.0331379101 0.0652812794 -0.0289611593 0.0026832968 0.0875292942 0.0593345091 0.0287790447 -0.0553438626 0.0788250491 -0.0118606761 -0.0412371941 0.0170394108 0.03770376 0.010796465 -0.0920886546 0.00705713034 -0.00483077019 0.0414139405 -0.0708224177 -0.0105089247 0.0747322664 0.0710604861 0.090580605 0.0614669994 0.00589779764 -0.0533075631 -0.0168477595 0.0690278187 0.0791935101 0.041361548 -0.0377538837 0.0140111595 -0.0486463383 0.0416266099 0.00516735762 0.080000855 -0.0331346542 0.00884389877 0.0337735042 -0.068261832 -0.00598099083 0.00676482916 0.0284395143 -0.0294656828 0.00558803976 0.033590354 -0.0738420561 0.0747168437 0.0919699892 -0.0262390375 -0.0695637688 0.00994254649 0.0372076705 0.0517743155 -0.0101046562 0.01504042 0.0786866322 0.0255435258 0.0663793609 -0.0204673856 -0.0714498907 -0.020949766 0.00711996853 -0.0384304412 -0.0883246213 0.0302543417 -0.0390479006 -0.0783356279 0.0776735768 0.00113704056 0.00789993256 0.0807315782 0.0143620968 -0.00367059559 -0.012072809 -0.0765495002 -0.0782185793 -0.0302399471 0.0136175305 0.0718376264 -0.0428466424 0.0313428715 0.00775470585 0.000775560737 0.0352954045 0.0262215808 0.0568425134 0.0536644682 0.025744617 -0.0744447932 -0.0760502592 0.0203619748 0.090783976 -0.000874362886 0.0778857544 0.0324321911 0.0540930554 -0.0138995275 -0.0610222109 0.0379916355 -0.0818601847 -0.0032511428 -0.0407812484 0.0407151952 -0.0160045624 -0.0097873956 -0.0770705789 -0.0323304795 0.0114700124 0.032108441 -0.0312012322 0.0281126797 0.0082161352 0.0576077327 -0.0769938231 -0.0335359946 -0.0639706701 -0.0121282339 -0.00525294989 -0.0133031309 -0.00644818693 0.040474467 0.0867962316 0.0253010616 0.0128730014 -0.0329713598 0.0588698313 0.00488498062 0.0500140861 0.0195866376 -0.0080460608 -0.0478128232 0.0797773823 0.0755754188 0.0350691602 0.0704511181 0.0336118415 -0.0600025095 -0.0914019719 0.0615464523 0.0277385414 -0.0681877211 -0.0338808522 0.00207778811 -0.0284746662 -0.0448908024 0.0566118583 -0.0264534876 -0.0553316027 0.0383753702 -0.0535984077 0.0907224789 -0.0778251141 -0.067157194 -0.0572736748 0.0865152404 -0.0411974639 0.0309922621 -0.0652644411 -0.0882300809 -0.0640841126 -0.0720488429 0.00371534377 -0.0289376974 0.0470409319 -0.0207229033 -0.0660805702 0.000685669482 -0.0238704234 -0.0614213049 -0.0537874997 -0.0682740882 0.000618778169 0.0126994699 0.0816256031 0.0701114163 0.0361637548 0.0695471689 0.061612092 -0.0797365308 -0.0445876047 0.0658606812 0.0772726163 0.0838013366 -0.0587215014 -0.0735366642 0.0724025294 0.0508165285 0.0274787098 -0.077250272 0.0642824396 0.0641315207 -0.0689421073 0.038579233 -0.0395818539 -0.0337458402 -0.0160422474 -0.0754016787 -0.0593931489 0.0430907831 -0.0155148953 -0.0634033233 0.0145877302 0.034708716 -0.0038216114 -0.0185043588 -0.0704713464 -0.0450404286 0.0841897056 0.0202145725 -0.0134990662 0.0378114209 -0.0015322119 0.00429917127 0.0724068806 0.0159247294 0.00352270901 0.0564736351 -0.0309992433 0.0349940583 0.0363982394 -0.0325678848 0.0439829305 0.0891597345 -0.0131566077 0.0881513134 -0.046354454 -0.0109577179 0.0341868028 -0.0217675865 0.0841756836 -0.0412008986 -0.0899751186 -0.00429531932 0.0398356989 0.0423942879 0.0491085425 0.0393412337 0.0846080109 -0.0383827426 0.0713384524 0.0590135083 -0.0192748159 0.0830203369 0.033863686 0.048960112 0.00149070472 -0.0160713866 -0.0244850442 -0.0610412732 0.0653501227 -0.0238307863 -0.021157898 -0.00940621644 0.0198011696 0.0380216911 -0.0698839799 -0.0473346226 0.0338984653 0.0158845186 0.0871674791 0.0215991661 0.050961934 0.0891230926 0.0793534145 -0.033788342 0.0875309482 0.0371755138 -0.0362771787 -0.0354952775 0.0493332818 0.0234784856 0.0608609691 -0.0652719513 -0.0775778964 -0.0344112851 -0.00455322117 -0.0221399814 0.00385795534 0.0585169569 0.015482761 -0.00413171947 0.0431620255 0.0303522199 0.0287366137 -0.0425731428 0.0169304088 0.0692322031 -0.000792354345 0.00245773047 0.0313274637 -0.00816448033 -0.0659202486 -0.00203066319 -0.0510504544 -0.000630885363 0.0542250052 0.070869498 -0.0269202366 -0.0461445823 -0.0183938891 -0.0383072495 -0.0114082024 0.00461716205 -0.0426102504 -0.0117020458 0.0347647741 -0.0627371594 -0.015170522 0.00873395056 -0.0450408682 0.0625765249 0.0209722817 -0.0817231908 0.0727437809 -0.00687303394 -0.04453291 0.0527594313 -0.00510632247 0.0919432268 0.00759834796 0.0595619753 0.0032588467 -0.0552662089 -0.0306506865 -0.0731022432 0.00852740556 -0.0494698361 0.000399820507 -0.0161299556 -0.0672522336 -0.0499352701 0.0371122137 -0.0626193359 -0.0903683752 0.00968280435 -0.0456452742 0.0481831208 0.0444088802 -0.0619605407 -0.0580097921 0.089357309 -0.0718405098 0.091165714 0.03185644 -0.089120999 0.00995639712 0.0195867047 -0.0398578197 -0.0615046136 -0.0888985172 -0.000507935882 0.0495407954 -0.0055770576 0.0406313613 -0.0864669383 -0.0899492577 0.0693345591 0.0362620577 -0.0579751022 -0.0658074394 -0.0241579935 0.0536259487 -0.0628433824 0.0505853072 -0.0622332692 0.0558530465 -0.0150271431 7.3581934e-05 0.0511544123 0.0392286703 0.0898850039 0.0780504569 -0.0549649708 0.0609598532 0.0752184168 0.085518904 -0.0920512527 -0.0922082141 0.0724257454 0.00702587515 0.0885866806 -0.0491136424 -0.0105416998 0.0232098028 0.037821807 -0.0528924875 -0.0667466298 -0.0529908985 0.0577174649 -0.0699434504 -0.0756029189 -0.0217508376 0.0494857803 0.00801086426 0.0879297331 -0.0107988417 0.0861271843 0.0240415335 0.00612135231 -0.0374385826 0.0153053999 0.0148151144 -0.0294248089 0.0415388718 -0.0221661329 -0.0175376385 0.0856635794 -0.0462221466 -0.067476213 -0.0880131945 0.0237104297 0.0147095099 0.0323143229 0.0701547489 0.06554728 -0.0750613958 0.0451955423 0.0646649823 -0.0495271757 -0.0686127841 0.0673638061 0.0845750198 0.0279150233 -0.033627823 0.0284543484 -0.030541908 -0.00249449164 -0.0134521425 -0.0303217806 0.0750126466 -0.0852262899 -0.0173003227 -0.0664622113 0.0369038209 0.0708618388 -0.0428314358 -0.0387768187 0.0744078383 0.0774444267 -0.0129284263 -0.0311553627 0.0167353079 0.00640276074 0.0757765397 -0.0484232605 -0.0215328038 0.0298368707 0.0709711686 -8.61734152e-05 0.0532262102 -0.0191795304 0.0699337646 -0.0848027691 -0.0752935559 -0.0722887516 -0.0187488049 -0.0111174211 -0.0798625797 -0.0679637641 0.0146953613 -0.0604079217 -0.0465494432 0.0568632856 0.0319758505 0.0490871891 -0.0118479729 -0.0859325454 0.0587279871 -0.0843452364 -0.0712211579 -0.0698520616 -0.0654656217 0.0888364539 -0.00617605448 -0.0757409036 -0.0314242654 0.0628632978 -0.0363345593 0.0497154817 -0.0145960003 0.0900997147 0.0177109465 -0.0161690712 -0.0893338397 0.0420328453 -0.0636510327 0.0136055127 -0.0683165044 -0.0440410636 -0.0834038034 -0.0805873647 0.0650100037 -0.0209222063 -0.0109902918 -0.0912799612 0.0122903436 0.0102273226 0.0747434571 0.0578837171 -0.0564621016 0.0819162503 0.0120290965 -0.0770684406 0.08549238 -0.0201650262 0.0906933919 0.0331313238 -0.0587111339 0.00673694164 0.0583438203 -0.059074901 -0.0491931215 -0.0798171312 -0.0893154219 -0.0236887261 0.08067628 0.0406810716 -0.0689713806 0.0352672264 0.0199196562 0.034717299 -0.0805114061 0.0827194378 0.0158720836 0.00892911851 0.0516992286 -0.0575662144 0.0130930394 -0.0422726758 0.0290709287 0.0918963924 0.0179750547 0.0918446258 -0.00474880636 -0.0517123975 0.00265835971 0.067753382 -0.0516750887 -0.0273725316 0.060094364 0.0141377226 0.0107873306 0.0524168387 0.0217647478 0.0469781831 0.00218797475 -0.0258807763 -0.0874060094 0.0570704713 -0.00754802674 -0.0356448628 -0.00731357187 -0.0384178273 0.0203822479 -0.0651059672 -0.0042129159 0.059926264 0.00824125111 -0.00331286341 0.0133652017 0.0106163099 0.0257675275 0.00829880685 0.0405837223 -0.072407499 0.0343730226 0.0580873117 -0.07629475 -0.0145609602 0.0452943668 0.0684118494 0.0750654861 -0.0349108577 -0.0330606997 0.0168361887 -0.0431139171 -0.00820662826 0.0684932098 -0.0563533492 0.0223992914 0.0543429777 -0.0160476789 0.0379219577 0.0200100094 0.0902453884 -0.0922101513 -0.0847451836 0.049649559 0.00502485782 -0.0140551403 -0.0276946574 0.0660248175 -0.0909826681 0.045224838 0.0690926984 0.0913356766 0.0133515969 -0.0486807637 -0.0459605083 0.0504596904 0.00650037825 -0.0367039181 0.027196072 -0.0253908411 0.0260760039 0.00637724996 -0.040868476 -0.00153278559 0.025334537 0.0896915123 -0.0722456574 -0.039772287 -0.00816729665 -0.0671379566 0.0300496221 0.0825720653 -0.00347928703 -0.0313623287 -0.0833303779 -0.0443475805 0.0375874862 0.0765166357 0.0583840981 0.0857641175 -0.0855836123 0.0347457156 -0.0807638466 0.0803674832 -0.00159732252 0.0654936805 0.0337176248 0.0913986638 0.0467193499 -0.0882269368 -0.0655278638 -0.0789189264 -0.0215114281 0.0727491304 0.0569752827 0.0274467543 0.0414830521 -0.0123670474 0.0597521141 0.042536281 -0.04244579 -0.0618454441 0.0718119219 0.00863979012 -0.00077342242 0.0463696346 0.0714040026 -0.0550837405 -0.0705486313 -0.0521071777 -0.0639320612 0.0740412548 0.0569898263 -0.0274567455 0.0807038024 -0.0727830678 0.00659772754 0.0801530257 0.0189862326 -0.0090854615 0.0182917565 -0.0221064612 0.00799695402 0.000584512949 -0.0453608111 0.0327286497 0.0128144547 -0.064574942 -0.0412445441 0.0853994414 0.0374772772 0.0641237721 -0.046646487 -0.0566026606 -0.0239548534 -0.0186271146 0.03967271 0.0603329912 -0.0433265157 -0.0825779065 0.0802390203 -0.0438443348 -0.0263480321 -0.0856769979 0.0646989271 -0.0653946996 -0.0492651612 -0.0532694384 0.0805870965 -0.0913751572 0.00411384553 0.0192110464 -0.00184967369 0.0587558821 0.0163325891 -0.0917567313 -0.0458195321 -0.0408850275 -0.0230234191 0.0787843391 -0.0130615234 -0.0918414071 0.0896001086 -0.00408948213 0.0570663139 0.00069271028 0.0655471012 -0.0365516469 0.0247062296 -0.0501665808 -0.0315360352 -0.0702765808 -0.0920875743 -0.0100001097 -0.0370781384 -0.0364486612 -0.0157725066 -0.0821813196 0.0888980553 0.0783256069 0.0649821535 0.0158364028 0.0745798722 -0.0689949766 -0.0113835558 -0.0248555914 -0.0827718154 -0.0456595607 -0.0580531284 -0.025582552 -0.084199369 0.0112575665 0.00169300288 0.0665367171 -0.0309156477 0.00459180027 0.0659291372 -0.00469861925 -0.0265778899 -0.00608906895 -0.0815652683 0.0207354724 -0.0100816339 -0.0727983192 -0.085777238 0.0420723185 0.0637030825 -0.028045699 0.0658193752 -0.0886269137 0.0194555894 0.0383406207 0.0215039924 -0.0177658871 -0.0127937868 -0.0365486778 0.0129917264 0.0581549034 0.0418149754 0.0171187967 -0.0518774092 -0.00694500655 0.0281762704 -0.0521351956 -0.071589157 0.0310242921 0.0567521974 0.00198538601 -0.0773784593 0.0587447807 -0.00292012841 0.0514750853 -0.00047916919 -0.0810914263 0.088036783 -0.0686622858 -0.0788583755 -0.0654890165 0.0209387615 0.0190552846 -0.0897311792 -0.0769743249 0.0135029852 -0.00362840295 0.0194966123 -0.0701970607 0.0921684578 0.0151353255 -0.065061219 0.0488951877 -0.0459734946 -0.00541448593 -0.0125713721 -0.0117149875 -0.0585416742 0.0478409454 0.0578212067 0.0805973187 -0.0359990746 -0.0556343347 -0.0853526965 0.0246266797 0.0216322243 0.0137271434 -0.0715631172 -0.0345596783 0.0699372962 0.00116382539 -0.0512110405 0.0109993815 0.0159315988 0.0236452818 0.0636809841 -0.0375886932 0.0815448388 0.0768303052 -0.040960744 -0.0463777632 -0.0266910195 -0.0387720205 -0.0373310633 0.0218136534 0.0715470091 0.0409048423 -0.0852556303 -0.0153849944 -0.021504432 -0.0830088034 -0.0405951031 -0.00738248974 0.0589783564 -0.0143230259 0.0402266905 0.00258887559 -0.00973545015 0.0772209987 0.0345118716 -0.0794034004 -0.0638181344 0.0378914103 0.0584510192 0.0539044663 -0.0614437982 0.013449721 0.0718537644 0.0472726151 -0.0353604853 0.0476721749 -0.012260519 -0.0427079797 0.0317183062 -0.0217504427 0.0756012425 0.0671339408 -0.0679815933 0.0259313285 -0.0413237624 0.0637382194 0.0663479343 0.0825214311 0.00198625028 -0.00348355621 -0.0301661678 -0.00554884225 0.00469271839 -0.0401057899 -0.0555913039 0.0548447147 -0.0528139099 0.0162709132 0.0860987827 0.087837927 0.0889496282 -0.0352770016 0.041129075 -0.04979489 -0.0473720841 0.0904230997 -0.02775307 0.0860385224 -0.0193406045 0.0300618187 -0.00456620753 -0.0162048116 -0.0884627774 -0.0780387521 0.0425275639 -0.0179971084 -0.078134343 -0.0613509379 -0.0912472978 0.0109749287 0.0708220825 0.0345522836 0.0414450243 0.0451342538 0.0575993136 0.0793144777 -0.0591162145 0.0769810304 -0.0910118744 0.0135821104 0.0524357036 0.0552584603 0.0306233242 0.0300469175 0.0914983526 -0.0595871732 -0.0809446126 0.048883833 -0.0822129026 -0.0734205991 0.040950574 0.0581794903 0.0522053912 -0.0320093036 0.0244223997 -0.0244586542 -0.0397075117 -0.043616306 0.0431978181 -0.0678439587 0.00453977287 -0.0410583802 0.0355405137 0.0636870638 0.0547183678 -0.0594861656 -0.0195759386 0.0656415001 0.0563973263 -0.0891602933 0.0176925659 -0.0195781216 -0.0784910619 0.0112235174 0.0337069109 -0.0143546611 0.0200885162 -0.0767236203 -0.0525738411 0.0643116906 0.0755489841 0.0466400757 -0.0646077171 -0.0579822548 -0.0333150961 0.0821647421 0.0818711743 0.0440705642 -0.0508072376 -0.0345484093 0.00904830545 -0.0674741641 0.0800832137 -0.0916664004 -0.0829082355 -0.0106911659 -0.0143052414 -0.0316576213 -0.0216345564 -0.0552776307 -0.00361037999 -0.0863128155 -0.0152024999 0.0692024902 -0.0427021235 -0.0677644387 0.0161129683 -0.00618366897 -0.0150167122 0.063215591 -0.0241552368 -0.0164365396 -0.00126958638 -0.0229703039 0.0132813379 -0.0705509409 0.0541451052 0.0269805044 -0.0338132381 0.0536059961 0.0427234694 0.0571324751 -0.0686142594 -0.0420609377 -0.0822079331 -0.0556377023 0.0360719338 0.0145369247 -0.0164249614 -0.0196158439 0.0659256354 0.052214615 -0.0315170623 0.0552740023 0.0302479118 0.0524821952 -0.08135923 -0.0351348333 -0.0115354061 0.0784327164 0.0297433883 -0.0309469253 0.00335122645 -0.0361034498 -0.0705984384 0.0698496476 0.0621447638 0.00439731777 0.0312550068 -0.0837214813 0.0451344773 -0.0100331232 0.00565946847 -0.0228804126 -0.0328137428 -0.0403717421 0.0480005518 -0.0798222795 -0.0665200949 0.0546031818 0.0529021546 -0.021349743 0.0596893653 0.00690864772 -0.086120002 -0.0649437532 0.0196149647 0.0898338482 -0.00222303718 0.0625437126 0.0315729007 0.0690525845 0.0668752119 0.0383026227 -0.0676926821 0.0854570046 0.0739225969 -0.0124899969 -0.0308007076 -0.0750385895 0.0480286404 0.0300357118 -0.0133231804 -0.0608477555 0.0346620753 -0.0719421133 -0.086665377 0.0733959451 0.0279245302 -0.0860768184 -0.0222764462 -0.00493195653 0.00499532372 -0.0811819583 0.015757978 0.0308115557 -0.0368441679 -0.0134642944 0.0355914906 -0.0378212146 0.0403164104 0.0252981782 -0.0336287022 -0.0855638683 0.0516579673 0.0239099115 -0.0200794935 -0.0617301315 0.0617897585 0.0636909977 -0.0322709419 0.0473261699 -0.0623635948 -0.0036052689 -0.064940691 0.0134104788 0.0416563824 -0.0247443318 0.0495261177 -0.00400603563 0.0744796768 -0.0673799589 0.0435434356 0.0689373091 -0.0751954764 0.0863077566 -0.0777355134 -0.0306430236 0.0584312901 -0.00938918442 -0.0895719528 0.0656863227 -0.0836909488 -0.0640930235 -0.0180170909 0.0675104335 -0.07745184 -0.0152931437 -0.0777085945 -0.0483657941 0.0859044716 -0.062083602 0.045541577 0.0288163126 0.0614301339 0.0140797272 -0.041204948 0.0759603903 -0.0640799031 -0.0133943409 -0.0749022812 0.0181206539 -0.0109582022 0.0893644765 0.00897178054 -0.0653237849 0.0556353256 -0.0721520931 0.0534900948 -0.00594011694 0.0329475626 -0.0338149108 -0.0201166943 0.0653718784 -0.0441872142 0.0313994363 0.0156883821 0.055646874 0.000245220959 -0.051070109 -0.037937209 -0.0870199725 -0.0484371297 -0.0476447716 0.0274092257 0.0681435242 0.0845095888 0.0525427237 0.0821369663 0.0173946321 0.0515881851 0.00582498312 -0.0222720653 -0.0402925275 0.0851336941 0.00365917385 -0.0673612058 -0.0195658132 -0.0857138932 -0.0463241674 0.0829660073 0.00445562601 -0.0198575631 0.0583160296 -0.0858159512 -0.0892632529 0.0340884998 0.01948715 -0.000795170665 0.043280758 -0.0134620443 -0.0599189587 -0.0477769896 0.0591648594 -0.0600886382 -0.0473245196 -0.0711749643 -0.046346046 0.0347092226 -0.0135078505 0.0422208235 0.0743773952 -0.00238025934 -0.0600780509 -0.00788659602 -0.0588186756 0.0328719839 0.0394356772 0.0522455499 -0.0636098981 0.0605779067 0.0179070383 -0.0637142062 -0.0337153114 0.0661057308 -0.0831372738 -0.0209623128 -0.0789544955 -0.0707931221 -0.00464561582 0.0149824843 0.00842741132 -0.0691846833 0.0838736221 0.0655385777 -0.0525406934 0.0592907742 0.0893354341 0.0103375018 0.014592506 0.0110105649 0.0895377025 -0.0705873892 -0.00596094131 0.0583445951 0.0014679879 0.0256111026 -0.0447423831 -0.0552925095 0.0891875848 0.0116637275 0.0122029781 -0.0744799674 -0.0402436852 0.0272429362 0.0228470489 -0.0682267696 0.0159644186 0.0299887434 -0.0573156029 0.0611694828 0.0194715858 0.0390334204 0.0125939995 -0.0329388715 0.0564761683 -0.0797993913 -0.0526411943 0.0656381324 0.0368189886 0.0285923108 -0.0154995322 0.0306588486 -0.0794028044 0.00555084646 -0.0669488162 0.0190209672 -0.0755784214 0.0743547007 0.0624970272 -0.0345264412 -0.0529846884 -0.0714224651 0.0406727865 0.0850711688 0.0738488808 0.0554413423 0.0609938577 0.0256575868 -0.0720803142 -0.0828639269 0.0358729735 0.0334308669 0.0723458305 0.0660909787 0.0809717998 -0.0691018552 0.0777791366 -0.0179305226 -0.0177612007 -0.0346497223 0.0504238084 -0.0742495358 -0.0479413196 -0.0729396045 -0.0561677366 -0.0684195608 -0.0164223909 0.050756596 -0.0164898708 -0.0732842684 -0.000412739813 -0.0129656643 -0.00759913772 0.0733857974 -0.0262053162 0.0090399012 0.000655911863 0.0794281438 0.00603996217 0.0483048186 0.0857859924 0.062891759 -0.0442265905 -0.0413056463 0.034439303 0.0347556397 0.0489273891 0.0799975023 -0.0184042752 -0.0642166585 -0.0714505315 -0.00307845324 0.0201135874 -0.0920392573 0.00667181611 -0.048725158 -0.027172856 -0.0286060423 0.0309078544 0.0239485428 0.0110642463 -0.077793397 -0.0217821151 0.0323003456 0.00547928363 0.0623023584 0.0878835693 -0.0549642891 -0.0725407749 0.0110884607 0.0735044405 -0.031642586 -0.0629341081 0.0290643871 -0.0168577135 0.053511925 0.00720711052 0.0880406126 0.00901084393 0.0895244256 0.045250304 0.0919021741 -0.0557472035 -0.0092286393 -0.0761847422 -0.0892241672 0.0865688249 -0.0804615319 -0.0842487663 0.0749598518 0.0437605456 0.0435756817 0.0834665373 0.0398744419 -0.0900311545 0.05309432 0.0239269063 0.0697352365 -0.000344835222 -0.0373767763 -0.0767444 0.0730076805 -0.0587632991 -0.00458286703 -0.0351018198 0.0411468819 0.064464055 -0.059929125 0.0917705074 -0.0775471702 0.0788488463 -0.0325156748 0.00572729856 -0.0748086721 0.0383830741 -0.0157865062 -0.0296244472 -0.0504553579 -0.0443380959 0.0450485572 0.0544718429 0.030385308 0.0922672823 0.00345232338 -0.0860591233 -0.0703290328 0.0460421965 -0.0730616972 0.0718899444 -0.0879248679 0.0607232377 0.0535019413 0.0628729835 0.0486944541 0.0781451538 -0.0706882849 0.0746317431 0.0545298085 -0.0633367226 -0.0427022763 -0.0140104815 -0.0184171721 0.0154558867 -0.051944565 0.041670464 -0.0569929965 0.0922941193 -0.0795116723 -0.0320791416 0.0464757755 -0.0308631286 -0.00763116032 0.00525337458 0.0420396551 -0.0420327857 0.0494643375 -0.0217940211 -0.0905713812 -0.00841995329 0.0221265778 -0.0917355567 0.0912439153 -0.0787876546 -0.0123521462 0.0661517754 0.0352553353 0.0450046137 -0.0227830186 -0.0577461943 0.0316631421 -0.0605927408 0.0207628757 0.0528733358 0.0292010978 -0.0199023783 0.0859219506 0.0570827797 0.00511195511 0.0809639022 0.0362555906 -0.0733092502 0.0700843856 -0.0445232466 0.0581063554 -0.0527905561 0.0108275488 0.0612783208 0.0867583677 0.0757050887 0.0451537147 0.065940313 0.0179703608 0.00831183791 -0.0286263376 -0.0299833491 -0.0152553469 -0.0228258744 0.0528220758 -0.0708312467 -0.0205639228 -0.0725053176 0.0640405342 0.01013349 0.0871123895 0.00170660764 -0.0753047168 -0.0372156613 0.0660376921 0.0255356058 0.07263612 0.00917812437 0.0531220064 -0.0406939089 0.0176166743 -0.00376319885 0.0683472231 -0.0368779115 0.0751674846 0.0742843822 0.0679408982 -0.00144787133 0.0396751985 0.0732236281 -0.0844759792 0.0835710987 -0.0623589084 0.0241356269 0.0889815167 -0.000214226544 -0.0675807819 0.0877006277 0.017076537 0.0490015224 -0.0852562264 0.00493074208 0.0498910472 0.0346769318 -0.0099119097 0.0645234361 0.081479542 -0.0860876739 0.0516410097 -0.00917605311 0.0430356488 0.0497107431 -0.0372635759 0.0611612573 0.0919329301 0.0308376849 -0.0709088072 0.0662487969 -0.0407729261 0.0621898398 -0.0210235864 0.0344091728 -0.0795660987 -0.0589198805 -0.0149924979 0.0151511058 0.043737717 0.0127532631 -0.0303842053 0.0447126105 0.000460699201 -0.084737815 -0.00363839418 0.0863890126 -0.0536613576 0.042328544 0.0184533373 -0.0513256937 0.0656898245 -0.0314070955 -0.0247751176 0.0662221834 -0.0041892305 -0.000381350517 0.000819474459 -0.0433702059 0.0575583056 0.0170672759 -0.0497013442 -0.082080029 -0.0614589453 0.0429803208 -0.0660542473 0.0209373981 -0.0761546493 0.0139492005 0.0418287888 0.0612276569 0.0128879249 -0.00172126293 0.0115183443 -0.0654914826 0.0114735737 0.00221436471 0.00852161646 0.0822970793 -0.0403703116 0.0621810332 -0.0377742872 -0.0166187435 -0.056534607 -0.0514796786 0.0267841294 0.00920464844 0.0290600285 0.0537319854 -0.0614105612 0.0781927779 0.00354058295 0.0860962495 0.0687846914 -0.00610598922 -0.0836254731 -0.045563329 0.00547572225 -0.0737196133 0.0119606256 -0.051143799 0.0826912299 0.04463429 -0.059046153 0.0247764662 -0.0133147538 0.0625235513 -0.0719970912 0.00172617286 -0.0552271605 0.0451803878 0.047082074 -0.00193641335 0.0530917123 0.0765444413 -0.0563395284 0.0873581842 -0.0139050037 0.0394252464 -0.0399062634 -0.0712122023 0.0259179249 -0.0161817893 0.0485819355 0.0754998699 -0.0507578924 0.00815644115 -0.0364788175 0.0175825357 -0.0359000303 0.0214041919 -0.047093302 0.0642564669 0.0725940689 0.061928384 0.0293697193 0.0665084049 0.0828310922 0.0111405775 -0.042528417 -0.0742625669 -0.0591026992 -0.0579725057 0.0387938395 -0.0762693509 -0.0084477067 -0.0128419474 0.0116508007 -0.0202584416 -0.0475943014 -0.00492411852 -0.0427138768 0.0347846672 -0.064673923 0.0339399353 -0.0726499259 -0.0469569005 0.0366543308 -0.018743217 0.0906487331 0.0686621293 0.0158983842 0.0843209997 0.0440488532 0.0813565925 -0.0138326362 -0.0713774562 -0.00201800466 -0.0461129993 0.0330899283 0.0603471473 0.0617514029 -0.0074339509 0.0349661931 0.0176686198 0.00693787634 -0.0752564296 0.0278574228 0.0680670813 0.0545960739 -0.0515330769 0.0556391552 -0.0553198457 -0.033026319 0.0569137111 -0.0717039406 -0.0786489248 0.0522400066 -0.0568851456 0.0379760936 -0.00542853028 -0.0145188347 -0.0182812139 0.0614007637 -0.0612881631 0.000743076205 -0.0307939276 0.0113780051 -0.0577241406 -0.0512971021 0.0316920877 -0.0382359549 -0.0606313497 0.0327055231 -0.0161809549 0.0252863169 0.0661638156 -0.0225852132 0.0530148819 0.0796278194 -0.0849279612 -0.0693630353 0.067414023 -0.00723645091 -0.0660853013 -0.0066568926 0.052904062 0.0679332837 -0.062156938 0.0687763467 0.0235138535 0.0543457791 0.0467237011 0.0533457771 0.00347970426 0.00629803538 -0.0486236885 -0.0275750086 0.0623643175 -0.0348222852 0.0095513761 0.0251187235 0.0133192614 -0.0860538855 0.0508010164 0.0389676467 0.0222098902 0.073742412 0.0801225081 0.0369840637 0.0577851012 -0.0866725743 0.0823222771 -0.043075487 0.0695475116 -0.0469883531 0.0921966061 0.0482124165 -0.021962069 -0.0508747883 -0.000223226845 -0.0776746273 0.0475248322 -0.0371278599 0.0426975861 0.0779239163 0.0694568828 0.0517954901 0.0893844441 -0.0702648684 -0.0161991119 0.0532668158 -0.0790087059 0.0711434409 0.0824636444 0.0367165729 0.0779679194 -0.0144946426 -0.0617675707 0.0711447671 0.0158213675 -0.0368566029 -0.0458306484 0.0238787681 -0.0777869299 0.0217517614 0.00554058701 0.0241538286 -0.0297453701 0.00973358005 0.0417287573 -0.0402220935 -0.0800959393 0.0744007751 0.0417077616 0.00546064228 0.0543797389 0.0426089093 -0.043453034 0.0256649405 0.052099295 -0.032568302 0.0652814284 -0.00554263592 0.0728689954 -0.043134585 0.0137995332 0.0362494066 -0.0254804939 -0.0530218221 0.0462084636 -0.024233751 -0.0343809314 -0.0543352105 0.0220500231 0.0321954489 -0.00481254607 -0.0189176053 0.0263132602 0.0530781969 0.011488013 0.0898376629 -0.0592376031 0.0326934382 -0.0740261301 0.0437526181 -0.0666519627 0.0430754498 0.0176111311 -0.0180558935 0.0732014254 0.0371066257 0.0867392197 -0.0557866693 -0.00177884102 0.0216501653 0.0504053012 0.0337866023 0.043543689 0.0345572606 0.020374015 0.0454392806 0.0632391497 0.037192665 0.0352251455 -0.0560183488 0.0181209147 0.066103898 0.0716795102 0.0262440965 -0.0499834977 -0.0721517429 -0.00518408418 0.0361528173 0.00719638914 -0.0466456972 0.0555943176 -0.0657842234 0.0299886987 0.0830104128 -0.0394873172 -0.00368763506 -0.0136809424 0.038605772 -0.0649061799 0.0280567706 0.0494508818 0.0262199119 -0.0891167745 0.0506562516 0.00670617074 0.0580392256 -0.0552635677 -0.068996869 -0.0177739412 -0.0416582115 0.0364427194 0.0567128733 -0.0556792989 -0.0169291571 0.0484595075 -0.0591019727 -0.0150677115 -0.0270492435 -0.0487139113 0.0747838691 0.0182984322 -0.0888137817 -0.0830726102 0.0693180487 0.0116614103 0.023255609 -0.0260183141 0.0071914196 0.046721749 -0.0887168422 -0.0114217177 -0.0750630647 0.00650750846 0.0488515571 -0.0646647438 0.00486706942 -0.0533076935 0.0916336551 0.0804411247 -0.0353837498 0.0226094872 0.0227089301 -0.0400849469 0.0426454172 0.0534260198 0.064315863 -0.00618221611 -0.013749741 -0.00321317464 0.0835469738 -0.0816455185 -0.0448959731 0.035557352 -0.0843669176 -0.0359492004 0.0782356933 0.0625660196 -0.0686850473 0.0550585464 -0.0628384277 -0.00153758377 -0.054659687 0.0835347399 0.0819474831 -0.0719078183 -0.028231293 0.0454430506 0.0148805082 0.0445867702 0.0663269982 -0.0267784446 0.00617264211 -0.0783927888 0.0166585594 0.0224195793 -0.0503086559 -0.0106914788 -0.018178232 -0.0705854073 -0.0729964823 -0.0726612806 -0.0521430112 0.0443407223 -0.00211714208 -0.0311924517 0.00208791345 0.0740351602 -0.0732116774 0.0424769595 -0.0177707747 0.0708184764 -0.0213783756 -0.0532034747 0.0321928039 0.0621176288 -0.0758204907 0.0482497737 -0.0321640149 0.0407354161 0.0671738461 -0.0825784802 0.0228473991 -0.0680698529 -0.0895465538 0.0842682049 0.0782425478 -0.0482763425 -0.0896408856 -0.0303609818 0.0826590136 -0.0512654074 0.0512638167 0.0215587765 0.0752064809 0.0912074372 -0.0239873677 -0.0828619301 0.0702582076 -0.0301108137 0.0222500786 -0.0598851927 -0.0859737918 -0.0413132831 0.0319982991 0.0313097909 0.0743458048 -0.0858219862 -0.0699172392 -0.0774751753 0.00166650116 0.0232871026 0.00929440558 0.0865933374 0.00733292103 -0.019092828 -0.00831887871 -0.0262745619 0.0416251346 -0.00833591819 -0.0549866073 0.00632655621 0.0393073335 -0.0152514279 0.0520626679 -0.00384989381 0.0263016149 0.0746137276 -0.0438450389 0.0822145566 0.0840319321 -0.0862531215 -0.0194030702 0.0508038774 -0.0127068907 -0.0589344949 -0.0501131602 -0.0299458653 0.0678254738 0.0507777706 0.0712483898 0.0241455957 0.0564015731 -0.0353363417 0.0317809209 -0.0140985027 0.0849281326 0.0788886026 0.0785115138 0.0807121173 0.0358081087 0.040900521 -0.0809574947 -0.00208733976 -0.0764350221 0.0570895746 -0.00511825085 -0.00386776775 0.0787755027 0.0467508808 0.0839909539 0.0652477369 0.0859996453 -0.0634330362 -0.052008085 0.0262955576 0.0248850882 0.0921694264 0.0753008947 0.0913945064 0.0347711071 -0.0750989616 -0.0179013833 0.0495556071 -0.055798091 0.0914352313 -0.0916491449 -0.000396363437 -0.0259857401 -0.0439809747 -0.0334296189 -0.00191755593 -0.0157399327 0.0902659371 0.000630050898 -0.0253270119 0.0248648822 0.0602990165 -0.056000784 0.0605277047 0.0185987204 0.000394232571 -0.056343358 -0.0221531913 -0.018954806 -0.00242256373 -0.00627049804 -0.0220453814 -0.0109627098 -0.068544507 0.0344119444 -0.0842195302 0.078588523 -0.0592997819 -0.0814024359 0.06524802 0.0815854743 0.0895484611 0.0292728916 -0.0242273659 -0.0742547289 -0.00674893707 -0.067897357 0.0227687806 0.0553141013 -0.0863000751 0.0395066366 0.061862357 0.0191718042 -0.0654630661 0.0283941925 0.0700934604 0.0233250484 0.0194070712 0.0641009733 0.044405289 -0.00946067274 -0.0836389437 -0.0201259553 -0.0738312081 0.0120055005 -0.0254012942 -0.0287161395 0.0463774726 -0.0142017752 -0.00549740344 0.0452274308 -0.0348312892 0.0134748369 0.0819787756 -0.0767208934 -0.000888213515 0.0318325385 0.0367950425 -0.0738957822 -0.00163238496 -0.0146428198 0.070773907 0.00132848322 -0.0919338316 0.0103592947 0.0916411951 -0.0430507474 0.055614166 0.0533276126 -0.0578921251 0.00974852592 0.0581451729 -0.0610396229 -0.015184693 -0.0885760635 -0.0811538249 0.0831912234 -0.0431143567 0.0212315917 -0.0282540545 -0.0655788854 -0.0534623601 0.087621741 -0.00606969744 0.0376703367 -0.0862749368 -0.0663350523 0.0583216771 -0.0138553753 0.0221435726 0.0455906615 0.0735955909 -0.0671019852 -0.00591240823 0.0269162357 0.0420045927 -0.0841932073 0.0193585604 0.00480306149 -0.089960061 0.0150241256 0.0169625282 -0.0649873763 -5.66318631e-05 0.0470475629 -0.0816364512 0.089422904 0.0887283757 0.023884356 0.0685135648 -0.0688751712 -0.0594005249 -0.0180407315 0.0674069896 -0.0302506238 0.0544177219 -0.00889720768 0.0281967819 -0.0311573893 -0.0106258392 0.00159111619 0.0577052608 0.0632737353 0.0221605599 0.04536625 0.0695531145 0.0143685713 0.0448852703 0.0327844247 -0.0365012884 -0.0546568483 -0.0568301603 0.0273088366 -0.0548189767 -0.0197048783 0.0709154531 0.0706972256 -0.0423610508 -0.00624890625 -0.0775870979 0.074498035 -0.0421693176 -0.0581239834 -0.0242428631 0.0517900512 -0.0433283001 -0.0635723472 -0.0815870762 -0.0208056644 0.0304783657 -0.0736502334 0.0329000875 -0.024395965 -0.088241443 0.0013134554 0.0622273013 0.0349055752 0.024766162 -0.00277305394 -0.0490894541 0.0184332207 -0.0238686204 -0.0140232891 -0.0423449166 0.0728683099 -0.0425292738 0.0896772966 -0.0541148856 -0.0391894504 -0.0517931767 0.0170249715 0.0739515349 0.0301214457 0.0565304831 0.0083848685 0.0519909337 -0.0853833109 0.0804361925 0.079058744 0.0235936865 0.0621697083 0.036027737 0.00820233673 -0.0542130955 0.0467704013 0.0074178353 -0.0572862178 -0.0705185831 -0.0162458643 -0.0276758373 0.0681554899 -0.0535451435 -0.039498169 -0.0511441305 -0.0475436784 -0.0149588212 -0.0528845191 0.0652624145 -0.0629556552 0.0910649672 0.0916902199 0.0470918044 -0.076763086 0.0699955896 0.0152755529 -0.0206154063 0.0768507197 0.0782711878 0.0636078492 -0.0729750618 0.0788835958 -0.0513215773 -0.0696335882 0.058517836 0.0164361224 -0.00269593298 0.043010585 -0.0320968628 -0.0751471221 0.0165381879 0.0304067209 0.00493985415 -0.0298577361 -0.0183797777 -0.0807550624 -0.0439068228 0.0540881827 -0.0801859573 0.0427137688 0.00986844301 0.0574321225 0.0541212484 0.0557309613 -0.0784312859 0.088846229 0.0695350692 -0.00366382301 -0.0903094336 0.0834478065 -0.00281406194 -0.0151314288 0.0446975455 -0.0211757496 -0.0619271696 -0.0329487994 0.0591521785 0.0859783068 0.07173457 -0.0592530295 0.0413209274 -0.0593019165 0.0106899589 -0.0603887476 -0.0246336609 0.00963002443 -0.0608438812 -0.0794902965 0.0134819224 -0.0678098425 -0.0721146315 0.0438321158 0.0444141403 -0.0357450545 0.0570052788 0.00832999498 -0.0764611512 -0.0603386536 0.0432773605 -0.0655859038 0.00276444852 -0.00239348412 -0.0256646276 0.0666740313 -0.0370686986 -0.0279173106 0.0894849226 0.00752390921 -0.0538126789 -0.0421065427 -0.0286300108 0.0136174858 -0.0125280544 -0.0265019983 0.0819792673 -0.000503823161 0.079633899 -0.0812413171 0.00344446301 0.0314304903 -0.0653407127 0.00104325265 -0.0571312197 0.0897308215 0.0626333281 -0.0738925487 0.0607710257 -0.0358166322 -0.0352676474 -0.0745837837 0.0239081755 -0.0208226368 -0.0116295889 -0.00244903564 -0.025475122 0.0252918601 0.0916844234 -0.0851535276 0.0655880645 -0.00486913323 -0.00177884102 0.0756926909 -0.0251461938 -0.069830209 -0.0396377146 0.0543546006 -0.0834417492 -0.00235131383 0.00727912784 0.090438135 0.081372045 0.0539760366 -0.00500619411 -0.0370895863 -0.044307854 -0.00408872962 0.0708989426 0.0481195375 -0.0699041858 -0.0276186317 -0.0184794664 -0.0819768831 0.0555003062 -0.0091079995 0.0384634361 0.0679634735 0.0735928789 -0.0137397274 0.0871086344 -0.0769815892 0.0357144549 -0.0420547947 0.0678080842 0.0735555664 0.0268489271 -0.0306215212 0.0848305151 0.0083162412 0.0471388176 0.00944601744 0.0712455437 -0.0761891231 0.0834791735 0.0294523239 -0.060502544 0.0517351702 -0.0259077325 0.0365990177 0.084363021 -0.000629588962 0.00959037989 -0.0371706262 0.0707708076 0.0340088829 0.0483588353 -0.00162177533 -0.0829838663 -0.0484017804 -0.00227434188 0.0489599034 0.0381788239 -0.0321583152 -0.082490541 -0.0226082355 0.0574091002 -0.016091615 0.0682865307 0.034570612 0.085422866 0.0239823461 0.0886928365 0.0373940989 0.0242316127 0.0705653802 0.00297896564 0.0304358825 0.0831515417 -0.0871821195 0.0593059286 -0.0510814227 -0.0217443481 -0.0688488483 -0.0321564637 -0.0655129626 -0.0219434053 0.0595638677 -0.0550824851 -0.01929079 0.00194904953 0.0215948522 0.0301946923 0.021046415 0.069041796 0.0601365939 -0.0574770048 -0.000601306558 0.0740387216 -0.0795679241 -0.063914828 -0.0742641315 -0.0556106046 0.0106154531 0.029979825 0.0850688145 0.0584718361 0.0824901238 0.00268018991 -0.0670104697 0.00869435817 0.0359696969 0.0131908581 0.0806320831 -0.00119342655 -0.0322241262 0.0884519443 0.0754769966 0.089794524 0.00151970983 0.0407876149 -0.0476795062 -0.0875296667 0.00699798763 0.00379385799 0.000366717577 -0.0768043399 0.0832199976 0.0283915773 0.0495509729 0.0384777412 -0.0741205364 -0.0664737672 -0.0220446587 -0.03082316 0.0759788528 0.0776827112 -0.0547486991 -0.0516373403 0.0239322707 0.0768261775 -0.0660066381 -0.0599664114 0.0321998671 0.0285405815 0.0863817707 -0.00370449573 0.00360269845 0.014388375 -0.0579971336 0.0211254954 0.0602098629 0.00211285055 0.05469767 0.0333959386 -0.0229893699 -0.0518604815 -0.00223432481 0.0181371346 -0.0531677082 0.088908188 -0.0354686454 0.0580413267 -0.0344696566 0.0813004449 0.0141096786 -0.0252422243 -0.0531702377 0.0295623541 0.0670228228 0.0278743058 0.00398794562 -0.0513398908 -0.0443459973 -0.00400835276 0.075694792 -0.0600130521 0.00791661441 -0.0476448387 0.0214870647 -0.024003014 0.0808537379 0.0678657666 0.0704369918 -0.0861101896 -0.0920731351 0.0362774804 0.0484193936 0.00359840691 -0.0708697885 0.00710354745 -0.0284828097 0.0497359857 -0.00396787375 -0.0142371878 -0.0917453542 -0.0241503119 0.0348180607 0.0608538017 -0.0638577789 -0.0295081884 0.0816225335 -0.00957706571 -0.00459253043 0.0848542973 -0.0138140172 -0.0595838912 0.0850074366 0.0626477525 -0.014114812 0.0154067352 0.0712559596 0.021492742 -0.0259673372 -0.00431969017 -0.000471644104 -0.0650199279 0.0809321329 0.0898133442 0.0712473318 0.089682661 -0.0215362385 0.0921127722 -0.00677682459 0.0833938792 0.0617382154 -0.0156473145 -0.0319893174 -0.0569149666 0.0470520779 0.0887398049 -0.0725378469 0.0335650221 0.0300831199 -0.0876171589 -0.0146002322 0.019806236 0.0174642727 0.0295199603 -0.039001327 0.0630554929 -0.0654312819 0.0292294696 0.0461722687 -0.0387157388 -0.0808906257 0.0521566346 0.033333756 0.0657127127 0.0396713689 0.04186555 0.0775351748 -0.0701821148 0.0840286538 0.0796264336 -0.0510389209 -0.0868516341 0.0349844173 0.0721170679 -0.00465609878 0.0306870937 -0.0867702141 0.0018138364 -0.0822191089 0.0884359255 -0.052510187 0.0858424082 0.0291570798 -0.0190977603 0.0158089772 0.0699069574 0.0860065594 -0.0104045048 0.0482921824 0.00193998218 0.025610283 0.0723456815 -0.084439151 -0.0430566035 0.0105698705 0.0690990463 -0.0282208845 0.0686471835 -0.0915853381 -0.0128706023 0.0401722416 0.0686194077 -0.0167153701 0.0729011968 0.0608512089 0.076847516 0.00575155765 0.0703141317 0.0629126653 0.0523045883 -0.00348023325 0.0325153023 0.0325881317 -0.0582115166 -0.0701222196 -0.0181731209 0.00461670011 -0.0576674826 0.0395126268 0.0923110917 -0.0241822004 -0.0378846042 0.00948955119 -0.01929079 -0.0342862867 -0.0147695318 -0.0517356619 0.0696789548 0.0533060208 0.0427755788 0.0817134902 0.0604406968 0.0525580868 -0.0689273402 -0.0520924963 -0.00461823493 -0.0457164571 0.0692168698 0.0608216301 -0.0613353103 -0.0523809195 -0.0726882443 0.0588567778 -0.0491739735 0.0409746245 -0.0378421657 0.0622535273 0.0548309311 -0.0832752436 0.030558832 0.0524621829 0.0205700621 -0.0726654455 -0.0445174575 0.0702902898 -0.0778944716 0.00482865423 0.0163699612 0.0202068463 0.066018261 -0.0329627767 0.000155061483 -0.0460205115 0.0476468131 -0.0383275189 0.0166040882 0.00483521819 -0.038995713 0.0178370476 0.0656780228 0.0392557308 -0.0412699915 -0.0893023014 -0.0899566486 -0.00567483157 -0.0915651992 0.0313504413 0.0131015331 -0.079299137 -0.0206903741 0.00996618718 -0.0844406486 -0.0269834101 -0.0680814534 0.0462903604 0.0898811147 0.029064104 0.0172896236 -0.0672764853 0.0165316686 -0.0363221467 -0.070282653 0.0682533309 -0.00372837484 -0.0456830449 0.0856265351 0.0466945991 0.0235998258 0.0523179993 -0.0681757256 0.0323716402 0.0410515293 -0.0516543984 0.00491478294 0.0600870475 0.0209504068 0.0236261934 -0.0242184997 -0.0219716281 -0.0229686126 0.0253019631 0.063020058 -0.00534506887 0.0889083073 -0.0865772292 -0.0364945754 0.0264164209 0.0196210593 0.048175849 -0.00905898213 0.0383747593 0.072512053 -0.0158295333 -0.0395233035 0.0682902411 0.0225650072 -0.0374160223 0.084289588 0.0762885138 -0.00792955607 -0.0345528349 0.0405696854 -0.0101710409 0.00834150612 0.0586125925 -0.037691284 -0.0559125021 -0.06394016 0.030322969 0.0508167967 0.0910628363 0.00337226689 -0.00299976021 -0.0469719358 0.0755946413 0.0703011379 0.0119114518 -0.0634378642 0.0301487595 -0.0241550654 0.0848883912 0.0818008408 -0.0548392944 0.0465462282 0.0262290016 -0.00827129185 0.0537405536 0.0541596487 -0.0788356811 -0.0379610658 0.0659595355 0.0613849387 -0.0715332478 -0.0723502487 0.0582743809 0.0230820775 -0.0180856287 0.078535594 -0.040848732 -0.0332165547 0.0814848021 -0.0492121838 -0.021278359 -0.0833112076 -0.000568091869 -0.0120070428 0.0493350849 -0.0147919878 -0.0721471831 -0.0505982935 0.0461765006 -0.0716476366 -0.00604867935 0.0472910479 -0.0671598315 0.0291689634 0.0641882792 0.0636722222 0.0157427713 -0.0493955091 0.0105536953 0.0383596495 -0.0384696871 -0.0161705688 0.0675432757 0.0361306146 -0.0464440361 -0.00985754281 0.0668271258 -0.0742088184 -0.0113739595 0.0680837855 0.0440129414 -0.0635116398 0.0133948252 -0.0578053147 0.0433504805 0.0195830911 0.0775539055 0.029074803 -0.0187416524 -0.0858367085 0.0168820769 -0.00839552283 0.0848694369 -0.00458933413 -0.0708577484 -0.00553888828 0.0430054292 -0.0603890345 0.0116711184 -0.002512604 -0.0168862343 0.000758104026 0.0312476754 -0.0401825607 0.0199837461 0.0504134074 -0.0256751329 -0.0625350326 0.0145900175 -0.0814693719 -0.0813994184 -0.0267282873 -0.0745760426 0.00993838906 0.0174856707 0.00163698196 0.0915814713 -0.0474229939 -0.0504003763 -0.0231885612 0.00186796486 0.0783331022 -0.0917756408 0.0554563329 -0.0118979141 -0.0486718267 -0.0645402744 0.0893914625 -0.00781717151 0.0698221549 0.0302494094 -0.0867945626 0.0666404888 -0.0859182328 -0.0529247783 -0.0282280147 0.0239134133 0.0500154719 -0.0139923468 0.0360782668 -0.0693178922 0.072679989 -0.0114185959 -0.040408235 0.0338785425 -0.0456548519 0.000184029341 0.0499741659 -0.0756306499 0.0660615787 0.0163284019 0.0488577113 0.0799466148 -0.00603043288 0.0585278049 0.0612785891 -0.0675155446 0.0142027438 0.0398366526 0.0501494333 0.0249641687 -0.0825498626 0.0332809612 0.0326611623 0.0142437294 0.0434469506 -0.0551053993 0.0502585396 0.0505828187 0.0645027086 0.0170197561 -0.0204932466 0.08722464 0.0459366217 0.0329777822 -0.0360009037 0.00639430434 0.0706681684 0.0116403699 0.0114700794 0.000436358154 0.0282407776 -0.0330789238 -0.0622528382 0.0604360029 -0.0857215747 -0.00723537058 -0.0330263861 0.0375778601 -0.0815970749 -0.012207754 -0.0166223943 -0.0674670339 0.0332285687 -0.0421899632 -0.0873764306 -0.0182610527 -0.051285591 0.0180274174 -0.000973805785 0.0894358829 -0.0407361053 0.0852509812 0.00965175033 0.00995407999 -0.0148496106 0.0154846311 0.00282151997 0.0366101936 -0.0346661881 0.0893750712 0.0851546451 0.0762289241 -0.0491809957 0.0371867791 -0.019403331 -0.00429140031 -0.0717814341 0.0292361826 0.0340712294 -0.0637622029 -0.0585206971 -0.0794775486 -0.0406552367 0.0102802143 0.041575782 0.0893774256 0.0127302855 -0.0897599012 0.00155345351 -0.0608684011 0.0275861472 -0.00865438581 -0.0454588048 0.0453315154 -0.00472450256 -0.0649413913 -0.074109219 0.0273332223 0.0237717927 -0.0164316967 -6.74650073e-05 0.0371741876 -0.0772804692 -0.00274576247 0.0447384641 0.0909534767 0.00169863552 0.0916088447 0.00906322896 0.076710023 -0.0111790299 -0.0114888102 -0.0358459055 -0.0435736068 0.00373381376 -0.0815490484 -0.0634283274 0.0698645934 -0.00290381908 -0.0506407954 -0.00216290355 0.03518603 0.0410273746 0.0381504223 0.014468208 0.00905971229 0.0852562413 -0.0922952667 -0.0656120554 -0.079237923 -0.00145661086 -0.0797716156 0.0388541594 -0.00223791599 -0.00516103953 0.0811859891 -0.00381201506 -0.0027718693 0.0287594348 -0.0839200616 -0.0878174528 -0.042041216 0.0684739277 0.0167828724 -0.0660922155 0.0176755115 0.052602075 0.0714536533 -0.00401175767 -0.0526563823 0.0811148509 -0.0702387244 0.0828053877 -0.0762993917 -0.0725715011 0.040971227 -0.0158739761 -0.0187012404 0.0882268921 0.0665059015 0.0336634591 0.0225040838 0.0268175825 0.036762841 0.0369914547 -0.0247578397 -0.0672668889 -0.0900741667 0.0420917049 0.0325803012 0.0227265432 0.0827259496 -0.0768017173 -0.0756823719 0.0401845202 -0.0390010178 0.0692814663 0.0651286021 -0.043893639 -0.0679270327 -0.0813344419 -0.0339485146 0.0825845972 0.0528852418 -0.0736136958 0.0304630473 -0.00772937387 0.0569983497 0.0815778598 0.0276720971 -0.0301994719 0.0474566743 -0.0618180856 0.0391171202 -0.0438286625 0.0677166954 0.0175368413 0.0836938098 -0.0386658646 -0.001577802 -0.0520136319 -0.0841246024 0.0308299363 -0.0725680888 0.0739229247 -0.0626060665 -0.075140655 0.00107144564 0.0014391765 -0.0346541926 0.00146063417 -0.0784852952 -0.00912012905 0.0462146625 -0.0194892213 -0.0129728615 0.0358223543 0.0176273733 -0.0608728901 -0.0396356694 -0.0284198374 0.0153324753 -0.0194507241 -0.0337309167 0.0456175879 -0.0669719055 0.0835676119 -0.0284167975 -0.0385309197 0.0794895664 -0.0308834687 -0.0506344102 0.056517832 -0.082998015 0.0103999674 0.0527872816 0.00181150436 -0.0227303505 0.0587820485 0.0065241009 -0.0550116785 0.0434457883 -0.0907616839 0.0212024227 -0.0487467498 0.0748254582 -0.0340590961 0.000765323639 -0.0635814592 -0.0175613835 -0.0706387833 -0.0360556878 -0.0849826112 0.0382424518 -0.0453949943 0.0436504856 -0.0128502399 -0.0167613924 0.0216966271 -0.0408872068 -0.0700710043 -0.019940719 -0.0655896217 -0.0201015249 -0.0208073556 0.0663607642 -0.0453689359 0.0454903468 0.0523292348 0.0776665136 0.0324187651 0.00265963376 -0.0417563096 0.00260058045 0.0165294707 -0.0914904699 -0.0408200957 -0.0275005251 -0.0818000734 0.0773613974 -0.0695101321 -0.0776412636 0.0332834646 0.0268454701 -0.0383154564 0.0337944999 0.00390700996 0.0496209189 -0.0366953984 -0.0904584005 -0.0265978947 0.0804955587 -0.0405872241 0.0261496305 -0.0532859899 0.0239016339 -0.0144598037 -0.0831319317 0.0540182814 0.0265612453 -0.0255355611 -0.0416291356 0.0189434439 -0.0129600093 -0.0234777331 0.0781051144 -0.0643839538 0.00946353376 0.0578144863 -0.023833096 -0.0452084988 -0.0540022552 -0.0642029643 -0.0138787478 -0.0344608948 -0.00728388131 -0.0406427346 0.0489037558 0.00671649724 -0.0833178312 0.0394981727 -0.0183755755 0.0402503386 -0.0790747404 -0.0115262046 0.00981066376 -0.0181137845 0.0813708678 -0.0752125159 -0.0636741221 0.0746737942 0.0691049024 -0.076628536 0.0705557987 0.0417067632 0.00394517928 -0.0138205066 0.0319599807 0.0883672908 -0.0308336802 0.0125522465 -0.0836161152 0.0332616046 -0.0201420039 0.00468534976 -0.0677249953 0.000845640898 0.0672109798 0.00671860576 0.0323189497 0.0618739054 -0.085716486 0.0147730559 0.0634988472 -0.0373239294 -0.0294467807 -0.00637216121 -0.0104684457 0.0833071992 -0.0439190157 -0.0135643259 -0.0734093115 -0.0820917338 -0.0286500007 -0.0278097689 0.0575539544 -0.0455713198 0.0277215317 0.031602174 -0.00299432874 -0.00575829297 -0.0800607651 0.0822419301 0.0222200379 0.00870516151 0.0724235252 0.0279348791 -0.00879549235 -0.006593436 0.0278941616 0.0638731197 -0.01995489 0.0094614625 0.00866015255 0.0572197214 -0.0496815778 -0.0331284925 -0.0828992128 0.0196657628 -0.0191153735 0.0458110794 -0.0652529299 -0.0177835152 -0.0376109891 -0.0466310605 0.0644324645 0.0881694928 -0.0501896478 0.0502785966 -0.0345899425 -0.0198018104 0.0702211186 0.00234919786 0.04001192 0.0771212056 0.0494358316 -0.0319020897 0.0856789425 0.083734341 -0.0462210476 0.0717851296 0.0388861075 0.0501921102 0.0584684685 -0.0513192452 -0.0714252144 -0.0885543451 0.05858735 -0.00829719752 0.0306215212 0.0340318605 -0.0205458552 0.0756339058 0.0837159082 -0.0730194151 -0.0912174582 0.055626668 0.0327471867 -0.00629354268 0.0612661913 0.0655683205 -0.0494995974 -0.0289999023 -0.0708887354 0.0205212459 0.0128909424 -0.0450893342 0.0630433187 -0.0419934951 -0.0680548698 -0.0837053061 0.0685138032 -0.0599473082 -0.00768517703 0.00748527795 -0.010872297 0.0834861621 -0.0527943 0.0178931952 0.0626431778 0.0269820914 -0.0540995412 -0.0751913637 -0.0518145487 0.041791968 0.0252913758 0.0251940265 0.071946539 0.0577230975 0.0532324687 -0.0362061709 -0.056001205 -0.0245296359 0.0041981712 -0.0674565583 0.0317380652 -0.0491716191 -0.0181598067 -0.0571505018 -0.0490243472 0.0823315158 -0.0795077085 -0.0807893574 -0.0595336854 -0.00525286794 0.0204013512 -0.0201823041 -0.057951618 -0.0149017498 0.0828306004 0.0765516981 -0.0722442269 -0.0254147872 0.0572232679 0.0719284043 0.0919317678 0.0422854647 0.0722133294 0.0832389221 0.0703502074 -0.00300049037 0.0307775959 -0.0076655224 0.0168642253 0.0456034318 0.091807209 -0.00119584799 -0.0249584243 0.0909892693 -0.0625290498 0.0236716717 -0.0820179135 -0.0806563646 -0.0602229871 0.0700656697 -0.0569506697 -0.0624079257 0.0795056596 0.0314875692 -0.061765328 -0.0635697916 0.0153116286 0.0252486989 0.00669085234 0.083547093 -0.0649017319 -0.0279997662 -0.008346349 0.0565732494 0.0635207072 0.0591150299 -0.0822551847 -0.0152619332 -0.0337187685 -0.0746884719 -0.0561716519 0.0572123006 -0.0173217356 0.00377386808 -0.0362097584 0.0134522095 0.0561428145 -0.0784822181 0.0640364066 -0.0614264309 -0.0730183125 -0.0421296768 0.0117559507 -0.083700195 -0.0869141668 -0.0726001412 -0.0146617889 -2.34395266e-05 -0.0253349543 0.0460506454 -0.0915026888 -0.0340093933 -0.0842529908 0.0833470151 -0.0597957447 -0.055193156 0.0459580198 -0.00640163571 -0.0354257897 -0.0564263351 -0.0306178443 -0.0107492954 -0.0495355614 -0.0289051682 0.00900393724 0.0576087311 -0.0476625785 0.00458601117 0.00897520781 0.0491023287 -0.0684104636 0.0677821264 -0.0107404962 -0.0496122465 -0.0815834254 0.00527408719 -0.0590254851 -0.0785773247 0.0188784525 -0.0201630667 0.0903783217 0.0660376772 -0.0537738986 -0.00305890292 0.0318506062 -0.00334130228 -0.0487806462 -0.0375611372 0.0717071518 0.0809051469 0.0593942031 0.0196136683 0.0430372581 0.0584989712 -0.0553492084 -0.0113546997 -0.0799906403 0.0207001865 0.0755734071 -0.0917899907 -0.0584509484 0.0401399508 -0.0882387981 -0.00588344038 0.062330313 0.0560731515 0.000227436423 -0.0714901984 0.00690488517 0.0544274375 0.0361999944 0.00607398897 0.0662547573 0.0280563757 -0.0457966216 -0.0303432643 0.0340396836 0.0902930573 0.0676590726 -0.00307103246 0.0107031614 0.0494279489 -0.0453004614 -0.0485144965 0.0769763067 0.0530228838 -0.0491969734 0.0534297898 0.075325869 -0.0840403661 -0.00737266988 -0.0655905902 0.00861051679 0.053658165 0.00577718019 0.000181540847 0.0166449398 0.06888818 -0.0522073694 -0.0863857567 -0.0235220194 -0.0114848912 -0.0430347659 -0.069742322 -0.0122361705 -0.00430773944 0.0802420601 -0.0202199668 0.0686627105 -0.0908020511 -0.0831669942 0.0752818212 -0.0709480792 -0.0878449678 -0.0679504052 -0.0342122428 -0.0661601797 -0.0423724279 0.0671125129 -0.0787862241 -0.0492549948 0.0418945774 -0.0389125347 -0.0797523335 -0.0523900315 -0.00707392395 -0.0641998649 -0.0206853524 0.0297000557 -0.0403424241 -0.0130258426 0.0863397643 0.0761201605 -0.0541506298 -0.00776427984 0.0764738992 0.0282557681 -0.0741224885 0.025916934 -0.0103095546 -0.0173238963 0.0556121841 0.0581567064 -0.0225667432 -0.0125677809 -0.0354059152 -0.0274171904 -0.0185849369 0.036896877 0.0740740225 0.000726476312 -0.0109842196 0.0897985771 0.0354291424 0.019101128 0.0249330923 -0.0266653374 -0.0257657915 -0.0570205525 0.0640414134 -0.0196410492 0.0479417667 -0.00170207024 -0.0358968601 0.0662455633 -0.0608785935 0.0596871153 0.000315874815 0.00909679383 -0.0720569417 -0.059581846 0.0894837305 -0.00814183056 0.0360466912 0.091226019 -0.071459353 0.0626684651 -0.0262114555 0.0667924955 0.019565396 0.031095475 0.0428095385 -0.0357173868 0.0290192217 -0.0111438558 -0.0813818574 -0.045990333 0.0195476115 0.0413242504 -0.0313958488 -0.0226516798 0.00270684808 0.0432039127 0.079015635 -0.0133943632 -0.0922482461 0.0394889191 0.0736657307 0.0482313558 -0.0811983123 0.0732731596 0.0425916985 -0.00660356134 0.0566181317 0.0903710648 -0.0346662104 0.0460903123 -0.00231745839 -0.0890427753 0.0777075514 0.000590585172 0.00282407552 0.0464896187 -0.0143544599 0.0404914096 0.0871532187 0.0246981308 0.0842309967 -0.00806456804 0.00802514702 0.0753147975 0.036379762 -0.0144222528 0.00216525793 -0.0589751042 6.37173653e-05 -0.0530337058 -0.0729001164 -0.069792591 0.017817013 0.0112677142 0.0846098736 -0.0684166253 -0.0677238479 -0.000434532762 0.00653849542 0.0327457562 -0.022034198 -0.0750099123 -0.0387094021 0.0849306062 -0.0898520127 -0.0273108184 0.0400960669 -0.0496618785 0.0349754319 0.0246802568 0.0290076882 -0.010152176 0.0303862542 -0.0438487828 -0.0596548095 0.0891770795 -0.0708404928 0.0482976064 -0.00532250851 0.0703725889 0.0389634743 -0.073277995 -0.0696917176 -0.0401497222 -0.0257806703 0.0601949021 -0.0367084518 0.0822639391 -0.0664055943 0.040693514 0.0485030785 0.0235389471 0.090006195 0.0810923055 0.0204400495 -0.0515534803 0.0195938349 -0.0869833231 0.0146096721 -0.0722825676 -0.0503606014 -0.0111645237 -0.0393948071 0.0573768988 0.0674176142 -0.0278738663 0.0679242983 0.0877278969 0.0545238331 -0.0127064288 0.0710946694 0.038527064 0.0610633418 0.0194812939 0.0140683427 0.0785835758 -0.0630957708 0.00481127203 -0.0838448703 0.0564863309 0.000886358321 0.0284538642 0.00657422096 0.00745598227 0.0437675342 0.0523472205 -0.0475420058 0.0299621075 -0.0444709286 -0.00191110373 -0.0660193339 0.0656327233 0.0116388276 0.0297860503 -0.0471729562 -0.040639963 0.020981282 0.0897095874 -0.0659410208 -0.0254971534 -0.0585522838 0.0538927689 0.059163399 0.0659723654 -0.0017272532 -0.0562808253 -0.0341632478 0.079860352 0.0225753486 0.0341553017 0.0132936239 -0.000649683177 0.000858850777 -0.0161829144 -0.0418416671 0.00552845746 0.0706280842 -0.0726075768 -0.00948345661 0.0859001353 -0.0136323199 0.0813613907 0.05002556 0.00631436706 0.00256703794 -0.0266521275 -0.0376127064 0.0359481648 -0.0198369175 -0.0869805291 0.0420209393 0.0844277516 0.0574717298 0.0607582405 0.0855515227 0.0483523682 -0.0489674695 0.0114837214 -0.0900520012 0.0029547289 -0.0742702484 -0.0842759684 0.00257317722 -0.0109797269 -0.0155656338 -0.0325093828 0.0421882644 0.0128170252 0.0390680358 -0.0165972412 -0.00384133309 0.0126825199 0.0600325391 -0.0127109811 0.013819389 -0.0410979129 -0.0276976079 0.0173677579 -0.0293897912 0.00406115502 -0.0861653015 0.0699720159 -0.0159278363 0.0695724264 -0.0866942778 0.0890819952 0.0191686824 0.0659489855 0.0457098112 -0.0499833636 -0.00868757814 0.0149702728 0.0236441791 0.0140175 -0.072505407 0.0155419037 0.0224151984 0.023795478 0.0398483947 -0.0607563034 -0.0636895522 0.0143802315 0.0872931257 -0.0334450454 0.0826188847 0.000606454909 -0.0568623617 0.0762277916 -0.0868929699 -0.08023718 -0.00818615407 0.0590708479 -0.00708501786 0.00437413901 -0.0406307168 -0.000656992197 0.0362803712 0.0520707294 -0.0367545858 0.0497234687 0.0863666311 -0.0900611803 0.0295918733 0.0912225172 0.0811793581 -0.058669664 -0.0289921984 0.0798357949 -0.0239558443 0.0712674633 -0.0653381348 -0.0863094032 -0.0666316003 0.0386085734 -0.0303965956 0.0509579703 0.0757794008 0.0478860959 0.0532554463 0.0576914772 0.0395869985 0.0659336075 0.0238684416 -0.0770818219 -0.0531993359 0.00675230473 -0.0815457255 -0.00297865272 0.035356991 0.0757349506 0.0633065179 -0.0639299452 -0.0908787549 -0.0210903287 -0.0892264768 0.0554816052 0.0212200359 0.023073338 0.0432464257 -0.0121290013 0.0903774872 -0.005623959 0.032297045 0.0181301832 -0.0478715673 0.0213165283 0.0684063509 0.000450201333 0.0901340768 0.0279435292 0.0560986921 -0.0493430123 0.0184610188 0.0450222269 0.0302037373 0.0261449665 0.0134890079 0.034674041 -0.0909153372 -0.0823931694 0.0878150389 0.0490871593 0.0428365692 0.0362394676 -0.00369227678 -0.0556258373 -0.00945287943 0.0910302773 -0.0604835935 0.0882617161 0.0844165757 0.00962863863 0.0891010091 0.0871586725 0.00751289725 -0.0530103967 -0.0720689818 -0.0270847455 -0.033462368 -0.0755196512 0.0112038627 -0.039447017 0.0592330173 0.0430045053 0.0173921287 -0.0665199235 0.019834429 0.0502201244 0.00343226641 0.0191227421 -0.0528176986 0.0234474689 0.0748400763 -0.00804264843 -0.0170032457 0.0280947164 0.0898320749 0.0751729682 0.061186336 -0.0522816107 -0.016077131 -0.0317471586 -0.0256145149 -0.0108278766 0.00690124929 -0.0611611195 -0.0670309365 -0.0131452084 -0.0393151753 -0.0831924826 -0.0289172903 -0.0695537552 0.00523840636 -0.0160094947 0.0246335939 0.0414473042 0.04573185 -0.0383304022 -0.0576508678 0.0672337189 0.0453174338 0.0302095711 -0.045356255 -0.0574915335 0.00260927528 -0.00611358136 -0.054552827 0.0379562303 -0.0330310278 -0.0532937832 -0.0601321943 -0.023999162 -0.055964116 0.0870380327 -0.0543301031 -0.0718403161 -0.0355462767 0.0664831921 0.0830618665 0.0468527004 -0.0682922676 -0.057743948 0.0705878958 0.0802727416 -0.0896256343 -0.0737968683 -0.00309403241 0.0065395087 0.015204832 0.0502572432 0.034152545 0.071777679 -0.0734888539 0.0484698638 0.0290584937 -0.0505979396 0.0878104344 0.014023684 -0.0413963944 -0.0557814725 0.0264606178 0.0219173655 0.0358242467 0.0901668742 0.0342820808 -0.00451401621 -0.083702594 0.0517056659 -0.087288782 0.0775997266 0.0895962492 -0.0368333161 -0.0512540489 0.0124417245 -0.0139468014 -0.0428403504 -0.0482854769 0.0655244067 0.0616982207 -0.0200833902 -0.0160617456 -0.0156312659 0.0850241408 0.0659253225 -0.00192439556 0.0553032532 0.0751190558 0.0339234248 -0.0605869554 -0.0655540824 0.0166207924 0.069537662 0.0332473889 -0.0555774793 -0.0485452451 0.0893144682 0.0572589114 -0.00551032275 -0.0383175723 0.0171434283 0.0909850076 -0.0265057608 -0.0671541095 0.00236638635 -0.00991935283 0.045918338 -0.0391575582 -0.0380990952 0.028975971 0.0905330554 0.0315157175 -0.0894271433 -0.030561585 -0.0421880037 -0.0066838786 0.0682346448 -0.0475706197 0.0608881637 0.0619709715 0.0185539499 -0.0196010992 -0.00413730741 0.016891852 0.0488773361 0.071824275 0.0181678161 0.0724871829 0.0668144152 0.00525511056 0.0138474703 0.0672335699 -0.0555952862 -0.0506129079 0.0526045486 0.0897506103 -0.0563381836 0.0172812343 0.0125200003 -0.0716398656 -0.0119876117 -0.0239607319 -0.0540798008 0.0592062399 -0.0263465568 0.0382518098 0.0890898332 -0.0596198589 -0.0904201716 0.038385801 -0.0646243989 -0.0810801759 0.02268406 0.00842726231 0.0034481585 0.0270464271 -0.0305846296 0.079363443 0.0592626259 0.0637906864 0.00281725079 -0.0534964763 0.0648277327 0.020223245 -0.0295611471 0.0418727025 -0.068593815 0.06197723 0.0312514603 -0.0732035115 0.0882652327 0.075848572 0.0617338493 -0.0107315332 0.0413017496 0.036856927 -0.0868524686 -0.00546564162 -0.0592700243 -0.0893067718 0.0321313962 -0.0582680404 0.00445747375 0.0680700019 0.0142321512 -0.0840049088 -0.00744449347 -0.0497438908 -0.0122429281 0.0661905929 -0.02400022 0.0490648523 0.0296489671 0.0775039867 -0.00244124979 -0.068327263 -0.0886867121 0.0163910463 0.040755339 0.065197669 -0.060845267 -0.0234778896 0.0576095507 0.0130864829 -0.0691704229 0.00798781961 -0.0770250559 0.00452960283 -0.0633950979 -0.054000143 -0.00311021507 -0.0480137132 0.00881075114 0.0836479887 -0.0685610399 -0.0175701231 -0.0242593959 0.000713318586 -0.0167550519 -0.0582272559 0.0834925249 -0.0419362038 0.0749877468 -0.0780220628 -0.0224030316 -0.033907596 -0.0628756732 0.0512688234 0.0586413816 -0.0537030697 -0.0319473669 -0.0587557256 -0.0305475444 -0.0052530393 -0.00324650109 0.0559279248 -0.0807136595 -0.0497078374 -0.0672399029 0.0261152089 0.0910374746 -0.0468881838 0.0516570881 0.0186452493 -0.0818429962 -0.0650489852 -0.0899540111 -0.0088108778 0.0823060498 0.0113910362 0.0446244255 0.0102079287 -0.0196650624 -0.0181698203 -0.0335793085 0.00621362031 -0.0702295676 -0.0464090817 -0.0211886242 0.0371881649 -0.0404574089 0.0023772195 0.0353955701 -0.0884486288 -0.0502135269 0.0105407685 -0.00758051872 -0.00454146415 -0.0164081901 0.0333881751 -0.00870084763 0.0641397461 -0.00580607355 -0.0887801275 -0.082279861 -0.0382778868 0.0539768711 0.0889353827 -0.0524639003 0.078463681 0.0634361431 -0.0519941747 0.0741301551 0.0314054042 0.0736820176 0.0231923908 0.00672763586 0.0718603507 -0.060397774 -0.00623442233 -0.024011068 -0.0502440333 -0.0238968134 0.044805415 0.03716176 0.0866432115 -0.0333108939 -0.0817748979 -0.0134241208 -0.00522872061 -0.0359961689 0.0138792098 0.0848171189 -0.0624926649 0.0848621801 0.0476989672 -0.0466288812 -0.0116913021 -0.0306325257 0.0658282265 0.0614019111 0.00328691304 -0.0322239511 0.0655945316 0.0084971413 0.086652942 -0.00222917646 -0.0606245697 0.0438054129 0.0614505187 -0.0537781455 -0.0822727978 -0.0658394247 -0.0830445439 -0.000728301704 -0.0846520364 0.0179623291 -0.0693880394 0.0296948105 0.0169596449 -0.0126947388 -0.0416296199 -0.0248242691 -0.0540439896 -0.0434490703 0.0114598423 0.0148696154 0.0632136986 0.0274999067 -0.0507304445 -0.0635118186 0.0843986794 -0.057290379 -0.0548526533 0.0653604493 0.0672484413 -0.0385114625 0.00801108778 -0.0438951999 -0.0303793848 -0.0315494835 0.0652649775 0.004901357 0.0399690345 -0.0791071132 -0.0551356412 0.0109100416 0.0328877345 -0.031780988 0.0241330117 0.0442699119 0.0468556508 0.022691302 0.0620602742 0.0341575965 0.0443343744 0.0145924613 0.0771635547 -0.0437043905 -0.0840514377 -0.0595939085 -0.0281249806 0.040136911 0.0280683041 0.028155975 -0.0454803072 -0.0238094553 -0.088113673 0.0186308101 -0.0260364115 -0.0071246326 0.0606869236 -0.0145625919 -0.0361072123 -0.0280172005 0.0743361041 -0.0694953427 -0.0360549614 -0.0182278603 0.0349920467 0.0577459112 -0.0392514542 -0.0730342492 0.016227752 0.0875464007 0.0800387338 0.0724099651 0.0504808053 -0.0106149241 0.0182168782 0.0902558193 0.0854625925 -0.0497673303 0.0111328065 0.0756930783 0.0317866877 -0.039710328 -0.00107556581 -0.0471415482 -0.0369691886 -0.00974432379 0.0111865997 -0.0044811368 -0.0248006061 -0.0343325734 0.0701516494 0.0243751258 -0.0276767612 0.0295438468 -0.0228981748 -0.0187737048 -0.0717720166 0.0278871357 -0.0880351812 0.0889703855 0.0128898174 -0.0374262333 0.0411262885 -0.0280338153 -0.0801803693 0.0594585612 0.0178878233 -0.0479707718 0.00231871754 0.0481788144 -0.0599289276 -0.0354419015 0.0289686695 0.00817883015 0.0266318396 -0.0208193362 0.0896193162 0.00926870108 0.0340128019 0.0866080448 0.0613125786 -0.0255525783 0.0567194 0.0770707056 0.0784818158 -0.0561278947 0.00895603746 0.0699640587 -0.0423903652 0.0258065984 -0.0209744424 0.0239702165 0.0912013426 0.0410929844 0.0680784211 0.0676013455 0.0799748525 0.0778850242 -0.0809571445 -0.0485545769 0.0373921469 0.0534635261 0.0156047642 -0.0463864803 -0.0762455985 -0.0920696557 -0.0355380885 -0.0512720346 0.0030406788 0.0494132861 -0.000837787986 0.0720236823 0.0259418339 0.0521891192 0.0504899099 -0.0143442005 -0.0156626105 -0.0255633369 -0.00902590156 0.0253952891 -0.0845051855 0.0711695477 0.0800358877 -0.0728882998 0.084878169 0.071782358 -0.0817806646 0.040077962 -0.0440430455 -0.0247468799 0.0543578342 0.0194355771 -0.032321807 -0.0160121769 -0.0176372528 0.0687336847 0.0919501111 -0.0663749352 -0.0346084312 0.0404525921 0.0557674542 0.0738795027 0.0832091793 -0.0506817549 0.0157810897 0.0212106556 0.0795802549 -0.026343964 0.0591238365 -0.0209486634 -0.0368987098 -0.00894069672 0.0205766708 -0.057158757 -0.0277944058 0.0247230008 0.0708055571 0.0430708453 -0.0659603253 0.0840475634 0.0805856213 -0.0787347183 0.00240164995 0.0459522083 -0.076741606 -0.0184753463 -0.0515926816 -0.0206495225 0.0109975785 0.0268712416 0.0646271929 0.0487682149 0.0828679726 0.0294161141 -0.0340196304 0.0892602876 0.0246401057 -0.0263224095 -0.039881371 0.0740597025 0.0878100172 -0.0805840418 -0.076888375 0.0153023601 -0.0763068795 0.0861743912 -0.0912674442 -0.0767520145 -0.0404524319 0.00172370672 -0.0211072043 -0.0370333269 -0.0652076304 0.0182034075 0.00630353391 0.0891098157 -0.0874347091 -0.0642225146 -0.0116002038 -0.0638870522 0.0443636104 -0.0854940265 0.0488350764 -0.0285331234 0.0134582371 0.0875275806 -0.0741704553 0.0716903582 0.0793155804 0.0348582789 0.0701143816 -0.0231312215 0.0730510876 0.0356755033 -0.0712756142 0.00882402062 0.00125862658 0.0782864168 -0.000534832478 0.0829248354 0.0238016844 0.0893230364 -0.0477464832 0.0893439278 0.0686622187 -0.0817282572 -0.0575004704 0.0823340937 -0.0161790848 -0.0560752675 -0.00556992739 0.0208469778 0.0416112617 -0.0112131462 0.0232331976 0.0294193551 -0.0847662538 -0.0202047974 0.0146003813 -0.0241549537 0.0486337468 -0.0203270018 -0.0505338684 0.0872772262 -0.0243151262 0.0802100375 -0.00532783568 0.0818887278 0.0753694549 0.0198987648 0.00310402364 -0.000548258424 -0.0559710711 0.0610449687 -0.0656017736 0.0368102714 -0.0641975105 -0.0611163303 -0.0775725245 -0.00941968709 0.0306788385 0.0843313709 0.034271501 6.95064664e-05 -0.00243563205 0.0352229252 -0.0390638374 0.0581196025 0.065670155 0.0141450763 0.0178681687 -0.0354627259 0.057952188 0.0672771707 -0.0572467111 0.0786492154 -0.0651638582 -0.0483451039 -0.0250732079 -0.0795644969 -0.0756258965 0.0781184658 -0.0589162931 -0.0568547696 0.0376744047 -0.0409404933 -0.0481391512 -0.00520472974 -0.00502437353 0.0618470684 -0.0861824304 0.0180812329 0.0241561681 0.0118249059 0.036368452 -0.0109876916 -0.0384975523 -0.0510925837 0.0415098593 0.0273642987 0.0327793583 0.0563225523 0.00496076792 0.0513857827 0.0872582719 0.0143002272 0.0708018616 -0.017889671 0.0742098764 -0.0817545801 -0.00989375263 -0.0533016399 -0.0698689669 -0.0825026482 -0.0240472332 -0.0548172593 0.0312533528 0.0749759302 0.0848601237 0.010336183 -0.00269086659 0.00602851808 -0.0606395379 -0.00234121084 0.0520278737 0.082319431 -0.0665093511 0.0753033087 0.0159885809 0.0684010014 -0.0914960206 0.0502850637 0.0842634216 -0.0263637081 0.000470846891 -0.00508543104 -0.089117147 0.0759389773 -0.039316427 -0.0030734539 0.0875152126 0.0259787664 -0.0206250474 0.00107868761 -0.0322635025 -0.028956145 -0.00763433427 -0.0436886102 -0.0875325277 0.0338042751 -0.00669532269 0.0622604117 -0.0249196216 0.0435016379 0.0154566765 -0.0525258146 0.0113652647 0.0393719897 -0.0350634977 0.0286183059 0.0253256932 -0.00666769594 -0.0716381967 -0.0879089087 0.0297472179 -0.075027518 -0.0509686843 -0.0515384711 -0.0585313514 -0.0532592051 0.00847174227 0.0454187915 0.0346005335 -0.0226799473 0.0331792906 -0.0349445529 0.0798304304 -0.0156024322 0.0143850967 -0.00959330797 0.065459542 -0.00613863021 0.0498886034 -0.00439392775 -0.0691997185 0.0891360566 0.0798450634 0.0103019997 0.0303772911 0.0593604669 +tensor_conv2dbias0 10 +0 0 0 0 0 0 0 0 0 0 diff --git a/tmva/sofie/test/KerasParserTest/CNNtest.h5 b/tmva/sofie/test/KerasParserTest/CNNtest.h5 new file mode 100644 index 0000000000000000000000000000000000000000..a74502815ec37747c5791f334117d9a033dacf78 GIT binary patch literal 184536 zcmeEtc|6tK_VA&SBx#l+5h*1k;p~MpNrfb7L}m$@n>d-rGKDf7^N@@g&t8&Lnmvu0 zHP5A4rFy@HbMJk+(|hmd_rAYBp67f%?6db?d+oK?UVBY@p9q5mi-w6vim-YfwKfygPA`TOQOGBydS^JfW8LD{()wu z3m38&NIrgk*+1+r2!#LA@aLC55(f+x&NJy*uSNf&`SR4-FK2vSY;m)-bFuWbb8>L> z@?;wMa;e7$_z%kw{qp*&T#K>{n6uJ@UyL=HCCu7v=V9$>>0{^N>E!0hw2v1M=pET} zn)+zylUzPMgL>%b7v`QeQI=jmKH*+`o2+d%+qv5QTRgo7w;xXrEB;E?uwFcU{IGFz zwRdvpnQ}ZcSr1MBj4tOMT>bcZj_6__?U@P+j(t{-0yzxrnG z{qnni0xY3kKJoXJuO|$~_ksEKGw$E%iH?bV@Or<){%7Tn!hv7)M8DXuI)#4E0Y-d% z)NENSTRT@zJEp6*v{Yr;yI6a9*}1Z|So>MJySceAqTU0>^04!Cw05^+dAYe;y4d+J zI_CG9Mu0iJJ#+mkzlzd*^K$zN*01#SoWq_^?BKqV|DR7EpMC>=$NzA-c)szn-Z}aS z;m_BrpP0GSlr@!An3At%`y2%pi{X){n}@xNn{OXM{pOt2t3Q~g9kMnq)}Ef0uGU-Z zWVK~vSK4j$wsZAzvUZW3AtT$TJec+!vU~u~-vPK-Z(~#`1F-H_L`z)Vy}g$8bpL{A zleL$Pqoq?%w`K2M^^A7)c5#^@qc%rl12e0w*EaWFVi>Zmy=JTRAnEy7*txvlD+^PQy#l+aTKL4XHwqUV(&@2~Rl@%{Lr{qX$$U;SCp z{(e4vd_R~!KfmmoXI77i*Y5F?#rnq$?=SoN`)n=)!Efi|?_J+thxcb2{)(rs|1ZN? zBl_|3=jrFqUoed9@8`!A{QkdU=mQYvADDjlKZ`#(@FxfUcpO-1WV}Ft$z1UDYk0q2 z;O7C#`|E9d#rnr%(f`$o`FY}B`6bFK?9c0pGWk;pR&QdXH!ISUo&Fd3SSEkm^Wn3d zU-sIu{>|#KUA^u7^&T78YnS@#J;mR`_t>&td)D9IGxl%$d%pkkJoLZL8~57Le!M-l z^{;v3f0iHr*ZBUH&OTeow`dIVzxn*Td~o>WKHz@R{$}K#U;hXk=+ke5|DxXvdIg?; zC&OYjN%nEUy}z9=Wtz%;?R-6G)nDiIIC;#6pXU{>@5_wx;Z*wTCcM6OnO#tj#>TB2RhqE~SdpJ&ioqM*gU9TT5<=pS#n)>S<7y8=! z!TxQ**Kfb_OO)lep|4D)?ouf82jqdwkr#)n|P^H-CqI zPjZh9>)8YTzVPYo?9ac8_v?Xwr!P9>`tbg#FMiM8KT7S_`x%-3g{$<-51$Xe##8(N zkgo^$=adis@5*2Ou-1OL<>UKRj{hCLKWe`KI^*+rW6J^Nm+pX~;OS8977P;>9H9=z8kpTd zd0h*fN$tWyt+T@nQ6p9Y%REzIR@xYBHn-qu-`|9;WC=KMvSIMjpY)0UUY?e~SiE*b z0A!chTobr3GO`8g6<1qFgWWBzPr1LTs~P0WsB6H^?E2} z1vImR1C{aB7fZUB{etc_J%GD6>CtOiHAK)n9_Fq%%HB221{c3i1brVbVtR81+_pc> zzO*Qh{?X*>zg_R^A5o3p7x^{HUyN)dV{CN9JLPmFhHr+*W{*ad&QqY_m!!j)VMTN% zgf`|T6hX%LgvMJdn?O`nw6WXoA)L=1q9dV`56_osHW$@b zx;hqZnJ^mm15S}{Y??TYmX{S!t9Yx%rlP%#7VhcL`DUNa(`6^%%Dvr<7BAYNW%xN{ z)eHp9RrSC*ti)SXnR=F`Yq8eCdgz4Ap(8h@k8+6jlVt^Ip z&9<7S111WQjZJ=nI?kpljcxZr8e=4r8}-&dLA`5j)L^z3YO<Xr1Wt*WkC;sqwd0oJPM*9QZUo5&v7c`E%T#9Qcz1 z|2YT#-mmP7GzI$OSib+rF9$FlSC0eupZkfi3VqZm{z7EOXt$*43XM;r5gF z@8WF>^*%tp-}%40sy}D{|ILA4<86L+hubele0qBCF_}tlP{ou6{Eq*!An$PO0<=-6qV|w^{k2~id_y18_J6BXw4GC4)kd}dotcH@&l8%5$F;y3NQJVgVpViya!`*vFKAU zT)b%n2Q;U`12su>Fjv5vLn|S4-d5;zeMb%!?!nJl#c-K*nTSq$O-z?90;eTqu-ZQg zpS6|%OEyV6ixmZD?Q19}`T~h4oQ0D*8sPmtcRVoK3=SzBfSUR9U`wze2EMb#Ap;`e z#!v^ajnTl$oE?y*UI_+4ibTQH1lpg?q6X^MsmO}yP~(t~N#ne6l0Y3;vG22GK1A{M z)Q$x4&c~!oE)0e`dZC4L8a8nYw0-P$f|TPtoF>wMO9Z6xs?9_k5SIz3x|Gpq>Oy$< zA{?KuwFcjT>+z82Za8&pD_;Mw1l<>}AtLgjm~IpZjT7>5Mpq!dR`^NpE0!Q<(Bg)f zx$ALq!T}tultF}6u7&qw)iI7;3F1;u*_G?MXj5aoc1E@nwBCM3#aC341x3fG@aQpU z5U5P3S_Mf7okR9+^TFn88_{|J7iEHP@O~^G2IKE+!S<8iiN|+g2%Z;D0&Ta!qQ@M} zv{{Fn?#;rc;85hK9VH^VWvC=sjxEjIv}08i-Frx2dYn``@=O5y z2#|*FN25_TQxY_Ou7y2G!q{|kGw*dv1Ztnw1;l*h9z000-qeFt+(Y)sY!1kB#bLvd zeR%(#1MFH@0;7x0(OnA;qRH zT;_(6;WOfKw8mo^AeD&GWFKyRSA-h5bHQh_F&J0zun=OABUsLUJ!Brp43nmH=LF$- zxhUvLm%+skGPt}pAB`F}!SoZO;jy6$WJ_4XBb7+t8Sg>$I6;t{s0@DNgsJ?EeNevr z1pCF33~*5`#r3+KWKDQ3yj->vN15$MyXhrhP&J)2#T2vWKTCtIcfS#pM}sl$!hSF@ z8bG??40S9rrLF@egPd6#$89Kkbq9rt*ZXBotnh87cqO>hsJv#t= zkL97v;c&Kl&R%xH;!xQ6IgX|{&qOOROFGsq92b2b2ivbY!+FbMEPiT;ETwvO=y4mY zyHkQ@>{ZA~o<>CRKArw?C3xGVz*Y8oxF;C~turPOll$q|^|ONBmI%fGt4Mg>x)wGS zsDaF;T=s&78md%U4r;l9$ezpvuEc4!cD5v_3@9Z_3`4==)(QysFGum&V~NH3IGP)u zje(~7us|vkB%TG+)Vwkn^En!=50v1~RR^JF$wpB3*TM`B2k;WuL&Hmt(}S-Iu=$G; zh^^zI-c&I*r+Zh!i<3i9W5sxQ|9S|vi`^yW1vU_Mi;Lx{?Ns}LJj~7sfdv|Sh>-Fe z=y-RVlz(pJ$pi9Zhkz+zA{5QpyZerQ%*ho|dz;SEPEFf%9M_u z56cG*80>-(9*Mv*9M6-CSOb0vJF&hp6N_4%@s>a(b&81wv(+bQ@UtDbbrBE4Z+s`* z*sHt=3lD>+M+&Cuk3oS)hcPX>4ATuF;f3-NY;Mto)*uhwKZA8933BiiV`{C5XAZUDRi(>a?!R6PnxN}E2F`VmroiD;0agVQ&8fkoIt+HU=TT(^isv9#sjGa(IG_xCiYk32{m zM@^>w9URnA@IotxTJ|}Wc$|3F2#@SJ01ev>K|x*!8ag##piwQ2@3er><=bKUhMzPj zGX)}vJ}P>b(aHc{uuA*JUYc41WxPZhSYuO@H8uc=%={j+eKl}bm}~D{vwSx&ThwnlCSC2 z)?py1J{4Zs)uPNPHB|Ikf)`YlAa|h@c4-EqiC;XbNPOl!)m}mrM?591-r;rcqy1p+@`O>lC}r5{3??V7kEM{+wEX%upV@EITF9qc~~x3M1Q)}L(MKz zP?{0}2U6$bz^t*2;_MCYd1NiYERU8PnPlS z5!Y98aAjr+7OhPOw|$jhEs_JlHRq^`7MDG4w+0q|okC3_4KV6@AgE@!qSE_hXmi@f z(_o3h^<$>^$SfURzgUNb%Twu^2X*jFpN&(@>hM$SZVdgj5kfC0!KsW2JYQ#zvHCNJ zkI{G-sqYOKRSdy1#WC#cHk5AOj!mnc5!RLu>?xBIF(X77WRg$s@5P;thRtCkHu|*bsL! z5w{+Xg7F%QaF?hqcASwQGA~c@WcF2}&LdO2FzIJE_r5%Rr_tQadTQOeO35TKI zG|^|*NZd463QpY>LgDQ%Nl{!XcsZogy`tIZt|LTti-v&d15*%m-i#NIFM`L`)8YO* z1yH=VnV8z!fY;_)ycL~7k}C?p{p4#J;F<@w?ocdTcAM1BjRHC4ERe8jBTr7aqA?=} z)4yB7tk%V>_AtNDovzDDTa^9FX3) z13uj1kjBWNpmWX$E#Fe?u)jj|=J->aGaC`a7(F6yM~s@iAmiN(P@SC!dP+aoO_}Pv zs+xIt>5Mw++}MJhLtA;GZ)0#|ha5bwp9+e(a(GbG03}VNVMJ;bOqe$oH_jD;dC78k z+R+Y6btBNE`6>A@WB}Ib2$NUiYY<8+ffcD+|I9TR4DLnHSPgx0+{PEV&nl?vMRN#0 zoUnDt0OB3ejko)QY)!bTRav@t|R6K zi{SaA<;c=|T(>~!2Q{2kgnOcP0O$HCs`7Cao*GRtU*7~@mwlx_#w!7CE(V!+RrHXX zfU#rV^B%tFB&A>1fNa}7WL@2&eXF6K<}VY2B~!Ig@8=nEfAV7Z`Mwg$y$vb%ffsFC zG>teWXQA}{NMyxSAXiI_T)d_ZGaQ;|7%v%iRZhc>6ARJ)ts1;6eMy3DXW-!Zo3U|- z2(X^T;X3(f5Ltf^t)yys->XAmuL}=@tm?5v_W%m%2!q~+-3?}|cc5O76bcN<1TWuU zJk)X!q>c)rlkQsND&63<9qiy)NrbVZ#}$!HkuH!S=K+p~W?@K1ARIFsh?CDwMbl}n zu(V+U&Uq1ok&~9g%xnrhdNNyX;b38=kt2e4#p zd5u@i;k<$<%v`=3+5>iw@}?%XkCF$-+&1G~NZk)gD1feS4B#zh1E=d7+gxoWqy@&I z`>h8=e4+zwzN-lw5#0v8xjzrCbPcUhiN+n36yCU1;gGIvI6!Cvo;Mr-{#y*;=apJ;F*r_3nV2c5>@Xf46i;)0 z&Oz2Y(fW<+7XqtAprLcrX%hNqAAX;eg?q-h!=CoB_^~|*T<%06*&c}{hdz)?MnSmo zl@j>m3&Tm3YIsl)j}as4VVOxGqILnsF0Ny*5@&q%)B#}dbuuZ*tRcdlI_MHzNaXe% z24^QF+}LUWHD?XsY4QXF2^Q%(p-}7= zkl1~Jo-MD$g@c(W>9^HHZ>tMg_n;iRglfn}*MnFdWkjY;n1teyDQuRWM}tMo5_+6h z3(55qOeZUX{q>b#a_>1$;ngT;+OES>46j7_gUK+wD-~Flro02M%CLFmNVJ+}!;?I{ z7V5M_soD5zboAQ@!qN`WQdUpLuXUs0^LZsSZL|T>#=-7R6?A-kod&!v1jz+55L}BU`$4!{AqYnXZ@}fZS0gKJsJ72{eP(U-#Hpeh^0!Grc9RKoEWJSHGP#xDc~kJw z{7m#LT7vKHjDb4C3uJS17_2og18c)@82&I0p1T_1327Cy_2w`#YKq@i8R46{@o1$% zXetv=>p?wHjy8t_6Sji8%Lkr&OCI~-@+y3M(;x2~UISJtM``mkYYgCQ#LOZ4@u6xv zy=@eSg0KdZwI)J?MhzN&tHbqs!zoAUP=nQ64zUkY0gG%m9IL{_)7|DUqPPxMO-=)M zwSDMy>?fHxwv~$N-lA%Ygg{R%U%S06nsAO-vAND?Ntwx(>~Iz|ZFb|?erhESco3_3`=GEgovx_P z#j)qNz-|QY1C7};V9N_L zba&p5Nv<9e6&xHX$_)^A}4 zS-7FLMj=|A(n58uSkzj75VE$!Lx4~j>X+-lvk^u3{*@uR94*9vdueb=(i~@Ko}k)A z?$A^~X_x3gGWaWn$ghg(|Z#4o(J3?ems^{`&>@fBzD@>)wp((8XO%w zA6c)a5su0W%IeISYZWicwie=GQs_o_-gO91bgcq(;DPwK4x+^6fDHLcWHTnC_6T)& zm@JH49uvq7h25xmbR%_q6H8AE8=;JcIvMmW1ysZXc~=K4f^F9lfE6P^%@2--Z}Tc3 zWvLSp`KXHzT=UT}?;HJbLJJIEYCw&bIj|nK)=?`Cx#Bt(JL0N%uW5fVLJ*%DutnQRhgsmApyb46cEjkL)ll zPYJgV9F0vGN<5>z!eC+$h4&=GAxy6V54zWZy7UKf`h5y+U~)`F^Mau?SO?6@gHh0N z6_|krb}Gj6%;cXDi>3p}UZaIWE*^rXvN9yKl8Z+R)}zQqe;7F~2RmChm@-2XXDq9t zep13jPPGK`?9(A-cRU_^xExap3So+m5#Ajd2EpeFNnnF02n^kc18-%~4(nvb56~h_ z2ePCO_kt|U&T;mFa?;yu_-L2%M&EVQbfVEhVJ=#V^1Tp+HR8U)o}BVqfT1e`JZ zHdR;UVC<_wG$4H+6sygKaf71ak?RhOwO&TnP2fSW|1m0)HkHiOwZU~K%3$W_Ja7?B z#a%Z-VBY0I5DMA~^^2omXT^Cc)1A#u9$X3%x!%~OH~>B!835Tqs_^q&9_(3Q3ib8H zD5h!#%^w?3k9(W_bgvazmQ+i&%Gx5wW;Z>0&m3>(&cQ&HnUEXdkDeyGVbJ3s(1_j+ zmv<#&zQ;7=JoICCJnJB}6YG%MJea*?TP~_U4#FuNtwb@xk9>MM9>0%>1*^b3p8Jz3 zOmd)pY?^H~RyK9=K|(n7rUJP*8{P@b!QUyyLFL=11G1V}=?=4jBQfq7oo=>p+y45rcY}+u3Swn7ab&Kpb}| z0!7+%Ay#lWsxoihysm|j<_Y4ksYnZs&JBctVv#h>{TUs|+lD;yU@n8iYaWVssP2S`>4LT62=>^fzf{Pqqm0JQv=o>bASoj#W1`kgE_mkY;NmBT(~9#jx>9t=%Qp&Bj*mFnT;p%yy4@P zYVdWc1>0`MKV@PauGV#4+?7N~8x%xcsJK&zFe@{c9s3OO$SB>9L6mwTObH z>jo&&s~JwPzI!)n0HE*PI?z1jN-yi@qw`}Su-dSm7wZs1zE~&VC}%Mg8TE~RIp&1- z&R4?A?>dV=+GCQIQ?@vK6;o4trLq;=41-b!+SY8txSO@ zL86Rq@nvUt?nPQ%Lq_G8VENc9Y?jq=Udp|dI4eFC+LIqpoveWnep8)D6=b1B^Frdf zcQA;XT;$b>3&0)f4ASA_p|x6#1l1>@36tY!AMHiCx#3j%RUyuwABgAeRdE0Kt;k7# z#EZW@5BzMJsGswAI(|YfPAv}yg}MrKjvfo010V6iHJ{VVcM?eDigjRnZ1U z80smjQSL%J-rL>vc*4>cKU_;CdF~XG^CQ7zZ8!}x42H^$OsuigF8NA@GiuZxt9_L z8(=dr?5X9K+9x5QX8>Va)Ps7`}Wtx=RYcm9^RUqu2vv2fE-my)>}>SWaAJ zgmI^QE&URnj$3z*$1uqhNC~MR5|xAw-o(7^HCNEu=(Yv2H6-Ds&2u7jR2jKW_jt;K zoPiU`r1TF;Vc{q@a&AR6;^Y*_+fk0KyN=U()pGp4;Q$I>R3jeAQt%*TADkRI2s5L? z!8Csw=nt@m)sGIr`zJn_y-yTaSjk)YstSd>>!{4SS@iL9T^O{f2v2y}gTa1j`hC1N zMlknqQ^wn%#nc&en)P8cNv@(PuAwMXewX*@Rv;33m53{*s3?5p1tah7;Cu3jRI ztWkHgWKL{gdz%HK$$KO|$M>L_a3<}lSVN5N&Bwb9B@i6)mVB-80P%eh zD0q-OmtpRQq)HL4Rbqjy2x^w9kgNeYOnzSy58R#!dv(X5&Dh0wc7z!IHs~O}Ovplo z{E?72A(L8*ZbFvKomzYKwXopG7jn9m>APqNVMiJL_~JQ<4V*KFKiPW_Y)7j~MU_5v}ux^o%Ki_5{$T~b)H)dLn(pQM^ER}*{fU?xTv z!^@wWNYvW~PzYHLaY><&8qPtP6%*NQvlk!{&Lamz7lY7|1{`d47+Pa?&<|y2sVrmT zH{H*`j$^h<8DC5!9mQG#@bzz%*s;uyXr{iVR?8E3VxmK! zw-nEa3PUb>yswBGX5V1DOXe$P}|^Y`ZH)OT%(;pgVBi)l#-t zB1ns?;2xz};NCfys7%^GKUXBe%dBhUzHSB5<+@mLvl2z4_F(7QQ2Y^b2*;=dqVicu zkhNBTuZvf~>22C@wRtYoh;y%JiC50jse?tL-H8th3=JQxLfoe>RcFU`Sz`D(OSb)GK$5e6d< z4+VW!ZP+Zt{03pr9^QhYGxX)-yVUQu^Q2r&hsNr@Nlc)`^21L$Zs8AG)r(0zmzIkn~h80G1J=$AP1e7_$& zp2r5k#9TpMI?+&o7t{PdD&e&EpR`%7`!r9wDA zbSiXzC?s(O)@b!Uh|=JPbco45c=-MXeLr6pw+v1P4`9RSf(~kuQOJ|<4kZf*WMlog zNL0D@j`vz?1a?e(Np-&(V^W123~fq)`2o79UKvBarO!i;*eS3!W;%>Gr-?V_xWi(0 zFmtbHNqE17A!oW6+0(cNjHnpASsepcl(eurIU2>ix=5K<2F{E;hfx|hd?f-(& zHx~QI1>G=wqfiNxPA9_Mw}Ge|>4BfVtOVInvM{F93=`f*p(*2&PJ3DhX?Id_gM9;T zzL$W7{%UmRxo0%E;vT(esD|dZra?#kME2}g<+y890i0&?LMJU4AMi~PJNn!)q8(6( zm(>%A%sUgFUUfLujN1a`B72Dt(T9$ZDCAE0Kx*#Kh8uTnAwIwIB_Kt5ax&ctDBqv6Y-EJ%1<2Hb{5s?r$8RxqGA-PHq>tySRI(JZiZPJv4k z4uSsBIZ!)bG3Jk$3JY%U#k?yO_^3D;T%-yJf-dUJ9ts1WU!`di?C=?5XEt3^gQiX% zTTir`XJjS;QV~h0^F&WRQ}dQKz@ z?;Qg31Nw05RUMHYr~#($La@`!iHTF*^NJqt0gbv@@U}c3^PYNQ#M+6twILktq>p9Z zVQj|%HihuWGZseE0u=rnM$X9%Ms2qY{BT7O_L?&Jp>}zEI5HnM)_TF0*;TN8ge`oI zv%(X?gPHy)G+CjE6(KoLqI!go1`a*B$OJFuPXL>s3MhQsOgp7xc?D-hu;fEBHF&ua z6T?bKVVx8`VZcU_+ne$0I}2cC`;i&KBd|_7j=ba?r(1M&Fw}cHY=SjtB7K)|&MzXi zo_A@E-F~<+d?YmA^+rp*1bFZ|2R^?}hcww@+&HrVo8G6gKSfm{XN)HmS~MJXw@{F{ zKM3b!WPsmmO4GJP(JoCRYO>mwOgl0B?dft1M< zxpvOsel2GIwh06_E={w%td40s`fZ&XC^GVd_)oZ*ELZEUeQHwc4DFAKzD_%99A%^huxh*(MpL4>ki|ZEa*tHzxPu zn6q`S3{+HtvE!2#J(aZ(b+@m;=R*?k`LtpzIDQa2^K)^yBn7>_RSoXP^N9auDae=^ zkCeG*JY<^-ozud2-GgosHIe05%H@)w)0>jHisZfd^ z9ClrU4>xv@%J<*tx@X(aof}D9jvS+}aAbF!^XYHW!q^bD3l1cCK(10AZ8|=au->dD64Pdqkg#$lr`@In zbOGjCXOnG7nHak~ozDIii?5F`Il}r#RMc_9%5PJl`DGBk7{3o^Cx&5%?0r)AA%QmK zUTSzhZ7Mdse9XIX-4MPO=|ke&QzR|qHDwilXpov2jivHSAboH#$U0lViB1h<9X&*3 z!tV0soZ*6dt1NOPOL@1v%27+t1Um#vY3IzXbjXer+&?K2OhwJ%`;!dVQdbFU<`qK4 znK-ZuG{#EPrSL^02Hf+M>DRM1Q0cY|gzXAYHfPmR z;m{yA95xPG4-2+mC+kTBer|KcPW@);oqrgNJ?dfXyx|}+O&hJIoMAuhX3^;Jdq|gU zDh}A53no5AwC?eIvc)6_WNRhhCNBxNx1Q2exf)n`r3|jllZ2J-yU<}!K59-oLXYWZ z1J8Q|^V`Ej?TFV&;48QUXRWLT(;v<#Gq;qK4+|rD1$ykUyl{N+FcQTx4bVOIKHH6Z z7^dpaM&)!1XkY)HUh)rv@ys2J0&~CrLs1MBZ{$#ehaTjVtSBz6<^raPqSY8ZcHLD2 zx;J$mhTo4TOS?m0R$VHr)~5ru;_&`?2(JXcWwzN1mbAYu1l_HWW$1cDkyDb1+l6( z=}RjmRQS9O<-Qj}R%8NbT-Ait%zKx27nj3*$!a`sM*}2AInvX)BXFi#9;kICp+?09 zxFy|9!em%jlWd0;^PW;j2}3an2h?x%ggEIWymhl4@8VAMJst>k9$ADdbB_c@ZSQrRv-wuVso$i?VA`!xMhSEK6$AgfT8FUO~ z-ZUCmpx{bbCO4IUQtW;3eP$xqeGZ48UsFLozz46+QH2MBo_PFD7z8r+V#C5Ea4YkB z*g3_K5IeVu$Fk*UWnmzs`8=ck73<*q^{sFKoS^)oENROaKnG9A0j)6wuqb#7u!bYW zoESKlu!nhDwiQIhV$tKgF(d@k!?Y*6VYqk-)Lv}>zvk0aX8cj!pj*RmM>P*Kcu{Cy z$b!ZP)*vyL$Glls16||Ck}&Nu82M@kwk}GeAJ!zG@6H;~iCP5CUlifgj#`Km)&|kW zDpZ#9hNF4A!P#&G&r{S<`kx=fjoA+?t18RPRxqoWOLvHm$`k~+{ ztvD%+&Idj5=`0J{zVk6L&EJPF#d&zPp%4#i7LiCyW8M>Su)KT|6`vxH%^g!fCM1SE z^7BYoAYO~7Hm5=PQdi+-;nGSF%a(X#o-TY!6Ni0Z5!!Jf7*rM_sP+) z(RM4u+8<`KgnYH$T-yU(Ln|p~emgH%>?nV{_&E{{(qqX()-;^{dJ!1y0+11irwf zqm~{>Ff)G}%z0gIeej?}E;&H)60yGfjE?fyn$A#~$F302{&&!kBv@ zz-oU>3kOfYKqiNv@@xg^%-_e;w4O?1<xum+ykifBo&V8hruQ9LeMvn2d%vsjI0*1;}x7iVf%VCITJsw{t&@X{Iu}w#mx&~CB;rR6s*R}+`GC5f4 zFdKwCrbBT)lh3W%f)?QmN&B1_suCNJgUIi19c=B?2C8 zoro>B-_p@PYiYYpHL*1u1Y8keUT4;1nzAFEb|iIBKeb%yv#J8eR!j#)S!*IAdYBzP zIG^B*6l68rqo(q6LH6rB7(M+akuWnMCz(4Km9spy$!$e)b7C}f=f7v(qg|w9!nJYx zqUlWjr3~#d=Aq3OWxSG>ikFPJI6Y-M#7$5|*-P%2t*8L6FUf(qPy(J;l7!Du%2;?y zm6lzr#gyCkiAZ)AjeeF$MnWD6p0t1>qinQN^k>@!JtIP0`!Qlp2|R2#NA*l8ueyFW z>U4O3fr$r=T~)(2F7iYB=`ko_bA<#(4+908B&;?qfe(p`G4JwjkSdR5-p3YVY(f#c zmC02%xO}3i8;UslrND@E z-1H(9Ob$6T&jR+`@&y;^qcq5adGi_}+F%fANNqhY6R%m6#x9b-=Ll`nD3cTi4kn$^jbVS5N{FLVbCL9j6VI784RvP5Lut&?&Rgg0CK4H-UZ3`6> z?0gW&KJ94;tmj?4m7UA6#W4-zD#svq^HyG$`hL2@KLcvrnYXmJ(}?p7!Ar$?IHfX;a$KKlFWWX9-##)x z0i77o-0ed<@7`tW>?*|UPA6=ec7xX(I~Fuc z%CU1`{H(oD{Ye!C1&6|hR_0Fj`Vk_tv6ecYF#$cz>ka;TYPhq7iCd!Xkx(rWDDkVL zdIcufweBlfA)W`zX0JwBVglEjLQz^x6&?zdp(Y%pSH0IkF+GIkYs+{yEDgYmT}QOK zQ?ScmC^hSTO^4j8gbCG&82M@ts6I2s`^MrBel3~0=N%!2V`hViO$=rnu*V}gY0N!w z2Njwefahn~V~frea{1UN()5|}xh@z1*Fu5VY!Jj-wkN6V#2x6ezJSDTiNU(LIk+G) zk9d{eC(%H+qTnX!U)-SFx*NoEO)B^(*~174 z<_+}Bp(yig8a-)u2pU^vgU9WiXtmdjT-wU$6|N`>31_0XUNzf8-443ynn=A-8cg`K ziMcnNLe!3FgWgtivLZGPpWj@I4{dkTbH&l%TI0^-%tYABt>m$zO%%7+55R(;-OPLG z5K@tz4?+RU;W#e_<}+^sx$iHsOKY|-`-1Gp+{i+*F76 z_mV*6fejrwU?RwUEk?DjaadAXM|EsdaAS@TG<^uxKIyWVdE1uBtE>4++VljV{4Akn zp;hEFiGkBE>oKBHwz&x1txAZHg&`cfH3v^WkO0=E zclAGnS73VWYRrB*4h)?M^H$CoG_U2MR9!Z>Z>vLBHBWe4I081Yhk;Q3I`pWPhGz4f zz_B{ikRql@+s+O}HAz|6&`<&Sb7sJ-C$%8D{U~V@&BON{d5llCllo5*0BvJQ+!>uq z&x1K=u8G0f3f1sECmB>jg>jTIlk=ET#yhLsN-rEP0=Ha>S~fhe@-U~@{oFCcKNYja z*CCysi<}9 zFw_;iAkjxJkT~&B_^mk-j_IhN@{NIbJU#?P4roBfoC;JsHyTRqC85n{9W}Xrkawe! z`MtxlD5w-shZL>FRGx{iXJo}t)6)cHAJ<@Zz9zT|YoedhD*C*o7?X3DH}j##v=ht1 z>H6QaFtBJ6SRJzF3I90Eyz?%_J7Y({*-?$8TQZWGhd99K5ogGkci|AdxS9T}+XIE% za$L4c0*h5GfLr6oR-b=^E_qV}9HC^k-VRy9$}rKYQ6GcH@)dDlTs&14$j80h4D=Fz zO)7HJak`2xE}Q0nvX2blnp80uWSyf%ran*{BoE)eR-kusAVe5tqJqh2a1kDhie-`H zX-yEZy0(H^GWXf0Sz%c5paSHjv(Td}0|m!V1-0Y=u$p>?3=^z`4AF70s< z4}(hm2EtyM3k{d`uw&y6o?^}mdOY+H)Xgr#1m{|~@zM?k2A`zmtM>6szx$%dc_qkH zjl;FCCc-V39JI^NhD)pGV)MlZ zgG5m&gpiO@Qr+iDGD<=S$qGq{Bo)zkD(#(U*VEp6Kli!F-XtrlUsght6|(;4|Drd& zyr26%=Um_MIU;ag)J_%_)M1KKC+S~wlGpWmMNiGLXBqWXB+2#~GGj zKXoNEY+8nA*EnO!8FgaxEQo}t>Eg*DyK!(t7B0RS0d0RXiNl5IM8j)4)pX%ORlUp zA@b+9!nbP_{wZf;Yt=$-q{=~b-~50+ElWqKWn-~FzlQu^ZNEq*Z|pzRPc=Tz;d?e& z5V4N|JT~0}T{FGOU~d3AOz9@VB2P~D)obDzdYjxDrw>kghHx>h22>1&f>w1k9o6@L zPd=X?H#ilfAU@$5A2Bioe((H6wcNW&^NR%f>e6}?IMnb%%BEm-cr{fh8{l8E zOxW^MtWUT!klId9BSj$~66|2V`RCaOS_5z{JRH_-TnT@?)bQ#vvK<%dBy;lq24-PDY1Rd%n-Q z3TC=zqV2tF)M!wJepO|?VZ{;{9+-$d>Us1-jS<>g{-O0*Ekr|M7rC^00ocU2kkxE` zm2j585T$q!?s`HU%-gwf7w5vNRny>nR31o;biuR`59k`svb-jDX&}=OdJa^QZq3P{ zZV`(s%{);`ZzVV!^WZyo5%A>i(6WT-sQf+-X1%C}^&OSqYvqJi+(EcBXAV^OMM7tH z0?zP?0UK8t;%wALmuzD>P^)|Vk>DaC{GP1z@RW0n#K&~|?hL3-Fnpbr?(67anv3tTD%LZ_m>d*x{*#Cvk%;ioS{B6kIX(D zfbuPe;Q5y{e5GAR#YZ=R)Vqmj8y$^mAJRdmYbeGo+Km13>qzT5InwovaK2L`X`%_6 z1*2_EwqGcM4p|v;^?eR*y14_ty){RA)E8^_`9aa!V8~~~ouuJTu$(GS;wK*?`;}Qf zbA~qQdN-SL`5~ZNeVOhKlf((EU!Wu|q8Hj8&;!%=Vm8xm<_R=mx~dMGKfDM#hFamP z@3Hvg{Al!fNkIZlP}*r8=^8PDyE}0MRsmZF`+5E`+uz;)(bS3ycP`Ka}rwDchXS`Sx~UC5ZtTBQTd;TpnkR$+U;IX7ru^wfOD=mdI^u#yTeHJ z&L;B6Eer%-J;X;At;c?iE`H_j7W7-nI_6RU_fEVgxA-xzt04k3cio^D(#{dj`%T25 zbuQNw(}F+9C>rGC3a!WFxDur(*lXs6uOzM$^9>c~Ft3kG=*oc&*XKZsaRIn5E#cfA z=c3@`D!S_J6f`>TMVyxy5o_%@e7e^Rk1Gw(l+o#U-+3P{W_p;&J%XP;{ugyUbP8X7 zkitJHJPPfd#Svrn;w6bc)V=&UubpZN_UD%3n^CN1VNpi!Piw&~)sM*cNfkg$dg-G_ z6(E%>!p9BLEHh-x)c61R1g;V0XO%%nKqNXle5FAu%Q0bGAYAC0h&ESCX#bf896ag@ zO1+t+^4l>uW?X_wn?i{D^a-?e=ohZPC6m{ei-6qi(_wjtB92(~kR~jZ#h-kl`2YG*@P~K-G92_`|>CHTjMKQLWi(t>7oh*(o z1g#e-r1FIbn+pT*^`cz3cw+~KMk<2AgrV?a%vdN^^Q2vV(VS_C7tX!UIE|-E`9b{^ zAS_B0YlQtGl52e7@WEz?zh2C7hlFrs*(2I^S%sFLiy<=>H$r#OQS2B$8vm%+U}wV$ z`13LusvFqv)s~7HU42}2X(7J;n~R}=C$ZIb5)ny6bB+(bkr_J+;H_%{Hov(1(C$L zs0LfD3GdOj4B}0m(4L6xRH?CtZdVGDxO!ESfgOVCsSsaAD3b()F66+4v&yvK_V{ z>a8Y^W-%tgx>7p*odY!18i7Q~8f-7p13~vtD&FXZEze!Ce@+F_ags!%72BxhtQ6w# zwv$?K6rgfPIt(vbh;NHqz*buxzsmv&=_BfyW`rgd1o$gr_`T#cX;>P9gS*)tdOC#b zRtZ3No9ago_?A%8cjmqHI^({yS zeDTGFBK*NR4XyH@$&$(}+C_ah(Kit>$aKV8d;CGgNPtsGIUH+=#da$TD87(Swx-rY zhDeCgwP#5BmL1sqw}`ZMN0{W6FGrsfYcc5j7!WNB<+=`uxp6_dkf(2m9s9khaPnob zhTbGzMmhxAD@H@HbOv3@SPY2;6{r;@O^faA=vLQb*x7spI)lc56HgednJ$F zw<2(d^$z?rSPvS<9`XG%KhW+(cj&tKluo*piULlXjC`I5W=mc8{@on4UC>7~;#B!} zQ#q9RDTQWP8pKGan&!rB$6@<2;IPqjv=b^&KbDOQlGnnBjn;T;?L>@LJV_oJ$FaT- zB?rrfVzbs75eqYaw-h z4y+222haa*QTzL9Fvl{4btRW`U21cw*@_v&=VAeb+ayq_`O5cg+rSwg1+-YY4*kA_fP%I!mAftk-8XW?VTvg? zY{~)LF(8Yp)!DOfJwT-GCsK{b?Yz;3U>v+H3H8c@#Cwwrwp||Ns?V;a8edE}594K+ zd(a7l#hG|2!4l34#ISyL6U*NgfqXw2y~V( zPR0s?8=T5;O?eQ!TM7`qZUqgyn+Tcnmf%(O3{W*;IynjFRsK$(KW4Vjl%C;4xMHSQ zCHo=Sbs!WBTyl^XYhvr3erhsw5&WvIh8bJM;QnDBojrx+yF$glzYT?%64L1Yd^_E| zv=F66Er+aVA83BjMb>I>hwsxY@&59~*q@!r3xYMpinbJNPRWod7xv-g`gnLdt_d7s zy*N3|NYs$NNS~+%!J`eaptWcpDL%LnuODNHlx^nla-#>%_Pt2lBU-s(J8R&}#vpKg z9t#mMNod`;9uLoph1zm0XbYcDnuFhy1qUK9f8%3vWXf&QrQXQP`+I}wzWHElRYSU? zeXzPT7wvNh7Mlc;;w@Fg*0`NKcqvB5(hQtel!k5GQu5nvfOx7V(`U6TFJQ8bUM`)5 z=XaGrWtkt~RYj~a2!XxRgWIW+9}#SqM9m7oxnx zA_#e3h+4IAMEBcmQe|2Vj^l5W)+g#zW_&)XKT4u|k1N9WA*rzV*)qI#-5t#LuK=pj zgwpY2$uo-@(9m7aVTzD(lUj%wna*3~6{5q}3^bCvPJ_OffjMO1zXvr?&2v=lXA#Ei z4~2#)7?81Us2dHfn4c47aSqjA}`6OC1SD z39CrQ!!zWnk^O0LDou?X4x^`H4w39vhiFY9T{o%%z8kqdt_~G;XYILTILu9fWzs+le(Wb+&XJQ)pvG5R$Wpk|jObc{V*8;zL zV(3=f$NHcy==#YJo!Z@DDq-`=w{9vF%r@CQ=z@20Pk~NHHcBm64Oymushs5KRe<`1beh64dH!qN;E6;v^amAj8=1EM(=QjYLZdKp z#U2p;Ss)HGSb_?qjK-@FdZ(ZeE0}Lq-Ppxzy_cuE0|oe7ifQaJl0J~6v{YNa-y#JFHPnn7zCLcm?yXnwh7Qr{Ru>AIFH;i$qf>3@Bq~B?Vb4MC5ET9}B zCh*wbqDMYjOhvOTvDo!U7AMAQL1B{&uAi6=z2htB@xx8@^IbV`^Ror|w})Ek9fsc8 zq2T=5mdNz)#$qFHD!u$Had%CnzAB$7Rj#AaK~;1#?}GkUM}y@8E2{b_3j{v55y``$4aQX+)Qb2i~x^uluIx1`5pDSfEyiHS53cb>2YvoFxp!tanYKWt_Y@9 z7HR19%@8MvD7+6!gc*;7cwT{hLudXG;p!=L$k0>p>Si3}GpeAxyMWjpJcT!ICXoDJ z5g0X4i}H0W)81W7_ptod{2e(E!#u>56-Tji>PT?!4dSnF%SMkPB`7{Qo|H3R_Wj`$ z_}W=Xij-^60eYy&){9=4&`#R&inym4b8z8nOPtix07~1-Fhk-BiS617E3b#6_smLE z{K;~58^XC&O^z7%ei+td&O)_u%TfA~ITgyJi__cpp=dCYSOjFkvdA&e$vVj!_qpIZ z|1mhUA_c3LM`GXi8aSFe5dydF!1CM@y3Fn%2>t{aJAD|5H$LB?AN=I;-%=mkQrV0n zx@TefS#}S@Qz^)~%Hc4}1Uy$h8!}Q~lTS7=n6LYSJicR({9qFrux$SH4p(sh6vR8( zS%BAPeVp;J5k%Jv_(v~!_|fP>aIq48Nn4L2I^NT@-KjVxalDIdTj+A&13PM=P~H&{>&BL&BO;=bfDbV8pGJxqUT2nA@!jMKUSf+$QmBR zc>$LpgBGk;cA`%gw{(p_o5L?j^`{wRbNB(=_au#ext+g_>D&t@}mBafj$DuJj z0Ovjr#iu8alficu5Z``}G;2v4d7hxUX_JVF;!!ZN{75YH^TAo?AHCAR`qw&d$LC2^@+MOl|XPkU+;V1-$$EWzlFR^UCas&}t5qtL|P<_mf%yxZD zitZeT`oA}5>&r%dU;YjH?frCgoX9#RvvjCTjvo3d))As0Bwd?xxmaauXd4@YLltfj zovdwO0zc?F+b~FpK1UXxqcFo%8UH#>gJy#n>R8azajH8&gE2xDulQlqyS zH_AqGA${?EA;j!mhyE;opJ-Esp{%bm{>}(E7~BZgG*6-6eHyRV&w700b4dQ@&%`Ro z7$n8Epn547zNn_dmA{9H#o^k{at|7FNNf%a5xr3MZgcKb5zsg z1+n%N;`1U;Y@Pp`oYs+o>T~Tho@s?Q@{35whAdcWB8G|iOR;+DFca&NN++NVv0^HVpXNSKGW&drAn zYvjP@s44x_!h>w%1`wW4B@l+(a*!zx+fSbFOdpyr8zI}*7fJr>+&S@io4y>Q;a008(`OvGWsgNm8(ff%y zC_MBbk3SrPPZkQeB=95oEWI5ju`K!O(ml8=-W0s!Jz-RJ4j9N*(w_KAD*AGjyeJ6( z8=Z36pWDU_ZK=fRy?*E_Sp%N&LL9I3i`~^SgB$nO5Ed^gg1*zW@K|^d22bvTf{Yx5 z6-k){ z*`@@-16us!<1#RBsXolx(1>@E13{p;o6E1bON0r9bmrd_INljW+@0#^txRWl77_+x zgViwpiwnG-R)vPz0L#L{aP&=<7nlESqJH}cDO#I_K36kf)0`mO-ere(BU)heTS@G3 z4k6s)#aQ5x4ST0Eey4B`4DmI_RF7eJR9_#2q8d^+p&DQ6CE*oiJ>(f5=h7iZl-QmG zNrAN_+S~!PW$RGE)t~Afh~P{D=YaExByyB#VWDvw@bmRN3|C`}%JOS;%w$`zn=MP- zjEz7!QVKuSrn1aN5lt!EMSMS|lF6UFu=uw>)i814lR_R-pOVF>;n&Euu1n%S?%oLt zI^yA|^LVh`(m=1r#=(klLU@sG1{YT9VCO>za5z~{p7XWv&SWZfeZI#Xwrv1$fi@i5 zwEz!)NPt$YT%2rQ4%D}tuFfig#mOf@@Y94Z_iV=5_iKq_@DZ zG$7=|r6P#*z6nHDe=W$a(#M{&L#XoEP*4SFjQ8J9WABf_pL$JrZn7uKA=PqEhn*+m zi9054IE){hHld*42q#RR#icaP!L>d+A;CNk9A4RyxHILDdfE~7!%o4Gwd&OR)kE5N z$qnoawu8{`irA*Ifpa#RK}1g$q3D4LC$HoS>vxvml`$cBAw7i}jEqN(&68=)U>)Xd zs>k9*8dOmEP<-=f3jD}+!AlS2z&Xr|#_O#jW)DB`Y42x4#KeVYwBCx=Boso9=MHR2 z-iY~*b=0f10u~#sLObV=Bxjo|ZmcrG+VP?IS=txEXKP_;yce`9ZHM+)6FA{m1H!3` zdEZaZ>Br?wQo3m5-$>lB)&(Y)ZpGzK9MK^upHm*24k=DD zZ(HcO!JXmQbW$G9BgJb5uZ!7pqm?lRX3u+za<*GISx9Ve8Aq< z3?zjfu=T_k+#DYU?@UKyoAE~yw8#NF8jDErB#K*9SK{2$X?XKOJcNJmrHemp#y_G; zD3n?Vc3J)Okh>Jq>Y?O(Iy#~hcr#55ttuXpj{w#SWu7o%C;b6+N---?jFG^-ZcE<{oDw%gApYKr0x3<(mq-T0xOjnn`M`JR%k=# zywNC<%j1lEqcNeP9{AbCD75nAkFdPXh^i7Q;g^kaX5(3I<~7wFJkP~PEyKrt%BV1^ zov)nWi4swMxN`kr9Mof-*O$pCaJ(TlwUmXSi@J&DN}g)?Pr$<`TVQu+1nk3PMUd9yJA9p>1?0{W)VMN~cZjLw@~y6rKh`4rT$+WgL0OoQS&7xXmPAr! zG1ykJE@(;^QLYU^Yt2fc)|3nVJ6-6#vlmF<5n~iT7h+QyKW zIl^W`vna4r*Cqnb5~JKNGMMr!gm`J61lh5+aO6`1J-2HIIx1vgq-g+{x=X;vXI5Ap zF@#<Na9meuLG zLq2tsK-<^%oXq$*e7l{8ovFc?()p8IcCNvuKVH~-XBrCDS(|KJR{{Hy(lGU05~yxe zL*bqUR5wGgb%4%(6-kD z-8JIyi?K3Za%3}PbRme7J)vJ>5oulTMvRu5(|JCJ;fMT0(p9mC6Xq=9%MT{fnUnHR z{B;Tpe%FFiTbS0c+5*d?(^^pEUORPQqpN`{3roCXn@;4Z=!Q@++(vbiHr$?>-ELipe2Rbf^R_ZQTWd zv>0}NXABI5NF2Aq2o#=G5VvMo@SnaPZsJP3+8SILtT$DyyS z4n7XJfYomT#h2AELQV{VHB)$#T37Vzoq?yyQ*ru=1Qhrdau?Q~p*d%xq1XKf8GW@B z6h3Ei;}}oLBh&z9ehUPnb`g2=eIyD`M3BnAO_=Vr7W;0T1Ww5oD}!8N!{d=~VJ)R| zJ<=fcO%BMW)^($<{ST&ZFamJQE=LlxDarkVo67b%!K_Bh5hdZ44`7ixB( zPdukH3aW*HjA3U@rbLIKz*$UuT=USqw~(W|cH+eYYp}IEnqTNr25qCtIfpDw-lfw9 zM-&9oN}Dyf%sK;opOqrn*-S>9Yr>&jmxz(70y*6zfYM=3@LiMzt&jcqQH$53!GnL~ zul)u*zbpo*Nfepl_kW$F8Xj9UVS8&VuItal`xUD&+&2JyTU%MqfH8AdtVhc|b_8Y8 zKx6hw{!Ldr=oC7koJTG0c4eKNLu&B*V+6~l_K_?4ZS>P;8QfM8fVtb8F#mogo$0<3 zRkMrWWsQKOz^us0&fKss(he z&xHj+MPOfd3Z0LKlEyX8AQbej>Y<;F3vWz(zRKRtTwy$53-1ncTRVfUV{wV#!O4?dN(3 zgh_cOpI0t|GjE$PJSG!2HN=40&QUX#{66%82;(!j(T8h6&VDC0S}4Jq0yR|mua?9it^u=a+(Df}@GfU?w&ki3eGA6P6*@#_Ep8ylw4N z-1Ud)>~iyQ?+Lb!{yj>X6UULWEm^SMMIFOwB{^8z3|&p%h9kpJq(`3i&z(+e%`ehP(;M)2i43k-c^Ctyq<{k|QwMt)zUvFi zJccEs6!XzNS`MIMLkPG{4aa)3N7TH4?VCwTpgl|n%r?CtT{kyz7v<97du%itpAd%P_3NF^Q;Cw8H-pciXDRc8sb5A_!Z7U<0O0i%QrB4N& zAGtq+2D#B-8Yjbeo0oZ0+k;>@Y#Q9S&UB%p@o1eTq6_L-|D(#B z{*o$zF|yl0x-AjW|JQ%{Qv{ z(iGEVr$XgE6XtnLgloDJKz;-V1F!7xx04L&&ex$Q&Q^mk{EC>UN7Me`8+^ORWauhg zL6^-IKqJutw^4;C_VEFs&UsFCX#*V46oK``L0YCPgiZ~4F#B8NC+xC_M({HTOV!(=<>zl|qtP zCgHMYBb3(r;b7rX(3;ao?j^L4dN!v%p3{s&S#PF)$pe0%xEXakTu{KY+jC{(&?dKz z_dDo<@i*QOhhIW65M>8%SCxbEwk(`5=*{-b8cb*2%=a2a{2oyUQ=Z$yi_u5HDw*-D zrDu^foq3qCKbCqN4MJ^>f)y}dCcRh6BI3Q#`5LN^iCz}aUO5?BZWdtoAup)A!ZgXPEF)~+#O*b5fgHJd)Yg)N zWY%jp(`w-3)DoFSehkyDkA;DvDWKYCi>s_Q!NfxgL2+O-+Pob}1_RvKT(5+Z9%_u? zU5dgX5*+Ux1V?_F<1*d>N)6}3lC3A`(eiy*X2(42L%Ohfxg$*b`%Bm9yEG<#KiYk*6{zNJ^3qF}@lH4q6`>^RgO(S8l^O*&^7{ zwH#fi&qR&wTlltF1~}Q@3peguhHIbls4?vf=iXI8%`+y0;pB1X&Aub=xe^ebDMME; zY=(Zl2gEAI682Vag$$OjaB2$1E9tlBg`POtR}~7IcWdE|+9={%wG9`VL_wvJDhTz@ zbM1D!p#NYd-(hTwts5OVBmLoMAEk;qE6wmuQ7zUa%(Jf+yhR9b}+iC5id<&4a?iJAmhq)vRfemK99G< zCqfRhN47x!Itlvs=SsMFsTiyilF;$wH}cY078{o>fu5^cWZcsuAoPsm%jYGbO6+`U z>B830PmOrUS_kc|_P}k=MR;w>DKvQ#jyd@v@N|lzPe*l8!y}A^@JkM_obx1R_=wG& zlYlDak%a4EI3%PHs9PgBjeuRb3%D!nJ07zRKrlI{rC*nl2(}Mhu1moq?f+4OqLb8& z`%KJ)=DZ+XXtHEtJH2t~I*nRUh*LTvF+RhM-eew8R?ZAimGs8hKV$IbvKBbHVipwd zn?vnt9m!6)9nhn^gDwb4gY8m0(*~OHZKMY3off0Rr=?tvat5}2sNn2u*}AY}4~<_N z$0yHKLgUA3@Sf~4y7XA za$7v}-~J=Uc8n>ezn}DWKcu4b+9WsG8)D^c;ZoKp5Uf9nxhKYhXmA2oAw$7RaUn=I zcGHgaOUT4IHJEZ`A5AKGN);^L(EqaHP`Hg3H+|fPUk480lFcUfA(K z?EWDVyYFY>nLrBF%J2Avb1HG`R(-Ua)I=Tk!&+^!XKsEndRk%eK*-Gac(o$k-mhC$Xbei3Y+m( zp&|TMuV(j2G>9({f4ua`7p5yJ!LhX|kasZ>v^qLS{hmO?M@@L5IRtdp%z*Ly3KWGX zaB_E(AhG=@WOF>&behrc^{Hq%dmkNEo&o~}a$wD$YM4;B4kuly!zn9`LFJku(RFO&Ol!SyXTmn{KffL3RzzTUN-hs-oV-6Og*u z3R|Zn@Ru)CL35svwDtG!%QEfZO@9fbbjIT3#aXcANdq;TyMZ`P3}$S1U25>2@ei^Z z==(f2&;C7(7JB@0nnk%EJ@YS2=+0-pz@GA<9tIS)@F zSMqepY==IQ)h&gV&3Wi>R|{SDCd284o8ZrrCYUgi{m<(feX(;dm>lx~QudK-_hY(X z=1J-qJ`CH(*+KC6Ca7Wg;w6`AN$22rcoG|pvX7@TCf#46XC4QZFISTn^3|B&PzouG zCDLWLo7~Z4oq?2MZpDZK;4B%Vy7@X)IW~m&Z$AcxrUIB6>4dFL*G(MiW|G1`1ZH&Q zVUi-_MzkK`Hmvi(dk(>Lx~&r0S*xP^s7PvIAq0XiTZ@kwJaY0O`u z(yfg{PNl&SZ6k7ThA$e-eMwWRB(U_j3>KuQquGgNv}Q~hShx?}yaTt#1fgt&3>SB~qbkr6Q`F3Z-4YM-sydOE_JS zhFafE=&@?Xch_Hr!DWq@lDL*??9b-?4~+q^OahJ02JVWHDeZsR##`9T!zLA$2V_2< zuJtI?pId;xWD#5&EpW!%eDHqZ2_u$Nkm-i9_+~*4&KaEp3bW;C=mjq@q0?dG{v!A) zmxBERALxU&DbU0GzE?tamyL8BO4{gw+Bp~OxcQgJJQu<7(;4*dL1#F%q)FRV6=rZL!L_1)TpKB?b)? z%Oy%NwsjQ9r>%es8qdjt#xZa-kM;f1jOjUh0}#wC#+QEaY%LE1-@M0E)4z>saz&)~ z+;!T&U6Bl=?E&|br!eH-UcA14KR)eFqi0O2@ax1k#QFdIkUvk!Kcix-nh+0{%uN}q zAq0OM`bn+k?+3a4>|OKEh5FLrSP{4pi=Qp0uYw-XA7wcx?(>G$Lw%h5Ha2q_)k5hI zH}E;gm5pUnZiiX3s$tH))M-OR$kjYgbrlHs+olEWH60uJq74~dP zhQx1Da8D&29VM^QXP}1~M*B#YvjbuGX<$lz4{5N>Wc{`tB94}T-6ky<{$Vo}CSIWf z2EKUyq9&&NI7ko7%wV}!A3Pq%=E>)2IP=DFNb#4)qr)8WH0w^9Klg+a8uj3;=0$A3 z-J)qt&M;uO4L<&5y*8cUGEwD|z%s4a5F4 zz~9pVotm=n=Ttaja)eTU!7Mm`t_fZ|8x4D(O@rs>D#5^E2nJNKPC;utell%e-29KzV2l^F;i-6KK!a%bCGoz73A8`nfId~PCv)R@EGT83l8AA+R337@N1Lhe zXABoT`8iPud`j&m)zKkqtDz=#8iw2MCDE({*zIo!&W~=Bp0OXvgblgyq{$Rpb@uZI z|5agr^GLk4&Ig`E@DLM2u&^c+A79*r|Bju2C8?`e{@^I?J--*O?3hICFHZ%-SBEfm zGh6SJ7*}$d8^-&l@%;%;NSD!R+LiT{%MLC9{Zp0bx2hfjr zGy z8{8JJpR_5BooS+EQN=5Y2tO5@R36GkGutCnmwgBFj~wBY>t0CyuL0WT=+d!fc`!9f z3uku}Qb%K3{KwWlL3)VT!H0b>4Wanurx3ET7empIC~*0&1S}mGE0;Y&fnB@Np+7U& z^Lt5r3WMQ_z9Z3)AJ3=vMuWAu8V~w3f%(4~tb-`xz4!j1eg7y9^(&(q0aBdKl6VZa zK1+71rr|n+L=aUEr@@BF&_D2i@0yd(XAg^qz_~H7($NR|_cwD7g9v(T{YDSlRk8D0 z3$`r-oL8$1>X(k;#5ca!(|?sTji|+-&4bieR!l_PF-mGWNN+(r*|Z@W?1>v(No9Q* z`vV~V@Fe=ZufzKIPO76{f<|ppRN+xMw?Zxq?AoR2g8@a9|1bs;w>F@yQ9jkWcbYhT zv4*D?52GO3(d1IDH%yp07kk^9k?Z72=1?g;oE`~SPmUh(M8Uoyex_s;R)#X2Bm4$+8s`G5Q`wAi z#|eE#&BN9+I>hi?2!7U6gr^xr1C`b5U~HE^xT5$Ahp8QrG(6pE0X&x@HEHD1a7FC-^dEJ9pUx$dU=a4L7T4qj!?*cI@SaQ!#;lHl71mLZWLQCW9S8=k-~!^e zUIfv%^JrgY9WGE=hV)n@FHFvLy+U#L&b z!(nQnP%L&Qs$13Zt!^PyF^06-ty(zTCxR^+jdX9<8c+xbM%i!qc8y8 za_#}xt$GSJ)+OMsj4FuVV?+NKZoyWG9aJ+Y63?x1g>Pk1V7{>lzh2BHE{$=F4>}*b z7_%+ZcrJGQen-likO*6b(w`6Xv9Q7))=3?}&MN}2vFhQU&pZL~Bo-|%B@w~xB7S^d z1{UvILQgt1fL=^4*mFLh{;{9BOLmbXgH2@i#YkH4xdrx|7vSJtJ?M-KfUB*GSZ}VZ zMLgONQgZ#U>s>leSmr4(G=zC;s?hvhf(G?E!w1YN2Dh;GJ@@P-r zVWLvO(^{h$xKn2xI;yf+d}Jx7((#sd>aq7_tUsouErX0%H>hoJGci-2OY?`ulCW7z zvDa)I3Wk0mw`OwCaq1C`jvpYR5n*&m&_(jKi+N}>c+NiQAS{@wibp1z(hp60@wB@u z{Eo20$bRN)I}C^B09jJHe>l`S4@1+5+tH(MItap~$lUvZ*qXD4tKSnx^Fzb=}1%_@5BVjKh;8evPm~OBZ(%#FkJA{=%VW9xT zTL);_f`d3_#TwMGyvAEvPaxu+>G7RtLY% zY({gP2sAkOmgWx+A@;ueA$k~3MnBtv-mG^WbD{}GjVT1>#9)}ZI}groIR!6cve9tK zUiftJ6jpynkWJjq`NrRAzLUrzogrt%b8lt2~C8?y8oc2z8kJH|JckYYq zgk-NISxI($vVZsY@%z)idY||EzOU=`dOjaYG0*Qn6KIcSgOCOLKkk1;Gq;}!d*%+O^7sp(M=*y=UNY$(>#P&)vELBs3c?PkVzqK4YhsS|j!8+Q5lR?z{ zGl_PM1x2-7V#3Z4;@uAj&ToM8zAGT+Kq5WwI1AFgmBYZV`Q%IcHi)+~CEjcw)*Q@d zt~(V_P7=edE^RoDF%!q1v;z0S`()?oVEEf93!eJR@W|9$sBJFAO+gi)`8Ws*O2d%& zN0Y&!iT{7*WOoFQ&kNz9En~b}7J<6PUqSM#S0p^R3YP2+gT>?YG0So)23)X#vHw`k zYu-C;=j-#KP%99=9NZ0eU_MTB$Rz8M^D*>}DO!e3BXRmu;L`JHcxH4m@;`?W-`EDU zozloUvNd?1K?XzAis`}QHdtbQ1o&6PsQ1S}jAGfKJL-ub_jbHs)4L#;BX5p(*EXV$ zL=p3C4iST8Nkr}ihk6#sp-oQ;73DQ?`D3-@*C{@pkG27$@H)6&m56Tsv*EV3Ck&KE zbL%qvX=nCl9d|u;H~GqV;D7qL0~bGVr7igwGZsVKwGv3!&*c!WG9(E8Tn+YJB51>V zPCkVGrRF(H&>dB5u_}a7dl>ecjh`bk;khQus^|D|d*vRGUNatd-ufl*aYsFLE|e8a zxoHQ6!vG`ycH-E}@znlGJx(iZVdtc~T=nZaNa#M6C0Nx-UFO9?-0qXGT=EQuiH5AlNUtVXKuKO>j!*CRu>LpO#8xP7^o{4e|et0=*E6A@? z!(_%|eiF@`1;;i}r>+q)?;1eJiea+rzZIar+Zq68P)63u43_prT8xp0U`+^GuRTf}BV@gL{+(JW!$H-UT zd6>I30LDaJiBjJl)N?Jsty_b!c6SCySL9KLx=8GO^@0vMtb?1ISK{k@Mdm5v;#h<^ zj{R9h$&M@Z&9gkT8`#5ry-)=fa#FxmrIJKR*@6DuO1u`Gi28d^LB<~gv{2{4P;n)# z?qpq`$!oDM?II0p4Z_`(aV)!fzr${>9vRZCVTkNb zOAcgBc0+eG58I~p(lUodq-&2MnQ?JBTzwh~qyLS=XBss)cD5Kfb#t|^hqj}XNg-Ny zE5RL^NvLq0hs!q!3Kq$Fri^kg<$iCUZSk=n9x|3Z{m^XEVsHye!CMox60+J#>*-4$ezxFaQ74Ja zr3mPlAqyVnCD?c8CHdLN^4TUM^fG@osz)ECQ&;fd+w?S8@U0b`^xcRowE)#+ije6l z0=(^OP**AxAI7WD{&gDgcb*k<**+y@{f<;&Q#?HFj)pzSfnd&D)g`huc)oTLNJ~s~n}qGk*567UVuHLv!O8&?{g}PVZvM?~=tGjA3l86^VI| zBH)luJ_vni#Q2*b^sdzn%K4DbRZP4|MP?|{{(jc=J)Q}6*~iHNk2&ydeKy$1M&R+^ z^YQK9OxUqAk#^6W43~B@kD*ZR|^Dp z@fS4G7GqkMWAg=;_8yZ03;|z8mct<#5QK+)J ziafYyj|IN^pu0MUh)0Hz{m%vXU{y5ms|@Lq4_|EG$y%;ykWDX)wieO+HJ~^tGNk=8N;ARSrX&h?+I4> z6r;LXEO&~W6byY?NXgoADqpn*pGoteWYY;0Mu4y*?Dy;Sr%fvM1=%Gr2RP;fT;9_p zs@zyfwyk8oJ*g(H=!W}r^2%nIHg%M`|N9`&8_mG&XBihwiccplhz6UX8^rLH5?X%I z#Bo(oAf+UPO5zb<>hwUc?{GL~Y?DOe-A~B*0xfuMyb*=!)bOq6bS$;@MY*spu5#oF z{BTbd)SiU_?+V!vF4z z;g|qfNhR>uaV7+hv%p1$qG0p8lsvS}!zrQJI2QGh%^>;Qyvd1>q}2k`_T^F$t7yz> z4hGYv^MZV}R^~c52-QD%Q1Gu9O;$x??YDRgQd0r$^DM?6XUxfuW!Pcp2V-8H^htR+ z>|#iAcZ-LDLz0ddVWCRoLh1y4!TES>{W_fXBZDN_moRsPDLd1$4QjD0jFvwj5)Tf8 zmu56}r^lnX%mXUa%sQyTD~Ywm4zT~Z0(LE01L^^~)KnaB{_WGaU$+JpZK%N9GAZ0) za-TMo34zz_O2#kJrR%08fXRRCJXoFuKk^yRar;y9@kA+}*|PrSmjRMP2`Dxv2Dfhz;E=E-^?G!c z-kc_e?up;2e(4VAIxvUImr39brAMSBHVus@h7#R}>fEmv*f%>r9(_K&q1M-DL$qrG z*h?BR_Tdy5ufH2YW^BfLYhvJPayvY0YC-=i!pK*?#!X!(3vxZ51TQ2yP)0WxKF7ww zs=RWjJjWQ7(@$a1_Y~Yx*AAmW6}Vxy5c(gZw82Obq}|v|<~*PJ2UL(x3rpyNClO$= z(i!(3<3r_{{g|$Pn?74y3w4jGxdUQDK<|`GY<8WM8NF%Z#rKk74|uG zfWDM8{B~s?^oil%Ao+x9Ze5FOi?XmzHJs{xJjFftaxwF-_@ma1D`Zw(KFgN))5e{` zI4&<8|M7HC<;GJIl+WCQbsXfrPQl#|HSq0`TrhB6PL&<3(0+pttY2CUhYxK=j#4Pm zv#Q4=2~qs8UmE|_WWt5jtVessQLuU=bBo=G;c6}{!f(eDAxlX zU5%9Ms)DLFlF%;9lN%@*gky9eMhDbE@v0h7Ub~3aw-n&RQCV8nr$Jx%=Yw+Z5&A=( zgW;_i;3WN<^mS@u`uQ3Rf4c&YHYg!qXN=qPL>@gD+j2up9f&Z6L7r2VNewq!l5}i(8T8NEJFPD8cE- zn8k_-ptb%HU7b4zz$eSXK#6mzYPXmq6QZWAqH*K`+ZT zF8V7AH5V))rzr}GR0Q#Rudo1BwYK-lySJ4s2zCHeW#mosU7QL{#yg0iK4Ww zu!TF*Hv|0rA5&@ZW-OFqSvV&N@SbnVxbrti)5c%4u%iMlbw}Y!Wm!0KGZ@aZ?60NK zI8YQDq`bA}RCx7vkQ1vBvuXkx zp8nZ{zb`r9&G1IJf=xL4T`o2x1f#v5ESvL)l4s?uIBRqkzD{bxz7u@B(`SGm`0lXq zk^o$m&&SW*rC=)ej+;3x9-Z4GQFK}ninM&B4lb$G*l;Qu6id+u2RqPAdO!2sBx#wt znbNVZE~LyQ33u5n#E-75OOWukePEI=_urG#`0SzpFYu0GlWH(AFz#U476}O3nu34l zvpbcI1Ehx}5$Uu*bbo)JD0_P`hI$C8Fx7zGe?TI87N9QLl4S{oxTKqXf5z;w;>LRP zONjxC356)-u!2SApA8riI(^_*bU_jXk5%0vDhvl_gs7Q=-H0?@x50DZaBFgwi$&k5Dw zUEXEd{#F+GPLXuXpb+ENMRP44w?o&8H{|%zM&NInD0pud0mEy|kr%B*YE(5LXF(V= zDc0k|%Ez?AU=KcBSAs7;9%XFVy|8ae2K353rF%~mKZGTk>nQITgl&wziVV*p+2x-HpNzOP=kJJt-ZD0;i>qVoS_Lv~IF8(vl|g;6)xaq+(((WA4e6h;3%=C5lhH}i<;i@WzmuV_n&tXbYhh$>1Ud|! zCZ&rL!E`F)3#>g)<_7LY_vMUT6d4Up3$~yQd!_`8bE#~YMusDH1IKoV+xaS$=Cwyc z%7l9G7rR1!RBEAoqccqE6h_-kc`*Kz7j6h{1j}SKRByRP9uC`~ii;weCQrwB1?Cl5 zNa(=EXq3KwnPyDS0?Q!>nx`v&(+@wn6NIPkBtgetTH+|yq&l5Ns z<_RWk%7D>`B+TxAM{S};Xhv}iOl2&y*e6+_mDxo1%S=GNU_6{Z!hwjo=~U>~SrVcW zhDj>SSLLBZS1#wkV;@_X)^m@>ng!z*ztzwib`Yg4dx?TbIdHEf!p_ZYaBD+3%o0g} z5;g}qlkWtI^(kcZW&^Rb{Ys2ea?mnE2h(you&B44JtI2>1|KPkZXBT}4E4~awukt% zCt$Z-Avk`J{<+YNKKQ0SA;)4kbZJdHBt{ z08Q72aF14Gz{|C7sD~mYQ}LebJborLX)8JrV}>Q zG_(0=s9@XYCAgDoia!im;i!HGXz$2|jXB*kR;Cu@YFcSjrXJMgJmY3vVEcA&3xT7D zC2o`oC-J{}NSIqTwyA9;Lrc9W&vqi022Mu5uma#c+evj7eIiTy^`P-~EAsMpa&JBi z1XI5pqRv$!IT8ZKEfs^>pb%t*0c!l|F)i25gcZ32uXJz1+l=W~^`QxCCa2=X{G<5q zeG2TIss)B#CqP&2B{`8H%UHFd_;#Qc-7co!dX;_nk*q_qWtiydSz-L>Aa}L261cq2 z0>#b@8Yg23^%k}8X@e7)GqVD32l|1RP9zQtxY7WY!Rc%{fWNLWuk!^{kh^u1+a;n# z;+kyXk&PZ!MCm~Oh7Q&}tHz;>-T3-z9_BS4#KoIpz=38`-aAJ+tG5L<7TqU2MO|)~ z;X)Aj*5mHO(eOok4`}`UM?%JbCoOk;K%p*zbqn9pU#F|Frdtjq(hk5y@5>}`9dk(U z4#Gv9W)RsL1>W9LaP4Xa{#FSjI=*ZcRdAh7lf6%8{y2oI_icy0LVLmOatUtAiiP~i zrC={%fD(82Gp0y7x5K*`Wkp($*FTMPI)@6TX_(^tD~zQgd70V<$DsP-LE>wg23<8Q zzthTGkk4)r-CwC4HhIBlba5m4OdKIE4D@h2PXGlooFIJ*A8XfFpiyuXtTa9h@yzXJ z?V|z5{!T)RAC)X`5dz^}jZomq+@(_`xqYVA_-aETH16Z$PfZu#J2wdA8rubpxnWSp zKTe7iC|!MS8@Rh3p+e^p=^AKea}_;|97@B3tBauOC8hok(#ZEk^B_sT78<8Efu}?k z*q``A#YH+vkiNr_ z@fnS{ZMtk-ZZ;1a6O!PYco}1Y`O$?R*i1nsk-KIR1=0I=xk_Tn`2KP^JPhfi;}hHP z_7Nvox&0W7)2f03!xJE7JO}5o{<+r2RB|_xk`;zKFn)mzU3IJx;|AODuzMZouVVM` zJK^xei}P34b$(~(4dkfF#lZy+ph=0?|l(u*%Y>CxY|zU z%#DJYhGTfZF%V;Sg@ZEd+h3V}3`g$|5|e>o6xVn|L@8sxgk;i(-%J>vD+y~Fr=aeu z1pIz(D#%@LrMe?>f=}7q#4G77;kW|#$jw&fYEPy+4)f`J(=BNHU;?C4UpRNZ79TMN zo!sZMf&mZq^0NtomSsC2dS(n{skJbfZ2{i9W{$Tmwt>xoP|E4GZ&O&Ihr6z6!L9Hz zkekdG@Qj{ud(YgaXHbL9nu{5WC=mv;EAb=Cs9r4cW{%4_MCL&en9qp=?SKa0&Ar%B z_?z*CJ5#8tvoVOylOcSkqXOlSSj=p(2CGIX#)qkD3pVp>#udFulYej zHs_OuWJTz=Ovc`xYg}H;0I?2`f^AL~Y-hfPTQ}vIU|~29x<}O^>ET?g(Om_WLPo?h zOA~j+sNhfKJ@9#VBSd_bAwRjS?=-SV#~@Ofo*vkSbxjh~$S?`VS<7Nof= z`>48Kv><(jDE+e~4`-YVM4PAD?EO>Er(bGHvFctTMtBO*PLcQY2?=HAhDgGBpVHxGIuGp@g(G~ZVxI3B=8z5~8@|uL z0P>9nh|L8PJ$611*$J#rhGTO!k$Dd$!=Q;F3XOk7YPY82(bf5I-M*4&Z;ymPb5ERo zRt{ulsiO0H_8!vxMSXQCaK%o;C!Srr(n&?lWiY9~g3L&;fY{ZHK`f#CR1A0}p(#E7jJbNq;1;5Lo=voBL z>1svY4=3rlD>0xuO;zCPQc6Zs63OCO%^;E0fu|0Kz?s4r^mg+EpWqdQH|D|EOXsMu zWEg?00?_i>M_>FY1&5GYI`5V@=<~MVr?YcOr?raU&^YFoQmLm6y$ooo5D&XFmw@iZ z8iDw%3v|u8<0yVy6+2}csdbSIY+YrG%`Wq>x>XJ3SKG2|?<6v=m}SC5j0kl*OK!5i zfjm3cF7g4 zr__Ozr8)^cI|U#2iouU*ZSd?_HIDuDCPK3_=})n3u->!*ih4`X{n9N!Z?I^>msoxQ5V|& zYS8mLCc=L**`U+I!F1nQ^m=+eDP3lZ4Hj~Ydp8FcjSEIY7Gg5sm(v=nQ!wyugnQ>w z77XS9*zLU{_`vSrx{v#GbYDLe@Z>*{^;c_A-l86LZ(P!mt_r36J0Vo3BONzniJ(vY z6I$`v7)=<{;o-))nE5XPtye7rgS~k~Gi8)~_@f3rvWDQ{wIAPJPKJ5HD_H)k1miz+ z5V<=O1-%YzcT%$$9piHFeaduvQ&0%Khbjf(`-6d_W31COkw-3^NPy(n9DL_lf_3+N zY3Gk2T9bSj-bAx|l6@99Ljp>yISRcaHQZR8xp>hu9)C?QgrrFss;GaC7UxjaLm z%q)&Xv+rD-g#>eptV50a;&|7+4aWo<*ugoJ`dC~cs>aJerBnkC8|b2+ya#fGYw@Ae zF?wTRA$;vV4P#4<@DH~Lj&$X~WT#Tt%@{VFuYS|&BRN?1{xMw*?(i?2&C0os>>Gbw zhr>^5`!iULE_=)|u`C2T!Gv4QI+Of!jsjln6&?BXXmpqni&m+j=vr7sO*|CQd#wgO z)YBlB<~4(BMl$y8Yb1JnWoXVw#TA(us2x^>o|RU3#($KWT3x5{yaGCYa5abzR}rV( zt+XT86)sxW(1a`V&};BI)gAOByk2c?=AGSO)*FM(zM8m<5_4>jIiCNcf_saY4asPv=Ig6Slz8qzPzHT8bQt{T-{jtr3n^f}L$Hy~tS4?<<{AFUJSI z8u8$=Q9k}{Is$7BmV@hy%QRhhJ3d?13O@{&;%qxjSetqZI2YG+=&cF>!z-uIu5*yS zyi`Yz&Q(XF5&`VK-H3)i=75OC39?kz7#=sCfX8DRI4Q#p0~S=Gv@egWPGKHTP7Cd< zi{x^C9V9k)9uR4M4EgZF7uqiUWxRKFE>8r>%!2axN zyc;_MU&rf0wrm^um*|e};`hniwYl(>W!>=eY1}?A2^$t3Wmy3U=$dIlL?Sul>+U0H z_h^pbx_v8#mU3{1Q#oD47)=u*8RN=*8f|9pU4#G45$;xUbzc>b_**MTnRyA_<7|x+ zE01CSt93BU92#0X*V11H58~1c7id_z5VkL=fGy(57(6u)J6g<5W2C|J)AYzLLj$F;9-Cw^`+oz#0_HdMnbQF<>wl%;WS)5Rs1JVbg zG3U`-EPj&)VbA;^X0tRyQi2VM8c;QPTPWl!PJJyWQ zwh~*$WQ`?p->k8z@CTVa+ZV(>cEGxVEbJ|=qkk{zf$3Hmd_iNF6RrxEtF!J-cu@P} zN9}0friB&Vg*bnb6iPg*VLlRn?&79!^h%zLWoq+@-1G#&4(10c++B?^LtRAhxCFA} zO0aYGN=&Uag|BYRAG~23tkF1)c{9?X)A$L|WtTeBahb#`x|9eH9fxH33sh8QD>Z%9 z%GDekBXOnra8o4?vge;A0G)eB*3R|vGdno3fyx#8b4?A>)d3wb3%AgK@zPH*Rt zPs`R)Q@wP;ixLSqJDR#m(eo*knA(a&ywN?h&onQ-my*#1EWBpw?80PfD{uY<&@4_vg`H zaXL8tN)>uIOv8;kqEKu4Od>yiKe%0+41P~C;o`z1><>5uC)^2GwzOeq&$W)a^S8*V z^+6b)U{A-9R@lEF7zQ=;Fh#u@+?^tEV{9%C#dVQI6I|d*vo5|fEx{XhfpBtr0B)Dg zVT_Bn0^?~(l(SQU`5lTt!MG879dFa2a7og6ZkU@hvJw3~s;Ts99=>@U30Gh8LB+C@ znpw+(=`tz$r>727j53KjXF1vST#GSOOt|`0Y1kBXoo-!2&{mm`vfnuHRM-IvVwB+E z!v>f#k8ug^jOnPm_EK`b1#NTKjv+M!Ra4i3LTUp1_uUfHM=z3x32nIMSOHp|{6G~S z{v-qQk8=NBFk>#;T#Q$&=FYft91Qw45RPpJ^=RITpNJBvXUq!KJ((D@a|g;dNunFO zPwVXnW%=l4viBY1gYswL37$WsT`mH-N1KmG0L=0w)m{udicgQzhnnza;2< z#nVysJB&dwWoTxx4MZz51;Yz%G3>DmO4g(U|F05JePReNgNrc6nt6wlvp`)TosL`7 zjxtwV@zv8R)`>a8U4MzfM)iIw=h8!SSq4;1wFEQs7QyzpabWx`lKRe$hnIu(xZ@e0 zYSK#FcP)i=@EXCWb}~x0Gw%J5d2mSD6PKpA;Ski)w2C}932o>o2n6-yMbyWP<8k(EFU*wn!mA=} z(3#Om6XTJ53Evy%Qp$EX*R(G zBW;YRnTmWBD~uhhg@Xed(JsLswO2;Mro3PnI8#pVEtSCpE4Bl9a8+l@ic`=iCBV)o zXL^hAo9eFq6m$-I()~A^85c{PaMo9n7F#2TYczoStGz&L-wIsyJsbACb;PGXGhkXU zr5-(Np-N$Zw7zDpt-U8P`FIk^?kmTlfKmF`RRc3u8bj7`HYb}qs58ze1O}H_f&_Es zXs&!o*DjI73n$}PH~KK+Eqvkr9=Jdp>dML2j~3WBGo48Ej6<~ziKxw-tJU)aFzrG- z<@|MN|Jp>c^!-fiag%}gxKM%opf9ZUZb08#6ge~eI$YOQ5yw70h`wA?>kBq~xXQMQCr7P$OYk~Y?Nw~JW3>*q0 z$YHxp7{QztHWd#@Zv6??#n?lHo&CYB!W48Cc%kFY6qehFA-sp@I^^nWXxtqYFkF5V zCeKfSV{+;!ZsCFVY(t^W;vV<8Z3w9Ie_)t&XIDE*N{R%+s*{Cs@o z#e?Bz!PwKH0s2;}puui0IOqF;>)*@7CXe}o;zXElrT}?H52?RLG3BJsYExJ4z=2us z1qN?Bu=##E4jZ3@N3Hc>vRDsA!p!L-k5Z_uDPb8)fuOf&I!W}m!HidJ@bO+fzIImx ziJ6Mn6)7Mmrxk(ElYBhm7KOL_WZ=KhDqL0+13i%~=)F=Mz6m#i;;+4!+9C??x+9>F zL__JLdgwQ^VS8Bij(_`AAn|k(Op6aC9Fs2{yn%0ILi7yWrp`Fj`pF<#%%vqYt3XIE z1Eo_bZMyf7W*uFDQ(v-YMQg0%Ze}s56S*hw_ECl4Z;LQbMH8zooFNzDia|4REA}i> z#R5Ac5V`i6+T~QyFRt1!GNl7aG;=Y`4JQA-EkTPj#ZWdrfGjni2`5xk!D6-&J5RU3 z!#|B=Z&DbhE!c*}2RiBZN@duT9t(Hn-%%0nB=S=~9Fud((W~zPHQ4PyrP`K|t~t#( zxO5hqxnyACT*i}v5W-LD6ZDR>ahKSa;#J3ZD3M$Q3ruA2X!wt;zgc3{ZdCp7gp%Osckqpay<_^-AdEE<^CHh?iiqubD@=MuGE!rrTmW!h7_ zBVkF+dUVo@K=lO?s2P(a zx{x;{Mk$IsuaAY~GHuMs?cE7QdX*5kDE9XPx^39lW?2`%LL8?u8=y!fkRbcDA1_Ftj{SdhZRK~L(^et zt19E4MCpj~+XVvVFm-xfMUHIXqkN-b;sRXKx-670yL>m*H- ze_8N!!BW<*5XL+ECt~=urFe|>S8i7xhaLEixC%RCVa-__`m z>tV|U9-f^W4|J%LcuZiuz?cJQzbF9y=KJH9$7&#NpN6Y8Dd9JzP?%z>2qo7RLDA;x z#B_HR*T1KM*sOa<&R=wgmc7QnameU!8&rbZ+vBjOdI7eErGk6>Pp*H`Bz*paF)93C z(i^V=Aulr%41e0gkc$=hxzz&wG?Y;P<}BE8%@2#BzSF*EVU)*R$5oI1O**x+u-!5Y z#=En>WB*3(>n(F&@BMXHO!M*6vsmJ!VL|G+hjAsx1`V!HLI0C(ctX?!`r7}J9p_jt z?p`PccKV=s4<8n>zv;$y2MnWfpsg_uGl$l~1D^%xd~-7_nH0%pjfcQ;Zw7Y%Fa-52 z7UU`0HEDd7#z~I(P-pO%D4)(EeAm~4PsxcSZ#W9ZE>vJm66^B%B~aP+Ex2ZUDlXl7 z4F8^Xf%>}b*lp|sKX)yH#07phJTMokw=TvHr(3b=N(k+9C`Q4|Vo;G~yZJ-O@ZO;k z2D$$zzcpF#>BW8Sg|2YMVs3%oyZ+Ku-K;}4$R&|4r*b(s4Co!?@|+? z??65kK4bw+xCiwEi*ewwF4xe<4Mqj`=?Amvu%j#pqlUw=LPZid9e>(OGn8@5&2%`V zbp%t&>QPQ%tw2@760GzX&#s@{gA#dEwM&Nek+(qhobfoOtwlMmj|A#bxq@)hN~qFH zAQQf9VH^r&8Xwm#n5j_4x{_&RdZZg;xQ3(SEHm6w77F}7ZusjjAGn1oC>%VKoxvMv z)NFEdEO2J+FVwvM`2wsE=Rs-em{n=IY8 z4bH8cj^pQf!t(J4FrZotY=^Q@?O_GTIhnBB1mp9%zoxw3azu0{^O}ECfB}&fI=`$L z`Pvm!*@xv4);gk&m_OXQ7SC8HHRveMd~5MyT-kJKP!FsT{Jt|xR@-WW`VniK-k1&! z%aiC2Zyx^Lu^2w?3W57n9Qid*x#!G}VS4lmoKs2R6U*_qCFG*0)e)NM!oGXC@9C?f z_28iJk+gc3z~x_uptt^}VD5ty7!6y6yeYLfHRCXjNfx8%>HzvVy9~q@6@t1*25mT? zjCSAj$Y9DEJXnY~u1Ve!nY3SZoFszz|!Q1oUuc8;6?#PADZ$cqw zUm3`pu7r!WZ2zu!igMyBwA8n`)1`USpex;xigmGW!k3pMM1O$(cTNYt)f7SYinnx` zXf0^iHiGn$iD3L!KyjNV{x=eWVMYyTe_4nMBymON zv-5^mBPs3g0O1@1Fw53}rdM*fxKM!n!xmgl>P+qc(G+y;Eg|{kArP4o4X(c5iSCPk z0^S@m+J9RE9t|~vX-o~eoZf)1cNoE=yG{5-iE(GN=fK_ft#~z391c5IakdJ=^tv)GWRF@30WD~o4jYIe9ZzOK3 z7Kjer;i}HnfhZ4m$Ww}kn{Qaoy7(N+Z{+HX^p}uN`@Bh^UNEGHCqt*@NBVqQ5p>;} zPMw6Jh`|yrburI{D(2vmN_|1!?h6CYq;!zhmBk7Tb4c_gV3+fcI%jJ_eZLPn9obFI zu2rGMjutpzQiJMm-VkSb9f)whM0k5UJBCa4L(oxxIe#<3=dvAb<>tX}>nV8auQASl zl!JC}jfnSNaZnvu29FL!0`ozWC{-JfT+##$AK3k9un6Y{>_DgM=_Fh98hKlg4^mE- zNaqPd!I#@gFl3jFku&N*ck!K$D#O>b*-pUxVduDi*^JsJD3?Z5Js_W+&LbzUWI+#a zGf?R);`KLzNF~oBF>N!@ZP`iq)|LhjJ=4)HFN0f}S%;Ymgfa6@IA*mM15dG3=j|R* zJbStxtQYD-pIayqcMBnj7S6D%Kmn;vHChDBWP5)0P5RW1=QlIl%~Llx|G6BU7I|Xm zGdcXUP#vu@c(*P@snHl$!D?Jm%?dPxc%Oo2_+6^v=k=2jXv1grlTfK)~# z6*YgseH~|wXML-nOrr&FY>S1}BnT}pMxh()1R3s2$Ig>Lr&_N-_jE}r?SGGE{vnt> zvyPI+i)352IravYa<{ok;(;Q4_))9G?w(OpqG~RvqzIw+DL*)UqY|Bbj$%o{Vz?uk z40avac(*MFUy6m{+lo36^1V;_hM(!=t2QXHPZn&GR$;(?ap-yUjXHIwU}vfmd2?bN z{_Qb>DK9laKDG=cCR?-ag9cZ9pFiC^m$7<+me8rqIiR+w6u737vHe{otacH``_9Z; zv1B=N)EBltWBVoBotfb7ZAE5rGEiQV0MDbPBeEa^C$4XVCi8Y2tw_q__(}%$ zO%+(YOn^^uABnQ>5LtgI6WmmNVbb_is0*1v`V%z4a|N5@cK#E*J8}Rg%ufU3&tde^ zl0fE^h=G;K?hwBr6mvgp2iGN)gCAU+w`jN03^zlt$)zVQ)LV=kA9$7Yf<$;BH4<*)PIyVwmu_6cZ{Npm{%=JJ;rs zFN$v9zSWDKu=-A2e<$ONfgqf@uMWp=NXM-SA&_#=14q3=sr2UW}QS6`cr|UkPwo|2nMbnF%k))nVOjIkJVU#~)=4=>5P129o!3xAc|5#4~Gf zEag7Ey`TlRe`ovs%`P2%5+y`BwU?wE_QZz%a&`yp7l_@j2I~W?7y4EeNA8uSC$ESpKm0AJLjXs);Lr+T>&=Vo2btR0ll-ckj>*6|Ks*mvY0fm^XeEiZb@T4 zykz8@F{P?JX_n*7CBNUtm3T-#r85pI0c@ zOdZd-qg6DE_4j9lY=WgLV{v<97QFhC3}Ln3sFZg$J$5bxNSvj9(fCnImk-wxe|xq_}oo5)}+>)+-&k%d(icz?_k+%?!4I(WU{It@jo})i*~#E1R~w!i)#K9I88HA*J+5Ts%4{g#C}Zp*UUPKJkn%B zvFx%PUeqff9Md-)QsfSq7cT=o?iJV>SboaI_e6w^8x~>?eavWRqvM$0S zI_#bD@&~>7H5~Zy>RjQ*a16EJvy4zRuKTk9oxY^efESE`aXk&4zI`Ky*PcYX;}^Lx zG2Jx4&lDW&-_!AKDR_x>CbKOa7)Nk6oGF+I&OPS9$-5-@6cdZ?KlM;6pdMGA-4E$+ zev#yvwaDL8%{_dn8FZtiNKR z^r`~eHzl9t7V_D-=XMovEHkv;!d`T`kbrhgN9l)2a-e%lo2wYW95+b?^yN@7aW9R) zmgnIZ;Oq?ZY#6sy%pE-sR)feDOQOtb%7uMqk@RR*L!n$a(n zjK_E;g_!UyVE?Hl*xz9Z9W5S=X_t%JBueo05g|BxtsZQq%*BjD4WR7&oVa_Zb4C4+ z(p1({yu$cOkvF-hZYfE+Y+0^E!w)*+W>CL3r681dlWHB#!cPxsxJkcqP)#@$`LFdz z*VA4au{oZ&8eJ!xE-SA3QDmp6GaFS}Ez$1sOm0MTB$3)PhiYjS(*tMZQSh`GR&LOSKPlM|AxJ~F zXNy7P;UyyVbS<%TQYISn+Tr=fMBMc&1MBK;l9?w2AaQ3KTwa`pHp|Lrr@1uwk|+=G zE)aAq{a{d_34EVoqR;XI-V2#acj`78V&6swYyZ*TYhTb?kOGqD!$DQL6nT>Uf*sQ8 zxIU%~0$#eI7jyH}h4m2i!fOJJxCk^D{!SA@`RL%@f!}w^f}P!F!S$LuM0RWdyeJY1<5KbLNol27OS!97y7aP3cWG54k)q85h<5pi750V$LjfPRX(r*xB1+ zZ*mUyjtz2WmDnQRxPx?SIl%3e3)nsP2bEOfgK5=E!2ul(-rsBw0|N?zMS~@1nqq@H zd&=ZKN&QtfPd0gRB zr(o#4B9T-3&E<7!(Q}JfF5SzLxqj?0^hP1L?V1eJuhrwC&2ykFB?;Z1){)+ov&g2l z^=SFQhdxwSrCwrR2|sTaP3bz01~C_@$k}k(t;EC8bw|w@txHX$Sdc#+ z4fD35@Ub*Z-RcY9|0p82&j}aFu)9rD1kF660Cm?3h_)DGV-2U1ftZ7&t4IlX`+ev; z`#9J)Jr9&kjuMX*SvXI2G59&K-gtF19g%%R2JSA$kr(&LO}{i8zPA%@6jZ`tnKBSn z`%P}&@PW5epA9k@OP{?@PDW5=1D2BsXwyj-C{W{-@2G}Z30@5f zgM|yW;)vujynB*|qHCs-&MA)wXL+giK=?PVoyP^*|HBGu9;D)b??S*jK@OUQDe6ow z#-sJZ`1N-a<4_x7bopt>G+zaap3a7W12gEvFGA?NcM(h)R|stna&cv*JzVxO2VU-g zKtbM}WvZ5=TWLM6bIHaFYuu5S1A_3uD$Jd9jP;2txv}@=;l+_kDrz%}o)oa$!@`r) z=(ITwt2={K(nNf5w;bc0qv*>wcZrQ$H_7pj1e=Oz(i7|q_HoC-=u-+fN%$crv76-G zs(_beXQ{X4P8e_-;PMToah(?j<7UR$o^z=kI=a?FMKWW1%)ddWEkxSOn5*fZ*oUBiN~4K@x%~ z9C^(6DwB}qzju*2s}j&Nst~;XkD~MNtMPr~cq&OsLraB(REm(Kb6+H>BnhEZDnb$} zB8g6W@4Ym%_a5iDFES!KD}BvmWk*K#@BaM*dZ}}s=f1D&^Lf9!Kaf9{TEIl)qH$q? zE$!8}#3b>TJk_riD0w*q`9=h5SGBS`TqA1RW*?Fh*RWumsZlc3sJnApLlay+dV)OVMxUkiM{XQcoD)7PT zb_8=14+<79kwXuCJ}vB*<@DdPd5EqsIWl05QW|W&pSqg1B;*tAO~qLLv;qeMWRZuGR~Z}buOiK>*i?(Q1u4EcdAdGZAO}xYH6>vwhXzf_3U@o`*P64+@0Pv4MP3+m*mabSj;{zie5u5n2;BRe{UXxU*8OI z@We{!vdlE@3W~!!>u!>!R7cR?^^8{{7KGA2;vq=B3M^&r(2wH#QKn{u4&hpQ%Of6> zJ0nqIiz}!yj+@k{M(pVMLiS3Fpzoh~nBhAE3Pt=`cjpY}>==u4irQJ$cqZ=rX9F2G z)u8-a4GuN$r(G4Fcq%@t;Zmgwy2m3Cx4l8^b8Zqf!wUMyAsKuVCS%ghcf0}h>2zT2 zH*)n%G<~q2WwhdE8=I7gVwZg^QQn|MGp?z@vgr*V|JN3UtT!yV|FIR#1T*nJ^)L{Q zJPJ8cI#62K4Dta_soBN~GAb2JH|5WVEXD6seuU+Ees|#dODx}jtOLDb9gqjV$&Br~ zIK`$KZ66>Fw5g?|Ue0LQyo{XfT@I!>5vU~Dh$&kaK(2EmO!^y#ujU3r|6&2gzc~r@ z-)bPMP(Yl|l%ngIL)80`9`=i;)852PlB@5B_ht*gVV*rcTagW}1xvVD#hKWo)sB|) zA5i@ZU0j0Ga;RAJl}c>yz~QEe*sEK}T^~m<$>lc@(iG*4+fs09)j_b1}?1LH<6C*Lki22b-TjLCbMyt8ehJDM|Kg0TV`7rH^fOdVjfGIHpM zFG#3Pfm1K_;HWKQkI3GoDxKvx;V;X~3g+-iG(M5@P6>2i^&#>~yd6B3kAWnUTXbbf z1^)M?9pP{lloUNCGgnpM-T4A^$u-9hnt^C|XC1Vbl)xi;@P4~5w7N9o z+1XYw^_(^`Zm2jo{*qpXYomp@Ae=McuQ`mq6D zt_s8se;pjy5r=tF*T`RMOX$_^rd@c6%1^jXypwy$skUs)m}r6~9k%3$NF3zM5e29C zWEvlr0gJ}eK!0~AhTbiKRVNG(&Nah%uOiIb8iH2tqL^a11DXmJF~)%b3_a#(jDiuK zTvrS_I_#Zg9)_j2GU3^^POP!6K;LKb@a0@HMk#wyhr^MOkhu}kV`^aK!wR_ncRT_+ zN7xuF#DE|+qdTZY?(R7W5>pc}TQ?YncF!Z4%hv;WRgUwS3pJAMmzvJo!MdZ7a9Kkb z(n`{)#|V-z<`}59ihl^_5owh1umvBv-d)| zeHol?Qb&jDMQG&ll)z**$6auOR&}aF$*nJBbZ;%SJ~hIy4!@}P_gJ##GzSNZe-iuo z=g8p~5il_JD7o{}4SO%9qa=QMmJi z81s;pgZ-KD^kw!+fb3aVG+M%Pzd@*&(}F_-mks2SHl^q)QC38{Ug z%65;ab$=ixndfp{bB#F3!V^ULnF$&XP6E3&0bTpE5~6Pv!P3t`@ZsNX=vp4h@y(WV zvT|vl+|TyqX_A6f$tieZK`HKL9YYMz*v&(JUX-uZPw*ueL^$9E>F~-^OQFbFUP}26*$y&p1kX8 z$8G<4!}o!FkdZjWCHy-C;bx8K`(6n=8K1srLk$>=6JYPTO+-SH@#l-%F!2lru7f&c z^#LLLPrDeSoL-SBKMKIO(FD9dH?zF93iC@ZMft9JvZ-SS=nljaP9_UX6l%G|4XHTR zz71EMZvpG+71Y2Xhn&5Xi$_?mb7=J};;$7+@}Bk+u{2GLnC*Z`-$uFL;m=8kuq|Ve zt^jA*ML7KI4)5xxI;!vSjra3pI3^wXKn({p!QomVM0{9-D|Y7Lo9FJ(!QS)z{w}0S zR~wYqvb?%pEteIXMYKXzlP;qiYGSO<`JVlMhHMd)Im?lS=SsmSuKON7@=Hj&ZHIQ>D z4wX;bCf-VqiPC~_3|rPhoG$kf5AP;I+!Lt2brWydxda#;7@+qXj-l9ONib?VLfV|i zL+_(IoCIA5#rkeg#PWRVZ9_c8&3U-!{Z#aDkRUgcaz~Sh{7>?>%W4@ntIz=B(Obmkj#Glc-sgIGXOu!y%1nbo-?SP`b+Y?fi7;o4W`t zb~M45;a0e}uLfrSVf=DYDH{E{3Or`IV$*yBxb@Z#mKaB%NmB#2>CJqI9`VJ6c>)kF zIRf3o6bjcorM4?S^D;|gAjWzJOq_0nL7O5_KP`)l9;hTTDO1Vm9eQ}aB^oM+`jv{=CHpGU4SaQRsggIF`Y-x_gFsBBR zzdaQWWmWIg;e)OM8zBcyby%)@@9qwt210g|?4eeb!9EZ8%zFNB`z!1pzXz8o}*Dd zC^{vhOm`!$;LX624cDpC$wXK`oQOL=Ex_LW@^nkWOi({KnOCF7dJmt=>5F6SIG=s) z6xL0|2Py^Nw>$>4NijCutl{j-*3$qXEAUL$WM1e4FpWXt7uKE)A|`F zrv%eJHxrYrhg|pcW;i&y92fQHz}#_5z<>8$TDMFZBExIo^GQRj`#^%;b zftgnwKAh4`GHcz?|K>Jw>f16{nwE;j*A{}%l#9HE(@%*|rx7{jBnp0Zk)Ss*5^Obs z7;m?qt1z`8#dGc8t%o8i-DB_1v)|}|B9C|IXah>0mq$ms1SbyZg6r+WWW#|lI9_Ou zLgRWnmkF_bz3fU+<)fZp$YP@hP*E%&;30~F;K%Z>=`!d*nnO8Hsbw_`S|ko zE-Ydlg#<|-aB3{Vpf8o^?e~KB>t{8LrUsMhNnZHOoAE*{q(CP79@ih&S~(P&1O~IwxV2LG@3?DW!Y&r(lyJ1 zNOUg(YcGzF5+wQWYH; zdmSVzRO2-^OAeLK2j$=1#A(t9yi!1^u8PU18l4U*z98Od3*=@Wmy$3`v)(p~)+@Wf< zIb<~Z6Zves5@r24IJI8`4o&lgH4`YBj5KiL=SPCjOP3`VlIO#$R+e*q{hp`2mXGf@ zbwK~&S}I@um;^DFx6#=V(zBE8zez3E735A$UbS&&rF^h{Vj>J_3bXsGI?AO=!rJ9= z(6zXaOnT7@19f6VOmrSJOm63fb!O3OmRotfoc)Z}K$;n;fSVK7p-j_bZjDeSig+DH z{jhyhODU9S$-CqFNOLHja13He0xaFX2g+`(z>2LYRP}E)E|qhH2Jh>cQnYN37+RRQ9?s-y`2N-oUsSv_Eo4~!Q3E=`e^^<-$ch} zE)@NW0Ph2pJh>o8c$-!SOU+i}nL$hZAsm25T#`X0pK)`Jo}!OZIcR)R4u?eipxEXc zRTF>CT)k4*wmKch3%9|F{0w}#dp(RU+(#s=48Uz-HCCKjh4JR0P;AQjUVj9}H71hy z?SU$+TNTEBx6|lk=XNMdb_BvY4Jl6MIDDs;_{YlO^>6-gaa^dQ>QJM*|0TMw_aGTBY^aw{s@O z*)-wftXW`eAq^e%m#C+oGx+~nP1Z1f`JoHnsb&>p1V%Tp`%4u_WbcKNj5>^;r;qnp z@5?q~Gn)M3sIG7u@mRp4mhE52rfcl3eJ2HKeOV`Gpq%&LyjTq1)CLo`C}EUQHd-6C zqW=vx3p`W~@8i7ixA14Gb8rH@!?!eZ=60NDnT9qQ8TjU>3fne~hnm&-G%vl2rvBDK z`%NR{nSCn+k70Z}jTgKOp+@|jl|?-q{-fe9cgeA19WXfThm(R1;-Rlz;NO^vqj-o8 zHzngxUOfpEiYGNMguz3BPmR7NkQot^k?iCXvpIEShg%lQNUsJ5gOi|s>ZieNXjk=zN3 zC9Xd$Xo$-;Xgg~Q;;*eRt9=)-dvue&^mDwp{)T{93c4P(q3$2ehR15AnYptPw?=zHopJ276)e@06XJQRR0`D zZT=I7)MI%dpOi;DKAa&446+nr?>|teNwD*)3xBC6s1oZow|0U*zgIN(UBp zpoz_Ep2}5C=%03lq}^scEUpl*f7S!Xr{nO;;g2LkdkqTanSp4|JL4KL2J<#GUT66S07-X%lT2Dy!9_}$e)4rd1_cRuNd8H=)r=Ed0HOUaoKrg5Jrzn3H*g|gw}KsDH&mY^?B?F9QfX?T9h4I=sLHPKmi z1m?`jfaT?(&}hs!Kqq!es|`fZRiUc#^q7hPwt$0NfMbE_>W#dwwLicW!zM;6igc$ae2@ze532b_z+`o zPF4sg|Ba<@#lk?%u$dC48e+dGliXu@`CXdTkbKAxg~Ha6fya%U>smFg^jvjY_S<^xaOgFIn_;;#Rs!i1A z`qSlg5_srS75dkR(T2Z$TvV9_8MB9-{k$cYj7@9=Tj4IE?zso~w>60$zZRaYWV_x5 zJ-nN=6ZMOoN!P8NR5mmn;vB1JlG02fv2!6*+&fExY(v2}ZyI>ta3BUEHYj=_7B4Il zhozRTAope&Oug2KbN3uZ^;!#__edGfv(gciR<*#a_*7VBJq8E2N@44=PS9Phf{shd zAZznhVsX6`Z4Y&m2B})E#derjsRU}X~g}9!LvXDn+kn{iPL8KM<)8k2aFaYQ*B#(kRei+!y(7KFwXNgrOIBSom&$H}LZ< z@0y-AmUKTNQ8A1GWE=$iB4JYL-2uyj1)zJY7Q3Fm=el45&yukp<3Guw^{;U#?J5Ab zJPtGW=3_{;EPTwKjzbp{(Ap)RzAI}dJz3HCv7LjC&etUHQWY|u2g#Dkpq(Y-G1ki; zz0zx_-+VKy3@m__ol1E1*LkvSNE%LmoPu4u<9K6wx8Ts1VN#^q0e`I0V1a5Qx(Z+8 z`N-R$wrCr^@k+w3&`Okh;SCvoHbHN2EN{)ELTF+f=0TzH@KHVqCd|zN>4+5I$B7x6 zg#1VO>o*8|&c}i0)1^RJPC$5b9s10Ofv)rFWH|Oc<(W0$ijfLz8JvacChk0S^)!q= z7Xkf?*gW^T0<4UhhkBNcV12xquKY0{%NYYkQtl8wUa=S=h1ooSTgl4|3eN8VoejlZC5j#aZg33MG7cA zhhzTp3`~e9W4lCS>Z;H~lCDH?2@(dld`vKID6zn^Uvu%n_Y&M>JPVEFFOt9wZ;9El z+w_T82Z%n~i(XNMq{rBiUKJiBP5YwJ<4_%$v?>^M)ogK7=5B~>nT1{B{Rm%=bvTm} zLH$GmJ!o)(iacX{EsG~~zIqIl4s}4%Xb)-lp2pLdC<0>^d!WZFjs{oGM{V~OJZ#Z` zp>_qBT%dtTB42nWq5{F+S~V0Jh!$+KE5+-h3vuxt9W-6!212?f#(&b z6FgY}3+7kkT4+oDel)O(qAk9CB%&=9&zPLR4v9syWO532om|C51HtvuY@T6Rf#S!c zsNl{Tm^n~_@1mOMjF7uZ2tullf)?j>D z2Aj(UV#eMCw!`ivJJyweTIEMFZC4qJ9A;;w{WWxQODD8soTmjoECYnD?OKDxLni9-TV!dA4SdX*h)yT36R2H+CbbTDud*J3tm+}HXcgLhDko29I?9^byH$90R|LLRVr%h1w%m({*`Jh5=J0vjnlT+9T)#Wu}OqwiCo09{kyNqG#;ax1N zFNNj>1U85U!k;VaMc~Eq)10pWjz*(CuP$*r@yU*^C9xs=p%gaZ#?m-F3ju523y;kyyvbRGri1jm`;_2Pgb&3$F@b4!rWl{9$Ed}J? z@uo>F`-q~a9!_6lg&q$Mk)`uY;kKC%dLFTYuuFI8l=N`y{g%K@t1?CZ2cOB+^O@xF zt@+TDI1R37Ipd~!U##6V0o6k@xiNBO_)%O2t=6uAH(jhVGE0f3rKw|UKpykaJ*I2e zT;k0=ONf3P0~1cQv2J=eDLk}=bQwExb4R8_jT=X@yqK%NsS^xmXW^JQz?L&b5S?%p1e>yJ+_{drWC9W_^c0M6s2J@~=nf(WGL~cMjuD z9dm-ZnS6Ar5(c4*ekAIW9dX@yg!7Au1IwU&BrGlhTmQ_$SZ{aSm9QLL?PF0?q?&oj zMLWm7&PAak?~P?Pc2mI(H?+*YNA927$L@v#+?pN)>SusD7*0ky%-F_8Gl2hXhVjJX zN5F%1&wRa)gB|OuTclFZe^|!7@smckpduL8*9ymt>|lindnfd}P@(P^RDbfEH}RPy zqy#L7m>Votr&o$y+&dC^elgCz-wdwP>&ZFB7-{%1z)N??f>)E~;z(fuJjiT?mQY7D zzRqUydWH0s<9xK03PTsZ35h$cNh;QbknL+QP`uoj$Dfkf#t#o!dXVJFKG(s|2aj5 zm&9@2&IM#RsG6H`IvkXjog*Jl)WQEd4JIq4$;w5EFetJeq9sdl-x_83&?y62RfTZRM-mUTT zV6kl#TuCngen}*q?a~f$6$Mmv?>xpP_(19ovoqGGK3aFo0rc$C;6fYArzjnxBN;8= zdf^q>o4W&_4rPM3@g^!1z!8P2EH+n;-@VSe^2L=ZgR9loqT{CWwpHnnpYIZ(aUe+a@mItxKayu5v$#OmICFE{(7_8gA2j_0i z!HP6#>@uFgIo@Yni<&@qrhWkX3zg}B$RT`qvxxT3)TaH1fq1K2A%0cttgBc-N&{JT z!={Nds$pD*P6>E@QwD{Sg9L-qdC1rDB>!TpFG$|ybHUjE$$G5+EBFgKb$ zo0b48-zP!8*aX5K|CvYLJtk&NNoboVO|`x@(+kYk#CP}Qx|>dd`<_v9Dn$-H$N9mK zSTnv2$b??|Rn#w24^OZz(T}7M2sB7V>9?(Lb!j%eqfvq#va6_&$sfZjl9`||KNOT1 z%Rxw@ZAsLuMl$D@*07F)q^_jZUXh{Rh#PH>4vW2?eu z66^!5JC@XFwky#NNo4te&E#E57k#`c0LPafGEwrDzz`mNme+3FYW+C5k&!#-eb~V%XYj z14;Zw>{STnvZVB={=Jvn=u|6|9-9cRUo=T~d=iYlie#>MC7d2*i1%*Bvi^Q0c0|me ze{v$=Q$L%@ik|9RELIC=HiyIVpePLZx(vJ|Yv{j$B6uYg2JcKm$f_Bkup)u^Umh&P zG49z=sa1fFn*!jf_9&q%J`z-nhLZG4^ju~!Z2hJQnUY3|I@52O}Zrr8xO?f$b~PGmNi(DZ|b81fV=*L0wkK zpsBhogx(BeKHW;ZIjIzWuxD*`TobZDF&rOd>_UrlTBoHBI}bPDXvlB!FJ&*DTgg~W zAG3+&U?~G=MiQBYhJnK*Uy(y6Ysqd)0=+M!TuS`Ydd$%7-0R zBG`XBomM(lBEK$^H^HukG5OTtds;J_pE7rg&R)zNk;8!Y4JbZMpJd-X37yRrl8*c=h6oQe7^wI_YGrG&Z^umd zezz4}PYXC*qidx7yA(QFodB6rzj@-$Ii%Vv6J4kHbBl6nP{YL=KD^h5%&=8BpQOOd z3vcLLr=>9dLM_-%kE4&CWn#l&)=k=_Nrl#IH(u}AfsaL1;lyq)xNH-NpND)wdP*8- zKCuK7m0JQi7l1`->~FL;oXxpD(SF%z6h6%6u7}OZcfF0+lUYFaadP7_BP|aYl0as)Q*g7XI&=!LYO<%0)&)L81-C;A;uSu!?Xu6tk;`NbEG!Gm%>Jz z9HxW2XV1VT$pWy~J4xMF+T-U&Syajq!mCqcvD7OKkVO&ND&Sl zE5Q5He^9Za*^qZu4)d;t;p!*mD67PWkyKZ_Z(EGLr#92P-s31(H6Io&s|5e7CTgp^ z6;X&~B`yvKj29czN_1{ekL~zV-Dah#e@rFl)NPR{!BwgK4Y^1dD zAe-sy>K?|3_y#n&#K+<{d!c8xFF7#E?n_B&oK@%+tT-=ErdEwoDtCoGTw71CbS=bp zS~0{+Gm$LRX3It?7o68H9Sde!W7WhxQ20I#pL9gRNzo)2*cQU61wEp#W|sed4@wIS zztdr_5uPFJ!T(Msz_yV6u>VXfxW1o8V`glGy0uH8(C#RG7<86gQLhDcvm-p)o+x_1 zej9{Zm%`L|wtMlNfZ2s7Kx6Sb_-IuC14~Tkvv+*Z7&L{yrN$_EAd7~M)WZy$5|F&p zP3AsY!MMd2=!fLZ%pG72h5zl~Y!zSgJe6j`bMFw8Q_%o5yVE37B^-nvYa8pg4AZ-! zt)N|90#Pe^N$}HI_<6iKym4O$-kx`;Y*{LNOErSr!F2QtcZPdkTOn6t9`?L+BbIW8 zq~UlX{k4apx*MUprKC|=t)I}l!}OZNN?iAWd9>8^SpLroxA?lj=QWI{aX<|AO?QK^ zwZgbh?l`3EDn+@@pLDo3k=OO-qwxf_1Uwp;hys0aY+*a`k8exys?2$6@Z=?#yDJ*) z(u+}^%?vMENaJJ0Ff{1?N8aZ%-;HxQMn0W_tLqbn!ik1?NIbH`@DvZ~5`T~jVNW*_D z$NqR$7$&@6+>P1GXhrE2YH~#n2Rb(L(jrpHhZ0YSkdMZP1|@XDpcH6Kg$TKS+BHPyOMZMj1;3pw~z zpLDrC;<}DiQK9l!<6X1L!Gqn)pET>C@5n?v=`a<&OZYt3TMo2gMl|o<);2V-ET#V` zhQUTQ)BN@*8Y@CnNW^Ag7?+rU$p<1p<&Y6H^u}{u{cnhVL>)=IsfzZy!f?T56$n;J zV%fw{a@F+=py1+B^jlqn!wzj| zc-s)nZ%hT};+5FHvm6KYd|=-8Fz`&wLajGR`IhWFy!vx48&C!$PsHW)ECmw;4)q{2?!YtOU6+&L~l& z2U@dd(*BSL^v*FOJvtlF^?(n_u-1U$1~IgBWc%9>Gr;81FYa)-GMa1&BIDktfV)^a zCdF6qw&WUs{op7G%dMijkC(yOD_fbPH5kX}Rf6}P6J*X!)-9jc3F9^}mt|)ZETaZ! z$&;snqKmLfVll*zGADS5G~J%x2-}X12UqP}?oReFk;sihu>k|{$Q_`&I`UxH&6G57 zVce4!erWQ~oNQUS77P~~fRcU@!j~Md{maf{J(XabcLaC>_H&dXP-bE-3il=8`eT+5 zXKaHL54u27cRR74;Z1P00PU1M5xH%J_~?8w{`N_tc{>HVB3~NH2G^mC;F^`dCS=TqK0KvM$4(mU4e1Zt`VNct`4##KpsSn zwBp#fTDZT*9G?7T*q>#cR7wJ&$TA(v{x+chkQLc&UWhk>)?kOHCXF>MK<`&ksFcoJ z$zLaf`hzwy=2<>$<2#^QNirrG`Ov4MHMl=C7W8-A;~K`g;*(1P(45|i6_vk<`g2vf zc}@c)-V4M<8=K*Rk`+9-*24O~uZX^z2a$L@7H;hv4_$p@d0Ol0=|I_BywG6^LMj@( zgn_MK{4*1U#_khHe>KHr$0wn!Wf$+N0_&?b{iVBO2%aBWh=HcHBxLPm*f%Z+%1<6c z+4an`W^IpN8r67kuMnI11{3vLlzQL!NjgeJ;3)gP{rq4L85wr4SS1Y0>=tOy$w!_XElgIEFncb4XIgGNOAg zk0@LyhFjZ5sn8r_OqrdGB2h`~b4ekxEF8Kz8;MoyJm}gI$lW~^4ofsy$CAyL8$O8A z!b#h4a7PWQhq3Or$7edYdlP)ED}ay8wPhrfhDU0H;du9Y*#1=<_s!IVhQp&g`*UZ> zFZOIP5R1S+FAL$&LkYC4`$Cre2!R8C9C6`gw%fXAK-F))BHsV_q${{opd7yqO?B7f z^FKu-t7aV9#{9>%iA@Eci&gm9#1}RR+2gyCKALtv7JJ5)k%xbtQ0Je)U=_sr5Mnbx zX>A9zMe2b*%V5-Ah=mK@B4A)viksG0LT6nrShi24m&O0lKXSz|C_foo$r>`ux}Q%x zb+PA=CXRnq1Lmrlpp#aNgX_gn_BM0PcJO&21$)7JXDQV;ddDk#!{?1@j{&LfHaN1Z zlX+yugW=VM&{60`BVT93Eztn%Ssg(C&$a1^_o8!W*@3v;S7H^q7OsBRLT~LJUXM>2 zVi4n1_{j>ipEJh`Y{v)2HDDqf&bwM4Num^&k&=v5aw5n8BnOvZ!^b?_;$#O)dU8Qs zGlmaR5S03Rvqe`8Uylit*8}U zNG2)l#q`%2czKy5nE5jEeMkWaeKIvR>#D*+Qb=$^K3GbZV&KP0TD!0cYL2%MV}}Zi z2s;GLg&`1Lz`@yz@woV469`_)z+4S8c-|U9E}Rd;cWYX4bo&D;#FsRzf98qv2XZjq zgzZJo?SWqBi9|+jCk=c-@Z?G{)LpUu^$N^E zsaBi%dd-2#M|&|osT!n9YM{eIhN>NUN}b#)39?-H%diD-BHt8rkLMB6R6;ubFa}n* z4({2M3qPIGu&`tf71A0o+W4-XdGLaX+cD-}>k1TPeVa*t>qg-=DfZkL@5o$F4_S_! zM{h~jqw2;gIKQit7T3-L^`a3Xf1;oK|4z_#BFgxFy&FEZ^~Yho20D5?it2Z$(EoI* z;PEv@c>Llh-k&xfo|Uw)&gWmcEqXR~b~S+6*(6%U+Xh{ArsNH71Jwrh44Nayjf^RU zt}H&jX1mE{=Sp!Edxw@V_R6?btY08`mbPAugIMMSd-f-rITCi$!l*7XYq>qcDGP26gsngUfH^v5w~l{u|6m;^Htg51b3G_Q$!HN`KfjQv`1u3IYF* zOKF$N2ra)63u9%QV83@f{+qS~KkYMT-fw@5>GZ{K*9~#Q@vX>zv4dvDv_Qd)6YQLr z&Rkiu$jfgV@lbaFB#o#N8LC3|vF_K(){}V3Wgb{A6D3dDlHrAP2j1Av2ZQ7RBK5Nl z$c_+HKE916-0%Up;)!q~`Y+Y#mId*>o9TGfdJzBYO;^WHVt!k3Fvl6t6f_w=51qs( zHick3qJz(#x5M+^T>RZrMn6Ut!Y7?X=zr{pYH|7Oo;x1HELd;u*)+N`JdAnlIav5Q z8WPTGV8*1Wpk%^&z>n&9i$8{fYez392vfzfzPV6SKL=l`Dr2lL<1%Wr5v$=sR2(x( zT^;?2_vKvt`m_O(l&6taxl%Zr$vmhmTPp2d3+MR7uw9^v-D=vHqS=OUrU>o15n`yg z4O>)C(-NCu8n-49FEnn4^chW{?URZD9ZON>%Uj;WZJN0E3_E}Mq~PyeA!KOH3R0)F z1|+v8)7npL=5Kn7yu13A=(Nm(_u?(6_HMJD9-I{~1pd20q?8R3{*u15^OE6oy2;`dWz$AGuSJjh(4MqRBAL*>q zKF5)`7-quBxG0z+vl|=6CZW@DQ|!okOHRHng7q3};rMMaSm2e0S9U9*sgn>Ujeo_H z{vnQv3mFUJ?k;lQcp99@s=$3~V^K>|4Zj%fNAG{WB=>qg3~+;-GQ0bn3i(RM9w`LZ z<(}L%BgVw}SIKJ|U}tF6HE1IJh0b+c1xNhzpe{@UwtbWX-%Sp%#3BxEiL)6skE4H8 zec;L2I-D58oMqpt>7AmrIJ$5TO}aY5J262QM20h&!?0&boQ?zD>QVwOb}aVmI#3;N z8L*E~ARPjVKc}q$qh+qN<=ZQgo|y^TbmMTxYb~^VA5W}B;wdo*CIVU3ecIf`x%zq$ z%R)W+?B+q7-LL=^X12n)?@Mv@uRWMBQ3Y1Bdsj)@6Jm2$k!3m7a-(zR(krFaKt4aA z@~P^0$=(bv?Tvvfc5aT67a=|4!s*d}6>uO|82ugZQ->e*@bkVp*qg7WW?z%&@wZ#? zBxA>#Bu?UN-(2KI4JD{gQXAY!u|X%tW}+259wTCFVecINQsd*HjAwRRm6wnh09(0nVC~mH zyJj{BqAXMCCe{bFoxVIt~Z4?z7N@+8zi0H#xSK|s`4oI3X~#I?raYmY6=l^KP7-+ob} z%6jy#3no9WBxAy?6L^Ie4n56R>6>WARlj=-k(UBLKWiYr@i=iSjfH7Nd$IP83Lf}U z2_rr^u+4NVi2n(uSJiG&hfr@!nXwC%{RgP}wKKF%e>{xdc}aJqMuR0d60-UX=@<5= zZ>DGC??bQY<0GPYPpbsnpM0R$-3bLEY1nu@4MJI7;Jn8+EN5pmes8p(rAL5fWe2gq z{umAj&!vr1szF~b5c|V7P?Fz3lrqcVI%A@JZ(?pMi57B(Bfo8P$pall zR2Wx}`OzErSRG#Tr1t}i|~?#es^mwCMw_o!f#zO<_Dg;fS}{Ve5nXJa90QG4D)HObrSSHPHOi!|V_ki7()V5s z7JgcTd8cxT=8gcE6c>YH<95T*m~!lY9!7odGjCRK9jCkk=U(F&H|tArnDglYDdh}M}zjP_}U;qPy`tnJBU@MtI6RH?x6jS(p1I*pS_ znThV_PoU`K7eq8_2hMxijwP!<(hY7I_|x_n=x-dPst=jR=g9?nqRAL+of0{jC#^g> z-UeGXsA0h}isDVz$&*t{nJ-I`@D(l@D^9Os*BPf5QtN0#j?#BTvJVegqt zNIH^Bbsg@IJK5v$vxq4Ow~d3@3zA{W)Niyq$`=>>mWS^fHL&6KS)TutCG;k*8G8af z=_)o?X=9&FvHv___cS(d8REm^tyx&^;>^4z7RYxUqTcSinD>1Pns%;6p$)O9nxusC zL!mU`R3_TQxU>C%6?t>f3uc+t;yN!Q{2A>6_tZMr9W@(Yo9kg-Y6uOnh{UejwZ} z&ehPGL}|*AO%ud1^*=wZMx{ny~mz0DP&B%Yl!kL*5(d>1{=+}Rl= zKkfM+M`s#WuB9UwYi8dLt2lNOIogJUTZ(aAXp zlm_>*e%vd5(|#FjF*hgnZNG^7^bJsCUQhcw5>eGF7<9x6z$Chk?rDvM1UAn!GCRWQ zxYoc~g({R3?4_nr_o?QQr*w*H66lT1BM)yYgU2fkcr+^>^cQ*Hjhm}ry60SURf$F; zlQRY~K?Ufz@-Erde-y3NHNhoM2bbH1prSOJznusNMcqpz${-11=X@tx)=#(-zvqJL zAnR)H-%CP^jF?wq3+Sqa;7~*`Ip}y66l?sVm!%nI`qKi&jYldME zi;WNLN!z3j8WXmIpRSW#Vh%XGRULdTH_?!jTcF>;n-m*t!sXiw z(8#CKAY5%JZr>gWALX|~lSvqe?`52f=nLEtr#gK1lzCa|qp-wM7COGKg*k2I=-M04 z+{vln8k*5@ycos9&6@%s|8P1KES(Q+X#&Dy?Cyk$RH)^O z$<8qX)a}{{U6uOqre_AW+k|qmZV4d$$p~n5Iq7Y$f{^7_P_lF^c=sNJD4R&IaHCwy zS3RzetU&24{*XGZ9FD$k#7{B}s8wu>LWRv-V~7$}uNwtdD*>GDGp2*b4`Q)dlHA^} zf=4e9oF29bwfdClV|x)ieH==jdoP7<#YC>{wF$=E)Ww$CI8-0d$LOO=z)86p|E#P6 zGd5?Boqv{lIzAAKzhuL!;5D$PFA26hILnwcDbVuiU2}mnffk2ynmF$I?m(sD^E|**I{m0n;*Bhb%J=-$_ehn87kK^l==yy`vPnM$LxK zwpB!uu_`}?&4<5pK9ZtyOG(&^XgZKJ8dA2WkQSRaWZ@TAyeVKgl%+*(672b|{FY}w`Ja^osq~C9D5n$5k*<5R!}|~@RmEX#N-0?#Q;&I$ z>Eyxw1UNW45Cmfyn!BSYlD=^Ccq9fq^&JLDD_vL~Hm3Rb$+b98qXd(j6j5yXVQguN z;>!e!L5O@f@>(k!JFN&woGPTN95vW;NSx^H9Ze4}-U|mz5;5>nAzoZz02{1B&|UQi z7|$tyF*4QgU*r_r5XBf2QwOO_o)Dum*yGi!ix^#UB70Rh$le%%(!kBC8nmPeFfTqDi`>7HHUHH6NRDykjs0>Vc}>5_>YHtMEP!QB1S zr-Jd{=6|QweTQM{)vdTvJ{`BUR)fvw6-4WEDR*?t86ZQE_~zw9@-TNh4Dn3ROSz8w z!m?2&o~OzFn*}iV0O_}oT+|TPz@_yO@YJA`2)?)($OXC)nY-Djcz7xX9H<5JP)m^i zWCr)^mSV;s5ngv_V$PN>y_f69qstez7mr%aH@W?bq^zC6{t+5CY81}ZN&!VV2W(T@ zh}Vx6!w8pM%(?NTSu>Clu1*NCzA>EFqIX0~_Z(l_AsBht5`bw;r;}7%42_Vc<3{*DT@*kWFhF>AU?8z2E=I+RXv|MG%AsM$NXruXGBk_u?xaqNfq#+l<{Yl)S~;vNaU@QY5ttuP8McQ0N2gyaQ>LpC~viq?ZTLEs7)6} z|2G@#Bvg?oyx?GAIzRt zwJ_yZ6|{+&B6d#3cRCAUDBcfO#!bQ_>vMpox4+pVQ5;^``y&}GK!?pXFfMop#J`t> zzMnz3yDAY@@uP6KzaEP=Z^6OojFXi6khFY%+q}>=4HwAd!ijftpnv}=I;>HRCW8B< zYVHh7&dWjGMQ_gToefN2j(~4mDe#02{CA6Vuz%%4Dl)swr5`zqlC0B3yqWKMJma=- zh0F~g1mC;H#LI6aQMn_>1!-?GE;)o;L)hJKpaIonz)5+S*Yh5fGhVUfrVNnQD6F#tZm+j_cfczwizN2 zOkaS!kPqCu0t+~hk_;CTVxeeiGd=z~0+vm#gHI0&p?R`A?%bUX)6U1>edRc+Rvij< zy~c25^JWw-HzXSrr=a>~H|lMBobmqs;X_vmyfTo5VO?*Sy?F_GoDRfSw>E&d#}{H6 z9EDoDR7uon%Jwj+*q-fA+TUrCW8WUpy-N%*WWc`kgS&Wi)2AoF*^IGQiI!1xKG=ht?P5VOuSS_PZ958{&K5sE#d0e=@*W zi@h{^Y7zYY>jalwN5b~p6!gfO3q~=^`CT%Tadbf(;K*21xqFJ_UI~Z6zpcb?6-626 z+oVx-E_F&eh?82Tg3(Uo@VUiG9b*bYrBUyw5mjbJ$M7roAUc`d^~3|j1K z`1y9pptA2Xkr1hY*TgJh+-HFN0B4j|XPk~NN#xnO0zBtD8N`cIsM_rS)MC6u3;q$* zWb^$yk*iSPq>O^7k^ILtb5QA;8T@0}5*3>ky5?^N$Q>^vORXrxKe2@__xa$OQ-hD) z(qKzlDD)fNmZ%?oQXy43i5JhG~|6O!oTu$WHMtd9sZ;P2HKK% z!F(Aez1zrmW9K-Yqf+zSvP!UDt;%od_oJiB8o}tl5bn?;G5kF{9NUbdu{bvr=8g)7 zeU;PL{k4el3`yBADHY*ZHCtk4t_Y!j$}@v_2ydYZBMv z2e}X|jJ3hvEdV|)Nf=%n4c(7l^DEOMpmXOAp1}s_`-+%u;+V2c#^RAA1f3=1QrM7s+I|((}Y%#bljt<|Mg8Lp; z5u<6r)OchZs%k6XiPA05eb10qRj5i88SxuzlVj_gC^Y z{c6SToNubA&FZ7Ldf_2UKBxw2ft66{DC~W`qnk;XL zW#?*tx^`479G-R(itKf%^ze7ucS!~oTDgH3+w1+#SAl7gr7&U5BXV?oHmH2~N(8o( zNkR2Ih&@n8<>y&}N@WM%BzPUFYwab=A7n$T!<~XU=XzFJ@fK@MZ zK;6EO7PXfUv)4M{c>X7;t_sIb!>3_4>#c@mmLpLbr2W6b$ps#T4S_j0=a4jnNLZqo znlIF`tb%xTI?93_VhD!VcQn4;j;0>Q%BIbu?p+#&cK-GO?dzIBR1=ZC1*NQVJPJe zHSAdgsp_7%(=QF&%;G_*(i|u| zyBySZq+!nlaVmEFy4Ptpn`Juw^_F7wdRr3iKNHbT2-4pmE!1m5@yd`XFCkY~FJuP9aGyy^(f z-?j~p?)l$2NSaT`CF-~{pQbhJ$A_sdAV~6Vj%~WY4VZ0%EQvE1lSpCaYBkWkJO+db zqaczw7z++1GX72xSPjRc;KCFBrP>1UvN_MqUSNvv=o(mZ=@vOs7Kx`J3P*d!g5dgn zPVH+WY%Q+G1C|X~?KT5CKNz9nh~s3*QA(7i+JcH{D|a}-22}Li$ZX6YD*qV~J@;~Y z$uu5Dt*^!0na6Rdc_Iiy4sq|^D!|eNH}v;E0!0yjXoQ3eHS-@d1o$;*JLhkwy&}8m*l52&Vx}z zw!xN)1!!a6OqPZ0!Q|>J{G}NNT7M5yXE}G~MOy=7N1n!MqyWs~1$b@tPMql}fumyg z;SJ+;kUJs=Ce?2M-s?xy*fI<<+fJdgbTt0W7Lg&>T57Z)wfV+?H3n|{NneCj!w%OB z^sEbHvur+?{m=u$hkt3#)HGDvS;2hNM#Rdv7*k$#&=qf%W6ZJ17~7k|Z)(iJan~1v z%A)n$EE6YG&uv7>0VjIm+AerEVHX5gZO1<`0pK^G1gCfzVc5+BWPe{ide653!{7tp zyW|0}pTL~5&Ykq_NiD3uz7BrhVO}rqGdN(d1QPEwlFP}tG{~II`*gRUNPU3s+WMBx zmkL2|+YFqywh+v3ZiLvB1~TH{G?+Pm4#)+rqKj`p1sXmq(ll0=MG^Rx+khi;M9j&IavN(7E@%)*kNYjO6MQ}n6!OqBjtjn3UOL98qf zgb40Zx1u|k^(LfPH&jZ{w44fkWg-sL8L zhs0~T{U77_Y?d&%oj(Chr?}Ba??NEMzmN!G1DnIwh=6D6)2#A29c?a|AlJ7i8 zS!XS6$!59#mq&4aW*+NEmqX&PIH(^#Ke z{;OL@4CQ9SCck+Q+^`+Tg(aYZK!_Kg`huy&Fq!xDZNC6F##0{xw4w5)58JR2-RMVl1zc%2=-dC*3j3KF6Fw-Z;Y z+l)^;M&tI>2+X_OM*c`=V8lutSj!ktgW|))Fm^q9E&jwkd0Gcamh6t{F&=laV1$o! zCei35@QIg&imwUvy>EiTe}_5UDoJ$YUK5AyJ1|RF4LhT%AXciJ+Kf~tGiCBHMaPKV z&Ylc+mNIW&Tp3&)bcW@9C$YONg619iM4VYZmskC<>D%;NaM&;jyF*XXp00dSGO!G< zvU6B}h!?HB+D>$R>T%QbY?KRp&VP~{1>VA7tYO|I;qx>u=xH)I$lAfjT_&)Oecu-x zb3yN*M%JNuN<^+%e9^rn#Cw+wPDl1#)E&#sQJ;mg?LN?ttmkWV=`tO7J{?-daonFx zmC$RLh{188)aa)_s${uQyE`KEu60BmHzTxvxP+Q&Y$Ha=Zw%C5^6BbrG9Vm3n?Fg} zfN|S)faLwPxKor0no~d1_pa_Z!#fPtJa%IJ6DPF$REEA;vLtn)1r7{O1zmjwSfj+A zYj&1k6YPe<^GQU{)s|*TCt%}e85*@m8y!OIA>txqnBESA9-A@}n~{&Y#aoegs9e9u zu$T&UPM~4e1{f&a3j+0TnEe?OzNWwpG$I|~8 zudh`VclDyj!}K(^L{B6o%JS%&+DWElhrmMbozNy#MiTdm!!o;Cs61K(-(ng-Daal+ z>jYra+-x||5rgiQ4)EPN3o?7npoP@&kEw)`N6*eeh4&!Up=qcsNI_@4L@N0zh~CU|N18&=QcI`pmU}##@N3FtW&HD4HlVbe@=~jJT?bPw;Vy&ugrJfqCtg`-|6wL zMkG;>XhB>U3br(G4hn1VMqDV?uE`^{?k>zfMh(V3DxP>77{S`UGZ6R|Fn5s&CWRM6M35(}`Cg7APOk#q zk+H~oUX6eIVo9Jq>uQY4q6uC!#^sF2Xi}~m}(gjxAS>$L&Y2f%ARD#!yPy`iE(tsv3%Qu`_w)vggfe138x*h z;9TcX==qY3zgOwPr~8a+U%3HCzGfcvx!qiS>j+S|6#+*!dZPB^iQsmO^_Az}XI$zf zG}yleN3q$SHO~(&cQRjbOCp^i%RV3VKL(eVGronzyvBe}DbTAC0xkC#Sn`_^7F^kg zTI=W0H>!)V<-tF0)n`K#WfbrYb7mk<^+D5u`g#y050H9s7m%GMk8&}tRHiYH#%^(^ z+F3ThoBKe&rNV;~>Yk)C2lvDDW(P3LnFX^SWYLRSQ$hNj7wr952=;B_$cwFM6r`Fp zANVgFPCbeOZf`JiNL}Dt-}VHRi$PRnr6>1{vd`G4wlOuX2%nuFi>}XtsGQAnvaNC_ zS|}6{t520kmUq$P%f!+3pE&$-Jb+g}8!ThQIekglBTIIpxM}vdWx;A4f89 z{MKFQwP72bx%VWL*{2hymp-^lKM(@uh2UKg2@R*1~JYFz|g_MBS};;MkIiml~OGPA3FqyuQ=X_ex;J?Ty$c zGZOA!J&daZr-Cr<90;6)GVD=-&;>8*pbb$F2co|l34dhS%UI1ek- zHzQupgP>zm&^c5Wtgp$yTcv7PowyLX#xI6VuErp!TEJOeV-CE`S}GB01@=V;`M;z~ z(ZEL)c+>AR9SXO=&YZ_YBHjld{Lw(|Rk3LAG>6)mNW+S(5imbC5ma29@!e*7cIMxU zJyjc6?jad$CU2xsE^%UTU2rXCEN&zBSx$J%?^x*FSB$?a zL$SKc8us-SQk8R~iM;z6^pb2Nbilk-~gCT5x^kN^Ixk z$>hcma6jz=-s7x+e_IV(f2h;&9+pi@FQ998Rzhca4Hc;9(Ap;ftP{P2w!BG4E$cAu z#I>EUNw^oth!WCnP)I_87DLN6Ws>(ThpJfmk%$@wX{_YcfUu%RlJxgTAO8T7xk?asS^_ zy|keTge(h@Ld%fSQ`Gjj9PErv!9Hs?8fGH^UB^$NPehaUC_e8IB*< znLy@|6kI>}mx!iz5WA;R&_D2#Po^+0YUTj_^(6`>lnAKYIUibNkwa``j-o($V{?j6 zDyCMkUD8w+Tq~Ucr7RcGWBZk8UN54flu|Hzj|#?QrQ(u`K%BLe<$AKFqheVRaro&6 zCdq8C{80vYdkvd|&%_hEx5{9(X28g64PbBWNtP_^p!*g@;*EgCu<)EA z7-?kF$Tio=Q60v>RTR>=JuxWrr(OtdKR=VNb0QEFdRJn9ZV$a4)(kDP(~+lM#!snROHVAy!R~W@^x;%Rs9>}HmL2Tu z8NV3XY>m+-DHSzuoJEyGyQovEGPaBn@w;Os=;MYNcs98Kr)x-pYwb*Qa%jTnXEPu~ zG!0q~er(R|$w8Zk98NI4O-k53=JLo0dSEv5WrQ1pnra?)opXh@DMy)mXfJG?UIh0n zcVqktN!U?YPx_wwL2~VGm_NQ2_LPO-)JhRNI-3mgHzdI5)hkjYH-`4+w4m zA>taD)b#vndJAS^napp(JABqa@KCCG)OD6AQEVcbK0QQzOc%M&`nNjkt#OG;5H)=s zNX*9A!{puU9k2b9|Da+7gJ&L9dbXnjLOzEyc;SO=~ur3BAze~~8E4`q5sV86HQbhx% zhk|m;Ewahj7bc7p5Q8u)xb{o}<$d;nv&$H$iFC#r{i^KuT0p#1vrwa87f7z?A=8df z=-)Mk#)>K^i_>At%d;q>ltM+8?D-o~Ld3i|7%j+x*-cpTVC|lb?E*loRtD*5e$_RYR5 zXOM^MgK~)2qC$8v6al<11DxN#LKrAc!aJw3(D_L;W|?I}WY`5_bTEo9Y@G=_cX+r>gjL!vb7zBAI!?li|v@dbr*(0l)8x!uBm+IBmvuSrm|pD_$nx zl6(J1CCg+_)D^+VP1P`sxkWtXnai4Wh|Szoz~99UHU`W>`)j_G*KWs8xjGHQ$_Py* zg|Jp5oMrosvB)e32W~Bb;W_g$J0ulC$1KFsG1lm$9*Rk4GeEib1$pCkiv|w!K&x~V z)vRo%uUkuSZ=oM!+uWi?@>1N=?|~qE`<$p88A0xE8wF`EWkFbN!R?CPgsmRy=-~Gm zxZ}?%?3uxMi)B^xwWbg*E9cVpZc(tMw+VU9FNj`_721Y6!F&hCnw;vu4b?E$L!uMT z;wnKHYC)dHRb$l9Y1pKp2CV__Y4qSB&`c1LQS+1Gp7;vn#grJdyiY+}?Gq4ZK%wt} z6YRLwNLy>>;Bd%v@Y<5beZ3rx;^m9bzuFkL8ph%5j$hOvZ6Bzg^I*)!R4Os*6z;c` zW1h?wTL1O{d@?LRoA@l&lbZ(pZ=7gxyfv=M5TNJ0peGh)5Xa?pO2gK?sI+;PPbD|&VDEq!< zXn*vTu0A{!cm>Siv7JJMwmEiLGZxO4JqEEdi!u1j8S+k^W%M#^Nu6v2^od!al}9;g zdd?U(zr*QUtzz)Bh(&?oD!v%U*kzyJk#8d!!D9b;{?Htbj<8z_lFKyc)z{`ASLun$ zrJZD?awd-aC51)LG-_YvI z?E}dS1G4f;1h_Z`f{|<@*DAEfixL~LYmNhI-T6R9U(i4c4ygKLDH_^P3iZ!t<1`a@ zcJ7;s&dtkEtFVPXwY@Eybq|0Z7!9II)oLgg$ zqVginDCawO-Xafs=5^9}qfg;)T|byDagDq=7EeT40#c_J3$0@+Nvyd(b(?C5%10up zO`1I}S2+uxt_qkZ_%T0nZ2`SX8J}D?2c5PFL9b&nslB%zZ+XW-=LLIe%Q9pSsz&33 zt|)Ao6>czoXe5>lGtOG3J1H~IC7ZsoXVAtY7@=T=xBHAhS!yFL>j*}xkSiogu^IX& zN0Wx!N-Vz0vV&|cI#oXfY;Xrv*q95|jJ3b_Q!~o(I{Dp`iZI6`5qq{*Qp?}R8IN~} ziWkJvtb1dyL|Ysb@82Rj9OJR$ILGcb1-03I`oayVBbZ?zj4kY0_7v5m+hC@lfF@r zOE$4+s~}?PRrqWqd-oq;-I>!tFr1-}-M+B6uTHMXDD{;+vUQ39ojZ{>kmyY;I`{7Ke`D)RpR(`glKnYqdb7H!dJ2n}ZdR z%b>mNGBMLM2j6OC>@oMDzTN(~aQRM@ySS7}myL#rf@r+ADGJ61vHy$XX)q`iq0gmI zJkq%m17s~RWHHM`N^GIyQ(0EwNj{DVssQDXO_<@o6F+;LBZ@h0q@wNtS)Yo+yB~ z`6S$|w;KiGllXG8;;Fbo2bpkXMT{g(u)=u%5J5{Wne|xI!w^%W+|| zDkOzR!H)Eoq_{5!raiMmYWtP)X2j8>EL(ZoP6f7oPX?0~#=JOa27mYdp+9|UfVb7G z*|lOanZ9;0tln}2EP_5zF{yDVT{{H^=_#^$?Jw#Z_m$SmZUmKK56ZKBPX{MHVVQ$c zZ1sFa*G{g)g1_l#mv;dEZq2|M5h4iAvcZhcm*};}XVBA~?VtABpm1|Az4v}Tb|&`G z(HYgqlRQLP4xZ6y?)6^+ISm zs)pmd_CreRDx$SLij*&8-iv1qEC;@Y@?4G>Bq&9LmGvUzsl3+DKF)elxA;VN!gL73 z)kIidLXu^~VW4I+#1&=3PCv!~@=nCO&U|9^K9H>U8Khns0hsL)g@4xCq6X_bocxs! zN6*!O#2;-8ep*Ib&WTZ#UmSUVe_py&c=R!UN$sE1a0Wk?!PSiU(EQ;T*!wroKFmb7W2{^A zOqKpUae?&46hMUEG_XGG%KX>rM8WtB-0Tj8Ta(seY?UNAv`8Oyt;<>GH=LicB$o7j z&Srau*IfL-cu?B42CBNYVYKQAT&Tu;sve`sVA5+k)6y8U_Wz?cKJi#C&)6+R$D8Bt z1|siFF`2uBFr4;qG~)~fQ03~+B>svWIGERC$NOOH zDYK?`t|mZ0a~aq&A1~RJju|hLX#a!`zOeE+^$q(>icSQhVX+TPwGlv5?G7}2r3%x} z%Yjd794VJdfuf^z*it;my&GH#`c^JzxMwf;Ipm@8@?6>&szcjzrD*)573ei!NGgu9 zcXyHwl~M}_&6LGxa2aCPS(ow7F_2AzV5mH1QgLcSQfW!;G2`esyA|4Hs248;lc zpNLWMIZiLio2rdUhMNiO9hdJ(?WUSx_T+Wg((cW5h@_$Qbt1M|jlqTXY4~Hg24iIO zP_8c!WVK77;JrS4d(Z^xhb|M*-AI1H_A+dD|Hui=aye%@72KEB5jaJPlaS zDBPbG`QD+8PC=yob`&3`9mQ|?u2^AdjL!RYVP!)S_?LP!UZoUi^9rY0+hZ`GcsK5| zx=Re-E5KX!eiyAiL)Be6iO-35q)5GuF1*Sz^XpE6jOsm-bJi5L{fPwyJ8zu*t$;@H zCgL=O5D>j{rUK1-oK12C9d-8%Bp$p+f?~3uWp4$&8o3)7X%#v~Er7*3rC{52gmGNk z`TyMVLHut3nH@buM8DLTgSQkNyOHos*j;Mi1YBJ;4*C~V5pH)9JdsWX_a14Mg_FXv zy`!;FCxbl64`$BW3-pLwB0k!di*IW3h#QH6z-`P8Jx3an)s{f%i+yPKR@R^2*zsN;S3(I zyP!fNIW4vxV~f0K(e=+nQ6d2g-&Vq))-Q5v&KPV?jKU3mjo9E^!dM*vaC}Q1Tx@V> zz7P)4n)Q+{GKNyOBvuWi!8!vGIOx{mqfa?dx2+ETOwR)M1rb<~n!&t0z1*>JH|gBW z0C-Ts7>aw6iK}xg@hM8B?RjE!m)2UGbTJ*}#hgGGW{%z~Oi`WfR<~{|0WZVJRKi#d z{CS0Fucb#DdpqdGnMG)!c8wFPG;6*$L~v;1Dts?4fGdVIFzR0nJp6bVx}=Wc)iF}w z@;4tuM@#vRO_lUXQ!TbH(V@RCF#cQ!%Siolr?Cnj_(jaU^!9oN_J1+PmZw_$mb>5h z!wYQS%hOsQO1X4A1mLpidC*fBOKmfD!|yLb^kQ>CuPTBT>~22OatBNs4hIWCDR-O+4nZ=$|0s^}HN87QH*6RtC- zg5KVET=JDUkkVkh*{ zi7m`g636GRbg;Qcb1P>*@jZ7~egz!9xf_N$Gl`E%J>7TT4?9L%L#>%V{$oDYzVD4V zISn*W~q}3SXGd_dw%`!W@ z>{*=e?ycnX^HSK0xe$9C`Q;}WM{aWr&O25FyuSUMVsZ=}xuSsa@of!SeU%7rN-|A* zZ3j!V@`=&asc2`t9}5z#@bLl0PYti6TJqayyYXH+eFJkiC8fZ@h7?$w#6iAIAbNMY zLf=v$@`4hYEGHJRcfxeG`&`nzBrbpmOYQmURcnYq-;w_zI34fns9?)d3A%M_Ev8~A zywOO;*mOP-3~VJs#!K;1y#M?oaS=_2{28@1X7-VYgV9a)QUt$bfUhgcr^>#J5 zZ&(cDUIt^+g_$TE$>Xn?Fb8=G-}%XZ`FN~7noKXA0#+mI$f@#Bu)mqijn-L-^CC{c zPdDZTZdWI%QPtp@tV5b|D#7&0NP2(!KkBtpjwZ3*h-;@F{qmCW+wYmdS-VtNJd_H9 zmVe2P#}BD{FgrhDih+vuEh2H<7`^?Hu`@ym6?WL8obp$`-@J4%kT?R%8HX@)nl^}S z7U3Aiv+BFM7F*{U5<#(uDzo!iQduUn23;rS7p6jy?-gQuJPQy0)5pV70_@(;abFd) zLEvvdnR+x?4x0$>(GzQo7$aEW6fmtey)>8`LDUyzetWgjGqFg z63WDQcNMI>83|e{he_?((?osUGOFR`2jLZGao2DVd^#iq(VUA!F!BVZy%0wky*SK0 zCIa2X+R$Xr?!%wDiPw{>WM5+fNp@KQ*Vs9~msa9P)>rJiG7B<(CgZ97I#_ELK$p3P zz^-#K;D1saUY0aM!}erQGh!XN_ZwNa=ODkalsVF(YU!4#^*Arg2G8teoYv1X^ykOq zf{}SJ_ce+_$2utpv&|t58&5Ho;di=3FBHR$Hqp)2b#R33f=B)kLELS|4~*2LW2SiE z59Ym+sR*Uk4`xHz@0YZAZx&kZttJsiQW<~66Mb{*@O^Uu@VqzEvo)z~pF4&IOi2dI z!BnW5os1od^T2eAKlS3R!CQAufs!x*b8eb}>WfM+A3qNYOw_=8wIRqoO(b5c)yR~8 z2Qi<|vVRj3xF_uWv7x&h0)H;YcT0_dC+o{szL<*E7hTwUU5H_qyinWoF#4(tk@NrL zQIZ!%H70L{lk4JO?#Oy5)J??uzY1t;#z%6zB_A?wSCjv&D&gIxNl<&Gl05sD%^aT} zNMqk4s<{0#Y3uByhv!a16_Yk9I4?%OZCQzXWV7*uzz$E8ABX*}h0Gs4jTV?HW5gkI zRJgo@WeS{`?|U9?@j8W(#<9%z)Jp^HOc_r?3xeOq;E36Z@a#_xR2tQDxnR0kiEcZU3wbkBaL3h3V&V`$^)!@ei>ZiO+`3DnEF=*J?3gEMKXa;T z5u2KSwCrOuNjP7GCRzbxi_cEvi`8M@&`v1$_lr7uSCVdZIlg>>8HiLP@uK|>@Um^9 z^LD2)KElQ3imVy%-7W}UjxL9`4-+x7djy)BXW_s(S&-Vq&XM|&^tRHYpnnrz3tupl*LWdWkPa+oW*3v2F^K1>UEk{#L$D zmo9cDY0wWEVfe$u8RUKzk~h-pP^p&rfTszljs6*0xi1u={Mlan`gYcvT0_tIs^M=H zCH&Ezh$F1+!06U`KF@Pg^MfaB)@!tI8NF18rdNB(Pbm>_+OjA*TTPG8PKT>f>@FfB zK@4}hfVzRktRlN8`%fDb<0HXnzBl5lN6BLoGfuzBfe%B#(7(t4gi zT|;+JuQk;ucsPO6J>m<$7p#NKH3o3{egeF?Sw$rFTf&u9so;3(C6VHL)6IcQv5m&q9=P4+o70Nm$`1&iX+I`0cO1@I}WjP=5tqG_t5P`2O7= zyXTkib*DICa8op%UQz^#Ia^85&|3WKwE$~si@>AdGfe&C73)ENN-Am;jf9^+vVqa_a6@Am z=xJM#d>vJE9yW(vVrM}7$0x$OyPI}phq2Dr)ETXP6=F#qe1C(oPg!dI3toSgE`QIt3^bT|F@&hDR>KK(xO@=9rGtp}(p5HW* z1I;>iXBhpO?~@*babxO0U3?z7nI8@h#bVKDWFcdwZbgak3iRziMc1n`uJij3%}bY* z;{B>qv@B;2KEJO7VYRF?*p;In#m?u49>f6W8U`BSC&Bx^4Xm-+jBR!cQ7Swhj!hjR z-rd9WHk$|LR)iz0Z(zLQ0U~smMdiWNyDM6-;@4VGe;Q1*IM!!r%WIz3nSr5w$)GpE zg4BIr%n7eloD~!V60*rS;lyuBSJyGV40Fp~{X=_OnFHea5o|nmg*ZP7z#W#qNwt9_ zh6#9VcCi!dPD!9BzMF3q9F3PI#K8sA5M+oH$ev#X<1;Ps*Xtrkk$Ot^$ef1p?=z8c zGKhIe8Ae}qf)Sl!pfzSP=|7M|rLTza4CdpP+!8dCo`!?kPl@63WpHflMJm5S3Cy~c z;h%jN28FFfuYf?zUlRm$^>^xZYk-RPJ|I1Xn+cEcS|ubWK>u3@qP(mTcgbYK)t^&f z+`tS->R|Jpktg|`nchTsMHUtD?h=zbB2wJV^6Wx3-+8#7$b1~4*>ehEiu86oyp6*r zV;GahCXPs5OTlsD_Ji3L8+N8)JA^j_)YY$q+-fw$s2MT1L;Npo$Ge27K=}PI(5t*aA{LAX6=67MWrgD3f2YWg#Z#cJbs3f~U~HgI+hBO=I$YKminjvT`SqU;IG?m)`3POw z<+L0fV$JY_Wi)8%l~Bd^p9wtVz{v43P=<5MbbOO)K55&;t&G7K; zZsx!FO3%G#eQ3uRN$YXa}lWZ>UO9=TGwi1$_mgCPGeEfVx9iL9grDFoJ zQ6hZ?NQ@O?#oZFTsWTS;78{~gr43%(CIJ@XGq|w2*Yv@@BF2#(i#y0`lGd>fUacGr z=2JbP^XV*N!*|CyA>$y{HiJ8^nZ>+@)u>%M4KBE2I)qNf|3tk_t(6_M(y`NfHtz6s3?#lJGWY z);v$%=6RkwdnJU-nF-18BXi~uzWrVPb>Yf+&%5_p&vV~&Mn(|)^xllCU&cVsyDI9x z@)!*pdkm`H3Q+2z9Tco<1(BX@tpbVT=;SaLrz>v(S*cN|& zJ(TVZOUPFFT*zH^6bIwRQD@g$BBine6c+!a8C(%moh}5+WJ_2QYzBh2_PpCYY1(^L z6Z+O#Kq9vln#VYS?u+AO#*Gy?%`pum-d?8t3wWYB!U{(vHiFyh=Tv1@CG7pD2FpJ) z7o2>4d%xj2Jho{qTI{c&8Yd`j^=iOApDmERw1KV)X<$6kv0Pzq7TUc0&gZ}14>^mx zv6r6%yRVqx`D%Iiy0VU5d~g!?$Yx<^OFtPeUJm6=%G4KaH%61%H=` zbg-p|zHkzQ*v*MTBz3`f^e9*`cQr&LND=F30#n)+V#Mv4w4loe=fwH3d(gf1 zewP4p_Eswh?)^tg9yUS0#s=c7_#apO!5^MHrr>$2gv#IhPK4f@_$gK?An=>mKD6gE z`|C*Ps!WFQ`&}HIAL02v6&`ptSd6qPzSkYF<_Z zgZ&qYvEc>2_rU?ygA1U--a@owlPM{YHXJq;0p}+%ob$RBRHXC^u|8r5f3wCy?~!R> z5s^dM*Udz|W9<34KL+Gp7r~NmsVIKM2E0DA^Zn>#@?q;tkV#V@AM7-s-(;NJmq8*_8`5o0{ z4468%<8b1BI1ZXebMJUveE)V7mTz_dyE|-e9^x!y;EFSp~*owIS)`6TLmZ6n{8w}*A-s`>rzD^V-p8O;!H zfeXq6J6A8__Ibp?!HNb{W3SwV(~RG&SPE_H(?J@_(K+BLpZ_ou{bNRe_Vq0=rz#hw zzPd@1UuKZ)9dZzV_%Losd`(b(J)WMWjdF`!(f9;X@%>70wlxTC`z!HtiZQsD2*|3Y zb};yqkFw!zpn7I2TrjrAw|YS^xS4&|+6EhL*WC%Svo+zt(Mo7BKZKL_9mZPui@g2E za_Z-=hmKo{!9vc0%!{-`;gj{;t@Adhm~TNIg%^=48R6*P6NhK41S~6@z<*0*_pDo@ z)N}WDB4HgzX31V9g7+KS)ierl!15NIX~52{nGb07SQRj`TL6<4^+6^)neW%Krpq_2 z#H!5&AbPzFicgEfnkiY}>>4Yb1=sLVP@_1Vo&lEk5Lw&e)`8 zQ2bbkVt;gT5n;2uBpGt%(+aQ?D&rUv9#x{!@pj%r;x@{kgpOexh8JacDJBLlHn*bU zrc$cbEdgh5*rI0S4yb==1y+eU^u1jsbY$zH^6)z1B5lqx4OK={qf_zcG>SJGnxV5d z#Hh7&G{$dD#4Xx05+y}DZoeGE;PH7j-$%LmeJ8<|x3Hfj% z0FG45$E}g^kf50ek`An|aPV~75{s>%J!3K$sV|2!&&I$~u?9$aI3A@eSdQa3kCyrC zVby1fU&J!lZZMN}^vnYPI5E7btqGnE*U7z_Ou(7Npq{{Hk6PRC1oK``eUyZsyOzSD zmNr<;{){;3Y}ll!h})-E;V9Qc#t4mpug`kOXF45{%nCu|y(0CmDWMxY)L_-hJa}GQ z53QzNRCmTI5_mrly$7XFCgN`!Dhog}h*mSEJ7uow^ zfww%a_f7*_<5g&k@44Y!&&kH20_;3h&54LS<%}hk^J+D=aMnhM54k$DL^juJPh~wz z_Fee3nFw~QA-)of?XYbF()>?kIJ=DuXkDX$^>^sNdo#L6K^Yh8*1*z>p|HJfHuR5W z{=E8B&~#RS!D@XnU|mQIO8?S^rUuAg#d5uIaV_>80P$0UtB8m@ta=A6QPj?I*&K2ab5fyq`Qe*h^Z!ib1Q6I+iwh()XHa zSUlGiW@|GaeeQHNH%x%QB`?WjldV9O*5KmTO_BWA=}1a%usaadd{#PTMBl(IONy4=%y{${=iXxlfvFC&4=-bH;%dA@#+p7&~}?cl5HyU}whBKbA;U{-%MAWh$40Ss&W7xg^UIrpF&UPPfhPT6EcY>F=xhw0dB%^>kI zmJIbx#{51h=xnd&Hat}Yt4|R`(8+dKPkZ<-^CoI@ZZ=s_8V66qicoTuH1?LPXYahJ z@LX~pO8nEHuZ@O!)@!j3t)^|2_1IXXg4atjptf3;O0)fD>)JtbK@bee zRpLae%L>JWhrsW#1pEG)&WUNwfkm&`EMdVWZlQA$tn2hd|Ku#J9o@?BC@I6#DZ$v` z7=bRf*GOH36kb+PMdt&-oL>EZq_fC{7feMXovqA+@_ia(n`A>jG2>giEJ!o!K@W_G zr&1sbx|2WhePeWCEgr*9&LNdzvCCXikcNkp{^Kx4s3BAd&&{)~I5D}R^EzhVs8 zVTE*yOd=gM7zNF-^YL(bDNLOsjWUA+dl}p zABqk+GZ6F~G08gze|r_d&6}&C(3#CU3+J_Oein@uGGQcC-vqZrpQiK&(oCT}+%Eb? zjGk@=g%$_szu3oZD=h-!;xFw|&Dz*yS&7CwAM(HdCc&{H8yqk;qP@RVAazMQ-rXjH z#t)vhi)zZCbBQ%qrql|L(x1??=jE`So$X^nPT-+YvEZf>ge|5*Jh-=sWyv*gcjSf;_S6c|LeRx_tts@t<2vx#e1`T$ErOoY zH>mB^rBGn!iJHF-LZMs;^?5Y{hs?szZMhq!i}#QvX>zb|c_=L2IRj_<7J+9(Aw5`9 z4asVKq%ZXdxO}-q6d&o5bBtFfsUOX_v%Tb3S~gC4m zpT_5cz`e@ofO{&~KqK@0)Y366vY149DBmzd7xV)7+4w`@@@FJI>^INv0 zn1OL2`SAH-I*Q!iOe|N-f#F@Rsb5g} zKrNEpW3R2GYByamWHIYPYRusei)o->oF45~o<iR0ufHqBem3-Zf9OTg*~aLJg1G$N=_#% zsQ~IJj`)D(-W@beVZ+6l&>8)fdv528dU?Oe8&M97Yxi>n{5z6cI z(A=xz!AR)4m0T+FZR9u zX$CoH9t&Za4cHLjk5f$xn5Q-b!x|jn#^yGVH;7>Fwlp}~A_S3R$Iw!DFKD}2fz6Cc zPVaC5Y9)OqJ&~a_F_E1^)x5|~l_OyB38~WA6W}~99h;u4#PxBJU^=%M4?zn2Hcx;( z7c8-1jU)=Y3%MmyY<{=sd3$hY5{6!J!;p+{2x@8u&&~(L*dmaB6;{T)A|Wu}q!`+b zUD(cXEI(sX3mB9;lVvO;7?}Qv)Q;&Ot9&xReb655+zKd%32;e!A5389?tb+?5|`8n zQj?6pV!;9We9CbU&Qjo&nD6Dhg(o(OjRZ55<5VL2Cpo-h8}^jN@+rm!=$8*DGFy#T zyj4nVmuQ2`0Y?%tDH|>e8=)&A9e>#$g7m}j^pk2m%&5G zclKO&S@JJGO@-0S*`g}ZfFJupz{^pKe%NLSB1cZ(1^I;-Uw)b@r%KQUt{sOjCEDOk$)jyp z^$Kvo3Kdj*d;(j4B+}=XCt!f~6cF!?#=*@$IeS?}Y;WEP+GiXvvBeZxjLk4}k2Pqh zPQoqIZxO5hGHP5AhZE~pVC2JMeDpG(rZ&q#f@vwdo!JZ>D}|_Yaw*ClWzX^Gi6r!z zBC6$E!_0R(F#1#x+mYGpDoWh;C(0ihxs_%OU?(>~ z^`@i}nL`r^aT3z*&018z8}o8``%!RcC2hT3LUcz?pk8c$Kz1F(YvLSy_E-q#uSTFo zpaZQNzY>Q67Sl^Nroi1fb{Km8KIsnO$?lZ(u+%6D4zcXc_R$J#Zt{?e`7aGy_c1n# zLn=z8Ey3vd-37S8Wds=8{xCYXRsc4NZ;8c1b6gvg0PDXm#m>2D ze3fAd9sxE>*sq4fn%xp4ETNwjch@IZLiFopSny>O9%yX>hiS86yXs+fZr={=L(8C} ztqND?3s^>&?UI}sSJO0zX1`CS&;Bfeej`=>!I}sR(oV$fE7h_3k~Iuky3$t;s`$Om z7H2&{(x>JDZr>tEZORxT92kY}Dv^*WHw&aEw$S*z=`>v`m=3D#N4Gu;GNrT`W!{~q zs(TNEh`$f*l1RhTdM&u4BvxTJK`R%(YqZra?_}vVluj}DF$cJ^IU1_exm(!8Z=w2M*pTj>Xs6R zR*ycAop008_tOLFHMgC{PrX8(LRUR5hFh@QrBc}ckG*$8~%mjPS1 zOXA&SJ#z9WHIc>)qinJi7^hUu5rzy>f8jWjI)#+yD^|l&CS);A%Az$V0b$kXX`B zj89zPdK{1Q-I9bVPafcM{;=oa%WOJn+(s-YY=X2#A&&iCiR~Y!z?cRe1+TR^#rLca zf8Unaj5Q!4;m%k%{s}dHaSU}|KBYF%4MbOb9+4E`!LIZUJ=*RG_ZS=0UssdVa6CL5 zo`T~vwuAaD)^Vt!d~(A{QaV15=zfjCh}B1^gZIp*Ho~fo8wBO(I|K)C~OLZ$x9f+=JE*GJ@E*x$Yn0K@tWk%Z~>^!bAMvqRhm@3Pm1h`gryhg*x~FL~+wmBB?nmv1+d%wkBirxf(VVJz zOjyxW8y5vI(*G)XkQxUGPEBC) zTN_VL%Y=cE#?)m-Gkvmx@qV-S)A-Gibcxk&kY=4_2v35KkyW^T2kXadY(X2UCi73(`!?rKU*nQC`lXjdWvGd4O-$RTS@gLV7tp^eF zrW3`;W?H*FiWBCf@&TVV!aMaa45T>}jtDUH)(JdQIUfcuo+tVZthatw5$&p9P(5K2 z>h`kPLgoy7#?C^*&ks1g9}Q?Jw;aOM*E2q970Vg@<_FET5Rpz#!_e3Ps%3tX>{?TU zc3V^MVPF`36P7TKtOza;or01J{7^ev5iFH9K=PwrlCQWJyZf3ke(o}A-<(Syt7JiJ zSs8YRvp(f1QPQvToo~L8fg)X!h7zk@(0Sb6LVR?h7z3|{5yPF8Af0}Zcr|OXTv{pmjTT2?-6Gmtq6X=_BXtf7AhHvtz;hFEeARgZMlA_L8$~e?q@t15nIzH>)(S@7?a)o*52b4d7|g{IIvkHO)=-m6x^;h#2B9~^ysEU z6zdB?yE(~JnRsxGw_C~7*%zp^R3uqyQ;P@6V^M2Q8;ab$)mA${n!l1PAPIwvqjkoT zUw*O%H6F?14tpW0)XqmANhhpcJq3SF^n(Ylcj4FJYh;J|dUU@(1JCPeGDnFV%zAQ` zDrYIvH#34!;k6?4WlG}l-I?I2FhCB@7J}EQ0#tQ(fp=?PlB#h5Xk_LNSC*fmm#!QH zt@&(LxpzLC-?SR4Em)3uQWlLj5hr;cS|I3T4P3NJ0KtUSyeNBT`Rl7tW0M>0!tg~j zHy{UH*^9=xzo>6^5-D(GZmtt- zzWpT@1T|48yrabH)x044GnvQw-Bb=U3~|kVmgfO8>VAMjiz{AqXv=Bx=y4k^jn9BW zWEqgN?7NBWP#Q<8V6eD1*~^yeSpl^&=0ORes@6ct%s&bfYMj)=n9ZF!7A zJ=c#pOs$>}HN808S)GB&(rk|@xt`d(F(X&DR#5}9Mzo!&3Lb-*pc!9{M^n{7)!hN0 zRS0nlP0{VNDNbEpLhftdpbIvNL+`Z;Y*xubeUgenzY@Xu2jTY>mO`)TVyJzR$}25v z#k2J+NAG%qJRn=p=2Z<9Iud%2h=)gQVV!kj;>@xHBc`^a=;JUn zX&J+O8pGVm^po(XtQlk$EWzQMSILKbX?V1l(!IAm0HqA@;*>Iwm2rc(*U@mTe-6x> zbP~#hu^{7opVNCbfn~!-Qm<=Q`Nc~Q;2*gnJn*_1MjiCS-*3aAGgXr_+EajI!XiNL zw=|9$UIyD|=U{}i8|gkZj_CgGCD-SrK(Vwn5XLq(Nzc6_4gD`(P8Tl5%j)STYGs7RxJTj8T$ zA*d6^diPNy@P+$X`eb?>J`<}!`!9vq>@J47=5gFKl{S=m63G5vk3i@86XeRDLfm+h z<&j#HDd#p0>#Ugj&UZOhUcW*mb478!bq1L1%7O!eAk1WW0-G~7#9YrGit+zH??Kvq zD-wm4Vf1ilA$COM;uhaR3}M|2ya)6v$EucTB#Jt`j zsGw(wfrC@<%7kR{F69U|=07LOJ9+MizXpD{XZLcggV_E0A-U^25=-@`5&yZniC^Gq zNYA@KJYwQlzHcp`MshH3!Az7WDx)QgZQOQ=dB4~k%m3{$;>_RUzpA{U-dAV9$BWJg z6Bw`bnk`X0XH5^6g+Zl%7I_k zw-EfL;tR6dror$U2NW6mxm|GEmYCXmLj5%*Sgc(Je_w>4YTa?X^q~p+WLOufua3%o zF@Z}GYhmunU6?&A#NsxVk6lg_hO9Ke<`agX=aJ5M2tF8mMish>Dv8X=KHjfGA4)H8B%jWQ!QBV?5FEGx zwtqJPwIvzo__YRwi_}qi{U7qHQUwL?l#P_%`H`>J#h|}z5}or`1TCNL!1wHDb$eSC z^_`kXRjq^3$;AtL#zk|2&QhYT!g#E6YH6i+0`Ae{A$(mJyj~m&-Saln$%b+eYsK8G zG!5E&*fi+Pd`PP~!2X^aMmxT>!hNkodcUHZEIyZncgoXo%BLI`IBKXYJP zeJ1v7ui+czpHZJy0aRz4M8DVKF!}CQ=nh{;oLjz7hv#cik}-#ZJ6&LXE8D|n7SgW; zGq6sp1eEvv;SZ@QV{+4NT3*R|e1FwIpEjUK!c?OPe~)9tA8Bez6tUM`6}~xC!ncBS za86xH%3e}bXqye0+m?g5r!VLgpP*f5zEerx*%)A|i|+p=Vn{J_9AD6da@Cz+Qc}xi5`#V?Hb&l~&O6JWZzZpJ{|@4Cb@@ ziFMmp_#nFjj4nID>;@S;ev@%l$Gqjct7NEQMF!~pj3S+v8DHW@J$K$>G@k#p8F!EM zfuDLDx?0A=? zbZuXe#<#ij0L!E~NNJ#katOKRX9dpccD(MvEBv^Z8c;I8Jmc&2Sy$*QC+TmA&VNVI zP@ia;;=^*qr^oVsyNp3-CQj^Z1>^zCrB7a;h6T@P8%4Z%rTsXp> zk0ZonVJ?VBC!nCMgR==dMd$5^0GalYL?b<)&X>&sna}mK=2Q!;kBCFTHgC?$b(n0w z$NG(f@(>=C2Z!DDQF&1mA2D+-+H8BwD;qk~s~+`u#jTKhZX5^odSPgEX)@d-2f)1` z41!qpOKZggI=?#uEDI)q$ghjMe)xRIIKkK*%WTPti4CCqYAN?O-2gQ54$)eTG;$&) z16I78hapGf*ldV{Ju<8Dm}dr@JX{CPicKW9%o{52G}DT4m5^9C4TcmJq0~?mhCkbn z5({4w^C5MJI8#n0i)@7blV+nP?8T-?b#(qujk6rD0)s6V$(b!)5Isi@r*?cKrlk(B z@9lB$c4zG6>}GN$Hw{&O2I0ihsW9U}95gRq3?i#}B0AwD$o$En+v|?PRnu^I5MYUx zhjbXbWhz8@E{BUGA3W-sQP;!?1s1Q3oSi~RqUTsVetsU_zpRgXg1=Pc%7}J-HO6$> zHcb3Ce@C@b zKIO;JLU%2_Y-fQn`ROQG9tQndouoKx`VGjbEn>| zAm3P4`U9r}|E5%c>AJbtEwO~Ety&6Csb|Ymf?}d8Zr)ypNLS z2ZLZP!6oL~!Oe;Sv{)5{B7-a1Wb-88%VH_?-;zh%Zn2JK z4I$SS?}FWFwlLXsJ#YmY=<}l-zgAabv4t&;J~9%;PI-csRU0vOR3O(1*TR59CRu&2 z0>&-%MGv==u(+E2z0Zr zkx7Urng0UNdej8Sx|;>rZ>#9Xy_&e)ZVNbi7lV1BJZLV=#t5BT#Mxyg?Qob1y9ez- zu1pohi7q_Ra!1|hL~1$DkhwzA@$)VfT%e+lBa*6NRA4!9rN&sHT#e7H_Fzs=3!K{- z3Qva;ak|N7v^nsFM*pIC-?fBF>Pz6(%uu-cjdkOX7co_Z7Afm22i-N#`L2Hts3O~Y z+KYIw`Q|1r#H@^Y&HbpcQ%U zbQkL~|0?8a^){2GO)1bnN`$lDr%vvcilEak8R(46qXByJU}L~h6v;f<-l?RFrlV@{ zyig972rXczaR`Q3Hn5Cu2`-Hg!3T%i@pW4s=%MZrxh%`+Z$|vJ z2k4EcXxKT^37SHpv3+J0_P<`v<)85f*|p4r7*K*eQwng+^eoW3f0Nw)8IRUiH$eH( zD8|-`ho5&!(D8W__B>rjLT}Yj1FvSBySxs4-sEDB&MofqNC$|xwv66c!d!jjxj6TU z6GlwfPW0LTg;SPmrQUi&|b$_KFX zz4QE)boGWja5Ly851zKb&C$oul%ESSO^w_d8UttKMX^)j7uWMyg0`6!f!(_>4EL^v z4f2z~_&|!$!BIS@%Vpy?|1!`GE~Fz_wqHz436%ThaK6uZtlK1n+1`;*;LGxlGfGi7 zyN;Z{;tpxqCm`R!1FkbKt7+~oNQ+>fty}*%&lsN6TIX>>uj{m79^-U935C1*{>&E; z!e@?j1iOMi#BDCic|sh^Bj!T#$1>7+ZwocpDotiJ-=q3YZZI^gPGWDhp!M&=Fr7VD z#g}DZt!gNo{5=|*ll0)chdus{R!5)t>>gFKk9(q|i2c3KI6<=*dgibhiT-{lUugm} zo>W1hY&X%>-AY=Y94Ci6^03qF18MlogLjHATv-`TO3m_Vg|;{5=TCytll^oz`ayUt zbC;=QV(6kl`itcpBpeIK3qd*g-foS95|MZllpzcvaYc<2j`^4c;J6ySGp#X?y*p=p zyHAS(b0E>h0W|gWvHB3pQ2w85zG)3nhB8ukn8y(>7T`hiv3Tj12iDg0@o`%#V5MF% ztbCjepI!^0^Or2G?@?zSt`g>4%7XQ*Cnh~S0|jrEk&Oyjuv#Y>9?oF9*i$}qwt6Yt zWHUjdxqs-tqwId&!7x-cqro=C6vjt{fy!HU$9@|@4}WBL;T^x}O!f|zGv1BEYtPf| zx6NTg?o4ATT4GdH1pUKsDCDjUdj%C~_Gea7CCkUr6TLHHfZ;{zbH6SIe z3_X$)$)X2B#trh^jLhC)k9{U$wxgdhIrpr0Kt~I?IRjSVecZRxpdB(XpXE^W}kZM%x#!+i-9G7g4(rUh=C6ayco zO@hJ<#=ZD8iE4jJ$Ie*|xFpjUV(WDvE@UzG&S}CoPMdIs`UKpfkcEHi>#a zsd24%Z8ZVKMi2UBlmO&r$>K-Wp;{iOg}#;bBy+Po{7u>e9!uC6xRw1JZS$!>e6U@l zJJV>xo4wG-Shv5#$H0M%B;1}V!+foKpsryZ?wsWVLgp{Jw^I>?=dHL-r?B?H6E{hI z{Sr`R`Iu{0_u#GI46soikDHszAYoz}tZQh%Thj|b?ojx;>MyUP%tLRZJDkaO2jS&&T+*Qg zP@bNLy55?Y%ZKCZp<2|?*+}{q-X<~`o2Z*uGckXs1G>LXbNMGHLdoVL=*r3^K6OH9 zn?E0OTB|VMTLr8Xys?R~DYFM(5##dlT;^U`*tta+)O(uXXvakGFI$6gMg=g)*bJRH zPGm!l9(WB+Cu=l4aie1-I8T1SrMl#za)cc(7p;VYUrRZK88UF{Q#ojLrQ^+#eIV_U zK|3=OI4$L?RKw4bOnxv0EZmtpQ9hlwS;)8^oj?R>AB@~K#$ndHL`b zof{N6K};TB!H;0vpyx*32b9sn?LWa8Fr9uECspY_j-32N<$vU-wOrXB`Luj62^ z{x<9{yvJqVyFeu_3&|M105+~KM*la*==7(1;mjs!=$|l+FQ2#p{~V|V`xPI^@Xs_H z5P41SmK?yN-3lP?vmA;Zgh8HQC;k_sf{p6A*saz~B_>;uuvZ&lY zd&Vz1#9LG2Z+fWZY>xeB{b;;L3^zt85|U3@mW7O(Ebkjio4|QAlUMkA==BC+TMmH|R}V3ohJC@`x0Y z2@d5Dnu{y#1XkKCAyXZCD`ol=MfW$mP2^cW`{TtYrE2V6Y)!<`)p z1>b>7Y|k2CSl5rd}!90 z3!NXBcSQOQbrCJ2#hyiYQ_36qpYEn1T9xqiei2SN5)Lc6*_p&qg1hOSh=0u`*lgVs zguf?qGuvfR@V27eV);?@I2(-*_myJxgXT<&jP~RO7UKT7xuR;;_QQulPi~g(q5U-;9#;DtPDm%@x3Tqw2pOhhJ)~g z@;v6Pk|u_uQ{Y0L1CHF$MdjBoU|goE_=7x(yj{=VwX;U~?@~DIP)8#4 zn&^uktej&1moDPkp+%^P9)@Ym^TK*rm!+uzyFne`CP9W+u$>Zh>o&=HP1Bj3X1`sKMPeXqEhy27XGW zqc)^~c)UIYH#Y5QeNN~0n=hj-Xd&gHZi0)%|+Yvu$kH>AY!#n~{ z8pc9j)C7oiS&czkSP!B}9LA1h9L?|Y5Z0#%FWzS}PK5-uJ+%ssnF(QFzcvoO7jUYN z_kexKLG)C5L8VOGL1vN|9P6rwJJD-!%Jq%-X?hY&&vXLm=2J9$hbx|0$oBEO-qY6E z$MIG{KCE&M$KOo{u>R(F$amTe`l&lG#e#8FbE6<(NfLCNP=*u#N+HfC5iZX&#I56a z_z_%#UbzeCwNY%}wTieIQ{d2zF!&=(hKY{tF!N3bZvV9$ z1UCgnUCw#9XA6-1F0v@3&$~e|igB90_ z_YymBR?_0f%SU6itSgRv6bJf?ccE?SRF=Q7r;_g%vz$*kEv*ftGD}N{h?;(zMeH#& z(|knY6@&ON*4gceJVfV~ZpNnW0=U{!57Yl{0Xs1ZTz66eyHehhkzOGr?w$Gt2AQv7}#+}Rxh(-@2IvUmolOBRCe zn;)e3x(!JGoQ@H!Yqg>*1@teeK&N2?d3=+724~h`f>kvpv2*I~HC}M$r3s9?rUEaV zuTp`I24DD73!B`U(eKS6&}L4F0P8S(dRiAZ)S1Ed1Jhv5jAS;?`$g0x>fo{j52yZP zJsR0hWDnyC2{tA3otGEWnJKOC#Vr$lWxGO=xi4m4${?K=Vo0Y~6mF4zMfyBuK+J>& zQpRSwwMwb@Y-k4Fn9f7b=h-N_yoq_}oM`S4z_{mu*s)z2p4Di3HjEI+PVrmSx{Uv_JSl#V-@Az3_{lnpH^VW+bs#Sp^Y_mXYhM zYpAe@fZv)GkpGySYqgkPPC^Fa6LZjSjsaZL*pFxTpMGwidmg~3ORRrYQl@hek<{*6C4t#>g*`e`nGwss|4QP)FZ z{b6FU>=T_)8ie)#xq#K4LVQ}rG9cxRv}c_)U1K`}$HW`qGgHKQdWe5CqSpKa)9KBZq{{A0uNs) zYzV0aM==qsmD8n_z8|P(p(L8ki@>;}vAE(?1oYfBCHEtg=#L|f@cWB6+8%NSQ>8hu zi7}j0x>7+#eg-w~bB14cA~9)Z8m0ziqA*{T-^8V($hwQ|;S)ok$A_n#7oKukXY(*d zG8>=OWwZP*%TsSiBWWjAV!vPwpFW`$LzJV~9kP?WRGk76HhZbCJ%W!IF`YRT|B>Dc zZES~njyg|{#Ojy(z+%4&{cknP=ef6WyMv6Nq%jk2^o_)!iO2Bv-v%uCx}C9=8B?26 zg8r^-{L)kfFOD9N zeuQK~Zp2O)cyfd2vrM{u;Y?JHr`#P44&z_1COsZjj4SwuA6&eGZuut$WxXu#duTVO zJSKsQXcnhZr^JA?JS8&4{aouoJJPXvIn;IAv2Jb$ePx=9iPjomqRP%jdw0=HLwQhl zFUN(WLSQB99Lar&hQFT;;oVRSQRDVO=j88X+|MX%KYtXYLvPWmO3kppS_;?u=YYNZ z6Xv~B;4j&`LO%}kX1f~5?e+g?gkdzBhlKJMuCq)uJHN{My1|P-`6O;r76iU6LNDPi za_@Ht{8*6)4vSmR9P3eWz?eM$E`%%0>2!5>3Cu__!f9a*7{-1{co}2l{w5eWxD&q> zX5;<+lgKLLU~o|0&zy!)vsTBEPezmwE6OJPICD*XMe7Cy;FqJg(KIbY`w zo#$U0>AJ2Ys%d(7bI}S2Fkgp`BNHLveh@e_U&c-UWW1lz%e3!6B=(%6OAfOf`PFbx z{N_uN4P)urKgaM}M>E7tTZeP)qapsBBYC8fMpnE^0gYG>;%2DNyik*1qpuA%8KlF` z!6KZlv<-w79%RWzU-X&Ph)HJ?L8JW`j=pgm+#H5To~AqszOCVYK4tyM`e>@y(L|nE ztbjXLLty>eI_UX&pD}ML$e)1(P%LW1$6pd*{w^MtTE!tbluMpGc0uJI&-m9N<)~MB zlMb9*OkK1Z@u{^9*0EgHnkf|Y;@a@%RDJBsUPSa2w7~e@LvHi$dTbU<#=x3wsNr## z_`DFshEH`Y8zv3ihMv?`upgYCo#v^*F6e=SIH7453PbJIw>&e*i1~A)d2I?d!kNN z9@;)KfDV>Fi$5Mtu8!G>PFkukG=B!;9;K7JPg1dPUJvs%MT7B;Dyq9|H$D(#L0v=z zd#_iL&Yz9w^)-%q%BP|6pB-Gp1V0+vB?7H)4q^31J+Q>BP_;4!c1#|Pa*TC$vcDL* z*6>8fvG(r6Bf)C%G zgu=^DiNSIoI(WW|AN#`{;~mra*uE*SzAOiVg|qRbs0%8zpTyi$6)1|V0+SY=`9wO% zmKQ?iwDE&UwvnKG9m!y|In_9NhG=a&OBT82LGW?~7<*kBqwVss^I;^n*FcKRpTBh@0aZjfM|c#I~y?Lbjr4% z@}=LL-0ybWYUzlwu{+@9a$O(~(`fp$QN+I`m_#JLC4vtt_&=lf;co4pR8RgraV>3R zV{67R98RL+9O^Kyp#sFq4};|FR$QVy21e^Mj^7+jV)33QZ;=?lFT(^zSeC-Yf za;fAFnS#o9@6$&!@~MRKCbDNB4_xg}fW`Y1IzBlJUY!0+rG`vENW}Thb?@56@>fI7 zG9d_e$kASrVXCIf_ygw^peQI5jkA~W9pP#)=xs-eJ8Cdus|Sin9R$HUXHu&5n+_~m zOUq>`o?9h=YZs(3V{{7&KQbo!TUYvkWf+3mYG7GeAeJsIMO85kIL10F9qK;d@vI#N znx0ULW&cs*HG6n)r{I@li2JWFuJjlm$lSOP-h}IeZu47i(6)ttlj8!`P606Ju$nrq znT2Dd%D{`&&SkPHNMAC`(>D)rzh+5eySOxXo^Hop@ipKyZVF5_<%vVXc+@XZ0+|3w zlD;q*hpJ!GGK(y5^$lgY$Rnum-$ZbsV~>nu zkBme1-s7D6Ds82qEvd9LA8Bj9_xm3h=lp*6eO=%0=W~4#(H8`OK<^#xZGTDlf7Hb@ zvvUyNH-T^1e>6OWG2zaBCBtLRa))1r(MG8)kUvQp8q5kH?AAW;W4qbMj~l@~QJd^O zt%DI#QpgJnq=DyMV8ie{yu2q7Z6vNy@2ksc%=in$(D}VMeEnkl{k91{D*CgT|9bQa z4Tk*B)0yX&aVkn?a)-V-vE08D&S{yC{Zo(Qgd5+;!Pf$Ct1ShS1zE8FSw7C!3B&5+ zQPg>+HJeB72ZwL5jBPIqJQf;Ou-*vcByc6C<)ccf1>*;63?fPdA9UYsF>L5)lt-XDMtQzno}3hB5fwjI3(wnzk5#~cO&r($b2he3Iffr4wn44WCg5QO*ZtB%%9HfxhJ-hx{y+|@ERzS- z<4cM4i!v0>s3w1IvG?o6RM;TLxChfZiRJkjFn04H(7B~YBz)4?e7_j~2F>B4lpQopDuY3D zQ^s9LA>%YfkXXDITK^cpJi~0bd6?Z30u#7Pt2*G-A{pX)J_Q?lLebX00SZepLBG@& z)@J0Oo_#hE==4yZX&LPAynsHfYQ~q&4G`DA3Hh9h)H*)~)o;o}YLF2sJheoROU>ZE z^a9y3vJwn<8F>0f0*LZAfxze^`PXACF8Gy!_hTt6ZxW)M`xva8{}1rk-1^(GYUKVZ zz>xSHR67w*GhL41kndskzP6&FmzwZT!7f-ne=+M8mx`S))`NqIfct@_LAxuL205ir zjly>Bg+4n7;4H<$hS7Ma)e~M-YLJoPX|ymR9;6?c!v}{_oVh0*2K$x4FfoIMRz^T6 z6yo-*CYbG?0$CDYi2Ac5a69%qX;kH*Kl9L*CWnAP+6&LcW>aP>y=@no;7GZ+$^q{&vxMcv==32q`q)Zo^By6l!&5q1CKe zXzD*q1%hx|Yqb}GKkDMxBx8J}%x3mn8SYcIqbv6~NT2m)V`0L2{A$cYq1z$a`Lalq z_VEPe{91$VCTnQTj5@R}2?eL-3xs2lgOK0jYiygUryOsXwoS{2bv(lxka^J2_r-KqNEM!IaU7E+xf!D+sbc>W5f z2|FncRKMdIedI#nmKvCJ_!x$>`Gb2%FS)sE7GyA{xY9QX@>abSrfbCl?~F1%FfkEB z?d)-2!GM?-A`lN$2}pQdEcBE|bL;QDp_eNT!oZ0wIAi4r7^Bfl=%QpS%&muAw_Snb zid?x6lzPGytm`H}Z`49=+IQ;Y+ezIEZRo_1R`A)tGN5N) zll-kGP(!|&M(yx`ocd!_*zjb;jpXL~WLz?NGEQ(c!+@k@>OMw~Fupo{zUe7# znvo46aRv^BP@Kj3`~4d-aoqW6oRsbiA3d8;@pl+Vs<7f#Q3?15ra}Jhz3`gl&TQ9i zK(D&RQ1vPr_z`nR^U*=FUs(V=JymgLqzD&I91o*+)q~E1^`uCP^+n?*KwV!c6qH+_ z^RZ$qKVC8tYHhaPQn+i@dEb&Euz@qG`&}sCp;~HRLL} z?)m;WMly#4PFxLE_tJ>Qkx?`#BMo;*Ya;L5L&Edz6`POI0+pA`AnVXF@_ybiU`uE4 zc-Ic9*G}M+vqHQW#AV*pH(bx4R?<^YLwI~kZiSu-`sz306gH#l-6=&*=&wezo`a~n zB@&ON%tK$J)o9u|feb8KLP~O(4@X#mLd6Qgn>mH9Vg9%%#T0zZUxi=TZpT7-0&oP2 zOnvjd(Nep8SmjlZ1vLeDA~g>^_0N$lIeWm9F|x~5Oh|9J2?>(Tz(X@ha>?^&< zDT8W}SszoePoU zS7&Z-t^@-;1am?%QJUp?-7k2FgAx+)Q0_9+jW7V$(seLJx(NS7=tAYiUC`^hA0IPz z0PjdMKHbCaVvKeFT%w!KoW`=vyED0J*;V-Hvli<=OVM8gm#FuaJY4=`GdP&H(DY|^ z*m5rxIL3rHDo(|JK2hvB^n`wkpNcp1SjW#?1fIK7X{YEOIrDohEVU~^!GuIoTf81> zPf5X_9$8Gbm%)|B8r3S@QvggSk@njB_S;^Vh}=WS6YI;wi8VF!{(sz z-x>4LgsYx62~J+s0nQbEM^_kQ6SnS0oqa#)@@Z_}|FedU@S>@clN;T2Vj(P8SBuYv zS%2Z%PPjWP3tuMI!N_EvW_jVPBX&$rtBEsGz3U0t8vxaNkfDb%yX;31$bzwT@>Ne2BsR``)d_{cnjV11` z*npWeRj@6!1-oSsII0z9{7EA7ii;ERhs;`Vz3+pk|1j>Og&a=mpANdNyWzAVbM8G^ zN0+Hvb4z%j|W|#`E(KKSrNtUlrE+G@wMU`lMiCw`o%DkJe$0mp@3bE zXG!J<2kfl>m%Fdy4Y6P507Dl;fOC6RM~inbbI#a6(7`>FZ+e*PsJ$P_hf<=Eo`J&_ zX{39>CS2goxNCE#lL5Pfcp+^nETJ6`@NyG9u6_blZ@wjOMth<6{JTW`-Ug_BsSNKV zOG#9SJ@oEbNcj7niuCH+aY0%dlKAsfO{<3ZfCcVqsbI{Ix%Bz$Qff16G%Br4qw8j# zCpR@2@u65uv}+9E{`U1KOl4e^b29YB*ig9kAOfqU;)&VA7?7S71Q7ul^ksBCY<+gj)R#w5N6ypr`_5;)>z( zapogr3hk-Zgx|0dcU)D#6ps`5D=?8}T{=uRoXE$z;xH&HEC$nA z(`e&^?J%%r6X9r06Uq9;p~}%!n9+Rzo&`<87p5J|Z9We4PqU0vaT4*Ja-H&;_i%?k z=)|-S^1}l>|1AvNzSu|4uCiEiulb0NXwY zP}3#@5C07Xj-R1O*)|M!D!9OY<|1pB6{F?%F|fa;1j}zYQtyig zfQ?i~?=3l8=Y@iiA+h(m4`l0$2Dm;Z5Ch(2;067oEHhFGQiTPe<~bL)U1r>lce-ND zy~bcVV=4)0m4o+H0(k!qA4Y1Lv0iCN{8YRFuZFPBRNo(RrQ$Um|1uL2!pb4&(pKiD za3P$LTg32r4pAEYj;q;h0Rx@u#cs6}ub&Ykuje4m_0FYY#ygms6bDXoo)eRQYvAuh zb_UP*NgXD1(r*#5AZrkV7KQ78zkLZET@#1L*PEfru0(vY+yEz4_(IU=k7PI7pH1+3 zL#_melKT0##J-UUq~1oE{9##s&eb$g&zLtP;L>-oZ~jH1?Y|CW3kS)uMwY?YUxFhc zcZjyaIEdP?19$zE!fSS$nEO>13{_W>NhcM-*CUgT?Qw!GskyYvtDjDNP=IUh`@#I3 zS+H^0Z1`9^9}4~!!jVTAV97dMbWJurUuc3e?`Po}8F?s(nu<0x%cxSN648-h?^*6l zZpmks@jS+ICL|uaV(l>9K#V@)sv*2Q9lXvOK~}6ZQE}J`wd(W0&w??JSEQ1tEr)RS z%_N*<)B*Ot&0*cqbbNJOkul3P==+9bJikBy!oe3}`}(ic_`qI#+MI)uyIn9ZISy}( zi-A6Uf4CjrP2VY$(O-8q;KseH;K9A*<;obv{;@P+4zId?3Q>(bP5brZGyVsRIt2lhs`N^STEg4 z4Kr9*t}}-#DEA^#4vgbsbPxk>mvhZGYy?YQAPklHLT48x4`(G}*Irp-D$UrkuaD6= z5AyLc`+t^ZRiKh7>wjh2!;cTUz%M@?a)a)$Iml}AaUZ+aad!~Y54yO~kYyQs*>hXP zf(-7ngST1Hpk_qy<=G^xiHL+A-LFJ^v;c&npImK&Wh}Su1V>b2;E>4)9P>H_Jr*Uy zzT|eo>D^^|W$-F>*mF!=?|qv}U*CiB|Js1?FJmB&V_t*9%W(gva*V8PgUIkS(D^3} zdlD+Ba{3e;y0;$|d$Vr8W*DZn$e?i7WTICYN%$>I#PMo422B6K-Mp%boVvxh?)U8B z%$ga1>^q%wCJJgJ?BLk2F)CkWJV0RFl%K`oO5;MjlM#+z5?15D`Z{r!LlPP?Zg_l2 z6D|v!iDwr};@F{opx&vR1SV^N=iej@e*296+Q57%A5P%F+aF?1=k0~>Fr1p66;Urg zKbWfgjrt|k<29+Hu-q&c*MBL5^R_a$zBmG2Jz#r#6?wGOU>(x=)#S`l#*6tjn_K-h zgYM&;qd$tr!EEaaY&<*{;%gXtM;dV;`h(cwwk2xJ3!?$@q7g+@ihf{P1<42pg`NVo@a*WXBs2Db1M}Ys35`C(EEQ z)gMIRY51%B4(SQHATGY&LWSGU63z=H^O3_JNoj^LlnUp-;(`t^zZQxCE|v7|X?48yr?TQP~v zrrT26FyXcbh8$Ce&r9DCS>`T)d)D}2Y$NoYR)(d4`7nB*4(+8zqnvmmKA-%NJn}Y# z_6^7Ia{nB-Ewclcze>Q4^&L1Mw}3o+9*z8wK%yP54RJF}!KvjgQOWvBC-e=|;vCj9 zQYl7@%U1AXiz6JotAXl!*(@!82d2y}$DkWrGG1dkwmqz3j*X=>+nW!n8<`s=-5L#* zKhuFQb*{fr8OSY+g2Qs{&^qfN3Y%PL(0YoI-%YWr#em+-TLf<3Q(^Na36Ptx2n}mG zxSX7Yq^F8YIE+X1$6^)?@`CUPBIwL##Rf+E}iMX&jb3j)NYJHgq0}$G6o!IQHOp5PnW3 z;tBz9ijI;A>TxLhx1L;S%pe~JO~L#5QZ^qQix+7qi1L(C@-<_ky-uM4=RB$5@C&X* z!cnw7zYqeX##5C=dtr&U3kpBoP`StoNa)Z;|GYd5vML}wnl-q_!VliRtpaD0612A*4}9|i>Tz*8@^eeMk;6u8 zHm?A>IWr(xhq2J;P7=^%N==uHp~V5EbZFEpT#%c9E$idq)g>WRvSeHR3#o5A#Fy=#Xwq{+4opk!d z8sIBV!1P-sPdo83?JZVRaOO(8CluK}qrS-kacK2E8hh@P`6Xy!#e zWL(L^7yV)2wyPamwdTQ@l%t@Ox|Cj+x*Z}o?ey%Aa&%m54e>vOs5JF08TI)mje1aq z-J@BjuSSYY%u2(MD^eJcVnWx<^#yG?Ex27Bh6+lQ`7%;ST(&Oi2k!uX6F%5$vYj$J zV`we;LgYQwq5r=WR8oJ!_04BlMOBKzniTS4T`vCTJPH-l8P8$Xb9(opH>}F!!=VZR zMtt#`g{9q#- ze`q`2&d#M8T3S@zeJ-dKSmXNWV$|#YNb~Y(}5nwDqXZtoU&CJPTn$sHf=-P6v28;1tGxyaF#^CvVdk6w%`o5+Zw*t$8~ZA8nbdI8Ht-l%Y!*2uxTEg&kKbQ5j@mP zcY(dW>`d-Cfea3>#4KMWqP%`3nuIgINUT3`J}SaXn~R`tV>NoQ^Z!CRjs5)FU~OY1 z1ht+amm*?di@QGz|D#Q?vH?Bi+ljq(8>;&(g+&U@pjo{M-UyC>&)FETkW@r(-!$Ur zwFHj42B5__Ip|#+j#)*8G_F_?>h~y+n8hC0WwwvhShL?ZM~XbOZh&H$z1Z)Vff0K` zkvE`^oRZHSv-6tag6$5ld@>#ETE3EO8DHF}%`&WsT;RG1;mn8>Hp(o7UM(w9-;hmA zukR(f{T=w?PZWmxoF8oKOKX~Ps**4bRl_K8E{!*wyBp)gyVY`PCKJ}QD?#pB*P>-FV2YC(^ciHMVAT_v_O=+^q?6FG6!3FI z8I_(G0$T5GQTa<#As{b}%UL~7WF&BdSBzb6J5(l`UNL?|Z;l;sk6NWrf1? zTZxxN8S2+hg}+%zEK|0h+_+(lZvyu~f=3eYPRmh!-Z~im#354)R3T*-fxfXvAV7LI zZCs!L?*2+t;%pA&9{fqp1TmLmfE`5dUV<^YpJ?}lEC`r(hTFKX9s_UN!Bdxmz&r5Q zd}Vwh@SJ-^Qzo>)u8bDUoHQLXR_w)Q5o7*T6^JL!Z^Th7Uq0F{2SNh9;gmrU@LbKQ zfOnt1^e+a@EA7ljqu=p_=fg zu6UWa)Xc1F~CGkaHf`HID(9=%h+kO@=pP1O-B zy1Ew6MrQ&?=agB!QYHy-h$Itlg=2}tc6485M-<z@-fTPe4AM}-BeRwxnp z*HROG#)%refZSwr$R=Bsqx4?Dee>4@H~*VKgQD3xq;xFZsJR2&Wm9Q#;lH?i4r8Zq zvq`~k_PNqYLA8$;s8Hpv_|Lb)aJf7T2lhYbN{?k(_s0WdaHRn_)JBWjPNuYJr{n9IqQns4ewni!f6rY$jln7>S%_q=k~&_U+J*q zavAi=&xMTf+AKpm7tOiMZ>#%(Yq2F34<&iP8Mi=4&K!de*L$PRJbl_Jb6@@A?3+g=QgfIa^El7yA%=4bx!x(dDBn4oF?AT@c7HsXD5!(CyRxzNu^v2FycuVD)pKfaok${Mr^&NeR}^oNAE8^p_tQJZm*7#^@5wm)Vi!5tX$@QZSwG4D zI(K6I0_1xRbGhM5@pohm=o_*7QSubrH;28anw2n6ig{uFMvz3WRd8*=7>H+cqcc3# zEi@euUAqiu-I){cRZ4_$AIE|>l%+@FgKcLJp4}Ui&V)z za+l@fHd7k|E#zHS#~Vl7(Pw@G-evO}ZRRWxjnPH9vo+BFYLJf5ZB*@KH2E0Xh9_Yo z#F+bIB9AdQb%MBGb zn_%dk%Y2#v8%ftF#+a^N1MjOtaXRYOINB^!jR(ZehBL|w7J$xochYJ5f+z*JktZIR*z8`0X-_3#Xp|GYP)~x8 z5_>o)vVxJ)Dmv6A0oh}gqu^8*(X-E@f*b#F&qpr7Gi#LK%@utx%|1v{lOkZs(FzD_ zRcHB}G}e2a&UO@faJ$_Ye_lNfhrO*ZZfi64vNJ{4k;NEiKN-dz55?h*OWf5fqCxoJ z8gYHN4l-`6g`r|&2zbh;G2UsUvEl#>x$q$EOA=0I@3G|{mBEGiKQ%6%CdGHp&=31N zphUj|$OkW+FtHsC{RC9>D+aTS*sM>}l`N7FV1(Zndcv+A3J=vm$EY%v6Y)T$NJ*;t z`8?H)kc7&B*-#Kzh?BJb0gWU+#*}oBUB=!ZoX#bJ1LdUXPY~QUjRPz7Q0!PD#hA4x z>A*$C2i?S&jh@%UTi$CxrfLd~eE&@+vwlp3b2ZWaX$6sWL8u|l;Kux!Lf2kU!S*V1 zx@Wr)bHC2O`DP1HDD8yz&n{lI0k6u+*brwXEh_II>G$GsXFL9 zSs`j3&v;F{!tj8u0IrYl;gZ5J%;Fo}*u_w+1)3?PLB<5Bz028)dEA$W7bjAemwe zW6EyQ@xQmDf&$A`9y&soE%C=+$F^g)Z5k|MnUQm!#5C$2%biNQpyO&eSk!z18a6s1 zt*9l-n}a~|lOmX}I*R)H6kyGG*0Gn61&(eOdcKOKHh%<|B5@E_OA6p+R~}xC8I2li zIOw)07Yl7gu!g%Egu9QD`n>DnA|of*{lXiCJB}gWKY?Y*XMpVL&BQXv5A23A@!_jd zJhWja6x%bO?~M~={+uFMbR`bpU>SDqx+6BZmje5&tdJW_Vf5KB9P1j3!_HYG?%{s$ z?`IkFha+5hMK&i{DMj2x2Wghn3c{cGl)h!N-Nc9LP|M!}Y7Ueb+duJ1v+bn?7KUtR0|D1W^ zhOO{tg9mJw#ysB@o#I5JxxnSI+`v6UJjeQ=1KxGwp1>Y*(7zft7Y|X++K~?L@g-En zv!3C`RQ)0u%sL3C>jf|%`IiK}ts*^*j|qRq zaujW_fYmm+C@(94>b)vpA3g!HikXfMEB_0K>euA)IhQvgQwZz0n2tU?5^e3zkW;4tK>nzo^qN!5{hqiD&t`C4o#ultU;F_`sdYk_NVon?YLkASN6Q!-Rz0P;sduzeth{HLLX zDPI=hT~%w~(-8ANq3gl^Svv}D{7Yo#F+#5jwx(V$bTMkiU>!l}|m5Uh8kKGTaK?HO~JO;slrGu*-DN;JrQ z-HN`yK9lFulc~UZG~wt)b2oEasrwh^Gk+aU`O3Q7Q{5@7=WQXLDOV3WY?&)U%!o;Y zOCZIe979+?JzkJRJyKGk@0J`)CNYq(s2qC6q>(K6LpOR@!FEKwbD1P6?#zTfRD}utS=gQzN{g@mB^q+8s9;_+ZU(U9cRk!UoP&4PZbQv+>tNM65k?H&B9rdeL&UY)=7jGd^A z!863@kex>Z;@{H`CzC+UiOn^oHRx^4zvM}N4P&oVF>e<8UYle>quF#c>8r!x?f2=c z?n88%P7LnSpAJv565wS|Hl*FLM0H;^IOe_x%afnd(+&c7A=d({?k1u@LW~lzm0+iM zku<;VB-MM*P$$#7RBOEzE|ggXuas3WpiRVW;4Z{giC8pWFhZ5I(^)is9+_}ElCH6w z3&GRp;mtT7kaN$3(aRU1Lqirj{QH7=zV} z%h}XvHUQc5+2SaO-&;#OpPVPRLmtwVY@U+4brPCSI|L4__d0025hgXUo^MhO-jv$` z3ZgVPwPG(iJk&1(+PDr~^7LkFO%b%3;Jm$9z( zW9oE#HNLuRPtAmECUJi*Hd)L-V;c&VegUv`K!_=aDIQ>~K56e`_-A_zzIV=tKdtNF z)?Q~+&)y2AK5SPN_C>VldJP15^%2ho3*7A(imEy69b0&XBz~L$!XH6g!2u-g_WtzD zgl#}RpCOzvZ@K)KERn+GP{>-9P8+^t;qr!3tnBfJ@rxRfbH&j-=;$DwiY72TUKQ77 z)w46@CGHr%QZjn50UMoocx8i#L`YGxCfFUK7j4AFMXb|Tya;L;vnf!`5DYGcL*L#x z@cGRt@>rM$BU7SCQgjh$F=k@Yy-0LD*cKkzah%{B&>| z*sKaA%Ks(6@$ciY`|cbp^4JM{-UzqZ_zm5f%KA8SRLG9yfSu2eP%V=fBD>FthV0!5 zRX#~L+{SXPpWbrSe1?d|+zf8l2Ujv>gzfd6mZECG7~*$@kDFN5ao`5?yUeY{jj0^4 zPTq*|a11SD55s$hFh~|BLhiaMR1W9>-o7*3xqDb=^&VqbNd7SY(;SCqBiCbAuO*$^ zDu9m%Cc{zVdIT#?9PAHfJK6|P@?^}wlac_hj>8>~YHZBZhCjk6MvVgBz_)~Vb1b*j z?--7FIb)}oom-MJ@v(d|v%u`c_U>l)B1<+%Bkt&$xLBYmN zXqFiTkDqyB*8a^zP!WoLY$xXUcq-;(uyfY!N)qtxH#yyz2r?lQtd)|m&8d=gm}Kyf zjVt{5z8jW>3n1NvJ)<(U>B=_dKpjsh@7YAL1LqELcYMk9zFC3yxS^nt-^w+*?#gD( zbudu6m;9cUhPn3VNT^9O+uPh;@P64!Ondy84g_8juelI}69#^fX{Xo>{kp=|b|s ztOnC=eV{Lzo8jRYDeNTkNZ@pq$1f=pk1T9KHMx(Z-Y=ijYK38+nK4{A#rU+{)fjv- zj&4+%2i{wn@a4s1;2cuMi=)J_qAe1%J2gOEF$Z^EY{X98QaUx*6_nIc@Mv5+Rv4Fp zr?E6vnkHeu3mLkC?U!}Fza*|-d;oL|uwGn8;})z3Bhe=2WbhM@iea-%i9_hls*7EZ zCJ~2~HmDwukEeGgz_v?b$k#2yh)s{Fv+_)QzjZQ3Et7%IAHR^fO%yaXN|BN4hv-75 zc=VNjK}vKK89&S&t+th*%cr^6kvJL0vF>#cr-E`;{Nk>=SWL3!h0_}O4anTcWcKpo zaJ4xTT*m!_opICfX7g(B3*_RhC3�*cOJ150E>vRdM1q3Ih*{NY*bU8hS5{b#pzr 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 LWw-yY+Ry(0;%m?Y literal 0 HcmV?d00001 diff --git a/tmva/sofie/test/KerasParserTest/CNNtest.hxx b/tmva/sofie/test/KerasParserTest/CNNtest.hxx new file mode 100644 index 0000000000000..49427d4466794 --- /dev/null +++ b/tmva/sofie/test/KerasParserTest/CNNtest.hxx @@ -0,0 +1,302 @@ +//Code generated automatically by TMVA for Inference of Model file [CNNtest.h5] at [Thu Aug 24 08:55:45 202] + +#ifndef ROOT_TMVA_SOFIE_CNNTEST +#define ROOT_TMVA_SOFIE_CNNTEST + +#include +#include +#include +#include "TMVA/SOFIE_common.hxx" +#include + +namespace TMVA_SOFIE_CNNtest{ +namespace BLAS{ + extern "C" void sgemv_(const char * trans, const int * m, const int * n, const float * alpha, const float * A, + const int * lda, const float * X, const int * incx, const float * beta, const float * Y, const int * incy); + extern "C" void saxpy_(const int * n, const float * alpha, const float * x, + const int * incx, float * y, const int * incy); + extern "C" void sgemm_(const char * transa, const char * transb, const int * m, const int * n, const int * k, + const float * alpha, const float * A, const int * lda, const float * B, const int * ldb, + const float * beta, float * C, const int * ldc); +}//BLAS +struct Session { +std::vector fTensor_dense1bias0 = std::vector(2); +float * tensor_dense1bias0 = fTensor_dense1bias0.data(); +std::vector fTensor_dense1kernel0 = std::vector(128); +float * tensor_dense1kernel0 = fTensor_dense1kernel0.data(); +std::vector fTensor_densebias0 = std::vector(64); +float * tensor_densebias0 = fTensor_densebias0.data(); +std::vector fTensor_conv2dkernel0 = std::vector(90); +float * tensor_conv2dkernel0 = fTensor_conv2dkernel0.data(); +std::vector fTensor_densekernel0 = std::vector(40960); +float * tensor_densekernel0 = fTensor_densekernel0.data(); +std::vector fTensor_conv2dbias0 = std::vector(10); +float * tensor_conv2dbias0 = fTensor_conv2dbias0.data(); +std::vector fTensor_dense1Sigmoid0 = std::vector(2); +float * tensor_dense1Sigmoid0 = fTensor_dense1Sigmoid0.data(); +std::vector fTensor_dense1Dense = std::vector(2); +float * tensor_dense1Dense = fTensor_dense1Dense.data(); +std::vector fTensor_denseTanh0 = std::vector(64); +float * tensor_denseTanh0 = fTensor_denseTanh0.data(); +std::vector fTensor_denseDense = std::vector(64); +float * tensor_denseDense = fTensor_denseDense.data(); +std::vector fTensor_conv2dRelu0 = std::vector(2560); +float * tensor_conv2dRelu0 = fTensor_conv2dRelu0.data(); +std::vector fTensor_densebias0bcast = std::vector(64); +float * tensor_densebias0bcast = fTensor_densebias0bcast.data(); +std::vector fTensor_flattenReshape0 = std::vector(640); +float * tensor_flattenReshape0 = fTensor_flattenReshape0.data(); +std::vector fTensor_reshapeReshape0 = std::vector(256); +float * tensor_reshapeReshape0 = fTensor_reshapeReshape0.data(); +std::vector fTensor_maxpooling2dPostTrans = std::vector(640); +float * tensor_maxpooling2dPostTrans = fTensor_maxpooling2dPostTrans.data(); +std::vector fTensor_maxpooling2dPreTrans = std::vector(2560); +float * tensor_maxpooling2dPreTrans = fTensor_maxpooling2dPreTrans.data(); +std::vector fTensor_conv2dPostTrans = std::vector(2560); +float * tensor_conv2dPostTrans = fTensor_conv2dPostTrans.data(); +std::vector fTensor_conv2dConv2D = std::vector(2560); +float * tensor_conv2dConv2D = fTensor_conv2dConv2D.data(); +std::vector fTensor_conv2dPreTrans = std::vector(256); +float * tensor_conv2dPreTrans = fTensor_conv2dPreTrans.data(); +std::vector fTensor_maxpooling2dMaxPooling2D = std::vector(640); +float * tensor_maxpooling2dMaxPooling2D = fTensor_maxpooling2dMaxPooling2D.data(); +std::vector fTensor_dense1bias0bcast = std::vector(2); +float * tensor_dense1bias0bcast = fTensor_dense1bias0bcast.data(); +std::vector fTensor_conv2dbias0bcast = std::vector(2560); +float * tensor_conv2dbias0bcast = fTensor_conv2dbias0bcast.data(); + +std::vector fVec_op_2_f = std::vector(90); +std::vector fVec_op_2_xcol = std::vector(2304); + +std::vector fVec_op_6_xpad = std::vector(2560); + +Session(std::string filename ="") { + if (filename.empty()) filename = "CNNtest.dat"; + std::ifstream f; + f.open(filename); + if (!f.is_open()){ + throw std::runtime_error("tmva-sofie failed to open file for input weights"); + } + std::string tensor_name; + int length; + f >> tensor_name >> length; + if (tensor_name != "tensor_dense1bias0" ) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor name; expected name is tensor_dense1bias0 , read " + tensor_name; + throw std::runtime_error(err_msg); + } + if (length != 2) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor size; expected size is 2 , read " + std::to_string(length) ; + throw std::runtime_error(err_msg); + } + for (int i =0; i < length; ++i) + f >> tensor_dense1bias0[i]; + f >> tensor_name >> length; + if (tensor_name != "tensor_dense1kernel0" ) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor name; expected name is tensor_dense1kernel0 , read " + tensor_name; + throw std::runtime_error(err_msg); + } + if (length != 128) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor size; expected size is 128 , read " + std::to_string(length) ; + throw std::runtime_error(err_msg); + } + for (int i =0; i < length; ++i) + f >> tensor_dense1kernel0[i]; + f >> tensor_name >> length; + if (tensor_name != "tensor_densebias0" ) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor name; expected name is tensor_densebias0 , read " + tensor_name; + throw std::runtime_error(err_msg); + } + if (length != 64) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor size; expected size is 64 , read " + std::to_string(length) ; + throw std::runtime_error(err_msg); + } + for (int i =0; i < length; ++i) + f >> tensor_densebias0[i]; + f >> tensor_name >> length; + if (tensor_name != "tensor_conv2dkernel0" ) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor name; expected name is tensor_conv2dkernel0 , read " + tensor_name; + throw std::runtime_error(err_msg); + } + if (length != 90) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor size; expected size is 90 , read " + std::to_string(length) ; + throw std::runtime_error(err_msg); + } + for (int i =0; i < length; ++i) + f >> tensor_conv2dkernel0[i]; + f >> tensor_name >> length; + if (tensor_name != "tensor_densekernel0" ) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor name; expected name is tensor_densekernel0 , read " + tensor_name; + throw std::runtime_error(err_msg); + } + if (length != 40960) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor size; expected size is 40960 , read " + std::to_string(length) ; + throw std::runtime_error(err_msg); + } + for (int i =0; i < length; ++i) + f >> tensor_densekernel0[i]; + f >> tensor_name >> length; + if (tensor_name != "tensor_conv2dbias0" ) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor name; expected name is tensor_conv2dbias0 , read " + tensor_name; + throw std::runtime_error(err_msg); + } + if (length != 10) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor size; expected size is 10 , read " + std::to_string(length) ; + throw std::runtime_error(err_msg); + } + for (int i =0; i < length; ++i) + f >> tensor_conv2dbias0[i]; + f.close(); + { + float * data = TMVA::Experimental::SOFIE::UTILITY::UnidirectionalBroadcast(tensor_conv2dbias0, { 10 , 1 , 1 }, { 1 , 10 , 16 , 16 }); + std::copy(data, data + 2560, tensor_conv2dbias0bcast); + delete[] data; + } + { + float * data = TMVA::Experimental::SOFIE::UTILITY::UnidirectionalBroadcast(tensor_densebias0,{ 64 }, { 1 , 64 }); + std::copy(data, data + 64, tensor_densebias0bcast); + delete [] data; + } + { + float * data = TMVA::Experimental::SOFIE::UTILITY::UnidirectionalBroadcast(tensor_dense1bias0,{ 2 }, { 1 , 2 }); + std::copy(data, data + 2, tensor_dense1bias0bcast); + delete [] data; + } +} + +std::vector infer(float* tensor_reshapeinput){ + ///--------Reshape operator + + std::copy( tensor_reshapeinput, tensor_reshapeinput + 256, tensor_reshapeReshape0); + ///------- Transpose operator + + for (size_t id = 0; id < 256 ; id++){ + tensor_conv2dPreTrans[id] = tensor_reshapeReshape0[ ( id / 256 ) * 256 + ( (id % 256) / 16 ) * 16 + ( (id % 16) ) * 1 + ( (id % 256) / 256 )]; + } + +//---- operator Conv op_2 + float * op_2_f = fVec_op_2_f.data(); + for (std::size_t oc = 0; oc < 10; oc++) { + for (std::size_t ic = 0; ic < 1; ic++) { + for (std::size_t kh = 0; kh < 3; kh++) { + for (std::size_t kw = 0; kw < 3; kw++) { + op_2_f[oc * 9 + ic * 9 + kh * 3 + kw * 1 ] = tensor_conv2dkernel0[oc * 9 + ic * 9 + kh * 3 + kw ]; + } + } + } + } + char op_2_transA = 'N'; + char op_2_transB = 'N'; + int op_2_m = 256; + int op_2_n = 10; + int op_2_k = 9; + float op_2_alpha = 1.0; + float op_2_beta = 0.0; + float * op_2_xcol = fVec_op_2_xcol.data(); + for (size_t n = 0; n < 1; n++) { + size_t out_offset = n * 2560; + size_t x_offset = n * 256; + TMVA::Experimental::SOFIE::UTILITY::Im2col(tensor_conv2dPreTrans + x_offset,1,16,16,3,3,1,1,1,1,1,1,op_2_xcol); + + BLAS::sgemm_(&op_2_transA, &op_2_transB, &op_2_m, &op_2_n, &op_2_k, &op_2_alpha, op_2_xcol, &op_2_m, + op_2_f, &op_2_k, &op_2_beta, tensor_conv2dConv2D + out_offset, &op_2_m); + int op_2_size = 2560; + float op_2_gamma = 1.0; + int op_2_incx = 1; + int op_2_incy = 1; + BLAS::saxpy_(&op_2_size, &op_2_gamma, tensor_conv2dbias0bcast, &op_2_incx, tensor_conv2dConv2D + out_offset, &op_2_incy); + } + ///------- Transpose operator + + for (size_t id = 0; id < 2560 ; id++){ + tensor_conv2dPostTrans[id] = tensor_conv2dConv2D[ ( id / 2560 ) * 2560 + ( (id % 10) ) * 256 + ( (id % 2560) / 160 ) * 16 + ( (id % 160) / 10 )]; + } + +//------ RELU + for (int id = 0; id < 2560 ; id++){ + tensor_conv2dRelu0[id] = ((tensor_conv2dPostTrans[id] > 0 )? tensor_conv2dPostTrans[id] : 0); + } + ///------- Transpose operator + + for (size_t id = 0; id < 2560 ; id++){ + tensor_maxpooling2dPreTrans[id] = tensor_conv2dRelu0[ ( id / 2560 ) * 2560 + ( (id % 256) / 16 ) * 160 + ( (id % 16) ) * 10 + ( (id % 2560) / 256 )]; + } + +//---- operator MaxPool op_6 +{ + constexpr int hsize = 16; + constexpr int hmin = 0; + constexpr int hmax = 15; + constexpr int kh = 2; + constexpr int wsize = 16; + constexpr int wmin = 0; + constexpr int wmax = 15; + constexpr int kw = 2; + size_t outIndex = 0; + for (size_t n = 0; n < 10; n++) { + size_t inputOffset = n*256; + for (int i = hmin; i < hmax; i+=2) { + for (int j = wmin; j < wmax; j+=2) { + float value = -INFINITY; + for (int l = i; l < i + kh; l++) { + if (l < 0 || l >= hsize) continue; + for (int m = j; m < j + kw; m++) { + if (m < 0 || m >= wsize) continue; + int index = inputOffset + l*wsize + m; + auto xval = tensor_maxpooling2dPreTrans[index]; + if (xval > value) value = xval; + } + } + tensor_maxpooling2dMaxPooling2D[outIndex++] = value; + } + } + } + } + ///------- Transpose operator + + for (size_t id = 0; id < 640 ; id++){ + tensor_maxpooling2dPostTrans[id] = tensor_maxpooling2dMaxPooling2D[ ( id / 640 ) * 640 + ( (id % 10) ) * 64 + ( (id % 640) / 80 ) * 8 + ( (id % 80) / 10 )]; + } + ///--------Flatten operator + + std::copy( tensor_maxpooling2dPostTrans, tensor_maxpooling2dPostTrans + 640, tensor_flattenReshape0); + +//--------- Gemm + char op_9_transA = 'n'; + char op_9_transB = 'n'; + int op_9_m = 1; + int op_9_n = 64; + int op_9_k = 640; + float op_9_alpha = 1; + float op_9_beta = 1; + int op_9_lda = 640; + int op_9_ldb = 64; + std::copy(tensor_densebias0bcast, tensor_densebias0bcast + 64, tensor_denseDense); + BLAS::sgemm_(&op_9_transB, &op_9_transA, &op_9_n, &op_9_m, &op_9_k, &op_9_alpha, tensor_densekernel0, &op_9_ldb, tensor_flattenReshape0, &op_9_lda, &op_9_beta, tensor_denseDense, &op_9_n); + +//------ TANH + for (int id = 0; id < 64 ; id++){ + tensor_denseTanh0[id] = std::tanh(tensor_denseDense[id]); + } + +//--------- Gemm + char op_11_transA = 'n'; + char op_11_transB = 'n'; + int op_11_m = 1; + int op_11_n = 2; + int op_11_k = 64; + float op_11_alpha = 1; + float op_11_beta = 1; + int op_11_lda = 64; + int op_11_ldb = 2; + std::copy(tensor_dense1bias0bcast, tensor_dense1bias0bcast + 2, tensor_dense1Dense); + BLAS::sgemm_(&op_11_transB, &op_11_transA, &op_11_n, &op_11_m, &op_11_k, &op_11_alpha, tensor_dense1kernel0, &op_11_ldb, tensor_denseTanh0, &op_11_lda, &op_11_beta, tensor_dense1Dense, &op_11_n); + for (int id = 0; id < 2 ; id++){ + tensor_dense1Sigmoid0[id] = 1 / (1 + std::exp( - tensor_dense1Dense[id])); + } + std::vector ret (tensor_dense1Sigmoid0, tensor_dense1Sigmoid0 + 2); + return ret; +} +}; +} //TMVA_SOFIE_CNNtest + +#endif // ROOT_TMVA_SOFIE_CNNTEST diff --git a/tmva/sofie/test/KerasParserTest/Convtest.dat b/tmva/sofie/test/KerasParserTest/Convtest.dat new file mode 100644 index 0000000000000..4f3a6cf22d8a1 --- /dev/null +++ b/tmva/sofie/test/KerasParserTest/Convtest.dat @@ -0,0 +1,4 @@ +tensor_conv2d2bias0 1 +0 +tensor_conv2d2kernel0 4 +0.0131092193 0.0967286974 -0.00668216217 0.0209297948 diff --git a/tmva/sofie/test/KerasParserTest/Convtest.h5 b/tmva/sofie/test/KerasParserTest/Convtest.h5 new file mode 100644 index 0000000000000000000000000000000000000000..ca2c842ba32dd1affba5c12a90d6fefa4e2e412a GIT binary patch literal 13456 zcmeHO&2Jk;6dxyrnvy^wA+@OxxJF1lq#;RzXsaSpHGv@YBWkM>5mnpC?!;Mjy=!LI zX+sqeaSAt%9CNJ1rQ#HcJIb*aF8l=?IaS=sdo%B?<8{_nOAA%KtH`tS=FOWozj^P? z%(L^u!rbS>M~)v6_>{}ykQgzq{PBdIA7?Cu>)d{uUP@GMQ~6-PzLdmafo;c#K0@*< zgO;#H9dBHlpBKQ%^0}mLsep1yC|>#rfra@Ci#XpUnl#(f9@!aVQI9+oICqs_TT5af zvR%$H!&8={WUpDf9uf=SD=7ah@s22qJ4(ygSywvtqY&t0rIP81-eh&KmdpCQhI)`O zBW*~`lDx8!w<6s;D)f5FF^)@e5Q>&w!$yw9!;QjKzlKAO!Clsdz>7}L%i(B=B4c;FHS5Rwro4Z-78M)zH1pz5`R(j7XsNhF-z0` z>-BaVzZCDf)I%c<4CUt(Ov8%1a0TS#1E+7ueyPZV>8q0xk~lA`lhME z#Fs&Jyi&En1L*gw2n904DT6bOEC#3;T9&h-z6=}9G2BuP2D<3yNhV^b2-YfL*(do5O%A6kidoq z6PN<+VFwJsU1I-RoYFEXf}qEV_B~}561b+2)R3MBTL^GfV_bb8c`}jCYNYEjL9)9h zLl71_U_*&%_XC;0&gy8H81XEtrlV$qRgiAtuNyui+ppCl-^1?BSUD@cL_Wfrw1vG4 zZ4z|W(3V}!8@d^~Fraq@HOpFVUC9tSO-@XjX?mVox7Clau8a|(_2E)fada@8Zlisz zbQGhuE$=X0NmZ?C%|L2W)ta>xdti&f!cR7w16xTZj0EcgJ36AiUt~wa<|ddF_%($$ zVfJ<7=Rp)BuAoXN^@iiZBx3M%9W^#^GIa$8;35afw`ViuIjxrE4j;b^*j_e0ztXbN z=x}v*De1aREnPFxfhLM8#HyvtFd4K%)SQosE&ZZK;@1&nI^sY})-Eo1vfjQ>X&B?C zKuK-RNo25KC6nkSo^s^|h_qI-qQLB@O!X`@n(DNzo<)Lc#C{Or9H!K%$xnbH>v2uX zG(K&bMS*qTcuiY@V0Y$i&+Hq(mqsyo$A^wrA}_A9JeJS<0n2;aib==&2o3$*WGZho z+ioonINF~r7T8WMY6SuX0tEsE0tEsE0tEsE0?!$N>sPMMmEhLT=e%t?;By`zo6mU8 z!@n}(^7FUd^R4^yw|EwB*LAnGtIb37TV{zU{yk{AAh`(39 z_4WzN$o50silR>t$mUzwo^Defo?+noDAzf@%rfCAOB=Ta)426FL>JPNq{re^JKsI3|8$xdUXg*t-d29S0>6oxtn^xjF_j{k5ytT;# zP>{fwXYvMAw^#qXIEA}YD^9V#dlaYstk{L<6{mJTuzW?FvN-hHXEsh%2!Qg5b|kXt zDN1Lh-;11SXYX0dp09SuZaMyB?YO7FK4mCDhSOk1z?I+pIj(%rG!Tf63v=0mnm@Z{HISrP?hn6K9zm}-yiz%#K4W#Ec zajN?`9QPhnyYuy1>+s&q^S_M!_UVzwfBgD5`T2am&A*s$fk1&kfk1&kfj~bZ(0Q)3 znSv7CWBGi@<+Gm?N9df$zo1~WxB2CzDD(1yk0?K~MOxbXw#fgz_DeCFLW%zif$V*o z?;rQbj#w}Dt3@XK%aZd$*}PsWuYPboYqati)t4C!z(Vg+QMF>}K-MFUo(i`R@P9fBpfb>+c`{ literal 0 HcmV?d00001 diff --git a/tmva/sofie/test/KerasParserTest/Convtest.hxx b/tmva/sofie/test/KerasParserTest/Convtest.hxx new file mode 100644 index 0000000000000..bd529f121b0eb --- /dev/null +++ b/tmva/sofie/test/KerasParserTest/Convtest.hxx @@ -0,0 +1,136 @@ +//Code generated automatically by TMVA for Inference of Model file [Convtest.h5] at [Thu Aug 24 08:55:47 202] + +#ifndef ROOT_TMVA_SOFIE_CONVTEST +#define ROOT_TMVA_SOFIE_CONVTEST + +#include +#include +#include "TMVA/SOFIE_common.hxx" +#include + +namespace TMVA_SOFIE_Convtest{ +namespace BLAS{ + extern "C" void saxpy_(const int * n, const float * alpha, const float * x, + const int * incx, float * y, const int * incy); + extern "C" void sgemm_(const char * transa, const char * transb, const int * m, const int * n, const int * k, + const float * alpha, const float * A, const int * lda, const float * B, const int * ldb, + const float * beta, float * C, const int * ldc); +}//BLAS +struct Session { +std::vector fTensor_conv2d2bias0 = std::vector(1); +float * tensor_conv2d2bias0 = fTensor_conv2d2bias0.data(); +std::vector fTensor_conv2d2kernel0 = std::vector(4); +float * tensor_conv2d2kernel0 = fTensor_conv2d2kernel0.data(); +std::vector fTensor_conv2d2PostTrans = std::vector(3); +float * tensor_conv2d2PostTrans = fTensor_conv2d2PostTrans.data(); +std::vector fTensor_conv2d2bias0bcast = std::vector(3); +float * tensor_conv2d2bias0bcast = fTensor_conv2d2bias0bcast.data(); +std::vector fTensor_conv2d2Conv2D = std::vector(3); +float * tensor_conv2d2Conv2D = fTensor_conv2d2Conv2D.data(); +std::vector fTensor_conv2d2Sigmoid0 = std::vector(3); +float * tensor_conv2d2Sigmoid0 = fTensor_conv2d2Sigmoid0.data(); +std::vector fTensor_conv2d2PreTrans = std::vector(4); +float * tensor_conv2d2PreTrans = fTensor_conv2d2PreTrans.data(); +std::vector fTensor_reshape2Reshape0 = std::vector(4); +float * tensor_reshape2Reshape0 = fTensor_reshape2Reshape0.data(); + +std::vector fVec_op_2_f = std::vector(4); +std::vector fVec_op_2_xcol = std::vector(12); + + +Session(std::string filename ="") { + if (filename.empty()) filename = "Convtest.dat"; + std::ifstream f; + f.open(filename); + if (!f.is_open()){ + throw std::runtime_error("tmva-sofie failed to open file for input weights"); + } + std::string tensor_name; + int length; + f >> tensor_name >> length; + if (tensor_name != "tensor_conv2d2bias0" ) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor name; expected name is tensor_conv2d2bias0 , read " + tensor_name; + throw std::runtime_error(err_msg); + } + if (length != 1) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor size; expected size is 1 , read " + std::to_string(length) ; + throw std::runtime_error(err_msg); + } + for (int i =0; i < length; ++i) + f >> tensor_conv2d2bias0[i]; + f >> tensor_name >> length; + if (tensor_name != "tensor_conv2d2kernel0" ) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor name; expected name is tensor_conv2d2kernel0 , read " + tensor_name; + throw std::runtime_error(err_msg); + } + if (length != 4) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor size; expected size is 4 , read " + std::to_string(length) ; + throw std::runtime_error(err_msg); + } + for (int i =0; i < length; ++i) + f >> tensor_conv2d2kernel0[i]; + f.close(); + { + float * data = TMVA::Experimental::SOFIE::UTILITY::UnidirectionalBroadcast(tensor_conv2d2bias0, { 1 , 1 , 1 }, { 1 , 1 , 1 , 3 }); + std::copy(data, data + 3, tensor_conv2d2bias0bcast); + delete[] data; + } +} + +std::vector infer(float* tensor_reshape2input){ + ///--------Reshape operator + + std::copy( tensor_reshape2input, tensor_reshape2input + 4, tensor_reshape2Reshape0); + ///------- Transpose operator + + for (size_t id = 0; id < 4 ; id++){ + tensor_conv2d2PreTrans[id] = tensor_reshape2Reshape0[ ( id / 4 ) * 4 + ( (id % 4) / 2 ) * 2 + ( (id % 2) ) * 1 + ( (id % 4) / 4 )]; + } + +//---- operator Conv op_2 + float * op_2_f = fVec_op_2_f.data(); + for (std::size_t oc = 0; oc < 1; oc++) { + for (std::size_t ic = 0; ic < 1; ic++) { + for (std::size_t kh = 0; kh < 2; kh++) { + for (std::size_t kw = 0; kw < 2; kw++) { + op_2_f[oc * 4 + ic * 4 + kh * 2 + kw * 1 ] = tensor_conv2d2kernel0[oc * 4 + ic * 4 + kh * 2 + kw ]; + } + } + } + } + char op_2_transA = 'N'; + char op_2_transB = 'N'; + int op_2_m = 3; + int op_2_n = 1; + int op_2_k = 4; + float op_2_alpha = 1.0; + float op_2_beta = 0.0; + float * op_2_xcol = fVec_op_2_xcol.data(); + for (size_t n = 0; n < 1; n++) { + size_t out_offset = n * 3; + size_t x_offset = n * 4; + TMVA::Experimental::SOFIE::UTILITY::Im2col(tensor_conv2d2PreTrans + x_offset,1,2,2,2,2,0,1,1,1,1,1,op_2_xcol); + + BLAS::sgemm_(&op_2_transA, &op_2_transB, &op_2_m, &op_2_n, &op_2_k, &op_2_alpha, op_2_xcol, &op_2_m, + op_2_f, &op_2_k, &op_2_beta, tensor_conv2d2Conv2D + out_offset, &op_2_m); + int op_2_size = 3; + float op_2_gamma = 1.0; + int op_2_incx = 1; + int op_2_incy = 1; + BLAS::saxpy_(&op_2_size, &op_2_gamma, tensor_conv2d2bias0bcast, &op_2_incx, tensor_conv2d2Conv2D + out_offset, &op_2_incy); + } + ///------- Transpose operator + + for (size_t id = 0; id < 3 ; id++){ + tensor_conv2d2PostTrans[id] = tensor_conv2d2Conv2D[ ( id / 3 ) * 3 + ( (id % 1) ) * 3 + ( (id % 3) / 3 ) * 3 + ( (id % 3) / 1 )]; + } + for (int id = 0; id < 3 ; id++){ + tensor_conv2d2Sigmoid0[id] = 1 / (1 + std::exp( - tensor_conv2d2PostTrans[id])); + } + std::vector ret (tensor_conv2d2Sigmoid0, tensor_conv2d2Sigmoid0 + 3); + return ret; +} +}; +} //TMVA_SOFIE_Convtest + +#endif // ROOT_TMVA_SOFIE_CONVTEST diff --git a/tmva/sofie/test/KerasParserTest/Flattentest.h5 b/tmva/sofie/test/KerasParserTest/Flattentest.h5 new file mode 100644 index 0000000000000000000000000000000000000000..8e688d183d1dacc7fdd41efa76f5ff7014f1c845 GIT binary patch literal 9472 zcmeHM&yU+w5PqRRL%T&=iNkJ%kg-78!?H@2NNu^0if#!~ORE+Mq^fe?IxmS;$2QMS zt58MCjdJ5p;Mil2969#LpV1>nZe`}Z89Q;-yDC2x!P;8o`Hknz%=_NV=VbPW-qma8 z&RjSn@M<>2>tfy9^2bZM#D`Xr&q?7vjSU)~(D?K=?Ogq)XMR(Qqn zJmqUSuh&EmY6b1TE#47L@jz*rdJmOOgE#{DW}{(NVl~+qZ02%2Z(tmh%qUwEU9#6S z_V%U!Kt=r{?U=$PI|xM)*EwUy;^D{9AQ+;{O>l-WRmIgrBV-Rtw6M2s>}6U8Q4kG1 zGI^A}?{RZv5Am{|&CSwB6;Jd|TeY7^`zW6H`CY5HMf&w{vJfcqM3=Vz+ndWc3__V@ zD)QPS)+!yzM0p*WXK~_%>LGB+GNW+)GXJnu=80!E$;GeaZ%vG-uGgS`Hbf|=N_&wU zD`clb>Jj(@FQzvh-$EhP6S`QOBd75DwYQ0iLOioW<>%+0-Mnr*AtAuU`!oCm^WB|G zJ1rR5zx|>h1YnoOdJx8saFr1BIv0jNVE)+kLz$*#r|u_?dq;gcQBfAi(A{=iOCBJ9 z>>?DXkmd?r2UQGEDLlDbHuXi6OtR~UW69LM%>0oT;A796Ca#VqVYuyd?t#gEHcgB# z2wP?!@8a?_kvc`;K!<ftJIe>Msa5z&t~&2X{8xhVYkndD~`DDXtX@_}mbw+z-)r zrYGq7&%~ceJyZ+Z-Q9NJuYK>J=&sqEuZS+Mh>GYALa#3~=?!8%mKkir^+z&_RG4~j z^cesIQBXMu^BypH5ymMVtGgdWQcpc!!yGb0$H^2uk5#4vA2saBx%OSI`d;zm?n+MF zP%^qC15i^!zAPQk$2nh5*2LYp2y}gU`P5<0>)Y@LoJ)TCaE}+$B|p!z-#&(K_4cab1EQ$h5Az5u z6F;8iyLzkzDWK4ePz2dGiBO_@4~iw=UyV@DTnVX+zj9T+z5b?|e$wcSYx{=)9x`aD)2R ztMI%U4|NIeIT@;XXcf^~QXo*pLob{{2k*F^|1KWl`YH3szg<6b;;A`pzpftwq8<)J VpsIehO7FXWs(#Av*W;?6KL8fi9(@1+ literal 0 HcmV?d00001 diff --git a/tmva/sofie/test/KerasParserTest/Flattentest.hxx b/tmva/sofie/test/KerasParserTest/Flattentest.hxx new file mode 100644 index 0000000000000..3bb4732100aa9 --- /dev/null +++ b/tmva/sofie/test/KerasParserTest/Flattentest.hxx @@ -0,0 +1,33 @@ +//Code generated automatically by TMVA for Inference of Model file [Flattentest.h5] at [Thu Aug 24 08:55:48 202] + +#ifndef ROOT_TMVA_SOFIE_FLATTENTEST +#define ROOT_TMVA_SOFIE_FLATTENTEST + +#include +#include "TMVA/SOFIE_common.hxx" + +namespace TMVA_SOFIE_Flattentest{ +struct Session { +std::vector fTensor_flatten1Reshape0 = std::vector(4); +float * tensor_flatten1Reshape0 = fTensor_flatten1Reshape0.data(); +std::vector fTensor_reshape4Reshape0 = std::vector(4); +float * tensor_reshape4Reshape0 = fTensor_reshape4Reshape0.data(); + + +Session(std::string = "") { +} + +std::vector infer(float* tensor_reshape4input){ + ///--------Reshape operator + + std::copy( tensor_reshape4input, tensor_reshape4input + 4, tensor_reshape4Reshape0); + ///--------Flatten operator + + std::copy( tensor_reshape4Reshape0, tensor_reshape4Reshape0 + 4, tensor_flatten1Reshape0); + std::vector ret (tensor_flatten1Reshape0, tensor_flatten1Reshape0 + 4); + return ret; +} +}; +} //TMVA_SOFIE_Flattentest + +#endif // ROOT_TMVA_SOFIE_FLATTENTEST diff --git a/tmva/sofie/test/KerasParserTest/GRUtest.dat b/tmva/sofie/test/KerasParserTest/GRUtest.dat new file mode 100644 index 0000000000000..2e5a52319955f --- /dev/null +++ b/tmva/sofie/test/KerasParserTest/GRUtest.dat @@ -0,0 +1,6 @@ +tensor_grugrucellbias0 36 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +tensor_grugrucellrecurrentkernel0 27 +0.142976522 0.265595526 -0.0871705934 0.508418024 -0.128727555 -0.215290904 -0.100724742 0.418239772 -0.214236975 0.24607569 0.177591771 0.0677626505 -0.288328648 -0.608325481 -0.138291806 -0.263606548 0.520514011 -0.232579231 -0.176627934 -0.162072167 0.297724485 0.452055812 -0.181038439 -0.606996059 0.512051105 0.0799251646 0.604367495 +tensor_grugrucellkernel0 18 +-0.451334268 -0.545931935 0.648837268 0.414247096 0.0038985014 -0.251027346 0.296413839 -0.0346105099 -0.609088242 -0.557753861 -0.107886195 -0.425599784 0.236953855 0.342886388 0.0363264084 0.0106346011 0.510130703 0.246422052 diff --git a/tmva/sofie/test/KerasParserTest/GRUtest.h5 b/tmva/sofie/test/KerasParserTest/GRUtest.h5 new file mode 100644 index 0000000000000000000000000000000000000000..75a9cf06d00fb4a38741832269504767afbf3a89 GIT binary patch literal 14776 zcmeHOU5pe(5bnJbJ>@W<5DzfAuA-PA-W{Na%HA14&P2uFZ$zBy+wI#Oot;^GW`Pq= zc*36tUwqI9qa^y^8^i}CG3*gdlte=?F-DChzUd1IiGL)TXjOOB{><&(28bfwOv3hb zb#-<1*HzWsHQY<18}D9l$+AlXK0Q6+08n^3SF$%td@-G#OMUQw|X&E{@ln&j%2l~=f%Jf8U zvN~AHWqszM9%Rf&>lGs;ugAz6m$|2vpYJHgI4;RSDC&AGFmfy&xxk-r3pnIb7z}l4 zr`P*9DUydST9>!b$cwaeeb+BIB(jsd7jSYU4@KLN%}diyyErj=k!9OY+@0dYp(`z8 zn)s7qZXpnl6GJrplNUDQP|y`a&?+p-vT_EfISR^-r*=RLX^tf9x9MgvwHn8XgVxB! zaT>2z6v?l9!GHRMCnuG5d|6T$oo4Yzh#&ZHc;oV7B$7Yj5M~>tI>r>5(f}Pll^nlXD4=8tMa-IxB zGtCA)bnTqlwS9+OM>5L5?K;NA~D3BqnF*pOrVt@*vWm{a-J$|_o-HSNJM2*WR zS9Dx#cFd|`Z@=PstI}(?gUEa|SvF&V+A>-*h~2}o)FBclq!%h6Xjv$zd;@_MtXYa3 zAu~0#3e<0&3)Y3^*}T4+y+8-i!@fHa=u!;MP#Lp9dqeyiw3uDy79ACXLg3Hvi~{Vm zpu@oGevlTIj>>mX_Hm_yuvtl?7|m3xLdBDsW@_D}LFtywX4IA~25C2%bXvC3kl^;A zvHJ+-HDkn9t!BVh4S5}ug9^&&H~7@oJl^7#%AP8LHL#t4i@-cX@ESQ0nPo-;o|*!; z5hhk+JTvDO6UV$DL^H{ZyS~(uP7Xi~K^lxdiQtx0q}?2H(1h&SQ{|m{%eEOY>^>#^ z`%KSAwJeusgfb2pG6$wCb7rJg-Z)_lKL@T<2tW<#fyq-3m=Fd%RG-hobtQu`_!cfb zo#UV-ZtHjEW!%JBD{k_X)aEd#t;@qw^bf$8d6kosAkr?)xQZmibgZt2MpGTM)%8eF z<~zNbMR{P7Sj^r&&O(jK_gPWVhTeZpX3iNtF;tLFV3IM!==SO4E|+vIPEa z&H4Ozy&Fyv$hjzeHGTU@iz|A>6?;hjJUC%udsmkg*h43e?o{86mSvPUx!A=o=cMFw zaX*c|a&UGv`22I^`q}w7KKAi{l$f3Uyl=f{$&b}F%dQ_5&+obYm5*P`t~;@Oy8QEZ zhkM@9S@GH84JTgf8Xo*;{`6qqm)Ups?X4d9c){Uck6t=`>rdZQkG*mrd*qJQcPxD5 zxoo+3S@ysUUBjP@9y`48kKNhhZ@pSA|GuyK%lB)m--SPBk1pvRzV^=-vMaynuI{_` ztL&TKuFDR6xO}=eGH-bJw-wdv#@APm9e8`go_+5f9;!T1Jvp|my5iH9H$3^qg6hbP ze)X~7^=w~$`Sh0`EE_)WK~E--Adn!CAdn!CAaITm=ya~+ycVA;XV%a3TscPPN-u`M zxjk2Q!XtjJj@Qrpoc;NK@|@l7`^hQFBk!fvv-t +#include "TMVA/SOFIE_common.hxx" +#include + +namespace TMVA_SOFIE_GRUtest{ +namespace BLAS{ + extern "C" void saxpy_(const int * n, const float * alpha, const float * x, + const int * incx, float * y, const int * incy); + extern "C" void sgemm_(const char * transa, const char * transb, const int * m, const int * n, const int * k, + const float * alpha, const float * A, const int * lda, const float * B, const int * ldb, + const float * beta, float * C, const int * ldc); +}//BLAS +struct Session { +std::vector fTensor_grugrucellbias0 = std::vector(36); +float * tensor_grugrucellbias0 = fTensor_grugrucellbias0.data(); +std::vector fTensor_grugrucellrecurrentkernel0 = std::vector(27); +float * tensor_grugrucellrecurrentkernel0 = fTensor_grugrucellrecurrentkernel0.data(); +std::vector fTensor_grugrucellkernel0 = std::vector(18); +float * tensor_grugrucellkernel0 = fTensor_grugrucellkernel0.data(); +std::vector fTensor_gruPartitionedCall1 = std::vector(6); +float * tensor_gruPartitionedCall1 = fTensor_gruPartitionedCall1.data(); +std::vector fTensor_reshape1Reshape0 = std::vector(4); +float * tensor_reshape1Reshape0 = fTensor_reshape1Reshape0.data(); + +std::vector fVec_op_1_input = std::vector(4); +std::vector fVec_op_1_initial_hidden_state = std::vector(3); +std::vector fVec_op_1_initial_cell_state = std::vector(3); +std::vector fVec_op_1_f_update_gate = std::vector(6); +std::vector fVec_op_1_f_reset_gate = std::vector(6); +std::vector fVec_op_1_f_hidden_gate = std::vector(6); +std::vector fVec_op_1_update_gate = std::vector(6); +std::vector fVec_op_1_reset_gate = std::vector(6); +std::vector fVec_op_1_hidden_gate = std::vector(6); +std::vector fVec_op_1_feedback = std::vector(3); +std::vector fVec_op_1_hidden_state = std::vector(6); + + +Session(std::string filename ="") { + if (filename.empty()) filename = "GRUtest.dat"; + std::ifstream f; + f.open(filename); + if (!f.is_open()){ + throw std::runtime_error("tmva-sofie failed to open file for input weights"); + } + std::string tensor_name; + int length; + f >> tensor_name >> length; + if (tensor_name != "tensor_grugrucellbias0" ) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor name; expected name is tensor_grugrucellbias0 , read " + tensor_name; + throw std::runtime_error(err_msg); + } + if (length != 36) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor size; expected size is 36 , read " + std::to_string(length) ; + throw std::runtime_error(err_msg); + } + for (int i =0; i < length; ++i) + f >> tensor_grugrucellbias0[i]; + f >> tensor_name >> length; + if (tensor_name != "tensor_grugrucellrecurrentkernel0" ) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor name; expected name is tensor_grugrucellrecurrentkernel0 , read " + tensor_name; + throw std::runtime_error(err_msg); + } + if (length != 27) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor size; expected size is 27 , read " + std::to_string(length) ; + throw std::runtime_error(err_msg); + } + for (int i =0; i < length; ++i) + f >> tensor_grugrucellrecurrentkernel0[i]; + f >> tensor_name >> length; + if (tensor_name != "tensor_grugrucellkernel0" ) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor name; expected name is tensor_grugrucellkernel0 , read " + tensor_name; + throw std::runtime_error(err_msg); + } + if (length != 18) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor size; expected size is 18 , read " + std::to_string(length) ; + throw std::runtime_error(err_msg); + } + for (int i =0; i < length; ++i) + f >> tensor_grugrucellkernel0[i]; + f.close(); +} + +std::vector infer(float* tensor_reshape1input){ + ///--------Reshape operator + + std::copy( tensor_reshape1input, tensor_reshape1input + 4, tensor_reshape1Reshape0); + float * op_1_input = fVec_op_1_input.data(); + for(size_t seq = 0; seq < 2; seq++) { + for(size_t batch = 0; batch < 1; batch++) { + for(size_t i = 0; i < 2; i++) { + op_1_input[seq * 2 + batch * 2 + i] = tensor_reshape1Reshape0[batch * 4 + seq * 2 + i]; + } + } + } + float * op_1_f_update_gate = fVec_op_1_f_update_gate.data(); + float * op_1_f_reset_gate = fVec_op_1_f_reset_gate.data(); + float * op_1_f_hidden_gate = fVec_op_1_f_hidden_gate.data(); + float * op_1_update_gate = fVec_op_1_update_gate.data(); + float * op_1_reset_gate = fVec_op_1_reset_gate.data(); + float * op_1_hidden_gate = fVec_op_1_hidden_gate.data(); + float * op_1_hidden_state = fVec_op_1_hidden_state.data(); + float * op_1_feedback = fVec_op_1_feedback.data(); + char op_1_transA = 'N'; + char op_1_transB = 'T'; + int op_1_m = 2; + int op_1_m2 = 1; + int op_1_n = 3; + int op_1_k = 2; + float op_1_alpha = 1.; + float op_1_beta = 0.; + int op_1_bias_size = 6; + int op_1_incx = 1; + int op_1_incy = 1; + int op_1_feedback_size = 3; + BLAS::sgemm_(&op_1_transB, &op_1_transA, &op_1_n, &op_1_m, &op_1_k, &op_1_alpha, tensor_grugrucellkernel0, &op_1_k, op_1_input, &op_1_k, &op_1_beta, op_1_f_update_gate, &op_1_n); + BLAS::sgemm_(&op_1_transB, &op_1_transA, &op_1_n, &op_1_m, &op_1_k, &op_1_alpha, tensor_grugrucellkernel0 + 6, &op_1_k, op_1_input, &op_1_k, &op_1_beta, op_1_f_reset_gate, &op_1_n); + BLAS::sgemm_(&op_1_transB, &op_1_transA, &op_1_n, &op_1_m, &op_1_k, &op_1_alpha, tensor_grugrucellkernel0 + 12, &op_1_k, op_1_input, &op_1_k, &op_1_beta, op_1_f_hidden_gate, &op_1_n); + BLAS::saxpy_(&op_1_bias_size, &op_1_alpha, tensor_grugrucellbias0, &op_1_incx, op_1_f_update_gate, &op_1_incy); + BLAS::saxpy_(&op_1_bias_size, &op_1_alpha, tensor_grugrucellbias0 + 18, &op_1_incx, op_1_f_update_gate, &op_1_incy); + BLAS::saxpy_(&op_1_bias_size, &op_1_alpha, tensor_grugrucellbias0 + 6, &op_1_incx, op_1_f_reset_gate, &op_1_incy); + BLAS::saxpy_(&op_1_bias_size, &op_1_alpha, tensor_grugrucellbias0 + 24, &op_1_incx, op_1_f_reset_gate, &op_1_incy); + BLAS::saxpy_(&op_1_bias_size, &op_1_alpha, tensor_grugrucellbias0 + 12, &op_1_incx, op_1_f_hidden_gate, &op_1_incy); + for (size_t seq = 0; seq < 2; seq++) { + size_t offset = seq * 3; + size_t gate_offset = seq * 3; + std::copy(op_1_f_update_gate + offset, op_1_f_update_gate + offset + 3, op_1_update_gate + gate_offset); + std::copy(op_1_f_reset_gate + offset, op_1_f_reset_gate + offset + 3, op_1_reset_gate + gate_offset); + std::copy(op_1_f_hidden_gate + offset, op_1_f_hidden_gate + offset + 3, op_1_hidden_gate + gate_offset); + } + for (size_t seq = 0; seq < 2; seq++) { + size_t index = seq; + int m2 = 1; + size_t offset = index * 3; + if (seq == 0) { + } else { + size_t previous_offset = (seq - 1) * 3; + BLAS::sgemm_(&op_1_transB, &op_1_transA, &op_1_n, &m2, &op_1_n, &op_1_alpha, tensor_grugrucellrecurrentkernel0, &op_1_n, op_1_hidden_state + previous_offset, &op_1_n, &op_1_alpha, op_1_update_gate + offset, &op_1_n); + BLAS::sgemm_(&op_1_transB, &op_1_transA, &op_1_n, &m2, &op_1_n, &op_1_alpha, tensor_grugrucellrecurrentkernel0 + 9, &op_1_n, op_1_hidden_state + previous_offset, &op_1_n, &op_1_alpha, op_1_reset_gate + offset, &op_1_n); + } + for (size_t i = offset; i < offset + 3; i++) { + op_1_update_gate[i] = 1. / (1. + exp(-op_1_update_gate[i])); + op_1_reset_gate[i] = 1. / (1. + exp(-op_1_reset_gate[i])); + } + if (seq == 0) { + } else { + size_t previous_offset = (seq - 1) * 3; + BLAS::sgemm_(&op_1_transB, &op_1_transA, &op_1_n, &op_1_m2, &op_1_n, &op_1_alpha, tensor_grugrucellrecurrentkernel0 + 18, &op_1_n, op_1_hidden_state + previous_offset, &op_1_n, &op_1_beta, op_1_feedback, &op_1_n); + } + BLAS::saxpy_(&op_1_feedback_size, &op_1_alpha, tensor_grugrucellbias0 + 30, &op_1_incx, op_1_feedback, &op_1_incy); + for (size_t i = 0; i < 3; i++) { + op_1_feedback[i] *= op_1_reset_gate[i + offset]; + } + BLAS::saxpy_(&op_1_feedback_size, &op_1_alpha, op_1_feedback, &op_1_incx, op_1_hidden_gate + offset, &op_1_incy); + for (size_t i = offset; i < offset + 3; i++) { + float ex = exp(-2 * op_1_hidden_gate[i]); + op_1_hidden_gate[i] = (1. - ex) / (1. + ex); + } + for (size_t i = offset; i < offset + 3; i++) { + op_1_hidden_state[i] = ( 1. - op_1_update_gate[i]) * op_1_hidden_gate[i]; + } + if (seq == 0) { + } else { + size_t previous_offset = (seq - 1) * 3; + for (size_t i = 0; i < 3; i++) { + op_1_hidden_state[i + offset] += op_1_update_gate[i + offset] * op_1_hidden_state[i + previous_offset]; + } + } + } + for (size_t seq = 0; seq < 2; seq++) { + for (size_t batch = 0; batch < 1; batch++) { + size_t offset = seq * 3 + 0 + batch * 3; + size_t y_offset = batch * 6 + seq * 3 + 0; + std::copy(op_1_hidden_state + offset, op_1_hidden_state + offset + 3, tensor_gruPartitionedCall1 + y_offset); + } + } + std::vector ret (tensor_gruPartitionedCall1, tensor_gruPartitionedCall1 + 6); + return ret; +} +}; +} //TMVA_SOFIE_GRUtest + +#endif // ROOT_TMVA_SOFIE_GRUTEST diff --git a/tmva/sofie/test/KerasParserTest/GRUtestWithBias.dat b/tmva/sofie/test/KerasParserTest/GRUtestWithBias.dat new file mode 100644 index 0000000000000..70ba36fc93803 --- /dev/null +++ b/tmva/sofie/test/KerasParserTest/GRUtestWithBias.dat @@ -0,0 +1,6 @@ +tensor_gru2grucell2bias0 36 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +tensor_gru2grucell2recurrentkernel0 27 +0.496271729 -0.224326789 -0.0511889234 0.0169668663 0.270514786 0.148597926 -0.383253664 -0.386070579 0.393358439 0.0115303406 -0.537418008 0.462909847 -0.177885264 -0.195221469 -0.158118606 0.152738422 0.118375264 0.564330816 0.0670160875 0.228355959 0.426117003 -0.650368094 -0.144520357 -0.164931223 0.352091342 -0.559887469 -0.232450277 +tensor_gru2grucell2kernel0 18 +0.0454398394 0.438350499 0.283750355 0.723625958 0.111354887 0.718402088 0.12022084 -0.136382341 0.496713221 -0.0765696764 0.506236136 -0.504955649 0.0743073821 0.157554507 -0.357403427 -0.293779075 0.65359956 -0.324276775 diff --git a/tmva/sofie/test/KerasParserTest/GRUtestWithBias.h5 b/tmva/sofie/test/KerasParserTest/GRUtestWithBias.h5 new file mode 100644 index 0000000000000000000000000000000000000000..754ba4470ca31099e75b243e4be3092008017e9a GIT binary patch literal 14776 zcmeHOZ;Vvc6~D8nEV5FFCM?F(VGM$1h1~^lm#{Ny1b3T25rmY4kjLGbyR%Q1<^G0_ivYMc0lCfbq`2TjyS;s=r@4e2Km{ZN`VG5yf+LD6&WJ!k&B znb{GvwRPT0cJ909o_FrKzw_tbcOE=Hz31^eZom6>fmeUOxJ9frxBT-ZUFXIvh5I~y zf^JgOK1c2E`s__gtQ0slNc6QNKfS^d=IFu0hxYCjz{&EtrN?Rl`fG&brk4kcEw z;*k&hS+|H&Zh*;9r%rnP5f?@BFhuL})*5+{magymMTbOollLqxj^v?eJF~fI`stJ> zrdL|FGsN93Pn^5QGNy??X?hERc%B%e<$rctGY&;vaYlipRX8Wh%3;1JC_A1y2|1)W zlW^Roo5j?6oF~p&Cl{A!z5y{uaXkR>GblW{ptR%5lEUn?OguvVz>Cuxx2upy@q|+} z<`KN-{dIZ+G753lHXVPb9y_ql%!CO6E?%dR3;ofpV_S!z<@xPFL5N8CVW4Nd;1oV3 z1a0TS_^ick9$&l^hbI1VBU(L&kG1!~J^`zSshmZc7nI4iwS z0YS@RQ56~ptYFPk>CxluRGT_%1Fw+~xh3V4h;$`N%yfBiM9-kcp%}hbz%4U(p);&1oJF-C`+l z3&>Ill{4eY2JK-B_aW|KdqX#MPlJD8N}cWe@mZ9eA`JZbmO!s8+>_Cp9h9#z}+DZHLXI zZAT2yZnWUE9i=HjkDH<`^}R-(Xw1_NoAZeWF8z@=FLp)VsX~EeI5d-7=Rkm1Ba(4U_F@h zP<=iR*Od&)5Lsw>I>*6C+|wT|$hd>ERy^b>sm)V9cs0G`2XHSyCn-73F{ zo0y?F$_m#>$z6g#f$l6-TN~@Qcvh{~TRYX2mzQVG$7D>~P+=!#ixj-+ppChX&UGX4L(6!U_`B6x%Ns2t z`wu;qG(Cbqyxz**c7p2g3RM^oBP^4l{A z#Pb&W)8NKt2OdRj)vjY3+WI6n@KEYJ6S8BO22YvNB+zs~lr z`E=sw&VNsg9=x9Y{cEY*{MOedUisn=)%}My=S~M#vM=VwbK9>zlDqWV)zx2JdgGlB z_oOadJF+pm^Ql*>udn<~_3--Z*$vlU*!}16_p9$+-M#yz%{!|ni}z&D=boSV<5Dt77Z3m7!s#~;zO&}R z!R*xR#q2No{+Ydebz}AOQ)_d5Lx0Vl|71&5uk@=zEakqPzwe6`lXWBrBnTu3BnTu3 z+!zAg&Xru(;&Wwd|7OpXC+J-1#T5Q-&z0Tqh@Y$D{hL2$fBZjr&hGU6Z^aW#_=YXl&Ewxc>fayR*ZtR}bM(z+QtVhQ zc6>>RFGY3#R<%0S@!NlY92>V1mPk+%Kdp!+lsW>P;^zt%@`&|66+iLsg8!}f`3gYB B+OYrt literal 0 HcmV?d00001 diff --git a/tmva/sofie/test/KerasParserTest/GRUtestWithBias.hxx b/tmva/sofie/test/KerasParserTest/GRUtestWithBias.hxx new file mode 100644 index 0000000000000..2fa9c244f60d4 --- /dev/null +++ b/tmva/sofie/test/KerasParserTest/GRUtestWithBias.hxx @@ -0,0 +1,187 @@ +//Code generated automatically by TMVA for Inference of Model file [GRUtestWithBias.h5] at [Thu Aug 24 08:55:50 202] + +#ifndef ROOT_TMVA_SOFIE_GRUTESTWITHBIAS +#define ROOT_TMVA_SOFIE_GRUTESTWITHBIAS + +#include +#include "TMVA/SOFIE_common.hxx" +#include + +namespace TMVA_SOFIE_GRUtestWithBias{ +namespace BLAS{ + extern "C" void saxpy_(const int * n, const float * alpha, const float * x, + const int * incx, float * y, const int * incy); + extern "C" void sgemm_(const char * transa, const char * transb, const int * m, const int * n, const int * k, + const float * alpha, const float * A, const int * lda, const float * B, const int * ldb, + const float * beta, float * C, const int * ldc); +}//BLAS +struct Session { +std::vector fTensor_gru2grucell2bias0 = std::vector(36); +float * tensor_gru2grucell2bias0 = fTensor_gru2grucell2bias0.data(); +std::vector fTensor_gru2grucell2recurrentkernel0 = std::vector(27); +float * tensor_gru2grucell2recurrentkernel0 = fTensor_gru2grucell2recurrentkernel0.data(); +std::vector fTensor_gru2grucell2kernel0 = std::vector(18); +float * tensor_gru2grucell2kernel0 = fTensor_gru2grucell2kernel0.data(); +std::vector fTensor_gru2PartitionedCall1 = std::vector(6); +float * tensor_gru2PartitionedCall1 = fTensor_gru2PartitionedCall1.data(); +std::vector fTensor_reshape8Reshape0 = std::vector(4); +float * tensor_reshape8Reshape0 = fTensor_reshape8Reshape0.data(); + +std::vector fVec_op_1_input = std::vector(4); +std::vector fVec_op_1_initial_hidden_state = std::vector(3); +std::vector fVec_op_1_initial_cell_state = std::vector(3); +std::vector fVec_op_1_f_update_gate = std::vector(6); +std::vector fVec_op_1_f_reset_gate = std::vector(6); +std::vector fVec_op_1_f_hidden_gate = std::vector(6); +std::vector fVec_op_1_update_gate = std::vector(6); +std::vector fVec_op_1_reset_gate = std::vector(6); +std::vector fVec_op_1_hidden_gate = std::vector(6); +std::vector fVec_op_1_feedback = std::vector(3); +std::vector fVec_op_1_hidden_state = std::vector(6); + + +Session(std::string filename ="") { + if (filename.empty()) filename = "GRUtestWithBias.dat"; + std::ifstream f; + f.open(filename); + if (!f.is_open()){ + throw std::runtime_error("tmva-sofie failed to open file for input weights"); + } + std::string tensor_name; + int length; + f >> tensor_name >> length; + if (tensor_name != "tensor_gru2grucell2bias0" ) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor name; expected name is tensor_gru2grucell2bias0 , read " + tensor_name; + throw std::runtime_error(err_msg); + } + if (length != 36) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor size; expected size is 36 , read " + std::to_string(length) ; + throw std::runtime_error(err_msg); + } + for (int i =0; i < length; ++i) + f >> tensor_gru2grucell2bias0[i]; + f >> tensor_name >> length; + if (tensor_name != "tensor_gru2grucell2recurrentkernel0" ) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor name; expected name is tensor_gru2grucell2recurrentkernel0 , read " + tensor_name; + throw std::runtime_error(err_msg); + } + if (length != 27) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor size; expected size is 27 , read " + std::to_string(length) ; + throw std::runtime_error(err_msg); + } + for (int i =0; i < length; ++i) + f >> tensor_gru2grucell2recurrentkernel0[i]; + f >> tensor_name >> length; + if (tensor_name != "tensor_gru2grucell2kernel0" ) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor name; expected name is tensor_gru2grucell2kernel0 , read " + tensor_name; + throw std::runtime_error(err_msg); + } + if (length != 18) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor size; expected size is 18 , read " + std::to_string(length) ; + throw std::runtime_error(err_msg); + } + for (int i =0; i < length; ++i) + f >> tensor_gru2grucell2kernel0[i]; + f.close(); +} + +std::vector infer(float* tensor_reshape8input){ + ///--------Reshape operator + + std::copy( tensor_reshape8input, tensor_reshape8input + 4, tensor_reshape8Reshape0); + float * op_1_input = fVec_op_1_input.data(); + for(size_t seq = 0; seq < 2; seq++) { + for(size_t batch = 0; batch < 1; batch++) { + for(size_t i = 0; i < 2; i++) { + op_1_input[seq * 2 + batch * 2 + i] = tensor_reshape8Reshape0[batch * 4 + seq * 2 + i]; + } + } + } + float * op_1_f_update_gate = fVec_op_1_f_update_gate.data(); + float * op_1_f_reset_gate = fVec_op_1_f_reset_gate.data(); + float * op_1_f_hidden_gate = fVec_op_1_f_hidden_gate.data(); + float * op_1_update_gate = fVec_op_1_update_gate.data(); + float * op_1_reset_gate = fVec_op_1_reset_gate.data(); + float * op_1_hidden_gate = fVec_op_1_hidden_gate.data(); + float * op_1_hidden_state = fVec_op_1_hidden_state.data(); + float * op_1_feedback = fVec_op_1_feedback.data(); + char op_1_transA = 'N'; + char op_1_transB = 'T'; + int op_1_m = 2; + int op_1_m2 = 1; + int op_1_n = 3; + int op_1_k = 2; + float op_1_alpha = 1.; + float op_1_beta = 0.; + int op_1_bias_size = 6; + int op_1_incx = 1; + int op_1_incy = 1; + int op_1_feedback_size = 3; + BLAS::sgemm_(&op_1_transB, &op_1_transA, &op_1_n, &op_1_m, &op_1_k, &op_1_alpha, tensor_gru2grucell2kernel0, &op_1_k, op_1_input, &op_1_k, &op_1_beta, op_1_f_update_gate, &op_1_n); + BLAS::sgemm_(&op_1_transB, &op_1_transA, &op_1_n, &op_1_m, &op_1_k, &op_1_alpha, tensor_gru2grucell2kernel0 + 6, &op_1_k, op_1_input, &op_1_k, &op_1_beta, op_1_f_reset_gate, &op_1_n); + BLAS::sgemm_(&op_1_transB, &op_1_transA, &op_1_n, &op_1_m, &op_1_k, &op_1_alpha, tensor_gru2grucell2kernel0 + 12, &op_1_k, op_1_input, &op_1_k, &op_1_beta, op_1_f_hidden_gate, &op_1_n); + BLAS::saxpy_(&op_1_bias_size, &op_1_alpha, tensor_gru2grucell2bias0, &op_1_incx, op_1_f_update_gate, &op_1_incy); + BLAS::saxpy_(&op_1_bias_size, &op_1_alpha, tensor_gru2grucell2bias0 + 18, &op_1_incx, op_1_f_update_gate, &op_1_incy); + BLAS::saxpy_(&op_1_bias_size, &op_1_alpha, tensor_gru2grucell2bias0 + 6, &op_1_incx, op_1_f_reset_gate, &op_1_incy); + BLAS::saxpy_(&op_1_bias_size, &op_1_alpha, tensor_gru2grucell2bias0 + 24, &op_1_incx, op_1_f_reset_gate, &op_1_incy); + BLAS::saxpy_(&op_1_bias_size, &op_1_alpha, tensor_gru2grucell2bias0 + 12, &op_1_incx, op_1_f_hidden_gate, &op_1_incy); + for (size_t seq = 0; seq < 2; seq++) { + size_t offset = seq * 3; + size_t gate_offset = seq * 3; + std::copy(op_1_f_update_gate + offset, op_1_f_update_gate + offset + 3, op_1_update_gate + gate_offset); + std::copy(op_1_f_reset_gate + offset, op_1_f_reset_gate + offset + 3, op_1_reset_gate + gate_offset); + std::copy(op_1_f_hidden_gate + offset, op_1_f_hidden_gate + offset + 3, op_1_hidden_gate + gate_offset); + } + for (size_t seq = 0; seq < 2; seq++) { + size_t index = seq; + int m2 = 1; + size_t offset = index * 3; + if (seq == 0) { + } else { + size_t previous_offset = (seq - 1) * 3; + BLAS::sgemm_(&op_1_transB, &op_1_transA, &op_1_n, &m2, &op_1_n, &op_1_alpha, tensor_gru2grucell2recurrentkernel0, &op_1_n, op_1_hidden_state + previous_offset, &op_1_n, &op_1_alpha, op_1_update_gate + offset, &op_1_n); + BLAS::sgemm_(&op_1_transB, &op_1_transA, &op_1_n, &m2, &op_1_n, &op_1_alpha, tensor_gru2grucell2recurrentkernel0 + 9, &op_1_n, op_1_hidden_state + previous_offset, &op_1_n, &op_1_alpha, op_1_reset_gate + offset, &op_1_n); + } + for (size_t i = offset; i < offset + 3; i++) { + op_1_update_gate[i] = 1. / (1. + exp(-op_1_update_gate[i])); + op_1_reset_gate[i] = 1. / (1. + exp(-op_1_reset_gate[i])); + } + if (seq == 0) { + } else { + size_t previous_offset = (seq - 1) * 3; + BLAS::sgemm_(&op_1_transB, &op_1_transA, &op_1_n, &op_1_m2, &op_1_n, &op_1_alpha, tensor_gru2grucell2recurrentkernel0 + 18, &op_1_n, op_1_hidden_state + previous_offset, &op_1_n, &op_1_beta, op_1_feedback, &op_1_n); + } + BLAS::saxpy_(&op_1_feedback_size, &op_1_alpha, tensor_gru2grucell2bias0 + 30, &op_1_incx, op_1_feedback, &op_1_incy); + for (size_t i = 0; i < 3; i++) { + op_1_feedback[i] *= op_1_reset_gate[i + offset]; + } + BLAS::saxpy_(&op_1_feedback_size, &op_1_alpha, op_1_feedback, &op_1_incx, op_1_hidden_gate + offset, &op_1_incy); + for (size_t i = offset; i < offset + 3; i++) { + float ex = exp(-2 * op_1_hidden_gate[i]); + op_1_hidden_gate[i] = (1. - ex) / (1. + ex); + } + for (size_t i = offset; i < offset + 3; i++) { + op_1_hidden_state[i] = ( 1. - op_1_update_gate[i]) * op_1_hidden_gate[i]; + } + if (seq == 0) { + } else { + size_t previous_offset = (seq - 1) * 3; + for (size_t i = 0; i < 3; i++) { + op_1_hidden_state[i + offset] += op_1_update_gate[i + offset] * op_1_hidden_state[i + previous_offset]; + } + } + } + for (size_t seq = 0; seq < 2; seq++) { + for (size_t batch = 0; batch < 1; batch++) { + size_t offset = seq * 3 + 0 + batch * 3; + size_t y_offset = batch * 6 + seq * 3 + 0; + std::copy(op_1_hidden_state + offset, op_1_hidden_state + offset + 3, tensor_gru2PartitionedCall1 + y_offset); + } + } + std::vector ret (tensor_gru2PartitionedCall1, tensor_gru2PartitionedCall1 + 6); + return ret; +} +}; +} //TMVA_SOFIE_GRUtestWithBias + +#endif // ROOT_TMVA_SOFIE_GRUTESTWITHBIAS diff --git a/tmva/sofie/test/KerasParserTest/LSTMtest.dat b/tmva/sofie/test/KerasParserTest/LSTMtest.dat new file mode 100644 index 0000000000000..edb9ca0866e39 --- /dev/null +++ b/tmva/sofie/test/KerasParserTest/LSTMtest.dat @@ -0,0 +1,6 @@ +tensor_lstmlstmcell2bias0 24 +0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 +tensor_lstmlstmcell2kernel0 24 +0.199474633 0.0524432659 0.0961398482 0.225956857 0.510208249 -0.524776936 -0.154692471 -0.524948001 -0.41483444 -0.569589376 0.286657929 -0.258122444 0.400176048 0.599097371 0.610831141 0.320216715 -0.603321075 0.371819496 -0.246326417 0.215083897 0.0255909562 0.586698413 -0.160219163 -0.240281075 +tensor_lstmlstmcell2recurrentkernel0 36 +-0.128875136 0.467512578 -0.502396047 -0.157231271 0.004708983 0.109334841 -0.539759755 0.232447669 0.0177659541 0.0254211631 -0.175078109 -0.094724603 -0.222316459 0.0891792625 -0.0196319446 -0.113376565 -0.347394764 -0.0771321058 0.0576719232 0.298089236 -0.0619482473 -0.263137221 -0.057006143 0.168538436 -0.117840923 0.589754224 0.147639573 -0.409794927 -0.330703616 -0.342414796 0.324285954 0.0180809796 -0.708968639 0.494829744 0.135943279 0.214700684 diff --git a/tmva/sofie/test/KerasParserTest/LSTMtest.h5 b/tmva/sofie/test/KerasParserTest/LSTMtest.h5 new file mode 100644 index 0000000000000000000000000000000000000000..c96f9cc4f21955eb85180d893dbb12f655b3af28 GIT binary patch literal 14776 zcmeHOZ)_aJ6`!+9a!s7dk$^Z+lpd!7p>mAvgyN+3+9-q=DItN-1d)c#_-=gOvbTH8 z?j?4qNj_9<_(rQDRTTkCAOs&!Q-mN?^*M-q$Oi;Q%?E@8M4}&1Rm5KjgCKO?%zM7O zy*pb;1VQ$mlxJ}jKvNEj$0+2sH+TwuEr?KNuGEo@Nv3dsKnyOJf@{X+7< zJ|tw|_@1J#P9*e9@Ft^!v0T#U3eW?M8E7qR0OcjMydj>sUwGMhm)mNi9 zF}T#QO(6GtapL4!!$|gl)8b~4AP|icow)ChmsA7b24Nm3QUoKsAXw-ZY*!pov70mx?cxZ!)(S*n5NZZFYx8C>mP<$ zjNx_8bo@~L2h$ms2Z7#cdP^$3M?6pzUg&T)-JVLD;GyUbrU43I2&xz~Oo5{Bj|#fo zD-^>WfMP_@5DzmWwgbbqK2wJZ9@Tv#`hMOgM?bPu`AiHfaux2L)f z)KhH7p1XH8&_m!8QA%ZLcJ+AR>-C&Xs<4BPkFw&*uX%Y-zwVz)2u$HQ>`M(=g%Jlr8x2?+oIr&Z zbIaT%!x2B{do^B>Q@5yiMULpOU`p~svMYTm+Z2&B%E(TKMiY}Lk zfpMRT?bIFC`qUlKXW)cmcHL2gUEvsLp9s~CYgVi`su!#`kd=PHFM^y-ja=Cpq9abe z;EKGm6SAQ0@p0unCZ4MJrSldY$6P-EQ%Mgw9+zWwMgbeBd1|FG05~r~>12QdRX4e( z$lB$R{WVc+r{LaBJ#(Mrg+fg*qp-m<%A9#duT;+?hqdu%lsn~or3QDE+2ahg9|(J( zKIOw@CH;c(FF0h(O)Xq&b8k5pugr zcQ>m+-R(Br%|H-^z;U$~cZm(1H!BLy2RX@S!|=E|7rKw|dS!Hf)3uIi;_Q7+{YLi{ zUYWCU>7M(sI&=73Wg5NCjj))V5w3e9Sl$-64@vGd_4&$%XN+9W0oLWnzpDPc2sdLR zq$u*oO^iT{K#V|)K#V|)K#ahpBCzL3NOf${-C~WNYG9^K9Ij!FngjPpvV62T%{vt7oI36W>AXAHB)Y z$sb04QO!4j{Zl=LzEHlYZXLy|g^gm}8r~zdF;mqj7p@z=_rba~)q|h>pW%%cdTcg(+K3vjt;_pR+Ks0WVJ+*1W zEW&nXfRX`^xAB-$;_i`sEydfY_>5~_l)F+<=IY`q>y zG#LWDw{AiHXunxy62Q4K^;3NJlVYoqY}FCuzd~i0Fy7Q;1ST=_Xil`$~SxgYutK*UimG@v*IIZoY*wdgay~*35rS_ca}F>Oc4XYnErP?H>r% zOr7ujT`Bd{o4pUU{;c#uZe6KEoGqO_{b%dc>wEipdCoesZ^@LrZ*{-?>`5zSm#ojN zUt8~XUEOcB94eh3S~B(6^vbD;^}jE@^+j{3H*rnr`3=ja#Adhee=q-`^yuDCCZC#q zv-C#tX=~5D-&o5Brh7kpI#c?x>x0QR4t!)y@BG^@UtQu^*FW)B>$W4#WcsVC`@g>P z+0rBH{?hx>rsdXi+c%aTfAYn?f4=jN($eE>>eK(e*Z0B0f9jQ!d3EyVX5*B>5)8-a#}A@y^!{W9 z>&Qn@OH+SfjsLIZ2eF%2iOYpRwEjTPV-sjcq!&KkvfV_u#Fpyj(f1$a_mB1K{wq`c z_|9d3ZCcJYeT#vQ;y|rht+gaYY2-gW_WMNh(II%IoDGS(RbxP(f5Mi Hm;d}9Mz!+d literal 0 HcmV?d00001 diff --git a/tmva/sofie/test/KerasParserTest/LSTMtest.hxx b/tmva/sofie/test/KerasParserTest/LSTMtest.hxx new file mode 100644 index 0000000000000..ffce847b72538 --- /dev/null +++ b/tmva/sofie/test/KerasParserTest/LSTMtest.hxx @@ -0,0 +1,197 @@ +//Code generated automatically by TMVA for Inference of Model file [LSTMtest.h5] at [Thu Aug 24 08:55:54 202] + +#ifndef ROOT_TMVA_SOFIE_LSTMTEST +#define ROOT_TMVA_SOFIE_LSTMTEST + +#include +#include "TMVA/SOFIE_common.hxx" +#include + +namespace TMVA_SOFIE_LSTMtest{ +namespace BLAS{ + extern "C" void saxpy_(const int * n, const float * alpha, const float * x, + const int * incx, float * y, const int * incy); + extern "C" void sgemm_(const char * transa, const char * transb, const int * m, const int * n, const int * k, + const float * alpha, const float * A, const int * lda, const float * B, const int * ldb, + const float * beta, float * C, const int * ldc); +}//BLAS +struct Session { +std::vector fTensor_lstmlstmcell2bias0 = std::vector(24); +float * tensor_lstmlstmcell2bias0 = fTensor_lstmlstmcell2bias0.data(); +std::vector fTensor_lstmlstmcell2kernel0 = std::vector(24); +float * tensor_lstmlstmcell2kernel0 = fTensor_lstmlstmcell2kernel0.data(); +std::vector fTensor_lstmlstmcell2recurrentkernel0 = std::vector(36); +float * tensor_lstmlstmcell2recurrentkernel0 = fTensor_lstmlstmcell2recurrentkernel0.data(); +std::vector fTensor_lstmPartitionedCall1 = std::vector(6); +float * tensor_lstmPartitionedCall1 = fTensor_lstmPartitionedCall1.data(); +std::vector fTensor_reshapeReshape0 = std::vector(4); +float * tensor_reshapeReshape0 = fTensor_reshapeReshape0.data(); + +std::vector fVec_op_1_input = std::vector(4); +std::vector fVec_op_1_initial_hidden_state = std::vector(3); +std::vector fVec_op_1_initial_cell_state = std::vector(3); +std::vector fVec_op_1_ff_input_gate = std::vector(6); +std::vector fVec_op_1_ff_output_gate = std::vector(6); +std::vector fVec_op_1_ff_cell_gate = std::vector(6); +std::vector fVec_op_1_ff_forget_gate = std::vector(6); +std::vector fVec_op_1_input_gate = std::vector(6); +std::vector fVec_op_1_output_gate = std::vector(6); +std::vector fVec_op_1_cell_gate = std::vector(6); +std::vector fVec_op_1_forget_gate = std::vector(6); +std::vector fVec_op_1_cell_state = std::vector(6); +std::vector fVec_op_1_new_cell_state = std::vector(6); +std::vector fVec_op_1_hidden_state = std::vector(6); + + +Session(std::string filename ="") { + if (filename.empty()) filename = "LSTMtest.dat"; + std::ifstream f; + f.open(filename); + if (!f.is_open()){ + throw std::runtime_error("tmva-sofie failed to open file for input weights"); + } + std::string tensor_name; + int length; + f >> tensor_name >> length; + if (tensor_name != "tensor_lstmlstmcell2bias0" ) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor name; expected name is tensor_lstmlstmcell2bias0 , read " + tensor_name; + throw std::runtime_error(err_msg); + } + if (length != 24) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor size; expected size is 24 , read " + std::to_string(length) ; + throw std::runtime_error(err_msg); + } + for (int i =0; i < length; ++i) + f >> tensor_lstmlstmcell2bias0[i]; + f >> tensor_name >> length; + if (tensor_name != "tensor_lstmlstmcell2kernel0" ) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor name; expected name is tensor_lstmlstmcell2kernel0 , read " + tensor_name; + throw std::runtime_error(err_msg); + } + if (length != 24) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor size; expected size is 24 , read " + std::to_string(length) ; + throw std::runtime_error(err_msg); + } + for (int i =0; i < length; ++i) + f >> tensor_lstmlstmcell2kernel0[i]; + f >> tensor_name >> length; + if (tensor_name != "tensor_lstmlstmcell2recurrentkernel0" ) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor name; expected name is tensor_lstmlstmcell2recurrentkernel0 , read " + tensor_name; + throw std::runtime_error(err_msg); + } + if (length != 36) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor size; expected size is 36 , read " + std::to_string(length) ; + throw std::runtime_error(err_msg); + } + for (int i =0; i < length; ++i) + f >> tensor_lstmlstmcell2recurrentkernel0[i]; + f.close(); +} + +std::vector infer(float* tensor_reshapeinput){ + ///--------Reshape operator + + std::copy( tensor_reshapeinput, tensor_reshapeinput + 4, tensor_reshapeReshape0); + float * op_1_input = fVec_op_1_input.data(); + for(size_t seq = 0; seq < 2; seq++) { + for(size_t batch = 0; batch < 1; batch++) { + for(size_t i = 0; i < 2; i++) { + op_1_input[seq * 2 + batch * 2 + i] = tensor_reshapeReshape0[batch * 4 + seq * 2 + i]; + } + } + } + float * op_1_ff_input_gate = fVec_op_1_ff_input_gate.data(); + float * op_1_ff_output_gate = fVec_op_1_ff_output_gate.data(); + float * op_1_ff_cell_gate = fVec_op_1_ff_cell_gate.data(); + float * op_1_ff_forget_gate = fVec_op_1_ff_forget_gate.data(); + float * op_1_input_gate = fVec_op_1_input_gate.data(); + float * op_1_output_gate = fVec_op_1_output_gate.data(); + float * op_1_cell_gate = fVec_op_1_cell_gate.data(); + float * op_1_forget_gate = fVec_op_1_forget_gate.data(); + float * op_1_cell_state = fVec_op_1_cell_state.data(); + float * op_1_new_cell_state = fVec_op_1_new_cell_state.data(); + float * op_1_hidden_state = fVec_op_1_hidden_state.data(); + char op_1_transA = 'N'; + char op_1_transB = 'T'; + int op_1_m = 2; + int op_1_n = 3; + int op_1_k = 2; + float op_1_alpha = 1.; + float op_1_beta = 0.; + int op_1_bias_size = 6; + int op_1_incx = 1; + int op_1_incy = 1; + BLAS::sgemm_(&op_1_transB, &op_1_transA, &op_1_n, &op_1_m, &op_1_k, &op_1_alpha, tensor_lstmlstmcell2kernel0, &op_1_k, op_1_input, &op_1_k, &op_1_beta, op_1_ff_input_gate, &op_1_n); + BLAS::sgemm_(&op_1_transB, &op_1_transA, &op_1_n, &op_1_m, &op_1_k, &op_1_alpha, tensor_lstmlstmcell2kernel0 + 6, &op_1_k, op_1_input, &op_1_k, &op_1_beta, op_1_ff_output_gate, &op_1_n); + BLAS::sgemm_(&op_1_transB, &op_1_transA, &op_1_n, &op_1_m, &op_1_k, &op_1_alpha, tensor_lstmlstmcell2kernel0 + 18, &op_1_k, op_1_input, &op_1_k, &op_1_beta, op_1_ff_cell_gate, &op_1_n); + BLAS::sgemm_(&op_1_transB, &op_1_transA, &op_1_n, &op_1_m, &op_1_k, &op_1_alpha, tensor_lstmlstmcell2kernel0 + 12, &op_1_k, op_1_input, &op_1_k, &op_1_beta, op_1_ff_forget_gate, &op_1_n); + BLAS::saxpy_(&op_1_bias_size, &op_1_alpha, tensor_lstmlstmcell2bias0, &op_1_incx, op_1_ff_input_gate, &op_1_incy); + BLAS::saxpy_(&op_1_bias_size, &op_1_alpha, tensor_lstmlstmcell2bias0 + 6, &op_1_incx, op_1_ff_output_gate, &op_1_incy); + BLAS::saxpy_(&op_1_bias_size, &op_1_alpha, tensor_lstmlstmcell2bias0 + 18, &op_1_incx, op_1_ff_cell_gate, &op_1_incy); + BLAS::saxpy_(&op_1_bias_size, &op_1_alpha, tensor_lstmlstmcell2bias0 + 12, &op_1_incx, op_1_ff_forget_gate, &op_1_incy); + for (size_t seq = 0; seq < 2; seq++) { + size_t ff_offset = seq * 3; + size_t gate_offset = seq * 3; + std::copy(op_1_ff_input_gate + ff_offset, op_1_ff_input_gate + ff_offset + 3, op_1_input_gate + gate_offset); + std::copy(op_1_ff_output_gate + ff_offset, op_1_ff_output_gate + ff_offset + 3, op_1_output_gate + gate_offset); + std::copy(op_1_ff_cell_gate + ff_offset, op_1_ff_cell_gate + ff_offset + 3, op_1_cell_gate + gate_offset); + std::copy(op_1_ff_forget_gate + ff_offset, op_1_ff_forget_gate + ff_offset + 3, op_1_forget_gate + gate_offset); + } + for (size_t seq = 0; seq < 2; seq++) { + size_t index = seq; + int m2 = 1; + size_t offset = index * 3; + if (seq == 0) { + } else { + size_t previous_offset = (seq - 1) * 3; + BLAS::sgemm_(&op_1_transB, &op_1_transA, &op_1_n, &m2, &op_1_n, &op_1_alpha, tensor_lstmlstmcell2recurrentkernel0, &op_1_n, op_1_hidden_state + previous_offset, &op_1_n, &op_1_alpha, op_1_input_gate + offset, &op_1_n); + BLAS::sgemm_(&op_1_transB, &op_1_transA, &op_1_n, &m2, &op_1_n, &op_1_alpha, tensor_lstmlstmcell2recurrentkernel0 + 9, &op_1_n, op_1_hidden_state + previous_offset, &op_1_n, &op_1_alpha, op_1_output_gate + offset, &op_1_n); + BLAS::sgemm_(&op_1_transB, &op_1_transA, &op_1_n, &m2, &op_1_n, &op_1_alpha, tensor_lstmlstmcell2recurrentkernel0 + 27, &op_1_n, op_1_hidden_state + previous_offset, &op_1_n, &op_1_alpha, op_1_cell_gate + offset, &op_1_n); + BLAS::sgemm_(&op_1_transB, &op_1_transA, &op_1_n, &m2, &op_1_n, &op_1_alpha, tensor_lstmlstmcell2recurrentkernel0 + 18, &op_1_n, op_1_hidden_state + previous_offset, &op_1_n, &op_1_alpha, op_1_forget_gate + offset, &op_1_n); + } + for (size_t i = offset; i < offset + 3; i++) { + float ex = exp(-2 * op_1_cell_gate[i]); + op_1_cell_gate[i] = (1. - ex) / (1. + ex); + } + for (size_t i = offset; i < offset + 3; i++) { + op_1_input_gate[i] = 1. / (1. + exp(-op_1_input_gate[i])); + } + for (size_t i = offset; i < offset + 3; i++) { + op_1_forget_gate[i] = 1. / (1. + exp(-op_1_forget_gate[i])); + } + for (size_t i = offset; i < offset + 3; i++) { + op_1_cell_state[i] = op_1_input_gate[i] * op_1_cell_gate[i]; + } + if (seq == 0) { + } else { + size_t previous_offset = (seq - 1) * 3; + for (size_t i = 0; i < 3; i++) { + op_1_cell_state[i + offset] += op_1_forget_gate[i + offset] * op_1_cell_state[i + previous_offset]; + } + } + for (size_t i = offset; i < offset + 3; i++) { + op_1_output_gate[i] = 1. / (1. + exp(-op_1_output_gate[i])); + } + std::copy(op_1_cell_state + offset, op_1_cell_state + offset + 3, op_1_new_cell_state + offset); + for (size_t i = offset; i < offset + 3; i++) { + float ex = exp(-2 * op_1_new_cell_state[i]); + op_1_new_cell_state[i] = (1. - ex) / (1. + ex); + } + for (size_t i = offset; i < offset + 3; i++) { + op_1_hidden_state[i] = op_1_output_gate[i] * op_1_new_cell_state[i]; + } + } + for (size_t seq = 0; seq < 2; seq++) { + for (size_t batch = 0; batch < 1; batch++) { + size_t offset = seq * 3 + 0 + batch * 3; + size_t y_offset = batch * 6 + seq * 3 + 0; + std::copy(op_1_hidden_state + offset, op_1_hidden_state + offset + 3, tensor_lstmPartitionedCall1 + y_offset); + } + } + std::vector ret (tensor_lstmPartitionedCall1, tensor_lstmPartitionedCall1 + 6); + return ret; +} +}; +} //TMVA_SOFIE_LSTMtest + +#endif // ROOT_TMVA_SOFIE_LSTMTEST diff --git a/tmva/sofie/test/KerasParserTest/LSTMtestWithBias.dat b/tmva/sofie/test/KerasParserTest/LSTMtestWithBias.dat new file mode 100644 index 0000000000000..a1155c98af7cd --- /dev/null +++ b/tmva/sofie/test/KerasParserTest/LSTMtestWithBias.dat @@ -0,0 +1,6 @@ +tensor_lstm2lstmcellbias0 24 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +tensor_lstm2lstmcellrecurrentkernel0 36 +0.134114385 -0.243408352 -0.415026516 -0.410577744 -0.2369854 -0.284779549 0.199269027 -0.0937441587 -0.231692672 -0.304940313 -0.443754971 0.211114287 0.171424448 -0.100915238 -0.0500769317 0.216174766 0.268839657 0.142136872 0.283734679 0.0382566787 -0.155324295 0.493741512 -0.269695401 -0.331621766 0.227207437 0.081721805 -0.260853797 0.293202788 -0.650801301 0.376938581 0.376072288 0.213427305 0.463559747 0.0362912342 -0.215531707 0.258028567 +tensor_lstm2lstmcellkernel0 24 +0.267839134 -0.474893868 -0.386883676 0.498873591 0.564328194 -0.185036927 0.142744601 -0.0718331337 0.653316379 0.308048248 0.582022667 0.0316858292 0.131661832 0.194284618 -0.0724460483 -0.109706819 -0.646795452 0.522916794 -0.193377465 0.181043744 -0.391892016 -0.240450889 0.445019364 -0.189287961 diff --git a/tmva/sofie/test/KerasParserTest/LSTMtestWithBias.h5 b/tmva/sofie/test/KerasParserTest/LSTMtestWithBias.h5 new file mode 100644 index 0000000000000000000000000000000000000000..734e0ad222722704c356c945d58f99b85363611d GIT binary patch literal 14776 zcmeHOU2GLa6rKyB1&V16#-fOqYw#CKTToh)Zc7xbh6>>)5&@U#z0=#(y}Q@lz0hi^ zeb5M|F&c?6Mhzy4nn2P-9(d_OG%@}ph8Q2z#DqkjG$ux0crfCenRD*X-k$oz)6!meTH^M zSmfM{u+4qK%8mrSY$UtvCx-JZThU&lcHPVdq_2SdtJz}K#GViy_szY+^DWnr?Mo5~ z)f2o)>!2-{^qB{GpfN*RGwVlrO-kMnPd_1?%#3oB3qvlE zgMm)<^a^28C=Xn;B(Fuu3p{Q)mXkG65sJn(YvB&lD$) zFV&1mcrN-@P6 z#fd3xc3cHk9Y=nK(5;9gdgO}A@hvTJuO z)i!S3Hdse5?F)63ss)-Sf`aFmddboPRtcv-lz<22pk`eYHne@*%K$TB?E~9z!7ghm zIG$^lHw0Erm^uEq>s4@B0SHYdn{%xU zuoQe@4q3cRd%1}_((~m82Zm}rB`pk0v~rCfuwBm$wma6a>*XSd`a+ow*c_}unHG&@ zZt{W=H|si8-jS8Nt<<5jy+cZiN(bdXgvnrMi3hoT5o{xAupRWpO6gqfXnln$Uk!pG5urmI%bf>H<)!?=?d+Z@61i=r~ zr*m;hNjES33sxD=bCMFZ_jMT_HFMI6NVedfIuv@^?Ir3RopQ{KNb@l%Qm?|02)Nm) zsy&jZs$II;0}UeYTekAzPH|VqTG_&Le%9l~U_34thV~`e&S@W~y4oM*dKIHJETVky z7|H7GU$})9<*eoX2 z&)+uAx0dH`;fz|!x7N!mH+8rN?h0d?t^)2$_G=a z?zI>s;I6Cg$5@9LsFn}w`p!)&R*5j|Rj_sxw@CkQF>aknYW|tx)+k=kamdO+;@V}8 zKs0WVJ+&>boO)TJM-eD)^jET-b1iz_nnJrJxlublXTh_Kv0fZFokAeczh{aAr*75! zwEnXU##ukzXdIyJJ&E>107a9pHIulKnUcZe&q)#xDWh@VINB}si`sFddt5~X5;9}2 zFhk%H>^4P7%+U?>-MSh1qxHG+BmtbQ$(!(-Pm*2N#IAc5`RB0I1_qu(a~jYFe{&Oaw_X~b1JZ?$zc=DS>|_oNOOZ(sXqcxqou z->$E(G+uw~;B@-niWA`#8^UW2e-Fj) z`TGXr%+b@+r+=8&w?ExueB8Y^Joe4Hu>ZzarzeiTWw6f^y#w3l8+~iP4%-)PG>)u) z#hCi?Powq25##8x*Nn-@lg6^ci+gWg{$}{ofmOyYyLKB3`p3e-BVPF1pC_j0f3&ps zxockxKiU0$@6T`Ca$;)oQDeukUE%kue+&;F`D*&n_YN34pZO*{^wlfjxBaK#V|) zK#V{Mftk*gl-HtjWp({R&y}Niu6((qjC#Ac=gMk4^o==z`98vd$_qbNH{GEpPA6D` zVL!cG5@o&bCucB^Jb_y3`~$21|5`4I*~Cg*ECizY2fB|PLOUY8@OsNOQ^P+jDQ_PA z{!#k=SUd0En(V`GF8yrHLbm2C20n@d)oQg=H_4WI{?px~*(b19>^}%ZT+~FMp8uSt SL>~6~xBMsiUGTs1pT7ZzmHc7= literal 0 HcmV?d00001 diff --git a/tmva/sofie/test/KerasParserTest/LSTMtestWithBias.hxx b/tmva/sofie/test/KerasParserTest/LSTMtestWithBias.hxx new file mode 100644 index 0000000000000..fd1ab221b8a70 --- /dev/null +++ b/tmva/sofie/test/KerasParserTest/LSTMtestWithBias.hxx @@ -0,0 +1,197 @@ +//Code generated automatically by TMVA for Inference of Model file [LSTMtestWithBias.h5] at [Thu Aug 24 08:55:51 202] + +#ifndef ROOT_TMVA_SOFIE_LSTMTESTWITHBIAS +#define ROOT_TMVA_SOFIE_LSTMTESTWITHBIAS + +#include +#include "TMVA/SOFIE_common.hxx" +#include + +namespace TMVA_SOFIE_LSTMtestWithBias{ +namespace BLAS{ + extern "C" void saxpy_(const int * n, const float * alpha, const float * x, + const int * incx, float * y, const int * incy); + extern "C" void sgemm_(const char * transa, const char * transb, const int * m, const int * n, const int * k, + const float * alpha, const float * A, const int * lda, const float * B, const int * ldb, + const float * beta, float * C, const int * ldc); +}//BLAS +struct Session { +std::vector fTensor_lstm2lstmcellbias0 = std::vector(24); +float * tensor_lstm2lstmcellbias0 = fTensor_lstm2lstmcellbias0.data(); +std::vector fTensor_lstm2lstmcellrecurrentkernel0 = std::vector(36); +float * tensor_lstm2lstmcellrecurrentkernel0 = fTensor_lstm2lstmcellrecurrentkernel0.data(); +std::vector fTensor_lstm2lstmcellkernel0 = std::vector(24); +float * tensor_lstm2lstmcellkernel0 = fTensor_lstm2lstmcellkernel0.data(); +std::vector fTensor_lstm2PartitionedCall1 = std::vector(6); +float * tensor_lstm2PartitionedCall1 = fTensor_lstm2PartitionedCall1.data(); +std::vector fTensor_reshape7Reshape0 = std::vector(4); +float * tensor_reshape7Reshape0 = fTensor_reshape7Reshape0.data(); + +std::vector fVec_op_1_input = std::vector(4); +std::vector fVec_op_1_initial_hidden_state = std::vector(3); +std::vector fVec_op_1_initial_cell_state = std::vector(3); +std::vector fVec_op_1_ff_input_gate = std::vector(6); +std::vector fVec_op_1_ff_output_gate = std::vector(6); +std::vector fVec_op_1_ff_cell_gate = std::vector(6); +std::vector fVec_op_1_ff_forget_gate = std::vector(6); +std::vector fVec_op_1_input_gate = std::vector(6); +std::vector fVec_op_1_output_gate = std::vector(6); +std::vector fVec_op_1_cell_gate = std::vector(6); +std::vector fVec_op_1_forget_gate = std::vector(6); +std::vector fVec_op_1_cell_state = std::vector(6); +std::vector fVec_op_1_new_cell_state = std::vector(6); +std::vector fVec_op_1_hidden_state = std::vector(6); + + +Session(std::string filename ="") { + if (filename.empty()) filename = "LSTMtestWithBias.dat"; + std::ifstream f; + f.open(filename); + if (!f.is_open()){ + throw std::runtime_error("tmva-sofie failed to open file for input weights"); + } + std::string tensor_name; + int length; + f >> tensor_name >> length; + if (tensor_name != "tensor_lstm2lstmcellbias0" ) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor name; expected name is tensor_lstm2lstmcellbias0 , read " + tensor_name; + throw std::runtime_error(err_msg); + } + if (length != 24) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor size; expected size is 24 , read " + std::to_string(length) ; + throw std::runtime_error(err_msg); + } + for (int i =0; i < length; ++i) + f >> tensor_lstm2lstmcellbias0[i]; + f >> tensor_name >> length; + if (tensor_name != "tensor_lstm2lstmcellrecurrentkernel0" ) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor name; expected name is tensor_lstm2lstmcellrecurrentkernel0 , read " + tensor_name; + throw std::runtime_error(err_msg); + } + if (length != 36) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor size; expected size is 36 , read " + std::to_string(length) ; + throw std::runtime_error(err_msg); + } + for (int i =0; i < length; ++i) + f >> tensor_lstm2lstmcellrecurrentkernel0[i]; + f >> tensor_name >> length; + if (tensor_name != "tensor_lstm2lstmcellkernel0" ) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor name; expected name is tensor_lstm2lstmcellkernel0 , read " + tensor_name; + throw std::runtime_error(err_msg); + } + if (length != 24) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor size; expected size is 24 , read " + std::to_string(length) ; + throw std::runtime_error(err_msg); + } + for (int i =0; i < length; ++i) + f >> tensor_lstm2lstmcellkernel0[i]; + f.close(); +} + +std::vector infer(float* tensor_reshape7input){ + ///--------Reshape operator + + std::copy( tensor_reshape7input, tensor_reshape7input + 4, tensor_reshape7Reshape0); + float * op_1_input = fVec_op_1_input.data(); + for(size_t seq = 0; seq < 2; seq++) { + for(size_t batch = 0; batch < 1; batch++) { + for(size_t i = 0; i < 2; i++) { + op_1_input[seq * 2 + batch * 2 + i] = tensor_reshape7Reshape0[batch * 4 + seq * 2 + i]; + } + } + } + float * op_1_ff_input_gate = fVec_op_1_ff_input_gate.data(); + float * op_1_ff_output_gate = fVec_op_1_ff_output_gate.data(); + float * op_1_ff_cell_gate = fVec_op_1_ff_cell_gate.data(); + float * op_1_ff_forget_gate = fVec_op_1_ff_forget_gate.data(); + float * op_1_input_gate = fVec_op_1_input_gate.data(); + float * op_1_output_gate = fVec_op_1_output_gate.data(); + float * op_1_cell_gate = fVec_op_1_cell_gate.data(); + float * op_1_forget_gate = fVec_op_1_forget_gate.data(); + float * op_1_cell_state = fVec_op_1_cell_state.data(); + float * op_1_new_cell_state = fVec_op_1_new_cell_state.data(); + float * op_1_hidden_state = fVec_op_1_hidden_state.data(); + char op_1_transA = 'N'; + char op_1_transB = 'T'; + int op_1_m = 2; + int op_1_n = 3; + int op_1_k = 2; + float op_1_alpha = 1.; + float op_1_beta = 0.; + int op_1_bias_size = 6; + int op_1_incx = 1; + int op_1_incy = 1; + BLAS::sgemm_(&op_1_transB, &op_1_transA, &op_1_n, &op_1_m, &op_1_k, &op_1_alpha, tensor_lstm2lstmcellkernel0, &op_1_k, op_1_input, &op_1_k, &op_1_beta, op_1_ff_input_gate, &op_1_n); + BLAS::sgemm_(&op_1_transB, &op_1_transA, &op_1_n, &op_1_m, &op_1_k, &op_1_alpha, tensor_lstm2lstmcellkernel0 + 6, &op_1_k, op_1_input, &op_1_k, &op_1_beta, op_1_ff_output_gate, &op_1_n); + BLAS::sgemm_(&op_1_transB, &op_1_transA, &op_1_n, &op_1_m, &op_1_k, &op_1_alpha, tensor_lstm2lstmcellkernel0 + 18, &op_1_k, op_1_input, &op_1_k, &op_1_beta, op_1_ff_cell_gate, &op_1_n); + BLAS::sgemm_(&op_1_transB, &op_1_transA, &op_1_n, &op_1_m, &op_1_k, &op_1_alpha, tensor_lstm2lstmcellkernel0 + 12, &op_1_k, op_1_input, &op_1_k, &op_1_beta, op_1_ff_forget_gate, &op_1_n); + BLAS::saxpy_(&op_1_bias_size, &op_1_alpha, tensor_lstm2lstmcellbias0, &op_1_incx, op_1_ff_input_gate, &op_1_incy); + BLAS::saxpy_(&op_1_bias_size, &op_1_alpha, tensor_lstm2lstmcellbias0 + 6, &op_1_incx, op_1_ff_output_gate, &op_1_incy); + BLAS::saxpy_(&op_1_bias_size, &op_1_alpha, tensor_lstm2lstmcellbias0 + 18, &op_1_incx, op_1_ff_cell_gate, &op_1_incy); + BLAS::saxpy_(&op_1_bias_size, &op_1_alpha, tensor_lstm2lstmcellbias0 + 12, &op_1_incx, op_1_ff_forget_gate, &op_1_incy); + for (size_t seq = 0; seq < 2; seq++) { + size_t ff_offset = seq * 3; + size_t gate_offset = seq * 3; + std::copy(op_1_ff_input_gate + ff_offset, op_1_ff_input_gate + ff_offset + 3, op_1_input_gate + gate_offset); + std::copy(op_1_ff_output_gate + ff_offset, op_1_ff_output_gate + ff_offset + 3, op_1_output_gate + gate_offset); + std::copy(op_1_ff_cell_gate + ff_offset, op_1_ff_cell_gate + ff_offset + 3, op_1_cell_gate + gate_offset); + std::copy(op_1_ff_forget_gate + ff_offset, op_1_ff_forget_gate + ff_offset + 3, op_1_forget_gate + gate_offset); + } + for (size_t seq = 0; seq < 2; seq++) { + size_t index = seq; + int m2 = 1; + size_t offset = index * 3; + if (seq == 0) { + } else { + size_t previous_offset = (seq - 1) * 3; + BLAS::sgemm_(&op_1_transB, &op_1_transA, &op_1_n, &m2, &op_1_n, &op_1_alpha, tensor_lstm2lstmcellrecurrentkernel0, &op_1_n, op_1_hidden_state + previous_offset, &op_1_n, &op_1_alpha, op_1_input_gate + offset, &op_1_n); + BLAS::sgemm_(&op_1_transB, &op_1_transA, &op_1_n, &m2, &op_1_n, &op_1_alpha, tensor_lstm2lstmcellrecurrentkernel0 + 9, &op_1_n, op_1_hidden_state + previous_offset, &op_1_n, &op_1_alpha, op_1_output_gate + offset, &op_1_n); + BLAS::sgemm_(&op_1_transB, &op_1_transA, &op_1_n, &m2, &op_1_n, &op_1_alpha, tensor_lstm2lstmcellrecurrentkernel0 + 27, &op_1_n, op_1_hidden_state + previous_offset, &op_1_n, &op_1_alpha, op_1_cell_gate + offset, &op_1_n); + BLAS::sgemm_(&op_1_transB, &op_1_transA, &op_1_n, &m2, &op_1_n, &op_1_alpha, tensor_lstm2lstmcellrecurrentkernel0 + 18, &op_1_n, op_1_hidden_state + previous_offset, &op_1_n, &op_1_alpha, op_1_forget_gate + offset, &op_1_n); + } + for (size_t i = offset; i < offset + 3; i++) { + float ex = exp(-2 * op_1_cell_gate[i]); + op_1_cell_gate[i] = (1. - ex) / (1. + ex); + } + for (size_t i = offset; i < offset + 3; i++) { + op_1_input_gate[i] = 1. / (1. + exp(-op_1_input_gate[i])); + } + for (size_t i = offset; i < offset + 3; i++) { + op_1_forget_gate[i] = 1. / (1. + exp(-op_1_forget_gate[i])); + } + for (size_t i = offset; i < offset + 3; i++) { + op_1_cell_state[i] = op_1_input_gate[i] * op_1_cell_gate[i]; + } + if (seq == 0) { + } else { + size_t previous_offset = (seq - 1) * 3; + for (size_t i = 0; i < 3; i++) { + op_1_cell_state[i + offset] += op_1_forget_gate[i + offset] * op_1_cell_state[i + previous_offset]; + } + } + for (size_t i = offset; i < offset + 3; i++) { + op_1_output_gate[i] = 1. / (1. + exp(-op_1_output_gate[i])); + } + std::copy(op_1_cell_state + offset, op_1_cell_state + offset + 3, op_1_new_cell_state + offset); + for (size_t i = offset; i < offset + 3; i++) { + float ex = exp(-2 * op_1_new_cell_state[i]); + op_1_new_cell_state[i] = (1. - ex) / (1. + ex); + } + for (size_t i = offset; i < offset + 3; i++) { + op_1_hidden_state[i] = op_1_output_gate[i] * op_1_new_cell_state[i]; + } + } + for (size_t seq = 0; seq < 2; seq++) { + for (size_t batch = 0; batch < 1; batch++) { + size_t offset = seq * 3 + 0 + batch * 3; + size_t y_offset = batch * 6 + seq * 3 + 0; + std::copy(op_1_hidden_state + offset, op_1_hidden_state + offset + 3, tensor_lstm2PartitionedCall1 + y_offset); + } + } + std::vector ret (tensor_lstm2PartitionedCall1, tensor_lstm2PartitionedCall1 + 6); + return ret; +} +}; +} //TMVA_SOFIE_LSTMtestWithBias + +#endif // ROOT_TMVA_SOFIE_LSTMTESTWITHBIAS diff --git a/tmva/sofie/test/KerasParserTest/LeakyRelutest.dat b/tmva/sofie/test/KerasParserTest/LeakyRelutest.dat new file mode 100644 index 0000000000000..8276967900c7e --- /dev/null +++ b/tmva/sofie/test/KerasParserTest/LeakyRelutest.dat @@ -0,0 +1,4 @@ +tensor_dense15bias0 64 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +tensor_dense15kernel0 448 +-0.194057927 0.266561955 -0.0788303167 0.176691771 -0.156864628 -0.288052589 0.285021454 0.186899662 -0.0761791319 -0.163851053 0.222708732 -0.219928026 0.0151193142 -0.283780903 -0.217534587 -0.0964736938 0.0775035322 -0.132055923 0.133033991 0.007938236 0.0822689831 0.0490554571 0.0590008199 0.252343744 0.252704352 0.227679223 -0.0284726322 -0.0581537187 -0.181250125 -0.0989709496 0.106530219 -0.165837646 -0.278227419 -0.0125347078 -0.0554400831 0.210606188 0.275991529 0.21319446 -0.166118562 0.19268015 -0.285612106 0.00926932693 -0.242022738 -0.0638727844 -0.0317430794 0.248601645 0.157372594 -0.234845355 -0.0412217826 0.188557118 -0.0884441733 0.126971394 0.144073337 -0.136173546 0.106759161 -0.262979895 0.276812822 -0.247560352 -0.0106068254 0.0850910246 0.158749193 -0.264805287 -0.00220942497 -0.108856499 -0.281703025 -0.0267523229 -0.221773416 0.0831103325 -0.136749074 -0.208149999 -0.0163876414 0.000343203545 -0.116423592 0.0191324055 -0.13983047 0.00234386325 0.120598525 0.142675847 -0.212022483 -0.210903347 0.0226421058 0.0697486699 -0.110400483 0.0151578486 -0.110566959 -0.00108939409 0.0464670658 -0.00599089265 0.0965960324 -0.228138924 -0.0766896605 -0.148901209 -0.139600009 0.28496322 -0.0535810143 -0.121510431 0.0406341255 0.232090682 -0.213700444 0.198865592 0.155374765 0.186095834 -0.127928048 -0.24644205 -0.0970672518 -0.0737360716 -0.267595351 0.0726677477 0.240318209 0.244475693 0.00177207589 -0.121977285 0.0163960457 -0.176797122 0.124035895 0.176837325 0.128851026 0.274583846 -0.0192754567 -0.236257941 -0.0672542751 -0.0956066549 0.0809546113 0.050799191 0.243655592 -0.261742264 0.169186294 -0.0808137804 0.17606765 0.211884826 0.162822723 -0.0587886572 0.143209457 0.089345932 -0.16634804 0.199322671 -0.0912965536 -0.113964945 -0.112553135 -0.198360801 -0.188099533 -0.112956583 -0.236210868 -0.0892071128 -0.0816318989 -0.0217606425 -0.227300912 -0.1018731 -0.15067558 -0.0999968499 -0.0181821287 -0.0426660329 -0.163214043 -0.000328093767 0.0685759187 -0.186032683 0.259925395 -0.251711249 0.0903107822 -0.130710304 -0.184049636 0.262125999 -0.281752169 0.14648056 0.280792087 0.0560608208 0.168497086 -0.138620332 -0.105352953 0.242126018 0.286571413 0.0872356296 0.208716124 -0.0466028303 0.0708791614 0.184774965 0.0940398574 -0.0157865286 -0.109078273 -0.110395625 -0.219911307 -0.0621433854 0.0773447454 0.119551986 -0.20257996 -0.046614334 -0.272466302 0.128182143 0.119731963 0.0794707835 0.213700145 0.241295129 0.209077835 0.245434076 -0.0505202115 -0.251345783 -0.245148063 0.0344991386 0.0926997066 -0.024071753 0.126446009 0.0893338919 -0.208601624 0.23155722 -0.0687500238 -0.182895377 -0.0723729134 0.118190467 -0.0976304561 -0.287340999 0.246528715 -0.0592194051 -0.126815915 0.0346927047 -0.0567209721 0.194322765 0.229114503 -0.0686837584 -0.175575763 -0.258036613 0.000207453966 -0.277919412 0.236501008 0.0188214183 0.000833719969 -0.0887717158 0.242900997 0.132848114 -0.0928997993 0.193257481 -0.209632993 -0.00817278028 -0.0471932739 -0.201213896 -0.119965121 -0.0934589803 0.0300266743 -0.0462892056 0.060167402 0.0518101156 0.0584365726 0.00425589085 0.172187984 0.00631824136 0.272503763 -0.157282069 -0.152925193 -0.0219891071 0.13676244 -0.138835132 -0.258901864 -0.247045308 -0.172998816 0.0794769526 0.0924948454 -0.19957307 0.198106855 0.173570335 -0.286759585 -0.0395619869 0.198090702 -0.227053493 -0.0130538344 -0.13254787 -0.25072524 -0.136666045 0.245650738 -0.267881185 0.0950976312 0.0672541261 0.212708682 -0.0436931252 0.161719948 0.172676444 -0.0752610713 0.120963246 0.148052871 -0.252601445 0.0380853117 0.0474682152 0.127889931 -0.0470868796 -0.148858249 -0.175144821 -0.00201195478 0.103534222 0.0452407002 0.0184170008 0.0855573416 -0.0253730714 0.274885505 -0.0215546787 0.215271384 -0.147573754 -0.000832885504 -0.109363765 0.0995247364 -0.0612674057 0.00438931584 0.197975039 0.22235778 -0.0627118647 0.152540684 -0.180187136 -0.07972835 0.285979718 -0.193559736 -0.0613078773 -0.227108032 -0.124022782 0.0351347029 0.175188005 -0.225882515 0.107671887 -0.118523166 0.25619182 0.206840217 -0.152544215 -0.114983156 -0.231637418 -0.157901749 -0.181874663 0.0620140731 0.0613299906 0.2111049 0.104807913 -0.244948328 0.162073374 0.100979865 0.141334534 -0.158944637 -0.20744729 0.0383128524 -0.253540218 0.275383025 -0.179003283 0.0452746153 -0.272328287 0.0821680725 0.146991342 0.0624286532 -0.135134265 -0.153124258 -0.0804967731 0.0589342713 0.247665197 0.207104832 -0.11924009 0.234127849 0.114797831 -0.267599851 -0.226243764 -0.0931157768 0.0704770386 0.109808654 0.0658330917 0.00376906991 -0.233815983 -0.24958998 -0.11935243 0.196961045 -0.137426019 -0.220674545 -0.265026569 -0.10269025 -0.0132784843 -0.0486678779 0.0587407053 -0.2599383 0.114162266 0.0250317454 0.00343540311 -0.134294033 0.214233726 -0.114990845 -0.122824654 0.147093445 -0.141544744 0.203694999 -0.0809503198 0.250818878 -0.149430797 -0.201993957 -0.130216613 -0.101704001 -0.0102880895 -0.215397656 -0.0485288501 0.190303981 0.27360931 0.0482801795 0.246423393 0.164949119 -0.241043478 -0.120764598 -0.183832631 -0.227920815 0.0985611379 -0.279759198 -0.114031211 0.0438315272 -0.084304437 -0.0983051807 -0.181380361 0.209635228 0.232449263 -0.253552139 0.283985227 -0.0385597944 -0.280721694 0.00364139676 -0.234616369 0.0240770876 -0.226239175 0.220461994 0.249400407 0.181165367 0.188824177 -0.134295419 0.0237262547 0.264991075 0.0461855233 0.254443377 -0.232668936 -0.0636679083 -0.133008838 0.155760825 0.105394185 -0.269737482 -0.247865438 0.0360795856 0.0737304688 0.191978455 0.233929127 -0.228276223 -0.0410486609 -0.0487378836 -0.151891664 -0.218247294 -0.263206869 0.235883027 -0.278145641 -0.164391249 0.0852204859 -0.0722954869 0.218666464 -0.157263905 -0.252690226 diff --git a/tmva/sofie/test/KerasParserTest/LeakyRelutest.h5 b/tmva/sofie/test/KerasParserTest/LeakyRelutest.h5 new file mode 100644 index 0000000000000000000000000000000000000000..eb53f996636aafb311f293cc428314b6d37417df GIT binary patch literal 13456 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 +#include +#include "TMVA/SOFIE_common.hxx" +#include + +namespace TMVA_SOFIE_LeakyRelutest{ +namespace BLAS{ + extern "C" void sgemm_(const char * transa, const char * transb, const int * m, const int * n, const int * k, + const float * alpha, const float * A, const int * lda, const float * B, const int * ldb, + const float * beta, float * C, const int * ldc); + extern "C" void sgemv_(const char * trans, const int * m, const int * n, const float * alpha, const float * A, + const int * lda, const float * X, const int * incx, const float * beta, const float * Y, const int * incy); +}//BLAS +struct Session { +std::vector fTensor_dense15bias0 = std::vector(64); +float * tensor_dense15bias0 = fTensor_dense15bias0.data(); +std::vector fTensor_dense15kernel0 = std::vector(448); +float * tensor_dense15kernel0 = fTensor_dense15kernel0.data(); +std::vector fTensor_dense15BiasAdd0 = std::vector(64); +float * tensor_dense15BiasAdd0 = fTensor_dense15BiasAdd0.data(); +std::vector fTensor_leakyreluLeakyRelu0 = std::vector(64); +float * tensor_leakyreluLeakyRelu0 = fTensor_leakyreluLeakyRelu0.data(); +std::vector fTensor_dense15bias0bcast = std::vector(64); +float * tensor_dense15bias0bcast = fTensor_dense15bias0bcast.data(); + + +Session(std::string filename ="") { + if (filename.empty()) filename = "LeakyRelutest.dat"; + std::ifstream f; + f.open(filename); + if (!f.is_open()){ + throw std::runtime_error("tmva-sofie failed to open file for input weights"); + } + std::string tensor_name; + int length; + f >> tensor_name >> length; + if (tensor_name != "tensor_dense15bias0" ) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor name; expected name is tensor_dense15bias0 , read " + tensor_name; + throw std::runtime_error(err_msg); + } + if (length != 64) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor size; expected size is 64 , read " + std::to_string(length) ; + throw std::runtime_error(err_msg); + } + for (int i =0; i < length; ++i) + f >> tensor_dense15bias0[i]; + f >> tensor_name >> length; + if (tensor_name != "tensor_dense15kernel0" ) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor name; expected name is tensor_dense15kernel0 , read " + tensor_name; + throw std::runtime_error(err_msg); + } + if (length != 448) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor size; expected size is 448 , read " + std::to_string(length) ; + throw std::runtime_error(err_msg); + } + for (int i =0; i < length; ++i) + f >> tensor_dense15kernel0[i]; + f.close(); + { + float * data = TMVA::Experimental::SOFIE::UTILITY::UnidirectionalBroadcast(tensor_dense15bias0,{ 64 }, { 1 , 64 }); + std::copy(data, data + 64, tensor_dense15bias0bcast); + delete [] data; + } +} + +std::vector infer(float* tensor_dense15input){ + +//--------- Gemm + char op_0_transA = 'n'; + char op_0_transB = 'n'; + int op_0_m = 1; + int op_0_n = 64; + int op_0_k = 7; + float op_0_alpha = 1; + float op_0_beta = 1; + int op_0_lda = 7; + int op_0_ldb = 64; + std::copy(tensor_dense15bias0bcast, tensor_dense15bias0bcast + 64, tensor_dense15BiasAdd0); + BLAS::sgemm_(&op_0_transB, &op_0_transA, &op_0_n, &op_0_m, &op_0_k, &op_0_alpha, tensor_dense15kernel0, &op_0_ldb, tensor_dense15input, &op_0_lda, &op_0_beta, tensor_dense15BiasAdd0, &op_0_n); + float op_1_alpha = 0.300000012; + +//------ LEAKY RELU + for (int id = 0; id < 64 ; id++){ + tensor_leakyreluLeakyRelu0[id] = ((tensor_dense15BiasAdd0[id] >= 0 )? tensor_dense15BiasAdd0[id] : op_1_alpha * tensor_dense15BiasAdd0[id]); + } + std::vector ret (tensor_leakyreluLeakyRelu0, tensor_leakyreluLeakyRelu0 + 64); + return ret; +} +}; +} //TMVA_SOFIE_LeakyRelutest + +#endif // ROOT_TMVA_SOFIE_LEAKYRELUTEST diff --git a/tmva/sofie/test/KerasParserTest/MLPtest.dat b/tmva/sofie/test/KerasParserTest/MLPtest.dat new file mode 100644 index 0000000000000..f0a63727ed707 --- /dev/null +++ b/tmva/sofie/test/KerasParserTest/MLPtest.dat @@ -0,0 +1,20 @@ +tensor_dense4bias0 2 +0 0 +tensor_dense3bias0 64 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +tensor_dense4kernel0 128 +-0.298785716 0.279279709 0.147424132 0.0158127546 -0.159431726 0.132032424 0.0835771561 -0.274953455 0.10661155 -0.240200862 0.228172481 -0.133330747 0.161848813 -0.174318358 -0.292626619 0.213901758 -0.0641928166 -0.0391198099 0.113355458 -0.157342225 0.213329613 -0.0298115313 0.280286431 -0.075745672 0.131559342 -0.281984776 0.253048241 -0.00195968151 -0.271499783 -0.27811408 0.247404575 -0.20433268 0.152180016 -0.0607252568 -0.0845460892 -0.146013364 0.0519336164 0.17072314 0.226993978 0.0493836105 -0.244987667 0.16205591 0.262384295 -0.1350739 -0.271391213 0.281769812 0.301208854 -0.270022601 0.121015042 0.20777005 -0.150065854 -0.215666771 0.231673121 -0.280108094 -0.0452793539 0.0439782739 -0.122508749 0.0861448944 0.146820277 0.168471813 -0.195941567 -0.157890067 0.23709172 0.0605123937 0.298072159 -0.269019783 -0.289464504 0.26655519 0.163855016 0.175336331 -0.21195063 -0.29207921 0.134754956 -0.0468965769 -0.0226168036 0.284415245 -0.179092526 0.0140020847 -0.000422388315 -0.229994074 -0.274368584 0.225560784 -0.293603748 -0.247253299 0.134454966 -0.117297381 -0.260135263 0.177824169 0.257857621 0.133277416 0.14951995 -0.28864333 -0.170398504 0.00341141224 -0.266741782 0.170972645 -0.0730661303 -0.177571207 -0.166101009 -0.11243847 0.0349839926 -0.0980427414 0.152756989 0.260075748 0.299617589 0.184868425 0.0928369164 0.271474481 -0.0231021941 0.0394059122 -0.0805578679 -0.232231304 -0.106821671 -0.142379597 -0.268180311 0.114023834 -0.291825503 -0.241023019 0.189732343 0.265102208 0.297131002 0.236552238 -0.0820010453 -0.17835483 -0.107067943 0.0255407691 -0.109203026 -0.15846543 +tensor_dense2bias0 64 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +tensor_dense1bias0 64 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +tensor_dense1kernel0 4096 +0.12031652 0.0841617435 0.122698888 -0.140096605 -0.0753749311 0.149574175 -0.196788609 0.165930524 -0.151730478 -0.212120578 0.0957749635 -0.14330411 0.0128545016 0.060958907 -0.0253325999 -0.118190371 0.182951704 0.180552647 -0.179614559 0.192497358 -0.179511741 -0.0484519452 -0.193001881 -0.142714158 0.178959772 -0.0376794934 0.11473985 -0.0737001002 -0.0801563561 0.202931508 0.00135180354 0.0880377144 -0.188027814 -0.164485812 -0.121622585 -0.206353486 -0.20686312 -0.167127848 -0.1307282 0.116498187 -0.158380821 -0.203953192 -0.0339668393 -0.164687648 -0.183957741 -0.0343322456 -0.142942011 -0.138712749 -0.207050338 -0.088208437 -0.197617665 -0.210848585 -0.147810161 0.0574030131 0.0592564493 0.108619556 -0.168442219 -0.0456483513 -0.114416189 -0.146097183 0.0910119563 -0.0846408755 0.0734681338 -0.00443820655 -0.163817912 0.0242975354 0.118717775 0.177837357 -0.0399428308 0.133731917 -0.194569409 -0.189309314 0.0777339786 0.0472985059 0.203200892 -0.0383270979 0.0365430862 0.150049046 0.0834368616 -0.0110588372 0.105951115 -0.110560857 0.0947608203 -0.136167765 -0.0692269355 -0.00303959846 -0.155471474 0.187027231 -0.200201973 0.177203223 0.0481259674 0.00745773315 -0.00899349153 -0.0349894166 -0.143298119 0.072715506 0.192507938 -0.200365201 0.201909021 0.18812497 0.0453347713 -0.0832957327 -0.169012398 0.120361373 0.098116681 0.0060288012 0.0858277529 0.150094345 -0.0732971579 0.0512118489 -0.143712163 -0.0751691312 -0.00894168019 -0.0603669733 0.0776650161 -0.179517105 0.0324126929 0.212745473 0.0310112238 0.0420362502 0.211289302 -0.0600333065 0.0551522523 0.0351923853 0.070424512 0.0964374989 -0.018245399 0.0357963294 0.0101690739 -0.13305375 -0.075139448 0.192970857 -0.133819729 0.0233647823 -0.117744073 -0.0622757971 0.0166937262 -0.0498817414 -0.204265431 -0.00338110328 0.203383014 -0.0366930515 -0.0987897888 -0.207669765 0.012528941 -0.190460831 -0.18572095 -0.188450366 0.109078571 -0.0149445683 -0.1825248 0.159239188 -0.136786073 -0.157180429 0.050926879 0.13467072 0.174741253 -0.121271729 -0.0231251121 0.162155315 -0.0196235776 0.19982703 -0.130184337 0.150632218 0.0817597061 0.0395684987 -0.013185069 0.0644078702 0.0503698438 -0.0436193496 0.183153406 -0.102541618 -0.0584473163 0.0293205529 0.193422928 -0.135538116 -0.00315578282 0.174579218 0.208500728 0.0624868125 -0.107804395 0.084103778 0.192512736 -0.107129477 -0.0319156945 0.156489149 0.118965372 0.0471614748 0.199056461 0.186059311 -0.135837674 -0.0985632837 0.0363276452 0.0380320996 0.040739581 -0.137999579 0.204545423 0.100524023 -0.0464756489 -0.201489419 0.162790075 0.00364693999 0.168214008 -0.0913997293 0.185061559 -0.143868148 0.121065184 -0.0728050768 0.193083599 -0.0291444212 -0.150980562 0.0898615867 0.0893204063 -0.115907311 0.076591894 0.0967208892 -0.012462616 0.0645439476 0.00703909993 -0.153141886 0.0120924562 -0.156850159 0.0343989879 0.145344421 -0.0591264665 -0.121820748 0.0809822232 -0.0530748516 -0.0062340498 0.187124416 -0.129192531 -0.205695435 0.131458446 -0.135583907 0.102250114 0.114074275 0.0922477692 0.0261552036 -0.112317771 -0.186294496 -0.00917282701 0.127845004 0.178428188 -0.109813362 0.0764011592 -0.147000358 0.116229251 0.103629544 0.131762281 -0.147995263 0.00864104927 0.0502332598 -0.0333315581 0.0382956713 -0.142473459 0.0362404436 -0.168930441 0.0256086588 -0.0887891948 0.059783116 0.189935699 -0.1969558 0.155987248 0.00165304542 0.132272795 0.0463798493 -0.146483287 0.195392475 0.0517206043 -0.0230081528 0.044333443 0.129642174 0.12804462 0.0604723841 0.00712023675 -0.106710948 0.113312766 0.199096903 -0.0378094614 0.206461325 0.213167891 0.159812585 0.19920294 -0.164009795 0.0823628157 -0.178051487 0.148805901 0.0170256495 0.196002409 -0.173104927 -0.121574268 -0.0350227505 -0.137582242 0.0923103541 0.206842467 -0.0355235636 -0.0745408684 -0.198826998 -0.16299656 0.0348424464 -0.212254122 0.0099247545 -0.11177437 -0.0958463103 -0.1859328 -0.137858599 0.0298500508 -0.062914595 -0.0258870423 0.0895736665 -0.0655600727 -0.194655508 0.184795067 0.182132855 0.214193299 0.181125417 -0.107146509 0.192007378 -0.17876403 0.159528986 0.0296756327 0.0650920421 0.0657476932 0.0169204473 -0.208595037 -0.197933629 0.0399293751 0.0915600508 0.167416081 0.138466731 0.121579751 -0.193784177 -0.13178134 0.110880122 -0.0270081609 0.0595458597 0.0958121866 0.145450845 0.204260692 -0.179703444 0.0766303688 -0.101342507 -0.120128982 0.151057616 0.209717825 -0.086872533 0.166939065 -0.212358236 -0.184477866 -0.0499351621 -0.14303875 0.0635824949 -0.0579698384 0.0689555854 -0.121117227 0.111854538 0.0968991369 0.00672489405 0.06816037 -0.191774175 0.0631602854 0.177760854 -0.0582095087 -0.0386331081 -0.0198222697 -0.163465053 -0.0869761258 -0.0334959179 0.0457457155 -0.0774376392 0.197403505 0.201287314 0.0182985663 0.179501995 -0.127219796 0.0430810601 0.155053958 0.0219656527 -0.110936902 -0.119695589 -0.149825931 -0.0583156794 -0.122345664 0.00783284009 -0.0937071592 0.0440214723 -0.0232922584 0.166607574 -0.0995697007 -0.129709959 0.086977616 -0.173608363 0.0632753521 0.0682726651 0.0571452826 -0.151713133 -0.123849124 0.209557131 -0.182027608 0.103784189 0.099479869 0.108480081 -0.148193792 -0.128895104 0.069086954 -0.115029782 -0.197913751 0.0247798115 -0.0458010435 0.215737686 0.0683769733 0.0295536518 -0.0101142079 0.0229239613 0.156227961 -0.0515455306 -0.215846345 -0.175135732 -0.0123812556 -0.0555711985 0.180414394 -0.199173823 -0.087579459 -0.211519107 -0.123184524 -0.0544126034 0.132915601 0.0583506972 -0.0950843096 -0.184680313 0.182474121 -0.186838761 0.0863878876 -0.104843318 -0.0265173167 0.205093518 -0.0728926212 0.180407897 0.0911148936 0.0180770755 -0.0362069458 0.154070929 0.209767982 -0.115970857 0.0574255139 0.149651095 0.206300482 -0.0493127406 -0.101700947 -0.158116072 0.02047804 -0.0832315236 -0.212914333 0.16086252 0.119662806 -0.0284115374 -0.0679599941 -0.0327911079 -0.057585746 -0.0370601118 -0.153167039 -0.0893347114 -0.133973286 -0.0956255868 -0.142108306 0.111237988 0.148536429 -0.158282593 -0.0271238387 0.0361856967 -0.137576759 0.202499971 -0.00321571529 -0.00117759407 -0.166019946 0.112907633 -0.0633151084 -0.0349703133 -0.109455019 -0.00135484338 0.0987171978 -0.179973066 -0.200716883 -0.117974758 0.0123543739 -0.0061095953 -0.163893551 -0.018564105 0.213161126 0.144157484 0.0590753704 0.126955703 0.0174931586 0.0608230978 0.172592774 0.0800449103 0.205585435 0.0462348014 -0.211776018 -0.0520270318 -0.157539994 -0.00850461423 -0.0480909199 0.0531922728 -0.0476451814 -0.0131076425 -0.0205195844 -0.056430921 -0.0630805492 -0.0110486597 0.0431331545 0.0109471828 -0.070979923 0.181466863 0.112878338 -0.0407383442 0.0991631597 0.212496623 -0.0411179513 0.174524203 0.136693463 0.0396960527 0.151049718 0.200792 0.0238062292 0.119036838 0.182947651 -0.158980846 -0.157822981 -0.1785236 -0.174909472 -0.018049553 -0.199550912 0.045112446 0.00864899158 -0.183150366 -0.112231873 0.0892030746 -0.0920792446 -0.131011173 0.156927809 0.13707225 -0.0879445523 -0.0798484534 -0.207574427 0.161819026 -0.0909411013 -0.154103518 -0.120475292 0.00730121136 -0.0303003341 -0.104097836 -0.149014682 -0.0458678305 -0.0384103209 -0.0384169221 -0.188336134 0.117665812 0.0422888845 0.116580799 0.207621261 -0.20548892 0.167879567 0.0256439745 -0.0488382131 -0.204529941 0.116649345 -0.0878801793 -0.16713585 -0.0190377533 0.210818186 0.12179561 -0.0828291476 -0.130138963 0.128239498 0.0396835655 0.0799471885 0.185438707 0.129455641 0.115153775 0.0321662128 0.0728669614 0.181425944 -0.0321771502 -0.186687261 -0.119610675 -0.212139413 0.0266985595 0.0959872156 0.088620469 0.0681722611 0.0840905756 -0.0599383861 -0.0144448876 0.20447661 0.102311864 -0.127332896 0.167139158 0.0274807364 0.116236702 -0.180379406 0.216334656 -0.156794056 -0.0282452703 0.0471136123 -0.0546389073 0.163304761 0.103504434 -0.117289618 -0.18664597 0.0348724574 0.127459362 0.104565307 0.140174404 0.00960327685 0.189112946 0.182493612 0.0476878732 -0.194409639 -0.178070948 0.0884678215 0.166338548 0.0729856342 0.170750156 -0.02236709 -0.10892278 -0.0076238811 -0.0449007004 -0.132402301 0.108765796 -0.143417925 0.0700047463 -0.100760035 -0.191600174 -0.169585019 -0.125393987 0.142526016 0.0835020691 0.0037791878 -0.0573696643 0.155866519 -0.0161506534 0.0626388341 -0.0626721382 0.0484398156 -0.152092218 0.159069881 0.062606737 0.0545813888 -0.184169799 0.00436677039 -0.178141207 0.125123397 0.0643382519 -0.132825017 0.0635071248 0.0680358261 0.074682042 -0.187229887 -0.039757058 0.173186705 -0.0963061303 0.169519678 0.116023615 -0.0970634893 0.141973749 -0.194449961 0.133581802 -0.185589477 -0.184001267 0.158878341 -0.148351386 -0.157188728 -0.156476542 0.0749963969 0.0941173285 0.122323111 0.166684791 0.0643507987 0.17020379 0.194529042 -0.0343240947 -0.0071799159 -0.00407981873 0.0121376216 -0.0678489655 -0.0323755741 -0.00903385878 -0.131158546 -0.177756578 0.13005881 0.0584778339 -0.0579183251 -0.0363151431 -0.209321797 0.0634287149 -0.104849972 0.0686417967 -0.138047785 -0.171399429 -0.105729051 -0.0909411013 -0.155730277 0.0353330821 -0.174447536 -0.160600498 -0.0747668594 -0.211821809 0.0170009732 -0.0078228265 -0.118453629 0.0294317305 -0.0667147934 0.10442315 -0.0246297121 -0.102965668 -0.183874786 -0.00387664139 -0.135667324 0.155438319 -0.0204060227 0.20007728 0.0779366344 0.19856824 -0.142405942 -0.184667721 -0.0265512317 -0.203606829 0.197388485 0.118558303 -0.0539126843 0.0688033551 0.0398415476 -0.125205934 -0.143838584 -0.0857622027 0.179183915 0.107792005 0.207687542 0.104717895 -0.0613311678 -0.0263402164 0.0775615126 0.0715971738 0.078308925 -0.0556137413 -0.105983585 -0.0322184414 -0.106882274 -0.111768074 0.119004831 -0.0375810564 0.132102773 0.085897401 0.13197495 -0.126425475 0.0344695002 -0.115934826 -0.187673181 0.196176603 -0.186258882 -0.16306366 0.10532935 0.189784035 0.0454464704 0.0636853725 0.097693041 -0.20715487 -0.181481272 -0.181268692 -0.0498585105 -0.0186187178 -0.119796708 -0.0829584599 0.0290929526 0.150905743 -0.183601424 0.0357230753 -0.0176681429 -0.12669608 -0.136854559 0.0885048658 -0.0688259602 -0.126520619 -0.0074685216 0.0837468952 0.00169016421 0.204901233 0.121344611 0.0607691854 -0.0622199476 -0.114385888 0.0338719636 -0.125344068 -0.171791166 -0.117500842 0.136388496 0.0482688397 -0.0635844022 -0.189452291 0.0262422413 0.113908365 0.0243253559 -0.0161608607 0.136946604 -0.207239628 -0.113902114 -0.133196414 -0.208598301 -0.0336010158 0.196529135 0.000476911664 -0.185732201 0.00331059098 -0.0902014971 -0.00700028241 0.0646762997 -0.060125038 0.0395675153 0.165341422 -0.0924883261 -0.174673527 -0.0958997831 0.11208801 0.0708440095 -0.0581569076 -0.0369117558 0.1728075 0.00457650423 -0.125385359 0.133783117 -0.149207532 -0.164296955 0.110894874 -0.171745792 -0.201245308 -0.0719503164 0.0132772624 0.0167765319 0.00911785662 0.191283211 0.041196093 -0.186730102 0.0769727081 0.00116938353 -0.038955614 -0.122501761 -0.111735195 -0.0531345159 0.0633109361 -0.2019324 -0.132041439 -0.108914413 0.16981791 0.0446785241 -0.203444853 0.0781471282 0.0600039512 -0.0904837996 0.0860900432 -0.194607645 -0.0617565215 0.0957981497 -0.169758201 0.193146095 -0.15785256 -0.00808407366 -0.15453282 -0.0463712811 -0.0748093426 -0.155791193 0.0191329867 0.1984189 0.140827313 0.178281501 -0.160185426 -0.168936625 0.101923689 0.103584215 -0.160409927 -0.0330783129 -0.089725107 0.0498475581 0.178978667 0.000224754214 0.192275599 -0.0580036938 -0.00490449369 -0.163870931 -0.179228812 -0.0781523585 0.213049576 0.0824058801 0.171703532 0.101687059 0.172532514 -0.159029156 -0.0344004929 -0.0833505094 -0.140034974 -0.161740243 0.0204137713 0.204659149 -0.125276297 0.0394738168 -0.209517837 -0.176069513 0.0245905817 0.213585183 -0.181221724 0.153404698 -0.122594826 0.136925682 0.161130056 0.165156856 -0.084647119 0.115664348 0.0448857695 -0.0367877781 -0.0126664639 0.157844856 0.130286172 0.196994051 0.216279313 0.156358168 0.0529444963 0.0820329636 -0.208651513 0.071787551 0.016426757 -0.0894697458 -0.0799961388 -0.050807789 0.143425897 0.216268793 0.0612275749 0.180730686 0.0590040833 0.0225973576 0.204655305 0.126662835 -0.0483733267 0.0666583627 -0.0385652781 -0.14912346 0.0752090663 -0.155792892 -0.0910623968 0.0728100389 -0.0265179873 0.0228566378 -0.0561662167 -0.159321278 0.00627781451 0.150959805 0.119238511 0.170236543 -0.114117414 -0.0894860029 -0.14511089 0.200899974 -0.183337122 -0.0989990532 0.21489729 -0.210661829 -0.0569289923 -0.0411164463 0.058638975 0.0650715977 0.0514443666 0.0877976865 -0.141263187 0.00843818486 0.144112065 -0.121969618 0.162691996 0.130299821 -0.160947174 0.125824854 -0.190114304 0.0769518465 0.173931047 -0.0699850172 -0.151884258 0.168133542 0.0411511511 0.0988556892 -0.115193263 0.0690621585 -0.0971042141 0.0972232372 -0.126911312 0.160173103 0.127053186 0.116700485 0.191735968 0.0626152605 -0.0181857347 0.187425986 -0.130454212 0.0535124093 0.165520057 -0.169165105 0.186350599 -0.20584555 -0.159280866 0.146034822 0.0213645995 0.150628403 0.0552408844 -0.143312126 0.099751547 0.213840589 -0.00701721013 0.073606506 -0.069299832 0.10112007 0.200353786 0.166800156 -0.174718231 0.0437105745 -0.110193379 -0.203979462 -0.0270194709 -0.16293177 -0.00541391969 -0.138523161 -0.0662395358 0.0251428485 -0.0726311654 0.0789882094 -0.151701629 -0.0294829905 0.0417488366 0.0419801325 -0.00462713838 -0.109910093 0.202692196 0.0266126543 -0.184980527 0.184295401 0.00813212991 -0.081846267 -0.193707362 -0.160074562 0.190914497 -0.0722289979 -0.132746711 0.0582289249 -0.151696563 0.0269844681 0.00915382802 0.0446288139 0.0445256382 0.205229983 -0.0870723426 -0.157205671 0.0337624699 0.0686033815 -0.196375921 -0.141853213 0.148800477 -0.152415931 -0.0533095598 -0.209857956 0.0351357907 0.0214967877 -0.124083005 0.0758182853 0.210300907 -0.0217194706 -0.182448566 -0.0813256353 -0.0156180412 -0.104705855 0.0683744401 -0.0999515802 -0.163795263 -0.0118160844 -0.165207461 -0.0996754691 -0.0976582915 -0.0149646401 -0.115791112 0.136857912 -0.131697446 -0.10033346 -0.0344904065 -0.00381182134 -0.211528152 -0.19629766 0.065141961 -0.0631808341 0.073308453 -0.103368245 -0.120961651 0.193093196 0.120035812 -0.209491208 -0.0675849319 -0.0987875685 -0.05050762 0.16619803 -0.0126240849 0.0751491636 -0.143814474 -0.169938758 -0.0606690049 0.158494487 0.129571095 0.200513288 0.044278726 -0.182699993 -0.150979102 0.103623703 0.168834433 0.0254660994 0.169109747 -0.108796775 -0.113996059 -0.0684480518 0.158322647 -0.0618492812 0.21202518 -0.173646003 0.0704133958 0.0443970412 -0.0836163461 -0.0363180339 -0.18829298 0.0439085811 -0.164016083 0.133548036 -0.109730408 -0.191601515 0.183309302 -0.032695815 -0.000942096114 -0.0627649426 -0.113689907 0.0161303133 -0.123212501 -0.0145379603 0.0692438036 -0.15265739 -0.0815188438 -0.0875594169 0.039199248 0.0113131553 0.081409052 -0.0727807134 0.0876620859 0.00774426758 0.0518829077 -0.0821485966 0.0799022466 0.0741907507 -0.149128467 0.186223879 -0.0114644021 0.136041805 0.0864130706 0.00288066268 0.134642795 -0.165342808 0.181224659 -0.00912791491 -0.117273204 -0.00584112108 -0.0353256613 0.180699751 0.0892539769 -0.00903004408 -0.124910362 0.108488396 -0.0861942023 -0.0637277514 -0.00941367447 0.211082265 0.116949394 -0.203239352 0.174814597 0.0543323904 -0.161170423 -0.156309962 0.125776485 0.111992732 0.195972458 -0.0453259349 0.181332752 -0.172306895 -0.161030799 -0.181952551 0.204987809 0.0491034836 0.175031677 -0.0919188112 0.00392450392 0.196387157 0.0839758068 0.18225421 -0.12080963 0.161410496 0.0378801376 0.139974073 -0.0151411295 0.119678155 0.209960744 0.0888996571 0.19486405 -0.118166476 -0.0796308815 -0.208047569 -0.0523856729 -0.0644435436 0.0689165145 -0.214216217 0.136871144 -0.176340356 -0.178800896 0.173092023 0.183515266 0.201711431 -0.0200013369 0.094236061 -0.199394971 0.19526653 -0.121226095 0.115537092 0.014915809 0.0939825922 -0.0802676529 0.138700679 -0.0731207728 -0.041176632 -0.121252418 0.135871366 0.0753448457 -0.0830914825 -0.0866094232 -0.066075176 0.125187978 0.21125941 0.116936997 0.0486765355 -0.101060927 0.166959509 -0.115630478 -0.161545798 0.133385137 0.078944847 0.0856721252 0.0821823627 -0.180016786 -0.0637345016 0.10164474 -0.153563574 0.175092116 -0.168493062 0.116886631 -0.204302087 -0.104912229 0.178574905 0.0605199188 0.0969433039 -0.0915684775 -0.103471071 0.0415272266 -0.175420508 0.0368696898 -0.0854102075 0.170753047 0.128086522 0.0871749073 0.0689552575 -0.147968471 0.0483410507 -0.196790621 -0.0302833021 -0.174845889 -0.115173183 -0.180943608 0.0704492182 -0.167976677 0.027528584 0.121858731 0.143509701 -0.107085548 -0.116890498 -0.0124786198 0.0174708068 -0.190410599 0.045559451 0.207256511 0.216121837 -0.102311499 -0.176411808 0.1236092 0.0790273398 -0.0056822896 0.097467348 -0.0247983485 0.134654865 0.19345583 0.0555846244 0.0877229422 -0.157762691 0.00447274745 -0.0317813903 0.175156727 -0.0202159584 0.0140741169 0.115857556 -0.193359971 -0.140188336 -0.0679085404 0.170911416 0.0106744766 -0.0357366502 0.214258447 -0.0184565783 -0.213041306 -0.00264321268 -0.161128253 -0.00520965457 -0.080949232 -0.0374947488 -0.122701831 0.11668919 0.0872748941 -0.0526811928 0.0571868271 -0.0315119922 0.162864819 -0.202320069 0.0685060769 -0.038647458 -0.197127551 -0.0971656963 -0.0641355366 -0.00347262621 -0.0596810579 -0.213225335 0.0115192682 -0.216120541 0.0679750293 -0.100616641 -0.185315996 0.100775406 -0.20683834 -0.0131196231 0.0796609074 -0.214945123 -0.106901884 0.0913768262 0.170979455 0.0941831321 -0.12014132 -0.0108900368 -0.17055288 0.163600489 -0.113409616 -0.152576357 0.171944782 0.205536142 0.187679961 0.0346093029 -0.167859137 -0.212399423 0.0982515961 0.0880768448 -0.117055371 0.140471622 0.132475868 -0.107322998 -0.138704807 0.0993265659 -0.0217560232 0.0032465905 0.110781267 -0.040420264 0.104616955 -0.104210056 -0.0642937571 0.0895931274 0.177088931 -0.0492049605 0.0684697479 0.00370486081 0.0666344613 0.0995850414 0.029164806 -0.17124173 0.09151344 0.116662249 -0.0397463143 -0.194812223 -0.137370288 -0.185443863 -0.180013016 -0.189766854 -0.152131453 -0.152750209 0.118660972 -0.144900739 -0.161557317 0.20960699 0.0329516977 -0.179101884 -0.143193692 -0.0632252842 -0.11235287 -0.185645327 -0.141339958 0.0494965166 -0.0240585506 -0.177981704 0.0622568578 -0.215916753 -0.187872186 0.01762034 -0.194949836 -0.00245763361 0.214417771 -0.065350607 -0.0414343774 0.0137482435 -0.0107984096 -0.153948545 0.174448922 -0.123084486 0.0826777071 -0.153175503 -0.211670876 0.00475603342 0.161136612 -0.0474763364 0.0462579578 0.0650216192 -0.129255772 -0.0942040458 -0.173933268 -0.0522591621 0.0710592121 -0.159967288 -0.198568031 0.159467205 -0.156110927 -0.12795119 -0.184567735 0.206773505 -0.103131108 -0.196625397 -0.133488789 0.135917351 -0.0781923532 0.186113939 -0.0656082332 0.194922432 -0.142737746 0.213203236 -0.0229713917 0.0447368175 -0.136899829 -0.165937245 0.15216659 0.089555338 -0.0955122262 -0.116638236 0.0760757178 -0.0537374318 0.216473684 -0.0675441623 0.0832113475 0.188172504 -0.15921618 0.183534786 -0.0239722431 0.106969908 0.204759702 0.0293312818 0.109507665 0.16629301 -0.0360503346 -0.0877831876 -0.149572223 0.0593892485 0.196349338 0.00469140708 0.152444109 0.094371751 0.212643787 0.198955223 0.0440487713 -0.0721292198 -0.0130590796 0.0983942896 0.176076189 -0.189735427 -0.0162506402 0.146708861 0.127317831 -0.0240667462 -0.0079228133 0.16428332 -0.0445265621 0.0633301288 0.0026793927 0.0581438392 0.21233578 -0.0620286465 0.151123419 -0.0704901665 -0.103835605 0.153473511 -0.166035071 0.20513697 -0.215603635 0.211204603 -0.00327461958 -0.213364348 -0.143227667 -0.0124470741 0.159748331 0.126057997 -0.102846019 0.114726409 -0.0950933397 -0.123208113 0.0145902038 -0.128204897 0.0172567368 0.079768911 -0.0176495165 0.185006604 0.0501536578 -0.127981752 0.131903574 0.073804155 0.14779298 0.198887661 0.146312073 -0.0916646421 0.192384884 -0.158793926 -0.0131742358 0.0199696422 0.190155819 -0.163106039 -0.0789243728 0.198089615 -0.186471283 -0.0861888379 0.0301533639 -0.0287599564 -0.156782076 -0.0523855835 0.213264242 -0.0103711039 0.0432208031 0.125642821 -0.193018243 -0.209516957 0.00344191492 -0.0132315904 0.00639623404 -0.00391113758 0.0721565932 0.132563099 0.166448161 -0.125352427 -0.0753659457 0.119259045 -0.00334362686 -0.0582474917 -0.0965533331 -0.0156054944 0.0986029357 -0.103588872 0.161954924 -0.197837055 -0.155638516 0.202590182 -0.0884255469 -0.106663719 0.170054182 -0.121439539 -0.0724804401 0.0138958693 -0.0797548145 0.168702438 0.0772906691 0.103747174 -0.101636223 -0.0386114717 0.104467466 -0.0550206751 0.111729786 -0.206441954 -0.0978569761 0.0675054342 0.0333653241 0.209905967 0.111026987 -0.19940576 0.200488672 -0.0747299492 0.167427644 0.190894648 0.0610999316 0.0221829563 0.0448646098 -0.0692579597 0.0305432528 -0.189550787 0.207148686 0.133938745 -0.0246576816 0.181569889 -0.0565097928 0.213461861 -0.203732416 -0.136161 0.146731213 0.102090791 0.0023419559 0.018914178 0.148379877 -0.109781407 0.0616946369 0.0609764606 0.050764069 -0.0858276486 0.197327837 -0.0240139514 0.00479954481 -0.082142517 0.105301127 0.147398129 0.126296028 0.139992431 -0.192477077 0.0606181175 -0.191457644 -0.012966156 0.0128843486 0.0560000986 -0.0592456013 0.205551937 -0.0019300431 -0.0804404765 0.1514218 -0.174973547 -0.113385096 -0.147748262 -0.0926208347 -0.0517881364 -0.155463055 -0.0857066065 -0.0260004103 -0.191205129 -0.212038919 -0.169519365 -0.186298877 -0.0867990702 -0.0188699365 0.000286221504 -0.0169312805 0.0597930402 -0.171286583 0.0381561965 -0.136903599 -0.0786010772 -0.130526677 -0.118289277 -0.154712871 -0.185403705 0.0411979109 -0.147093013 -0.160133183 -0.0354467034 -0.159299806 0.188530073 0.165718332 0.177182063 0.0408628434 0.0081140101 -0.156647712 0.036997512 0.143359497 -0.190665394 0.145653769 0.0590366572 -0.0499967486 0.101860657 0.181939945 0.0730921179 -0.189430296 0.0744618922 0.173400089 0.148983613 0.106627598 -0.0425362289 -0.065763399 0.0129130483 -0.171485528 0.158590034 -0.212476075 -0.0593852848 0.153704479 -0.210238799 -0.0125901699 0.0866140276 -0.15543136 0.0902767032 0.154682562 0.166129991 -0.0860454887 0.127959147 0.054321453 0.0982671827 -0.133814871 -0.0514394045 0.174641535 -0.103889599 -0.0722318441 -0.000686585903 -0.00241236389 0.145590678 -0.0792087913 0.0598546714 -0.0103981048 -0.0527924448 0.134915188 -0.178403273 -0.0597277284 0.190419421 0.0845720619 -0.0390002131 -0.17068848 -0.198992699 -0.152012825 -0.00931762159 0.0674706548 -0.174414396 0.166343585 0.132229581 0.162725762 0.0673492402 -0.045855701 -0.208720267 -0.076733917 -0.213736564 0.115494207 -0.142396241 0.191102967 0.00288240612 -0.0889811665 -0.0753060281 0.159933731 -0.179099247 -0.077963993 -0.157260016 -0.135536671 -0.131755367 -0.0263200253 0.191687658 -0.0312078446 0.182023779 0.1234615 -0.0118492693 0.074201569 0.16149579 -0.0726585239 0.00406804681 -0.0915534049 -0.159595832 -0.132167548 -0.0687990189 -0.129802883 -0.100624017 0.162251011 -0.0647866577 0.0742793828 -0.0775921345 -0.151038259 -0.198285729 -0.198621243 0.125540987 0.208524123 -0.131045654 -0.193670303 -0.0840041488 0.15424557 -0.205455571 -0.111213945 0.0255674273 0.135829762 0.0203060359 -0.156849176 0.197581008 -0.167604804 0.170615092 -0.0676677823 0.190490469 -0.079960674 -0.135019869 -0.153286487 -0.0464369357 -0.199640304 -0.0522986054 -0.0777950436 -0.159118354 -0.179384038 0.209465697 -0.177401394 -0.0933089703 0.0179588199 0.160601333 -0.0652026087 0.0587999374 -0.145297959 -0.0500928164 -0.171088636 -0.169810236 -0.0600495189 0.140236959 0.0767053515 -0.214849934 -0.085044533 0.0646552294 0.163205549 -0.155396104 0.0202807933 0.0498869568 0.101111159 -0.0812673122 -0.171339601 -0.0161241144 -0.00815010071 -0.17216453 -0.0539122075 0.0188783556 -0.0571314394 0.00321225822 0.0673358589 0.0202885866 0.100583866 -0.0968299136 0.105608717 0.183875784 -0.0303859711 0.0506251603 0.0290204287 -0.030689016 0.0320489258 0.0533214957 0.186373308 0.0902072638 -0.141670376 0.0229739696 0.0068436712 -0.0676448643 -0.162564561 0.109673694 0.139915571 0.068416819 0.214511737 -0.15781033 -0.215438858 -0.174752861 -0.0562889576 0.0897686332 0.103269145 -0.0460320413 0.211482063 0.13328217 0.124639526 0.0106871724 -0.126301855 -0.0865297318 0.116503313 -0.167106062 0.0931367129 0.114187881 0.126987413 -0.160649598 0.140207425 -0.0638258755 0.0961244851 0.00638622046 -0.135467857 -0.094610855 -0.0820826888 -0.046032548 -0.179701135 0.0447078496 0.137072459 0.0287348777 0.145328924 0.0346519798 0.0972790569 -0.0599679053 0.0839584321 -0.00144192576 -0.104119509 -0.0141431242 0.0824687332 -0.137707263 -0.0495885462 -0.0513692498 -0.0121968836 0.0582880229 0.0615180284 -0.120069928 -0.167382583 0.136924699 -0.0475722998 -0.202293172 0.0110137165 0.178140119 -0.142430931 0.128122047 0.0886654705 -0.0272277594 -0.0731204599 -0.0298395306 -0.0973657146 -0.103851661 0.0781926662 -0.177221864 0.052533403 -0.0346768051 0.0670841187 -0.124836132 0.146731898 -0.0200649202 0.00649900734 0.216119424 0.0463841707 -0.0320614725 0.081133917 0.084778294 0.184831187 -0.00364817679 -0.180190176 0.101190999 0.214070037 -0.00126250088 0.17430301 0.0843841881 -0.207828239 0.166853741 -0.145607114 -0.0526137352 0.0145677924 -0.159892857 -0.0407043695 0.121352986 -0.110636637 0.186345741 -0.200129658 0.0238385946 -0.0565079302 -0.0700160414 0.101827785 -0.016555801 0.13947995 -0.201685145 0.110576198 0.0276675522 0.0295195431 0.0850353986 -0.0456180423 0.122527555 -0.180388227 0.0259643197 -0.0302985758 0.0531634241 -0.210675448 -0.203751266 -0.216496691 0.215540722 -0.0126211345 0.195932344 -0.0309322476 -0.174175814 -0.216359183 -0.00450257957 -0.0687045604 0.140705362 -0.0326668024 0.0772778243 0.150823638 0.0771210641 0.0826558024 0.0834026486 -0.0417301953 0.073146686 0.152272776 0.00254750252 -0.0384834111 -0.146099389 0.156876132 0.00569358468 0.0117155761 0.10781984 -0.0603031814 -0.148901954 0.100422397 -0.0112612247 -0.21183461 0.0521114916 0.146081135 -0.212215349 0.167511061 0.0846068114 0.041114077 0.115536079 -0.0237469226 -0.205519989 0.120501772 -0.040034309 0.021228835 -0.17292808 -0.00548824668 0.0450167805 -0.0609141439 -0.11527916 -0.0375153869 0.0142415166 -0.0535354912 0.123438492 0.0386375934 -0.131949306 -0.0669883192 -0.207911447 -0.00821167231 0.140406325 -0.1966988 -0.203277349 -0.0611697584 0.169801399 -0.0280008465 -0.142330825 0.074987337 0.0825964361 -0.172993332 -0.0489689559 0.016886577 -0.0667787492 0.0681358129 -0.0461090058 0.205089703 -0.184096187 -0.14695932 0.0360943228 0.0441453606 0.0947209448 -0.149481744 -0.0997626483 0.180785969 0.0162867606 0.130693927 -0.0589865297 -0.140443891 -0.0299380124 -0.192037538 0.00600594282 0.186624333 -0.0389799774 -0.109358445 -0.185562894 -0.193559006 -0.193680003 -0.0479593873 0.00866153836 0.096892789 0.183878496 -0.0577574223 -0.0442391932 -0.0204317868 0.0139524937 0.051414296 0.0956466943 -0.141198456 0.0515246242 0.0429583341 -0.203101009 -0.210600346 0.149194226 0.0559636503 -0.0477567911 -0.139202148 0.0177829415 0.147477821 -0.143078536 0.148276851 0.0783024579 0.0924251527 -0.018397212 0.0277659893 0.127643064 -0.0715708584 0.0142055899 -0.027617991 -0.0369420648 -0.0326774865 -0.104952335 0.0545974523 -0.000808104873 -0.0321171731 0.171578392 -0.0806577951 -0.0127275288 0.153873757 -0.0577870011 0.192859426 -0.188326627 0.1350355 -0.0785275698 0.0786272436 -0.131749019 -0.0904608369 0.0737862438 0.0596044511 -0.198000997 -0.151301622 -0.191071942 -0.214083657 -0.152159899 -0.145972565 -0.0466104299 -0.0034840405 0.10269095 0.0383338779 0.0593133718 0.132423416 0.158561841 0.133239523 0.107381746 0.146966651 0.121106222 -0.172349691 0.00142784417 0.169964001 0.118336871 0.0629610866 -0.028625235 0.215595827 -0.170897335 0.0331371576 -0.0705744624 -0.106391117 -0.0291628987 0.178843334 -0.0649072379 0.0234077871 -0.175630748 0.0696298927 0.103108719 -0.0124953985 0.137446329 0.203340098 -0.143161386 -0.00422739983 -0.0690570623 -0.0862223357 -0.00373031199 0.152680412 -0.187144041 -0.150555462 -0.00736176968 0.0214922428 -0.194789246 0.164209351 0.192243442 0.0993965119 -0.101303689 -0.0668666065 -0.133668631 0.0192529112 -0.104733162 -0.0263447613 0.0662874728 -0.0708586127 0.18913655 0.0197795779 -0.0626228899 -0.0486549139 -0.130153105 -0.0714892447 0.190415099 0.0138893723 0.120061055 0.0417894572 0.146817371 0.153696015 -0.187751904 0.0819001645 -0.0486842245 -0.128123075 -0.0767132044 0.00572647154 -0.155002609 -0.154959247 0.145997748 -0.0947026834 -0.164780676 -0.048354432 -0.143211767 0.208791658 -0.0568977594 0.164443508 -0.094508186 -0.0411193967 -0.0077252686 -0.0466969907 0.192170754 0.0448009223 -0.180281535 0.0106853694 0.0102296174 0.208183989 0.195382103 -0.176260248 -0.0776241869 0.202723071 0.190967277 0.0750496238 0.13832204 -0.170639753 -0.203582883 0.209013984 -0.0189047903 0.189927235 0.203989223 -0.0673976541 -0.0671165884 -0.056080997 -0.10969273 0.118760511 -0.0700895935 0.0611418933 0.19506602 0.190814689 -0.0816073269 -0.069729194 0.0665346533 -0.144401535 -0.0420406312 0.205646262 -0.0035623461 0.0658593625 0.137323514 -0.148592651 0.0994510204 -0.0742328614 -0.119936392 0.144386664 -0.0725115687 -0.0383362919 0.0210164189 0.206038699 -0.0348130763 0.0454294831 0.00123158097 -0.190542489 -0.117847003 -0.148828179 0.137181416 -0.130941033 -0.11261081 -0.0836683661 0.0260617733 -0.0863529742 0.03696163 -0.059837833 -0.191984475 -0.11482615 -0.199378967 -0.057920441 -0.0917367041 0.214567676 0.0566586107 -0.1295214 0.0309029371 -0.0575228184 -0.170975536 -0.143164337 -0.0972486436 -0.182878032 -0.166031763 0.123772219 0.18878077 0.10624586 -0.139099061 -0.118804589 -0.189823389 0.0636889786 0.0284215957 0.116121933 0.14496465 0.120553508 -0.190684184 -0.214785978 0.154975966 -0.1819987 0.0851287693 0.118326649 0.210865155 0.0652956218 0.022072956 0.100319609 -0.0137865394 0.0480548292 -0.164894283 -0.124102108 0.17538999 -0.0962759331 0.12518017 0.102196857 -0.000101014972 -0.0564532131 0.204702452 0.127723977 0.0825591236 0.175896809 -0.14668785 0.12617068 0.125715986 0.110114977 0.16377984 0.0897218436 0.0222187787 -0.132133484 0.137781605 0.144382492 -0.172876045 0.123122826 0.155621991 -0.13776879 0.133352146 -0.0267543495 -0.0774474889 -0.0353892595 -0.0892003477 0.147660986 -0.0329856575 0.0126497298 -0.0895730406 -0.189575553 -0.0950342342 0.0489795953 -0.102236398 0.142989025 -0.124813005 0.16722329 0.0623026937 0.0836647004 0.209594235 0.18983753 -0.112591349 -0.204102159 0.177093789 0.0553188473 0.0159559399 -0.00632128119 0.204769507 0.117495731 -0.139558673 0.0703597814 -0.0591942966 0.194571778 -0.103359729 0.168746993 -0.0282427967 -0.0703443438 0.166565135 0.198672459 0.023479268 -0.140086904 -0.00925438106 0.0309761763 -0.145862371 -0.0800234377 -0.208504289 0.125711635 0.0786820203 0.180224493 -0.142703012 -0.209427655 -0.126884282 -0.0825118423 0.0390750021 0.167732462 0.0103222728 -0.0284628421 0.0199560076 -0.126556277 0.153863385 0.0335963219 0.153281644 0.076840803 0.0741052181 0.133410379 0.0765366703 0.193857834 0.13901554 0.0624662191 0.179237649 -0.0292105973 -0.157329708 -0.118335113 0.0318421423 -0.154734612 -0.0162997246 0.0887960047 0.123274341 -0.196033016 -0.0293950289 0.20888482 0.0114002973 -0.0316554904 0.11034061 -0.0922291502 0.0522341281 0.148996249 -0.0621330738 0.212870255 -0.106105611 0.152307317 -0.0777120888 -0.0245142877 -0.166529208 -0.0295187086 -0.0578900278 0.0847600251 -0.135747284 0.175222859 -0.130666822 -0.132699534 -0.206814334 -0.0140505284 -0.0947527066 -0.178712726 0.137178943 -0.0886231363 -0.0846580714 -0.209774852 0.0712764114 -0.210888788 0.159977511 -0.104078628 -0.128722221 0.0991139561 0.0857882053 0.0132237375 0.0796495527 -0.163628072 0.0441264063 -0.21095182 0.206528112 -0.113637671 -0.0605652928 0.214673623 -0.0120598823 -0.212002009 -0.00372287631 0.108117834 0.0146675259 -0.0450135916 -0.0470410287 -0.160427421 -0.102049895 0.130553171 0.189492807 0.0255111009 -0.0161579251 0.0533056408 -0.15086323 0.197554901 -0.107151829 -0.0130375028 0.0201329589 -0.00677733123 0.175717518 -0.0322895795 -0.172619298 0.156291381 -0.0826745033 -0.211674228 0.128153548 0.155901209 0.0530302376 -0.148542643 -0.0168542713 -0.10706263 -0.199126035 0.0226063877 -0.0866802931 -0.188439831 0.0612265319 0.0988980383 -0.0567595214 0.16094403 -0.0510896295 0.0394551307 -0.0564985424 0.0704385489 -0.15769124 0.000198572874 0.039046064 -0.0379181206 -0.118911803 -0.132483244 0.0600273162 -0.178900048 0.01036264 -0.200227886 -0.0340097249 -0.195000678 0.111653998 0.113465413 -0.00874717534 0.138338521 -0.1983888 -0.0686229914 -0.111237943 0.0783984214 0.171736851 0.14756228 -0.12453194 0.0403944999 0.0217258781 -0.0401167423 0.0879769772 0.169041976 0.200492904 -0.0662553757 -0.209812537 -0.18039231 -0.139677465 0.057728067 0.104696468 0.145626351 0.205284551 0.176457837 -0.211327553 -0.0369543433 -0.190623328 -0.0388042778 -0.203891978 0.16981338 0.0745604783 -0.107752368 -0.094001852 -0.0772270858 -0.091026783 -0.0678419471 0.151664004 0.0940061957 -0.188000977 -0.0452845842 0.0114183575 -0.126633301 -0.162703052 0.0658135861 0.0289473981 -0.158960611 -0.188261136 -0.00747688115 0.163810387 -0.0753180534 0.00223882496 0.136111543 -0.131437138 0.18240194 -0.192822248 -0.049658224 -0.140610009 -0.145168334 -0.140232354 -0.0171059072 0.170644954 -0.0685674548 -0.0552155375 0.08043845 -0.124905251 0.0428408831 -0.0812838227 -0.12370237 -0.182598099 0.0213555098 -0.0361159444 0.0614744574 -0.12482281 -0.1049942 0.0971621722 0.176744029 0.0225325823 0.213137791 0.0554650277 0.159704193 -0.146259055 0.00983329117 -0.0531387031 -0.0153169483 0.0351498574 -0.194431886 0.0871008486 -0.0258889645 -0.1794516 0.163514748 0.15380995 -0.0277510732 -0.179516539 0.0886832625 -0.00215138495 -0.0607132465 0.172799483 0.168418482 -0.081258744 0.167466924 0.191594943 -0.0875329375 0.196650997 0.0898170322 0.0974394232 -0.191848293 0.170320705 -0.0774582326 -0.10549888 -0.139196217 -0.0146327913 -0.026633203 0.132847175 -0.188114524 -0.071519658 0.0242519677 -0.0271319449 0.0122186691 -0.0543771982 -0.0617631674 0.0315280408 -0.216159254 -0.104406878 -0.193831503 -0.209498644 -0.0761986673 -0.0196423233 0.00993141532 -0.14958027 -0.182277754 -0.111464448 -0.192824259 0.00750847161 0.150534764 0.193630025 -0.0460668802 -0.110117607 -0.124770366 0.120057479 -0.173678726 -0.142408162 0.0954728872 0.0259686112 -0.0505384952 -0.212220415 0.167066768 0.124231324 -0.173243523 -0.199705094 0.155996338 -0.200430855 0.181286499 -0.170365497 0.164033636 -0.136624649 -0.0501381308 0.173443452 0.0237767994 0.0782894641 -0.124499984 -0.12123657 -0.0878584087 0.16656436 -0.143001422 0.0573170036 0.125798091 -0.111507401 0.0971701294 -0.197383985 -0.0835127383 -0.176407218 -0.163371623 -0.205790058 -0.0732140541 0.0839589387 -0.17012836 0.120222464 0.107119039 0.01588884 -0.0719872713 -0.0902260095 0.0331825316 -0.116835989 0.0768413395 0.0894325227 0.00996874273 0.0925236493 -0.126660258 0.108591214 0.21390228 0.123638883 0.00965422392 -0.0182338953 0.0676757246 0.141449586 -0.133953929 -0.168602139 0.0459650904 0.0890752822 -0.0926928967 -0.166710973 0.162462726 0.186649635 -0.0953876749 0.0818892568 -0.192841858 0.0148016363 0.0456236154 -0.10302493 0.0760888904 0.102294728 0.0210544169 0.0534829348 0.195181444 -0.0954215825 -0.0530149639 -0.106112838 0.131188944 -0.056415379 -0.0882475078 0.160874799 -0.170507863 0.173274353 0.0951010436 -0.154478103 -0.0548147708 0.120807216 -0.211992562 -0.133567199 0.0990383178 -0.0842951387 -0.028699562 0.101668939 -0.214228392 -0.209541991 -0.171251446 0.013082251 0.0826236159 0.183336809 0.0821289271 0.138115719 0.0194735825 0.216294721 0.195768192 -0.128757387 -0.0418222398 -0.14046067 0.121225998 0.005982548 -0.0797491968 -0.119416744 0.124659166 0.187730119 -0.201665327 0.11481671 0.105706856 -0.0756445378 0.0912590176 -0.0834560096 -0.106099673 -0.0594012439 0.127701923 -0.135332465 0.0493696779 -0.185816079 -0.0111982524 -0.0189599693 -0.0448094308 -0.016880393 0.169325575 -0.0801288933 0.0749966055 -0.155659109 -0.0156790614 -0.175826907 -0.141187832 -0.144478768 -0.13352941 0.0760302991 -0.110635705 -0.092448011 -0.0588075072 0.173608378 -0.142341673 0.178110644 0.104062125 0.0720068365 -0.154148623 -0.0572045296 -0.0292451382 0.172381237 0.210608348 0.191868678 -0.0197329074 0.150700465 0.108895794 -0.192148879 0.140001103 0.1630456 -0.17195645 -0.196481481 -0.12159992 0.134717837 0.0107948482 0.0477312952 0.157484934 0.0370388478 -0.100330926 -0.131162003 0.211105183 -0.1423724 0.00499497354 -0.117719814 0.160277322 0.125830933 0.0534268469 0.181643441 -0.195433453 0.0584834367 0.14968203 0.0025794059 -0.0255060941 0.151692793 -0.131960705 0.0424686223 0.21392189 -0.00578051805 0.0725015551 0.116645768 -0.065128848 -0.0992387161 -0.166360825 0.189094409 0.0682502538 0.117197379 0.0222197622 0.0768003017 0.0591024607 -0.138343424 -0.0113099068 -0.169014007 0.0546107739 -0.00234811008 -0.0670624524 -0.127577215 -0.173200935 -0.04585886 -0.0402118713 0.105396613 0.0428419262 -0.190230966 -0.131698281 0.201709107 -0.0737110376 -0.0859876722 0.15149571 0.0910891443 -0.162875623 0.167837605 -0.206478968 -0.168369234 0.0995685607 -0.133059204 0.115290627 0.0783999711 0.101689532 0.0518790931 0.0757406503 -0.161087945 -0.0761120021 0.125714675 -0.0120552927 -0.00932644308 0.140423194 0.12445806 0.065647468 -0.0172622204 -0.215658665 0.0200218707 -0.0418904275 0.0858635753 0.103341416 -0.183552429 0.211871162 -0.121593833 -0.0866136551 -0.197011918 -0.0651703924 -0.036355406 0.192196116 0.113513276 0.0877193362 0.202224836 -0.0725498199 0.166359439 -0.0959352478 -0.0512749404 0.0765138119 -0.154294968 -0.208470017 -0.201069385 0.0581307858 0.0786459297 -0.180866838 -0.213939741 -0.103269294 0.00789953768 0.176427498 0.102004424 -0.0548213869 0.185219988 -0.161328897 0.119971231 0.214503333 0.14214541 -0.0694469959 -0.118148819 -0.126568466 -0.12900421 -0.160701007 -0.0514311939 0.169151768 0.149399057 0.201706156 -0.172729447 0.0822001845 0.0545862466 -0.134392321 0.0434386283 -0.0479016751 0.0541823357 0.158885255 -0.09142977 0.197498277 -0.167603403 0.132319197 -0.102739789 0.119485959 -0.140581161 -0.189739808 -0.0908891708 -0.0630740374 0.0723706335 0.0941010565 -0.0227806568 0.0900176913 0.148701057 -0.0652091056 -0.0770889521 -0.0362821072 -0.179783881 -0.21116361 0.122154102 0.177898183 0.0526371747 0.0269353241 0.0857601315 0.216020301 -0.107579701 0.128904447 0.054578051 0.103795692 -0.0113690645 -0.119569071 0.108074889 0.00509743392 0.0331829488 -0.0238016397 -0.0806140751 -0.163161382 -0.168502867 -0.0399769545 -0.0122187585 0.200566009 -0.0271293074 0.0619007498 -0.0564962178 -0.130486205 -0.066040799 0.112007633 0.00720499456 -0.0206535459 0.096410349 0.125088289 0.147634402 0.0159186125 -0.119035274 0.178178146 0.0365983397 -0.0527665764 -0.0766764581 -0.107746065 -0.0877965093 -0.207479611 -0.10734468 0.0227864981 -0.0744823366 -0.161112726 -0.197631866 0.189613149 -0.185942352 -0.020772472 0.0157320648 0.0533249527 0.0798774213 -0.122072697 -0.0572315753 0.154736266 -0.0325057507 -0.0629333258 0.101814345 -0.0899652839 -0.0534769595 -0.122509293 -0.165780842 0.074484095 0.0874628574 0.0341077 0.00585184991 0.1862946 0.171884611 0.0217692852 0.0554678589 -0.195318297 0.00873592496 -0.038867563 -0.145357221 -0.0936275125 0.135312811 -0.123575695 -0.121628001 0.138502613 -0.0343277603 -0.0308768153 -0.199197263 0.0124370605 0.00450140238 0.0168203562 0.0565335304 0.194811717 -0.125375807 0.152512774 0.178165004 -0.067452997 0.172620848 0.0442763716 0.126086667 0.126195416 -0.00261233747 -0.12715295 -0.0116322637 0.0244878531 -0.0420569479 -0.0489893407 -0.103948087 -0.194147572 -0.136298835 -0.197744489 -0.155147403 -0.144872159 -0.0447314978 -0.163351804 0.0671931356 -0.210256308 0.181948051 0.0106613636 -0.193160713 -0.181537583 -0.107425615 -0.127407789 0.20466502 0.00888974965 0.144979939 0.158022746 -0.194642037 0.210226044 -0.212851912 0.166750088 0.0771187395 0.0843290836 -0.174083322 0.0852144808 -0.207569584 0.15496017 -0.17085737 -0.0667669326 0.0964765698 -0.0886724293 0.120675996 -0.139222488 0.014391005 -0.137626171 -0.0137097836 -0.0147678703 0.198397741 -0.0923225284 0.103191569 0.142688408 -0.0913800597 -0.185352087 -0.14781563 0.174505517 0.02180852 -0.0825323462 0.11374937 0.110285684 0.104386434 0.161401376 0.135937288 0.17080535 -0.0523508936 0.0874292403 0.114492789 -0.0201862305 0.166313693 0.134245828 0.044553414 0.20096691 -0.0094486773 -0.109829001 -0.102083087 -0.048563078 -0.0473754704 0.135723069 0.0740040392 -0.0681224465 0.0199378431 0.0159724504 0.155929372 0.154611811 -0.198456585 0.183464333 -0.0562392026 0.120498225 0.130089268 0.166842505 0.010668844 -0.131082982 -0.115600899 -0.103601106 -0.00212794542 0.143679813 0.178288147 -0.174668834 0.108716354 0.00984026492 0.0171459615 0.0398878604 -0.0154120773 -0.0376143008 0.183139786 0.0423324257 -0.00311000645 0.15201132 -0.0449348241 0.0411461741 0.0920134932 0.0221730471 0.0914157778 0.119179353 -0.128621578 -0.149694562 -0.067012012 -0.185341299 -0.117086858 0.0772460252 -0.0213351697 -0.171175972 0.153081045 0.110812977 -0.0527641475 0.131288633 0.0473815054 0.0458607525 -0.176025331 0.118809685 0.147665456 0.104117289 0.11545755 0.174477026 -0.105114318 0.21178697 0.137510374 0.21256651 -0.0163915604 0.0784160346 0.0342559665 0.146447256 0.159192368 -0.0697384328 0.142851159 0.125387326 -0.144943848 0.0215848982 -0.205837697 0.12509428 0.0184182227 -0.0967394188 -0.165151507 -0.0142404735 0.104217067 0.0804832727 -0.0904078186 -0.211816132 -0.186694339 0.160249218 0.169335291 0.194926903 -0.156068698 0.0739769787 0.112955108 0.0859761089 -0.0413690209 -0.0103305876 -0.214461967 -0.00220409036 0.0497616082 -0.142469123 -0.108723938 0.164618984 0.193078652 0.121188059 0.169796184 0.0628244728 -0.110871814 0.00555121899 0.196436986 0.146068022 -0.204416886 0.108440921 0.0717491657 -0.0419820994 -0.202093452 0.046655789 -0.213118687 -0.0738265067 0.201398209 0.190010354 0.134671435 0.0577925891 0.105321243 0.0916577727 0.2120478 -0.0295900553 0.190685168 0.0929719955 -0.0358914584 0.030744046 0.161590502 -0.0621115565 -0.0530126393 -0.114318214 0.00895825028 -0.0612418652 -0.0205574781 -0.0890066624 -0.130526781 -0.0148858279 0.125859484 0.088974759 -0.0389558822 -0.117285594 -0.11924547 -0.21629554 -0.0608899891 -0.193787634 -0.206372887 -0.121276736 0.0399113446 -0.10892231 -0.0043925792 0.0563111156 -0.0429309607 -0.0561089665 0.143857375 0.198619738 -0.170868114 0.110393509 -0.0713414699 0.168767825 -0.123406231 -0.171155483 -0.151524007 -0.0630831271 -0.116945058 -0.121831022 0.157968029 0.00178436935 -0.121621549 0.121354058 -0.119465627 0.0285650492 0.0701958686 0.205143854 0.024393037 -0.132433847 -0.103161149 -0.0826455355 -0.109971575 0.102918997 -0.0699379891 -0.0727377683 -0.0829387307 0.126537696 0.190180942 -0.184601486 -0.124867566 0.129507914 0.17058669 -0.0512817055 -0.167644083 -0.0459512025 0.115003869 -0.100187942 0.0975338966 -0.0351921171 0.182260707 0.0181757212 -0.170957923 0.14180927 0.000189900398 -0.0782412887 -0.131089419 0.0339972526 0.175408676 -0.0681886673 0.21040915 0.0373844355 0.071604833 0.119960502 -0.0766117722 -0.145311221 -0.21384941 0.168538079 -0.121509276 0.0366761833 -0.0695175529 -0.0186810195 -0.168163538 -0.093255803 -0.066438213 -0.06691131 0.145588771 -0.0291061699 0.164179936 0.0236431658 0.0862588733 -0.024677664 -0.0876730829 0.0569633693 -0.165546805 -0.159477264 0.0129503608 -0.130166024 -0.155320436 0.152000919 -0.215876535 0.0798825175 0.0710681528 -0.0963910446 -0.162591815 0.110043481 -0.0218766481 -0.0476924181 0.178839758 -0.124152072 0.049907282 0.00301502645 -0.0466163158 0.19037123 -0.0795731246 -0.061778143 -0.101826951 -0.0281918496 0.118765607 -0.0150453746 0.146913067 0.0751392394 -0.164122105 -0.15520981 0.163700745 0.0548744351 -0.0938015729 -0.0164318681 0.155254617 -0.0936539397 -0.181933865 -0.112966724 0.00165176392 0.00523485243 -0.0341027975 0.0846347958 0.146627143 -0.13444379 0.0549523979 -0.104309112 0.0918891877 0.133545563 -0.214002609 0.0659228116 0.145625278 -0.147034526 -0.215351731 -0.0165674239 -0.169171289 -0.149266541 0.0289853364 0.0674836487 -0.0101496577 -0.19863373 0.191456392 0.13925688 -0.127273679 -0.0830198824 0.0128667355 -0.00090457499 -0.0971823111 0.110065117 -0.0028360635 0.101495519 -0.214313045 0.153006449 0.0201432854 -0.0251346529 -0.181473985 -0.114532851 -0.178860873 0.208337113 0.211663172 0.091600582 0.197902307 -0.148595601 -0.100968473 0.0851389021 -0.148769185 0.172153726 -0.107144497 -0.171870291 -0.0863629431 -0.182934195 -0.180052817 0.080251798 0.176699266 -0.167886123 0.026637435 -0.173269644 -0.208459496 0.0654234737 0.099204585 -0.149507642 -0.175706327 0.128977373 0.0937536806 -0.170647964 -0.206095487 0.167361483 -0.155004263 0.149089083 0.00565069914 -0.0731569082 0.184508279 -0.0208512396 -0.128958374 0.033260271 -0.158439204 -0.0909350514 -0.0607281625 0.0364444107 -0.042305544 -0.15773192 -0.215652406 -0.173622519 -0.139746636 -0.193419278 -0.10281644 -0.11067798 -0.122570254 0.188530162 -0.0451469272 0.0693991929 0.00381150842 0.0770897716 -0.0268409252 0.134338334 0.157168493 0.07287018 -0.142154962 0.188371971 0.205318674 -0.11241357 0.102926865 -0.114252038 -0.157263845 -0.194029048 -0.148483783 -0.00741705298 -0.155988425 0.179024622 0.0354434401 0.0520162433 0.0387610644 0.0499956161 0.167682186 0.0962207466 0.190279439 -0.215855837 0.0685293525 -0.145040542 -0.142585114 0.0519675761 -0.0611594915 0.114597276 -0.0100210309 0.21528922 -0.057690993 -0.205565825 -0.00463534892 0.0865986794 -0.0325067341 0.092532143 0.0555264503 -0.179173589 0.112895504 0.0829366297 0.038398847 0.0384380966 0.0321491212 -0.208782479 -0.118482225 -0.0243181288 -0.0181523263 0.067361787 -0.108105697 -0.0424148738 0.149324343 -0.162934825 -0.109023385 -0.187226266 0.0267538428 -0.0207576603 0.171189651 0.0916840881 0.18043752 0.160048321 0.0202057362 -0.035435915 0.188651487 0.157229885 0.0754751116 -0.120571256 -0.0149262398 -0.0128988922 0.13711606 0.137742922 -0.0248965323 0.176231846 0.0165475011 -0.0700546056 -0.0750510693 0.112596139 0.169082984 0.0739284605 0.167029604 -0.152689919 0.133085862 -0.120052122 0.117366835 0.168057874 0.120951995 -0.00274479389 0.170090929 -0.137612537 0.160551772 0.107313588 -0.187586263 0.0210244209 -0.197788477 0.120084122 -0.17474404 -0.199295804 -0.185602799 -0.0883810967 0.143523946 0.0422050506 0.096741125 0.139212891 0.143377319 -0.209460288 0.0242591798 -0.128646553 -0.0646732599 0.19039993 0.049809888 0.195996508 -0.173688993 -0.203872055 -0.0360327959 0.140985116 0.165086731 0.118019864 -0.0698265433 0.185214415 -0.069292441 0.144163057 -0.0690802932 -0.160331935 -0.0889242291 -0.00966438651 -0.137280941 0.117105022 0.00400812924 -0.165843144 -0.021515578 0.0821611434 0.131999329 -0.0664433241 -0.139958367 -0.142741725 -0.0266040862 -0.213204071 -0.0263046026 0.0130944848 -0.0404535085 -0.00415740907 0.125727281 0.0925602466 -0.179619938 0.0838381499 -0.158369884 -0.153768957 -0.151555181 -0.187208101 0.128862068 0.176370516 -0.0835698843 0.205712125 0.138110653 -0.00123369694 -0.0797283351 -0.135244101 -0.140633434 0.193839416 0.148164049 -0.0998520032 -0.104247481 -0.122175425 0.0464821011 -0.100138336 -0.198886871 0.138666347 -0.00737214088 -0.200136989 0.111531869 0.00754413009 0.134365484 -0.0296986103 -0.0602438152 -0.084937796 0.0474634916 -0.107165352 0.176186338 -0.202273816 0.107645705 0.0710564703 0.0169677287 0.107554391 -0.200600058 -0.207858801 -0.0488333553 -0.113134228 0.143263802 -0.180748641 0.121511653 -0.0200081468 -0.0371249467 -0.0852490515 0.0852340311 0.116539136 -0.121431179 0.179835275 -0.180221707 0.0971756428 -0.0671808124 -0.096670717 0.122443482 0.213069484 -0.0251551419 -0.211645678 -0.129469305 0.129253551 0.176968321 0.169198945 -0.0636038035 -0.154629558 0.0159834474 0.0290882587 0.00970223546 0.186621442 0.0556791872 -0.100677237 0.114027902 0.0493647605 -0.0984661877 0.0843400508 -0.0654053688 0.156705692 0.102047458 0.187493667 0.185438499 -0.0815944672 -0.107716076 0.0613776296 0.150048301 0.0228931904 0.170780048 -0.137341127 -0.0778926015 0.170413241 0.0416327566 -0.153572038 0.213817045 -0.0768222362 -0.188539103 -0.182397917 -0.168795973 0.0762984902 0.210339829 0.133393303 -0.0139060915 -0.18056497 -0.177289739 0.0589458495 0.163053647 0.0959977657 0.179883704 0.0405377001 -0.188018471 0.12062864 0.195076212 -0.112741664 0.0070233047 -0.00372958183 0.0735349804 -0.0911760628 0.130434319 -0.0278169364 0.0758306235 -0.148699552 -0.124928117 0.0078060478 -0.144792289 -0.0992983878 -0.0221376866 0.160661682 0.0157590657 0.170573518 0.0307497829 0.182121798 0.0635909587 -0.164019033 -0.0333197862 -0.162705213 -0.118409701 0.155257002 0.215621695 -0.0587076843 0.204138085 0.0382706374 0.129995152 -0.169717059 0.00614340603 -0.0285736173 -0.0124229193 -0.0980990678 -0.036005795 -0.133969933 -0.0159716904 -0.0219367445 0.00796018541 -0.0607555658 0.209069833 -0.185915351 0.147220716 0.189130202 0.030764237 -0.146559015 -0.208305672 0.0384532064 0.128376588 -0.113073111 0.0739213377 0.0925926119 -0.0880533606 0.118848041 -0.193757892 -0.0761750787 -0.21023725 0.079688862 0.155880287 -0.130557537 0.159254387 0.0349608809 0.0448351055 0.137973502 -0.1518078 -0.145222396 0.0247928798 -0.0132388622 0.118830964 0.154117808 -0.172864541 -0.105114318 0.133014515 0.188770816 -0.161338136 -0.145239621 -0.151124269 -0.162278846 -0.182259634 0.0780197829 -0.00181245804 -0.0462520868 -0.174931988 0.048585847 0.166088894 -0.207235143 -0.0485032052 -0.148649424 0.0603711158 0.170118198 -0.199377924 0.0831111521 0.169277415 -0.214812368 0.0188579112 0.0108002722 -0.134744629 -0.00610370934 0.0125931054 -0.196026146 -0.11241249 0.0151201785 0.11115624 0.0349888355 0.131289646 -0.099500373 -0.077281788 -0.0723926872 0.0142201483 0.182761118 -0.0194433779 -0.183772326 -0.0739583522 0.117502645 -0.135464728 0.131183848 -0.0278644711 -0.0249309093 -0.0981528088 0.00976391137 -0.153387129 0.031068936 -0.0370985717 -0.124247365 0.129386976 0.161854222 0.176230416 0.181838885 -0.0915992409 0.181049213 -0.050342381 -0.169888079 -0.0898328274 -0.0271604359 0.12833719 0.138152823 -0.0109691769 0.147532538 -0.108054027 -0.109916806 0.139280394 -0.0366517007 -0.0943653062 -0.0163408071 0.0449097306 0.101363614 0.186126426 -0.118842945 0.0292662382 0.122838095 -0.0339722037 0.00619986653 -0.173954517 0.19678314 0.19354488 -0.139507577 -0.0768028796 0.0501139611 0.116907135 -0.164727136 0.116348907 -0.17110768 0.186591759 -0.0119434297 -0.211161956 0.0230114013 -0.0660398155 -0.189590886 -0.142587066 0.162947014 -0.0784890652 0.194944426 0.00365324318 -0.198851004 0.0290491283 -0.0833261907 -0.0745511949 -0.0624704063 0.0963942558 -0.211906508 -0.0907975435 -0.177961722 -0.0427532941 -0.102236241 -0.00546956062 0.0529977828 -0.185933009 -0.196291313 0.120790377 -0.165692165 0.193726048 -0.024558261 -0.0765605271 0.0761537999 -0.189036757 0.139987066 0.115916803 -0.20065473 -0.16738975 -0.177691638 0.10213466 0.0104234964 -0.0485365987 0.131837502 0.184338138 -0.0988779515 0.204247072 -0.0221602023 -0.15159823 0.165610358 0.156307235 -0.115729228 -0.160101399 0.132918909 -0.177590266 -0.171231866 0.209421918 -0.0125618726 -0.042188108 0.158009216 0.16228272 -0.195480064 -0.142693818 -0.122729138 0.103459522 0.0109206438 0.0217973739 0.165180162 -0.12373814 -0.0076033473 -0.143857926 -0.00519195199 0.171078011 0.111871764 -0.0883309692 0.124723449 -0.0734157264 0.112301454 0.130824462 -0.0011742264 -0.101004504 -0.0886798203 0.114813134 0.133593991 0.109536901 -0.0095808655 0.208430752 0.200661764 -0.174664035 0.142063722 -0.13328588 0.155720696 -0.04611215 0.11153017 -0.193194419 0.185900226 0.145938799 0.0697552711 -0.113824479 0.162363693 0.110507116 -0.0449661016 -0.0211565644 0.052987352 0.200662479 -0.023140192 -0.0629735887 -0.17330578 0.133468762 0.196979359 -0.085863471 0.158998385 0.0567813963 0.132058069 0.181351647 0.123333141 0.0891850144 0.181670085 0.065961197 -0.1719978 0.17882891 -0.111636549 0.0335636288 0.100588545 0.187518016 -0.112998933 0.00070284307 -0.094347544 -0.0739775449 -0.121693611 -0.15181461 0.0818048567 0.0429217666 0.185056314 -0.215750799 -0.109943129 -0.0452194512 -0.0369811803 -0.156027153 -0.0152942836 0.170745209 -0.150924027 0.137300596 0.207546547 0.214027956 0.1379347 -0.00864961743 0.0639966875 0.0667787939 -0.0205455571 -0.114086241 0.0458551794 0.17406036 -0.0776239336 0.0212613046 -0.0596514791 -0.0619233996 0.0762941092 -0.175873667 0.0782098025 0.177441254 0.161220655 -0.129897699 -0.187710047 -0.0378752798 0.152543887 0.046237126 -0.204474598 0.155026719 0.0340682119 -0.131933391 0.123050019 +tensor_densebias0 64 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +tensor_dense3kernel0 4096 +-0.157126695 -0.0574855506 0.106805876 0.0320915133 -0.00206141174 0.118177101 -0.100708053 -0.199134961 -0.20918794 0.0794857293 0.0141035914 0.133928105 0.15113236 0.0197324008 -0.00279904902 -0.00935746729 0.0766361803 0.000867977738 0.205688074 -0.198612362 0.206960931 -0.14323701 0.0272512436 0.182983592 0.171082482 -0.0637201518 0.0987242907 0.0002386868 0.162869588 -0.140456796 0.10707207 -0.117068589 -0.0303281993 -0.110480852 -0.0395493954 0.168984696 -0.0860318094 -0.161483958 -0.0866992474 -0.0290005654 -0.150826931 0.173386768 -0.0199358314 0.113020256 -0.096807301 0.112699553 -0.068431288 -0.17791903 -0.0107590854 0.0999799818 0.115470961 -0.134925246 0.0773708373 0.159039274 0.104232565 -0.207467481 -0.149478585 0.101562515 -0.134071261 0.0891446918 -0.0215646625 0.135445401 0.0521299094 -0.0931728482 -0.127479345 -0.214786753 -0.0638968945 -0.137846828 -0.0414835066 -0.0179642886 0.0631623715 -0.066822052 0.130865142 -0.204095557 0.101689443 0.119617596 0.0565026551 0.049334988 0.00837221742 0.0244794488 0.0102428347 0.0977496654 -0.0935144648 -0.150627881 0.148609802 0.153200075 -0.0563329905 0.056215927 0.0464795679 0.104156896 -0.0262367725 -0.0373657048 -0.135798275 0.0019262135 -0.0506628454 0.0692674667 0.157293484 0.143221363 -0.0257247537 0.087214455 0.0745731443 0.189587757 -0.0979272276 -0.114433736 -0.070238784 -0.00721460581 0.111420676 0.196136817 0.0945720524 -0.0303674787 0.164077565 -0.0442436337 0.193336055 -0.155984506 0.000209629536 -0.00489896536 -0.152130574 -0.059616223 -0.110140212 -0.00595778227 0.0708914548 -0.0620287061 0.0209028572 -0.0922083482 0.216351762 -0.0388540775 -0.026888147 -0.0587928593 0.147434458 -0.0204119086 -0.118906587 -0.20586434 -0.0120519847 -0.0976502448 0.132977411 0.154209957 0.212346062 0.15579389 -0.0330437273 0.135177597 -0.0062251687 -0.161344945 -0.119463198 -0.0503639132 -0.0308163166 0.0391858965 0.105288014 -0.197656378 0.18541269 0.0359483808 -0.105437554 0.124296054 0.186030731 0.125911936 -0.119132988 -0.112327263 0.16490595 0.023719877 -0.160002545 -0.128723681 -0.0472871512 -0.172228426 -0.0225256681 0.0534228235 0.139174059 -0.213615775 0.0701766759 0.14800857 0.020088464 0.0131229758 0.149838492 -0.0952809751 -0.194486648 0.0805033594 0.0569983572 -0.0351622254 -0.192274466 0.114089683 0.157841101 0.0461343378 -0.106488213 -0.0940173417 0.195608661 0.127913967 -0.0884573311 0.0333370864 0.047921285 -0.0244527608 -0.153076544 -0.139484301 0.091572389 0.135228053 -0.215352252 -0.174691796 -0.120686516 -0.0543301255 -0.174632341 -0.10400869 0.151081875 0.0138199329 -0.172752529 -0.0921034589 -0.0716628432 0.0963533074 0.0415910333 0.172218069 0.11391966 0.15581809 -0.14607276 0.0291023999 0.0870216638 0.143794075 0.0246546417 0.125141934 0.0722792894 0.142199829 0.121365204 0.0614572912 -0.0707428902 -0.112326488 0.0656793565 -0.0271580219 -0.133025199 0.0663781315 -0.0925766006 -0.0254372954 -0.0146106929 -0.0757192373 -0.0408454537 0.187658831 -0.0679282993 -0.0632430911 0.0600588769 0.206816509 0.0895232707 0.10522221 -0.111993805 -0.184027076 -0.0356732607 0.13371332 -0.187464491 -0.211081699 0.15551199 0.175406978 -0.20207116 -0.0688237995 0.0914577395 0.148889259 0.0739640743 -0.102595352 0.0539894253 -0.128157347 -0.20039916 -0.19330959 0.20615609 0.059134528 0.187454417 -0.0544648916 0.00775700808 -0.0706937015 0.117668495 0.106261507 0.152772561 0.214982763 0.113340124 -0.016072914 -0.165180817 -0.0687032044 0.0383688062 -0.196328536 -0.0791411698 -0.0550893396 -0.101884253 -0.123039782 0.0508857816 -0.0438773483 -0.102030642 0.170622572 -0.0622009486 0.0301008224 -0.12734741 0.0114751458 -0.194511533 0.0797934681 -0.0749339461 -0.0118947029 0.137062535 0.00732712448 -0.100179888 -0.00115224719 0.0596233457 -0.0208866 -0.133533031 -0.0603932589 0.0174503177 -0.186507016 -0.181493446 0.152736828 -0.0604177266 -0.122234784 -0.137451172 0.0765140504 0.117531702 0.111436173 0.100522861 0.137475595 -0.0935537964 -0.211573988 -0.135187358 -0.029451713 -0.184125662 -0.151623666 -0.174269497 -0.103650033 -0.00102944672 -0.143751353 0.0417087227 0.0796099752 0.181011215 0.153911576 -0.0459779352 0.141943648 -0.16389814 0.197212204 0.0321303308 0.207686916 -0.064687714 0.147710487 0.103057697 -0.00395381451 -0.0739111751 0.0849238485 -0.201943189 -0.207156777 -0.0458236039 -0.168880522 0.0898965746 -0.0152874738 0.134376183 -0.0323506892 0.173693791 -0.0356045067 -0.194553763 0.160164014 -0.102031365 -0.0266398042 0.0602421612 0.206572697 0.0325950086 0.124050334 -0.0232710391 0.0120393336 0.205563441 0.179635152 -0.0905359387 -0.170831829 0.168649629 0.0268902183 -0.0204891264 -0.118215151 0.165402427 -0.0657758862 -0.115301147 -0.148587286 -0.0857489407 0.0506729633 0.0136355013 -0.030719012 -0.092033565 -0.138116285 -0.130454823 -0.0190627426 -0.0986293033 -0.0813186169 0.207555696 0.174842849 0.1030875 0.156256601 -0.143089324 0.21240975 0.0250414759 -0.137365997 -0.0977394879 0.189960852 -0.127831906 0.0374131352 -0.207841977 -0.151396602 -0.0249908417 -0.0260430872 -0.0633914918 0.0906250328 0.0549818128 0.0146203488 0.0642315596 -0.0944565684 -0.212563679 -0.00588586926 0.209794268 0.192811295 -0.0156236142 0.0953232497 0.0881753415 -0.0219481438 0.193943635 0.180111095 0.0580111891 0.137432918 0.0997781903 0.147628203 -0.154897153 -0.0963822678 -0.190226316 -0.0100667179 -0.087716192 -0.0626818836 0.0502240211 0.180359378 0.148154184 0.0950211138 0.117706969 0.0488625318 0.201384768 -0.049127534 0.210025623 -0.197280496 0.177274778 0.181187347 0.146395132 -0.212779343 -0.0416779071 -0.198303789 0.212326065 -0.138355225 0.141288295 0.0724814087 0.0919541866 -0.0620462596 -0.0109461546 0.0826215297 0.130510971 0.192226604 0.153095648 0.0873828977 -0.0646656156 -0.00413531065 0.0127723366 0.13193728 0.00758217275 0.0704658478 -0.00516480207 -0.184985638 -0.154789984 -0.0439648479 -0.149459332 0.086667493 0.114109471 0.202520564 0.138923392 -0.166992754 -0.166506201 0.019930765 -0.129035801 -0.185046345 -0.0642022789 -0.187827736 0.0897240192 0.125213161 -0.11600668 -0.196505487 0.0188563615 0.21264337 0.0174953789 -0.0213861167 -0.0174924284 -0.0454946309 0.0183577836 0.146833614 -0.0034789741 0.0236190557 -0.0516708642 -0.189648345 -0.17743361 -0.121950261 0.156872973 -0.181991681 -0.0385737419 -0.0710537434 -0.205065012 -0.0422107726 -0.0599258393 0.0554899424 -0.0715423226 0.0601119846 0.182808742 -0.1615614 -0.174240962 -0.205899075 -0.15233013 0.204328164 -0.157540679 0.0845666379 0.150134578 0.0589586049 0.169338182 -0.0579253882 0.197173581 -0.0934999585 0.112076715 0.110988095 -0.0126780719 -0.132616073 0.151363716 0.0772154182 -0.0876179636 -0.180518627 -0.161706641 0.096692279 -0.190084785 0.0226921886 -0.00668142736 0.185254619 0.0861392766 -0.201936901 -0.213290572 -0.122589096 0.02878654 0.0617884547 -0.192588463 -0.161601961 0.0590852648 0.0623936504 0.0313294083 -0.0761685818 0.0296829641 -0.199898362 0.0824902803 0.198977724 -0.0403034538 -0.0285854936 0.151545212 -0.211166456 -0.131143481 0.0314317644 0.0448487252 0.149905786 0.120433643 -0.098152183 -0.134705961 0.0547145158 0.0899544507 0.210084096 -0.018342182 0.0777514726 0.118379965 0.195818022 -0.000165343285 -0.0955355093 -0.144671857 0.141337171 0.206684425 -0.0780220181 0.0312103778 0.182845548 0.120228544 -0.166991562 0.00781027973 0.0845774859 -0.00591942668 0.116821691 -0.216088548 -0.0468594879 -0.15112932 0.100533023 0.0132636875 0.157097682 -0.0538555384 0.132914588 -0.0394010991 -0.203705221 -0.0421920866 0.18172507 -0.00128661096 -0.193118334 0.200568065 -0.00642983615 0.108580962 0.125121847 -0.076031059 -0.124459259 0.123482689 0.110820547 -0.200875193 -0.0221217424 0.118226245 -0.212543339 -0.114321053 -0.043043077 0.114170179 0.162571058 -0.180847496 0.0363559872 -0.000335425138 -0.209742799 0.0172088444 0.130954966 0.197252706 -0.0554653257 0.07071428 -0.00249940157 -0.109752506 -0.151345655 -0.0792563856 -0.139984637 -0.0244339705 0.0251511186 -0.115166061 -0.142631322 0.195103034 0.0195305645 0.105282083 -0.152079523 -0.0346535295 0.115950659 0.141712144 0.0343440324 0.19083105 -0.135767773 0.0996890515 0.195928797 0.0816812962 -0.159756064 -0.0820661634 0.178561375 0.131212071 0.116254911 0.118948236 0.117319241 -0.0789506435 -0.100146957 0.00210238993 -0.0910266787 0.136879072 0.0149486363 -0.163668022 -0.138554275 -0.00843317807 0.177061275 -0.145813227 -0.0914565176 -0.0616182834 0.137941673 0.0922639519 -0.192443371 -0.18171747 0.0761257261 -0.0527823716 -0.198441505 0.185146078 -0.0364455879 -0.14051953 -0.161612809 -0.0128652453 -0.196685791 -0.056507051 0.181762114 0.215789154 -0.146087259 -0.158510849 -0.0545935333 0.0554478914 0.027127862 -0.0421607047 -0.0109715909 -0.0418432504 0.199510381 0.162983403 -0.208149627 0.166910216 0.0214477032 -0.130396232 -0.137612641 0.213810131 -0.0750268698 -0.14587599 0.0243050307 -0.211617649 -0.109607972 0.135121748 -0.21219635 0.0578199774 -0.0200708658 0.137565926 -0.197198987 0.0427995473 -0.209261343 -0.216130346 0.118182376 0.0886124521 -0.18749918 0.0458304733 0.0577826649 0.0155501664 0.0538347214 0.116897926 0.0675992817 0.150234386 -0.173538685 0.0333945304 -0.11678876 0.204104319 -0.0040128231 -0.00687685609 0.0178756565 0.168637499 -0.16385147 -0.107725419 -0.0329520106 0.0934421569 0.129993603 0.114306226 -0.145894364 -0.0651828349 -0.0370082855 -0.0902525932 -0.140202835 -0.0201750249 0.173114523 -0.186792672 -0.0771485716 0.0278511494 0.125717536 -0.107222185 0.139518932 0.153700426 -0.0509509742 0.201740995 0.104132578 -0.0633194894 0.121116802 0.00780233741 0.0607816428 0.131704316 -0.121703312 0.159913436 0.153702334 0.0931637138 -0.136478931 0.11676921 -0.161350429 -0.0753828883 0.203865036 -0.0368384123 -0.183683649 -0.0624289066 0.197641507 -0.151547074 -0.182652146 0.145924047 0.0088853538 0.126733795 0.196693674 0.0226554275 0.14500694 -0.0413766056 0.00203843415 0.0630263537 -0.192400515 0.087594524 0.0970220417 -0.17984426 -0.033694759 -0.0313679129 -0.105836317 0.0454868227 -0.133115023 -0.200766176 -0.171213761 0.182643428 -0.10640464 -0.00477218628 -0.03847076 0.160682365 0.105835751 0.130279317 -0.170154065 -0.106688961 -0.139034748 0.0122244507 -0.128256887 -0.0844175667 0.0594881624 0.182688579 -0.13474375 0.150128052 0.0952850133 0.0703326613 -0.173677534 -0.0488257706 -0.0444202721 0.159974262 0.190990999 -0.0353472382 -0.0180546194 0.157452658 -0.0569780767 -0.0213358402 0.151893035 -0.190880343 0.149927273 -0.103258714 -0.0399723649 0.118404344 0.0889159888 -0.12871325 0.00909203291 0.0901588053 0.114391968 -0.043138057 0.206893072 -0.18423447 0.188503847 0.0138071924 0.0199418664 -0.159600228 -0.0473044515 -0.0548021197 -0.075371474 0.156782851 -0.00151388347 0.214342579 -0.20569998 0.0682104975 0.12152724 0.0301889926 0.167969391 -0.0764096975 0.161032751 -0.0886487365 -0.206539467 -0.076243788 0.130682603 -0.0288303643 -0.00925318897 0.0471494347 -0.142408878 -0.0308110565 0.186039075 -0.0054397732 0.170009181 0.117387757 0.116703317 0.0178319812 -0.186689436 0.141289368 -0.140456647 -0.201120228 0.00991082191 0.192341462 -0.0431391448 0.147545084 0.114769682 0.141500488 0.191045627 -0.167440712 -0.148996681 0.116447613 -0.0135383606 0.0392496437 0.0677683502 -0.0690728575 0.0194753855 0.0969655663 -0.088915512 0.0860759467 0.0830761045 0.0763156861 0.0442091078 0.187748715 -0.134425014 0.0759585351 0.0443917364 0.00605347753 -0.0584502071 0.0855038911 -0.0384435505 0.13034679 0.0136126876 -0.174765155 -0.0735364705 -0.137182921 -0.125313506 -0.0909460038 -0.107215524 0.170525625 -0.165952161 0.147574976 -0.11683955 -0.0789479613 0.0302509367 -0.191689625 0.163636431 0.0917121917 -0.166540936 0.0620786101 0.177172676 -0.02762945 -0.0596448332 0.0891331285 0.188983843 0.0721515864 0.1080098 0.0279607922 -0.0711805671 0.0315285027 -0.16318801 0.0928200334 0.0599386543 0.127471641 0.18867977 -0.170736492 -0.0320067555 -0.0878222734 -0.160152286 0.015084818 -0.0836775154 0.136463657 -0.0577772409 -0.192274928 -0.155489281 0.114086285 0.0845174938 -0.0205082297 0.0766162723 0.158009484 -0.0982128382 0.0835527927 0.0185174942 -0.0640966743 -0.18490465 0.146524385 -0.191483513 0.0678452998 -0.210035577 0.111271456 -0.00573250651 -0.195890069 0.0491714627 -0.190634429 -0.050716415 0.0534233898 -0.116398156 -0.0916863233 -0.0874829739 0.135388419 0.0839824826 0.0592003912 0.15731369 -0.214462742 0.161635563 -0.117136933 0.173469767 -0.105817266 0.013801828 0.088195011 0.021548152 0.0400209278 0.0452926308 0.142297283 0.052139923 0.0141384751 -0.00670439005 0.183231875 -0.191626176 0.134753868 -0.165713474 -0.0872177035 -0.0377053022 -0.209700152 -0.105731167 -0.0682869554 -0.166620687 -0.202528656 0.0238114446 0.164357349 -0.0960412696 0.0232332051 -0.0455344766 -0.125097126 0.187005803 -0.0288244933 -0.192714155 -0.153565168 -0.0222795457 -0.145467222 -0.0506283045 0.191743508 0.175134227 0.0875942558 -0.09715119 -0.0635505319 0.0387471765 0.0454951376 -0.074606061 -0.153338566 0.0808089226 -0.0365998745 0.185341462 0.183271006 -0.00141632557 -0.121094726 -0.110389791 0.0384959131 -0.167536974 0.0705960244 0.178584918 -0.198987842 -0.169557661 0.186842069 -0.00814895332 0.102330431 -0.0696390122 -0.195230648 0.201476976 -0.191139206 -0.00137074292 0.0628484637 0.178756401 0.0765968114 0.0704100579 -0.0427162349 -0.19207935 0.0192184299 -0.139624655 0.123037145 0.00292855501 0.188148037 0.0630035847 0.0529508144 0.029399991 0.203054562 -0.104894884 0.105328694 0.21006532 0.140993074 0.00315232575 -0.179000035 -0.10547787 -0.0841155946 -0.0633865446 -0.0664363056 0.00558611751 -0.14473474 0.1227227 -0.199927106 -0.128521323 -0.197337016 -0.0622540265 -0.160452604 0.152065471 -0.136062264 0.00736641884 0.148117289 -0.109418064 0.0204568207 0.193620488 -0.120582201 0.161344603 -0.0740270019 0.101754531 -0.014318794 -0.140127003 0.0542468578 0.0140614659 -0.0200820565 0.024495855 0.19365795 -0.0116783679 0.0364855975 0.168477938 0.183173642 -0.107395418 0.188568935 0.116810247 0.00311583281 0.153793737 0.151408568 -0.199394807 0.191665605 -0.190544456 0.100212678 -0.00367863476 0.0754798204 0.182757512 -0.00570210814 -0.206991851 0.115804836 0.202300563 -0.137510598 0.205932721 0.165189996 0.147075191 -0.106642447 -0.149072915 -0.0226584822 0.0320993662 -0.0985671505 0.0953820497 -0.147220194 0.183329239 0.045824632 0.20217894 0.18036966 -0.125329971 0.174044028 0.032045722 0.121945783 -0.054343909 0.0695361942 -0.138417184 0.162935749 -0.108932376 0.0330141038 0.00397658348 0.173682645 -0.0209572613 0.025834918 0.200613216 -0.115208901 0.0746159703 0.141632363 -0.128563195 -0.0658599734 -0.0055179894 0.118688807 0.000443205237 0.00501397252 0.0839357227 0.207673594 0.189328447 -0.073323071 -0.190654859 0.211514577 -0.0202999413 -0.192389786 0.174157962 -0.0984217897 0.119033113 0.151484445 0.143756285 -0.013722077 0.0641204268 -0.105519995 0.0137799829 -0.184419781 0.213242933 -0.145870626 0.0681796521 0.191318318 -0.0559816808 -0.118231826 -0.0593755245 -0.12798816 0.0480964333 0.202543333 -0.0850205421 -0.01765576 -0.0468729585 -0.0137963444 -0.15771395 0.146007344 -0.0861515701 -0.0817456096 0.0228354335 0.0390879065 -0.196598396 0.171059117 -0.0186216086 -0.0440758765 -0.191579834 0.159823433 0.0841931254 0.0317444801 -0.131891221 0.0262020826 -0.10778974 0.102580175 0.0815318078 -0.13881129 -0.138324618 -0.00474365056 -0.0562901497 -0.135605842 0.140282646 -0.207215264 0.0563271195 -0.00566716492 -0.050463751 0.0897494704 0.00589996576 0.048700586 -0.141553089 0.0941929966 0.0103686899 -0.209014714 -0.167247295 -0.0600645989 -0.0445585698 0.147961035 -0.0191902965 0.121301457 0.155120805 -0.0214914232 0.21010305 -0.0163163394 -0.167790636 -0.031941399 -0.0248077363 -0.100043148 0.0449023098 0.199064299 -0.0417495519 -0.0922033414 -0.132950917 0.128158197 0.0235210359 0.123539105 -0.210350305 -0.20109272 -0.163113475 0.130565658 -0.187036008 0.207352713 0.0871378034 0.0966825932 0.00610804558 0.126909867 -0.0537379533 -0.173609868 -0.11715252 -0.011094287 0.162966624 -0.0222798586 -0.193959519 -0.125455827 -0.193969384 -0.0395112485 0.208045766 -0.200257421 -0.0425201803 -0.0232228339 -0.0480037332 0.100798085 0.125842556 -0.00353735685 -0.042463392 0.12656258 -0.151784211 -0.0607400239 -0.1362966 -0.0699509978 0.107808307 0.184559122 -0.0125996619 -0.162382856 0.111195669 0.21133025 -0.154573649 0.156366125 0.133030519 0.116170153 -0.115720451 0.0299370289 -0.120089546 0.0311184376 -0.184682786 -0.164773643 -0.125320107 0.168118104 0.0382097811 0.0524417907 -0.125833422 -0.19689396 -0.125287741 0.107386276 0.159628317 0.0366037041 0.0310084373 -0.0683069378 -0.0452191383 -0.052862078 -0.0682935119 -0.0284372419 -0.165120274 0.067906633 0.00676417351 -0.106117174 -0.114322141 -0.0813844353 -0.167716041 0.182620332 -0.0979187116 0.0460508317 0.161265925 0.0488335043 -0.176903158 0.0285978317 -0.170605063 -0.149824083 -0.154779568 0.0128906369 0.0142854452 0.00464169681 -0.181393147 0.214561686 -0.135077938 -0.0834482163 0.0135920346 0.0759151727 0.0210772753 -0.102250591 0.0542795211 -0.193897933 -0.0357793421 0.104950592 0.164675787 0.0187360942 0.157736465 -0.0441996604 0.0558624417 0.0950472504 -0.126065791 0.162697896 0.142026708 0.0847432464 0.182654873 -0.111596748 0.0293165743 -0.137531281 0.0230772048 0.163282618 -0.174575552 -0.0950114205 0.127286032 -0.206165537 -0.0378678441 0.135573879 -0.0910866112 -0.144386321 -0.0795809627 -0.134260535 -0.0384334922 0.027693823 0.173604593 -0.0877761245 0.157923326 -0.193165615 0.0151807815 -0.0849952996 0.0602598637 0.106768414 0.105715886 -0.181482047 -0.039868921 -0.0534184277 0.11644192 0.0530910641 -0.0829390436 0.152465686 -0.0535338372 -0.167962879 -0.0605282933 -0.0950360969 0.0329618603 -0.0160149932 0.163208857 -0.0406022221 0.146055833 0.170449123 0.0277527124 -0.0684752166 0.0025883317 -0.132292509 0.0100304782 0.0675668567 -0.160348505 0.0990598649 -0.139657274 0.215753838 -0.147198573 -0.179775417 0.143523023 -0.0831719041 0.0359287709 0.180110559 -0.156574667 -0.0121713281 0.123282239 -0.0724500865 -0.0733206421 -0.0887407213 -0.0609878004 0.104875997 -0.0997372568 0.101314798 -0.0473549366 -0.0207772255 -0.057472378 -0.152257711 -0.109092399 -0.00999134779 0.14159067 0.0104090571 -0.214492574 -0.160248354 -0.168147266 -0.00365655124 -0.119595394 -0.15138261 0.167704776 -0.163888276 -0.0655872226 -0.0226968378 0.0484855026 -0.184770539 0.116837427 -0.123372622 -0.207454264 -0.0234685391 0.0694852322 0.0877662152 0.105797127 -0.0229719132 0.0435089022 -0.19701089 -0.179032505 -0.18662481 0.165837631 0.116926268 0.107620314 -0.134457782 0.0169792324 -0.104311533 -0.0461479276 0.152431622 0.0959946662 -0.211268038 0.201598957 -0.0656211376 -0.0195753127 -0.0353664905 0.0853936821 0.108217105 -0.210513622 -0.0655173808 -0.142269716 0.136998102 -0.0622018278 -0.129322857 -0.130892605 0.033722356 -0.00413195789 -0.140744895 -0.114857376 0.189625368 -0.0583695769 0.083893016 -0.200472981 0.0929204375 -0.20446077 -0.0715032369 0.142684981 0.134641096 -0.153653339 0.106300578 -0.0490298122 -0.134009525 0.0482119173 -0.144404888 0.18524684 0.0128951371 -0.0209878832 0.191670313 0.0602643639 -0.0846077353 0.0486925393 0.00293599069 -0.144976318 0.182714447 0.170392498 -0.0622222722 -0.0540916473 -0.182267994 -0.0451133251 -0.014802143 0.0871081203 0.0377996713 8.27908516e-05 0.0221576691 -0.135081857 -0.0974165127 0.158520773 -0.116954304 0.0932136923 0.214755937 0.088322714 0.117372468 0.084057644 -0.0774226189 0.144512519 0.115256146 0.197777465 -0.148415744 0.210349515 0.140518084 0.0892428905 0.211030498 -0.199319392 0.215170249 -0.213004097 0.0939691812 0.204320475 -0.0132453144 0.132598773 -0.115263931 -0.058777526 0.155822024 -0.00732532144 0.0113963187 -0.0728674829 -0.00211824477 0.161060676 -0.156901523 0.201529101 0.181527719 0.0275328159 0.149359718 0.0692356676 0.0634347945 -0.20980081 -0.133991599 -0.0389452428 -0.000636458397 0.0371545106 0.117431566 -0.15935266 0.0508061796 -0.00979669392 -0.118933432 -0.0742444694 0.009792611 -0.171720445 -0.086990729 0.119668588 0.16216065 0.15385668 0.0724666566 0.0656969696 -0.0950041935 -0.098818019 -0.0333430171 0.0648747236 -0.146280468 -0.0833846778 -0.153424144 0.00755187869 -0.0642938465 -0.109894507 -0.107881203 0.160527781 -0.0394333601 -0.153864264 0.177677706 -0.0339811891 -0.0912318677 0.00117170811 -0.146969587 0.12327309 0.114076033 -0.188737005 -0.0971721485 -0.145001054 0.0931980461 -0.183134988 -0.0854527503 0.0350367874 0.123969898 -0.188984007 0.0478101522 0.204695478 0.104494676 -0.107502937 0.133590594 -0.00401756167 0.00471292436 0.0834094137 -0.0116496086 0.175209537 -0.192024112 -0.0604959726 -0.196251094 -0.0341761559 -0.170742631 -0.145795718 -0.215364784 -0.0621379763 -0.164018199 0.07622917 0.0183852464 0.111966923 -0.148998588 -0.160786688 0.17111434 0.188727036 -0.0202617049 0.0499432832 0.051380977 0.0404555649 0.0781172365 -0.0753493756 -0.142273232 0.13437669 -0.143610477 0.100351378 0.125279292 0.0626137108 -0.0907604843 -0.205865115 -0.152261734 0.20972921 0.0984849185 -0.0389443636 0.182610497 0.00146201253 -0.18086721 -0.154032886 0.168808267 -0.157764852 -0.100824714 -0.109103136 -0.0826105922 -0.0293349475 0.0090482682 -0.199481472 -0.0532585084 -0.100816973 0.162858233 0.12136443 0.207597092 0.0526144952 0.0252680331 0.21289368 0.216065302 -0.0189656466 -0.178690583 -0.0363747627 0.0135144591 0.117146417 -0.0780750215 0.0572841316 -0.0231686831 -0.0507531762 0.210326448 -0.210217595 -0.027522549 0.0975510925 0.194175437 -0.150981694 0.0688470155 0.0627321154 0.195539698 -0.210576653 0.10893847 0.107132778 0.00832286477 -0.175630137 -0.201970652 -0.116031252 -0.107731044 -0.0416830778 -0.0361775309 -0.186692938 0.142495617 -0.153509021 -0.147607595 -0.171947777 -0.181326464 -0.179671764 0.0382442623 0.13710703 -0.117084175 0.0325603187 -0.119496442 0.050168857 0.0142233968 -0.169033676 -0.117391668 0.118003562 0.187087461 -0.138692722 -0.0028039068 0.0169469267 -0.116770335 -0.213657126 -0.0128091872 -0.104779154 0.181099638 0.170100436 0.0412236601 0.0622157604 -0.179722399 0.178401038 -0.0372063965 -0.0423504561 0.168688998 0.0169196129 -0.216494888 0.181103155 -0.163891375 0.15247725 -0.0862808228 -0.157547489 0.108578846 0.0991903991 -0.175236225 0.184249237 -0.0987389907 0.0890398473 0.127224132 0.188714698 -0.0511976182 0.128275111 -0.14506495 0.050818637 -0.0483737886 0.0756818205 -0.0435076505 0.0189094841 -0.181050554 0.178847149 -0.101324186 0.107731 0.10505794 0.196658626 -0.124232493 -0.0594131052 0.191167697 -0.037816748 0.142768458 -0.00623290241 0.172908142 -0.0103261024 0.163891122 -0.173987046 -0.20514369 0.0355616659 0.214279547 -0.121405885 -0.0289146155 -0.0313306451 -0.00595229864 0.0510881394 -0.101826027 -0.0200932622 0.0230336934 -0.192714006 -0.0609839857 0.108600155 0.137405589 -0.134454221 0.0849657208 0.0664001852 0.152012691 0.146809921 -0.0370990783 -0.143955559 -0.0442373902 -0.0449391603 -0.127484769 0.0397086889 0.0757441074 -0.00686694682 -0.0705605745 0.0969439 -0.0518283993 0.183960691 -0.153093487 -0.0375690311 0.0513159782 0.0758621246 -0.192567766 0.118375883 0.0373012871 0.0581304878 -0.155232579 -0.000803247094 -0.0170486122 -0.145517796 -0.0181593597 -0.0451003611 0.205068216 -0.0198788345 0.148023203 -0.0898589045 -0.0733125955 -0.0827380419 0.0411549658 0.0875618011 0.0670911521 -0.0524138659 0.146805748 -0.207106754 0.0878874213 -0.129396051 -0.0225688666 0.214251623 0.134944603 -0.152428478 0.0187014043 0.0944086164 -0.141199768 -0.144568622 -0.105942547 0.0197801888 0.13677521 0.0558069497 0.0611091107 0.197027966 -0.109127082 -0.0493277609 0.0669540912 -0.168346986 0.100759044 -0.148637295 -0.12741667 0.0233948231 -0.0181860924 0.173936352 0.111329004 0.134927198 -0.0965572074 -0.106675692 0.0991622061 0.214165375 -0.0394777507 0.176774368 -0.0195768178 -0.167057797 0.0424914807 -0.214761108 -0.0518205017 0.123408869 0.0470285565 0.204715028 -0.190392435 -0.0356393456 -0.16835849 -0.121938594 -0.0738039613 -0.104560286 -0.023579821 0.173588797 -0.0516725034 0.20287399 0.0801558942 0.0783201605 -0.0859695524 -0.0562576801 0.177386329 0.15463765 0.173106775 0.0949735194 0.152708903 0.215557232 0.0846872181 0.0608792454 0.142983362 -0.15222235 0.20657368 0.205960408 0.0659510344 -0.211234689 0.0351118892 0.0037907064 0.0813616663 0.173443392 0.0717025548 0.158909515 0.152973458 0.144273266 0.120980605 -0.215547159 -0.200850621 -0.142748386 -0.198132202 0.174755201 -0.0960568115 0.196132317 0.00993926823 0.048041299 0.0877902657 0.182920977 0.164627567 -0.106177926 -0.0988926664 0.123863772 0.131215885 -0.164171204 0.161861345 -0.163644075 -0.211215854 0.0608759969 0.163545743 -0.165823162 -0.0380925983 -0.117642902 -0.0253117979 0.137580886 -0.210156679 -0.00492075086 -0.044863075 0.164828792 -0.0861059874 -0.0935308784 0.0478412956 -0.0779755563 0.180994138 -0.128006727 -0.103610396 -0.196030691 -0.189965278 0.0815298408 0.2067274 0.0220608264 0.00290842354 0.0514466316 -0.0323811024 0.181645885 -0.102425061 -0.130394161 -0.0382018238 0.195813373 0.158885464 -0.159367219 -0.129793316 -0.205292135 0.0048173517 -0.137355268 0.174037889 0.0132748932 -0.141496629 0.052751556 -0.207597762 -0.155121744 -0.036003679 -0.0826149881 0.192338571 0.125312254 -0.0858926922 0.097962901 0.147308573 -0.129296646 0.0238983631 -0.194825277 -0.0384578109 0.0381589383 -0.184259772 0.0901003331 -0.127532557 -0.0990245491 -0.204895243 0.117949054 0.1827638 -0.0284498334 0.174789503 0.10268192 0.0889665037 0.0175136477 -0.185598925 -0.0736357868 0.12161459 -0.106919751 -0.104570769 -0.160945982 -0.150642246 -0.145123333 -0.0704744756 0.190813169 0.0188344866 -0.142471135 -0.0918444321 0.176530376 0.0584255904 0.189831808 -0.058211267 -0.156850517 -0.0901154429 0.142735168 -0.103839584 -0.0623749048 0.204731777 0.0693992823 -0.00772108138 -0.124677919 -0.0546690971 -0.132363498 0.0784289688 -0.081446588 0.189480737 0.043714866 -0.187635511 0.0595112294 -0.173434198 0.197268412 -0.05626522 0.090302363 -0.194684818 0.151601061 -0.159458071 -0.065394789 0.0176953524 0.162905857 0.13324742 0.17081593 0.0997593552 0.0042424798 -0.0725592077 -0.193046227 -0.0655333251 -0.0386802256 -0.00921908021 -0.0953445211 -0.098142691 0.186285987 -0.101041876 -0.00766544044 -0.125749439 0.0352654308 0.123949423 0.206391171 0.137661979 0.153641418 -0.018465668 0.00881282985 -0.146445304 0.0188315362 -0.0437472761 0.134483173 -0.166459069 0.213437632 -0.0896721482 -0.119368374 -0.208905846 -0.0924921483 -0.0352707803 0.159539118 0.170672789 0.144855335 0.0886603147 0.155025437 0.0603350848 0.149687126 0.0543674976 0.0475278646 0.131969735 -0.179241568 0.132778719 -0.116891846 -0.0865010768 -0.188261956 0.198780283 -0.11244341 0.0526076406 0.150701091 -0.0320695788 -0.148526728 -0.109876595 -0.162060603 0.0608467311 -0.124136589 -0.210165814 -8.74996185e-05 0.0928477496 0.142552599 0.200408921 -0.0954560637 0.106668785 -0.206276268 -0.0833361596 0.206934974 -0.0127096623 -0.0223363191 -0.136078522 -0.00460556149 -0.166691914 0.111575291 0.172416493 -0.0743386298 -0.210494369 0.201815501 0.165881142 -0.155305207 -0.112688802 -0.0265324414 -0.0740439296 -0.0619929284 0.176202938 -0.162694901 0.158802494 -0.088563934 -0.182235211 -0.0320754051 0.212443873 0.127940491 0.150646672 -0.0994577855 -0.199109867 -0.153251171 0.119969383 0.105305925 -0.152579874 -0.205649555 -0.131686807 0.132371351 0.0686485022 0.150262013 0.0153412074 0.000373721123 -0.0449287742 0.0906237811 0.18623291 -0.207242578 0.204987213 0.111928508 -0.0321263522 0.000841706991 -0.143958449 -0.0559967458 0.123939082 0.130286708 -0.167011708 0.127166584 0.0817693621 0.171944931 0.0815454274 -0.117465228 -0.126820624 0.0728207082 0.0668064803 -0.0108277351 -0.110265493 -0.177186191 0.0147687495 -0.0927349105 -0.11771816 0.118951336 -0.0860475004 -0.0508719534 -0.13448897 -0.00963631272 -0.0882949382 0.183317527 -0.0427754372 -0.095970042 -0.173225358 0.183680907 0.14589332 0.181552038 0.0047338903 -0.0159994066 0.184031919 -0.165617615 -0.0361702442 0.118310288 -0.128577739 0.0900970846 0.120817468 0.0121731907 -0.0024586767 0.143900588 -0.11650759 -0.0729578733 0.10640873 0.0674733371 0.163032547 -0.125885248 0.0934263617 -0.126190409 0.208533064 0.0406569988 -0.213730782 0.182176933 0.0539519638 -0.00659021735 0.0315499306 0.115776464 0.0199102163 0.0172525644 -0.0841700137 -0.0790538341 0.00301532447 0.0544462651 0.0324300826 0.0127526671 0.0971854776 -0.131471306 0.0943352133 0.0250363648 -0.164065331 0.028339833 0.15615125 0.177204147 -0.205635414 0.059578076 0.133949891 -0.12110319 0.0378938168 0.0373247713 0.138248339 -0.0541843027 0.0871775597 0.161594734 -0.11924877 -0.128725022 -0.0606766492 -0.0906118751 -0.123900689 -0.0385284722 0.101532266 0.0481024235 0.021578759 0.022255227 0.170482919 -0.0163970292 0.206188872 0.182580754 0.0162916631 0.0188887268 -0.143213362 -0.123706236 0.1595117 -0.0273416787 0.0493009835 -0.00917375088 0.183200911 -0.0804378986 -0.0454341322 -0.00495843589 -0.166964933 0.062209323 0.164231077 0.193351492 -0.0436775833 -0.198963329 0.000164464116 0.125392959 -0.158697978 -0.0199134201 -0.0714332461 0.079145506 -0.0536622256 -0.191677853 -0.131036624 0.17728664 0.0319067687 0.0664680451 0.0362394601 -0.114057072 -0.0311946273 -0.110450856 0.158251122 0.111737058 -0.216163024 0.200907364 0.0592425019 -0.150604755 0.214528516 -0.188216686 0.135711983 0.0334444493 0.20044826 0.0695503801 0.180283591 0.100740001 0.0775406212 0.0981078595 0.0455616266 -0.15997833 -0.204173297 0.175740197 0.0229602456 -0.10584984 -0.0417217314 0.213037804 -0.178448901 0.06970869 0.0279659033 -0.0735634565 0.000795289874 -0.215185568 -0.0122015774 -0.178321511 0.102738246 0.0173326731 -0.0131737143 0.185367778 0.0896226019 0.0959400982 0.111431047 -0.202554941 0.0532637089 0.0821350366 0.0949457139 -0.184476212 0.110715762 -0.0918316841 -0.181370392 -0.169735536 0.191303208 -0.041579783 0.00640685856 0.0927261859 0.0372441262 0.142143503 -0.18886894 -0.180721954 -0.066609025 0.120959625 0.0324277133 0.0508685559 -0.187279701 0.125218049 0.13254188 0.177694634 -0.155109406 0.134757593 0.132761434 -0.157867581 -0.0314960331 -0.100717969 -0.158935472 0.0599167496 0.210488215 -0.174666405 -0.0218979269 -0.123410568 -0.028636381 0.19290407 0.138356581 -0.0883597732 -0.147590101 0.212678984 0.130041257 -0.161442876 -0.129597992 -0.147194862 -0.184907079 0.0978445858 -0.166454986 0.0182628483 0.204842791 0.173725292 0.0996963233 0.0977934748 -0.185964331 0.112934008 0.148057863 -0.171723336 0.0423970073 0.0585231036 0.0158793926 0.0871017128 0.0516944081 0.16951786 0.147059962 0.0868217796 0.0337797254 -0.117276408 -0.147217259 -0.0746165514 -0.213648558 -0.0975929424 0.0653419346 0.160603955 0.205436513 -0.161371484 -0.0856019706 0.172185019 -0.062838912 0.153337434 -0.104609273 -0.13978219 -0.211874306 -0.0422247648 0.0102333426 -0.0307850391 -0.0632564574 0.193988517 -0.202429757 -0.0991768241 -0.208691835 0.019052878 -0.153947517 0.0703328699 0.149074927 -0.0477954 0.146283939 0.026265204 -0.019453451 -0.113644019 0.120094284 0.0128409266 -0.137007654 0.135528103 0.106667861 -0.128258109 -0.106512062 -0.178306222 -0.208657607 0.127056107 0.13091661 -0.0716415346 -0.103620768 0.142357782 -0.0678308457 0.215525016 -0.0251711458 0.0360772461 0.0338055342 0.129278883 0.0200708658 0.0881020874 -0.142315865 0.170738652 -0.152272478 -0.128654093 0.178508475 0.0185938776 0.183733359 0.00200799108 -0.201574892 0.187153086 0.0778697282 0.0281781107 -0.0589272678 0.0740235895 0.180511758 0.202488914 -0.013978973 -0.148137569 0.0418080539 0.0369798392 -0.00156468153 -0.101649076 0.144340202 0.0503423363 -0.0438184589 0.086549297 0.153926 -0.021646589 -0.083845377 0.168716565 -0.143692762 0.145200506 0.156982198 0.212185159 -0.0130129308 -0.149407819 0.171806559 -0.0250255316 0.103841588 -0.0694518983 0.186669752 -0.0554724038 0.19854711 -0.167248324 -0.0936573967 0.106194541 -0.0268413872 0.108111158 -0.0177600235 0.178043678 0.0481608063 -0.205687746 -0.0935022309 -0.00280550122 0.183141842 0.00476150215 -0.187436104 -0.0448602289 0.00897616148 0.0642356128 -0.0563916415 0.0507387072 0.0249604285 0.100971624 -0.198308274 0.0238734335 -0.0567769706 -0.00554487109 -0.184582338 0.13439621 0.0777372867 0.14330788 0.173800811 -0.214285746 0.00329041481 -0.141291171 -0.0184162557 -0.0911535621 -0.0594278723 0.0861826986 -0.176766425 -0.149084419 0.209609553 0.159221902 -0.00248597562 0.0143221468 -0.105688684 0.0558973402 -0.132522017 -0.0343398899 -0.115718901 -0.145506918 0.0641837567 0.0495337695 0.207110569 0.216304764 0.0803818852 0.0716506094 0.133285865 -0.192668945 0.140733942 -0.207590893 -0.0602845401 0.083862707 -0.0224624276 0.0317278504 0.0792157501 0.19462727 -0.20217894 0.0897615403 0.210511699 -0.186451107 -0.0383943617 0.0794534534 -0.0722539425 -0.17937319 -0.00545403361 -0.0974171832 0.106717095 0.0839679092 0.127519026 0.0252375752 0.155369714 0.0253385454 0.0945533961 0.0104638189 -0.15603748 0.0592237264 -0.184069753 -0.020330295 0.057822153 0.0114616156 0.0656142086 -0.172344685 0.0191470385 -0.0422422141 -0.144010469 -0.181904599 0.0722179562 0.109326705 0.00833003223 -0.0789770186 0.0605533868 0.132996485 0.206981882 0.105978683 -0.0851583034 0.201674625 0.132053718 0.127251342 0.1376739 0.182700559 0.0396005958 -0.0492386669 -0.146979555 -0.137940526 -0.19931826 -0.113551103 -0.170267165 0.191081539 -0.16073373 -0.214381129 -0.168326184 -0.146023095 -0.133106291 0.114729658 0.0364969522 0.196654186 -0.130197346 0.145301476 -0.0351343006 0.0644648224 0.117901519 -0.164838076 0.0565942377 0.133009657 0.0261878371 0.104536071 -0.104712464 -0.151496857 -0.208070338 -0.0988049135 -0.00539651513 0.208010361 -0.0799753815 0.172623381 -0.0960786939 -0.183289438 0.0865103155 0.0169424266 -0.0409427434 -0.130585164 -0.190176666 0.182087883 -0.100817487 0.0501948148 0.189098403 0.0258161724 0.166725323 -0.196071938 0.00189246237 -0.0450933427 0.143548235 -0.0776820481 -0.143945277 -0.0387052596 -0.177273542 -0.120435186 0.140249088 0.0436225981 -0.197611213 0.189115271 0.151157722 0.204530761 0.176550046 0.200156465 -0.155423775 0.214211419 -0.178521365 -0.0269158185 0.0408677608 0.200190052 -0.210706428 0.124419197 -0.126244515 -0.207336679 -0.0972465277 -0.149348557 0.00324709713 -0.185287252 0.0360580236 0.0340766758 0.167253897 -0.0327230245 -0.109133437 0.182607755 0.0848859102 0.0363954753 0.199896142 -0.0202145129 0.149748102 -0.0631186366 0.178242162 -0.162273988 -0.0243333578 -0.193724141 -0.0508265793 0.157653704 -0.0370112807 0.149044886 -0.0692154765 0.166630611 -0.214429915 -0.0304187983 0.15852268 -0.209511489 0.199191317 0.163992897 -0.0846695751 -0.193697453 0.206404135 0.00754846632 -0.0751041919 0.0443832129 0.0183962286 -0.208828673 0.203282878 -0.00754594803 0.16763176 -0.181747988 -0.066808641 0.0284670293 -0.0688470155 0.21039407 0.203033134 0.0639079362 0.0728154033 0.164765224 0.143860981 0.102417842 0.0412615985 0.216119662 -0.116201691 -0.16753976 0.0572966188 -0.0863375515 0.101057664 -0.065105468 -0.216232821 0.0734959394 -0.0322559774 0.160510585 0.0879258066 0.155449107 -0.176834926 0.042690739 -0.149593711 -0.0475698709 -0.0495912731 -0.211332619 -0.160969466 0.0529582947 0.196321294 -0.151838213 0.0249507874 -0.0555627346 0.102162078 0.162293866 -0.13745144 0.169567928 0.149403587 0.0122514367 0.0748100132 0.206790432 0.200426832 0.0477357656 -0.134002715 -0.204425201 0.176790372 0.0935756415 0.173249617 0.181198493 -0.201122612 -0.128784373 0.184268549 0.178530201 -0.00782261789 0.116377816 -0.204155594 0.0665185302 0.034107402 0.0209877193 -0.187357798 -0.0647852719 -0.037632525 0.114992723 0.118700668 0.104126438 0.00962284207 -0.057149455 -0.124529563 -0.19750008 -0.159052387 0.206457391 0.0175346136 0.0170694739 -0.0657131225 0.0931755751 -0.160908148 0.195794389 0.133698925 0.124205336 -0.0796727389 0.0794835538 0.177745327 -0.0412195772 0.146568134 0.13229607 0.1971163 0.170536861 -0.133567974 0.103086874 0.080261603 -0.145433962 -0.139412344 -0.168002367 0.118315354 -0.141707063 -0.181751192 -0.160568699 -0.0559716672 -0.213606119 0.00351794064 -0.000731810927 0.0736447126 0.169483021 0.205163315 0.0205210894 0.123176321 0.143851176 -0.144668967 0.203434125 0.0415234119 0.108230874 0.117183194 0.215651318 -0.180863082 -0.0214076489 -0.0418627113 -0.138651684 -0.115010478 -0.0697393119 -0.0150319636 0.129774317 0.0589280874 0.105931029 -0.0177201778 -0.0321562886 0.0358223766 0.0536762029 -0.202748969 -0.0250836015 0.189834937 0.126549885 0.0869611949 -0.153901309 -0.093002297 0.0780221075 -0.0437386483 0.00828972459 -0.150068805 0.00523129106 -0.181128815 0.0135798603 0.104887918 -0.198946342 0.128087476 0.00686120987 0.179656222 0.0329501927 -0.0153129697 0.164710835 -0.0612002164 -0.21388647 0.190231904 0.137889072 -0.195558161 0.0878643245 0.137385681 -0.141431779 -0.0536208153 0.1196834 -0.0532976389 0.152026728 0.00241003931 -0.120075554 -0.177655354 0.114496931 0.0584001392 0.0314638764 0.0839282125 0.0118057579 0.18126218 0.0136548579 -0.099561289 0.0213164389 0.0553982109 -0.158691674 0.117851093 0.012513563 -0.0131977797 0.200301811 -0.0134524107 -0.0806817859 0.136712566 0.0672382563 0.132536158 0.18027626 0.00624080002 -0.161246359 -0.0786917657 0.179374442 0.160658255 -0.0778744817 -0.144186914 -0.0636048913 -0.138930842 -0.0137291998 -0.0199502856 0.114141122 0.184315428 0.179583743 0.0613734573 0.0213398188 -0.0581308901 -0.072065264 0.0295560807 0.047800824 0.209220722 0.0364079028 0.150189236 0.160694405 -0.0333221704 -0.0678060651 0.0191192627 0.144015417 -0.108954728 0.0966618508 0.0332125723 -0.163085967 0.200484708 -0.212294176 0.206590459 -0.0400911868 -0.0670110285 0.0159748793 0.147770509 -0.113355361 -0.0732066184 -0.0741320997 0.0209045559 -0.00160127878 0.0545886904 -0.137076989 -0.0209791064 -0.123650335 0.153381154 -0.159977198 0.182971612 -0.215836748 -0.0896137059 0.0500989407 0.00171932578 0.151365414 0.032089442 0.0316585302 -0.00585897267 -0.0895213634 -0.164185658 -0.160314783 0.0141849965 0.192553714 -0.10130436 -0.0838450193 -0.205793828 -0.209522128 -0.00774106383 0.137676641 0.164038435 -0.149509043 -0.0768460333 0.133647457 0.170287773 -0.0975329652 0.0194706917 0.185710177 -0.126894444 -0.133444488 0.114331678 -0.102235056 0.10469006 -0.0599614531 0.151354477 0.0569715649 0.0984553546 -0.149858564 -0.205812305 0.0881819874 -0.0239605159 0.0938916057 -0.144444495 -0.0892632753 0.14585121 0.193881378 -0.162402004 0.185074314 -0.0243577212 0.149410769 0.0778413564 0.0667103082 0.0680415183 0.181937382 0.214987621 -0.0846997201 0.101181045 0.176203415 -0.194302022 -0.181633592 0.072477594 0.204373375 -0.0169824362 0.0437817127 -0.162962958 0.183910623 -0.169930667 -0.0216128826 0.0492420346 0.208079174 0.129349336 0.114597067 0.152462497 0.121766701 0.00290852785 -0.132059962 -0.161680639 0.170101866 0.209867463 0.116910204 -0.189788491 -0.120995671 -0.0675417781 -0.177222222 0.167508885 -0.144136637 0.00924916565 0.0592403263 0.0527731925 -0.156133994 -0.0322316587 -0.081836313 -0.17681995 0.107138291 0.0599684864 -0.0630887598 -0.164004117 -0.191831991 0.0551445633 0.125055209 0.1566699 0.132359728 -0.118240133 -0.141599029 -0.106506638 0.0536464304 0.0631304234 0.111643001 -0.147967443 -0.208386347 -0.0578135848 0.175286904 0.170049444 0.0838841945 -0.114208631 0.165539309 0.161063477 -0.0904228985 0.167596504 -0.122039355 -0.169588223 0.174480125 -0.216178715 -0.0989541411 -0.117958292 0.108204499 -0.112839118 0.0930509716 -0.207842648 0.110288575 0.0663803965 -0.14640972 -0.0028681159 0.0502370447 -0.0680193156 -0.186366707 0.203132257 0.13109155 0.020705983 -0.0712084472 -0.0460359007 -0.0970454738 -0.0501375049 -0.106795914 0.0530007333 -0.209537864 0.0991243869 -0.132345676 -0.0645349175 -0.00909684598 0.203194126 -0.0893118382 -0.0425328314 -0.129088312 0.124726072 -0.106887691 -0.0661574006 -0.172996268 -0.0806813836 0.160866186 0.182240948 -0.121072166 0.181529179 -0.0572959483 0.119428352 -0.0141468495 -0.13036795 0.112726435 0.185401276 0.0409571081 -0.0415803939 -0.0141348094 -0.0924804285 -0.0729169846 0.1393172 -0.116755933 0.147633985 -0.12819308 -0.0397322774 -0.189597502 -0.213788658 0.0791137964 0.208519056 -0.0259398073 0.137752011 -0.157497883 0.201139942 0.202817574 0.0806439668 -0.0947394371 -0.150050789 -0.126597315 -0.0117877424 0.0707615167 0.150758222 0.134248927 -0.114126757 0.130543336 0.0951610059 -0.142055184 -0.132735714 -0.206921548 -0.0587401986 -0.142324805 0.115322426 -0.00468964875 -0.0231197476 -0.058496356 -0.150069118 -0.117841788 0.167759135 -0.0927418321 0.0631027371 0.211069778 -0.0375958681 0.0384059697 -0.0797631741 -0.210780397 -0.19860813 0.086496219 -0.056041345 -0.0573638231 0.114841774 0.214165792 0.0820921212 -0.0749944448 0.186162397 0.135889485 0.0627921075 0.0458071381 0.00141389668 0.0725373775 -0.199350417 -0.0253808647 -0.131577581 0.00755983591 -0.0775761753 -0.212193102 0.0292145163 -0.132095844 -0.156628877 -0.0588057637 0.146109983 0.130766854 -0.148943722 0.141438916 0.0329546928 -0.0143157989 -0.0616960675 0.0782762319 0.118722424 -0.0831049979 -0.15870592 -0.109291285 -0.0633651763 -0.00449773669 -0.0873820633 0.0386355668 -0.0744778961 -0.189774603 -0.0924724787 -0.00338663161 -0.131169081 -0.175162777 -0.0778490454 0.156995818 -0.21556972 0.0521636754 0.149684921 0.198084608 -0.0587452054 0.025866136 0.0606519729 0.0248562098 -0.0257766396 -0.0207657069 -0.0484499782 0.0261851996 0.196185187 -0.0670896471 -0.140118599 -0.107147492 0.0736833662 -0.0517356396 0.0504663736 -0.013216868 0.14736937 0.000289991498 -0.214815766 0.075513944 0.0611351877 -0.0438190252 0.203551635 -0.0825146288 0.00816904008 0.0489982814 -0.155005917 0.0344016701 -0.0429715365 -0.0309418589 0.0205440521 0.0123537481 -0.0676545203 -0.00167359412 -0.181667656 0.0752090365 -0.0246920586 0.132587507 -0.0857286453 -0.0244075358 -0.0667218566 -0.181978464 -0.117303662 -0.104598232 -0.0618536174 -0.105038337 0.179506257 0.211239293 0.203027353 -0.133096173 -0.0161065608 0.166303322 -0.11121276 0.0850153118 0.152649 -0.170789033 -0.200284362 0.0659011751 -0.17212896 -0.0204338431 0.000251024961 -0.16540423 -0.0570694506 -0.0827422738 -0.0293686539 0.0398602337 0.193663791 -0.0925094411 0.0288442522 0.12330316 0.035886392 -0.203408048 0.154223278 -0.17170538 -0.00377206504 0.0264741182 0.0639524907 0.19079639 -0.0474978685 -0.190243363 0.133702025 0.102364346 -0.0797590464 -0.210559413 -0.00951144099 0.188424364 0.139130756 0.0829658955 0.100555971 -0.0380801558 -0.101993628 -0.113111049 0.00094871223 0.034343496 0.135694161 -0.208330497 0.103802308 -0.196048856 -0.00678116083 0.215370163 0.0948642939 0.0959183723 -0.139618188 0.136233672 0.0635977238 0.207357123 0.0764920264 0.0804325789 -0.116363265 -0.183529302 -0.0152658373 0.187227204 0.0615539104 0.135375783 -0.00036329031 0.183333978 0.0855554789 0.181873634 0.162831113 -0.0533504933 0.0574195236 0.146973297 0.124553934 -0.0674829334 0.216437384 0.0662562996 -0.209840506 0.144101307 -0.124124765 -0.100547001 0.103068188 0.083275035 0.0521712452 0.0259274095 -0.209613547 -0.122619763 -0.126278833 0.0072581172 -0.0710828006 -0.0609777421 -0.157053858 0.0312405229 -0.0611746609 -0.0419013649 0.0967079848 0.0718670934 0.0761022419 0.0721357316 -0.0693630129 -0.125304312 0.207055464 -0.129475966 0.161348775 -0.154851109 -0.156295106 -0.131532729 0.185435548 -0.188881174 0.198333725 -0.101520903 -0.215511382 -0.17904231 0.0139137805 0.123306498 0.0399661809 -0.0128628165 -0.00570066273 -0.174747393 0.0863004178 0.0905352086 -0.103300266 -0.0795171559 0.0678971261 -0.162131473 -0.139432266 0.104582086 0.00137126446 0.0801115185 0.10591422 -0.00138814747 -0.00918485224 -0.0309907347 -0.0648845285 0.167080209 -0.122857466 -0.0881578922 0.036638692 0.148640797 0.200689837 -0.0263927132 -0.119156681 0.00603768229 -0.0185314715 -0.200005308 0.0240689665 -0.0433713198 -0.0548884273 -0.00569106638 -0.0233552903 -0.0291206241 -0.116311796 0.0636395365 0.163183168 0.204635903 0.178286001 0.0755580813 -0.095498085 -0.0163207352 -0.107725106 -0.107320264 0.209452584 0.0776030868 -0.162442327 0.0158343315 0.197290406 0.0196811855 -0.140596539 -0.100748993 0.21112664 0.190584406 0.0363497883 0.128557816 0.0206986517 0.0139884204 0.0135868341 -0.127236068 0.00982373953 0.0454858989 0.00864857435 -0.0361451656 -0.085757032 -0.17057094 -0.149183422 0.208194181 -0.00900226831 0.0973605961 -0.140604079 0.110167786 0.0883901268 0.126064613 -0.147400096 0.088841483 -0.184497014 0.0882438868 0.10168691 -0.0235965997 -0.127515212 -0.185897693 -0.158877254 0.184357181 -0.0851129293 0.0569394082 -0.0402308702 -0.117709182 0.135842368 0.184821323 0.0537479073 -0.123963408 -0.0955956429 -0.0735426545 -0.194944367 -0.0815374851 0.196773067 0.00254255533 0.129138544 -0.0349710882 -0.0785796046 -0.0407200605 0.0446368307 0.199753001 -0.133771569 0.198273137 0.153610751 0.0960754901 -0.192536846 0.0661969334 0.144601092 0.086821273 -0.193944037 -0.00604563951 0.149101421 -0.152375504 0.190716758 -0.0113748908 -0.0659008622 -0.0710514188 -0.0101303011 0.0941568762 0.111243948 -0.0357899666 -0.0464055985 0.143035397 -0.113449104 -0.0637322813 0.0785396546 -0.160259455 -0.0691880137 -0.148476243 0.112231001 -0.0866870582 -0.154689431 0.0477229804 -0.0891166627 0.128006682 -0.159961298 0.148611143 0.208686516 0.179355398 -0.00238887966 -0.149380669 0.0497907847 0.150890365 -0.123304747 -0.14698714 -0.114797294 -0.0649234056 0.187631682 0.115531847 0.137493566 -0.0553760231 0.073049292 0.0982836634 0.125619307 -0.0826118886 0.133292481 -0.0994735882 0.00230324268 -0.0773246437 0.109711245 -0.165088728 -0.0837909132 -0.0447171479 0.112568364 -0.0508174896 0.0712846369 0.135524556 0.121146247 0.0928333551 -0.149028003 0.00203436613 0.0942979008 -0.129782692 0.0265180916 0.0305626094 0.133507833 -0.00100626051 0.136327997 -0.173087016 -0.0963325053 -0.114213221 -0.167002767 -0.118075259 0.190600708 -0.134174347 0.170715377 -0.152098417 -0.044834733 -0.0590826422 0.161003277 0.177351579 0.059498474 0.108921185 0.0728326291 -0.151553929 0.0774371773 0.0953739434 -0.192277402 -0.179263443 0.0852985531 -0.0584954768 -0.079195112 -0.0595420003 -0.00194460154 0.0097142607 0.200929597 -0.154794425 -0.174092084 0.0638595372 0.149018094 -0.114165887 0.203675702 0.206568316 -0.194109172 -0.104609482 0.0198217481 0.0643407255 -0.0604828149 -0.00806429982 0.210324451 0.0480057448 0.104611918 -0.164316565 0.00214958191 -0.198680714 -0.102288634 0.0306609422 -0.18793495 -0.0327335596 0.121581331 0.115010425 0.170132443 -0.0875335038 -0.0478410274 -0.0348675847 0.114240214 0.127113208 -0.105314493 0.160528645 0.0712610334 0.077661559 0.139166579 -0.0560211092 0.104516104 -0.0952867568 0.112935141 0.117514476 -0.160322323 0.098430261 0.055253163 0.0179764181 -0.173453927 -0.0486995131 0.0518538505 0.0481189042 0.159328774 -0.0425708145 0.0197885633 -0.068020761 0.140398219 0.14373751 0.20475246 0.0937273949 -0.0679361522 0.184969112 -0.0309610069 -0.213280976 0.214552864 -0.189925283 0.122398213 0.0983360559 -0.0888187736 0.0896621197 -0.108607233 0.0615389496 -0.2134666 0.0667430311 -0.0532538593 -0.0530455858 0.15727587 0.185569867 0.0767538399 -0.121009089 0.0354882032 0.038584277 -0.0874421895 -0.209677026 -0.149922207 0.0353863686 0.165553823 -0.117205948 -0.0943726301 0.160674766 0.163194761 0.205559 0.161745355 0.216400012 0.108894035 -0.144449294 0.0769549459 -0.138593704 -0.0246659517 0.0159128308 -0.213089362 0.0919672698 -0.14726831 0.0273788422 -0.145089418 0.173586443 -0.174836069 0.131200358 -0.0422570705 -0.191893622 0.17520614 0.161106631 -0.133242413 -0.0330068171 0.00661730766 0.177831694 -0.120861821 -0.0370865464 -0.170097694 0.215378121 -0.0190297067 0.174603805 0.0745803565 -0.0991268083 0.0267588496 0.204072908 -0.198128134 -0.180951297 0.131859317 0.152714595 0.0471324474 0.0900431722 -0.111169651 -0.147575751 0.177582666 -0.000165179372 0.123530373 -0.0348376483 0.0388003439 -0.139092863 0.214268342 -0.00258550048 0.0915620178 0.148502842 -0.164714083 -0.125135213 0.0492772311 0.0169745386 -0.122079358 -0.0641498864 0.209790602 -0.0768681765 0.0185176432 -0.11446172 -0.0817563534 -0.194609925 -0.155667216 -0.115726337 0.206607863 0.0874593407 0.184878632 0.0418656915 -0.0557260513 0.0338218361 -0.0617157817 0.0636986941 0.100578383 0.146521524 -0.012948975 0.181519255 0.0604329556 0.212236926 0.0979450494 -0.168196678 -0.035070613 -0.21567744 0.101099536 -0.0728102922 0.186690673 -0.165461376 -0.186162397 -0.174110934 0.036215052 0.0233925581 -0.102633551 0.21088697 0.173645988 0.159506395 -0.127544686 0.121894345 0.0983629972 0.00147099793 0.150600836 -0.209045365 0.152332649 0.192087516 0.16760309 -0.18547143 0.179256544 0.0326432139 -0.179964393 -0.115477636 0.0079780519 -0.136473298 0.181942597 -0.208565935 0.0134567469 -0.126784652 -0.169424281 -0.0628683865 -0.114796102 0.0893148929 0.0177237391 -0.0124684423 -0.0918829367 0.211935773 0.094444707 0.016701892 -0.0590179116 0.0849123448 0.108921126 -0.20818451 -0.0456367433 -0.192618713 0.152746841 -0.215566471 0.00875625014 -0.189330056 0.0378446132 0.0927370936 -0.151373893 0.0614693612 0.158985659 0.104175046 0.105728164 0.0458672792 0.207965508 -0.178669825 0.00418125093 0.0559802204 -0.0249681771 -0.0376786143 0.106480464 0.0562428087 -0.170471475 -0.0725654066 0.0408393592 -0.0887342691 -0.18532142 -0.0839830488 -0.07338579 0.00157360733 0.12650533 -0.142261565 -0.000929355621 0.204841927 0.172537729 0.0033159107 0.0687571019 -0.0839198679 -0.152874768 -0.18799895 -0.0798550099 0.21561344 0.180276021 -0.163363978 0.0622868985 -0.0431992263 -0.0551945865 -0.0266679972 -0.188748717 0.0349755138 0.0465333015 0.0533083826 -0.178667665 -0.0362516493 0.151705757 0.194856569 0.0607622713 0.0183658749 0.175402328 -0.101102784 0.0227563977 0.0491989106 0.146571085 0.0980971605 -0.0472928286 -0.184292138 -0.111208268 0.0657477528 -0.0478032976 -0.0550544858 -0.0246023536 0.0837624222 0.0581302792 0.207286611 -0.0746527761 -0.151319429 -0.042408675 0.212022647 0.181054071 -0.197607398 0.0946860164 -0.195584744 -0.145901322 -0.0375304222 0.033589229 -0.0719570816 -0.163729697 -0.0788363516 -0.00830960274 0.130213246 0.0206764042 0.0817540139 -0.0503546745 -0.0202822387 0.047159031 -0.0727578998 -0.115029015 0.0792359263 0.0107904077 -0.0341112614 -0.192723095 0.134535626 -6.81430101e-05 -0.059693709 -0.17601274 0.183006659 -0.202908888 0.0816902667 -0.094257988 0.0125491768 0.16863285 0.101468727 0.14817898 -0.212127388 0.122662589 -0.116163909 -0.0831100047 0.0797502249 -0.178151309 -0.131055266 -0.0195331424 -0.13432461 0.158854887 -0.189599097 0.198506609 -0.0405822396 0.0368385166 0.0968445688 -0.175171196 0.106279299 -0.152216777 -0.15213719 0.138414755 0.205762491 -0.0651920736 0.146296307 -0.117051035 -0.136864215 0.0811170489 -0.00661365688 -0.0708380789 0.165561602 0.0473368019 0.0235514343 0.100686476 0.215413198 -0.131596476 0.10411568 0.0620991141 0.124507055 0.0278695375 0.0819171816 -0.0375207663 -0.0883098692 -0.126225829 0.0735081881 0.0391746908 0.0340031236 0.193162784 0.0544418842 -0.0302834511 0.110239729 -0.104769245 0.171288803 -0.0160502493 -0.141798377 -0.0218096972 -0.0494750887 -0.126606718 -0.175714895 -0.0657417625 -0.124705948 -0.169766977 -0.0798291415 -0.207838416 -0.0835472196 0.181245521 0.194337621 -0.0133327544 -0.0225114077 -0.059228152 -0.112821728 -0.182255551 0.199863151 -0.0284454525 0.0473324209 -0.00579693913 -0.161332101 -0.0645648986 0.0952647775 0.00672772527 0.196919993 0.0321274847 0.131383255 0.0805868655 0.0936032981 -0.0599137098 0.0680793971 0.107974693 -0.15697518 -0.0510457009 -0.0746485442 -0.0553661138 0.186789319 0.0522751659 -0.15157029 -0.0520856678 0.18157135 -0.170726836 -0.208391249 -0.200379699 0.205637619 0.0842874497 -0.0989112481 -0.175790459 -0.0860273093 0.0626900345 -0.192758396 -0.146140635 0.0100079179 -0.176879883 0.168764278 0.00368328393 0.0324149132 -0.17917487 0.177173302 0.200694308 -0.210634872 -0.0324780345 0.119420663 -0.0816995203 0.00673216581 -0.111612543 -0.0376621932 0.19222717 -0.0223220289 0.194980606 -0.145521462 0.207889572 -0.141779751 -0.153480828 -0.195811972 -0.133850738 0.194634274 0.184633091 -0.0140720457 0.061757192 -0.114701897 -0.134145856 -0.136690974 0.166621342 0.117703721 0.0755834728 -0.0677462965 0.0211389661 0.00449576974 -0.139145881 0.119776383 0.0561598092 -0.18665351 -0.0138680935 0.0949431807 -0.0917117149 -0.0158595592 0.114862189 -0.0221781582 -0.10214591 0.0696896464 -0.0837246925 0.00264398754 -0.187503725 0.140037909 0.129311964 -0.202455819 0.055163607 0.150236055 0.0551903993 0.00989967585 0.130196467 0.00960342586 -0.0921220928 -0.0849290192 -0.134404302 -0.11196918 -0.0373286903 -0.0546809733 0.184257761 0.200430349 0.146209285 0.0355636626 0.120885 -0.213786125 +tensor_dense2kernel0 4096 +0.0720734745 0.105637982 0.0826498121 0.174459711 -0.17083244 -0.164170951 -0.0992320105 -0.199974179 0.212193832 -0.198795408 -0.0704252273 -0.0650933236 -0.0619525164 -0.0320592523 -0.183288917 0.0749848038 -0.171131581 -0.0473029464 -0.0257246494 -0.0284899473 -0.100247875 0.109176174 0.0562035888 -0.0802446306 0.161254063 0.049738124 0.15917255 0.149879828 0.121465042 -0.057305187 0.185628131 0.112033591 0.0510044545 -0.213382721 -0.0427236557 -0.167345375 -0.0293042362 -0.178356037 -0.190877557 -0.141087845 0.173438951 -0.159119084 0.0494776219 0.079099521 0.17175065 0.107822731 -0.0595033914 0.0650085062 0.100640163 0.0919277817 -0.135156244 0.0512526482 -0.0657977313 0.126258031 0.075960204 -0.166769713 -0.152529597 0.18229343 -0.0445462316 0.0751874 -0.100305684 -0.156579211 0.181582704 0.0235551596 0.19425033 -0.209029838 -0.0217839479 -0.0254406482 -0.0942557678 -0.213592961 0.203400418 -0.208509609 0.216371164 -0.195422143 -0.149665713 -0.0889532417 0.120656893 -0.108100176 0.00744694471 -0.166092783 -0.0159193873 -0.0784205645 0.113573 0.0390408486 -0.00102567673 -0.102747634 -0.0357110947 0.147719309 0.192879096 -0.209094822 -0.0491589606 -0.0892587751 0.108518079 -0.211746395 -0.143895626 0.116476521 -0.0674594939 0.0497550219 -0.0938904062 0.177796021 -0.214697868 -0.0776524246 -0.00565296412 0.0191742331 -0.16604808 -0.20863381 0.145207301 -0.0375644267 -0.15207234 -0.192606121 0.0441105515 -0.0884584188 0.0231148899 -0.11371959 0.207362577 -0.0950652584 0.0148147941 -0.191183746 -0.0615043044 0.0490771979 0.178337052 -0.193223432 0.024641946 0.0074351728 -0.172553688 -0.149241805 0.20268698 0.123700187 -0.169300392 -0.0261925757 0.104502216 0.118681476 -0.0692069083 -0.129921585 -0.113933034 -0.11706657 0.0183103979 0.0464295 0.211395994 -0.0504977554 0.178118631 -0.14344871 0.0141696632 -0.154745445 0.111318991 0.211866602 0.03315714 -0.165968478 -0.139052242 0.164127693 0.0643841475 -0.0787521601 0.0204184204 -0.0770325214 -0.204772279 -0.184275821 0.0654207617 0.0275883079 -0.0921096504 0.0233342201 0.0394270569 0.209976688 0.0149585009 0.0551626235 0.174928054 -0.0178036988 -0.213502631 0.164499179 -0.016137749 -0.119730376 0.0462367684 -0.0734151155 0.193203107 0.210113987 0.0534619838 0.102362767 -0.10706877 -0.0340105593 -0.103884488 -0.188265726 0.041910097 -0.0674270838 -0.0284549445 0.0487232953 -0.215747237 0.13754116 0.106867805 -0.204176232 -0.190663904 -0.0368545651 0.125092879 0.0909042507 -0.0809390694 -0.0685413927 -0.128465831 -0.216301113 -0.163918018 -0.201746523 -0.0725228786 -0.00302271545 0.164322391 0.178860977 0.148449615 -0.0404467881 -0.179867387 0.169904634 0.207575604 0.138645962 0.170595154 0.0945320874 -0.130620271 0.113526747 -0.00541184843 0.152506873 -0.0522951335 -0.129133582 0.0760927051 0.0783075243 0.188740298 0.0508348197 -0.19386372 -0.116527982 0.0283779353 0.0206809491 0.20868279 0.0649324208 -0.185373768 -0.0604107529 -0.169076473 0.143537179 -0.172874555 0.0939408392 0.123755321 -0.189508453 -0.100344196 0.0436903983 0.213112816 0.115385398 -0.169349328 -0.215518981 -0.198888525 0.202982381 -0.125230253 -0.185521439 0.00198934972 -0.14029415 0.00307768583 0.0750704259 -0.169366568 -0.0786624998 0.0676298887 0.066672042 -0.024256289 0.0443574041 -0.0342482179 -0.031995818 0.209891185 0.181221738 -0.193047717 0.135495171 -0.108327247 -0.204249844 -0.189474493 -0.121228576 -0.123185612 -0.0534810424 -0.156994596 -0.0752690583 0.0084772557 0.108222678 0.0465608686 0.0895437151 0.143872544 -0.104804501 0.0283998102 0.0479630083 -0.0106025189 -0.0323521942 0.131077453 0.0196629614 0.0864436179 0.157585368 0.00220997632 -0.121629551 -0.100336708 -0.0411036462 -0.166649342 0.171600893 0.0959453136 0.133716688 0.0480598956 0.158875659 -0.0467371047 -0.0305455774 0.168077901 -0.15827857 0.0939979702 0.011012733 -0.0114109814 -0.123054445 -0.111475863 0.095322594 -0.216478214 -0.184146523 0.0482996553 -0.110009462 -0.00916042924 -0.203010574 -0.193343967 0.0094948262 -0.158019334 0.0856252164 -0.0762539059 -0.173388675 -0.116788447 0.198375896 -0.0908947438 -0.171783537 -0.050374344 -0.0306826234 0.0520980507 -0.183639258 0.0776970237 0.155443296 0.167070076 -0.002620399 -0.0791401863 -0.120239705 0.207253709 -0.103244774 -0.00915181637 -0.0175642371 0.0140483081 -0.147256434 0.143646672 -0.148113787 0.167795584 0.0473842472 0.176655337 0.207175419 -0.0114213526 0.0604935437 0.0820235759 -0.147017658 -0.00106577575 -0.162913442 -0.0049264282 0.189580783 -0.211456299 -0.0513359457 -0.0622351766 0.0690534562 -0.0814784765 -0.0880493373 0.0992848128 -0.0771092772 -0.0927407965 -0.0245794356 -0.126305059 -0.0604246408 0.0372974128 -0.211315066 0.0360903591 -0.0675100386 0.0739898831 0.0732542723 -0.110112444 -0.138786674 0.0314367712 -0.0581140667 0.200713113 -0.153496727 0.0547394007 -0.210231006 0.212144747 -0.184224308 0.0484436899 -0.197295204 -0.054711327 -0.0314878225 -0.161253631 0.0952591449 0.119271263 0.0519188792 -0.191073805 0.158467278 0.00224249065 0.170322046 -0.0609520376 -0.171915159 0.0196994096 0.0417354256 0.0659447759 -0.172321454 0.179679766 -0.0142251551 -0.169347882 -0.214844733 -0.101831958 0.0442094058 -0.101700746 -0.134787217 0.163799331 0.184489831 0.0340359062 -0.0348798186 0.196430877 -0.176207244 -0.0952511355 0.0603881925 -0.201083273 0.0413215905 0.106455222 0.0991366059 -0.0774784088 -0.187793359 0.183862135 0.00496023893 0.186999306 -0.109451048 -0.120062239 -0.131701216 0.0669701546 -0.180453733 0.215405986 -0.153336346 -0.122806877 0.0785367638 0.110117957 0.0217699111 0.201986924 -0.157226518 -0.20275785 -0.0811823457 0.140200213 -0.135767937 0.0254964978 0.101331577 -0.0358804166 -0.190218121 0.20299004 -0.0010227263 0.0031568706 -0.153422713 0.171068802 0.151070669 -0.00406464934 0.206621692 0.131635562 -0.066198498 0.110561058 -0.202556014 0.165333673 -0.187573507 0.166896269 0.109915867 0.0228767693 -0.195554242 -0.0597096086 0.120711878 0.143912867 -0.15907675 0.167503878 -0.00709298253 0.170712337 -0.00904238224 0.190537795 -0.209040567 0.0574344546 0.128737286 0.186002746 -0.0965514779 -0.0268673003 -0.00687153637 -0.0780095756 -0.201512128 0.17791371 -0.214620963 -0.120057642 0.171930537 0.190445766 -0.0291093141 -0.182580233 -0.213182434 -0.0890120864 -0.134921581 -0.130356744 0.208580896 0.100659236 0.0120640695 -0.0341361463 0.0258590132 0.189093903 -0.0443576723 0.181730732 -0.0773568451 -0.209986389 -0.147318125 0.0313114971 0.152323529 -0.151750147 0.0868849307 0.0476363152 0.0640650243 -0.194328085 0.081259504 -0.00890481472 -0.0990210921 -0.179610699 -0.016128704 0.0233678222 0.0781777054 -0.105569236 0.145421073 -0.168070465 -0.0484581888 -0.103307649 -0.166128129 -0.00750495493 -0.204514861 -0.153445154 0.00465589762 0.182648584 -0.213240042 -0.178045243 -0.122091696 0.0794366747 0.137778714 -0.00294807553 0.127173856 0.0520086437 0.147642538 0.0807637125 0.100630209 0.201114401 0.179699436 0.0391325802 -0.0308145583 -0.165162191 -0.175404459 -0.0775921345 0.168246791 -0.17048876 0.0207286477 -0.100647092 -0.0523818582 0.0444255024 0.210763827 0.12586765 -0.0207422227 -0.0754766166 -0.0217720717 0.130427822 -0.0299929827 -0.0379982889 0.100398347 -0.0356070399 0.0655094236 0.0654675215 0.190414175 0.203935578 0.0413287431 0.174676105 -0.00819396973 -0.153312147 -0.210880324 0.16387485 0.12146993 -0.00574953854 0.0214880109 0.196522102 0.114720747 0.0982830971 -0.0385596454 -0.0523891896 -0.0513710082 -0.0510435253 -0.0203166157 0.136102781 0.118706867 0.0997346193 -0.0918878913 0.0846025199 0.134655342 0.0125445276 -0.173530579 0.126699641 0.164726064 0.0798952729 -0.179558873 0.13959156 -0.20540446 -0.169257551 0.0974092931 0.135231152 -0.19618322 0.178617999 -0.195195436 0.00116297603 0.130042121 -0.0897486359 -0.0595608503 0.0725844949 -0.168786779 -0.171606004 0.00947995484 0.111770645 0.036076501 0.197393164 0.132488862 0.018777594 0.10415636 -0.0448684841 -0.0973193124 0.167561665 0.0745752603 -0.139588684 0.0584018975 -0.122388296 -0.148038715 -0.0156679004 0.212980345 -0.0231504142 0.0355601162 0.145956501 -0.093877241 0.0261098891 0.164310262 0.162534401 0.192318395 0.0879526585 0.176137701 -0.199908987 0.200413242 0.079145506 0.0573146492 0.177131429 0.0829168111 -0.00562721491 -0.098592706 0.178978935 0.180094197 -0.158867642 0.0240514725 0.052881524 0.0263754725 -0.0838197768 -0.0192150176 0.00737214088 -0.134910896 0.167383626 -0.126882523 -0.0208424628 -0.199372515 -0.159072369 0.100549594 0.190770403 0.19575952 -0.0640622377 0.143354759 -0.014034003 -0.0278270543 -0.177158371 -0.0709988624 -0.192770377 -0.0448067486 0.210046515 0.0685590953 -0.0372601897 -0.127416462 -0.183565542 0.000387087464 0.207295492 -0.0878015161 -0.209990412 -0.10330677 0.0689540654 0.199892536 -0.119964682 0.106454805 0.138556406 -0.174358502 -0.148531795 -0.0336631685 0.0319802761 0.0318092108 -0.124563687 0.119659767 0.00515793264 0.194450006 0.16523771 -0.0697573721 -0.0799603164 0.0037920922 0.0910985321 -0.0653754324 0.113143101 0.201823279 0.176848963 0.00523996353 -0.0516005456 0.0767733008 -0.162839428 -0.0564309657 0.131383911 -0.192525238 -0.0973805338 -0.106499307 -0.117373399 -0.0124305636 -0.13786681 0.148049518 -0.167817831 0.0941778868 0.207109794 0.131681249 -0.132850617 0.143915191 0.0960831791 -0.0574291795 -0.161205173 0.0871562213 -0.14055416 -0.167827487 -0.0697198957 0.00843276083 0.109790489 -0.0805447996 -0.193852052 0.140593752 -0.151278913 -0.0300129205 -0.0265060067 -0.135406494 0.201517329 0.0668479055 -0.212827042 0.00526246428 0.186980471 0.010383144 -0.129857272 0.0905567259 0.0551497787 -0.11034473 0.150861666 0.215299174 -0.0324517637 0.106759205 0.00336463749 -0.171365052 -0.0379823893 0.160591885 0.0184767097 -0.144764155 -0.151252627 0.144663468 -0.101882547 0.0074750185 -0.0621429831 0.165995732 0.205584362 -0.183349058 -0.0306344032 -0.0507949293 -0.0254389495 0.126846328 0.00985568762 -0.0196396858 -0.164447308 -0.00271238387 0.135672525 -0.12729831 0.211624518 -0.0110241473 -0.099156335 -0.0117900223 -0.103290096 0.135916129 0.0280969143 0.120209351 0.127246425 -0.138105601 -0.104700744 -0.0361966789 0.193283871 0.0679382235 0.156643853 0.186259344 -0.0409392416 -0.0209484398 -0.102118604 0.00880105793 -0.0792061538 0.170710459 -0.0301101059 0.203694567 -0.186771348 0.0120510012 0.0718521327 -0.135989159 -0.0410162508 -0.04962942 -0.104965083 -0.129911333 -0.171592638 -0.0971045271 0.0166722089 -0.0918848515 -0.195725203 0.179283783 0.144926235 0.208145276 0.19516544 0.0983070582 0.105984464 0.125652388 0.0642178804 -0.11638613 0.0211183131 -0.055001989 -0.0627131164 0.0789188892 -0.0581304282 -0.0831706077 0.113928452 0.0856363624 -0.0108097196 -0.0648208857 -0.0648176372 0.0987511128 0.0781336576 0.040875122 0.0172726959 -0.0962049589 0.159133539 0.163493857 0.122194514 -0.0330827534 0.0777071863 0.111556843 0.107794479 -0.111251369 0.0240100175 -0.214352071 -0.095950678 0.0809921175 0.148668334 0.0566781312 0.0608520955 0.148942158 -0.175617948 -0.0716462284 -0.208235264 -0.124162704 -0.0254302174 -0.136611387 0.174601689 -0.190580279 0.00653363764 -0.200868696 -0.0995163769 -0.0169239044 0.0403810889 -0.0176589042 0.091600731 0.0806646496 -0.105867647 0.178097114 -0.214359045 0.155411229 0.067616269 0.134629324 -0.0722248703 -0.214700297 -0.0560381413 0.184036657 0.144978687 -0.14177835 0.0738504678 -0.0174431354 0.11870043 0.213032469 -0.0424806327 0.216463551 0.0565026253 0.197938636 -0.187350512 -0.198725 -0.181318566 0.150493011 0.116323724 -0.0682040602 0.0511792749 -0.0775291026 0.190866753 0.0780985504 -0.138623342 0.130573794 -0.178432748 0.0516715795 -0.100482225 0.208352581 -0.0629476309 -0.209516495 -0.0271271467 -0.0601871908 0.0947510451 -0.0694460124 -0.0893996954 -0.131914705 0.16323714 -0.151896432 -0.193065941 -0.180358961 -0.215606675 -0.14868784 -0.148848414 -0.0500823259 0.155044898 -0.14095065 -0.0535883009 0.156337753 -0.163553938 0.00839745998 0.197626635 -0.127383381 -0.0588326007 -0.145403564 -0.015875414 0.133066997 0.154354319 0.108503535 -0.137311071 0.196157619 -0.149503976 0.101044968 0.133259609 -0.10068085 0.172129318 -0.0861077905 0.141590044 0.00365039706 -0.00824166834 -0.151886165 -0.172422931 0.116714641 -0.134012371 0.0971042067 0.110619977 0.115724102 -0.037075296 -0.114425324 -0.130701452 -0.171910152 0.186465546 -0.162162125 0.124132052 0.0482054502 -0.144533634 -0.0858643502 -0.0387717038 -0.214778394 0.090840593 -0.0867821872 -0.139754206 0.0579594523 -0.12750411 0.0387925655 -0.144655555 0.11548017 0.179298386 0.213035569 -0.188743711 -0.18723917 0.0452460796 -0.0189377218 0.0716785342 -0.0328151584 0.162825868 0.132731423 -0.0927574188 -0.193915233 -0.169276074 0.198093548 -0.0539898425 -0.0405678898 0.198442385 -0.102472812 0.205861494 -0.0513688922 0.176545337 -0.0956009105 -0.104700744 0.15393813 0.0591907948 -0.0990266651 -0.163121626 0.0950824469 0.0695202798 -0.203186899 -0.155021042 -0.0458154976 -0.00566618145 -0.0820624977 0.0546834916 0.209033147 -0.148864836 -0.201246589 -0.1430659 0.140711144 -0.106978849 0.0939450115 -0.0306081325 0.0740274042 0.100977555 -0.201344728 -0.0224576294 -0.147174105 -0.0205305368 -0.149508372 0.128903553 -0.0554889143 0.129909977 0.168454185 0.0019094497 -0.0826667547 -0.0946797132 0.0786027163 0.0940741748 0.13208954 0.131096795 0.0283738971 0.130252436 -0.163034037 0.0419691056 -0.179112047 -0.0970050022 0.0688446909 0.0244445056 -0.198129311 0.0805634409 -0.154600859 0.177032366 0.0781883746 -0.0129864961 -0.192099839 0.0904759616 0.0613937229 -0.0225679427 0.0973238498 0.0101725757 0.16009815 -0.164371997 -0.147875145 -0.19436039 0.066744104 0.115277097 -0.185915098 -0.183587119 -0.134376898 0.189190075 -0.115277715 0.0110761225 -0.0172309875 0.178416625 -0.20255819 -0.0196330249 -0.122849874 -0.149319813 -0.143117249 0.20158501 -0.0112723261 -0.209113553 -0.168115214 -0.155761719 0.197498426 0.127916411 0.166968092 0.0230869651 -0.124523424 -0.133491263 -0.212484598 -0.143955022 0.155609146 -0.147563159 0.0277281553 0.102845296 0.211294428 -0.166388765 -0.200500026 -0.0162702501 0.0568276495 -0.0196683854 -0.194312334 -0.000573277473 0.202328935 0.0609487742 -0.148621619 0.0169913173 0.12142317 0.140497372 0.105967894 0.180296466 0.0710208565 -0.0921825916 0.1226971 0.174249008 0.195190951 -0.0474217832 0.141437218 0.154314622 0.0918434411 0.0894567221 -0.14900808 -0.0981531143 -0.0538481027 0.0228222162 -0.102120869 0.0481202453 0.129656211 0.0664143115 0.215075478 0.20224683 -0.107856892 0.204145059 0.0568155199 -0.124321125 0.0964832455 -0.0990250111 0.0887329429 -0.100137249 0.103695258 -0.00890167058 -0.0632556379 -0.0187365562 -0.134786278 0.10050483 0.213761911 -0.185594901 -0.0312972516 0.115713075 0.16266115 -0.102895521 -0.0428603441 0.0440358073 -0.105589785 0.0319588482 -0.0046595633 -0.148783237 0.157901958 0.0102932751 -0.102296531 -0.0458446592 -0.109261863 0.209166512 0.15071173 0.0947685391 -0.158454955 -0.129106313 0.134193793 -0.0938750282 0.0257861912 -0.0563756824 0.158723876 -0.101011731 -0.0893978328 0.0857353956 0.0853622109 -0.143675059 -0.183304876 0.062996909 -0.209832251 -0.150142401 -0.129089549 0.135778472 -0.140538454 -0.175052822 -0.131536499 0.0129223317 0.0520402044 0.132413194 -0.213899165 0.134170666 -0.183252633 -0.0954198316 -0.20221445 0.0884195119 -0.178147241 -0.0404109657 0.181726411 -0.031693846 0.0598342568 -0.191721007 0.172289744 -0.114417531 0.204707101 0.0914278179 0.146863982 -0.159480006 -0.174256235 -0.0401036739 0.188927367 -0.0101573616 -0.101242162 0.059452042 -0.169416487 -0.00764252245 -0.039293319 -0.0368192047 0.0420004278 -0.0941514969 0.00939850509 -0.00788301229 0.104357019 0.102580652 -0.180491939 -0.0928620473 0.114409283 0.118348584 0.121027723 -0.0417347997 -0.0768906325 -0.198848322 -0.190798312 0.142806515 -0.0221841037 0.160379067 -0.0788907111 0.13271831 0.126287296 0.105682328 0.211806938 -0.00843709707 -0.207118064 -0.107439607 -0.162816092 0.177772269 0.159826323 0.108414277 0.0367451459 -0.00121945143 0.087822333 -0.0284347087 -0.17992954 -0.174509898 -0.053367883 -0.12446323 -0.20755063 0.151510015 -0.0646236539 0.151481196 -0.209098533 -0.0389437973 -0.0229786187 -0.0261207223 -0.03480497 0.205316916 0.00596138835 -0.119096085 0.0853761882 0.180360153 0.0447607189 -0.145881563 0.194770411 0.170355216 0.178921476 0.155323282 -0.189302191 -0.054095313 0.0619111508 0.017899245 -0.166010648 -0.142021537 0.193252489 -0.0663464367 -0.0802531987 0.06119515 0.114438787 -0.0687271059 0.137305871 0.0797028393 0.133770123 0.061579451 0.184940889 0.201014146 0.132208988 0.12404497 0.134062842 -0.0243919045 0.166059628 -0.0917808861 -0.187821895 0.0632692724 -0.0206924081 0.197168425 0.00295706093 0.145411626 0.0559516698 0.16857107 0.153085127 -0.141674697 0.122551873 -0.115950674 0.0172456503 -0.0639735013 0.206134513 0.0124485791 -0.189839229 -0.00461888313 0.0910429507 -0.00792591274 -0.0102594048 -0.0128744245 -0.171226606 -0.0433703512 0.0599675924 0.197074488 -0.14493151 0.0110059232 0.0358776599 0.197033748 0.0406182259 -0.178569689 -0.134352267 0.132221267 0.209747538 -0.0586690158 0.1761453 0.0137996078 0.206594035 0.0302986205 -0.166473001 0.213658735 0.132027462 0.11450462 0.207616344 -0.0597943664 0.211468592 -0.0317789018 0.0734311491 0.0689207464 -0.101011626 0.0201189667 -0.143788815 0.0852319747 -0.167809322 0.13436456 0.144978538 -0.1011637 0.0428097099 -0.164772466 -0.0594880134 -0.19962585 0.0675597042 0.102378651 -0.0438907743 0.102112874 0.0697277337 -0.133336246 0.184722647 -0.0849810988 -0.191972345 0.0629842728 0.17100884 -0.174979478 -0.0408878773 -0.107119203 -0.0435964316 -0.170784548 -0.166445956 0.0628583878 0.183612153 -0.179938883 -0.144418776 -0.100394472 -0.0965658799 -0.195560753 0.0452355891 0.20623894 0.216195956 0.0115065724 -0.00814415514 0.021350041 0.122006521 0.175878569 -0.18554534 -0.140201747 0.090661779 0.165380433 0.0618762821 -0.105736531 0.202944294 -0.0132080913 -0.0583744347 0.212536022 0.152820364 0.0407220274 -0.162207916 -0.155252904 0.133946702 -0.187709838 0.209894672 -0.0348537564 -0.130289897 -0.125008583 0.160767689 -0.036355257 -0.119778588 0.0464771539 -0.175907075 0.0763271898 -0.0438556671 0.060750708 -0.0996500179 -0.0102138817 -0.113970563 -0.187131137 0.0618093759 0.214592919 0.0171674937 -0.177295312 -0.1396548 -0.185591593 -0.17580238 0.187465176 -0.127522752 0.0496384948 -0.0799450278 -0.122413695 0.0185847431 0.126320139 0.146961227 0.00221090019 0.183308795 -0.0809073746 0.140474364 0.117178425 -0.0462515652 0.0964798778 -0.0140311718 0.106425866 0.0139771253 0.0191887915 0.199402556 -0.119800217 0.0751326829 -0.0286593586 0.0377730876 0.0954606682 -0.166556418 0.0284457505 0.0131197721 -0.214971811 -0.199859172 -0.179466471 0.00686265528 -0.0405591726 0.128789946 -0.0885156691 -0.0231515914 0.0274133235 -0.0946494117 0.0722979754 0.108185545 0.0662120134 -0.1165829 -0.202484369 -0.021460712 -0.0706832111 0.176532552 0.0546213537 -0.0781247318 0.149402723 -0.0511166751 -0.100806803 -0.00386828184 0.096163854 0.00671844184 -0.0618932992 0.0864645392 0.119743541 0.185850725 0.0487542301 0.184858188 -0.198184907 0.023482427 0.107057884 0.157953665 -0.0690505505 0.157932982 0.024170354 0.032594651 0.0530073196 0.117697462 -0.0990206301 0.17230539 -0.123280227 0.174554452 0.102127984 0.201770678 3.86685133e-05 0.0509264618 -0.101598643 -0.12626195 0.102379426 0.173604086 -0.061299637 0.213943556 -0.163225085 0.157068297 -0.164504975 0.129977152 -0.183117896 -0.130392671 0.203380212 -0.178518474 -0.186574727 -0.0258852392 -0.0569970757 0.139815077 0.0971906632 -0.194822952 0.0908226222 -0.0503910184 -0.0393434316 -0.120163202 -0.20915021 -0.0133848935 -0.041914165 0.109106913 -0.197150975 -0.0169817209 -0.201622069 -0.187427282 0.0135419667 0.0722399503 0.187668428 0.18768765 0.210492358 -0.131400377 0.188223496 0.000671982765 0.0991768688 0.00198945403 0.117716566 -0.0670307577 -0.210066706 0.0886924118 -0.208905682 -0.0827189982 0.174572363 -0.132972181 0.0470838398 -0.204226047 0.205731049 -0.123573631 0.108036324 -0.0922716334 0.0526510626 -0.156222016 -0.09427616 -0.0377399325 0.0794580728 -0.216363668 0.0628108829 -0.0945192277 0.119313821 0.171731696 0.196378395 -0.192868397 -0.0710653514 0.118417665 0.0165450126 0.160011306 -0.0168655217 0.167734459 -0.172148466 -0.163649023 0.0594363362 -0.086703524 -0.197209105 -0.027108103 0.0136667341 0.0110953301 0.110684648 -0.109400302 0.0289113075 0.0885115415 0.0786376148 0.0588019937 0.0366525203 -0.181009471 0.089611426 -0.215462506 -0.213920593 0.1752453 0.178309783 0.101294652 0.16588892 -0.155514106 0.155737266 0.0518909544 0.162500128 -0.0697245002 0.0179567486 -0.16738686 -0.00853094459 0.085784331 -0.0606932193 0.0925718099 0.118794218 -0.155448392 -0.116698891 0.116779611 0.040639326 0.0901257843 0.16784586 0.207345918 -0.0386459082 0.160333171 -0.139087141 -0.123728126 0.212985918 0.02666758 -0.214688063 0.0306510329 -0.0714527071 -0.0967833474 -0.105089076 0.0068192482 -0.118852749 -0.044965744 0.098104015 0.213819668 -0.113731302 -0.0702251494 -0.0371602476 -0.161623687 -0.0228868872 -0.148921251 0.0899792165 -0.100435868 -0.16775997 0.176307127 -0.0532870591 0.0344672352 -0.149988323 0.0968182534 0.0183050185 0.154577985 -0.0577560365 -0.194581896 -0.0398740768 -0.151397109 0.201207474 0.143756196 -0.040294975 0.0636927933 -0.0751343817 0.0870894343 -0.144020289 -0.0837496668 0.159470305 0.0311712921 -0.213004664 -0.105522521 -0.187098712 -0.19014053 0.0504928082 0.000923201442 0.0712945014 -0.0861267895 0.116496906 -0.0449720323 0.107933179 0.119039193 0.0218377858 -0.106151395 0.156768396 -0.0662968308 -0.17140913 -0.0980690792 -0.0719684362 -0.156402156 -0.208027899 -0.0750164837 -0.0491153002 0.0975629538 0.185186759 -0.109962799 -0.186560899 0.0235255212 0.0576196164 0.178126857 0.176262841 0.16182743 0.090709582 0.141875759 0.0945739001 -0.147957116 0.0335979611 0.200071529 0.118255153 -0.210025206 -0.0123241693 0.0942634493 -0.208584055 -0.0367055386 -0.124956973 -0.0596849918 0.121731535 -0.185637683 0.0770544559 0.185683891 0.0612456948 -0.14131172 0.0517595261 -0.161659464 -0.143235356 -0.211438432 0.207449511 0.0415445715 -0.126605988 -0.0669960678 0.0178579539 0.0385124236 0.175819591 0.117622033 -0.0354214162 -0.0648480356 -0.0320641547 -0.127369598 0.0855587274 0.165378049 -0.134120658 -0.196044832 -0.0206250995 0.0246335268 0.00385692716 0.00189369917 -0.139631107 0.12242122 -0.0317141712 0.188904628 -0.103237912 0.190669581 0.200148448 0.0944717973 0.129856512 0.203153238 -0.102652341 -0.18278785 0.146217331 0.0383898765 -0.180869475 -0.0743075013 -0.154591203 0.0703408867 -0.0836267173 0.0934918672 -0.159648746 0.0701663047 0.185223445 -0.152634948 -0.119971856 0.0818058401 -0.207903713 0.162683025 -0.188890219 -0.155463517 -0.0617440194 0.192527249 -0.122400068 0.155340359 -0.00483258069 -0.0808948725 -0.14969328 0.122708693 0.0916985124 0.167307064 0.0339859873 0.112711355 0.199425742 0.0508052558 0.0908002704 -0.025711447 -0.214930207 -0.0526648313 0.0683953613 -0.142057359 0.0310910344 -0.0560562164 -0.091847837 0.0465738326 -0.043711707 -0.0933766961 0.058074668 0.0722161382 -0.0143544525 -0.0999473482 0.00138024986 0.108425066 -0.123320952 -0.166009098 0.131790981 -0.102257095 0.0969090015 0.144905195 0.130774304 0.202088967 -0.0339302421 0.179033175 0.0350781828 -0.129305273 0.18041037 -0.204969168 0.177910969 -0.00365144014 0.0841431171 0.138322249 0.0614735335 -0.124355353 0.01965487 0.0502534956 0.0613973588 -0.0400774628 0.0733298808 0.16702418 0.0582070798 -0.00160004199 0.149118707 -0.121256135 0.0690530986 0.00727018714 0.163388774 -0.0592735857 0.0183229297 0.0768768042 0.0695059448 0.126304343 -0.0964555144 0.183473513 0.00136879086 0.143290177 -0.0391205996 0.10244374 -0.119527563 0.166473523 -0.0702283531 0.135470435 0.13457559 -0.186750904 -0.00784337521 0.00738979876 -0.186928585 0.0855617672 0.121110454 -0.0470073223 0.049827382 -0.0492005795 -0.0178475231 -0.128522933 0.124885365 -0.130912632 -0.126063481 -0.0217633992 -0.0668548346 0.0893058628 -0.100408666 0.108652398 -0.0978598148 -0.00825151801 0.0984886438 0.103483453 0.142142281 -0.0229647309 0.145044133 -0.104891732 0.0835651904 -0.057537064 0.104135677 0.0156677514 -0.072404772 0.0887826532 -0.174126104 -0.0256865025 0.183751836 0.0369578153 0.174735114 0.0671643466 -0.17062065 -0.186697945 -0.165698096 0.110135093 0.154873773 0.0780837387 -0.0377287418 -0.147328347 0.145004824 0.148347721 0.0303937644 0.134838268 -0.140598029 -0.0148316175 0.052032128 0.041514799 0.0728795677 0.166562721 -0.109285347 0.156863078 0.0898021311 -0.0949274898 -0.0756540447 -0.160755306 0.114194646 0.0132424831 -0.044583708 0.108396426 0.0364062637 -0.0593030006 0.174359515 0.0100171566 0.0567199737 -0.153329492 -0.115810625 0.0622310489 0.00246351957 -0.133361965 0.00533515215 0.137891069 0.20560579 -0.121505201 -0.0771713853 0.176670298 -0.0837914795 -0.0443386734 0.106372789 -0.0354959965 -0.0202583373 -0.12521404 -0.181744516 0.184158817 0.105352595 0.168397322 0.0394653529 0.0324783921 0.214117303 0.0521710366 0.119949386 0.0980906636 0.0662454218 0.173833176 -0.179695964 0.0228056461 0.164502397 -0.207787722 0.0438348204 -0.132135183 0.108438954 -0.115317769 0.195225731 0.149423614 -0.104451008 -0.0211364925 0.215908095 0.0762761086 -0.109785952 0.171437278 -0.139656097 0.0179292858 -0.179668039 -0.00516919792 -0.00918020308 -0.070155561 0.201516554 -0.0119924694 -0.0321354419 0.0121485144 -0.157521516 -0.165334225 0.155131415 -0.0397451371 0.177271828 -0.0614049435 -0.164228141 -0.215158358 -0.0953343511 0.161122367 0.0624253303 0.208376959 0.0184365958 0.206305996 0.151457354 -0.180460811 -0.0988956019 0.0211302936 0.0529447645 0.0261635184 0.00991614163 0.0474854857 0.0450568348 0.133023813 -0.0140484124 0.196641907 -0.0761894286 -0.0654397458 0.189434215 -0.0655373037 -0.0797602832 0.0817090124 -0.150069326 -0.153798595 0.0730309039 -0.0817212462 0.198714212 -0.0170713812 -0.163078114 -0.044618398 0.020879522 0.123918489 -0.164840236 0.211817458 0.0268930048 0.127202198 -0.0689073205 0.0787535459 0.169558212 0.0475464314 -0.147786617 0.205190554 0.180759951 -0.0743628293 -0.143190354 -0.214385733 0.0793745965 0.179193571 0.0253067911 0.0968537182 0.0123471916 0.165723071 -0.0604057461 -0.109488055 -0.00546264648 -0.0519610643 0.16259326 -0.131915808 -0.068144381 0.0862705559 0.0476442426 -0.0194613487 -0.0327209532 -0.0321031213 0.0928900689 0.121182367 0.0395704657 0.206889853 -0.153628349 0.108040407 0.0501328558 -0.207882032 0.0197364688 0.176427647 0.165034935 0.119529828 -0.101859525 0.0983333737 0.110026821 -0.0431410521 -0.150057033 0.203556135 0.172603801 0.151064292 -0.0404715687 -0.0594018102 -0.0587048978 -0.210961729 0.00607526302 -0.046252653 0.171803519 0.0116190016 0.115883157 -0.206495181 0.0879609138 0.0493768007 0.108358935 0.196560964 0.00493912399 -0.0784423947 0.0681210011 0.120667771 -0.146046698 0.0493365377 0.13671045 -0.126525983 -0.111981265 -0.194672167 -0.0533072352 0.061666742 0.206885204 -0.0210708827 -0.101717316 0.0331944525 0.201179788 -0.185947359 0.0138086379 -0.0722218305 -0.187322944 -0.0200253874 -0.0254301727 0.193144545 0.0394837409 0.105498686 0.0584578067 -0.0724069327 0.143338397 -0.00150376558 0.0142928213 -0.0193324983 0.0455453843 0.125151768 0.20455347 0.159254894 -0.160103872 -0.080135718 -0.207921267 -0.0486125201 0.0185214579 -0.00348243117 0.0956240743 0.202249035 0.000911071897 0.178825364 -0.145407021 0.0450499207 -0.0232169479 -0.0471666306 0.0831499249 0.0355164856 0.191922322 0.0605890006 0.0496924073 0.0736993104 -0.0712352842 0.193484202 -0.0648564994 0.0908390433 -0.167422801 0.00586992502 0.00143258274 -0.116827212 -0.161780462 0.119680062 -0.0967072621 0.0424497277 0.093848899 -0.143930152 -0.176677689 0.129201546 -0.0241238922 -0.0394712985 0.171395496 -0.184580743 -0.00476831198 -0.135681674 0.208737209 -0.0748498589 0.192972466 0.126274869 -0.0687488914 -0.198124304 0.131398633 -0.164974302 0.202609763 0.107634887 -0.195589542 -0.158017486 -0.110643499 -0.191519737 -0.00531253219 -0.178426236 0.037269935 0.00399748981 0.106271669 -0.129799873 0.0287259966 -0.193390682 -0.0012075305 0.205237523 -0.00098721683 -0.203937754 -0.0752554834 -0.0283831954 0.0577716082 -0.0905099213 -0.210451111 0.163710132 0.104198173 0.0880529135 -0.090093866 0.188893929 -0.0478242487 0.0905865878 -0.195681125 -0.0138732046 0.0842897147 0.0521370322 -0.0494951606 0.124611542 0.202247694 0.0449613482 -0.216195449 0.0194487423 0.0206749141 -0.133456886 0.0322945267 -0.0700771511 0.164841279 0.115094677 -0.125130147 0.0902375728 -0.216408014 0.165322915 0.0753913373 0.0057335943 -0.0234231055 -0.210213453 0.12744309 -0.208506614 -0.101417616 -0.101825558 -0.154521465 0.137804136 0.189316109 0.0844352692 -0.111977801 -0.0769492686 -0.107639164 -0.0500084609 0.104216561 0.0536748618 0.136540458 -0.204771981 -0.193528041 0.0751554519 0.120019868 -0.0767422169 -0.140790462 0.126554057 0.0518514663 0.0508473665 -0.055590719 0.0525252968 -0.101209946 -0.058428213 0.0825842768 0.130736038 -0.0466356128 0.20227541 -0.132680997 0.114882931 0.206202909 0.070753172 0.0750757903 0.0927189142 -0.18364504 -0.169346228 0.0360750705 0.121472999 0.15693967 -0.0840200037 0.206487432 -0.0544678867 0.0617191941 0.0444918126 0.185416445 -0.0715998709 -0.0149362534 -0.179126501 0.0717373937 0.100011155 0.192402855 0.0109363347 -0.145829737 -0.0144607872 0.142150745 -0.00497825444 0.0760070235 0.0569733232 -0.159680337 -0.165824562 0.138788685 0.0505397171 0.198276237 -0.0394445509 0.0211829394 -0.160856947 0.12942569 0.0585816652 0.0602253228 -0.212986022 -0.123331018 0.17300196 -0.174353182 -0.215054616 0.0415391475 0.085977748 0.0535571724 -0.0756186247 0.1006632 0.0169396996 0.0425120145 -0.0888770074 0.191948608 -0.0837210268 -0.0413812548 0.136424616 -0.0584797263 0.190023616 -0.100586645 0.182730809 0.123084381 -0.000653401017 0.0415102094 0.0396791548 -0.14722082 0.126187161 0.0778864473 -0.0346511453 0.0493589789 0.115246341 -0.0839745849 0.0306238234 0.147452846 -0.204215005 0.16961135 -0.195198894 0.0571123511 0.00817714632 0.216334984 -0.210588425 -0.168448776 -0.066527158 0.0358638912 0.0697858781 -0.148319691 0.0767853707 0.0827894658 -0.0660763085 -0.177229807 0.207099184 -0.161111221 -0.127371103 0.0483067483 -0.00413577259 0.214660302 -0.194299951 -0.0179934949 0.186847076 0.138651177 0.158565834 0.0674505085 0.0154346824 0.109918609 -0.210888952 0.152831599 -0.0987665579 -0.148955286 0.105599478 -0.099908784 0.0916914791 -0.175057262 -0.0985852703 0.069649443 -0.107373789 -0.0848126113 0.0478115529 0.0158510506 0.212122187 -0.13414982 0.201576486 0.121070728 0.134894118 0.204062328 0.109867886 0.0779989511 0.124963358 -0.188230008 -0.0927676409 0.15817441 0.109811202 0.0883628279 0.142731801 -0.126459911 0.0925498158 0.0761002451 -0.168910041 -0.0958660766 -0.140628904 0.140957609 0.047696963 0.186759993 0.193272099 0.031809628 -0.0560047477 0.134704158 0.0367725343 0.0497736484 0.0556292087 0.177065805 -0.207024947 0.13423948 0.167014286 0.122852311 0.0246040523 0.0377319306 -0.110266581 -0.152983159 0.0639204532 -0.0871817321 -0.0440642685 -0.150764987 -0.153118521 0.207896337 0.154454425 -0.0842736661 -0.18260172 0.0882617086 0.207736358 -0.0913874954 0.163468704 -0.145499229 -0.0722074807 -0.13282451 0.0331797451 -0.0199894607 0.124866173 -0.194403604 -0.0614343137 0.0593206137 0.12945424 -0.0680632442 -0.162646636 -0.0375522524 -0.0514845699 -0.0967736989 -0.196712837 -0.0849520862 0.145428821 -0.0301000923 0.21004419 0.149207845 0.0277626365 -0.0458330363 0.123746619 -0.0601141453 -0.207916304 0.166537687 0.164299175 -0.0664033741 -0.0366543829 -0.0259464681 0.00538448989 -0.176779896 0.120040879 -0.0980883837 -0.0351942331 0.045834288 0.0277767181 0.0379769653 -0.0304652452 0.171588674 -0.18710956 -0.0316898078 -0.0826318562 0.144939199 -0.113141298 0.0946537405 0.0431265384 -0.0740748495 -0.0247935504 -0.152835786 0.111411169 0.0628831536 -0.19745563 -0.00319734216 -0.106647559 -0.174314156 -0.149721861 0.171094164 0.122099444 0.188818321 0.216095403 -0.118555322 -0.128079668 0.012192592 0.144844279 -0.111847721 0.153499916 -0.0864006728 -0.159857646 -0.114556901 -0.146564126 0.0373161882 0.209868029 -0.0692257583 -0.0101606548 0.0148580968 -0.0792294443 -0.0382121503 0.116926 -0.0510000139 0.0474732369 0.0854227394 -0.155232161 -0.201540932 -0.130928636 0.135378107 -0.112953305 0.111749128 -0.0995247886 0.135859862 0.0287824124 0.0450941175 -0.122959621 -0.150950968 -0.060626775 0.067682907 0.042662546 -0.115446664 0.133323923 0.015136376 0.124512181 -0.0892919153 -0.0403002501 0.158315018 0.0158569366 0.0489937812 -0.0469649434 -0.00469599664 -0.0121142864 -0.0520777702 0.00402639806 -0.139563739 0.110662445 -0.188459292 0.198211536 0.0210055858 -0.0891271532 0.131104335 0.0770383626 -0.0961259305 -0.0397526175 -0.132310212 -0.0272894949 0.087330088 0.202434853 -0.0704747736 0.187489226 0.0332245529 0.188517109 -0.170691788 0.0035059154 -0.206262887 0.149705455 0.126249656 -0.165763855 -0.111692399 0.176134154 0.075372085 0.0363540798 -0.182059705 0.20954366 0.0716526359 -0.0489518642 0.206474736 0.172476038 -0.0745774657 0.134587243 -0.0123390406 -0.0755716562 0.120695665 -0.133081675 0.0194198936 -0.0559597909 -0.194912001 -0.165030658 0.131424174 0.0357581228 0.137006059 -0.197406381 -0.159987733 0.196797445 -0.0252364427 -0.0913793445 0.0948503166 0.09428747 -0.0653177202 -0.159910977 -0.0471469015 -0.116169535 0.100651696 0.0612198263 -0.00474968553 -0.134656459 0.00969190896 -0.0772574842 0.0407112986 -0.065290004 -0.118160121 0.189642146 0.00605456531 0.0117338598 0.0389382094 -0.111266598 0.119314745 -0.190670758 0.15349786 -0.0355514884 -0.0302093774 0.140792683 -0.0123331547 -0.0926660001 -0.109557383 0.179005936 -0.156239405 -0.151500195 -0.0712945461 -0.0907298177 -0.208882824 0.026444748 0.0442295521 -0.192895442 0.172419533 0.131081596 -0.194239303 0.126283571 -0.147244245 0.0430594832 -0.195343018 0.16828762 0.080004707 0.142724171 0.0881541222 0.21575956 0.139578596 -0.100556657 -0.0502597392 -0.189486831 -0.12700811 -0.14964655 0.103310034 0.111688569 0.100934312 0.153106645 -0.0772921741 0.0563845485 -0.0247820318 0.0447983891 -0.105358116 0.182950154 -0.00371095538 0.162389681 -0.139169157 0.0746891648 -0.179400235 0.0632802099 0.204771206 -0.180464938 0.105706707 0.173049852 -0.198710233 0.183410838 0.033869341 0.193851426 0.0605505854 -0.0360240638 -0.0983660445 0.122696146 -0.0239738822 -0.0571439862 0.0865179449 0.207218662 -0.0169765502 0.10661675 -0.0141330659 -0.189507529 -0.214526698 0.206583545 0.195867166 -0.198749617 -0.160737857 -0.0684915781 0.0626776069 -0.175313607 -0.183250204 -0.203358695 0.104103968 -0.147260815 0.0735307485 0.166091695 0.0311048627 0.0771887153 0.144971833 -0.107908309 0.043909058 -0.209914848 0.144098058 -0.16386877 -0.189734131 -0.131728053 0.1479664 0.15326862 -0.0374435335 -0.0066356957 -0.176680475 -0.105022177 -0.0069681704 0.0682294518 -0.0502667129 0.161125883 -0.0270171016 -0.171312302 0.0428408831 -0.0523188859 0.19900544 -0.0303994417 -0.0761271715 -0.0290250331 0.040251866 -0.00461108983 0.202128246 0.0850322992 -0.0534527451 0.111439779 -0.126403689 0.168033764 -0.125349998 -0.141422659 0.172666356 -0.00833773613 -0.010573253 0.0498629063 -0.164404422 0.170034006 -0.00723788142 0.107835069 0.178350523 0.0526260585 -0.189043269 0.0385902673 0.0374396592 -0.149395436 -0.0105125457 0.0394402295 0.12286891 -0.152178109 -0.0209447742 -0.139631927 -0.00756199658 0.0647462457 0.131116733 0.174894914 0.130160436 -0.14286153 0.0410422832 0.147195116 -0.201956302 -0.0155842304 -0.00588850677 -0.110771 0.121813104 0.124577001 -0.0940077901 -0.124457143 0.00468619168 -0.041779235 0.204366133 0.00931699574 -0.204241484 -0.0228471905 0.116682306 0.158892319 -0.130202919 -0.0847957283 -0.0130662024 -0.0458494127 0.0882361084 -0.0148071051 0.11065118 0.116732791 0.130320057 -0.154246911 0.0121977627 -0.195920169 -0.0527544916 0.0105970949 0.0952418 0.216108158 0.0953765363 -0.0637498945 0.00656156242 0.178493544 -0.176476374 0.0183253139 -0.139325112 -0.00710760057 -0.0801171809 -0.0997937247 0.198230073 -0.015795514 -0.201220006 -0.00237180293 -0.186916858 0.178713873 -0.119182132 -0.0451352596 -0.182514578 -0.0178681761 -0.133398458 0.186711356 -0.16865097 0.0659743696 0.0840948969 -0.135799885 0.124175623 0.0444165617 0.113648608 -0.0654432029 -0.0286201239 -0.140393361 0.158045933 -0.138332054 -0.0114320964 0.120080397 0.104994819 0.0063432157 -0.189120635 -0.185894445 -0.120765962 0.169272408 0.0044067204 -0.0958712921 0.192828402 -0.0785516798 0.0481933206 0.0533886403 -0.138931155 -0.034797281 -0.126559123 0.162495956 0.171410933 0.147129461 0.132919416 0.126586601 0.170310929 -0.115445994 -0.190529332 -0.164774939 -0.0889557749 0.103479341 0.115051374 0.135788515 -0.190249711 -0.204633221 0.0397153944 -0.016548425 -0.0792319626 -0.127894521 0.00596448779 0.173240051 -0.188235432 -0.0386267006 -0.135767251 -0.0892127305 0.062357828 -0.0312252939 -0.149558395 -0.158692509 -0.203272849 0.0214458853 0.00549913943 0.0486514419 -0.128043652 -0.170180142 0.169511661 0.106520221 0.00105421245 -0.0348359495 0.176877812 -0.163117811 0.130606785 0.125363156 0.120320186 -0.136020392 0.0565872341 0.0583206564 -0.096826762 0.0078304708 0.115881547 0.034202382 -0.186532825 -0.0446834266 -0.171511963 -0.0799278468 0.123803958 0.173076108 -0.0334732533 -0.0786289573 -0.0713885874 0.0806080252 -0.103114903 -0.0540943295 -0.176245585 0.0184956491 -0.097174108 -0.132529348 0.047166571 -0.148682564 0.172185495 0.00182978809 -0.107077241 -0.0585014671 0.0946045667 -0.0334791392 0.10486953 -0.15413633 -0.106411353 -0.0329285115 -0.0233177543 0.00152637064 0.211635008 -0.0797623992 -0.0481692702 0.144845977 -0.127677456 -0.12354932 0.17870374 0.189246967 -0.0304448158 0.192246065 0.0706192702 -0.0329638273 0.163443282 0.0714011341 0.101470217 -0.00685305893 0.0267804265 -0.117052019 0.134573266 -0.0280826092 -0.123630926 0.0749774724 -0.0442686677 -0.145529836 -0.0552517325 -0.00182689726 -0.184602112 -0.053455025 0.0839937776 -0.0474415421 -0.0306393653 -0.205825418 -0.00444436073 -0.159658507 0.1159596 -0.00929041207 -0.20922026 -0.103325248 -0.171028957 -0.0705494285 -0.151429638 -0.0799973756 0.0554885715 0.0227866024 -0.142635182 0.139701709 -0.0302731842 0.0314382166 0.0327469707 0.0297541022 -0.204959616 -0.122173615 -0.0899580121 0.131155357 0.0460075289 -0.0134723336 -0.0115163773 -0.0299575329 0.0966607481 -0.0141979009 -0.213409558 -0.115587324 -0.164408863 0.0837808996 -0.0203301907 0.0323417634 0.152540639 -0.172152087 0.105256543 0.105928704 -0.171343535 0.156993523 0.0861956328 0.197089449 -0.0553040206 -0.0203001499 -0.160632551 0.157671943 -0.0641655773 0.0350541919 0.197677329 -0.0627279878 -0.125607729 -0.0373753011 0.146814272 -0.186460912 -0.0528395623 -0.117968723 0.131595865 -0.0131013989 0.0389936119 -0.100167915 -0.198829263 -0.00868977606 0.0828431994 0.070321098 0.202158973 -0.0402475446 0.174268946 -0.163933247 0.205253109 -0.0917198211 0.181840077 -0.00759069622 0.191454187 -0.15400207 -0.174060598 -0.156140402 0.106376722 -0.0635691732 0.0919625908 -0.111021765 -0.152584046 0.204639778 0.0231857151 -0.126816347 0.153339401 -0.191335261 -0.0910699368 -0.0204621851 0.0480604023 0.184537932 0.0313221812 -0.059037894 -0.0122708976 -0.0730216652 -0.0587513447 0.0556001514 0.0035392195 -0.0567349046 -0.0565156788 0.149616167 -0.0179460049 0.129232422 -0.13396275 0.0381018966 -0.157817811 -0.208604962 0.0522707254 -0.0755494535 0.163892463 0.0958438963 -0.212419659 0.066810742 -0.0242482424 -0.160733014 -0.21058315 0.110218212 0.00979973376 0.171105519 0.00410975516 0.0630853027 0.212045118 -0.0177023709 -0.0653731525 -0.187278926 0.113335684 0.175285742 -0.187599733 0.0585225672 -0.0709806979 -0.215227023 -0.0634926707 -0.0872309655 0.057609424 -0.187086955 0.125822112 -0.164084375 -0.134594157 -0.112606473 0.0734807104 -0.100102924 0.19106333 -0.012161836 0.160747394 0.0760826319 -0.171770722 0.0485027283 -0.213351846 0.0381886512 0.126869723 0.0400273949 -0.149780571 -0.0583855212 -0.103202343 -0.036418125 -0.184253156 0.136622682 0.187038943 0.058889851 -0.0393140167 -0.134414732 0.105187371 -0.21546948 0.00121088326 0.0692031533 0.182186082 0.154733822 -0.0522509068 -0.00682239234 -0.151455045 -0.0568751991 -0.0705878735 0.171102718 0.0419806987 0.216313437 -0.124022871 -0.0853095502 -0.147352293 -0.196065322 -0.0571627766 -0.105218999 0.180535659 -0.0927108601 -0.145060763 0.031310305 0.0529462546 -0.177584335 0.0956812948 -0.208875284 -0.0378819406 -0.206627265 0.0665290505 -0.193663895 0.0322135985 -0.0736983418 0.016801402 0.188540176 0.190042958 0.172346368 -0.192504331 -0.033242926 -0.0964164957 -0.0673986375 0.165504113 -0.0223236233 0.047304973 -0.0988564789 -0.110598899 -0.104616553 0.145558879 0.156849638 -0.140711755 -0.200392962 -0.195452869 -0.179697052 -0.172821388 0.163972512 -0.0199371725 0.145056382 0.0687942654 -0.100579008 0.0553201288 0.138140127 -0.11186868 -0.196104139 -0.109140143 0.0563749522 0.203614041 -0.0911546499 0.0115636736 0.120172694 -0.00249820948 0.0574527234 -0.089055866 -0.0770767629 0.171668425 0.184878692 0.143077299 0.164887413 0.00204758346 -0.0962116644 0.129886284 -0.169254914 -0.209745526 -0.0201158673 0.0074300617 -0.158251464 0.168304399 -0.0601809472 0.137984559 -0.0663322955 -0.0514439344 0.0158465654 0.0266192108 -0.131576762 0.195599094 0.200540915 -0.204045236 0.208049729 -0.118698664 -0.186795041 -0.186687008 -0.205458403 0.00974476337 0.198315814 -0.0569323897 0.143252745 0.14814274 -0.211932629 -0.16023086 0.048928991 -0.0793801099 -0.012891829 -0.0300751179 0.0721323341 0.146370903 0.0377487689 -0.0316951275 -0.0345511585 -0.154979691 -0.0855640918 0.168815002 0.0354034454 -0.188382953 0.00539238751 0.20382075 0.124941751 0.144826218 -0.178621411 -0.0519447476 0.126527175 -0.0368376374 0.0834899396 0.16410698 -0.114651568 0.0726418942 0.0867818743 -0.101901025 0.147437826 -0.00477363169 -0.0210992694 -0.0627692342 0.122195259 -0.0897850841 0.134500459 0.155474558 0.117299125 0.00993736088 0.107980624 -0.116257444 0.170012787 -0.203162596 -0.00916182995 0.164526388 0.189743176 -0.179932594 -0.13336283 -0.160641849 0.0724896938 -0.215459198 0.15053837 -0.20589985 0.0341999978 -0.0347144902 -0.1836503 -0.0720625371 -0.207689539 -0.0964950547 -0.147027716 -0.0305284858 -0.135501161 -0.141416669 0.145449832 0.0938523263 -0.110118382 0.127452716 -0.0360786766 -0.0860704631 -0.0354368985 -0.0109335035 0.0561653823 0.0688275248 0.107790783 0.112380907 0.00746670365 -0.145217329 0.137192056 0.0377491266 0.152028486 -0.0434089601 -0.0951931179 0.00500255823 0.0689155608 -0.0388880521 0.148893759 -0.0191176087 0.00665226579 -0.0950899348 -0.194127381 0.115938887 -0.0491235554 0.133721784 -0.180269197 -0.0532805473 0.213810787 -0.0612056851 -0.0351020396 -0.092381373 0.114500478 -0.101824731 0.0823301524 0.183692023 -0.0169766098 -0.141344965 0.125751749 0.186133131 0.0449364632 0.141381517 -0.100444183 0.0378632694 0.134127125 -0.136307597 -0.200091973 -0.00752487779 0.11779879 0.00970290601 -0.0936737582 -0.0049354583 0.202193812 0.00836524367 -0.0619883388 -0.0522346944 0.0959372073 -0.177338213 0.177276745 0.0130257756 -0.0423042029 -0.121907935 0.0323782563 -0.0490401387 0.131034598 0.0670118481 -0.00946199894 -0.0022482127 -0.0103600174 0.0355177969 0.13538529 0.208748206 0.10833402 0.129079416 -0.160734192 0.16470547 0.0524742454 0.191505745 -0.101960644 -0.208734676 0.066466704 -0.176380575 0.0303986073 0.163442954 -0.158907503 0.155903205 0.0365915745 -0.0434604287 -0.202177957 0.0487227291 -0.164538115 -0.213477075 0.0837342888 -0.0943289101 0.104887709 0.203119293 -0.165092498 0.118403807 0.166414872 -0.111916587 0.108422115 -0.0568086207 0.21051316 -0.112119086 0.0479275435 0.204472795 -0.13745442 0.156786039 -0.121667489 0.189461365 -0.006658867 0.0498111099 0.0967845768 -0.0193000883 -0.0451227576 0.205537334 0.127283707 -0.0225467682 -0.104442857 0.116480276 0.0437512547 -0.168737024 -0.0610642433 -0.132568836 -0.20076406 0.0198989213 -0.158786967 -0.0776100904 -0.152520865 -0.151913196 0.0937054008 0.155170277 -0.130604923 0.0302712619 -0.0717439353 -0.0709408522 -0.115176179 0.194742694 0.0401863605 0.210620478 -0.190825626 -0.174729228 -0.000261187553 0.141424879 0.127421007 -0.103703566 -0.170759767 0.144490108 0.0494291037 0.143680051 -0.117207184 0.0986642092 0.202879474 -0.00613848865 -0.163750619 0.163952276 -0.169305965 0.0938779265 0.118690625 -0.0314784795 -0.034880653 0.0267112553 -0.0653816164 0.214437827 -0.131105214 0.137544081 0.203057095 0.119116172 0.069421038 -0.0586719662 0.0592659563 -0.207209796 0.079782024 0.09094657 0.00661277771 -0.0572764874 0.180332229 0.0538476259 0.149865791 0.0536470562 0.153586969 -0.214938059 -0.0715590864 -0.0964897946 -0.00639003515 0.0526382476 0.00216577947 -0.165840462 -0.21619539 0.0326414108 0.197977826 -0.132460266 0.180480167 -0.172017783 -0.170403183 -0.175127476 0.0850990862 -0.178470686 -0.167116225 0.152202889 -0.1725301 -0.198807284 -0.09640266 0.0798646063 0.206464514 0.0445276052 -0.156091422 0.111639902 0.0489482731 0.158809021 -0.00188393891 0.00485038757 -0.184914976 -0.183372289 -0.112851404 -0.128746539 0.00142525136 0.0663246065 -0.164267927 -0.160112381 -0.131718725 -0.00466673076 -0.167625606 0.17636539 0.195481822 -0.0966163129 0.0845754892 0.164404824 -0.134278774 -0.131284803 0.123686984 0.0216592848 -0.209833026 0.16975449 -0.209732831 0.155424193 0.0619571954 0.10894461 0.194175795 0.17978631 0.0546952635 0.1010869 0.121099517 0.215041772 -0.143693537 0.00973340869 0.00966072083 0.0285273194 0.0306418389 -0.112845831 0.170028463 0.116588727 -0.0418852568 -0.0138856024 -0.186233431 -0.141427666 -0.0667628944 -0.024799481 -0.0702499747 -0.0816666335 0.205414638 -0.211273253 -0.20968689 0.143573627 -0.12959671 0.19114612 0.121287361 -0.100967593 0.179319397 -0.141043916 -0.0582669079 -0.211978778 -0.0722976029 -0.00679647923 -0.0610643029 -0.0367063135 -0.0849286616 0.209578797 0.0134505481 -0.0485929698 0.141146705 -0.0394689739 -0.163230658 0.0617766529 0.000183403492 0.0710112005 0.159510151 -0.143794179 -0.189211234 -0.0542119145 0.0199382454 0.0439905077 0.100338861 0.0702851862 0.12443696 -0.158234075 0.17282562 -0.131180689 0.205779627 0.131486937 -0.160514966 -0.076684922 0.092578873 0.187864587 -0.15429166 0.207556978 -0.103013471 0.0340901464 -0.133713901 0.0235123038 -0.192762211 0.019478485 -0.18171525 0.0651128441 0.0244152844 -0.213064849 0.163766727 -0.168179899 0.187306121 -0.212710738 0.117810413 0.12609227 0.0291325003 -0.163738012 0.102538154 -0.125805646 0.0121202767 -0.0591153204 -0.130135298 -0.0628290027 0.203098491 -0.166227087 -0.00478670001 0.184182391 -0.152454853 0.18188791 -0.0667103976 0.172819331 -0.0146156996 -0.0339982659 0.0279436111 0.105446443 -0.144770458 -0.109358028 0.0192471296 0.188200489 0.0858842283 -0.0983887017 0.108614817 -0.0438651145 0.0593486875 0.168110713 -0.047465235 0.0798175782 -0.128899843 -0.133854002 -0.20729816 -0.149906605 0.0791921765 -0.211254358 0.192543194 0.200629219 0.195284471 -0.0494748801 0.0647576004 0.181527659 -0.113706164 0.0218512118 -0.191162854 0.0291792601 0.0376158506 -0.123656482 0.0180022269 0.140894696 0.0714050978 -0.16159381 0.0926799327 0.0226034969 -0.189750969 -0.0350172371 0.0470418185 -0.186078057 -0.0891744792 0.0520108789 0.136516348 -0.0838424861 -0.101458289 0.0753782243 0.11013256 -0.192158535 0.142239049 -0.058479324 -0.0814494193 -0.215055183 0.139743432 0.197326317 -0.0754297972 0.00930336118 -0.14622131 -0.198514134 -0.188449234 0.155454114 -0.120711192 0.132300839 0.122579858 -0.0591584146 0.161035404 -0.0420289189 0.0696589798 -0.183014199 0.0484898239 -0.0606966764 -0.20079869 -0.108404107 0.121048316 0.151067361 0.0634221584 0.000631973147 -0.0294355601 0.152546301 -0.000625312328 0.0681157261 -0.0641188174 0.205827698 -0.139500052 -0.193568975 -0.13270995 0.156589553 0.112015113 0.204306379 0.00710573792 0.130257532 0.142985359 -0.124871641 -0.0290887207 0.100151554 0.119556591 0.133430555 -0.090041995 -0.176130578 0.00573287904 -0.124943189 0.146017358 0.214246407 0.061580345 -0.131479979 -0.107906707 0.18850778 -0.210034028 0.0637067407 0.062337473 -0.16453357 0.0634577721 -0.0472978354 -0.0491347015 0.181117192 0.00577504933 0.167075559 0.119914904 0.125953689 -0.0143460929 -0.122767031 -0.140735745 0.0363093764 0.117042318 -0.147343099 0.193982705 -0.00277556479 -0.136952788 -0.0274345875 0.104121432 -0.10692589 0.116242692 -0.0103998631 0.133164838 0.174949422 0.153558776 -0.0446540117 -0.00206001103 -0.00733713806 -0.157759428 -0.131357908 -0.160130411 0.0451857299 -0.0532456487 -0.077699393 -0.17657502 -0.153983802 -0.137828052 0.12825425 -0.202821746 -0.0214028358 0.0930215567 -0.181945577 -0.102719858 -0.0298596025 -0.21377477 0.14888756 0.157358035 0.0944925398 -0.158147559 -0.185959846 0.0830570012 0.178929731 0.0133032352 0.0811558515 -0.00690591335 0.186414286 -0.207062781 -0.0206979364 0.000348687172 0.114053622 -0.0856104344 -0.0982460827 -0.0557920337 -0.102903262 0.0301186889 0.105542287 0.178725168 0.0349886268 0.13524203 -0.0172635019 -0.134871304 0.0107415766 -0.140276551 -0.209127396 0.204387888 -0.00119709969 -0.00364404917 0.015991196 -0.210531488 -0.0824379772 0.0859971195 0.142288253 -0.0410691649 0.0393377692 0.153276011 0.0827521235 -0.158360019 0.151604429 -0.0371215343 0.120174661 -0.0771589428 0.189603224 0.147350892 -0.210938141 -0.172547907 -0.0967928469 0.0939237028 -0.20950684 0.0294431895 0.154890016 0.0831695646 -0.0429969877 -0.102179721 0.21393691 -0.199205115 0.20384784 0.197848752 -0.177656084 0.0318856537 -0.132745892 0.144612774 -0.197010934 -0.16365841 0.073093459 -0.0846370608 -0.0567930192 0.130864725 -0.0617748946 -0.130248189 -0.0277102888 0.192752704 0.0604940504 0.136617377 -0.0373437107 0.00826536119 0.066867277 0.132610843 0.175488815 0.113968149 0.00343307853 0.152458265 -0.0940444916 -0.169755563 0.0179836899 0.0329832882 0.111090973 -0.137726977 0.0457587689 -0.101469539 -0.121715032 -0.069271639 -0.0543672889 -0.0324008167 -0.0646848679 -0.0787515938 -0.0102762878 -0.203159034 -0.182295144 0.0607208163 0.186966315 0.165972099 -0.0986062288 -0.192079291 0.0221322179 -0.132797554 0.0276545435 -0.0201136023 0.0229292661 0.132657662 -0.0473732054 -0.207832217 -0.0634901375 -0.215239465 0.14629136 -0.0391601324 0.100600854 0.168093279 0.187480763 0.198257282 -0.166674063 0.0259045959 0.0119856596 0.150289878 0.148098871 0.0152017325 -0.0148386359 -0.129166722 0.0386703163 0.00742375851 0.0557450503 -0.0610544384 -0.0498782843 -0.0932719558 0.0723501593 -0.100213185 -0.171624959 -0.0359659493 -0.00608068705 -0.201601997 0.0190250576 0.10006611 0.197292313 -0.0166507363 0.0125418454 -0.136885852 -0.0716551542 -0.157116726 0.00433987379 -0.0519080013 -0.121814705 0.0247971565 -0.101331308 0.0797851831 0.0709032565 0.0855198354 0.147495702 0.0524958819 -0.053468138 -0.086473152 -0.201313809 -0.176063985 -0.0891312212 0.0350982696 -0.131586984 0.103059366 0.139210656 -0.038221851 -0.0120923966 -0.101579957 0.112884536 0.00304837525 -0.0873012245 0.198003009 0.0210807323 -0.145883262 0.0103247613 0.00769135356 -0.0374292433 0.0860755295 -0.0912689269 0.151887044 -0.0687329471 0.100748047 -0.113508001 0.113136038 0.166133091 -0.00585459173 -0.15740104 -0.0746929348 0.184666947 -0.190463364 -0.204706624 -0.138748944 0.0779010206 0.213252023 -0.116575569 -0.196102545 0.033288151 0.0150933266 0.14540495 -0.0979735851 0.132766381 -0.0549449027 0.215730771 -0.0390325785 -0.124070719 0.18753247 0.00514343381 0.111918196 -0.0570635647 0.0775887221 -0.173897684 -0.110214546 -0.170119271 -0.181897625 0.142741099 0.0290858895 0.144163564 -0.0421321541 -0.164305717 -0.140128344 -0.118603736 -0.158226743 -0.151215315 0.00832808018 0.176361844 0.0306121558 0.207522139 0.176042631 0.150562957 0.110025153 -0.134920537 0.198722467 0.197492436 -0.00805097818 -0.0140521675 -0.00727014244 -0.145875841 0.10902153 0.105046287 -0.173887521 -0.00629025698 0.13811855 -0.00610406697 0.0565547496 0.0576848537 -0.207679689 0.0305929631 -0.00389450788 0.107116356 -0.167382583 0.197635278 0.101369664 -0.176363125 0.183016106 0.100329474 -0.00642110407 0.132393733 -0.160638958 0.183521762 0.0181603283 0.144922957 0.0617187768 -0.0471049845 -0.215218857 -0.0910002589 0.0307758003 -0.175020978 -0.140542492 -0.0219117552 0.102336124 -0.03606309 0.0732916445 -0.0467089713 0.0603087395 0.0840418786 -0.149531037 0.0595794171 0.101656243 0.167331472 -0.060702458 -0.115472369 -0.183996871 -0.037938416 0.157396182 -0.0630700737 -0.0658022165 -0.141971409 -0.173844472 0.157066509 0.0709586591 -0.109359838 -0.0769151449 -0.0433738083 0.0928399712 0.173244968 0.124053881 +tensor_densekernel0 448 +0.0874720514 -0.00377988815 0.0168170929 0.257600576 0.253425747 -0.0959590077 0.285705894 0.182055712 -0.0606924146 0.220531434 0.208172053 -0.0916452557 -0.00613588095 0.0777521431 0.094016701 0.184219658 0.139054 -0.0502391011 0.000360608101 -0.0183832347 -0.123216793 -0.0689985603 0.0271157026 0.247312993 0.215137511 0.213970095 0.195198476 -0.0687768459 0.276125997 -0.187888086 0.248041123 0.118264288 -0.160492018 -0.23765187 -0.28596136 -0.0184209645 0.143229157 0.159540892 -0.21604979 -0.24891609 0.0128549337 -0.251000404 0.149966359 -0.101634547 0.154979914 -0.183319747 -0.205634803 -0.207281917 -0.0838090926 -0.154234782 0.191091508 0.197003663 0.156107694 -0.194775686 0.14292869 -0.0455465764 -0.0312855244 0.0131508112 -0.171050906 0.0262877345 -0.194255173 0.206619889 0.199224323 -0.183122292 -0.177126348 0.28368637 -0.1771034 0.0122741163 -0.0709242225 0.172996044 -0.108827248 -0.27864936 0.279211611 0.0103343129 -0.0962914824 -0.0316556096 0.249062389 -0.145783022 -0.134221748 0.0806793869 -0.107674167 -0.0542573333 0.269689709 -0.0702928305 -0.164135158 0.107835442 -0.038901329 0.286382526 0.161285609 0.180902272 -0.236288294 -0.272231549 -0.237152159 -0.118395776 -0.0999294817 0.0404779017 -0.258297771 0.0728503764 0.0833859742 -0.0367698967 0.0393050611 -0.272811443 -0.0907125026 0.0630856454 -0.226888046 0.170747042 -0.181122541 -0.256199598 0.00417050719 -0.0888147652 -0.0334946513 -0.0384739041 -0.00973859429 0.265262455 -0.199353307 0.0457420051 -0.0395675898 0.0658659637 -0.142639473 -0.0863568783 0.0747567117 -0.114838436 -0.20536685 -0.208240598 0.0758621693 0.25118354 0.256882697 -0.141363576 0.236388713 -0.215308741 0.264807433 -0.0879521519 0.159738004 -0.270678282 0.0644026995 0.281252176 -0.112565264 -0.00349870324 -0.229609102 0.0965996981 -0.126161933 -0.0798197687 -0.245382816 0.272380084 -0.25988096 0.0292170048 -0.0180721879 0.205881268 -0.245454192 -0.109949768 0.286659688 0.237496465 -0.0601914525 0.126728952 -0.113599822 0.000470399857 -0.0837507397 0.0938257575 -0.0520189404 0.267017573 0.00973162055 -0.194592714 -0.280335158 0.149860591 0.179414839 -0.0292953849 0.111655295 0.113612503 -0.280272722 -0.169758707 0.262436241 0.017737776 -0.0358220935 0.0802962482 0.0899099112 0.00828582048 0.171009451 0.223639101 -0.070141241 0.0995429456 0.0586625934 0.210584551 0.0528482199 0.0796290934 0.240173668 -0.157846928 -0.149453402 0.206690937 0.166183561 0.235323697 0.166746825 -0.0151439011 -0.0615599602 0.143206894 -0.148319095 -0.154691458 -0.0570063144 -0.237417817 -0.171191514 -0.168208346 0.0199306309 0.104301602 0.231171161 -0.168991119 0.131233633 0.027466476 -0.284903437 -0.120982647 0.1341708 -0.247675121 -0.0769275129 0.164358467 -0.247161403 0.0188933611 0.114704132 -0.142321348 -0.0343742371 0.049872458 0.102173358 0.247223049 -0.110339209 -0.0889665484 -0.168113813 -0.215237081 0.1723288 -0.260313451 -0.170820028 0.203725696 0.0055089891 0.0255071819 -0.108599976 -0.221046105 0.154385597 0.21465835 0.193859637 -0.105026439 0.0410459638 0.196333587 -0.216898546 0.197410017 -0.0732497275 -0.105873942 0.20709756 0.252494544 0.0839326084 -0.21933654 0.191783488 -0.00989454985 -0.168362617 -0.128148034 0.100178927 0.146856695 0.159169257 0.278522342 0.103488475 -0.0506009609 -0.0769300163 0.213107973 -0.13263084 0.154754728 0.00203573704 0.223703712 -0.0798344612 0.193072915 0.288555831 0.287791997 0.0699839294 -0.238947168 0.0456590652 0.0518397689 -0.0917513669 -0.115689278 0.13739863 0.281425744 -0.224785432 -0.21092242 -0.0666812956 -0.28913033 -0.206089884 -0.0305227637 -0.242355898 0.0242836177 -0.000655174255 0.0433119833 -0.223685786 -0.212385595 -0.0460462868 0.182570815 -0.278938383 0.164017618 0.100606769 -0.276534826 0.0751288831 -0.0173214376 0.0333667696 -0.0019030869 -0.0199476182 0.258787364 -0.125873253 0.209463865 -0.196310788 0.232970506 0.224995703 0.0725018382 0.141419917 -0.0733582675 -0.202004015 -0.097471118 -0.00547552109 -0.0276772976 -0.114396259 -0.270322442 -0.128212839 0.0278715193 0.225051314 0.0891493261 0.0930118859 -0.151206478 0.079180032 0.0343460441 -0.0660957098 -0.241741687 -0.0166206062 -0.227473632 -0.196556211 0.208908528 -0.0758941323 -0.134847254 -0.155157343 -0.242590368 -0.0161181092 0.272646695 -0.228122145 -0.0370092094 -0.0174639523 0.202582389 0.16068089 0.0983715057 -0.184449404 -0.0251510143 -0.155816674 -0.232594565 0.27182129 0.202554882 -0.106493071 0.0277726948 -0.0840144604 -0.1357335 0.237240404 0.0846209824 -0.121029079 -0.00919911265 0.229925543 0.211392969 -0.0886114091 0.284160644 -0.196552128 -0.0856093764 -0.101809412 -0.134563297 0.122567177 0.215066463 0.0989311039 0.257133812 -0.119583234 0.109826267 0.261059791 -0.210815609 0.111921191 0.171606123 -0.0944337398 0.00710004568 0.152125239 -0.15542841 0.0132748783 -0.256189048 0.0519060493 0.0659337938 0.157751501 -0.064666152 0.0856899321 0.120876461 -0.0675664991 0.241741925 -0.0867508948 -0.183510005 -0.191558316 -0.184871912 -0.0896052867 -0.169102013 -0.100743026 0.264313489 -0.177678794 -0.267040193 0.0916837156 0.12209636 0.0690266192 0.0930233896 0.0285815001 -0.210697785 0.127231568 0.282865494 0.14501822 0.228754789 -0.00816121697 0.276574045 -0.0507636219 0.216670722 -0.0475428551 -0.0163431466 -0.0241680145 0.255153209 0.13787964 0.124895096 0.0774794221 0.00100636482 -0.288600892 0.121159166 0.0165127516 0.241267949 0.0584823191 -0.138285711 0.0472910702 0.125427812 -0.202609897 0.24497363 0.196361125 0.264235169 -0.0141975582 -0.117901742 0.24826929 -0.219102412 -0.00545069575 -0.0957443565 0.0762873292 -0.0936635882 0.18360877 0.0588223934 0.135743409 0.15366286 0.282723576 0.0682917535 -0.0133496523 0.166835427 0.240943879 0.204290092 0.0351489186 -0.0398246646 diff --git a/tmva/sofie/test/KerasParserTest/MLPtest.h5 b/tmva/sofie/test/KerasParserTest/MLPtest.h5 new file mode 100644 index 0000000000000000000000000000000000000000..6d55a9746cdca00f539d96e7a4ad1eb2522181cd GIT binary patch literal 75016 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 literal 0 HcmV?d00001 diff --git a/tmva/sofie/test/KerasParserTest/MLPtest.hxx b/tmva/sofie/test/KerasParserTest/MLPtest.hxx new file mode 100644 index 0000000000000..70e5b9b8178cf --- /dev/null +++ b/tmva/sofie/test/KerasParserTest/MLPtest.hxx @@ -0,0 +1,311 @@ +//Code generated automatically by TMVA for Inference of Model file [MLPtest.h5] at [Thu Aug 24 08:55:44 202] + +#ifndef ROOT_TMVA_SOFIE_MLPTEST +#define ROOT_TMVA_SOFIE_MLPTEST + +#include +#include +#include +#include "TMVA/SOFIE_common.hxx" +#include + +namespace TMVA_SOFIE_MLPtest{ +namespace BLAS{ + extern "C" void sgemm_(const char * transa, const char * transb, const int * m, const int * n, const int * k, + const float * alpha, const float * A, const int * lda, const float * B, const int * ldb, + const float * beta, float * C, const int * ldc); + extern "C" void sgemv_(const char * trans, const int * m, const int * n, const float * alpha, const float * A, + const int * lda, const float * X, const int * incx, const float * beta, const float * Y, const int * incy); +}//BLAS +struct Session { +std::vector fTensor_dense4bias0 = std::vector(2); +float * tensor_dense4bias0 = fTensor_dense4bias0.data(); +std::vector fTensor_dense3bias0 = std::vector(64); +float * tensor_dense3bias0 = fTensor_dense3bias0.data(); +std::vector fTensor_dense4kernel0 = std::vector(128); +float * tensor_dense4kernel0 = fTensor_dense4kernel0.data(); +std::vector fTensor_dense2bias0 = std::vector(64); +float * tensor_dense2bias0 = fTensor_dense2bias0.data(); +std::vector fTensor_dense1bias0 = std::vector(64); +float * tensor_dense1bias0 = fTensor_dense1bias0.data(); +std::vector fTensor_dense1kernel0 = std::vector(4096); +float * tensor_dense1kernel0 = fTensor_dense1kernel0.data(); +std::vector fTensor_densebias0 = std::vector(64); +float * tensor_densebias0 = fTensor_densebias0.data(); +std::vector fTensor_dense3kernel0 = std::vector(4096); +float * tensor_dense3kernel0 = fTensor_dense3kernel0.data(); +std::vector fTensor_dense2kernel0 = std::vector(4096); +float * tensor_dense2kernel0 = fTensor_dense2kernel0.data(); +std::vector fTensor_densekernel0 = std::vector(448); +float * tensor_densekernel0 = fTensor_densekernel0.data(); +std::vector fTensor_dense4Sigmoid0 = std::vector(2); +float * tensor_dense4Sigmoid0 = fTensor_dense4Sigmoid0.data(); +std::vector fTensor_dense4bias0bcast = std::vector(2); +float * tensor_dense4bias0bcast = fTensor_dense4bias0bcast.data(); +std::vector fTensor_dense3Relu0 = std::vector(64); +float * tensor_dense3Relu0 = fTensor_dense3Relu0.data(); +std::vector fTensor_dense2Dense = std::vector(64); +float * tensor_dense2Dense = fTensor_dense2Dense.data(); +std::vector fTensor_dense4Dense = std::vector(2); +float * tensor_dense4Dense = fTensor_dense4Dense.data(); +std::vector fTensor_denseSelu0 = std::vector(64); +float * tensor_denseSelu0 = fTensor_denseSelu0.data(); +std::vector fTensor_dense1Dense = std::vector(64); +float * tensor_dense1Dense = fTensor_dense1Dense.data(); +std::vector fTensor_dense3Dense = std::vector(64); +float * tensor_dense3Dense = fTensor_dense3Dense.data(); +std::vector fTensor_denseDense = std::vector(64); +float * tensor_denseDense = fTensor_denseDense.data(); +std::vector fTensor_dense3bias0bcast = std::vector(64); +float * tensor_dense3bias0bcast = fTensor_dense3bias0bcast.data(); +std::vector fTensor_dense2Sigmoid0 = std::vector(64); +float * tensor_dense2Sigmoid0 = fTensor_dense2Sigmoid0.data(); +std::vector fTensor_dense1bias0bcast = std::vector(64); +float * tensor_dense1bias0bcast = fTensor_dense1bias0bcast.data(); +std::vector fTensor_densebias0bcast = std::vector(64); +float * tensor_densebias0bcast = fTensor_densebias0bcast.data(); +std::vector fTensor_dense2bias0bcast = std::vector(64); +float * tensor_dense2bias0bcast = fTensor_dense2bias0bcast.data(); +std::vector fTensor_dense1Tanh0 = std::vector(64); +float * tensor_dense1Tanh0 = fTensor_dense1Tanh0.data(); + + +Session(std::string filename ="") { + if (filename.empty()) filename = "MLPtest.dat"; + std::ifstream f; + f.open(filename); + if (!f.is_open()){ + throw std::runtime_error("tmva-sofie failed to open file for input weights"); + } + std::string tensor_name; + int length; + f >> tensor_name >> length; + if (tensor_name != "tensor_dense4bias0" ) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor name; expected name is tensor_dense4bias0 , read " + tensor_name; + throw std::runtime_error(err_msg); + } + if (length != 2) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor size; expected size is 2 , read " + std::to_string(length) ; + throw std::runtime_error(err_msg); + } + for (int i =0; i < length; ++i) + f >> tensor_dense4bias0[i]; + f >> tensor_name >> length; + if (tensor_name != "tensor_dense3bias0" ) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor name; expected name is tensor_dense3bias0 , read " + tensor_name; + throw std::runtime_error(err_msg); + } + if (length != 64) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor size; expected size is 64 , read " + std::to_string(length) ; + throw std::runtime_error(err_msg); + } + for (int i =0; i < length; ++i) + f >> tensor_dense3bias0[i]; + f >> tensor_name >> length; + if (tensor_name != "tensor_dense4kernel0" ) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor name; expected name is tensor_dense4kernel0 , read " + tensor_name; + throw std::runtime_error(err_msg); + } + if (length != 128) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor size; expected size is 128 , read " + std::to_string(length) ; + throw std::runtime_error(err_msg); + } + for (int i =0; i < length; ++i) + f >> tensor_dense4kernel0[i]; + f >> tensor_name >> length; + if (tensor_name != "tensor_dense2bias0" ) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor name; expected name is tensor_dense2bias0 , read " + tensor_name; + throw std::runtime_error(err_msg); + } + if (length != 64) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor size; expected size is 64 , read " + std::to_string(length) ; + throw std::runtime_error(err_msg); + } + for (int i =0; i < length; ++i) + f >> tensor_dense2bias0[i]; + f >> tensor_name >> length; + if (tensor_name != "tensor_dense1bias0" ) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor name; expected name is tensor_dense1bias0 , read " + tensor_name; + throw std::runtime_error(err_msg); + } + if (length != 64) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor size; expected size is 64 , read " + std::to_string(length) ; + throw std::runtime_error(err_msg); + } + for (int i =0; i < length; ++i) + f >> tensor_dense1bias0[i]; + f >> tensor_name >> length; + if (tensor_name != "tensor_dense1kernel0" ) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor name; expected name is tensor_dense1kernel0 , read " + tensor_name; + throw std::runtime_error(err_msg); + } + if (length != 4096) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor size; expected size is 4096 , read " + std::to_string(length) ; + throw std::runtime_error(err_msg); + } + for (int i =0; i < length; ++i) + f >> tensor_dense1kernel0[i]; + f >> tensor_name >> length; + if (tensor_name != "tensor_densebias0" ) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor name; expected name is tensor_densebias0 , read " + tensor_name; + throw std::runtime_error(err_msg); + } + if (length != 64) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor size; expected size is 64 , read " + std::to_string(length) ; + throw std::runtime_error(err_msg); + } + for (int i =0; i < length; ++i) + f >> tensor_densebias0[i]; + f >> tensor_name >> length; + if (tensor_name != "tensor_dense3kernel0" ) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor name; expected name is tensor_dense3kernel0 , read " + tensor_name; + throw std::runtime_error(err_msg); + } + if (length != 4096) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor size; expected size is 4096 , read " + std::to_string(length) ; + throw std::runtime_error(err_msg); + } + for (int i =0; i < length; ++i) + f >> tensor_dense3kernel0[i]; + f >> tensor_name >> length; + if (tensor_name != "tensor_dense2kernel0" ) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor name; expected name is tensor_dense2kernel0 , read " + tensor_name; + throw std::runtime_error(err_msg); + } + if (length != 4096) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor size; expected size is 4096 , read " + std::to_string(length) ; + throw std::runtime_error(err_msg); + } + for (int i =0; i < length; ++i) + f >> tensor_dense2kernel0[i]; + f >> tensor_name >> length; + if (tensor_name != "tensor_densekernel0" ) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor name; expected name is tensor_densekernel0 , read " + tensor_name; + throw std::runtime_error(err_msg); + } + if (length != 448) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor size; expected size is 448 , read " + std::to_string(length) ; + throw std::runtime_error(err_msg); + } + for (int i =0; i < length; ++i) + f >> tensor_densekernel0[i]; + f.close(); + { + float * data = TMVA::Experimental::SOFIE::UTILITY::UnidirectionalBroadcast(tensor_densebias0,{ 64 }, { 1 , 64 }); + std::copy(data, data + 64, tensor_densebias0bcast); + delete [] data; + } + { + float * data = TMVA::Experimental::SOFIE::UTILITY::UnidirectionalBroadcast(tensor_dense1bias0,{ 64 }, { 1 , 64 }); + std::copy(data, data + 64, tensor_dense1bias0bcast); + delete [] data; + } + { + float * data = TMVA::Experimental::SOFIE::UTILITY::UnidirectionalBroadcast(tensor_dense2bias0,{ 64 }, { 1 , 64 }); + std::copy(data, data + 64, tensor_dense2bias0bcast); + delete [] data; + } + { + float * data = TMVA::Experimental::SOFIE::UTILITY::UnidirectionalBroadcast(tensor_dense3bias0,{ 64 }, { 1 , 64 }); + std::copy(data, data + 64, tensor_dense3bias0bcast); + delete [] data; + } + { + float * data = TMVA::Experimental::SOFIE::UTILITY::UnidirectionalBroadcast(tensor_dense4bias0,{ 2 }, { 1 , 2 }); + std::copy(data, data + 2, tensor_dense4bias0bcast); + delete [] data; + } +} + +std::vector infer(float* tensor_denseinput){ + +//--------- Gemm + char op_0_transA = 'n'; + char op_0_transB = 'n'; + int op_0_m = 1; + int op_0_n = 64; + int op_0_k = 7; + float op_0_alpha = 1; + float op_0_beta = 1; + int op_0_lda = 7; + int op_0_ldb = 64; + std::copy(tensor_densebias0bcast, tensor_densebias0bcast + 64, tensor_denseDense); + BLAS::sgemm_(&op_0_transB, &op_0_transA, &op_0_n, &op_0_m, &op_0_k, &op_0_alpha, tensor_densekernel0, &op_0_ldb, tensor_denseinput, &op_0_lda, &op_0_beta, tensor_denseDense, &op_0_n); + for (int id = 0; id < 64 ; id++){ + tensor_denseSelu0[id] = 1.0507009873554804934193349852946 * (std::max(float(0.0), tensor_denseDense[id]) + std::min(0.0, 1.6732632423543772848170429916717 * (std::exp(tensor_denseDense[id])-1))); + } + +//--------- Gemm + char op_2_transA = 'n'; + char op_2_transB = 'n'; + int op_2_m = 1; + int op_2_n = 64; + int op_2_k = 64; + float op_2_alpha = 1; + float op_2_beta = 1; + int op_2_lda = 64; + int op_2_ldb = 64; + std::copy(tensor_dense1bias0bcast, tensor_dense1bias0bcast + 64, tensor_dense1Dense); + BLAS::sgemm_(&op_2_transB, &op_2_transA, &op_2_n, &op_2_m, &op_2_k, &op_2_alpha, tensor_dense1kernel0, &op_2_ldb, tensor_denseSelu0, &op_2_lda, &op_2_beta, tensor_dense1Dense, &op_2_n); + +//------ TANH + for (int id = 0; id < 64 ; id++){ + tensor_dense1Tanh0[id] = std::tanh(tensor_dense1Dense[id]); + } + +//--------- Gemm + char op_4_transA = 'n'; + char op_4_transB = 'n'; + int op_4_m = 1; + int op_4_n = 64; + int op_4_k = 64; + float op_4_alpha = 1; + float op_4_beta = 1; + int op_4_lda = 64; + int op_4_ldb = 64; + std::copy(tensor_dense2bias0bcast, tensor_dense2bias0bcast + 64, tensor_dense2Dense); + BLAS::sgemm_(&op_4_transB, &op_4_transA, &op_4_n, &op_4_m, &op_4_k, &op_4_alpha, tensor_dense2kernel0, &op_4_ldb, tensor_dense1Tanh0, &op_4_lda, &op_4_beta, tensor_dense2Dense, &op_4_n); + for (int id = 0; id < 64 ; id++){ + tensor_dense2Sigmoid0[id] = 1 / (1 + std::exp( - tensor_dense2Dense[id])); + } + +//--------- Gemm + char op_6_transA = 'n'; + char op_6_transB = 'n'; + int op_6_m = 1; + int op_6_n = 64; + int op_6_k = 64; + float op_6_alpha = 1; + float op_6_beta = 1; + int op_6_lda = 64; + int op_6_ldb = 64; + std::copy(tensor_dense3bias0bcast, tensor_dense3bias0bcast + 64, tensor_dense3Dense); + BLAS::sgemm_(&op_6_transB, &op_6_transA, &op_6_n, &op_6_m, &op_6_k, &op_6_alpha, tensor_dense3kernel0, &op_6_ldb, tensor_dense2Sigmoid0, &op_6_lda, &op_6_beta, tensor_dense3Dense, &op_6_n); + +//------ RELU + for (int id = 0; id < 64 ; id++){ + tensor_dense3Relu0[id] = ((tensor_dense3Dense[id] > 0 )? tensor_dense3Dense[id] : 0); + } + +//--------- Gemm + char op_8_transA = 'n'; + char op_8_transB = 'n'; + int op_8_m = 1; + int op_8_n = 2; + int op_8_k = 64; + float op_8_alpha = 1; + float op_8_beta = 1; + int op_8_lda = 64; + int op_8_ldb = 2; + std::copy(tensor_dense4bias0bcast, tensor_dense4bias0bcast + 2, tensor_dense4Dense); + BLAS::sgemm_(&op_8_transB, &op_8_transA, &op_8_n, &op_8_m, &op_8_k, &op_8_alpha, tensor_dense4kernel0, &op_8_ldb, tensor_dense3Relu0, &op_8_lda, &op_8_beta, tensor_dense4Dense, &op_8_n); + for (int id = 0; id < 2 ; id++){ + tensor_dense4Sigmoid0[id] = 1 / (1 + std::exp( - tensor_dense4Dense[id])); + } + std::vector ret (tensor_dense4Sigmoid0, tensor_dense4Sigmoid0 + 2); + return ret; +} +}; +} //TMVA_SOFIE_MLPtest + +#endif // ROOT_TMVA_SOFIE_MLPTEST diff --git a/tmva/sofie/test/KerasParserTest/MaxPooltest.dat b/tmva/sofie/test/KerasParserTest/MaxPooltest.dat new file mode 100644 index 0000000000000..22ad234529658 --- /dev/null +++ b/tmva/sofie/test/KerasParserTest/MaxPooltest.dat @@ -0,0 +1,4 @@ +tensor_dense2bias0 64 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +tensor_dense2kernel0 64 +0.243668139 0.241856575 0.303170681 -0.0320544839 0.0420162976 -0.138369426 -0.0425698459 -0.216986358 0.087762773 -0.0896665007 -0.192684025 0.291695535 0.249347031 -0.000859677792 0.0745927691 0.217640698 -0.097207889 -0.243863359 -0.021827817 -0.270806581 0.251050651 0.244868994 -0.226396829 -0.251941651 0.126850814 0.302963853 -0.144368574 -0.0218638778 -0.283244699 0.0819474161 0.144138515 -0.217054516 0.0564838648 -0.270984709 0.0964825749 -0.185705185 0.117584646 -0.0539790094 -0.166489735 0.0124458075 0.118276417 0.057897687 -0.130802035 0.180548042 -0.26641959 0.218894958 -0.274052769 -0.0743645281 -0.0443408489 -0.261945814 -0.131241798 -0.0844110698 -0.0490570068 0.0749932826 -0.0803186744 0.0643828809 0.0759205222 0.300491333 -0.212539822 -0.0080113709 -0.0548423827 0.100449502 0.139791429 -0.0365694165 diff --git a/tmva/sofie/test/KerasParserTest/MaxPooltest.h5 b/tmva/sofie/test/KerasParserTest/MaxPooltest.h5 new file mode 100644 index 0000000000000000000000000000000000000000..914d3ac7b3daece9358bf9dbab12680ec5a47bd7 GIT binary patch literal 15128 zcmeHNU2Gdg5MC#=n3B>If^hgL#y|upge0Vp7HkYO;HrP&PXt1H-PjlV#N}-6E^Sj9 zY5{^!@lcRJsVbp}A5kP8Dk`-I#ivMsfCr>J6bXS4@PGs_DB=O}1nlh2IPt|!RG_3% z?i6KjXJ=<;znhtzoAXPlP4}%{b@?g=S2)bhV~z5b{{4kl zHz9UDgRuzG8&Q6=UJ-IQ@!9c_@&Ui)EFC=Xn8R$il&=i1z`3@fXl$i?Kn2%AHBAX=>~Zz}$U*h+~LJy(hosb) zLwamuH1?4G)Ua;31~+4^(U=Mzg8p=j7@RVLwjNkaJ|cptVCnaZ+H4hu-K{X}6E(oy zbWSs1Sd&i;W?RFi*&6NIDMV)6k%Cl4sLkD5J7Kz0;I;$AL2f#_AlN*c)iZMlq+r<+ z)C#fD(N>{;wjf^gzEU{&{%eBG0 zJ;YsLP3O2}>87Iz3v#RCe4p~#8k;El^ckps#wu)r08&E%blx*qe%LZxfaJC=fe=r- z#vbm9L;}!oxs?M+!y;Y{7#z6JUPR6zU=rqNfL{sdZ87FI$@|T`op&Fx48Yf?ucJ## z2NwZ*iGlb<#67Otd8bm0oQk^GdUn|4HtM2$Pl>HMB6n)IBU;r_lqrIRuo;ndfN{(f zId5QeRM@?WM=IA~Oy(al9+`OuuoK!?+#b==Vjqr(NOrz30{a=#gJc{)98^R!&4n)eLKN1f)bp3Mt2xT%$Ah)sbjf%=r! z&MKKNxW*8mjro`u@f*P18Sa1Xq!kUBI=5v~XA1>{i1xPj_71UTMo;q*)d%a)g_m~7 z?gr|1s_q6L=mp0xrOkHeH@Dv|D16At+PoZ0N5#XTbL9f{nC6|obWGE6NarB+*Wf%~ zprRC$k=$~$Mt-8#I=_fc`q8;}A%V|8Se4Cso6~zP*x< zb*p}KBQh*eL-EUxR|Cso{DSXE5vHmlvjME;_aBU3R5zwp;*ZV>@6PhQ8vE*9o1Rc5 z5O7Apv!ePs={t?}^_i&RUo2isU90$lc%g7uZvXw?U!n*=Bc3CKhrfP9^&W~B=(fbZ zXzS0jj-lO>Jii?;DsY)HghT~VVurwl*bNeiP@N(Wo=L>V->(-D1ZZocS7UA!WtWB7 zWe1TTP7)Zet5X8Q7;)-D;p=@OvAYl3rD>F1)s^F7_~wQ6ptyHDwlLpv8@=xNkwo&n zy@~b>M-zv))R$7tt?^UGS9>4sY%9IrvCI2o@4y&{*c1Gt z$S33RuJ3jwer@`!^uVbRFFF0e4xlCi=g+ z#QWij6O+!0SG4n+~gI1 z*>dO48-I&OTZZC)%&hQU|FJvKk{k0_%kIQGy)S##*74HR8|zCSU-g2Q%&hcIe*b=n z&7?|AuOEr8d*$lIvyAK?Vvu}V2El{@wPuv7JDRB|^aezD@5RMJk-3UgQkD|B;?lAM)4rX6x3~>sf1~cVR6t$+|9N zU4P*Z8z~OVSFcvRs`~FiBUl$KqM*Qk<|7(VW)Z06KT}wLCeE|vKmL06Qu|LI*3XN$ z@xXt`0)n<00=4{yp&ikjv*kbj??6lKKjZkFsfZg7{D&+cXsaPm%YTx-@0DlEfBfG^ I|1baf8wK9$ZvX%Q literal 0 HcmV?d00001 diff --git a/tmva/sofie/test/KerasParserTest/MaxPooltest.hxx b/tmva/sofie/test/KerasParserTest/MaxPooltest.hxx new file mode 100644 index 0000000000000..77ec9e53a91f9 --- /dev/null +++ b/tmva/sofie/test/KerasParserTest/MaxPooltest.hxx @@ -0,0 +1,155 @@ +//Code generated automatically by TMVA for Inference of Model file [MaxPooltest.h5] at [Thu Aug 24 08:55:47 202] + +#ifndef ROOT_TMVA_SOFIE_MAXPOOLTEST +#define ROOT_TMVA_SOFIE_MAXPOOLTEST + +#include +#include +#include +#include "TMVA/SOFIE_common.hxx" +#include + +namespace TMVA_SOFIE_MaxPooltest{ +namespace BLAS{ + extern "C" void sgemm_(const char * transa, const char * transb, const int * m, const int * n, const int * k, + const float * alpha, const float * A, const int * lda, const float * B, const int * ldb, + const float * beta, float * C, const int * ldc); + extern "C" void sgemv_(const char * trans, const int * m, const int * n, const float * alpha, const float * A, + const int * lda, const float * X, const int * incx, const float * beta, const float * Y, const int * incy); +}//BLAS +struct Session { +std::vector fTensor_dense2bias0 = std::vector(64); +float * tensor_dense2bias0 = fTensor_dense2bias0.data(); +std::vector fTensor_dense2kernel0 = std::vector(64); +float * tensor_dense2kernel0 = fTensor_dense2kernel0.data(); +std::vector fTensor_dense2Tanh0 = std::vector(64); +float * tensor_dense2Tanh0 = fTensor_dense2Tanh0.data(); +std::vector fTensor_dense2bias0bcast = std::vector(64); +float * tensor_dense2bias0bcast = fTensor_dense2bias0bcast.data(); +std::vector fTensor_flatten2Reshape0 = std::vector(1); +float * tensor_flatten2Reshape0 = fTensor_flatten2Reshape0.data(); +std::vector fTensor_reshape5Reshape0 = std::vector(4); +float * tensor_reshape5Reshape0 = fTensor_reshape5Reshape0.data(); +std::vector fTensor_maxpooling2d2PostTrans = std::vector(1); +float * tensor_maxpooling2d2PostTrans = fTensor_maxpooling2d2PostTrans.data(); +std::vector fTensor_dense2Dense = std::vector(64); +float * tensor_dense2Dense = fTensor_dense2Dense.data(); +std::vector fTensor_maxpooling2d2MaxPooling2D = std::vector(1); +float * tensor_maxpooling2d2MaxPooling2D = fTensor_maxpooling2d2MaxPooling2D.data(); +std::vector fTensor_maxpooling2d2PreTrans = std::vector(4); +float * tensor_maxpooling2d2PreTrans = fTensor_maxpooling2d2PreTrans.data(); + +std::vector fVec_op_2_xpad = std::vector(4); + +Session(std::string filename ="") { + if (filename.empty()) filename = "MaxPooltest.dat"; + std::ifstream f; + f.open(filename); + if (!f.is_open()){ + throw std::runtime_error("tmva-sofie failed to open file for input weights"); + } + std::string tensor_name; + int length; + f >> tensor_name >> length; + if (tensor_name != "tensor_dense2bias0" ) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor name; expected name is tensor_dense2bias0 , read " + tensor_name; + throw std::runtime_error(err_msg); + } + if (length != 64) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor size; expected size is 64 , read " + std::to_string(length) ; + throw std::runtime_error(err_msg); + } + for (int i =0; i < length; ++i) + f >> tensor_dense2bias0[i]; + f >> tensor_name >> length; + if (tensor_name != "tensor_dense2kernel0" ) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor name; expected name is tensor_dense2kernel0 , read " + tensor_name; + throw std::runtime_error(err_msg); + } + if (length != 64) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor size; expected size is 64 , read " + std::to_string(length) ; + throw std::runtime_error(err_msg); + } + for (int i =0; i < length; ++i) + f >> tensor_dense2kernel0[i]; + f.close(); + { + float * data = TMVA::Experimental::SOFIE::UTILITY::UnidirectionalBroadcast(tensor_dense2bias0,{ 64 }, { 1 , 64 }); + std::copy(data, data + 64, tensor_dense2bias0bcast); + delete [] data; + } +} + +std::vector infer(float* tensor_reshape5input){ + ///--------Reshape operator + + std::copy( tensor_reshape5input, tensor_reshape5input + 4, tensor_reshape5Reshape0); + ///------- Transpose operator + + for (size_t id = 0; id < 4 ; id++){ + tensor_maxpooling2d2PreTrans[id] = tensor_reshape5Reshape0[ ( id / 4 ) * 4 + ( (id % 4) / 2 ) * 2 + ( (id % 2) ) * 1 + ( (id % 4) / 4 )]; + } + +//---- operator MaxPool op_2 +{ + constexpr int hsize = 2; + constexpr int hmin = 0; + constexpr int hmax = 1; + constexpr int kh = 2; + constexpr int wsize = 2; + constexpr int wmin = 0; + constexpr int wmax = 1; + constexpr int kw = 2; + size_t outIndex = 0; + for (size_t n = 0; n < 1; n++) { + size_t inputOffset = n*4; + for (int i = hmin; i < hmax; i+=2) { + for (int j = wmin; j < wmax; j+=2) { + float value = -INFINITY; + for (int l = i; l < i + kh; l++) { + if (l < 0 || l >= hsize) continue; + for (int m = j; m < j + kw; m++) { + if (m < 0 || m >= wsize) continue; + int index = inputOffset + l*wsize + m; + auto xval = tensor_maxpooling2d2PreTrans[index]; + if (xval > value) value = xval; + } + } + tensor_maxpooling2d2MaxPooling2D[outIndex++] = value; + } + } + } + } + ///------- Transpose operator + + for (size_t id = 0; id < 1 ; id++){ + tensor_maxpooling2d2PostTrans[id] = tensor_maxpooling2d2MaxPooling2D[ ( id / 1 ) * 1 + ( (id % 1) ) * 1 + ( (id % 1) / 1 ) * 1 + ( (id % 1) / 1 )]; + } + ///--------Flatten operator + + std::copy( tensor_maxpooling2d2PostTrans, tensor_maxpooling2d2PostTrans + 1, tensor_flatten2Reshape0); + +//--------- Gemm + char op_5_transA = 'n'; + char op_5_transB = 'n'; + int op_5_m = 1; + int op_5_n = 64; + int op_5_k = 1; + float op_5_alpha = 1; + float op_5_beta = 1; + int op_5_lda = 1; + int op_5_ldb = 64; + std::copy(tensor_dense2bias0bcast, tensor_dense2bias0bcast + 64, tensor_dense2Dense); + BLAS::sgemm_(&op_5_transB, &op_5_transA, &op_5_n, &op_5_m, &op_5_k, &op_5_alpha, tensor_dense2kernel0, &op_5_ldb, tensor_flatten2Reshape0, &op_5_lda, &op_5_beta, tensor_dense2Dense, &op_5_n); + +//------ TANH + for (int id = 0; id < 64 ; id++){ + tensor_dense2Tanh0[id] = std::tanh(tensor_dense2Dense[id]); + } + std::vector ret (tensor_dense2Tanh0, tensor_dense2Tanh0 + 64); + return ret; +} +}; +} //TMVA_SOFIE_MaxPooltest + +#endif // ROOT_TMVA_SOFIE_MAXPOOLTEST diff --git a/tmva/sofie/test/KerasParserTest/Relutest.dat b/tmva/sofie/test/KerasParserTest/Relutest.dat new file mode 100644 index 0000000000000..5c8d48a48b70b --- /dev/null +++ b/tmva/sofie/test/KerasParserTest/Relutest.dat @@ -0,0 +1,4 @@ +tensor_dense10bias0 64 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +tensor_dense10kernel0 448 +0.237393409 -0.0647626966 0.271441191 -0.0937001854 -0.112237781 -0.265143216 0.205460489 0.192891806 0.23001042 0.116417915 0.267815918 0.015876025 -0.0449945331 -0.0166074932 0.277857035 0.00765070319 0.271724671 0.0241829157 -0.0484651476 0.0492525101 -0.173202932 0.0853805244 -0.142929181 0.0428443551 0.225915343 -0.162101299 -0.145829469 -0.121007591 -0.215149611 0.228848428 0.17650798 0.277458519 0.18166855 0.180399776 0.052485317 -0.0876067877 0.200450867 0.224210948 0.201512545 -0.209828243 0.0845780671 0.204240739 0.251272112 0.248779386 0.0199754834 -0.218695581 -0.0162134171 -0.221451834 -0.00933772326 0.156769872 -0.000999510288 0.063374579 -0.0180398822 -0.0934264064 0.152844578 -0.188588306 -0.213420153 -0.276937187 -0.0592215508 -0.202682614 0.0592517853 -0.0434415936 -0.0501333326 0.110965192 -0.0546363145 0.231656581 0.0318681896 0.0123163164 -0.129552782 -0.147550464 0.235798091 -0.148085311 0.169349104 0.0990814865 -0.0519351512 -0.189533398 -0.0846618712 0.0376005471 0.224984556 0.220283896 0.14757055 0.0836896598 0.150909364 0.177220732 -0.0774537176 0.0422783196 0.106586367 -0.19887507 -0.214842021 -0.0571182519 0.287666529 0.240021735 -0.183803946 -0.0994790494 -0.103651419 -0.282814324 -0.0934265554 -0.219798476 -0.0263000131 0.182274312 0.13524884 -0.187834159 -0.072417751 0.163693309 0.0307226479 -0.0412802845 0.126887232 0.0996990502 0.267423123 0.102643043 0.0650408268 -0.158836171 0.204574049 0.188311845 -0.109868124 -0.156069383 -0.279201955 0.0264449418 0.279288143 -0.271325409 0.193085194 -0.065572843 0.286848098 -0.05957295 0.273144037 -0.196830407 -0.0968636274 -0.25060603 0.202939451 0.135272801 -0.215760425 0.233355373 -0.135440111 -0.249528855 -0.0400876105 -0.244359061 -0.163741618 0.140366554 -0.113333538 0.172179043 0.249310344 0.0344364047 0.0638255179 0.123699248 0.00147107244 -0.164121017 -0.0933240354 0.19419542 0.0329129398 0.287363797 -0.107226565 -0.0741198361 0.00369665027 0.0870399177 0.0987626016 -0.0796457976 0.0233461559 0.288736612 -0.253729999 -0.047387749 0.0510712266 -0.219079673 -0.235536158 -0.0581094921 0.192746133 -0.113942981 -0.136113659 -0.0773848146 0.12972495 -0.255994767 0.234438747 0.276949555 -0.0146305263 -0.241370961 -0.161705822 0.107518286 -0.0672745854 -0.00505799055 -0.265455604 -0.267205983 -0.190801397 -0.202149898 0.216595322 0.0868183374 -0.128296286 -0.192743629 -0.150270268 0.206145406 0.207070887 -0.121102408 -0.182304025 0.0459283292 0.0398180187 0.233907074 0.258960098 0.175261945 0.0187922418 -0.190099165 0.272329062 0.151785642 0.0827640593 -0.179157764 0.0574276447 0.1285128 0.0924257934 0.170262665 -0.00205346942 -0.228783429 0.00127035379 0.0634126961 0.178361207 0.140317649 0.0147353411 -0.117153481 0.283246368 0.0753291845 0.229364365 -0.277297795 0.0760970712 -0.212861955 -0.172337815 0.094838351 -0.0519530326 0.0302608013 -0.0423400849 0.20663172 -0.162452698 -0.215181559 -0.284236401 -0.11395891 0.239011556 -0.0551680475 -0.290301651 -0.157853454 -0.0960080177 0.266317517 -0.113118336 -0.0892907679 0.241701096 -0.270921737 -0.0185405016 0.025324285 0.150679737 0.117975831 0.257220715 0.144747406 -0.110124767 0.14098534 -0.261329859 -0.0319860876 0.198600054 0.13257283 -0.0905003399 -0.0939038694 -0.10607487 0.0708037019 -0.0323005319 0.18863979 -0.277040362 -0.221515253 0.0887020528 0.231132835 -0.176952586 -0.10917753 0.213664323 -0.257152796 0.283401936 0.25279364 0.0335897505 0.015758127 -0.15855749 -0.0882607102 -0.253009021 -0.231529921 -0.0446867943 0.223928779 -0.192600012 -0.0409547389 -0.251848668 -0.0617222786 0.0702289343 -0.15491955 0.183695257 -0.0308220387 0.032023102 -0.168017894 -0.220164016 0.0711688101 -0.151527867 0.0986126959 0.130655944 -0.132567421 0.231681913 -0.142623529 0.245862633 0.281353146 0.189216942 -0.0172332823 -0.18382293 0.256990045 0.147381425 0.0545753241 0.0794323981 -0.161557704 -0.125647381 0.281586617 0.2561315 -0.192397431 -0.0435175002 0.0468738973 -0.0396630466 -0.25416711 0.222091347 -0.200178146 -0.107674927 -0.0534857213 0.113787711 -0.103555217 -0.0070412457 -0.245870054 0.154819757 0.192461461 -0.198640108 -0.0508741736 -0.0381958485 -0.0485332757 0.250256926 -0.134697407 -0.217661619 0.155225694 -0.0443110764 0.0694325566 -0.0458793193 -0.0296549499 -0.282182306 0.285459965 -0.190097079 0.182501018 -0.0717624426 -0.115076095 -0.20533219 -0.0544163287 -0.131467015 0.275928229 0.217577368 0.0366865993 -0.0461847633 0.0806441903 0.117128938 0.18796432 -0.110545889 0.286998183 0.276044041 0.0214735866 0.0587515831 0.117109895 0.203548133 0.268725723 -0.0613385886 0.258070499 0.240115494 -0.0400156081 -0.0572873652 0.0409386754 -0.0944131613 0.0114132464 0.146308452 -0.189643383 0.163372487 0.0406469405 -0.234260887 0.243647009 -0.0490855277 0.0338222682 0.120992899 -0.258368373 -0.00453221798 -0.274130523 -0.224385247 0.0563141406 0.247972876 0.0743063986 -0.28269276 -0.00493726134 0.0181300044 -0.264525056 -0.121417969 0.0695436597 0.0704825819 0.179636151 -0.140486673 0.259376496 0.263336271 -0.00651147962 0.260890335 0.109876007 -0.0545007437 -0.259124696 -0.242180824 -0.111243203 0.242735773 -0.224849343 -0.0490051955 0.133250445 -0.0433962047 -0.217596203 0.219841927 0.0953520834 0.158119649 0.277985007 0.147566408 0.136612058 0.131977737 0.16973266 -0.0388646722 0.0524792969 0.155778408 0.0725181103 -0.28807193 0.0970387757 -0.208695531 -0.193177357 -0.126096502 0.0540907085 0.188005209 -0.213386536 0.0912091732 -0.192691982 0.117264658 -0.0900088698 0.248692065 0.213521391 -0.110927224 -0.00564786792 0.259641498 -0.0984085798 0.154065609 0.129265428 -0.209450781 -0.150306582 -0.178209841 -0.0135895312 0.186741292 -0.232229307 -0.0228957832 -0.201381266 -0.0687607676 0.148538798 diff --git a/tmva/sofie/test/KerasParserTest/Relutest.h5 b/tmva/sofie/test/KerasParserTest/Relutest.h5 new file mode 100644 index 0000000000000000000000000000000000000000..9f157542d361b2c59bb62bb3ed5b8b8a538940b2 GIT binary patch literal 12584 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 YCCaIwo>b6}!XFjIJn*o4kLIiX4Ohm!fdBvi literal 0 HcmV?d00001 diff --git a/tmva/sofie/test/KerasParserTest/Relutest.hxx b/tmva/sofie/test/KerasParserTest/Relutest.hxx new file mode 100644 index 0000000000000..99bdbb9b3430c --- /dev/null +++ b/tmva/sofie/test/KerasParserTest/Relutest.hxx @@ -0,0 +1,96 @@ +//Code generated automatically by TMVA for Inference of Model file [Relutest.h5] at [Thu Aug 24 08:55:39 202] + +#ifndef ROOT_TMVA_SOFIE_RELUTEST +#define ROOT_TMVA_SOFIE_RELUTEST + +#include +#include +#include "TMVA/SOFIE_common.hxx" +#include + +namespace TMVA_SOFIE_Relutest{ +namespace BLAS{ + extern "C" void sgemm_(const char * transa, const char * transb, const int * m, const int * n, const int * k, + const float * alpha, const float * A, const int * lda, const float * B, const int * ldb, + const float * beta, float * C, const int * ldc); + extern "C" void sgemv_(const char * trans, const int * m, const int * n, const float * alpha, const float * A, + const int * lda, const float * X, const int * incx, const float * beta, const float * Y, const int * incy); +}//BLAS +struct Session { +std::vector fTensor_dense10bias0 = std::vector(64); +float * tensor_dense10bias0 = fTensor_dense10bias0.data(); +std::vector fTensor_dense10kernel0 = std::vector(448); +float * tensor_dense10kernel0 = fTensor_dense10kernel0.data(); +std::vector fTensor_dense10Relu0 = std::vector(64); +float * tensor_dense10Relu0 = fTensor_dense10Relu0.data(); +std::vector fTensor_dense10Dense = std::vector(64); +float * tensor_dense10Dense = fTensor_dense10Dense.data(); +std::vector fTensor_dense10bias0bcast = std::vector(64); +float * tensor_dense10bias0bcast = fTensor_dense10bias0bcast.data(); + + +Session(std::string filename ="") { + if (filename.empty()) filename = "Relutest.dat"; + std::ifstream f; + f.open(filename); + if (!f.is_open()){ + throw std::runtime_error("tmva-sofie failed to open file for input weights"); + } + std::string tensor_name; + int length; + f >> tensor_name >> length; + if (tensor_name != "tensor_dense10bias0" ) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor name; expected name is tensor_dense10bias0 , read " + tensor_name; + throw std::runtime_error(err_msg); + } + if (length != 64) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor size; expected size is 64 , read " + std::to_string(length) ; + throw std::runtime_error(err_msg); + } + for (int i =0; i < length; ++i) + f >> tensor_dense10bias0[i]; + f >> tensor_name >> length; + if (tensor_name != "tensor_dense10kernel0" ) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor name; expected name is tensor_dense10kernel0 , read " + tensor_name; + throw std::runtime_error(err_msg); + } + if (length != 448) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor size; expected size is 448 , read " + std::to_string(length) ; + throw std::runtime_error(err_msg); + } + for (int i =0; i < length; ++i) + f >> tensor_dense10kernel0[i]; + f.close(); + { + float * data = TMVA::Experimental::SOFIE::UTILITY::UnidirectionalBroadcast(tensor_dense10bias0,{ 64 }, { 1 , 64 }); + std::copy(data, data + 64, tensor_dense10bias0bcast); + delete [] data; + } +} + +std::vector infer(float* tensor_dense10input){ + +//--------- Gemm + char op_0_transA = 'n'; + char op_0_transB = 'n'; + int op_0_m = 1; + int op_0_n = 64; + int op_0_k = 7; + float op_0_alpha = 1; + float op_0_beta = 1; + int op_0_lda = 7; + int op_0_ldb = 64; + std::copy(tensor_dense10bias0bcast, tensor_dense10bias0bcast + 64, tensor_dense10Dense); + BLAS::sgemm_(&op_0_transB, &op_0_transA, &op_0_n, &op_0_m, &op_0_k, &op_0_alpha, tensor_dense10kernel0, &op_0_ldb, tensor_dense10input, &op_0_lda, &op_0_beta, tensor_dense10Dense, &op_0_n); + +//------ RELU + for (int id = 0; id < 64 ; id++){ + tensor_dense10Relu0[id] = ((tensor_dense10Dense[id] > 0 )? tensor_dense10Dense[id] : 0); + } + std::vector ret (tensor_dense10Relu0, tensor_dense10Relu0 + 64); + return ret; +} +}; +} //TMVA_SOFIE_Relutest + +#endif // ROOT_TMVA_SOFIE_RELUTEST diff --git a/tmva/sofie/test/KerasParserTest/Selutest.dat b/tmva/sofie/test/KerasParserTest/Selutest.dat new file mode 100644 index 0000000000000..a94cffd73508e --- /dev/null +++ b/tmva/sofie/test/KerasParserTest/Selutest.dat @@ -0,0 +1,4 @@ +tensor_dense6bias0 64 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +tensor_dense6kernel0 448 +0.285544068 0.0723131597 -0.1294294 -0.0487477183 -0.0815237164 0.0970505476 0.222475618 0.0189746618 -0.0774707645 0.145775318 -0.204697683 0.0877042413 -0.0776000172 0.193704933 -0.0614743531 0.202005535 0.22259292 -0.253780246 0.0979713202 -0.260381371 -0.0128702521 -0.281518608 0.109675109 -0.134336799 -0.165460199 0.0390514731 -0.169847071 0.251948625 0.253857642 0.147632182 0.170042396 0.218630284 0.26998201 0.243666321 0.0899743736 0.147080004 -0.0657072365 -0.0899807364 0.220891625 -0.0138806999 0.0249953568 -0.0768929422 0.241523951 -0.277824402 0.235483855 0.276376396 -0.259014755 0.263456672 0.136511356 -0.0610771477 -0.0844812393 -0.120030552 0.0200564265 -0.233758181 0.143097043 0.240424544 -0.0771654546 0.246132582 -0.130265474 0.224576265 -0.204466745 -0.141058475 0.208025396 -0.159582421 0.254769415 0.0708152056 0.127100915 0.0122355819 -0.137932792 -0.0817839652 0.132472813 -0.0565686971 0.268211216 0.190662771 -0.164868787 0.115273148 -0.245407 -0.10785991 0.280710608 0.113616884 -0.189989507 -0.0455882996 -0.275345296 -0.23380205 0.114339411 0.128143668 0.000450998545 0.0986157358 -0.136624113 0.0637359023 -0.0295992494 0.115120798 -0.0271372497 0.039072603 0.0656044483 -0.117784545 0.109950721 0.219205052 0.124114543 0.0932358801 -0.264802098 0.175907403 -0.0495613962 -0.179610148 0.269282669 0.253623277 -0.0114362538 0.212941915 0.246996194 0.262133032 -0.239025146 0.153374583 0.0717946589 0.0865459442 0.274896711 0.266347319 0.013697654 0.113921076 -0.0500849634 0.0896768272 -0.251671582 0.139614284 0.108446121 -0.142131016 0.280924767 -0.142967373 -0.241475895 0.255485624 0.140370935 0.260198683 -0.0989881456 -0.0130339563 0.125093043 0.00530299544 -0.169614971 -0.0736542195 0.185727179 -0.0199252367 -0.12539731 0.138336182 0.00242510438 0.000744789839 0.0645159483 0.0952633023 -0.107213184 0.040304631 0.164179802 0.243978113 0.206735015 -0.114581451 -0.275590867 -0.0472846925 0.110744029 0.166288495 -0.251717627 -0.156099528 0.20148468 -0.10057579 -0.259907603 0.227214605 0.0679913759 -0.0906560868 0.099158287 -0.166535437 -0.222258657 0.19526127 0.237003356 0.0474940836 -0.0292125642 0.162087768 -0.075210616 -0.147232965 0.181925058 -0.265741825 0.0067807138 -0.168172449 -0.250409216 -0.0428617597 0.267346531 0.0856229067 0.00161606073 -0.114897355 0.17045027 -0.0672320873 -0.117006898 -0.182783365 0.0201894343 0.284716338 0.143457025 0.168618798 -0.168316886 -0.190438077 -0.256557345 0.0323726833 0.100794524 -0.0127883255 0.110863656 -0.119336218 -0.114076182 0.151695609 0.22389248 0.282613248 0.15971002 0.0205926001 0.247080714 0.229880124 0.257842451 0.256057292 -0.0341206491 -0.113030732 0.00178325176 -0.0147191286 -0.136803553 0.284315079 -0.185672283 -0.130401805 0.0407161117 -0.278243572 -0.290241003 -0.11591661 0.247250527 -0.11302492 0.202863365 -0.0864186287 -0.225577146 0.0353014469 -0.275794476 0.0697319806 -0.161687106 0.0676235557 -0.191373944 -0.245251685 -0.208733439 0.200457036 -0.231720239 0.23827675 0.245976657 0.158834785 -0.105619445 0.00381481647 -0.0668889433 0.278257459 -0.0465793312 -0.283717752 -0.141388804 -0.0557415038 0.275514275 -0.229755342 -0.056414485 -0.128557578 -0.155879959 0.229667872 -0.282269984 -0.00361472368 -0.146955654 0.262520581 -0.142036974 -0.22650221 -0.171037033 -0.264231324 -0.114526898 0.108726889 -0.11450389 -0.161976472 0.213888198 -0.155251473 -0.129237279 0.0148108006 0.237964839 0.00114288926 -0.17956537 -0.0581917614 0.101992041 -0.172246337 0.0476861894 -0.233477414 0.186049938 0.204363465 0.226482481 0.157008231 0.0480998158 -0.24438408 -0.0116232336 0.215339392 0.168680698 -0.246528342 0.235571712 0.083932668 0.179807335 -0.281261265 0.254608482 -0.129573151 -0.15635632 0.0104034841 -0.0855440944 -0.0364180207 -0.0936330259 0.203656048 0.218417555 0.267232388 0.243307501 -0.012619704 0.102213621 0.0957243443 0.0675143301 0.0355600417 0.123950303 -0.0663571358 -0.0674767494 -0.065041393 0.0668723881 -0.0216611922 -0.270628303 -0.258248627 -0.219586402 0.208470911 0.163104594 -0.134603903 0.265281588 -0.144677415 0.134712666 -0.286816537 0.17197153 -0.244363844 0.242081493 0.167868793 -0.0610751361 -0.11806275 -0.18700856 -0.280021816 -0.203570098 -0.165235698 0.278979748 -0.0207433999 -0.181548566 -0.257220149 -0.269452065 0.13958469 -0.164143264 -0.17494534 0.279658407 -0.132414386 0.228838712 0.283912688 0.0875216722 -0.0122709274 0.180857211 0.195473194 0.227056772 0.0336381197 0.151704818 0.270261675 0.125766933 0.290127069 0.174449921 0.219191939 0.177296698 0.11808151 0.155217022 -0.0650576055 0.110817641 -0.0292049348 -0.0834513158 -0.160530761 0.135231078 -0.244868964 0.160483986 -0.0843964815 0.228993982 -0.106188461 0.106229424 0.0398679078 -0.0626912117 -0.0582338423 0.0629111826 0.117925853 -0.182923928 0.151600093 0.21982041 0.186079204 0.00462427735 -0.00267481804 0.234460324 -0.00893893838 -0.1841387 0.160029471 -0.121330425 -0.0952409804 0.0115265548 -0.00784495473 0.0805440247 -0.118583456 -0.137117103 -0.0274330676 -0.145691544 -0.200888693 -0.273440361 -0.187188417 -0.0236158371 0.163534611 -0.0472339541 0.0664324164 0.0426873267 -0.147771701 0.163455725 -0.259797931 -0.269036919 -0.245053053 -0.0690709203 -0.283409327 0.160179317 0.20762229 0.163862139 0.199112862 -0.196085751 -0.233553514 0.228360564 0.0976755023 -0.0486842394 -0.0783673972 0.17462188 -0.0636232048 -0.117933556 -0.021065414 -0.226446763 -0.127502069 -0.118433401 -0.0767851621 -0.0792897642 0.201401502 0.170769155 -0.135508597 -0.212848082 -0.264725298 -0.0151008666 0.0549294055 -0.0873851329 0.16497907 -0.126145497 0.201262951 0.264436156 0.125223488 0.195444524 0.184791803 0.0430525839 0.131814659 0.0294036567 -0.00576618314 diff --git a/tmva/sofie/test/KerasParserTest/Selutest.h5 b/tmva/sofie/test/KerasParserTest/Selutest.h5 new file mode 100644 index 0000000000000000000000000000000000000000..7c6a179537df1a1baf21110bde4d96cd75da04db GIT binary patch literal 12584 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 +#include +#include +#include "TMVA/SOFIE_common.hxx" +#include + +namespace TMVA_SOFIE_Selutest{ +namespace BLAS{ + extern "C" void sgemm_(const char * transa, const char * transb, const int * m, const int * n, const int * k, + const float * alpha, const float * A, const int * lda, const float * B, const int * ldb, + const float * beta, float * C, const int * ldc); + extern "C" void sgemv_(const char * trans, const int * m, const int * n, const float * alpha, const float * A, + const int * lda, const float * X, const int * incx, const float * beta, const float * Y, const int * incy); +}//BLAS +struct Session { +std::vector fTensor_dense6bias0 = std::vector(64); +float * tensor_dense6bias0 = fTensor_dense6bias0.data(); +std::vector fTensor_dense6kernel0 = std::vector(448); +float * tensor_dense6kernel0 = fTensor_dense6kernel0.data(); +std::vector fTensor_dense6Dense = std::vector(64); +float * tensor_dense6Dense = fTensor_dense6Dense.data(); +std::vector fTensor_dense6Selu0 = std::vector(64); +float * tensor_dense6Selu0 = fTensor_dense6Selu0.data(); +std::vector fTensor_dense6bias0bcast = std::vector(64); +float * tensor_dense6bias0bcast = fTensor_dense6bias0bcast.data(); + + +Session(std::string filename ="") { + if (filename.empty()) filename = "Selutest.dat"; + std::ifstream f; + f.open(filename); + if (!f.is_open()){ + throw std::runtime_error("tmva-sofie failed to open file for input weights"); + } + std::string tensor_name; + int length; + f >> tensor_name >> length; + if (tensor_name != "tensor_dense6bias0" ) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor name; expected name is tensor_dense6bias0 , read " + tensor_name; + throw std::runtime_error(err_msg); + } + if (length != 64) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor size; expected size is 64 , read " + std::to_string(length) ; + throw std::runtime_error(err_msg); + } + for (int i =0; i < length; ++i) + f >> tensor_dense6bias0[i]; + f >> tensor_name >> length; + if (tensor_name != "tensor_dense6kernel0" ) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor name; expected name is tensor_dense6kernel0 , read " + tensor_name; + throw std::runtime_error(err_msg); + } + if (length != 448) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor size; expected size is 448 , read " + std::to_string(length) ; + throw std::runtime_error(err_msg); + } + for (int i =0; i < length; ++i) + f >> tensor_dense6kernel0[i]; + f.close(); + { + float * data = TMVA::Experimental::SOFIE::UTILITY::UnidirectionalBroadcast(tensor_dense6bias0,{ 64 }, { 1 , 64 }); + std::copy(data, data + 64, tensor_dense6bias0bcast); + delete [] data; + } +} + +std::vector infer(float* tensor_dense6input){ + +//--------- Gemm + char op_0_transA = 'n'; + char op_0_transB = 'n'; + int op_0_m = 1; + int op_0_n = 64; + int op_0_k = 7; + float op_0_alpha = 1; + float op_0_beta = 1; + int op_0_lda = 7; + int op_0_ldb = 64; + std::copy(tensor_dense6bias0bcast, tensor_dense6bias0bcast + 64, tensor_dense6Dense); + BLAS::sgemm_(&op_0_transB, &op_0_transA, &op_0_n, &op_0_m, &op_0_k, &op_0_alpha, tensor_dense6kernel0, &op_0_ldb, tensor_dense6input, &op_0_lda, &op_0_beta, tensor_dense6Dense, &op_0_n); + for (int id = 0; id < 64 ; id++){ + tensor_dense6Selu0[id] = 1.0507009873554804934193349852946 * (std::max(float(0.0), tensor_dense6Dense[id]) + std::min(0.0, 1.6732632423543772848170429916717 * (std::exp(tensor_dense6Dense[id])-1))); + } + std::vector ret (tensor_dense6Selu0, tensor_dense6Selu0 + 64); + return ret; +} +}; +} //TMVA_SOFIE_Selutest + +#endif // ROOT_TMVA_SOFIE_SELUTEST diff --git a/tmva/sofie/test/KerasParserTest/Sigmoidtest.dat b/tmva/sofie/test/KerasParserTest/Sigmoidtest.dat new file mode 100644 index 0000000000000..872c2fb0bcd4c --- /dev/null +++ b/tmva/sofie/test/KerasParserTest/Sigmoidtest.dat @@ -0,0 +1,4 @@ +tensor_dense12bias0 64 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +tensor_dense12kernel0 448 +0.178731322 -0.0748710036 0.0199038088 -0.0922615379 -0.0784054548 -0.0920652598 0.0300186276 -0.164458692 -0.0509871542 0.0045388639 -0.253729999 0.238073498 0.0494695604 -0.0925321877 0.0867454112 -0.251100153 -0.00537800789 0.163910955 -0.120337099 -0.172405601 0.28273949 0.0507779121 0.0606363416 0.0691609383 0.247520059 -0.0388016105 0.117613614 -0.0227900147 0.0896844566 -0.0518520474 -0.101448044 -0.107340097 -0.0545647889 0.0043682456 -0.0723298639 0.0143803954 -0.0779841989 -0.190149963 0.166570455 -0.235820666 0.263858706 -0.239281937 -0.0109648705 0.267720133 0.249872357 0.15422529 -0.109547153 0.217076153 0.020269841 0.223536283 -0.228806302 -0.169420138 -0.273134619 0.0173560381 -0.0714259446 0.00790381432 -0.157630965 0.238894492 0.0521942973 -0.27307412 -0.101733387 -0.285867989 -0.221867964 -0.0587429851 0.109022707 0.191504955 0.00573131442 -0.212225288 -0.174133331 0.0486274064 -0.0843330622 0.265352398 0.199818373 0.28160134 -0.159279406 0.20793888 -0.158128679 -0.218396783 0.154194713 -0.236906588 -0.0587117225 0.283606857 0.0444932878 -0.0819372833 0.183147371 -0.0736854821 -0.00139981508 -0.0879442394 0.175195754 0.280868918 -0.0165909231 -0.210183442 0.158895433 -0.0753739029 -0.254152834 -0.000397145748 -0.161732852 0.214862972 -0.201651707 0.0126787424 -0.234143257 -0.149140954 -0.273441255 0.121176004 -0.208792835 -0.209015951 0.204560876 -0.12601389 -0.153800637 0.21287927 -0.0460821092 -0.199227303 0.0660018027 0.030479461 -0.0746621788 -0.265710175 -0.0121493638 0.00253918767 -0.077083528 -0.215668872 -0.177632362 0.0901291966 0.193330675 -0.0495802611 -0.117367849 -0.0314593315 0.00987666845 -0.0696936548 0.100557625 -0.21724467 -0.289746225 0.0160526037 -0.226382509 -0.2737903 0.0185872912 -0.179757714 0.0153332651 0.147810996 -0.111343011 0.0504117608 0.0311662257 0.061627537 0.0780757666 0.283140332 0.258938462 -0.146560669 -0.102347106 -0.278803706 0.0805097222 -0.0614945889 -0.0625751913 -0.0665037334 -0.159766018 -0.133700132 0.124478966 -0.170416921 -0.200238436 -0.195154384 -0.192832768 -0.100421712 -0.0453391224 0.0636869073 -0.014700681 0.156711519 -0.0428251028 -0.0261333287 -0.104864538 -0.258905381 -0.163863465 -0.0224059224 -0.247353047 0.142179132 -0.216644049 0.254521817 -0.0495085865 -0.124474615 -0.0151988566 0.121805668 0.16669625 -0.261950791 -0.0431753248 0.175793529 -0.00277870893 -0.120046631 -0.212717235 -0.0860978663 -0.186237007 -0.0207866728 0.139968187 -0.210043579 -0.223196805 0.138437718 -0.225856245 0.152903587 0.215838522 -0.00793346763 -0.0453033 -0.254016101 -0.21183452 -0.278686732 0.245383114 0.0632706881 -0.125641003 0.281953424 -0.096849218 -0.19927831 -0.224741012 0.255984336 -0.0832171291 0.2771568 -0.228804007 -0.217505962 -0.00298628211 -0.00884839892 -0.0421515554 0.0863055289 0.197865307 -0.254379749 -0.162806794 -0.0453349054 -0.265325934 0.226991028 0.0151577592 0.0483570993 -0.0931790471 -0.27344507 0.15392983 -0.203596443 -0.186600059 -0.144818187 -0.0940348059 0.0667310059 -0.11234355 -0.155574799 0.00973916054 0.160131812 -0.183207333 -0.107233495 0.27281943 -0.217401922 0.0211846232 0.0790270269 -0.290435225 0.0212878287 0.250030369 -0.0485142916 0.196106136 0.210454255 -0.000334054232 0.243489832 -0.17075038 0.1467022 -0.223774284 -0.00161993504 -0.241799504 -0.0779396296 -0.229127333 0.178136706 0.197408915 0.0393397808 -0.278330564 -0.215263546 0.1401425 0.118258595 -0.0120585859 0.262613446 -0.107925892 0.0368531942 -0.110176548 0.0457424223 -0.119748816 0.0104172826 0.154896617 0.0114795566 0.194757462 -0.234332681 0.108158916 -0.246321872 -0.236505434 -0.0154370964 0.130236506 -0.237584293 0.0743522942 -0.164291799 0.260202914 0.077241987 0.170921981 -0.104477927 0.0656351447 0.0303657055 -0.220984966 0.16703254 -0.155826449 0.186184406 -0.0845310092 -0.260095358 -0.261012912 0.15221861 -0.284821093 -0.0547743738 -0.193552256 -0.0404782593 0.0366705656 -0.226021901 0.182888031 -0.0710778087 -0.0284041464 -0.26408717 0.114581525 0.0111069083 -0.0169166923 -0.0203464925 0.196723312 -0.0831490606 0.207523793 0.253387958 0.112269878 0.115514755 0.0325040221 -0.133556172 -0.250627398 0.286323279 0.143998891 -0.0364751816 0.122467786 0.079458952 0.0235410631 -0.177999556 0.0285397768 0.272226542 0.00631448627 -0.117565587 0.254799694 -0.0510088354 -0.202148095 0.0823285282 0.070990622 -0.0413323343 -0.24803026 -0.170286283 -0.156456187 -0.286920935 -0.123735026 -0.0172019005 0.0146455765 -0.2578713 0.16445002 -0.134995773 0.270711631 0.195244074 -0.0193433762 -0.117100388 -0.0760902762 -0.256533444 -0.029538393 0.102605134 0.00347006321 -0.106357992 0.267503649 0.0232186317 -0.205114573 -0.114722908 0.0507459641 0.222240835 0.242572337 0.196910322 -0.252353519 0.148143321 0.156710356 -0.0178252459 0.215213209 0.220047742 -0.0316025913 -0.127850413 -0.258470416 0.163615882 -0.0958957374 -0.000174164772 0.140743405 -0.243859068 0.193521261 0.119340777 0.154522687 -0.174519867 0.0448114276 -0.0926060081 -0.149543434 0.282956034 -0.239947289 -0.108692929 0.16986385 0.111506075 0.288965195 0.251226515 -0.275577962 -0.132832319 0.0960133374 -0.282126099 -0.186728135 -0.245358557 -0.234381959 -0.228270411 0.199320942 0.102704674 -0.24912408 -0.112285182 0.0454210639 0.236968488 0.185900301 0.198879361 -0.179923207 -0.119222686 0.27132991 0.286168247 -0.097902149 -0.216463774 0.158447504 0.178763479 0.166678846 -0.026515156 -0.255782962 -0.0118281245 -0.207408607 0.0517017841 -0.206127241 -0.0268127024 -0.111466438 -0.0060967207 -0.0412307978 0.181260526 0.266702741 -0.286563367 -0.162996978 -0.242990345 -0.268685371 -0.200403467 -0.173221573 0.144228846 -0.0219342709 0.0418696105 0.196555525 0.0346136987 -0.0984006822 -0.175883651 -0.128043726 0.127084494 0.102014303 0.013679564 diff --git a/tmva/sofie/test/KerasParserTest/Sigmoidtest.h5 b/tmva/sofie/test/KerasParserTest/Sigmoidtest.h5 new file mode 100644 index 0000000000000000000000000000000000000000..c0725087e35e37060a6b09cc7aa01370e5541822 GIT binary patch literal 12584 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 +#include +#include +#include "TMVA/SOFIE_common.hxx" +#include + +namespace TMVA_SOFIE_Sigmoidtest{ +namespace BLAS{ + extern "C" void sgemm_(const char * transa, const char * transb, const int * m, const int * n, const int * k, + const float * alpha, const float * A, const int * lda, const float * B, const int * ldb, + const float * beta, float * C, const int * ldc); + extern "C" void sgemv_(const char * trans, const int * m, const int * n, const float * alpha, const float * A, + const int * lda, const float * X, const int * incx, const float * beta, const float * Y, const int * incy); +}//BLAS +struct Session { +std::vector fTensor_dense12bias0 = std::vector(64); +float * tensor_dense12bias0 = fTensor_dense12bias0.data(); +std::vector fTensor_dense12kernel0 = std::vector(448); +float * tensor_dense12kernel0 = fTensor_dense12kernel0.data(); +std::vector fTensor_dense12Dense = std::vector(64); +float * tensor_dense12Dense = fTensor_dense12Dense.data(); +std::vector fTensor_dense12Sigmoid0 = std::vector(64); +float * tensor_dense12Sigmoid0 = fTensor_dense12Sigmoid0.data(); +std::vector fTensor_dense12bias0bcast = std::vector(64); +float * tensor_dense12bias0bcast = fTensor_dense12bias0bcast.data(); + + +Session(std::string filename ="") { + if (filename.empty()) filename = "Sigmoidtest.dat"; + std::ifstream f; + f.open(filename); + if (!f.is_open()){ + throw std::runtime_error("tmva-sofie failed to open file for input weights"); + } + std::string tensor_name; + int length; + f >> tensor_name >> length; + if (tensor_name != "tensor_dense12bias0" ) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor name; expected name is tensor_dense12bias0 , read " + tensor_name; + throw std::runtime_error(err_msg); + } + if (length != 64) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor size; expected size is 64 , read " + std::to_string(length) ; + throw std::runtime_error(err_msg); + } + for (int i =0; i < length; ++i) + f >> tensor_dense12bias0[i]; + f >> tensor_name >> length; + if (tensor_name != "tensor_dense12kernel0" ) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor name; expected name is tensor_dense12kernel0 , read " + tensor_name; + throw std::runtime_error(err_msg); + } + if (length != 448) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor size; expected size is 448 , read " + std::to_string(length) ; + throw std::runtime_error(err_msg); + } + for (int i =0; i < length; ++i) + f >> tensor_dense12kernel0[i]; + f.close(); + { + float * data = TMVA::Experimental::SOFIE::UTILITY::UnidirectionalBroadcast(tensor_dense12bias0,{ 64 }, { 1 , 64 }); + std::copy(data, data + 64, tensor_dense12bias0bcast); + delete [] data; + } +} + +std::vector infer(float* tensor_dense12input){ + +//--------- Gemm + char op_0_transA = 'n'; + char op_0_transB = 'n'; + int op_0_m = 1; + int op_0_n = 64; + int op_0_k = 7; + float op_0_alpha = 1; + float op_0_beta = 1; + int op_0_lda = 7; + int op_0_ldb = 64; + std::copy(tensor_dense12bias0bcast, tensor_dense12bias0bcast + 64, tensor_dense12Dense); + BLAS::sgemm_(&op_0_transB, &op_0_transA, &op_0_n, &op_0_m, &op_0_k, &op_0_alpha, tensor_dense12kernel0, &op_0_ldb, tensor_dense12input, &op_0_lda, &op_0_beta, tensor_dense12Dense, &op_0_n); + for (int id = 0; id < 64 ; id++){ + tensor_dense12Sigmoid0[id] = 1 / (1 + std::exp( - tensor_dense12Dense[id])); + } + std::vector ret (tensor_dense12Sigmoid0, tensor_dense12Sigmoid0 + 64); + return ret; +} +}; +} //TMVA_SOFIE_Sigmoidtest + +#endif // ROOT_TMVA_SOFIE_SIGMOIDTEST diff --git a/tmva/sofie/test/KerasParserTest/SimpleRNNtest.dat b/tmva/sofie/test/KerasParserTest/SimpleRNNtest.dat new file mode 100644 index 0000000000000..4ad0dfa488919 --- /dev/null +++ b/tmva/sofie/test/KerasParserTest/SimpleRNNtest.dat @@ -0,0 +1,6 @@ +tensor_simplernnsimplernncell2recurrentkernel0 4 +-0.0698643923 -0.997556508 0.997556508 -0.0698643327 +tensor_simplernnsimplernncell2kernel0 4 +-0.32840234 -0.343577981 -0.676944911 0.0669032335 +tensor_simplernnsimplernncell2bias0 4 +0 0 0 0 diff --git a/tmva/sofie/test/KerasParserTest/SimpleRNNtest.h5 b/tmva/sofie/test/KerasParserTest/SimpleRNNtest.h5 new file mode 100644 index 0000000000000000000000000000000000000000..6a1eedca00dc3d24f8e09e8b15fa2d53cef03146 GIT binary patch literal 14776 zcmeHO&2JM&6dxy0TnJT=S`kpy8uvq}4UnX18;~lDfRajl30gG*p=DxE>@DkEcXl0; zq6lt0;&d*}Y00-tvTMgOERzhI*^off&-#MBz+tU-WGsdDGRaD^JRDQLV#L&og zSz>~9mV3xvUArC;v*0Vp{|)h`$cr0F%h+2~I`*Rw+V|yhW+Zx()xlaW>$4s8AY;b1 z5m6$3dBbmBmT#!AGLVmPT;hXJq5$ZE#X0;&x);ufEy=DH2tTq zb>g5^T$2suO;K~~*BgQIbcoIiPZBk}KrKQn>5M4szZ`!owGbR9R;`hX-$~wxsF7cf zfd7n%KrSoog|e|xDu+dD;B90ELd6|@Jo{!z0SzR0* zHiKZiFntYJR+8n0kp*hYj_tE$r0zzVi3#!4uztc-*DowK}T zt;*4>iv#wXKq}`0l%41%ihdFO6RE4JZMswAg{f=3RJ&{p{L=aJeUwWbppSOF(9d>=mS5~-OG#BnkWYUgqHS%z0yD4=Ai5c`5$rhSHTT?UCQPAFy_;uyg<#&Hv?<-Q+eq!%V_^1^Wv^#1i3A6ajfE#LuP%wbdX2zd9Tgolq9*d0 zF!-cscl4~RfY}QZYcU>~bBBpTK@{WS7w7#@>SeDCP{puTz;ziRtE)u&WuzcA?b%UP zytLU_uzQP<=kn zrbdb>!kqj#3ab9sIpuJmKN}Nl}K;WRF6WZ zsZQDIQEX6+*bj`;O{zl^pF@kR$5ky`L39NchW8WRKhki6t0e?)&t`vvdMnzRUIAZ` z_TlmF{zF@0OAhZ_%cPW3tc>p(`@lu3t zLMHw5w`=EH%{i06$1`r4Z|#>?UYlQgUfHsx#Eye`4!)FdjX96Sc_ZrQHs31x z-^&nPR%}fK+ z*4^-|FAkLsSPrYiXwbdS>id?E?XO#Y*0PxqaN`jB`(K65S*Lj%+s^)7>LmNuHTEAj zj*N&Uy7%erKYi~_$$$7hg-er1BICx~lF3U^9nTQPU8rtzUj6(HPkZUU&-#xQ?UZN8 zj|TbM!-JNdMA}OByJZmQ=WlalKMX|bZzjpwx?e0Y!8%L#d*vzZ6YR&X9j}x9mLbO| z&?^oUKC}>&$iD~0fzgjGJ;&QE17J2$gMb?c_;`Gs?1y1;FFAT%ngB6h!mvLVn1NHe zap2hpmY_Axv14a=RwV>-aARgLBj9qvE?jQNHt@gu=vNNIw*gY_DZEQ}uLZF;FZSLh z{@dXz0sDuBEW~C|BSRoVAVVNSAVVNSAVuKS zohxe_@?6=ChdmK;zT7=uzxcU&iRRxrnbM-%O&4bay!E?(oT2|`c87G#?jJY6Vr^g* f-24Mu{hyqOAl>QnR$P2ZbK$(XdoTEZ-JAUb_cw=h literal 0 HcmV?d00001 diff --git a/tmva/sofie/test/KerasParserTest/SimpleRNNtest.hxx b/tmva/sofie/test/KerasParserTest/SimpleRNNtest.hxx new file mode 100644 index 0000000000000..41bbd70b76a4d --- /dev/null +++ b/tmva/sofie/test/KerasParserTest/SimpleRNNtest.hxx @@ -0,0 +1,143 @@ +//Code generated automatically by TMVA for Inference of Model file [SimpleRNNtest.h5] at [Thu Aug 24 08:55:56 202] + +#ifndef ROOT_TMVA_SOFIE_SIMPLERNNTEST +#define ROOT_TMVA_SOFIE_SIMPLERNNTEST + +#include +#include +#include "TMVA/SOFIE_common.hxx" +#include + +namespace TMVA_SOFIE_SimpleRNNtest{ +namespace BLAS{ + extern "C" void saxpy_(const int * n, const float * alpha, const float * x, + const int * incx, float * y, const int * incy); + extern "C" void sgemm_(const char * transa, const char * transb, const int * m, const int * n, const int * k, + const float * alpha, const float * A, const int * lda, const float * B, const int * ldb, + const float * beta, float * C, const int * ldc); +}//BLAS +struct Session { +std::vector fTensor_simplernnsimplernncell2recurrentkernel0 = std::vector(4); +float * tensor_simplernnsimplernncell2recurrentkernel0 = fTensor_simplernnsimplernncell2recurrentkernel0.data(); +std::vector fTensor_simplernnsimplernncell2kernel0 = std::vector(4); +float * tensor_simplernnsimplernncell2kernel0 = fTensor_simplernnsimplernncell2kernel0.data(); +std::vector fTensor_simplernnsimplernncell2bias0 = std::vector(4); +float * tensor_simplernnsimplernncell2bias0 = fTensor_simplernnsimplernncell2bias0.data(); +std::vector fTensor_simplernntranspose10 = std::vector(4); +float * tensor_simplernntranspose10 = fTensor_simplernntranspose10.data(); +std::vector fTensor_reshape2Reshape0 = std::vector(4); +float * tensor_reshape2Reshape0 = fTensor_reshape2Reshape0.data(); + +std::vector fVec_op_1_input = std::vector(4); +std::vector fVec_op_1_initial_hidden_state = std::vector(2); +std::vector fVec_op_1_feedforward = std::vector(4); +std::vector fVec_op_1_hidden_state = std::vector(4); + + +Session(std::string filename ="") { + if (filename.empty()) filename = "SimpleRNNtest.dat"; + std::ifstream f; + f.open(filename); + if (!f.is_open()){ + throw std::runtime_error("tmva-sofie failed to open file for input weights"); + } + std::string tensor_name; + int length; + f >> tensor_name >> length; + if (tensor_name != "tensor_simplernnsimplernncell2recurrentkernel0" ) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor name; expected name is tensor_simplernnsimplernncell2recurrentkernel0 , read " + tensor_name; + throw std::runtime_error(err_msg); + } + if (length != 4) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor size; expected size is 4 , read " + std::to_string(length) ; + throw std::runtime_error(err_msg); + } + for (int i =0; i < length; ++i) + f >> tensor_simplernnsimplernncell2recurrentkernel0[i]; + f >> tensor_name >> length; + if (tensor_name != "tensor_simplernnsimplernncell2kernel0" ) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor name; expected name is tensor_simplernnsimplernncell2kernel0 , read " + tensor_name; + throw std::runtime_error(err_msg); + } + if (length != 4) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor size; expected size is 4 , read " + std::to_string(length) ; + throw std::runtime_error(err_msg); + } + for (int i =0; i < length; ++i) + f >> tensor_simplernnsimplernncell2kernel0[i]; + f >> tensor_name >> length; + if (tensor_name != "tensor_simplernnsimplernncell2bias0" ) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor name; expected name is tensor_simplernnsimplernncell2bias0 , read " + tensor_name; + throw std::runtime_error(err_msg); + } + if (length != 4) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor size; expected size is 4 , read " + std::to_string(length) ; + throw std::runtime_error(err_msg); + } + for (int i =0; i < length; ++i) + f >> tensor_simplernnsimplernncell2bias0[i]; + f.close(); +} + +std::vector infer(float* tensor_reshape2input){ + ///--------Reshape operator + + std::copy( tensor_reshape2input, tensor_reshape2input + 4, tensor_reshape2Reshape0); + float * op_1_input = fVec_op_1_input.data(); + for(size_t seq = 0; seq < 2; seq++) { + for(size_t batch = 0; batch < 1; batch++) { + for(size_t i = 0; i < 2; i++) { + op_1_input[seq * 2 + batch * 2 + i] = tensor_reshape2Reshape0[batch * 4 + seq * 2 + i]; + } + } + } + float * op_1_feedforward = fVec_op_1_feedforward.data(); + float * op_1_hidden_state = fVec_op_1_hidden_state.data(); + char op_1_transA = 'N'; + char op_1_transB = 'T'; + int op_1_m = 2; + int op_1_n = 2; + int op_1_k = 2; + float op_1_alpha = 1.; + float op_1_beta = .0; + int op_1_bias_size = 4; + int op_1_incx = 1; + int op_1_incy = 1; + BLAS::sgemm_(&op_1_transB, &op_1_transA, &op_1_n, &op_1_m, &op_1_k, &op_1_alpha, tensor_simplernnsimplernncell2kernel0, &op_1_k, op_1_input, &op_1_k, &op_1_beta, op_1_feedforward, &op_1_n); + BLAS::saxpy_(&op_1_bias_size, &op_1_alpha, tensor_simplernnsimplernncell2bias0, &op_1_incx, op_1_feedforward, &op_1_incy); + for (size_t seq = 0; seq < 2; seq++) { + size_t offset = seq * 2; + size_t size = 2; + size_t h_offset = seq * 2 + 0; + std::copy(op_1_feedforward + offset, op_1_feedforward + offset + size, op_1_hidden_state + h_offset); + } + for (size_t seq = 0; seq < 2; seq++) { + size_t index = seq; + int m2 = 1; + size_t offset = index * 2 + 0; + size_t size = 2; + if (seq == 0) { + } else { + size_t r_offset = 0; + size_t previous_offset = (seq - 1) * 2 + 0; + BLAS::sgemm_(&op_1_transB, &op_1_transA, &op_1_n, &m2, &op_1_n, &op_1_alpha, tensor_simplernnsimplernncell2recurrentkernel0 + r_offset, &op_1_n, op_1_hidden_state + previous_offset, &op_1_n, &op_1_alpha, op_1_hidden_state + offset, &op_1_n); + } + for (size_t i = offset; i < offset + size; i++) { + float ex = std::exp(-2 * op_1_hidden_state[i]); + op_1_hidden_state[i] = (1. - ex) / (1. + ex); + } + } + for (size_t seq = 0; seq < 2; seq++) { + for (size_t batch = 0; batch < 1; batch++) { + size_t offset = seq * 2 + 0 + batch * 2; + size_t y_offset = batch * 4 + seq * 2 + 0; + std::copy(op_1_hidden_state + offset, op_1_hidden_state + offset + 2, tensor_simplernntranspose10 + y_offset); + } + } + std::vector ret (tensor_simplernntranspose10, tensor_simplernntranspose10 + 4); + return ret; +} +}; +} //TMVA_SOFIE_SimpleRNNtest + +#endif // ROOT_TMVA_SOFIE_SIMPLERNNTEST diff --git a/tmva/sofie/test/KerasParserTest/SimpleRNNtestWithBias.dat b/tmva/sofie/test/KerasParserTest/SimpleRNNtestWithBias.dat new file mode 100644 index 0000000000000..429fdf6c01c04 --- /dev/null +++ b/tmva/sofie/test/KerasParserTest/SimpleRNNtestWithBias.dat @@ -0,0 +1,6 @@ +tensor_simplernn2simplernncellrecurrentkernel0 4 +-0.99989295 -0.0146312313 -0.0146312313 0.99989295 +tensor_simplernn2simplernncellkernel0 4 +-0.855728626 -0.582831502 -0.582416296 0.151278377 +tensor_simplernn2simplernncellbias0 4 +1 1 1 1 diff --git a/tmva/sofie/test/KerasParserTest/SimpleRNNtestWithBias.h5 b/tmva/sofie/test/KerasParserTest/SimpleRNNtestWithBias.h5 new file mode 100644 index 0000000000000000000000000000000000000000..81cb3f0d2ead94542b13f3c98d926cbe608b328a GIT binary patch literal 14776 zcmeHO&2Ljj5ML*yxDcvDDk4Eu>stLlZ3>B-wgFYes8CXgFF~tDLg=xvH})&f@45S) zNm3M%Tj_tnkz;Pnp;CI}*h}v{a^%RN63pz*_+xFyd{iYQ&yu}wcV}m2e>*d~Z#MaD z?)0|@_8s0Q@RQAo*TkrK`@jIpRiWfgc!%CA(D7#i6w zi%js0Yxph5(hU`s2l6qFOMDQDmR<)8AB#sR3K#tfiktvps8c_^mT*$U4_&myZ`ANh zwDdzita!w75Win>a>Nf=Tgm33Z~?h^H&II;1zB|Jj(X|cNyaN|UgrvLEu zP8_s~tFo@V8ETIGT0Kyn4nwbiO-WSu0(BE&NoPc1|K<3@TscmxTO${Lk-QO6CBGg4 z{}~s7Tv6H!Wldpp+QJ_pe&C108<%fjBl#1G7-_3xOyT`?ZUQ@mShq#r-?QIbJZB_f zK!6X=&%`IF7mm&zor03(+k*n&qry1Si$S!6qlBRCT$uO)^;`K;AmiA~G=CzOzoLF_ zs4($mke|%uZSa8hTX}>63F0P!H-jVws2F;#x~#qn>y6|b;^?qikV&cP`Pl85)y2_a zBM2sQGuMD+Ia#S2S)jH|J}cnxxGr^!jf*mf6*OpBsi<;W11s3H7%L&ax;hE!ch2&% zwJJxiE)Ljl0;yaGPw&@lobA@ZYRJ&pf{PKkheUxi=fIj;5!cVKD zp+nEEUPEk}WoZwx&j?qoBPZ@oUPf$)6(KLFFgN z2qvDFrNqA}6WD>FA)m;wiZf}%%3JVdn`*FGhv3<;k)c8Qzkns7DR!>q*&xzU@SXj_PNUaL|=Yq0MDJTK~`8dajO%L^*7tAY;GN2h?B%N>;;#5e@#VQ9;- zj9xTRttyQ`YMQ9^h&G*jb{nBRdko5cvf}mZC6S;=Y)m|XX?02L)oTRy>L}}|9yO59 zl!2!Oc1O?ZD%ib=wHS}gxx>VvAc}G6^9z0`^@>;0P=}QQrYne8O(ohdAq8n^&yK3> zwR*00#h~*_hUd-5AGNI4yFwAWyexrX$dZxN%Y7D&rIx_AT?e|n!x@OB-aaW+EHitQFeH8GWng*F=Rgx>f(&D|K66sBw>T&2a z)q<@a#|Bl8{lK`~wEA@FOK6d`xT0k%4!OtLlqjhn@CwJ!2v6XC$8x5hZd}VIt^FGwICMXa|LE!X zIHQHA^2BI-TBHc12&4$42&4$42&4$SC<0e5Ts)nDw|+im+@bsh=K;u!?rTU+N70ysl?>uz|S zEe;jmvmDlm(V%;u_4h3y+h4c*v}GqF;Km{L_XoMoS+}Kp%smhLcd?V~scY;%ZX6jA z%XIJ4+kg7ro09+VeF~Q*e?-QOIVF>qqB@=-On!^%Hs{sP-|)28+V@%i@w}b#EcwwO zf7>`>=}Dxmq`$ic0oUJhH1m0~9|oe$-)xGNI@s@?bvt$6S02(n!Tel1WBfOa zbivac=h(3`JgpJ}8MrYsm=SOpVHYklWE=SJKKhlz@NR&VW4U+f?lmV4WyPV}#D5RG zC1C&1kY$*qjKgqde$tY-=agj{`Em+=ubd+B)z7!qqj~=McxyV2kMsNoM_ZG>^1a!y ztD9d<9Ng412RAn!9RB*>N4Gcs{yq8wzwmrgh&B4Y@>5MGkRp&GkRp&GkRp&GKnT3N zb7gf~o-4cYuqQ&!m%Hcd=Ra33)BKw!Q(BQb+sZck-9OIK|Cz0kw(0%jwpzArr;M9_ dV5|R!6A`2_z21sT|IrLMZ|>d;{$KZIPXNXCksbg5 literal 0 HcmV?d00001 diff --git a/tmva/sofie/test/KerasParserTest/SimpleRNNtestWithBias.hxx b/tmva/sofie/test/KerasParserTest/SimpleRNNtestWithBias.hxx new file mode 100644 index 0000000000000..7986d6359fae4 --- /dev/null +++ b/tmva/sofie/test/KerasParserTest/SimpleRNNtestWithBias.hxx @@ -0,0 +1,143 @@ +//Code generated automatically by TMVA for Inference of Model file [SimpleRNNtestWithBias.h5] at [Thu Aug 24 08:55:55 202] + +#ifndef ROOT_TMVA_SOFIE_SIMPLERNNTESTWITHBIAS +#define ROOT_TMVA_SOFIE_SIMPLERNNTESTWITHBIAS + +#include +#include +#include "TMVA/SOFIE_common.hxx" +#include + +namespace TMVA_SOFIE_SimpleRNNtestWithBias{ +namespace BLAS{ + extern "C" void saxpy_(const int * n, const float * alpha, const float * x, + const int * incx, float * y, const int * incy); + extern "C" void sgemm_(const char * transa, const char * transb, const int * m, const int * n, const int * k, + const float * alpha, const float * A, const int * lda, const float * B, const int * ldb, + const float * beta, float * C, const int * ldc); +}//BLAS +struct Session { +std::vector fTensor_simplernn2simplernncellrecurrentkernel0 = std::vector(4); +float * tensor_simplernn2simplernncellrecurrentkernel0 = fTensor_simplernn2simplernncellrecurrentkernel0.data(); +std::vector fTensor_simplernn2simplernncellkernel0 = std::vector(4); +float * tensor_simplernn2simplernncellkernel0 = fTensor_simplernn2simplernncellkernel0.data(); +std::vector fTensor_simplernn2simplernncellbias0 = std::vector(4); +float * tensor_simplernn2simplernncellbias0 = fTensor_simplernn2simplernncellbias0.data(); +std::vector fTensor_simplernn2transpose10 = std::vector(4); +float * tensor_simplernn2transpose10 = fTensor_simplernn2transpose10.data(); +std::vector fTensor_reshape4Reshape0 = std::vector(4); +float * tensor_reshape4Reshape0 = fTensor_reshape4Reshape0.data(); + +std::vector fVec_op_1_input = std::vector(4); +std::vector fVec_op_1_initial_hidden_state = std::vector(2); +std::vector fVec_op_1_feedforward = std::vector(4); +std::vector fVec_op_1_hidden_state = std::vector(4); + + +Session(std::string filename ="") { + if (filename.empty()) filename = "SimpleRNNtestWithBias.dat"; + std::ifstream f; + f.open(filename); + if (!f.is_open()){ + throw std::runtime_error("tmva-sofie failed to open file for input weights"); + } + std::string tensor_name; + int length; + f >> tensor_name >> length; + if (tensor_name != "tensor_simplernn2simplernncellrecurrentkernel0" ) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor name; expected name is tensor_simplernn2simplernncellrecurrentkernel0 , read " + tensor_name; + throw std::runtime_error(err_msg); + } + if (length != 4) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor size; expected size is 4 , read " + std::to_string(length) ; + throw std::runtime_error(err_msg); + } + for (int i =0; i < length; ++i) + f >> tensor_simplernn2simplernncellrecurrentkernel0[i]; + f >> tensor_name >> length; + if (tensor_name != "tensor_simplernn2simplernncellkernel0" ) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor name; expected name is tensor_simplernn2simplernncellkernel0 , read " + tensor_name; + throw std::runtime_error(err_msg); + } + if (length != 4) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor size; expected size is 4 , read " + std::to_string(length) ; + throw std::runtime_error(err_msg); + } + for (int i =0; i < length; ++i) + f >> tensor_simplernn2simplernncellkernel0[i]; + f >> tensor_name >> length; + if (tensor_name != "tensor_simplernn2simplernncellbias0" ) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor name; expected name is tensor_simplernn2simplernncellbias0 , read " + tensor_name; + throw std::runtime_error(err_msg); + } + if (length != 4) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor size; expected size is 4 , read " + std::to_string(length) ; + throw std::runtime_error(err_msg); + } + for (int i =0; i < length; ++i) + f >> tensor_simplernn2simplernncellbias0[i]; + f.close(); +} + +std::vector infer(float* tensor_reshape4input){ + ///--------Reshape operator + + std::copy( tensor_reshape4input, tensor_reshape4input + 4, tensor_reshape4Reshape0); + float * op_1_input = fVec_op_1_input.data(); + for(size_t seq = 0; seq < 2; seq++) { + for(size_t batch = 0; batch < 1; batch++) { + for(size_t i = 0; i < 2; i++) { + op_1_input[seq * 2 + batch * 2 + i] = tensor_reshape4Reshape0[batch * 4 + seq * 2 + i]; + } + } + } + float * op_1_feedforward = fVec_op_1_feedforward.data(); + float * op_1_hidden_state = fVec_op_1_hidden_state.data(); + char op_1_transA = 'N'; + char op_1_transB = 'T'; + int op_1_m = 2; + int op_1_n = 2; + int op_1_k = 2; + float op_1_alpha = 1.; + float op_1_beta = .0; + int op_1_bias_size = 4; + int op_1_incx = 1; + int op_1_incy = 1; + BLAS::sgemm_(&op_1_transB, &op_1_transA, &op_1_n, &op_1_m, &op_1_k, &op_1_alpha, tensor_simplernn2simplernncellkernel0, &op_1_k, op_1_input, &op_1_k, &op_1_beta, op_1_feedforward, &op_1_n); + BLAS::saxpy_(&op_1_bias_size, &op_1_alpha, tensor_simplernn2simplernncellbias0, &op_1_incx, op_1_feedforward, &op_1_incy); + for (size_t seq = 0; seq < 2; seq++) { + size_t offset = seq * 2; + size_t size = 2; + size_t h_offset = seq * 2 + 0; + std::copy(op_1_feedforward + offset, op_1_feedforward + offset + size, op_1_hidden_state + h_offset); + } + for (size_t seq = 0; seq < 2; seq++) { + size_t index = seq; + int m2 = 1; + size_t offset = index * 2 + 0; + size_t size = 2; + if (seq == 0) { + } else { + size_t r_offset = 0; + size_t previous_offset = (seq - 1) * 2 + 0; + BLAS::sgemm_(&op_1_transB, &op_1_transA, &op_1_n, &m2, &op_1_n, &op_1_alpha, tensor_simplernn2simplernncellrecurrentkernel0 + r_offset, &op_1_n, op_1_hidden_state + previous_offset, &op_1_n, &op_1_alpha, op_1_hidden_state + offset, &op_1_n); + } + for (size_t i = offset; i < offset + size; i++) { + float ex = std::exp(-2 * op_1_hidden_state[i]); + op_1_hidden_state[i] = (1. - ex) / (1. + ex); + } + } + for (size_t seq = 0; seq < 2; seq++) { + for (size_t batch = 0; batch < 1; batch++) { + size_t offset = seq * 2 + 0 + batch * 2; + size_t y_offset = batch * 4 + seq * 2 + 0; + std::copy(op_1_hidden_state + offset, op_1_hidden_state + offset + 2, tensor_simplernn2transpose10 + y_offset); + } + } + std::vector ret (tensor_simplernn2transpose10, tensor_simplernn2transpose10 + 4); + return ret; +} +}; +} //TMVA_SOFIE_SimpleRNNtestWithBias + +#endif // ROOT_TMVA_SOFIE_SIMPLERNNTESTWITHBIAS diff --git a/tmva/sofie/test/KerasParserTest/Softmaxtest.dat b/tmva/sofie/test/KerasParserTest/Softmaxtest.dat new file mode 100644 index 0000000000000..e7dbe5bc6cde6 --- /dev/null +++ b/tmva/sofie/test/KerasParserTest/Softmaxtest.dat @@ -0,0 +1,4 @@ +tensor_dense13bias0 64 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +tensor_dense13kernel0 448 +-0.170009881 0.0561888218 -0.236673295 0.272135526 -0.0478109419 -0.184272185 -0.183815092 -0.239893511 0.228115708 -0.0041154027 0.0402268767 0.12992385 0.243941098 0.0329299867 0.275570542 -0.285088956 -0.24291265 0.0928192735 0.280548424 -0.238944128 -0.0198740065 0.274652988 0.110727906 0.190308332 0.232157558 -0.0502294749 -0.231199384 0.130748421 -0.287017554 -0.120579824 -0.0505396873 0.232887536 0.20933941 0.040979892 0.0970725119 -0.278625309 -0.0495612025 0.108651817 -0.226021901 0.0913663507 -0.282417804 0.13104257 0.0272052586 -0.138126448 -0.0561244339 0.212928504 -0.0256949365 0.244406313 0.279242426 0.0894033909 -0.120577872 -0.283284307 -0.109497041 -0.100075111 -0.110692888 -0.113820225 0.157594025 0.246257335 -0.241374984 0.274756819 0.210363001 -0.213746533 0.2353172 0.250230402 0.176933587 0.289217263 0.225100011 0.0255928636 0.279757172 -0.0418417454 0.0733633935 0.0493786335 0.24440226 0.261475712 -0.0147822499 -0.0979105979 -0.222567841 0.277581304 0.138001889 0.0768363774 0.16479829 -0.289331406 0.055437386 0.0400196314 0.273686856 -0.260245472 -0.106722906 0.127104521 -0.186784685 -0.141145036 0.0545125902 0.211275309 0.163533777 0.263996452 -0.188482612 0.0480011404 0.255871803 -0.0653936118 0.121782243 -0.0484704226 0.00105389953 0.0713348091 -0.223243117 0.218184501 -0.249462381 0.0717141926 -0.278149873 -0.253439724 0.0436552763 -0.0906537175 0.0184357166 0.199833274 0.217055708 -0.15560481 -0.195286766 -0.0177332759 0.203570247 0.0478205681 -0.134299785 0.26816085 -0.222081363 0.215855807 -0.000489592552 -0.0318312347 0.000346690416 -0.257775605 0.215603024 -0.0293530524 0.0749535561 -0.0366574824 0.115542144 -0.157584608 0.249703616 0.104960531 0.288901359 0.140687734 0.0649555922 0.167359859 -0.0770255923 0.174772978 0.270479411 -0.24312225 -0.285714269 -0.0235774219 -0.194528043 0.201785684 -0.175500929 0.203788638 -0.214254916 0.0224229097 -0.0898069143 0.0943276882 0.204791605 0.266337603 -0.263973087 0.285341233 -0.222669095 0.167334497 0.0814678371 -0.14903754 -0.135779798 0.0738759339 -0.0288429558 -0.0958093703 0.21729061 0.010121882 0.286409169 0.245518774 0.235844225 -0.0895865113 -0.286545753 0.186194956 -0.198468998 0.0563049912 0.0964384079 0.200662196 0.1016258 -0.196444362 -0.117548466 0.269566149 -0.0955359489 0.124692112 -0.0845783502 0.0123024583 0.0404443443 0.24932906 0.0925711989 0.113422871 -0.272162169 0.250293225 0.135228515 -0.104818925 -0.221078396 -0.0632749945 0.175420731 0.26916036 0.216206104 0.0451190174 -0.0583229065 -0.125285998 -0.173503309 0.249949366 -0.272628605 -0.0732510537 -0.0305369198 0.0780168474 0.219114929 -0.176152617 0.0342153311 0.261050791 -0.0711966008 0.0717624426 -0.0233339667 -0.255673885 -0.168153316 0.184063286 0.202282757 0.271769017 -0.191064835 0.0675694048 0.0455286801 0.136907876 -0.240917549 0.171386629 0.195131451 0.14308846 0.194202304 0.0726505518 0.0286937356 0.216913193 0.0738536119 -0.107161894 0.0222295821 0.197445184 -0.18331781 0.18351534 -0.163287714 -0.21843484 -0.216993287 -0.224581733 -0.209867954 -0.0827872753 -0.0068898201 0.290504545 -0.230118096 0.109469533 0.0882445574 0.123199761 -0.0347619653 0.198153496 -0.198897809 0.0628299713 -0.0680966526 -0.0738771111 0.275461107 0.129207909 0.0809350908 -0.133527473 -0.0637104511 -0.0130999386 0.248722523 -0.0838821381 0.0183518529 0.084746629 0.233050197 -0.245801151 -0.260323286 -0.061961323 -0.240776435 0.198022723 0.274575561 -0.0735141486 0.276815802 0.197030991 0.219473928 0.221968859 0.22873798 -0.103470743 0.222096592 0.279412657 -0.179083884 -0.108590275 -0.191531077 -0.228148758 0.0677420497 -0.275969088 -0.128581688 -0.201044708 0.0293244421 0.0771005154 0.173011363 0.21372661 -0.14671807 0.184481502 0.0356592238 -0.127148181 0.042208612 -0.07006751 -0.196240664 0.166207194 -0.105237901 0.0448622108 0.250631958 -0.0239646733 -0.16282925 0.188368052 -0.287492871 0.263448924 -0.203907639 0.275624543 -0.154672951 0.184306294 -0.0703319162 0.127169937 -0.209817976 -0.188479006 -0.118426129 0.267298013 0.0419666469 -0.221336633 0.182008713 -0.249181896 -0.13696532 0.284085304 0.24513045 0.238366991 -0.0836157203 -0.180440336 0.171683967 0.245850652 -0.177357286 0.0565522611 -0.24300608 -0.211654097 0.215986699 0.0471660197 -0.27598995 0.200337827 0.289392799 -0.0715693533 -0.0791698545 0.28204301 -0.0264139473 0.16297999 0.114759773 -0.152672842 0.185648918 -0.0882006884 -0.279387921 -0.0180157721 0.187757909 0.037824899 -0.0430660844 -0.160270721 0.14972356 0.0384012163 -0.195975691 0.015105933 0.101719111 0.126097679 -0.0955863446 -0.213823602 0.236726791 -0.121411666 0.111652732 -0.140976965 -0.0145386457 -0.166823909 -0.0508912206 -0.172693506 0.19878754 -0.071229592 0.00519773364 0.286439687 0.0295552909 0.24516663 -0.271863103 -0.130121112 -0.124213666 -0.0931542367 0.0665842593 0.019250989 -0.250095159 0.0784363747 0.169018358 -0.241762698 0.00384163857 0.266361624 0.200276971 -0.161527559 0.206766337 0.109764993 0.0739433169 0.0743075311 0.085503906 0.0616436899 0.101220995 0.161372453 0.110488355 -0.129508421 -0.139541864 -0.263870716 -0.054529503 -0.168936908 -0.21380648 0.0436480045 0.253757447 0.202602893 0.170021534 -0.0858962536 -0.176051572 0.266202718 0.269451469 -0.0250191987 0.0690608025 -0.0878224075 0.232994586 -0.123096973 -0.153204367 -0.0216121972 -0.271991938 0.235798925 0.138579577 0.249482244 0.286629707 0.0511660278 -0.196901232 0.196375459 -0.214565545 -0.288606375 -0.261040568 0.226849347 -0.161329195 0.15103212 0.0667104721 0.193531185 -0.272723645 0.103257954 -0.184835389 0.248845488 0.0919826329 0.164011568 0.013756901 0.0460421145 -0.173824832 -0.101232424 -0.169457227 0.126109034 diff --git a/tmva/sofie/test/KerasParserTest/Softmaxtest.h5 b/tmva/sofie/test/KerasParserTest/Softmaxtest.h5 new file mode 100644 index 0000000000000000000000000000000000000000..96d8e4bca3085d88bcd49c63b3efb2a6dcd8aa8a GIT binary patch literal 12584 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 Wq{j85#@!bFs3_)vd)>P~U-fTh7q@u; literal 0 HcmV?d00001 diff --git a/tmva/sofie/test/KerasParserTest/Softmaxtest.hxx b/tmva/sofie/test/KerasParserTest/Softmaxtest.hxx new file mode 100644 index 0000000000000..d30c7f8e870ec --- /dev/null +++ b/tmva/sofie/test/KerasParserTest/Softmaxtest.hxx @@ -0,0 +1,104 @@ +//Code generated automatically by TMVA for Inference of Model file [Softmaxtest.h5] at [Thu Aug 24 08:55:43 202] + +#ifndef ROOT_TMVA_SOFIE_SOFTMAXTEST +#define ROOT_TMVA_SOFIE_SOFTMAXTEST + +#include +#include +#include "TMVA/SOFIE_common.hxx" +#include + +namespace TMVA_SOFIE_Softmaxtest{ +namespace BLAS{ + extern "C" void sgemm_(const char * transa, const char * transb, const int * m, const int * n, const int * k, + const float * alpha, const float * A, const int * lda, const float * B, const int * ldb, + const float * beta, float * C, const int * ldc); + extern "C" void sgemv_(const char * trans, const int * m, const int * n, const float * alpha, const float * A, + const int * lda, const float * X, const int * incx, const float * beta, const float * Y, const int * incy); +}//BLAS +struct Session { +std::vector fTensor_dense13bias0 = std::vector(64); +float * tensor_dense13bias0 = fTensor_dense13bias0.data(); +std::vector fTensor_dense13kernel0 = std::vector(448); +float * tensor_dense13kernel0 = fTensor_dense13kernel0.data(); +std::vector fTensor_dense13Softmax0 = std::vector(64); +float * tensor_dense13Softmax0 = fTensor_dense13Softmax0.data(); +std::vector fTensor_dense13Dense = std::vector(64); +float * tensor_dense13Dense = fTensor_dense13Dense.data(); +std::vector fTensor_dense13bias0bcast = std::vector(64); +float * tensor_dense13bias0bcast = fTensor_dense13bias0bcast.data(); + + +Session(std::string filename ="") { + if (filename.empty()) filename = "Softmaxtest.dat"; + std::ifstream f; + f.open(filename); + if (!f.is_open()){ + throw std::runtime_error("tmva-sofie failed to open file for input weights"); + } + std::string tensor_name; + int length; + f >> tensor_name >> length; + if (tensor_name != "tensor_dense13bias0" ) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor name; expected name is tensor_dense13bias0 , read " + tensor_name; + throw std::runtime_error(err_msg); + } + if (length != 64) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor size; expected size is 64 , read " + std::to_string(length) ; + throw std::runtime_error(err_msg); + } + for (int i =0; i < length; ++i) + f >> tensor_dense13bias0[i]; + f >> tensor_name >> length; + if (tensor_name != "tensor_dense13kernel0" ) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor name; expected name is tensor_dense13kernel0 , read " + tensor_name; + throw std::runtime_error(err_msg); + } + if (length != 448) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor size; expected size is 448 , read " + std::to_string(length) ; + throw std::runtime_error(err_msg); + } + for (int i =0; i < length; ++i) + f >> tensor_dense13kernel0[i]; + f.close(); + { + float * data = TMVA::Experimental::SOFIE::UTILITY::UnidirectionalBroadcast(tensor_dense13bias0,{ 64 }, { 1 , 64 }); + std::copy(data, data + 64, tensor_dense13bias0bcast); + delete [] data; + } +} + +std::vector infer(float* tensor_dense13input){ + +//--------- Gemm + char op_0_transA = 'n'; + char op_0_transB = 'n'; + int op_0_m = 1; + int op_0_n = 64; + int op_0_k = 7; + float op_0_alpha = 1; + float op_0_beta = 1; + int op_0_lda = 7; + int op_0_ldb = 64; + std::copy(tensor_dense13bias0bcast, tensor_dense13bias0bcast + 64, tensor_dense13Dense); + BLAS::sgemm_(&op_0_transB, &op_0_transA, &op_0_n, &op_0_m, &op_0_k, &op_0_alpha, tensor_dense13kernel0, &op_0_ldb, tensor_dense13input, &op_0_lda, &op_0_beta, tensor_dense13Dense, &op_0_n); + + //------ SOFTMAX + for (size_t n = 0; n < 1 ; n++){ + float sum = 0.; + size_t index = 0+ n * 64; + for (size_t i = 0; i < 64; i++) { + tensor_dense13Softmax0[index + i*1] = std::exp(tensor_dense13Dense[index + i*1]); + sum += tensor_dense13Softmax0[index + i*1]; + } + for (size_t i = 0; i < 64; i++) { + tensor_dense13Softmax0[index + i*1] /= sum; + } + } + std::vector ret (tensor_dense13Softmax0, tensor_dense13Softmax0 + 64); + return ret; +} +}; +} //TMVA_SOFIE_Softmaxtest + +#endif // ROOT_TMVA_SOFIE_SOFTMAXTEST diff --git a/tmva/sofie/test/KerasParserTest/Swishtest.h5 b/tmva/sofie/test/KerasParserTest/Swishtest.h5 new file mode 100644 index 0000000000000000000000000000000000000000..f248154a273250d7237aa140e3384f38165ac720 GIT binary patch literal 12584 zcmeHNeO%1h8vm703583sn9a*gn@nCybB?6a?j|8!Z<&5IQ%$CsF*8j?F^I}rg(WY$ zYAtJV>F!#hIggNCtZS`ny>z+jS~nrI)~;CW{k=v*?B07npLJLB$DH4J&U2pgobT^B z&pGEilN%Zo(%P}JBgKB~?I}CTnR^t!eil9+KD?2$L4$>97!IA{NP7 zg;Fg~RjLvajRr<2#$|x0@GDCfAzrQH+KCEf)(UIC4b_3Nr=}_Ov_WoC>J2KbhLOA3 z*l<1B)x`V2N3Q5kbJhBbDk`qY?Te_@RX_Shx**q$?I�$W8kHtNE|`3gy=-=Jf;|>5eq`>U!B=B> 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 literal 0 HcmV?d00001 diff --git a/tmva/sofie/test/KerasParserTest/Tanhtest.hxx b/tmva/sofie/test/KerasParserTest/Tanhtest.hxx new file mode 100644 index 0000000000000..bbacf8e9dbcff --- /dev/null +++ b/tmva/sofie/test/KerasParserTest/Tanhtest.hxx @@ -0,0 +1,97 @@ +//Code generated automatically by TMVA for Inference of Model file [Tanhtest.h5] at [Thu Aug 24 08:55:42 202] + +#ifndef ROOT_TMVA_SOFIE_TANHTEST +#define ROOT_TMVA_SOFIE_TANHTEST + +#include +#include +#include +#include "TMVA/SOFIE_common.hxx" +#include + +namespace TMVA_SOFIE_Tanhtest{ +namespace BLAS{ + extern "C" void sgemm_(const char * transa, const char * transb, const int * m, const int * n, const int * k, + const float * alpha, const float * A, const int * lda, const float * B, const int * ldb, + const float * beta, float * C, const int * ldc); + extern "C" void sgemv_(const char * trans, const int * m, const int * n, const float * alpha, const float * A, + const int * lda, const float * X, const int * incx, const float * beta, const float * Y, const int * incy); +}//BLAS +struct Session { +std::vector fTensor_dense11bias0 = std::vector(64); +float * tensor_dense11bias0 = fTensor_dense11bias0.data(); +std::vector fTensor_dense11kernel0 = std::vector(448); +float * tensor_dense11kernel0 = fTensor_dense11kernel0.data(); +std::vector fTensor_dense11Tanh0 = std::vector(64); +float * tensor_dense11Tanh0 = fTensor_dense11Tanh0.data(); +std::vector fTensor_dense11Dense = std::vector(64); +float * tensor_dense11Dense = fTensor_dense11Dense.data(); +std::vector fTensor_dense11bias0bcast = std::vector(64); +float * tensor_dense11bias0bcast = fTensor_dense11bias0bcast.data(); + + +Session(std::string filename ="") { + if (filename.empty()) filename = "Tanhtest.dat"; + std::ifstream f; + f.open(filename); + if (!f.is_open()){ + throw std::runtime_error("tmva-sofie failed to open file for input weights"); + } + std::string tensor_name; + int length; + f >> tensor_name >> length; + if (tensor_name != "tensor_dense11bias0" ) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor name; expected name is tensor_dense11bias0 , read " + tensor_name; + throw std::runtime_error(err_msg); + } + if (length != 64) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor size; expected size is 64 , read " + std::to_string(length) ; + throw std::runtime_error(err_msg); + } + for (int i =0; i < length; ++i) + f >> tensor_dense11bias0[i]; + f >> tensor_name >> length; + if (tensor_name != "tensor_dense11kernel0" ) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor name; expected name is tensor_dense11kernel0 , read " + tensor_name; + throw std::runtime_error(err_msg); + } + if (length != 448) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor size; expected size is 448 , read " + std::to_string(length) ; + throw std::runtime_error(err_msg); + } + for (int i =0; i < length; ++i) + f >> tensor_dense11kernel0[i]; + f.close(); + { + float * data = TMVA::Experimental::SOFIE::UTILITY::UnidirectionalBroadcast(tensor_dense11bias0,{ 64 }, { 1 , 64 }); + std::copy(data, data + 64, tensor_dense11bias0bcast); + delete [] data; + } +} + +std::vector infer(float* tensor_dense11input){ + +//--------- Gemm + char op_0_transA = 'n'; + char op_0_transB = 'n'; + int op_0_m = 1; + int op_0_n = 64; + int op_0_k = 7; + float op_0_alpha = 1; + float op_0_beta = 1; + int op_0_lda = 7; + int op_0_ldb = 64; + std::copy(tensor_dense11bias0bcast, tensor_dense11bias0bcast + 64, tensor_dense11Dense); + BLAS::sgemm_(&op_0_transB, &op_0_transA, &op_0_n, &op_0_m, &op_0_k, &op_0_alpha, tensor_dense11kernel0, &op_0_ldb, tensor_dense11input, &op_0_lda, &op_0_beta, tensor_dense11Dense, &op_0_n); + +//------ TANH + for (int id = 0; id < 64 ; id++){ + tensor_dense11Tanh0[id] = std::tanh(tensor_dense11Dense[id]); + } + std::vector ret (tensor_dense11Tanh0, tensor_dense11Tanh0 + 64); + return ret; +} +}; +} //TMVA_SOFIE_Tanhtest + +#endif // ROOT_TMVA_SOFIE_TANHTEST diff --git a/tmva/sofie/test/KerasParserTest/Tester.ipynb b/tmva/sofie/test/KerasParserTest/Tester.ipynb new file mode 100644 index 0000000000000..055fd24e526c4 --- /dev/null +++ b/tmva/sofie/test/KerasParserTest/Tester.ipynb @@ -0,0 +1,2192 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "id": "107dfc96", + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "2023-08-24 10:55:29.736003: I tensorflow/core/platform/cpu_feature_guard.cc:193] This TensorFlow binary is optimized with oneAPI Deep Neural Network Library (oneDNN) to use the following CPU instructions in performance-critical operations: SSE4.1 SSE4.2\n", + "To enable them in other operations, rebuild TensorFlow with the appropriate compiler flags.\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Welcome to JupyROOT 6.28/04\n" + ] + } + ], + "source": [ + "from tensorflow import keras\n", + "import os\n", + "import ROOT\n", + "from ROOT import TMVA\n", + "import numpy as np\n", + "import math\n", + "import time" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "866a8fd8", + "metadata": {}, + "outputs": [], + "source": [ + "def MakeKerasIdentity(layer): #Checked\n", + " input = layer['layerInput']\n", + " output = layer['layerOutput']\n", + " fLayerType = layer_data['layerDType']\n", + " fLayerInputName = input[0]\n", + " fLayerOutputName = output[0]\n", + " if TMVA.Experimental.SOFIE.ConvertStringToType(fLayerDType) == ROOT.TMVA.Experimental.SOFIE.ETensorType.FLOAT:\n", + " op = ROOT.TMVA.Experimental.SOFIE.ROperator_Identity('float')(fLayerInputName, fLayerOutputName)\n", + " return op\n", + " else:\n", + " raise RuntimeError(\n", + " \"TMVA::SOFIE - Unsupported - Operator Identity does not yet support input type \" + fLayerDType\n", + " )" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "69af8f89", + "metadata": {}, + "outputs": [], + "source": [ + "def MakeKerasBinary(layer): ###CHECK ABOUT FLOAT32 - IN GENERAL; also explain zeros in op creations\n", + " input = layer['layerInput']\n", + " output = layer['layerOutput']\n", + " fLayerType = layer_data['layerType'] \n", + " fLayerDType = layer_data['layerDType'] \n", + " fX1 = input[0]\n", + " fX2 = input[1]\n", + " fY = output[0]\n", + " op = None\n", + " if TMVA.Experimental.SOFIE.ConvertStringToType(fLayerDType) == ROOT.TMVA.Experimental.SOFIE.ETensorType.FLOAT:\n", + " if fLayerType == \"Add\":\n", + " op = ROOT.TMVA.Experimental.SOFIE.ROperator_BasicBinary('Add')(fX1, fX2, fY)\n", + " elif fLayerType == \"Subtract\":\n", + " op = ROOT.TMVA.Experimental.SOFIE.ROperator_BasicBinary('Sub')(fX1, fX2, fY)\n", + " else:\n", + " op = ROOT.TMVA.Experimental.SOFIE.ROperator_BasicBinary('Mul')(fX1, fX2, fY)\n", + " else:\n", + " raise RuntimeError(\n", + " \"TMVA::SOFIE - Unsupported - Operator Identity does not yet support input type \" + fLayerDType\n", + " )\n", + " return op" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "edc211b1", + "metadata": {}, + "outputs": [], + "source": [ + "def MakeKerasConcat(layer):\n", + " finput = layer['layerInput']\n", + " foutput = layer['layerOutput']\n", + " attributes = layer['layerAttributes']\n", + " input = [str(i) for i in finput]\n", + " output = str(foutput[0])\n", + " axis = int(attributes[\"axis\"])\n", + " op = ROOT.TMVA.Experimental.SOFIE.ROperator_Concat('float')(inputs, axis, 0, output)\n", + " return op" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "1393e11e", + "metadata": {}, + "outputs": [], + "source": [ + "def MakeKerasReshape(layer): #checked\n", + " \"\"\"\n", + " Create a Keras-compatible reshaping operation using SOFIE framework.\n", + "\n", + " This function takes a dictionary representing a layer and its attributes and\n", + " constructs a Keras-compatible reshaping operation using the SOFIE framework. Assumes layerDtype is float32.\n", + "\n", + " Parameters:\n", + " layer (dict): A dictionary containing layer information including input, output,\n", + " name, data type, and other relevant information.\n", + "\n", + " Returns:\n", + " ROperator_Reshape: A SOFIE framework operator representing the reshaping operation.\n", + " \"\"\"\n", + " finput = layer['layerInput']\n", + " foutput = layer['layerOutput']\n", + " attributes = layer['layerAttributes']\n", + " flayername = attributes['_name']\n", + " fOpMode = TMVA.Experimental.SOFIE.ReshapeOpMode.Reshape\n", + " fLayerDType = layer['layerDType']\n", + " fNameData = finput[0]\n", + " fNameOutput = foutput[0]\n", + " fNameShape = flayername + \"ReshapeAxes\"\n", + " op = ROOT.TMVA.Experimental.SOFIE.ROperator_Reshape('float')(fOpMode, 0, fNameData, fNameShape, fNameOutput)\n", + " return op" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "bf80ccad", + "metadata": {}, + "outputs": [], + "source": [ + "def MakeKerasFlatten(layer): #Checked\n", + " \"\"\"\n", + " Create a Keras-compatible flattening operation using SOFIE framework.\n", + "\n", + " This function takes a dictionary representing a layer and its attributes and\n", + " constructs a Keras-compatible flattening operation using the SOFIE framework.\n", + " Flattening is the process of converting a multi-dimensional tensor into a\n", + " one-dimensional tensor. Assumes layerDtype is float32.\n", + "\n", + " Parameters:\n", + " layer (dict): A dictionary containing layer information including input, output,\n", + " name, data type, and other relevant information.\n", + "\n", + " Returns:\n", + " ROperator_Reshape: A SOFIE framework operator representing the flattening operation.\n", + " \"\"\"\n", + " finput = layer['layerInput']\n", + " foutput = layer['layerOutput']\n", + " attributes = layer['layerAttributes']\n", + " flayername = attributes['_name']\n", + " fOpMode = TMVA.Experimental.SOFIE.ReshapeOpMode.Flatten\n", + " fLayerDType = layer['layerDType']\n", + " fNameData = finput[0]\n", + " fNameOutput = foutput[0]\n", + " fNameShape = flayername + \"ReshapeAxes\"\n", + " op = ROOT.TMVA.Experimental.SOFIE.ROperator_Reshape('float')(fOpMode, 0, fNameData, fNameShape, fNameOutput)\n", + " return op" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "365fdad2", + "metadata": {}, + "outputs": [], + "source": [ + "def MakeKerasBatchNorm(layer): \n", + " \"\"\"\n", + " Create a Keras-compatible batch normalization operation using SOFIE framework.\n", + "\n", + " This function takes a dictionary representing a batch normalization layer and its\n", + " attributes and constructs a Keras-compatible batch normalization operation using\n", + " the SOFIE framework. Batch normalization is used to normalize the activations of\n", + " a neural network, typically applied after the convolutional or dense layers.\n", + "\n", + " Parameters:\n", + " layer (dict): A dictionary containing layer information including input, output,\n", + " gamma, beta, moving mean, moving variance, epsilon,\n", + " momentum, data type (assumed to be float32), and other relevant information.\n", + "\n", + " Returns:\n", + " ROperator_BatchNormalization: A SOFIE framework operator representing the batch normalization operation.\n", + " \"\"\"\n", + " \n", + " finput = layer['layerInput']\n", + " foutput = layer['layerOutput']\n", + " attributes = layer['layerAttributes']\n", + " gamma = attributes[\"gamma\"]\n", + " beta = attributes[\"beta\"]\n", + " moving_mean = attributes[\"moving_mean\"]\n", + " moving_variance = attributes[\"moving_variance\"]\n", + " fLayerDType = layer[\"layerDType\"]\n", + " fNX = str(finput[0])\n", + " fNY = str(foutput[0])\n", + " fNScale = str(gamma.name)\n", + " fNB = str(beta.name)\n", + " fNMean = str(moving_mean.name)\n", + " fNVar = str(moving_variance.name)\n", + " epsilon = attributes[\"epsilon\"]\n", + " momentum = attributes[\"momentum\"]\n", + " op = ROOT.TMVA.Experimental.SOFIE.ROperator_BatchNormalization('float')(epsilon, momentum, 0, fNX, fNScale, fNB, fNMean, fNVar, fNY)\n", + " return op" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "4144e951", + "metadata": {}, + "outputs": [], + "source": [ + "def MakeKerasActivation(layer): #irrelevant - never used\n", + " attributes = layer['layerAttributes']\n", + " activation = attributes['activation']\n", + " fLayerActivation = str(activation.__name__)\n", + " if fLayerActivation in mapKerasLayer.keys():\n", + " return mapKerasLayer[fLayerActivation](layer)\n", + " else:\n", + " raise Exception(\"TMVA.SOFIE - parsing keras activation layer \" + fLayerActivation + \" is not yet supported\")\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "4c573fff", + "metadata": {}, + "outputs": [], + "source": [ + "def MakeKerasReLU(layer): #Checked\n", + " \"\"\"\n", + " Create a Keras-compatible rectified linear unit (ReLU) activation operation using SOFIE framework.\n", + "\n", + " This function takes a dictionary representing a layer and its attributes and\n", + " constructs a Keras-compatible ReLU activation operation using the SOFIE framework.\n", + " ReLU is a popular activation function that replaces all negative values in a tensor\n", + " with zero, while leaving positive values unchanged.\n", + "\n", + " Parameters:\n", + " layer (dict): A dictionary containing layer information including input, output,\n", + " and data type, which must be float32.\n", + "\n", + " Returns:\n", + " ROperator_Relu: A SOFIE framework operator representing the ReLU activation operation.\n", + " \"\"\"\n", + " \n", + " finput = layer['layerInput']\n", + " foutput = layer['layerOutput']\n", + " fLayerDType = layer['layerDType']\n", + " fLayerInputName = finput[0]\n", + " fLayerOutputName = foutput[0]\n", + " if TMVA.Experimental.SOFIE.ConvertStringToType(fLayerDType) == ROOT.TMVA.Experimental.SOFIE.ETensorType.FLOAT:\n", + " op = ROOT.TMVA.Experimental.SOFIE.ROperator_Relu('float')(fLayerInputName, fLayerOutputName)\n", + " return op\n", + " else:\n", + " raise RuntimeError(\n", + " \"TMVA::SOFIE - Unsupported - Operator Relu does not yet support input type \" + fLayerDType\n", + " )" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "a678192b", + "metadata": {}, + "outputs": [], + "source": [ + "def MakeKerasSeLU(layer): #NEED TO CHECK - also check if description is correct\n", + " \"\"\"\n", + " Create a Keras-compatible scaled exponential linear unit (SeLU) activation operation using SOFIE framework.\n", + "\n", + " This function takes a dictionary representing a layer and its attributes and\n", + " constructs a Keras-compatible SeLU activation operation using the SOFIE framework.\n", + " SeLU is a type of activation function that introduces self-normalizing properties\n", + " to the neural network, which can lead to improved training stability and convergence.\n", + "\n", + " Parameters:\n", + " layer (dict): A dictionary containing layer information including input, output,\n", + " and data type - must be float32.\n", + "\n", + " Returns:\n", + " ROperator_Selu: A SOFIE framework operator representing the SeLU activation operation.\n", + " \"\"\"\n", + " \n", + " finput = layer['layerInput']\n", + " foutput = layer['layerOutput']\n", + " fLayerDType = layer['layerDType']\n", + " fLayerInputName = finput[0]\n", + " fLayerOutputName = foutput[0]\n", + " if TMVA.Experimental.SOFIE.ConvertStringToType(fLayerDType) == ROOT.TMVA.Experimental.SOFIE.ETensorType.FLOAT:\n", + " op = ROOT.TMVA.Experimental.SOFIE.ROperator_Selu('float')(fLayerInputName, fLayerOutputName)\n", + " return op\n", + " else:\n", + " raise RuntimeError(\n", + " \"TMVA::SOFIE - Unsupported - Operator Selu does not yet support input type \" + fLayerDType\n", + " )" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "id": "6314c7ca", + "metadata": {}, + "outputs": [], + "source": [ + "def MakeKerasSigmoid(layer): #Checked\n", + " \"\"\"\n", + " Create a Keras-compatible sigmoid activation operation using SOFIE framework.\n", + "\n", + " This function takes a dictionary representing a layer and its attributes and\n", + " constructs a Keras-compatible sigmoid activation operation using the SOFIE framework.\n", + " Sigmoid is a commonly used activation function that maps input values to the range\n", + " between 0 and 1, providing a way to introduce non-linearity in neural networks.\n", + "\n", + " Parameters:\n", + " layer (dict): A dictionary containing layer information including input, output,\n", + " and data type - must be float 32.\n", + "\n", + " Returns:\n", + " ROperator_Sigmoid: A SOFIE framework operator representing the sigmoid activation operation.\n", + " \"\"\"\n", + " \n", + " finput = layer['layerInput']\n", + " foutput = layer['layerOutput']\n", + " fLayerDType = layer['layerDType']\n", + " fLayerInputName = finput[0]\n", + " fLayerOutputName = foutput[0]\n", + " if TMVA.Experimental.SOFIE.ConvertStringToType(fLayerDType) == ROOT.TMVA.Experimental.SOFIE.ETensorType.FLOAT:\n", + " op = ROOT.TMVA.Experimental.SOFIE.ROperator_Sigmoid('float')(fLayerInputName, fLayerOutputName)\n", + " return op\n", + " else:\n", + " raise RuntimeError(\n", + " \"TMVA::SOFIE - Unsupported - Operator Sigmoid does not yet support input type \" + fLayerDType\n", + " )" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "id": "29d52de3", + "metadata": {}, + "outputs": [], + "source": [ + "def MakeKerasSoftmax(layer): #Checked\n", + " \"\"\"\n", + " Create a Keras-compatible softmax activation operation using SOFIE framework.\n", + "\n", + " This function takes a dictionary representing a layer and its attributes and\n", + " constructs a Keras-compatible softmax activation operation using the SOFIE framework.\n", + " Softmax is an activation function that converts input values into a probability\n", + " distribution, often used in the output layer of a neural network for multi-class\n", + " classification tasks.\n", + "\n", + " Parameters:\n", + " layer (dict): A dictionary containing layer information including input, output,\n", + " and data type - must be float32.\n", + "\n", + " Returns:\n", + " ROperator_Softmax: A SOFIE framework operator representing the softmax activation operation.\n", + " \"\"\"\n", + " \n", + " finput = layer['layerInput']\n", + " foutput = layer['layerOutput']\n", + " fLayerDType = layer['layerDType']\n", + " fLayerInputName = finput[0]\n", + " fLayerOutputName = foutput[0]\n", + " if TMVA.Experimental.SOFIE.ConvertStringToType(fLayerDType) == ROOT.TMVA.Experimental.SOFIE.ETensorType.FLOAT:\n", + " op = ROOT.TMVA.Experimental.SOFIE.ROperator_Softmax('float')(-1, fLayerInputName, fLayerOutputName)\n", + " return op\n", + " else:\n", + " raise RuntimeError(\n", + " \"TMVA::SOFIE - Unsupported - Operator Softmax does not yet support input type \" + fLayerDType\n", + " )" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "id": "bf3c8943", + "metadata": {}, + "outputs": [], + "source": [ + "def MakeKerasLeakyRelu(layer): #Checked\n", + " \"\"\"\n", + " Create a Keras-compatible Leaky ReLU activation operation using SOFIE framework.\n", + "\n", + " This function takes a dictionary representing a layer and its attributes and\n", + " constructs a Keras-compatible Leaky ReLU activation operation using the SOFIE framework.\n", + " Leaky ReLU is a variation of the ReLU activation function that allows small negative\n", + " values to pass through, introducing non-linearity while preventing \"dying\" neurons.\n", + "\n", + " Parameters:\n", + " layer (dict): A dictionary containing layer information including input, output,\n", + " attributes, and data type - must be float 32.\n", + "\n", + " Returns:\n", + " ROperator_LeakyRelu: A SOFIE framework operator representing the Leaky ReLU activation operation.\n", + " \"\"\"\n", + " \n", + " finput = layer['layerInput']\n", + " foutput = layer['layerOutput']\n", + " fLayerDType = layer['layerDType']\n", + " fLayerInputName = finput[0]\n", + " fLayerOutputName = foutput[0]\n", + " attributes = layer['layerAttributes']\n", + " fAlpha = float(attributes[\"alpha\"])\n", + " if TMVA.Experimental.SOFIE.ConvertStringToType(fLayerDType) == ROOT.TMVA.Experimental.SOFIE.ETensorType.FLOAT:\n", + " op = ROOT.TMVA.Experimental.SOFIE.ROperator_LeakyRelu('float')(fAlpha, fLayerInputName, fLayerOutputName)\n", + " return op\n", + " else:\n", + " raise RuntimeError(\n", + " \"TMVA::SOFIE - Unsupported - Operator LeakyRelu does not yet support input type \" + fLayerDType\n", + " )" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "id": "31654c5b", + "metadata": {}, + "outputs": [], + "source": [ + "def MakeKerasTanh(layer): #Checked\n", + " \"\"\"\n", + " Create a Keras-compatible hyperbolic tangent (tanh) activation operation using SOFIE framework.\n", + "\n", + " This function takes a dictionary representing a layer and its attributes and\n", + " constructs a Keras-compatible tanh activation operation using the SOFIE framework.\n", + " Tanh is an activation function that squashes input values to the range between -1 and 1,\n", + " introducing non-linearity in neural networks.\n", + "\n", + " Parameters:\n", + " layer (dict): A dictionary containing layer information including input, output,\n", + " and data type - must be float32.\n", + "\n", + " Returns:\n", + " ROperator_Tanh: A SOFIE framework operator representing the tanh activation operation.\n", + " \"\"\"\n", + " \n", + " finput = layer['layerInput']\n", + " foutput = layer['layerOutput']\n", + " fLayerDType = layer['layerDType']\n", + " fLayerInputName = finput[0]\n", + " fLayerOutputName = foutput[0]\n", + " if TMVA.Experimental.SOFIE.ConvertStringToType(fLayerDType) == ROOT.TMVA.Experimental.SOFIE.ETensorType.FLOAT:\n", + " op = ROOT.TMVA.Experimental.SOFIE.ROperator_Tanh('float')(fLayerInputName, fLayerOutputName)\n", + " return op\n", + " else:\n", + " raise RuntimeError(\n", + " \"TMVA::SOFIE - Unsupported - Operator Tanh does not yet support input type \" + fLayerDType\n", + " )" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "id": "4702e2e9", + "metadata": {}, + "outputs": [], + "source": [ + "def MakeKerasSwish(layer): #Need to switch to master, also check if description is correct\n", + " \"\"\"\n", + " Create a Keras-compatible swish activation operation using SOFIE framework.\n", + "\n", + " This function takes a dictionary representing a layer and its attributes and\n", + " constructs a Keras-compatible swish activation operation using the SOFIE framework.\n", + " Swish is an activation function that aims to combine the benefits of ReLU and sigmoid,\n", + " allowing some non-linearity while still keeping positive values unbounded.\n", + "\n", + " Parameters:\n", + " layer (dict): A dictionary containing layer information including input, output,\n", + " and data type.\n", + "\n", + " Returns:\n", + " ROperator_Swish: A SOFIE framework operator representing the swish activation operation.\n", + " \"\"\"\n", + " \n", + " finput = layer['layerInput']\n", + " foutput = layer['layerOutput']\n", + " fLayerDType = layer['layerDType']\n", + " fLayerInputName = finput[0]\n", + " fLayerOutputName = foutput[0]\n", + " if TMVA.Experimental.SOFIE.ConvertStringToType(fLayerDType) == ROOT.TMVA.Experimental.SOFIE.ETensorType.FLOAT:\n", + " op = ROOT.TMVA.Experimental.SOFIE.ROperator_Swish('float')(fLayerInputName, fLayerOutputName)\n", + " return op\n", + " else:\n", + " raise RuntimeError(\n", + " \"TMVA::SOFIE - Unsupported - Operator Swish does not yet support input type \" + fLayerDType\n", + " )" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "id": "ef049b6e", + "metadata": {}, + "outputs": [], + "source": [ + "def MakeKerasPermute(layer):\n", + " \"\"\"\n", + " Create a Keras-compatible permutation operation using SOFIE framework.\n", + "\n", + " This function takes a dictionary representing a layer and its attributes and\n", + " constructs a Keras-compatible permutation operation using the SOFIE framework.\n", + " Permutation is an operation that rearranges the dimensions of a tensor based on\n", + " specified dimensions.\n", + "\n", + " Parameters:\n", + " layer (dict): A dictionary containing layer information including input, output,\n", + " attributes, and data type - must be float32.\n", + "\n", + " Returns:\n", + " ROperator_Transpose: A SOFIE framework operator representing the permutation operation.\n", + " \"\"\"\n", + " finput = layer['layerInput']\n", + " foutput = layer['layerOutput']\n", + " fLayerDType = layer['layerDType']\n", + " fLayerInputName = finput[0]\n", + " fLayerOutputName = foutput[0]\n", + " attributes = layer['layerAttributes']\n", + " fAttributePermute = np.asarray(attributes[\"dims\"])\n", + " if TMVA.Experimental.SOFIE.ConvertStringToType(fLayerDType) == ROOT.TMVA.Experimental.SOFIE.ETensorType.FLOAT:\n", + " if len(fAttributePermute) > 0:\n", + " op = ROOT.TMVA.Experimental.SOFIE.ROperator_Transpose('float')(fPermuteDims, fLayerInputName, fLayerOutputName)\n", + " else: \n", + " op = ROOT.TMVA.Experimental.SOFIE.ROperator_Transpose('float')(fLayerInputName, fLayerOutputName)\n", + " return op\n", + " else:\n", + " raise RuntimeError(\n", + " \"TMVA::SOFIE - Unsupported - Operator Transpose does not yet support input type \" + fLayerDType\n", + " )" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "id": "106e7e10", + "metadata": {}, + "outputs": [], + "source": [ + "def MakeKerasDense(layer): #Checked\n", + " \"\"\"\n", + " Create a Keras-compatible dense (fully connected) layer operation using SOFIE framework.\n", + "\n", + " This function takes a dictionary representing a dense layer and its attributes and\n", + " constructs a Keras-compatible dense (fully connected) layer operation using the SOFIE framework.\n", + " A dense layer applies a matrix multiplication between the input tensor and weight matrix,\n", + " and adds a bias term.\n", + "\n", + " Parameters:\n", + " layer (dict): A dictionary containing layer information including input, output,\n", + " layer weight names, and data type - must be float 32.\n", + "\n", + " Returns:\n", + " ROperator_Gemm: A SOFIE framework operator representing the dense layer operation.\n", + " \"\"\" \n", + " finput = layer['layerInput']\n", + " foutput = layer['layerOutput']\n", + " fLayerDType = layer['layerDType']\n", + " fLayerInputName = finput[0]\n", + " fLayerOutputName = foutput[0]\n", + " fWeightNames = layer[\"layerWeight\"]\n", + " fKernelName = fWeightNames[0]\n", + " fBiasName = fWeightNames[1]\n", + " attr_alpha = 1.0\n", + " attr_beta = 1.0\n", + " attr_transA = 0\n", + " attr_transB = 0\n", + " if TMVA.Experimental.SOFIE.ConvertStringToType(fLayerDType) == ROOT.TMVA.Experimental.SOFIE.ETensorType.FLOAT:\n", + " op = ROOT.TMVA.Experimental.SOFIE.ROperator_Gemm['float'](attr_alpha, attr_beta, attr_transA, attr_transB, fLayerInputName, fKernelName, fBiasName, fLayerOutputName)\n", + " return op\n", + " else:\n", + " raise RuntimeError(\n", + " \"TMVA::SOFIE - Unsupported - Operator Gemm does not yet support input type \" + fLayerDType\n", + " )" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "id": "27fb9df2", + "metadata": {}, + "outputs": [], + "source": [ + "def MakeKerasConv(layer): \n", + " \"\"\"\n", + " Create a Keras-compatible convolutional layer operation using SOFIE framework.\n", + "\n", + " This function takes a dictionary representing a convolutional layer and its attributes and\n", + " constructs a Keras-compatible convolutional layer operation using the SOFIE framework.\n", + " A convolutional layer applies a convolution operation between the input tensor and a set\n", + " of learnable filters (kernels).\n", + "\n", + " Parameters:\n", + " layer (dict): A dictionary containing layer information including input, output,\n", + " data type (must be float 32), weight and bias name, kernel size, dilations, padding and strides. \n", + " When padding is same (keep in the same dimensions), the padding shape is calculated.\n", + "\n", + " Returns:\n", + " ROperator_Conv: A SOFIE framework operator representing the convolutional layer operation.\n", + " \"\"\"\n", + " finput = layer['layerInput']\n", + " foutput = layer['layerOutput']\n", + " fLayerDType = layer['layerDType']\n", + " fLayerInputName = finput[0]\n", + " fLayerOutputName = foutput[0]\n", + " attributes = layer['layerAttributes']\n", + " fWeightNames = layer[\"layerWeight\"]\n", + " fKernelName = fWeightNames[0]\n", + " fBiasName = fWeightNames[1]\n", + " fAttrDilations = attributes[\"dilation_rate\"]\n", + " fAttrGroup = int(attributes[\"groups\"])\n", + " fAttrKernelShape = attributes[\"kernel_size\"]\n", + " fKerasPadding = str(attributes[\"padding\"])\n", + " fAttrStrides = attributes[\"strides\"]\n", + " \n", + " if fKerasPadding == 'valid':\n", + " fAttrAutopad = 'VALID'\n", + " elif fKerasPadding == 'same':\n", + " fAttrAutopad = 'NOTSET'\n", + " fInputShape = attributes['_build_input_shape']\n", + " inputHeight = fInputShape[1]\n", + " inputWidth = fInputShape[2]\n", + " outputHeight = math.ceil(float(inputHeight) / float(fAttrStrides[0]))\n", + " outputWidth = math.ceil(float(inputWidth) / float(fAttrStrides[1]))\n", + " padding_height = max((outputHeight - 1) * fAttrStrides[0] + fAttrKernelShape[0] - inputHeight, 0)\n", + " padding_width = max((outputWidth - 1) * fAttrStrides[1] + fAttrKernelShape[1] - inputWidth, 0)\n", + " padding_top = math.floor(padding_height / 2)\n", + " padding_bottom = padding_height - padding_top\n", + " padding_left = math.floor(padding_width / 2)\n", + " padding_right = padding_width - padding_left\n", + " fAttrPads = [padding_top, padding_bottom, padding_left, padding_right]\n", + " else:\n", + " raise RuntimeError(\n", + " \"TMVA::SOFIE - RModel Keras Parser doesn't yet supports Convolution layer with padding \" + fKerasPadding\n", + " )\n", + " if TMVA.Experimental.SOFIE.ConvertStringToType(fLayerDType) == ROOT.TMVA.Experimental.SOFIE.ETensorType.FLOAT:\n", + " op = ROOT.TMVA.Experimental.SOFIE.ROperator_Conv['float'](fAttrAutopad, fAttrDilations, fAttrGroup, \n", + " fAttrKernelShape, fAttrPads, fAttrStrides, \n", + " fLayerInputName, fKernelName, fBiasName, \n", + " fLayerOutputName)\n", + " return op\n", + " else:\n", + " raise RuntimeError(\n", + " \"TMVA::SOFIE - Unsupported - Operator Gemm does not yet support input type \" + fLayerDType\n", + " )\n", + " \n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "id": "157ebef9", + "metadata": {}, + "outputs": [], + "source": [ + "def MakeKerasPooling(layer): #Checked\n", + " \"\"\"\n", + " Create a Keras-compatible pooling layer operation using SOFIE framework.\n", + "\n", + " This function takes a dictionary representing a pooling layer and its attributes and\n", + " constructs a Keras-compatible pooling layer operation using the SOFIE framework.\n", + " Pooling layers downsample the input tensor by selecting a representative value from\n", + " a group of neighboring values, either by taking the maximum or the average.\n", + "\n", + " Parameters:\n", + " layer (dict): A dictionary containing layer information including input, output,\n", + " layer type (the selection rule), the pool size, padding, strides, and data type.\n", + "\n", + " Returns:\n", + " ROperator_Pool: A SOFIE framework operator representing the pooling layer operation.\n", + " \"\"\"\n", + " #Set default values\n", + " fAttrDilations = (1,1)\n", + " fpads = [0,0,0,0,0,0]\n", + " \n", + " #extract attributes from layer data\n", + " fLayerDType = layer['layerDType']\n", + " finput = layer['layerInput']\n", + " foutput = layer['layerOutput']\n", + " fLayerType = layer['layerType']\n", + " fLayerInputName = finput[0]\n", + " fLayerOutputName = foutput[0]\n", + " pool_atrr = TMVA.Experimental.SOFIE.RAttributes_Pool()\n", + " attributes = layer['layerAttributes']\n", + " fAttrKernelShape = attributes[\"pool_size\"]\n", + " fKerasPadding = str(attributes[\"padding\"])\n", + " fAttrStrides = attributes[\"strides\"]\n", + " if fKerasPadding == 'valid':\n", + " fAttrAutopad = 'VALID'\n", + " elif fKerasPadding == 'same':\n", + " fAttrAutopad = 'NOTSET'\n", + " else:\n", + " raise RuntimeError(\n", + " \"TMVA::SOFIE - RModel Keras Parser doesn't yet supports Convolution layer with padding \" + fKerasPadding\n", + " )\n", + " pool_atrr.dilations = list(fAttrDilations)\n", + " pool_atrr.strides = list(fAttrStrides)\n", + " pool_atrr.pads = fpads\n", + " pool_atrr.kernel_shape = list(fAttrKernelShape)\n", + " pool_atrr.auto_pad = fAttrAutopad \n", + " pool_atrr.ceil_mode = 0\n", + " pool_atrr.count_include_pad = 0\n", + " pool_atrr.storage_order = 0\n", + " \n", + " #choose pooling type\n", + " if fLayerType.startswith(\"Max\"):\n", + " PoolMode = ROOT.TMVA.Experimental.SOFIE.PoolOpMode.MaxPool\n", + " elif fLayerType.startswith(\"AveragePool\"):\n", + " PoolMode = ROOT.TMVA.Experimental.SOFIE.PoolOpMode.AveragePool\n", + " elif fLayerType.startswith(\"GlobalAverage\"):\n", + " PoolMode = ROOT.TMVA.Experimental.SOFIE.PoolOpMode.GloabalAveragePool\n", + " else:\n", + " raise RuntimeError(\n", + " \"TMVA::SOFIE - Unsupported - Operator poolong does not yet support pooling type \" + fLayerType\n", + " )\n", + " \n", + " #create operator\n", + " if TMVA.Experimental.SOFIE.ConvertStringToType(fLayerDType) == ROOT.TMVA.Experimental.SOFIE.ETensorType.FLOAT:\n", + " op = ROOT.TMVA.Experimental.SOFIE.ROperator_Pool['float'](PoolMode, pool_atrr, fLayerInputName, fLayerOutputName)\n", + " return op\n", + " else:\n", + " raise RuntimeError(\n", + " \"TMVA::SOFIE - Unsupported - Operator Pooling does not yet support input type \" + fLayerDType\n", + " )" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "id": "04283093", + "metadata": {}, + "outputs": [], + "source": [ + "def MakeKerasRNN(layer): \n", + " \"\"\"\n", + " Create a Keras-compatible RNN (Recurrent Neural Network) layer operation using SOFIE framework.\n", + "\n", + " This function takes a dictionary representing an RNN layer and its attributes and\n", + " constructs a Keras-compatible RNN layer operation using the SOFIE framework.\n", + " RNN layers are used to model sequences, and they maintain internal states that are\n", + " updated through recurrent connections.\n", + "\n", + " Parameters:\n", + " layer (dict): A dictionary containing layer information including input, output,\n", + " layer type, attributes, weights, and data type - must be float32.\n", + "\n", + " Returns:\n", + " ROperator_RNN: A SOFIE framework operator representing the RNN layer operation.\n", + " \"\"\"\n", + " \n", + " # Extract required information from the layer dictionary\n", + " fLayerDType = layer['layerDType']\n", + " finput = layer['layerInput']\n", + " foutput = layer['layerOutput']\n", + " attributes = layer['layerAttributes']\n", + " direction = attributes['direction']\n", + " hidden_size = attributes[\"hidden_size\"]\n", + " layout = int(attributes[\"layout\"])\n", + " nameX = finput[0]\n", + " nameY = foutput[0]\n", + " nameW = layer[\"layerWeight\"][0]\n", + " nameR = layer[\"layerWeight\"][1]\n", + " if len(layer[\"layerWeight\"]) > 2:\n", + " nameB = layer[\"layerWeight\"][2]\n", + " else:\n", + " nameB = \"\"\n", + " \n", + " # Check if the provided activation function is supported\n", + " fPActivation = attributes['activation']\n", + " if not fPActivation.__name__ in ['relu', 'sigmoid', 'tanh', 'softsign', 'softplus']: #avoiding functions with parameters\n", + " raise RuntimeError(\n", + " \"TMVA::SOFIE - Unsupported - Operator RNN does not yet support activation function \" + fPActivation.__name__\n", + " )\n", + " activations = [fPActivation.__name__[0].upper()+fPActivation.__name__[1:]]\n", + "\n", + " #set default values\n", + " activation_alpha = {}\n", + " activation_beta = {}\n", + " clip = 0.0\n", + " nameY_h = \"\"\n", + " nameInitial_h = \"\"\n", + " name_seq_len = \"\"\n", + " \n", + " if TMVA.Experimental.SOFIE.ConvertStringToType(fLayerDType) == ROOT.TMVA.Experimental.SOFIE.ETensorType.FLOAT:\n", + " if layer['layerType'] == \"SimpleRNN\":\n", + " op = ROOT.TMVA.Experimental.SOFIE.ROperator_RNN['float'](activation_alpha, activation_beta, activations, clip, direction, hidden_size, layout, nameX, nameW, nameR, nameB, name_seq_len, nameInitial_h, nameY, nameY_h)\n", + " \n", + " elif layer['layerType'] == \"GRU\":\n", + " #an additional activation function is required, given by the user\n", + " activations.insert(0,attributes['recurrent_activation'])\n", + " \n", + " #new variable needed:\n", + " linear_before_reset = 1 #SOLVE - in case when there is only 1 bias it's zero\n", + " op = ROOT.TMVA.Experimental.SOFIE.ROperator_GRU['float'](activation_alpha, activation_beta, activations, clip, direction, hidden_size, layout, linear_before_reset, nameX, nameW, nameR, nameB, name_seq_len, nameInitial_h, nameY, nameY_h)\n", + " \n", + " elif layer['layerType'] == \"LSTM\":\n", + " #an additional activation function is required, the first given by the user, the second set to tanh as default\n", + " fPRecurrentActivation = attributes['recurrent_activation']\n", + " if not fPActivation.__name__ in ['relu', 'sigmoid', 'tanh', 'softsign', 'softplus']: #avoiding functions with parameters\n", + " raise RuntimeError(\n", + " \"TMVA::SOFIE - Unsupported - Operator RNN does not yet support recurrent activation function \" + fPActivation.__name__\n", + " )\n", + " fPRecurrentActivationName = fPRecurrentActivation.__name__[0].upper()+fPRecurrentActivation.__name__[1:]\n", + " activations.insert(0,fPRecurrentActivationName)\n", + " activations.insert(2,'Tanh')\n", + " \n", + " #new variables needed:\n", + " input_forget = 0\n", + " nameInitial_c = \"\"\n", + " nameP = \"\" #No peephole connections in keras LSTM model\n", + " nameY_c = \"\"\n", + " op = ROOT.TMVA.Experimental.SOFIE.ROperator_LSTM['float'](activation_alpha, activation_beta, activations, clip, direction, hidden_size, input_forget, layout, nameX, nameW, nameR, nameB, name_seq_len, nameInitial_h, nameInitial_c, nameP, nameY, nameY_h, nameY_c)\n", + " \n", + " else: \n", + " raise RuntimeError(\n", + " \"TMVA::SOFIE - Unsupported - Operator RNN does not yet support operator type \" + layer['layerType']\n", + " ) \n", + " return op\n", + " else:\n", + " raise RuntimeError(\n", + " \"TMVA::SOFIE - Unsupported - Operator RNN does not yet support input type \" + fLayerDType\n", + " ) " + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "id": "f719a8aa", + "metadata": {}, + "outputs": [], + "source": [ + "#Set global dictionaries, mapping layers to corresponding functions that create their ROperator instances\n", + "mapKerasLayer = {\"Activation\": MakeKerasActivation,\n", + " \"Permute\": MakeKerasPermute,\n", + " \"BatchNormalization\": MakeKerasBatchNorm,\n", + " \"Reshape\": MakeKerasReshape,\n", + " \"Flatten\": MakeKerasFlatten,\n", + " \"Concatenate\": MakeKerasConcat,\n", + " \"swish\": MakeKerasSwish,\n", + " \"Add\": MakeKerasBinary,\n", + " \"Subtract\": MakeKerasBinary,\n", + " \"Multiply\": MakeKerasBinary,\n", + " \"Softmax\": MakeKerasSoftmax,\n", + " \"tanh\": MakeKerasTanh,\n", + " \"Identity\": MakeKerasIdentity,\n", + " \"Dropout\": MakeKerasIdentity,\n", + " \"ReLU\": MakeKerasReLU,\n", + " \"relu\": MakeKerasReLU,\n", + " \"selu\": MakeKerasSeLU,\n", + " \"sigmoid\": MakeKerasSigmoid,\n", + " \"LeakyReLU\": MakeKerasLeakyRelu, \n", + " \"softmax\": MakeKerasSoftmax, \n", + " \"MaxPooling2D\": MakeKerasPooling,\n", + " \"SimpleRNN\": MakeKerasRNN,\n", + " \"GRU\": MakeKerasRNN,\n", + " \"LSTM\": MakeKerasRNN,\n", + " }\n", + "\n", + "mapKerasLayerWithActivation = {\"Dense\": MakeKerasDense,\"Conv2D\": MakeKerasConv}" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "id": "69d892db", + "metadata": {}, + "outputs": [], + "source": [ + "def add_layer_into_RModel(rmodel, layer_data):\n", + " \"\"\"\n", + " Add a Keras layer operation to an existing RModel using the SOFIE framework.\n", + "\n", + " This function takes an existing RModel and a dictionary representing a Keras layer\n", + " and its attributes, and adds the corresponding layer operation to the RModel using\n", + " the SOFIE framework. The function supports various types of Keras layers, including\n", + " those with or without activation functions.\n", + "\n", + " Parameters:\n", + " rmodel (RModel): An existing RModel to which the layer operation will be added.\n", + " layer_data (dict): A dictionary containing layer information including type,\n", + " attributes, input, output, and layer data type.\n", + "\n", + " Returns:\n", + " RModel: The updated RModel after adding the layer operation.\n", + "\n", + " Raises exception: If the provided layer type or activation function is not supported.\n", + " \"\"\"\n", + " \n", + " fLayerType = layer_data['layerType']\n", + " \n", + " #reshape and flatten layers don't have weights, but they are needed inside the list of initialized tensor list in the Rmodel\n", + " if fLayerType == \"Reshape\" or fLayerType == \"Flatten\":\n", + " Attributes = layer_data['layerAttributes']\n", + " LayerName = Attributes['_name']\n", + " if fLayerType == \"Reshape\":\n", + " TargetShape = np.asarray(Attributes['target_shape']).astype(\"int\")\n", + " TargetShape = np.insert(TargetShape,0,0)\n", + " else:\n", + " input_shape = layer_data['layerAttributes']['_build_input_shape']\n", + " TargetShape = [ROOT.TMVA.Experimental.SOFIE.ConvertShapeToLength(input_shape[1:])]\n", + " TargetShape = np.asarray(TargetShape)\n", + " \n", + " #since the AddInitializedTensor method in RModel requires unique pointer, we call a helper function in c++ that does the conversion from a regular pointer to unique one in c++\n", + " rmodel.AddInitializedTensorFromPy['long'](LayerName+\"ReshapeAxes\",ROOT.TMVA.Experimental.SOFIE.ETensorType.INT64,[len(TargetShape)], TargetShape)\n", + " \n", + " #These layers only have one operator - excluding the recurrent layers, in which the activation function(s) are included in the recurrent operator\n", + " if fLayerType in mapKerasLayer.keys():\n", + " Attribues = layer_data['layerAttributes']\n", + " inputs = layer_data['layerInput']\n", + " outputs = layer_data['layerOutput']\n", + " LayerName = Attribues['_name']\n", + " \n", + " #Pooling layers in keras by default assume the channels dimension is the last one, \n", + " #while in onnx (and the RModel) it is the first one (other than batch size), \n", + " #so a transpose is needed before and after the pooling. ADD IF CHANNELS LAST\n", + " if fLayerType == 'MaxPooling2D':\n", + " op = ROOT.TMVA.Experimental.SOFIE.ROperator_Transpose('float')([0,3,1,2], inputs[0], LayerName+\"PreTrans\")\n", + " rmodel.AddOperatorFromPy(op)\n", + " inputs[0] = LayerName+\"PreTrans\"\n", + " layer_data[\"layerInput\"] = inputs\n", + " outputs[0] = LayerName+fLayerType\n", + " layer_data['layerOutput'] = outputs\n", + " rmodel.AddOperatorFromPy(mapKerasLayer[fLayerType](layer_data))\n", + " if fLayerType == 'MaxPooling2D':\n", + " op = ROOT.TMVA.Experimental.SOFIE.ROperator_Transpose('float')([0,2,3,1], LayerName+fLayerType, LayerName+\"PostTrans\")\n", + " rmodel.AddOperatorFromPy(op)\n", + " return rmodel\n", + " \n", + " #These layers require two operators - dense/conv and their activation funciton\n", + " elif fLayerType in mapKerasLayerWithActivation.keys():\n", + " Attribues = layer_data['layerAttributes']\n", + " LayerName = Attribues['_name']\n", + " fPActivation = Attribues['activation']\n", + " LayerActivation = fPActivation.__name__\n", + " if LayerActivation in ['selu', 'sigmoid']:\n", + " rmodel.AddNeededStdLib(\"cmath\")\n", + " \n", + " #if there is an activation function after the layer\n", + " if LayerActivation != 'linear':\n", + " outputs = layer_data['layerOutput']\n", + " inputs = layer_data['layerInput']\n", + " fActivationLayerOutput = outputs[0]\n", + " \n", + " #like pooling, convolutional layer from keras requires transpose before and after to match the onnx format \n", + " # ADD IF CHANNELS LAST\n", + " if fLayerType == 'Conv2D':\n", + " op = ROOT.TMVA.Experimental.SOFIE.ROperator_Transpose('float')([0,3,1,2], inputs[0], LayerName+\"PreTrans\")\n", + " rmodel.AddOperatorFromPy(op)\n", + " inputs[0] = LayerName+\"PreTrans\"\n", + " layer_data[\"layerInput\"] = inputs\n", + " outputs[0] = LayerName+fLayerType\n", + " layer_data['layerOutput'] = outputs\n", + " op = mapKerasLayerWithActivation[fLayerType](layer_data)\n", + " rmodel.AddOperatorFromPy(op)\n", + " Activation_layer_input = LayerName+fLayerType\n", + " if fLayerType == 'Conv2D':\n", + " op = ROOT.TMVA.Experimental.SOFIE.ROperator_Transpose('float')([0,2,3,1], LayerName+fLayerType, LayerName+\"PostTrans\")\n", + " rmodel.AddOperatorFromPy(op)\n", + " Activation_layer_input = LayerName + \"PostTrans\"\n", + " \n", + " #Adding the activation function\n", + " inputs[0] = Activation_layer_input\n", + " outputs[0] = fActivationLayerOutput\n", + " layer_data['layerInput'] = inputs\n", + " layer_data['layerOutput'] = outputs\n", + " if not LayerActivation in mapKerasLayer.keys():\n", + " raise Exception(\"TMVA.SOFIE - parsing keras activation function \" + LayerActivation + \" is not yet supported\")\n", + " rmodel.AddOperatorFromPy(mapKerasLayer[LayerActivation](layer_data))\n", + " \n", + " else: #there is a bug here if it is conv and the activation is linear, need to add transpose before and after\n", + " rmodel.AddOperatorFromPy(mapKerasLayerWithActivation[fLayerType](layer_data))\n", + " return rmodel\n", + " else:\n", + " raise Exception(\"TMVA.SOFIE - parsing keras layer \" + fLayerType + \" is not yet supported\")\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "id": "034a9250", + "metadata": { + "scrolled": true + }, + "outputs": [], + "source": [ + "def Keras_Parser_into_RModel(filename):\n", + " #Check if file exists\n", + " if not os.path.exists(filename):\n", + " raise RuntimeError(\"Model file {} not found!\".format(filename))\n", + " \n", + " #load model\n", + " keras_model = keras.models.load_model(modelFile)\n", + " keras_model.load_weights(modelFile)\n", + " \n", + " #create new RModel object\n", + " sep = '/'\n", + " if os.name == 'nt':\n", + " sep = '\\\\'\n", + " \n", + " isep = filename.rfind(sep)\n", + " filename_nodir = filename\n", + " if isep != -1:\n", + " filename_nodir = filename[isep+1:]\n", + " \n", + " ttime = time.time()\n", + " gmt_time = time.gmtime(ttime)\n", + " parsetime = time.asctime(gmt_time)\n", + " \n", + " rmodel = ROOT.TMVA.Experimental.SOFIE.RModel.RModel(filename_nodir, parsetime)\n", + " \n", + " #iterate over the layers and add them to the RModel\n", + " for layer in keras_model.layers:\n", + " layer_data={}\n", + " layer_data['layerType']=layer.__class__.__name__\n", + " layer_data['layerAttributes']=layer.__dict__\n", + " layer_data['layerInput']=[x.name for x in layer.input] if isinstance(layer.input,list) else [layer.input.name]\n", + " layer_data['layerOutput']=[x.name for x in layer.output] if isinstance(layer.output,list) else [layer.output.name]\n", + " layer_data['layerDType']=layer.dtype\n", + " layer_data['layerWeight']=[x.name for x in layer.weights]\n", + " \n", + " #for recurrent type layers we need to extract additional unique information\n", + " if layer_data['layerType'] in [\"SimpleRNN\", \"LSTM\", \"GRU\"]:\n", + " layer_data['layerAttributes']['activation'] = layer.activation\n", + " layer_data['layerAttributes']['direction'] = 'backward' if layer.go_backwards else 'forward'\n", + " layer_data['layerAttributes'][\"units\"] = layer.units\n", + " layer_data['layerAttributes'][\"layout\"] = layer.input.shape[0] is None\n", + " layer_data['layerAttributes'][\"hidden_size\"] = layer.output.shape[-1]\n", + " \n", + " #for GRU and LSTM we need to extract an additional activation function\n", + " if layer_data['layerType'] != \"SimpleRNN\": \n", + " layer_data['layerAttributes']['recurrent_activation'] = layer.recurrent_activation\n", + " \n", + " if layer_data['layerInput'][0].startswith('max_pooling2d'):\n", + " pooling_layer_name = layer_data['layerInput'][0].split('/')[0]\n", + " layer_data['layerInput'][0] = pooling_layer_name + 'PostTrans'\n", + " \n", + " fLayerType = layer_data['layerType']\n", + " #Ignoring the input layer for models built using Keras Functional API\n", + " #NEED TO TEST KERAS FUNCTIONAL API\n", + " if(fLayerType == \"InputLayer\"):\n", + " continue;\n", + "\n", + " #Adding any required routines depending on the Layer types for generating inference code.\n", + " elif (fLayerType == \"Dense\"):\n", + " rmodel.AddBlasRoutines({\"Gemm\", \"Gemv\"})\n", + " elif (fLayerType == \"BatchNormalization\"):\n", + " rmodel.AddBlasRoutines({\"Copy\", \"Axpy\"})\n", + " elif (fLayerType == \"Conv1D\" or fLayerType == \"Conv2D\" or fLayerType == \"Conv3D\"):\n", + " rmodel.AddBlasRoutines({\"Gemm\", \"Axpy\"})\n", + " rmodel = add_layer_into_RModel(rmodel, layer_data)\n", + "\n", + " # Extracting model's weights\n", + " weight = []\n", + " for idx in range(len(keras_model.get_weights())):\n", + " weightProp = {}\n", + " weightProp['name'] = keras_model.weights[idx].name\n", + " weightProp['dtype'] = keras_model.get_weights()[idx].dtype.name\n", + " if 'conv' in keras_model.weights[idx].name and keras_model.weights[idx].shape.ndims == 4:\n", + " weightProp['value'] = keras_model.get_weights()[idx].transpose((3, 2, 0, 1)).copy()\n", + " else:\n", + " weightProp['value'] = keras_model.get_weights()[idx]\n", + " weight.append(weightProp)\n", + "\n", + " # Traversing through all the Weight tensors\n", + " for weightIter in range(len(weight)):\n", + " fWeightTensor = weight[weightIter]\n", + " fWeightName = fWeightTensor['name']\n", + " fWeightDType = TMVA.Experimental.SOFIE.ConvertStringToType(fWeightTensor['dtype'])\n", + " fWeightTensorValue = fWeightTensor['value']\n", + " fWeightTensorSize = 1\n", + " fWeightTensorShape = []\n", + " \n", + " #IS IT BATCH SIZE? CHECK ONNX\n", + " if fWeightName.startswith(\"simple_rnn\") or fWeightName.startswith(\"lstm\") or (fWeightName.startswith(\"gru\") and not 'bias' in fWeightName):\n", + " fWeightTensorShape.append(1)\n", + " \n", + " # Building the shape vector and finding the tensor size\n", + " for j in range(len(fWeightTensorValue.shape)):\n", + " fWeightTensorShape.append(fWeightTensorValue.shape[j])\n", + " fWeightTensorSize *= fWeightTensorValue.shape[j]\n", + " \n", + " if fWeightDType == ROOT.TMVA.Experimental.SOFIE.ETensorType.FLOAT:\n", + " fWeightArray = fWeightTensorValue\n", + " \n", + " #weights conversion format between keras and onnx for lstm: the order of the different elements (input, output, forget, cell) inside the vector/matrix is different\n", + " if fWeightName.startswith(\"lstm\"):\n", + " if 'kernel' in fWeightName:\n", + " units = int(fWeightArray.shape[1]/4)\n", + " print(\"units = {}\".format(units))\n", + " print(fWeightArray)\n", + " W_i = fWeightArray[:, :units].copy()\n", + " W_f = fWeightArray[:, units: units * 2].copy()\n", + " W_c = fWeightArray[:, units * 2: units * 3].copy()\n", + " W_o = fWeightArray[:, units * 3:].copy()\n", + " fWeightArray[:, units: units * 2] = W_o\n", + " fWeightArray[:, units * 2: units * 3] = W_f\n", + " fWeightArray[:, units * 3:] = W_c\n", + " else: #bias\n", + " units = int(fWeightArray.shape[0]/4)\n", + " #print(\"units = {}\".format(units))\n", + " #print(fWeightArray)\n", + " W_i = fWeightArray[:units].copy()\n", + " W_f = fWeightArray[units: units * 2].copy()\n", + " W_c = fWeightArray[units * 2: units * 3].copy()\n", + " W_o = fWeightArray[units * 3:].copy()\n", + " fWeightArray[units: units * 2] = W_o\n", + " fWeightArray[units * 2: units * 3] = W_f\n", + " fWeightArray[units * 3:] = W_c\n", + " \n", + " #need to make specific adjustments for recurrent weights and biases\n", + " if (fWeightName.startswith(\"simple_rnn\") or fWeightName.startswith(\"lstm\") or fWeightName.startswith(\"gru\")):\n", + " #reshaping weight matrices for recurrent layers due to keras-onnx inconsistencies\n", + " if 'kernel' in fWeightName:\n", + " fWeightArray = np.transpose(fWeightArray)\n", + " fWeightTensorShape[1], fWeightTensorShape[2] = fWeightTensorShape[2], fWeightTensorShape[1]\n", + " \n", + " fData = fWeightArray.flatten()\n", + " \n", + " #the recurrent bias and the cell bias can be the same, in which case we need to add a vector of zeros for the recurrent bias\n", + " if 'bias' in fWeightName and len(fData.shape) == 1:\n", + " fWeightTensorShape[1] *= 2\n", + " fRbias = fData.copy()*0\n", + " fData = np.concatenate((fData,fRbias))\n", + "\n", + " else:\n", + " fData = fWeightArray.flatten()\n", + " \n", + " rmodel.AddInitializedTensorFromPy['float'](fWeightName, ROOT.TMVA.Experimental.SOFIE.ETensorType.FLOAT, fWeightTensorShape, fData)\n", + " else:\n", + " raise TypeError(\"Type error: TMVA SOFIE does not yet support data layer type: \" + fWeightDType)\n", + " \n", + " # Extracting input tensor info\n", + " fPInputs = keras_model.input_names\n", + " fPInputShape = keras_model.input_shape if isinstance(keras_model.input_shape, list) else [keras_model.input_shape]\n", + " fPInputDType = []\n", + " for idx in range(len(keras_model.inputs)):\n", + " fPInputDType.append(keras_model.inputs[idx].dtype.__str__()[9:-2])\n", + " \n", + " if len(fPInputShape) == 1:\n", + " fInputName = fPInputs[0]\n", + " fInputDType = TMVA.Experimental.SOFIE.ConvertStringToType(fPInputDType[0])\n", + " if fInputDType == ROOT.TMVA.Experimental.SOFIE.ETensorType.FLOAT:\n", + " if fPInputShape[0][0] is None or fPInputShape[0][0] <= 0:\n", + " fPInputShape = list(fPInputShape[0])\n", + " fPInputShape[0] = 1\n", + " rmodel.AddInputTensorInfo(fInputName, ROOT.TMVA.Experimental.SOFIE.ETensorType.FLOAT, fPInputShape)\n", + " rmodel.AddInputTensorName(fInputName) \n", + " else:\n", + " raise TypeError(\"Type error: TMVA SOFIE does not yet support data type \"+TMVA.Experimental.SOFIE.ConvertStringToType(fInputDType))\n", + " else:\n", + " #Iterating through multiple input tensors\n", + " for fInputName, fInputDType, fInputShapeTuple in zip(fPInputs, fPInputDType, fPInputShape):\n", + " fInputDType = TMVA.Experimental.SOFIE.ConvertStringToType(fInputDType)\n", + " if fInputDType == ROOT.TMVA.Experimental.SOFIE.ETensorType.FLOAT:\n", + " if fInputShapeTuple[0] is None or fInputShapeTuple[0] <= 0:\n", + " fInputShapeTuple = list(fInputShapeTuple)\n", + " fInputShapeTuple[0] = 1\n", + " print(\"Model does not have a defined batch size. Assuming it is 1 - input shape: \", fInputShapeTuple)\n", + " rmodel.AddInputTensorInfo(fInputName, ROOT.TMVA.Experimental.SOFIE.ETensorType.FLOAT, fInputShapeTuple)\n", + " rmodel.AddInputTensorName(fInputName)\n", + " else:\n", + " raise TypeError(\"Type error: TMVA SOFIE does not yet support data type \"+TMVA.Experimental.SOFIE.ConvertStringToType(fInputDType)) \n", + " \n", + " # Adding OutputTensorInfos\n", + " outputNames = []\n", + " for layerName in keras_model.output_names:\n", + " outputNames.append(keras_model.get_layer(layerName).output.name)\n", + " rmodel.AddOutputTensorNameList(outputNames)\n", + " print(\"created RModel\")\n", + " return rmodel" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "id": "5214c463", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "created RModel\n", + "Generating inference code for the Keras model from Relutest.h5 in the header Relutest.hxx\n", + "compiling SOFIE model Relutest\n", + "fraction of equal elements in the results vector = 100.0%\n", + "begin initializebegin input tensorsadded input tensorsfinished weight file\n", + "initialize operator N4TMVA12Experimental5SOFIE14ROperator_GemmIfEE\n", + "called intermidiatecalled intermidiate\n", + "initialize operator N4TMVA12Experimental5SOFIE14ROperator_ReluIfEE\n", + "called intermidiatefinished operatorsinitilized" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "2023-08-24 10:55:39.354546: I tensorflow/core/platform/cpu_feature_guard.cc:193] This TensorFlow binary is optimized with oneAPI Deep Neural Network Library (oneDNN) to use the following CPU instructions in performance-critical operations: SSE4.1 SSE4.2\n", + "To enable them in other operations, rebuild TensorFlow with the appropriate compiler flags.\n" + ] + } + ], + "source": [ + "modelFile = \"Relutest.h5\"\n", + "rmodel = Keras_Parser_into_RModel(modelFile)\n", + "generatedHeaderFile = modelFile.replace(\".h5\",\".hxx\")\n", + "print(\"Generating inference code for the Keras model from \",modelFile,\"in the header \", generatedHeaderFile)\n", + "rmodel.Generate()\n", + "rmodel.OutputGenerated(generatedHeaderFile)\n", + "modelName = modelFile.replace(\".h5\",\"\")\n", + "print(\"compiling SOFIE model \", modelName)\n", + "ret = ROOT.gInterpreter.Declare('#include \"' + generatedHeaderFile + '\"')\n", + "if not ret:\n", + " print(\"Error compiling header file \", generatedHeaderFile)\n", + " exit()\n", + "session = ROOT.TMVA_SOFIE_Relutest.Session()\n", + "input_test = np.ones((1,7), dtype = 'float32')\n", + "result = session.infer(input_test)\n", + "keras_model = keras.models.load_model(modelFile)\n", + "keras_model.load_weights(modelFile)\n", + "keras_result = keras_model(input_test)\n", + "#We lower the precision because keras provides slightly better precision\n", + "accuracy = np.mean(np.asarray(result).astype('float16') == np.asarray(keras_result).astype('float16'))\n", + "print(\"fraction of equal elements in the results vector = {}%\".format(100*accuracy)) " + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "id": "ce452c1e", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "created RModel\n", + "Generating inference code for the Keras model from Selutest.h5 in the header Selutest.hxx\n", + "compiling SOFIE model Selutest\n", + "fraction of equal elements in the results vector = 100.0%\n", + "begin initializebegin input tensorsadded input tensorsfinished weight file\n", + "initialize operator N4TMVA12Experimental5SOFIE14ROperator_GemmIfEE\n", + "called intermidiatecalled intermidiate\n", + "initialize operator N4TMVA12Experimental5SOFIE14ROperator_SeluIfEE\n", + "called intermidiatefinished operatorsinitilized" + ] + } + ], + "source": [ + "modelFile = \"Selutest.h5\"\n", + "rmodel = Keras_Parser_into_RModel(modelFile)\n", + "generatedHeaderFile = modelFile.replace(\".h5\",\".hxx\")\n", + "print(\"Generating inference code for the Keras model from \",modelFile,\"in the header \", generatedHeaderFile)\n", + "rmodel.Generate()\n", + "rmodel.OutputGenerated(generatedHeaderFile)\n", + "modelName = modelFile.replace(\".h5\",\"\")\n", + "print(\"compiling SOFIE model \", modelName)\n", + "ret = ROOT.gInterpreter.Declare('#include \"' + generatedHeaderFile + '\"')\n", + "if not ret:\n", + " print(\"Error compiling header file \", generatedHeaderFile)\n", + " exit()\n", + "session = ROOT.TMVA_SOFIE_Selutest.Session()\n", + "input_test = np.ones((1,7), dtype = 'float32')\n", + "result = session.infer(input_test)\n", + "keras_model = keras.models.load_model(modelFile)\n", + "keras_model.load_weights(modelFile)\n", + "keras_result = keras_model(input_test)\n", + "#We lower the precision because keras provides slightly better precision\n", + "accuracy = np.mean(np.asarray(result).astype('float16') == np.asarray(keras_result).astype('float16'))\n", + "print(\"fraction of equal elements in the results vector = {}%\".format(100*accuracy)) " + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "id": "3ef20d50", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "created RModel\n", + "Generating inference code for the Keras model from Tanhtest.h5 in the header Tanhtest.hxx\n", + "compiling SOFIE model Tanhtest\n", + "fraction of equal elements in the results vector = 100.0%\n", + "begin initializebegin input tensorsadded input tensorsfinished weight file\n", + "initialize operator N4TMVA12Experimental5SOFIE14ROperator_GemmIfEE\n", + "called intermidiatecalled intermidiate\n", + "initialize operator N4TMVA12Experimental5SOFIE14ROperator_TanhIfEE\n", + "called intermidiatefinished operatorsinitilized" + ] + } + ], + "source": [ + "modelFile = \"Tanhtest.h5\"\n", + "rmodel = Keras_Parser_into_RModel(modelFile)\n", + "generatedHeaderFile = modelFile.replace(\".h5\",\".hxx\")\n", + "print(\"Generating inference code for the Keras model from \",modelFile,\"in the header \", generatedHeaderFile)\n", + "rmodel.Generate()\n", + "rmodel.OutputGenerated(generatedHeaderFile)\n", + "modelName = modelFile.replace(\".h5\",\"\")\n", + "print(\"compiling SOFIE model \", modelName)\n", + "ret = ROOT.gInterpreter.Declare('#include \"' + generatedHeaderFile + '\"')\n", + "if not ret:\n", + " print(\"Error compiling header file \", generatedHeaderFile)\n", + " exit()\n", + "session = ROOT.TMVA_SOFIE_Tanhtest.Session()\n", + "input_test = np.ones((1,7), dtype = 'float32')\n", + "result = session.infer(input_test)\n", + "keras_model = keras.models.load_model(modelFile)\n", + "keras_model.load_weights(modelFile)\n", + "keras_result = keras_model(input_test)\n", + "#We lower the precision because keras provides slightly better precision\n", + "accuracy = np.mean(np.asarray(result).astype('float16') == np.asarray(keras_result).astype('float16'))\n", + "print(\"fraction of equal elements in the results vector = {}%\".format(100*accuracy)) " + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "id": "5cd316a5", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "created RModel\n", + "Generating inference code for the Keras model from LeakyRelutest.h5 in the header LeakyRelutest.hxx\n", + "compiling SOFIE model LeakyRelutest\n", + "fraction of equal elements in the results vector = 100.0%\n", + "begin initializebegin input tensorsadded input tensorsfinished weight file\n", + "initialize operator N4TMVA12Experimental5SOFIE14ROperator_GemmIfEE\n", + "called intermidiatecalled intermidiate\n", + "initialize operator N4TMVA12Experimental5SOFIE19ROperator_LeakyReluIfEE\n", + "called intermidiatefinished operatorsinitilized" + ] + } + ], + "source": [ + "modelFile = \"LeakyRelutest.h5\"\n", + "rmodel = Keras_Parser_into_RModel(modelFile)\n", + "generatedHeaderFile = modelFile.replace(\".h5\",\".hxx\")\n", + "print(\"Generating inference code for the Keras model from \",modelFile,\"in the header \", generatedHeaderFile)\n", + "rmodel.Generate()\n", + "rmodel.OutputGenerated(generatedHeaderFile)\n", + "modelName = modelFile.replace(\".h5\",\"\")\n", + "print(\"compiling SOFIE model \", modelName)\n", + "ret = ROOT.gInterpreter.Declare('#include \"' + generatedHeaderFile + '\"')\n", + "if not ret:\n", + " print(\"Error compiling header file \", generatedHeaderFile)\n", + " exit()\n", + "session = ROOT.TMVA_SOFIE_LeakyRelutest.Session()\n", + "input_test = np.ones((1,7), dtype = 'float32')\n", + "result = session.infer(input_test)\n", + "keras_model = keras.models.load_model(modelFile)\n", + "keras_model.load_weights(modelFile)\n", + "keras_result = keras_model(input_test)\n", + "#We lower the precision because keras provides slightly better precision\n", + "accuracy = np.mean(np.asarray(result).astype('float16') == np.asarray(keras_result).astype('float16'))\n", + "print(\"fraction of equal elements in the results vector = {}%\".format(100*accuracy)) " + ] + }, + { + "cell_type": "code", + "execution_count": 28, + "id": "b08328a5", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "created RModel\n", + "Generating inference code for the Keras model from Sigmoidtest.h5 in the header Sigmoidtest.hxx\n", + "compiling SOFIE model Sigmoidtest\n", + "fraction of equal elements in the results vector = 100.0%\n", + "begin initializebegin input tensorsadded input tensorsfinished weight file\n", + "initialize operator N4TMVA12Experimental5SOFIE14ROperator_GemmIfEE\n", + "called intermidiatecalled intermidiate\n", + "initialize operator N4TMVA12Experimental5SOFIE17ROperator_SigmoidIfEE\n", + "called intermidiatefinished operatorsinitilized" + ] + } + ], + "source": [ + "modelFile = \"Sigmoidtest.h5\"\n", + "rmodel = Keras_Parser_into_RModel(modelFile)\n", + "generatedHeaderFile = modelFile.replace(\".h5\",\".hxx\")\n", + "print(\"Generating inference code for the Keras model from \",modelFile,\"in the header \", generatedHeaderFile)\n", + "rmodel.Generate()\n", + "rmodel.OutputGenerated(generatedHeaderFile)\n", + "modelName = modelFile.replace(\".h5\",\"\")\n", + "print(\"compiling SOFIE model \", modelName)\n", + "ret = ROOT.gInterpreter.Declare('#include \"' + generatedHeaderFile + '\"')\n", + "if not ret:\n", + " print(\"Error compiling header file \", generatedHeaderFile)\n", + " exit()\n", + "session = ROOT.TMVA_SOFIE_Sigmoidtest.Session()\n", + "input_test = np.ones((1,7), dtype = 'float32')\n", + "result = session.infer(input_test)\n", + "keras_model = keras.models.load_model(modelFile)\n", + "keras_model.load_weights(modelFile)\n", + "keras_result = keras_model(input_test)\n", + "#We lower the precision because keras provides slightly better precision\n", + "accuracy = np.mean(np.asarray(result).astype('float16') == np.asarray(keras_result).astype('float16'))\n", + "print(\"fraction of equal elements in the results vector = {}%\".format(100*accuracy)) " + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "id": "efb934aa", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "created RModel\n", + "Generating inference code for the Keras model from Softmaxtest.h5 in the header Softmaxtest.hxx\n", + "compiling SOFIE model Softmaxtest\n", + "fraction of equal elements in the results vector = 100.0%\n", + "begin initializebegin input tensorsadded input tensorsfinished weight file\n", + "initialize operator N4TMVA12Experimental5SOFIE14ROperator_GemmIfEE\n", + "called intermidiatecalled intermidiate\n", + "initialize operator N4TMVA12Experimental5SOFIE17ROperator_SoftmaxIfEE\n", + "called intermidiatefinished operatorsinitilized" + ] + } + ], + "source": [ + "modelFile = \"Softmaxtest.h5\"\n", + "rmodel = Keras_Parser_into_RModel(modelFile)\n", + "generatedHeaderFile = modelFile.replace(\".h5\",\".hxx\")\n", + "print(\"Generating inference code for the Keras model from \",modelFile,\"in the header \", generatedHeaderFile)\n", + "rmodel.Generate()\n", + "rmodel.OutputGenerated(generatedHeaderFile)\n", + "modelName = modelFile.replace(\".h5\",\"\")\n", + "print(\"compiling SOFIE model \", modelName)\n", + "ret = ROOT.gInterpreter.Declare('#include \"' + generatedHeaderFile + '\"')\n", + "if not ret:\n", + " print(\"Error compiling header file \", generatedHeaderFile)\n", + " exit()\n", + "session = ROOT.TMVA_SOFIE_Softmaxtest.Session()\n", + "input_test = np.ones((1,7), dtype = 'float32')\n", + "result = session.infer(input_test)\n", + "keras_model = keras.models.load_model(modelFile)\n", + "keras_model.load_weights(modelFile)\n", + "keras_result = keras_model(input_test)\n", + "#We lower the precision because keras provides slightly better precision\n", + "accuracy = np.mean(np.asarray(result).astype('float16') == np.asarray(keras_result).astype('float16'))\n", + "print(\"fraction of equal elements in the results vector = {}%\".format(100*accuracy)) " + ] + }, + { + "cell_type": "code", + "execution_count": 30, + "id": "1a6b1e3e", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "created RModel\n", + "Generating inference code for the Keras model from MLPtest.h5 in the header MLPtest.hxx\n", + "compiling SOFIE model MLPtest\n", + "fraction of equal elements in the results vector = 100.0%\n", + "begin initializebegin input tensorsadded input tensorsfinished weight file\n", + "initialize operator N4TMVA12Experimental5SOFIE14ROperator_GemmIfEE\n", + "called intermidiatecalled intermidiate\n", + "initialize operator N4TMVA12Experimental5SOFIE14ROperator_SeluIfEE\n", + "called intermidiate\n", + "initialize operator N4TMVA12Experimental5SOFIE14ROperator_GemmIfEE\n", + "called intermidiatecalled intermidiate\n", + "initialize operator N4TMVA12Experimental5SOFIE14ROperator_TanhIfEE\n", + "called intermidiate\n", + "initialize operator N4TMVA12Experimental5SOFIE14ROperator_GemmIfEE\n", + "called intermidiatecalled intermidiate\n", + "initialize operator N4TMVA12Experimental5SOFIE17ROperator_SigmoidIfEE\n", + "called intermidiate\n", + "initialize operator N4TMVA12Experimental5SOFIE14ROperator_GemmIfEE\n", + "called intermidiatecalled intermidiate\n", + "initialize operator N4TMVA12Experimental5SOFIE14ROperator_ReluIfEE\n", + "called intermidiate\n", + "initialize operator N4TMVA12Experimental5SOFIE14ROperator_GemmIfEE\n", + "called intermidiatecalled intermidiate\n", + "initialize operator N4TMVA12Experimental5SOFIE17ROperator_SigmoidIfEE\n", + "called intermidiatefinished operatorsinitilized" + ] + } + ], + "source": [ + "modelFile = \"MLPtest.h5\"\n", + "rmodel = Keras_Parser_into_RModel(modelFile)\n", + "generatedHeaderFile = modelFile.replace(\".h5\",\".hxx\")\n", + "print(\"Generating inference code for the Keras model from \",modelFile,\"in the header \", generatedHeaderFile)\n", + "rmodel.Generate()\n", + "rmodel.OutputGenerated(generatedHeaderFile)\n", + "modelName = modelFile.replace(\".h5\",\"\")\n", + "print(\"compiling SOFIE model \", modelName)\n", + "ret = ROOT.gInterpreter.Declare('#include \"' + generatedHeaderFile + '\"')\n", + "if not ret:\n", + " print(\"Error compiling header file \", generatedHeaderFile)\n", + " exit()\n", + "session = ROOT.TMVA_SOFIE_MLPtest.Session()\n", + "input_test = np.ones((1,7), dtype = 'float32')\n", + "result = session.infer(input_test)\n", + "keras_model = keras.models.load_model(modelFile)\n", + "keras_model.load_weights(modelFile)\n", + "keras_result = keras_model(input_test)\n", + "#We lower the precision because keras provides slightly better precision\n", + "accuracy = np.mean(np.asarray(result).astype('float16') == np.asarray(keras_result).astype('float16'))\n", + "print(\"fraction of equal elements in the results vector = {}%\".format(100*accuracy)) " + ] + }, + { + "cell_type": "code", + "execution_count": 31, + "id": "648b43da", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "created RModel\n", + "Generating inference code for the Keras model from BatchNormalizationtest.h5 in the header BatchNormalizationtest.hxx\n", + "compiling SOFIE model BatchNormalizationtest\n", + "fraction of equal elements in the results vector = 100.0%\n", + "begin initializebegin input tensorsadded input tensorsfinished weight file\n", + "initialize operator N4TMVA12Experimental5SOFIE14ROperator_GemmIfEE\n", + "called intermidiatecalled intermidiate\n", + "initialize operator N4TMVA12Experimental5SOFIE28ROperator_BatchNormalizationIfEE\n", + "called intermidiatefinished operatorsinitilized" + ] + } + ], + "source": [ + "modelFile = \"BatchNormalizationtest.h5\"\n", + "rmodel = Keras_Parser_into_RModel(modelFile)\n", + "generatedHeaderFile = modelFile.replace(\".h5\",\".hxx\")\n", + "print(\"Generating inference code for the Keras model from \",modelFile,\"in the header \", generatedHeaderFile)\n", + "rmodel.Generate()\n", + "rmodel.OutputGenerated(generatedHeaderFile)\n", + "modelName = modelFile.replace(\".h5\",\"\")\n", + "print(\"compiling SOFIE model \", modelName)\n", + "ret = ROOT.gInterpreter.Declare('#include \"' + generatedHeaderFile + '\"')\n", + "if not ret:\n", + " print(\"Error compiling header file \", generatedHeaderFile)\n", + " exit()\n", + "session = ROOT.TMVA_SOFIE_BatchNormalizationtest.Session()\n", + "input_test = np.ones((1,7), dtype = 'float32')\n", + "result = session.infer(input_test)\n", + "keras_model = keras.models.load_model(modelFile)\n", + "keras_model.load_weights(modelFile)\n", + "keras_result = keras_model(input_test)\n", + "#We lower the precision because keras provides slightly better precision\n", + "accuracy = np.mean(np.asarray(result).astype('float16') == np.asarray(keras_result).astype('float16'))\n", + "print(\"fraction of equal elements in the results vector = {}%\".format(100*accuracy)) " + ] + }, + { + "cell_type": "code", + "execution_count": 32, + "id": "9b05f15f", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "created RModel\n", + "Generating inference code for the Keras model from CNNtest.h5 in the header CNNtest.hxx\n", + "compiling SOFIE model BatchNormalizationtest\n", + "fraction of equal elements in the results vector = 100.0%\n", + "kernel shape { 2 , 2 }\n", + "begin initializebegin input tensorsadded input tensorsfinished weight file\n", + "initialize operator N4TMVA12Experimental5SOFIE17ROperator_ReshapeIfEE\n", + "reshape output shape: { 1 , 16 , 16 , 1 }called intermidiate\n", + "initialize operator N4TMVA12Experimental5SOFIE19ROperator_TransposeIfEE\n", + "reshapeReshape0\n", + "transpose fAttrPerm0 3 1 2\n", + "\n", + "transpose input shape1 16 16 1\n", + "transpose output shape1 1 16 16\n", + "called intermidiate\n", + "initialize operator N4TMVA12Experimental5SOFIE14ROperator_ConvIfEE\n", + "Elements of the input vector:\n", + "1 1 16 16 \n", + "called intermidiatecalled intermidiate\n", + "initialize operator N4TMVA12Experimental5SOFIE19ROperator_TransposeIfEE\n", + "conv2dConv2D\n", + "transpose fAttrPerm0 2 3 1\n", + "\n", + "transpose input shape1 10 16 16\n", + "transpose output shape1 16 16 10\n", + "called intermidiate\n", + "initialize operator N4TMVA12Experimental5SOFIE14ROperator_ReluIfEE\n", + "called intermidiate\n", + "initialize operator N4TMVA12Experimental5SOFIE19ROperator_TransposeIfEE\n", + "conv2dRelu0\n", + "transpose fAttrPerm0 3 1 2\n", + "\n", + "transpose input shape1 16 16 10\n", + "transpose output shape1 10 16 16\n", + "called intermidiate\n", + "initialize operator N4TMVA12Experimental5SOFIE14ROperator_PoolIfEE\n", + "called intermidiate\n", + "initialize operator N4TMVA12Experimental5SOFIE19ROperator_TransposeIfEE\n", + "maxpooling2dMaxPooling2D\n", + "transpose fAttrPerm0 2 3 1\n", + "\n", + "transpose input shape1 10 8 8\n", + "transpose output shape1 8 8 10\n", + "called intermidiate\n", + "initialize operator N4TMVA12Experimental5SOFIE17ROperator_ReshapeIfEE\n", + "reshape output shape: { 1 , 640 }called intermidiate\n", + "initialize operator N4TMVA12Experimental5SOFIE14ROperator_GemmIfEE\n", + "called intermidiatecalled intermidiate\n", + "initialize operator N4TMVA12Experimental5SOFIE14ROperator_TanhIfEE\n", + "called intermidiate\n", + "initialize operator N4TMVA12Experimental5SOFIE14ROperator_GemmIfEE\n", + "called intermidiatecalled intermidiate\n", + "initialize operator N4TMVA12Experimental5SOFIE17ROperator_SigmoidIfEE\n", + "called intermidiatefinished operatorsinitilizedoW = 16 oH = 16oD = 1\n" + ] + } + ], + "source": [ + "modelFile = \"CNNtest.h5\"\n", + "rmodel = Keras_Parser_into_RModel(modelFile)\n", + "generatedHeaderFile = modelFile.replace(\".h5\",\".hxx\")\n", + "print(\"Generating inference code for the Keras model from \",modelFile,\"in the header \", generatedHeaderFile)\n", + "rmodel.Generate()\n", + "rmodel.OutputGenerated(generatedHeaderFile)\n", + "print(\"compiling SOFIE model \", modelName)\n", + "ret = ROOT.gInterpreter.Declare('#include \"' + generatedHeaderFile + '\"')\n", + "if not ret:\n", + " print(\"Error compiling header file \", generatedHeaderFile)\n", + " exit()\n", + "session = ROOT.TMVA_SOFIE_CNNtest.Session()\n", + "input_test = np.ones((1,256), dtype = 'float32')\n", + "result = session.infer(input_test)\n", + "keras_model = keras.models.load_model(modelFile)\n", + "keras_model.load_weights(modelFile)\n", + "print(\"fraction of equal elements in the results vector = {}%\".format(100*accuracy)) " + ] + }, + { + "cell_type": "code", + "execution_count": 33, + "id": "da02eff7", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "created RModel\n", + "Generating inference code for the Keras model from Convtest.h5 in the header Convtest.hxx\n", + "compiling SOFIE model BatchNormalizationtest\n", + "fraction of equal elements in the results vector = 100.0%\n", + "begin initializebegin input tensorsadded input tensorsfinished weight file\n", + "initialize operator N4TMVA12Experimental5SOFIE17ROperator_ReshapeIfEE\n", + "reshape output shape: { 1 , 2 , 2 , 1 }called intermidiate\n", + "initialize operator N4TMVA12Experimental5SOFIE19ROperator_TransposeIfEE\n", + "reshape2Reshape0\n", + "transpose fAttrPerm0 3 1 2\n", + "\n", + "transpose input shape1 2 2 1\n", + "transpose output shape1 1 2 2\n", + "called intermidiate\n", + "initialize operator N4TMVA12Experimental5SOFIE14ROperator_ConvIfEE\n", + "Elements of the input vector:\n", + "1 1 2 2 \n", + "called intermidiatecalled intermidiate\n", + "initialize operator N4TMVA12Experimental5SOFIE19ROperator_TransposeIfEE\n", + "conv2d2Conv2D\n", + "transpose fAttrPerm0 2 3 1\n", + "\n", + "transpose input shape1 1 1 3\n", + "transpose output shape1 1 3 1\n", + "called intermidiate\n", + "initialize operator N4TMVA12Experimental5SOFIE17ROperator_SigmoidIfEE\n", + "called intermidiatefinished operatorsinitilizedoW = 3 oH = 1oD = 1\n" + ] + } + ], + "source": [ + "modelFile = \"Convtest.h5\"\n", + "rmodel = Keras_Parser_into_RModel(modelFile)\n", + "generatedHeaderFile = modelFile.replace(\".h5\",\".hxx\")\n", + "print(\"Generating inference code for the Keras model from \",modelFile,\"in the header \", generatedHeaderFile)\n", + "rmodel.Generate()\n", + "rmodel.OutputGenerated(generatedHeaderFile)\n", + "print(\"compiling SOFIE model \", modelName)\n", + "ret = ROOT.gInterpreter.Declare('#include \"' + generatedHeaderFile + '\"')\n", + "if not ret:\n", + " print(\"Error compiling header file \", generatedHeaderFile)\n", + " exit()\n", + "session = ROOT.TMVA_SOFIE_Convtest.Session()\n", + "input_test = np.ones((1,4), dtype = 'float32')\n", + "result = session.infer(input_test)\n", + "keras_model = keras.models.load_model(modelFile)\n", + "keras_model.load_weights(modelFile)\n", + "print(\"fraction of equal elements in the results vector = {}%\".format(100*accuracy)) " + ] + }, + { + "cell_type": "code", + "execution_count": 34, + "id": "f14a03db", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "created RModel\n", + "Generating inference code for the Keras model from MaxPooltest.h5 in the header MaxPooltest.hxx\n", + "compiling SOFIE model BatchNormalizationtest\n", + "fraction of equal elements in the results vector = 100.0%\n", + "kernel shape { 2 , 2 }\n", + "begin initializebegin input tensorsadded input tensorsfinished weight file\n", + "initialize operator N4TMVA12Experimental5SOFIE17ROperator_ReshapeIfEE\n", + "reshape output shape: { 1 , 2 , 2 , 1 }called intermidiate\n", + "initialize operator N4TMVA12Experimental5SOFIE19ROperator_TransposeIfEE\n", + "reshape5Reshape0\n", + "transpose fAttrPerm0 3 1 2\n", + "\n", + "transpose input shape1 2 2 1\n", + "transpose output shape1 1 2 2\n", + "called intermidiate\n", + "initialize operator N4TMVA12Experimental5SOFIE14ROperator_PoolIfEE\n", + "called intermidiate\n", + "initialize operator N4TMVA12Experimental5SOFIE19ROperator_TransposeIfEE\n", + "maxpooling2d2MaxPooling2D\n", + "transpose fAttrPerm0 2 3 1\n", + "\n", + "transpose input shape1 1 1 1\n", + "transpose output shape1 1 1 1\n", + "called intermidiate\n", + "initialize operator N4TMVA12Experimental5SOFIE17ROperator_ReshapeIfEE\n", + "reshape output shape: { 1 , 1 }called intermidiate\n", + "initialize operator N4TMVA12Experimental5SOFIE14ROperator_GemmIfEE\n", + "called intermidiatecalled intermidiate\n", + "initialize operator N4TMVA12Experimental5SOFIE14ROperator_TanhIfEE\n", + "called intermidiatefinished operatorsinitilized" + ] + } + ], + "source": [ + "modelFile = \"MaxPooltest.h5\"\n", + "rmodel = Keras_Parser_into_RModel(modelFile)\n", + "generatedHeaderFile = modelFile.replace(\".h5\",\".hxx\")\n", + "print(\"Generating inference code for the Keras model from \",modelFile,\"in the header \", generatedHeaderFile)\n", + "rmodel.Generate()\n", + "rmodel.OutputGenerated(generatedHeaderFile)\n", + "print(\"compiling SOFIE model \", modelName)\n", + "ret = ROOT.gInterpreter.Declare('#include \"' + generatedHeaderFile + '\"')\n", + "if not ret:\n", + " print(\"Error compiling header file \", generatedHeaderFile)\n", + " exit()\n", + "session = ROOT.TMVA_SOFIE_MaxPooltest.Session()\n", + "input_test = np.ones((1,4), dtype = 'float32')\n", + "result = session.infer(input_test)\n", + "keras_model = keras.models.load_model(modelFile)\n", + "keras_model.load_weights(modelFile)\n", + "print(\"fraction of equal elements in the results vector = {}%\".format(100*accuracy)) " + ] + }, + { + "cell_type": "code", + "execution_count": 35, + "id": "febac839", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "created RModel\n", + "Generating inference code for the Keras model from Flattentest.h5 in the header Flattentest.hxx\n", + "compiling SOFIE model BatchNormalizationtest\n", + "fraction of equal elements in the results vector = 100.0%\n", + "begin initializebegin input tensorsadded input tensorsfinished weight file\n", + "initialize operator N4TMVA12Experimental5SOFIE17ROperator_ReshapeIfEE\n", + "reshape output shape: { 1 , 2 , 2 , 1 }called intermidiate\n", + "initialize operator N4TMVA12Experimental5SOFIE17ROperator_ReshapeIfEE\n", + "reshape output shape: { 1 , 4 }called intermidiatefinished operatorsinitilized" + ] + } + ], + "source": [ + "modelFile = \"Flattentest.h5\"\n", + "rmodel = Keras_Parser_into_RModel(modelFile)\n", + "generatedHeaderFile = modelFile.replace(\".h5\",\".hxx\")\n", + "print(\"Generating inference code for the Keras model from \",modelFile,\"in the header \", generatedHeaderFile)\n", + "rmodel.Generate()\n", + "rmodel.OutputGenerated(generatedHeaderFile)\n", + "print(\"compiling SOFIE model \", modelName)\n", + "ret = ROOT.gInterpreter.Declare('#include \"' + generatedHeaderFile + '\"')\n", + "if not ret:\n", + " print(\"Error compiling header file \", generatedHeaderFile)\n", + " exit()\n", + "session = ROOT.TMVA_SOFIE_Flattentest.Session()\n", + "input_test = np.ones((1,4), dtype = 'float32')\n", + "result = session.infer(input_test)\n", + "keras_model = keras.models.load_model(modelFile)\n", + "keras_model.load_weights(modelFile)\n", + "print(\"fraction of equal elements in the results vector = {}%\".format(100*accuracy)) " + ] + }, + { + "cell_type": "code", + "execution_count": 36, + "id": "0d417b6c", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1\n", + "created RModel\n", + "Generating inference code for the Keras model from GRUtest.h5 in the header GRUtest.hxx\n", + "compiling SOFIE model BatchNormalizationtest\n", + "fraction of equal elements in the results vector = 100.0%\n", + "begin initializebegin input tensorsadded input tensorsfinished weight file\n", + "initialize operator N4TMVA12Experimental5SOFIE17ROperator_ReshapeIfEE\n", + "reshape output shape: { 1 , 2 , 2 }called intermidiate\n", + "initialize operator N4TMVA12Experimental5SOFIE13ROperator_GRUIfEE\n", + "called intermidiatefinished operatorsinitilized" + ] + } + ], + "source": [ + "modelFile = \"GRUtest.h5\"\n", + "rmodel = Keras_Parser_into_RModel(modelFile)\n", + "generatedHeaderFile = modelFile.replace(\".h5\",\".hxx\")\n", + "print(\"Generating inference code for the Keras model from \",modelFile,\"in the header \", generatedHeaderFile)\n", + "rmodel.Generate()\n", + "rmodel.OutputGenerated(generatedHeaderFile)\n", + "print(\"compiling SOFIE model \", modelName)\n", + "ret = ROOT.gInterpreter.Declare('#include \"' + generatedHeaderFile + '\"')\n", + "if not ret:\n", + " print(\"Error compiling header file \", generatedHeaderFile)\n", + " exit()\n", + "session = ROOT.TMVA_SOFIE_GRUtest.Session()\n", + "input_test = np.ones((1,4), dtype = 'float32')\n", + "result = session.infer(input_test)\n", + "keras_model = keras.models.load_model(modelFile)\n", + "keras_model.load_weights(modelFile)\n", + "print(\"fraction of equal elements in the results vector = {}%\".format(100*accuracy)) " + ] + }, + { + "cell_type": "code", + "execution_count": 37, + "id": "d182c117", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1\n", + "created RModel\n", + "Generating inference code for the Keras model from GRUtestWithBias.h5 in the header GRUtestWithBias.hxx\n", + "compiling SOFIE model BatchNormalizationtest\n", + "fraction of equal elements in the results vector = 100.0%\n", + "begin initializebegin input tensorsadded input tensorsfinished weight file\n", + "initialize operator N4TMVA12Experimental5SOFIE17ROperator_ReshapeIfEE\n", + "reshape output shape: { 1 , 2 , 2 }called intermidiate\n", + "initialize operator N4TMVA12Experimental5SOFIE13ROperator_GRUIfEE\n", + "called intermidiatefinished operatorsinitilized" + ] + } + ], + "source": [ + "modelFile = \"GRUtestWithBias.h5\"\n", + "rmodel = Keras_Parser_into_RModel(modelFile)\n", + "generatedHeaderFile = modelFile.replace(\".h5\",\".hxx\")\n", + "print(\"Generating inference code for the Keras model from \",modelFile,\"in the header \", generatedHeaderFile)\n", + "rmodel.Generate()\n", + "rmodel.OutputGenerated(generatedHeaderFile)\n", + "print(\"compiling SOFIE model \", modelName)\n", + "ret = ROOT.gInterpreter.Declare('#include \"' + generatedHeaderFile + '\"')\n", + "if not ret:\n", + " print(\"Error compiling header file \", generatedHeaderFile)\n", + " exit()\n", + "session = ROOT.TMVA_SOFIE_GRUtestWithBias.Session()\n", + "input_test = np.ones((1,4), dtype = 'float32')\n", + "result = session.infer(input_test)\n", + "keras_model = keras.models.load_model(modelFile)\n", + "keras_model.load_weights(modelFile)\n", + "print(\"fraction of equal elements in the results vector = {}%\".format(100*accuracy)) " + ] + }, + { + "cell_type": "code", + "execution_count": 38, + "id": "6b57fd8f", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1\n", + "['Sigmoid', 'Tanh', 'Tanh']\n", + "units = 3\n", + "[[ 0.26783913 -0.38688368 0.5643282 0.13166183 -0.07244605 -0.64679545\n", + " -0.19337747 -0.39189202 0.44501936 0.1427446 0.6533164 0.58202267]\n", + " [-0.47489387 0.4988736 -0.18503693 0.19428462 -0.10970682 0.5229168\n", + " 0.18104374 -0.24045089 -0.18928796 -0.07183313 0.30804825 0.03168583]]\n", + "units = 3\n", + "[[ 0.13411438 -0.41057774 0.19926903 0.28373468 0.4937415 0.22720744\n", + " 0.2932028 0.3760723 0.03629123 -0.3049403 0.17142445 0.21617477]\n", + " [-0.24340835 -0.2369854 -0.09374416 0.03825668 -0.2696954 0.08172181\n", + " -0.6508013 0.2134273 -0.2155317 -0.44375497 -0.10091524 0.26883966]\n", + " [-0.41502652 -0.28477955 -0.23169267 -0.1553243 -0.33162177 -0.2608538\n", + " 0.37693858 0.46355975 0.25802857 0.21111429 -0.05007693 0.14213687]]\n", + "created RModel\n", + "Generating inference code for the Keras model from LSTMtestWithBias.h5 in the header LSTMtestWithBias.hxx\n", + "compiling SOFIE model BatchNormalizationtest\n", + "fraction of equal elements in the results vector = 100.0%\n", + "begin initializebegin input tensorsadded input tensorsfinished weight file\n", + "initialize operator N4TMVA12Experimental5SOFIE17ROperator_ReshapeIfEE\n", + "reshape output shape: { 1 , 2 , 2 }called intermidiate\n", + "initialize operator N4TMVA12Experimental5SOFIE14ROperator_LSTMIfEE\n", + "called intermidiatefinished operatorsinitilized" + ] + } + ], + "source": [ + "modelFile = \"LSTMtestWithBias.h5\"\n", + "rmodel = Keras_Parser_into_RModel(modelFile)\n", + "generatedHeaderFile = modelFile.replace(\".h5\",\".hxx\")\n", + "print(\"Generating inference code for the Keras model from \",modelFile,\"in the header \", generatedHeaderFile)\n", + "rmodel.Generate()\n", + "rmodel.OutputGenerated(generatedHeaderFile)\n", + "print(\"compiling SOFIE model \", modelName)\n", + "ret = ROOT.gInterpreter.Declare('#include \"' + generatedHeaderFile + '\"')\n", + "if not ret:\n", + " print(\"Error compiling header file \", generatedHeaderFile)\n", + " exit()\n", + "session = ROOT.TMVA_SOFIE_LSTMtestWithBias.Session()\n", + "input_test = np.ones((1,4), dtype = 'float32')\n", + "result = session.infer(input_test)\n", + "keras_model = keras.models.load_model(modelFile)\n", + "keras_model.load_weights(modelFile)\n", + "print(\"fraction of equal elements in the results vector = {}%\".format(100*accuracy)) " + ] + }, + { + "cell_type": "code", + "execution_count": 39, + "id": "257eb151", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1\n", + "['Sigmoid', 'Tanh', 'Tanh']\n", + "units = 3\n", + "[[ 0.19947463 0.09613985 0.51020825 0.40017605 0.61083114 -0.6033211\n", + " -0.24632642 0.02559096 -0.16021916 -0.15469247 -0.41483444 0.28665793]\n", + " [ 0.05244327 0.22595686 -0.52477694 0.5990974 0.32021672 0.3718195\n", + " 0.2150839 0.5866984 -0.24028108 -0.524948 -0.5695894 -0.25812244]]\n", + "units = 3\n", + "[[-0.12887514 -0.15723127 -0.53975976 0.05767192 -0.26313722 -0.11784092\n", + " -0.40979493 0.32428595 0.49482974 0.02542116 -0.22231646 -0.11337657]\n", + " [ 0.46751258 0.00470898 0.23244767 0.29808924 -0.05700614 0.5897542\n", + " -0.33070362 0.01808098 0.13594328 -0.17507811 0.08917926 -0.34739476]\n", + " [-0.50239605 0.10933484 0.01776595 -0.06194825 0.16853844 0.14763957\n", + " -0.3424148 -0.70896864 0.21470068 -0.0947246 -0.01963194 -0.07713211]]\n", + "created RModel\n", + "Generating inference code for the Keras model from LSTMtest.h5 in the header LSTMtest.hxx\n", + "compiling SOFIE model BatchNormalizationtest\n", + "fraction of equal elements in the results vector = 100.0%\n", + "begin initializebegin input tensorsadded input tensorsfinished weight file\n", + "initialize operator N4TMVA12Experimental5SOFIE17ROperator_ReshapeIfEE\n", + "reshape output shape: { 1 , 2 , 2 }called intermidiate\n", + "initialize operator N4TMVA12Experimental5SOFIE14ROperator_LSTMIfEE\n", + "called intermidiatefinished operatorsinitilized" + ] + } + ], + "source": [ + "modelFile = \"LSTMtest.h5\"\n", + "rmodel = Keras_Parser_into_RModel(modelFile)\n", + "generatedHeaderFile = modelFile.replace(\".h5\",\".hxx\")\n", + "print(\"Generating inference code for the Keras model from \",modelFile,\"in the header \", generatedHeaderFile)\n", + "rmodel.Generate()\n", + "rmodel.OutputGenerated(generatedHeaderFile)\n", + "print(\"compiling SOFIE model \", modelName)\n", + "ret = ROOT.gInterpreter.Declare('#include \"' + generatedHeaderFile + '\"')\n", + "if not ret:\n", + " print(\"Error compiling header file \", generatedHeaderFile)\n", + " exit()\n", + "session = ROOT.TMVA_SOFIE_LSTMtest.Session()\n", + "input_test = np.ones((1,4), dtype = 'float32')\n", + "result = session.infer(input_test)\n", + "keras_model = keras.models.load_model(modelFile)\n", + "keras_model.load_weights(modelFile)\n", + "print(\"fraction of equal elements in the results vector = {}%\".format(100*accuracy)) " + ] + }, + { + "cell_type": "code", + "execution_count": 40, + "id": "bfa7aff2", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1\n", + "created RModel\n", + "Generating inference code for the Keras model from SimpleRNNtestWithBias.h5 in the header SimpleRNNtestWithBias.hxx\n", + "compiling SOFIE model BatchNormalizationtest\n", + "fraction of equal elements in the results vector = 100.0%\n", + "begin initializebegin input tensorsadded input tensorsfinished weight file\n", + "initialize operator N4TMVA12Experimental5SOFIE17ROperator_ReshapeIfEE\n", + "reshape output shape: { 1 , 2 , 2 }called intermidiate\n", + "initialize operator N4TMVA12Experimental5SOFIE13ROperator_RNNIfEE\n", + "1\t1\n", + "1\t1\n", + "0\n", + "2\n", + "called intermidiatefinished operatorsinitilized" + ] + } + ], + "source": [ + "modelFile = \"SimpleRNNtestWithBias.h5\"\n", + "rmodel = Keras_Parser_into_RModel(modelFile)\n", + "generatedHeaderFile = modelFile.replace(\".h5\",\".hxx\")\n", + "print(\"Generating inference code for the Keras model from \",modelFile,\"in the header \", generatedHeaderFile)\n", + "rmodel.Generate()\n", + "rmodel.OutputGenerated(generatedHeaderFile)\n", + "print(\"compiling SOFIE model \", modelName)\n", + "ret = ROOT.gInterpreter.Declare('#include \"' + generatedHeaderFile + '\"')\n", + "if not ret:\n", + " print(\"Error compiling header file \", generatedHeaderFile)\n", + " exit()\n", + "session = ROOT.TMVA_SOFIE_SimpleRNNtestWithBias.Session()\n", + "input_test = np.ones((1,4), dtype = 'float32')\n", + "result = session.infer(input_test)\n", + "keras_model = keras.models.load_model(modelFile)\n", + "keras_model.load_weights(modelFile)\n", + "print(\"fraction of equal elements in the results vector = {}%\".format(100*accuracy)) " + ] + }, + { + "cell_type": "code", + "execution_count": 41, + "id": "79431739", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1\n", + "created RModel\n", + "Generating inference code for the Keras model from SimpleRNNtest.h5 in the header SimpleRNNtest.hxx\n", + "compiling SOFIE model BatchNormalizationtest\n", + "fraction of equal elements in the results vector = 100.0%\n", + "begin initializebegin input tensorsadded input tensorsfinished weight file\n", + "initialize operator N4TMVA12Experimental5SOFIE17ROperator_ReshapeIfEE\n", + "reshape output shape: { 1 , 2 , 2 }called intermidiate\n", + "initialize operator N4TMVA12Experimental5SOFIE13ROperator_RNNIfEE\n", + "0\t0\n", + "0\t0\n", + "0\n", + "2\n", + "called intermidiatefinished operatorsinitilized" + ] + } + ], + "source": [ + "modelFile = \"SimpleRNNtest.h5\"\n", + "rmodel = Keras_Parser_into_RModel(modelFile)\n", + "generatedHeaderFile = modelFile.replace(\".h5\",\".hxx\")\n", + "print(\"Generating inference code for the Keras model from \",modelFile,\"in the header \", generatedHeaderFile)\n", + "rmodel.Generate()\n", + "rmodel.OutputGenerated(generatedHeaderFile)\n", + "print(\"compiling SOFIE model \", modelName)\n", + "ret = ROOT.gInterpreter.Declare('#include \"' + generatedHeaderFile + '\"')\n", + "if not ret:\n", + " print(\"Error compiling header file \", generatedHeaderFile)\n", + " exit()\n", + "session = ROOT.TMVA_SOFIE_SimpleRNNtest.Session()\n", + "input_test = np.ones((1,4), dtype = 'float32')\n", + "result = session.infer(input_test)\n", + "keras_model = keras.models.load_model(modelFile)\n", + "keras_model.load_weights(modelFile)\n", + "print(\"fraction of equal elements in the results vector = {}%\".format(100*accuracy)) " + ] + }, + { + "cell_type": "code", + "execution_count": 42, + "id": "b7537bad", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "'\\nmodelFile = \"Swishtest.h5\"\\nrmodel = Keras_Parser_into_RModel(modelFile)\\ngeneratedHeaderFile = modelFile.replace(\".h5\",\".hxx\")\\nprint(\"Generating inference code for the Keras model from \",modelFile,\"in the header \", generatedHeaderFile)\\nrmodel.Generate()\\nrmodel.OutputGenerated(generatedHeaderFile)\\nmodelName = modelFile.replace(\".h5\",\"\")\\nprint(\"compiling SOFIE model \", modelName)\\nret = ROOT.gInterpreter.Declare(\\'#include \"\\' + generatedHeaderFile + \\'\"\\')\\nif not ret:\\n print(\"Error compiling header file \", generatedHeaderFile)\\n exit()\\nsession = ROOT.TMVA_SOFIE_Swishtest.Session()\\ninput_test = np.ones((1,7), dtype = \\'float32\\')\\nresult = session.infer(input_test)\\nkeras_model = keras.models.load_model(modelFile)\\nkeras_model.load_weights(modelFile)\\nkeras_result = keras_model(input_test)\\n#We lower the precision because keras provides slightly better precision\\naccuracy = np.mean(np.asarray(result).astype(\\'float16\\') == np.asarray(keras_result).astype(\\'float16\\'))\\nprint(\"fraction of equal elements in the results vector = {}%\".format(100*accuracy)) \\n'" + ] + }, + "execution_count": 42, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "\"\"\"\n", + "modelFile = \"Swishtest.h5\"\n", + "rmodel = Keras_Parser_into_RModel(modelFile)\n", + "generatedHeaderFile = modelFile.replace(\".h5\",\".hxx\")\n", + "print(\"Generating inference code for the Keras model from \",modelFile,\"in the header \", generatedHeaderFile)\n", + "rmodel.Generate()\n", + "rmodel.OutputGenerated(generatedHeaderFile)\n", + "modelName = modelFile.replace(\".h5\",\"\")\n", + "print(\"compiling SOFIE model \", modelName)\n", + "ret = ROOT.gInterpreter.Declare('#include \"' + generatedHeaderFile + '\"')\n", + "if not ret:\n", + " print(\"Error compiling header file \", generatedHeaderFile)\n", + " exit()\n", + "session = ROOT.TMVA_SOFIE_Swishtest.Session()\n", + "input_test = np.ones((1,7), dtype = 'float32')\n", + "result = session.infer(input_test)\n", + "keras_model = keras.models.load_model(modelFile)\n", + "keras_model.load_weights(modelFile)\n", + "keras_result = keras_model(input_test)\n", + "#We lower the precision because keras provides slightly better precision\n", + "accuracy = np.mean(np.asarray(result).astype('float16') == np.asarray(keras_result).astype('float16'))\n", + "print(\"fraction of equal elements in the results vector = {}%\".format(100*accuracy)) \n", + "\"\"\"" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.16" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +}