From f14d02fe9d5639830198db05401c0e53a9a43d1e Mon Sep 17 00:00:00 2001 From: changliuliu Date: Sun, 3 Nov 2019 16:12:36 -0500 Subject: [PATCH 01/66] add implementation of neurify --- src/NeuralVerification.jl | 3 +- src/adversarial/neurify.jl | 167 +++++++++++++++++++++++++++++++++++++ src/adversarial/reluVal.jl | 22 ++--- src/utils/util.jl | 8 +- 4 files changed, 185 insertions(+), 15 deletions(-) create mode 100644 src/adversarial/neurify.jl diff --git a/src/NeuralVerification.jl b/src/NeuralVerification.jl index aab69173..9aba8880 100644 --- a/src/NeuralVerification.jl +++ b/src/NeuralVerification.jl @@ -81,10 +81,11 @@ include("satisfiability/sherlock.jl") include("satisfiability/reluplex.jl") export BaB, Planet, Sherlock, Reluplex +include("adversarial/neurify.jl") include("adversarial/reluVal.jl") include("adversarial/fastLin.jl") include("adversarial/fastLip.jl") include("adversarial/dlv.jl") -export ReluVal, FastLin, FastLip, DLV +export ReluVal, Neurify, FastLin, FastLip, DLV end diff --git a/src/adversarial/neurify.jl b/src/adversarial/neurify.jl new file mode 100644 index 00000000..50fc1738 --- /dev/null +++ b/src/adversarial/neurify.jl @@ -0,0 +1,167 @@ +""" + Neurify(max_iter::Int64) + +Neurify combines symbolic reachability analysis with iterative interval refinement to minimize over-approximation of the reachable set. + +# Problem requirement +1. Network: any depth, ReLU activation +2. Input: hyperrectangle +3. Output: AbstractPolytope + +# Return +`CounterExampleResult` or `ReachabilityResult` + +# Method +Symbolic reachability analysis and iterative interval refinement (search). +- `max_iter` default `10`. + +# Property +Sound but not complete. + +# Reference + +""" +@with_kw struct Neurify + max_iter::Int64 = 10 + tree_search::Symbol = :DFS # only :DFS/:BFS allowed? If so, we should assert this. +end + +struct SymbolicInterval{F<:AbstractPolytope} + Low::Matrix{Float64} + Up::Matrix{Float64} + interval::F +end + +SymbolicInterval(x::Matrix{Float64}, y::Matrix{Float64}) = SymbolicInterval(x, y, Hyperrectangle([0],[0])) + +# Data to be passed during forward_layer +struct SymbolicIntervalGradient + sym::SymbolicInterval + LΛ::Vector{Vector{Float64}} + UΛ::Vector{Vector{Float64}} +end + +function solve(solver::Neurify, problem::Problem) + reach = forward_network(solver, problem.network, problem.input) + result = check_inclusion(reach.sym, problem.output, problem.network) + result.status == :unknown || return result + reach_list = SymbolicIntervalMask[reach] + for i in 2:solver.max_iter + println(i) + length(reach_list) > 0 || return BasicResult(:holds) + reach = pick_out!(reach_list, solver.tree_search) + intervals = constraint_refinement(problem.network, reach) + for interval in intervals + reach = forward_network(solver, problem.network, interval) + result = check_inclusion(reach.sym, problem.output, problem.network) + result.status == :violated && return result + result.status == :holds || (push!(reach_list, reach)) + end + end + return BasicResult(:unknown) +end + +function symbol_to_concrete(reach::SymbolicInterval{Hyperrectangle}) + n_output = size(reach.Low, 1) + vertices = tovrep(reach.interval) + new_v_up = vertices[:] + new_v_low = vectices[:] + for (i, v) in enumerate(vertices) + new_v_1[i] = reach.Low[:, 1:end-1] * vertices + reach.Low[:, end] + new_v_2[i] = reach.Up[:, 1:end-1] * vertices + reach.Up[:, end] + end + return convex_hull(new_v_1, new_v_2) +end + +function constraint_refinement(nnet::Network, reach::SymbolicIntervalGradient) + i, j, gradient = get_nodewise_gradient(problem.network, reach.LΛ, reach.UΛ) + # We can generate four more constraints + # Symbolic representation of node i j is Low[i][j,:] and Up[i][j,:] + C, d = tosimplehrep(reach.sym.interaval) + l_sym = Low[i][j, 1:end-1] + l_off = Low[i][j, end] + u_sym = Up[i][j, 1:end-1] + u_off = Up[i][j, end] + intervals = Vector{HPolytope}(4) + intervals[1] = HPolytope([C; l_sym; u_sym], [d; -l_off; -u_off]) + intervals[2] = HPolytope([C; l_sym; -u_sym], [d; -l_off; u_off]) + intervals[3] = HPolytope([C; -l_sym; u_sym], [d; l_off; -u_off]) + intervals[4] = HPolytope([C; -l_sym; -u_sym], [d; l_off; u_off]) + return intervals +end + +function get_nodewise_gradient(nnet::Network, LΛ::Vector{Vector{Float64}}, UΛ::Vector{Vector{Float64}}) + n_output = size(nnet.layers[end].weights, 1) + LG = Matrix(1.0I, n_output, n_output) + UG = Matrix(1.0I, n_output, n_output) + max_tuple = (0, 0, 0.0) + for (i, layer) in enumerate(reverse(nnet.layers)) + LG_hat = max.(LG, 0.0) * Diagonal(LΛ[i]) + min.(LG, 0.0) * Diagonal(UΛ[i]) + UG_hat = min.(UG, 0.0) * Diagonal(LΛ[i]) + max.(UG, 0.0) * Diagonal(UΛ[i]) + LG, UG = interval_map_right(layer.weights, LG_hat, UG_hat) + for j in length(layer.bias) + if LΛ[i][j] ∈ (0.0, 1.0) && UΛ[i][j] ∈ (0.0, 1.0) + max_gradient = max(abs(LG[j]), abs(UG[j])) + if max_gradient > max_tuple[3] + max_tuple = (i, j, max_gradient) + end + end + end + end + return max_tuple +end + +# Symbolic forward_linear for the first layer +function forward_linear(input::AbstractPolytope, layer::Layer) + (W, b) = (layer.weights, layer.bias) + sym = SymbolicInterval(hcat(W, b), hcat(W, b), input) + LΛ = Vector{Vector{Int64}}(undef, 0) + UΛ = Vector{Vector{Int64}}(undef, 0) + return SymbolicIntervalMask(sym, LΛ, UΛ) +end + +# Symbolic forward_linear +function forward_linear(input::SymbolicIntervalGradient, layer::Layer) + (W, b) = (layer.weights, layer.bias) + output_Up = max.(W, 0) * input.sym.Up + min.(W, 0) * input.sym.Low + output_Low = max.(W, 0) * input.sym.Low + min.(W, 0) * input.sym.Up + output_Up[:, end] += b + output_Low[:, end] += b + sym = SymbolicInterval(output_Low, output_Up, input.sym.interval) + return SymbolicIntervalMask(sym, input.LΛ, input.UΛ) +end + +# Symbolic forward_act +function forward_act(input::SymbolicIntervalGradient, layer::Layer{ReLU}) + n_node, n_input = size(input.sym.Up) + output_Low, output_Up = input.sym.Low[:, :], input.sym.Up[:, :] + mask_lower, mask_upper = zeros(Int, n_node), ones(Int, n_node) + for i in 1:n_node + if upper_bound(input.sym.Up[i, :], input.sym.interval) <= 0.0 + # Update to zero + mask_lower[i], mask_upper[i] = 0, 0 + output_Up[i, :] = zeros(n_input) + output_Low[i, :] = zeros(n_input) + elseif lower_bound(input.sym.Low[i, :], input.sym.interval) >= 0 + # Keep dependency + mask_lower[i], mask_upper[i] = 1, 1 + else + # Symbolic linear relaxation + # This is different from ReluVal + up_up = upper_bound(input.sym.Up[i, :], input.sym.interval) + up_low = lower_bound(input.sym.Up[i, :], input.sym.interval) + low_up = upper_bound(input.sym.Low[i, :], input.sym.interval) + low_low = lower_bound(input.sym.Low[i, :], input.sym.interval) + up_slop = up_up / (up_up - up_low) + low_slop = low_up / (low_up - low_low) + output_Low[i, :] = low_slop * output_Low[i, :] + output_Up[i, end] -= up_low + output_Up[i, :] = up_slop * output_Up[i, :] + mask_lower[i], mask_upper[i] = low_slop, up_slop + end + end + sym = SymbolicInterval(output_Low, output_Up, input.sym.interval) + LΛ = push!(input.LΛ, mask_lower) + UΛ = push!(input.UΛ, mask_upper) + return SymbolicIntervalMask(sym, LΛ, UΛ) +end \ No newline at end of file diff --git a/src/adversarial/reluVal.jl b/src/adversarial/reluVal.jl index ab579a09..51e867dc 100644 --- a/src/adversarial/reluVal.jl +++ b/src/adversarial/reluVal.jl @@ -31,14 +31,6 @@ Sound but not complete. tree_search::Symbol = :DFS # only :DFS/:BFS allowed? If so, we should assert this. end -struct SymbolicInterval - Low::Matrix{Float64} - Up::Matrix{Float64} - interval::Hyperrectangle -end - -SymbolicInterval(x::Matrix{Float64}, y::Matrix{Float64}) = SymbolicInterval(x, y, Hyperrectangle([0],[0])) - # Data to be passed during forward_layer struct SymbolicIntervalMask sym::SymbolicInterval @@ -54,9 +46,7 @@ function solve(solver::ReluVal, problem::Problem) for i in 2:solver.max_iter length(reach_list) > 0 || return BasicResult(:holds) reach = pick_out!(reach_list, solver.tree_search) - LG, UG = get_gradient(problem.network, reach.LΛ, reach.UΛ) - feature = get_smear_index(problem.network, reach.sym.interval, LG, UG) - intervals = split_interval(reach.sym.interval, feature) + intervals = interval_refinement(problem.network, reach) for interval in intervals reach = forward_network(solver, problem.network, interval) result = check_inclusion(reach.sym, problem.output, problem.network) @@ -67,6 +57,12 @@ function solve(solver::ReluVal, problem::Problem) return BasicResult(:unknown) end +function interval_refinement(nnet::Network, reach::SymbolicIntervalMask) + LG, UG = get_gradient(nnet, reach.LΛ, reach.UΛ) + feature = get_smear_index(nnet, reach.sym.interval, LG, UG) + return split_interval(reach.sym.interval, feature) +end + function pick_out!(reach_list, tree_search) if tree_search == :BFS reach = reach_list[1] @@ -103,7 +99,7 @@ function check_inclusion(reach::SymbolicInterval, output::AbstractPolytope, nnet return BasicResult(:unknown) end -function forward_layer(solver::ReluVal, layer::Layer, input::Union{SymbolicIntervalMask, Hyperrectangle}) +function forward_layer(solver::Union{ReluVal, Neurify}, layer::Layer, input) return forward_act(forward_linear(input, layer), layer) end @@ -158,7 +154,7 @@ function forward_act(input::SymbolicIntervalMask, layer::Layer{ReLU}) end # Symbolic forward_act -function forward_act(input::SymbolicIntervalMask, layer::Layer{Id}) +function forward_act(input::Union{SymbolicIntervalMask, SymbolicIntervalGradient}, layer::Layer{Id}) sym = input.sym n_node = size(input.sym.Up, 1) LΛ = push!(input.LΛ, ones(Int, n_node)) diff --git a/src/utils/util.jl b/src/utils/util.jl index fcc8acc0..9698b14a 100644 --- a/src/utils/util.jl +++ b/src/utils/util.jl @@ -247,7 +247,7 @@ end Simple linear mapping on intervals Inputs: -- `W::Matrix{N}`: linear mapping +- `W::Matrix{N}`: linear mapping (left) - `l::Vector{N}`: lower bound - `u::Vector{N}`: upper bound Outputs: @@ -259,6 +259,12 @@ function interval_map(W::Matrix{N}, l::AbstractVecOrMat, u::AbstractVecOrMat) wh return (l_new, u_new) end +function interval_map_right(W::Matrix{N}, l::AbstractVecOrMat, u::AbstractVecOrMat) where N + l_new = l * max.(W, zero(N)) + u * min.(W, zero(N)) + u_new = u * max.(W, zero(N)) + l * min.(W, zero(N)) + return (l_new, u_new) +end + """ get_bounds(problem::Problem) get_bounds(nnet::Network, input::Hyperrectangle) From 6c6f38cca51893c4ae2c95d6daee8ac36fb98491 Mon Sep 17 00:00:00 2001 From: changliuliu Date: Sun, 3 Nov 2019 16:38:10 -0500 Subject: [PATCH 02/66] fix symbol to concrete --- src/adversarial/neurify.jl | 17 +++++++++-------- src/adversarial/reluVal.jl | 2 +- 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/src/adversarial/neurify.jl b/src/adversarial/neurify.jl index 50fc1738..2aceac3e 100644 --- a/src/adversarial/neurify.jl +++ b/src/adversarial/neurify.jl @@ -47,7 +47,6 @@ function solve(solver::Neurify, problem::Problem) result.status == :unknown || return result reach_list = SymbolicIntervalMask[reach] for i in 2:solver.max_iter - println(i) length(reach_list) > 0 || return BasicResult(:holds) reach = pick_out!(reach_list, solver.tree_search) intervals = constraint_refinement(problem.network, reach) @@ -61,16 +60,18 @@ function solve(solver::Neurify, problem::Problem) return BasicResult(:unknown) end -function symbol_to_concrete(reach::SymbolicInterval{Hyperrectangle}) +function symbol_to_concrete(reach::SymbolicInterval{HPolytope{N}}) where N n_output = size(reach.Low, 1) - vertices = tovrep(reach.interval) - new_v_up = vertices[:] - new_v_low = vectices[:] + vertices = tovrep(reach.interval).vertices + new_v_up = vertices + new_v_low = vertices for (i, v) in enumerate(vertices) - new_v_1[i] = reach.Low[:, 1:end-1] * vertices + reach.Low[:, end] - new_v_2[i] = reach.Up[:, 1:end-1] * vertices + reach.Up[:, end] + new_v_up[i] = reach.Low[:, 1:end-1] * v + reach.Low[:, end] + new_v_low[i] = reach.Up[:, 1:end-1] * v + reach.Up[:, end] end - return convex_hull(new_v_1, new_v_2) + V_up = VPolytope(new_v_up) + V_low = VPolytope(new_v_low) + return convex_hull([V_up, V_low]) end function constraint_refinement(nnet::Network, reach::SymbolicIntervalGradient) diff --git a/src/adversarial/reluVal.jl b/src/adversarial/reluVal.jl index 51e867dc..d39d2b12 100644 --- a/src/adversarial/reluVal.jl +++ b/src/adversarial/reluVal.jl @@ -75,7 +75,7 @@ function pick_out!(reach_list, tree_search) return reach end -function symbol_to_concrete(reach::SymbolicInterval) +function symbol_to_concrete(reach::SymbolicInterval{Hyperrectangle{N}}) where N n_output = size(reach.Low, 1) upper = zeros(n_output) lower = zeros(n_output) From 22892ea9af308532abd8f585238f8bc5814638c6 Mon Sep 17 00:00:00 2001 From: Christopher Lazarus Date: Sun, 3 Nov 2019 18:28:34 -0800 Subject: [PATCH 03/66] adding sanity tests for Neurify --- test/identity_network.jl | 2 +- test/inactive_relus.jl | 2 +- test/relu_network.jl | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/test/identity_network.jl b/test/identity_network.jl index 96ef496e..d4bbcf5f 100644 --- a/test/identity_network.jl +++ b/test/identity_network.jl @@ -55,7 +55,7 @@ problem_holds = Problem(small_nnet, in_hyper, out_superset) problem_violated = Problem(small_nnet, in_hyper, out_overlapping) - for solver in [ReluVal(max_iter = 10), DLV(), Sherlock(ϵ = 0.5), BaB()] + for solver in [ReluVal(max_iter = 10), DLV(), Sherlock(ϵ = 0.5), BaB(), Neurify()] holds = solve(solver, problem_holds) violated = solve(solver, problem_violated) diff --git a/test/inactive_relus.jl b/test/inactive_relus.jl index 07eae279..089436b2 100644 --- a/test/inactive_relus.jl +++ b/test/inactive_relus.jl @@ -55,7 +55,7 @@ problem_holds = Problem(small_nnet, in_hyper, out_superset) problem_violated = Problem(small_nnet, in_hyper, out_overlapping) - for solver in [ReluVal(max_iter = 10), DLV(), Sherlock(ϵ = 0.5), BaB()] + for solver in [ReluVal(max_iter = 10), DLV(), Sherlock(ϵ = 0.5), BaB(), Neurify()] holds = solve(solver, problem_holds) violated = solve(solver, problem_violated) diff --git a/test/relu_network.jl b/test/relu_network.jl index 720215dc..3e0522ac 100644 --- a/test/relu_network.jl +++ b/test/relu_network.jl @@ -62,7 +62,7 @@ problem_holds = Problem(small_nnet, in_hyper, out_superset) problem_violated = Problem(small_nnet, in_hyper, out_overlapping) - for solver in [ReluVal(max_iter = 10), DLV(), Sherlock(ϵ = 0.5), BaB()] + for solver in [ReluVal(max_iter = 10), DLV(), Sherlock(ϵ = 0.5), BaB(), Neurify()] holds = solve(solver, problem_holds) violated = solve(solver, problem_violated) From dbfc24e1a7ba42e4816d7d78af3fe1b17986ffc9 Mon Sep 17 00:00:00 2001 From: Changliu Date: Mon, 4 Nov 2019 16:54:03 -0500 Subject: [PATCH 04/66] debug neurify --- src/adversarial/neurify.jl | 67 ++++++++++++++++++++++++++------------ src/adversarial/reluVal.jl | 4 +-- 2 files changed, 48 insertions(+), 23 deletions(-) diff --git a/src/adversarial/neurify.jl b/src/adversarial/neurify.jl index 2aceac3e..3af28b20 100644 --- a/src/adversarial/neurify.jl +++ b/src/adversarial/neurify.jl @@ -5,7 +5,7 @@ Neurify combines symbolic reachability analysis with iterative interval refineme # Problem requirement 1. Network: any depth, ReLU activation -2. Input: hyperrectangle +2. Input: AbstractPolytope 3. Output: AbstractPolytope # Return @@ -45,11 +45,11 @@ function solve(solver::Neurify, problem::Problem) reach = forward_network(solver, problem.network, problem.input) result = check_inclusion(reach.sym, problem.output, problem.network) result.status == :unknown || return result - reach_list = SymbolicIntervalMask[reach] + reach_list = SymbolicIntervalGradient[reach] for i in 2:solver.max_iter length(reach_list) > 0 || return BasicResult(:holds) reach = pick_out!(reach_list, solver.tree_search) - intervals = constraint_refinement(problem.network, reach) + intervals = constraint_refinement(solver, problem.network, reach) for interval in intervals reach = forward_network(solver, problem.network, interval) result = check_inclusion(reach.sym, problem.output, problem.network) @@ -74,16 +74,21 @@ function symbol_to_concrete(reach::SymbolicInterval{HPolytope{N}}) where N return convex_hull([V_up, V_low]) end -function constraint_refinement(nnet::Network, reach::SymbolicIntervalGradient) - i, j, gradient = get_nodewise_gradient(problem.network, reach.LΛ, reach.UΛ) +function constraint_refinement(solver::Neurify, nnet::Network, reach::SymbolicIntervalGradient) + i, j, gradient = get_nodewise_gradient(nnet, reach.LΛ, reach.UΛ) # We can generate four more constraints # Symbolic representation of node i j is Low[i][j,:] and Up[i][j,:] - C, d = tosimplehrep(reach.sym.interaval) - l_sym = Low[i][j, 1:end-1] - l_off = Low[i][j, end] - u_sym = Up[i][j, 1:end-1] - u_off = Up[i][j, end] - intervals = Vector{HPolytope}(4) + println("(",i,",",j,")") + nnet_new = Network(nnet.layers[1:i]) + reach_new = forward_network(solver, nnet_new, reach.sym.interval) + C, d = tosimplehrep(reach.sym.interval) + println("lower bound:", reach_new.sym.Low) + println("upper bound:", reach_new.sym.Up) + l_sym = reach_new.sym.Low[j, 1:end-1] + l_off = reach_new.sym.Low[j, end] + u_sym = reach_new.sym.Up[j, 1:end-1] + u_off = reach_new.sym.Up[j, end] + intervals = Vector{HPolytope{Float64}}(undef, 4) intervals[1] = HPolytope([C; l_sym; u_sym], [d; -l_off; -u_off]) intervals[2] = HPolytope([C; l_sym; -u_sym], [d; -l_off; u_off]) intervals[3] = HPolytope([C; -l_sym; u_sym], [d; l_off; -u_off]) @@ -93,14 +98,15 @@ end function get_nodewise_gradient(nnet::Network, LΛ::Vector{Vector{Float64}}, UΛ::Vector{Vector{Float64}}) n_output = size(nnet.layers[end].weights, 1) + n_length = length(nnet.layers) + println("number of layers: ", n_length) + println(n_output) LG = Matrix(1.0I, n_output, n_output) UG = Matrix(1.0I, n_output, n_output) max_tuple = (0, 0, 0.0) - for (i, layer) in enumerate(reverse(nnet.layers)) - LG_hat = max.(LG, 0.0) * Diagonal(LΛ[i]) + min.(LG, 0.0) * Diagonal(UΛ[i]) - UG_hat = min.(UG, 0.0) * Diagonal(LΛ[i]) + max.(UG, 0.0) * Diagonal(UΛ[i]) - LG, UG = interval_map_right(layer.weights, LG_hat, UG_hat) - for j in length(layer.bias) + for (k, layer) in enumerate(reverse(nnet.layers)) + i = n_length - k + 1 + for j in size(layer.bias) if LΛ[i][j] ∈ (0.0, 1.0) && UΛ[i][j] ∈ (0.0, 1.0) max_gradient = max(abs(LG[j]), abs(UG[j])) if max_gradient > max_tuple[3] @@ -108,28 +114,39 @@ function get_nodewise_gradient(nnet::Network, LΛ::Vector{Vector{Float64}}, UΛ: end end end + i >= 1 || break + LG_hat = max.(LG, 0.0) * Diagonal(LΛ[i]) + min.(LG, 0.0) * Diagonal(UΛ[i]) + UG_hat = min.(UG, 0.0) * Diagonal(LΛ[i]) + max.(UG, 0.0) * Diagonal(UΛ[i]) + LG, UG = interval_map_right(layer.weights, LG_hat, UG_hat) + println("layer ", i, ":", layer.weights, ",", layer.bias) + println(LG_hat, ",", UG_hat) + println(LG, ",", UG) end return max_tuple end +function forward_layer(solver::Neurify, layer::Layer, input) + return forward_act(forward_linear(solver, input, layer), layer) +end + # Symbolic forward_linear for the first layer -function forward_linear(input::AbstractPolytope, layer::Layer) +function forward_linear(solver::Neurify, input::AbstractPolytope, layer::Layer) (W, b) = (layer.weights, layer.bias) sym = SymbolicInterval(hcat(W, b), hcat(W, b), input) LΛ = Vector{Vector{Int64}}(undef, 0) UΛ = Vector{Vector{Int64}}(undef, 0) - return SymbolicIntervalMask(sym, LΛ, UΛ) + return SymbolicIntervalGradient(sym, LΛ, UΛ) end # Symbolic forward_linear -function forward_linear(input::SymbolicIntervalGradient, layer::Layer) +function forward_linear(solver::Neurify, input::SymbolicIntervalGradient, layer::Layer) (W, b) = (layer.weights, layer.bias) output_Up = max.(W, 0) * input.sym.Up + min.(W, 0) * input.sym.Low output_Low = max.(W, 0) * input.sym.Low + min.(W, 0) * input.sym.Up output_Up[:, end] += b output_Low[:, end] += b sym = SymbolicInterval(output_Low, output_Up, input.sym.interval) - return SymbolicIntervalMask(sym, input.LΛ, input.UΛ) + return SymbolicIntervalGradient(sym, input.LΛ, input.UΛ) end # Symbolic forward_act @@ -164,5 +181,13 @@ function forward_act(input::SymbolicIntervalGradient, layer::Layer{ReLU}) sym = SymbolicInterval(output_Low, output_Up, input.sym.interval) LΛ = push!(input.LΛ, mask_lower) UΛ = push!(input.UΛ, mask_upper) - return SymbolicIntervalMask(sym, LΛ, UΛ) + return SymbolicIntervalGradient(sym, LΛ, UΛ) +end + +function forward_act(input::SymbolicIntervalGradient, layer::Layer{Id}) + sym = input.sym + n_node = size(input.sym.Up, 1) + LΛ = push!(input.LΛ, ones(Float64, n_node)) + UΛ = push!(input.UΛ, ones(Float64, n_node)) + return SymbolicIntervalGradient(sym, LΛ, UΛ) end \ No newline at end of file diff --git a/src/adversarial/reluVal.jl b/src/adversarial/reluVal.jl index d39d2b12..9b1e7e4c 100644 --- a/src/adversarial/reluVal.jl +++ b/src/adversarial/reluVal.jl @@ -99,7 +99,7 @@ function check_inclusion(reach::SymbolicInterval, output::AbstractPolytope, nnet return BasicResult(:unknown) end -function forward_layer(solver::Union{ReluVal, Neurify}, layer::Layer, input) +function forward_layer(solver::ReluVal, layer::Layer, input) return forward_act(forward_linear(input, layer), layer) end @@ -154,7 +154,7 @@ function forward_act(input::SymbolicIntervalMask, layer::Layer{ReLU}) end # Symbolic forward_act -function forward_act(input::Union{SymbolicIntervalMask, SymbolicIntervalGradient}, layer::Layer{Id}) +function forward_act(input::SymbolicIntervalMask, layer::Layer{Id}) sym = input.sym n_node = size(input.sym.Up, 1) LΛ = push!(input.LΛ, ones(Int, n_node)) From 5ff45a1a52124b6e0e4697fd59d43a39942e2275 Mon Sep 17 00:00:00 2001 From: changliuliu Date: Sun, 10 Nov 2019 18:02:56 -0500 Subject: [PATCH 05/66] fix neurify --- src/adversarial/neurify.jl | 57 ++++++++++++++++++++++++++++++-------- src/adversarial/reluVal.jl | 2 +- 2 files changed, 46 insertions(+), 13 deletions(-) diff --git a/src/adversarial/neurify.jl b/src/adversarial/neurify.jl index 3af28b20..a5aa9362 100644 --- a/src/adversarial/neurify.jl +++ b/src/adversarial/neurify.jl @@ -1,7 +1,7 @@ """ - Neurify(max_iter::Int64) + Neurify(max_iter::Int64, tree_search::Symbol) -Neurify combines symbolic reachability analysis with iterative interval refinement to minimize over-approximation of the reachable set. +Neurify combines symbolic reachability analysis with constraint refinement to minimize over-approximation of the reachable set. # Problem requirement 1. Network: any depth, ReLU activation @@ -19,7 +19,10 @@ Symbolic reachability analysis and iterative interval refinement (search). Sound but not complete. # Reference - +[S. Wang, K. Pei, J. Whitehouse, J. Yang, and S. Jana, +"Efficient Formal Safety Analysis of Neural Networks," +*CoRR*, vol. abs/1809.08098, 2018. arXiv: 1809.08098.](https://arxiv.org/pdf/1809.08098.pdf) +[https://github.com/tcwangshiqi-columbia/Neurify](https://github.com/tcwangshiqi-columbia/Neurify) """ @with_kw struct Neurify max_iter::Int64 = 10 @@ -74,16 +77,33 @@ function symbol_to_concrete(reach::SymbolicInterval{HPolytope{N}}) where N return convex_hull([V_up, V_low]) end +function check_inclusion(reach::SymbolicInterval{HPolytope{N}}, output::AbstractPolytope, nnet::Network) where N + reachable = symbol_to_concrete(reach) + flag = true + for v in reachable.vertices + if ~∈(v, output) + flag = false + y = compute_output(nnet, v) + ∈(y, output) || return CounterExampleResult(:violated, v) + end + end + return ifelse(flag, BasicResult(:holds), BasicResult(:unknown)) +end + +function issubset(a::VPolytope{N}, b::AbstractPolytope{N}) where N + for v in a.vertices + v ∈ b || return false + end + return true +end + function constraint_refinement(solver::Neurify, nnet::Network, reach::SymbolicIntervalGradient) i, j, gradient = get_nodewise_gradient(nnet, reach.LΛ, reach.UΛ) # We can generate four more constraints # Symbolic representation of node i j is Low[i][j,:] and Up[i][j,:] - println("(",i,",",j,")") nnet_new = Network(nnet.layers[1:i]) reach_new = forward_network(solver, nnet_new, reach.sym.interval) C, d = tosimplehrep(reach.sym.interval) - println("lower bound:", reach_new.sym.Low) - println("upper bound:", reach_new.sym.Up) l_sym = reach_new.sym.Low[j, 1:end-1] l_off = reach_new.sym.Low[j, end] u_sym = reach_new.sym.Up[j, 1:end-1] @@ -99,8 +119,6 @@ end function get_nodewise_gradient(nnet::Network, LΛ::Vector{Vector{Float64}}, UΛ::Vector{Vector{Float64}}) n_output = size(nnet.layers[end].weights, 1) n_length = length(nnet.layers) - println("number of layers: ", n_length) - println(n_output) LG = Matrix(1.0I, n_output, n_output) UG = Matrix(1.0I, n_output, n_output) max_tuple = (0, 0, 0.0) @@ -118,9 +136,6 @@ function get_nodewise_gradient(nnet::Network, LΛ::Vector{Vector{Float64}}, UΛ: LG_hat = max.(LG, 0.0) * Diagonal(LΛ[i]) + min.(LG, 0.0) * Diagonal(UΛ[i]) UG_hat = min.(UG, 0.0) * Diagonal(LΛ[i]) + max.(UG, 0.0) * Diagonal(UΛ[i]) LG, UG = interval_map_right(layer.weights, LG_hat, UG_hat) - println("layer ", i, ":", layer.weights, ",", layer.bias) - println(LG_hat, ",", UG_hat) - println(LG, ",", UG) end return max_tuple end @@ -190,4 +205,22 @@ function forward_act(input::SymbolicIntervalGradient, layer::Layer{Id}) LΛ = push!(input.LΛ, ones(Float64, n_node)) UΛ = push!(input.UΛ, ones(Float64, n_node)) return SymbolicIntervalGradient(sym, LΛ, UΛ) -end \ No newline at end of file +end + +function upper_bound(map::Vector{Float64}, input::HPolytope) + vertices = tovrep(input).vertices + up = -Inf + for v in vertices + up = max(up, map'*[v;1.0]) + end + return up +end + +function lower_bound(map::Vector{Float64}, input::HPolytope) + vertices = tovrep(input).vertices + low = Inf + for v in vertices + low = min(low, map'*[v;1.0]) + end + return low +end diff --git a/src/adversarial/reluVal.jl b/src/adversarial/reluVal.jl index 9b1e7e4c..ed76d3cb 100644 --- a/src/adversarial/reluVal.jl +++ b/src/adversarial/reluVal.jl @@ -86,7 +86,7 @@ function symbol_to_concrete(reach::SymbolicInterval{Hyperrectangle{N}}) where N return Hyperrectangle(low = lower, high = upper) end -function check_inclusion(reach::SymbolicInterval, output::AbstractPolytope, nnet::Network) +function check_inclusion(reach::SymbolicInterval{Hyperrectangle{N}}, output::AbstractPolytope, nnet::Network) where N reachable = symbol_to_concrete(reach) issubset(reachable, output) && return BasicResult(:holds) # is_intersection_empty(reachable, output) && return BasicResult(:violated) From 761084b17e89824aeb657bb8512aa0d5435376c8 Mon Sep 17 00:00:00 2001 From: changliuliu Date: Sun, 10 Nov 2019 18:04:10 -0500 Subject: [PATCH 06/66] remove unnecessary function in neurify --- src/adversarial/neurify.jl | 7 ------- 1 file changed, 7 deletions(-) diff --git a/src/adversarial/neurify.jl b/src/adversarial/neurify.jl index a5aa9362..d6aa9efd 100644 --- a/src/adversarial/neurify.jl +++ b/src/adversarial/neurify.jl @@ -90,13 +90,6 @@ function check_inclusion(reach::SymbolicInterval{HPolytope{N}}, output::Abstract return ifelse(flag, BasicResult(:holds), BasicResult(:unknown)) end -function issubset(a::VPolytope{N}, b::AbstractPolytope{N}) where N - for v in a.vertices - v ∈ b || return false - end - return true -end - function constraint_refinement(solver::Neurify, nnet::Network, reach::SymbolicIntervalGradient) i, j, gradient = get_nodewise_gradient(nnet, reach.LΛ, reach.UΛ) # We can generate four more constraints From debaf5c96bacc6bdfdb5095b16f2f40ef777b81d Mon Sep 17 00:00:00 2001 From: Christopher Lazarus Date: Sat, 30 Nov 2019 15:47:23 -0800 Subject: [PATCH 07/66] restructuring test imports - easier to run each test file --- test/complements.jl | 15 +++++++++++++++ test/identity_network.jl | 15 +++++++++++++++ test/inactive_relus.jl | 15 +++++++++++++++ test/relu_network.jl | 15 +++++++++++++++ test/runtests.jl | 16 ---------------- 5 files changed, 60 insertions(+), 16 deletions(-) diff --git a/test/complements.jl b/test/complements.jl index e636e802..94cb36ae 100644 --- a/test/complements.jl +++ b/test/complements.jl @@ -1,3 +1,18 @@ +using NeuralVerification, LazySets, GLPKMathProgInterface +using Test + +import NeuralVerification: ReLU, Id + +macro no_error(ex) + quote + try $(esc(ex)) + true + catch e + @error(e) + false + end + end +end @testset "PolytopeComplements" begin diff --git a/test/identity_network.jl b/test/identity_network.jl index d4bbcf5f..4a8f01c1 100644 --- a/test/identity_network.jl +++ b/test/identity_network.jl @@ -1,3 +1,18 @@ +using NeuralVerification, LazySets, GLPKMathProgInterface +using Test + +import NeuralVerification: ReLU, Id + +macro no_error(ex) + quote + try $(esc(ex)) + true + catch e + @error(e) + false + end + end +end @testset "Id Last Layer" begin diff --git a/test/inactive_relus.jl b/test/inactive_relus.jl index 089436b2..40998dee 100644 --- a/test/inactive_relus.jl +++ b/test/inactive_relus.jl @@ -1,3 +1,18 @@ +using NeuralVerification, LazySets, GLPKMathProgInterface +using Test + +import NeuralVerification: ReLU, Id + +macro no_error(ex) + quote + try $(esc(ex)) + true + catch e + @error(e) + false + end + end +end @testset "ReLU Last Layer - Inactive" begin diff --git a/test/relu_network.jl b/test/relu_network.jl index 3e0522ac..58c12d3e 100644 --- a/test/relu_network.jl +++ b/test/relu_network.jl @@ -1,3 +1,18 @@ +using NeuralVerification, LazySets, GLPKMathProgInterface +using Test + +import NeuralVerification: ReLU, Id + +macro no_error(ex) + quote + try $(esc(ex)) + true + catch e + @error(e) + false + end + end +end @testset "ReLU Last Layer" begin diff --git a/test/runtests.jl b/test/runtests.jl index e026020e..3c63c760 100644 --- a/test/runtests.jl +++ b/test/runtests.jl @@ -1,19 +1,3 @@ -using NeuralVerification, LazySets, GLPKMathProgInterface -using Test - -import NeuralVerification: ReLU, Id - -macro no_error(ex) - quote - try $(esc(ex)) - true - catch e - @error(e) - false - end - end -end - include("identity_network.jl") include("relu_network.jl") include("inactive_relus.jl") From 4d5749d5a82e7c2223f01b0944cfdcee71a04bc1 Mon Sep 17 00:00:00 2001 From: wei-tianhao Date: Mon, 20 Apr 2020 00:30:29 -0400 Subject: [PATCH 08/66] fixed neurify, runtests.jl passed. --- src/NeuralVerification.jl | 3 +- src/adversarial/neurify.jl | 246 +++++++++++++++++++++++++++++++++++++ src/adversarial/reluVal.jl | 36 +++--- src/utils/util.jl | 6 + 4 files changed, 274 insertions(+), 17 deletions(-) create mode 100644 src/adversarial/neurify.jl diff --git a/src/NeuralVerification.jl b/src/NeuralVerification.jl index 795b1f50..62fb572b 100644 --- a/src/NeuralVerification.jl +++ b/src/NeuralVerification.jl @@ -83,10 +83,11 @@ export BaB, Sherlock, Reluplex include("satisfiability/planet.jl") export Planet +include("adversarial/neurify.jl") include("adversarial/reluVal.jl") include("adversarial/fastLin.jl") include("adversarial/fastLip.jl") include("adversarial/dlv.jl") -export ReluVal, FastLin, FastLip, DLV +export ReluVal, Neurify, FastLin, FastLip, DLV end diff --git a/src/adversarial/neurify.jl b/src/adversarial/neurify.jl new file mode 100644 index 00000000..6a2cbebe --- /dev/null +++ b/src/adversarial/neurify.jl @@ -0,0 +1,246 @@ +""" + Neurify(max_iter::Int64, tree_search::Symbol) + +Neurify combines symbolic reachability analysis with constraint refinement to minimize over-approximation of the reachable set. + +# Problem requirement +1. Network: any depth, ReLU activation +2. Input: AbstractPolytope +3. Output: AbstractPolytope + +# Return +`CounterExampleResult` or `ReachabilityResult` + +# Method +Symbolic reachability analysis and iterative interval refinement (search). +- `max_iter` default `10`. + +# Property +Sound but not complete. + +# Reference +[S. Wang, K. Pei, J. Whitehouse, J. Yang, and S. Jana, +"Efficient Formal Safety Analysis of Neural Networks," +*CoRR*, vol. abs/1809.08098, 2018. arXiv: 1809.08098.](https://arxiv.org/pdf/1809.08098.pdf) +[https://github.com/tcwangshiqi-columbia/Neurify](https://github.com/tcwangshiqi-columbia/Neurify) +""" + +@with_kw struct Neurify + max_iter::Int64 = 100 + tree_search::Symbol = :DFS # only :DFS/:BFS allowed? If so, we should assert this. +end + +struct SymbolicInterval{F<:AbstractPolytope} + Low::Matrix{Float64} + Up::Matrix{Float64} + interval::F +end + +SymbolicInterval(x::Matrix{Float64}, y::Matrix{Float64}) = SymbolicInterval(x, y, Hyperrectangle([0],[0])) + +# Data to be passed during forward_layer +struct SymbolicIntervalGradient + sym::SymbolicInterval + LΛ::Vector{Vector{Float64}} + UΛ::Vector{Vector{Float64}} +end + + +function solve(solver::Neurify, problem::Problem) + + reach = forward_network(solver, problem.network, problem.input) + result = check_inclusion(reach.sym, problem.output, problem.network) # This called the check_inclusion function in ReluVal, because the constraints are Hyperrectangle + + result.status == :unknown || return result + reach_list = SymbolicIntervalGradient[reach] + + for i in 2:solver.max_iter + if i % 10 == 0 + println("iter ",i) + end + length(reach_list) > 0 || return BasicResult(:holds) + reach = pick_out!(reach_list, solver.tree_search) + intervals = constraint_refinement(solver, problem.network, reach) + for interval in intervals + reach = forward_network(solver, problem.network, interval) + result = check_inclusion(reach.sym, problem.output, problem.network) + result.status == :violated && return result + result.status == :holds || (push!(reach_list, reach)) + end + end + return BasicResult(:unknown) +end + +function check_inclusion(reach::SymbolicInterval{HPolytope{N}}, output::AbstractPolytope, nnet::Network) where N + # The output constraint is in the form A*x < b + # We try to maximize output constraint to find a violated case, or to verify the inclusion, + # suppose the output is [1, 0, -1] * x < 2, Then we are maximizing reach.Up[1] * 1 + reach.Low[3] * (-1) + + + reach_lc = reach.interval.constraints + output_lc = output.constraints + + n = size(reach_lc, 1) + m = size(reach_lc[1].a, 1) + model =Model(with_optimizer(GLPK.Optimizer)) + @variable(model, x[1:m]) + @constraint(model, [i in 1:n], reach_lc[i].a' * x <= reach_lc[i].b) + + for i in 1:size(output.constraints, 1) + obj = zeros(size(reach.Low, 2)) + for j in 1:size(reach.Low, 1) + # println(j, " ", output.constraints[i].a[j]) + if output.constraints[i].a[j] > 0 + obj += output.constraints[i].a[j] * reach.Up[j,:] + else + obj += output.constraints[i].a[j] * reach.Low[j,:] + end + end + @objective(model, Min, obj' * [x; [1]]) + optimize!(model) + + y = compute_output(nnet, value(x)) + ∈(y, output) || return CounterExampleResult(:violated, value(x)) + + if objective_value(model) > output.constraints[i].b + return BasicResult(:unknown) + end + + end + return BasicResult(:holds) +end + + +function constraint_refinement(solver::Neurify, nnet::Network, reach::SymbolicIntervalGradient) + i, j, gradient = get_nodewise_gradient(nnet, reach.LΛ, reach.UΛ) + # We can generate three more constraints + # Symbolic representation of node i j is Low[i][j,:] and Up[i][j,:] + nnet_new = Network(nnet.layers[1:i]) + reach_new = forward_network(solver, nnet_new, reach.sym.interval) + C, d = tosimplehrep(reach.sym.interval) + l_sym = reach_new.sym.Low[[j], 1:end-1] + l_off = reach_new.sym.Low[[j], end] + u_sym = reach_new.sym.Up[[j], 1:end-1] + u_off = reach_new.sym.Up[[j], end] + intervals = Vector{HPolytope{Float64}}(undef, 3) + intervals[1] = HPolytope([C; l_sym; u_sym], [d; -l_off; -u_off]) + intervals[2] = HPolytope([C; l_sym; -u_sym], [d; -l_off; u_off]) + intervals[3] = HPolytope([C; -l_sym; -u_sym], [d; l_off; u_off]) + # intervals[4] = HPolytope([C; -l_sym; u_sym], [d; l_off; -u_off]) lower bound can not be greater than upper bound + return intervals +end + +function get_nodewise_gradient(nnet::Network, LΛ::Vector{Vector{Float64}}, UΛ::Vector{Vector{Float64}}) + n_output = size(nnet.layers[end].weights, 1) + n_length = length(nnet.layers) + LG = Matrix(1.0I, n_output, n_output) + UG = Matrix(1.0I, n_output, n_output) + max_tuple = (0, 0, 0.0) + for (k, layer) in enumerate(reverse(nnet.layers)) + i = n_length - k + 1 + for j in size(layer.bias) + if LΛ[i][j] ∈ (0.0, 1.0) && UΛ[i][j] ∈ (0.0, 1.0) + max_gradient = max(abs(LG[j]), abs(UG[j])) + if max_gradient > max_tuple[3] + max_tuple = (i, j, max_gradient) + end + end + end + i >= 1 || break + LG_hat = max.(LG, 0.0) * Diagonal(LΛ[i]) + min.(LG, 0.0) * Diagonal(UΛ[i]) + UG_hat = min.(UG, 0.0) * Diagonal(LΛ[i]) + max.(UG, 0.0) * Diagonal(UΛ[i]) + LG, UG = interval_map_right(layer.weights, LG_hat, UG_hat) + end + return max_tuple +end + +function forward_layer(solver::Neurify, layer::Layer, input) + return forward_act(forward_linear(solver, input, layer), layer) +end + +# Symbolic forward_linear for the first layer +function forward_linear(solver::Neurify, input::AbstractPolytope, layer::Layer) + (W, b) = (layer.weights, layer.bias) + sym = SymbolicInterval(hcat(W, b), hcat(W, b), input) + LΛ = Vector{Vector{Int64}}(undef, 0) + UΛ = Vector{Vector{Int64}}(undef, 0) + return SymbolicIntervalGradient(sym, LΛ, UΛ) +end + +# Symbolic forward_linear +function forward_linear(solver::Neurify, input::SymbolicIntervalGradient, layer::Layer) + (W, b) = (layer.weights, layer.bias) + output_Up = max.(W, 0) * input.sym.Up + min.(W, 0) * input.sym.Low + output_Low = max.(W, 0) * input.sym.Low + min.(W, 0) * input.sym.Up + output_Up[:, end] += b + output_Low[:, end] += b + sym = SymbolicInterval(output_Low, output_Up, input.sym.interval) + return SymbolicIntervalGradient(sym, input.LΛ, input.UΛ) +end + +# Symbolic forward_act +function forward_act(input::SymbolicIntervalGradient, layer::Layer{ReLU}) + n_node, n_input = size(input.sym.Up) + output_Low, output_Up = input.sym.Low[:, :], input.sym.Up[:, :] + mask_lower, mask_upper = zeros(Float64, n_node), ones(Float64, n_node) + for i in 1:n_node + if upper_bound(input.sym.Up[i, :], input.sym.interval) <= 0.0 + # Update to zero + mask_lower[i], mask_upper[i] = 0, 0 + output_Up[i, :] = zeros(n_input) + output_Low[i, :] = zeros(n_input) + elseif lower_bound(input.sym.Low[i, :], input.sym.interval) >= 0 + # Keep dependency + mask_lower[i], mask_upper[i] = 1, 1 + else + # Symbolic linear relaxation + # This is different from ReluVal + up_up = upper_bound(input.sym.Up[i, :], input.sym.interval) + up_low = lower_bound(input.sym.Up[i, :], input.sym.interval) + low_up = upper_bound(input.sym.Low[i, :], input.sym.interval) + low_low = lower_bound(input.sym.Low[i, :], input.sym.interval) + up_slop = up_up / (up_up - up_low) + low_slop = low_up / (low_up - low_low) + output_Low[i, :] = low_slop * output_Low[i, :] + output_Up[i, end] -= up_low + output_Up[i, :] = up_slop * output_Up[i, :] + mask_lower[i], mask_upper[i] = low_slop, up_slop + end + end + sym = SymbolicInterval(output_Low, output_Up, input.sym.interval) + LΛ = push!(input.LΛ, mask_lower) + UΛ = push!(input.UΛ, mask_upper) + return SymbolicIntervalGradient(sym, LΛ, UΛ) +end + +function forward_act(input::SymbolicIntervalGradient, layer::Layer{Id}) + sym = input.sym + n_node = size(input.sym.Up, 1) + LΛ = push!(input.LΛ, ones(Float64, n_node)) + UΛ = push!(input.UΛ, ones(Float64, n_node)) + return SymbolicIntervalGradient(sym, LΛ, UΛ) +end + + +function upper_bound(map::Vector{Float64}, input::HPolytope) + n = size(input.constraints, 1) + m = size(input.constraints[1].a, 1) + model =Model(with_optimizer(GLPK.Optimizer)) + @variable(model, x[1:m]) + @constraint(model, [i in 1:n], input.constraints[i].a' * x <= input.constraints[i].b) + @objective(model, Max, map' * [x; [1]]) + optimize!(model) + return objective_value(model) +end + + +function lower_bound(map::Vector{Float64}, input::HPolytope) + n = size(input.constraints, 1) + m = size(input.constraints[1].a, 1) + model =Model(with_optimizer(GLPK.Optimizer)) + @variable(model, x[1:m]) + @constraint(model, [i in 1:n], input.constraints[i].a' * x <= input.constraints[i].b) + @objective(model, Min, map' * [x; [1]]) + optimize!(model) + return objective_value(model) +end \ No newline at end of file diff --git a/src/adversarial/reluVal.jl b/src/adversarial/reluVal.jl index ab579a09..59611d12 100644 --- a/src/adversarial/reluVal.jl +++ b/src/adversarial/reluVal.jl @@ -27,18 +27,10 @@ Sound but not complete. [https://github.com/tcwangshiqi-columbia/ReluVal](https://github.com/tcwangshiqi-columbia/ReluVal) """ @with_kw struct ReluVal - max_iter::Int64 = 10 + max_iter::Int64 = 100 tree_search::Symbol = :DFS # only :DFS/:BFS allowed? If so, we should assert this. end -struct SymbolicInterval - Low::Matrix{Float64} - Up::Matrix{Float64} - interval::Hyperrectangle -end - -SymbolicInterval(x::Matrix{Float64}, y::Matrix{Float64}) = SymbolicInterval(x, y, Hyperrectangle([0],[0])) - # Data to be passed during forward_layer struct SymbolicIntervalMask sym::SymbolicInterval @@ -54,12 +46,14 @@ function solve(solver::ReluVal, problem::Problem) for i in 2:solver.max_iter length(reach_list) > 0 || return BasicResult(:holds) reach = pick_out!(reach_list, solver.tree_search) - LG, UG = get_gradient(problem.network, reach.LΛ, reach.UΛ) - feature = get_smear_index(problem.network, reach.sym.interval, LG, UG) - intervals = split_interval(reach.sym.interval, feature) + intervals = interval_refinement(problem.network, reach) for interval in intervals reach = forward_network(solver, problem.network, interval) result = check_inclusion(reach.sym, problem.output, problem.network) + if result.status == :violated + println("") + println("iter ", i) + end result.status == :violated && return result result.status == :holds || (push!(reach_list, reach)) end @@ -67,6 +61,13 @@ function solve(solver::ReluVal, problem::Problem) return BasicResult(:unknown) end +function interval_refinement(nnet::Network, reach::SymbolicIntervalMask) + LG, UG = get_gradient(nnet, reach.LΛ, reach.UΛ) + feature, monotone = get_smear_index(nnet, reach.sym.interval, LG, UG) + print(feature, ' ') + return split_interval(reach.sym.interval, feature) +end + function pick_out!(reach_list, tree_search) if tree_search == :BFS reach = reach_list[1] @@ -79,7 +80,7 @@ function pick_out!(reach_list, tree_search) return reach end -function symbol_to_concrete(reach::SymbolicInterval) +function symbol_to_concrete(reach::SymbolicInterval{Hyperrectangle{N}}) where N n_output = size(reach.Low, 1) upper = zeros(n_output) lower = zeros(n_output) @@ -90,8 +91,10 @@ function symbol_to_concrete(reach::SymbolicInterval) return Hyperrectangle(low = lower, high = upper) end -function check_inclusion(reach::SymbolicInterval, output::AbstractPolytope, nnet::Network) +function check_inclusion(reach::SymbolicInterval{Hyperrectangle{N}}, output::AbstractPolytope, nnet::Network) where N reachable = symbol_to_concrete(reach) + # println("reluval reachable") + # println(reachable) issubset(reachable, output) && return BasicResult(:holds) # is_intersection_empty(reachable, output) && return BasicResult(:violated) @@ -103,7 +106,7 @@ function check_inclusion(reach::SymbolicInterval, output::AbstractPolytope, nnet return BasicResult(:unknown) end -function forward_layer(solver::ReluVal, layer::Layer, input::Union{SymbolicIntervalMask, Hyperrectangle}) +function forward_layer(solver::ReluVal, layer::Layer, input) return forward_act(forward_linear(input, layer), layer) end @@ -178,7 +181,8 @@ function get_smear_index(nnet::Network, input::Hyperrectangle, LG::Matrix, UG::M feature = i end end - return feature + monotone = all((LG[:, feature] .* UG[:, feature]) .> 0) + return feature, monotone end # Get upper bound in concretization diff --git a/src/utils/util.jl b/src/utils/util.jl index fcc8acc0..52bc31a7 100644 --- a/src/utils/util.jl +++ b/src/utils/util.jl @@ -259,6 +259,12 @@ function interval_map(W::Matrix{N}, l::AbstractVecOrMat, u::AbstractVecOrMat) wh return (l_new, u_new) end +function interval_map_right(W::Matrix{N}, l::AbstractVecOrMat, u::AbstractVecOrMat) where N + l_new = l * max.(W, zero(N)) + u * min.(W, zero(N)) + u_new = u * max.(W, zero(N)) + l * min.(W, zero(N)) + return (l_new, u_new) +end + """ get_bounds(problem::Problem) get_bounds(nnet::Network, input::Hyperrectangle) From 5d807b2a53bddcc1c97263b12027e6a40cc71b4b Mon Sep 17 00:00:00 2001 From: wei-tianhao Date: Mon, 20 Apr 2020 00:41:14 -0400 Subject: [PATCH 09/66] fixed neurify, passed runtests --- test/runtests2.jl | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/test/runtests2.jl b/test/runtests2.jl index d1c323ad..d5523163 100644 --- a/test/runtests2.jl +++ b/test/runtests2.jl @@ -1,5 +1,6 @@ using NeuralVerification +using LazySets using Test macro no_error(ex) @@ -35,10 +36,13 @@ inputSet = Hyperrectangle(low=input_low, high=input_high) outputSet = Hyperrectangle(low=output_low, high=output_high) problem_hyperrect_small = Problem(mnist_small, inputSet, outputSet) -solver_reluVal = ReluVal(max_iter = 2) +solver_reluVal = ReluVal(max_iter = 2) @test @no_error solve(solver_reluVal, problem_hyperrect_small) +solver_neurify = Neurify(max_iter = 2) +@test @no_error solve(solver_neurify, problem_hyperrect_small) + solver_reluplex=Reluplex() @test @no_error solve(solver_reluplex, problem_hyperrect_small) @@ -64,10 +68,14 @@ inputSet = Hyperrectangle(low=input_low, high=input_high) outputSet = Hyperrectangle(low=output_low, high=output_high) problem_hyperrect_deep = Problem(mnist_large, inputSet, outputSet) -solver_reluVal = ReluVal(max_iter = 2) +solver_reluVal = ReluVal(max_iter = 2) @test @no_error solve(solver_reluVal, problem_hyperrect_deep) +solver_neurify = Neurify(max_iter = 2) +@test @no_error solve(solver_neurify, problem_hyperrect_deep) + + solver_reluplex=Reluplex() @test @no_error solve(solver_reluplex, problem_hyperrect_deep) @@ -90,9 +98,12 @@ inputSet = Hyperrectangle(low=input_low, high=input_high) outputSet = Hyperrectangle(low=output_low, high=output_high) problem_hyperrect_wide = Problem(mnist_wide, inputSet, outputSet) -solver_reluVal = ReluVal(max_iter = 2) +solver_reluVal = ReluVal(max_iter = 2) @test @no_error solve(solver_reluVal, problem_hyperrect_wide) +solver_neurify = Neurify(max_iter = 2) +@test @no_error solve(solver_neurify, problem_hyperrect_wide) + solver_reluplex=Reluplex() @test @no_error solve(solver_reluplex, problem_hyperrect_wide) \ No newline at end of file From c2b8218bfce74b4f4697e07d0dc38b89b1346a86 Mon Sep 17 00:00:00 2001 From: wei-tianhao Date: Thu, 23 Apr 2020 11:29:10 -0400 Subject: [PATCH 10/66] finish neurify --- src/adversarial/neurify.jl | 2 +- src/adversarial/reluVal.jl | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/adversarial/neurify.jl b/src/adversarial/neurify.jl index 6a2cbebe..d92e4077 100644 --- a/src/adversarial/neurify.jl +++ b/src/adversarial/neurify.jl @@ -26,7 +26,7 @@ Sound but not complete. """ @with_kw struct Neurify - max_iter::Int64 = 100 + max_iter::Int64 = 1000 tree_search::Symbol = :DFS # only :DFS/:BFS allowed? If so, we should assert this. end diff --git a/src/adversarial/reluVal.jl b/src/adversarial/reluVal.jl index 59611d12..aeb8599f 100644 --- a/src/adversarial/reluVal.jl +++ b/src/adversarial/reluVal.jl @@ -27,7 +27,7 @@ Sound but not complete. [https://github.com/tcwangshiqi-columbia/ReluVal](https://github.com/tcwangshiqi-columbia/ReluVal) """ @with_kw struct ReluVal - max_iter::Int64 = 100 + max_iter::Int64 = 1000 tree_search::Symbol = :DFS # only :DFS/:BFS allowed? If so, we should assert this. end From eb7ad5066c21de58f79abea1faa7fc88dd738047 Mon Sep 17 00:00:00 2001 From: wei-tianhao Date: Thu, 23 Apr 2020 11:30:43 -0400 Subject: [PATCH 11/66] finish neurify --- src/adversarial/reluVal.jl | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/src/adversarial/reluVal.jl b/src/adversarial/reluVal.jl index aeb8599f..04d92853 100644 --- a/src/adversarial/reluVal.jl +++ b/src/adversarial/reluVal.jl @@ -50,10 +50,6 @@ function solve(solver::ReluVal, problem::Problem) for interval in intervals reach = forward_network(solver, problem.network, interval) result = check_inclusion(reach.sym, problem.output, problem.network) - if result.status == :violated - println("") - println("iter ", i) - end result.status == :violated && return result result.status == :holds || (push!(reach_list, reach)) end @@ -63,8 +59,7 @@ end function interval_refinement(nnet::Network, reach::SymbolicIntervalMask) LG, UG = get_gradient(nnet, reach.LΛ, reach.UΛ) - feature, monotone = get_smear_index(nnet, reach.sym.interval, LG, UG) - print(feature, ' ') + feature, monotone = get_smear_index(nnet, reach.sym.interval, LG, UG) #monotonicity not used in this implementation. return split_interval(reach.sym.interval, feature) end From 2129846c42eb286610f0db7d1988645e627f2a15 Mon Sep 17 00:00:00 2001 From: wei-tianhao Date: Fri, 24 Apr 2020 01:07:43 -0400 Subject: [PATCH 12/66] fix neurify runtests, fix JuMP return point outside input range when the solution is infeasible --- src/adversarial/neurify.jl | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/src/adversarial/neurify.jl b/src/adversarial/neurify.jl index 848cb614..9a8d945d 100644 --- a/src/adversarial/neurify.jl +++ b/src/adversarial/neurify.jl @@ -47,6 +47,7 @@ end function solve(solver::Neurify, problem::Problem) + problem = Problem(problem.network, convert(HPolytope, problem.input), convert(HPolytope, problem.output)) reach = forward_network(solver, problem.network, problem.input) result = check_inclusion(reach.sym, problem.output, problem.network) # This called the check_inclusion function in ReluVal, because the constraints are Hyperrectangle @@ -55,9 +56,6 @@ function solve(solver::Neurify, problem::Problem) reach_list = SymbolicIntervalGradient[reach] for i in 2:solver.max_iter - if i % 10 == 0 - println("iter ",i) - end length(reach_list) > 0 || return BasicResult(:holds) reach = pick_out!(reach_list, solver.tree_search) intervals = constraint_refinement(solver, problem.network, reach) @@ -76,7 +74,6 @@ function check_inclusion(reach::SymbolicInterval{HPolytope{N}}, output::Abstract # We try to maximize output constraint to find a violated case, or to verify the inclusion, # suppose the output is [1, 0, -1] * x < 2, Then we are maximizing reach.Up[1] * 1 + reach.Low[3] * (-1) - reach_lc = reach.interval.constraints output_lc = output.constraints @@ -89,7 +86,6 @@ function check_inclusion(reach::SymbolicInterval{HPolytope{N}}, output::Abstract for i in 1:size(output.constraints, 1) obj = zeros(size(reach.Low, 2)) for j in 1:size(reach.Low, 1) - # println(j, " ", output.constraints[i].a[j]) if output.constraints[i].a[j] > 0 obj += output.constraints[i].a[j] * reach.Up[j,:] else @@ -98,10 +94,14 @@ function check_inclusion(reach::SymbolicInterval{HPolytope{N}}, output::Abstract end @objective(model, Min, obj' * [x; [1]]) optimize!(model) - + # println("termination_status") + # println(termination_status(model)) y = compute_output(nnet, value(x)) - ∈(y, output) || return CounterExampleResult(:violated, value(x)) - + if !∈(y, output) + if ∈(value(x), reach.interval) + return CounterExampleResult(:violated, value(x)) + end + end if objective_value(model) > output.constraints[i].b return BasicResult(:unknown) end @@ -110,7 +110,6 @@ function check_inclusion(reach::SymbolicInterval{HPolytope{N}}, output::Abstract return BasicResult(:holds) end - function constraint_refinement(solver::Neurify, nnet::Network, reach::SymbolicIntervalGradient) i, j, gradient = get_nodewise_gradient(nnet, reach.LΛ, reach.UΛ) # We can generate three more constraints From a149686b89e59e116ef159d4f65abad2f289ca69 Mon Sep 17 00:00:00 2001 From: wei-tianhao Date: Tue, 28 Apr 2020 18:47:01 -0400 Subject: [PATCH 13/66] start optimizing lr solver --- src/adversarial/neurify.jl | 35 +++++++++++++++++++++++++++-------- 1 file changed, 27 insertions(+), 8 deletions(-) diff --git a/src/adversarial/neurify.jl b/src/adversarial/neurify.jl index 4905149b..1b6d0cf3 100644 --- a/src/adversarial/neurify.jl +++ b/src/adversarial/neurify.jl @@ -26,7 +26,7 @@ Sound but not complete. """ @with_kw struct Neurify - max_iter::Int64 = 1000 + max_iter::Int64 = 100 tree_search::Symbol = :DFS # only :DFS/:BFS allowed? If so, we should assert this. end @@ -48,11 +48,12 @@ end function solve(solver::Neurify, problem::Problem) problem = Problem(problem.network, convert(HPolytope, problem.input), convert(HPolytope, problem.output)) -reach = forward_network(solver, problem.network, problem.input) + reach = forward_network(solver, problem.network, problem.input) result = check_inclusion(reach.sym, problem.output, problem.network) # This called the check_inclusion function in ReluVal, because the constraints are Hyperrectangle result.status == :unknown || return result reach_list = SymbolicIntervalGradient[reach] for i in 2:solver.max_iter + # println("iter ",i) length(reach_list) > 0 || return BasicResult(:holds) reach = pick_out!(reach_list, solver.tree_search) intervals = constraint_refinement(solver, problem.network, reach) @@ -89,17 +90,35 @@ function check_inclusion(reach::SymbolicInterval{HPolytope{N}}, output::Abstract obj += output.constraints[i].a[j] * reach.Low[j,:] end end - @objective(model, Min, obj' * [x; [1]]) + @objective(model, Max, obj' * [x; [1]]) optimize!(model) # println("termination_status") # println(termination_status(model)) - y = compute_output(nnet, value(x)) - if !∈(y, output) + # if termination_status(model) != MOI.OPTIMAL + # println(reach.interval) + # println(value(x)) + # println(termination_status(model)) + # exit() + # end + + if termination_status(model) == MOI.OPTIMAL + y = compute_output(nnet, value(x)) + if !∈(y, output) + if ∈(value(x), reach.interval) + return CounterExampleResult(:violated, value(x)) + else + print("OPTIMAL, but x not in the input set") + exit() + end + end + if objective_value(model) > output.constraints[i].b + return BasicResult(:unknown) + end + else if ∈(value(x), reach.interval) - return CounterExampleResult(:violated, value(x)) + print("Not OPTIMAL, but x in the input set") + exit() end - end - if objective_value(model) > output.constraints[i].b return BasicResult(:unknown) end From e6712aff9d07c0eb13282d4d738f0655c54b5154 Mon Sep 17 00:00:00 2001 From: wei-tianhao Date: Tue, 28 Apr 2020 19:49:29 -0400 Subject: [PATCH 14/66] pass JuMP model into function, no much acceleration --- src/adversarial/neurify.jl | 96 +++++++++++++++++++++++--------------- 1 file changed, 59 insertions(+), 37 deletions(-) diff --git a/src/adversarial/neurify.jl b/src/adversarial/neurify.jl index 1b6d0cf3..b5ced049 100644 --- a/src/adversarial/neurify.jl +++ b/src/adversarial/neurify.jl @@ -28,15 +28,18 @@ Sound but not complete. @with_kw struct Neurify max_iter::Int64 = 100 tree_search::Symbol = :DFS # only :DFS/:BFS allowed? If so, we should assert this. + model = Nothing() end struct SymbolicInterval{F<:AbstractPolytope} Low::Matrix{Float64} Up::Matrix{Float64} interval::F + model end -SymbolicInterval(x::Matrix{Float64}, y::Matrix{Float64}) = SymbolicInterval(x, y, Hyperrectangle([0],[0])) +SymbolicInterval(x::Matrix{Float64}, y::Matrix{Float64}) = SymbolicInterval(x, y, Hyperrectangle([0],[0]), Nothing()) +SymbolicInterval(x::Matrix{Float64}, y::Matrix{Float64}, interval::AbstractPolytope) = SymbolicInterval(x, y, interval, Nothing()) # Data to be passed during forward_layer struct SymbolicIntervalGradient @@ -47,9 +50,18 @@ end function solve(solver::Neurify, problem::Problem) problem = Problem(problem.network, convert(HPolytope, problem.input), convert(HPolytope, problem.output)) + + reach_lc = problem.input.constraints + output_lc = problem.output.constraints + + n = size(reach_lc, 1) + m = size(reach_lc[1].a, 1) + model =Model(with_optimizer(GLPK.Optimizer)) + @variable(model, x[1:m], base_name="x") + @constraint(model, [i in 1:n], reach_lc[i].a' * x <= reach_lc[i].b) - reach = forward_network(solver, problem.network, problem.input) - result = check_inclusion(reach.sym, problem.output, problem.network) # This called the check_inclusion function in ReluVal, because the constraints are Hyperrectangle + reach = forward_network(solver, problem.network, problem.input, model) + result = check_inclusion(reach.sym, problem.output, problem.network, model) # This called the check_inclusion function in ReluVal, because the constraints are Hyperrectangle result.status == :unknown || return result reach_list = SymbolicIntervalGradient[reach] for i in 2:solver.max_iter @@ -58,8 +70,8 @@ function solve(solver::Neurify, problem::Problem) reach = pick_out!(reach_list, solver.tree_search) intervals = constraint_refinement(solver, problem.network, reach) for interval in intervals - reach = forward_network(solver, problem.network, interval) - result = check_inclusion(reach.sym, problem.output, problem.network) + reach = forward_network(solver, problem.network, interval, model) + result = check_inclusion(reach.sym, problem.output, problem.network, model) result.status == :violated && return result result.status == :holds || (push!(reach_list, reach)) end @@ -67,19 +79,19 @@ function solve(solver::Neurify, problem::Problem) return BasicResult(:unknown) end -function check_inclusion(reach::SymbolicInterval{HPolytope{N}}, output::AbstractPolytope, nnet::Network) where N +function check_inclusion(reach::SymbolicInterval{HPolytope{N}}, output::AbstractPolytope, nnet::Network, model) where N # The output constraint is in the form A*x < b # We try to maximize output constraint to find a violated case, or to verify the inclusion, # suppose the output is [1, 0, -1] * x < 2, Then we are maximizing reach.Up[1] * 1 + reach.Low[3] * (-1) - - reach_lc = reach.interval.constraints - output_lc = output.constraints - - n = size(reach_lc, 1) - m = size(reach_lc[1].a, 1) - model =Model(with_optimizer(GLPK.Optimizer)) - @variable(model, x[1:m]) - @constraint(model, [i in 1:n], reach_lc[i].a' * x <= reach_lc[i].b) + + x = model[:x] + # reach_lc = reach.interval.constraints + # output_lc = output.constraints + # n = size(reach_lc, 1) + # m = size(reach_lc[1].a, 1) + # model =Model(with_optimizer(GLPK.Optimizer)) + # @variable(model, x[1:m]) + # @constraint(model, [i in 1:n], reach_lc[i].a' * x <= reach_lc[i].b) for i in 1:size(output.constraints, 1) obj = zeros(size(reach.Low, 2)) @@ -169,8 +181,16 @@ function get_nodewise_gradient(nnet::Network, LΛ::Vector{Vector{Float64}}, UΛ: return max_tuple end -function forward_layer(solver::Neurify, layer::Layer, input) - return forward_act(forward_linear(solver, input, layer), layer) +function forward_network(solver, nnet::Network, input::AbstractPolytope, model) + reach = input + for layer in nnet.layers + reach = forward_layer(solver, layer, reach, model) + end + return reach +end + +function forward_layer(solver::Neurify, layer::Layer, input, model) + return forward_act(forward_linear(solver, input, layer), layer, model) end # Symbolic forward_linear for the first layer @@ -194,26 +214,26 @@ function forward_linear(solver::Neurify, input::SymbolicIntervalGradient, layer: end # Symbolic forward_act -function forward_act(input::SymbolicIntervalGradient, layer::Layer{ReLU}) +function forward_act(input::SymbolicIntervalGradient, layer::Layer{ReLU}, model) n_node, n_input = size(input.sym.Up) output_Low, output_Up = input.sym.Low[:, :], input.sym.Up[:, :] mask_lower, mask_upper = zeros(Float64, n_node), ones(Float64, n_node) for i in 1:n_node - if upper_bound(input.sym.Up[i, :], input.sym.interval) <= 0.0 + if upper_bound(input.sym.Up[i, :], input.sym.interval, model) <= 0.0 # Update to zero mask_lower[i], mask_upper[i] = 0, 0 output_Up[i, :] = zeros(n_input) output_Low[i, :] = zeros(n_input) - elseif lower_bound(input.sym.Low[i, :], input.sym.interval) >= 0 + elseif lower_bound(input.sym.Low[i, :], input.sym.interval, model) >= 0 # Keep dependency mask_lower[i], mask_upper[i] = 1, 1 else # Symbolic linear relaxation # This is different from ReluVal - up_up = upper_bound(input.sym.Up[i, :], input.sym.interval) - up_low = lower_bound(input.sym.Up[i, :], input.sym.interval) - low_up = upper_bound(input.sym.Low[i, :], input.sym.interval) - low_low = lower_bound(input.sym.Low[i, :], input.sym.interval) + up_up = upper_bound(input.sym.Up[i, :], input.sym.interval, model) + up_low = lower_bound(input.sym.Up[i, :], input.sym.interval, model) + low_up = upper_bound(input.sym.Low[i, :], input.sym.interval, model) + low_low = lower_bound(input.sym.Low[i, :], input.sym.interval, model) up_slop = up_up / (up_up - up_low) low_slop = low_up / (low_up - low_low) output_Low[i, :] = low_slop * output_Low[i, :] @@ -228,7 +248,7 @@ function forward_act(input::SymbolicIntervalGradient, layer::Layer{ReLU}) return SymbolicIntervalGradient(sym, LΛ, UΛ) end -function forward_act(input::SymbolicIntervalGradient, layer::Layer{Id}) +function forward_act(input::SymbolicIntervalGradient, layer::Layer{Id}, model) sym = input.sym n_node = size(input.sym.Up, 1) LΛ = push!(input.LΛ, ones(Float64, n_node)) @@ -237,24 +257,26 @@ function forward_act(input::SymbolicIntervalGradient, layer::Layer{Id}) end -function upper_bound(map::Vector{Float64}, input::HPolytope) - n = size(input.constraints, 1) - m = size(input.constraints[1].a, 1) - model =Model(with_optimizer(GLPK.Optimizer)) - @variable(model, x[1:m]) - @constraint(model, [i in 1:n], input.constraints[i].a' * x <= input.constraints[i].b) +function upper_bound(map::Vector{Float64}, input::HPolytope, model) + # n = size(input.constraints, 1) + # m = size(input.constraints[1].a, 1) + # model =Model(with_optimizer(GLPK.Optimizer)) + # @variable(model, x[1:m]) + # @constraint(model, [i in 1:n], input.constraints[i].a' * x <= input.constraints[i].b) + x = model[:x] @objective(model, Max, map' * [x; [1]]) optimize!(model) return objective_value(model) end -function lower_bound(map::Vector{Float64}, input::HPolytope) - n = size(input.constraints, 1) - m = size(input.constraints[1].a, 1) - model =Model(with_optimizer(GLPK.Optimizer)) - @variable(model, x[1:m]) - @constraint(model, [i in 1:n], input.constraints[i].a' * x <= input.constraints[i].b) +function lower_bound(map::Vector{Float64}, input::HPolytope, model) + # n = size(input.constraints, 1) + # m = size(input.constraints[1].a, 1) + # model =Model(with_optimizer(GLPK.Optimizer)) + # @variable(model, x[1:m]) + # @constraint(model, [i in 1:n], input.constraints[i].a' * x <= input.constraints[i].b) + x = model[:x] @objective(model, Min, map' * [x; [1]]) optimize!(model) return objective_value(model) From 18b48c0152d708129f4720e3a1e8c4f0be836adc Mon Sep 17 00:00:00 2001 From: wei-tianhao Date: Tue, 28 Apr 2020 23:27:34 -0400 Subject: [PATCH 15/66] pass model into constraint_refinement --- src/adversarial/neurify.jl | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/adversarial/neurify.jl b/src/adversarial/neurify.jl index b5ced049..6b43a5b6 100644 --- a/src/adversarial/neurify.jl +++ b/src/adversarial/neurify.jl @@ -65,10 +65,9 @@ function solve(solver::Neurify, problem::Problem) result.status == :unknown || return result reach_list = SymbolicIntervalGradient[reach] for i in 2:solver.max_iter - # println("iter ",i) length(reach_list) > 0 || return BasicResult(:holds) reach = pick_out!(reach_list, solver.tree_search) - intervals = constraint_refinement(solver, problem.network, reach) + intervals = constraint_refinement(solver, problem.network, reach, model) for interval in intervals reach = forward_network(solver, problem.network, interval, model) result = check_inclusion(reach.sym, problem.output, problem.network, model) @@ -138,12 +137,12 @@ function check_inclusion(reach::SymbolicInterval{HPolytope{N}}, output::Abstract return BasicResult(:holds) end -function constraint_refinement(solver::Neurify, nnet::Network, reach::SymbolicIntervalGradient) +function constraint_refinement(solver::Neurify, nnet::Network, reach::SymbolicIntervalGradient, model) i, j, gradient = get_nodewise_gradient(nnet, reach.LΛ, reach.UΛ) # We can generate three more constraints # Symbolic representation of node i j is Low[i][j,:] and Up[i][j,:] nnet_new = Network(nnet.layers[1:i]) - reach_new = forward_network(solver, nnet_new, reach.sym.interval) + reach_new = forward_network(solver, nnet_new, reach.sym.interval, model) C, d = tosimplehrep(reach.sym.interval) l_sym = reach_new.sym.Low[[j], 1:end-1] l_off = reach_new.sym.Low[[j], end] From a05936005712f0462e7f3f654667007bb0505478 Mon Sep 17 00:00:00 2001 From: wei-tianhao Date: Tue, 28 Apr 2020 23:44:27 -0400 Subject: [PATCH 16/66] add model type specification --- src/adversarial/neurify.jl | 24 ++++++++---------------- 1 file changed, 8 insertions(+), 16 deletions(-) diff --git a/src/adversarial/neurify.jl b/src/adversarial/neurify.jl index 6b43a5b6..6ac92e80 100644 --- a/src/adversarial/neurify.jl +++ b/src/adversarial/neurify.jl @@ -78,7 +78,7 @@ function solve(solver::Neurify, problem::Problem) return BasicResult(:unknown) end -function check_inclusion(reach::SymbolicInterval{HPolytope{N}}, output::AbstractPolytope, nnet::Network, model) where N +function check_inclusion(reach::SymbolicInterval{HPolytope{N}}, output::AbstractPolytope, nnet::Network, model::JuMP.Model) where N # The output constraint is in the form A*x < b # We try to maximize output constraint to find a violated case, or to verify the inclusion, # suppose the output is [1, 0, -1] * x < 2, Then we are maximizing reach.Up[1] * 1 + reach.Low[3] * (-1) @@ -103,14 +103,6 @@ function check_inclusion(reach::SymbolicInterval{HPolytope{N}}, output::Abstract end @objective(model, Max, obj' * [x; [1]]) optimize!(model) - # println("termination_status") - # println(termination_status(model)) - # if termination_status(model) != MOI.OPTIMAL - # println(reach.interval) - # println(value(x)) - # println(termination_status(model)) - # exit() - # end if termination_status(model) == MOI.OPTIMAL y = compute_output(nnet, value(x)) @@ -137,7 +129,7 @@ function check_inclusion(reach::SymbolicInterval{HPolytope{N}}, output::Abstract return BasicResult(:holds) end -function constraint_refinement(solver::Neurify, nnet::Network, reach::SymbolicIntervalGradient, model) +function constraint_refinement(solver::Neurify, nnet::Network, reach::SymbolicIntervalGradient, model::JuMP.Model) i, j, gradient = get_nodewise_gradient(nnet, reach.LΛ, reach.UΛ) # We can generate three more constraints # Symbolic representation of node i j is Low[i][j,:] and Up[i][j,:] @@ -180,7 +172,7 @@ function get_nodewise_gradient(nnet::Network, LΛ::Vector{Vector{Float64}}, UΛ: return max_tuple end -function forward_network(solver, nnet::Network, input::AbstractPolytope, model) +function forward_network(solver, nnet::Network, input::AbstractPolytope, model::JuMP.Model) reach = input for layer in nnet.layers reach = forward_layer(solver, layer, reach, model) @@ -188,7 +180,7 @@ function forward_network(solver, nnet::Network, input::AbstractPolytope, model) return reach end -function forward_layer(solver::Neurify, layer::Layer, input, model) +function forward_layer(solver::Neurify, layer::Layer, input, model::JuMP.Model) return forward_act(forward_linear(solver, input, layer), layer, model) end @@ -213,7 +205,7 @@ function forward_linear(solver::Neurify, input::SymbolicIntervalGradient, layer: end # Symbolic forward_act -function forward_act(input::SymbolicIntervalGradient, layer::Layer{ReLU}, model) +function forward_act(input::SymbolicIntervalGradient, layer::Layer{ReLU}, model::JuMP.Model) n_node, n_input = size(input.sym.Up) output_Low, output_Up = input.sym.Low[:, :], input.sym.Up[:, :] mask_lower, mask_upper = zeros(Float64, n_node), ones(Float64, n_node) @@ -247,7 +239,7 @@ function forward_act(input::SymbolicIntervalGradient, layer::Layer{ReLU}, model) return SymbolicIntervalGradient(sym, LΛ, UΛ) end -function forward_act(input::SymbolicIntervalGradient, layer::Layer{Id}, model) +function forward_act(input::SymbolicIntervalGradient, layer::Layer{Id}, model::JuMP.Model) sym = input.sym n_node = size(input.sym.Up, 1) LΛ = push!(input.LΛ, ones(Float64, n_node)) @@ -256,7 +248,7 @@ function forward_act(input::SymbolicIntervalGradient, layer::Layer{Id}, model) end -function upper_bound(map::Vector{Float64}, input::HPolytope, model) +function upper_bound(map::Vector{Float64}, input::HPolytope, model::JuMP.Model) # n = size(input.constraints, 1) # m = size(input.constraints[1].a, 1) # model =Model(with_optimizer(GLPK.Optimizer)) @@ -269,7 +261,7 @@ function upper_bound(map::Vector{Float64}, input::HPolytope, model) end -function lower_bound(map::Vector{Float64}, input::HPolytope, model) +function lower_bound(map::Vector{Float64}, input::HPolytope, model::JuMP.Model) # n = size(input.constraints, 1) # m = size(input.constraints[1].a, 1) # model =Model(with_optimizer(GLPK.Optimizer)) From 4c8708c4a28b1023014c2c255a21fc37694df513 Mon Sep 17 00:00:00 2001 From: Tianhao Date: Wed, 1 Jul 2020 02:34:09 -0400 Subject: [PATCH 17/66] fixed bugs in get_nodewise_gradient --- .../4 visualverification-checkpoint.ipynb | 5655 +++++++++++++++++ src/adversarial/neurify.jl | 183 +- 2 files changed, 5771 insertions(+), 67 deletions(-) create mode 100644 examples/cars_workshop/.ipynb_checkpoints/4 visualverification-checkpoint.ipynb diff --git a/examples/cars_workshop/.ipynb_checkpoints/4 visualverification-checkpoint.ipynb b/examples/cars_workshop/.ipynb_checkpoints/4 visualverification-checkpoint.ipynb new file mode 100644 index 00000000..38bfeaa1 --- /dev/null +++ b/examples/cars_workshop/.ipynb_checkpoints/4 visualverification-checkpoint.ipynb @@ -0,0 +1,5655 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Two Dimensional Verification Example\n", + "\n", + "In this notebook, we use the `Network` and `Layer` API of NeuralVerification.jl to construct a neural network that maps two dimensional inputs to two dimensional outputs. We demonstrate how to define and verify a property on this network, and plot the output of the network at interesting moments throughout the problem." + ] + }, + { + "cell_type": "code", + "execution_count": 73, + "metadata": {}, + "outputs": [], + "source": [ + "using NeuralVerification, LazySets, LinearAlgebra\n", + "# We also import several functions and types so we can \n", + "# avoid e.g. the verbose NeuralVerification.ReLU(), etc.\n", + "import NeuralVerification: Network, Layer, ReLU, Id, affine_map, forward_partition\n", + "\n", + "# Set up some plotting stuff for later.\n", + "using Plots, LaTeXStrings\n", + "default(size = (300,300), legend = :none)\n", + "function Plots.plot(V::Vector{<:AbstractPolytope}, args...)\n", + " p = plot()\n", + " for s in V\n", + " plot!(p, s, args...)\n", + " end\n", + " return p\n", + "end" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Layers\n", + "\n", + "Let's begin by constructing our network. A layer is defined by a set of weights $\\mathbf{W}$, a bias, $\\mathbf{b}$, and a nonlinear activation function, usually denoted $\\sigma$.\n", + "Here we define the input layer $L_1$ to be a ReLU layer expecting a 2D input. " + ] + }, + { + "cell_type": "code", + "execution_count": 74, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Layer{ReLU,Float64}([1.0 0.5; 0.5 1.0], [0.0, -0.5], ReLU())" + ] + }, + "execution_count": 74, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "W = [1.0 0.5;\n", + " 0.5 1.0]\n", + "\n", + "b = [0, -0.5]\n", + "\n", + "L₁ = Layer(W, b, ReLU())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can apply our layer to an input $x$ by performing $\\sigma (Wx + b)$" + ] + }, + { + "cell_type": "code", + "execution_count": 102, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "x: [2, -1] ⟶ ẑ: [1.5, -0.5] ⟶ z: [1.5, 0.0]\n" + ] + } + ], + "source": [ + "let x = [2,-1], σ = L₁.activation\n", + " \n", + " ẑ = affine_map(L₁, x) # affine_map performs W*x + b\n", + " z = σ(ẑ)\n", + "\n", + " println(\"x: $x ⟶ ẑ: $ẑ ⟶ z: $z\")\n", + "end" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Networks \n", + "\n", + "A Network consists of a vector of these layers. Here we construct a network using $L_1$ and 6 more layers. The layers were initally created with random weights and biases, and then hard-coded here for repeatability. Note that the last layer is an identity layer." + ] + }, + { + "cell_type": "code", + "execution_count": 76, + "metadata": {}, + "outputs": [], + "source": [ + "layers = [\n", + " L₁,\n", + " Layer([1.14327 0.1497; 0.0938726 1.02164], [0.427767, -0.441637], ReLU()), \n", + " Layer([1.03721 0.083906; 0.174684 1.13746], [-0.664744, 0.4121], ReLU()), \n", + " Layer([1.07418 0.155875; 0.147354 1.09946], [-1.20265, -0.566685], ReLU()), \n", + " Layer([1.08786 0.159884; 0.0990573 1.00572], [-0.559988, -0.301343], ReLU()),\n", + " Layer([1.18447 0.177153; 0.00392835 1.18098], [0.422727, 1.04569], ReLU()),\n", + " Layer([1.14041 0.182869; 0.186956 1.18623], [1.51287, 0.497855], Id()),\n", + " ]\n", + "\n", + "net = Network(layers);" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Sets\n", + "\n", + "Now we can consider an input/output property of interest. Normally, the inputs an outputs of the network would have some semantic meaning (controls, labels, etc.) which would inform these properties. In this case, since we don't have anything like that, we will choose our input and output sets to be two arbitrary hyperrectangles.\n", + "\n", + "$X = \\left\\{ x_1, x_2 \\mid 0 \\leq x_i \\leq 1 \\right\\}$\n", + "\n", + "$Y = \\left\\{ y_1, y_2 \\mid 2 \\leq y_i \\leq 4 \\right\\}$\n", + "\n", + "The verification problem consists of determining whether $f(X) \\subseteq Y$. Note that not all algorithms support all types of sets. The documentation contains a [table](https://sisl.github.io/NeuralVerification.jl/latest/problem/) listing input and output sets by algorithm." + ] + }, + { + "cell_type": "code", + "execution_count": 77, + "metadata": {}, + "outputs": [ + { + "data": { + "image/svg+xml": [ + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "0\n", + "\n", + "\n", + "1\n", + "\n", + "\n", + "2\n", + "\n", + "\n", + "3\n", + "\n", + "\n", + "4\n", + "\n", + "\n", + "0\n", + "\n", + "\n", + "1\n", + "\n", + "\n", + "2\n", + "\n", + "\n", + "3\n", + "\n", + "\n", + "4\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "X\n", + "\n", + "\n", + "\n", + "\n", + "Y\n", + "\n", + "\n" + ] + }, + "execution_count": 77, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "X = Hyperrectangle(low = [0, 0], high = [1, 1])\n", + "Y = Hyperrectangle(low = [2, 2], high = [4, 4]);\n", + "\n", + "plot(X, label = \"X\", legend = true)\n", + "plot!(Y, label = \"Y\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Reachability\n", + "\n", + "We can transform the input set according to each layer by applying the same transformation introduced earlier. However, the nonlinearity in the ReLU requires that the set be partitioned along the $x=0$ and $y=0$ axes and that each subset is treated independently. If the subset lies in the positive quadrant, it is unchanged. In the negative quadrants, the ReLU operation projects the set onto the axis (by setting the negative componets of points in the set to $0$).\n", + "\n", + "This is demonstrated in the cell below. We transform the set $X$ subject to $L_1$ (we use `affine_map` again as before, but this time must call `forward_partition` to perform the ReLU on a set)." + ] + }, + { + "cell_type": "code", + "execution_count": 68, + "metadata": {}, + "outputs": [ + { + "data": { + "image/svg+xml": [ + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "0.0\n", + "\n", + "\n", + "0.5\n", + "\n", + "\n", + "1.0\n", + "\n", + "\n", + "1.5\n", + "\n", + "\n", + "-0.5\n", + "\n", + "\n", + "0.0\n", + "\n", + "\n", + "0.5\n", + "\n", + "\n", + "1.0\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "0.0\n", + "\n", + "\n", + "0.5\n", + "\n", + "\n", + "1.0\n", + "\n", + "\n", + "1.5\n", + "\n", + "\n", + "-0.5\n", + "\n", + "\n", + "0.0\n", + "\n", + "\n", + "0.5\n", + "\n", + "\n", + "1.0\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "0.0\n", + "\n", + "\n", + "0.5\n", + "\n", + "\n", + "1.0\n", + "\n", + "\n", + "1.5\n", + "\n", + "\n", + "-0.5\n", + "\n", + "\n", + "0.0\n", + "\n", + "\n", + "0.5\n", + "\n", + "\n", + "1.0\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n" + ] + }, + "execution_count": 68, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "Ẑ = affine_map(L₁, X)\n", + "Z = forward_partition(L₁.activation, Ẑ)\n", + "\n", + "\n", + "#### Just plotting stuff:\n", + "t1 = L\"\\mathcal{X}\"\n", + "t2 = L\"\\mathcal{X} \\mathrm{\\ and\\ } \\hat{\\mathcal{Z}}_1\"\n", + "t3 = L\"\\mathcal{X},\\ \\hat{\\mathcal{Z}}_1 \\mathrm{\\ and\\ } \\mathcal{Z}_1\"\n", + "\n", + "p1 = plot(X, fill = 0.7, xlim = (-0.3, 1.6), ylim = (-0.9 ,1.3), title = t1)\n", + "\n", + "p2 = deepcopy(p1)\n", + "plot!(p2, Ẑ, fill = 0.7, title = t2)\n", + "\n", + "p3 = deepcopy(p2)\n", + "hline!(p3, [0], line = (2, :black, :dash), fill = 0.7)\n", + "vline!(p3, [0], line = (2, :black, :dash), fill = 0.7)\n", + "plot!(p3, Z, line = (:green, 5), fill = (:green, 0.7), title = t3)\n", + "\n", + "plot(p1, p2, p3, size = (800, 250), layout = (1,3))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Solving a Problem\n", + "\n", + "Now that the network and property are both defined, we can construct a `Problem` object out of them. We use `ExactReach` to verify the property, which employs exact reachability techniques to calculate the true output set $f(X)$ and compare it to the desired output set $Y$. Since our network is small and simple, we can afford to do this, but in general, exact reachability is a computationaly expensive approach that scales poorly.\n", + "\n", + "\n", + "### ExactReach" + ] + }, + { + "cell_type": "code", + "execution_count": 78, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + ":violated" + ] + }, + "execution_count": 78, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "prob = Problem(net, X, Y)\n", + "res = solve(ExactReach(), prob)\n", + "\n", + "# check the result\n", + "res.status" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We find that the property is violated. The full printout of `res` is avoided above because, in the case of a violated input-output relation, ExactReach returns the computed output set, which is quite long in this case. We plot the output set, as well as $\\mathcal Y$ below, to understand why the property does not hold." + ] + }, + { + "cell_type": "code", + "execution_count": 72, + "metadata": {}, + "outputs": [ + { + "data": { + "image/svg+xml": [ + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "0\n", + "\n", + "\n", + "1\n", + "\n", + "\n", + "2\n", + "\n", + "\n", + "3\n", + "\n", + "\n", + "0\n", + "\n", + "\n", + "1\n", + "\n", + "\n", + "2\n", + "\n", + "\n", + "3\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "0\n", + "\n", + "\n", + "1\n", + "\n", + "\n", + "2\n", + "\n", + "\n", + "3\n", + "\n", + "\n", + "4\n", + "\n", + "\n", + "0\n", + "\n", + "\n", + "1\n", + "\n", + "\n", + "2\n", + "\n", + "\n", + "3\n", + "\n", + "\n", + "4\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n" + ] + }, + "execution_count": 72, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "p1 = plot(X, title = L\"\\mathcal{X}\\mathrm{\\ and\\ }f(\\mathcal{X})\")\n", + "plot!(p1, res.reachable, line = (1, :black), fill = (0.7, :green))\n", + "\n", + "p2 = plot(X, title = L\"f(\\mathcal{X}) \\not\\subseteq \\mathcal{Y}\")\n", + "plot!(p2, Y)\n", + "plot!(p2, res.reachable, fill = (0.7, :green))\n", + "\n", + "plot(p1, p2, size = (600, 250))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### MaxSens\n", + "\n", + "We see that the desired output set does not contain the true output set, which is the definition of a violated property. However, we took a computationally expensive approach to reach this conclusion, as mentioned earlier. We have other reachability (and non-reachability) algorithms at our disposal as well, which trade off over-approximation with computational efficiency. Next, we will try the same thing again using the `MaxSens` algorithm, which first partitions the set into hyperrectangles at a specified resolution, and then propagates each of those through the network in a fast but approximate way. We can solve the problem with a number of different resolutions to observe the effect on accuracy." + ] + }, + { + "cell_type": "code", + "execution_count": 89, + "metadata": {}, + "outputs": [], + "source": [ + "maxsens_results = [solve(MaxSens(resolution = r), prob) for r in reverse(0.1:0.1:0.9)];" + ] + }, + { + "cell_type": "code", + "execution_count": 90, + "metadata": {}, + "outputs": [ + { + "data": { + "image/svg+xml": [ + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "0\n", + "\n", + "\n", + "2\n", + "\n", + "\n", + "4\n", + "\n", + "\n", + "6\n", + "\n", + "\n", + "8\n", + "\n", + "\n", + "0\n", + "\n", + "\n", + "2\n", + "\n", + "\n", + "4\n", + "\n", + "\n", + "6\n", + "\n", + "\n", + "8\n", + "\n", + "\n", + "resolution = 0.9\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "0\n", + "\n", + "\n", + "2\n", + "\n", + "\n", + "4\n", + "\n", + "\n", + "6\n", + "\n", + "\n", + "0\n", + "\n", + "\n", + "2\n", + "\n", + "\n", + "4\n", + "\n", + "\n", + "6\n", + "\n", + "\n", + "resolution = 0.8\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "0\n", + "\n", + "\n", + "1\n", + "\n", + "\n", + "2\n", + "\n", + "\n", + "3\n", + "\n", + "\n", + "4\n", + "\n", + "\n", + "5\n", + "\n", + "\n", + "6\n", + "\n", + "\n", + "0\n", + "\n", + "\n", + "1\n", + "\n", + "\n", + "2\n", + "\n", + "\n", + "3\n", + "\n", + "\n", + "4\n", + "\n", + "\n", + "5\n", + "\n", + "\n", + "6\n", + "\n", + "\n", + "resolution = 0.7\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "0\n", + "\n", + "\n", + "1\n", + "\n", + "\n", + "2\n", + "\n", + "\n", + "3\n", + "\n", + "\n", + "4\n", + "\n", + "\n", + "5\n", + "\n", + "\n", + "0\n", + "\n", + "\n", + "1\n", + "\n", + "\n", + "2\n", + "\n", + "\n", + "3\n", + "\n", + "\n", + "4\n", + "\n", + "\n", + "5\n", + "\n", + "\n", + "resolution = 0.6\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "0\n", + "\n", + "\n", + "1\n", + "\n", + "\n", + "2\n", + "\n", + "\n", + "3\n", + "\n", + "\n", + "4\n", + "\n", + "\n", + "0\n", + "\n", + "\n", + "1\n", + "\n", + "\n", + "2\n", + "\n", + "\n", + "3\n", + "\n", + "\n", + "4\n", + "\n", + "\n", + "resolution = 0.5\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "0\n", + "\n", + "\n", + "1\n", + "\n", + "\n", + "2\n", + "\n", + "\n", + "3\n", + "\n", + "\n", + "4\n", + "\n", + "\n", + "5\n", + "\n", + "\n", + "0\n", + "\n", + "\n", + "1\n", + "\n", + "\n", + "2\n", + "\n", + "\n", + "3\n", + "\n", + "\n", + "4\n", + "\n", + "\n", + "5\n", + "\n", + "\n", + "resolution = 0.4\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "0\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "1\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "2\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "3\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "4\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "5\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "0\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "1\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "2\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "3\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "4\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "5\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "resolution = 0.3\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "0\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "1\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "2\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "3\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "4\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "0\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "1\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "2\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "3\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "4\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "resolution = 0.2\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "0\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "1\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "2\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "3\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "4\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "0\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "1\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "2\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "3\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "4\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "resolution = 0.1\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n" + ] + }, + "execution_count": 90, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "p = []\n", + "\n", + "p1 = plot(X)\n", + "for i in 1:length(maxsens_results)\n", + " p2 = deepcopy(p1)\n", + " plot!(p2, Y)\n", + " plot!(p2, maxsens_results[i].reachable, line = (1, :black), \n", + " fill = (0.7, :green), titlefontsize = 12, \n", + " title = \"resolution = $(round(1.0 - 0.1*i, digits = 2))\")\n", + " push!(p, p2)\n", + "end\n", + "\n", + "plot(p..., size = (700,600))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "@webio": { + "lastCommId": null, + "lastKernelId": null + }, + "kernelspec": { + "display_name": "Julia 1.0.5", + "language": "julia", + "name": "julia-1.0" + }, + "language_info": { + "file_extension": ".jl", + "mimetype": "application/julia", + "name": "julia", + "version": "1.0.1" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/src/adversarial/neurify.jl b/src/adversarial/neurify.jl index 6ac92e80..e7c73257 100644 --- a/src/adversarial/neurify.jl +++ b/src/adversarial/neurify.jl @@ -26,9 +26,11 @@ Sound but not complete. """ @with_kw struct Neurify - max_iter::Int64 = 100 + max_iter::Int64 = 5 tree_search::Symbol = :DFS # only :DFS/:BFS allowed? If so, we should assert this. model = Nothing() + optimizer = GLPK.Optimizer + splitted = Set() end struct SymbolicInterval{F<:AbstractPolytope} @@ -44,7 +46,7 @@ SymbolicInterval(x::Matrix{Float64}, y::Matrix{Float64}, interval::AbstractPolyt # Data to be passed during forward_layer struct SymbolicIntervalGradient sym::SymbolicInterval - LΛ::Vector{Vector{Float64}} + LΛ::Vector{Vector{Float64}} # mask for computing gradient. UΛ::Vector{Vector{Float64}} end @@ -56,21 +58,25 @@ function solve(solver::Neurify, problem::Problem) n = size(reach_lc, 1) m = size(reach_lc[1].a, 1) - model =Model(with_optimizer(GLPK.Optimizer)) + model = Model(with_optimizer(GLPK.Optimizer)) @variable(model, x[1:m], base_name="x") @constraint(model, [i in 1:n], reach_lc[i].a' * x <= reach_lc[i].b) - reach = forward_network(solver, problem.network, problem.input, model) - result = check_inclusion(reach.sym, problem.output, problem.network, model) # This called the check_inclusion function in ReluVal, because the constraints are Hyperrectangle + reach = forward_network(solver, problem.network, problem.input) + # println("forward finish") + # println(reach) + result = check_inclusion(reach.sym, problem.output, problem.network) # This called the check_inclusion function in ReluVal, because the constraints are Hyperrectangle result.status == :unknown || return result reach_list = SymbolicIntervalGradient[reach] for i in 2:solver.max_iter + println("splitting ", i) length(reach_list) > 0 || return BasicResult(:holds) reach = pick_out!(reach_list, solver.tree_search) - intervals = constraint_refinement(solver, problem.network, reach, model) + intervals = constraint_refinement(solver, problem.network, reach) for interval in intervals - reach = forward_network(solver, problem.network, interval, model) - result = check_inclusion(reach.sym, problem.output, problem.network, model) + reach = forward_network(solver, problem.network, interval) + result = check_inclusion(reach.sym, problem.output, problem.network) + # println(result) result.status == :violated && return result result.status == :holds || (push!(reach_list, reach)) end @@ -78,32 +84,41 @@ function solve(solver::Neurify, problem::Problem) return BasicResult(:unknown) end -function check_inclusion(reach::SymbolicInterval{HPolytope{N}}, output::AbstractPolytope, nnet::Network, model::JuMP.Model) where N +function check_inclusion(reach::SymbolicInterval{HPolytope{N}}, output::AbstractPolytope, nnet::Network) where N # The output constraint is in the form A*x < b # We try to maximize output constraint to find a violated case, or to verify the inclusion, # suppose the output is [1, 0, -1] * x < 2, Then we are maximizing reach.Up[1] * 1 + reach.Low[3] * (-1) - x = model[:x] - # reach_lc = reach.interval.constraints - # output_lc = output.constraints - # n = size(reach_lc, 1) - # m = size(reach_lc[1].a, 1) - # model =Model(with_optimizer(GLPK.Optimizer)) - # @variable(model, x[1:m]) - # @constraint(model, [i in 1:n], reach_lc[i].a' * x <= reach_lc[i].b) + # x = model[:x] + reach_lc = reach.interval.constraints + output_lc = output.constraints + n = size(reach_lc, 1) + m = size(reach_lc[1].a, 1) + model =Model(with_optimizer(GLPK.Optimizer)) + @variable(model, x[1:m]) + @constraint(model, [i in 1:n], reach_lc[i].a' * x <= reach_lc[i].b) + + # println("checking inclusion") + # println(reach_lc) + # println(output_lc) - for i in 1:size(output.constraints, 1) + for i in 1:size(output_lc, 1) obj = zeros(size(reach.Low, 2)) + # println(i, "constraint") + # println(output_lc[i].a) for j in 1:size(reach.Low, 1) - if output.constraints[i].a[j] > 0 - obj += output.constraints[i].a[j] * reach.Up[j,:] + if output_lc[i].a[j] > 0 + # println("up") + # println(reach.Up[j,:]) + obj += output_lc[i].a[j] * reach.Up[j,:] else - obj += output.constraints[i].a[j] * reach.Low[j,:] + # println("low") + # println(reach.Low[j,:]) + obj += output_lc[i].a[j] * reach.Low[j,:] end end @objective(model, Max, obj' * [x; [1]]) optimize!(model) - if termination_status(model) == MOI.OPTIMAL y = compute_output(nnet, value(x)) if !∈(y, output) @@ -114,7 +129,8 @@ function check_inclusion(reach::SymbolicInterval{HPolytope{N}}, output::Abstract exit() end end - if objective_value(model) > output.constraints[i].b + if objective_value(model) > output_lc[i].b + println(objective_value(model)," ", output_lc[i].b) return BasicResult(:unknown) end else @@ -129,59 +145,92 @@ function check_inclusion(reach::SymbolicInterval{HPolytope{N}}, output::Abstract return BasicResult(:holds) end -function constraint_refinement(solver::Neurify, nnet::Network, reach::SymbolicIntervalGradient, model::JuMP.Model) - i, j, gradient = get_nodewise_gradient(nnet, reach.LΛ, reach.UΛ) +function printconvex(shape) + vertices = tovrep(shape).vertices + for v in vertices + print(v, " ") + end + println() +end + +function constraint_refinement(solver::Neurify, nnet::Network, reach::SymbolicIntervalGradient) + i, j, gradient = get_nodewise_gradient(solver, nnet, reach.LΛ, reach.UΛ) # We can generate three more constraints # Symbolic representation of node i j is Low[i][j,:] and Up[i][j,:] + + # println("constraint_refinement") + # println(i," ",j) nnet_new = Network(nnet.layers[1:i]) - reach_new = forward_network(solver, nnet_new, reach.sym.interval, model) + reach_new = forward_network(solver, nnet_new, reach.sym.interval) + # println(reach_new) C, d = tosimplehrep(reach.sym.interval) + # println("C") + # println(C) + # println("d") + # println(d) + # printconvex(reach.sym.interval) l_sym = reach_new.sym.Low[[j], 1:end-1] l_off = reach_new.sym.Low[[j], end] u_sym = reach_new.sym.Up[[j], 1:end-1] u_off = reach_new.sym.Up[[j], end] + # println("l_sym, u_sym") + # println(l_sym) + # println(u_sym) + # println("l_off, u_off") + # println(l_off) + # println(u_off) intervals = Vector{HPolytope{Float64}}(undef, 3) intervals[1] = HPolytope([C; l_sym; u_sym], [d; -l_off; -u_off]) intervals[2] = HPolytope([C; l_sym; -u_sym], [d; -l_off; u_off]) intervals[3] = HPolytope([C; -l_sym; -u_sym], [d; l_off; u_off]) + # println("interval 1") + # printconvex(intervals[1]) + # println("interval 2") + # printconvex(intervals[2]) + # println("interval 3") + # printconvex(intervals[3]) # intervals[4] = HPolytope([C; -l_sym; u_sym], [d; l_off; -u_off]) lower bound can not be greater than upper bound return intervals end -function get_nodewise_gradient(nnet::Network, LΛ::Vector{Vector{Float64}}, UΛ::Vector{Vector{Float64}}) +function get_nodewise_gradient(solver::Neurify, nnet::Network, LΛ::Vector{Vector{Float64}}, UΛ::Vector{Vector{Float64}}) n_output = size(nnet.layers[end].weights, 1) n_length = length(nnet.layers) - LG = Matrix(1.0I, n_output, n_output) - UG = Matrix(1.0I, n_output, n_output) + LG = ones(n_output) + UG = ones(n_output) max_tuple = (0, 0, 0.0) for (k, layer) in enumerate(reverse(nnet.layers)) i = n_length - k + 1 - for j in size(layer.bias) - if LΛ[i][j] ∈ (0.0, 1.0) && UΛ[i][j] ∈ (0.0, 1.0) - max_gradient = max(abs(LG[j]), abs(UG[j])) - if max_gradient > max_tuple[3] - max_tuple = (i, j, max_gradient) + if layer.activation != Id() + # Not sure whether this is right, but by experiments, this caused infinity loop. + # Because a split didn't reduce over-approximation at all (the input set is not bisected). + for j in 1:size(layer.bias,1) + if in((i,j), solver.splitted) + # To prevent infinity loop + # Becuase the over-approximation, a split may not bisect the input set. + # But in some cases (which I don't have an example, just a sense) + # a node is indeed can be splitted twice. + continue + end + if (0 < LΛ[i][j] < 1) && (0 < UΛ[i][j] < 1) + max_gradient = max(abs(LG[j]), abs(UG[j])) + if max_gradient >= max_tuple[3] + max_tuple = (i, j, max_gradient) + end end end end i >= 1 || break - LG_hat = max.(LG, 0.0) * Diagonal(LΛ[i]) + min.(LG, 0.0) * Diagonal(UΛ[i]) - UG_hat = min.(UG, 0.0) * Diagonal(LΛ[i]) + max.(UG, 0.0) * Diagonal(UΛ[i]) - LG, UG = interval_map_right(layer.weights, LG_hat, UG_hat) + LG_hat = Diagonal(LΛ[i]) * max.(LG, 0.0) + Diagonal(UΛ[i]) * min.(LG, 0.0) + UG_hat = Diagonal(LΛ[i]) * min.(UG, 0.0) + Diagonal(UΛ[i]) * max.(UG, 0.0) + LG, UG = interval_map(copy(transpose(layer.weights)), LG_hat, UG_hat) end + push!(solver.splitted, (max_tuple[1], max_tuple[2])) return max_tuple end -function forward_network(solver, nnet::Network, input::AbstractPolytope, model::JuMP.Model) - reach = input - for layer in nnet.layers - reach = forward_layer(solver, layer, reach, model) - end - return reach -end - -function forward_layer(solver::Neurify, layer::Layer, input, model::JuMP.Model) - return forward_act(forward_linear(solver, input, layer), layer, model) +function forward_layer(solver::Neurify, layer::Layer, input) + return forward_act(forward_linear(solver, input, layer), layer) end # Symbolic forward_linear for the first layer @@ -205,26 +254,26 @@ function forward_linear(solver::Neurify, input::SymbolicIntervalGradient, layer: end # Symbolic forward_act -function forward_act(input::SymbolicIntervalGradient, layer::Layer{ReLU}, model::JuMP.Model) +function forward_act(input::SymbolicIntervalGradient, layer::Layer{ReLU}) n_node, n_input = size(input.sym.Up) output_Low, output_Up = input.sym.Low[:, :], input.sym.Up[:, :] mask_lower, mask_upper = zeros(Float64, n_node), ones(Float64, n_node) for i in 1:n_node - if upper_bound(input.sym.Up[i, :], input.sym.interval, model) <= 0.0 + if upper_bound(input.sym.Up[i, :], input.sym.interval) <= 0.0 # Update to zero mask_lower[i], mask_upper[i] = 0, 0 output_Up[i, :] = zeros(n_input) output_Low[i, :] = zeros(n_input) - elseif lower_bound(input.sym.Low[i, :], input.sym.interval, model) >= 0 + elseif lower_bound(input.sym.Low[i, :], input.sym.interval) >= 0 # Keep dependency mask_lower[i], mask_upper[i] = 1, 1 else # Symbolic linear relaxation # This is different from ReluVal - up_up = upper_bound(input.sym.Up[i, :], input.sym.interval, model) - up_low = lower_bound(input.sym.Up[i, :], input.sym.interval, model) - low_up = upper_bound(input.sym.Low[i, :], input.sym.interval, model) - low_low = lower_bound(input.sym.Low[i, :], input.sym.interval, model) + up_up = upper_bound(input.sym.Up[i, :], input.sym.interval) + up_low = lower_bound(input.sym.Up[i, :], input.sym.interval) + low_up = upper_bound(input.sym.Low[i, :], input.sym.interval) + low_low = lower_bound(input.sym.Low[i, :], input.sym.interval) up_slop = up_up / (up_up - up_low) low_slop = low_up / (low_up - low_low) output_Low[i, :] = low_slop * output_Low[i, :] @@ -239,7 +288,7 @@ function forward_act(input::SymbolicIntervalGradient, layer::Layer{ReLU}, model: return SymbolicIntervalGradient(sym, LΛ, UΛ) end -function forward_act(input::SymbolicIntervalGradient, layer::Layer{Id}, model::JuMP.Model) +function forward_act(input::SymbolicIntervalGradient, layer::Layer{Id}) sym = input.sym n_node = size(input.sym.Up, 1) LΛ = push!(input.LΛ, ones(Float64, n_node)) @@ -248,12 +297,12 @@ function forward_act(input::SymbolicIntervalGradient, layer::Layer{Id}, model::J end -function upper_bound(map::Vector{Float64}, input::HPolytope, model::JuMP.Model) - # n = size(input.constraints, 1) - # m = size(input.constraints[1].a, 1) - # model =Model(with_optimizer(GLPK.Optimizer)) - # @variable(model, x[1:m]) - # @constraint(model, [i in 1:n], input.constraints[i].a' * x <= input.constraints[i].b) +function upper_bound(map::Vector{Float64}, input::HPolytope) + n = size(input.constraints, 1) + m = size(input.constraints[1].a, 1) + model =Model(with_optimizer(GLPK.Optimizer)) + @variable(model, x[1:m]) + @constraint(model, [i in 1:n], input.constraints[i].a' * x <= input.constraints[i].b) x = model[:x] @objective(model, Max, map' * [x; [1]]) optimize!(model) @@ -261,12 +310,12 @@ function upper_bound(map::Vector{Float64}, input::HPolytope, model::JuMP.Model) end -function lower_bound(map::Vector{Float64}, input::HPolytope, model::JuMP.Model) - # n = size(input.constraints, 1) - # m = size(input.constraints[1].a, 1) - # model =Model(with_optimizer(GLPK.Optimizer)) - # @variable(model, x[1:m]) - # @constraint(model, [i in 1:n], input.constraints[i].a' * x <= input.constraints[i].b) +function lower_bound(map::Vector{Float64}, input::HPolytope) + n = size(input.constraints, 1) + m = size(input.constraints[1].a, 1) + model =Model(with_optimizer(GLPK.Optimizer)) + @variable(model, x[1:m]) + @constraint(model, [i in 1:n], input.constraints[i].a' * x <= input.constraints[i].b) x = model[:x] @objective(model, Min, map' * [x; [1]]) optimize!(model) From 646fce2eac3a869c80d2fca35abbc85f6b3fd6b4 Mon Sep 17 00:00:00 2001 From: Tianhao Date: Wed, 1 Jul 2020 03:04:32 -0400 Subject: [PATCH 18/66] add a new R2 to R2 mapping runtest, covering spliting part of neurify --- examples/networks/R2_R2.nnet | 15 +++++++++ src/adversarial/neurify.jl | 41 +++---------------------- test/runtests3.jl | 59 ++++++++++++++++++++++++++++++++++++ 3 files changed, 79 insertions(+), 36 deletions(-) create mode 100644 examples/networks/R2_R2.nnet create mode 100644 test/runtests3.jl diff --git a/examples/networks/R2_R2.nnet b/examples/networks/R2_R2.nnet new file mode 100644 index 00000000..393e6a8b --- /dev/null +++ b/examples/networks/R2_R2.nnet @@ -0,0 +1,15 @@ +2 +2,2,2 +0 +0 +0 +0 +0 +1,1 +-1,1 +-1 +-1 +1,0 +0,1 +0 +0 diff --git a/src/adversarial/neurify.jl b/src/adversarial/neurify.jl index e7c73257..a867e3af 100644 --- a/src/adversarial/neurify.jl +++ b/src/adversarial/neurify.jl @@ -26,11 +26,11 @@ Sound but not complete. """ @with_kw struct Neurify - max_iter::Int64 = 5 + max_iter::Int64 = 10 tree_search::Symbol = :DFS # only :DFS/:BFS allowed? If so, we should assert this. model = Nothing() optimizer = GLPK.Optimizer - splitted = Set() + splitted = Set() # To prevent infinity loop. Not the best solution, need to be modified in the future. end struct SymbolicInterval{F<:AbstractPolytope} @@ -51,6 +51,8 @@ struct SymbolicIntervalGradient end function solve(solver::Neurify, problem::Problem) + + while !isempty(solver.splitted) pop!(solver.splitted) end problem = Problem(problem.network, convert(HPolytope, problem.input), convert(HPolytope, problem.output)) reach_lc = problem.input.constraints @@ -63,20 +65,16 @@ function solve(solver::Neurify, problem::Problem) @constraint(model, [i in 1:n], reach_lc[i].a' * x <= reach_lc[i].b) reach = forward_network(solver, problem.network, problem.input) - # println("forward finish") - # println(reach) result = check_inclusion(reach.sym, problem.output, problem.network) # This called the check_inclusion function in ReluVal, because the constraints are Hyperrectangle result.status == :unknown || return result reach_list = SymbolicIntervalGradient[reach] for i in 2:solver.max_iter - println("splitting ", i) length(reach_list) > 0 || return BasicResult(:holds) reach = pick_out!(reach_list, solver.tree_search) intervals = constraint_refinement(solver, problem.network, reach) for interval in intervals reach = forward_network(solver, problem.network, interval) result = check_inclusion(reach.sym, problem.output, problem.network) - # println(result) result.status == :violated && return result result.status == :holds || (push!(reach_list, reach)) end @@ -98,22 +96,13 @@ function check_inclusion(reach::SymbolicInterval{HPolytope{N}}, output::Abstract @variable(model, x[1:m]) @constraint(model, [i in 1:n], reach_lc[i].a' * x <= reach_lc[i].b) - # println("checking inclusion") - # println(reach_lc) - # println(output_lc) for i in 1:size(output_lc, 1) obj = zeros(size(reach.Low, 2)) - # println(i, "constraint") - # println(output_lc[i].a) for j in 1:size(reach.Low, 1) if output_lc[i].a[j] > 0 - # println("up") - # println(reach.Up[j,:]) obj += output_lc[i].a[j] * reach.Up[j,:] else - # println("low") - # println(reach.Low[j,:]) obj += output_lc[i].a[j] * reach.Low[j,:] end end @@ -130,7 +119,7 @@ function check_inclusion(reach::SymbolicInterval{HPolytope{N}}, output::Abstract end end if objective_value(model) > output_lc[i].b - println(objective_value(model)," ", output_lc[i].b) + # println(objective_value(model)," ", output_lc[i].b) return BasicResult(:unknown) end else @@ -158,37 +147,17 @@ function constraint_refinement(solver::Neurify, nnet::Network, reach::SymbolicIn # We can generate three more constraints # Symbolic representation of node i j is Low[i][j,:] and Up[i][j,:] - # println("constraint_refinement") - # println(i," ",j) nnet_new = Network(nnet.layers[1:i]) reach_new = forward_network(solver, nnet_new, reach.sym.interval) - # println(reach_new) C, d = tosimplehrep(reach.sym.interval) - # println("C") - # println(C) - # println("d") - # println(d) - # printconvex(reach.sym.interval) l_sym = reach_new.sym.Low[[j], 1:end-1] l_off = reach_new.sym.Low[[j], end] u_sym = reach_new.sym.Up[[j], 1:end-1] u_off = reach_new.sym.Up[[j], end] - # println("l_sym, u_sym") - # println(l_sym) - # println(u_sym) - # println("l_off, u_off") - # println(l_off) - # println(u_off) intervals = Vector{HPolytope{Float64}}(undef, 3) intervals[1] = HPolytope([C; l_sym; u_sym], [d; -l_off; -u_off]) intervals[2] = HPolytope([C; l_sym; -u_sym], [d; -l_off; u_off]) intervals[3] = HPolytope([C; -l_sym; -u_sym], [d; l_off; u_off]) - # println("interval 1") - # printconvex(intervals[1]) - # println("interval 2") - # printconvex(intervals[2]) - # println("interval 3") - # printconvex(intervals[3]) # intervals[4] = HPolytope([C; -l_sym; u_sym], [d; l_off; -u_off]) lower bound can not be greater than upper bound return intervals end diff --git a/test/runtests3.jl b/test/runtests3.jl new file mode 100644 index 00000000..08ebc5fa --- /dev/null +++ b/test/runtests3.jl @@ -0,0 +1,59 @@ +using LazySets, Test, LinearAlgebra +using NeuralVerification +import NeuralVerification: ReLU, Id + +macro no_error(ex) + quote + try $(esc(ex)) + true + catch + false + end + end +end + +function test_R2_R2() + net_file = "$(@__DIR__)/../examples/networks/R2_R2.nnet" + # This is a 3 layer simple network mapping from R2 to R2. + + # y1 = x1 + x2 - 1 + # y2 = -x1 + x2 - 1 + + # z1 = ReLU(y1) + # z2 = ReLU(y2) + + # o1 = 1*z1 + 0*z2 + 0 + # o2 = 0*z1 + 1*z2 + 0 + + net = read_nnet(net_file, last_layer_activation = Id()) + + A = [ + 1. 0.; + 0. 1.; + -1. 0.; + 0. -1.; + ] + b = [ + 1.1 + 1.1 + 0.1 + 0.1 + ] + X = Hyperrectangle(low=[-1,-1], high=[1,1]) + # The true output set is a union of two segments : (0,0)->(0,1) U (0,0)->(1,0) + Y = HPolytope(A, b) # Output constraints. Hyperrectangle: -0.1, -0.1, 1.1, 1.1 + problem = Problem(net, X, Y) + + solver = Neurify() + result = solve(solver, problem) + @test @no_error result = solve(solver, problem) + result = solve(solver, problem) + @test result.status == :holds + + solver = ReluVal() + @test @no_error result = solve(solver, problem) + result = solve(solver, problem) + @test result.status == :holds +end + +test_R2_R2() \ No newline at end of file From 1a7db94820421b2e128333878801b3e43a4ad5cf Mon Sep 17 00:00:00 2001 From: Tianhao Date: Wed, 1 Jul 2020 13:34:43 -0400 Subject: [PATCH 19/66] update runtest3.jl --- test/runtests3.jl | 86 ++++++++++++++++++++++------------------------- 1 file changed, 41 insertions(+), 45 deletions(-) diff --git a/test/runtests3.jl b/test/runtests3.jl index 08ebc5fa..f7da2776 100644 --- a/test/runtests3.jl +++ b/test/runtests3.jl @@ -12,48 +12,44 @@ macro no_error(ex) end end -function test_R2_R2() - net_file = "$(@__DIR__)/../examples/networks/R2_R2.nnet" - # This is a 3 layer simple network mapping from R2 to R2. - - # y1 = x1 + x2 - 1 - # y2 = -x1 + x2 - 1 - - # z1 = ReLU(y1) - # z2 = ReLU(y2) - - # o1 = 1*z1 + 0*z2 + 0 - # o2 = 0*z1 + 1*z2 + 0 - - net = read_nnet(net_file, last_layer_activation = Id()) - - A = [ - 1. 0.; - 0. 1.; - -1. 0.; - 0. -1.; - ] - b = [ - 1.1 - 1.1 - 0.1 - 0.1 - ] - X = Hyperrectangle(low=[-1,-1], high=[1,1]) - # The true output set is a union of two segments : (0,0)->(0,1) U (0,0)->(1,0) - Y = HPolytope(A, b) # Output constraints. Hyperrectangle: -0.1, -0.1, 1.1, 1.1 - problem = Problem(net, X, Y) - - solver = Neurify() - result = solve(solver, problem) - @test @no_error result = solve(solver, problem) - result = solve(solver, problem) - @test result.status == :holds - - solver = ReluVal() - @test @no_error result = solve(solver, problem) - result = solve(solver, problem) - @test result.status == :holds -end - -test_R2_R2() \ No newline at end of file +net_file = "$(@__DIR__)/../examples/networks/R2_R2.nnet" +# This is a 3 layer simple network mapping from R2 to R2. + +# y1 = x1 + x2 - 1 +# y2 = -x1 + x2 - 1 + +# z1 = ReLU(y1) +# z2 = ReLU(y2) + +# o1 = 1*z1 + 0*z2 + 0 +# o2 = 0*z1 + 1*z2 + 0 + +net = read_nnet(net_file, last_layer_activation = Id()) + +A = [ + 1. 0.; + 0. 1.; + -1. 0.; + 0. -1.; +] +b = [ + 1.1 + 1.1 + 0.1 + 0.1 +] +X = Hyperrectangle(low=[-1,-1], high=[1,1]) +# The true output set is a union of two segments : (0,0)->(0,1) U (0,0)->(1,0) +Y = HPolytope(A, b) # Output constraints. Hyperrectangle: -0.1, -0.1, 1.1, 1.1 +problem = Problem(net, X, Y) + +solver = Neurify() +result = solve(solver, problem) +@test @no_error result = solve(solver, problem) +result = solve(solver, problem) +@test result.status == :holds + +solver = ReluVal() +@test @no_error result = solve(solver, problem) +result = solve(solver, problem) +@test result.status == :holds From 5b9e65aad37ab3e3df7f7c63821002f7fe5fdb83 Mon Sep 17 00:00:00 2001 From: Tianhao Date: Wed, 1 Jul 2020 16:20:25 -0400 Subject: [PATCH 20/66] add mnist test, include mnist test and splitting test in runtests.jl --- test/MNIST_1000_data.jld2 | Bin 0 -> 797444 bytes test/mnist_1000.jl | 82 ++++++++++++++++++++++++++++++++++++++ test/runtests.jl | 4 +- test/runtests3.jl | 55 ------------------------- test/splitting.jl | 51 ++++++++++++++++++++++++ 5 files changed, 136 insertions(+), 56 deletions(-) create mode 100644 test/MNIST_1000_data.jld2 create mode 100644 test/mnist_1000.jl delete mode 100644 test/runtests3.jl create mode 100644 test/splitting.jl diff --git a/test/MNIST_1000_data.jld2 b/test/MNIST_1000_data.jld2 new file mode 100644 index 0000000000000000000000000000000000000000..d98063548f954024a979c07b46beddcb63f259b0 GIT binary patch literal 797444 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∋fVu~saf89<9OG{g+fgK1_auptCX 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 literal 0 HcmV?d00001 diff --git a/test/mnist_1000.jl b/test/mnist_1000.jl new file mode 100644 index 00000000..b10f7def --- /dev/null +++ b/test/mnist_1000.jl @@ -0,0 +1,82 @@ +using LazySets, Test, LinearAlgebra, GLPKMathProgInterface +using NeuralVerification +import NeuralVerification: ReLU, Id +using JLD2 + +function test_solver(solver, test_selected) + + # index of all violation cases in the first 1000 images. + violation_idx = [25, 142, 179, 183, 283, 285, 387, 392, 612, 647, 737] + # index of selected holding cases in the first 1000 images. + satisfied_idx = [10, 100, 200, 300, 400, 500 ,600, 700, 800, 900, 999, 213, 391, 660, 911] + + if test_selected + test_idx = [violation_idx; satisfied_idx] + else + test_idx = 1:1000 + end + + @load "MNIST_1000_data.jld2" train_x train_y + + net_file = "$(@__DIR__)/../examples/networks/mnist_1000.nnet" + mnist_net = read_nnet(net_file, last_layer_activation = Id()) + + for i = test_idx + + input_center = reshape(train_x[:,:,i], 28*28) + label = train_y[i] + A = zeros(Float64, 10, 10) + A[diagind(A)] .= 1 + A[:, label+1] = A[:, label+1] .- 1 + A = A[1:end .!= label+1,:] + + b = zeros(Float64, 9) + + Y = HPolytope(A, b) + pred = argmax(NeuralVerification.compute_output(mnist_net, input_center))-1 + + if pred != label + continue + end + + epsilon = 1.0/255.0 + upper = input_center .+ epsilon + lower = input_center .- epsilon + clamp!(upper, 0.0, 1.0) + clamp!(lower, 0.0, 1.0) + X = Hyperrectangle(low=lower, high=upper) + + problem_mnist = Problem(mnist_net, X, Y) + + result = solve(solver, problem_mnist) + + if result.status == :violated + @test i ∈ violation_idx + noisy = argmax(NeuralVerification.compute_output(mnist_net, result.counter_example))-1 + @test noisy != pred + elseif result.status == :holds + @test !(i ∈ violation_idx) + else #result.status == :unkown + + end + end +end + +# if test_selected = true, only test selected index. Otherwise, test all 1000 images. +test_selected = true + +if test_selected + @testset "MNIST selected, ReluVal" begin + test_solver(ReluVal(), test_selected) + end + @testset "MNIST selected, Neurify" begin + test_solver(Neurify(), test_selected) + end +else + @testset "MNIST 1000, ReluVal" begin + test_solver(ReluVal(), test_selected) + end + @testset "MNIST 1000, Neurify" begin + test_solver(Neurify(), test_selected) + end +end \ No newline at end of file diff --git a/test/runtests.jl b/test/runtests.jl index 3c63c760..d23489d3 100644 --- a/test/runtests.jl +++ b/test/runtests.jl @@ -1,7 +1,9 @@ +include("mnist_1000.jl") include("identity_network.jl") include("relu_network.jl") include("inactive_relus.jl") if Base.find_package("Flux") != nothing include("flux.jl") end -include("complements.jl") \ No newline at end of file +include("complements.jl") +include("splitting.jl") diff --git a/test/runtests3.jl b/test/runtests3.jl deleted file mode 100644 index f7da2776..00000000 --- a/test/runtests3.jl +++ /dev/null @@ -1,55 +0,0 @@ -using LazySets, Test, LinearAlgebra -using NeuralVerification -import NeuralVerification: ReLU, Id - -macro no_error(ex) - quote - try $(esc(ex)) - true - catch - false - end - end -end - -net_file = "$(@__DIR__)/../examples/networks/R2_R2.nnet" -# This is a 3 layer simple network mapping from R2 to R2. - -# y1 = x1 + x2 - 1 -# y2 = -x1 + x2 - 1 - -# z1 = ReLU(y1) -# z2 = ReLU(y2) - -# o1 = 1*z1 + 0*z2 + 0 -# o2 = 0*z1 + 1*z2 + 0 - -net = read_nnet(net_file, last_layer_activation = Id()) - -A = [ - 1. 0.; - 0. 1.; - -1. 0.; - 0. -1.; -] -b = [ - 1.1 - 1.1 - 0.1 - 0.1 -] -X = Hyperrectangle(low=[-1,-1], high=[1,1]) -# The true output set is a union of two segments : (0,0)->(0,1) U (0,0)->(1,0) -Y = HPolytope(A, b) # Output constraints. Hyperrectangle: -0.1, -0.1, 1.1, 1.1 -problem = Problem(net, X, Y) - -solver = Neurify() -result = solve(solver, problem) -@test @no_error result = solve(solver, problem) -result = solve(solver, problem) -@test result.status == :holds - -solver = ReluVal() -@test @no_error result = solve(solver, problem) -result = solve(solver, problem) -@test result.status == :holds diff --git a/test/splitting.jl b/test/splitting.jl new file mode 100644 index 00000000..da4847b6 --- /dev/null +++ b/test/splitting.jl @@ -0,0 +1,51 @@ +using LazySets, Test, LinearAlgebra +using NeuralVerification +import NeuralVerification: ReLU, Id + +macro no_error(ex) + quote + try $(esc(ex)) + true + catch + false + end + end +end + +@testset "Splitting Test" begin + + net_file = "$(@__DIR__)/../examples/networks/R2_R2.nnet" + # This is a 3 layer simple network mapping from R2 to R2. + + # y1 = x1 + x2 - 1 + # y2 = -x1 + x2 - 1 + + # z1 = ReLU(y1) + # z2 = ReLU(y2) + + # o1 = 1*z1 + 0*z2 + 0 + # o2 = 0*z1 + 1*z2 + 0 + + net = read_nnet(net_file, last_layer_activation = Id()) + A = [1. 0.; 0. 1.; -1. 0.; 0. -1.;] + b = [1.1, 1.1, 0.1, 0.1] + X = Hyperrectangle(low=[-1,-1], high=[1,1]) + # The true output set is a union of two segments : (0,0)->(0,1) U (0,0)->(1,0) + Y = HPolytope(A, b) # Output constraints. Hyperrectangle: -0.1, -0.1, 1.1, 1.1 + problem = Problem(net, X, Y) + + @testset "Neurify" begin + solver = Neurify() + @test @no_error result = solve(solver, problem) + result = solve(solver, problem) + @test result.status == :holds + end + + @testset "ReluVal" begin + solver = ReluVal() + @test @no_error result = solve(solver, problem) + result = solve(solver, problem) + @test result.status == :holds + end + +end \ No newline at end of file From df33691afa031966e60cb17dd83d94d616285f1e Mon Sep 17 00:00:00 2001 From: Tianhao Date: Wed, 1 Jul 2020 16:23:26 -0400 Subject: [PATCH 21/66] add mnist network --- examples/networks/mnist_1000.nnet | 128 ++++++++++++++++++++++++++++++ 1 file changed, 128 insertions(+) create mode 100644 examples/networks/mnist_1000.nnet diff --git a/examples/networks/mnist_1000.nnet b/examples/networks/mnist_1000.nnet new file mode 100644 index 00000000..87cbbda0 --- /dev/null +++ b/examples/networks/mnist_1000.nnet @@ -0,0 +1,128 @@ +// Neural Network File Format by Kyle Julian, Stanford 2016 +3,784,10,784, +784,30,20,10, +0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +-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,-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,-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,-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,-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,-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,-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,-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,-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,-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,-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,-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,-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,-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,-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,-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,-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,-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,-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,-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,-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,-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,-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,-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,-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.84023e-02,-1.57635e-02,-6.92363e-03,1.67632e-02,-3.36227e-02,2.14185e-02,-7.34733e-03,1.81694e-02,4.96489e-03,-4.37301e-03,9.90575e-03,1.76185e-03,1.35047e-02,-1.29193e-02,-2.57311e-03,-3.21398e-03,5.17657e-03,-1.42671e-04,3.12202e-02,1.11139e-02,-1.33002e-02,-2.15700e-02,-5.98627e-03,-1.54050e-02,-1.14446e-02,1.71006e-03,2.12903e-02,1.94120e-02,-3.49125e-02,2.21400e-02,9.97728e-03,3.38770e-02,2.35735e-02,-3.25297e-02,-3.36422e-02,-1.61007e-02,3.17408e-02,-5.60826e-03,1.53699e-02,-1.80377e-02,3.48575e-02,-1.44202e-02,2.73507e-02,3.13130e-03,-1.58097e-02,1.86402e-02,-1.79574e-02,1.12610e-02,-9.78799e-03,-2.48301e-03,-3.28863e-02,-1.69569e-02,1.93798e-02,-8.68133e-03,3.55732e-02,2.86282e-02,-1.67227e-03,-2.38387e-02,2.17487e-02,1.10567e-02,-2.31410e-02,2.32315e-02,2.24967e-02,3.33816e-02,-1.72666e-02,-4.84248e-03,1.64505e-04,1.33757e-02,-1.59274e-02,-1.17228e-02,4.50553e-02,2.47371e-02,5.27886e-02,2.79924e-02,2.82296e-02,1.93848e-02,2.14335e-02,2.16308e-02,-3.05098e-02,1.89487e-02,-2.37775e-02,-2.62533e-02,2.17194e-03,-6.08597e-03,2.09759e-02,-2.06834e-02,-3.17457e-02,2.59408e-02,-5.27185e-03,1.79564e-02,1.05946e-02,-2.89554e-02,-3.53400e-04,5.41722e-03,-3.20157e-02,-2.48643e-02,8.20523e-04,-1.10266e-02,-3.96151e-02,-4.50698e-02,1.84835e-02,-3.16602e-02,-8.77260e-03,-1.50524e-02,-4.88819e-02,-4.03337e-02,2.79082e-02,-4.81443e-03,1.86815e-02,6.59878e-03,1.13098e-02,2.66771e-02,3.38648e-02,-2.36996e-02,4.48221e-03,2.63771e-02,2.30988e-02,1.74931e-02,-3.30684e-02,-4.42021e-02,-5.25394e-02,-2.16875e-02,-4.06894e-03,-7.51421e-02,-1.15162e-02,-5.71320e-02,-7.26548e-02,-4.67060e-02,-2.26615e-02,-5.98974e-03,-6.25619e-02,-1.27269e-02,2.56587e-02,3.34286e-04,-1.14978e-02,-2.81280e-03,-6.67147e-03,1.07096e-03,-2.30338e-02,-2.96333e-02,-1.63650e-02,-4.15878e-03,-2.18291e-02,9.23323e-03,6.04897e-03,-6.60933e-03,1.95957e-02,1.02986e-02,1.59650e-02,1.96883e-02,-1.30236e-02,4.86149e-02,3.75851e-02,2.79171e-02,-1.36727e-02,-2.30794e-02,-4.39100e-02,-5.00531e-02,-1.33140e-02,-5.51586e-02,-7.71412e-02,-1.63626e-02,-8.10271e-03,-7.62715e-03,-5.16647e-02,-4.79106e-03,-1.37044e-02,-8.11514e-03,-2.84614e-02,-1.62772e-02,-9.12437e-03,1.56767e-02,1.15146e-02,2.69698e-02,7.13170e-02,1.00223e-01,1.05457e-01,9.13797e-02,6.07306e-02,1.23051e-01,5.05562e-02,-1.32932e-02,-7.84210e-02,-6.66543e-02,-8.26064e-02,-5.24411e-02,-1.17800e-01,-7.52130e-02,-3.80580e-02,2.04054e-02,5.48124e-02,9.03087e-03,-3.57992e-02,-1.09556e-02,2.14817e-02,-2.60898e-02,1.69001e-02,2.31188e-02,4.39933e-02,-1.26253e-02,2.57491e-02,-4.43782e-03,1.13532e-01,1.08728e-01,1.57761e-01,1.25291e-01,1.26310e-01,1.00581e-01,4.19412e-02,-2.02514e-02,-1.07799e-01,-1.26679e-01,-1.53615e-01,-6.31860e-02,-2.78140e-02,8.60788e-03,6.44912e-02,8.44792e-02,1.26152e-01,1.18994e-01,-2.95086e-02,-1.76517e-03,-3.74068e-02,-2.54620e-02,1.66793e-02,-2.24280e-02,3.45805e-03,5.23546e-02,7.77286e-02,9.85205e-02,9.73444e-02,1.21117e-01,1.86099e-01,1.28905e-01,1.26862e-01,1.23536e-01,4.35051e-02,5.37897e-02,1.53517e-02,-7.66028e-02,-8.50975e-02,-2.80351e-02,1.84103e-02,2.34433e-02,3.57315e-02,9.84156e-02,7.83295e-02,4.94910e-02,-4.84253e-02,-2.02131e-02,2.24939e-02,-1.43977e-02,2.03969e-03,1.91137e-02,1.58539e-02,1.62485e-02,7.40280e-02,1.08841e-01,1.02326e-01,1.06981e-01,1.53590e-01,1.81873e-01,1.17133e-01,1.60867e-01,1.20291e-01,4.36736e-02,6.08374e-02,-1.37711e-02,3.94097e-02,-1.60230e-02,2.09196e-02,1.51860e-02,3.68602e-02,8.59171e-02,4.96589e-02,-7.37506e-03,-9.00223e-02,-6.44014e-02,-2.64443e-02,5.74129e-04,-6.66703e-03,1.51434e-02,4.42101e-02,3.53815e-02,2.94431e-02,3.57630e-02,3.91176e-02,1.02382e-01,1.06677e-01,1.53563e-01,1.38920e-01,6.84083e-02,5.61058e-02,3.31517e-03,-8.96511e-04,-1.09569e-03,-7.50734e-03,-9.77108e-03,-5.68425e-02,-5.44200e-02,-1.30387e-02,4.14594e-02,6.24373e-02,-2.41626e-02,-6.96174e-02,-7.36209e-02,-4.88843e-02,3.01917e-02,7.31414e-03,3.35998e-02,4.95936e-03,9.33734e-03,-2.51644e-02,-1.08736e-02,3.48339e-02,1.83203e-02,8.27557e-02,1.23319e-01,6.49210e-02,-3.06063e-03,-9.68802e-02,-1.30061e-01,-4.59554e-02,-2.01209e-02,1.62920e-02,-2.46536e-02,-5.55122e-02,-5.45542e-02,-4.58911e-02,2.70946e-02,6.24210e-02,1.27331e-02,5.45155e-03,-4.87426e-02,-6.24493e-03,-1.16359e-02,-1.97517e-02,-1.69447e-02,1.89580e-02,1.45407e-02,-2.92743e-02,-9.36295e-02,-1.12834e-01,4.64847e-03,1.71035e-02,-3.20824e-02,-1.15470e-01,-1.76589e-01,-2.63210e-01,-2.31943e-01,-6.31587e-02,3.00619e-03,6.01543e-03,-2.08442e-02,-1.53994e-02,-3.27564e-02,7.33878e-03,2.82435e-02,3.64895e-02,-6.47994e-03,-2.35171e-02,-1.96018e-02,2.91410e-02,-3.91572e-03,1.46532e-02,2.98429e-03,-2.59233e-02,-2.07880e-02,-3.92555e-02,-1.32219e-01,-1.72895e-01,-9.00095e-02,-1.23231e-01,-1.57322e-01,-1.69235e-01,-2.11410e-01,-3.05066e-01,-1.54795e-01,-4.24616e-02,5.08453e-02,4.41584e-02,-7.64703e-03,1.00820e-02,-7.12381e-02,-5.84558e-02,2.89140e-02,1.59546e-02,9.38667e-03,9.71807e-03,1.72220e-02,1.48991e-02,3.00671e-02,5.11443e-03,-1.79226e-02,3.68566e-02,-1.05328e-02,-3.05853e-02,-1.29542e-01,-1.04680e-01,-9.42632e-02,-2.29057e-01,-2.12677e-01,-2.14444e-01,-2.27353e-01,-2.05870e-01,-9.52155e-02,2.52686e-02,6.91554e-02,1.19534e-01,5.23172e-02,1.97210e-02,2.30495e-02,-1.21539e-02,-1.76944e-02,3.82732e-02,1.18113e-02,-2.27424e-02,5.47598e-02,-1.61725e-02,-1.38828e-02,-2.94006e-02,3.06687e-02,4.37900e-03,2.05282e-02,-4.37092e-02,-9.34134e-02,-1.23679e-01,-1.79943e-01,-1.73731e-01,-2.09931e-01,-1.79657e-01,-1.52137e-01,-6.79822e-02,5.97194e-02,1.49278e-01,1.21828e-01,1.28674e-01,1.03791e-01,4.89542e-02,1.55454e-02,-6.11984e-02,5.36043e-02,-3.64888e-02,-1.92318e-03,2.99189e-03,4.15579e-02,-1.18237e-02,2.30085e-02,-1.75772e-02,-3.37947e-02,2.89542e-03,-5.88863e-03,-8.24484e-03,-8.08317e-02,-5.52961e-02,-8.29674e-02,-1.04609e-01,-1.27392e-01,-4.32353e-02,-1.64483e-02,1.13329e-01,1.36472e-01,2.27684e-01,1.74978e-01,1.19073e-01,7.13017e-02,-5.00061e-02,-5.30274e-02,-4.59640e-02,-3.85569e-02,-5.12948e-02,-3.51434e-02,4.70899e-02,7.20489e-02,4.08791e-02,3.03014e-02,-3.42038e-02,1.13604e-02,1.74601e-03,-6.52170e-02,-3.96992e-02,-9.63363e-02,-1.18868e-01,-8.85899e-02,-2.61206e-02,1.24721e-03,4.39771e-02,1.75876e-01,2.20224e-01,2.74593e-01,2.59009e-01,1.21313e-01,5.72087e-02,-7.12728e-02,-8.45189e-02,-9.46473e-02,-5.40825e-02,-9.93502e-02,-8.23556e-02,-7.23725e-03,8.60211e-03,3.82814e-02,-1.76832e-02,-1.62109e-02,-6.81506e-03,-2.11874e-02,-2.77210e-02,-7.72465e-02,-4.03159e-02,-8.13569e-02,-1.52743e-01,-8.07666e-02,-8.25217e-02,4.35505e-02,1.07435e-01,1.33995e-01,1.78342e-01,2.28702e-01,1.82436e-01,8.95714e-02,-5.69282e-02,-1.34876e-01,-1.26383e-01,-1.50546e-01,-1.07320e-01,-1.27955e-01,-4.87894e-02,-1.46495e-02,3.68393e-02,2.98978e-02,1.67783e-02,1.09336e-02,1.58518e-02,1.14194e-02,-1.50766e-02,-7.84521e-02,-3.91860e-02,-8.92206e-02,-1.45328e-01,-4.76286e-02,-3.43971e-02,-2.20092e-02,4.25579e-02,9.24680e-02,1.53655e-01,2.18938e-01,1.25023e-01,9.24733e-02,-7.16228e-02,-1.46604e-01,-1.84544e-01,-1.62021e-01,-8.39561e-02,-1.31413e-01,-6.79662e-02,1.98762e-02,9.34496e-02,1.90007e-02,-1.54662e-02,-2.25889e-02,-1.57456e-02,-1.24322e-02,-1.66249e-02,-6.92897e-02,-5.35600e-02,-7.11896e-02,-9.14611e-02,-6.97757e-02,-1.17939e-02,9.42489e-05,6.52899e-02,6.73638e-02,1.13803e-01,7.95894e-02,6.46674e-02,6.33527e-03,-8.24603e-02,-1.54051e-01,-1.47690e-01,-1.27349e-01,-7.58788e-02,-5.36274e-02,-2.82488e-02,5.68888e-02,6.40716e-02,-4.81799e-03,-1.50016e-02,2.24237e-02,1.63077e-02,2.77314e-02,-1.34693e-02,-1.41943e-02,-4.31733e-02,-4.90478e-02,-4.25811e-02,4.12787e-03,4.41871e-03,3.15659e-02,4.56688e-02,6.38725e-02,6.05579e-02,2.32548e-02,5.05255e-02,2.64984e-03,-9.11639e-02,-1.22872e-01,-8.39729e-02,-5.31821e-02,-8.60423e-02,-5.67947e-03,5.34253e-03,1.25185e-02,2.00705e-02,1.97009e-02,7.95858e-03,2.41216e-02,1.30704e-02,1.62489e-02,2.22919e-02,-1.43830e-02,-3.23439e-02,-3.12707e-02,2.07874e-02,3.62910e-02,5.00546e-02,6.41738e-02,3.31568e-02,2.78695e-02,2.74217e-03,4.46554e-02,4.57319e-02,-1.37232e-02,-4.68144e-02,-7.47337e-02,-8.76765e-02,-6.15138e-02,-3.61639e-02,1.67090e-03,-2.00745e-02,-2.46030e-02,5.03889e-03,-7.76883e-03,2.44530e-02,2.90303e-02,2.27522e-02,1.58065e-02,-3.40183e-02,1.03567e-02,-5.79004e-02,-3.13896e-02,-1.97758e-02,2.62536e-02,-1.94062e-02,-1.54095e-02,-1.35665e-02,1.09279e-02,4.88317e-02,1.02970e-01,6.56599e-02,8.15992e-02,-1.21433e-02,1.03747e-02,-5.13613e-02,-7.80164e-02,-2.65021e-03,-1.22397e-02,3.14557e-02,-3.68073e-02,-4.08965e-02,-2.87469e-02,1.38287e-02,-4.00525e-03,-3.30864e-02,6.62204e-03,-4.55839e-03,2.07404e-04,-2.58320e-02,-1.09143e-02,2.86429e-02,-5.11945e-02,-2.02971e-02,-1.90301e-02,-4.84498e-02,1.14064e-02,3.98360e-02,1.08092e-02,5.18855e-02,3.07336e-02,-3.70267e-02,-6.77414e-02,-3.66559e-02,-7.70715e-02,-8.57689e-02,-4.90968e-02,-5.94264e-02,-5.92833e-02,8.85381e-03,-1.45414e-02,2.56549e-02,2.51399e-02,-2.27775e-02,-2.08204e-02,-1.42071e-02,2.10045e-02,3.49945e-03,7.73180e-03,3.69936e-02,3.44433e-02,1.39930e-02,-2.49964e-02,-1.11723e-02,-1.14878e-03,3.17689e-02,-2.23329e-02,-1.14398e-03,3.18325e-02,-8.82868e-03,-1.71269e-02,-4.58643e-02,-9.26300e-02,-3.48946e-02,-1.92928e-02,-1.89474e-02,-4.90949e-02,1.28542e-02,2.41027e-02,1.06295e-02,-1.38051e-02,2.39524e-03,-1.37200e-02,3.36234e-02,3.43480e-02,-1.00680e-02,-2.95815e-02,2.39999e-02,3.52605e-02,4.46598e-02,1.20708e-02,4.92873e-02,1.34529e-02,-2.45551e-02,-1.04283e-02,3.86857e-02,4.41753e-02,-1.74083e-02,1.95140e-02,2.74927e-02,9.46839e-03,5.26321e-04,-1.12337e-02,2.46769e-02,2.69204e-02,1.86142e-02,-2.56868e-02,-1.24645e-02,2.82935e-02,2.72277e-02,2.27885e-02,-1.49272e-02,-7.07315e-03,-2.65787e-02,-2.02648e-02,2.72093e-02,-2.87999e-02,-5.56368e-03,1.45622e-02,-9.79132e-03,1.67950e-02,1.13319e-02,3.85049e-02,-1.05081e-02,2.07377e-02,-1.88229e-02,3.57636e-02,4.47922e-02,-7.77052e-03,5.94463e-03,-1.68363e-02,-2.05787e-02,-1.70331e-02,-1.70142e-02,6.77936e-03,-4.09383e-03,2.50415e-03, +-2.73690e-02,-2.24379e-02,-3.09186e-02,-2.56694e-02,2.99077e-02,1.32687e-02,-3.40607e-02,-5.96086e-03,2.86628e-03,1.90795e-02,3.31234e-02,8.62413e-03,2.54821e-02,-1.19591e-02,-1.10662e-03,-2.15570e-02,8.22752e-03,3.29663e-02,2.24278e-02,3.55386e-02,-1.60925e-02,-4.46866e-03,7.36691e-03,2.87133e-02,-3.28300e-02,-1.75397e-02,5.18074e-03,-2.06430e-02,1.33415e-02,-2.43482e-03,-9.25457e-03,1.91539e-02,2.55240e-02,3.47389e-02,1.61729e-02,-9.66652e-04,2.94532e-02,2.83279e-02,-1.79641e-02,1.38858e-02,2.64344e-03,-1.64862e-02,-4.59406e-03,2.85152e-04,-1.45848e-02,-8.87045e-03,1.25023e-02,2.53047e-02,5.88059e-04,-3.63765e-02,1.86659e-02,-1.08066e-02,3.18947e-02,-3.45100e-02,-8.35595e-03,2.76972e-02,1.54500e-02,-1.78181e-02,-3.09253e-02,-3.83589e-04,1.37971e-02,-2.96845e-02,-2.99592e-02,-1.26075e-04,-9.28485e-03,1.81604e-02,-4.19446e-02,-1.68934e-03,-1.74638e-02,1.31945e-02,1.47664e-02,5.53064e-02,1.00446e-02,-1.69208e-02,-2.56630e-02,-3.86845e-02,8.78556e-03,-2.51310e-02,-3.19003e-02,2.15161e-02,-6.09331e-03,2.08117e-02,-1.10711e-02,-2.98803e-02,7.84384e-03,2.22390e-02,-3.47606e-02,3.88256e-03,8.93112e-03,1.01174e-02,5.03042e-03,-1.36363e-03,-1.75738e-02,2.79532e-02,-3.49997e-03,1.03073e-02,8.11341e-02,7.18998e-02,1.28572e-01,1.54294e-01,1.31763e-01,6.64082e-02,7.12179e-02,3.03324e-02,4.22389e-03,-4.04351e-03,-4.93387e-03,7.29012e-03,7.65949e-03,1.50684e-02,-1.44367e-02,-1.99121e-02,-1.69352e-02,2.93861e-02,-8.05306e-03,3.62053e-03,-2.29279e-02,3.44644e-02,4.17591e-02,5.19790e-02,1.30273e-01,8.51868e-02,1.43047e-01,1.59985e-01,1.34325e-01,2.04038e-01,1.85954e-01,1.74880e-01,1.52100e-01,1.04454e-01,1.00273e-01,1.23359e-01,9.30836e-02,2.54349e-02,-5.68862e-03,-3.46453e-02,6.00227e-03,1.03251e-02,-3.42803e-02,2.58116e-02,5.63190e-03,-3.32689e-02,1.27285e-02,3.66111e-02,4.84291e-02,1.11251e-01,1.02852e-01,7.05105e-02,9.77034e-02,1.32781e-01,9.53944e-02,1.19473e-01,9.30103e-02,1.02637e-01,1.08073e-01,1.69676e-01,1.02069e-01,9.73863e-02,1.14302e-01,1.21212e-01,1.63720e-01,9.47841e-02,1.46036e-02,-6.26265e-03,3.53538e-03,1.44598e-02,3.07591e-02,-2.07065e-02,1.49555e-03,3.48109e-02,-2.61203e-02,2.05143e-02,1.00633e-01,1.25228e-01,1.09432e-01,5.16556e-02,8.84694e-02,8.83552e-02,9.02217e-02,6.24650e-02,1.25861e-01,1.16889e-01,7.88083e-02,1.40692e-02,5.65003e-02,4.94180e-03,5.29336e-02,8.12946e-03,5.77929e-02,5.12190e-02,1.39501e-02,-5.81564e-02,4.77204e-03,-1.50794e-02,1.87602e-02,2.12207e-02,-5.40874e-03,2.19645e-02,1.15080e-02,5.77724e-02,6.73416e-02,9.76188e-02,5.81218e-02,7.34173e-02,1.66527e-02,3.70847e-02,5.71610e-02,7.05504e-02,6.84727e-02,-1.65726e-02,-3.84081e-02,-2.88817e-02,-5.13993e-02,-3.92115e-02,-2.25150e-02,1.63723e-02,3.34974e-02,2.32478e-02,1.21966e-03,-7.64900e-02,-5.60448e-02,1.30197e-02,2.61149e-02,-1.77822e-02,-4.95422e-03,-2.47979e-02,3.35807e-02,7.27198e-02,1.30311e-01,1.08817e-01,6.58557e-02,2.51499e-02,-2.85026e-03,-6.62114e-02,-3.56608e-02,-8.87585e-02,-9.75980e-02,-7.44291e-02,-1.00735e-01,-9.65437e-02,-5.57349e-02,-1.73809e-03,1.30456e-02,-1.12133e-02,-2.04191e-02,-4.72972e-03,-1.11557e-02,-1.16457e-01,-4.34925e-02,9.28550e-03,3.02424e-02,-7.28745e-03,-2.81607e-02,9.77472e-03,-1.40252e-02,4.79132e-02,4.67562e-02,6.62184e-02,2.97637e-03,-8.84624e-03,-7.53615e-02,-1.31627e-01,-1.77328e-01,-2.13662e-01,-1.84557e-01,-1.35454e-01,-8.13626e-02,-1.42486e-02,6.67563e-02,3.86169e-02,2.48629e-02,-1.00741e-02,-9.90501e-03,-7.82366e-02,-9.58469e-02,-1.16395e-01,-7.53309e-02,1.55616e-02,-2.67385e-02,3.50384e-03,-3.33126e-02,-1.85620e-03,5.58637e-03,1.12812e-02,3.30068e-04,-1.87597e-02,-4.64256e-02,-1.21025e-01,-2.19582e-01,-2.69621e-01,-2.70654e-01,-2.27627e-01,-1.60074e-01,-3.71901e-02,2.29777e-02,1.06054e-01,1.39453e-01,6.53439e-02,4.26456e-02,2.50217e-02,-1.95473e-02,-1.03312e-01,-1.79034e-01,-1.89720e-01,-8.52684e-02,3.69578e-02,2.35660e-02,1.10451e-02,-2.71975e-02,-2.59865e-02,3.24927e-02,2.51105e-02,-4.55162e-02,-9.99106e-02,-1.83525e-01,-2.23694e-01,-2.01258e-01,-1.92491e-01,-1.67984e-01,-5.46079e-02,-3.96180e-02,5.01594e-02,1.52662e-01,1.82082e-01,1.22960e-01,6.81610e-02,-1.70344e-02,-1.87660e-02,-9.79308e-02,-1.59056e-01,-1.83334e-01,-1.19663e-01,-7.60282e-02,-2.13428e-02,-8.68083e-03,6.48309e-03,2.61623e-02,2.86489e-02,2.59997e-02,1.55085e-02,-4.94056e-02,-1.28104e-01,-2.24282e-01,-1.77871e-01,-1.47353e-01,-4.72609e-02,2.56634e-02,3.57201e-02,1.02246e-02,1.03310e-01,1.75815e-01,1.70536e-01,1.02975e-01,1.97240e-02,-4.78022e-02,-4.85366e-02,-1.19267e-01,-1.10545e-01,-1.54323e-01,-1.61196e-01,-8.04470e-02,-8.48566e-03,-2.19801e-02,-1.51543e-02,-2.33981e-03,-2.98528e-02,-3.04229e-02,8.20947e-03,-7.74791e-02,-1.68432e-01,-2.02660e-01,-1.41796e-01,2.89235e-02,3.83311e-02,-1.57137e-02,-8.65335e-03,3.78577e-02,1.52217e-01,2.25516e-01,7.25897e-02,6.29804e-03,4.98161e-03,-8.66465e-02,-8.10892e-02,-1.04598e-01,-1.11344e-01,-1.44579e-01,-1.62439e-01,-5.55977e-02,-7.63613e-03,2.80246e-03,-1.90485e-02,1.44711e-02,3.43471e-02,-5.03801e-03,-1.65843e-02,-7.31678e-02,-9.28108e-02,-1.26656e-01,-8.77542e-02,-1.64632e-02,2.51392e-02,-3.12567e-02,-2.41130e-02,6.56469e-02,1.12158e-01,1.84803e-01,9.43065e-02,-1.67736e-02,-7.39852e-02,-5.66475e-02,-8.96165e-03,4.15487e-03,-9.90049e-03,-6.80325e-02,-7.34512e-02,-2.57887e-02,4.23772e-02,2.34307e-02,1.10768e-02,8.18693e-03,-3.14337e-02,-6.71710e-03,2.18428e-02,-2.21650e-02,-8.58854e-02,-3.54044e-02,-8.60313e-02,-1.29277e-01,-7.76554e-02,-8.24536e-02,-4.47374e-02,3.04397e-02,1.21406e-01,1.75063e-01,1.09086e-02,-5.01735e-02,-9.08026e-02,-2.77527e-02,3.30462e-02,5.52087e-02,5.43425e-02,1.96849e-02,-2.05055e-02,-1.27607e-02,-3.41478e-03,3.74676e-02,2.53661e-02,2.98153e-02,-1.72875e-02,4.62329e-02,4.35877e-02,4.37454e-02,-1.29256e-02,-2.86246e-02,-1.09798e-01,-1.52253e-01,-1.54971e-01,-1.19888e-01,-1.45621e-01,-6.42309e-02,8.17250e-02,1.33705e-01,-2.88535e-03,-9.12920e-02,-7.91938e-02,4.87465e-02,6.30658e-02,7.44879e-02,5.64023e-02,1.07270e-01,6.50261e-02,4.13257e-02,2.30748e-02,4.53231e-02,1.21186e-02,1.02476e-02,1.30875e-03,1.01569e-02,6.23433e-02,1.09378e-01,3.70284e-02,7.72405e-03,-6.66069e-02,-1.50508e-01,-1.97998e-01,-2.38057e-01,-2.35458e-01,-1.07752e-01,2.06124e-02,1.78084e-02,-5.32950e-02,-3.53886e-02,-5.31378e-02,4.32496e-02,5.14409e-02,5.17731e-02,7.51575e-02,8.54231e-02,7.21456e-02,5.99431e-02,2.53436e-02,4.20825e-02,9.82080e-03,-6.73879e-04,5.26869e-03,4.91850e-02,1.18236e-01,1.23320e-01,4.58127e-02,6.89148e-04,-2.98514e-02,-1.11844e-01,-1.12466e-01,-1.48073e-01,-1.79481e-01,-1.29354e-01,-1.43457e-02,1.36580e-02,2.07254e-02,4.88047e-02,6.57170e-02,4.07148e-02,9.88883e-02,7.69642e-02,1.26257e-01,7.41665e-02,4.20273e-02,3.79425e-02,4.02328e-02,1.86079e-03,3.09070e-03,1.32640e-04,1.93925e-02,2.81227e-02,9.45340e-02,8.99325e-02,7.46927e-02,5.55915e-02,6.71627e-02,7.79111e-03,3.80263e-02,-4.18979e-02,-5.41100e-02,-5.43299e-02,-1.92235e-02,-2.65009e-02,4.04278e-02,5.59778e-02,1.22980e-01,6.25430e-02,1.11624e-01,9.86200e-02,1.07445e-01,5.03325e-02,4.22231e-02,-2.39185e-02,4.40948e-02,-2.57578e-02,-7.43790e-03,-1.96829e-02,-2.24907e-02,5.10397e-03,1.26168e-01,1.26386e-01,9.73937e-02,1.43588e-01,8.40534e-02,7.72162e-02,9.16600e-02,1.05042e-01,6.66518e-02,-3.32503e-02,1.40213e-02,8.46557e-03,4.00671e-02,1.03351e-01,1.27690e-01,9.17442e-02,1.09807e-01,1.31703e-01,6.65005e-02,4.76191e-02,1.87463e-02,2.47284e-02,-7.37921e-03,-2.18399e-02,-1.31475e-02,-2.42150e-02,1.63490e-03,5.61463e-02,1.26447e-01,1.40916e-01,1.08932e-01,1.28991e-01,1.21725e-01,1.22897e-01,8.63108e-02,7.76972e-02,6.66795e-02,2.25686e-02,-2.54364e-02,-1.24382e-02,5.91719e-02,8.67794e-02,5.47348e-02,8.76056e-02,7.63171e-02,6.17326e-02,6.27910e-02,-4.66437e-02,1.60702e-03,-4.72793e-02,-1.71531e-02,-8.04614e-03,2.47383e-03,-5.71934e-03,-1.62885e-02,1.68156e-04,3.22730e-02,7.24271e-02,9.81999e-02,1.44148e-01,5.41412e-02,1.52995e-02,7.83261e-02,8.29022e-02,4.53749e-02,-7.01471e-02,-7.09913e-02,-3.33522e-02,-9.98920e-04,3.71723e-02,8.11600e-02,9.63223e-02,3.60131e-02,4.20269e-02,-4.28106e-02,-3.18984e-02,-2.09864e-02,-5.99446e-03,9.02833e-03,-1.93482e-04,2.35765e-02,7.44865e-03,3.12890e-02,1.60211e-02,1.15059e-02,1.02077e-01,1.22030e-01,1.43504e-01,6.40605e-02,4.25329e-02,2.26048e-03,4.45692e-02,-1.38604e-02,1.52558e-03,-9.52449e-03,8.45178e-04,-1.22406e-02,-1.53151e-02,4.18462e-02,2.33062e-02,3.38775e-02,-6.16247e-02,-8.08306e-02,-6.08642e-02,-1.20475e-02,1.13243e-02,-5.83192e-03,-6.29531e-03,-6.19378e-04,1.84072e-02,-3.02704e-02,-6.42505e-03,-1.72406e-02,4.10196e-02,6.86404e-02,1.23461e-01,1.18788e-01,1.84814e-02,2.01508e-02,1.67500e-02,-4.68146e-03,-3.27567e-02,-3.49398e-02,-2.63289e-02,-2.78323e-02,-2.74733e-02,-6.08614e-02,-7.55903e-02,-1.33287e-01,-9.25729e-02,-8.66920e-02,-6.71933e-02,-1.34201e-02,-2.11047e-02,2.60100e-02,2.84874e-02,-3.55473e-02,-2.48895e-03,-6.10138e-03,-1.96240e-02,-2.65789e-02,-1.67727e-02,1.85482e-02,3.02080e-02,4.91065e-02,1.85725e-02,2.25269e-02,-4.23059e-03,-5.76145e-03,6.67260e-03,-3.87257e-02,-4.54085e-02,-1.19027e-01,-1.01453e-01,-9.64475e-02,-6.69784e-02,-6.80726e-02,-3.46995e-02,-1.94384e-02,-2.24107e-02,2.37071e-02,2.31409e-02,1.00864e-02,-1.31544e-02,4.55522e-03,-2.45733e-02,2.48852e-02,3.33582e-02,-5.38709e-03,2.70534e-02,3.68532e-02,4.35593e-03,-4.80312e-03,4.93130e-03,-2.28094e-03,-3.88416e-02,-9.99324e-03,-2.37182e-02,5.20571e-03,-1.83868e-02,1.63378e-02,2.48026e-02,-2.03670e-02,-3.76233e-05,-2.52827e-03,-1.59965e-02,-1.92786e-02,-8.38632e-04,9.54766e-03,-6.28146e-03,6.06508e-03,2.23186e-02,1.48886e-02,1.47276e-02,1.00370e-02,-2.74543e-02,-2.16073e-02,-2.64849e-02,2.34692e-02,-3.14541e-02,-2.65111e-02,2.38438e-02,2.17274e-02,-3.00357e-02,2.36897e-02,-5.07051e-03,1.03833e-02,-1.81261e-02,-1.22048e-03,1.10391e-02,2.73742e-02,2.04532e-02,-1.88437e-02,-2.33144e-02,-2.17335e-03,1.12086e-02,1.95821e-02,-3.55894e-02,-2.91850e-03,1.26296e-03,-1.66792e-02, +2.81692e-02,-9.48033e-03,-3.40499e-02,-2.13242e-02,1.14511e-03,-2.65775e-02,8.15755e-03,3.47430e-02,1.46202e-03,-8.79836e-03,3.36467e-02,2.63657e-02,2.24374e-02,4.86916e-04,1.62735e-03,-2.76976e-02,3.63549e-03,3.47377e-02,1.88802e-03,-3.18709e-02,1.96023e-02,3.20521e-02,2.99408e-02,1.68446e-03,6.70940e-03,5.77966e-03,-1.46376e-02,-5.21111e-03,2.91359e-02,3.64368e-03,3.36602e-02,-2.37167e-02,-5.22036e-03,3.89044e-04,-2.38469e-02,2.23687e-02,1.92645e-02,-2.23697e-02,2.78357e-02,2.60404e-02,-3.36752e-02,-1.07702e-02,3.39492e-02,-2.67982e-02,-6.64405e-03,-2.87721e-02,2.23392e-02,4.23325e-03,1.49172e-02,2.29417e-02,-8.50193e-03,-3.69036e-02,1.74889e-03,-2.76387e-03,1.29524e-02,1.66711e-02,-1.77597e-02,-1.40677e-02,2.25132e-02,1.01670e-02,8.04203e-03,1.57653e-02,1.40867e-02,-3.29190e-02,-6.23238e-03,2.08263e-03,-4.75908e-02,-1.48827e-02,-2.96202e-02,2.99315e-03,-5.17664e-02,2.14666e-02,-2.55057e-02,1.94553e-02,2.53239e-02,-2.57689e-03,-1.08955e-02,-2.67638e-03,-2.50958e-02,1.36871e-03,1.47846e-02,7.23396e-03,-2.05669e-02,1.95143e-02,3.27732e-02,-1.08665e-02,1.85459e-02,-2.51467e-03,1.52621e-02,-2.44081e-02,-3.27199e-02,-5.84993e-03,-3.45461e-02,2.79319e-02,4.56532e-02,-1.85418e-02,-3.53043e-02,-4.44282e-02,-6.41317e-02,-5.44823e-02,-1.30614e-02,1.31314e-02,-3.84927e-02,2.21752e-03,-2.46802e-02,7.82804e-03,8.06088e-03,-1.42768e-02,1.83918e-02,2.28156e-02,-1.38556e-02,-4.97904e-03,-1.09460e-02,9.62306e-04,1.19218e-02,3.32076e-02,-2.72015e-02,3.05643e-02,-4.77381e-04,4.48317e-03,6.72654e-02,2.41948e-02,-1.30790e-02,2.73221e-04,-1.09499e-02,-1.88661e-02,-1.02546e-02,-3.90359e-02,-3.79158e-02,-8.64039e-02,-7.23493e-02,-3.67391e-03,-2.59683e-02,-2.72511e-02,1.27043e-02,-3.38231e-02,-4.35961e-02,-3.30869e-04,2.73805e-02,-4.50762e-03,-2.10732e-03,1.66875e-02,4.87280e-03,8.61947e-03,3.25893e-02,5.16744e-02,3.41078e-02,5.08860e-02,7.69146e-02,4.31236e-02,9.03299e-03,3.84452e-02,3.44851e-02,4.41011e-02,9.83063e-02,4.36495e-02,6.83663e-02,2.55443e-02,-6.75359e-05,1.27074e-02,1.14617e-02,-3.84663e-02,-1.20745e-02,2.59091e-02,-4.26107e-02,-2.78295e-02,1.22258e-02,-8.94747e-03,5.24536e-03,-3.56929e-02,1.77196e-02,-3.25013e-02,2.62052e-02,9.21446e-03,2.37523e-02,8.46881e-02,1.61051e-02,2.67906e-02,-1.47790e-02,-1.66354e-02,-2.01129e-02,9.99124e-03,-1.70624e-02,3.41264e-03,3.19670e-02,-2.75404e-02,-2.71521e-02,-2.56154e-02,-1.76947e-02,2.41810e-02,7.89741e-03,5.57762e-02,2.47176e-03,-3.44029e-02,-2.24403e-02,3.37488e-02,-1.93300e-02,-2.97334e-02,-2.58375e-02,9.49806e-03,4.04390e-02,6.46247e-02,6.17547e-02,2.47504e-02,1.15471e-02,2.40565e-02,-5.66966e-02,-8.24199e-02,-3.40632e-02,-2.72301e-02,-8.60951e-03,-3.11939e-02,-6.79014e-02,-8.00744e-02,-6.62952e-02,3.70265e-02,7.16197e-02,1.40704e-02,2.59693e-02,-4.47505e-03,-2.56090e-02,-5.27170e-02,-2.29913e-02,2.59545e-02,-2.04156e-02,2.74426e-02,-1.61471e-03,1.35102e-02,4.40320e-02,5.48516e-02,7.41088e-02,2.33548e-02,2.29056e-02,1.53525e-02,-5.49005e-02,-4.85772e-02,-8.24837e-02,-1.41065e-02,-5.50356e-02,-6.07203e-02,-9.75927e-02,-3.18504e-02,1.06116e-02,6.94107e-02,7.53055e-02,3.45406e-02,7.78924e-02,-6.63531e-02,-9.87473e-02,-4.78368e-02,1.36745e-02,8.51240e-03,-2.02307e-02,1.93924e-03,-2.89628e-02,-6.36320e-04,9.85997e-03,4.27419e-02,1.57487e-02,3.71390e-02,9.95221e-03,-5.68700e-02,-5.44389e-02,-1.01274e-01,-7.51138e-02,-4.51129e-02,-1.33065e-01,-5.89241e-02,-3.56172e-02,4.85308e-03,3.11615e-02,4.67047e-02,7.27773e-02,3.08382e-02,2.18056e-02,-8.82152e-02,-1.43937e-01,-6.41773e-02,-6.13252e-02,-2.33992e-02,-2.76155e-02,1.67404e-02,1.61549e-02,-4.61774e-02,4.67812e-03,2.61938e-02,-2.38937e-02,-3.44360e-02,-5.61382e-02,-8.51112e-02,-4.01652e-02,-7.98676e-02,-8.34450e-02,-1.02292e-01,-1.55657e-01,-1.08732e-01,-2.62808e-02,2.08495e-02,5.82584e-02,4.76830e-02,5.40457e-02,1.74094e-03,-2.00010e-02,-1.02169e-01,-1.71271e-01,-9.45070e-02,-4.60317e-02,1.88162e-02,3.43949e-02,6.25064e-03,1.45045e-02,-4.99273e-02,-1.27678e-02,8.26908e-03,-4.94402e-02,-8.72454e-02,-9.99184e-02,-2.79469e-02,-3.69805e-02,-4.04935e-02,-5.62587e-02,-1.18260e-01,-8.62332e-02,-8.93902e-03,5.10323e-02,7.49485e-02,5.62317e-02,6.05791e-02,1.37022e-02,1.35447e-02,-1.82447e-02,1.90282e-03,-6.21057e-02,-4.11533e-02,3.23243e-03,2.92991e-02,-2.47086e-02,3.44721e-03,-4.83428e-02,-9.86467e-03,-5.08950e-02,-1.66569e-02,-7.34247e-02,-4.92118e-02,-2.28067e-02,4.14415e-02,1.94289e-02,6.23261e-02,5.51944e-03,-4.74447e-02,6.75531e-02,1.22106e-01,1.25577e-01,5.26444e-02,6.65585e-02,2.23834e-02,4.35637e-03,5.17794e-02,1.60852e-03,3.09013e-02,-2.83523e-02,-1.77291e-02,-3.95712e-02,-6.64730e-03,-1.10341e-02,1.62532e-02,-1.75626e-02,1.33479e-02,4.78253e-03,-1.40302e-02,-1.77021e-02,-5.84797e-02,-1.93949e-02,3.12889e-02,4.00260e-02,9.95165e-02,6.58757e-02,1.04295e-01,1.31535e-01,1.55987e-01,1.97521e-01,1.12650e-01,1.98296e-02,2.33773e-02,-6.96668e-03,4.50649e-02,-1.06745e-02,-1.75125e-02,-2.57306e-02,1.95283e-02,2.20402e-02,3.29490e-02,3.47741e-03,2.11234e-02,-3.40777e-02,-2.02691e-02,4.03635e-02,2.69106e-02,5.01462e-02,5.43638e-02,6.77899e-02,4.09137e-02,-1.30292e-03,6.94119e-02,1.18951e-01,1.90014e-01,1.74609e-01,1.56630e-01,1.86766e-01,1.58816e-01,3.30099e-02,-2.56413e-03,-4.87511e-02,1.20896e-03,7.47305e-03,-6.91752e-02,-6.76155e-02,-3.89339e-02,2.32989e-02,3.31013e-02,3.51942e-02,3.14434e-02,-4.75733e-03,3.22230e-02,5.62739e-02,4.28801e-02,3.96185e-02,6.76136e-02,6.06763e-02,2.38371e-02,-3.45521e-02,3.56241e-02,1.16915e-01,2.10483e-01,2.74978e-01,2.06787e-01,1.58030e-01,1.38397e-01,-3.86253e-02,-4.81318e-02,-8.71365e-02,-9.94624e-03,3.52683e-02,-6.12476e-02,-3.73576e-02,-3.93967e-02,-5.09035e-03,-1.62693e-02,6.02044e-05,-2.50240e-02,7.71987e-03,-2.92374e-02,2.82881e-02,2.98815e-02,4.85653e-02,8.01185e-02,4.14455e-02,-1.48450e-02,-5.37056e-02,2.46752e-02,1.28616e-01,2.15908e-01,2.01565e-01,1.94798e-01,1.50023e-01,5.00314e-02,2.21119e-02,-6.38198e-02,-5.25473e-02,1.32728e-02,2.84747e-02,-5.97055e-02,-5.00098e-02,-1.17655e-02,-3.22395e-02,-1.00016e-02,1.30737e-02,-3.26348e-02,-3.57373e-02,-3.85231e-02,-1.44517e-02,4.52695e-02,3.72847e-02,5.92627e-02,1.27747e-02,-6.21256e-02,-1.20006e-02,-8.25452e-03,1.34060e-01,2.02856e-01,1.65886e-01,1.30158e-01,4.71055e-02,-7.77369e-03,-4.34080e-02,-2.61497e-02,-6.39633e-02,-2.23620e-02,4.46486e-03,1.00081e-02,-3.82397e-02,-1.10052e-02,3.08075e-02,1.07884e-02,-2.79868e-02,3.09028e-02,-2.77580e-02,2.96226e-02,2.07323e-02,3.13866e-02,-3.11252e-02,-1.67688e-02,-9.01609e-02,-5.42498e-02,-8.70057e-02,-3.36049e-02,-2.39299e-02,8.03599e-02,6.53162e-02,-4.24504e-03,2.24293e-02,-5.94054e-02,-4.56544e-02,-6.88668e-02,-4.65144e-02,-3.13389e-03,-4.59534e-02,-5.68115e-03,3.56577e-02,1.51772e-02,-1.53353e-02,-9.45207e-03,-9.39031e-03,1.53482e-02,2.42098e-02,3.87732e-02,-2.33914e-02,2.88836e-03,-2.92853e-02,-5.84532e-02,-7.50582e-02,-1.15620e-01,-1.19544e-01,-1.66666e-01,-1.32831e-01,-1.02888e-01,-5.92918e-02,-5.28222e-02,4.80228e-02,9.48822e-03,2.15668e-02,-5.28856e-02,-8.77383e-04,1.49011e-02,-5.33830e-04,2.78133e-02,2.30082e-03,1.15702e-02,1.61818e-02,-1.27462e-02,-1.45327e-02,-3.28814e-02,-3.47521e-02,-3.52165e-03,3.10871e-02,-4.94425e-03,-1.05686e-02,-3.32703e-02,-8.01970e-02,-1.21396e-01,-6.39119e-02,-1.57726e-01,-1.41978e-01,-9.66074e-02,-4.48864e-02,6.34371e-03,3.16939e-02,7.50127e-02,2.41375e-02,3.66700e-02,3.28331e-02,1.69085e-02,-3.11792e-02,-2.39064e-02,-7.08178e-04,1.49357e-02,3.75457e-02,2.14017e-02,3.24226e-02,3.34949e-02,2.87851e-02,-8.03146e-03,-1.48159e-02,-6.64513e-04,-3.29655e-02,-3.71850e-02,-2.34173e-02,2.93858e-02,-2.19315e-02,8.62850e-03,-4.63906e-02,-4.25560e-02,2.21902e-02,6.32644e-02,3.98748e-02,5.63031e-02,5.56585e-02,3.57535e-02,-3.83026e-03,7.09687e-03,-4.06167e-02,1.93252e-02,-1.35031e-02,-1.62864e-02,1.07215e-02,2.19480e-02,-4.60513e-04,-2.80412e-02,1.78456e-03,-1.35902e-03,-1.18881e-02,-1.52720e-02,8.56449e-03,-1.99138e-03,-9.69242e-03,-4.09072e-03,2.07144e-02,2.03135e-03,3.97067e-02,3.94577e-02,5.20950e-02,2.28479e-02,1.11610e-02,3.22147e-02,6.56985e-02,4.31237e-03,5.35249e-02,2.33262e-02,-2.96657e-02,-4.28336e-02,2.83420e-02,2.43885e-02,6.55620e-03,8.25596e-04,3.06222e-02,2.15523e-02,2.37068e-02,-2.00308e-02,-6.90903e-03,1.38909e-02,-3.51236e-02,5.99371e-02,3.37708e-02,3.86484e-02,3.39045e-02,4.54129e-02,4.79261e-02,3.38680e-02,5.40846e-02,2.87018e-02,1.96093e-02,-6.17867e-03,1.02056e-01,4.21105e-02,2.80401e-02,8.42101e-02,-8.59970e-03,1.75671e-02,1.43324e-02,-2.63756e-02,-2.99419e-02,-1.94157e-02,1.11779e-02,3.36896e-02,-5.62951e-04,-1.37954e-02,-2.04787e-02,-4.70841e-02,2.11027e-02,2.15463e-02,1.85807e-02,4.63121e-02,1.09242e-01,8.31718e-02,4.22099e-02,-1.14590e-02,-4.14511e-03,1.04982e-02,5.93484e-03,-2.02576e-02,5.06320e-03,-1.51292e-02,-6.38257e-03,1.29229e-02,-1.81883e-02,1.91702e-03,2.60671e-03,3.63534e-02,1.02108e-02,-2.09011e-04,-2.59564e-02,-1.43553e-02,-5.20593e-03,-2.85411e-02,-1.92253e-04,1.39725e-02,1.15791e-02,-2.37418e-02,-1.49649e-02,2.49613e-02,-2.50418e-02,-9.75767e-02,-7.59187e-02,-7.97392e-02,-8.57507e-02,-8.93249e-02,-1.22039e-01,-8.51289e-02,-8.40119e-02,-2.98827e-02,1.81095e-02,-3.28668e-02,-2.33125e-02,-2.78598e-03,-6.56984e-03,2.07687e-02,-2.19429e-03,5.77368e-03,-9.87208e-03,1.17796e-02,1.07905e-02,-2.87049e-02,2.16845e-02,-7.63832e-03,2.67749e-02,-4.61644e-02,-2.68974e-02,-1.35681e-02,-7.67144e-03,-4.30332e-02,-5.85202e-02,-5.81200e-02,-6.62680e-02,-2.25627e-02,-8.38088e-02,-5.80117e-02,-1.97642e-02,-1.23733e-02,-4.77675e-02,1.02364e-03,1.76087e-03,3.34984e-02,-1.38119e-03,1.51660e-02,-3.08678e-03,3.18780e-02,-3.64551e-03,-2.09865e-02,6.58748e-03,-1.89041e-02,8.91253e-03,2.47799e-02,-2.81871e-02,-2.82543e-02,-3.94567e-03,-7.76327e-03,-1.94626e-02,2.30142e-02,6.32489e-03,-2.21449e-02,-3.52431e-03,-1.07489e-02,-3.10607e-02,6.68365e-03,-3.09091e-02,-1.02454e-03,2.53001e-02,-3.19716e-02,2.52745e-03,3.29819e-02,1.61293e-02,-1.40846e-02,5.62054e-03,-3.35338e-02, +5.73474e-03,3.10518e-02,3.10356e-02,-5.70472e-04,1.29481e-02,-5.92732e-03,-1.00248e-02,6.86914e-04,-2.08036e-02,1.43793e-02,1.75091e-02,-9.68168e-03,-7.86764e-03,-2.42700e-02,4.63165e-03,1.42069e-02,3.39071e-02,-3.36507e-02,-3.01102e-02,1.00997e-03,3.30054e-02,2.29837e-03,9.91352e-03,5.07063e-03,-4.27089e-03,2.54896e-02,2.62170e-02,-2.05906e-02,-2.13884e-02,-2.77707e-02,-8.68556e-03,-8.04555e-04,2.98920e-02,-3.45464e-02,2.65912e-02,-1.73965e-02,3.70722e-03,-3.09350e-03,1.64475e-02,-3.39230e-02,-2.11452e-02,5.33183e-04,1.20305e-02,-2.34899e-02,7.32120e-03,-1.35755e-02,-3.38241e-02,4.24715e-03,-9.56328e-03,1.96768e-02,2.34436e-02,2.37495e-02,2.23705e-02,-2.76304e-02,-3.42628e-02,3.99064e-03,1.03708e-02,-2.74717e-02,2.91904e-02,-3.78148e-03,-2.16316e-02,2.44038e-02,3.15094e-02,6.93946e-03,-1.18590e-02,-9.59344e-03,-4.64108e-02,5.35610e-03,-9.31410e-04,-4.64220e-02,-6.77300e-02,-1.52345e-02,-7.06334e-02,-5.44375e-02,-4.52115e-03,-3.19698e-02,-2.47312e-03,2.39714e-02,-7.47764e-03,-8.17112e-03,3.61319e-02,8.96418e-03,1.24572e-02,-1.17358e-02,-3.08115e-02,5.59102e-03,-2.10984e-02,-1.82772e-02,-2.94542e-02,3.30010e-02,-2.28814e-02,1.39770e-02,4.44909e-03,1.26795e-02,-7.79196e-03,-5.75211e-02,-1.47195e-02,-8.28381e-02,-9.09613e-02,-1.12966e-01,-1.39486e-01,-1.04212e-01,-1.20464e-01,-3.62144e-02,-2.59306e-02,-4.00724e-02,-3.68635e-02,-3.73181e-02,-1.98596e-02,-2.04399e-02,3.84041e-03,8.54870e-03,3.09718e-02,4.80070e-03,-7.20632e-03,-1.47083e-02,-1.90038e-03,2.85832e-02,-9.05229e-03,6.48171e-05,4.58464e-02,2.13200e-03,-1.43016e-02,-4.71107e-02,-6.98885e-02,-1.27666e-01,-1.78637e-01,-2.14964e-01,-2.45455e-01,-2.02000e-01,-1.92700e-01,-9.23705e-02,-1.18014e-01,-6.98483e-02,-6.43961e-02,-5.79306e-02,-1.14933e-02,3.34047e-02,-1.48783e-02,3.27991e-02,-3.75671e-03,-1.12929e-02,1.76895e-02,3.48135e-02,5.26535e-02,6.72448e-02,1.34682e-02,3.69014e-02,4.38804e-02,-6.56608e-03,2.50422e-02,-5.94227e-04,-5.11106e-02,-4.52379e-02,-9.42617e-02,-1.06753e-01,-2.01464e-01,-2.09667e-01,-1.54160e-01,-1.58446e-01,-1.92606e-01,-1.41600e-01,-1.60020e-01,-1.19686e-01,-3.09754e-02,-3.07234e-02,2.08633e-02,1.53937e-02,-1.73348e-02,-7.82479e-03,-1.22222e-02,1.97483e-02,4.45901e-02,5.21669e-02,4.56856e-02,2.91845e-02,3.67103e-02,8.67535e-02,8.87963e-02,4.72780e-02,6.77089e-02,8.44132e-02,1.32766e-01,2.30863e-02,-1.31805e-02,-5.94032e-02,-9.28061e-02,-1.64771e-01,-1.58022e-01,-1.94623e-01,-2.15718e-01,-2.02463e-01,-8.14078e-02,-7.27536e-02,-1.86579e-02,2.78029e-02,1.93972e-02,-3.10412e-02,3.49286e-02,1.28277e-02,5.96507e-02,6.03157e-02,9.86874e-02,8.76521e-02,5.81261e-02,6.03144e-02,1.17421e-01,1.48443e-01,2.02035e-01,1.71708e-01,2.06332e-01,1.39246e-01,6.42871e-02,-2.79061e-02,-1.00462e-01,-1.29719e-01,-1.07001e-01,-1.55383e-01,-1.77016e-01,-1.67810e-01,-1.86844e-01,-7.37311e-02,4.56566e-03,-2.92719e-02,-1.08466e-02,2.96325e-02,-1.22718e-02,7.14801e-02,8.13188e-02,7.35171e-02,1.18010e-01,6.94623e-02,1.55477e-01,7.45173e-02,1.79434e-01,1.91379e-01,2.29866e-01,2.37606e-01,2.60890e-01,2.43998e-01,1.40862e-01,-6.96824e-03,-9.34306e-02,-7.12354e-02,-9.55650e-02,-1.33115e-01,-1.25680e-01,-1.62154e-01,-1.50958e-01,-8.07376e-02,-7.26526e-04,4.60490e-03,1.47797e-02,4.37881e-05,1.49518e-02,8.67876e-02,9.29068e-02,6.24093e-02,1.18572e-01,1.56916e-01,1.24266e-01,1.80949e-01,1.60448e-01,1.67160e-01,2.17517e-01,2.38236e-01,2.87272e-01,2.15057e-01,9.38550e-02,1.37289e-02,-1.07198e-02,-5.31542e-02,-6.92614e-02,-6.59588e-02,-6.41230e-02,-1.22375e-01,-9.55764e-02,-7.45755e-02,2.35295e-02,3.16177e-02,3.91763e-03,1.35873e-02,6.38508e-03,3.70293e-02,3.99055e-02,8.91179e-02,1.36774e-01,1.04731e-01,9.69042e-02,9.26001e-02,8.93073e-02,6.24079e-02,9.46124e-02,1.17820e-01,2.07365e-01,9.58475e-02,2.60027e-02,2.05100e-02,-4.47423e-03,-3.63590e-02,-2.90710e-03,-4.54059e-02,-3.46811e-02,-8.21964e-02,-1.08380e-01,-8.40128e-02,1.35051e-02,2.85133e-02,3.31173e-02,1.70591e-02,3.26341e-02,7.11721e-02,7.58237e-02,3.48499e-02,7.62748e-02,8.73843e-02,5.79102e-02,-1.28977e-02,9.77416e-03,1.48658e-03,-8.52727e-02,-4.50494e-02,3.37070e-02,-4.40477e-02,3.58054e-03,1.54832e-02,3.44531e-02,3.81033e-02,2.59180e-02,-2.97216e-02,-1.62900e-03,-9.92707e-02,-3.02061e-02,-3.97947e-02,3.76771e-03,-1.37967e-02,3.28373e-02,6.98729e-04,1.85250e-02,-1.01865e-02,5.02717e-02,-6.85569e-02,-7.35128e-03,1.17906e-02,-8.30938e-03,-4.30313e-02,-1.46211e-01,-1.53348e-01,-1.74691e-01,-1.32103e-01,3.30844e-02,-4.03586e-02,1.94545e-02,6.22641e-02,3.66040e-02,1.18326e-02,-8.03200e-04,-5.08965e-02,-1.83863e-02,-8.68181e-02,-1.91846e-02,-1.39692e-02,1.28718e-02,-3.30857e-02,4.09734e-03,2.05753e-02,-2.11154e-02,-5.06883e-03,-4.27985e-02,-7.20041e-02,-1.02465e-01,-6.37982e-02,-1.29059e-01,-1.02062e-01,-1.05694e-01,-1.55015e-01,-1.46703e-01,-2.85871e-02,7.92960e-02,1.65871e-02,3.56785e-02,7.20446e-02,2.52507e-02,-4.46374e-02,-8.48567e-02,-4.75456e-02,-1.15617e-01,-7.00916e-02,-1.54112e-03,5.03432e-02,3.81634e-02,1.37845e-02,-3.21333e-02,-1.17371e-02,2.61777e-02,-2.05330e-03,-4.80701e-02,-1.11718e-01,-1.10993e-01,-1.45434e-01,-1.75773e-01,-1.03516e-01,-8.30404e-02,-7.74174e-02,-4.13663e-02,2.63773e-02,5.25432e-02,2.22846e-03,6.55378e-02,2.94376e-02,8.81528e-02,9.32364e-04,7.08145e-03,-4.68307e-02,-5.94118e-02,3.60130e-03,3.12319e-02,7.42259e-02,3.92958e-02,-3.18067e-02,-2.52187e-02,2.43068e-02,-3.27149e-02,2.13226e-02,-6.32150e-02,-1.16837e-01,-1.13250e-01,-1.25050e-01,-1.36612e-01,-8.56715e-02,-4.80057e-02,-1.73161e-02,1.15169e-02,1.28318e-02,-3.67784e-02,1.71648e-02,7.61801e-02,9.53334e-02,8.38229e-02,2.76549e-02,2.86423e-02,7.52649e-02,-3.39776e-02,-3.09611e-02,5.12704e-02,8.93753e-02,2.44237e-02,-2.70819e-02,8.46072e-03,-1.28473e-03,-1.91459e-03,-4.96292e-02,-2.01560e-02,-7.23642e-02,-7.30787e-02,-3.08456e-02,-2.59619e-02,-4.38949e-02,2.83192e-02,-7.83100e-03,-2.03623e-02,-4.71099e-02,-2.90273e-02,-1.60050e-02,5.15976e-02,6.06305e-02,6.12615e-02,9.35954e-02,1.13645e-01,6.89605e-02,8.01264e-02,4.31323e-02,7.23055e-02,5.82401e-02,7.77776e-02,8.88488e-03,2.38397e-03,2.73475e-04,-1.82348e-02,-3.37972e-02,-6.48049e-02,-3.87851e-02,-5.88825e-02,-9.94950e-02,-3.63726e-02,-2.79192e-02,5.36755e-02,-1.05339e-02,2.99624e-02,3.29466e-02,-3.20468e-02,-1.64084e-04,2.62413e-03,3.56440e-02,2.75065e-02,9.95330e-02,4.58644e-02,8.40566e-02,4.62871e-02,2.58349e-02,2.67594e-02,7.26245e-02,1.83329e-02,5.58975e-03,1.92898e-02,1.40668e-02,1.78992e-02,1.68915e-02,-1.47440e-02,-2.36029e-04,-8.29848e-02,-9.42671e-02,-1.15332e-01,-6.97695e-02,-2.72426e-02,5.01279e-04,5.26047e-02,4.51042e-02,3.68575e-02,1.82591e-02,2.09004e-02,-8.00411e-04,9.63849e-04,6.10723e-02,9.03928e-02,4.89171e-02,6.42718e-02,4.48355e-02,7.95773e-02,4.53077e-02,-1.84342e-03,4.94662e-03,3.43838e-02,3.54811e-02,-2.17853e-02,-1.81171e-02,3.22285e-02,-6.08012e-02,-9.93469e-02,-9.55483e-02,-5.69204e-02,-2.64079e-02,9.69749e-03,2.90209e-03,2.49825e-02,2.31375e-02,4.20134e-02,-2.67928e-02,-1.60592e-02,-6.66355e-02,-3.97522e-02,5.01814e-02,3.97760e-02,1.45788e-02,2.03510e-02,2.79990e-02,8.39248e-02,1.70992e-02,3.64923e-02,-1.21303e-02,5.05153e-03,-2.09883e-02,1.14056e-02,-1.54069e-02,-3.72697e-03,-5.41195e-02,-7.37577e-02,-9.04348e-02,-9.71591e-02,-4.73070e-02,1.20877e-02,-5.76212e-02,1.52255e-02,1.27503e-02,7.81028e-03,-3.89587e-02,-5.66747e-02,-8.30825e-02,-1.02809e-01,-1.41446e-02,6.45765e-03,-6.35065e-03,-1.48191e-02,1.34653e-02,5.63252e-02,6.61902e-02,1.57184e-02,1.04694e-02,-1.77120e-02,-1.03342e-02,2.66666e-02,3.02330e-02,7.47787e-03,-5.89248e-02,-1.19238e-01,-1.17280e-01,-1.17153e-01,-6.85148e-02,-3.56302e-02,-5.96453e-02,1.03166e-02,-3.13218e-02,-5.84511e-02,-7.10377e-02,-7.96446e-02,-1.09145e-01,-5.35091e-02,6.93043e-03,-1.55024e-03,-5.14625e-02,-7.26558e-02,-1.73346e-02,6.13555e-02,1.41886e-02,-3.27752e-02,-1.49539e-02,-2.60475e-02,4.89393e-03,-2.99740e-03,-3.10975e-03,3.87059e-02,-3.40121e-02,-2.61778e-02,-7.37358e-02,-7.44118e-02,-8.62631e-02,-4.84184e-02,-1.67989e-02,-3.87016e-02,-5.92405e-02,-2.42112e-02,-3.70259e-02,-4.59734e-02,-4.11781e-02,-2.35050e-02,-2.31736e-02,5.61388e-03,-5.66844e-02,-2.36362e-02,-3.52868e-02,3.39788e-02,3.72749e-02,-3.06955e-02,-2.57181e-02,3.46313e-02,2.77459e-02,1.31430e-02,-3.33067e-02,2.47312e-02,2.97048e-02,6.91930e-02,3.93584e-02,-5.13661e-02,-4.95559e-02,-8.96417e-02,-2.02719e-02,-2.89516e-02,1.57349e-02,-5.08051e-02,-2.85229e-02,-4.22531e-02,-8.22602e-03,3.53995e-03,-3.69725e-02,-1.24726e-02,-4.36981e-02,-2.31312e-02,-7.76626e-03,1.43421e-03,-8.08127e-03,1.55495e-02,1.84879e-02,-6.41678e-03,-1.74108e-03,-7.89567e-03,7.29423e-04,4.08986e-03,4.51260e-02,2.81152e-02,4.01034e-02,1.46374e-02,-7.20676e-02,-5.33959e-02,-5.48076e-02,-9.94998e-03,-2.88921e-02,-2.89946e-02,3.31220e-03,-1.61351e-02,7.60759e-02,-3.61100e-03,-3.58486e-03,-2.86285e-03,1.55496e-02,-2.10765e-02,3.83633e-03,2.49825e-02,1.35630e-03,-1.70306e-02,2.86188e-02,-3.13225e-03,-2.34600e-02,1.89551e-02,3.24076e-02,3.83727e-02,5.06347e-02,5.35992e-02,-8.31585e-03,6.45902e-02,8.87433e-02,2.55435e-02,8.86593e-02,8.62407e-02,5.50562e-02,5.19401e-02,4.71694e-02,7.36857e-02,8.25881e-02,8.78258e-02,4.25842e-02,6.27247e-02,-8.04152e-03,-2.99969e-02,-6.44563e-03,-1.37503e-03,2.18706e-02,1.66319e-02,1.74560e-03,5.44945e-03,2.60979e-02,-3.35825e-02,-1.22216e-02,2.03429e-02,-2.79852e-02,2.91722e-02,5.05448e-02,6.79864e-02,5.56622e-02,6.59837e-02,9.55385e-02,5.74358e-02,9.65896e-02,1.32029e-01,1.28203e-01,1.27614e-01,4.18419e-02,4.61907e-02,7.88834e-02,2.22248e-02,-1.95609e-02,-7.99712e-03,2.70320e-02,-4.44807e-03,1.74360e-02,2.08134e-02,-1.09483e-02,1.85401e-02,1.10220e-02,-2.28239e-02,-7.19874e-03,2.16982e-02,1.43441e-02,6.56414e-03,8.14450e-04,-1.65467e-02,-2.85497e-03,3.66923e-02,7.70913e-03,1.02006e-03,3.09069e-02,-4.37414e-04,1.24926e-02,1.45536e-02,-1.39383e-02,-5.74355e-03,-1.30979e-02,-2.29501e-02,2.82812e-02,1.30289e-02,-2.50607e-02,-1.52238e-02,2.62369e-02,3.11799e-02,3.49105e-03, +4.76621e-04,-2.71869e-02,2.11606e-02,-1.00296e-02,3.36688e-03,-7.27260e-03,1.23572e-02,8.33014e-03,-8.23167e-03,-5.73115e-03,-1.05914e-04,-2.83001e-02,-4.87926e-04,-2.42195e-02,2.76496e-02,1.81696e-02,-3.78210e-03,2.46526e-02,3.15355e-03,3.26340e-02,7.16843e-03,1.68361e-02,5.46142e-03,-2.02299e-02,-3.35005e-02,-1.41940e-02,2.79430e-02,1.82593e-02,-1.16681e-02,-2.22165e-02,3.51693e-02,3.87117e-03,-3.07859e-02,-1.25865e-02,6.24835e-03,3.52691e-03,-4.20046e-03,1.73438e-02,-1.73457e-02,2.88148e-02,-3.10630e-03,4.47133e-02,3.25179e-02,3.88085e-02,-3.45404e-02,-6.68297e-03,-1.78242e-03,-2.83678e-02,2.00992e-02,-1.15207e-02,6.31885e-04,1.84269e-02,-2.78950e-02,4.91600e-03,-1.56524e-02,2.50602e-02,3.12293e-02,-8.37754e-03,-2.30129e-02,2.09310e-02,-2.47944e-02,3.42055e-02,3.26601e-02,2.72360e-02,3.21968e-03,4.85399e-02,6.51294e-02,4.34110e-02,4.42116e-02,7.16755e-02,9.17525e-02,9.01826e-02,2.68748e-02,7.81896e-02,1.37081e-02,3.21380e-02,4.16821e-03,-5.13353e-03,5.95471e-03,6.64810e-03,-3.00452e-02,-1.46722e-02,2.57054e-02,-1.48093e-03,-1.84944e-02,3.05950e-02,-3.33891e-02,-8.81730e-03,2.99059e-02,5.50092e-03,-2.54020e-03,3.71810e-03,3.30738e-02,2.24411e-02,4.60546e-02,1.07056e-01,1.02698e-01,8.40856e-02,1.22491e-01,8.37191e-02,9.87137e-02,1.05557e-01,7.04753e-02,1.39434e-02,3.96130e-02,4.57433e-02,1.25897e-02,3.04971e-02,-3.06194e-02,1.90988e-02,-3.54912e-02,1.56251e-02,-3.06300e-02,-1.08845e-02,-3.07576e-03,-4.43397e-03,-2.76883e-03,-2.19290e-02,-1.14627e-02,4.55767e-02,4.04853e-02,4.94086e-02,5.62687e-02,5.60891e-02,5.59988e-02,3.68971e-02,2.05519e-02,-1.63237e-02,2.09575e-02,-1.92755e-02,-4.67636e-04,1.10339e-03,2.38713e-02,3.58047e-03,1.00738e-02,1.81512e-03,-1.48004e-02,-4.29313e-02,3.73968e-03,2.66556e-02,2.23441e-02,-2.78695e-02,-1.09141e-02,1.92904e-02,1.37751e-02,1.31775e-02,1.43838e-02,-1.58394e-02,3.66199e-02,4.63497e-02,4.14424e-02,-2.95660e-02,1.13326e-02,5.56600e-02,3.12109e-02,6.40730e-02,3.02345e-02,3.67397e-02,7.18196e-03,2.78156e-02,3.77350e-02,2.39512e-02,1.96380e-02,5.28933e-02,-5.97100e-03,2.57278e-02,-1.59837e-02,2.97668e-02,1.18098e-03,-2.07826e-02,1.50583e-03,-4.88102e-03,1.83072e-02,2.57049e-02,-3.58721e-02,-2.42844e-02,-1.58293e-03,-6.56687e-02,-6.39204e-02,-3.45321e-02,-6.84238e-02,1.53367e-02,-8.08328e-03,-2.48128e-03,-2.25526e-02,-5.74742e-02,-1.02518e-01,-9.15511e-02,-2.82456e-02,6.68922e-03,3.95678e-02,5.91992e-02,2.50791e-02,1.87576e-02,-3.03257e-02,-1.36918e-02,2.88395e-02,1.50910e-02,3.09794e-03,-6.78322e-04,-9.44174e-03,4.31124e-02,-1.63503e-02,-2.77158e-02,-7.36494e-02,-1.16599e-01,-1.17797e-01,-6.43691e-02,-4.91446e-02,-7.00496e-02,-6.06269e-02,-1.19456e-01,-1.30054e-01,-1.67315e-01,-1.61382e-01,-8.33189e-02,-2.95739e-02,-3.80615e-02,2.10521e-02,4.91598e-02,2.06519e-02,5.90712e-02,-1.06366e-03,-2.44464e-02,-2.53653e-02,-1.61738e-02,-2.25039e-02,5.85650e-02,7.18612e-02,-1.42911e-02,-3.22909e-02,-7.57278e-03,-9.17754e-02,-8.57212e-02,-1.21788e-01,-4.68036e-02,-1.67629e-02,-7.74926e-03,-1.23088e-02,-8.23223e-02,-1.62826e-01,-1.41884e-01,-1.50563e-01,-9.31296e-02,-3.85309e-03,-3.18435e-03,2.34614e-02,5.92303e-03,2.13083e-02,-1.22810e-02,2.37119e-02,-9.91811e-03,1.42962e-02,-1.72439e-02,2.01136e-02,8.64634e-02,7.36879e-02,5.25970e-02,-4.16118e-02,-8.33969e-03,-5.60286e-02,-1.06593e-01,-1.94642e-02,8.56027e-02,1.02514e-01,1.84249e-01,9.79427e-02,-1.28348e-02,-9.77544e-02,-1.66286e-01,-7.73271e-02,-2.04339e-02,-2.91276e-02,-2.92953e-03,-7.13939e-03,3.11626e-02,6.88819e-02,3.23440e-02,-3.61567e-02,1.41923e-02,-8.98463e-03,1.40504e-02,3.53654e-02,6.95429e-02,1.03104e-01,7.33792e-02,3.77273e-03,2.46595e-02,3.17608e-02,5.05100e-02,1.28222e-01,1.44334e-01,2.04338e-01,2.81931e-01,1.61442e-01,-7.68263e-02,-1.04943e-01,-1.14481e-01,-6.68543e-02,2.40212e-02,4.34731e-02,3.58031e-02,4.93216e-03,3.01503e-03,1.64299e-02,3.34075e-02,-2.38873e-02,6.46335e-03,2.12554e-02,2.93587e-02,1.62579e-02,7.67814e-02,4.01840e-02,4.36031e-02,1.01887e-01,7.59103e-02,1.04433e-01,1.74427e-01,1.91010e-01,2.53564e-01,3.13260e-01,2.23037e-01,-2.68127e-02,-1.28027e-01,-1.51309e-01,-4.40805e-02,3.34189e-03,5.16064e-02,-2.19836e-02,-9.70078e-03,-2.33677e-02,-1.10381e-02,3.83473e-02,-2.87779e-02,-3.03552e-02,-1.22367e-02,-2.59063e-03,3.99559e-04,-2.30192e-03,7.70569e-02,5.54648e-02,4.20013e-02,1.28190e-01,1.74468e-01,2.08824e-01,1.61124e-01,1.74778e-01,2.77890e-01,2.05995e-01,1.10748e-01,-1.13202e-01,-1.44467e-01,-1.01837e-01,-2.91616e-02,6.12694e-03,-4.48602e-02,-2.38001e-02,-2.30383e-02,5.85839e-03,9.61448e-02,4.58191e-02,-1.31352e-02,7.41205e-03,3.42941e-02,3.03298e-02,-2.85920e-02,-3.06145e-03,4.37910e-02,3.13946e-02,1.29405e-01,1.91550e-01,1.84480e-01,2.45811e-01,1.97758e-01,1.91773e-01,1.18847e-01,5.27816e-02,-1.23262e-01,-1.20689e-01,-8.07533e-02,-4.38757e-02,-2.34344e-02,-4.84317e-04,-1.92303e-02,-6.73598e-02,-5.28401e-03,9.43432e-02,1.38060e-01,1.03389e-01,-1.23238e-02,1.03759e-02,-3.27167e-02,-3.03544e-02,3.01178e-02,7.83896e-03,-8.17551e-03,1.97232e-03,5.80312e-02,1.32933e-01,1.84848e-01,1.35558e-01,5.65109e-02,4.55918e-02,-3.70182e-02,-1.17698e-01,-1.46726e-01,-1.18568e-01,-6.83195e-02,-9.19265e-02,-6.89469e-02,-6.33614e-02,-1.80944e-02,-3.64980e-02,9.97154e-02,2.07386e-01,1.80588e-01,1.25209e-01,-1.81060e-02,2.59014e-02,2.54572e-02,1.01866e-02,1.85913e-02,6.10415e-04,2.91868e-03,-4.82724e-02,-2.42513e-03,5.31763e-02,9.38197e-02,3.59847e-02,1.95976e-02,2.06811e-03,-1.26076e-01,-1.88640e-01,-2.05585e-01,-1.51857e-01,-6.31661e-02,-5.53287e-02,-3.95669e-02,-1.62584e-02,-2.44582e-02,2.63974e-03,9.38026e-02,1.37594e-01,1.27869e-01,5.11349e-02,2.90987e-02,-2.52236e-02,-9.96991e-03,-2.75768e-02,-1.17610e-02,5.10631e-03,-2.78418e-04,-6.31491e-03,-8.31316e-03,-2.57658e-03,3.21941e-02,-6.52772e-02,-4.24288e-02,-5.79780e-02,-9.70298e-02,-2.44409e-01,-1.91610e-01,-3.87696e-02,-5.74671e-02,-8.11459e-02,-6.83429e-02,-3.12327e-02,-8.43168e-03,3.27238e-02,5.40192e-02,9.08805e-02,1.17647e-01,1.72981e-02,7.07500e-03,-1.93057e-02,-2.30137e-02,3.33525e-02,2.97580e-02,-2.42518e-02,-1.78637e-02,-7.36481e-02,-9.78098e-02,-3.12062e-02,-4.64225e-02,-6.97863e-02,-1.11904e-01,-7.41651e-02,-9.58111e-02,-2.41459e-01,-1.27193e-01,-9.39403e-03,-3.36029e-02,-3.33781e-02,2.91106e-02,4.21664e-02,-1.11357e-03,4.97441e-02,2.03834e-02,8.01152e-02,1.38003e-02,-7.21010e-03,-6.01332e-03,-1.48892e-02,3.47900e-04,-1.26773e-02,-2.90236e-02,2.47562e-02,-4.87583e-02,-5.82191e-02,-1.26488e-01,-7.40467e-02,-9.55417e-02,-1.00033e-01,-3.24019e-02,-3.12609e-02,-1.22117e-01,-1.78320e-01,-9.19150e-02,3.17456e-02,6.09697e-02,2.51372e-02,8.21142e-02,1.02911e-01,4.75510e-02,2.15248e-02,8.13304e-02,1.98727e-02,8.17448e-05,-4.98095e-02,-6.78828e-03,-4.15531e-02,1.11881e-02,-2.58800e-02,-3.13989e-02,-1.63120e-02,-1.76538e-03,-6.40824e-02,-1.23252e-01,-8.19631e-02,-1.03705e-01,-8.24197e-02,-6.00959e-02,3.44252e-03,4.88193e-02,-1.91045e-02,4.52854e-02,8.81193e-02,7.56822e-02,9.10973e-02,8.25081e-02,9.30471e-02,8.02009e-02,4.63601e-02,-6.96631e-03,-4.18605e-02,-2.81770e-02,-2.60622e-02,1.10246e-02,2.51512e-02,3.14002e-02,3.21804e-02,-3.46568e-02,-1.54974e-02,-1.05782e-02,-5.46860e-02,-7.87108e-02,-7.72305e-02,-6.35393e-02,-5.47961e-02,3.15078e-03,6.88522e-02,1.03409e-01,1.33332e-01,8.10838e-02,1.82294e-01,1.82962e-01,1.38030e-01,1.47223e-01,1.37433e-01,6.06257e-02,2.51481e-03,-3.85982e-02,-9.02744e-02,-5.20994e-02,-3.05933e-02,-4.21895e-02,-1.96841e-03,6.41968e-03,-5.80732e-03,-2.31568e-02,-2.69624e-02,5.23571e-03,-2.72716e-02,-7.99276e-02,-9.59279e-02,-6.02502e-02,-5.67350e-02,-3.49426e-02,2.26563e-02,1.15823e-01,9.58682e-02,1.28331e-01,1.39852e-01,1.26001e-01,1.16548e-01,1.54531e-01,1.28441e-01,4.11030e-02,3.90276e-03,-8.18403e-02,-4.25376e-02,-2.89571e-02,-4.81705e-02,-2.45059e-02,6.90565e-03,1.12680e-03,6.67282e-03,-2.03764e-03,-9.04441e-03,-1.58052e-02,-1.73901e-02,-4.81194e-02,-7.08591e-02,-2.68709e-02,1.62887e-02,4.09678e-02,3.89336e-02,-1.38456e-02,2.40040e-02,3.68219e-02,3.30241e-02,1.09011e-01,1.12058e-01,6.60123e-02,1.01148e-01,1.69131e-02,5.23118e-03,-4.81412e-02,-7.22059e-02,-1.25370e-02,-3.90585e-02,-2.14369e-02,-1.79743e-02,1.58832e-02,1.32505e-02,-1.88561e-02,-2.40802e-02,6.50306e-04,3.22512e-03,4.59668e-03,-5.32128e-02,-2.99072e-02,-5.78605e-02,9.80055e-04,3.48778e-02,-1.46524e-02,4.27659e-02,-4.72971e-03,6.51796e-02,5.67031e-02,6.81529e-02,8.44830e-02,5.89661e-02,-7.45852e-03,-1.93485e-02,-4.59885e-02,-1.21958e-02,-2.51943e-02,-3.03415e-02,-2.31954e-02,-8.13523e-03,-1.35838e-02,-1.33948e-02,3.34199e-02,-2.13900e-02,3.30676e-02,3.00226e-02,-1.96814e-02,1.76268e-02,-4.31118e-02,-1.49655e-02,-3.54362e-02,-1.10777e-02,8.10265e-03,1.97708e-02,-2.27955e-02,8.17340e-03,2.26019e-02,-3.56963e-03,7.54688e-02,8.26057e-03,2.84360e-03,9.45892e-03,-4.59148e-02,-3.94189e-02,-5.53413e-02,2.67864e-02,1.04902e-02,-2.74186e-02,-8.34480e-03,2.88062e-02,-3.43285e-02,2.77778e-03,-2.86128e-02,-2.83666e-02,-7.47575e-03,2.39607e-02,-2.26287e-02,-6.86779e-03,-7.51537e-03,-4.85044e-03,-2.61424e-02,-7.61551e-03,-4.17092e-02,-3.88650e-02,-5.45604e-02,5.39150e-03,-2.18838e-02,5.11843e-03,3.86426e-02,-4.14904e-02,-8.92582e-03,1.23474e-02,-5.86203e-03,2.48815e-02,-8.05914e-03,2.48307e-02,-2.02741e-02,-2.83305e-02,-2.35086e-02,1.94983e-02,3.22878e-03,-5.62882e-03,-5.58395e-03,-8.63086e-03,2.71300e-02,2.59446e-02,3.83369e-02,2.96520e-02,3.20717e-03,4.99461e-03,2.08788e-02,-2.42061e-02,5.74199e-02,4.99535e-02,4.87940e-02,4.87944e-02,2.50085e-02,2.43963e-02,1.91444e-02,1.94938e-02,-1.15124e-02,-1.86835e-02,-1.29710e-03,2.82164e-02,-1.94896e-02,-1.43661e-02,-1.76637e-02,-2.98585e-02,1.37747e-02,-5.13422e-03,3.58131e-03,3.46180e-02,5.02814e-03,3.18177e-02,1.34139e-02,1.38200e-03,2.51127e-02,2.35492e-02,2.00527e-02,1.89519e-02,-2.71542e-03,1.46445e-02,4.95228e-02,5.19011e-02,4.14855e-02,-2.03790e-02,3.66628e-03,1.71747e-02,2.61504e-02,-1.97060e-02,-2.84727e-02,1.21238e-02,-2.05414e-02, +3.56587e-02,-2.23455e-02,1.75861e-02,-1.10010e-02,-2.93561e-02,-3.48216e-02,1.55118e-02,-1.08913e-02,-2.29826e-02,3.52449e-02,2.09464e-02,2.35152e-02,-1.40499e-02,9.82715e-04,7.90159e-03,-4.10989e-03,1.71586e-02,-8.68868e-03,-7.98070e-03,-3.73735e-03,-1.40561e-02,-2.44863e-02,-4.00843e-03,-1.27775e-02,-1.12861e-02,-1.56126e-02,1.65379e-02,-5.80408e-03,2.75103e-02,1.04670e-02,-1.18866e-02,3.55359e-02,-1.11555e-02,-3.00515e-02,2.91708e-02,-1.19998e-02,3.51473e-02,3.48645e-02,-6.08768e-04,4.20872e-03,3.67983e-02,3.76982e-02,3.78939e-02,1.74168e-02,1.96834e-03,3.90421e-02,1.83810e-02,-1.96662e-02,-2.52051e-04,5.44359e-03,1.78206e-02,-3.15799e-02,-3.55111e-02,-2.03447e-02,4.57051e-03,2.42308e-02,-2.97512e-02,1.48011e-02,1.86721e-03,3.16096e-02,-1.92438e-02,-1.07234e-02,1.76994e-02,-1.94974e-02,4.44794e-02,1.53214e-02,6.23931e-02,5.37747e-02,1.30179e-01,1.18370e-01,1.14843e-01,9.03809e-02,8.08008e-02,8.70820e-02,5.47460e-02,7.49166e-02,8.81997e-02,5.15885e-02,1.81627e-02,-1.39356e-03,1.42159e-02,-3.08773e-02,-2.86060e-02,-2.91502e-03,2.09109e-02,-2.00662e-02,-5.34740e-03,-1.47156e-02,2.47023e-02,-1.06924e-02,1.01309e-02,4.44879e-02,3.04065e-02,9.07305e-02,5.17211e-02,8.96296e-02,1.30644e-01,1.31091e-01,1.17688e-01,1.37229e-01,1.15288e-01,1.66375e-01,1.41696e-01,1.12721e-01,1.21335e-01,8.19232e-02,2.74331e-02,5.26115e-02,-1.82884e-02,-3.08765e-02,2.43053e-02,1.76985e-02,1.67585e-02,1.18830e-02,-1.49501e-02,-3.24315e-02,9.47974e-03,4.17941e-02,5.67337e-02,4.42043e-02,7.28469e-02,8.79378e-02,1.48596e-01,9.82350e-02,1.24022e-01,8.16555e-02,9.52379e-02,2.44777e-02,3.34299e-02,8.07531e-02,3.67390e-02,1.05265e-01,5.80109e-02,5.23336e-02,-6.91196e-03,2.52309e-02,-5.03326e-03,-3.66773e-02,3.16210e-02,-3.56104e-02,3.16164e-02,1.04105e-02,2.38473e-02,1.96096e-02,-5.23809e-03,5.89636e-02,2.33489e-02,3.74550e-02,5.75150e-02,3.57963e-02,5.29230e-02,1.27339e-02,-4.23464e-03,-4.00242e-02,2.03118e-02,3.37131e-03,-1.74959e-02,-4.46726e-02,-5.50451e-02,-8.74651e-02,-7.02458e-02,-6.24477e-02,-9.84733e-02,-2.50658e-03,1.14263e-02,1.70279e-02,2.24807e-02,2.71968e-02,4.56963e-03,-1.71793e-02,-1.68047e-02,-7.17306e-03,5.78710e-02,6.36355e-02,6.13628e-02,1.60759e-02,7.35932e-02,4.44187e-02,-1.03064e-02,3.79298e-02,-2.99181e-02,-4.05572e-02,-4.06899e-02,7.79523e-05,-2.46365e-02,-9.38802e-02,-1.15466e-01,-1.69575e-01,-1.87641e-01,-1.79224e-01,-1.14452e-01,-7.31177e-02,-4.55626e-02,-2.79539e-02,2.43231e-02,2.81401e-02,-4.53213e-03,-1.09700e-02,2.00101e-02,6.41389e-02,5.85451e-02,7.78980e-02,6.99136e-02,4.39422e-02,3.66180e-02,-3.18427e-02,-7.67867e-03,-7.40408e-02,-1.09277e-01,-1.06723e-01,-9.02052e-02,-3.04673e-02,-9.44383e-02,-9.90872e-02,-2.04535e-01,-2.18368e-01,-1.93824e-01,-1.82474e-01,-1.47213e-01,-1.33292e-01,-1.80846e-02,-1.93609e-02,1.58005e-02,5.94986e-03,-2.87928e-02,-1.94197e-02,-5.66043e-03,2.23782e-02,8.81514e-02,4.64636e-02,2.83924e-02,9.53083e-03,-7.62785e-02,-8.22491e-02,-9.56676e-02,-1.27391e-01,-1.02060e-01,-8.18359e-02,-2.78602e-02,5.46628e-02,-6.49461e-02,-1.07813e-01,-2.17252e-01,-2.40897e-01,-2.07229e-01,-1.67774e-01,-1.61376e-01,-1.41975e-01,-8.06405e-03,-3.18266e-02,-1.71676e-02,1.87313e-02,2.74647e-02,3.07474e-02,4.46116e-03,8.71405e-02,1.19395e-01,-1.45373e-03,-6.62702e-02,-5.05911e-02,-4.52896e-02,-1.35750e-01,-1.48045e-01,-1.03423e-01,-5.17002e-02,6.42261e-02,1.71139e-01,1.54265e-01,-6.64099e-03,-1.09558e-01,-2.02266e-01,-2.20935e-01,-1.42804e-01,-1.55200e-01,-1.15489e-01,-8.17245e-02,-7.61907e-02,-9.72726e-03,-4.46162e-03,2.94260e-02,5.64611e-04,-4.35410e-03,6.14991e-03,5.20773e-02,5.78490e-02,2.93479e-02,-3.88474e-02,-6.89099e-02,-1.16057e-01,-1.29845e-01,-9.04327e-02,-8.98836e-02,3.72848e-02,1.41265e-01,2.70981e-01,1.00207e-01,-3.36504e-03,-1.01523e-01,-1.97478e-01,-1.79260e-01,-9.70012e-02,-5.11183e-02,-4.08461e-02,-9.04693e-02,-1.01212e-01,-1.85964e-02,-4.12374e-02,-2.01220e-02,1.90113e-02,2.09277e-02,1.21479e-02,2.83666e-02,8.28881e-02,4.33415e-02,-3.76742e-02,2.56912e-02,-5.10181e-02,-1.19171e-02,2.26952e-03,1.81152e-02,1.28407e-01,1.80915e-01,1.69504e-01,2.81971e-02,-8.40299e-02,-5.63943e-02,-3.96264e-02,-5.64668e-02,-9.75143e-03,-3.10317e-02,-7.79191e-03,-3.54620e-02,-3.76656e-02,-4.26180e-02,-3.62873e-02,-1.02832e-02,-3.28214e-02,-8.91464e-03,9.05189e-03,8.24373e-02,2.69060e-02,3.79181e-03,-9.99789e-03,3.56903e-02,9.17176e-02,2.64729e-02,5.44466e-02,6.73306e-02,1.37448e-01,1.47363e-01,1.38581e-01,7.36954e-02,1.50066e-02,-2.59592e-02,-2.81471e-04,-5.84109e-02,5.67908e-03,-2.28625e-02,1.07846e-02,7.13644e-02,1.41783e-02,-1.55626e-02,1.51263e-02,-1.75361e-02,-3.30948e-02,2.23880e-02,4.04395e-02,2.68024e-02,1.61143e-03,2.52338e-02,4.35468e-02,2.91735e-02,5.97278e-02,8.41117e-02,7.40702e-02,-5.27055e-03,3.02232e-02,1.44535e-02,4.23133e-02,5.01786e-02,4.79948e-02,3.11221e-02,4.36751e-02,1.62529e-02,2.31051e-02,8.40845e-02,4.24932e-02,1.10644e-01,6.15847e-02,-1.43217e-02,-3.09125e-03,7.04632e-03,4.74992e-04,2.26467e-02,-1.85103e-02,2.52357e-02,-2.49781e-03,-3.57159e-02,1.17173e-02,-2.44394e-02,1.42631e-02,2.46058e-02,-4.17503e-02,-3.60094e-02,-9.34943e-02,-8.30306e-02,1.23380e-02,9.58758e-02,4.13689e-02,1.85710e-02,6.38449e-02,1.43875e-01,1.38523e-01,1.97321e-01,1.39116e-01,1.19272e-01,5.20764e-02,-2.41445e-02,-4.47950e-02,-2.30184e-02,2.88702e-02,-9.47613e-03,-2.09866e-02,3.27066e-02,-3.95523e-02,-6.50563e-02,-1.83668e-02,2.96796e-03,-4.33666e-02,-2.84758e-03,-4.64290e-02,-8.42719e-02,-7.77381e-02,-3.11443e-02,8.81559e-02,1.50723e-02,-3.50210e-02,3.11035e-02,1.07686e-01,2.01060e-01,2.16431e-01,2.36219e-01,1.78164e-01,7.03445e-02,5.53826e-02,5.79474e-03,-3.80703e-02,-2.41638e-02,2.82821e-02,-6.04310e-04,1.25982e-02,-2.28897e-02,-1.79989e-02,-2.75571e-02,-6.46548e-03,3.88631e-02,-7.79140e-03,1.04581e-02,-4.71705e-02,-6.71139e-02,-1.23973e-01,-5.32321e-02,1.10722e-01,-5.16345e-02,-5.96364e-02,-3.84885e-02,5.72787e-02,1.85504e-01,1.38384e-01,1.77534e-01,1.57328e-01,2.41639e-02,-3.83135e-03,-7.13313e-03,-5.51812e-02,-2.20192e-02,-3.51816e-02,2.57434e-02,3.37157e-02,1.20847e-02,-4.79542e-02,-1.26040e-01,-4.69631e-02,-5.13784e-02,-3.63827e-02,-9.14425e-02,-9.03083e-02,-9.43006e-02,-1.61801e-01,-3.73625e-02,5.92146e-02,-6.08043e-02,-1.81478e-02,-3.71013e-02,5.05568e-02,8.75631e-02,6.13716e-02,9.44478e-02,9.31975e-02,1.99058e-02,-5.49709e-02,-4.70194e-02,-1.11585e-02,-3.69600e-02,1.83522e-02,-5.50716e-03,-2.10891e-02,7.56975e-03,-4.96867e-02,-7.89421e-02,-7.62668e-02,-9.12822e-02,-7.00556e-02,-4.82895e-02,-8.29258e-02,-9.02265e-02,-1.04925e-01,5.92750e-02,8.78003e-02,5.12847e-02,3.45272e-02,5.63090e-02,6.74251e-02,3.59513e-02,1.90166e-02,1.22467e-01,4.76985e-02,-6.35234e-02,-1.24638e-01,-4.29429e-02,2.51311e-03,-2.83898e-02,4.80916e-03,2.04677e-02,2.17052e-02,5.60619e-02,-5.63934e-02,-1.31985e-01,-1.18121e-01,-1.00909e-01,-3.96642e-02,-5.90226e-02,-8.52271e-02,-3.87684e-02,-7.26390e-04,1.15998e-01,1.26155e-01,1.26349e-01,1.52441e-01,1.40917e-01,1.13679e-01,2.41292e-03,3.79515e-03,1.34783e-02,-9.91134e-02,-1.30693e-01,-1.13380e-01,-6.80192e-02,1.57638e-02,-2.36118e-02,-2.22971e-02,-6.71121e-03,-1.15864e-02,3.08539e-02,-5.66807e-02,-5.51398e-02,-1.32493e-01,-9.30804e-02,-7.15339e-02,-3.30128e-02,-5.09033e-04,2.03023e-02,8.84623e-02,1.26268e-01,2.17690e-01,2.22080e-01,1.68181e-01,1.19025e-01,9.64767e-02,-3.62475e-02,-1.75091e-02,-1.32020e-01,-1.70105e-01,-1.30403e-01,-9.90437e-02,-2.10692e-02,2.94080e-02,2.75115e-02,2.89977e-02,-3.07991e-02,3.79280e-02,2.49841e-02,-8.26249e-03,-7.08177e-02,-1.24683e-01,-1.51191e-01,-9.67915e-02,-9.03360e-02,-5.49858e-02,3.68029e-02,6.67159e-02,1.21358e-01,1.78932e-01,2.15489e-01,1.41269e-01,6.81635e-02,1.07550e-02,-6.87920e-02,-9.60706e-02,-1.36116e-01,-1.44031e-01,-1.08693e-01,-4.73636e-02,-3.96449e-02,-1.32203e-02,2.00926e-02,-2.41879e-02,1.95969e-02,-1.80570e-02,-2.82244e-02,-2.71384e-03,-2.46317e-02,-7.30208e-02,-1.68078e-01,-1.70513e-01,-4.81550e-02,-7.08546e-02,-3.38400e-02,5.38155e-03,2.82622e-03,4.42027e-02,-9.91247e-04,2.27639e-02,-2.87725e-02,-2.83726e-02,-1.02886e-01,-1.11268e-01,-1.84537e-01,-1.29556e-01,-7.23222e-02,-2.57923e-02,5.13663e-03,1.43185e-02,2.92412e-02,-2.83898e-02,1.10456e-02,-2.63807e-02,8.58942e-03,2.16969e-02,-4.91246e-02,-7.63808e-02,-1.30367e-01,-8.21218e-02,-5.10099e-02,-2.52041e-02,-2.41387e-02,-5.22236e-02,-7.49615e-02,-6.51569e-02,-6.69363e-02,-5.87905e-02,-7.08887e-02,-5.74351e-02,-1.22517e-01,-1.32603e-01,-9.35009e-02,-1.09124e-01,-8.23625e-02,1.08554e-03,2.19921e-02,2.63821e-02,7.21663e-03,-3.01376e-03,-3.55202e-02,-7.29190e-03,1.98272e-02,-4.31336e-03,-1.55783e-03,2.66416e-02,-3.07489e-02,-1.98771e-02,-5.56726e-02,3.57025e-03,2.25159e-02,2.67682e-02,-5.02378e-03,-6.28708e-03,-9.67306e-03,-6.15881e-02,-2.50505e-02,-2.53012e-02,-7.13649e-02,-4.98364e-02,-4.23573e-02,-7.93138e-02,-5.27417e-02,1.56277e-02,3.27588e-02,-1.37551e-02,1.37286e-02,2.92715e-02,-2.89112e-02,-1.31414e-02,2.99474e-02,-3.25925e-03,2.00229e-02,3.31402e-02,2.99639e-02,5.75536e-02,5.17962e-02,-7.55802e-03,5.77853e-02,8.19658e-02,4.80445e-02,2.04868e-02,3.86758e-02,1.00602e-03,1.30568e-02,1.40457e-02,1.41858e-02,-2.95289e-02,-3.28394e-02,1.65612e-02,1.70126e-02,1.23663e-02,-3.42442e-02,1.46956e-02,2.96697e-03,-3.53359e-02,-3.49899e-02,5.23784e-03,-6.73036e-03,2.62336e-02,4.10509e-03,-2.03519e-02,8.98358e-03,4.39646e-02,3.90630e-02,7.36026e-02,8.00477e-02,4.79888e-02,6.23176e-02,3.33681e-03,4.89789e-02,3.15302e-02,1.29780e-02,2.30983e-02,4.11061e-02,-2.56268e-03,1.34653e-02,2.91301e-02,4.71409e-03,-4.58294e-03,-2.62898e-02,-1.98579e-02,1.09020e-03,7.10824e-03,-4.87308e-03,-3.21652e-02,-2.11869e-02,2.09173e-02,-1.84172e-03,-3.55053e-02,-3.17684e-02,-1.24686e-02,-2.43252e-02,3.73338e-02,4.07886e-02,2.03362e-02,5.10834e-02,2.77128e-02,3.96314e-03,1.64052e-02,5.91362e-03,1.63501e-03,3.02414e-02,4.00950e-03,1.77035e-02,1.76717e-02,2.19472e-02,2.27329e-03,1.90936e-03,2.07178e-02,-1.92393e-02, +4.28971e-04,9.93693e-03,-2.50334e-03,-6.40287e-03,1.76762e-02,1.50237e-02,-2.54699e-02,-8.58224e-03,-2.14568e-02,1.87428e-02,5.73287e-03,3.80812e-03,1.88482e-02,-8.71303e-05,2.37275e-02,-6.00985e-03,1.97578e-02,1.56923e-02,3.12833e-02,-5.23399e-03,4.80464e-03,-3.49625e-02,2.97745e-02,2.80986e-03,1.20215e-02,-3.22776e-02,-5.55775e-03,2.99567e-02,-1.71437e-02,1.00265e-02,2.09038e-02,1.94706e-02,3.31293e-02,-1.78198e-02,-2.11651e-02,1.67184e-02,2.72922e-04,-2.25396e-02,-3.13726e-02,3.20305e-02,-1.42960e-02,3.54166e-02,-2.56622e-02,1.81796e-02,-1.15550e-02,2.89486e-02,3.47346e-02,3.05242e-02,-1.88704e-02,-1.01753e-02,-2.15862e-02,-4.43797e-03,1.08319e-02,2.45233e-02,-1.70493e-02,2.29789e-02,-7.40035e-03,8.00487e-04,-2.34527e-02,8.38916e-03,4.48645e-03,2.33878e-02,2.91463e-02,3.67747e-02,3.32896e-02,3.43477e-03,2.70246e-02,4.34026e-02,4.27824e-02,3.43159e-02,-1.27579e-02,-7.01320e-03,-2.67314e-02,5.02788e-03,-1.75014e-02,-4.46608e-02,-2.57812e-02,-3.42594e-02,6.13466e-03,2.82822e-02,-1.57435e-03,-1.44801e-02,-1.11289e-02,-2.85875e-02,1.60166e-02,2.10255e-02,-2.53546e-02,2.55293e-02,1.21875e-02,-3.04894e-02,2.44587e-02,4.97350e-03,7.30423e-03,4.43303e-02,2.05059e-02,7.91022e-02,1.27842e-01,1.07572e-01,1.02816e-01,4.20454e-02,2.28693e-03,2.79037e-02,9.50582e-03,1.84551e-02,2.22028e-02,1.30067e-02,-2.40761e-03,-3.30902e-02,2.07639e-03,6.75463e-03,-2.07761e-02,-4.37843e-03,4.63258e-03,-2.51227e-02,4.14470e-03,-3.15336e-02,1.78106e-02,-2.19486e-02,1.84309e-02,2.23502e-02,2.19144e-02,7.53949e-02,7.37836e-02,1.53079e-01,1.12592e-01,6.94893e-02,5.12148e-02,7.61020e-02,8.71313e-02,1.04213e-01,8.40027e-02,3.39263e-02,-2.26176e-02,3.52251e-02,2.39600e-02,4.70428e-02,5.94075e-02,1.61428e-02,-1.48067e-02,2.41296e-02,7.61724e-03,-1.86509e-02,-2.31975e-02,-3.11447e-02,1.92994e-02,1.12087e-02,1.67550e-02,5.63598e-02,4.78226e-02,1.25217e-01,1.16312e-01,5.76225e-02,-4.76243e-03,-3.76562e-02,6.72456e-03,-1.24119e-03,5.67659e-02,1.20035e-01,9.05775e-02,1.16637e-01,1.01248e-01,6.19648e-02,4.38936e-02,4.03265e-02,7.82984e-02,2.70789e-02,-8.66613e-03,-1.48728e-03,-3.39761e-02,-1.28781e-02,-1.79305e-02,3.87047e-02,-1.17185e-02,2.69874e-02,7.51472e-02,7.25760e-02,1.54912e-01,9.39767e-02,9.81222e-02,6.10849e-02,3.65358e-02,9.59231e-02,9.35157e-02,4.18652e-02,9.63568e-02,1.00316e-01,9.89783e-02,1.21796e-01,9.20249e-02,9.76198e-02,1.11737e-01,4.44021e-02,4.93272e-02,7.07326e-02,8.31959e-03,1.62564e-02,-7.24381e-03,1.48045e-02,1.26949e-02,4.09707e-02,-4.03735e-03,7.35708e-02,1.10111e-01,1.06368e-01,1.06416e-01,1.60735e-01,1.39194e-01,1.67172e-01,1.45607e-01,1.14227e-01,1.08431e-01,9.30982e-02,1.27187e-01,1.08463e-01,1.54223e-01,1.39431e-01,6.45568e-02,1.07992e-01,7.83260e-02,4.47814e-02,7.65821e-02,5.01995e-02,3.16273e-02,-8.60726e-04,3.44765e-02,1.99860e-02,-2.02991e-03,-5.85745e-03,4.43578e-02,6.23120e-02,1.00435e-01,1.28481e-01,1.06324e-01,1.06192e-01,1.43715e-01,1.63116e-01,1.99561e-01,1.81508e-01,1.87479e-01,1.09845e-01,1.04838e-01,1.07480e-01,6.00981e-02,9.68658e-02,2.63206e-02,-4.82298e-03,4.27848e-02,4.10424e-02,5.20945e-02,8.76873e-02,-8.53534e-03,-4.74296e-03,-1.91001e-02,-2.17772e-02,-1.26801e-02,1.18419e-02,7.30036e-02,3.45527e-02,7.39666e-02,4.86881e-02,1.15190e-01,1.27134e-01,1.42980e-01,1.26958e-01,1.24466e-01,1.00404e-01,5.07386e-02,-7.96578e-03,-2.97176e-02,9.86907e-03,-1.56988e-02,3.49112e-02,-4.82148e-02,-8.16948e-02,-6.80025e-02,-2.10988e-02,8.39491e-02,7.59458e-02,8.70443e-03,-1.31951e-02,-2.67899e-02,-1.67975e-02,8.95384e-03,2.28939e-02,6.23389e-02,3.52990e-02,-2.65309e-02,-1.40913e-03,2.08705e-02,2.73206e-02,2.68918e-02,2.03567e-02,1.05264e-02,-2.55915e-02,-7.73833e-02,-1.43497e-01,-1.38978e-01,-7.50798e-02,-4.40856e-02,-4.93037e-02,-1.34622e-01,-1.11433e-01,-1.11628e-01,-4.19082e-02,4.15519e-02,7.94021e-02,5.78705e-02,-2.91149e-02,-2.37071e-02,2.17495e-02,2.90436e-02,5.35267e-02,4.34215e-02,-2.81988e-02,-3.59783e-02,-3.92614e-02,-2.30450e-02,-2.05127e-02,-4.67080e-02,-8.60562e-02,-1.02108e-01,-1.54688e-01,-2.31818e-01,-2.29428e-01,-2.31862e-01,-9.45046e-02,-8.77599e-02,-1.06389e-01,-1.54811e-01,-1.74401e-01,-1.31771e-01,-8.24198e-02,-1.82811e-02,3.94473e-02,3.48502e-02,2.08636e-03,5.67231e-03,1.66489e-02,-1.51729e-02,-2.54081e-02,-6.22093e-02,-7.42383e-02,-7.13633e-02,-4.99879e-02,-6.76326e-02,-3.00817e-02,-1.96633e-02,-1.02145e-01,-1.33850e-01,-1.80891e-01,-2.15405e-01,-1.58685e-01,-8.18496e-02,-3.46146e-02,-6.27983e-02,-8.61912e-02,-1.54571e-01,-1.74582e-01,-9.79165e-02,-5.59857e-02,-2.64452e-02,-2.16913e-02,-5.31555e-03,1.96914e-02,-1.54381e-03,-1.49820e-02,3.94048e-02,1.51703e-02,-5.43991e-02,-9.35872e-02,-3.42010e-02,9.90773e-03,-3.29194e-02,-4.98553e-02,-3.42675e-02,-9.32405e-02,-9.71131e-02,-1.09993e-01,-1.03541e-01,-1.52888e-01,-1.19476e-01,-5.02253e-02,-5.90097e-02,-1.16357e-01,-1.64307e-01,-8.96109e-02,-2.93693e-02,-2.89432e-03,4.93411e-02,1.96629e-02,-3.37176e-02,6.85698e-03,2.94081e-02,2.01175e-02,-2.45350e-02,-5.17064e-02,-8.02451e-02,-3.31666e-02,-5.01738e-02,-3.40913e-02,-8.65243e-03,8.78144e-03,1.09514e-02,-9.74274e-02,-7.35166e-02,-7.26393e-02,-2.62504e-02,-4.08518e-02,-9.51767e-02,-5.90892e-02,-7.51991e-02,-6.34838e-02,-7.60624e-02,1.59408e-02,-4.37075e-02,8.82510e-03,3.68160e-02,7.50244e-04,-2.44665e-02,-3.53316e-02,-1.99140e-02,3.52841e-02,3.87198e-02,-4.97347e-02,-6.66386e-02,-5.08284e-02,-7.44277e-02,-2.20808e-02,-4.14185e-02,3.74467e-02,-1.43330e-02,-7.04430e-02,-4.21440e-03,-3.32381e-03,1.79810e-04,-4.97260e-02,-7.80683e-02,-1.10782e-01,-2.75712e-02,-9.14476e-03,-7.14348e-03,5.15339e-02,4.79103e-02,6.04909e-02,5.01039e-02,5.11052e-02,-7.81292e-03,-2.57680e-02,-2.88834e-02,2.87749e-02,1.30822e-02,1.42278e-02,-4.14871e-02,-7.58549e-02,-1.74332e-01,-1.06371e-01,-1.06196e-01,-4.84106e-02,-1.12274e-02,5.31909e-03,6.73741e-02,3.82689e-02,-4.48429e-02,-8.12786e-02,-9.79570e-02,-9.84660e-02,-2.25900e-02,2.00956e-02,5.04806e-02,6.02811e-02,1.30011e-01,1.52010e-01,5.78442e-02,3.18074e-02,-2.64820e-02,8.72105e-03,2.70492e-02,-2.93783e-03,3.23352e-02,1.26152e-02,8.48995e-03,-3.71932e-02,-1.36753e-01,-1.79775e-01,-1.66721e-01,-1.31696e-01,-8.22199e-02,-5.27262e-02,2.25312e-02,-3.54437e-02,-9.96920e-02,-1.30625e-01,-1.38165e-01,-4.38278e-02,4.97599e-03,6.45923e-02,8.77280e-02,1.09972e-01,9.35010e-02,1.34065e-01,8.60003e-02,-4.96256e-03,-3.49409e-02,1.47256e-02,5.28244e-03,8.67780e-03,3.42751e-02,2.92223e-02,2.35476e-02,-2.41859e-02,-1.10440e-01,-1.93210e-01,-2.21575e-01,-2.19570e-01,-1.85344e-01,-1.24576e-01,-1.64017e-01,-1.35977e-01,-1.37608e-01,-1.26015e-01,-4.87286e-02,5.64969e-02,-1.08103e-03,1.05104e-01,7.42215e-02,1.12913e-01,1.47870e-01,1.01409e-01,3.79251e-02,-1.54548e-02,-2.91892e-02,-2.23178e-02,-3.18249e-02,2.49175e-02,2.33726e-02,3.46889e-02,4.87399e-02,8.25377e-03,-4.51757e-02,-8.40146e-02,-8.43121e-02,-1.37618e-01,-9.80042e-02,-1.23037e-01,-8.61625e-02,-6.10801e-02,-8.53722e-02,-4.96805e-02,-2.30103e-03,2.50009e-02,7.48789e-02,8.91357e-02,2.05422e-02,9.43440e-02,1.27702e-01,1.15668e-01,6.98213e-02,4.16426e-03,3.31236e-02,-7.66640e-03,1.84777e-03,-2.25164e-02,-1.49969e-02,3.84711e-02,3.41642e-02,5.03862e-02,-3.44154e-03,-8.40597e-02,-7.29477e-02,8.86199e-03,-2.99235e-02,-2.21218e-02,2.05664e-02,2.54074e-02,1.38702e-02,4.81688e-02,3.86547e-02,6.16363e-02,8.57802e-02,5.88401e-02,8.85350e-02,3.32966e-02,1.39780e-01,9.13730e-02,1.28662e-03,2.18652e-02,3.22061e-02,3.60305e-03,9.86994e-03,-9.89466e-03,4.66420e-03,3.43185e-02,5.66902e-02,5.86466e-02,1.76926e-02,3.89527e-02,9.51750e-04,-2.66248e-02,6.22833e-02,9.44483e-02,1.32016e-01,8.88827e-02,1.56795e-01,1.01761e-01,8.36923e-02,5.08715e-02,7.47380e-02,7.02808e-02,5.19934e-02,7.27126e-02,4.14718e-02,1.31121e-02,3.07760e-02,3.11220e-02,1.38721e-03,1.98165e-02,2.54823e-02,2.57525e-02,-8.20610e-03,1.47026e-02,3.49041e-02,6.38643e-02,1.07179e-01,7.03989e-02,2.92102e-02,9.79857e-02,7.10285e-02,1.05433e-01,1.02580e-01,1.73532e-01,9.69910e-02,1.20728e-01,1.02433e-01,9.94035e-02,4.99475e-02,7.74388e-02,1.06589e-02,-1.26281e-02,4.28954e-02,9.98750e-04,2.68868e-02,2.92705e-02,2.84225e-02,3.70619e-03,-2.73310e-02,-8.22453e-03,-1.17941e-02,1.77290e-02,1.41652e-02,5.39669e-02,1.03920e-01,1.19775e-01,9.47858e-02,1.38540e-01,1.30897e-01,1.14145e-01,1.03176e-01,1.52402e-01,1.24124e-01,8.13952e-02,8.25801e-02,1.02811e-01,4.66997e-02,3.96385e-02,-3.44700e-02,-3.42731e-02,-2.68600e-02,-2.68766e-02,-6.72392e-03,3.51635e-02,2.88017e-02,-2.43562e-02,1.06059e-02,3.10240e-02,4.04126e-03,1.17887e-02,5.40624e-02,3.48879e-02,5.85740e-02,1.33285e-01,1.37734e-01,1.17295e-01,1.57159e-01,1.85578e-01,2.21288e-01,1.88578e-01,1.81067e-01,1.74037e-01,1.66065e-01,8.86640e-02,1.06626e-01,9.14760e-03,-4.72305e-02,-7.94654e-02,-3.27589e-02,6.07183e-03,4.84683e-03,2.90578e-02,-2.22613e-02,-1.25953e-02,-4.11456e-03,1.44700e-02,1.18694e-02,2.19765e-02,-1.59160e-02,-1.00647e-02,3.22439e-02,5.28511e-02,1.17723e-01,1.34183e-01,1.32595e-01,1.62994e-01,1.56344e-01,1.09480e-01,9.92053e-02,1.37777e-01,1.00844e-01,1.02682e-01,4.26740e-02,1.23849e-02,-4.22411e-02,-5.45306e-02,-1.32063e-02,2.15161e-02,-7.86373e-04,-1.05495e-02,2.91980e-02,-1.62969e-02,9.25674e-03,6.59380e-04,1.04955e-02,2.06506e-02,5.27599e-03,-1.07071e-02,1.39160e-02,1.45344e-02,1.59542e-02,2.69335e-02,2.04812e-02,4.54972e-02,3.27770e-03,2.52319e-02,4.21997e-02,3.04055e-02,1.78512e-02,5.16278e-02,5.69255e-03,4.14975e-02,2.08622e-02,-2.27291e-02,-6.16432e-04,-1.68515e-02,2.98633e-02,-2.57109e-02,3.97725e-03,-2.00835e-02,2.81383e-02,1.73464e-02,3.08579e-02,-1.63908e-02,1.21111e-02,-2.97232e-02,2.24623e-02,-1.01262e-02,1.41527e-02,2.00434e-02,-1.35902e-02,3.25834e-02,-7.76363e-05,2.18689e-02,-9.56948e-03,1.08426e-02,1.56799e-02,4.37583e-02,2.06285e-02,9.01742e-03,-9.05498e-03,-3.76017e-02,-1.77934e-02,-1.20620e-02,1.33791e-02,-2.59019e-03,1.11885e-02,-1.85268e-02, +-3.55494e-02,1.30849e-02,1.92790e-02,1.88725e-02,2.96117e-02,-3.48326e-02,1.06210e-02,2.83598e-02,-1.82462e-02,1.99099e-02,1.84642e-02,7.60262e-03,-3.41557e-02,1.68235e-02,3.21523e-02,-4.89462e-03,1.42399e-02,2.72139e-02,-2.66651e-02,-3.32290e-02,1.39262e-02,-1.49836e-03,-1.67895e-02,-3.33686e-02,-2.21597e-02,9.65096e-03,-6.57080e-03,-3.10355e-02,-3.61311e-03,-1.80614e-03,-3.33259e-02,2.14114e-02,3.56837e-02,2.53441e-02,-3.21049e-02,-2.19924e-02,-2.78792e-02,3.01855e-02,-1.67294e-02,2.68162e-02,-1.47852e-02,1.30172e-02,2.12396e-02,-1.92319e-02,1.67317e-02,2.02863e-02,8.07913e-03,-1.59954e-02,-3.22603e-02,4.66570e-03,-3.25148e-02,-1.17755e-02,5.77797e-03,2.20304e-02,2.72854e-02,-2.99551e-02,-1.58183e-02,-3.20971e-03,-6.97855e-04,-8.42473e-03,-2.25944e-02,-7.98575e-03,-7.48125e-03,-2.12716e-02,1.26795e-02,-3.18917e-02,-3.66050e-02,-6.31538e-04,-2.65429e-02,8.43864e-03,-5.90341e-02,-6.51959e-02,-2.50483e-02,-5.10002e-02,-2.34703e-02,-8.56178e-03,1.36353e-03,6.13833e-03,7.28904e-03,-2.41454e-02,-1.05168e-02,-3.71195e-03,-3.32668e-05,2.79212e-02,1.08221e-02,-3.31619e-02,9.02561e-03,2.18017e-03,1.50154e-02,-1.11562e-02,3.10251e-02,-2.04895e-02,3.79482e-02,4.18939e-02,-5.90683e-03,2.55882e-02,1.04131e-01,5.08322e-02,6.30127e-02,1.01562e-02,7.21678e-03,-2.70985e-03,-2.68628e-02,-2.74594e-02,-3.08690e-02,-9.19775e-02,-3.07634e-02,-8.00484e-04,9.74701e-03,-2.26948e-02,1.68237e-02,7.96176e-03,-2.22747e-02,-3.13119e-02,-1.99599e-02,-2.71142e-02,-9.07502e-03,1.31259e-02,5.06329e-03,3.98043e-02,5.87658e-02,9.24518e-02,8.01902e-02,1.94958e-01,2.01295e-01,1.85422e-01,1.49588e-01,1.12441e-01,5.52671e-02,7.97820e-02,1.91723e-03,-7.09341e-02,-1.74136e-02,-8.47570e-02,-3.97385e-02,-7.99939e-02,-3.51666e-02,-1.41361e-02,7.73237e-03,3.42881e-04,-1.31665e-02,7.31725e-03,2.13267e-02,-1.21440e-02,2.92741e-02,4.02080e-03,4.08823e-02,3.25193e-02,4.46483e-02,1.06887e-01,8.73128e-02,1.26899e-01,5.38333e-02,1.18021e-01,1.05307e-01,6.01304e-02,1.01191e-01,8.86639e-02,7.12572e-02,-3.44363e-02,1.85320e-02,1.61750e-02,-6.24699e-02,-7.21367e-02,-5.51279e-02,3.23753e-02,-5.34903e-04,1.90338e-02,3.55801e-02,-2.58644e-02,-2.67513e-03,-1.22030e-02,2.79030e-02,5.40166e-02,1.19206e-02,3.81063e-02,4.94145e-02,2.23873e-02,6.67375e-02,7.09711e-02,6.30959e-02,7.69415e-02,1.45362e-01,1.27730e-01,1.66282e-01,1.29661e-01,1.49661e-01,4.48557e-02,3.17550e-02,4.32700e-02,-4.85515e-02,-1.32219e-02,-1.14040e-02,3.67798e-02,-1.78816e-02,-2.38836e-03,1.64247e-02,2.01736e-02,-3.71142e-03,4.04446e-02,4.08781e-02,2.43218e-02,-1.97645e-02,9.53589e-03,-5.91892e-03,-2.63147e-02,4.85011e-03,1.66384e-02,7.11032e-02,5.76286e-02,1.29838e-01,1.47024e-01,1.72605e-01,1.39978e-01,1.52624e-01,1.19482e-01,6.81693e-02,7.67214e-02,1.01668e-02,-2.23893e-02,3.97876e-02,3.99012e-02,3.35606e-04,8.75411e-03,8.55109e-03,-7.34404e-03,-2.21693e-02,-7.86745e-03,9.08563e-03,1.13557e-02,-1.72629e-02,-2.55857e-03,-2.97562e-02,-1.82889e-02,-1.12585e-03,-5.13878e-03,3.31072e-02,3.09801e-02,6.85909e-02,8.23665e-02,1.46308e-01,1.40118e-01,1.57178e-01,1.01564e-01,1.35054e-01,8.11891e-02,4.27777e-02,8.41446e-02,9.45928e-02,1.09866e-01,-7.26306e-03,-4.09811e-03,2.65911e-03,-2.16953e-02,-1.05901e-03,-5.39738e-04,1.10368e-02,-4.13508e-02,-1.78946e-02,-2.78975e-02,-1.45868e-02,-4.44590e-02,-6.62461e-02,-8.70129e-02,-4.11365e-02,-2.60110e-02,5.98663e-03,-2.48406e-02,2.29827e-02,4.19696e-02,1.08621e-01,1.36103e-01,1.17464e-01,9.30439e-02,8.77469e-02,1.33762e-01,1.83393e-01,1.03156e-01,4.66675e-02,3.67567e-02,-3.10366e-03,-1.61392e-03,1.98636e-02,2.49376e-03,-3.40640e-02,-3.86393e-02,-5.07602e-02,-1.36631e-01,-7.84296e-02,-9.97853e-02,-7.74813e-02,-7.48816e-02,-6.47874e-02,-8.74946e-02,-1.48051e-02,-6.06383e-02,-7.04436e-02,2.52015e-02,1.20190e-01,1.25047e-01,1.39985e-01,1.09985e-01,1.27436e-01,1.83101e-01,1.88074e-01,9.94092e-02,3.18349e-02,-2.30223e-02,-8.01276e-03,8.01532e-03,1.22415e-02,-1.21847e-02,-2.67322e-02,-9.22626e-02,-9.23537e-02,-1.26247e-01,-1.21404e-01,-1.10663e-01,-4.79518e-02,-6.23805e-02,-7.65139e-02,1.26015e-02,-9.99417e-03,-1.20316e-01,-9.64114e-02,-5.68050e-03,1.39954e-02,7.55364e-02,8.73930e-02,5.05917e-02,6.70699e-03,4.74952e-02,9.66723e-02,8.44691e-02,1.11518e-02,2.25175e-02,3.00010e-03,-1.77045e-02,7.93150e-03,-2.73845e-03,-9.80066e-02,-1.58298e-01,-1.08385e-01,-1.26004e-01,-6.73919e-02,-4.69896e-02,-3.16377e-02,9.48082e-03,-2.38062e-02,1.73153e-02,-4.21281e-02,-8.13706e-02,-1.14342e-01,-8.71477e-02,3.68431e-02,6.32040e-02,1.93324e-02,2.37712e-02,-1.58201e-02,-1.06274e-02,-2.54886e-02,2.76529e-02,-1.69870e-02,-1.40076e-02,1.09053e-02,-1.89716e-02,1.60318e-02,-3.32527e-03,-7.28892e-02,-8.08370e-02,-1.20895e-01,-8.42387e-02,-1.18884e-02,1.64705e-02,-8.83038e-03,-9.07129e-03,3.52486e-02,3.70474e-02,-1.19186e-02,-7.71876e-02,-1.32808e-01,-7.32953e-02,-3.48637e-02,-4.92872e-03,-2.35455e-02,-4.27079e-02,-6.44849e-02,-3.93146e-02,-4.23561e-02,-1.87844e-03,-6.70423e-03,3.14547e-02,-1.12757e-02,1.78040e-02,3.29116e-02,-1.98432e-02,-7.05274e-02,-6.85027e-02,-9.18749e-02,-6.37439e-02,7.10721e-03,6.04422e-02,1.08850e-02,-2.10620e-02,7.83999e-03,9.21572e-03,-1.91787e-02,-7.48725e-02,-9.90986e-02,-5.28122e-02,-6.96923e-03,-1.04905e-01,-4.32979e-02,-9.45565e-02,-9.76236e-02,-8.57278e-02,-6.83243e-02,-5.53848e-02,3.34640e-02,-2.96562e-02,2.44165e-02,3.23328e-02,-2.19560e-02,1.14418e-02,4.89711e-02,-3.22577e-02,-5.20149e-02,-4.36693e-04,-3.36479e-02,5.15788e-02,1.08679e-02,-2.96063e-02,-3.09704e-02,1.99432e-03,-6.00931e-02,-8.64111e-02,-9.85091e-02,-7.29636e-02,-4.39995e-02,-9.38900e-02,-4.48644e-02,-4.53117e-02,-5.76178e-02,-6.54425e-02,-4.28606e-02,-4.68405e-02,6.30605e-03,-1.82638e-03,4.93823e-03,1.37061e-02,3.53663e-02,5.51890e-02,9.09563e-02,4.28345e-02,-3.48743e-02,-7.27244e-02,-6.51768e-02,1.37574e-04,-1.29139e-03,3.21683e-02,5.61814e-02,-5.82118e-03,-1.26401e-01,-1.32405e-01,-9.47378e-02,-2.29698e-02,-1.12758e-02,-3.35998e-02,-5.37504e-02,-6.65039e-02,-6.75289e-02,-2.11284e-02,-1.77318e-04,1.00234e-02,9.43854e-03,2.45173e-02,3.13212e-02,-2.47912e-02,3.32453e-02,5.79690e-02,1.40163e-01,4.54024e-02,1.28828e-02,-1.78934e-02,-6.46860e-02,-5.83268e-02,-7.43666e-03,-3.22562e-02,-4.47289e-02,-1.14489e-01,-1.63746e-01,-1.55634e-01,-1.28331e-02,-5.93342e-02,-3.34338e-02,-4.85293e-02,-6.51289e-02,-5.96124e-02,-3.91655e-02,4.16667e-02,2.44660e-02,-1.65585e-02,-2.54593e-02,-1.19709e-03,2.29291e-02,1.99037e-02,1.57737e-02,9.07829e-02,9.55502e-02,1.15620e-01,8.75260e-02,-1.90646e-02,-4.99645e-02,-5.13017e-02,-6.46655e-02,-7.53689e-02,-6.17071e-02,-1.44237e-01,-1.74940e-01,-3.81095e-02,3.58037e-02,2.66214e-02,-6.56793e-03,1.04606e-02,-4.20108e-02,1.29630e-02,5.40246e-02,8.18403e-02,5.97365e-02,3.45408e-02,1.29102e-03,2.95544e-02,1.44843e-02,1.18936e-02,3.81856e-02,8.79086e-02,9.18513e-02,9.36874e-02,7.59316e-02,6.50391e-02,4.90092e-03,2.29367e-02,8.80846e-03,-8.92461e-02,-9.03256e-02,-7.84604e-02,-1.19126e-01,-3.01644e-02,2.67070e-02,4.48306e-02,6.64359e-02,-1.24714e-02,1.70915e-02,2.62741e-02,9.94861e-02,9.15523e-02,7.75179e-02,-1.89184e-02,-1.02338e-02,2.60040e-02,1.33666e-02,-2.75110e-02,3.63965e-02,1.06805e-01,9.63870e-02,8.26623e-02,5.54183e-02,2.84445e-02,7.96363e-03,2.69659e-02,2.90903e-02,-9.10309e-04,-2.27909e-02,-3.93288e-02,-1.75396e-02,2.76646e-02,5.89616e-03,1.55842e-02,5.96480e-02,3.12286e-02,-1.78816e-02,4.40274e-02,7.81770e-02,7.97433e-02,4.37020e-04,1.72686e-02,-5.54439e-03,-6.07515e-03,1.37104e-02,2.20663e-02,2.47071e-02,6.56513e-02,8.99608e-02,5.54385e-02,1.01042e-01,4.80316e-02,3.24078e-02,1.39499e-02,-4.32934e-02,1.26324e-02,-1.77729e-02,2.08311e-02,5.27382e-02,9.51242e-03,-1.48557e-03,-1.45321e-02,8.29345e-03,4.06525e-02,2.36422e-02,4.38124e-02,3.60852e-02,3.96308e-02,3.06744e-02,-1.54897e-03,1.62318e-02,-2.69717e-02,8.82435e-03,2.47484e-02,1.31361e-02,3.35755e-02,5.32458e-02,8.16281e-03,5.90455e-02,4.59410e-02,7.60260e-02,4.32275e-02,5.70649e-02,6.45960e-02,7.23391e-02,1.25239e-01,1.22618e-01,4.12000e-02,4.91559e-02,2.41978e-02,3.71525e-02,4.24626e-02,-1.61560e-02,-2.69742e-02,7.36273e-02,1.68632e-02,1.36484e-02,-3.25069e-02,-3.85758e-03,8.94889e-03,2.78759e-02,-2.21877e-02,-1.83405e-02,1.12296e-02,4.42077e-02,-1.70522e-02,-2.77762e-02,4.54254e-02,1.14903e-01,8.44964e-02,1.49048e-01,2.20153e-01,2.14787e-01,2.06603e-01,1.19922e-01,1.35790e-01,6.96522e-02,7.66327e-02,2.91940e-02,2.88962e-02,4.60399e-03,1.66224e-02,3.31035e-02,-9.80075e-03,1.38090e-02,-2.88616e-02,9.23549e-03,-1.44943e-02,-1.67652e-02,-3.40905e-04,6.85154e-03,-1.01361e-02,-2.43160e-02,3.94679e-03,-1.00902e-02,6.88117e-02,1.01051e-01,1.59696e-01,1.25847e-01,1.72446e-01,2.56240e-01,2.25403e-01,1.78209e-01,1.67921e-01,1.41685e-01,7.05830e-02,9.91041e-03,-1.85115e-03,-6.50516e-02,-5.69021e-03,-1.64866e-02,-3.21374e-02,-1.63908e-02,7.15151e-03,1.89966e-02,-5.69471e-03,-3.43380e-02,-1.53214e-04,3.37184e-02,-2.02032e-02,-2.33428e-03,-1.85245e-02,-4.43950e-02,-2.78084e-02,4.28617e-02,4.90223e-02,1.06129e-01,1.51925e-01,1.19787e-01,1.25945e-01,1.08217e-01,7.27501e-02,1.06918e-01,1.04945e-01,7.72496e-03,3.53314e-02,-4.58921e-03,-3.64300e-02,-3.97705e-02,-1.15748e-03,-2.42691e-02,2.04299e-02,-2.88341e-03,-7.97617e-03,-2.76334e-02,1.57365e-02,-2.04319e-02,2.55332e-02,-4.73138e-03,-3.23723e-02,1.35217e-02,1.16531e-02,-4.77864e-02,-4.21080e-02,-1.98566e-02,-1.85695e-02,2.09340e-02,-2.25025e-02,2.35752e-02,-2.97097e-02,-2.35629e-02,-5.89023e-03,-7.00812e-03,1.64523e-02,-2.02339e-02,3.33117e-02,-2.95075e-02,2.63303e-02,3.25208e-02,9.29987e-03,8.09633e-03,-1.95099e-02,1.10428e-02,2.95232e-02,-3.05843e-02,3.05620e-02,-1.64177e-02,8.28580e-03,1.72708e-02,-2.52821e-04,-2.36002e-02,-2.22085e-02,3.65690e-03,-1.61749e-02,-2.87000e-02,-4.29571e-02,2.39845e-02,-3.78424e-02,-2.85766e-02,1.03787e-02,1.90161e-02,3.17289e-02,1.14730e-02,2.95449e-02,-2.15545e-02,1.24038e-02,5.21202e-03,-3.23822e-02,3.16478e-02,1.19610e-02, +1.78122e-02,1.96071e-02,1.13828e-02,-1.85742e-02,2.17744e-02,2.67794e-03,-1.76440e-02,2.03278e-02,-1.26949e-03,6.36572e-03,2.36021e-02,2.72902e-02,-2.76430e-03,1.16080e-03,2.37229e-03,1.72034e-02,1.34989e-02,2.25180e-02,-1.07809e-02,-1.66873e-02,-8.30391e-03,2.07872e-02,2.89557e-02,-1.52322e-02,1.83078e-02,3.44877e-02,2.53236e-02,3.06241e-03,-6.68949e-03,3.49368e-02,1.20459e-02,-1.33655e-02,7.90406e-03,-1.99603e-02,-1.89127e-02,3.12617e-02,2.03356e-02,-2.39535e-02,-5.47861e-03,-1.80177e-04,-1.30542e-02,-1.55061e-02,1.93825e-02,2.02105e-02,-1.42771e-02,-3.06804e-02,2.85267e-02,-2.08904e-02,-2.59591e-03,-1.68103e-02,-1.36394e-02,2.37430e-02,2.90674e-02,-1.72662e-02,2.67124e-02,-2.14068e-02,-2.94092e-02,9.54380e-03,-2.33163e-03,1.84474e-02,2.57236e-02,-1.32331e-02,7.27920e-03,1.27682e-02,2.30012e-03,-6.73808e-03,2.05341e-03,-4.31430e-02,-1.75802e-02,-3.68802e-02,-4.96970e-02,1.09758e-02,-4.44907e-02,-3.11754e-02,2.64371e-02,-2.93521e-02,-1.48616e-02,2.45272e-02,1.64397e-02,1.84040e-02,8.54575e-03,-5.44984e-03,2.75616e-02,3.02522e-02,-3.54594e-03,-1.19470e-02,-1.52988e-02,3.60868e-03,-2.72673e-02,-3.43423e-02,-4.03581e-02,1.25513e-03,-9.56801e-03,-2.51157e-02,-4.83177e-02,-7.71445e-02,-6.08425e-02,-7.22929e-02,-7.82021e-02,-1.64966e-02,-6.09834e-02,-1.37241e-02,-2.12199e-02,-7.80568e-03,-6.86304e-03,-2.47300e-02,1.51761e-02,-9.18346e-03,-1.83336e-02,2.45705e-02,-1.56584e-02,3.28400e-02,-7.50020e-03,3.19931e-02,-2.52161e-02,-1.27805e-02,2.48475e-02,-3.34272e-02,-6.47850e-02,-5.18365e-02,-1.24599e-01,-8.59143e-02,-1.12203e-01,-4.78677e-02,-7.32437e-02,-7.30942e-02,-8.12849e-02,-1.51814e-02,4.48490e-03,7.80292e-02,4.99037e-03,4.19658e-02,3.98371e-02,2.74038e-02,8.22978e-02,9.59480e-02,7.78536e-02,2.93813e-02,3.27894e-02,1.53513e-02,-4.63324e-03,2.82140e-02,-3.09844e-02,-2.09957e-02,-6.57958e-02,-5.48583e-02,-8.50497e-02,-8.70001e-02,-1.37311e-01,-6.17886e-02,-5.90355e-02,-3.16430e-02,-4.59817e-02,-7.49313e-02,-5.51698e-02,-3.72468e-02,3.00441e-03,5.10044e-02,4.89504e-02,2.78156e-02,5.53517e-02,1.08667e-01,6.54656e-02,1.35017e-01,7.66349e-02,6.50371e-02,2.54267e-02,-1.70228e-03,2.86847e-02,8.67925e-03,-6.92159e-03,-5.04765e-02,-8.66345e-02,-7.55546e-02,-9.69391e-02,-7.92778e-02,-6.02370e-02,-4.72631e-02,2.94135e-02,-1.57485e-02,1.91446e-02,3.02589e-02,1.67482e-02,1.26822e-02,-6.73941e-03,3.49583e-03,2.73994e-02,8.35098e-02,7.25990e-02,1.18091e-01,1.69789e-01,1.86913e-01,1.93877e-01,1.13618e-01,1.33747e-02,-2.53249e-02,-1.30291e-02,-5.63710e-03,-3.40256e-02,-5.70772e-02,-6.15013e-02,-6.72199e-02,-1.36822e-01,-9.82972e-02,-7.10062e-03,1.77081e-02,4.67179e-03,3.19059e-02,-2.29108e-02,-1.54143e-02,-4.06249e-02,-3.45222e-02,-1.06872e-02,-5.14794e-03,5.32752e-02,1.86942e-02,4.59819e-02,7.53733e-02,1.13383e-01,2.46959e-01,2.41312e-01,1.57622e-01,3.38253e-02,-2.17705e-02,-6.27267e-03,7.22667e-03,1.82319e-02,-4.69248e-02,-1.37451e-01,-1.29152e-01,-1.34939e-01,-7.57491e-02,-4.14210e-02,4.66932e-02,2.83968e-02,5.27356e-02,1.50584e-02,3.54504e-02,-3.06737e-02,-1.16479e-01,-2.77079e-02,1.55164e-02,1.90108e-02,-1.62714e-02,2.88302e-02,6.48027e-02,7.88089e-02,2.17815e-01,3.29067e-01,1.84962e-01,6.30602e-02,-9.86366e-05,1.30945e-03,2.55604e-03,-7.54010e-03,-5.14435e-02,-1.08696e-01,-1.30867e-01,-1.01921e-01,-2.65339e-02,3.83673e-02,3.76694e-02,1.23344e-01,1.62598e-01,1.26160e-01,4.50346e-02,-6.94475e-02,-1.26322e-01,-7.72604e-02,-6.53127e-02,-1.33618e-03,-1.47224e-02,-1.19415e-02,2.37511e-02,8.48897e-02,2.35702e-01,3.17959e-01,2.18128e-01,6.64862e-02,3.29506e-02,1.08346e-02,3.22026e-02,2.21934e-02,-5.15444e-02,-8.41933e-02,-8.79891e-02,-2.46958e-02,1.12731e-02,8.73953e-02,1.38348e-01,1.68359e-01,1.99218e-01,1.73497e-01,1.63632e-01,-9.14614e-03,-1.22983e-01,-6.98112e-02,-8.62375e-02,-4.97641e-02,-6.71046e-02,-6.41239e-02,-3.66009e-02,3.74029e-02,1.59352e-01,2.33820e-01,2.14812e-01,7.37193e-02,1.98748e-02,1.98282e-02,2.33460e-02,4.98730e-03,-6.20761e-02,-1.23243e-02,-5.90721e-02,3.69553e-02,4.79715e-02,7.73616e-02,8.37658e-02,9.24660e-02,1.87991e-01,1.97209e-01,1.34089e-01,3.08321e-02,-1.11605e-01,-1.29017e-01,-6.42454e-02,-1.04036e-01,-1.35253e-01,-1.73100e-01,-9.00470e-02,-2.77903e-02,6.84582e-02,9.29232e-02,1.25019e-01,3.81913e-02,-7.08583e-03,-3.05036e-02,1.75746e-02,1.14510e-02,6.78808e-03,-1.09091e-02,3.49388e-02,4.74362e-02,2.20421e-02,3.88636e-02,2.34644e-03,4.23209e-02,1.03913e-01,1.66059e-01,1.04454e-01,-4.01449e-02,-1.17484e-01,-1.26405e-01,-1.14581e-01,-1.09854e-01,-1.34804e-01,-1.11494e-01,-1.18148e-01,-1.13665e-01,8.12249e-03,4.33963e-02,-1.95796e-02,-2.91248e-03,2.82304e-02,-6.42610e-03,2.04392e-02,3.01227e-02,5.69937e-03,8.35360e-03,3.13409e-02,4.66173e-02,4.05511e-02,-3.08815e-02,-1.66932e-02,1.05342e-01,8.87604e-02,1.14040e-01,3.63349e-02,-6.28183e-02,-1.00464e-01,-1.36676e-01,-1.57271e-01,-9.28784e-02,-1.17325e-01,-7.26828e-02,-9.02051e-02,-1.84809e-02,1.65248e-02,2.19720e-02,-4.03095e-02,-3.91855e-02,-1.50438e-02,1.01699e-02,-3.13042e-02,3.12238e-02,-6.50723e-03,-3.46614e-02,5.43190e-02,2.37718e-02,2.62510e-02,-3.05511e-02,6.12940e-02,8.08344e-02,1.16665e-01,-6.29040e-04,-5.38730e-02,-9.11809e-02,-8.58664e-02,-1.49196e-01,-1.68238e-01,-1.06922e-01,-6.04933e-02,-9.83267e-02,-7.23380e-02,-4.99419e-02,1.02339e-01,1.05552e-02,9.90974e-03,1.57107e-02,-3.18231e-02,-1.60510e-02,-1.47062e-02,1.87357e-02,-3.41295e-02,-2.41727e-02,-2.70901e-02,-2.99967e-02,7.68661e-03,-4.28550e-02,5.60885e-02,8.54490e-02,1.69964e-02,2.66284e-02,-9.23416e-02,-1.32408e-01,-5.75328e-02,-9.59841e-02,-8.91005e-02,-6.17080e-02,-9.66424e-02,-6.82651e-02,-4.36295e-02,-1.04645e-02,9.62187e-02,1.56269e-02,-2.51855e-03,-4.10479e-02,1.90369e-02,-7.91271e-03,3.29233e-02,-2.71248e-02,-4.78184e-02,-7.18599e-02,-3.02127e-02,-3.81618e-02,-2.43844e-02,-8.17675e-03,-3.73527e-02,8.91172e-03,6.15780e-03,6.31216e-05,-7.38951e-02,-1.04889e-01,-1.71194e-02,-5.85651e-02,-1.02172e-01,-3.64194e-02,-3.74295e-02,-3.57747e-02,-7.08395e-02,-2.66933e-02,5.28108e-02,-3.19842e-03,-4.70573e-02,-1.18797e-02,2.02974e-02,2.11580e-02,-1.44408e-02,-4.48285e-02,-2.69007e-02,-5.36328e-02,2.93445e-02,9.41178e-02,2.72905e-02,3.84464e-03,1.22644e-02,3.97117e-03,-1.29479e-02,-4.03691e-02,-9.27358e-02,-1.17111e-01,-1.60652e-02,-6.25141e-03,-6.04292e-02,-2.81214e-02,-1.36178e-02,8.18053e-03,-2.00471e-02,-2.64085e-02,5.34139e-02,-1.67528e-02,-8.97024e-02,-1.73403e-02,-1.68659e-02,2.15622e-02,1.54203e-02,-2.17729e-02,-8.13814e-02,-7.40445e-02,2.72934e-02,1.29304e-01,7.86139e-02,3.86544e-02,7.71318e-02,1.29680e-02,7.51770e-03,-2.01018e-02,-7.92130e-02,-5.24906e-02,-1.03958e-03,-2.10650e-02,-4.86955e-02,-1.01587e-01,-7.85688e-02,-4.31610e-02,-9.02987e-03,-1.29052e-02,1.40456e-02,-1.46841e-02,-6.99889e-02,-1.14466e-02,7.79988e-03,2.40906e-02,-4.09031e-03,-3.12512e-02,-8.90822e-02,-4.51691e-02,3.84687e-02,1.14897e-01,9.45043e-02,1.37446e-01,1.38205e-01,7.36255e-02,8.75751e-02,7.87566e-02,7.81582e-03,5.40182e-02,1.84504e-02,-4.14785e-02,-8.49679e-02,-6.44392e-02,-8.65282e-02,-2.30924e-02,-3.65620e-02,8.38152e-04,5.00873e-02,-2.06427e-02,-5.90680e-02,6.39129e-03,2.60294e-02,3.08813e-02,6.00518e-04,-9.07729e-03,-5.03645e-02,-4.07545e-02,3.20492e-04,5.34747e-02,7.21741e-02,1.02485e-01,8.81502e-02,1.28480e-01,9.73330e-02,1.32457e-01,1.26087e-01,4.97230e-02,-2.39853e-02,-3.18065e-02,-4.25308e-02,-7.46658e-02,-5.24777e-02,-8.78968e-02,3.68811e-02,3.98703e-02,6.27999e-02,-7.99531e-02,-4.51918e-02,1.99056e-02,9.02742e-03,-3.51315e-02,-3.26212e-02,-3.45050e-02,-3.03794e-02,-1.00474e-01,-4.88100e-02,-2.64246e-02,6.53164e-02,7.72952e-02,5.31824e-02,5.16742e-02,7.99391e-02,7.34632e-02,6.67284e-02,3.35754e-02,1.25070e-02,-7.33542e-02,-3.06289e-02,-1.22867e-01,-9.95730e-02,-3.77801e-02,6.59124e-02,7.38004e-02,-2.04727e-04,-6.62534e-02,-3.81027e-02,-3.35749e-02,1.23258e-03,2.03955e-02,-4.99671e-03,1.56629e-02,-3.97557e-02,-4.71336e-02,-8.64135e-02,-6.36873e-02,-9.27391e-04,4.78400e-02,6.03948e-02,2.00547e-02,7.67829e-02,8.95692e-02,1.20054e-01,4.95479e-02,2.74736e-02,-2.89282e-02,-1.54258e-02,-5.15019e-02,-7.87074e-02,-5.48887e-02,2.67822e-03,-1.27596e-03,3.31518e-02,1.64185e-02,-3.06208e-02,1.34434e-02,2.20812e-02,-1.73937e-02,-2.22071e-02,1.77576e-02,-1.22231e-02,-3.06289e-02,-8.14436e-02,-1.09527e-01,-4.24035e-02,2.56610e-02,8.77241e-02,8.99657e-02,1.26331e-01,7.01530e-02,9.32200e-02,8.68602e-02,3.66724e-02,1.34486e-02,-2.70535e-02,-7.36658e-02,-3.50428e-02,-5.39005e-02,-1.20166e-02,-4.24541e-02,1.92814e-02,-2.03422e-02,-2.55184e-02,3.03826e-02,-9.04007e-03,-5.58651e-03,-1.78850e-03,2.68995e-02,-1.98010e-02,-3.60212e-02,-6.73532e-02,-8.01194e-02,-7.48628e-02,3.24618e-02,1.80721e-02,7.85125e-02,6.50550e-02,6.73953e-02,1.11827e-01,5.76491e-02,6.80817e-02,1.26359e-02,3.17070e-02,-6.45104e-03,2.01327e-02,-1.64477e-02,-5.26708e-02,-1.83850e-02,3.03609e-02,-1.60580e-02,9.16963e-03,2.69347e-02,-6.17894e-03,-1.76128e-03,1.00854e-02,2.35771e-02,1.39669e-02,-6.62339e-03,-6.25669e-02,-6.59129e-02,-2.97852e-02,-6.37588e-02,-4.67035e-02,7.61794e-03,-3.66800e-02,-1.36564e-02,-3.04571e-02,4.02571e-02,2.40760e-02,5.13153e-02,-2.27683e-02,-5.03772e-02,5.80528e-03,-1.08964e-02,-5.35257e-02,-2.89970e-02,3.97920e-02,2.21884e-02,-3.62271e-02,-1.13915e-02,-4.10263e-03,-1.84936e-02,4.16803e-03,-1.72609e-02,-6.07658e-03,3.85764e-03,2.03163e-02,-3.66820e-02,-2.13998e-02,-7.45094e-02,-6.70742e-02,-4.70104e-02,-5.22251e-02,-3.08150e-02,-1.47380e-02,-3.47600e-02,-8.07610e-02,-5.93753e-02,-1.23050e-02,-3.27717e-02,-5.37218e-02,-3.61968e-02,-1.26794e-03,1.44714e-02,-1.93995e-03,2.07616e-02,3.26492e-02,3.06210e-03,2.63245e-02,3.36685e-02,3.05312e-02,3.53750e-02,-2.64209e-02,-1.85026e-02,-1.48142e-02,1.00177e-02,-2.19803e-04,-2.88247e-03,8.22594e-03,-2.20818e-02,3.22222e-02,-4.59025e-02,6.81314e-03,1.07281e-02,2.64413e-03,2.38559e-02,2.28857e-02,-1.35095e-03,1.16503e-02,-1.38977e-02,1.09753e-02,1.53636e-02,2.23713e-02,-2.45570e-02,2.52982e-02,-4.13425e-03,2.52287e-02, +3.03060e-02,-1.11275e-03,-1.83429e-02,-6.12662e-03,1.65386e-02,2.31832e-02,-2.31218e-02,-3.10107e-02,-2.96481e-02,1.38486e-02,2.15713e-02,3.04168e-02,-4.07148e-03,1.34888e-02,5.33881e-03,-5.68094e-03,-2.73292e-02,3.95481e-03,-1.31415e-02,2.88407e-02,2.71286e-02,2.48807e-02,2.63433e-02,-3.05145e-03,-1.83530e-03,2.28260e-02,-3.01239e-02,1.72387e-02,2.37756e-02,-2.09760e-03,8.75217e-03,-2.79144e-02,3.10862e-02,-6.40713e-03,-2.61648e-02,-2.10366e-02,-3.32928e-03,7.10300e-04,-1.35281e-02,-3.40535e-03,3.31329e-02,-2.19991e-03,-2.43661e-02,1.95439e-02,-3.02185e-03,1.07798e-02,-2.10244e-02,-2.49328e-02,6.57905e-03,3.92625e-03,-2.69687e-02,-2.19982e-02,4.44492e-03,8.60468e-03,2.88533e-03,1.04064e-02,-3.49149e-02,-4.30688e-03,2.79289e-02,-1.92214e-02,8.72151e-03,9.88705e-03,-2.02914e-02,2.87472e-02,2.96790e-02,4.71463e-02,5.51420e-02,3.60657e-02,7.87669e-02,5.99659e-02,3.26227e-02,2.83523e-02,2.07052e-02,3.73726e-02,2.50801e-02,4.30591e-02,7.56060e-03,4.33433e-02,-1.61149e-02,6.25692e-03,-1.91361e-02,-4.73745e-03,1.96779e-02,9.47274e-03,-3.54875e-02,-2.54455e-02,-2.00258e-02,1.04544e-02,-2.36452e-03,-3.59332e-03,2.64947e-02,-2.55712e-02,-3.00478e-02,1.13980e-02,3.73165e-02,3.91044e-02,3.61298e-02,-9.92984e-04,1.20735e-02,3.54914e-02,3.08854e-02,1.99878e-02,4.32700e-02,1.23322e-01,1.04824e-01,4.48976e-02,3.66179e-02,5.36729e-02,-2.30856e-02,5.13402e-03,1.96338e-02,2.10282e-03,6.50637e-04,1.80924e-02,1.43295e-02,-4.36777e-03,-1.96390e-02,-3.96541e-02,-1.83386e-02,-3.32509e-02,-3.81314e-02,-4.82242e-02,-5.51163e-02,-3.18629e-02,-4.71360e-02,-5.63457e-02,-2.54358e-02,-4.71072e-02,5.39576e-03,3.94258e-02,-5.71640e-03,3.65280e-02,1.85537e-02,9.68922e-02,1.16889e-01,8.40458e-02,3.16068e-02,1.70595e-02,-2.52593e-02,1.27619e-02,1.79299e-02,9.79564e-03,-3.48458e-02,-2.38713e-02,-2.59421e-02,-4.06996e-02,-8.22801e-02,-5.37243e-02,-5.01636e-02,-5.28874e-03,-3.02334e-03,2.10095e-02,-4.25497e-02,-7.46153e-02,-3.94090e-02,-1.25726e-01,-2.79220e-02,-4.41414e-02,-1.40474e-03,-1.35401e-02,7.27155e-02,8.28940e-02,7.03850e-02,1.05587e-01,1.34332e-01,4.33161e-02,3.30964e-02,-1.72672e-02,7.41242e-03,6.28154e-03,-1.80606e-02,-2.20881e-02,-2.68922e-02,-7.17746e-02,-1.14201e-01,-9.05129e-02,-1.58467e-02,4.52021e-02,2.28621e-02,-1.91348e-02,-1.39600e-02,-9.57151e-02,-1.19706e-01,-1.16150e-01,-1.59338e-01,-1.05267e-01,-1.03388e-01,-4.34624e-03,-1.07179e-02,-8.91996e-03,1.37183e-01,1.92416e-01,2.32516e-01,1.31939e-01,5.65939e-02,-1.18767e-02,2.96824e-02,-1.03053e-02,9.75764e-03,-1.60704e-03,-1.00718e-01,-4.23373e-02,-8.47114e-02,6.79853e-03,6.52049e-02,6.01415e-02,3.04065e-02,1.83343e-02,-2.42854e-02,-6.36570e-02,-9.39092e-02,-1.11712e-01,-1.49039e-01,-4.64178e-02,-5.12985e-02,-5.81771e-02,-6.27216e-02,4.47893e-02,8.63118e-02,2.29567e-01,2.76155e-01,1.52997e-01,6.72085e-02,-2.26472e-02,2.88150e-03,3.00867e-02,1.93567e-02,-2.23418e-02,-9.26894e-02,-1.04072e-01,-8.31627e-02,-3.15046e-02,7.90408e-02,6.77231e-02,1.63046e-02,8.67811e-03,-5.48744e-02,-7.70254e-02,-1.50128e-01,-9.45040e-02,-8.81809e-02,-3.94436e-02,5.04199e-03,3.03451e-02,1.48829e-02,1.94017e-02,1.02209e-01,2.34005e-01,3.11495e-01,2.01371e-01,1.19171e-02,-1.49101e-02,-3.16386e-02,1.75598e-02,-3.29289e-02,-3.47357e-02,-4.19608e-02,-8.68213e-02,-9.99496e-02,3.97018e-03,9.52943e-02,9.04271e-02,4.74082e-02,7.04917e-02,-7.46898e-02,-1.50528e-01,-1.79221e-01,-1.40677e-01,-8.00055e-02,-5.00643e-02,-5.72499e-02,-3.02047e-02,4.57232e-02,4.46416e-02,9.44637e-02,1.93591e-01,2.72051e-01,1.65041e-01,6.29800e-02,-1.03937e-02,-1.27573e-02,-1.16826e-02,-4.82123e-02,-5.64931e-02,-5.39125e-02,-1.21085e-01,-4.61209e-02,4.64926e-02,8.84556e-02,1.26493e-01,1.52739e-01,9.24790e-02,4.80736e-02,-1.24665e-01,-2.44855e-01,-2.42091e-01,-1.57787e-01,-1.79053e-01,-1.38181e-01,-4.76576e-02,-1.78574e-02,4.00352e-03,4.23920e-02,1.16502e-01,1.91930e-01,1.62013e-01,3.08124e-02,2.44445e-02,1.48550e-03,1.54427e-02,-6.17790e-03,-7.72619e-02,-9.52331e-02,-7.19476e-02,2.06548e-02,1.14209e-01,1.06913e-01,1.88214e-01,1.95876e-01,1.39002e-01,1.36879e-01,7.66025e-03,-1.34996e-01,-2.17314e-01,-2.02051e-01,-1.75640e-01,-1.34743e-01,-8.06881e-02,-1.16231e-01,-1.03531e-01,-1.88877e-02,8.03194e-02,9.21374e-02,9.91372e-02,3.45407e-03,1.46455e-02,-1.54574e-02,-1.26031e-02,2.61404e-03,-2.56584e-02,-7.07825e-02,-4.95575e-02,4.73963e-02,1.02209e-01,1.09003e-01,1.30929e-01,1.68712e-01,2.38397e-01,2.45117e-01,1.60825e-01,-7.19088e-02,-5.70866e-02,-6.89657e-02,-9.25020e-02,-1.04992e-01,-1.06023e-01,-7.42217e-02,-5.12917e-02,-4.86730e-02,1.94019e-02,-1.06745e-02,-1.00726e-02,2.16245e-02,1.95634e-02,-3.73391e-03,1.04573e-03,-2.87199e-02,3.62633e-03,-1.03480e-01,-1.03003e-02,7.01636e-02,7.62579e-02,9.10666e-02,9.19717e-02,1.78918e-01,2.02683e-01,2.48419e-01,9.05357e-02,-8.97210e-03,6.04306e-02,6.28867e-03,-7.96239e-02,-4.35863e-02,-3.68343e-02,-3.88517e-02,-5.20921e-02,-4.77938e-02,-5.01332e-02,-5.42949e-02,-5.33288e-02,-4.81244e-02,-2.14782e-02,3.46001e-02,-3.54044e-02,3.04641e-02,1.75200e-02,-4.36906e-02,-2.08476e-02,1.73083e-03,7.82308e-03,2.86262e-02,4.97729e-02,1.72219e-01,1.70125e-01,1.95710e-01,1.26254e-01,7.81210e-02,9.34893e-02,3.07001e-02,1.32014e-02,-8.97793e-02,-8.58736e-02,-1.11118e-01,-1.01748e-01,-6.70565e-02,-4.16150e-02,-6.99431e-02,-5.04765e-03,-6.77698e-03,5.24524e-03,-1.08845e-02,2.05582e-02,-2.53557e-02,1.00761e-02,-5.50043e-02,-1.26461e-01,-8.28603e-02,-9.71434e-02,1.95015e-02,1.93999e-02,9.32334e-02,1.31953e-01,1.43692e-01,1.70764e-01,1.50487e-01,1.15427e-01,3.08171e-02,-6.11415e-02,-6.54726e-02,-1.11001e-01,-1.12494e-01,-8.24014e-02,-4.85095e-02,-4.00525e-02,-8.07289e-02,-1.86422e-02,-3.49327e-02,-2.59646e-02,3.33344e-02,9.25133e-03,1.27861e-02,-2.66648e-02,-1.23935e-01,-1.37534e-01,-1.26794e-01,-1.63688e-01,-7.47402e-02,-8.55703e-02,3.23565e-02,1.06052e-01,1.58475e-01,1.49973e-01,1.26888e-01,9.71310e-02,-2.15435e-02,-6.00321e-02,-9.68694e-02,-1.34299e-01,-7.21855e-02,-1.35658e-01,-6.07275e-02,-6.16836e-02,-8.35576e-02,-5.69179e-02,-6.98449e-02,2.11396e-02,2.08907e-02,3.02871e-02,-7.38601e-03,-6.85847e-02,-9.65515e-02,-1.37967e-01,-7.87696e-02,-1.18920e-01,-1.47267e-01,-3.72246e-02,-3.02949e-02,1.84481e-02,5.74403e-02,1.01739e-01,6.03854e-02,4.27309e-02,-1.87679e-02,-2.82287e-02,-7.99489e-02,-1.15689e-01,-6.14323e-02,-1.02452e-01,-4.10353e-02,-3.47873e-02,-5.54990e-02,-9.13093e-02,-6.88358e-02,2.61679e-02,1.41183e-03,-2.81384e-02,-9.73460e-04,-7.39712e-02,-1.04737e-01,-1.03592e-01,-6.01601e-02,-5.41551e-02,-4.91247e-02,3.35526e-02,2.65251e-02,1.78070e-02,4.23592e-02,2.45373e-02,2.96721e-02,3.36878e-02,2.94472e-03,-2.78938e-02,-5.77316e-02,-3.91960e-02,-1.06844e-01,-6.77211e-02,-1.65515e-02,-2.41957e-02,-4.91245e-02,-7.85770e-02,-3.16347e-02,2.74383e-02,-3.43039e-02,-2.50716e-02,-1.64809e-02,-5.90595e-02,-9.26429e-02,-2.00834e-02,-1.42531e-02,1.32233e-02,4.51891e-03,3.04241e-02,8.42764e-03,5.48119e-02,5.88685e-02,-7.26272e-04,3.21911e-02,6.09842e-02,-1.57485e-02,-3.35940e-02,-2.38455e-02,-6.70301e-02,-7.14190e-02,-5.45124e-02,-8.60228e-03,2.57007e-02,-2.70947e-02,-6.03541e-02,-4.96041e-02,-4.25122e-03,2.37716e-02,1.11850e-02,1.10729e-02,-9.90670e-02,-1.25332e-01,-8.66885e-02,-5.98807e-02,-3.87388e-02,3.93722e-02,2.82862e-02,2.76165e-02,6.32802e-02,7.03228e-02,5.57271e-02,3.01616e-02,4.67944e-02,-8.74302e-03,-2.14512e-02,-4.29417e-02,-6.04819e-02,-1.01027e-01,-4.58100e-02,8.33536e-03,-9.59565e-05,-4.02227e-02,-6.37592e-03,-1.34107e-02,-2.34794e-02,-3.33040e-02,3.82832e-03,-1.60447e-02,-1.90275e-02,-1.01049e-01,-1.01797e-01,-7.74082e-02,-6.29263e-02,-3.50256e-02,8.94393e-03,-2.90726e-02,1.12800e-02,8.61536e-02,7.39693e-02,7.14449e-02,3.19415e-02,1.71138e-03,3.42314e-02,7.75530e-03,-4.00623e-02,-8.91260e-02,-6.37682e-03,-5.68345e-03,-4.78821e-02,-3.06799e-02,-2.59637e-02,-3.21973e-02,-2.70672e-02,-2.88979e-02,-3.72518e-03,-3.23185e-02,-1.04487e-02,-7.79575e-02,-6.22861e-02,-9.11338e-02,-1.21901e-01,-3.83891e-02,-1.58638e-02,9.33848e-03,-1.58250e-02,6.93440e-02,8.41949e-02,4.13024e-02,3.95094e-02,6.35571e-02,9.39511e-02,2.09839e-03,1.64233e-02,-6.39581e-02,-2.86204e-02,-3.08849e-02,-3.06863e-02,-5.26255e-03,1.47699e-02,-2.52162e-02,-2.00953e-02,-1.17072e-02,-1.86889e-02,1.71850e-02,-9.29507e-03,-4.99592e-02,-6.42001e-02,-1.24653e-01,-7.13571e-02,-5.84068e-02,-1.72162e-02,1.72821e-02,-8.19772e-03,5.28298e-02,7.47263e-02,8.13412e-02,5.77029e-02,1.22093e-01,9.24905e-02,7.24488e-02,-1.67641e-02,1.24862e-02,-3.81756e-02,-4.79981e-02,-2.37718e-02,-1.35882e-03,2.93651e-02,-2.40122e-02,-8.79007e-03,2.72187e-02,-2.60375e-02,1.29297e-02,6.83942e-03,-3.45751e-02,-9.78487e-02,-5.70072e-02,-2.02998e-02,2.61470e-02,7.94284e-02,7.72778e-02,5.57972e-02,6.43240e-02,3.09794e-02,1.12409e-01,1.02040e-01,1.26685e-01,4.66639e-02,7.29721e-02,6.26679e-02,-1.01774e-02,1.87149e-02,8.13015e-04,-7.27539e-03,-2.24927e-02,-1.97989e-02,-1.32909e-02,2.34366e-02,-1.08651e-02,2.94024e-02,-3.07276e-02,-3.21211e-02,2.18312e-02,-2.49974e-02,-8.43465e-02,-5.69906e-02,-1.70350e-02,-5.64054e-02,2.27653e-04,-2.27636e-03,-1.79004e-02,6.40744e-03,4.77265e-02,2.90773e-02,1.55922e-02,-1.12044e-02,1.91545e-02,9.94084e-03,-1.71758e-02,-4.79184e-03,-1.11833e-03,8.17149e-03,2.59837e-02,-2.17646e-02,3.15660e-02,2.80438e-03,-3.28369e-02,1.93303e-02,1.95144e-02,-1.05491e-02,-1.48741e-02,-5.21282e-02,-2.34299e-03,-5.43441e-02,-7.03994e-02,-8.09579e-02,-7.98162e-02,-5.34512e-02,-7.11136e-02,-6.40316e-02,-7.78723e-02,-1.00343e-01,-3.68412e-02,-3.79379e-02,-3.40470e-02,-4.35127e-02,-4.18552e-02,5.99468e-03,2.70082e-02,2.08506e-02,-1.35559e-02,-1.18371e-02,-2.15777e-02,7.95537e-03,-2.46451e-02,8.37488e-03,-3.09591e-03,-3.99543e-03,-1.07963e-02,-2.66550e-02,-2.78510e-02,1.89918e-02,-1.88723e-02,-1.78822e-02,-3.68031e-02,-4.37932e-03,-3.99226e-02,-1.73110e-02,-4.90706e-02,-1.20614e-03,2.17012e-02,-3.82613e-02,6.75457e-03,-2.67066e-02,1.69955e-02,-3.26474e-02,2.02212e-02,1.69498e-02,3.34584e-02,6.85354e-03,3.73274e-03,-2.49260e-02, +3.06446e-02,1.46861e-03,2.76824e-02,1.78144e-02,-3.12535e-02,3.17936e-02,5.71840e-04,8.51198e-03,-2.45992e-02,1.38703e-02,-1.03058e-02,-1.06271e-02,-1.44729e-03,1.63949e-02,1.02787e-02,2.19227e-03,2.09870e-02,3.41999e-02,-5.47972e-03,1.97669e-02,1.60222e-02,-1.48034e-02,-3.05864e-02,1.28147e-03,-1.78789e-02,-2.21601e-02,-2.42422e-02,-3.40506e-02,-2.30904e-02,-1.22767e-02,-2.71719e-03,2.09947e-02,1.11726e-02,1.77383e-02,-9.20052e-03,7.08886e-03,3.74181e-02,1.79764e-02,2.18348e-02,-1.04630e-02,2.74438e-02,-1.48317e-02,-1.34491e-03,-1.92697e-02,-3.29426e-02,2.26984e-02,2.64670e-02,1.51438e-02,5.34848e-03,-3.45323e-02,-2.61009e-02,7.81483e-04,1.91086e-02,-7.87018e-03,-2.63837e-02,2.98830e-03,1.77923e-02,-9.30953e-03,2.14366e-02,-1.52582e-02,-2.03140e-02,1.26281e-02,-2.94626e-02,1.48870e-02,7.70865e-03,3.60031e-02,-1.41679e-02,-2.60001e-05,-1.15693e-02,1.33466e-02,-1.37149e-02,-1.18223e-02,3.61935e-03,4.35546e-02,7.58529e-04,-8.95133e-04,-3.09165e-02,-2.63151e-02,4.55198e-03,-5.25362e-03,1.76128e-02,-2.03117e-02,8.80558e-04,-1.56534e-03,-2.21662e-02,-1.57695e-03,-2.03436e-02,1.04881e-02,9.15909e-03,-2.47467e-02,-2.26916e-02,-2.49487e-02,1.71326e-02,3.63396e-02,-1.39694e-02,1.60057e-03,-5.19904e-03,1.25836e-03,5.07144e-02,2.71432e-02,3.78369e-02,8.33627e-03,-4.03072e-02,-9.76843e-03,1.76895e-02,-3.26452e-04,-7.62544e-03,-9.24567e-04,-1.65280e-02,1.66354e-02,-2.05791e-02,-1.69152e-02,-7.55636e-03,-8.96568e-03,1.85351e-02,-2.04341e-02,-3.05837e-02,3.22185e-03,-7.18124e-03,-6.77732e-03,3.14007e-02,-1.29848e-02,-4.94209e-03,9.75862e-03,1.53012e-02,3.84962e-02,2.53518e-02,-5.54281e-02,-2.75296e-02,-3.82577e-02,-6.00712e-02,1.12092e-02,1.02316e-02,-3.95266e-02,9.22655e-03,-3.30701e-02,-4.69072e-02,2.03632e-02,1.54784e-02,-8.31110e-03,-2.43307e-02,2.31633e-02,-1.86660e-02,-3.04017e-02,-8.74987e-03,-1.98421e-02,-2.51509e-02,-7.03476e-03,2.23777e-02,-3.25812e-02,-1.36080e-02,-1.41272e-02,-3.47723e-02,1.19337e-03,4.67124e-03,-4.96537e-02,-3.72436e-03,1.79082e-02,2.20735e-02,4.50198e-03,5.74829e-03,-2.29633e-02,-3.80652e-02,-3.63437e-02,-5.47646e-02,-3.28061e-02,1.39266e-02,-1.68428e-03,1.41271e-02,8.87998e-03,-1.51238e-02,3.31770e-02,-2.35655e-02,-3.97699e-02,-4.48205e-03,-2.57566e-02,-6.82888e-03,-7.45985e-02,-5.68694e-02,-2.58687e-02,-3.04740e-04,-7.84271e-04,2.91217e-02,6.31703e-02,6.73786e-02,6.96033e-02,3.11896e-02,-1.40075e-02,1.41977e-02,-3.88531e-02,-2.46424e-02,-4.97924e-02,-4.01927e-02,-1.23904e-02,-1.13868e-02,-1.36130e-02,-3.08775e-02,1.08910e-02,-3.05589e-02,-1.21505e-02,-2.03759e-02,-3.65450e-02,-8.25553e-03,-7.57421e-02,-6.31254e-02,-9.77546e-02,-4.04755e-02,-2.81778e-02,1.09504e-02,3.02934e-02,1.04569e-01,7.68954e-02,3.86916e-02,3.54576e-02,4.57355e-02,5.52474e-02,3.98062e-03,2.39293e-02,2.76314e-02,-1.48369e-03,-3.96971e-02,1.95298e-02,1.16004e-02,1.39276e-03,-6.38949e-03,-5.73640e-03,-2.41439e-02,-2.90496e-02,-3.53289e-02,-6.71273e-02,-6.38995e-02,-5.82691e-02,-7.53736e-02,-5.38918e-02,2.79453e-02,1.01354e-01,6.53823e-02,4.00536e-02,2.86140e-02,-1.89875e-02,-4.28321e-02,-7.71204e-02,-2.93228e-02,4.91460e-03,1.03356e-02,5.12033e-02,6.14360e-03,-1.92651e-03,-6.02086e-02,-2.68785e-02,-4.08667e-02,2.76744e-02,-3.49047e-02,1.99468e-02,2.60172e-02,-1.93750e-02,-1.17006e-02,-3.18220e-02,-4.76456e-02,-5.77568e-02,-2.01034e-02,4.26669e-03,8.18558e-02,1.20363e-01,1.23142e-01,3.35730e-02,-6.54088e-02,-9.05138e-02,-1.66243e-01,-1.26610e-01,-5.68927e-02,5.96282e-02,6.70331e-02,8.39775e-02,8.45866e-02,-2.85388e-02,-4.74288e-02,-2.22617e-02,3.98671e-03,2.53048e-02,-3.97581e-03,1.80017e-02,1.22417e-02,-3.33701e-02,1.67256e-03,1.43780e-02,8.61395e-03,2.25087e-02,2.77222e-02,1.10605e-01,1.32670e-01,1.05901e-01,-4.09298e-03,-8.58266e-02,-1.63769e-01,-1.68365e-01,-1.32179e-01,-2.65112e-02,-8.10004e-04,7.84377e-02,5.66380e-02,9.55933e-02,6.02426e-02,-3.86703e-02,-8.55834e-02,-4.94589e-02,-4.71242e-03,-2.38982e-02,2.86839e-02,1.26005e-02,-1.25305e-02,7.72345e-03,-3.55735e-02,4.03911e-02,3.94416e-02,3.52429e-02,3.41025e-02,6.95325e-02,8.60912e-02,1.01316e-02,-9.06348e-02,-1.58961e-01,-2.17059e-01,-1.69291e-01,-6.99269e-02,2.33301e-02,1.24355e-01,1.02387e-01,7.22289e-02,5.84298e-02,1.00809e-02,-9.55091e-03,-7.56054e-02,-4.64906e-02,-3.69956e-02,-2.93173e-02,-1.01990e-02,1.57005e-02,3.20145e-02,1.35405e-02,9.23821e-03,-7.92231e-03,2.14656e-02,1.23087e-02,1.99888e-02,-5.05304e-04,1.35175e-02,-6.80092e-02,-1.48331e-01,-1.32041e-01,-1.42585e-01,-8.19119e-02,2.08928e-02,9.40167e-02,5.53999e-02,1.17990e-01,8.83727e-02,2.37471e-02,1.64625e-02,-5.16368e-03,1.08331e-02,-1.95380e-02,2.04627e-02,1.61598e-02,2.14784e-02,-3.60467e-03,-8.46331e-03,-3.56011e-02,-3.10941e-02,-1.15431e-02,-3.42448e-03,2.83225e-02,5.69558e-02,1.28629e-03,-3.44861e-02,-6.74959e-02,-9.32949e-02,-8.16123e-02,-5.78070e-02,4.48763e-02,5.63492e-02,4.84476e-02,5.61401e-02,7.83541e-02,7.34034e-02,4.79015e-02,4.59536e-02,7.30918e-03,3.98136e-02,-1.75666e-02,-3.55387e-02,1.06484e-02,4.70751e-03,1.39107e-02,1.93034e-02,-8.82028e-03,-1.62655e-02,-3.96593e-03,3.35012e-02,3.37809e-02,6.78509e-02,4.79572e-02,-3.28395e-02,-4.89795e-02,-4.48991e-02,8.24418e-03,1.56756e-02,4.73815e-02,1.03880e-01,3.61728e-02,4.27309e-02,5.94015e-02,2.48951e-02,1.96038e-02,1.72827e-02,-1.42951e-03,-4.63766e-03,3.25135e-02,3.28752e-02,-6.20376e-03,-2.04397e-03,3.25924e-02,-7.41941e-03,2.81853e-02,5.30191e-03,5.42984e-02,1.10116e-01,6.42731e-02,4.79170e-02,-2.89601e-03,-6.12079e-02,-2.25394e-03,-3.11014e-02,-1.29818e-03,-2.52041e-02,6.37409e-02,1.04212e-01,6.30740e-02,5.69612e-03,6.96000e-02,7.97083e-02,1.26555e-02,-1.61026e-02,-8.93701e-03,-4.10389e-03,-5.55119e-03,2.98238e-02,-6.00921e-03,2.04710e-02,-2.69236e-02,-6.27948e-03,-1.43758e-02,3.54213e-02,9.51951e-02,1.26179e-01,8.94882e-02,6.47838e-02,-3.31009e-02,-4.92281e-02,-1.74343e-02,-1.90649e-02,-2.78258e-02,1.44512e-02,1.12236e-01,1.35730e-01,5.20154e-02,5.26431e-02,4.39857e-02,9.49731e-02,6.24246e-02,3.10519e-02,2.19937e-02,2.86998e-02,2.06379e-02,1.79369e-02,-3.14660e-02,3.19198e-02,3.21114e-02,2.57440e-02,3.25831e-02,5.31285e-02,8.68242e-02,1.13388e-01,8.11433e-02,1.14727e-02,-8.51930e-02,-4.12601e-02,-1.73312e-02,-5.97007e-02,-3.12067e-02,6.04676e-02,1.96403e-01,1.59167e-01,1.01849e-01,7.86637e-02,2.53945e-02,1.79297e-02,4.50569e-02,3.12483e-02,3.01933e-02,-1.58306e-02,9.52713e-03,-1.71606e-02,3.00469e-02,-3.51253e-02,-1.78871e-02,2.36307e-02,1.14626e-02,6.04426e-03,4.00271e-02,8.90972e-02,9.98020e-02,-4.02555e-03,-5.93256e-02,-7.73457e-02,-1.88002e-02,-3.38341e-02,2.36321e-02,9.60544e-02,1.56773e-01,1.04466e-01,3.17485e-02,5.81325e-02,4.04046e-02,5.14514e-02,4.64021e-02,1.00861e-02,3.37299e-02,5.76501e-02,1.58296e-02,2.96964e-02,1.01490e-02,1.46187e-03,-2.94244e-02,2.67430e-02,6.88064e-03,4.20666e-02,5.97185e-02,7.76824e-02,9.92407e-02,1.42770e-02,-4.51040e-02,-8.65445e-02,-2.15102e-02,-1.80040e-02,8.24339e-02,1.01645e-01,8.02751e-02,7.34415e-02,-3.67618e-03,2.08897e-02,4.17484e-02,5.28048e-02,4.15192e-02,-2.24649e-02,3.03880e-02,2.95555e-03,3.39227e-03,-8.96537e-03,1.08193e-02,3.54090e-02,3.08311e-02,-1.88150e-02,3.20521e-02,2.67541e-03,2.87157e-02,8.96394e-03,2.58588e-02,1.82106e-02,-3.56635e-02,-7.55445e-02,-8.17459e-03,-1.44096e-02,6.02432e-02,3.23067e-02,3.94179e-02,-9.00450e-03,-6.95284e-02,-3.44334e-02,-3.58605e-02,-1.46620e-02,-7.55940e-03,2.79795e-02,-3.70988e-03,8.90205e-03,7.78265e-03,3.56905e-02,3.43941e-02,-1.16246e-02,-4.53730e-05,-3.38134e-02,-1.65105e-02,2.27654e-02,-3.21194e-02,-2.95299e-02,2.12097e-02,-6.89268e-03,-2.21092e-02,-6.32732e-02,-6.44219e-02,-3.96401e-02,-7.96524e-03,-3.36458e-02,-6.90564e-02,-6.83120e-02,-7.67734e-02,-3.22271e-02,-1.41989e-02,-4.85586e-02,-4.54973e-02,2.90390e-02,9.70623e-03,-6.05028e-03,2.76492e-02,-7.89613e-03,3.94360e-03,-3.55638e-02,-3.27305e-02,-3.55765e-02,1.20195e-02,2.52223e-02,-2.45982e-02,1.37190e-02,1.85914e-02,-2.01612e-02,-3.82469e-02,-4.25206e-02,-3.00064e-02,-1.59169e-02,-4.50453e-02,-1.13728e-01,-8.77734e-02,-1.06516e-01,-5.37020e-02,-9.97733e-02,-8.42101e-02,7.52165e-03,-1.29435e-02,8.86265e-03,-1.28841e-02,6.44649e-04,-1.53015e-02,3.60954e-03,-1.63880e-02,2.31495e-02,1.42627e-02,-2.20526e-02,-1.18537e-02,-7.28740e-03,-1.19837e-02,8.14883e-03,-4.84060e-02,-3.77717e-02,-7.52765e-02,-2.73952e-02,-4.70996e-02,-5.00572e-02,-6.66339e-02,-9.35269e-02,-8.63366e-02,-9.66401e-02,-5.62490e-02,-4.91240e-02,-5.33415e-02,1.37747e-02,1.37985e-02,3.66852e-02,-1.63146e-02,-2.77703e-02,2.79017e-02,-3.71916e-02,5.47567e-03,3.45235e-02,-2.31902e-02,-3.66639e-02,2.11825e-02,2.13333e-03,2.23654e-02,-4.11511e-04,-1.83690e-02,7.04234e-03,-3.44334e-02,2.55579e-02,1.18923e-02,-1.96819e-02,-4.78952e-02,-8.80032e-02,-4.43494e-02,-7.29628e-02,-3.88237e-02,-1.12457e-02,5.37769e-03,1.27181e-02,1.66186e-02,3.79996e-02,2.68004e-02,-2.08711e-02,-8.13947e-03,-9.99338e-03,-1.41614e-02,-2.21927e-03,1.05871e-02,-2.00034e-02,-7.43356e-03,-3.67122e-02,2.44564e-02,-9.38273e-03,-3.32087e-02,3.99644e-02,3.49168e-02,4.83291e-02,6.14830e-02,5.00644e-02,-5.27114e-03,-3.73296e-02,-2.31532e-02,-1.40922e-02,-1.21130e-03,2.78930e-02,-1.47527e-02,4.48997e-02,3.88575e-02,4.10105e-04,-1.57377e-02,1.26808e-02,-2.27718e-02,-2.01295e-03,1.13025e-02,8.33771e-03,1.60710e-03,8.72796e-03,-2.87632e-02,2.19011e-02,-2.52083e-02,1.75668e-02,-2.72774e-03,-9.59035e-03,2.41758e-02,2.26220e-02,5.88055e-02,5.35361e-02,4.19199e-02,3.38776e-02,6.34777e-02,-1.65291e-03,4.90317e-02,2.14665e-02,2.83815e-02,4.09065e-02,7.65590e-03,9.64179e-03,1.84249e-02,-2.41874e-02,3.49747e-02,-2.08921e-03,1.28616e-02,-2.32208e-02,3.16418e-02,6.72635e-03,-2.77143e-02,2.43514e-02,1.20654e-02,1.74793e-02,-2.89646e-03,6.42746e-03,-2.46207e-02,3.23526e-02,2.61949e-02,-1.53184e-03,-3.10657e-02,-2.10130e-02,-1.71208e-02,2.35993e-02,-2.32281e-02,-1.89557e-02,-1.58801e-02,-2.87872e-02,1.50358e-02,1.43918e-02,-3.00362e-02,2.61568e-02,1.40831e-03,-2.13001e-02,2.24427e-03, +7.79429e-03,1.08358e-02,-2.05235e-02,3.51960e-02,2.80443e-02,3.17312e-02,-1.73493e-03,-5.00768e-04,-2.75230e-02,3.31617e-02,-5.61555e-03,-9.11110e-03,-8.62558e-03,-2.18283e-02,-2.96855e-02,-1.20055e-03,-2.94027e-02,-1.87037e-02,2.29407e-02,1.38842e-02,-2.62354e-02,-5.99679e-03,-1.48438e-02,1.22218e-02,-3.03893e-03,1.44411e-02,8.93289e-03,7.58674e-03,2.35634e-02,1.31418e-02,-3.51143e-02,3.08931e-02,-2.85451e-02,2.11549e-02,-1.08978e-03,2.15596e-02,-7.47172e-03,3.69770e-04,-2.92771e-03,4.18469e-02,-1.16768e-02,3.13847e-02,-2.49814e-02,1.26512e-02,-3.35357e-02,-1.53101e-02,2.40687e-02,2.85688e-02,2.19792e-03,-2.42591e-02,-2.55807e-02,7.95632e-03,2.04067e-02,1.41058e-02,-3.48341e-02,-1.66460e-02,1.43528e-02,2.51334e-02,1.79432e-02,-8.36435e-03,-4.05273e-03,-1.16371e-02,-9.88530e-03,1.99881e-03,2.97665e-02,3.03605e-02,5.63797e-02,4.27574e-02,7.74376e-02,5.12260e-02,7.18099e-02,5.66631e-02,3.85632e-02,6.85239e-02,8.05229e-02,8.15333e-02,7.40679e-02,2.88220e-02,1.03779e-03,2.06993e-02,1.86392e-03,-1.86638e-02,3.55785e-02,1.38272e-02,2.98937e-02,-3.00792e-02,8.66984e-03,-3.25935e-02,-1.80464e-02,6.22457e-03,1.93676e-02,3.06121e-02,5.21745e-02,4.11444e-02,7.27334e-02,8.22269e-02,5.40017e-02,6.76795e-02,3.12059e-02,6.18094e-02,-5.75732e-03,5.51309e-02,3.43993e-02,6.22618e-02,8.41508e-02,1.22258e-01,7.01796e-02,4.33169e-02,4.04128e-02,9.99995e-03,3.08629e-02,2.67381e-02,-1.18846e-02,1.23336e-02,-2.51065e-02,2.77647e-02,-1.35418e-02,1.98281e-02,-2.96741e-02,1.91666e-03,8.95387e-03,7.23825e-02,5.66702e-02,-1.80446e-02,-7.88829e-03,3.77121e-03,-3.91489e-04,6.81305e-03,2.38676e-02,6.91915e-02,6.79646e-02,4.59407e-02,4.65045e-02,7.29294e-02,7.52451e-03,1.82227e-03,-3.77651e-02,-4.40133e-03,-4.01381e-02,4.40768e-03,3.51903e-02,2.81157e-03,2.41599e-02,1.88883e-02,-3.69770e-02,-1.31006e-02,-5.01232e-03,-7.21486e-03,-2.22180e-02,9.56494e-02,2.82613e-02,6.93883e-02,1.32466e-02,2.93361e-02,1.04699e-01,4.78783e-02,3.30491e-02,6.37970e-02,8.35903e-02,5.54723e-02,5.43811e-02,2.82406e-02,3.94509e-02,3.35238e-02,1.25145e-02,-2.16997e-02,2.07263e-02,5.29989e-03,3.03341e-02,3.42664e-02,-3.76263e-02,-1.13992e-02,-1.49067e-02,-4.41759e-02,-1.85517e-02,4.32782e-02,3.23359e-03,4.73739e-02,5.40199e-03,-2.47402e-02,-9.82483e-02,-7.41825e-02,-1.00049e-01,-1.03759e-01,-1.46300e-01,-1.07026e-01,-8.15627e-02,-7.97864e-02,-5.11791e-02,-6.08811e-02,5.18193e-03,6.12883e-02,1.62690e-02,-3.47845e-02,-3.17109e-02,2.69732e-03,-3.68212e-03,-3.07543e-02,-1.39284e-02,-5.78636e-02,-2.97344e-02,-1.02234e-02,-2.01514e-02,2.04285e-02,4.70999e-02,-1.49684e-02,-1.27244e-02,-8.18326e-02,-1.29914e-01,-1.82047e-01,-1.40657e-01,-1.70971e-01,-1.64938e-01,-1.11180e-01,-1.29254e-01,-1.03731e-01,-1.18065e-01,-9.16207e-02,-5.23448e-03,1.54327e-02,-2.47258e-02,-3.55324e-02,-4.05816e-02,-2.74214e-02,-8.79227e-03,-2.12336e-02,-1.31534e-03,-2.31133e-02,-6.30097e-02,-3.02581e-02,-6.40121e-03,-7.34123e-03,2.08162e-02,1.48725e-02,-1.26837e-02,-6.21600e-02,-4.95076e-02,-1.32501e-01,-1.44020e-01,-1.43837e-01,-7.56227e-02,-8.89937e-02,-6.34792e-02,-6.40977e-02,-8.80290e-02,-8.88574e-02,-7.83275e-02,-7.72696e-03,-6.29630e-02,-5.75752e-02,-2.36392e-02,4.54787e-03,-1.92098e-02,-3.03309e-02,5.04212e-03,-4.00305e-02,-3.39620e-02,2.30409e-02,3.72180e-02,3.98398e-02,9.66772e-03,-2.38049e-03,1.93681e-02,-2.90393e-02,-1.34635e-02,-1.08920e-01,-1.58091e-01,-1.54458e-01,-6.34742e-02,-6.02746e-02,-1.63591e-02,2.37384e-02,-4.68054e-02,-4.37160e-02,-4.16001e-02,-7.65428e-02,-1.34299e-01,-9.81101e-02,-7.55236e-02,-2.82566e-02,-1.93987e-02,2.39613e-02,-2.18321e-03,-6.85733e-02,-1.66982e-02,-2.06952e-02,-1.86655e-03,3.69266e-02,2.75304e-02,4.47054e-02,4.06383e-02,2.33510e-02,-6.00447e-02,-7.68252e-02,-1.79468e-01,-1.78073e-01,-1.07373e-01,-4.43264e-02,7.00696e-03,5.96104e-02,-4.74031e-02,-3.13397e-02,-6.32759e-02,-8.84329e-02,-1.37400e-01,-1.06001e-01,-3.48198e-02,-2.25690e-02,-1.92447e-02,-3.41092e-02,-2.62476e-02,-5.21037e-02,-2.01398e-02,4.79468e-02,2.68167e-02,4.65504e-02,6.57792e-02,7.64067e-02,5.38963e-02,2.00126e-02,-5.24435e-02,-1.38559e-01,-2.31566e-01,-1.48485e-01,-7.17482e-02,-8.46560e-02,-1.11272e-02,3.84363e-02,-2.09211e-02,-5.30110e-02,-6.23708e-02,1.27448e-02,-1.68807e-02,-6.45027e-02,-2.95704e-02,3.08536e-02,-3.27978e-02,-1.10215e-02,1.08066e-02,-5.57995e-03,-7.48719e-02,6.53621e-03,1.15151e-02,4.17258e-02,6.50471e-02,6.36698e-02,6.49249e-02,3.43355e-02,4.94116e-02,-9.43713e-02,-1.73708e-01,-1.35853e-01,5.85177e-03,-3.19917e-02,9.05434e-03,4.67208e-02,3.56606e-02,7.68203e-02,5.56952e-02,1.03727e-01,5.36717e-02,1.56882e-06,3.04825e-03,-1.91943e-02,1.55682e-02,-1.46921e-02,5.46797e-03,1.27248e-02,-9.62567e-02,-1.50256e-02,4.85052e-02,3.88815e-02,1.12824e-01,1.12238e-01,1.12843e-01,1.47236e-01,9.81381e-02,-3.75227e-02,-6.11295e-02,-1.38936e-02,2.94719e-02,1.00605e-02,2.54448e-02,4.20403e-02,-2.01595e-02,1.27658e-02,1.08896e-01,1.11890e-01,1.18796e-01,-8.42784e-03,-9.92260e-03,1.34435e-02,-1.21432e-02,-3.23124e-02,-3.49571e-02,-3.14500e-02,-4.01919e-02,4.88565e-02,8.26002e-02,9.43568e-02,1.37125e-01,1.02038e-01,1.35367e-01,1.49698e-01,5.73959e-02,-2.07967e-02,2.74149e-02,5.19366e-02,3.83142e-02,6.89760e-02,7.52587e-02,3.71393e-02,-1.65337e-02,-1.40485e-02,7.26281e-02,6.30526e-02,6.81893e-02,-2.53852e-02,-4.31632e-02,3.02660e-02,2.71395e-02,3.09154e-02,-2.17264e-02,4.32278e-02,-6.01029e-02,1.87667e-02,1.01370e-01,1.56521e-01,1.10720e-01,1.36899e-01,7.59318e-02,8.70124e-02,7.34711e-02,9.76594e-02,9.04367e-02,9.13331e-02,8.22771e-02,4.73667e-02,6.01201e-02,1.45144e-02,-3.97057e-02,-2.88497e-04,-2.68400e-02,3.02003e-02,4.79993e-02,3.55409e-02,-1.49830e-02,-2.29855e-02,2.54780e-02,1.94338e-02,2.11993e-02,-4.75445e-02,-8.17565e-02,-3.21214e-02,6.96747e-02,1.33035e-01,6.89851e-02,9.64113e-02,5.44637e-02,1.04379e-01,9.87469e-02,8.37964e-02,1.00640e-01,1.46280e-01,1.30979e-01,6.50353e-02,4.03941e-03,1.03793e-02,-9.73260e-03,-2.79680e-02,-2.17540e-02,1.42879e-02,-1.95046e-02,3.05259e-02,-2.75822e-02,-4.82278e-03,3.26498e-02,1.61257e-04,-3.00630e-02,-6.35363e-02,-7.00283e-02,-5.56262e-02,-2.07027e-03,9.79767e-02,4.44533e-02,4.60630e-02,1.04313e-01,8.66313e-02,8.49689e-02,1.06762e-01,1.27836e-01,7.05097e-02,5.00409e-02,3.82439e-02,3.24099e-02,1.12895e-02,-3.51287e-03,-2.41026e-02,-1.40321e-02,-4.01424e-02,3.47594e-02,1.62950e-02,-2.62082e-02,1.55799e-02,-3.13508e-02,-1.40033e-02,7.48934e-04,-3.73902e-02,-5.28911e-02,-2.88394e-02,-5.28501e-02,5.12263e-02,4.83419e-02,4.49849e-02,8.55496e-02,1.04636e-01,1.87293e-01,9.78176e-02,1.21131e-01,6.16211e-02,1.45078e-02,-9.52423e-03,-8.27668e-03,-1.67553e-03,-6.81289e-03,-1.82831e-02,6.34388e-03,1.53451e-02,5.00540e-02,-5.19222e-03,-3.12695e-02,-9.41278e-03,-2.25963e-02,1.03669e-03,-1.37641e-02,-1.08351e-01,-6.57987e-02,-8.11479e-02,-2.42850e-02,1.08624e-03,5.39733e-03,4.21191e-02,9.55762e-02,1.22317e-01,1.39980e-01,1.00947e-01,6.28874e-02,6.38816e-02,8.81620e-02,1.97758e-02,6.09814e-02,-2.37719e-02,-1.01260e-02,-1.09687e-02,-7.03087e-03,5.68127e-02,8.03037e-02,4.44064e-02,2.52829e-03,-1.94972e-02,-2.11454e-03,1.38605e-02,7.51892e-03,-7.06098e-02,-8.82464e-02,-1.35825e-01,-9.46711e-02,-4.64945e-02,-5.68980e-02,3.60963e-02,8.48807e-02,9.00828e-02,1.68690e-01,6.74529e-02,9.27698e-02,6.16048e-02,2.44154e-02,3.04610e-02,6.94944e-02,2.23285e-02,4.57559e-02,1.29406e-02,2.48808e-02,4.93207e-02,2.07694e-02,-1.02232e-02,-2.57970e-02,1.75493e-02,-1.78240e-02,2.05876e-02,1.87086e-02,-6.88314e-02,-5.74087e-02,-1.11239e-01,-9.26739e-02,-7.58414e-02,-3.76181e-02,1.28171e-02,5.01066e-02,8.45823e-02,1.17401e-01,1.05044e-01,5.97414e-02,8.90157e-02,-1.31325e-03,1.07380e-01,3.78758e-02,4.55300e-02,5.22930e-02,1.62917e-02,3.99257e-02,8.99169e-02,2.29302e-02,2.67147e-02,2.38438e-02,-2.36434e-02,-2.18383e-02,-3.33628e-02,-1.82642e-02,-3.36097e-02,-3.02819e-02,-1.17909e-01,-1.60985e-01,-1.17697e-01,-8.38994e-02,-5.35138e-03,3.53794e-02,2.64854e-02,5.90943e-02,8.19499e-02,1.66454e-02,3.89671e-02,3.93186e-02,4.29447e-03,5.52490e-02,6.47792e-02,5.90175e-02,1.07998e-01,8.55655e-02,6.53644e-03,-9.89490e-03,8.76031e-03,3.02240e-02,1.79589e-02,-9.15623e-03,-6.34455e-03,5.80096e-03,-1.49616e-02,-3.67292e-02,-8.43206e-02,-1.34030e-01,-1.63226e-01,-1.09806e-01,-8.27133e-02,-5.58762e-02,-8.11137e-02,-4.25852e-02,-1.30034e-04,1.74002e-02,4.76579e-02,-5.88385e-03,3.98706e-02,9.90360e-02,4.33030e-02,1.17059e-01,4.45243e-02,6.16447e-02,2.40623e-02,4.35169e-03,-2.25699e-02,-5.04713e-03,-9.95549e-03,5.09599e-03,3.49173e-02,3.54405e-02,1.07912e-02,-6.38033e-02,-4.92574e-02,-1.19288e-01,-1.65595e-01,-1.44596e-01,-1.80694e-01,-1.66015e-01,-1.04520e-01,-7.33920e-02,-7.96585e-02,-5.65247e-03,-5.54696e-03,-9.56520e-03,6.00353e-03,1.04219e-02,4.10148e-02,-6.08704e-03,-2.32508e-02,-7.30239e-03,1.61541e-03,1.87724e-02,-1.33670e-02,2.01546e-02,-3.07633e-02,-4.72015e-03,-1.43409e-02,1.26905e-02,-1.13398e-02,-3.63176e-03,-1.55272e-02,-5.39304e-02,-5.24834e-02,-1.30374e-01,-1.58382e-01,-1.38110e-01,-1.74544e-01,-1.66113e-01,-1.69131e-01,-1.04966e-01,-1.19624e-01,-1.57538e-01,-1.29592e-01,-1.49382e-01,-1.30914e-01,-1.18175e-01,-8.38657e-02,-2.64575e-03,-1.47090e-02,-9.79575e-03,1.22891e-02,4.51185e-03,2.07566e-02,-1.41904e-02,-2.95716e-02,6.37591e-03,-2.16876e-02,5.65755e-03,-2.00910e-02,6.00878e-03,-2.78995e-02,-2.46815e-02,-6.45015e-02,-8.33602e-02,-8.37857e-02,-4.32525e-02,-9.18046e-02,-1.24227e-01,-1.34578e-01,-1.47940e-01,-1.05217e-01,-9.35187e-02,-3.16490e-02,-7.71889e-02,2.45277e-03,5.96970e-03,-8.69577e-03,6.52996e-03,1.01337e-02,-1.66725e-02,2.91917e-02,2.49388e-02,-3.00953e-03,1.85577e-02,2.87893e-02,-2.11247e-03,1.51523e-02,2.01579e-02,-9.89585e-03,-3.49235e-02,-3.48512e-02,-1.34595e-02,-3.50788e-02,7.97213e-03,-3.70687e-02,4.25146e-03,-3.98734e-02,-3.19615e-02,5.69259e-03,-1.80501e-02,1.66118e-02,1.50698e-02,1.70373e-02,-1.84545e-02,1.69243e-02,-3.00832e-02,-2.46308e-02,-9.59672e-03,-1.54110e-02, +2.59201e-02,-2.61176e-02,-1.91267e-02,2.08909e-03,-3.52157e-02,-3.54320e-02,2.10635e-02,-3.80672e-03,-3.35647e-02,-3.16125e-02,3.52755e-02,-1.52333e-02,2.22672e-02,-1.73691e-02,-3.07819e-02,-1.38042e-02,1.92002e-02,-2.19939e-02,1.88502e-02,1.05806e-03,2.82083e-02,6.28950e-03,3.66860e-03,-1.43539e-03,-2.13542e-02,-2.91933e-02,2.34628e-02,2.28529e-02,1.83496e-02,3.01794e-02,-1.33202e-02,2.12945e-02,-2.05906e-02,1.67528e-02,1.42007e-02,-2.59938e-02,1.30511e-02,-3.95106e-05,2.64286e-02,1.78162e-02,7.43888e-03,3.86452e-02,-1.74011e-02,1.02735e-02,-2.63857e-02,4.29708e-03,1.38890e-03,2.44246e-02,-2.71913e-02,-1.37619e-02,-2.71418e-02,-1.99535e-02,2.24637e-02,-8.28784e-03,-3.22170e-02,2.79023e-02,3.54973e-02,1.73471e-02,-1.25684e-02,1.03890e-02,4.97671e-03,-1.04148e-02,1.40353e-02,2.68204e-02,1.96612e-02,-6.71788e-04,5.41992e-02,4.00511e-02,2.17266e-03,1.33600e-02,4.72552e-02,1.49292e-03,4.48336e-02,1.80415e-02,3.69640e-02,9.24423e-04,5.07597e-04,1.56849e-02,1.85916e-02,1.29839e-02,-2.20318e-02,1.00746e-02,6.56125e-03,1.75565e-04,-1.72097e-04,-3.16618e-02,1.60925e-02,4.88659e-03,1.47310e-02,-1.43189e-03,1.28870e-02,-1.79257e-02,3.59763e-02,4.06369e-02,3.68684e-02,1.07283e-01,5.68136e-02,2.93766e-02,3.84173e-02,1.78319e-02,5.75254e-02,4.16985e-02,3.03735e-02,8.34048e-02,5.19796e-02,-1.02568e-02,4.53248e-02,3.66563e-03,1.54838e-02,3.35630e-02,4.74653e-03,1.00603e-02,-2.84658e-02,-3.73612e-03,2.93354e-02,-8.27808e-03,2.93624e-02,-1.71298e-02,4.40473e-04,-4.58774e-03,-3.10402e-02,4.27506e-02,3.84672e-03,5.62779e-02,1.25977e-02,4.67016e-02,3.67599e-02,8.23617e-02,1.07184e-01,9.99538e-02,4.76577e-02,2.41787e-02,5.03621e-02,-8.85238e-03,1.03784e-02,-6.11319e-03,-3.08330e-03,2.06454e-02,2.71286e-02,2.94229e-03,3.91162e-03,4.42854e-03,2.41025e-02,2.71106e-02,-2.51991e-02,-2.54502e-02,-2.07676e-02,-6.38848e-02,-5.30288e-02,2.28063e-02,1.45064e-02,4.32262e-02,8.45510e-02,9.04716e-02,7.65865e-02,7.15029e-02,1.33746e-01,1.91008e-01,1.24039e-01,6.29568e-02,2.39604e-02,-1.77071e-02,9.59669e-03,2.52706e-02,3.91744e-03,1.25514e-02,-2.98086e-02,3.12083e-03,-2.52644e-02,3.20035e-02,2.07078e-02,-2.33038e-02,-1.71515e-02,-1.03387e-01,-1.23049e-01,-7.06189e-02,-2.70508e-02,-1.80055e-02,-4.80488e-02,-9.10876e-03,5.75374e-02,8.12366e-02,1.10274e-01,1.51525e-01,7.81578e-02,3.42303e-02,5.70144e-02,7.90958e-02,2.83233e-02,-1.26915e-02,1.08881e-02,3.93374e-02,9.54620e-03,-1.21374e-02,8.25256e-04,-5.08056e-03,-4.55097e-03,-1.90315e-02,-3.34457e-02,-9.85897e-03,-4.96685e-02,-7.39235e-02,-5.04466e-02,-7.26845e-02,-2.01036e-02,4.58261e-03,-1.53238e-03,1.57991e-02,4.51694e-02,1.01979e-01,1.26955e-01,9.52763e-02,7.72087e-02,-3.97782e-02,-2.57865e-03,-4.33730e-02,-5.20352e-02,-3.51045e-02,-1.53200e-02,6.60115e-02,2.71004e-02,-1.57063e-02,2.18182e-03,3.20878e-02,-3.62853e-03,2.15360e-02,-2.88164e-02,-3.61108e-02,-9.16417e-02,-6.47260e-02,-7.12457e-02,-7.99403e-02,-5.16314e-02,3.14301e-02,1.54723e-02,2.88583e-02,6.01239e-02,1.02628e-01,5.66635e-02,-2.04205e-02,-4.29271e-03,-7.08370e-02,-8.68103e-02,-6.51288e-02,-6.36320e-02,-7.28829e-03,-2.71198e-02,3.59626e-03,4.29102e-02,1.41857e-02,-3.21885e-03,1.44033e-03,-3.57499e-02,-4.29032e-02,-3.87424e-02,-9.24463e-02,-9.42755e-02,-6.25266e-02,-3.15594e-03,-3.07423e-02,-1.37426e-02,5.48334e-02,1.17693e-01,1.12466e-01,7.03965e-02,7.68431e-02,-6.21165e-02,-1.37892e-01,-1.35362e-01,-1.39275e-01,-7.56727e-02,-5.34656e-02,-3.38226e-02,-1.95245e-02,1.68425e-02,6.42258e-02,4.28655e-02,-4.50927e-03,-2.79129e-02,-1.30142e-02,-3.47960e-02,-1.77276e-02,-7.99095e-03,-4.17723e-02,-8.29078e-02,-9.42000e-03,3.83777e-02,1.25391e-02,9.86800e-02,1.04792e-01,8.94073e-02,8.14302e-02,6.00464e-02,-7.32404e-03,-1.39182e-01,-2.52003e-01,-1.93870e-01,-1.55011e-01,-7.28006e-02,-6.28272e-02,-7.25286e-03,1.51913e-02,6.20063e-02,9.07787e-02,5.01311e-02,5.15622e-03,1.37333e-02,-2.69170e-02,-1.08049e-02,-4.11889e-02,3.33176e-04,-5.48863e-02,-8.60973e-02,-7.55206e-04,5.91114e-02,8.87626e-02,1.12775e-01,6.22788e-02,7.04359e-02,3.48721e-02,2.93816e-02,-5.85002e-02,-1.41639e-01,-2.15047e-01,-1.54750e-01,-6.25541e-02,-1.55992e-02,7.79562e-03,2.55152e-02,7.72861e-02,1.01294e-01,1.45126e-01,5.53027e-02,-1.90653e-02,-1.25925e-02,1.11542e-02,-2.78874e-03,-4.46604e-02,-3.92170e-02,-5.24047e-02,-7.88371e-02,4.13757e-03,5.89203e-02,6.46667e-02,7.39261e-02,5.76926e-02,4.75326e-02,6.91743e-02,4.76353e-02,2.30975e-02,-1.04947e-01,-1.88587e-01,-8.07750e-02,-1.15777e-02,5.80434e-02,8.24360e-02,8.08963e-02,2.01318e-01,1.60917e-01,1.24616e-01,8.95755e-02,3.52441e-02,-2.61759e-02,6.10331e-03,-3.51409e-02,-1.51944e-02,-3.37500e-02,-4.45926e-02,-5.20781e-02,-9.36539e-04,7.75788e-02,8.52821e-02,7.67481e-02,1.00953e-01,8.81383e-02,1.23897e-01,9.51364e-02,4.81354e-02,-5.11181e-02,-5.02284e-02,-4.38075e-02,-2.87806e-02,6.43906e-02,9.62543e-02,1.05697e-01,1.25566e-01,1.56878e-01,1.44148e-01,1.01051e-01,2.06516e-02,1.68848e-02,-1.44787e-02,-2.29570e-02,-3.26222e-02,-3.88427e-02,-2.51140e-02,-1.02732e-02,1.06172e-01,1.19076e-01,1.20413e-01,9.53170e-02,9.72805e-02,1.46091e-01,1.47654e-01,8.00690e-02,-1.59880e-02,-6.08654e-02,-9.30742e-02,-7.46209e-03,4.34883e-02,-1.35660e-02,5.10359e-02,3.02213e-02,1.23399e-02,8.52169e-02,5.57608e-02,4.16916e-02,4.42020e-02,-2.68904e-02,-2.26747e-02,-1.01074e-02,2.65411e-02,1.73518e-02,1.77300e-02,5.44191e-03,8.45164e-02,1.57773e-01,1.90265e-01,1.92461e-01,1.58196e-01,1.00797e-01,8.52517e-02,4.48857e-02,-5.51124e-03,-3.12623e-02,-5.88412e-02,2.21679e-02,3.97332e-02,2.40552e-02,9.18012e-03,-6.85501e-02,-3.90173e-02,-8.70446e-03,6.94180e-02,5.68009e-02,2.72287e-02,8.38133e-03,-1.70381e-02,-3.56712e-02,1.66558e-03,-2.45292e-02,-3.15501e-03,2.05493e-02,4.99792e-02,1.39880e-01,1.58811e-01,1.92847e-01,1.61954e-01,1.26641e-01,1.34362e-01,9.21435e-02,4.32092e-02,-6.78807e-02,-4.90815e-02,2.88430e-02,2.11446e-02,3.25166e-02,-5.11085e-02,-3.66821e-02,-5.64260e-02,-7.39182e-03,2.14314e-02,3.45450e-02,3.98609e-02,3.19373e-02,3.19607e-02,-1.58603e-02,1.46368e-02,1.25049e-02,4.26958e-04,1.61346e-02,9.97228e-02,1.62760e-01,1.82380e-01,1.52948e-01,2.49329e-01,2.63379e-01,2.60624e-01,1.09531e-01,1.53088e-02,-6.39073e-02,-3.72932e-02,5.36978e-02,4.42047e-02,6.02719e-02,-2.06106e-02,3.25195e-02,-5.02311e-03,4.67072e-02,5.53471e-02,7.82939e-02,6.99527e-02,-1.17956e-02,2.72685e-02,2.05233e-02,-2.02133e-02,-2.55877e-02,-3.14880e-02,-4.49769e-02,9.96665e-02,1.25588e-01,1.75138e-01,2.09954e-01,2.11053e-01,2.56170e-01,1.87587e-01,1.20252e-01,-9.20801e-05,-4.62243e-02,-1.28760e-02,7.63801e-02,5.92727e-02,5.96329e-02,9.94826e-02,5.20614e-02,8.59126e-02,1.17441e-01,1.17642e-01,8.87115e-02,5.74679e-02,2.35894e-02,3.34032e-02,-3.31358e-02,3.26877e-02,-9.27057e-03,-9.12085e-02,-3.18482e-02,8.28462e-02,1.51952e-01,1.73073e-01,1.28655e-01,1.40517e-01,1.91970e-01,1.35588e-01,1.01060e-01,-1.17546e-03,3.10859e-02,2.14938e-02,4.09862e-02,4.06642e-02,1.25225e-01,9.64629e-02,9.18452e-02,1.11131e-01,1.61544e-01,1.31482e-01,1.01431e-01,1.92479e-02,2.59930e-02,-1.75959e-02,-2.37514e-02,1.25913e-02,-2.88667e-02,-7.73483e-02,2.38617e-02,6.97031e-02,9.47596e-02,1.01123e-01,8.28378e-02,1.25136e-01,9.28661e-02,8.52570e-02,3.33001e-02,7.70845e-02,-2.51298e-03,2.88186e-02,3.08638e-02,8.95543e-02,6.53853e-02,6.65034e-02,1.38059e-01,1.75455e-01,1.59056e-01,1.23458e-01,6.81034e-02,-1.55135e-02,-3.19512e-02,2.24343e-02,2.85571e-02,-5.63009e-03,-3.49864e-02,-4.10374e-03,8.78634e-04,1.67237e-02,3.90408e-02,8.16792e-02,5.19639e-02,1.39470e-01,6.37135e-02,5.92664e-02,5.28109e-02,9.35583e-02,3.85917e-02,7.22821e-02,1.21020e-02,2.07254e-02,3.43992e-02,7.91000e-02,1.34951e-01,1.07765e-01,1.90503e-01,7.10293e-02,6.97082e-02,3.39738e-03,-2.24990e-02,-2.81448e-02,1.58452e-02,8.43564e-03,1.69255e-02,-4.10302e-02,-4.24240e-02,-2.78165e-02,-2.17826e-02,-3.81087e-03,2.52658e-02,3.13757e-02,2.84811e-02,8.64426e-02,1.27364e-01,1.06034e-01,4.66259e-02,4.90260e-02,-2.91850e-02,2.50792e-02,-1.52704e-02,3.65387e-02,9.19253e-02,1.39821e-01,1.43867e-01,1.03127e-01,-1.23352e-02,1.45677e-02,-3.18113e-02,5.74530e-03,2.10412e-02,1.22643e-02,-1.77050e-02,-1.47438e-02,-3.42025e-02,-9.45256e-02,-1.73783e-01,-6.43789e-02,1.06225e-02,3.80475e-02,4.29393e-02,7.02970e-02,3.67709e-02,3.48920e-02,7.04436e-02,1.58386e-02,1.86996e-02,-2.03102e-02,3.44608e-02,1.02133e-01,1.49303e-01,1.42196e-01,9.21925e-02,6.53468e-02,1.04403e-02,-2.30887e-02,7.68203e-03,5.53507e-03,7.79194e-03,-1.06652e-02,1.40637e-02,-4.22312e-02,-7.12032e-02,-1.32545e-01,-1.86947e-01,-1.49297e-01,-6.56478e-02,-2.63988e-02,-2.40712e-02,1.09519e-02,2.32807e-02,4.51682e-02,3.08935e-02,-2.98677e-03,3.03018e-02,4.12920e-02,8.87768e-02,9.23468e-02,7.22514e-02,6.97197e-02,7.10850e-02,3.72975e-02,4.26408e-02,9.27927e-03,1.87819e-02,-6.65553e-03,-1.79219e-02,1.56147e-02,2.10155e-02,-2.93211e-02,-2.05369e-02,-3.01488e-02,-5.71513e-02,-4.34132e-02,-1.16111e-01,-1.54443e-01,-7.57701e-02,-6.33086e-02,-9.53609e-02,-5.32868e-02,7.06474e-03,7.01178e-04,1.43011e-04,3.14635e-02,1.88804e-02,7.96207e-03,-3.50319e-03,-2.41403e-02,-1.60786e-02,-2.43189e-02,-2.84607e-02,-1.29437e-03,-3.68525e-05,1.73664e-02,-8.48347e-03,-2.74075e-03,2.72825e-02,9.02546e-03,2.96811e-03,1.01022e-02,1.25642e-02,-7.32931e-02,-3.35214e-02,-4.27982e-02,-4.34043e-02,-3.45983e-02,-3.24099e-02,-6.39312e-02,-5.28375e-02,-3.37992e-02,-7.76064e-02,-3.21793e-02,-6.11783e-02,-2.35994e-02,-1.03011e-02,-2.53993e-02,-4.11808e-02,-1.71997e-02,4.55357e-04,5.60032e-03,9.13673e-03,2.66884e-02,1.09226e-02,-3.56426e-02,-2.75953e-02,-1.62067e-02,-2.75100e-02,1.13443e-02,-6.99181e-03,2.95067e-02,-4.04769e-03,1.53169e-02,-2.55523e-02,2.54230e-02,-3.83408e-02,-3.59082e-03,-3.23769e-02,-4.13806e-02,-1.47121e-02,-5.99195e-02,-6.19603e-03,-2.64255e-02,-1.07758e-02,-9.49043e-03,-1.54271e-02,1.84670e-02,3.34206e-02,1.11411e-02,-1.85985e-03,-2.26172e-02, +2.48810e-02,-1.23294e-02,-2.84861e-02,2.46055e-02,-2.45848e-02,2.70020e-04,-8.66839e-03,1.77845e-02,-2.74466e-02,-2.14877e-02,-3.50415e-02,-8.16159e-03,-3.43748e-02,1.91395e-02,2.07546e-02,1.74377e-02,2.49557e-02,-2.29295e-02,1.78598e-04,-1.96131e-03,-2.06987e-02,-3.35124e-03,-6.97520e-03,-3.43077e-02,4.18502e-03,-1.24274e-02,-1.93984e-03,-3.36952e-03,-4.11601e-03,7.45339e-03,2.04406e-02,3.35149e-02,-3.06824e-02,2.11840e-02,1.54803e-02,3.06327e-02,3.02270e-02,1.57929e-02,7.58313e-03,9.41898e-03,-1.66075e-02,-1.78593e-02,-2.34656e-02,-1.43066e-02,3.11856e-02,-2.32201e-02,-2.74195e-02,2.04367e-02,1.93103e-02,2.26459e-02,-2.48225e-02,7.52097e-03,-1.03768e-02,-2.70159e-02,1.83931e-02,-1.27766e-02,-2.13163e-02,1.47957e-03,-1.82533e-02,4.68754e-03,2.29773e-02,1.29913e-02,-1.01211e-02,2.87142e-02,-2.17578e-02,-1.14821e-03,2.14827e-02,5.03136e-02,3.29340e-02,2.51617e-02,4.75270e-02,3.30124e-02,3.13094e-02,6.53974e-03,4.91588e-02,-8.86938e-03,4.65514e-02,1.35806e-03,-1.07918e-02,-7.14698e-04,-3.21631e-02,-2.05601e-02,1.45073e-02,-3.48424e-02,3.35407e-02,7.20868e-03,3.21947e-02,-8.17813e-03,-1.18618e-02,-2.37198e-02,8.77709e-04,7.21072e-03,2.24097e-02,2.21852e-03,5.82288e-02,3.77131e-02,3.37938e-02,2.42579e-02,-2.89279e-02,-5.55221e-02,9.48450e-03,-3.53246e-02,-3.30053e-02,-1.54585e-02,4.07228e-03,1.07862e-02,3.61182e-02,6.52546e-03,-2.61160e-02,-3.46594e-02,1.61969e-02,1.32977e-02,1.49409e-02,-2.55748e-02,-1.04655e-02,-2.52105e-02,-3.63871e-03,-4.38500e-02,-5.28932e-02,-6.07661e-02,-5.71920e-02,-3.06105e-02,-3.84406e-02,7.26666e-03,5.37198e-03,6.04366e-02,2.92083e-02,7.73630e-03,3.54043e-02,-2.22988e-02,-2.48414e-02,3.04427e-02,1.01076e-02,-3.29977e-02,-3.43852e-02,1.91727e-02,1.12348e-03,1.40985e-03,-2.08512e-02,-1.55529e-02,-3.24238e-02,6.14830e-03,8.21273e-03,-1.03798e-02,1.23388e-02,-1.49884e-02,-7.12332e-02,-9.71078e-03,-1.22244e-02,2.34142e-02,3.04063e-02,3.08306e-02,1.29376e-01,1.16759e-01,1.38217e-01,9.92987e-02,8.07219e-02,5.35652e-02,4.30519e-02,-3.21552e-03,1.54290e-03,8.46371e-03,-1.21745e-02,-1.53239e-02,-7.50246e-02,-1.71198e-02,1.75565e-02,4.95531e-03,-2.28189e-02,-3.10138e-02,1.24652e-02,1.13129e-02,-3.98745e-02,-4.59041e-02,-7.49905e-02,-1.35786e-02,-1.58498e-02,-3.57264e-02,8.88114e-03,3.07262e-02,4.43748e-02,3.15130e-02,4.30022e-02,5.96337e-02,-8.35825e-03,1.44304e-02,-5.39522e-02,1.69443e-02,-1.07238e-03,-3.18713e-02,-4.01705e-02,-1.87363e-02,-5.64635e-02,-6.85136e-02,-3.37780e-03,-1.35017e-02,-3.19470e-02,1.30932e-03,9.90719e-03,-6.41953e-02,-7.81983e-02,-1.03791e-01,-5.36474e-02,-4.45896e-02,-1.47435e-02,-4.61570e-02,5.39798e-03,3.10989e-03,-3.78097e-02,1.43360e-02,-2.10002e-04,-2.82997e-02,-5.36056e-03,-4.90988e-02,-4.64608e-02,-3.96925e-02,-6.51880e-02,-1.54052e-04,3.15451e-02,-6.54101e-02,-9.61092e-02,-9.92735e-02,-6.70600e-02,1.62574e-02,2.73289e-02,2.74225e-02,-6.89366e-03,-7.83033e-02,-5.92151e-02,-4.05001e-02,-1.56491e-03,2.69521e-02,-2.28157e-02,2.86355e-02,4.21864e-02,-1.87041e-02,-1.54852e-02,7.53026e-03,-4.32900e-02,-5.14923e-02,-9.69272e-02,-6.76647e-02,-5.65592e-02,2.20611e-02,-3.07680e-02,1.03386e-02,-3.43325e-02,-4.48928e-02,-1.19699e-01,-1.28146e-01,-5.77878e-02,-2.11554e-02,-6.67619e-03,1.81434e-02,9.07640e-03,-9.05335e-02,-5.55988e-02,2.35394e-02,-2.07937e-03,3.93995e-02,-3.92409e-03,1.85826e-02,3.16779e-02,8.77370e-02,1.01136e-01,5.98241e-02,-1.58769e-02,-8.91937e-02,-5.61410e-02,-6.72756e-02,1.41262e-02,2.07497e-02,-3.02365e-02,-3.97223e-02,-7.30325e-02,-5.31710e-02,-1.59622e-01,-1.67726e-01,-4.93274e-02,-2.67064e-02,-3.59446e-02,-1.75663e-02,2.28983e-03,-6.35346e-02,-4.79560e-02,3.43418e-02,4.49859e-02,3.08447e-02,4.11881e-02,6.32128e-02,1.04972e-01,1.20382e-01,8.37832e-02,-2.83137e-02,-7.61613e-02,-1.05245e-01,-6.13515e-02,-2.42158e-02,5.79580e-02,7.00192e-02,-1.32261e-02,-1.52901e-02,9.90344e-03,-2.86480e-02,-1.52643e-01,-1.16707e-01,-1.69117e-02,9.86568e-03,-7.85880e-04,8.23983e-04,-5.55176e-02,-7.37073e-02,-5.07784e-02,4.13413e-02,6.22395e-02,6.20623e-02,9.24880e-02,5.53005e-02,1.00910e-01,3.20927e-02,-6.24251e-03,-9.22651e-02,-5.06962e-02,-8.64338e-02,-4.67636e-02,-1.98871e-02,5.13120e-02,8.46342e-02,5.47114e-02,9.85377e-02,1.05633e-01,8.21458e-02,-1.85094e-02,-3.36352e-02,-9.23760e-03,-1.81787e-02,1.25866e-02,-2.12614e-02,-4.20585e-02,-5.51632e-02,-2.52694e-02,-7.20149e-03,-6.69144e-02,1.15689e-02,-3.85093e-03,8.27267e-02,1.95174e-02,-7.30030e-03,7.14599e-03,-2.21685e-02,-1.58274e-02,-5.73133e-02,-6.42127e-03,-3.77618e-03,5.38254e-02,1.14617e-01,1.04477e-01,1.69929e-01,1.79571e-01,1.13524e-01,1.02669e-01,-9.98033e-03,4.72748e-03,2.77839e-02,-9.53315e-03,2.40454e-02,8.84421e-03,-2.48328e-02,-5.32376e-02,-4.39204e-02,-5.08810e-02,-6.12621e-02,-2.44750e-02,-1.07931e-02,-1.92467e-02,2.25818e-02,-2.96683e-02,-2.29059e-02,-5.96025e-03,3.92985e-02,5.47581e-02,1.36144e-02,8.52892e-03,6.37553e-02,3.50442e-02,7.15821e-02,1.38143e-01,6.15809e-02,6.42068e-02,1.35123e-03,3.53323e-02,1.76798e-03,-3.82444e-03,-1.17020e-02,-2.53024e-02,1.46305e-02,-2.09099e-02,4.49935e-03,1.34754e-02,-3.15270e-02,2.25498e-02,-1.37798e-02,2.09899e-02,2.87192e-02,2.65287e-02,3.36895e-02,3.96611e-02,4.11510e-02,4.90577e-02,2.75912e-02,5.40814e-02,3.93731e-02,-2.15724e-02,-3.20973e-02,-4.60717e-02,-2.61076e-02,7.51451e-03,5.89386e-02,-2.99629e-02,-7.60012e-03,-2.48668e-02,2.21433e-02,-4.08582e-02,3.54554e-03,1.10708e-02,4.62468e-02,6.37779e-02,8.20630e-02,1.23681e-01,3.12688e-02,3.07834e-02,3.51885e-02,2.14414e-03,1.64093e-02,7.26422e-02,5.90212e-02,8.73658e-02,2.07903e-02,3.81141e-03,-6.12172e-02,-7.87727e-02,-1.29806e-01,-1.05491e-01,-9.65282e-02,-3.95699e-02,2.75097e-02,1.60303e-02,-1.19248e-03,2.67143e-02,-3.25086e-02,7.01590e-03,-5.32073e-02,-2.86421e-02,2.84541e-02,7.98042e-02,1.53475e-01,2.06811e-01,1.23764e-01,1.18143e-01,1.12041e-01,9.78609e-02,9.40553e-02,8.02769e-02,9.98776e-02,1.47025e-01,2.99833e-02,1.69050e-04,-9.08021e-02,-6.47428e-02,-1.35549e-01,-1.28189e-01,-4.67773e-02,2.79127e-02,5.97083e-02,-1.13015e-03,3.66235e-04,2.33406e-02,7.66178e-03,-2.99125e-02,-6.05809e-02,-2.99487e-03,-1.89520e-02,3.23335e-02,1.45195e-01,2.38875e-01,2.75760e-01,2.80581e-01,2.29711e-01,2.36130e-01,1.61524e-01,1.47999e-01,1.37735e-01,6.45305e-02,-9.49548e-03,-8.74837e-03,-9.28281e-02,-2.91643e-02,-1.13405e-01,-1.13382e-01,-4.03129e-02,5.76389e-02,1.08463e-01,1.66434e-02,3.19536e-02,1.45334e-02,3.48553e-02,-2.90622e-02,-7.95483e-02,-6.30810e-02,-1.22982e-02,-1.91598e-02,1.13890e-01,1.85532e-01,2.38921e-01,2.48208e-01,2.89533e-01,2.50454e-01,1.64010e-01,7.95852e-02,5.05838e-02,5.49969e-02,4.77906e-03,-2.04591e-02,5.72337e-03,-2.43172e-02,-4.22909e-02,-7.40654e-02,1.77941e-02,9.86364e-02,2.61607e-02,2.36861e-02,2.85309e-03,2.28246e-02,2.47758e-02,-1.47403e-02,-6.41045e-02,-6.75177e-02,1.58527e-03,-8.98793e-03,3.61501e-02,6.17788e-02,6.87244e-02,1.15982e-01,1.38445e-01,1.60854e-01,1.48216e-01,9.26073e-02,7.58360e-02,8.00067e-02,-2.80699e-03,8.74081e-03,-3.69741e-04,-1.51924e-02,-1.82094e-02,4.64265e-02,5.47110e-02,7.51458e-02,6.36191e-02,4.33781e-02,-1.51326e-02,-4.67097e-03,-3.38392e-02,-1.04640e-02,-6.30177e-02,-3.03196e-02,-4.71345e-02,-1.89752e-02,5.98642e-02,-9.13792e-04,9.19032e-03,5.57900e-02,5.71149e-02,5.42533e-02,1.13536e-02,5.09344e-03,1.19530e-02,2.79241e-02,-8.93982e-03,4.17919e-02,-1.76312e-02,1.68238e-02,6.99621e-02,5.10585e-02,1.15324e-01,9.79242e-02,6.85227e-02,1.12713e-02,2.17408e-02,-3.15238e-02,-1.55620e-02,3.64291e-03,-6.01556e-02,-5.06651e-02,-4.90878e-02,4.63045e-03,2.17974e-02,-3.21195e-03,3.63225e-02,3.75182e-02,-1.91989e-02,1.15551e-03,4.13460e-02,6.02561e-02,-1.16035e-02,2.83118e-02,6.13064e-02,4.54651e-02,2.98343e-03,5.71428e-02,7.48901e-02,8.41550e-02,9.82233e-02,7.39170e-02,3.74344e-02,-2.65714e-02,-2.51842e-02,-1.11282e-03,-3.36621e-02,2.52218e-02,-1.90779e-03,-6.39169e-02,-2.37710e-02,-3.27940e-02,4.01183e-03,1.27383e-02,1.91333e-02,3.18067e-02,4.42177e-03,4.28980e-02,2.03994e-02,4.10559e-02,5.76234e-02,-2.23749e-02,-2.62754e-02,4.44546e-02,3.10539e-02,6.03618e-02,1.30611e-01,6.03654e-02,8.23287e-02,4.67748e-02,2.76176e-02,3.45716e-03,-2.28791e-02,-2.72761e-02,-7.16025e-03,7.00462e-03,7.95858e-03,-9.99669e-02,-9.00875e-02,-1.31994e-01,-6.65535e-02,2.49930e-02,1.56976e-02,-1.69237e-02,4.29366e-02,2.92569e-02,8.93405e-02,5.02929e-02,3.85975e-02,3.76423e-02,-6.29771e-03,9.02134e-03,3.69297e-02,1.06779e-01,1.12491e-01,1.04224e-01,1.12271e-02,-1.44762e-02,8.57848e-04,9.61717e-03,-2.94243e-02,-2.28070e-02,2.61449e-03,-2.33613e-02,-5.86724e-02,-3.38828e-02,-1.41940e-01,-1.38348e-01,-1.74103e-01,-9.81069e-02,-1.02231e-01,-8.65980e-02,-1.44536e-02,-3.03640e-02,-2.88905e-02,1.69494e-02,1.80680e-02,2.62471e-02,-2.41415e-02,6.36739e-02,4.61518e-02,8.13703e-02,4.56311e-02,2.78257e-04,-2.18112e-02,-3.94599e-03,-1.06104e-02,9.98072e-03,-1.23153e-02,-3.07298e-02,3.47547e-02,-2.30627e-02,2.29224e-03,-3.88963e-02,-3.09050e-02,-8.85490e-02,-1.31383e-01,-1.04702e-01,-1.42319e-01,-1.45523e-01,-1.97326e-01,-1.51061e-01,-1.47028e-01,-6.49409e-02,-6.12919e-02,-8.18933e-02,-3.46869e-02,-4.06262e-02,-4.70378e-02,-2.18160e-02,-6.38178e-02,-4.77826e-02,-1.85695e-02,1.68229e-02,-6.88342e-03,3.57843e-02,3.47360e-02,-1.96057e-03,5.55951e-03,3.34070e-02,1.64619e-02,2.11045e-02,-1.17995e-03,-8.56128e-03,-2.59926e-03,-1.60381e-02,-3.31005e-02,-9.45986e-02,-3.73162e-02,-6.49230e-02,-7.44756e-02,-4.52430e-02,-6.59746e-02,-4.84207e-02,-4.86305e-02,-4.29546e-02,-3.02138e-02,1.34868e-03,-3.45577e-02,-3.79729e-02,8.77993e-03,-1.13981e-02,8.80780e-03,-8.73305e-04,2.20340e-02,-2.47615e-02,9.01990e-04,-1.82059e-02,-2.74450e-02,1.35108e-02,3.12237e-02,-9.21630e-03,-2.21452e-02,2.53892e-02,1.48994e-02,-2.72812e-02,-2.73447e-02,-1.37367e-03,-4.82637e-02,-1.88638e-03,-2.44241e-03,-1.95688e-02,-3.69649e-02,-2.84840e-02,-6.81264e-03,2.39263e-02,-6.82363e-03,-3.16717e-02,-2.17871e-02,2.41277e-03,8.05724e-03,-2.51923e-03,5.63337e-03, +2.35728e-02,-9.92893e-03,-2.60843e-02,2.95026e-02,3.44718e-03,-3.00024e-02,4.86035e-03,2.31486e-03,-3.01257e-02,4.60880e-03,1.58562e-02,-3.33322e-02,1.38253e-02,-2.26580e-02,-4.68602e-03,3.55373e-02,-2.30113e-02,9.73757e-03,-2.83760e-02,-2.49865e-02,1.99220e-02,1.00344e-02,-3.13510e-02,1.22353e-02,-2.91785e-02,3.22135e-02,3.49639e-02,2.14363e-02,-2.39868e-04,-3.37803e-02,1.71246e-02,-1.98215e-02,-8.40771e-03,-2.31346e-02,-4.24643e-03,8.74578e-03,2.50048e-02,2.23819e-05,-2.82867e-03,2.51556e-02,2.89399e-02,-2.03015e-02,-3.80403e-02,-3.64268e-02,-1.85068e-03,-3.08219e-02,5.29685e-03,2.12292e-02,4.19617e-03,9.71065e-03,-3.44208e-02,2.05961e-02,1.67577e-02,-2.31921e-02,3.81859e-03,1.61366e-02,-2.52832e-02,1.39875e-03,2.81417e-03,2.05873e-02,2.92557e-02,-1.58970e-03,-4.51216e-03,-1.75557e-02,-1.43789e-02,-2.87381e-02,-1.99047e-02,-1.02584e-02,-8.80004e-02,-4.49831e-02,-4.84720e-02,-2.33333e-02,-5.54494e-02,-2.72293e-02,2.02597e-02,-1.66781e-02,-2.59615e-02,-3.63206e-02,-2.75879e-02,-8.63398e-03,-3.71491e-02,-1.75918e-02,3.47429e-03,3.25739e-02,-6.82894e-04,2.57996e-02,2.08156e-02,-1.09191e-02,2.18305e-02,-1.62727e-02,-2.66766e-03,-3.32072e-02,-3.89459e-02,-9.05122e-02,-7.06874e-02,-6.45654e-02,-8.98588e-02,-1.41563e-01,-1.00334e-01,-4.06472e-02,-4.08966e-02,1.75700e-02,5.08364e-02,4.88461e-02,6.39619e-02,4.88892e-02,5.61638e-02,2.02453e-02,-1.41588e-02,-3.09247e-02,-2.13859e-02,-2.03898e-02,1.93213e-02,-4.19548e-03,-2.20760e-02,-3.53326e-02,-3.52766e-03,-1.77255e-02,-5.13420e-02,-2.53914e-02,-6.36007e-02,-1.06187e-01,-5.98514e-02,-2.43865e-02,-2.97741e-02,-4.10931e-02,6.49336e-03,6.76297e-03,6.11990e-02,5.06070e-02,4.03727e-02,4.52525e-02,4.63677e-02,7.71432e-02,7.83833e-02,1.11375e-01,9.57066e-02,5.16563e-02,-1.83696e-02,-3.25629e-02,-4.33538e-03,1.10646e-02,-3.07382e-03,-2.09810e-02,-2.39533e-02,-9.41757e-03,-5.77734e-02,-3.31663e-03,-3.59443e-02,-4.48052e-02,-2.06638e-02,6.46277e-02,4.46733e-02,-4.42764e-02,-3.29585e-02,-3.97983e-02,-2.79948e-02,1.97932e-02,-1.27876e-02,2.78501e-02,7.18444e-02,4.99575e-02,9.21096e-02,1.52932e-01,1.84373e-01,4.66902e-02,4.25494e-02,3.15164e-02,-3.16936e-02,-2.36828e-02,9.73168e-03,3.76243e-04,9.30016e-03,-3.78663e-02,-4.21721e-02,-2.07648e-02,-4.45490e-03,5.73607e-03,-5.25459e-03,5.19850e-02,2.85107e-02,8.44505e-02,5.82498e-02,5.89192e-02,7.84221e-02,4.18982e-02,8.60337e-02,3.48565e-02,4.53567e-02,4.41185e-02,1.40713e-01,1.89737e-01,2.49623e-01,1.53210e-01,6.09515e-02,2.13923e-02,2.19621e-02,-1.10185e-03,-3.35226e-02,1.31585e-02,-5.26525e-02,1.29593e-02,-2.66391e-02,-1.80270e-02,-3.52444e-02,1.27867e-02,3.68365e-02,2.03080e-03,3.20078e-02,1.07630e-01,1.43902e-01,1.12115e-01,1.07154e-01,1.18442e-01,7.24905e-02,1.39283e-02,6.12413e-02,-1.70407e-03,1.49188e-02,1.61674e-01,2.63611e-01,1.92307e-01,2.94109e-02,-5.45561e-03,3.44064e-02,1.65642e-02,-3.55464e-02,-2.20673e-02,-8.79934e-02,-3.75991e-02,-2.99239e-02,-8.57285e-02,-4.43205e-02,-3.97314e-02,2.27576e-03,1.25895e-02,4.89335e-02,1.27739e-02,4.99379e-02,3.62005e-02,-2.12226e-02,-2.70147e-02,-3.77966e-02,-4.76425e-02,-3.17368e-02,2.44404e-02,7.24202e-02,1.77434e-01,3.23862e-01,2.50914e-01,8.25016e-02,-2.73987e-02,9.55932e-03,9.48326e-03,5.18745e-03,-4.44622e-03,-9.36443e-02,-1.22165e-01,-7.63427e-02,-5.67900e-02,-2.24998e-02,1.82296e-02,-3.11973e-02,1.40586e-02,3.22388e-02,2.85218e-02,-6.69862e-02,-9.68648e-02,-8.37782e-02,-5.82288e-02,-5.42524e-02,-7.28846e-02,-1.94719e-02,4.10232e-02,-8.57784e-03,1.04101e-01,2.78138e-01,1.90627e-01,9.07434e-02,1.90487e-02,-2.99464e-02,2.46039e-02,-1.06721e-02,-7.56605e-02,-2.07248e-02,-8.92953e-02,-6.06990e-02,-1.08723e-02,7.28938e-03,9.07298e-02,5.67423e-02,8.57045e-02,1.53176e-01,8.87178e-02,-6.21645e-02,-5.25007e-02,-8.33049e-02,-4.44144e-02,-9.15363e-02,-8.80047e-02,-1.11306e-01,-6.12726e-02,-6.04049e-02,2.31893e-02,2.10989e-01,1.51415e-01,8.41138e-02,-1.34338e-02,-1.65308e-02,-2.86888e-02,-4.20078e-02,-6.75898e-03,-5.16266e-02,-7.39209e-03,3.05850e-02,3.71023e-02,1.10691e-01,1.25235e-01,1.92604e-01,2.31476e-01,2.09629e-01,2.01370e-01,9.57701e-02,5.34393e-02,5.01729e-02,3.74297e-02,-4.53974e-03,-1.05137e-01,-1.27472e-01,-1.81155e-01,-1.28269e-01,-9.97762e-02,6.41557e-03,6.35603e-02,5.15104e-02,3.71264e-02,-3.42187e-02,8.34675e-03,-3.30993e-02,-4.95304e-02,1.84971e-03,6.63890e-02,1.16422e-01,1.47893e-01,1.17461e-01,1.89762e-01,2.68985e-01,2.70888e-01,2.93061e-01,2.46504e-01,1.41445e-01,1.01420e-01,8.55716e-02,7.73043e-02,3.54939e-02,-8.61035e-02,-5.44424e-02,-1.46535e-01,-1.92513e-01,-1.62536e-01,-1.06335e-01,-7.92438e-03,1.96553e-02,3.98469e-04,6.39532e-03,-1.20939e-02,-2.68491e-02,2.44440e-02,8.94530e-02,1.56257e-01,1.98858e-01,1.73335e-01,2.03540e-01,2.13359e-01,2.06338e-01,2.47799e-01,1.95338e-01,1.79833e-01,1.21787e-01,1.39367e-01,1.01395e-01,8.07925e-02,8.32263e-02,1.40392e-02,-2.90871e-02,-4.24841e-02,-1.02251e-01,-1.50360e-01,-1.11517e-01,-7.30695e-02,-4.86598e-02,-3.17382e-03,4.17197e-03,-1.25209e-04,-3.31304e-02,-3.08878e-02,1.26322e-02,1.02865e-01,1.08976e-01,1.14067e-01,1.27169e-01,1.36574e-01,1.73499e-01,1.95553e-01,9.05878e-02,1.03569e-01,5.97605e-02,1.09798e-01,1.33724e-01,1.39539e-01,8.92014e-02,2.00789e-02,5.64296e-03,-1.37409e-02,-8.48497e-02,-1.29944e-01,-1.42190e-01,-6.98066e-02,-1.89293e-02,1.39065e-02,-2.15359e-03,-1.57757e-02,-1.77744e-02,-3.13753e-02,-1.16536e-02,-4.66417e-02,-8.02143e-02,-3.79964e-02,5.56202e-02,6.25092e-02,1.11180e-01,1.37081e-01,1.12473e-01,6.23931e-02,-2.68040e-02,3.99427e-02,6.06479e-02,1.56383e-01,1.00282e-01,9.44753e-02,-9.75014e-03,-3.43944e-02,-2.62343e-03,-3.08537e-02,-1.19428e-01,-6.80792e-02,-5.79377e-02,-3.80835e-02,2.18669e-02,1.46888e-02,9.03304e-04,1.90908e-02,-2.43834e-02,-1.40652e-01,-1.48310e-01,-1.25223e-01,-9.03065e-02,-6.25306e-02,-1.08119e-02,-2.09288e-02,5.25252e-02,7.90812e-03,-6.68556e-02,4.99566e-02,8.67857e-02,9.35830e-02,9.97614e-02,6.86452e-02,4.08057e-02,-8.64960e-03,-4.97106e-02,-9.83049e-02,-1.35502e-01,-1.67446e-01,-6.25239e-02,-3.87408e-02,-3.47461e-02,-1.38286e-02,-2.51712e-02,-3.92642e-03,-3.45044e-02,-1.03616e-01,-1.08687e-01,-1.27751e-01,-1.30092e-01,-1.76061e-01,-1.20677e-01,-8.58200e-02,-9.12023e-02,-1.30043e-01,-1.02302e-01,-2.02213e-02,5.39829e-02,1.27641e-01,4.97611e-02,5.03226e-02,6.64698e-02,4.46789e-02,-6.36287e-02,-7.22489e-02,-1.79979e-01,-1.89237e-01,-1.24365e-02,-1.11983e-02,-3.52076e-02,-2.94316e-02,1.47634e-02,1.11799e-02,-1.52119e-02,-5.89676e-02,2.71139e-02,-7.71090e-02,-1.15207e-01,-1.87871e-01,-1.76782e-01,-1.81565e-01,-1.67649e-01,-1.93247e-01,-1.12388e-01,1.96965e-02,5.73359e-02,6.90973e-02,6.10471e-02,-1.14644e-02,1.81348e-02,2.42344e-02,-3.58167e-02,-9.11332e-02,-1.14922e-01,-1.05021e-01,-5.15740e-02,-2.02738e-02,-1.72131e-03,-1.29908e-02,4.81985e-02,5.54371e-03,1.56200e-02,5.65471e-02,3.07604e-02,-3.51246e-02,-1.98725e-02,-1.28164e-01,-8.46455e-02,-1.27072e-01,-2.05519e-01,-1.20888e-01,-3.42717e-02,2.08324e-02,4.58282e-02,3.88744e-02,3.95408e-02,3.06103e-03,-4.50874e-02,-1.64443e-02,-5.26306e-02,-9.14867e-02,-1.09300e-01,-1.02412e-01,9.08810e-03,-3.84704e-03,-2.22314e-02,5.01969e-03,3.16466e-02,-8.26845e-03,1.29132e-02,5.69172e-02,4.00510e-02,1.95651e-03,6.07780e-04,7.46346e-03,-2.63791e-02,-4.89717e-02,-1.22758e-01,-8.41097e-02,-3.12003e-02,3.91033e-03,9.39186e-03,4.23915e-02,3.56367e-02,-6.74461e-02,-1.35844e-02,-3.50067e-02,-4.73018e-02,-6.66624e-02,-8.31003e-02,-3.42732e-02,-4.13229e-02,-7.74932e-03,1.19585e-02,-3.31021e-02,-2.57625e-02,2.36945e-02,-1.47312e-02,7.49113e-04,-3.01878e-03,2.86902e-02,3.49420e-02,1.76820e-02,3.09323e-02,-8.47956e-03,2.60825e-02,7.62466e-03,-3.98077e-03,5.96361e-02,6.87974e-02,1.49760e-02,-8.50066e-03,-6.44851e-02,-3.12909e-02,-3.71688e-02,-5.74019e-02,-7.62807e-02,-1.07804e-01,-1.11221e-02,-3.95611e-02,6.93231e-03,2.78226e-02,-1.80822e-02,-3.24470e-02,3.43535e-02,6.58585e-03,-8.93640e-02,-7.35056e-02,-4.48895e-02,-3.57842e-02,3.25264e-02,6.41174e-02,9.61509e-02,9.54105e-02,1.06268e-01,1.24361e-01,1.03427e-01,3.81419e-02,1.90146e-02,6.95958e-04,-2.90886e-02,-4.81210e-02,-4.15668e-02,-3.88055e-02,1.51119e-03,-1.40541e-02,-1.10002e-03,2.22901e-02,-3.31412e-02,-7.62326e-03,2.74489e-02,-2.24172e-03,2.26094e-02,-8.40411e-03,-2.54151e-02,-5.79258e-02,-7.00612e-03,3.26728e-02,3.45270e-02,1.22113e-01,8.13683e-02,1.00276e-01,1.28050e-01,7.08104e-02,6.57298e-02,2.45422e-02,7.16311e-03,5.45689e-02,3.08404e-02,1.41975e-03,1.00651e-02,-6.28584e-03,1.01776e-02,-3.91226e-03,9.15539e-03,-3.67100e-02,-3.35794e-02,-3.29337e-02,-2.63082e-03,2.51615e-03,4.75240e-02,-1.76322e-02,5.67183e-03,2.96348e-02,1.17734e-01,1.60181e-01,1.15729e-01,1.25585e-01,1.21615e-01,1.09941e-01,1.00297e-01,1.05231e-01,4.12800e-02,4.99321e-02,6.99485e-02,1.00937e-01,1.23293e-01,8.95096e-02,8.68871e-02,6.74234e-02,8.65763e-03,-1.15617e-02,1.72746e-02,1.35271e-02,2.94954e-02,7.27746e-03,-3.06730e-02,9.42806e-03,1.77107e-03,3.96614e-02,5.44328e-03,2.61680e-02,6.96135e-02,4.98217e-02,9.17676e-02,9.74198e-02,9.08734e-02,1.30188e-01,1.26704e-01,8.20619e-02,5.75968e-02,1.22458e-01,6.25495e-02,6.99045e-02,7.34010e-02,6.79059e-02,6.94636e-02,3.46589e-02,5.66037e-03,3.39390e-02,-2.57632e-02,-2.44603e-02,3.68169e-03,-1.15188e-02,-2.30744e-02,-2.87035e-02,1.82321e-02,8.61233e-03,-3.44467e-02,-1.59237e-02,-3.43880e-02,-4.43333e-04,-9.64337e-03,2.12168e-02,4.30876e-02,3.01168e-02,3.98133e-02,5.62307e-04,-1.40669e-02,8.93685e-03,9.13495e-03,2.63222e-02,2.25435e-02,9.82072e-04,2.05466e-02,-1.96091e-02,1.02979e-03,3.47323e-02,-9.38889e-03,-3.28899e-02,-7.86875e-03,-2.15856e-02,2.76080e-02,1.70642e-02,-3.31920e-02,-7.75082e-04,-4.60390e-03,1.99579e-02,1.20849e-02,1.49819e-02,1.09272e-02,-2.88551e-02,-1.93653e-03,-2.11944e-02,-3.37191e-02,-5.09253e-02,-5.72160e-03,7.58853e-03,-2.21701e-02,-1.08741e-02,2.05136e-02,-2.77860e-02,-2.54517e-02,-1.67607e-02,2.86059e-02,-8.25571e-03,2.48544e-02,3.88435e-03,-2.51315e-02, +-3.07048e-02,1.92333e-02,-1.75222e-03,7.76092e-03,2.13366e-02,-1.71458e-03,2.58649e-02,3.13882e-02,-1.87046e-03,2.87024e-02,2.59072e-02,5.63615e-03,-1.60676e-02,-1.31327e-02,1.77296e-02,3.08404e-02,-1.58488e-02,-2.89296e-02,-3.15450e-02,-2.22608e-03,-6.47811e-03,8.88658e-03,1.22461e-02,1.39288e-02,6.10319e-03,8.54026e-03,-1.73911e-02,-3.15446e-02,-1.36170e-02,-3.18001e-02,7.29888e-03,2.59387e-03,2.97209e-02,3.31691e-02,3.24472e-03,2.55328e-02,3.09138e-03,1.18182e-02,1.31393e-02,1.56890e-02,-3.07893e-02,-3.09655e-02,3.05517e-02,2.51197e-02,1.14841e-02,-1.76856e-02,-3.22505e-02,-7.29239e-04,6.86195e-03,-4.32405e-03,-1.68284e-02,2.20865e-02,4.63005e-03,3.83788e-03,1.94373e-02,2.97603e-02,-2.75515e-02,2.52540e-02,2.26353e-02,-9.85869e-03,-1.40641e-02,1.32307e-02,-2.22891e-02,1.21224e-02,-3.53557e-02,6.08040e-03,6.78778e-03,-3.96839e-02,-3.52911e-02,-1.00844e-02,-3.38634e-02,4.01503e-03,-1.25101e-02,-1.81339e-02,1.39388e-02,-3.32403e-02,-2.32170e-02,-1.73627e-02,-4.85282e-02,3.17013e-02,3.43034e-02,3.09079e-03,2.75394e-02,-2.53346e-02,-1.37055e-02,1.44360e-02,-1.72451e-02,2.45723e-03,3.38107e-02,-3.10331e-02,2.01153e-02,-8.75259e-03,-3.50287e-02,-1.75081e-02,3.01647e-02,2.81608e-02,1.55022e-02,-2.76110e-03,9.40727e-04,-1.58583e-02,-1.74790e-04,3.62791e-02,1.57266e-02,-2.44215e-02,-2.20353e-02,-4.27499e-02,-4.92934e-02,-2.01818e-02,1.78382e-02,-3.29409e-02,6.63479e-03,-7.43833e-03,1.56589e-02,1.03176e-02,-1.70738e-02,-8.07697e-03,2.76495e-02,-8.43496e-03,5.00883e-02,3.53056e-02,7.29056e-02,9.82916e-02,1.05631e-01,1.28856e-01,8.69756e-02,7.79384e-02,7.19511e-02,1.16022e-01,8.46995e-02,2.43330e-03,5.38339e-02,-8.07836e-03,-2.89740e-02,-1.08021e-01,-1.15955e-01,-1.00709e-01,-5.07315e-02,1.03599e-02,-6.11686e-03,9.16920e-03,-1.75535e-02,2.59657e-02,1.15003e-04,6.24598e-03,-2.14379e-02,2.74674e-02,4.84653e-02,4.38271e-02,2.80031e-02,5.09409e-02,1.02505e-01,1.09072e-01,1.19185e-01,1.15636e-01,8.46583e-02,1.70471e-01,1.24844e-01,5.72870e-02,-7.99549e-03,-3.02927e-02,-7.81222e-02,-1.05132e-01,-1.33036e-01,-7.95115e-02,-3.74974e-03,2.52204e-02,1.26650e-03,2.72358e-02,-3.34624e-02,7.65973e-03,-4.18522e-03,1.36323e-02,7.82893e-03,3.26149e-02,4.32255e-04,-2.74264e-03,-2.61476e-02,2.66895e-02,2.19080e-02,1.98516e-02,6.73110e-02,9.39858e-02,1.49551e-01,1.70022e-01,1.61537e-01,2.98630e-02,-7.37795e-03,-2.99359e-02,-4.03072e-02,-9.48184e-02,-1.26287e-01,-4.56300e-02,-1.68328e-02,4.25181e-02,4.08762e-02,7.34809e-03,1.59553e-02,3.30568e-02,-1.64346e-02,3.95060e-03,1.35914e-02,1.55964e-02,-3.00876e-02,-8.66596e-02,-5.25135e-02,-4.20780e-02,-6.86892e-02,-1.80024e-02,-4.56341e-03,1.48335e-01,1.53398e-01,1.83817e-01,8.55901e-02,2.49062e-02,-5.87626e-02,-5.16081e-02,-1.82782e-02,-5.79108e-02,-5.20823e-02,3.17192e-03,2.98868e-02,5.68215e-02,1.50693e-02,5.40874e-04,-1.88600e-02,-1.81698e-02,-4.46133e-02,8.10988e-03,1.19411e-02,-1.58321e-02,-3.72551e-02,-6.29413e-02,-3.86676e-02,-2.63391e-02,-1.27603e-02,-7.33561e-02,-2.31636e-03,4.94202e-02,1.15224e-01,9.66899e-02,6.29098e-03,-3.37692e-02,-2.63251e-02,3.25010e-02,2.50751e-02,8.94621e-04,-1.55076e-02,2.32550e-02,5.20535e-02,2.85674e-02,3.34121e-02,3.03789e-02,-2.46060e-02,-3.34840e-02,-2.48860e-02,-1.80230e-02,-2.55178e-03,1.70608e-02,-6.17571e-03,-2.62737e-02,-1.92481e-02,3.88547e-03,-5.69790e-02,-7.70702e-02,-2.35502e-03,-3.30038e-02,-9.18736e-03,6.91754e-03,-3.49332e-02,-4.44416e-02,-2.34395e-02,6.28199e-02,6.59048e-02,3.96472e-02,6.88293e-02,3.74643e-02,4.30692e-02,7.81301e-02,4.32547e-02,-2.23052e-02,2.32409e-02,-1.77337e-02,-1.69119e-02,-1.76537e-02,1.54299e-02,2.20700e-02,-1.29732e-03,-2.91419e-02,-6.88361e-03,-6.03149e-02,-4.34246e-02,-6.94031e-02,-4.45393e-02,-3.25271e-02,3.84484e-03,-8.88497e-02,-9.56171e-02,-4.24491e-02,4.30552e-02,6.02231e-02,1.15370e-01,2.55811e-02,6.82299e-02,5.05397e-02,5.70485e-02,3.92791e-02,-8.71192e-03,-2.95925e-02,-8.33578e-03,2.28529e-02,-3.06095e-02,-3.22891e-02,-1.05873e-02,2.71169e-02,2.90538e-03,-5.12764e-02,-2.86342e-02,-7.04679e-02,-3.66667e-02,7.33734e-03,-2.44900e-03,2.99566e-02,4.25582e-02,-3.95220e-02,-2.31871e-02,3.59865e-02,6.42131e-02,1.05448e-01,8.28002e-02,2.72642e-02,2.77119e-02,-1.28672e-02,4.60879e-02,7.18311e-02,8.57150e-03,2.54308e-02,-2.41871e-02,-3.69932e-02,-1.61416e-02,-7.07015e-02,-3.72317e-02,-3.67499e-02,-7.06498e-02,-8.83387e-02,-6.83794e-02,-3.42411e-02,4.84328e-03,2.40686e-03,5.42047e-02,1.42712e-01,1.55152e-01,6.64536e-02,-1.24906e-02,2.56000e-02,2.77637e-02,1.36604e-01,1.02618e-01,4.93206e-02,-4.48594e-02,-3.14435e-02,-2.47701e-02,3.14833e-02,1.80429e-02,-2.76047e-03,-9.67988e-03,-1.33576e-03,1.55443e-02,2.48467e-03,2.26520e-03,-8.26767e-02,-9.92610e-02,-4.02403e-02,-2.41605e-02,2.38442e-02,1.03317e-03,4.87489e-02,1.73428e-01,2.79453e-01,2.27659e-01,6.60843e-02,6.59467e-02,7.07211e-02,5.14099e-02,7.09659e-02,6.04583e-02,-1.08429e-02,-1.22948e-01,-1.36377e-01,-7.19568e-02,6.03880e-03,1.28620e-03,-1.72458e-02,-2.82117e-02,-1.81857e-02,-3.25366e-02,-1.84537e-02,-2.07909e-03,-4.18428e-02,-3.56346e-02,2.61468e-03,-1.27213e-02,2.08599e-02,5.47873e-02,9.40054e-02,2.11117e-01,2.42045e-01,2.11773e-01,6.10666e-02,5.86379e-02,3.37173e-02,-1.09331e-02,-6.63021e-02,-2.39916e-02,-8.89792e-02,-1.84107e-01,-1.45720e-01,-9.43572e-02,3.90101e-02,4.39450e-02,1.56570e-02,-7.56177e-03,3.36482e-02,2.52339e-02,1.00358e-02,5.09492e-02,2.52978e-02,3.26401e-02,7.22113e-03,2.08441e-02,3.36957e-02,2.28835e-02,1.11178e-01,1.55396e-01,2.26248e-01,1.03899e-01,-6.30666e-03,4.32274e-02,-3.70505e-02,-6.51863e-02,-4.42021e-02,-1.29534e-01,-1.51571e-01,-1.40614e-01,-1.30979e-01,-2.65461e-02,3.55326e-03,3.15452e-03,8.29726e-03,1.72436e-02,2.17651e-02,5.97069e-03,4.39209e-03,6.81060e-02,5.07887e-02,5.61830e-02,-3.04957e-02,3.24883e-04,1.23318e-03,4.23261e-02,7.35330e-02,1.76078e-01,1.10399e-01,1.58686e-02,-1.44210e-02,5.22157e-02,2.61180e-02,-2.27706e-02,-9.08474e-02,-9.11047e-02,-1.19178e-01,-7.65642e-02,-2.75417e-02,2.27939e-04,8.71826e-02,5.85852e-02,-7.60047e-03,2.23177e-02,1.72750e-02,2.20741e-02,6.97493e-02,7.25333e-02,4.83360e-02,3.87621e-02,2.73398e-02,1.22474e-02,3.92576e-03,-2.28388e-02,6.45846e-02,4.95023e-02,-3.33027e-02,-4.20337e-02,2.37665e-02,3.48100e-02,2.87752e-02,-3.87158e-02,2.63216e-02,1.42615e-02,-2.12636e-02,-2.81830e-02,-2.87393e-03,-9.62802e-03,6.08208e-02,5.33741e-03,-2.21777e-02,2.14460e-02,1.23271e-02,-1.96848e-02,5.59846e-02,1.16910e-01,1.17949e-01,1.29359e-01,5.06003e-02,1.97386e-02,-1.61667e-02,-3.08994e-03,-2.67658e-02,-4.99947e-02,-6.98227e-02,-1.07432e-01,1.61993e-02,1.05168e-02,9.28903e-03,2.51037e-02,7.63486e-02,1.44879e-02,4.64753e-02,9.31527e-02,8.20093e-02,7.19430e-02,3.93419e-02,2.06561e-02,2.69427e-02,9.22793e-03,7.08159e-03,3.86522e-02,6.96090e-02,7.73080e-02,1.40947e-01,1.15562e-01,8.74440e-02,3.83152e-03,-1.09527e-02,5.20879e-03,-6.76934e-02,-9.90555e-02,-9.26381e-02,-6.18477e-02,-2.01081e-02,4.30649e-02,9.81735e-02,1.20520e-01,6.15243e-02,6.39685e-02,8.33882e-02,9.22943e-02,1.36193e-01,5.50237e-02,-1.28070e-03,-1.90605e-02,3.87861e-04,-3.47717e-03,-1.87899e-02,2.11723e-02,3.50269e-02,1.15985e-01,9.44141e-02,1.31342e-01,1.02893e-01,3.39559e-02,-5.50411e-03,-7.29977e-02,-1.03509e-01,-1.31580e-01,-1.26256e-01,-1.06242e-01,-4.40945e-02,2.96214e-02,7.65247e-02,1.29070e-01,9.74364e-02,1.17033e-01,1.69872e-01,1.52861e-01,1.08695e-01,8.50309e-02,-8.46388e-03,3.33643e-03,2.58745e-02,1.07795e-02,-2.18148e-02,4.59214e-02,5.04457e-02,6.61542e-02,3.41259e-02,4.56178e-02,5.92888e-02,1.23005e-02,1.52359e-02,-6.35708e-02,-6.77662e-02,-1.07596e-01,5.39334e-03,-6.15956e-03,-3.17228e-03,2.62616e-02,2.17517e-02,8.97233e-02,1.18744e-01,9.24495e-02,1.04408e-01,9.94676e-02,5.81215e-02,4.97242e-02,3.63521e-02,-1.23206e-03,-3.43814e-02,1.21640e-02,1.65215e-03,-1.92315e-02,2.93227e-02,2.27343e-02,6.79608e-03,4.97285e-02,1.08036e-02,-3.17181e-02,2.51885e-02,1.06174e-02,6.86962e-02,5.23492e-02,7.04407e-02,2.95010e-02,-1.45876e-02,2.88400e-02,2.06300e-02,6.53588e-02,7.85014e-02,8.94046e-02,9.81068e-02,8.32995e-02,6.81139e-02,3.07089e-02,-2.21898e-03,2.05180e-02,-3.01679e-03,3.53984e-02,1.68913e-02,2.01523e-02,3.74773e-02,3.01574e-02,-5.95001e-02,-8.86270e-03,1.08333e-02,3.62698e-02,5.63023e-02,4.41079e-02,9.75938e-02,1.12507e-01,1.09655e-01,7.85767e-02,6.81501e-02,1.70862e-02,3.83531e-02,3.07856e-02,1.31014e-01,8.64394e-02,9.16757e-02,8.84140e-02,8.85554e-02,2.80181e-02,-1.70800e-02,-1.41884e-02,1.08352e-02,1.32758e-02,-2.99770e-02,2.31287e-02,2.08115e-02,-8.36681e-03,-7.40606e-02,-7.19456e-02,4.73400e-03,9.98212e-02,1.36458e-01,9.26875e-02,9.46099e-02,7.15250e-02,1.00923e-01,2.63237e-02,4.36860e-02,7.87359e-02,4.33849e-02,2.96109e-02,5.16115e-02,5.91674e-02,1.04896e-01,8.25743e-02,2.34445e-02,4.65566e-02,2.40843e-02,3.52091e-02,3.77058e-03,2.33152e-02,-2.53609e-02,-9.98409e-03,-2.53498e-02,-4.90661e-02,2.48954e-03,4.63493e-03,-2.85200e-02,6.03881e-02,1.43419e-02,8.19783e-02,6.18674e-02,4.31356e-02,2.17180e-02,2.47806e-02,2.59690e-02,2.23756e-02,6.79986e-02,7.47293e-02,4.12691e-02,7.08254e-02,5.56919e-02,3.39328e-03,1.11242e-02,2.03006e-02,-2.27234e-02,-1.72276e-02,2.06863e-03,-2.66999e-02,2.99879e-02,-1.55446e-02,3.51966e-02,1.87328e-03,3.88120e-02,-9.42761e-03,-3.08012e-02,2.59189e-03,1.03550e-02,-4.51059e-02,-1.94284e-02,1.43993e-02,-2.23458e-02,3.28745e-02,-7.57638e-03,-2.54803e-02,-1.04752e-02,6.19400e-03,-1.52906e-02,3.93051e-02,4.60509e-02,2.63441e-02,3.01882e-02,-1.61576e-02,7.11716e-03,5.00190e-03,-2.23777e-02,1.59457e-02,-7.69570e-03,-8.68565e-03,3.08883e-02,3.37888e-02,1.14034e-02,7.84612e-03,1.21427e-02,1.59759e-02,1.75594e-02,1.36883e-02,-1.60519e-02,2.04914e-02,-9.53146e-03,-2.93170e-03,4.59020e-03,1.09207e-02,-3.28704e-03,9.87542e-03,-2.13701e-02,2.08412e-02,-6.15907e-03,1.72305e-02,-1.32585e-02,-1.66208e-02,3.13426e-02,-1.30738e-02,-2.78512e-02, +-1.74010e-02,-1.61246e-03,2.70140e-02,1.99849e-02,2.12628e-02,1.44245e-02,-8.66149e-04,-2.80681e-02,-1.19537e-02,-3.41879e-02,2.16244e-02,-3.01241e-02,1.02600e-03,2.68953e-02,-2.16890e-02,-5.61065e-03,-1.20965e-02,2.55479e-02,2.50573e-02,-1.31390e-03,-5.64183e-03,7.17993e-03,-5.56796e-03,-1.24314e-02,-2.85111e-02,-3.69728e-03,1.20120e-02,3.50746e-03,6.84272e-04,-1.19368e-02,3.51788e-02,2.75967e-03,2.29613e-03,9.65086e-03,-1.34986e-02,1.09859e-02,2.61118e-03,-9.18394e-03,-3.58982e-02,-2.27672e-02,-6.15453e-04,9.65381e-03,-1.04072e-02,6.62517e-03,2.78952e-02,6.42076e-03,2.15182e-02,1.13502e-02,-2.79136e-02,-1.59122e-02,-5.13453e-03,2.94344e-02,-9.92944e-03,1.93319e-02,-6.16513e-04,7.09885e-03,3.10039e-02,-2.72242e-03,-1.43232e-02,-1.43547e-03,2.61127e-02,3.52849e-02,2.89231e-02,4.69025e-03,-6.35718e-03,-1.12331e-02,-3.95377e-02,4.88592e-03,-4.74427e-02,-5.84408e-02,-7.64022e-02,-8.14831e-02,-4.85331e-02,-5.96812e-02,-4.27406e-02,-3.09188e-02,-1.77567e-02,-5.14732e-02,-4.82668e-02,1.34188e-02,-1.55629e-02,3.27334e-02,2.39299e-02,-5.64472e-03,-1.30612e-02,-2.91208e-02,1.77428e-02,-2.94659e-02,5.42180e-03,3.05748e-02,-3.62892e-02,-8.79640e-03,-4.12447e-03,7.22467e-03,-1.60921e-02,3.99261e-02,-1.76515e-02,-6.11414e-02,-7.37555e-02,-6.79077e-02,-6.20734e-02,-4.40073e-02,-7.86757e-02,-5.82632e-02,-3.48497e-02,-5.72154e-02,-5.79550e-03,7.55650e-03,1.26255e-03,3.30421e-02,-2.63952e-02,-2.65227e-02,3.28540e-02,3.45425e-02,5.83897e-03,1.85390e-02,-6.90875e-03,2.99341e-02,3.87728e-02,3.09446e-02,8.91327e-02,1.19210e-01,6.94688e-02,6.02297e-02,7.88383e-02,3.00882e-02,-1.26817e-02,-3.53373e-02,-5.79179e-02,-6.14787e-02,-6.95790e-02,-1.12898e-01,-1.12254e-01,-1.26279e-01,-7.59964e-02,-5.23175e-02,-2.97483e-02,2.45207e-02,3.09546e-02,-9.61948e-03,4.21101e-03,3.11612e-02,2.40390e-02,1.35915e-04,4.63141e-02,4.35402e-02,1.16877e-01,9.16893e-02,9.09296e-02,1.27584e-01,9.41812e-02,1.00848e-01,5.65328e-02,8.66217e-02,1.39487e-02,1.39837e-02,2.39441e-02,-4.30673e-02,-6.48328e-02,-1.05145e-01,-1.59901e-01,-1.28651e-01,-9.92992e-02,-8.07931e-02,-1.94021e-02,6.32692e-03,1.27180e-02,-3.08918e-02,-3.51100e-02,2.82207e-02,-2.22638e-02,9.96107e-03,8.12029e-02,8.56901e-02,1.13315e-01,5.22538e-02,9.87571e-02,8.77668e-02,1.27604e-01,1.04129e-01,7.05859e-02,1.34871e-01,1.61723e-01,1.98438e-01,1.36532e-01,1.21164e-01,5.94897e-02,-7.00165e-02,-7.46055e-02,-1.02408e-01,-1.49904e-01,-1.11353e-01,-6.03470e-02,-1.46004e-02,-3.08672e-03,-3.43560e-02,-4.92348e-03,-6.38311e-03,-7.38256e-03,-3.31206e-03,6.50832e-02,7.92700e-02,4.27935e-03,-4.27969e-03,2.53209e-02,3.11689e-02,7.98861e-02,9.20324e-02,1.14880e-01,1.76294e-01,2.25468e-01,2.32383e-01,1.91362e-01,1.19478e-01,3.37840e-02,-2.53198e-02,-2.25643e-02,-8.11684e-02,-1.06190e-01,-1.42835e-01,-9.97518e-02,-6.30547e-02,6.38684e-03,2.00679e-02,-1.39056e-02,3.58825e-02,9.65419e-03,-2.07923e-02,5.88752e-02,4.33409e-02,-3.13340e-02,-6.54359e-02,-1.61654e-02,-2.75888e-02,-8.83643e-03,-2.37508e-02,5.55958e-03,1.10433e-01,1.20507e-01,1.70544e-01,1.21343e-01,3.90977e-02,8.33369e-02,2.94270e-02,2.37889e-02,-7.64000e-02,-1.18711e-01,-1.81918e-01,-1.48098e-01,-2.57839e-02,-3.54772e-02,-3.12994e-02,-4.19724e-03,1.22241e-02,2.00292e-02,4.31681e-03,-3.56253e-03,-2.83389e-02,-7.35187e-02,-1.15516e-01,-7.43811e-02,-8.41509e-02,-1.30273e-01,-1.43707e-01,-1.00474e-01,-7.96309e-03,4.70912e-02,1.35834e-01,1.25128e-01,1.05308e-01,7.63532e-02,5.87601e-02,6.09399e-02,-5.58337e-02,-4.90552e-02,-1.34606e-01,-1.03357e-01,-4.14047e-02,-2.43148e-02,-2.04935e-02,1.84761e-02,-1.59842e-02,2.34995e-02,2.07374e-02,-1.35329e-02,-5.01594e-02,-1.24364e-01,-1.80612e-01,-1.25226e-01,-1.48942e-01,-1.84613e-01,-1.60279e-01,-1.75540e-01,-9.36687e-02,-4.25546e-02,-2.15311e-02,1.00218e-01,1.12169e-01,1.07656e-01,9.45183e-02,5.66968e-02,4.54829e-02,-1.37834e-02,-1.38673e-01,-1.29126e-01,-7.07408e-02,1.19089e-02,-3.60271e-03,3.26885e-02,3.16356e-02,-2.48966e-02,2.17855e-02,-2.06020e-02,-8.78491e-02,-1.40949e-01,-1.78089e-01,-1.43667e-01,-1.26252e-01,-1.26794e-01,-7.04956e-02,-6.55513e-02,-1.00853e-01,-9.77763e-02,-2.16791e-03,4.90987e-02,1.70107e-01,1.33810e-01,1.43286e-01,9.29370e-02,3.22535e-02,-6.29701e-02,-8.59303e-02,-6.36994e-02,-1.67930e-02,-4.03554e-02,1.66114e-02,-1.24935e-02,-1.16348e-02,-1.90593e-02,3.08449e-02,-5.01927e-03,-7.76794e-02,-1.01314e-01,-1.51388e-01,-1.04705e-01,-3.28155e-02,2.59751e-03,-1.36164e-02,-1.20814e-01,-7.46760e-02,-3.76051e-02,3.52863e-02,9.69111e-02,1.31554e-01,1.22272e-01,1.00438e-01,4.07238e-02,-8.02290e-03,-8.31250e-02,-1.10060e-01,-8.57893e-02,2.02925e-02,-2.58138e-02,2.69949e-02,-1.57137e-02,6.84964e-03,-1.97276e-02,4.12486e-02,3.44105e-02,-8.37370e-02,-1.13028e-01,-5.10791e-02,-3.02291e-03,-1.21027e-02,3.10933e-02,5.72387e-03,-2.18690e-02,4.60740e-03,2.75260e-02,5.20100e-02,1.24978e-01,1.46935e-01,1.08940e-01,2.43044e-02,2.06618e-02,-9.64019e-03,-1.31850e-01,-1.12647e-01,-8.13104e-02,-3.42598e-02,-2.33435e-02,5.80718e-03,-4.67560e-04,-2.07339e-02,-1.22709e-02,2.90856e-02,1.51476e-02,1.19835e-02,2.22871e-03,5.12247e-02,5.68307e-02,7.96869e-02,4.30347e-02,2.12191e-02,5.78013e-02,3.98386e-02,1.42696e-02,8.81207e-03,9.43705e-02,1.39794e-01,1.39777e-01,1.89127e-02,-1.55750e-02,-9.35761e-03,-5.09934e-02,-1.00546e-01,-6.10755e-02,2.03299e-02,-2.70004e-02,2.15101e-02,-2.03923e-02,1.79782e-02,-2.70057e-02,3.12054e-02,3.21673e-02,1.27117e-02,1.45972e-02,6.57298e-02,5.64551e-04,-1.58670e-02,2.88897e-03,5.11813e-02,5.47127e-02,4.44446e-02,-5.03187e-02,4.80883e-02,1.17296e-01,1.59993e-01,7.42668e-02,1.36074e-02,3.23734e-02,-4.68239e-02,-1.01147e-02,-5.69109e-02,-7.29219e-04,-3.09170e-02,1.13822e-02,-2.55334e-02,-3.12223e-02,-8.16540e-03,-1.75727e-02,5.28555e-02,4.36628e-02,2.18880e-02,6.62210e-02,4.20895e-02,-1.38810e-02,-3.67787e-02,-3.58867e-02,-3.28592e-02,3.83715e-02,4.72458e-02,-3.03544e-02,8.76475e-03,9.53081e-02,1.14399e-01,6.09681e-02,4.44346e-02,6.48981e-03,1.96770e-02,2.75452e-02,-6.14490e-02,2.83656e-03,4.58940e-02,2.05443e-02,-1.15548e-02,-9.78017e-03,3.46407e-02,2.50142e-02,7.08041e-02,7.26065e-02,2.15276e-02,8.18918e-03,-2.07648e-02,-4.06742e-02,-1.03299e-01,-1.11780e-01,-9.48166e-02,-2.08402e-02,2.27541e-03,-4.61986e-02,3.96583e-02,-1.40072e-02,4.86284e-02,-2.41287e-02,-5.12164e-03,-5.39773e-02,7.21079e-03,-8.36993e-03,-4.10299e-02,-2.51311e-02,4.87768e-02,2.66801e-02,3.33614e-02,-2.66302e-02,-1.03838e-03,9.25663e-03,6.88481e-02,8.20567e-02,8.96819e-03,1.51152e-02,-4.42554e-02,-1.38452e-01,-1.71148e-01,-1.40869e-01,-1.54438e-01,-1.37915e-01,-1.01080e-01,-8.69714e-02,-3.65370e-02,-3.03361e-02,1.67172e-02,1.46193e-02,1.69960e-02,-1.65392e-02,1.86755e-02,1.16377e-02,-1.40782e-02,-3.71526e-02,5.67293e-02,2.19086e-02,2.83634e-02,1.19014e-02,-1.63513e-02,-1.12684e-02,1.25191e-01,1.14270e-01,1.60331e-02,-3.43708e-02,-9.77223e-02,-9.48278e-02,-1.42544e-01,-1.09380e-01,-1.62533e-01,-1.77558e-01,-1.27119e-01,-1.11893e-01,-1.16593e-01,-5.82698e-02,-5.76398e-02,-1.92235e-02,9.73365e-03,-1.14460e-02,1.09161e-03,-7.82790e-02,-4.14426e-02,2.61945e-02,5.17093e-02,1.61560e-02,-1.72922e-02,2.74134e-02,-3.52843e-02,3.41519e-02,8.30631e-02,1.18284e-01,1.50052e-02,-8.40223e-02,-5.29240e-02,-2.47314e-02,-3.04933e-02,-4.90914e-02,-8.16491e-02,-1.41045e-01,-1.47105e-01,-1.33842e-01,-8.61631e-02,-2.70995e-02,-6.83621e-02,-4.74487e-02,5.41081e-02,4.77280e-03,-6.38224e-03,-8.62051e-02,-3.69131e-02,7.25339e-03,1.97214e-02,-1.12957e-02,1.14445e-02,2.28033e-02,-2.17538e-02,4.08404e-02,5.66194e-02,5.46045e-02,1.61588e-02,-9.18169e-02,-9.03392e-02,-1.81427e-02,-5.21791e-02,8.49751e-03,-3.54225e-02,-4.84220e-02,-5.22415e-02,-9.32527e-02,-1.68134e-02,-1.81311e-02,-3.80880e-02,-4.07143e-03,-8.76301e-03,-2.64346e-02,-7.68906e-02,-5.33439e-02,-3.08770e-02,2.89461e-02,-2.69745e-02,-1.75015e-02,-3.39570e-02,-5.39765e-03,2.89793e-02,2.39815e-02,5.36750e-02,5.06718e-02,3.47530e-02,-3.89511e-02,-4.88035e-02,-6.16488e-02,2.02180e-02,-2.90397e-02,8.81111e-03,-9.29371e-03,3.07039e-03,3.71324e-03,-6.37343e-03,-6.16249e-03,1.19552e-03,-5.73255e-02,2.13240e-02,-1.05953e-02,-2.26958e-02,2.11523e-02,-8.87439e-03,-1.12138e-02,-2.55538e-03,-8.24710e-03,2.99756e-02,1.83275e-02,-2.29450e-02,3.43671e-02,-1.13409e-03,2.80495e-02,6.84971e-02,7.83485e-02,9.36688e-02,3.98881e-02,-3.33112e-02,-1.04052e-02,2.39695e-02,1.80140e-02,3.46570e-02,6.67278e-04,-3.32736e-02,-5.36798e-02,8.51257e-03,1.09498e-02,8.95462e-03,-2.36051e-02,-9.46829e-03,-3.77604e-03,9.65651e-03,-2.10157e-02,-3.33935e-02,3.14810e-02,1.41521e-02,-4.73877e-03,-3.16257e-02,-2.29272e-02,-2.05559e-02,4.22802e-02,1.12122e-01,1.10430e-01,1.48629e-01,1.25048e-01,1.11570e-01,1.05998e-01,5.17158e-02,2.56288e-03,3.86843e-02,6.00447e-03,-2.74237e-02,-2.74258e-02,-4.84812e-03,-1.96759e-02,-1.87962e-02,6.05832e-03,5.16927e-02,4.26808e-02,6.01902e-03,-2.05938e-02,6.82388e-03,8.55066e-03,3.46501e-02,-5.89027e-03,5.27670e-03,8.32082e-03,1.51807e-02,3.86021e-02,2.96000e-02,1.07757e-01,1.11860e-01,1.75682e-01,1.21944e-01,1.93423e-01,1.65470e-01,1.26711e-01,8.27307e-02,5.78113e-02,6.21725e-02,5.49868e-02,7.27576e-02,6.60459e-02,1.00078e-01,1.03786e-01,6.59487e-02,7.16287e-03,-1.23554e-02,2.08765e-02,-1.92246e-02,-1.35219e-02,-2.08964e-02,-3.56112e-02,3.21459e-02,2.29042e-02,1.46310e-02,3.00331e-02,4.06962e-02,4.76078e-02,4.96316e-03,6.05803e-02,4.91775e-02,9.62853e-02,9.23753e-02,7.78625e-02,6.16513e-02,1.23455e-01,4.07484e-02,5.03403e-02,6.84146e-02,5.36729e-02,8.60039e-03,8.81376e-03,2.45658e-02,-3.23720e-03,-2.80311e-02,2.07146e-02,2.63252e-02,-3.45307e-03,1.80876e-02,7.40797e-03,1.98296e-02,2.25943e-04,1.08226e-02,2.48222e-02,-1.11000e-02,2.64823e-02,1.31058e-02,-2.64703e-02,2.99398e-02,-1.15758e-02,-3.32618e-02,-3.89620e-03,-3.00942e-02,-9.94385e-04,-5.89155e-03,-2.40858e-02,3.16111e-02,2.45209e-02,1.94689e-02,3.43830e-02,-1.25546e-02,1.50052e-02,2.65830e-02,2.85884e-02,1.30760e-02,1.63755e-02,3.22549e-02, +2.98359e-02,-2.84757e-02,2.93356e-02,-1.40324e-02,2.31636e-02,-3.48084e-02,3.18603e-02,2.97835e-02,-1.01959e-02,3.26112e-02,7.19223e-03,-2.35627e-02,1.62176e-02,-1.96648e-02,-1.86123e-02,3.07379e-02,1.07316e-03,-1.94139e-02,-3.41880e-02,-1.82960e-03,4.04209e-03,-6.21571e-03,1.61133e-03,2.92246e-02,-3.26215e-02,8.29482e-03,-4.11535e-03,-3.14700e-02,-3.47036e-02,-1.65286e-03,-3.44106e-02,3.53213e-02,-3.06001e-02,-9.25039e-04,5.26104e-03,-1.19593e-02,4.42735e-02,3.13281e-03,-5.64339e-03,4.01479e-02,3.34652e-02,6.38375e-03,-2.55639e-02,7.77556e-03,8.19416e-03,9.28112e-06,2.84045e-02,3.80136e-03,1.44990e-02,3.36265e-02,6.00236e-03,3.66990e-02,1.49952e-02,-2.67088e-02,1.79177e-02,-1.47752e-02,2.81977e-02,1.01710e-02,-2.15684e-02,-2.15544e-02,-3.54038e-02,-3.38825e-02,-1.63476e-02,2.31557e-02,1.48062e-02,4.01143e-02,2.14907e-02,8.38412e-02,9.47980e-02,1.22713e-01,9.39972e-02,1.40585e-01,1.07181e-01,9.60169e-02,5.69014e-02,8.16667e-02,3.31959e-02,3.91969e-02,3.13570e-03,3.89483e-02,-1.01975e-02,2.39888e-02,3.42421e-02,-1.79755e-02,8.07076e-03,7.24338e-03,-1.43143e-04,1.65577e-02,3.24286e-02,4.74760e-03,2.05533e-02,4.92779e-02,1.94053e-02,1.04755e-01,1.14246e-01,1.38007e-01,2.37057e-01,2.36135e-01,1.98235e-01,1.96144e-01,1.89363e-01,1.58867e-01,8.81455e-02,9.72472e-02,1.21227e-02,-1.50415e-02,1.71351e-02,3.91066e-02,3.19255e-02,2.60831e-02,2.33946e-03,-1.26924e-02,-2.65492e-02,-2.54717e-02,1.11259e-02,-1.14063e-03,-6.11092e-03,-1.16332e-03,2.21603e-02,2.51028e-02,7.48654e-02,1.55486e-01,1.45853e-01,1.54761e-01,1.42951e-01,1.54424e-01,1.62980e-01,1.20474e-01,8.57443e-02,1.34630e-01,1.14058e-01,7.27024e-02,-1.02196e-02,1.13375e-02,-6.97753e-02,-8.22644e-02,-1.44417e-02,-2.12869e-02,1.81306e-02,1.92610e-02,-1.50972e-02,-2.18961e-02,2.03552e-02,2.80912e-02,5.11445e-03,9.93676e-03,2.41059e-02,2.99014e-02,5.38016e-02,4.68515e-02,3.79805e-02,-3.53410e-03,1.05236e-02,4.06416e-02,6.10884e-02,5.65897e-02,1.12775e-01,7.87774e-02,1.10793e-01,4.88753e-02,1.89219e-02,2.38764e-02,-3.92904e-02,-1.06518e-01,-4.36239e-02,-4.60849e-02,-1.66707e-02,-2.59262e-02,-2.62012e-03,-1.14982e-02,3.34040e-02,-1.14291e-02,-2.44393e-04,-3.77738e-02,-4.85261e-02,-1.82817e-02,-1.38420e-02,-2.80206e-02,2.87312e-02,-4.85969e-03,3.16006e-02,-9.16586e-03,-3.24571e-04,2.52619e-02,-2.02863e-02,2.85381e-03,1.54310e-02,-3.37465e-02,6.68553e-03,-2.20717e-02,-5.17710e-02,-6.74396e-02,-2.36483e-02,-5.26986e-03,-2.48345e-03,-1.72867e-02,2.90873e-02,-2.42579e-02,-3.28001e-04,1.40306e-02,4.66215e-02,-7.19729e-03,5.38553e-03,-5.86336e-02,-4.88184e-02,-2.92813e-02,1.54594e-02,2.72056e-02,6.69731e-02,5.75439e-04,2.59372e-02,-5.77525e-03,-2.34375e-02,-3.85280e-02,-7.24577e-02,-3.60980e-02,-1.05723e-02,-2.80275e-02,5.98870e-03,-5.86961e-02,1.34244e-02,2.04621e-02,-1.15120e-02,-2.16462e-02,-2.78826e-02,-4.83912e-03,1.23543e-02,4.14555e-02,9.06958e-03,2.63691e-02,3.01706e-02,-1.19693e-02,-9.14142e-03,3.10852e-02,3.00251e-02,6.31289e-02,8.05311e-02,7.04638e-02,8.62859e-02,2.29989e-02,-1.38536e-02,-5.90911e-02,-4.59128e-02,1.33649e-02,1.43840e-02,-3.34541e-02,6.70580e-02,-2.46257e-02,-6.19361e-03,4.93744e-03,2.10497e-02,-3.38455e-03,-2.78965e-02,-1.95773e-02,8.17557e-03,2.54920e-03,4.97326e-02,2.58127e-02,-6.95437e-03,3.90044e-02,-8.38578e-03,4.23041e-02,2.56534e-02,1.69247e-02,3.21613e-02,7.60809e-02,1.00949e-01,6.24002e-02,3.38169e-02,-2.32720e-02,-5.95544e-02,-1.02947e-01,-1.64613e-02,-9.67886e-03,4.43993e-02,4.55522e-02,-8.63773e-03,2.71203e-02,4.37686e-02,1.69677e-02,3.03371e-02,1.31059e-02,1.92130e-02,2.76982e-02,2.21357e-02,3.72313e-02,7.95694e-03,3.92883e-02,-3.31436e-02,-4.11087e-02,8.09795e-03,-5.36141e-02,-9.26161e-02,2.97081e-02,8.00390e-02,5.89143e-02,-6.72142e-03,-8.89145e-02,-5.25050e-02,-9.48409e-02,-8.91570e-02,-8.34215e-03,8.63583e-03,1.06193e-01,8.91019e-02,2.84243e-02,2.60924e-02,-2.85306e-02,-8.82982e-03,-1.66923e-02,-2.29623e-02,9.95574e-03,-2.94498e-02,-2.27725e-02,-1.11424e-02,-4.52488e-02,-7.62594e-02,-4.32308e-02,-9.03362e-02,-1.44358e-01,-1.40287e-01,-1.84386e-02,5.45110e-02,-8.96330e-03,-6.99652e-02,-1.03883e-01,-8.56229e-02,-8.36341e-02,-3.25617e-02,-2.05010e-02,1.04149e-02,8.27755e-02,9.70306e-02,3.04763e-02,3.06528e-02,-2.49252e-02,-1.28273e-02,9.07287e-03,1.02717e-02,-4.30678e-02,-3.61309e-02,-1.03390e-01,-1.53299e-01,-1.01074e-01,-1.39902e-01,-1.41043e-01,-1.55205e-01,-1.39424e-01,-9.88155e-02,2.61114e-02,1.43090e-01,4.76818e-02,-6.63860e-02,-3.42678e-02,-9.68734e-02,-8.97508e-02,-4.12699e-02,-4.69175e-02,7.88037e-03,7.20154e-02,1.09734e-01,7.32039e-02,-1.88535e-02,-1.35033e-02,-4.72241e-03,3.45580e-02,-5.64284e-03,-2.69125e-02,-9.67461e-02,-1.79922e-01,-1.92085e-01,-1.99727e-01,-1.46076e-01,-1.30078e-01,-1.40690e-01,-1.13171e-01,-2.95793e-02,1.62098e-01,1.34362e-01,4.89858e-02,-4.01664e-02,-5.91797e-02,-5.50575e-02,-4.40824e-02,-5.87177e-02,-3.04300e-02,-2.37198e-02,5.93093e-02,1.11906e-01,4.29290e-02,1.90000e-02,6.92628e-03,8.25583e-03,5.93024e-04,-5.74473e-03,-1.41939e-02,-1.44106e-01,-2.01391e-01,-1.70655e-01,-1.47707e-01,-1.39151e-01,-1.24640e-01,-7.18461e-02,-7.45614e-02,5.35951e-02,1.73411e-01,1.98012e-01,1.13448e-01,-3.37114e-02,-9.28576e-02,-7.10140e-02,-3.87020e-02,-7.75605e-02,-3.79883e-02,-3.90841e-02,1.45645e-02,7.49280e-02,2.85648e-02,3.89253e-03,2.71921e-03,4.41971e-03,-1.13072e-02,-1.10992e-02,-1.03762e-02,-1.08600e-01,-1.06370e-01,-1.21212e-01,-1.16964e-01,-1.09356e-01,-8.88411e-02,-4.17657e-02,3.62649e-02,1.22016e-01,2.40544e-01,2.26556e-01,7.18307e-02,-9.64404e-02,-1.23606e-01,-7.26518e-02,-2.62477e-02,-2.81161e-02,-9.06867e-04,-2.46839e-02,6.61414e-03,4.00384e-02,4.69344e-02,1.87282e-02,-1.34478e-02,-5.08610e-03,1.01031e-02,8.05201e-03,7.08875e-03,-4.09554e-02,-4.29994e-02,-8.28068e-02,-6.74993e-02,-1.26907e-01,-6.69648e-03,7.68551e-02,1.36246e-01,1.65968e-01,2.16870e-01,1.76258e-01,-1.41196e-02,-5.78040e-02,-1.16768e-01,-6.96112e-02,-4.19127e-02,-3.76205e-02,-1.12293e-02,-1.92371e-02,5.62747e-02,1.30871e-01,1.24267e-01,7.39989e-03,1.09367e-02,1.54451e-02,1.06960e-02,3.98391e-02,4.26558e-02,9.59362e-03,-2.35821e-02,-6.00207e-03,-5.96450e-02,-2.27267e-02,-1.48296e-02,1.27689e-01,1.46241e-01,1.65905e-01,1.23812e-01,9.58011e-03,-6.98019e-02,-5.86393e-02,-1.47952e-02,1.42299e-02,3.31417e-02,-4.73030e-02,-1.32133e-02,4.91807e-02,5.79492e-02,1.16261e-01,8.89103e-02,3.63485e-02,-1.48663e-02,9.82687e-03,-3.48482e-02,4.19399e-03,4.37023e-02,4.65522e-02,-1.87200e-05,1.73149e-02,2.30757e-02,3.57707e-02,5.98317e-02,1.66390e-01,2.02326e-01,1.59205e-01,1.20343e-01,-2.94994e-02,-2.97521e-02,7.48576e-02,7.33514e-02,1.32244e-01,5.05096e-02,1.36750e-02,-4.73586e-04,1.08712e-01,1.06501e-01,1.41109e-01,7.95497e-02,4.72459e-03,2.31859e-03,3.08126e-02,2.82136e-02,-1.46221e-02,4.24613e-02,5.53615e-02,5.29399e-04,5.12588e-02,8.93569e-02,1.08789e-01,1.93386e-01,2.46599e-01,2.64975e-01,2.03189e-01,1.48157e-01,4.49676e-02,7.34569e-02,1.28796e-01,1.50881e-01,1.45014e-01,1.20818e-01,8.89658e-02,2.13572e-02,1.23282e-01,1.54856e-01,1.13692e-01,2.91337e-02,1.38742e-03,1.65422e-02,-4.50150e-03,-1.69323e-02,7.86774e-03,4.66232e-02,9.17281e-02,4.21840e-02,8.75766e-02,1.89977e-01,1.70230e-01,2.01774e-01,2.47798e-01,2.39751e-01,1.87086e-01,1.53716e-01,1.63081e-01,1.32055e-01,1.18364e-01,1.31862e-01,1.25013e-01,1.13407e-01,7.04678e-02,5.15584e-02,7.79646e-02,9.46791e-02,1.07944e-01,2.28063e-02,1.94781e-02,2.24032e-03,-1.59229e-02,3.20845e-02,3.53606e-02,7.53287e-02,7.26404e-02,7.59577e-02,1.12043e-01,1.43608e-01,9.35602e-02,1.57603e-01,1.61754e-01,1.27666e-01,1.46725e-01,1.13391e-01,1.13965e-01,1.18107e-01,4.17074e-02,9.98833e-02,9.62982e-02,5.61784e-02,1.93366e-02,1.99183e-02,5.17341e-02,9.87170e-02,6.70905e-02,-1.13463e-02,-2.26592e-02,-2.04865e-02,-2.35274e-02,2.89068e-02,-3.10654e-03,2.77594e-02,1.03177e-01,1.46298e-01,1.41218e-01,1.00796e-01,6.57345e-02,5.37106e-02,1.88093e-02,4.85425e-02,5.35811e-03,1.47949e-02,1.40382e-02,3.82740e-02,-4.39427e-03,7.64262e-03,4.91711e-02,3.92764e-02,-3.84607e-03,2.07747e-02,3.51307e-02,-9.77716e-03,3.75951e-02,1.28442e-02,-7.66492e-03,2.79709e-02,5.59648e-03,-2.88520e-03,3.84726e-03,3.83056e-02,1.72035e-02,5.95653e-02,5.62841e-02,4.98746e-03,4.24750e-02,6.75445e-02,-1.88768e-02,-2.10396e-02,1.94405e-02,-1.94838e-02,-9.72032e-03,-2.38020e-02,-4.10839e-02,-2.53044e-02,-8.95763e-03,1.43458e-02,-5.68782e-02,1.13441e-02,-7.85190e-03,-1.89689e-02,-2.67137e-02,-1.21425e-02,-2.52983e-02,-2.22254e-02,-1.28608e-02,-3.18816e-02,2.64958e-02,4.24892e-03,9.47951e-03,-4.00413e-02,-2.39368e-02,-1.87453e-02,-1.58233e-02,-3.09303e-03,1.26854e-02,-2.64529e-02,4.21243e-02,1.30516e-02,5.80347e-02,-1.38225e-02,-2.10175e-02,-2.40261e-02,-3.57135e-02,-7.35692e-02,-4.31866e-02,-3.08767e-02,-1.55891e-02,-2.35620e-02,2.67220e-02,2.08542e-02,-3.35258e-02,1.65560e-02,-3.24955e-03,-1.57624e-02,-4.23921e-03,-1.20594e-02,1.08152e-03,-1.71819e-02,-5.59115e-02,-6.54482e-02,-2.14852e-02,-8.47268e-03,-3.30537e-02,2.80342e-02,8.00615e-03,-6.90655e-02,-6.71766e-03,3.84750e-03,-4.61167e-02,-3.38104e-02,-1.90092e-02,-4.15763e-02,-5.12443e-02,-3.51500e-02,-5.46671e-02,5.25103e-03,2.00469e-02,-3.19697e-02,-2.01429e-02,-3.00170e-02,1.62456e-02,-4.68671e-03,-1.29110e-02,1.51375e-02,-3.06799e-03,1.54526e-02,-4.26189e-02,-2.05465e-02,-4.17514e-02,1.08934e-02,2.73099e-03,-2.80023e-02,-2.01373e-02,-3.96802e-02,-8.65130e-02,-5.36685e-02,-5.66716e-03,8.51048e-03,-3.15905e-02,-2.03782e-02,-2.80390e-02,1.13705e-02,9.68377e-03,-2.28741e-02,2.00299e-02,-2.57279e-02,-1.06401e-02,-3.64003e-03,4.01973e-03,1.87979e-02,1.52498e-02,-2.08312e-02,7.08635e-03,-2.98715e-02,-8.78346e-03,1.44271e-02,3.24563e-02,2.70161e-02,1.80691e-03,1.71510e-02,2.12649e-02,-2.85461e-02,1.41830e-02,1.23022e-02,2.88583e-02,-2.95162e-02,2.93984e-02,2.72012e-02,-4.06510e-03,-3.26788e-02,2.39096e-02,2.53098e-02,-1.81461e-02,2.79656e-02,-1.42389e-03,-1.48129e-03, +2.55691e-03,8.11797e-03,-3.00011e-02,1.54672e-02,1.78655e-02,-3.40858e-02,1.56365e-02,-1.96545e-02,5.95510e-03,-2.31726e-03,-8.51549e-03,8.37177e-03,4.38091e-03,4.18438e-03,2.33485e-02,-3.30839e-02,3.00450e-02,1.09490e-02,-8.37467e-03,-1.19944e-02,-1.09176e-02,-2.41812e-02,-2.05905e-03,-3.34147e-02,-1.28667e-02,2.72311e-03,2.66511e-02,2.72993e-02,1.89720e-02,-2.56846e-02,-1.05897e-02,3.86366e-03,2.92889e-02,-9.89612e-03,-3.48225e-02,3.05571e-02,5.28314e-03,-3.04359e-03,-3.53035e-03,-4.39263e-03,2.97728e-02,5.98359e-03,-8.10633e-03,3.68714e-02,9.03187e-03,-2.79585e-02,-1.01997e-02,2.08214e-02,5.05779e-03,-2.79833e-02,1.61745e-02,-3.53503e-02,-2.95493e-02,-2.71987e-02,-6.92869e-03,3.08484e-02,1.60821e-02,-2.88640e-02,-6.41799e-03,3.12533e-02,-2.22728e-03,-8.23219e-03,-1.69114e-02,-3.66996e-02,3.69874e-03,1.87368e-02,1.89718e-02,3.14187e-03,-4.41302e-04,1.86517e-02,-2.19142e-02,-4.28819e-02,-5.81935e-02,-2.56603e-03,-2.96742e-02,-6.22931e-02,-1.30170e-02,-9.66100e-03,-1.69135e-02,-3.19415e-02,-1.19087e-02,-3.21456e-02,5.78105e-03,3.13218e-03,-2.24687e-02,5.03361e-03,2.12428e-02,-2.73581e-02,-2.80921e-02,4.68459e-03,2.56114e-02,4.98980e-03,-4.48153e-03,2.83726e-02,-9.68759e-04,5.17599e-02,7.75467e-03,1.45192e-02,1.92832e-02,6.03381e-03,-6.33905e-02,-5.61508e-02,-5.47081e-02,-8.62017e-02,-5.38477e-02,-7.35585e-02,-8.10807e-02,-2.36435e-02,-1.30483e-04,1.57567e-02,-1.78075e-02,-1.53230e-02,1.90459e-02,2.09910e-02,2.44165e-02,-2.55470e-02,-1.69140e-02,8.98005e-03,1.05124e-02,1.47858e-02,1.88053e-02,6.33999e-02,4.57560e-02,1.04478e-01,1.31976e-01,1.52311e-01,8.31146e-02,1.00207e-01,6.51585e-02,8.42744e-02,1.38201e-02,-4.63943e-02,-6.11003e-02,-7.29955e-02,-1.16519e-01,-3.63676e-02,-1.39675e-02,-3.16014e-02,1.91689e-02,-3.16727e-02,-1.09256e-02,-2.81888e-02,2.85920e-02,-1.12325e-02,-2.39769e-02,1.21443e-02,6.38843e-02,3.48498e-02,2.60869e-02,3.87950e-02,9.79269e-02,5.99263e-02,1.18874e-01,1.44818e-01,1.70796e-01,1.64522e-01,2.10628e-01,1.72400e-01,1.13227e-01,-1.52818e-02,-5.74568e-02,-5.11953e-02,-1.03363e-01,-7.97855e-02,-1.07244e-01,-3.96930e-02,-2.79109e-02,2.21117e-02,2.39646e-02,2.66096e-02,-4.50776e-04,-1.85671e-02,3.07151e-02,2.17297e-02,9.02840e-02,6.22239e-02,2.31777e-02,3.22375e-02,1.00812e-01,1.10956e-01,8.11772e-02,1.41225e-01,1.45248e-01,1.58125e-01,1.17986e-01,1.32992e-01,1.04707e-01,2.94691e-02,4.12963e-02,1.46875e-02,-2.28820e-02,-8.83963e-02,-1.69839e-01,-6.61769e-02,4.96984e-03,-2.19560e-02,9.50418e-03,-5.89473e-03,2.79703e-02,1.31654e-02,5.46780e-02,3.91785e-02,8.01300e-02,6.86093e-03,-6.42942e-03,4.90471e-02,6.14789e-02,5.96556e-02,1.26481e-01,8.47674e-02,8.78311e-02,6.76877e-02,7.90924e-02,9.60728e-02,1.20609e-01,7.75313e-02,6.27595e-02,8.27328e-02,-1.33068e-02,-7.56039e-02,-1.10766e-01,-1.34494e-01,-1.69803e-03,2.55908e-02,1.54403e-03,-1.67239e-02,2.78291e-03,-1.40279e-04,5.26573e-02,3.64553e-02,1.51351e-02,-3.23278e-02,-3.80215e-02,1.82480e-02,1.26419e-02,2.44106e-02,2.41791e-02,1.30304e-02,5.38288e-02,8.24676e-02,1.53068e-01,1.63208e-01,1.59012e-01,1.85343e-01,1.45477e-01,8.57824e-02,1.02245e-01,-3.40980e-02,-1.04273e-01,-1.22937e-01,-5.44430e-02,3.68309e-03,5.86887e-05,7.20041e-03,3.93219e-02,2.90992e-02,4.64177e-02,-2.37447e-02,-7.72224e-02,-9.28551e-02,-1.09827e-01,-9.63549e-02,-2.03634e-02,-9.50498e-02,-7.17972e-02,-4.06284e-02,1.31944e-02,8.15030e-02,1.67668e-01,1.93523e-01,1.88260e-01,1.87031e-01,1.41484e-01,9.65900e-02,1.00324e-01,2.79871e-02,-6.50680e-02,-1.03179e-01,-2.26947e-02,-3.60879e-02,1.42436e-02,-3.24267e-02,-1.13896e-02,4.24646e-04,-6.02650e-02,-9.82114e-02,-1.47907e-01,-1.61595e-01,-1.64234e-01,-1.69818e-01,-1.86691e-01,-1.31769e-01,-1.68564e-01,-1.06486e-01,-1.40993e-01,-1.28689e-01,3.23582e-02,1.71375e-01,2.03793e-01,1.83282e-01,2.03029e-01,1.03895e-01,1.13672e-01,6.42482e-02,-2.10811e-02,-7.69663e-02,-3.30445e-02,1.83285e-02,-3.33166e-02,1.59534e-02,4.00831e-02,1.62347e-02,-7.27604e-02,-1.80073e-01,-1.67963e-01,-2.12783e-01,-1.38269e-01,-1.32670e-01,-1.15273e-01,-1.06228e-01,-1.51892e-01,-1.63986e-01,-2.38619e-01,-2.59685e-01,-8.37839e-02,9.08686e-03,8.73521e-02,1.31936e-01,1.61341e-01,1.20261e-01,1.24655e-01,7.27059e-02,3.29800e-02,-7.56109e-02,1.63146e-02,-7.71288e-03,-2.18020e-02,1.49781e-02,-1.52726e-02,1.03945e-02,-9.26594e-02,-1.85341e-01,-1.69693e-01,-1.33262e-01,-4.34004e-02,-1.01926e-01,-9.23387e-02,-3.75500e-02,-3.98273e-02,-1.24554e-01,-2.74195e-01,-2.85465e-01,-1.13406e-01,-7.02788e-02,2.01486e-02,4.25890e-02,3.80647e-02,6.95576e-02,8.41754e-02,9.63117e-02,4.55129e-02,2.61304e-02,2.17942e-02,-1.07685e-02,-6.05888e-03,-2.96361e-02,3.13638e-02,-3.12672e-02,-1.08750e-01,-7.78817e-02,-1.01549e-01,-2.85455e-02,-1.83279e-02,4.66573e-03,4.48209e-02,2.65328e-02,-5.74773e-02,-9.85463e-02,-1.42264e-01,-2.08419e-01,-9.35593e-02,-3.18833e-02,-4.39941e-02,-5.55099e-02,-7.45277e-02,1.85001e-02,8.91864e-02,1.00968e-01,3.89041e-02,2.49160e-02,2.74883e-02,2.75617e-02,-1.46022e-03,3.39390e-02,2.17405e-03,-7.08671e-03,-5.70883e-02,-3.90069e-02,-2.47364e-03,5.11958e-02,3.64895e-03,1.08704e-02,8.46770e-03,4.50757e-02,-5.83627e-02,-6.39302e-02,-9.85957e-02,-1.56216e-01,-9.30058e-02,2.22145e-02,-4.68779e-03,-4.86416e-02,-3.88281e-02,2.28017e-02,4.27518e-02,3.69189e-02,4.23359e-03,2.88667e-02,-1.36858e-02,-2.99184e-02,1.60473e-02,2.37799e-02,-1.89995e-02,-1.61915e-02,2.92464e-02,9.61236e-02,8.28811e-02,8.72372e-02,7.12534e-02,1.03795e-02,-2.53667e-02,-1.75759e-02,-1.14955e-01,-1.28514e-01,-8.77652e-02,-4.83035e-02,-3.78771e-02,1.86181e-02,-2.41137e-02,-3.76476e-02,-1.58627e-02,1.45636e-02,-4.02756e-02,9.28219e-03,2.16976e-02,-9.88802e-03,2.17326e-02,-3.18821e-02,7.13623e-03,1.48277e-02,2.38089e-02,-4.58538e-02,8.86498e-02,1.03144e-01,8.39270e-02,4.86315e-02,4.85312e-02,3.52448e-02,-5.58581e-03,-3.82558e-02,-1.03390e-01,-1.48880e-01,-8.88586e-02,-2.01132e-02,1.06047e-02,-7.93106e-03,-3.92769e-02,-1.60423e-02,-1.45904e-02,-3.10676e-02,-4.02242e-02,1.36300e-02,5.62153e-03,4.33218e-02,5.67442e-02,3.38591e-02,-1.49985e-02,-3.05030e-02,-1.34200e-03,1.84739e-02,7.84150e-02,8.38764e-02,1.00662e-01,5.11881e-02,-5.16562e-03,-1.87980e-02,-2.01658e-02,-8.40894e-02,-9.15020e-02,-1.26407e-01,-5.89152e-02,-8.85357e-03,-8.35825e-03,-2.77697e-02,-1.12345e-01,-9.25748e-02,-8.46067e-02,-8.43448e-02,-2.38776e-03,-3.00171e-02,8.05868e-02,9.37703e-02,2.27768e-03,-2.32139e-02,-3.29518e-02,-1.60840e-02,-3.45545e-02,-1.96222e-02,6.94852e-02,8.60637e-02,6.82582e-02,1.80939e-02,1.84882e-02,2.08809e-02,-2.34919e-02,-1.35368e-02,-4.46391e-02,-4.66896e-02,-4.71974e-02,-2.74533e-02,-5.61740e-02,-4.07471e-02,-3.41028e-02,-7.63059e-02,-9.96293e-02,-3.23992e-02,1.85551e-02,7.90665e-03,3.18393e-02,6.08878e-02,-2.79658e-04,1.56958e-02,3.03397e-02,1.21647e-02,-2.04804e-02,1.55805e-02,6.56999e-02,4.70565e-02,-1.55822e-02,2.05076e-02,5.51958e-02,3.95575e-02,7.03794e-02,1.63448e-02,6.06683e-02,1.57590e-03,-2.29535e-02,-1.23314e-02,-7.89352e-02,-8.73615e-02,-5.68850e-02,-9.68269e-02,-6.02743e-02,-8.42299e-03,-3.01191e-02,1.84208e-02,9.54537e-02,3.46637e-02,-6.02945e-03,1.88605e-02,1.51636e-02,2.46984e-02,-1.22916e-02,7.65937e-03,7.84294e-02,6.32585e-02,4.78950e-02,4.42308e-02,4.80779e-02,8.00831e-02,5.62386e-02,9.43333e-02,4.57878e-02,3.72881e-02,1.91698e-02,6.10605e-03,-3.46798e-02,-7.26031e-02,-3.32949e-02,-4.66892e-02,1.39468e-03,-3.68421e-02,-1.05427e-03,7.30189e-03,3.98168e-02,3.36707e-02,1.85871e-02,9.80580e-03,1.31745e-02,6.00694e-03,-6.90568e-03,4.49684e-03,-1.95754e-02,3.24395e-02,1.09618e-02,2.35298e-02,3.44640e-02,2.52647e-02,8.62697e-02,1.08586e-01,3.18761e-02,6.26216e-02,4.08555e-02,-8.54847e-03,-2.01454e-02,-6.96210e-02,-4.45369e-02,-1.52543e-02,-4.77853e-02,-5.84937e-03,4.68407e-02,4.97324e-02,6.33876e-02,1.88666e-02,-8.08210e-03,1.89941e-02,-1.21531e-02,-2.59483e-02,2.04850e-02,-3.32587e-02,-5.16530e-03,6.02028e-03,3.65230e-02,9.71092e-02,7.03501e-02,8.31990e-02,1.05114e-01,1.10925e-01,1.35791e-01,6.27709e-02,9.42962e-02,6.14255e-02,4.40132e-02,-4.87185e-02,-3.03277e-02,3.94129e-02,-4.43491e-02,-4.17815e-02,7.14113e-03,6.83491e-02,4.96647e-02,-8.61669e-03,-1.90362e-02,2.30219e-02,-2.12285e-02,1.63659e-02,-6.50426e-03,-1.60778e-02,-3.71850e-02,-9.85425e-03,7.67230e-02,1.34892e-01,5.68098e-02,8.34308e-02,8.33298e-02,1.25961e-01,1.55082e-01,1.63285e-01,1.17213e-01,8.23620e-02,-3.67842e-02,-1.94410e-02,2.81569e-03,-7.66562e-02,-3.94842e-02,-4.13188e-02,3.64480e-03,3.73187e-02,2.01419e-03,-2.09601e-02,2.01737e-02,-4.27903e-03,-4.39376e-03,-1.53685e-02,1.02063e-02,-1.19687e-02,2.97247e-02,1.14341e-02,1.38903e-02,4.49905e-02,6.31072e-02,5.02053e-02,1.59177e-02,8.40333e-02,6.95816e-02,7.33536e-02,9.36462e-02,4.75360e-02,-3.09318e-02,-4.32780e-02,-5.42612e-02,-9.13471e-02,-1.31306e-01,-7.30779e-02,-3.39086e-02,-4.32419e-02,-2.16959e-02,9.40700e-03,-1.65651e-02,-2.85984e-02,3.36206e-02,2.16732e-02,-1.10282e-02,-6.19969e-03,-2.57682e-02,-7.45008e-03,7.48906e-03,-1.19212e-03,4.80605e-02,4.93391e-02,9.45876e-03,-2.87105e-03,7.50063e-03,-1.63446e-03,2.23981e-02,2.17370e-02,-7.46089e-02,-7.24226e-02,-1.13588e-01,-1.16248e-01,-9.30650e-02,-4.62603e-02,-3.66929e-02,6.83147e-03,1.70208e-02,3.50892e-03,-8.04507e-03,9.08202e-03,-3.16329e-02,1.47050e-03,1.98530e-03,3.06671e-02,-2.33574e-02,6.71522e-03,3.80669e-02,-6.81473e-03,1.89516e-02,5.22333e-02,-5.33580e-04,-1.46921e-02,2.26332e-02,2.73208e-02,-1.00471e-02,1.41610e-02,-1.21327e-02,-3.03054e-02,-5.25891e-02,-3.67549e-02,-3.45046e-03,-3.36696e-02,-3.23019e-02,-9.62392e-03,-3.41354e-02,-1.50725e-02,-7.66415e-04,-1.99707e-02,1.15059e-03,3.67825e-03,1.80452e-02,-2.09089e-02,1.95943e-03,2.48209e-02,-3.05899e-02,1.31420e-02,3.57247e-02,-2.29578e-02,-2.87092e-02,2.23561e-02,3.08228e-02,-1.29898e-02,1.17896e-02,3.46237e-02,-1.43709e-02,1.50025e-02,-2.93050e-03,-1.33155e-02,8.94474e-04,-2.32459e-02,-9.44177e-03,3.20438e-02,-2.99511e-03,1.58531e-02,2.71264e-02,-3.15032e-03, +-3.28767e-02,-3.36863e-02,-1.94849e-03,1.58857e-02,1.87414e-02,1.15720e-02,-1.95569e-02,-2.86278e-02,-3.49620e-02,-2.60769e-03,1.67304e-02,-1.16445e-02,3.85519e-03,2.52834e-02,6.33515e-03,1.94293e-04,8.91418e-03,2.94565e-02,-9.66581e-03,2.40395e-02,1.39239e-02,-2.34268e-02,2.54576e-02,1.68027e-02,1.47382e-02,8.46677e-03,-6.26072e-05,5.24032e-03,-1.43640e-02,1.22030e-02,2.27441e-02,2.03972e-03,-2.62758e-02,-2.21407e-02,3.17062e-02,-2.10522e-02,-3.52406e-02,2.95209e-02,-5.68371e-03,-1.73716e-02,2.59507e-02,-2.95061e-02,2.12766e-02,1.00437e-02,4.64756e-02,1.90045e-02,-3.40013e-02,-2.46363e-02,2.76459e-02,1.65963e-02,-2.70451e-02,-1.13730e-02,-2.62049e-02,3.34146e-02,-1.02520e-02,7.29120e-03,2.21751e-03,2.05330e-02,-2.56921e-02,1.75345e-02,2.20672e-02,1.88809e-02,-2.14833e-02,9.81378e-03,-2.01673e-02,2.60447e-02,-2.50925e-02,-3.72821e-02,-8.20969e-03,2.43263e-02,1.55912e-03,2.97566e-02,1.39465e-02,-3.47893e-02,-6.00374e-02,-2.02529e-02,-2.65535e-02,-2.00912e-02,-2.38233e-02,1.78301e-02,-2.40784e-03,1.53867e-02,2.68168e-02,1.04464e-02,-2.27237e-02,3.53029e-02,3.46629e-02,3.70701e-03,1.40877e-02,3.42387e-02,2.90957e-02,-2.76211e-02,1.45059e-02,2.56418e-02,1.58456e-02,-3.37968e-02,2.40082e-02,-5.56739e-03,8.38594e-04,2.12295e-02,-2.16183e-02,-2.47821e-02,-3.39434e-02,-1.08528e-01,-8.70128e-02,-7.25253e-02,-5.90312e-02,1.24351e-02,-1.10469e-02,1.66144e-02,2.76936e-02,2.32231e-02,-3.17933e-02,-2.20594e-02,-1.55976e-02,-1.13566e-02,-1.40392e-02,2.21550e-02,-5.67429e-04,-1.51577e-02,7.98894e-03,-4.24722e-02,-1.36731e-02,2.76030e-02,3.56924e-02,7.12679e-02,1.20334e-01,1.08586e-01,7.37073e-02,3.66728e-02,-2.20065e-02,-1.60909e-02,-1.79526e-02,-7.03941e-02,-6.25750e-02,-2.67173e-02,5.47720e-03,1.18059e-02,1.31348e-02,-9.63236e-03,1.20957e-02,3.53262e-02,-2.98514e-02,1.70159e-02,1.16528e-02,-1.43844e-02,-2.17011e-02,-8.66799e-03,-5.88765e-02,-4.60405e-02,-3.47743e-02,1.99994e-02,2.66502e-02,6.07554e-02,1.46099e-01,1.22946e-01,1.22322e-01,9.18244e-02,-1.00691e-02,-3.43827e-02,-4.44755e-02,-2.61525e-02,-7.07075e-02,-7.53344e-02,-8.29562e-02,1.01359e-02,-1.00228e-02,-7.32938e-03,6.64325e-03,-3.51320e-02,-3.69462e-03,-2.00541e-02,3.01997e-02,4.03544e-02,1.82272e-02,-2.90908e-02,-7.96463e-02,-1.18010e-02,3.09495e-02,3.31323e-02,3.93145e-02,8.33650e-02,1.38110e-01,1.39960e-01,1.61207e-01,8.52128e-02,4.84349e-02,1.20288e-02,-2.14720e-02,-3.16717e-02,-3.78527e-02,-9.28045e-02,-6.47749e-02,-5.87237e-02,-3.48440e-02,-7.95405e-03,-3.10382e-02,9.44685e-03,-2.21559e-02,2.20728e-02,1.15000e-02,1.68099e-02,1.62549e-03,-7.31183e-03,1.92134e-02,1.09939e-03,2.26697e-02,6.18841e-02,9.50164e-02,3.90849e-02,9.36570e-02,4.55619e-02,1.08632e-01,6.94166e-02,8.90847e-02,3.06243e-02,5.89940e-02,2.96752e-02,-1.55602e-03,-5.21192e-02,-1.07681e-01,-6.26164e-02,2.22543e-02,-5.77676e-03,8.06349e-03,8.81370e-03,2.45612e-02,3.74403e-02,4.54535e-02,6.06081e-02,7.47655e-02,8.35940e-02,1.01225e-01,9.42342e-02,8.79096e-02,8.38477e-02,1.02730e-01,8.66415e-02,8.14075e-02,9.01635e-02,5.95978e-02,6.19887e-02,1.16322e-01,1.25586e-01,2.46694e-02,3.95732e-02,6.63557e-02,-5.73644e-03,-8.49933e-02,-3.85465e-02,4.07307e-02,1.04736e-02,-3.20053e-02,6.75277e-03,2.93654e-03,2.47683e-02,7.90547e-02,2.25541e-02,7.68421e-02,9.35161e-02,1.15451e-01,9.03060e-02,6.60184e-02,2.74191e-02,1.01240e-02,1.16604e-02,6.62373e-02,2.49706e-02,9.77542e-02,1.19672e-01,1.22964e-01,1.22392e-01,9.02056e-02,8.56335e-02,4.95691e-02,3.82973e-02,-6.86373e-02,1.67847e-02,-1.04506e-02,-2.69566e-02,-2.53206e-02,-1.73852e-02,3.37162e-02,3.11723e-02,6.59922e-02,5.04968e-02,8.42947e-02,9.01759e-02,7.27646e-02,6.93646e-02,4.23370e-02,2.88306e-02,-2.38980e-02,-1.14436e-01,-5.77061e-02,-1.15145e-02,4.84960e-02,7.75795e-02,7.94355e-02,1.31453e-01,8.82329e-02,1.30718e-01,8.53867e-02,4.17266e-02,3.79649e-02,1.51758e-02,-3.57292e-04,-2.60132e-03,2.96228e-02,-2.57075e-03,-2.75699e-02,-2.06580e-02,-1.40763e-02,-1.37217e-02,1.85742e-02,2.67850e-02,-5.32871e-03,-5.60501e-02,-5.05374e-02,-7.94232e-02,-1.84637e-01,-2.81730e-01,-1.22397e-01,-3.09366e-02,1.61765e-02,7.04408e-02,1.29283e-01,1.23807e-01,1.61409e-01,4.39438e-02,6.88148e-03,1.08869e-02,-1.25416e-02,1.01675e-02,-1.94596e-02,3.18617e-02,-1.61993e-02,-6.73386e-03,1.17774e-02,2.21996e-02,-1.77898e-02,-1.09457e-01,-1.31886e-01,-9.94822e-02,-1.20596e-01,-1.50926e-01,-1.56964e-01,-2.52615e-01,-2.75281e-01,-2.38513e-01,-1.97012e-02,-2.32880e-02,5.42885e-03,5.68098e-02,7.15544e-02,1.09661e-01,7.68854e-02,-1.75658e-02,-6.68935e-02,-6.61561e-02,1.11358e-02,7.34389e-03,9.40626e-03,2.07480e-02,4.25877e-03,-1.15933e-02,1.33866e-02,-1.75865e-02,-1.32320e-01,-1.63378e-01,-2.18740e-01,-1.31650e-01,-1.58343e-01,-2.00630e-01,-2.07745e-01,-1.85795e-01,-2.03521e-01,-9.13152e-02,3.61518e-02,6.06007e-03,1.64672e-02,5.97623e-02,4.09160e-02,4.32290e-02,9.13636e-03,-8.26179e-02,-1.36040e-01,-8.09110e-02,-3.44587e-02,-3.73059e-03,3.47364e-02,-8.81987e-03,-2.59779e-04,-1.61028e-02,2.45703e-02,-1.26924e-02,-8.81528e-02,-1.78011e-01,-2.21002e-01,-1.78186e-01,-2.45744e-01,-1.88987e-01,-1.97889e-01,-1.02718e-01,-1.11784e-01,3.93151e-03,5.78754e-02,2.41567e-02,-1.58635e-02,5.35660e-02,-4.15397e-03,-6.07805e-02,-9.34634e-02,-1.57552e-01,-1.26535e-01,-1.54233e-01,-3.22856e-02,5.05778e-03,-1.30867e-02,1.94787e-02,2.09751e-02,-1.29700e-02,-1.29949e-02,-1.65262e-02,-5.18703e-02,-1.22326e-01,-1.41811e-01,-1.53255e-01,-1.19512e-01,-1.04768e-01,-9.17192e-02,-2.59563e-02,-2.48910e-02,1.31961e-01,6.03445e-02,-1.08697e-02,7.75211e-03,3.87207e-02,-5.71870e-03,-9.62098e-02,-1.49460e-01,-1.11320e-01,-1.65838e-01,-1.36978e-01,-5.10721e-02,3.60502e-02,-2.43309e-03,-3.36839e-04,-2.94393e-02,4.36095e-03,-1.33449e-02,-2.79648e-02,-9.17232e-03,-9.00092e-02,-8.34174e-02,-9.81405e-02,-2.77534e-02,-3.71112e-02,1.71294e-03,1.49156e-02,8.42424e-02,9.55069e-02,5.46947e-02,2.06701e-02,1.85453e-02,-5.21044e-02,-7.67226e-02,-1.22041e-01,-1.16437e-01,-1.47353e-01,-1.28552e-01,-7.74239e-02,-4.53606e-02,3.76335e-02,3.52511e-02,-2.70463e-02,9.69656e-05,1.88682e-02,3.26091e-02,4.19628e-02,1.88899e-02,2.18352e-02,-5.69487e-02,-6.35528e-02,9.60068e-03,8.39020e-02,1.10156e-01,8.34886e-02,1.24493e-01,1.15957e-01,3.72710e-02,1.32971e-03,-2.01696e-02,-6.49507e-02,-1.14104e-01,-1.39097e-01,-1.08480e-01,-1.73774e-01,-7.59572e-02,-5.30892e-02,-5.48875e-03,3.09669e-02,1.59306e-02,1.45815e-03,-3.00937e-03,2.83580e-02,-3.04905e-02,3.11086e-02,3.24560e-02,7.77750e-03,-3.75029e-03,-2.63813e-02,3.35258e-02,4.37410e-02,9.30877e-02,7.06147e-02,7.26552e-02,5.26478e-02,2.14645e-02,-3.68162e-02,2.34088e-02,-3.63180e-02,-3.26097e-02,-5.53295e-02,-1.14080e-01,-1.54623e-01,-5.42802e-02,-1.18037e-03,8.53610e-02,7.68745e-02,1.71653e-02,-8.05039e-03,1.58134e-02,-4.91620e-03,-3.76466e-02,-1.30571e-02,7.23796e-02,-1.97424e-02,5.66187e-03,5.40861e-02,6.85352e-02,2.71471e-02,5.13418e-02,7.78634e-03,6.21734e-02,2.77031e-02,9.23405e-03,-4.31589e-02,-1.62345e-02,1.05965e-02,-7.87095e-02,-8.30886e-02,-8.91423e-02,-1.26143e-01,-1.66579e-02,8.18354e-02,6.16891e-02,2.15691e-02,3.86833e-02,1.67432e-02,1.16861e-02,-3.18428e-02,1.93334e-02,3.39066e-02,6.66345e-02,5.34021e-03,7.66077e-02,9.57326e-02,3.94091e-02,3.61355e-02,-2.16297e-03,1.44713e-02,1.13731e-02,-2.99310e-02,-2.44527e-02,2.32580e-02,-3.38721e-03,-5.12124e-02,-2.48168e-02,-2.80399e-02,-4.67557e-02,-1.51671e-02,4.40642e-02,8.40648e-02,9.04853e-02,2.46924e-02,-2.06335e-02,1.14303e-02,-9.92035e-04,-2.75050e-02,3.39069e-02,-5.91391e-04,3.17461e-02,6.95799e-02,9.01975e-02,9.96321e-02,3.50618e-02,-3.00117e-02,-1.37250e-02,-3.46944e-02,-6.45141e-02,-2.39478e-02,-5.89599e-02,-1.80280e-02,-4.04070e-02,-9.08360e-03,1.94487e-02,-1.38252e-02,-2.39979e-02,6.24440e-02,4.25033e-02,9.36125e-02,2.16428e-02,4.03616e-02,1.77978e-02,2.50826e-02,1.17315e-02,-2.94999e-02,-2.21746e-02,2.64312e-03,2.19827e-02,9.03930e-02,1.36196e-01,1.28526e-01,6.65213e-02,2.20330e-02,-8.06190e-03,-5.87915e-02,-9.78477e-03,-4.36739e-02,3.43796e-02,4.10081e-03,5.44750e-02,-1.01595e-02,5.31116e-02,5.61188e-02,1.53352e-02,1.07703e-02,3.97836e-02,5.60087e-02,4.83286e-02,1.13034e-02,-1.29338e-02,1.01580e-03,-3.43752e-02,-1.49656e-02,-1.38539e-02,1.15288e-02,-6.08576e-03,8.24150e-02,7.55041e-02,9.70841e-02,5.29220e-02,2.94656e-02,2.96192e-02,1.09732e-03,9.66638e-02,6.36435e-02,8.03913e-02,9.76577e-02,5.66311e-02,1.03259e-01,6.96295e-02,4.98416e-02,1.62301e-02,1.59751e-02,3.27952e-02,3.10942e-02,-3.93034e-03,2.11179e-02,-1.31453e-02,1.83147e-02,1.36929e-02,-1.26765e-02,3.32335e-03,-2.10071e-02,-1.76231e-02,-1.44817e-02,-3.24955e-02,-6.14550e-03,1.69212e-02,-2.03848e-02,-3.15147e-02,-3.71631e-03,5.60243e-02,9.91965e-02,6.29004e-02,9.19802e-02,5.73092e-02,8.20655e-02,6.21047e-02,2.94294e-02,1.77352e-02,-5.03912e-03,3.32545e-03,-2.44318e-02,1.75871e-02,2.67719e-02,-1.16303e-02,2.24173e-02,1.44931e-02,9.75346e-03,8.85815e-03,-7.91055e-03,-2.76212e-02,-2.37865e-02,-2.72955e-02,-2.95023e-02,3.30782e-03,3.57318e-03,5.36874e-02,8.47744e-02,4.62142e-02,4.90497e-02,8.03995e-02,1.03510e-01,8.53493e-02,1.54387e-01,1.09050e-01,6.80134e-02,-3.43670e-03,-4.79111e-03,1.35236e-02,-2.41186e-02,2.65533e-02,-3.12974e-02,-1.55637e-02,2.98527e-02,1.01888e-02,-1.17512e-02,4.27786e-04,2.21700e-02,2.07563e-02,-2.45860e-02,-3.53916e-02,4.30109e-02,2.31231e-02,2.25558e-02,5.92922e-02,1.99786e-02,8.12398e-03,2.35692e-02,5.95382e-02,2.61362e-02,9.10398e-03,4.37877e-02,6.17082e-02,4.53372e-02,3.47232e-02,1.53109e-02,3.77426e-02,-4.47047e-04,3.42645e-02,1.55926e-02,-5.04957e-03,1.49548e-04,7.47955e-03,4.55633e-03,-2.24869e-02,3.12984e-02,2.93078e-02,1.96408e-02,2.62031e-02,1.23309e-02,1.67915e-07,-2.88184e-02,-4.98727e-03,-1.87103e-02,1.78528e-02,2.14434e-02,-6.22805e-03,1.77235e-02,2.62350e-02,9.94269e-03,-1.75601e-02,-2.14656e-02,-2.52941e-02,2.49806e-02,1.00510e-02,2.25944e-02,-7.65929e-03,2.85295e-02,2.39042e-02,-3.35904e-02, +-7.73564e-03,-2.10118e-02,3.44278e-02,-2.19690e-02,-1.61733e-02,-1.39826e-02,3.40930e-02,2.86057e-02,-2.33794e-02,-3.44717e-02,2.72490e-02,2.65073e-02,8.41918e-03,5.89265e-03,-5.99985e-03,2.79897e-02,5.70152e-04,-1.31550e-02,-1.10199e-02,1.16787e-02,-1.55209e-03,-2.64957e-02,-1.25606e-02,2.80697e-02,1.23498e-02,2.83404e-02,1.94566e-02,-1.79553e-03,1.00831e-02,-3.36152e-02,-3.34009e-02,7.26051e-03,9.85620e-03,6.54145e-03,1.07871e-02,3.33132e-02,2.33947e-02,2.00707e-02,2.62524e-03,-2.20452e-02,2.24137e-02,-2.73728e-02,3.06087e-02,-1.40351e-02,2.70095e-03,3.38156e-02,-8.44625e-03,-2.32889e-02,-1.98838e-02,-1.64008e-02,2.04643e-02,2.14913e-02,-2.31442e-02,1.08237e-02,-2.80698e-02,-2.86270e-02,3.52915e-02,-1.47574e-02,2.50871e-02,3.52033e-02,-3.35036e-02,1.16370e-03,1.84036e-02,9.75571e-03,-9.64754e-03,7.45364e-03,-9.53842e-04,-1.15176e-02,7.80547e-03,3.19489e-02,-3.30205e-02,1.76090e-02,-3.89123e-02,-1.55708e-02,-1.88529e-02,1.31195e-02,2.78173e-02,1.00082e-02,-8.90676e-03,-1.51627e-02,-5.58898e-03,-2.75033e-02,-2.83304e-03,-1.59354e-02,3.01237e-02,1.37790e-02,1.78266e-02,2.68609e-02,3.33371e-02,-1.85630e-02,-3.46549e-03,-1.90424e-02,-2.72194e-02,-1.54926e-02,-1.55163e-02,-1.50537e-02,-2.23500e-02,-2.12708e-02,2.83099e-02,3.91650e-04,-9.34808e-03,2.54028e-02,2.46051e-02,-1.78382e-02,1.73027e-02,-3.08450e-02,2.18810e-02,9.58702e-03,1.52331e-02,-1.81137e-02,1.61856e-02,-2.65936e-02,3.21685e-02,5.64418e-03,-1.49779e-02,-7.49151e-04,-2.93293e-02,3.08290e-02,4.99243e-03,1.49474e-02,2.40224e-02,3.39217e-03,-4.00996e-02,-1.31570e-02,-5.00787e-03,-3.47721e-02,-4.03376e-02,-2.06091e-03,3.14886e-02,2.17529e-02,-3.43021e-02,2.67761e-02,-9.15031e-03,2.24242e-02,1.58470e-02,2.24392e-02,2.79909e-02,-1.51552e-02,-3.87381e-03,3.35412e-02,2.65520e-02,7.45000e-03,6.91563e-05,2.82429e-02,-2.99172e-02,1.83929e-02,-3.44558e-02,1.02532e-02,-4.33895e-02,-2.47082e-03,-4.23959e-02,-2.04286e-02,-5.32669e-02,-3.67982e-02,-3.92155e-02,-6.23260e-03,-2.70423e-02,-1.85325e-02,-4.34524e-02,-2.37015e-02,-2.18826e-02,1.33595e-02,1.22727e-02,2.95532e-02,1.58713e-02,1.92012e-02,2.87142e-02,9.22026e-03,3.75023e-03,-1.25836e-02,1.86938e-03,1.01189e-02,3.15880e-02,1.44646e-02,3.44880e-03,-2.51328e-02,-2.16328e-02,-2.60381e-02,-9.40318e-02,-9.25878e-02,-9.53793e-02,-8.74417e-02,-6.89191e-02,-6.42425e-02,-7.22775e-02,-1.13680e-01,-4.39300e-02,-8.16746e-02,-2.40879e-02,-6.36648e-03,-2.47980e-02,-1.10999e-02,-3.87511e-02,-9.23455e-03,3.89727e-03,-1.32188e-02,1.02575e-02,8.09475e-03,1.62222e-02,-2.76216e-02,-9.93517e-03,1.11250e-02,-2.26754e-02,-2.97743e-02,-5.90962e-02,-9.82697e-02,-1.31164e-01,-9.90964e-02,-1.04968e-01,-7.43439e-02,-1.06361e-01,-7.15050e-02,-5.93029e-02,-9.40942e-02,-6.58875e-02,-1.60989e-02,6.34766e-04,-2.03335e-02,3.89358e-02,4.63521e-02,6.33709e-03,-6.00095e-03,8.34201e-04,-4.28260e-03,1.19546e-02,-2.28328e-02,2.72328e-02,4.15098e-03,1.47154e-02,-2.80949e-02,5.58927e-03,-2.98539e-02,-1.41713e-02,-7.65516e-02,-8.44936e-02,-1.11720e-01,-1.37950e-01,-8.56931e-02,-9.43495e-02,-4.81058e-02,1.49208e-02,-4.52910e-02,2.96105e-02,2.82537e-02,3.16469e-02,3.04821e-02,4.11467e-02,6.01033e-02,8.69113e-03,6.41784e-02,-2.38372e-02,5.52187e-03,3.30705e-02,2.41477e-02,-8.56782e-03,-2.02391e-02,-1.45016e-02,-3.92701e-02,6.56370e-03,-5.68501e-02,-7.01432e-02,-2.29810e-02,-7.46922e-02,-1.27859e-01,-6.24335e-02,-5.35117e-02,1.82485e-02,1.15733e-02,4.50316e-02,3.35215e-02,3.81824e-02,6.22433e-02,4.74181e-02,4.48839e-02,7.36999e-02,1.04743e-01,9.31378e-02,1.07270e-02,1.16645e-03,-3.13912e-02,1.10032e-02,-2.52332e-02,-2.30133e-02,9.15169e-03,-1.66574e-02,-1.61182e-02,-3.05145e-03,-5.80686e-03,-6.31978e-02,-5.56559e-02,-5.97988e-02,-2.63794e-02,-1.75207e-02,5.99715e-02,1.23363e-01,1.25277e-01,6.93785e-02,9.26061e-02,9.07500e-02,6.72467e-02,3.84533e-02,4.24131e-02,7.30764e-02,5.96474e-02,4.72398e-02,1.51305e-02,-2.22013e-02,-5.35750e-03,1.97736e-02,-1.52364e-02,2.92354e-02,3.44087e-03,1.78292e-02,-1.99184e-02,-7.97815e-03,1.49913e-02,-3.69179e-02,-2.95421e-02,-2.21640e-02,7.14325e-02,9.47497e-02,1.50509e-01,1.42687e-01,9.91905e-02,9.44603e-02,4.89544e-02,2.28389e-02,3.89514e-02,5.23535e-02,-9.20783e-03,4.51313e-02,-2.93824e-04,4.38528e-02,1.24367e-02,1.75277e-02,9.53605e-03,2.24093e-02,3.34073e-02,3.75271e-03,-2.06024e-02,-1.11340e-02,2.18055e-02,3.02770e-02,3.67702e-02,-1.27433e-02,1.30019e-02,2.80917e-02,9.55502e-02,1.09230e-01,1.58528e-01,9.48238e-02,5.99380e-02,4.19001e-02,4.29215e-02,5.28189e-03,-1.14404e-02,-2.82066e-02,-4.57999e-02,-3.95679e-02,1.53432e-03,-2.09284e-02,1.77444e-02,6.46874e-03,1.86758e-02,2.57163e-02,1.16579e-02,-3.00075e-02,-1.93285e-02,2.12685e-02,7.22160e-04,2.89904e-02,1.77178e-02,-1.21547e-02,-1.86334e-02,4.15447e-02,7.04767e-02,7.22102e-02,4.22439e-02,-1.04918e-02,-2.05451e-02,-1.46758e-04,1.99472e-02,-3.86401e-02,1.45835e-02,-1.83009e-02,-5.15308e-02,-8.43764e-03,-1.84995e-02,1.40554e-02,1.04679e-02,-3.02447e-03,5.08352e-03,-3.28560e-02,3.55724e-02,2.10398e-02,2.65062e-02,2.16300e-02,3.40305e-02,3.72023e-02,2.92452e-02,-1.32078e-02,1.87785e-02,4.15335e-02,2.77672e-02,-4.50199e-03,3.18273e-03,-7.47184e-02,-4.76484e-02,3.07959e-03,-1.67339e-02,-2.70693e-02,1.07027e-02,-1.57590e-03,-7.17246e-02,1.25960e-02,-3.01788e-02,-1.24916e-02,1.86561e-02,-1.67753e-02,-3.33763e-02,1.82623e-02,-2.86627e-02,7.34069e-03,2.39699e-02,-1.44749e-02,1.72226e-03,2.94678e-02,2.54597e-02,-3.16626e-02,-3.64429e-02,-1.50601e-02,-4.89821e-02,-2.47691e-02,-1.19540e-01,-9.14997e-02,-1.96697e-02,3.71616e-02,2.83902e-02,-2.33181e-03,-2.09210e-03,-2.25469e-02,-3.32144e-02,-2.11794e-02,3.70558e-03,2.87089e-02,-1.39013e-02,-1.01626e-02,3.77125e-03,-2.05345e-02,-2.43145e-02,1.43680e-02,2.71009e-02,1.31483e-02,-1.10919e-02,-3.54612e-03,1.44667e-02,-6.75032e-02,-6.68973e-02,-7.47319e-02,-5.86024e-02,-5.26302e-02,-6.22507e-02,6.62530e-03,8.46412e-02,5.51289e-02,9.17256e-02,5.91187e-02,-2.80228e-02,-4.06236e-02,-5.29291e-02,-7.64226e-02,-4.40577e-02,-2.39521e-02,-7.02351e-03,-3.16159e-02,-2.47952e-03,-2.24047e-02,2.89803e-02,2.49455e-02,1.13444e-02,6.39188e-03,1.73303e-03,7.26217e-02,2.18645e-02,1.74488e-03,1.60472e-02,-2.89072e-02,1.58596e-02,-8.96846e-04,1.76652e-02,2.31709e-02,6.85304e-02,8.14419e-02,4.28800e-03,-3.35267e-02,-8.28835e-02,-7.65973e-02,-8.96457e-02,-6.17382e-02,-5.26910e-02,-3.30271e-02,1.01960e-02,4.51633e-03,-2.22032e-02,-3.46802e-02,-1.83525e-02,1.11640e-02,-1.72572e-02,-4.27314e-03,-5.92238e-03,6.81340e-02,3.71714e-02,6.10642e-02,8.03087e-02,5.31772e-02,3.96206e-02,2.70974e-02,4.56742e-02,1.06774e-01,8.26332e-02,6.90902e-02,-2.67575e-02,-4.39138e-02,-8.19541e-02,-9.12526e-02,-4.46913e-02,-4.99227e-02,-4.97756e-02,8.64704e-03,-3.72322e-03,-2.25634e-02,2.15468e-02,2.19351e-02,-1.21277e-02,-1.38604e-02,-3.48004e-03,-1.53669e-02,1.22666e-02,3.91949e-02,3.08222e-02,6.05922e-02,1.09019e-01,9.98431e-02,6.14089e-02,1.18269e-01,1.08979e-01,9.78289e-02,3.74217e-02,2.57341e-02,-1.43501e-02,-6.37198e-02,-5.78873e-02,-8.71015e-02,-5.12317e-02,-6.51405e-02,-4.35775e-02,-4.14638e-02,6.05338e-03,-3.46894e-02,2.66602e-02,1.24584e-02,-4.85944e-03,-2.37918e-02,2.27691e-02,1.51678e-02,1.45232e-03,-1.57122e-02,-2.33817e-02,6.86793e-02,6.59678e-02,1.01535e-01,8.30887e-02,6.83762e-02,3.75441e-02,3.39618e-02,-8.33179e-03,-3.47628e-02,-6.40124e-02,-6.22995e-02,-9.82854e-02,-6.89327e-02,-7.01348e-02,-5.02552e-03,-5.82112e-03,-3.66946e-02,-2.56633e-02,-1.58662e-02,-1.36207e-02,-3.18898e-02,-2.18622e-02,-3.20232e-03,2.34065e-02,-4.56018e-02,-3.52122e-02,-2.85263e-02,-1.36291e-02,1.90515e-02,3.21515e-02,1.53296e-02,3.58247e-02,4.34725e-02,1.07726e-02,2.99571e-02,-4.36372e-02,-3.40155e-02,-5.95364e-02,-4.62996e-02,-3.97848e-02,-7.24738e-02,1.18252e-02,4.05591e-03,-1.04987e-02,1.48803e-02,-1.92727e-02,5.92340e-03,1.53293e-02,1.61743e-02,-2.41362e-02,-5.42509e-03,3.03374e-02,-2.66449e-03,-2.64084e-02,-5.38137e-02,-2.56751e-02,-2.36312e-02,7.10384e-03,1.42444e-02,1.93411e-02,4.86032e-04,-6.34086e-02,-8.71167e-02,-6.02343e-02,-5.44915e-02,-5.55845e-02,-5.58463e-03,-6.11431e-03,-1.47451e-03,2.36255e-02,1.33664e-02,1.77291e-03,1.01843e-02,1.30299e-02,-2.12765e-02,-4.17043e-03,-1.68718e-02,1.31679e-02,1.03354e-02,5.18507e-03,-1.15301e-02,-3.39895e-02,-3.91391e-02,-2.19612e-02,3.32492e-03,-3.55374e-02,-1.58495e-02,-6.84329e-02,-9.29367e-02,-1.28507e-01,-1.04150e-01,-1.13318e-01,-7.18821e-02,-5.42817e-02,2.25515e-02,1.59538e-02,9.74658e-03,-2.09639e-02,3.14739e-02,-1.71606e-02,8.37523e-03,2.03259e-02,2.31088e-02,2.08284e-02,-4.20541e-04,-1.39845e-02,-3.55531e-02,4.93055e-03,1.17009e-02,-1.28735e-02,-2.66097e-02,-7.89555e-04,-4.56692e-03,-2.79001e-02,-7.34903e-02,-7.02430e-02,-7.08292e-02,-9.95298e-02,-2.46341e-02,-7.38990e-02,-7.59227e-03,-2.62604e-02,-7.77407e-03,-8.52737e-03,2.24687e-02,3.77238e-03,-7.19731e-03,2.74201e-02,-3.44615e-02,-2.72769e-03,-7.69642e-03,2.10996e-02,7.11679e-04,-3.21295e-02,-6.40605e-03,-2.53339e-02,-1.02861e-02,-1.62023e-02,-3.49008e-02,-6.60522e-03,-1.58068e-02,-3.38873e-02,1.51536e-03,-1.54654e-02,-4.11957e-03,-2.20512e-02,-5.76057e-03,1.74138e-04,1.68897e-02,2.11253e-02,-1.47647e-02,1.40798e-02,-1.47430e-02,-1.89399e-02,3.72582e-02,2.57759e-02,2.76190e-02,-4.89100e-03,-1.13035e-02,3.99892e-03,1.58691e-02,-7.69986e-03,1.64161e-02,1.10690e-02,1.71048e-02,1.93426e-02,3.25392e-02,-2.01169e-02,-2.67014e-02,6.70366e-03,-6.28040e-03,1.19393e-02,-5.07142e-03,-1.91279e-02,2.32894e-02,-3.11701e-02,-1.60883e-02,-2.66945e-02,-3.28499e-02,3.18070e-02,2.27819e-02,-7.70849e-05,3.23897e-02,-3.08601e-02,-2.14344e-02,-6.50478e-03,-1.85319e-02,-1.35001e-02,-1.30008e-02,-1.70134e-02,-3.21304e-02,-2.44404e-02,1.79551e-02,-2.19628e-03,-1.21671e-02,-7.36834e-03,3.43952e-02,2.01870e-02,1.62376e-02,-3.28698e-03,3.07759e-02,3.85190e-02,-1.17002e-02,-4.08431e-03,2.63375e-02,-1.17878e-02,3.61958e-02,-3.09816e-02,-3.27702e-02,2.11830e-03,-2.01574e-03,2.06985e-05,2.63360e-03,1.03037e-02,-2.35482e-02,-5.40632e-03, +-1.21768e-02,-2.81260e-02,-5.10132e-03,8.97183e-03,3.32747e-02,-4.59520e-03,3.22885e-02,-5.63639e-03,1.30936e-02,9.71937e-03,-1.55181e-02,-1.03498e-02,2.48872e-02,-3.12086e-02,-3.23958e-02,2.32587e-02,-3.18537e-02,2.13689e-02,5.18959e-03,2.57733e-02,1.35167e-02,-2.22880e-02,3.04610e-02,-1.66348e-02,8.30074e-03,1.78781e-03,3.49959e-02,1.63558e-02,-2.93913e-02,-1.97143e-02,-1.46761e-02,2.14531e-02,8.03827e-03,-3.13409e-02,1.37859e-02,-7.99546e-03,-3.09249e-02,2.90830e-02,1.40144e-02,-9.72411e-03,2.46614e-02,3.31815e-04,1.97197e-02,3.17330e-02,2.93762e-02,2.56967e-02,2.38294e-02,5.47518e-03,3.55779e-03,3.45055e-02,-3.84214e-03,1.16793e-02,-1.04016e-02,-2.28030e-02,-6.81262e-03,2.60707e-02,-1.05601e-02,8.99686e-03,2.03181e-02,-4.19497e-03,1.76190e-02,5.51002e-03,1.64391e-02,3.01449e-02,1.40639e-02,-7.65425e-03,7.07068e-03,5.96474e-03,6.92212e-03,2.18176e-02,-2.95711e-03,3.34914e-02,7.46915e-02,1.58615e-02,-7.13582e-04,-1.33277e-02,-2.14117e-02,-3.80240e-02,-3.72928e-02,-9.02964e-03,1.65047e-02,-2.01271e-02,1.41426e-02,3.17647e-02,-1.10065e-03,1.64155e-02,1.77162e-02,-1.48329e-03,2.27951e-02,1.30606e-02,-2.84123e-02,2.98549e-02,9.24087e-03,1.73694e-02,-2.07014e-02,-2.26794e-02,6.31863e-02,8.19440e-02,7.52450e-02,4.46538e-02,9.87477e-02,3.72049e-02,3.34887e-02,2.24972e-03,-2.62935e-03,-1.64805e-02,-1.97731e-02,-1.10191e-02,-4.43763e-03,-1.12799e-02,-2.95535e-02,2.58148e-02,2.50052e-03,-2.61972e-02,-1.00681e-03,1.22624e-02,2.07040e-02,3.64822e-02,3.73344e-02,3.83965e-02,3.61964e-02,1.76391e-02,6.39091e-02,6.92860e-02,9.42201e-02,1.18296e-01,1.70009e-01,1.40465e-01,9.19029e-02,9.70632e-02,5.05519e-02,5.04922e-02,1.95693e-03,-1.91709e-02,-5.47636e-03,-6.89474e-03,1.95541e-02,-3.71276e-03,-4.34559e-03,-9.52130e-03,2.53245e-02,1.08370e-02,4.64054e-03,1.84101e-02,-2.90342e-02,-9.57154e-03,6.24423e-04,-2.23851e-02,-3.34031e-02,-4.51683e-02,-3.54866e-03,5.29133e-02,5.27906e-02,7.27228e-02,1.07980e-01,1.05033e-01,6.72499e-02,7.13261e-03,3.37089e-02,1.11161e-02,1.22878e-02,2.52050e-03,-3.75704e-02,-1.90025e-02,2.65267e-02,1.24774e-02,1.76929e-02,5.65677e-03,2.13748e-02,-7.58258e-05,9.04408e-03,-8.87059e-03,-1.35161e-02,-1.61679e-02,1.09833e-02,-6.01046e-02,-2.54479e-02,-4.10470e-02,1.67011e-02,9.73900e-02,6.61374e-02,5.51787e-02,6.68081e-02,7.87733e-02,3.64574e-02,2.24028e-02,5.64238e-02,5.56764e-02,1.88931e-02,2.96699e-02,-4.52160e-03,-1.07332e-02,3.54161e-02,8.67046e-02,1.38531e-02,3.39087e-02,1.92924e-02,-1.54219e-02,-2.77739e-02,1.38867e-02,1.35989e-02,4.00915e-02,-1.41387e-02,-5.19466e-02,-3.97826e-03,4.27920e-02,1.01585e-02,2.45718e-02,5.73836e-02,8.37121e-02,7.21278e-02,1.02566e-01,4.97053e-02,5.79971e-02,4.77180e-02,5.10394e-02,5.25987e-02,8.57545e-02,2.90652e-02,-2.63734e-03,8.15046e-02,6.40725e-02,4.02504e-02,2.37663e-02,1.75431e-02,-3.51047e-02,-3.64228e-02,-6.00600e-03,6.41121e-02,7.22104e-02,9.27551e-02,3.83092e-02,-2.68933e-03,3.71473e-02,7.35623e-02,4.34526e-02,5.13967e-02,6.20980e-02,1.05691e-01,5.61884e-02,7.27344e-02,7.22296e-02,6.72065e-02,9.57150e-02,2.89292e-02,7.88382e-02,7.01260e-02,1.95100e-02,1.07152e-01,5.78437e-02,2.44690e-02,-2.06872e-02,6.56524e-03,-9.42179e-03,2.32058e-02,1.56081e-02,6.72537e-02,2.44182e-02,7.98496e-02,8.86418e-02,9.42441e-02,6.88966e-03,4.02965e-02,4.17759e-02,4.72248e-02,6.72910e-02,9.39043e-02,8.39374e-02,5.20836e-02,7.90969e-02,2.55768e-03,5.62686e-02,5.39254e-02,6.34646e-02,7.99769e-02,1.09292e-01,1.30855e-01,1.28795e-01,6.16132e-02,-2.36518e-03,1.62037e-02,-1.18362e-02,-3.40187e-02,-1.22821e-02,6.12502e-02,4.64432e-02,6.03821e-02,3.07569e-02,3.68408e-02,9.56194e-04,2.45577e-02,-3.42675e-03,1.26453e-02,8.63670e-02,1.23907e-01,6.67541e-02,-2.37782e-03,5.15853e-02,5.09338e-02,8.03551e-03,7.41282e-02,4.96176e-02,6.11237e-02,8.54375e-02,1.00816e-01,8.74886e-02,5.92087e-02,-2.48362e-02,-1.84771e-02,-2.67866e-02,2.45812e-02,1.64033e-02,-8.57216e-03,1.77692e-02,3.89506e-02,4.43666e-02,-1.40387e-02,-4.76691e-02,-4.34114e-02,8.50131e-04,8.28374e-03,7.94316e-02,2.31059e-01,1.29997e-01,-2.63954e-02,4.05126e-02,-6.45806e-03,2.04724e-02,1.03918e-02,2.59435e-02,4.86483e-02,5.80571e-02,1.15424e-01,7.42887e-02,1.68607e-02,7.33251e-03,-4.80660e-04,1.52843e-02,-4.01966e-02,1.44093e-02,1.21275e-02,1.80725e-02,-3.86400e-02,-5.15959e-02,-3.05247e-02,-3.02580e-02,-2.12384e-02,-4.81564e-02,7.59050e-03,1.44242e-01,2.54131e-01,1.63316e-01,2.84883e-02,1.88983e-02,-4.51825e-02,-3.72704e-03,1.13768e-02,1.67501e-02,-6.02590e-02,-2.47542e-02,-5.26108e-02,4.55655e-03,-9.84912e-03,1.16103e-04,-1.77382e-02,-2.19820e-02,2.20606e-02,-4.39131e-02,-6.17314e-02,-6.30157e-02,-1.31448e-01,-1.02241e-01,-8.72001e-02,-1.49567e-02,-1.27369e-01,-9.44222e-02,3.44284e-02,2.05582e-01,2.54390e-01,1.71323e-01,7.35964e-02,-3.25700e-02,-4.26388e-02,-3.64362e-02,9.54834e-03,5.26402e-03,-7.49903e-02,-1.63712e-01,-1.03634e-01,3.95887e-03,4.44997e-02,-1.27214e-02,-1.62391e-02,2.62346e-02,2.68065e-02,-4.28531e-02,-4.29698e-02,-1.32237e-01,-1.52255e-01,-1.72222e-01,-1.13927e-01,-1.06809e-01,-9.73621e-02,-8.02038e-02,6.26659e-02,2.41181e-01,2.54342e-01,1.38028e-01,3.67660e-02,-6.34677e-02,-4.74575e-02,-8.36892e-02,-3.85700e-02,-2.31449e-02,-1.16053e-01,-1.80240e-01,-1.11242e-01,3.67711e-02,3.15944e-02,-3.36181e-02,3.86599e-03,-1.61747e-02,5.61507e-03,1.12997e-02,-2.04074e-02,-1.17471e-01,-1.30233e-01,-1.09639e-01,-1.45794e-01,-8.38463e-02,-6.58545e-02,-4.62107e-03,1.12400e-01,2.38659e-01,1.96621e-01,2.81752e-02,-2.88074e-02,-6.74243e-02,-6.87954e-02,-9.72350e-02,-7.85816e-02,-3.78495e-02,-8.15482e-02,-1.21646e-01,-3.11484e-02,3.30176e-02,7.53974e-03,-2.27227e-03,-1.00170e-02,6.04258e-03,-3.57687e-03,2.34660e-02,-2.03814e-03,-5.23865e-02,-1.06891e-01,-8.22885e-02,-5.29337e-02,-5.32767e-02,-2.75699e-02,4.22610e-02,1.08819e-01,1.99529e-01,9.82754e-02,3.89681e-03,-4.85200e-02,-6.85129e-02,-2.61445e-02,-4.90995e-02,-1.00836e-01,-1.00521e-01,-6.44640e-02,-3.01583e-02,-2.59155e-04,-2.48067e-02,-6.71418e-03,4.65166e-04,-1.30849e-02,-1.59851e-02,7.32893e-03,2.97101e-02,3.04072e-02,-2.12344e-02,-2.19866e-02,-5.77115e-02,-4.10278e-02,2.19439e-02,-7.92403e-03,5.69135e-02,8.70815e-02,1.07554e-01,2.71740e-02,8.97068e-03,-3.49067e-02,-3.36642e-02,-8.09210e-02,8.46432e-03,-1.57235e-02,-4.49622e-02,-3.72663e-02,2.55541e-02,-4.42323e-02,-2.54084e-02,3.57233e-03,2.03677e-03,-3.16784e-02,-7.95949e-03,1.17890e-02,8.84988e-02,3.88974e-02,4.15663e-02,2.06212e-02,1.44169e-02,-3.41063e-02,1.23136e-02,-3.26299e-02,-6.26388e-03,3.96233e-02,3.13680e-02,2.42619e-02,-1.66838e-02,2.81942e-03,-2.09352e-02,-2.79135e-02,-4.20527e-03,2.54865e-02,-2.92195e-02,1.16691e-02,2.38195e-02,1.38659e-02,4.06748e-02,2.27958e-02,1.66463e-02,-2.10969e-02,-1.81832e-02,3.76766e-03,5.47881e-02,8.57946e-02,7.90995e-02,2.51422e-02,3.71516e-02,1.44890e-02,3.55576e-02,-1.73619e-02,-1.06799e-02,-8.88625e-03,3.03158e-02,2.24226e-02,4.61530e-02,3.70004e-02,6.99293e-02,5.80905e-02,4.90709e-02,3.37814e-02,2.46690e-02,8.30905e-02,3.43597e-02,2.81884e-02,3.90224e-03,-5.33932e-03,-1.64285e-02,1.76342e-02,-2.34199e-02,3.87472e-03,2.80910e-02,5.25127e-02,1.04674e-01,1.26078e-01,1.24015e-01,1.10478e-01,6.96740e-02,1.84992e-02,-7.07104e-03,-3.04140e-02,6.86563e-05,7.27864e-03,4.26680e-02,6.85054e-02,2.23916e-02,2.03582e-02,3.02171e-04,6.22943e-02,2.96751e-02,3.24130e-02,5.32151e-02,2.53306e-02,1.28860e-02,-2.39568e-03,-1.50383e-02,3.56561e-03,1.23424e-02,-2.75432e-03,2.72116e-02,8.07559e-02,1.22619e-01,1.53884e-01,1.37187e-01,5.97245e-02,6.68767e-02,1.98713e-02,1.64629e-02,-1.59504e-02,-2.50416e-02,1.15091e-02,1.67736e-02,-6.24586e-03,4.91921e-02,1.68395e-02,3.60670e-02,6.45640e-02,3.16416e-02,5.94298e-02,1.13024e-02,1.62068e-02,6.59575e-03,1.28409e-02,2.97913e-02,-3.84664e-03,1.89736e-02,8.92823e-03,-1.56031e-03,8.25843e-02,6.73897e-02,1.23286e-01,1.38557e-01,6.20118e-02,2.15218e-02,7.41443e-02,4.06511e-02,3.81611e-02,5.38218e-02,3.25112e-02,5.80188e-02,-1.97986e-03,3.75628e-02,-3.50711e-03,4.76023e-02,6.27126e-02,1.22553e-02,-3.42123e-03,2.96854e-02,3.12376e-02,-1.27246e-03,2.24437e-02,2.39253e-03,-2.03433e-02,3.16309e-02,-1.62245e-02,-8.20632e-03,6.74342e-02,8.85479e-02,8.33200e-02,3.71929e-02,8.32870e-02,9.97271e-02,9.69341e-02,7.15618e-02,1.18031e-01,1.27666e-01,4.91734e-02,5.45305e-02,2.92007e-02,6.30953e-02,2.21286e-02,2.29832e-02,4.27415e-02,-3.76512e-02,5.83996e-03,3.94788e-03,-6.86229e-04,3.96876e-03,-2.09366e-03,2.60293e-02,2.41849e-02,1.41313e-02,-5.55879e-03,-6.02665e-03,-8.33310e-03,-2.16592e-03,2.70925e-02,8.27666e-02,3.30344e-02,7.08992e-02,1.24212e-01,1.50055e-01,1.35062e-01,7.93487e-02,7.93518e-02,8.19714e-02,5.49855e-02,5.60969e-02,6.55559e-02,5.44669e-02,2.08938e-02,5.12696e-02,2.76153e-02,5.26249e-02,2.98743e-02,1.41782e-03,3.66442e-03,1.57724e-02,3.56044e-02,2.08034e-02,7.36799e-03,1.85574e-02,8.10890e-03,-4.46987e-03,-2.51065e-02,1.41676e-02,3.22726e-02,9.43859e-02,8.85299e-02,1.32518e-01,1.12391e-01,8.20873e-02,8.45480e-02,5.89359e-02,5.52272e-02,1.28070e-01,9.38917e-02,9.35263e-02,9.18676e-02,6.01541e-02,3.89557e-02,-1.72398e-02,1.24481e-02,2.85885e-02,1.57665e-03,2.98336e-02,-1.34609e-02,1.08736e-02,-2.91296e-02,-4.90753e-03,-2.41670e-02,1.18607e-02,9.08333e-03,-6.72462e-03,-1.52489e-02,-2.96917e-03,4.44251e-02,2.48971e-02,4.83987e-03,4.85205e-02,4.36657e-02,6.65212e-02,6.40623e-02,4.83909e-02,2.07049e-02,3.89182e-02,3.59483e-02,3.10333e-02,-2.87770e-02,-1.70010e-03,-2.87350e-02,-1.86427e-02,-3.35795e-02,2.63965e-02,3.09247e-02,-1.70554e-02,-1.50134e-02,1.95490e-02,-9.12734e-04,-7.66759e-03,-5.08767e-03,-3.29277e-02,-2.40674e-02,2.31528e-02,-2.20282e-02,2.59146e-02,-8.99993e-03,-2.58942e-02,-1.34866e-02,2.59821e-02,-3.18136e-02,1.29227e-02,8.60991e-03,1.36302e-02,-3.06765e-02,-2.75718e-02,-9.61632e-03,-1.35781e-02,-1.19832e-02,1.17999e-02,1.70482e-02,2.80770e-02, +-1.78589e-02,-1.95729e-02,3.30786e-02,-3.54443e-03,-1.01369e-02,2.01512e-02,-2.63827e-02,1.44068e-02,-1.46819e-02,-7.69287e-04,-1.47433e-02,-2.72883e-02,-3.65008e-03,9.08575e-03,-1.67961e-02,5.01549e-03,-3.06032e-02,-2.39561e-02,1.47179e-02,2.75947e-02,1.86928e-02,-2.35129e-02,2.39350e-02,-2.30894e-02,1.65878e-02,6.17152e-03,-8.56344e-03,-3.04509e-02,-3.07726e-02,-3.49944e-02,-5.43534e-03,2.85609e-02,1.30007e-02,2.89044e-02,-3.10073e-02,2.40097e-02,-6.93305e-03,1.80158e-02,-2.20914e-02,-2.09567e-02,2.96390e-02,2.83514e-02,-1.67764e-02,-2.78221e-02,-1.97051e-02,3.76825e-02,3.57139e-02,-1.01371e-02,1.10895e-02,2.33225e-02,-2.66132e-02,-6.21676e-03,2.73147e-02,1.56174e-02,1.48866e-02,3.12790e-02,1.56124e-02,-3.56008e-02,-2.08883e-02,-1.35785e-02,-2.92748e-02,2.31119e-02,1.46745e-03,3.11211e-02,-5.10779e-03,1.70140e-02,1.01590e-02,4.77586e-02,4.26067e-02,2.78493e-02,5.44891e-02,4.30894e-02,3.91634e-02,2.38391e-02,8.61268e-02,8.18411e-02,1.80601e-02,5.85530e-02,-6.27490e-03,-2.56358e-02,8.19871e-03,5.00776e-03,-1.22026e-02,-5.01330e-03,5.69968e-03,-2.04169e-02,2.83535e-02,-2.15332e-02,-8.08317e-03,-3.71969e-02,-1.11832e-02,4.46072e-04,-2.92998e-02,-6.30257e-02,-5.79788e-02,-1.06613e-01,-6.14172e-02,-1.55862e-02,2.35937e-03,-1.16577e-02,4.11711e-02,4.28919e-02,9.67650e-02,1.08425e-01,9.48288e-02,9.23712e-02,3.20498e-02,-7.95905e-03,1.41401e-03,-3.65728e-02,1.74395e-02,-7.94166e-03,2.23832e-02,-2.62572e-02,1.18526e-02,9.58223e-03,2.77347e-02,-3.34160e-02,-4.79647e-03,-5.14180e-02,-7.31258e-02,-6.71030e-02,-1.42593e-01,-1.50008e-01,-1.25315e-01,-8.34710e-02,3.58559e-05,-2.11630e-02,-1.62254e-02,4.64684e-02,4.26305e-02,5.85920e-02,1.24611e-01,8.44332e-02,7.50089e-02,1.97751e-02,-5.34913e-02,1.33454e-02,2.07735e-02,-3.18550e-02,-3.47687e-02,3.45498e-02,1.44551e-02,-8.67864e-03,-2.30778e-02,6.51054e-03,-1.44718e-02,-9.78522e-02,-1.23931e-01,-1.57305e-01,-1.86141e-01,-1.09702e-01,-1.35651e-02,-1.93939e-02,-1.02788e-02,1.45657e-02,1.42840e-02,6.10750e-03,7.03851e-02,7.62805e-02,1.00608e-01,9.32504e-02,7.27147e-02,6.23844e-02,6.40074e-03,-2.11489e-02,2.44537e-02,3.20775e-02,-1.51396e-03,6.29309e-03,2.54372e-02,-3.44686e-02,-2.38474e-02,-7.47667e-02,-3.55814e-02,-3.45496e-02,-9.88228e-02,-1.38916e-01,-1.59547e-01,-9.92142e-02,-6.56198e-02,-4.66268e-02,-5.35696e-04,-2.40129e-02,-2.11067e-02,-3.73115e-03,-1.05958e-03,5.17762e-02,3.73476e-02,9.78627e-02,3.69062e-02,1.82899e-02,-1.94094e-02,-4.68556e-02,2.38273e-02,7.60517e-03,-1.33659e-02,-4.47669e-03,2.17764e-02,-1.89832e-02,-7.34289e-02,-9.13482e-02,-3.03243e-02,-3.40793e-02,-1.31912e-01,-9.16959e-02,-1.45297e-01,-1.22445e-01,-6.39322e-02,6.85493e-03,1.84797e-02,-4.84084e-02,-4.56399e-02,-1.18038e-02,2.02555e-02,2.81027e-02,3.11224e-02,1.54752e-02,4.24430e-02,-4.67539e-03,-9.09402e-03,-5.37627e-02,6.67243e-03,2.14429e-02,-1.42156e-03,2.94691e-02,2.81221e-02,-2.80949e-02,-7.04432e-02,-6.35302e-02,-6.98501e-02,-7.40276e-02,-6.39729e-02,-9.81896e-02,-1.35085e-01,-8.17535e-02,-8.16110e-03,5.20519e-02,3.25597e-02,2.23763e-02,-5.23678e-02,-6.19310e-02,-7.15861e-02,-8.17773e-02,-5.88218e-02,-8.38330e-03,-7.06799e-03,-6.01861e-02,-1.18796e-01,-1.37989e-01,-5.18844e-02,1.19940e-02,-2.42790e-02,-8.61692e-03,9.91853e-03,-1.82839e-02,-5.55857e-02,-6.27738e-02,-1.15858e-01,-4.98863e-02,-4.72522e-02,-6.24647e-02,-6.55374e-02,-1.78923e-02,2.94886e-02,6.41094e-02,5.14881e-02,6.29803e-02,-4.84741e-02,-5.42058e-02,-1.21214e-01,-7.53291e-02,-7.22919e-02,-8.13783e-02,-7.34894e-02,-1.30933e-01,-1.36094e-01,-9.77387e-02,-3.77965e-02,1.19951e-03,6.20430e-03,1.00549e-02,7.91829e-03,-7.58725e-03,-8.99509e-02,-9.48056e-02,-1.19866e-01,-7.62377e-02,-6.45435e-02,-4.76008e-02,5.86770e-02,7.33324e-02,9.55760e-02,1.62774e-01,1.01468e-01,1.31249e-01,-2.86818e-02,-5.99490e-02,-1.04193e-01,-9.51188e-02,-1.49973e-01,-1.54486e-01,-1.30991e-01,-1.48751e-01,-1.89238e-01,-1.06239e-01,-3.86874e-02,2.79059e-02,2.90603e-02,5.45612e-05,-2.25119e-03,-4.55918e-02,-1.24841e-02,-7.41856e-02,-5.94700e-02,-3.59920e-02,-1.42180e-02,4.65157e-02,7.57366e-02,4.59998e-02,1.46227e-01,1.91710e-01,1.92543e-01,1.49213e-01,1.01304e-01,-1.84642e-02,-1.00152e-01,-1.33130e-01,-1.22896e-01,-6.62582e-02,-1.10805e-01,-8.77534e-02,-6.34799e-02,-4.93977e-02,9.50988e-03,-3.32040e-02,3.31755e-02,1.31520e-02,1.59081e-02,-4.36156e-03,-5.39747e-03,-1.79207e-02,-5.49510e-02,-7.39176e-02,1.67727e-02,-5.93995e-03,1.68772e-02,5.16958e-02,1.32127e-01,1.57504e-01,1.72598e-01,1.98718e-01,1.20386e-01,2.38967e-02,-6.42555e-03,-4.84676e-02,-4.32733e-03,3.37957e-02,-1.37178e-02,7.04438e-03,2.64483e-02,-1.70648e-02,-2.11654e-02,-2.86687e-02,-1.82774e-02,-1.25514e-02,-4.70513e-03,-4.11183e-02,-2.63767e-02,-5.09494e-02,-4.97239e-02,-1.01738e-01,-7.77564e-02,-2.41392e-02,-3.47138e-02,-1.35491e-02,6.84833e-02,1.12661e-01,2.44402e-01,2.46276e-01,9.82646e-02,4.90646e-02,-2.12067e-02,2.31536e-02,6.94669e-03,3.27621e-02,-2.41252e-03,-2.00029e-02,-2.39491e-02,-3.50964e-02,-2.61956e-02,2.69732e-02,2.75484e-02,2.52063e-02,2.04685e-03,-1.30937e-03,2.89504e-03,-9.07806e-02,-7.88300e-02,-1.09412e-01,-4.79508e-02,-2.64853e-02,-3.59859e-02,5.20376e-02,1.09819e-01,1.23609e-01,1.88027e-01,1.67971e-01,4.54448e-02,-6.85556e-02,-1.34941e-01,-2.73559e-02,-5.07441e-02,-5.63389e-02,-3.83621e-02,-8.24459e-02,-6.07494e-02,-3.07703e-03,-3.63714e-02,-3.73911e-04,-2.11668e-02,-2.47236e-02,-2.54550e-02,2.26143e-02,-4.67129e-03,-6.99471e-02,-9.34557e-02,-8.90438e-02,-1.03989e-01,-5.46137e-02,3.49651e-02,9.07658e-02,1.01921e-01,1.26288e-01,2.24348e-01,9.10074e-02,-3.50590e-02,-1.09303e-01,-1.77710e-01,-9.33043e-02,-6.45768e-02,-7.18903e-02,-6.00695e-02,-8.96843e-02,-9.14991e-02,-3.72395e-02,-1.15146e-02,2.32567e-03,2.14037e-02,-1.67048e-02,4.83994e-03,-3.48442e-02,-5.59513e-02,-8.68875e-02,-1.41632e-01,-1.33854e-01,-6.38656e-02,5.81216e-02,9.19193e-02,6.76625e-02,2.50968e-02,1.06416e-01,1.51072e-01,-6.84093e-03,-1.51690e-01,-2.19827e-01,-1.27251e-01,-1.08925e-01,-5.78026e-02,-7.17573e-02,-1.37312e-01,-7.42522e-02,-9.04111e-02,-7.64923e-02,-3.14976e-02,-3.08185e-02,1.55121e-02,-2.17349e-02,2.45395e-02,-4.24233e-02,-8.78117e-02,-1.92390e-01,-2.57034e-01,-1.73896e-01,-3.30623e-02,1.37717e-01,2.18197e-01,1.58990e-01,1.55232e-01,1.46962e-01,8.75703e-02,-9.83993e-02,-1.84700e-01,-2.09298e-01,-1.36799e-01,-1.11563e-01,-8.82331e-02,-9.13970e-02,-9.84980e-02,-1.39705e-01,-7.55995e-02,-1.07636e-01,-1.97751e-02,2.53372e-02,-3.99464e-03,2.89466e-03,7.45532e-03,-1.08777e-02,-8.40565e-02,-2.03424e-01,-2.51791e-01,-2.16615e-01,2.95975e-03,1.42837e-01,1.41254e-01,1.28855e-01,1.44686e-01,1.14276e-01,-4.40821e-03,-1.22667e-01,-2.19834e-01,-1.70517e-01,-7.95910e-02,-1.05332e-01,-4.89564e-02,-4.17570e-02,-1.52910e-01,-1.38973e-01,-8.07588e-02,-3.29232e-02,2.60976e-02,8.49051e-03,2.74880e-02,-6.70141e-03,2.85817e-02,-4.19786e-02,-8.12970e-02,-1.32563e-01,-2.22532e-01,-1.67713e-01,-8.26347e-02,5.82872e-02,1.01674e-01,1.41536e-01,1.42760e-01,8.49040e-02,-3.82665e-02,-9.92926e-02,-1.39183e-01,-1.34791e-01,-1.11628e-01,-4.43560e-02,1.29593e-02,-7.76097e-02,-1.48695e-01,-1.02298e-01,-9.05505e-02,-5.13358e-02,-1.27053e-02,2.01469e-02,2.18653e-02,-3.30386e-02,-2.95829e-02,-8.46396e-02,-8.99379e-02,-1.09714e-01,-9.87573e-02,-7.92405e-02,-5.63482e-02,-3.45885e-02,6.91287e-02,1.02927e-01,8.59233e-02,3.63941e-02,1.24636e-04,-7.97239e-02,-1.87255e-02,-1.73391e-02,-2.23944e-02,-4.61766e-02,4.09274e-04,-5.43641e-02,-7.98230e-02,-5.56015e-02,-7.06656e-02,-4.59421e-02,5.22278e-03,1.97198e-02,3.17388e-02,-4.28248e-03,-2.22855e-02,-7.24018e-02,-5.37290e-02,-6.60530e-02,-7.05282e-02,-7.10705e-02,-5.85941e-02,5.33406e-05,5.27687e-02,2.32966e-02,4.16013e-02,-1.98312e-03,3.66251e-02,-7.32054e-03,2.47863e-03,2.43107e-02,-3.19588e-02,-5.59848e-02,-4.27824e-02,-2.11126e-02,-8.77002e-02,-3.05327e-02,2.22839e-03,2.22145e-02,8.14448e-04,-6.07946e-03,-2.67140e-02,3.47723e-02,-2.11866e-03,-2.06998e-02,-3.68332e-02,-2.00140e-02,-8.69869e-03,2.16021e-02,-1.53386e-03,-2.89609e-02,-2.74652e-02,-9.68186e-03,-1.48329e-02,1.88130e-02,1.75079e-02,8.07032e-02,8.32744e-02,7.18733e-02,6.70298e-02,2.44451e-02,-3.81241e-02,-5.75643e-02,-6.47875e-02,-4.99748e-02,2.26032e-02,1.24420e-02,-2.37227e-02,-3.56147e-02,-2.23731e-02,-2.13693e-02,5.99640e-03,-3.57622e-02,-4.76233e-02,4.68422e-03,5.61892e-03,-2.00305e-02,3.22868e-02,-1.23477e-02,-3.51699e-02,-2.81673e-02,5.71947e-02,5.89031e-02,7.49371e-02,1.21211e-01,1.54232e-01,1.65761e-01,7.44944e-02,6.38271e-03,-4.06502e-02,-6.75198e-02,-2.22349e-02,-2.41861e-02,-1.08696e-02,3.14733e-04,6.29798e-03,3.18755e-02,7.73548e-03,1.85522e-02,1.13510e-03,-3.36722e-04,-3.11258e-02,2.33937e-02,-1.02476e-02,-4.33160e-03,-2.78674e-03,-1.70867e-02,-1.18590e-02,6.49875e-03,-3.35193e-02,-4.43194e-02,-3.74076e-02,-5.63200e-03,4.30255e-02,3.58626e-03,3.39670e-02,4.67898e-02,2.31476e-02,-1.87265e-02,-2.69573e-02,1.26453e-04,-1.69054e-02,-1.58797e-02,-1.66062e-03,-1.87162e-02,-1.99616e-02,-1.12513e-02,1.06440e-02,-2.65954e-02,3.34600e-02,3.23894e-02,1.01346e-02,-3.01014e-02,-2.33701e-02,-6.93808e-02,-4.76050e-02,-7.09923e-02,-8.59234e-02,-1.00306e-01,-9.72425e-02,-1.27497e-01,-9.75424e-02,-5.15559e-02,-2.71570e-02,3.44314e-03,-4.60655e-02,-2.05138e-02,1.41548e-02,1.95040e-02,6.28556e-03,1.91504e-02,3.23883e-02,3.30927e-02,9.85086e-03,-2.98807e-02,-5.25174e-03,-1.88567e-02,-1.84194e-02,3.15061e-02,5.95731e-03,-1.87731e-02,2.34779e-02,-1.44458e-02,-3.89086e-02,-3.19735e-02,-5.60191e-02,-6.25583e-02,-5.89361e-02,-5.65463e-02,-3.26735e-02,4.07392e-03,-2.41627e-02,2.65055e-02,1.23005e-03,-1.29273e-02,-1.49472e-03,-5.90831e-03,1.20640e-02,3.12525e-02,5.72139e-03,-3.38794e-02,7.70163e-03,1.17137e-02,-2.54381e-02,-2.45340e-02,9.72031e-03,-3.54236e-02,-2.66137e-02,2.94277e-02,-3.65269e-03,-9.51561e-03,1.20330e-02,1.24999e-02,-6.49900e-03,7.36350e-03,2.59143e-02,3.25950e-02,-1.38268e-02,-9.74771e-03,2.50397e-02,2.57686e-02,-1.13679e-03,8.46858e-03,2.78103e-02,-2.07924e-02,3.27208e-03,6.22258e-03,-5.72773e-03,-1.62191e-02, +-2.42788e-03,-3.09786e-02,-2.63141e-02,-1.96997e-02,-9.13501e-03,-2.18505e-02,1.03401e-02,-3.48424e-02,-3.82447e-03,-2.78976e-02,7.59387e-03,-7.81681e-03,5.39139e-03,-5.65341e-03,-2.99855e-02,2.53384e-02,-2.28329e-02,1.27077e-02,3.54902e-02,2.80672e-02,3.53709e-02,-2.32196e-02,2.73053e-02,-9.68282e-03,-1.74193e-02,-2.45845e-02,3.47289e-02,1.39315e-02,8.56305e-03,3.55340e-02,-1.36360e-02,-1.70572e-02,-1.37094e-02,-1.57012e-02,1.39413e-02,1.62129e-02,7.92920e-03,1.98485e-02,-2.53274e-02,2.84819e-02,-7.88433e-04,4.23581e-02,-1.64082e-02,2.72849e-02,-1.27537e-02,1.88152e-02,6.76199e-03,1.60825e-03,3.27947e-02,2.09193e-02,5.24195e-03,8.27151e-03,-1.94880e-02,1.17995e-02,-1.14968e-02,1.90119e-02,-3.51986e-02,2.39024e-02,-2.22395e-02,-3.30294e-02,7.53998e-03,3.50550e-02,-6.24182e-03,4.49948e-02,4.44538e-02,2.51760e-02,2.58031e-02,3.32868e-02,9.78250e-02,8.26103e-02,5.91072e-02,3.16461e-02,8.60932e-02,7.78300e-02,2.78436e-02,2.96020e-02,1.50795e-02,4.80291e-02,1.09085e-02,2.90240e-03,-2.31223e-02,-2.71867e-02,2.01749e-03,-3.09905e-02,-1.07337e-02,5.85199e-03,1.56999e-02,-3.02385e-02,5.54839e-03,3.09371e-02,-6.98855e-03,3.60395e-03,5.98642e-02,6.66280e-02,7.87995e-02,1.36587e-01,6.60848e-02,8.33026e-02,9.51002e-02,6.47073e-02,5.47917e-02,8.61490e-02,3.56225e-02,1.00617e-01,4.51069e-02,6.84998e-02,5.13543e-02,3.58091e-02,-2.44889e-02,3.68253e-04,-1.90603e-02,-1.69358e-03,3.20353e-02,7.74104e-04,-1.43459e-02,-1.23611e-02,-9.44384e-03,8.64601e-03,1.05904e-02,1.66039e-02,3.96267e-03,8.51461e-02,4.02803e-02,2.81570e-02,-3.55417e-02,-7.25754e-03,-4.38932e-02,-5.69909e-02,-5.84533e-03,-4.67838e-03,1.75672e-02,6.06381e-02,5.38398e-02,2.09110e-02,3.01775e-02,3.35068e-02,-2.67441e-02,-1.39535e-02,2.62227e-02,3.29866e-02,-9.67192e-03,3.22375e-04,-3.42084e-03,1.10351e-02,2.57967e-02,-1.85960e-02,2.14491e-03,-3.87526e-03,-7.63456e-03,-2.48292e-02,-3.19862e-02,-8.38245e-02,-7.49816e-02,-6.71009e-02,1.50504e-02,3.74514e-03,5.96917e-02,6.51612e-02,6.46393e-02,3.80975e-02,2.50639e-02,9.19801e-04,-1.79088e-02,5.33789e-03,-2.96193e-02,-2.41336e-02,6.32454e-03,2.16068e-02,-7.99317e-03,1.38727e-02,-2.53158e-02,-2.26591e-02,-4.25513e-02,-3.85825e-02,-5.68468e-02,-7.43011e-03,-8.29145e-02,-1.34486e-01,-1.05719e-01,-1.10929e-01,-1.19900e-01,-9.98254e-02,-7.10835e-02,1.22332e-04,-3.00856e-03,-1.51528e-04,2.97901e-02,-1.41873e-02,-3.82803e-02,-5.69509e-02,-1.98345e-02,-8.65380e-02,-1.11291e-01,-8.72502e-02,-3.33540e-02,-3.69676e-03,-8.42243e-03,-8.03592e-03,2.33596e-02,-3.81600e-02,-5.08820e-02,-3.09812e-02,-5.22579e-02,-7.79580e-02,-1.19689e-01,-1.53402e-01,-1.79498e-01,-1.43407e-01,-8.67342e-02,-2.77120e-02,-4.96806e-02,-2.82007e-02,9.34270e-03,-2.11299e-04,-5.47377e-02,-2.49774e-02,-1.27624e-01,-8.18214e-02,-8.32806e-02,-9.26238e-02,-1.31801e-01,-8.39514e-02,-7.49315e-03,-2.07053e-02,2.88782e-02,-1.46676e-02,2.58212e-02,-8.77285e-03,-3.51849e-02,-2.39616e-02,-9.53374e-02,-1.07057e-01,-1.25421e-01,-1.15283e-01,-7.16241e-02,-9.01639e-02,5.73292e-03,-1.18584e-02,9.98269e-03,-7.20895e-03,9.60495e-04,-1.42615e-02,-7.21426e-02,-6.92511e-02,-1.13923e-01,-7.20968e-02,-1.13728e-01,-1.12325e-01,-2.05597e-01,-1.63063e-01,-3.46010e-02,-2.77964e-02,-2.77999e-02,-2.77356e-02,1.82238e-02,-3.84315e-02,-2.49510e-02,-4.99262e-02,-1.23206e-01,-1.44747e-01,-1.20928e-01,-5.68610e-02,-7.22103e-02,-3.39790e-02,4.72603e-02,6.86081e-02,-3.63896e-02,-3.80348e-02,2.41683e-02,-2.77614e-02,8.50117e-04,-1.52443e-02,-2.13503e-02,-1.23920e-01,-1.07869e-01,-1.15027e-01,-1.36789e-01,-1.81516e-01,-7.33546e-02,-3.52592e-02,-9.81025e-04,2.84776e-02,-3.38767e-02,1.64823e-02,-3.75255e-02,-1.28168e-01,-1.05345e-01,-1.03882e-01,-3.82369e-02,-4.74002e-02,-6.66722e-02,-2.43501e-02,-2.67124e-02,-5.33230e-04,-5.62590e-02,-7.77488e-02,-7.35358e-02,1.21900e-02,-2.11964e-02,1.26451e-02,-1.52053e-02,-3.26460e-02,-4.05205e-02,-2.92755e-02,-1.30193e-01,-1.49067e-01,-3.40364e-02,1.70513e-03,-2.61155e-02,1.36797e-02,-7.36560e-03,-3.40928e-02,-6.60428e-02,-1.33197e-01,-1.01236e-01,-7.78649e-02,-6.43531e-02,-3.73823e-02,-3.51883e-02,-5.70454e-02,-2.65110e-02,-5.41611e-02,-1.12976e-01,-1.88972e-01,-1.02575e-01,-4.50271e-02,1.42147e-03,6.10598e-02,-4.73744e-03,6.83650e-02,2.52288e-02,3.61128e-02,-2.66151e-03,-1.05323e-01,-8.78422e-03,-3.17076e-03,-8.32345e-03,-2.73630e-02,-3.42542e-02,2.46014e-03,-1.03162e-01,-5.16741e-02,-3.26608e-02,-5.29207e-03,4.18275e-02,-2.25765e-03,-9.45284e-03,6.40570e-02,4.50850e-02,-4.89145e-02,-1.45148e-01,-1.23814e-01,-9.90901e-02,-6.20252e-02,-4.17503e-02,8.75684e-03,1.22163e-03,7.77355e-02,1.20652e-01,1.46163e-01,1.59598e-01,5.34493e-03,-5.68559e-02,-3.08139e-03,2.28585e-02,5.15657e-03,-1.39482e-02,-4.27655e-02,-2.70115e-02,-1.19389e-02,4.68351e-02,6.93239e-02,9.74931e-02,9.32296e-02,1.07088e-01,8.91971e-02,7.39163e-02,-7.40798e-02,-6.17347e-02,-1.08133e-01,-6.55204e-02,-5.30249e-02,-2.73064e-02,-2.33317e-02,6.66701e-03,5.43591e-02,1.69629e-01,2.34229e-01,2.16116e-01,4.38811e-02,-2.73785e-02,2.19982e-02,1.13332e-02,3.10338e-02,-1.50962e-02,-2.52161e-02,-1.54696e-02,2.83941e-02,1.02969e-01,1.63348e-01,1.23365e-01,1.61368e-01,1.74704e-01,1.08277e-01,5.48726e-02,-2.52404e-02,-1.06449e-01,-1.50709e-01,-9.98518e-02,-1.09181e-02,-2.55547e-02,6.42670e-02,7.04600e-02,1.31166e-01,2.26155e-01,2.27603e-01,1.59199e-01,-6.33377e-03,-1.76509e-02,2.16322e-02,-2.99959e-02,1.91035e-02,-9.47550e-04,-5.82950e-03,-1.25209e-02,8.07491e-02,1.72683e-01,1.67023e-01,1.84516e-01,2.10218e-01,2.20255e-01,1.94064e-01,5.88828e-02,-3.19771e-02,-6.98989e-02,-5.84872e-02,-7.63350e-02,6.87651e-03,2.25755e-02,6.74560e-02,1.01314e-01,1.71507e-01,1.30999e-01,1.33022e-01,1.40366e-01,4.55320e-02,7.16924e-03,-6.21099e-03,4.97772e-03,-1.14691e-02,-4.00464e-02,4.22076e-03,3.06399e-03,1.07151e-01,1.24210e-01,1.65373e-01,1.92240e-01,1.83184e-01,1.99222e-01,1.96430e-01,7.95210e-02,-3.68481e-02,-6.75016e-02,-5.03838e-02,6.49059e-03,8.51831e-02,9.39685e-02,1.32197e-01,1.21661e-01,1.42784e-01,1.07261e-01,3.77320e-02,8.94845e-02,2.94354e-02,1.91979e-02,1.61566e-02,6.18899e-03,-3.04975e-02,5.52116e-03,-2.01855e-02,-2.71818e-02,3.43916e-02,5.37308e-02,1.01572e-01,9.87220e-02,1.78777e-01,1.88981e-01,1.58085e-01,-9.81539e-03,-8.25974e-02,-1.86949e-02,-1.97604e-02,7.07450e-02,1.35548e-01,1.50851e-01,1.27917e-01,1.12639e-01,9.79464e-02,4.75257e-02,4.84054e-02,5.29915e-02,5.05033e-02,8.16463e-03,-1.08400e-02,-5.03494e-03,-5.38649e-04,-8.48063e-03,-7.25873e-02,-2.35849e-02,-3.32636e-02,-2.19173e-02,7.92936e-02,1.32519e-01,1.09050e-01,1.19631e-01,1.07157e-01,3.82125e-02,-6.01196e-02,-2.85247e-02,1.06705e-02,1.02092e-01,1.56119e-01,1.54964e-01,6.35128e-02,8.81474e-02,5.95534e-02,4.72274e-02,2.39091e-02,7.84787e-02,5.39373e-02,2.96671e-02,-1.00465e-02,3.00506e-02,-3.43515e-02,-4.81320e-02,-5.55179e-02,-1.46343e-02,-4.82034e-02,9.13513e-03,2.21880e-02,5.04619e-02,4.64719e-02,1.19984e-01,6.03306e-02,5.82427e-02,-4.40258e-02,-1.13240e-03,4.74326e-02,1.50911e-01,1.35439e-01,9.15774e-02,5.16910e-02,3.69917e-02,1.55447e-02,-3.84366e-02,-3.71180e-02,8.57876e-02,1.55368e-02,2.74362e-02,-9.05569e-04,3.23755e-02,-8.58942e-03,-4.01535e-02,-4.46058e-02,-1.44792e-02,-2.20479e-02,-5.93942e-02,2.17742e-02,-2.19672e-02,2.93521e-02,7.78738e-02,7.85853e-02,3.37986e-02,4.67681e-02,7.92776e-02,1.36555e-01,1.01358e-01,1.09707e-01,5.35464e-02,3.96621e-02,3.02018e-02,3.10083e-04,-1.12300e-02,-3.73061e-03,3.75885e-02,2.49960e-03,3.57854e-02,2.66910e-02,-1.92813e-02,2.94084e-02,-5.62278e-03,-1.64604e-02,-5.90337e-03,-4.92195e-02,-2.91912e-02,-4.57174e-02,-1.33836e-02,8.64059e-03,2.33883e-02,8.37389e-02,8.04697e-02,2.46826e-02,7.94118e-02,6.84617e-02,5.26442e-02,5.11029e-02,4.06750e-03,-3.01501e-02,-3.51748e-02,-6.00086e-02,-3.70950e-02,-1.14146e-02,1.34037e-02,1.80203e-02,2.57185e-02,-1.80185e-02,-3.10501e-02,2.81981e-02,-3.69024e-02,-4.40052e-02,-3.05048e-02,2.55070e-02,1.58068e-02,-1.74289e-02,2.20912e-02,-6.95242e-03,4.65767e-02,4.11815e-02,1.43325e-02,3.13619e-02,-2.11932e-02,-1.38958e-02,-3.02591e-02,-1.05355e-02,-3.71019e-02,-6.87714e-02,-8.00867e-02,-1.01588e-01,-4.03272e-02,-2.17109e-02,4.97696e-03,1.09609e-03,1.20100e-02,-2.33668e-02,-1.84657e-02,2.54380e-02,-1.55910e-02,-3.44823e-02,-5.62049e-02,-5.92188e-02,-8.56314e-03,4.10612e-02,-1.78309e-02,-4.26690e-03,-1.94371e-02,-6.29567e-02,-1.51816e-02,-4.83825e-02,-3.02331e-02,-4.42979e-03,-4.29323e-02,-7.83113e-02,-2.50102e-02,-1.25707e-01,-1.15775e-01,-8.91274e-02,-6.84021e-02,-2.16667e-02,-6.22301e-03,-1.70195e-02,-2.02627e-02,-1.40566e-02,2.75278e-02,2.73560e-02,9.75006e-03,-1.02842e-02,-2.84095e-02,-1.67884e-02,-1.49207e-02,-5.18856e-02,-5.94712e-02,-5.64620e-02,-7.94827e-02,-1.27928e-01,-7.63896e-02,-9.73928e-02,-2.89569e-02,-7.63099e-02,-7.67502e-02,-9.56408e-02,-1.13955e-01,-1.23802e-01,-8.01811e-02,-8.97881e-02,-8.18992e-02,-7.93393e-02,6.57810e-03,9.68640e-03,-3.12961e-02,2.99236e-02,2.27305e-02,1.63621e-02,-5.93203e-03,-1.30594e-02,-4.20099e-03,-7.18800e-03,-3.11371e-02,-7.21770e-02,-1.00769e-01,-1.61376e-01,-2.12618e-01,-1.72955e-01,-1.73605e-01,-1.90430e-01,-1.35215e-01,-1.15190e-01,-1.21245e-01,-1.73915e-01,-1.73989e-01,-1.26412e-01,-1.38507e-01,-9.80068e-02,-8.05996e-02,-5.43346e-02,-2.31659e-03,-2.31214e-02,3.22016e-02,-3.28328e-02,3.15800e-02,-2.13275e-02,-5.27840e-03,2.79377e-02,1.79802e-02,-2.60041e-02,2.08482e-02,1.59378e-02,1.97001e-03,-3.39810e-02,-6.88410e-02,-5.20787e-02,-5.65178e-02,-4.95835e-02,-9.43224e-02,-8.03615e-02,-4.13318e-02,-5.27693e-02,-5.18642e-02,-5.74497e-02,-7.59519e-02,-5.92615e-02,8.52914e-03,-2.35265e-02,3.01781e-02,3.43853e-02,1.18891e-02,8.13928e-03,-1.90504e-02,-2.40822e-02,2.72706e-03,-3.18256e-03,3.34384e-02,-2.94144e-02,-1.27907e-02,2.64331e-03,8.00371e-03,-8.74508e-03,-1.81660e-02,-1.82553e-02,-1.49441e-02,-3.01517e-02,1.99800e-02,2.48928e-02,-5.04732e-03,-9.02355e-04,-1.39257e-02,-2.15844e-02,2.05115e-02,1.92201e-02,2.41811e-02,-1.12765e-02,1.62716e-02,1.27266e-02,-1.42398e-02,-1.58811e-02, +1.90706e-02,3.77604e-03,-2.63255e-02,-2.62021e-02,2.52687e-02,-1.69977e-02,3.18370e-02,8.89906e-03,2.15175e-02,-1.17915e-02,-3.09779e-02,-3.23849e-02,-3.27365e-02,1.85161e-02,9.43077e-03,-7.87821e-03,3.05896e-02,-2.95163e-02,-3.01883e-02,-3.34025e-02,-1.15817e-03,-8.62613e-03,1.20241e-02,-2.72064e-03,-2.48472e-02,-9.53331e-03,-2.41939e-02,-2.94723e-02,2.60645e-02,-2.59292e-03,-3.02424e-02,2.85055e-02,2.64394e-02,2.74407e-02,3.44378e-03,1.84902e-02,2.60086e-02,-3.08579e-02,1.28500e-02,-2.98094e-02,-1.01089e-03,1.66202e-02,2.96228e-02,-2.40474e-02,-5.89896e-04,-1.62075e-02,-3.22316e-03,-1.12615e-03,-2.40912e-02,-2.14351e-02,-2.97783e-03,3.53224e-02,-2.91794e-02,-2.45289e-02,2.71696e-02,-2.76037e-02,-1.87636e-02,2.89828e-03,1.75942e-02,-1.17763e-02,-5.11258e-03,-9.60919e-03,-1.97635e-02,1.83281e-02,-4.43118e-03,3.46452e-02,-3.36746e-02,-2.13213e-02,2.23986e-02,-3.24638e-02,2.67795e-02,-2.88327e-03,6.43677e-03,3.32428e-02,1.68923e-02,-1.41308e-02,-2.56167e-02,-6.16314e-03,-2.02711e-02,1.84030e-02,-2.94529e-03,-2.20129e-03,-2.57234e-02,2.99192e-03,-2.96922e-02,-2.26869e-02,9.78902e-03,-2.00865e-03,-3.15997e-03,2.96088e-02,-3.49099e-02,1.49666e-02,2.67116e-02,-1.20503e-02,1.24259e-02,-1.68510e-02,1.35003e-02,-2.27243e-02,-3.17700e-02,1.92961e-02,-7.58310e-03,-1.22979e-02,-7.62203e-03,1.76145e-02,-2.72609e-02,-6.67938e-03,-2.35257e-02,-7.44277e-03,1.87366e-02,-1.80561e-02,-6.14245e-03,1.39475e-02,-3.15623e-03,-1.71748e-02,1.63387e-03,1.71698e-02,6.89733e-03,2.46856e-02,1.49773e-02,-2.99087e-02,-2.16041e-02,8.22715e-03,-2.04947e-02,-7.57259e-03,-2.04057e-02,-2.50703e-02,-2.92359e-02,-2.90476e-02,-7.39918e-03,-3.64863e-02,1.58091e-02,-5.27598e-03,-1.00450e-02,2.08708e-02,1.97708e-02,-3.11353e-02,-2.30485e-02,3.58731e-03,-5.83421e-03,5.82267e-03,-7.32441e-03,-1.56748e-02,2.89702e-02,-2.29264e-02,3.87720e-03,-2.93582e-02,-2.52774e-02,-1.19455e-02,1.41051e-02,1.07582e-02,3.36806e-02,-3.73221e-02,1.30835e-02,1.23161e-03,5.46122e-03,8.45542e-03,-8.43387e-03,6.78173e-03,-7.84177e-03,-1.25651e-02,1.25247e-02,3.41041e-02,-6.80049e-03,1.25473e-02,4.31447e-03,-6.01517e-03,3.55795e-02,-8.95058e-03,1.70201e-02,1.31424e-02,4.44055e-06,-8.80802e-03,-3.40438e-02,2.46321e-02,1.20108e-02,-1.73043e-02,-2.95986e-02,-2.57930e-02,-3.54234e-02,1.22511e-02,-1.00641e-03,-3.03903e-02,-2.91643e-02,-3.51914e-02,-1.61383e-02,-2.29079e-02,1.49690e-02,-2.11116e-02,1.32928e-03,1.44748e-04,3.06148e-02,-2.78537e-02,-2.65708e-02,2.85899e-02,6.60172e-03,-2.69206e-02,-3.04972e-02,-1.40920e-02,-1.47257e-02,2.17347e-02,1.23762e-02,-1.81520e-02,-1.54891e-02,-8.73803e-03,1.27637e-02,-3.02651e-02,3.01423e-02,-2.31029e-02,-1.99203e-02,-3.59578e-02,-2.27507e-02,2.09716e-02,-4.11612e-02,5.42371e-03,-2.64622e-02,-4.81778e-03,-2.90652e-02,2.94201e-02,3.75710e-03,-2.22926e-02,-3.05660e-02,-3.53413e-02,-2.12188e-03,2.85744e-02,-3.41611e-02,-1.02389e-02,1.75077e-02,-3.92215e-03,3.11482e-02,1.63937e-02,-2.66175e-02,-2.95094e-02,1.66258e-02,1.37195e-02,1.94864e-02,-5.49028e-03,6.19191e-03,-1.25371e-02,2.63200e-02,-8.35864e-03,-2.66266e-02,2.61253e-02,-1.20617e-02,2.78488e-05,-3.46202e-02,4.64196e-03,2.32123e-03,-8.14938e-03,-1.78929e-02,-1.21230e-02,3.16827e-02,-2.99920e-02,-8.40134e-03,2.82564e-02,1.39247e-02,-3.50094e-03,2.45738e-03,-2.65808e-02,-1.23444e-02,1.40816e-03,2.70484e-02,3.14729e-02,-2.75180e-02,-1.83806e-02,-2.66149e-03,-9.36916e-03,-6.27957e-03,-3.12149e-02,-2.31612e-02,9.59253e-03,2.08972e-02,2.20187e-02,-2.69051e-02,8.69484e-03,2.91362e-02,-7.14535e-03,1.16143e-02,-4.29888e-03,7.27925e-03,2.30334e-02,-2.50957e-02,2.22021e-02,2.07253e-02,-1.83722e-03,-3.45426e-02,-6.93001e-03,-2.24476e-02,-3.63277e-02,3.32568e-02,-2.39044e-02,-1.85177e-02,-1.98271e-02,-3.16481e-02,-4.23029e-03,-2.29519e-02,-3.39167e-02,5.09300e-03,-2.13489e-02,-6.72513e-03,-3.12726e-02,-2.52699e-02,2.51019e-02,2.52207e-02,2.39859e-02,-3.03601e-02,-2.11864e-02,1.35580e-02,-3.48326e-02,1.71991e-02,-3.31753e-02,-1.82707e-02,1.37641e-03,-2.05436e-02,2.84619e-02,-3.35545e-02,-2.55205e-02,6.98973e-03,1.90925e-02,-2.32099e-02,-3.61928e-02,1.51847e-02,-1.95625e-02,-1.06975e-03,-6.80792e-04,-1.25130e-02,-9.20437e-03,-2.65068e-03,-2.59752e-03,4.68693e-03,-2.40458e-02,-1.61057e-04,-1.95503e-02,-8.80510e-03,-3.28566e-02,3.19364e-02,1.53905e-02,1.45701e-03,-3.83671e-03,1.07112e-02,-1.04627e-02,2.35919e-02,8.44036e-03,-3.65116e-03,-2.07719e-02,-1.19352e-02,-2.76869e-02,8.65836e-03,2.41669e-02,1.16196e-02,-3.13975e-02,-2.64451e-03,-2.70965e-02,2.41787e-02,1.61647e-02,-3.77701e-02,-3.43492e-02,-5.56383e-03,5.53534e-04,-3.65897e-02,-2.80844e-02,-1.02583e-02,2.23335e-04,2.30953e-02,-7.15879e-03,4.08638e-03,3.03133e-02,6.63012e-04,-2.31204e-02,-1.75983e-02,-8.94910e-03,2.06848e-02,-2.55649e-02,2.56681e-02,-2.57835e-02,7.58880e-03,-2.83178e-02,-3.77096e-02,-1.47943e-02,5.52750e-03,1.25217e-02,-2.43387e-02,-4.61818e-03,-2.99429e-02,2.53706e-03,-9.08460e-03,1.35872e-02,-2.33023e-02,1.33928e-02,-1.12001e-02,-3.02225e-02,1.93783e-02,6.97390e-03,5.09638e-03,-3.13075e-02,2.18195e-02,-2.70379e-02,-1.80356e-02,6.79810e-03,2.62365e-02,-3.22870e-02,-2.06576e-02,2.03606e-02,-2.38700e-02,-2.51515e-02,-4.05113e-03,8.50451e-03,-1.96737e-02,2.15393e-04,2.70214e-02,-2.55384e-02,2.02992e-03,-3.09403e-02,2.40059e-02,-1.69044e-02,1.27916e-03,2.39856e-02,-1.08491e-02,-9.86869e-03,-3.49395e-03,8.07844e-03,2.84406e-02,-3.06125e-02,1.48439e-02,1.18141e-02,1.96702e-02,-1.30779e-02,1.51828e-02,-2.98252e-02,-1.60383e-02,1.90766e-02,-3.32810e-02,-3.05502e-02,3.46541e-02,-8.87374e-03,-6.23927e-03,1.87068e-02,1.56316e-02,2.87305e-02,2.40064e-02,-4.23937e-03,-1.28723e-02,1.75063e-03,-1.35160e-02,8.53891e-03,2.70087e-02,-2.92671e-02,-2.85269e-02,1.94504e-02,2.26913e-02,2.13498e-02,-1.59969e-02,1.03614e-02,3.34790e-02,-1.84792e-02,2.02816e-03,5.69369e-03,3.12267e-02,-8.43986e-03,-1.47842e-02,6.14899e-03,-3.46186e-02,2.85210e-02,1.56598e-02,1.92089e-02,-1.66533e-02,2.67352e-02,-2.23559e-02,2.02091e-02,-3.35177e-02,1.43968e-04,-1.84228e-02,3.64086e-03,2.94026e-02,-3.07010e-02,7.93863e-03,6.85783e-03,-2.42523e-02,-6.71037e-05,1.83290e-02,-2.30729e-02,1.39368e-02,-2.64043e-02,3.07363e-03,-2.10237e-02,-3.12490e-02,2.20483e-02,-6.23928e-03,-1.84481e-02,-3.16701e-02,-1.30145e-02,-2.68532e-02,8.45075e-03,-2.66898e-02,-3.85263e-03,-6.56820e-03,1.22872e-02,-2.77464e-02,-2.02055e-02,2.58553e-02,-3.36639e-02,-2.31319e-02,-2.74708e-02,1.20990e-02,2.96220e-02,3.14862e-02,1.28000e-02,3.31155e-02,-2.16787e-02,1.49159e-02,-1.89137e-02,-2.20117e-02,-2.29998e-02,1.37023e-02,2.95506e-02,2.73227e-02,-7.55082e-03,-2.80179e-02,2.50561e-02,-2.44206e-02,2.26262e-02,-2.71248e-02,-5.96089e-03,-2.00871e-02,-2.78127e-02,1.95103e-02,-3.49462e-02,1.80431e-02,2.29866e-02,-2.88468e-02,-2.69161e-02,-1.26650e-02,2.41790e-03,-1.90423e-02,-2.08374e-02,3.09241e-02,-1.07284e-02,6.94948e-03,1.80704e-02,8.97784e-03,-1.89843e-02,-3.59493e-02,1.25603e-02,-3.40029e-02,-1.92343e-02,2.18471e-02,-2.84169e-02,-3.52338e-02,-5.89956e-03,2.07940e-02,-2.47151e-02,2.79634e-02,-1.35240e-02,8.49927e-03,3.04696e-02,1.99215e-02,-1.38218e-02,-3.05239e-02,-2.96187e-02,1.43115e-02,1.68732e-02,1.24630e-02,2.27533e-02,3.14911e-02,8.46740e-03,2.24771e-02,6.95217e-03,7.53082e-03,1.61725e-02,-1.55129e-02,-9.87340e-03,8.36239e-03,2.72946e-03,4.64976e-03,-2.95442e-04,2.50704e-02,-1.21457e-02,8.90002e-03,-1.81220e-02,-2.34402e-02,2.32239e-03,-1.53489e-02,6.18109e-04,-3.38997e-02,-3.51286e-02,-3.22932e-03,1.80959e-02,9.38528e-03,-1.90876e-02,-2.39725e-03,-7.46765e-03,2.93755e-02,2.33194e-03,2.49459e-02,-2.66075e-02,-4.13297e-03,2.37847e-02,9.62933e-03,-3.72485e-02,2.57167e-02,-2.30906e-03,1.55938e-02,-1.03735e-02,2.65750e-02,1.95981e-02,-1.76401e-02,1.17591e-02,-1.51421e-02,2.45650e-02,1.76615e-02,2.01325e-02,1.24803e-03,-4.97137e-03,-1.20358e-02,-1.20471e-02,2.12161e-02,1.14262e-02,3.26446e-02,-2.54442e-02,2.41550e-03,1.71816e-02,2.88640e-02,1.27561e-02,9.53912e-04,2.38049e-02,-3.27523e-02,2.51679e-02,-3.60251e-02,-4.45873e-03,2.33933e-02,2.17396e-02,-1.45411e-02,-3.01195e-04,2.80346e-02,9.41456e-03,-3.61269e-02,-2.26611e-02,2.27347e-03,-2.70926e-03,4.78893e-03,1.51343e-02,-3.10168e-02,-7.45205e-03,-2.27942e-02,-2.09356e-02,-2.94357e-03,-2.76896e-02,3.07116e-02,9.66385e-03,-2.57777e-02,-2.20080e-02,1.68283e-02,-2.75586e-02,-4.80532e-03,-1.93333e-02,2.52172e-02,4.56423e-03,-3.22291e-02,-1.28827e-02,1.31906e-03,-2.59711e-03,2.16701e-02,-2.38781e-02,5.51073e-03,-5.40545e-03,3.42007e-02,2.13506e-02,-2.51850e-02,-3.35167e-02,-1.81932e-02,-1.61688e-02,-9.35566e-04,-2.99348e-03,3.16450e-03,1.37507e-02,2.42974e-02,1.76537e-02,3.27407e-02,-3.54554e-02,1.30045e-02,1.96950e-02,-2.04655e-03,1.62155e-02,1.40212e-02,5.34271e-03,-2.13586e-02,-5.85124e-04,-1.93550e-02,-3.39826e-02,-2.07929e-02,3.75722e-03,2.25582e-03,-2.34713e-02,-2.98537e-02,-1.51971e-02,9.17312e-04,-2.45757e-02,2.71059e-02,-1.09047e-02,9.88486e-03,-3.18827e-02,-3.31804e-02,7.42779e-03,-2.67987e-02,-3.37177e-02,-3.54785e-02,1.08759e-02,1.85057e-02,2.88880e-02,-1.20700e-02,-3.57384e-02,-1.81030e-02,-3.87460e-03,1.45125e-02,1.69253e-02,-3.51545e-03,-2.71154e-02,-3.55212e-02,3.09457e-02,6.95703e-03,-3.54562e-02,8.41971e-03,1.67316e-02,3.20967e-02,2.58017e-02,2.28711e-03,1.89356e-03,-5.49807e-03,5.06326e-03,-1.76016e-02,2.55783e-02,-2.03349e-02,1.89748e-02,1.63282e-02,5.55266e-03,-1.21846e-02,1.23767e-02,3.35145e-03,-1.60238e-02,-2.41720e-02,-2.09492e-02,-8.10008e-03,-7.73269e-03,-2.44427e-02,-3.28248e-02,7.74529e-03,-2.38002e-02,-2.58517e-02,-1.40273e-02,2.14166e-02,3.03262e-03,2.21345e-02,-9.91008e-03,-1.39447e-02,9.01143e-03,3.51404e-02,-1.85427e-02,-2.48613e-02,-2.44023e-02,-2.94384e-02,-8.30255e-05,-1.38642e-02,3.50644e-03,2.75413e-02,2.09395e-02,-1.83491e-02,-2.47543e-02,1.17808e-02,-1.00653e-02,3.10124e-02,-3.18363e-02,-2.34594e-02,1.85467e-02,-3.30631e-02,-2.60486e-02,2.62839e-02,1.25905e-02,3.23888e-02,3.50453e-02,2.36217e-02,2.83318e-02,-1.73504e-02,-3.43783e-03,1.48864e-02,2.66485e-03, +3.28142e-02,1.51035e-02,1.82648e-02,2.58378e-02,-6.17832e-03,3.41677e-02,1.14183e-02,1.18608e-02,-2.19863e-03,-3.56102e-02,-2.02937e-02,1.27550e-02,-1.18827e-02,5.03890e-04,-2.90170e-03,-3.14891e-02,-1.93340e-02,2.03152e-02,-5.78480e-03,-2.94293e-02,1.90018e-02,-3.68930e-03,2.26139e-02,2.67072e-02,-3.21726e-02,3.52182e-02,-1.16046e-02,1.85928e-03,-1.15955e-03,1.45718e-02,1.50398e-02,3.48415e-02,-3.49862e-02,-1.17241e-02,1.26927e-02,3.29892e-02,-2.11737e-02,-6.93080e-03,2.81137e-02,2.01484e-02,-9.43921e-03,-1.82987e-02,3.03486e-02,-1.22492e-02,-8.36274e-03,-2.96202e-02,-3.59246e-02,-1.32483e-02,3.02998e-02,-3.20886e-02,3.17647e-02,2.23856e-02,5.22171e-03,-2.36842e-02,-1.45719e-02,1.37106e-02,2.45838e-02,-2.22961e-02,3.16338e-02,-2.87439e-02,1.75125e-02,-2.33463e-02,2.74372e-02,-1.45463e-02,2.98449e-02,-1.19905e-02,-7.58832e-03,-1.79016e-02,-7.65057e-03,-2.66996e-02,-2.09485e-02,2.90126e-03,-6.39208e-03,-4.08111e-02,1.37300e-02,-1.59298e-02,1.92782e-02,2.32830e-02,-2.55846e-02,8.74986e-03,-3.30037e-03,1.43892e-02,1.62719e-02,1.94077e-02,-2.48552e-02,1.95485e-02,1.14831e-02,2.46776e-03,1.47118e-02,-9.89372e-04,-1.97675e-02,-4.59845e-03,2.14315e-03,-1.34715e-02,-8.46049e-02,-4.57266e-02,-7.33478e-02,-7.71866e-02,-7.82313e-02,-8.40842e-02,-1.04802e-01,-8.66148e-02,-1.28610e-01,-6.41930e-02,-4.99117e-02,4.21224e-03,-1.52401e-02,1.59583e-02,3.75605e-02,-1.08055e-02,2.37905e-02,8.94120e-03,-2.96781e-02,-1.48226e-02,1.05879e-02,3.18848e-02,1.87933e-02,-1.84039e-02,-2.81600e-02,-3.27840e-02,-4.27507e-02,-8.48971e-02,-1.08004e-01,-1.07710e-01,-9.30722e-02,-7.20332e-02,-6.64836e-02,-9.77620e-02,-1.04041e-01,-9.01736e-02,-8.54358e-02,-2.02263e-02,-2.56960e-02,1.03031e-02,4.05007e-02,-3.12112e-03,-3.10257e-02,7.48090e-03,-2.12611e-02,4.23038e-03,-2.65226e-02,5.26262e-03,1.76469e-02,-1.52384e-02,3.38379e-02,-2.94359e-03,-6.47391e-02,-5.40960e-02,-1.22200e-01,-1.96546e-01,-2.02085e-01,-1.03253e-01,-8.00961e-02,-5.75537e-02,-8.48851e-02,-7.70411e-02,-1.53737e-01,-1.20091e-01,-1.07082e-01,-3.62674e-02,2.13177e-02,8.96808e-03,-4.20861e-02,-1.02785e-04,-4.59986e-04,-2.80521e-02,-2.21996e-02,1.00656e-02,3.18066e-03,-8.27591e-03,1.22598e-02,-3.56721e-02,2.67344e-03,-6.05343e-02,-1.02854e-01,-1.94917e-01,-1.94006e-01,-2.31919e-01,-1.96549e-01,-6.47423e-02,3.48373e-02,5.24712e-02,1.25907e-01,1.18223e-01,8.69573e-02,7.32323e-02,9.58315e-02,-4.39634e-04,-1.77571e-02,-4.98130e-02,-4.57280e-02,-6.09472e-02,-4.46317e-02,1.97974e-02,3.68936e-02,6.34011e-04,-2.54671e-02,-2.85123e-03,9.34407e-03,1.71638e-02,-2.35221e-02,-1.32292e-01,-1.29714e-01,-2.20544e-01,-2.69960e-01,-2.24973e-01,-9.92707e-02,8.57296e-03,1.54789e-01,1.77819e-01,2.73834e-01,2.83884e-01,2.63714e-01,1.69831e-01,9.44053e-02,3.18609e-02,2.66639e-02,-3.83726e-02,-5.28573e-02,3.42414e-03,-2.67001e-02,1.25800e-03,1.27982e-02,-8.49334e-04,7.22982e-03,2.46203e-02,-3.11874e-02,1.26374e-03,-5.43047e-02,-8.31077e-02,-1.15289e-01,-2.11470e-01,-1.96069e-01,-1.53089e-01,-5.05410e-02,2.98402e-02,1.53711e-01,2.37454e-01,2.18737e-01,1.75423e-01,8.10211e-02,8.89120e-02,4.42601e-02,-5.65957e-02,-6.62119e-02,2.42081e-03,7.15246e-03,-3.76454e-02,-2.13176e-02,1.55400e-03,1.59137e-02,3.31157e-02,-1.60306e-02,-3.61489e-02,4.29375e-03,-6.34896e-02,-6.87016e-02,-8.85285e-02,-1.02967e-01,-9.24622e-02,-3.87615e-02,-7.23202e-04,4.84453e-02,8.55547e-02,9.53748e-02,1.09874e-01,9.90093e-02,1.68857e-02,-3.90218e-02,-1.39178e-04,-2.47517e-02,-3.85119e-02,-2.24264e-02,-3.16215e-03,-7.78717e-04,2.09674e-02,4.27015e-02,-3.59913e-03,-1.27335e-02,2.30332e-02,-5.36618e-03,2.84579e-02,1.55908e-02,-4.73939e-02,-2.73750e-02,-5.15927e-02,-4.81289e-02,2.73864e-02,3.41937e-02,3.83431e-02,7.65795e-02,8.72129e-02,6.11873e-02,2.96905e-02,3.16366e-02,1.28633e-02,-3.01502e-02,-9.01874e-02,5.97159e-03,-3.35527e-02,9.93967e-03,5.96930e-02,1.25917e-01,8.22391e-02,4.08573e-02,1.71868e-02,-1.72264e-02,4.08576e-03,-9.66484e-03,6.71450e-03,-1.97850e-02,-5.25428e-04,-1.96229e-02,2.18822e-03,5.80460e-02,6.97112e-02,1.41204e-01,1.51202e-01,7.93963e-02,-8.80399e-03,-1.11083e-01,4.83712e-03,7.46567e-02,4.21438e-02,-1.39752e-02,4.61073e-03,1.00992e-01,7.83732e-02,1.36287e-01,1.37659e-01,1.92966e-01,6.69226e-02,6.62562e-02,-7.72060e-03,-1.46059e-03,1.98372e-02,2.35810e-02,1.86950e-02,-3.46893e-03,-2.50771e-02,6.29877e-02,6.10602e-02,9.81508e-02,9.41833e-02,1.36182e-01,1.25190e-01,6.52144e-05,-1.05057e-01,-1.89658e-01,-5.35586e-02,1.83419e-01,1.19622e-01,1.30518e-02,1.25455e-01,1.73093e-01,1.82866e-01,1.94959e-01,2.05427e-01,8.76394e-02,4.64301e-02,-3.26121e-02,-9.48902e-03,-6.57467e-03,1.04867e-02,2.97468e-02,1.23919e-02,-3.80083e-02,1.54247e-02,8.26169e-02,5.29702e-02,4.27046e-02,5.18418e-02,6.96406e-02,1.70540e-02,-1.49099e-01,-2.49365e-01,-1.91606e-01,4.81997e-02,2.66173e-01,1.97151e-01,4.24549e-02,5.90129e-02,1.17276e-01,1.59467e-01,1.10560e-01,6.56867e-02,1.12194e-02,-6.95761e-02,-5.54171e-02,-4.29103e-02,2.32335e-02,-2.70860e-02,2.35475e-02,2.46642e-02,-2.16685e-02,-2.70635e-02,5.89185e-02,3.88622e-03,1.27740e-02,-1.19715e-03,4.26660e-03,-8.12984e-02,-1.09231e-01,-1.93860e-01,-8.47844e-02,1.62830e-01,2.55570e-01,1.22321e-01,5.91806e-02,2.31114e-02,-1.52288e-03,2.14732e-02,-4.01008e-02,-4.86343e-02,-1.11269e-01,-1.22204e-01,-1.25810e-01,-1.57660e-02,-3.90635e-02,-2.84022e-02,3.34493e-02,-6.13686e-03,-2.97104e-02,-1.60723e-02,-2.08480e-02,-5.52978e-02,-3.79134e-02,-4.14875e-02,-7.05611e-02,-5.21824e-02,-4.67193e-02,-7.04838e-02,-1.78479e-02,1.52354e-01,1.30594e-01,1.55848e-02,-1.09552e-02,-3.05469e-02,-8.36385e-02,-1.29981e-01,-1.16010e-01,-1.43438e-01,-1.62017e-01,-1.60168e-01,-1.11566e-01,-6.42526e-02,-1.61776e-02,-2.62017e-02,2.46641e-02,-3.27666e-02,-7.74213e-03,-2.45008e-02,6.35461e-05,-8.27054e-02,-1.11181e-01,-5.42331e-02,-1.56745e-02,2.81826e-02,5.78015e-02,4.27406e-02,7.32520e-02,9.26203e-02,4.27100e-02,2.95190e-02,-4.78455e-02,-4.56178e-02,-1.15041e-01,-1.74470e-01,-2.38397e-01,-2.11425e-01,-2.32650e-01,-2.19741e-01,-1.58129e-01,-4.72031e-02,-7.47640e-03,-7.21307e-03,-1.39012e-02,-8.90113e-03,-1.19632e-02,-2.40205e-02,-5.21650e-02,-1.15229e-01,-1.31017e-01,-3.29303e-02,4.99222e-02,7.39373e-02,8.89803e-02,1.12517e-01,8.09280e-02,7.40167e-02,5.33948e-02,-7.68107e-03,-4.94526e-02,-4.97979e-02,-1.16389e-01,-2.02161e-01,-1.72045e-01,-1.67733e-01,-1.79440e-01,-1.77666e-01,-1.31519e-01,-1.00097e-01,1.86836e-02,-2.13085e-02,1.42287e-02,1.94807e-02,1.64452e-02,-6.06937e-02,-1.27644e-01,-2.10430e-01,-1.42995e-01,-1.18026e-01,-5.65416e-02,3.66724e-02,7.09194e-02,6.25111e-02,1.05027e-02,5.49889e-02,3.65473e-03,-5.22753e-02,-9.60598e-02,-4.57680e-02,-5.55698e-02,-1.89608e-01,-1.32526e-01,-1.46926e-01,-2.08200e-01,-1.82964e-01,-1.28956e-01,-4.36510e-02,1.19741e-03,-2.37592e-03,-1.32741e-02,9.05421e-03,-2.89219e-02,-4.59233e-02,-1.12865e-01,-1.80802e-01,-1.02518e-01,-7.70286e-02,-7.91185e-02,-4.84343e-02,-4.80963e-02,-9.43669e-02,-5.05644e-02,-4.61710e-02,1.03999e-02,-6.05641e-02,-7.03192e-02,-5.04217e-02,-9.27718e-02,-1.20836e-01,-1.30050e-01,-1.99730e-01,-1.95108e-01,-1.38219e-01,-8.10636e-02,-5.17164e-02,1.80934e-02,-3.43897e-02,-2.62867e-02,-9.27558e-03,1.98499e-03,-2.19117e-02,-8.80917e-02,-8.36296e-02,-8.97798e-02,-5.58522e-02,-5.72067e-02,-1.33300e-01,-9.58491e-02,-1.08749e-01,-7.35709e-02,-5.56787e-02,-5.77632e-02,-3.63302e-02,-7.65120e-03,-3.81513e-02,-1.10714e-01,-1.08147e-01,-1.61182e-01,-1.70265e-01,-1.69187e-01,-1.07695e-01,-6.95122e-02,-1.34891e-03,-3.09212e-02,-3.20664e-02,3.20799e-02,-1.21820e-02,-2.48649e-02,5.47504e-03,-3.78168e-02,-7.89317e-02,-7.23720e-03,3.60266e-02,-2.96352e-03,-1.86157e-02,-7.17874e-02,-6.05095e-02,-1.14249e-01,-1.19963e-01,-6.21804e-02,-1.86805e-02,-7.47837e-02,-9.23285e-02,-9.06266e-02,-1.45126e-01,-9.43547e-02,-6.27279e-02,-1.03102e-01,-8.41616e-02,-4.43785e-02,2.91781e-02,-7.66226e-03,3.14271e-02,-7.80855e-03,-9.20096e-04,-3.80295e-03,-4.19393e-02,-5.05686e-02,2.54636e-02,2.21416e-02,7.01972e-03,2.25641e-02,5.13051e-02,4.22567e-02,-9.49957e-03,-5.69455e-02,-5.01040e-02,-2.11598e-02,-5.45331e-02,-6.39839e-02,-1.41370e-02,-8.84319e-02,-1.63776e-01,-9.83421e-02,-4.54770e-02,-2.07666e-02,-2.59832e-02,-2.64659e-02,-1.12345e-02,1.59310e-02,2.78152e-02,-2.44986e-02,-2.82887e-02,1.44229e-02,-3.99066e-02,9.11672e-03,2.42762e-02,3.28375e-02,4.00696e-02,2.92880e-02,4.45411e-02,4.40507e-02,2.77983e-02,-6.57745e-03,-2.44752e-02,-2.81572e-02,1.37279e-02,-1.11768e-02,1.71430e-02,-6.54181e-02,-8.09236e-02,-1.79096e-02,5.08236e-03,1.76276e-02,1.84290e-02,-3.42751e-03,-1.18131e-02,7.29888e-03,1.74307e-03,2.88431e-02,3.21789e-02,-2.15009e-02,-2.36354e-03,-1.64056e-03,2.87421e-02,-1.62267e-03,1.88724e-02,1.86708e-02,2.63335e-02,2.33566e-02,-1.67119e-02,-3.98218e-03,-4.57746e-02,-6.05326e-02,-8.03101e-04,1.22508e-02,4.63459e-02,8.09752e-02,4.17771e-02,9.61583e-02,8.11795e-02,3.87163e-02,1.62478e-04,-2.68872e-03,2.49855e-02,2.81363e-02,-2.75700e-02,3.45612e-02,-8.44778e-03,1.62492e-02,-3.40402e-02,3.34074e-03,5.12765e-02,6.13442e-02,5.74639e-02,7.28862e-02,5.72969e-02,4.58167e-02,1.05550e-01,1.47162e-01,7.19795e-02,8.90382e-02,1.17042e-01,1.58651e-01,1.74571e-01,2.06297e-01,2.15371e-01,1.67947e-01,1.31692e-01,8.00619e-02,2.29248e-03,2.94979e-02,-3.20969e-02,-3.37031e-02,-4.72968e-03,-1.63606e-02,3.03881e-02,-7.70066e-04,3.36004e-02,3.30963e-02,-5.64845e-03,4.42201e-02,5.73819e-02,2.03398e-02,8.34463e-02,7.61653e-02,6.61440e-02,1.17060e-01,1.52643e-01,1.64367e-01,1.78276e-01,1.57650e-01,1.44372e-01,9.28862e-02,5.99629e-02,9.05351e-02,3.99157e-02,-5.50881e-03,-1.60373e-02,3.41760e-02,-6.13736e-03,-8.71439e-03,1.14608e-02,-4.73804e-03,3.03189e-02,1.14763e-02,3.37107e-02,3.00567e-02,-3.23087e-03,-3.33823e-02,3.22719e-02,-1.20960e-02,-2.01630e-02,3.09409e-02,1.54032e-02,1.00493e-03,2.37486e-02,3.23210e-02,-2.11043e-02,3.23065e-02,-3.01112e-02,-2.19629e-02,4.19962e-03,-2.32348e-02,-4.65668e-03,2.20796e-02,2.59357e-02,-2.87073e-02,2.20408e-02,2.29594e-02,-1.49977e-02, +3.45741e-02,-7.57938e-03,1.43345e-02,3.40491e-03,1.34430e-02,1.24983e-02,-2.87162e-02,4.56547e-03,-3.52257e-02,-2.01241e-02,-2.08425e-02,2.99203e-02,-2.77296e-02,-2.70290e-02,1.01206e-02,-2.15431e-02,-3.46383e-02,-1.78179e-02,2.88445e-02,-3.55372e-02,1.51924e-02,2.36040e-02,2.19318e-02,8.99900e-03,1.81937e-03,1.55009e-02,-4.57592e-04,1.93356e-03,1.53791e-02,1.25233e-02,2.21639e-02,2.53739e-02,1.24179e-02,-3.46746e-02,-9.82419e-03,-6.01109e-03,-9.01457e-03,-9.63716e-03,-1.61846e-02,1.06081e-02,-2.38086e-02,2.29230e-02,-3.33605e-02,3.68442e-03,3.30274e-02,2.35413e-02,9.91164e-04,-2.95008e-02,3.29055e-02,-1.10360e-02,-1.14738e-02,7.23431e-03,-1.09886e-03,3.02277e-02,-2.34259e-02,7.10841e-03,-3.07326e-02,5.97604e-03,-1.21179e-02,-2.98399e-02,-1.93956e-02,1.67253e-02,1.58327e-03,-1.24681e-02,1.00860e-02,-3.04627e-02,7.04037e-03,-3.85582e-03,-2.00848e-02,-7.04568e-02,-7.81214e-02,-6.05902e-02,-7.79369e-03,-6.89955e-02,-4.98942e-02,-4.47870e-02,-1.45822e-02,-1.28519e-02,-1.59456e-02,-3.16248e-02,1.83928e-03,-3.40110e-02,-7.99672e-03,-2.25604e-02,4.83318e-03,-3.02181e-02,3.37376e-02,-2.17645e-03,7.25122e-03,-1.51498e-02,2.79670e-02,-2.98327e-02,-3.83489e-02,-7.11637e-02,-4.43037e-02,-5.04563e-02,-6.95886e-02,-6.24384e-02,-5.20791e-03,1.15472e-02,-3.62466e-02,-3.94156e-02,-5.17134e-02,-3.07309e-02,-2.73227e-02,-3.12900e-02,-6.12412e-02,-9.33637e-03,-2.37765e-02,3.28199e-02,9.55605e-04,-3.25783e-02,1.85277e-02,-3.28006e-03,-3.07691e-02,-2.25017e-02,-8.39679e-03,-3.08514e-02,-4.93398e-02,1.29170e-02,-2.92345e-02,-6.83967e-02,-2.50747e-02,-4.14240e-03,2.51700e-02,7.93913e-02,3.29091e-03,7.84933e-02,1.78822e-02,3.18589e-02,3.98672e-02,-1.79749e-02,-3.94345e-02,-4.82914e-02,-3.73982e-02,-2.48722e-02,1.57627e-02,1.87856e-02,1.86027e-02,3.00670e-02,-2.85406e-02,-2.76787e-03,-3.09813e-02,4.75659e-03,-1.76967e-02,-4.10466e-02,-8.11953e-02,-2.04863e-02,-4.67851e-02,-2.99230e-02,3.35053e-02,4.91463e-02,7.81135e-02,6.34076e-02,-4.92932e-03,1.20396e-02,-4.63066e-03,5.06554e-03,-5.78566e-02,-1.28209e-01,-8.82357e-02,-6.09458e-02,-6.63216e-02,-3.82730e-02,-1.76936e-02,1.16872e-03,2.23492e-02,8.75105e-03,-1.75078e-02,-2.41865e-02,3.65501e-02,4.05337e-02,-1.79795e-02,1.25901e-02,-3.49186e-02,-9.56669e-03,-1.50657e-02,-1.44097e-02,6.53229e-02,1.51002e-01,8.11264e-02,4.97183e-02,7.78574e-02,6.88272e-02,6.47217e-02,4.48543e-02,4.69483e-02,-2.97930e-02,-4.69501e-02,-1.82621e-02,-6.42571e-02,-2.36423e-02,-4.83258e-02,7.22725e-03,1.05064e-02,2.70618e-02,1.50876e-02,2.79649e-02,-7.78562e-03,2.21530e-02,-4.14065e-02,-2.46527e-02,5.19287e-02,2.95722e-02,4.30260e-02,9.00253e-02,1.52653e-01,1.40239e-01,9.34642e-02,9.09264e-02,5.60365e-02,9.26857e-02,1.31806e-01,1.48365e-01,9.64868e-02,1.19556e-01,6.82338e-02,1.29825e-02,-4.54704e-02,3.35384e-02,3.80552e-04,3.71577e-02,-2.18828e-02,1.14382e-02,-1.59748e-02,-9.43349e-03,-4.67995e-03,2.88286e-02,-1.11542e-02,-7.72555e-03,6.42548e-02,5.51032e-02,1.24338e-01,1.34112e-01,1.14997e-01,9.04396e-02,1.32261e-01,8.43069e-02,1.47330e-01,1.37760e-01,1.64373e-01,1.10259e-01,1.78029e-01,1.57419e-01,9.47001e-02,8.53910e-02,6.85740e-02,7.25188e-02,8.69049e-02,5.14446e-02,-4.71502e-03,-1.54604e-02,1.95648e-02,-1.65643e-02,1.26826e-02,2.51434e-02,4.72654e-02,4.00762e-02,8.24391e-02,5.91654e-02,1.11453e-01,7.86169e-02,7.76595e-02,5.73966e-02,9.20732e-02,8.69312e-02,1.00835e-01,6.64737e-02,9.32061e-02,1.09964e-01,1.26934e-01,1.91333e-01,1.44738e-01,9.59956e-02,1.25967e-01,1.44079e-01,1.41508e-01,5.20186e-02,2.81861e-02,-1.00990e-02,-7.53646e-03,1.39691e-02,3.37406e-02,6.25364e-02,7.73479e-02,2.52938e-02,7.58856e-02,8.46753e-02,8.95227e-02,1.24769e-01,8.60930e-02,4.99189e-02,1.07874e-01,1.02843e-01,1.19567e-01,7.57412e-02,7.79091e-02,1.19377e-01,1.30520e-01,1.35415e-01,1.74644e-01,1.82253e-01,1.45047e-01,1.75635e-01,1.71232e-01,1.05793e-01,1.55224e-02,-2.59802e-02,2.82837e-02,5.89044e-03,-1.78816e-03,2.84062e-02,5.65809e-02,4.82635e-02,1.34011e-01,1.06274e-01,1.47588e-01,8.18388e-02,4.58010e-02,4.41153e-02,3.20791e-02,1.59384e-01,1.23956e-01,2.64831e-02,-3.40540e-02,6.44580e-02,9.83621e-02,1.10525e-01,2.14584e-01,1.50402e-01,1.63714e-01,1.77800e-01,7.72074e-02,6.00455e-02,6.13310e-03,1.93235e-02,-1.64401e-02,1.62020e-02,3.08824e-02,4.67685e-02,6.46414e-02,1.07594e-01,1.26486e-01,1.44018e-01,8.17576e-02,3.59039e-02,-3.10343e-03,-1.21414e-02,-1.91524e-02,4.20525e-02,-1.65439e-02,-4.25954e-02,-2.66327e-02,3.01186e-02,7.79449e-02,1.29123e-01,1.35635e-01,1.32268e-01,1.73984e-01,1.21313e-01,4.20255e-02,2.80985e-02,-2.63059e-02,-6.14930e-05,-2.75572e-03,2.00982e-02,-2.64125e-03,2.34576e-02,3.17309e-02,8.79566e-02,1.00061e-01,1.66011e-01,9.53978e-02,-2.62153e-02,-7.34728e-02,-8.99964e-02,-8.66485e-02,-2.83196e-02,-7.19609e-02,-1.08054e-01,-6.39252e-02,1.23931e-02,6.27500e-02,5.79015e-02,1.30497e-01,1.14610e-01,1.60929e-01,1.27123e-01,4.22755e-02,-2.53848e-02,-2.53003e-02,-2.92619e-02,1.70724e-02,-8.36594e-03,-5.96708e-03,1.84407e-02,-1.22102e-03,1.27667e-01,9.78321e-02,1.02329e-01,-2.48365e-03,-2.18699e-02,-7.02765e-02,-1.07776e-01,-1.27018e-01,-9.63013e-02,-1.33685e-01,-1.21451e-01,-7.42991e-02,7.14669e-04,5.27038e-02,1.03725e-01,7.91306e-02,8.67358e-02,8.90788e-02,1.05686e-01,6.02827e-02,-5.37515e-02,-1.45620e-02,1.48234e-02,-4.72017e-03,8.60525e-03,3.25071e-02,-1.66350e-02,2.02929e-02,6.67806e-02,8.82766e-03,4.42950e-02,-1.04501e-02,-2.48552e-03,-6.52804e-02,-1.33700e-01,-1.54917e-01,-2.07616e-01,-2.29353e-01,-1.48841e-01,-1.45933e-01,1.85644e-03,1.06489e-01,7.59243e-02,1.06740e-01,9.37897e-02,9.81242e-02,1.00071e-01,1.13761e-02,-8.21154e-02,-3.12479e-02,-2.82620e-02,1.39338e-02,-2.23089e-02,9.68075e-03,3.57185e-03,-2.29016e-02,1.63587e-02,2.08709e-02,5.43338e-02,3.70795e-02,1.97308e-02,-5.63981e-02,-1.16111e-01,-1.49180e-01,-2.42739e-01,-2.24249e-01,-2.01752e-01,-1.34402e-01,-3.16491e-02,6.63209e-02,6.21267e-02,1.04671e-01,4.63324e-02,7.41344e-02,5.39872e-02,-5.77378e-02,-5.67424e-02,-1.13085e-02,-2.32124e-02,6.73378e-03,-3.14061e-02,-2.93453e-02,-1.75012e-02,-1.25928e-02,-1.92677e-02,5.52191e-02,2.74609e-02,6.62050e-02,9.99572e-02,1.76906e-02,-6.26721e-02,-7.45488e-02,-1.79349e-01,-1.99284e-01,-9.95253e-02,-5.06599e-02,9.05794e-03,2.63107e-02,1.94610e-02,5.49262e-02,3.39477e-02,4.32163e-02,-2.50301e-02,-1.92012e-02,-3.82099e-02,-8.31275e-04,-1.04915e-02,2.36155e-02,2.36007e-02,-2.11672e-02,-4.39324e-02,-2.49218e-02,-5.75340e-02,-1.68124e-02,1.10530e-02,7.83545e-02,7.03224e-02,6.30147e-02,6.97381e-03,-6.81140e-02,-9.49178e-02,-7.28788e-02,-6.34590e-02,-5.49124e-02,5.42663e-02,6.27052e-02,4.70725e-02,-1.03434e-02,1.49816e-02,6.05926e-03,-6.50135e-02,-1.11425e-01,-6.28029e-02,-2.62215e-02,-1.23461e-02,1.78538e-02,1.51350e-02,-6.83807e-03,-1.38413e-02,-4.98300e-02,-2.32206e-02,3.14844e-02,2.26813e-02,7.66407e-03,6.68689e-02,5.86646e-02,-1.95456e-03,3.09037e-02,-4.64806e-02,1.11758e-03,-7.83151e-03,-9.20207e-04,3.42182e-02,6.34256e-03,2.50983e-02,-4.43642e-02,-7.38371e-02,-8.33293e-02,-9.25946e-02,-1.02584e-01,-5.35386e-02,-3.26883e-02,-1.66789e-02,-1.67818e-02,3.52041e-02,1.68852e-02,-5.40955e-02,-6.53128e-02,-1.63859e-02,-4.97398e-02,-1.46782e-02,6.80192e-03,-2.11170e-02,1.99813e-03,2.48345e-02,-1.10094e-02,-7.25303e-03,-3.00059e-02,-3.74777e-02,3.53785e-03,1.64490e-02,-5.13259e-02,-9.96013e-02,-8.37254e-02,-1.22090e-01,-5.88081e-02,-9.97389e-02,-7.38666e-02,3.25522e-03,-3.80164e-02,-1.58361e-02,5.18094e-03,2.11389e-02,-6.07041e-03,-3.11695e-02,-5.90875e-02,-2.59071e-02,-5.66838e-02,1.78875e-02,1.41716e-02,-3.20507e-02,5.14997e-02,9.59390e-03,2.38666e-02,3.24182e-02,-2.20016e-02,3.08529e-02,1.42596e-02,-8.40646e-02,-7.45111e-02,-1.39175e-01,-9.63866e-02,-1.23603e-01,-1.05302e-01,-1.09849e-01,-2.09549e-02,-3.50285e-02,-2.69577e-02,4.60846e-03,3.13854e-02,2.84910e-02,-7.67826e-03,7.70024e-03,-4.15031e-02,-1.89323e-02,-3.03380e-02,2.32252e-02,5.29693e-03,3.34976e-02,8.17619e-02,7.28102e-02,1.05799e-01,1.07083e-01,8.15035e-02,9.27100e-02,2.79648e-02,-8.73234e-02,-7.61855e-02,-1.60442e-01,-1.72520e-01,-1.44950e-01,-6.23209e-02,2.14772e-02,1.64243e-02,1.96421e-02,-1.67116e-02,-7.91202e-03,1.71100e-02,3.04670e-02,-3.58780e-02,1.83268e-02,3.11600e-02,-1.71570e-02,2.77586e-02,8.79659e-02,1.28671e-02,7.40477e-02,9.49881e-02,1.11407e-01,1.82072e-01,9.17876e-02,1.25645e-01,2.63049e-02,-3.09342e-02,-3.95504e-02,-9.78396e-02,-1.20295e-01,-1.08047e-01,-6.07698e-02,-2.43713e-02,1.45625e-02,2.78015e-02,3.21836e-02,5.89599e-03,2.95622e-02,-1.47056e-02,2.38632e-02,-3.34077e-02,1.86129e-02,-1.34956e-03,6.36791e-02,5.91867e-02,6.74799e-02,7.87852e-02,4.01553e-02,8.41690e-02,1.32981e-01,1.92508e-01,1.43234e-01,9.31606e-02,7.57905e-02,2.90104e-02,1.11065e-02,-4.97536e-02,-1.93453e-02,1.18648e-02,1.44089e-02,1.73357e-02,1.80050e-02,-1.05630e-02,-4.11039e-02,-2.64827e-02,-1.64979e-02,-1.53157e-02,-1.48863e-02,-2.98290e-02,1.44273e-02,4.10879e-02,4.37793e-02,8.22845e-02,7.00357e-02,9.21207e-02,1.33169e-01,1.00966e-01,2.01957e-01,2.00973e-01,1.67615e-01,1.65755e-01,1.59889e-01,1.50325e-01,1.20887e-01,7.49311e-02,1.10369e-01,3.79581e-02,7.16552e-02,5.60509e-02,1.95451e-02,2.19464e-02,2.15592e-02,1.92205e-02,1.71652e-02,2.53345e-02,-5.24497e-03,5.85548e-03,2.90329e-02,2.60109e-02,-2.79398e-02,4.95037e-02,4.61074e-02,8.44190e-02,6.57902e-02,9.82543e-02,1.35891e-01,8.92908e-02,1.11560e-01,1.09339e-01,9.90181e-02,9.84508e-02,6.31958e-02,7.69261e-02,4.71471e-02,3.47030e-02,-1.39932e-02,1.47777e-02,-1.80757e-02,7.21497e-03,-1.79105e-02,-3.42974e-02,7.22159e-04,1.06194e-02,-1.90690e-02,3.23533e-02,-3.04276e-02,-1.72519e-02,-5.54577e-03,2.34128e-02,-2.90350e-02,2.42252e-02,3.59418e-02,2.63949e-02,2.59104e-02,4.08570e-02,4.10678e-02,5.84863e-02,5.61433e-02,-1.20532e-02,3.44145e-03,3.16853e-04,-1.83590e-02,-2.74576e-02,-2.96986e-03,3.13635e-02,-7.55895e-03,8.51053e-03,-3.54944e-02,-3.05771e-03,-3.50820e-02, +2.66564e-02,1.85637e-02,-3.25515e-02,3.12855e-03,-1.10030e-02,-1.20212e-02,4.94456e-03,7.81700e-03,-3.07510e-02,-1.00311e-02,-6.00065e-03,7.56037e-03,8.08395e-03,-2.99350e-02,1.36315e-03,1.84867e-02,2.64014e-02,-1.39284e-02,-2.42345e-02,-2.99633e-02,-1.64209e-02,-3.38467e-02,1.17054e-02,-1.23052e-02,-2.75684e-02,-8.33932e-03,3.42007e-02,4.96536e-03,-2.72105e-02,-2.72620e-02,1.11968e-02,-5.76929e-03,-1.92286e-02,2.28190e-02,2.13918e-02,-2.28590e-02,-1.40861e-03,-2.19175e-02,-5.68998e-03,-9.83893e-03,-1.21079e-02,6.28861e-03,-3.45500e-02,-3.56989e-02,2.15089e-02,4.45603e-03,1.76338e-02,-3.79355e-02,1.60001e-02,-1.94729e-02,8.76749e-03,7.73576e-03,-3.18337e-02,2.05762e-02,1.64292e-02,-2.12373e-02,1.13896e-02,-2.29550e-02,4.42148e-03,1.78853e-02,-3.04780e-02,2.79741e-02,-2.12010e-02,-3.66307e-02,1.44640e-04,-4.62180e-03,-6.00298e-02,-4.04867e-02,-7.22500e-02,-3.55107e-02,-9.54423e-02,-6.52901e-02,-6.55410e-02,-3.97987e-02,-1.29283e-02,-1.93380e-02,-2.13306e-02,-3.91896e-02,-2.32097e-02,-2.51115e-02,-3.47751e-02,-2.89175e-02,-1.45484e-02,1.78244e-02,-5.68200e-03,5.46251e-03,1.62690e-02,-3.39213e-02,-2.60365e-02,2.80776e-02,-3.72905e-02,-4.70169e-02,-3.51077e-02,-3.53986e-02,-8.00580e-02,-1.16889e-01,-1.29495e-01,-1.29273e-01,-1.41901e-01,-1.45846e-01,-1.08671e-01,-6.05380e-02,-8.25805e-02,1.09662e-02,-2.33657e-02,-1.72828e-02,-1.95696e-02,2.11318e-02,-2.17969e-02,2.89857e-02,2.86542e-02,2.27390e-02,3.08546e-02,1.88617e-02,-7.19920e-03,3.73468e-03,1.55386e-02,-8.14055e-03,-2.41316e-02,-6.63386e-02,-5.95559e-02,-8.77952e-02,-1.00356e-01,-8.38643e-02,-1.07932e-01,-8.21530e-02,-5.70025e-02,-7.58493e-02,-1.79505e-02,-6.47935e-02,-7.62688e-02,-7.43503e-02,4.71449e-03,1.54025e-02,-9.42402e-03,3.56380e-02,2.88365e-02,-5.37035e-03,3.19097e-02,-2.39271e-02,-3.37024e-02,-2.34311e-02,-2.15309e-02,2.33330e-02,-1.39066e-03,-3.54094e-02,-5.70743e-02,4.42518e-04,-5.40862e-02,-9.38424e-02,-3.68829e-02,1.66816e-02,6.52260e-02,7.83668e-02,4.77920e-02,-4.53573e-03,-5.74976e-02,-8.23088e-02,-1.25393e-01,-8.18093e-02,1.18645e-03,-2.27902e-02,2.76281e-02,3.50364e-02,1.70822e-02,-3.14434e-03,-1.83139e-02,-9.84926e-03,-2.49278e-02,-2.07931e-02,-7.46163e-03,-3.13561e-02,-3.39087e-02,-1.03140e-02,-3.15397e-03,-1.10325e-02,1.48059e-02,5.12732e-02,8.62385e-02,1.28655e-01,1.10871e-01,7.88425e-02,5.23504e-02,4.65062e-02,5.62940e-02,5.32751e-03,-1.03383e-02,-3.27467e-02,5.97414e-03,-3.09293e-02,4.79230e-02,7.88571e-02,3.98777e-03,1.47013e-02,2.95344e-02,7.19784e-03,-2.23393e-02,2.10906e-02,5.68307e-03,9.02963e-03,-3.10259e-02,-5.58557e-02,-2.19580e-02,1.33450e-03,7.09990e-02,7.32211e-02,9.49255e-02,9.99201e-02,5.16927e-02,6.37455e-02,9.66090e-02,1.02293e-01,1.03509e-01,7.97554e-02,-2.34761e-04,4.54145e-02,9.22103e-02,7.83456e-02,2.22728e-02,5.94014e-02,3.22113e-02,-3.13584e-02,2.01860e-02,2.30928e-02,-1.45449e-02,-1.10908e-02,1.07956e-02,-4.23578e-02,9.45662e-03,1.89141e-02,7.38840e-03,5.04818e-02,7.15465e-02,8.74004e-02,5.36159e-02,5.38263e-02,5.54123e-02,9.32569e-03,4.74931e-03,3.90663e-02,5.12811e-03,4.40449e-02,6.54935e-02,2.72253e-02,1.01062e-02,7.80563e-02,8.09779e-02,5.45342e-02,1.27179e-02,-1.96483e-02,5.58614e-04,3.02392e-02,-1.65981e-02,1.84164e-02,-1.39389e-02,-4.40862e-02,-1.01580e-03,-1.74002e-02,1.50630e-02,7.70686e-02,3.00004e-02,5.11573e-02,1.99843e-02,8.34828e-03,1.18261e-02,-2.87766e-02,-7.38326e-02,-2.93676e-02,-2.78007e-02,-1.64608e-02,4.95225e-02,3.88668e-02,8.01504e-02,1.16551e-01,7.99325e-02,2.65140e-02,-6.41820e-02,-5.87510e-02,-4.18871e-02,-2.45252e-03,-2.09981e-02,-3.41739e-02,-3.60104e-02,-6.49997e-03,-2.43459e-02,6.04215e-03,3.08894e-02,5.73833e-02,6.07193e-02,1.24182e-01,5.40182e-02,5.95133e-02,1.94750e-02,-3.32821e-02,-9.10217e-02,-6.65538e-02,-5.10890e-03,2.88327e-02,2.28813e-02,2.59021e-02,1.04600e-01,1.01855e-01,8.22441e-02,-1.70954e-02,-1.26026e-01,-8.71565e-02,-2.84207e-02,1.45045e-02,3.33485e-02,7.45136e-03,-3.25319e-02,2.85522e-02,4.35308e-02,1.10898e-01,1.49125e-01,1.29231e-01,1.79626e-01,1.51112e-01,1.73772e-01,1.22568e-01,7.59482e-02,-2.90904e-02,3.88656e-02,1.26367e-01,6.87772e-02,7.89429e-02,1.12941e-01,7.95506e-02,1.27694e-01,1.39813e-01,5.22725e-02,-1.83534e-02,-6.09883e-02,-1.80072e-02,1.39856e-02,-3.62406e-03,-2.19803e-02,-1.88849e-02,1.90668e-02,-1.10557e-02,8.58526e-02,9.44182e-02,1.35235e-01,1.93864e-01,1.74589e-01,1.91994e-01,1.60595e-01,7.50689e-02,-4.79463e-03,9.89257e-03,7.31628e-02,1.64857e-01,1.62784e-01,1.75187e-01,8.14160e-02,1.49717e-01,1.67083e-01,1.74855e-01,6.93517e-02,-2.44497e-03,-3.39179e-02,5.22596e-03,-7.32020e-03,8.61431e-03,8.91852e-03,1.71666e-02,6.15121e-03,4.79813e-02,1.03658e-01,1.10101e-01,1.54995e-01,1.11377e-01,1.44422e-01,1.01878e-01,5.11799e-02,-5.03880e-02,-6.35785e-02,4.39600e-02,1.37142e-01,2.10902e-01,1.70842e-01,1.47456e-01,9.17548e-02,1.00265e-01,2.01574e-01,1.54767e-01,7.39669e-02,-4.30184e-02,-1.00572e-01,-4.29002e-02,-1.24126e-02,-6.95428e-03,5.75660e-03,1.48551e-02,-3.39826e-02,-6.94375e-03,8.01310e-02,9.85210e-02,1.21829e-01,1.18327e-01,6.03597e-02,-5.32314e-03,-4.23701e-02,-4.45682e-02,-1.93734e-02,5.63581e-02,1.07281e-01,1.73444e-01,1.55697e-01,1.51076e-01,1.27518e-01,8.80127e-02,5.94514e-02,1.60153e-02,-4.68486e-03,-1.07362e-01,-8.44223e-02,-2.31284e-02,-3.64236e-02,-2.77231e-02,2.50871e-02,-2.63137e-02,2.83610e-02,1.75736e-02,1.24095e-02,7.92779e-03,3.50713e-02,4.37814e-02,-7.60198e-03,1.92204e-02,1.29800e-02,3.36068e-02,8.23990e-02,3.76984e-02,6.64074e-02,1.04865e-01,1.34414e-01,1.46257e-01,4.63954e-02,-7.87171e-03,1.49404e-02,1.53339e-02,-4.05594e-02,-7.49542e-02,-1.35807e-01,-4.01956e-02,-3.65403e-02,3.04502e-02,3.24878e-02,1.23801e-02,-3.59479e-02,-5.25902e-02,-3.92865e-02,-2.59548e-02,2.93641e-02,1.13711e-02,6.76603e-02,2.24354e-02,1.89562e-02,1.01259e-02,7.87803e-02,6.40466e-02,5.18840e-02,8.35115e-02,1.31874e-01,9.18585e-02,2.11989e-02,-6.43798e-02,-6.31506e-02,-3.07733e-02,-4.06485e-02,-1.43959e-01,-1.07362e-01,-9.06244e-02,-3.40226e-02,-3.05961e-02,2.43777e-02,1.95897e-02,-4.65552e-02,-2.18139e-02,-5.50423e-02,-9.28469e-02,-6.50783e-02,-3.83996e-02,2.87492e-02,7.04968e-02,-1.88610e-02,4.95065e-02,8.23776e-02,1.06640e-01,1.06868e-01,4.80683e-02,8.16800e-02,4.01833e-02,-1.16084e-02,-8.08987e-02,-5.94618e-02,-4.66009e-02,-1.36268e-01,-8.99649e-02,-1.16673e-01,-6.19644e-02,-4.78488e-02,-3.32917e-02,3.58618e-02,2.14870e-02,-4.27743e-03,-4.82322e-02,-9.26467e-02,-9.88539e-02,-9.47637e-02,-7.34766e-02,-2.20980e-02,-3.77080e-02,-1.66015e-02,-1.27876e-02,1.91749e-02,-6.88371e-04,5.07938e-02,7.37040e-03,-3.97211e-02,-9.38976e-02,-6.51459e-02,-9.61882e-02,-3.31362e-02,-7.35943e-02,-1.17828e-01,-1.94329e-01,-1.74039e-01,-1.13131e-01,1.91418e-02,-3.50138e-02,2.50001e-03,-2.40824e-02,-3.42976e-02,-4.95966e-02,-1.42507e-01,-1.04446e-01,-1.43367e-01,-8.08677e-02,-1.07750e-01,-1.56260e-01,-1.71910e-01,-1.80003e-01,-1.60698e-01,-1.09095e-01,-1.47036e-02,-7.27210e-02,-1.04624e-01,-8.84588e-02,-1.36146e-01,-9.65745e-02,-4.26980e-02,-8.72246e-02,-1.75239e-01,-1.35505e-01,-1.29918e-01,-3.59980e-02,-7.46883e-03,1.73380e-02,2.53791e-02,-2.49783e-02,-1.12418e-02,-8.70304e-02,-1.50182e-01,-1.51219e-01,-1.44991e-01,-1.35341e-01,-1.55701e-01,-1.81398e-01,-1.79187e-01,-2.54144e-01,-2.01218e-01,-1.67224e-01,-8.19109e-02,-7.22994e-02,-9.54519e-03,-7.56344e-02,-1.00569e-01,-1.01115e-01,-5.28521e-02,-6.08187e-02,-1.04184e-01,-1.73754e-01,-1.00742e-01,7.38452e-05,1.91114e-02,-1.13100e-02,6.70300e-03,-1.63232e-02,-3.58365e-02,-5.12756e-02,-6.97167e-02,-1.11095e-01,-1.24494e-01,-9.02799e-02,-5.71629e-02,-2.92231e-02,-9.99963e-02,-1.25589e-01,-1.05185e-01,-5.16357e-02,-2.40617e-02,2.77765e-02,6.39346e-03,-2.35539e-02,-1.00932e-01,-4.40700e-02,-8.41599e-02,-8.83337e-02,-6.47020e-02,-1.04325e-01,-2.32251e-02,-4.81243e-02,-2.29857e-02,7.08022e-03,8.55530e-03,-1.93972e-02,1.31485e-02,-2.58764e-02,-8.73776e-02,-8.99876e-02,-4.37184e-02,-1.65660e-02,-4.72552e-03,-7.54605e-03,4.25463e-02,4.16380e-02,4.85306e-02,1.80743e-02,7.09879e-02,2.51969e-02,3.01527e-02,-1.32695e-03,-2.31833e-02,-5.17501e-02,-4.29617e-02,-3.80693e-03,-3.89309e-02,-4.08906e-02,-6.62227e-03,-2.91419e-03,1.20758e-02,1.86717e-02,-8.88881e-03,1.44416e-02,-2.88841e-02,-3.04148e-02,-3.73326e-02,-2.55704e-02,-1.11556e-02,1.36802e-03,-6.50398e-03,2.00434e-02,-4.77962e-03,7.73197e-02,4.59732e-02,6.26903e-02,7.63959e-02,8.30267e-02,9.07237e-02,-6.21811e-03,5.73310e-03,3.65948e-02,1.94647e-02,7.26222e-03,3.66208e-02,-1.12838e-02,-8.71684e-03,-1.59898e-02,-2.85190e-02,-1.45779e-02,2.01331e-02,-1.09641e-02,1.77526e-02,2.25404e-02,2.05107e-02,5.64179e-02,5.07671e-03,5.71830e-02,6.80060e-02,4.43668e-02,3.75682e-02,5.61415e-02,2.09446e-02,-1.31380e-02,-1.76612e-02,4.38285e-03,2.22369e-02,6.23452e-02,3.14811e-02,5.77630e-02,8.77547e-02,8.08144e-02,4.49517e-02,1.36866e-02,-2.63622e-02,-3.40488e-03,-1.69924e-02,1.09236e-02,4.07495e-03,-1.05089e-02,-3.34308e-02,3.23029e-02,-1.17158e-02,7.47617e-02,5.43159e-02,7.59486e-02,6.23382e-02,7.71043e-02,9.06181e-02,5.88391e-02,5.23486e-02,3.90557e-02,3.16648e-02,6.53534e-02,9.19082e-02,5.99616e-02,8.66428e-02,1.35772e-01,1.21476e-01,7.98879e-02,6.71552e-02,3.81543e-02,-8.36310e-03,-2.65549e-02,-2.00853e-02,-1.34505e-02,-5.68844e-04,-1.45678e-02,-1.66387e-02,5.86022e-03,2.80860e-02,-1.73528e-03,2.07097e-02,5.05327e-03,5.75907e-02,3.45293e-02,4.49361e-02,9.38303e-02,4.96658e-02,1.11885e-01,1.34407e-01,1.02431e-01,9.09069e-02,3.95171e-02,2.22685e-02,6.65673e-02,3.19731e-02,3.44966e-02,-2.65360e-02,3.41558e-02,-3.25844e-03,-2.36295e-02,-8.16729e-03,-2.02570e-02,1.48997e-02,-2.83916e-03,4.32185e-03,-1.64062e-02,2.51328e-02,-2.55984e-02,-5.63498e-03,-2.50037e-02,3.35225e-02,2.53808e-02,1.08255e-02,1.74268e-03,8.65425e-03,3.68891e-02,6.39356e-03,3.70958e-02,-7.78243e-04,-1.76178e-02,-2.68110e-02,2.08961e-02,-2.94498e-02,-1.10741e-02,1.75972e-03,2.65594e-02,1.12823e-02,4.73029e-03,-7.15571e-03,-3.00799e-02, +-1.90318e-02,2.91355e-02,2.21382e-02,-8.13637e-03,-4.77957e-03,1.34321e-02,-1.56651e-02,2.92102e-02,2.94640e-02,2.95714e-02,1.40407e-02,1.33515e-02,-1.71501e-02,-2.60321e-02,2.88704e-02,-3.12915e-02,-1.68083e-02,-5.88173e-03,1.73247e-02,2.11761e-02,-3.52053e-02,-1.25250e-02,-6.98924e-03,-3.13425e-02,9.31084e-03,-1.20701e-02,1.03038e-03,1.03341e-02,1.66390e-02,1.56199e-02,-2.12533e-03,2.43084e-02,2.49039e-02,-3.54549e-03,-3.62311e-02,-3.56017e-02,-3.26437e-02,2.38947e-02,-1.43376e-03,-2.37978e-02,-4.36464e-02,1.31825e-03,-6.09049e-03,-3.98686e-02,-6.75482e-03,1.75737e-02,-9.10744e-03,-6.35224e-03,-3.61479e-02,2.37467e-02,-1.18523e-02,4.02450e-03,3.54351e-02,-3.43296e-02,-1.98128e-03,9.13915e-03,3.37044e-02,-2.93385e-02,2.70430e-02,3.44944e-02,1.00736e-02,-6.78341e-03,-2.74133e-02,1.67519e-02,-4.00478e-02,-2.06306e-03,-2.72210e-02,-3.23155e-02,-5.62023e-02,-1.10637e-01,-1.15029e-01,-6.90119e-02,-9.42048e-02,-2.05946e-02,-4.88492e-02,-3.63451e-02,-1.51383e-03,1.55314e-02,-1.53408e-02,-2.50800e-02,-3.52994e-02,2.71599e-02,2.19187e-02,1.19609e-02,2.29379e-02,-1.90307e-02,-2.94595e-02,1.16706e-02,3.20913e-02,3.17556e-02,1.90772e-02,3.97477e-03,-5.75994e-02,-6.03201e-02,-9.95585e-02,-1.66793e-01,-1.34528e-01,-2.32612e-01,-1.94161e-01,-2.24204e-01,-1.48409e-01,-1.07281e-01,-5.27596e-02,-6.75292e-02,-5.17685e-02,2.43638e-02,-2.23455e-02,1.27249e-02,2.87557e-02,-8.41497e-03,-1.06654e-02,5.57607e-03,3.38684e-02,1.93733e-02,1.15263e-03,-2.86318e-02,4.06248e-03,3.57662e-02,1.04609e-04,-6.40541e-02,-6.66103e-02,-9.21405e-02,-1.51201e-01,-1.14564e-01,-1.80348e-01,-1.50485e-01,-1.77004e-01,-1.86608e-01,-6.35933e-02,-7.14348e-02,-4.40026e-02,1.22391e-02,6.45094e-02,2.39334e-02,5.64943e-02,2.86746e-02,4.45383e-03,-1.19268e-02,2.07876e-02,-3.02411e-02,1.52557e-02,3.27114e-02,-2.08834e-02,1.10642e-02,-1.08379e-02,-1.26345e-02,3.47651e-03,-8.77556e-03,-1.21498e-02,1.82407e-03,-4.14489e-02,-9.47587e-02,-1.39634e-01,-1.27255e-01,-1.34762e-01,-1.16199e-01,-1.07067e-01,-1.17623e-01,-5.03827e-02,-2.00447e-02,-1.17472e-02,4.26022e-02,9.29051e-02,1.15862e-01,3.62628e-02,-2.01020e-02,-2.75513e-03,6.53095e-03,-1.17334e-02,3.30636e-02,5.22532e-04,-1.38087e-02,1.99314e-02,2.89356e-02,2.28762e-02,4.51176e-02,5.51093e-02,1.72209e-02,-1.57939e-02,-5.59745e-02,-5.47974e-02,-6.29627e-02,-1.05311e-01,-2.15984e-02,-2.86509e-02,-3.98903e-03,-3.58791e-02,-2.60124e-02,3.54222e-02,3.16273e-02,4.52207e-02,2.59237e-02,4.65593e-02,1.11693e-02,-2.44399e-02,1.49765e-02,-2.97542e-02,2.03250e-02,-1.72010e-02,-1.85401e-03,6.37694e-02,3.89639e-02,8.54716e-02,8.76234e-02,2.62728e-02,6.68897e-02,1.08006e-02,-2.25133e-02,-2.29500e-02,-1.67949e-02,-6.46599e-02,-1.33654e-02,8.05687e-03,1.71849e-02,4.15126e-02,2.92906e-02,7.95116e-02,5.61514e-02,4.91510e-02,1.07950e-02,-5.96295e-02,-7.17810e-05,2.92506e-02,-9.82381e-03,-3.79068e-03,9.58522e-03,-2.06560e-03,-1.56235e-04,9.56252e-02,6.06925e-02,3.60438e-02,4.01471e-02,4.08773e-02,4.60561e-02,3.53375e-02,2.58302e-02,-1.46929e-02,1.13505e-02,-3.88733e-02,-4.75963e-02,1.86861e-02,5.12378e-02,1.09495e-01,5.29189e-02,8.07468e-02,5.37661e-02,6.13607e-03,-1.03667e-02,-6.59225e-02,-5.41623e-02,-3.15848e-02,2.42219e-02,-1.87149e-02,1.62331e-02,-5.44194e-03,7.52494e-02,2.96624e-02,4.76674e-02,6.83591e-03,1.74759e-02,-5.14482e-03,-8.86664e-03,-3.44815e-02,7.51098e-03,4.60224e-02,7.88709e-03,-2.80315e-02,3.67887e-02,9.60027e-02,1.41979e-01,1.26924e-01,1.40668e-01,7.74079e-02,-1.16372e-03,-1.40253e-02,-4.61018e-02,-8.77939e-02,-9.05200e-02,-2.96605e-02,3.10611e-02,-6.87415e-03,3.77890e-02,4.44882e-02,5.83880e-02,1.40635e-02,3.32058e-02,-4.80369e-02,-4.06180e-02,-7.01794e-02,9.81436e-03,4.68630e-03,2.79096e-02,9.10769e-02,3.62818e-02,-6.34204e-02,3.67344e-02,1.65483e-01,1.79154e-01,1.28430e-01,4.94399e-02,2.92924e-02,8.21048e-03,-2.01394e-02,-1.51428e-01,-1.83532e-01,-1.04260e-01,-4.13284e-02,-8.08498e-03,-2.06146e-02,2.94973e-02,-8.64553e-03,3.95497e-02,4.06556e-02,-3.31732e-02,-9.02788e-03,2.10820e-02,-2.10560e-03,6.19369e-03,9.92463e-02,1.49878e-01,8.93669e-02,-5.08391e-02,-7.25277e-02,1.35366e-01,2.30483e-01,1.46431e-01,1.03341e-01,-6.02424e-03,-1.35230e-02,3.33883e-02,-8.03741e-02,-1.76475e-01,-1.78407e-01,-6.64075e-02,-4.67891e-02,-1.01843e-02,-2.90467e-02,-1.20073e-02,4.31444e-02,8.79863e-02,7.36501e-02,1.81859e-02,3.64400e-02,5.79463e-02,1.07429e-01,9.83580e-02,9.26379e-02,9.29521e-02,2.60295e-02,-1.87055e-01,-1.13494e-01,1.03499e-01,1.56361e-01,1.17577e-01,2.45583e-02,-4.07259e-03,3.78503e-03,-1.66986e-02,-1.14326e-02,-9.88019e-02,-1.23678e-01,-5.26746e-02,-1.56689e-02,-1.88024e-02,2.46527e-02,-2.76601e-02,2.22968e-02,2.21428e-02,1.24475e-01,1.07569e-01,9.59406e-02,1.19830e-01,1.04274e-01,1.11117e-01,1.21800e-01,9.24816e-02,-9.98226e-02,-2.19031e-01,-6.45959e-02,6.39368e-02,7.97779e-02,8.64842e-02,3.52041e-02,4.78556e-03,8.39933e-02,5.57632e-02,1.84424e-02,-8.31281e-02,-7.70572e-02,-7.35762e-02,-3.03351e-02,-1.18815e-02,7.40238e-03,2.58836e-02,1.94970e-03,1.95253e-02,9.31818e-02,1.04221e-01,1.09568e-01,1.42495e-01,1.32158e-01,1.25753e-01,1.21378e-01,3.63931e-02,-6.31855e-02,-1.02722e-01,-6.48688e-02,6.07015e-02,1.16791e-01,1.62897e-01,1.15107e-01,1.76601e-01,1.28204e-01,5.32804e-02,4.11566e-02,-1.13369e-03,-4.02992e-02,-6.51421e-02,-3.08656e-02,1.72914e-02,-8.21559e-03,2.28242e-02,-2.69068e-03,4.51617e-02,4.91917e-02,7.78380e-02,1.33852e-01,1.35056e-01,9.22480e-02,9.08464e-02,1.21690e-01,7.88689e-02,1.43050e-03,-9.63299e-02,-1.64165e-02,6.76282e-02,9.92252e-02,2.07897e-01,1.50751e-01,1.61843e-01,1.51690e-01,1.16476e-01,1.08292e-01,9.44313e-03,-1.01970e-01,-4.53948e-02,-1.04988e-02,-1.66703e-02,-3.19792e-02,3.44109e-02,2.69043e-02,8.33758e-03,4.49416e-02,6.65310e-02,2.91388e-02,1.05669e-01,1.00495e-01,6.67046e-02,5.66417e-02,2.57752e-02,2.54056e-02,-5.44306e-02,-2.84107e-03,1.28777e-01,1.50906e-01,1.94814e-01,1.37770e-01,1.22370e-01,1.05473e-01,2.81705e-02,1.23590e-02,-4.18179e-02,-1.08756e-01,-9.65510e-02,7.38451e-03,-2.68299e-02,-1.29153e-02,4.78643e-03,-2.03755e-02,-3.50098e-02,-8.84217e-03,-1.57130e-02,-4.03526e-04,2.42444e-02,-1.68387e-02,2.06172e-02,-6.05490e-02,-4.59298e-02,-5.93698e-02,7.83968e-03,8.58470e-02,1.15241e-01,1.33216e-01,9.96751e-02,8.62907e-02,-1.00593e-02,-2.40305e-02,-1.34222e-02,-9.58713e-02,-8.83550e-02,-9.78520e-02,-4.16089e-02,1.27582e-02,2.47203e-02,2.12160e-02,3.36998e-02,-1.14575e-02,-3.17033e-02,-4.39925e-02,-5.69610e-02,-1.01703e-01,-8.83441e-02,-1.29366e-01,-1.33217e-01,-1.89676e-01,-1.52956e-01,-1.07342e-01,-7.17994e-02,4.62576e-02,1.99435e-02,9.04258e-03,4.78906e-02,-1.43724e-02,-3.26098e-02,-3.78391e-02,-1.05270e-01,-1.39750e-01,-1.76601e-01,-1.31104e-01,-7.84612e-02,-3.33562e-02,-8.89451e-04,3.07575e-02,-1.13181e-02,6.76587e-03,9.99794e-04,-5.55509e-02,-7.55355e-02,-1.74455e-01,-1.87424e-01,-2.10422e-01,-2.73164e-01,-2.21947e-01,-2.57786e-01,-2.11322e-01,-8.46337e-02,2.17375e-02,8.24269e-03,-4.52188e-02,-6.56160e-02,-8.72749e-02,-8.64580e-02,-9.89127e-02,-1.99627e-01,-2.12548e-01,-1.60996e-01,-7.29850e-02,-4.46091e-02,5.19234e-03,-8.16850e-03,1.11985e-02,-2.45874e-03,-3.34079e-02,2.48359e-02,-6.56620e-02,-1.48747e-01,-2.22439e-01,-2.66918e-01,-2.83637e-01,-2.38775e-01,-2.12815e-01,-2.33655e-01,-1.73886e-01,-8.70992e-02,-3.54614e-02,-3.50539e-02,-2.90983e-02,-1.14036e-02,-7.58945e-02,-1.15963e-01,-1.82925e-01,-2.03533e-01,-1.82853e-01,-1.40371e-01,-2.22270e-02,-4.16815e-03,-2.68014e-02,1.54061e-02,2.49370e-03,-1.60488e-02,-2.94455e-02,9.87623e-03,-7.54576e-02,-1.10239e-01,-1.47351e-01,-1.72493e-01,-1.40678e-01,-1.85527e-01,-1.76781e-01,-1.04525e-01,-8.81774e-02,-5.89039e-02,-8.30809e-02,-1.53381e-02,-1.48536e-02,-1.79196e-02,-7.89420e-02,-8.62925e-02,-1.05511e-01,-1.71990e-01,-1.05434e-01,-8.27497e-02,-5.56445e-02,-4.05156e-02,1.93556e-02,-1.58170e-02,-4.17683e-04,2.03108e-02,1.88536e-02,-4.96465e-02,-4.57184e-03,-2.73691e-02,-1.12914e-01,-1.10502e-01,-8.15721e-02,-7.81936e-02,-2.32383e-02,-2.13278e-02,-7.84911e-02,-6.10782e-02,-8.37827e-03,-2.37086e-02,-2.49929e-02,-3.81335e-02,-9.70188e-02,-1.15447e-01,-1.23373e-01,-1.11243e-01,-5.76485e-02,-7.39494e-02,-3.57844e-02,-1.47670e-02,-1.70644e-02,2.55533e-02,-8.48006e-04,1.62672e-02,-1.20692e-02,-3.09919e-02,-4.18748e-03,-1.72671e-02,-1.08581e-02,4.68889e-02,1.95076e-02,-1.01143e-02,6.56826e-02,2.20445e-02,-1.49601e-02,-4.84348e-02,1.80460e-02,-2.59854e-03,-3.68502e-02,-1.55436e-02,-5.57917e-02,-4.43400e-02,-4.17444e-02,-1.95904e-03,-1.52413e-02,-3.70377e-02,-2.16231e-02,2.36679e-02,2.99669e-02,2.06633e-02,3.14988e-02,-2.36217e-02,3.23204e-02,-6.37288e-03,9.21726e-03,4.90908e-02,7.28174e-02,1.09443e-01,1.03454e-01,7.68390e-02,4.61529e-02,6.77286e-02,-4.74842e-03,-3.83680e-02,5.60260e-03,-5.86506e-02,1.19414e-02,-3.53377e-02,-5.92458e-02,-3.79422e-02,3.29002e-02,2.41111e-02,-1.68708e-02,-2.32470e-03,3.72418e-03,-2.06018e-02,2.30179e-02,1.39388e-02,-3.15811e-02,1.52886e-02,2.89029e-02,5.63095e-03,1.24710e-02,8.09697e-02,2.84152e-02,9.45632e-02,1.31894e-01,1.02627e-01,6.05255e-02,2.64215e-02,4.09698e-02,7.83673e-02,6.43505e-03,2.96039e-02,1.78104e-03,6.36982e-03,4.57884e-02,1.66541e-02,-1.06089e-02,-1.99110e-03,2.49177e-02,-2.87306e-03,2.42495e-02,-2.18145e-02,-4.89101e-03,-8.24821e-03,5.45697e-03,-1.05760e-03,-2.51580e-02,2.18211e-02,-2.91352e-02,-1.70037e-02,4.51237e-02,1.29601e-02,1.07595e-02,7.87754e-02,6.27169e-02,3.27508e-02,7.59899e-02,1.11055e-01,4.74107e-02,5.43688e-02,4.45641e-02,4.92047e-02,4.79419e-02,2.41048e-02,2.71179e-02,-2.18036e-02,3.08766e-02,1.83663e-02,2.29214e-02,-3.13910e-02,2.83454e-02,3.35111e-02,-3.21289e-02,-2.36150e-02,2.00889e-02,-3.22366e-02,-3.14657e-02,-1.86950e-02,1.01699e-02,2.62278e-02,8.07468e-03,2.45347e-02,1.77965e-02,4.94429e-03,-1.23142e-02,2.17106e-02,3.06458e-02,1.62745e-02,4.54651e-02,4.09395e-02,2.08439e-02,1.89155e-02,3.26703e-02,-1.15921e-02,3.23416e-02,2.90920e-02,2.77282e-02,6.68047e-03,2.06159e-02,1.51045e-02, +2.26275e-02,3.31489e-02,1.81546e-02,1.11874e-04,-8.59207e-03,3.11852e-02,-5.10249e-03,2.82857e-02,-1.59840e-02,-2.54131e-02,-2.22429e-02,1.54957e-02,1.58473e-02,3.06460e-02,2.46721e-02,-4.34518e-03,-5.06261e-03,2.97334e-02,3.54190e-02,-1.45487e-02,-1.47460e-02,2.50869e-02,3.14558e-02,2.21071e-02,-1.71582e-02,-3.56223e-03,2.16890e-02,-9.40313e-03,-3.32178e-02,-8.17739e-03,2.04496e-02,-2.53459e-02,1.90177e-02,-1.05143e-02,-3.02784e-02,1.26487e-02,2.91870e-02,-1.03748e-02,-2.69866e-02,-7.23834e-03,-3.53447e-02,-4.72283e-02,2.78812e-02,3.38555e-03,-1.58556e-02,2.50438e-03,1.11472e-02,-2.80389e-02,-2.21323e-03,-3.91226e-02,-1.60933e-02,-2.35541e-02,-9.96324e-03,-7.03166e-03,3.38112e-02,1.50185e-02,-1.90616e-02,2.56703e-02,-9.33244e-03,1.42703e-02,1.35725e-02,1.58756e-02,-2.02928e-02,-1.71156e-02,-7.76992e-03,-2.64518e-03,-4.70031e-02,-3.99400e-02,-5.00659e-02,-4.76373e-02,-4.88368e-02,-3.20468e-02,-4.39697e-03,-5.50671e-02,-2.81363e-03,-4.30800e-02,1.15772e-02,-4.31125e-02,-4.87483e-03,2.15067e-03,2.77772e-02,2.56805e-02,-6.92124e-03,-2.55328e-02,1.65806e-02,-1.60430e-02,-2.67921e-02,-1.33481e-03,3.98490e-03,-3.37119e-02,2.39275e-02,-2.66382e-02,4.04848e-02,1.94017e-02,8.09581e-02,7.26544e-02,8.67050e-02,4.69286e-02,3.78169e-02,-5.67929e-03,3.71755e-02,2.46287e-02,-2.59195e-02,-1.23807e-02,8.98375e-03,7.24800e-03,-2.44520e-02,-6.74040e-03,-1.03003e-02,1.33037e-02,-3.59746e-02,-3.21921e-02,-4.13351e-03,-7.37558e-03,1.58735e-03,3.57371e-02,-2.78019e-02,3.37523e-02,6.31841e-02,2.63094e-02,9.69901e-02,1.41901e-01,1.31755e-01,1.08596e-01,9.60660e-02,4.20778e-02,6.46110e-02,1.59062e-02,4.25195e-03,4.67913e-02,2.75858e-02,-9.94262e-03,-2.66865e-02,-3.84922e-02,-3.67789e-02,-2.81473e-02,-3.34693e-02,2.38625e-02,1.68173e-02,3.63964e-06,-2.27617e-02,-2.09035e-02,-3.45718e-02,1.22197e-02,-1.75010e-02,5.63831e-02,9.62002e-02,9.72007e-02,1.22223e-01,8.59868e-02,4.81885e-02,4.56349e-02,1.77418e-02,2.50834e-02,4.80653e-02,7.00150e-02,7.48299e-02,5.53647e-02,5.88210e-02,4.55828e-02,-3.69877e-03,-4.35801e-02,-2.21271e-02,-7.38914e-02,-2.93518e-02,-2.38269e-02,-5.51538e-03,3.54542e-02,1.86825e-02,-1.14953e-02,-1.94837e-03,1.82248e-02,5.99098e-04,7.37009e-03,5.20282e-02,6.42312e-02,2.66679e-02,3.52369e-02,4.76048e-03,1.53679e-02,2.59766e-02,2.52588e-02,8.13337e-02,4.61517e-02,7.36913e-02,5.81282e-02,5.20073e-02,-7.33869e-03,-2.24972e-02,1.98917e-03,-6.63583e-02,-1.33768e-01,-1.22521e-01,-7.31192e-02,-1.73851e-02,3.12037e-02,1.40195e-02,-5.78845e-03,-2.67493e-03,2.21715e-02,3.48647e-02,-2.19855e-03,4.40587e-02,-2.83980e-02,-3.94164e-02,-1.05007e-02,6.88204e-03,-1.24936e-02,3.09285e-03,5.20811e-02,5.21342e-02,5.94716e-02,3.62330e-02,5.47113e-02,1.24236e-02,1.16025e-02,-2.80056e-02,-1.40447e-02,-2.96363e-02,-1.19120e-01,-1.81350e-01,-1.04203e-01,8.60661e-03,2.41628e-02,-3.24064e-02,-2.55345e-02,-2.88555e-02,-1.65745e-02,2.13826e-02,-2.85209e-02,-4.29072e-02,-4.10311e-02,-3.48215e-02,-3.99617e-02,-2.00457e-02,-2.64128e-02,-4.25967e-02,-9.05973e-02,2.91252e-03,2.44237e-02,2.07194e-02,3.58482e-02,-4.70645e-03,-8.31029e-05,-1.59281e-02,-2.66987e-02,-8.39527e-02,-1.72931e-01,-1.81847e-01,-9.55051e-02,-5.50033e-02,1.73005e-02,-1.02743e-02,2.09941e-02,-5.25963e-03,3.65219e-02,2.20655e-02,-3.03286e-02,-1.28259e-01,-1.53968e-01,-1.14495e-01,-9.05403e-02,-8.25941e-02,-1.44458e-01,-1.47415e-01,-1.11976e-01,-5.39363e-02,4.16424e-02,6.65607e-02,1.59811e-02,7.52330e-03,4.35645e-02,2.60479e-02,-2.95124e-02,-6.39484e-02,-1.53402e-01,-2.06703e-01,-1.26620e-01,-2.04924e-03,5.48039e-03,-1.70955e-02,1.44368e-02,-3.11048e-02,3.78729e-02,-2.47684e-02,-8.96435e-02,-1.63950e-01,-2.27443e-01,-2.47403e-01,-2.06290e-01,-1.84047e-01,-1.81098e-01,-2.47668e-01,-1.64721e-01,-9.99030e-02,8.87290e-03,4.40664e-02,4.10657e-02,2.46106e-03,4.82629e-02,-4.31632e-02,-7.56144e-02,-7.25823e-02,-1.06895e-01,-1.50315e-01,-9.06677e-02,-2.40735e-03,3.07384e-02,-7.31940e-03,-2.95398e-02,-1.38113e-02,-4.06531e-02,-8.65947e-02,-1.57630e-01,-2.09053e-01,-2.51171e-01,-2.65637e-01,-2.93499e-01,-2.56727e-01,-1.68492e-01,-8.59864e-02,-1.32186e-01,-1.26118e-01,-9.16493e-02,3.34872e-03,2.08011e-02,7.65693e-04,3.10514e-02,1.48449e-02,-6.13581e-02,-7.99937e-02,-1.35761e-01,-6.18757e-02,-1.95205e-02,-2.70118e-02,-3.18442e-02,-1.25516e-02,2.34552e-02,-1.38597e-02,-2.71487e-02,-6.24185e-02,-1.85685e-01,-2.42727e-01,-2.47898e-01,-1.72985e-01,-1.65005e-01,-6.05423e-02,-3.08495e-03,7.79718e-03,-9.38959e-02,-8.79766e-02,-8.20764e-02,-5.60553e-02,-6.29778e-02,-6.03377e-02,-3.42416e-02,-2.46407e-02,-2.96995e-02,-8.58001e-02,-7.81073e-02,-4.74916e-02,2.51659e-02,1.88155e-02,-4.97846e-03,-2.58854e-02,1.37956e-02,1.85962e-02,1.03562e-02,-7.32236e-02,-1.47769e-01,-1.64410e-01,-1.25962e-01,-4.11740e-02,-8.48767e-03,9.18945e-02,1.18647e-01,9.77783e-02,1.90246e-02,-5.03175e-02,-8.36967e-02,-8.48039e-02,-2.47457e-02,-6.49748e-02,-2.12621e-02,-2.90527e-02,9.65161e-03,-3.22928e-02,-1.09534e-01,-4.41934e-02,1.05875e-03,-2.13639e-02,-2.48495e-02,5.90630e-04,7.34688e-03,-1.83107e-02,1.11564e-02,2.70214e-02,-3.15071e-02,-4.15039e-03,1.74167e-02,9.48210e-02,8.71706e-02,1.22741e-01,1.39561e-01,1.00014e-01,2.44584e-02,1.34149e-02,-5.02033e-02,-3.25815e-02,-1.56234e-02,-6.74506e-04,-1.84830e-02,-1.06177e-02,-5.27900e-02,-8.82466e-03,-3.41672e-02,-5.10879e-03,3.01728e-02,-2.34591e-03,-8.38478e-03,-1.61500e-02,2.08637e-02,2.61552e-02,-1.77338e-02,1.97306e-02,3.24297e-02,8.63497e-02,6.95327e-02,8.19510e-02,1.13225e-01,1.12776e-01,7.66186e-02,7.68855e-02,3.43211e-02,2.66736e-02,-3.75149e-03,1.04207e-02,3.20101e-02,3.58074e-02,1.89832e-02,-4.08041e-02,-4.97757e-02,-4.47842e-02,-3.66646e-02,2.21665e-02,5.53574e-02,4.73421e-02,-2.75484e-02,1.60456e-02,5.51922e-03,1.12840e-03,4.78794e-02,5.45542e-02,1.15238e-01,1.38409e-01,1.10218e-01,9.82307e-02,7.58182e-02,9.54450e-02,1.26326e-01,1.23695e-01,2.75580e-03,3.63427e-02,4.47216e-02,8.09806e-02,8.79532e-02,8.65432e-02,8.45899e-02,1.11359e-02,5.95176e-02,1.47735e-02,6.00076e-02,1.01484e-01,1.19414e-01,5.54140e-02,2.48788e-02,-1.17704e-02,2.64810e-02,-4.22242e-03,7.32851e-03,6.24212e-02,1.18245e-01,6.34074e-02,6.47233e-02,1.29971e-02,2.14580e-02,3.26370e-02,7.83560e-02,7.44242e-02,1.10406e-01,9.74992e-02,8.51466e-02,1.50906e-01,1.25962e-01,4.43868e-02,1.76366e-02,6.34908e-03,-6.20959e-03,2.01780e-02,7.70990e-02,1.40251e-01,1.15541e-01,2.83921e-02,-3.00434e-02,-7.41160e-03,-1.60150e-02,1.22095e-03,4.48549e-02,1.06307e-01,9.24813e-02,8.72486e-02,2.86704e-02,-2.07228e-02,-3.12498e-02,-1.32865e-02,-1.45514e-02,4.95491e-02,1.22477e-01,6.27473e-02,8.84276e-02,1.19854e-01,8.62885e-02,8.40739e-02,5.74796e-02,-7.78852e-03,4.14846e-02,5.20954e-02,9.22560e-02,1.72411e-01,1.43955e-01,2.01418e-02,2.67022e-02,-1.03782e-02,3.11293e-02,-1.87073e-02,8.98733e-02,1.14477e-01,4.61498e-02,4.85399e-02,5.20730e-02,3.84843e-02,-1.35629e-02,-2.03277e-02,-1.44350e-02,2.07712e-02,3.37460e-02,3.69110e-02,2.79509e-02,3.44989e-02,2.90593e-02,5.03804e-02,-5.75848e-03,-2.35507e-02,-4.63433e-03,1.00169e-01,1.28996e-01,1.66166e-01,9.22108e-02,3.51414e-02,3.21438e-02,3.04903e-02,-3.44243e-02,9.82716e-03,7.86295e-02,1.18574e-01,4.59579e-02,7.67978e-03,6.14137e-03,-7.17963e-03,5.31352e-02,-5.56679e-03,-1.78724e-02,-3.30581e-02,-4.25671e-02,-2.36390e-02,3.81866e-03,2.56249e-02,3.11519e-02,4.69257e-02,6.45415e-02,6.81661e-02,6.94322e-02,6.65275e-02,1.10307e-01,9.50917e-02,9.06968e-02,-1.12241e-02,2.75336e-03,2.22106e-02,1.15943e-02,3.66778e-02,5.20503e-02,7.30844e-02,5.80656e-02,5.34856e-02,4.17463e-02,2.78238e-02,5.23090e-03,-2.70920e-02,-3.88510e-02,-8.75965e-03,-4.65294e-02,-7.86311e-02,-3.74500e-02,-3.09973e-02,1.81149e-02,5.13954e-02,6.98726e-02,-1.18194e-02,5.74113e-02,4.30686e-02,4.90640e-02,5.46490e-02,1.29120e-02,-9.91264e-03,1.57858e-02,-2.83146e-02,-3.16352e-03,1.47075e-03,4.73884e-02,9.34439e-02,6.36806e-02,5.50047e-02,5.56920e-02,5.13049e-02,-1.12441e-02,2.96081e-02,-5.32246e-02,-4.52663e-02,-1.03793e-01,-9.22030e-02,-1.39870e-01,-7.19907e-02,-1.26481e-02,3.48198e-02,4.43131e-02,5.82239e-02,1.36382e-02,3.84062e-02,2.37481e-02,3.92770e-03,-1.98938e-02,-2.50450e-02,-1.53817e-02,1.65549e-02,1.17628e-02,-1.47549e-02,4.19913e-02,6.97618e-02,2.12012e-02,6.77670e-02,9.04630e-02,6.05108e-02,1.32502e-02,-4.79803e-02,-3.07564e-02,-3.48949e-02,-1.30237e-01,-8.79624e-02,-1.28779e-01,-6.95085e-02,-8.74820e-02,-4.64077e-02,-1.87960e-02,-3.02959e-02,2.65747e-02,4.87689e-02,4.38764e-02,1.64347e-02,6.88229e-03,-6.80007e-03,4.65463e-03,-9.78907e-03,-1.32681e-02,-2.56323e-02,1.02811e-02,3.18253e-02,3.73395e-02,5.03798e-02,1.82695e-02,2.98456e-02,3.01977e-02,-1.97983e-02,2.16955e-02,-4.29506e-03,-3.11832e-02,-5.55493e-02,-1.60541e-01,-1.31687e-01,-1.17062e-01,-5.22486e-02,-8.11148e-02,-5.41991e-02,-3.42009e-02,-1.71459e-02,3.55289e-03,9.35091e-03,-1.19693e-02,-1.62634e-02,2.45031e-03,-4.59986e-03,-2.26993e-02,-2.66405e-02,-3.37620e-03,-5.76976e-03,-2.45790e-02,3.50694e-02,3.85160e-02,3.20738e-02,3.33563e-02,-1.43120e-03,4.45185e-02,7.27003e-02,-2.17805e-03,-2.60726e-02,-5.69010e-03,2.21933e-02,-2.51185e-02,1.05929e-02,1.21986e-02,-4.48286e-02,-2.32374e-02,-4.17844e-02,-4.77302e-03,-3.34698e-02,-2.36001e-02,-3.08799e-02,1.59989e-03,-3.24289e-02,1.43895e-02,-2.41928e-03,-2.91274e-02,1.79010e-02,2.14869e-02,1.18773e-02,-3.94287e-02,2.40878e-02,-2.04439e-02,-4.13463e-03,-1.29471e-02,-4.14339e-02,-7.40234e-04,-1.17915e-02,1.47163e-02,-4.10283e-02,-3.88796e-02,2.64022e-02,-2.42430e-02,1.90365e-02,-2.30421e-02,-7.40027e-03,3.53721e-02,3.17683e-02,3.01937e-02,2.94464e-03,8.24885e-03,1.37157e-02,-1.70975e-02,-2.56962e-02,2.25513e-02,2.53830e-02,3.52087e-02,-2.11395e-02,-3.19004e-02,3.36300e-02,1.36593e-02,-1.14506e-02,-5.21744e-03,-2.72516e-02,-3.05962e-02,-8.54219e-03,-2.47710e-02,9.98173e-05,-6.43302e-03,1.07418e-02,-2.86616e-02,8.46966e-03,2.86955e-02,-1.84488e-02,3.31344e-02,-2.71007e-02,1.49752e-02,2.77955e-02,-7.32925e-03, +1.11770e-03, +4.22123e-02, +-5.97916e-02, +4.36617e-02, +1.68284e-01, +1.42377e-01, +4.50269e-02, +-1.00338e-01, +1.02314e-01, +1.38692e-02, +-1.82169e-02, +8.00577e-03, +-1.37140e-02, +-1.23467e-01, +1.75593e-01, +-1.15438e-01, +4.74161e-02, +7.55110e-03, +-1.22708e-02, +-1.02902e-01, +5.13058e-02, +2.44007e-02, +-3.22401e-02, +6.08113e-02, +3.50865e-03, +2.38775e-02, +1.40852e-01, +7.13008e-02, +1.57199e-01, +-1.11303e-02, +1.96885e-01,5.83500e-01,2.15413e-01,4.76461e-01,-1.18523e-01,-7.93671e-02,-1.06411e-01,1.43317e-01,-1.90508e-01,-1.16343e-01,1.73402e-01,-2.40060e-01,9.28567e-02,5.22161e-02,-9.99640e-02,2.48029e-01,1.66224e-01,3.04584e-01,-5.78304e-02,4.74910e-01,-2.61224e-01,3.63759e-01,-1.16898e-01,-3.07917e-01,1.85590e-02,5.88504e-01,-4.56013e-02,1.60032e-01,-2.41954e-01,-2.90383e-02, +-5.57513e-02,2.24370e-01,1.92229e-01,-2.58106e-01,-2.29143e-01,-1.25958e-01,2.62678e-01,1.67959e-01,2.82569e-01,4.72975e-01,-3.28367e-01,3.54362e-01,5.09583e-02,-7.24437e-02,2.81295e-01,8.01252e-02,-1.71909e-01,-1.16479e-03,8.45784e-02,1.83797e-01,2.19318e-01,2.90011e-01,-3.44393e-01,-1.57061e-01,1.49427e-01,-1.93280e-01,1.15276e-01,-1.49879e-01,-1.82710e-01,-1.61791e-01, +1.04628e-01,-1.29424e-01,5.61395e-02,-1.30580e-01,1.03878e-01,-4.16179e-02,-2.66998e-02,1.16581e-02,2.66259e-03,9.88631e-02,-3.56241e-02,-9.44718e-02,-1.39256e-01,-3.28375e-03,-4.85437e-02,7.81704e-02,-1.89316e-01,-1.31880e-01,1.24050e-01,-1.70054e-01,1.10298e-01,5.79613e-02,-3.60466e-04,-8.57177e-02,4.48557e-02,-1.49411e-01,-1.58064e-01,-1.15176e-01,4.63945e-04,9.59841e-02, +-1.91061e-01,-4.08452e-01,-1.49862e-01,2.13354e-01,2.73552e-01,-7.34832e-02,2.39246e-01,3.86406e-02,1.07427e-01,-1.95955e-01,4.31824e-02,7.89730e-03,-8.13397e-02,-1.91598e-01,1.48165e-01,-2.12924e-01,2.96437e-02,-1.52753e-01,3.64609e-01,5.69910e-02,3.33780e-02,-1.17368e-01,-2.80448e-01,1.33643e-01,1.05499e-01,-1.07935e-01,3.13606e-01,-5.39623e-02,4.75957e-02,4.29931e-03, +-1.24700e-01,3.68998e-01,2.01429e-01,2.86001e-02,1.50574e-01,2.92124e-01,1.73288e-01,-2.57335e-02,-2.22382e-01,9.69099e-02,-4.25413e-02,-1.28989e-01,-6.06622e-02,-3.88995e-01,3.64455e-01,5.68769e-03,2.89344e-01,4.18401e-02,-7.25219e-02,-2.20049e-01,1.21266e-01,5.27593e-02,-4.24782e-01,-2.09145e-01,-1.54676e-01,-1.74638e-02,-1.44942e-01,2.41159e-01,3.20134e-01,6.49392e-02, +2.58751e-01,2.19694e-01,-5.82235e-02,2.58502e-01,2.23385e-01,3.02148e-01,4.18992e-02,-1.58543e-01,-1.94878e-02,-2.28954e-01,1.46617e-01,-3.71877e-01,-3.59769e-01,-1.95324e-01,4.54015e-02,-2.75415e-02,1.61447e-01,-1.95435e-01,2.14862e-01,8.36208e-02,1.37699e-01,-4.19840e-02,1.09461e-02,-2.76149e-01,-2.39819e-03,1.00837e-01,1.72344e-01,2.42672e-01,2.77052e-01,1.28358e-01, +2.80438e-01,2.03318e-01,1.30746e-01,-4.93109e-01,2.18481e-01,3.96123e-01,-1.74655e-02,-2.62400e-01,1.17807e-01,5.27804e-01,-8.23043e-02,5.10205e-01,1.15842e-01,2.01001e-01,1.47483e-01,1.08193e-01,-3.90307e-01,3.44542e-01,-5.05824e-01,-2.94495e-01,-1.00569e-01,2.48306e-01,4.78243e-01,1.23892e-01,3.41260e-02,-1.19152e-01,-3.32377e-01,1.46387e-02,-1.38675e-01,-2.66358e-01, +3.36235e-01,-3.46087e-01,1.95795e-01,-6.08103e-02,9.42218e-02,-1.28391e-01,1.17620e-01,-2.62819e-02,2.00883e-01,1.08381e-01,-1.78898e-01,2.14496e-01,1.81180e-01,6.91302e-02,1.04404e-01,-1.77148e-01,1.55197e-01,3.72135e-02,3.00141e-01,-8.58880e-02,5.29925e-02,-1.24472e-01,3.91076e-03,2.22151e-01,3.80732e-02,-2.36594e-01,4.34479e-01,2.77067e-01,4.66469e-01,-2.58429e-01, +1.60105e-01,1.61489e-01,-1.47790e-01,9.08881e-02,2.44197e-01,-1.00400e-02,6.84660e-02,2.11441e-01,1.92381e-01,-1.35882e-01,-2.45680e-01,-2.06963e-01,-3.58157e-02,-1.13012e-01,2.29129e-01,-7.32362e-02,1.41185e-01,-4.53322e-02,3.40620e-03,1.22155e-01,2.75206e-01,2.27238e-01,-1.06893e-01,-1.63627e-01,1.73903e-01,4.12818e-01,4.96908e-01,1.89284e-01,3.09985e-01,-2.25203e-01, +3.68892e-01,2.11026e-01,2.13026e-01,3.74701e-01,-7.02159e-02,1.38170e-01,4.17334e-02,3.07438e-01,-2.84995e-01,-1.71476e-01,6.86706e-02,-1.03044e-02,3.97616e-03,1.64837e-01,-3.84082e-01,1.99846e-01,-8.25185e-03,3.38467e-01,3.78818e-01,5.23919e-01,-1.94161e-01,2.22559e-01,2.93845e-02,-1.50568e-01,-1.47666e-01,1.61905e-01,2.65902e-02,4.16406e-02,-3.08826e-01,2.05605e-02, +4.89937e-02,-8.61693e-02,-2.41279e-01,1.53292e-01,-8.76143e-02,-2.27572e-01,5.12316e-01,5.05663e-01,3.83425e-01,1.74825e-01,-2.51901e-01,-4.17668e-02,2.86971e-01,6.31802e-02,1.71407e-01,2.94001e-01,-4.67693e-02,1.56843e-01,1.31746e-01,-3.39123e-02,1.05364e-01,2.21172e-01,-3.67542e-01,6.78714e-02,-4.23668e-02,1.14921e-02,2.55425e-01,-1.15819e-01,-2.87708e-01,-2.23737e-01, +2.82672e-02,1.30927e-02,3.51874e-01,-1.46409e-01,-5.56881e-01,-4.69745e-01,-4.81730e-01,1.08415e-01,-1.04828e-01,9.61091e-03,9.31726e-02,1.85661e-01,1.83231e-01,2.14825e-01,2.34245e-01,4.56001e-01,4.42348e-01,-3.27986e-01,1.09991e-01,1.25488e-01,-8.60266e-03,1.58760e-02,-4.16734e-02,6.82314e-03,1.23041e-01,-2.57478e-03,-1.36301e-01,2.86911e-01,3.30211e-01,1.85445e-01, +-5.84221e-02,-7.66500e-02,-6.00803e-03,2.67641e-02,-3.83919e-02,-1.41210e-02,-2.23930e-01,3.56402e-02,8.01184e-02,1.73127e-01,1.74786e-01,1.77240e-01,-1.42730e-01,-1.61690e-01,1.12650e-01,-3.94751e-02,1.90255e-01,2.38849e-02,1.98706e-02,1.64426e-01,-1.43950e-01,1.54026e-01,-8.64129e-02,-1.84172e-01,-7.34594e-02,-2.57051e-02,1.56071e-01,2.52128e-02,-1.98186e-01,-1.02451e-01, +2.14350e-01,-7.80670e-02,5.09497e-02,4.11692e-01,2.73055e-01,1.77218e-01,1.41525e-01,1.48355e-01,-1.28376e-01,-4.93427e-01,3.34450e-01,1.81396e-01,2.26411e-01,9.56914e-02,-3.18292e-01,-7.14116e-03,2.24588e-01,2.02735e-01,4.57181e-01,-1.68585e-02,6.07815e-02,-6.09434e-02,-7.94218e-02,5.91499e-01,1.45289e-01,-3.56583e-01,-2.00017e-02,-2.08440e-01,2.14037e-01,5.55251e-01, +-2.25011e-01,-1.87159e-02,-9.46850e-02,1.32321e-01,-7.46288e-02,3.47521e-01,4.12927e-01,3.05555e-01,2.28858e-01,-2.02390e-02,1.73744e-01,7.73914e-02,2.98039e-01,-9.46712e-02,1.87882e-01,1.90393e-01,2.47969e-01,3.51180e-01,-1.87429e-01,-5.56918e-02,3.25488e-01,1.75242e-02,-3.73413e-01,2.27094e-01,1.60630e-01,8.08649e-02,1.21950e-01,-1.37380e-01,-1.46078e-01,3.28854e-02, +-3.08221e-01,2.50762e-01,1.17344e-01,-5.57919e-03,4.88617e-02,1.17706e-01,-2.34960e-02,1.99474e-01,-2.76792e-01,-2.39977e-01,6.34826e-02,-2.30395e-01,-1.96210e-01,-1.61055e-01,3.99472e-03,2.35126e-01,2.09022e-01,-2.38425e-02,9.18296e-02,-9.56200e-02,7.72511e-02,1.92930e-01,-3.72801e-01,-4.65988e-02,1.62684e-01,-7.87637e-02,1.37588e-01,-1.38183e-01,-9.48415e-02,2.02890e-01, +1.79368e-01,-2.65127e-01,9.06444e-02,-9.98870e-03,-4.64284e-01,-3.40281e-01,-2.47319e-01,-1.14754e-01,1.30912e-01,2.43859e-01,2.44104e-01,2.43734e-01,2.59312e-01,3.24251e-01,1.46346e-01,5.67544e-02,1.64796e-01,-1.32121e-01,3.35127e-02,-1.93907e-01,-2.47237e-01,-3.94471e-02,9.12155e-02,6.08460e-02,-3.43151e-02,1.81587e-01,1.08163e-01,3.28950e-01,1.07017e-01,3.76739e-02, +3.04293e-01,2.33005e-01,2.37005e-02,6.01493e-02,1.85275e-01,1.10606e-01,1.98862e-01,6.21817e-02,-9.05744e-03,-3.46282e-02,1.50739e-01,-2.58899e-01,-2.04518e-01,6.50926e-02,-2.69286e-01,-1.32723e-01,4.83070e-02,2.45702e-01,2.43681e-02,3.64033e-01,-9.87430e-02,2.28315e-01,-5.46787e-02,-2.45203e-01,-6.00206e-02,-1.57936e-01,4.24521e-02,-9.58877e-03,1.93587e-01,3.64426e-01, +1.56321e-01,2.97949e-01,1.31705e-01,4.24901e-02,3.74708e-01,9.72446e-02,3.30773e-01,-1.39505e-01,1.77610e-01,1.19892e-01,1.20349e-01,3.31218e-02,-6.21134e-02,-2.15026e-01,1.48830e-01,2.00357e-02,1.93182e-01,-5.43261e-02,-8.73565e-02,6.64856e-02,2.70451e-01,-3.68414e-03,-3.06686e-01,-2.09045e-01,-9.29141e-02,-1.34381e-02,-5.56209e-02,-1.20720e-01,1.36191e-01,1.69308e-01, +-3.66489e-02,2.77757e-02,1.85644e-01,-2.24151e-02,7.76174e-02,2.52111e-01,-3.56176e-01,-2.47184e-01,-2.82904e-01,1.03070e-01,2.39942e-01,-1.83193e-02,9.74531e-02,8.83775e-02,2.83466e-01,6.08775e-02,7.42623e-03,-1.10806e-01,-1.84279e-01,-1.22630e-01,-2.13141e-01,2.11748e-01,5.83454e-01,-2.90091e-02,-1.21917e-01,4.67910e-01,2.09155e-01,3.71948e-01,1.88290e-01,-2.26466e-01, +1.36859e-01, +-5.47358e-02, +-1.61295e-01, +-9.24378e-02, +2.59721e-01, +1.48634e-01, +2.83714e-01, +2.61531e-01, +3.43434e-01, +-2.19749e-01, +1.49002e-02, +-1.73096e-01, +-5.72641e-02, +-1.64188e-02, +-1.02138e-01, +-7.40858e-02, +4.31510e-02, +-1.01385e-01, +1.01749e-01, +2.03413e-01, +-5.59406e-01,1.66618e-01,-2.78456e-02,3.20015e-01,-7.12346e-01,-3.71104e-01,-5.28697e-01,2.72596e-01,1.91702e-01,-8.28155e-02,3.74210e-01,-5.95106e-02,-1.59619e-01,2.28939e-01,2.05552e-01,-4.83623e-02,-2.15283e-01,-3.34277e-01,-4.10561e-01,-4.30758e-01, +3.87770e-01,-8.68047e-02,-1.80117e-01,4.48403e-02,-6.56202e-02,-1.14432e-02,2.60819e-01,-7.28790e-01,1.42099e-01,2.88769e-01,-5.28407e-01,-5.30460e-01,-8.58256e-02,-3.77122e-01,-4.10766e-01,-3.54029e-01,-5.11080e-01,2.57471e-01,-3.66289e-02,2.56322e-01, +2.64381e-01,7.44913e-02,1.88908e-01,1.32259e-01,-4.34956e-01,1.42012e-02,-2.35315e-01,-2.27651e-01,-4.62856e-01,2.23936e-01,-7.45576e-03,-8.91650e-03,-2.53192e-02,5.32904e-01,-6.90572e-02,-1.60645e-01,5.81870e-02,2.78949e-01,-1.22821e-02,-5.01671e-01, +1.15619e-01,3.72850e-02,6.21692e-02,-4.69642e-01,4.30013e-01,9.64007e-02,-3.67817e-01,-2.34652e-01,-1.85496e-02,4.81550e-02,7.93478e-02,1.01485e-01,1.76943e-01,-6.80782e-02,2.36524e-01,4.08155e-01,-4.68832e-01,1.76689e-01,1.71347e-01,-1.25949e-01, +-4.08230e-01,8.40646e-02,3.30441e-02,-2.94106e-01,8.25009e-02,-1.08103e-01,1.08885e-01,2.98866e-01,-2.81765e-01,-7.33865e-01,-5.80308e-01,4.27936e-01,1.28663e-01,2.57578e-02,-4.09969e-01,-1.93884e-01,2.68788e-01,2.24537e-02,1.33308e-01,2.41410e-01, +-1.47188e-01,3.62418e-01,-1.24923e-01,-3.50330e-01,7.45378e-02,-1.17483e-01,3.10761e-02,5.11556e-02,1.43735e-01,-4.47302e-01,3.90820e-01,-2.55294e-01,8.39455e-02,-4.79883e-01,2.86385e-01,-2.88292e-01,-1.74437e-01,7.45767e-03,2.15347e-01,-2.65567e-01, +-4.59003e-01,-1.55327e-02,1.17557e-01,-1.37020e-01,-5.09399e-01,-4.44390e-01,5.13612e-01,9.52801e-02,-7.00550e-01,-1.09302e-01,-2.40447e-01,-5.19472e-01,-2.31387e-01,2.52770e-01,1.13954e-01,-1.57127e-01,-1.99027e-02,-2.19668e-01,-2.77975e-01,1.32232e-01, +-1.21363e-01,-5.33477e-01,1.43862e-01,2.65367e-01,1.33315e-01,6.04519e-01,-6.17190e-01,2.29902e-01,3.25657e-01,2.39627e-01,-4.27818e-01,-3.10592e-01,1.12113e-01,8.64898e-02,-4.38880e-01,-2.60310e-01,-1.87857e-01,4.32401e-01,1.42467e-01,7.45491e-02, +2.38272e-01,2.89412e-01,1.94110e-01,-4.40212e-01,-4.36408e-01,-3.94337e-01,-1.74892e-02,-2.09044e-02,6.05132e-03,9.50718e-02,2.82646e-01,3.56414e-02,2.50093e-01,-6.24449e-01,-5.75618e-02,-3.72884e-01,1.68645e-01,-1.09560e-01,-4.21549e-01,-4.64904e-02, +2.09989e-01,-2.25976e-01,2.14366e-01,-2.60807e-01,3.12882e-02,8.51733e-02,-6.41503e-01,-3.80944e-02,1.32344e-01,-3.73757e-01,-1.97519e-01,2.03821e-01,1.83419e-01,-2.04848e-01,-5.03251e-02,-2.05040e-01,3.05971e-01,-3.94268e-01,-1.71631e-01,4.54444e-01, +-1.68543e-01, +2.16393e-01, +1.87186e-01, +-7.81683e-02, +-5.74186e-02, +4.24497e-01, +-1.67951e-01, +1.15025e-01, +-3.64928e-01, +-1.23386e-01, From 856f47adc8c8e07e310e1bda6618105e69510631 Mon Sep 17 00:00:00 2001 From: Tianhao Date: Wed, 1 Jul 2020 16:31:14 -0400 Subject: [PATCH 22/66] add mnist test dependencies --- Project.toml | 3 ++- test/runtests.jl | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/Project.toml b/Project.toml index 3c5d234a..d64f8d3e 100644 --- a/Project.toml +++ b/Project.toml @@ -19,6 +19,7 @@ SCS = "c946c3f1-0d1f-5ce8-9dea-7daa1f7e2d13" [extras] Flux = "587475ba-b771-5e3f-ad9e-33799f191a9c" Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40" +JLD2 = "033835bb-8acc-5ee8-8aae-3f567f8a3819" [targets] -test = ["Test", "Flux"] +test = ["Test", "Flux", "JLD2"] diff --git a/test/runtests.jl b/test/runtests.jl index d23489d3..073b8fa9 100644 --- a/test/runtests.jl +++ b/test/runtests.jl @@ -1,4 +1,3 @@ -include("mnist_1000.jl") include("identity_network.jl") include("relu_network.jl") include("inactive_relus.jl") @@ -7,3 +6,4 @@ if Base.find_package("Flux") != nothing end include("complements.jl") include("splitting.jl") +include("mnist_1000.jl") \ No newline at end of file From 40c62fc9f971af7d63791c6e49cb8612e8a65636 Mon Sep 17 00:00:00 2001 From: Tianhao Date: Thu, 2 Jul 2020 13:21:02 -0400 Subject: [PATCH 23/66] address reviewer proposed problems: remove some redundancy in Neurify.jl and splitting.jl, add some comments. --- src/adversarial/neurify.jl | 65 +++++++++++++++++++------------------- src/utils/util.jl | 4 +-- test/mnist_1000.jl | 7 ++-- test/splitting.jl | 12 ------- 4 files changed, 39 insertions(+), 49 deletions(-) diff --git a/src/adversarial/neurify.jl b/src/adversarial/neurify.jl index a867e3af..ac94d984 100644 --- a/src/adversarial/neurify.jl +++ b/src/adversarial/neurify.jl @@ -28,20 +28,26 @@ Sound but not complete. @with_kw struct Neurify max_iter::Int64 = 10 tree_search::Symbol = :DFS # only :DFS/:BFS allowed? If so, we should assert this. - model = Nothing() - optimizer = GLPK.Optimizer - splitted = Set() # To prevent infinity loop. Not the best solution, need to be modified in the future. + + # Becuase of over-approximation, a split may not bisect the input set. + # Therefore, the gradient remains unchanged (since input didn't change). + # And this node will be chosen to split forever. + # To prevent this, we split each node only once. + # $splits is used to record which node has been split. + + splits = Set() # To prevent infinity loop. Not the best solution, need to be modified in the future. + + # But in some cases (which I don't have an example, just a sense), + # due to over-approximation, a node indeed needs to be split twice. end struct SymbolicInterval{F<:AbstractPolytope} Low::Matrix{Float64} Up::Matrix{Float64} interval::F - model end -SymbolicInterval(x::Matrix{Float64}, y::Matrix{Float64}) = SymbolicInterval(x, y, Hyperrectangle([0],[0]), Nothing()) -SymbolicInterval(x::Matrix{Float64}, y::Matrix{Float64}, interval::AbstractPolytope) = SymbolicInterval(x, y, interval, Nothing()) +SymbolicInterval(x::Matrix{Float64}, y::Matrix{Float64}) = SymbolicInterval(x, y, Hyperrectangle([0],[0])) # Data to be passed during forward_layer struct SymbolicIntervalGradient @@ -52,7 +58,7 @@ end function solve(solver::Neurify, problem::Problem) - while !isempty(solver.splitted) pop!(solver.splitted) end + while !isempty(solver.splits) pop!(solver.splits) end problem = Problem(problem.network, convert(HPolytope, problem.input), convert(HPolytope, problem.output)) reach_lc = problem.input.constraints @@ -65,9 +71,12 @@ function solve(solver::Neurify, problem::Problem) @constraint(model, [i in 1:n], reach_lc[i].a' * x <= reach_lc[i].b) reach = forward_network(solver, problem.network, problem.input) - result = check_inclusion(reach.sym, problem.output, problem.network) # This called the check_inclusion function in ReluVal, because the constraints are Hyperrectangle + + result = check_inclusion(reach.sym, problem.output, problem.network) # This calls the check_inclusion function in ReluVal, because the constraints are Hyperrectangle result.status == :unknown || return result + reach_list = SymbolicIntervalGradient[reach] + for i in 2:solver.max_iter length(reach_list) > 0 || return BasicResult(:holds) reach = pick_out!(reach_list, solver.tree_search) @@ -84,10 +93,9 @@ end function check_inclusion(reach::SymbolicInterval{HPolytope{N}}, output::AbstractPolytope, nnet::Network) where N # The output constraint is in the form A*x < b - # We try to maximize output constraint to find a violated case, or to verify the inclusion, - # suppose the output is [1, 0, -1] * x < 2, Then we are maximizing reach.Up[1] * 1 + reach.Low[3] * (-1) + # We try to maximize output constraint to find a violated case, or to verify the inclusion. + # Suppose the output is [1, 0, -1] * x < 2, Then we are maximizing reach.Up[1] * 1 + reach.Low[3] * (-1) - # x = model[:x] reach_lc = reach.interval.constraints output_lc = output.constraints n = size(reach_lc, 1) @@ -114,17 +122,21 @@ function check_inclusion(reach::SymbolicInterval{HPolytope{N}}, output::Abstract if ∈(value(x), reach.interval) return CounterExampleResult(:violated, value(x)) else - print("OPTIMAL, but x not in the input set") - exit() + println("OPTIMAL, but x not in the input set") + println("This is usually caused by precision problem, you can omit this") + println("x = ", value(x)) + println("A * x = ", obj' * [value(x); [1]]) + println("b = ", reach_lc[i].b) end end if objective_value(model) > output_lc[i].b - # println(objective_value(model)," ", output_lc[i].b) return BasicResult(:unknown) end else if ∈(value(x), reach.interval) - print("Not OPTIMAL, but x in the input set") + println("Not OPTIMAL, but x in the input set") + println("This is usually caused by open shape input set.") + println("Check your input constraints.") exit() end return BasicResult(:unknown) @@ -134,14 +146,6 @@ function check_inclusion(reach::SymbolicInterval{HPolytope{N}}, output::Abstract return BasicResult(:holds) end -function printconvex(shape) - vertices = tovrep(shape).vertices - for v in vertices - print(v, " ") - end - println() -end - function constraint_refinement(solver::Neurify, nnet::Network, reach::SymbolicIntervalGradient) i, j, gradient = get_nodewise_gradient(solver, nnet, reach.LΛ, reach.UΛ) # We can generate three more constraints @@ -171,14 +175,11 @@ function get_nodewise_gradient(solver::Neurify, nnet::Network, LΛ::Vector{Vecto for (k, layer) in enumerate(reverse(nnet.layers)) i = n_length - k + 1 if layer.activation != Id() - # Not sure whether this is right, but by experiments, this caused infinity loop. - # Because a split didn't reduce over-approximation at all (the input set is not bisected). + # Only split Relu nodes + # A split over id node may not reduce over-approximation (the input set may not bisected). for j in 1:size(layer.bias,1) - if in((i,j), solver.splitted) + if in((i,j), solver.splits) # To prevent infinity loop - # Becuase the over-approximation, a split may not bisect the input set. - # But in some cases (which I don't have an example, just a sense) - # a node is indeed can be splitted twice. continue end if (0 < LΛ[i][j] < 1) && (0 < UΛ[i][j] < 1) @@ -192,9 +193,9 @@ function get_nodewise_gradient(solver::Neurify, nnet::Network, LΛ::Vector{Vecto i >= 1 || break LG_hat = Diagonal(LΛ[i]) * max.(LG, 0.0) + Diagonal(UΛ[i]) * min.(LG, 0.0) UG_hat = Diagonal(LΛ[i]) * min.(UG, 0.0) + Diagonal(UΛ[i]) * max.(UG, 0.0) - LG, UG = interval_map(copy(transpose(layer.weights)), LG_hat, UG_hat) + LG, UG = interval_map(transpose(layer.weights), LG_hat, UG_hat) end - push!(solver.splitted, (max_tuple[1], max_tuple[2])) + push!(solver.splits, (max_tuple[1], max_tuple[2])) return max_tuple end @@ -272,7 +273,6 @@ function upper_bound(map::Vector{Float64}, input::HPolytope) model =Model(with_optimizer(GLPK.Optimizer)) @variable(model, x[1:m]) @constraint(model, [i in 1:n], input.constraints[i].a' * x <= input.constraints[i].b) - x = model[:x] @objective(model, Max, map' * [x; [1]]) optimize!(model) return objective_value(model) @@ -285,7 +285,6 @@ function lower_bound(map::Vector{Float64}, input::HPolytope) model =Model(with_optimizer(GLPK.Optimizer)) @variable(model, x[1:m]) @constraint(model, [i in 1:n], input.constraints[i].a' * x <= input.constraints[i].b) - x = model[:x] @objective(model, Min, map' * [x; [1]]) optimize!(model) return objective_value(model) diff --git a/src/utils/util.jl b/src/utils/util.jl index 9698b14a..b9bd496f 100644 --- a/src/utils/util.jl +++ b/src/utils/util.jl @@ -253,13 +253,13 @@ Inputs: Outputs: - `(lbound, ubound)` (after the mapping) """ -function interval_map(W::Matrix{N}, l::AbstractVecOrMat, u::AbstractVecOrMat) where N +function interval_map(W::AbstractMatrix{N}, l::AbstractVecOrMat, u::AbstractVecOrMat) where N l_new = max.(W, zero(N)) * l + min.(W, zero(N)) * u u_new = max.(W, zero(N)) * u + min.(W, zero(N)) * l return (l_new, u_new) end -function interval_map_right(W::Matrix{N}, l::AbstractVecOrMat, u::AbstractVecOrMat) where N +function interval_map_right(W::AbstractMatrix{N}, l::AbstractVecOrMat, u::AbstractVecOrMat) where N l_new = l * max.(W, zero(N)) + u * min.(W, zero(N)) u_new = u * max.(W, zero(N)) + l * min.(W, zero(N)) return (l_new, u_new) diff --git a/test/mnist_1000.jl b/test/mnist_1000.jl index b10f7def..93e2d2ce 100644 --- a/test/mnist_1000.jl +++ b/test/mnist_1000.jl @@ -5,7 +5,7 @@ using JLD2 function test_solver(solver, test_selected) - # index of all violation cases in the first 1000 images. + # index of all violated cases in the first 1000 images. violation_idx = [25, 142, 179, 183, 283, 285, 387, 392, 612, 647, 737] # index of selected holding cases in the first 1000 images. satisfied_idx = [10, 100, 200, 300, 400, 500 ,600, 700, 800, 900, 999, 213, 391, 660, 911] @@ -56,7 +56,7 @@ function test_solver(solver, test_selected) @test noisy != pred elseif result.status == :holds @test !(i ∈ violation_idx) - else #result.status == :unkown + else #result.status == :unknown end end @@ -65,6 +65,9 @@ end # if test_selected = true, only test selected index. Otherwise, test all 1000 images. test_selected = true +# Please note the number of tests maybe different for different solvers. +# Because the test cases depends on the result. + if test_selected @testset "MNIST selected, ReluVal" begin test_solver(ReluVal(), test_selected) diff --git a/test/splitting.jl b/test/splitting.jl index da4847b6..2c95f00c 100644 --- a/test/splitting.jl +++ b/test/splitting.jl @@ -2,16 +2,6 @@ using LazySets, Test, LinearAlgebra using NeuralVerification import NeuralVerification: ReLU, Id -macro no_error(ex) - quote - try $(esc(ex)) - true - catch - false - end - end -end - @testset "Splitting Test" begin net_file = "$(@__DIR__)/../examples/networks/R2_R2.nnet" @@ -36,14 +26,12 @@ end @testset "Neurify" begin solver = Neurify() - @test @no_error result = solve(solver, problem) result = solve(solver, problem) @test result.status == :holds end @testset "ReluVal" begin solver = ReluVal() - @test @no_error result = solve(solver, problem) result = solve(solver, problem) @test result.status == :holds end From dfc367f81cd70ff1188b9892dcf89437ca2653d6 Mon Sep 17 00:00:00 2001 From: Tianhao Date: Thu, 2 Jul 2020 14:40:43 -0400 Subject: [PATCH 24/66] add gradient to splits record, a node can be split again if the graident changes --- src/adversarial/neurify.jl | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/src/adversarial/neurify.jl b/src/adversarial/neurify.jl index ac94d984..fdbed78a 100644 --- a/src/adversarial/neurify.jl +++ b/src/adversarial/neurify.jl @@ -32,13 +32,13 @@ Sound but not complete. # Becuase of over-approximation, a split may not bisect the input set. # Therefore, the gradient remains unchanged (since input didn't change). # And this node will be chosen to split forever. - # To prevent this, we split each node only once. - # $splits is used to record which node has been split. + # To prevent this, we split each node only once if the gradient of this node doesn't change. + # Each element in splits is a tuple (gradient_of_the_node, layer_index, node_index). - splits = Set() # To prevent infinity loop. Not the best solution, need to be modified in the future. + splits = Set() # To prevent infinity loop. # But in some cases (which I don't have an example, just a sense), - # due to over-approximation, a node indeed needs to be split twice. + # it can happen that a node indeed needs to be split twice with the same gradient. end struct SymbolicInterval{F<:AbstractPolytope} @@ -178,13 +178,13 @@ function get_nodewise_gradient(solver::Neurify, nnet::Network, LΛ::Vector{Vecto # Only split Relu nodes # A split over id node may not reduce over-approximation (the input set may not bisected). for j in 1:size(layer.bias,1) - if in((i,j), solver.splits) - # To prevent infinity loop - continue - end - if (0 < LΛ[i][j] < 1) && (0 < UΛ[i][j] < 1) + if (0 < LΛ[i][j] < 1) && (0 < UΛ[i][j] < 1) max_gradient = max(abs(LG[j]), abs(UG[j])) - if max_gradient >= max_tuple[3] + if in((i,j, max_gradient), solver.splits) # To prevent infinity loop + continue + end + # If we use > here, in the case that largest gradient is 0, this function will return (0, 0 ,0) + if max_gradient >= max_tuple[3] max_tuple = (i, j, max_gradient) end end @@ -195,7 +195,7 @@ function get_nodewise_gradient(solver::Neurify, nnet::Network, LΛ::Vector{Vecto UG_hat = Diagonal(LΛ[i]) * min.(UG, 0.0) + Diagonal(UΛ[i]) * max.(UG, 0.0) LG, UG = interval_map(transpose(layer.weights), LG_hat, UG_hat) end - push!(solver.splits, (max_tuple[1], max_tuple[2])) + push!(solver.splits, max_tuple) return max_tuple end From 584fed27e3bc8d9cf21e2712e26fe1a14d53efba Mon Sep 17 00:00:00 2001 From: Tianhao Date: Fri, 3 Jul 2020 14:01:16 -0400 Subject: [PATCH 25/66] correct gradient computation, change gradient vector from column vector to row vector --- src/adversarial/neurify.jl | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/adversarial/neurify.jl b/src/adversarial/neurify.jl index fdbed78a..8240f209 100644 --- a/src/adversarial/neurify.jl +++ b/src/adversarial/neurify.jl @@ -169,8 +169,8 @@ end function get_nodewise_gradient(solver::Neurify, nnet::Network, LΛ::Vector{Vector{Float64}}, UΛ::Vector{Vector{Float64}}) n_output = size(nnet.layers[end].weights, 1) n_length = length(nnet.layers) - LG = ones(n_output) - UG = ones(n_output) + LG = ones(1,n_output) + UG = ones(1,n_output) max_tuple = (0, 0, 0.0) for (k, layer) in enumerate(reverse(nnet.layers)) i = n_length - k + 1 @@ -191,9 +191,9 @@ function get_nodewise_gradient(solver::Neurify, nnet::Network, LΛ::Vector{Vecto end end i >= 1 || break - LG_hat = Diagonal(LΛ[i]) * max.(LG, 0.0) + Diagonal(UΛ[i]) * min.(LG, 0.0) - UG_hat = Diagonal(LΛ[i]) * min.(UG, 0.0) + Diagonal(UΛ[i]) * max.(UG, 0.0) - LG, UG = interval_map(transpose(layer.weights), LG_hat, UG_hat) + LG_hat = max.(LG, 0.0) * Diagonal(LΛ[i]) + min.(LG, 0.0) * Diagonal(UΛ[i]) + UG_hat = min.(UG, 0.0) * Diagonal(LΛ[i]) + max.(UG, 0.0) * Diagonal(UΛ[i]) + LG, UG = interval_map_right(layer.weights, LG_hat, UG_hat) end push!(solver.splits, max_tuple) return max_tuple From 23d260c354b3e4577827eceade09cb401414c5a1 Mon Sep 17 00:00:00 2001 From: Tianhao Date: Fri, 3 Jul 2020 18:00:29 -0400 Subject: [PATCH 26/66] replace gradient with influence --- src/adversarial/neurify.jl | 82 +++++++++++++++++++++++--------------- 1 file changed, 49 insertions(+), 33 deletions(-) diff --git a/src/adversarial/neurify.jl b/src/adversarial/neurify.jl index 8240f209..526a52c2 100644 --- a/src/adversarial/neurify.jl +++ b/src/adversarial/neurify.jl @@ -54,6 +54,7 @@ struct SymbolicIntervalGradient sym::SymbolicInterval LΛ::Vector{Vector{Float64}} # mask for computing gradient. UΛ::Vector{Vector{Float64}} + r::Vector{Vector{Float64}} # range of a input interval (upper_bound - lower_bound) end function solve(solver::Neurify, problem::Problem) @@ -70,32 +71,32 @@ function solve(solver::Neurify, problem::Problem) @variable(model, x[1:m], base_name="x") @constraint(model, [i in 1:n], reach_lc[i].a' * x <= reach_lc[i].b) - reach = forward_network(solver, problem.network, problem.input) - - result = check_inclusion(reach.sym, problem.output, problem.network) # This calls the check_inclusion function in ReluVal, because the constraints are Hyperrectangle + reach = forward_network(solver, problem.network, problem.input) + result, max_violation_con = check_inclusion(solver, reach.sym, problem.output, problem.network) # This calls the check_inclusion function in ReluVal, because the constraints are Hyperrectangle result.status == :unknown || return result - reach_list = SymbolicIntervalGradient[reach] + reach_list = [(reach, max_violation_con)] for i in 2:solver.max_iter length(reach_list) > 0 || return BasicResult(:holds) - reach = pick_out!(reach_list, solver.tree_search) - intervals = constraint_refinement(solver, problem.network, reach) + reach, max_violation_con = pick_out!(reach_list, solver.tree_search) + intervals = constraint_refinement(solver, problem.network, reach, max_violation_con) for interval in intervals reach = forward_network(solver, problem.network, interval) - result = check_inclusion(reach.sym, problem.output, problem.network) + result, max_violation_con = check_inclusion(solver, reach.sym, problem.output, problem.network) result.status == :violated && return result - result.status == :holds || (push!(reach_list, reach)) + result.status == :holds || (push!(reach_list, (reach, max_violation_con))) end end return BasicResult(:unknown) end -function check_inclusion(reach::SymbolicInterval{HPolytope{N}}, output::AbstractPolytope, nnet::Network) where N +function check_inclusion(solver, reach::SymbolicInterval{HPolytope{N}}, output::AbstractPolytope, nnet::Network) where N # The output constraint is in the form A*x < b # We try to maximize output constraint to find a violated case, or to verify the inclusion. # Suppose the output is [1, 0, -1] * x < 2, Then we are maximizing reach.Up[1] * 1 + reach.Low[3] * (-1) + # return a result and the most violated constraint. reach_lc = reach.interval.constraints output_lc = output.constraints n = size(reach_lc, 1) @@ -103,8 +104,8 @@ function check_inclusion(reach::SymbolicInterval{HPolytope{N}}, output::Abstract model =Model(with_optimizer(GLPK.Optimizer)) @variable(model, x[1:m]) @constraint(model, [i in 1:n], reach_lc[i].a' * x <= reach_lc[i].b) - - + max_violation = -1e9 + max_violation_con = nothing for i in 1:size(output_lc, 1) obj = zeros(size(reach.Low, 2)) for j in 1:size(reach.Low, 1) @@ -114,23 +115,27 @@ function check_inclusion(reach::SymbolicInterval{HPolytope{N}}, output::Abstract obj += output_lc[i].a[j] * reach.Low[j,:] end end - @objective(model, Max, obj' * [x; [1]]) + obj = transpose(obj) + @objective(model, Max, obj * [x; [1]]) optimize!(model) if termination_status(model) == MOI.OPTIMAL y = compute_output(nnet, value(x)) if !∈(y, output) if ∈(value(x), reach.interval) - return CounterExampleResult(:violated, value(x)) + return CounterExampleResult(:violated, value(x)), nothing else println("OPTIMAL, but x not in the input set") println("This is usually caused by precision problem, you can omit this") println("x = ", value(x)) - println("A * x = ", obj' * [value(x); [1]]) + println("A * x = ", obj * [value(x); [1]]) println("b = ", reach_lc[i].b) end end if objective_value(model) > output_lc[i].b - return BasicResult(:unknown) + if objective_value(model) - output_lc[i].b > max_violation + max_violation = objective_value(model) - output_lc[i].b + max_violation_con = output_lc[i].a + end end else if ∈(value(x), reach.interval) @@ -139,18 +144,19 @@ function check_inclusion(reach::SymbolicInterval{HPolytope{N}}, output::Abstract println("Check your input constraints.") exit() end - return BasicResult(:unknown) + println("No solution, please check the problem definition.") + exit() end end - return BasicResult(:holds) + max_violation > 0 && return BasicResult(:unknown), max_violation_con + return BasicResult(:holds), nothing end -function constraint_refinement(solver::Neurify, nnet::Network, reach::SymbolicIntervalGradient) - i, j, gradient = get_nodewise_gradient(solver, nnet, reach.LΛ, reach.UΛ) +function constraint_refinement(solver::Neurify, nnet::Network, reach::SymbolicIntervalGradient, max_violation_con::Vector{Float64}) + i, j, influence = get_nodewise_influence(solver, nnet, reach, max_violation_con) # We can generate three more constraints # Symbolic representation of node i j is Low[i][j,:] and Up[i][j,:] - nnet_new = Network(nnet.layers[1:i]) reach_new = forward_network(solver, nnet_new, reach.sym.interval) C, d = tosimplehrep(reach.sym.interval) @@ -166,11 +172,14 @@ function constraint_refinement(solver::Neurify, nnet::Network, reach::SymbolicIn return intervals end -function get_nodewise_gradient(solver::Neurify, nnet::Network, LΛ::Vector{Vector{Float64}}, UΛ::Vector{Vector{Float64}}) +function get_nodewise_influence(solver::Neurify, nnet::Network, reach::SymbolicIntervalGradient, max_violation_con::Vector{Float64}) n_output = size(nnet.layers[end].weights, 1) n_length = length(nnet.layers) - LG = ones(1,n_output) - UG = ones(1,n_output) + # We want to find the node with the largest influence + # Influence is defined as gradient * interval width + # The gradient is with respect to a loss defined by the most violated constraint. + LG = transpose(copy(max_violation_con)) + UG = transpose(copy(max_violation_con)) max_tuple = (0, 0, 0.0) for (k, layer) in enumerate(reverse(nnet.layers)) i = n_length - k + 1 @@ -178,21 +187,23 @@ function get_nodewise_gradient(solver::Neurify, nnet::Network, LΛ::Vector{Vecto # Only split Relu nodes # A split over id node may not reduce over-approximation (the input set may not bisected). for j in 1:size(layer.bias,1) - if (0 < LΛ[i][j] < 1) && (0 < UΛ[i][j] < 1) + if (0 < reach.LΛ[i][j] < 1) && (0 < reach.UΛ[i][j] < 1) max_gradient = max(abs(LG[j]), abs(UG[j])) - if in((i,j, max_gradient), solver.splits) # To prevent infinity loop + influence = max_gradient * reach.r[i][j] + if in((i,j, influence), solver.splits) # To prevent infinity loop continue end # If we use > here, in the case that largest gradient is 0, this function will return (0, 0 ,0) - if max_gradient >= max_tuple[3] - max_tuple = (i, j, max_gradient) + if influence >= max_tuple[3] + max_tuple = (i, j, influence) end end end end + i >= 1 || break - LG_hat = max.(LG, 0.0) * Diagonal(LΛ[i]) + min.(LG, 0.0) * Diagonal(UΛ[i]) - UG_hat = min.(UG, 0.0) * Diagonal(LΛ[i]) + max.(UG, 0.0) * Diagonal(UΛ[i]) + LG_hat = max.(LG, 0.0) * Diagonal(reach.LΛ[i]) + min.(LG, 0.0) * Diagonal(reach.UΛ[i]) + UG_hat = min.(UG, 0.0) * Diagonal(reach.LΛ[i]) + max.(UG, 0.0) * Diagonal(reach.UΛ[i]) LG, UG = interval_map_right(layer.weights, LG_hat, UG_hat) end push!(solver.splits, max_tuple) @@ -209,7 +220,8 @@ function forward_linear(solver::Neurify, input::AbstractPolytope, layer::Layer) sym = SymbolicInterval(hcat(W, b), hcat(W, b), input) LΛ = Vector{Vector{Int64}}(undef, 0) UΛ = Vector{Vector{Int64}}(undef, 0) - return SymbolicIntervalGradient(sym, LΛ, UΛ) + r = Vector{Vector{Int64}}(undef, 0) + return SymbolicIntervalGradient(sym, LΛ, UΛ, r) end # Symbolic forward_linear @@ -220,7 +232,7 @@ function forward_linear(solver::Neurify, input::SymbolicIntervalGradient, layer: output_Up[:, end] += b output_Low[:, end] += b sym = SymbolicInterval(output_Low, output_Up, input.sym.interval) - return SymbolicIntervalGradient(sym, input.LΛ, input.UΛ) + return SymbolicIntervalGradient(sym, input.LΛ, input.UΛ, input.r) end # Symbolic forward_act @@ -228,6 +240,7 @@ function forward_act(input::SymbolicIntervalGradient, layer::Layer{ReLU}) n_node, n_input = size(input.sym.Up) output_Low, output_Up = input.sym.Low[:, :], input.sym.Up[:, :] mask_lower, mask_upper = zeros(Float64, n_node), ones(Float64, n_node) + interval_width = zeros(Float64, n_node) for i in 1:n_node if upper_bound(input.sym.Up[i, :], input.sym.interval) <= 0.0 # Update to zero @@ -250,12 +263,14 @@ function forward_act(input::SymbolicIntervalGradient, layer::Layer{ReLU}) output_Up[i, end] -= up_low output_Up[i, :] = up_slop * output_Up[i, :] mask_lower[i], mask_upper[i] = low_slop, up_slop + interval_width[i] = up_up - low_low end end sym = SymbolicInterval(output_Low, output_Up, input.sym.interval) LΛ = push!(input.LΛ, mask_lower) UΛ = push!(input.UΛ, mask_upper) - return SymbolicIntervalGradient(sym, LΛ, UΛ) + r = push!(input.r, interval_width) + return SymbolicIntervalGradient(sym, LΛ, UΛ, r) end function forward_act(input::SymbolicIntervalGradient, layer::Layer{Id}) @@ -263,7 +278,8 @@ function forward_act(input::SymbolicIntervalGradient, layer::Layer{Id}) n_node = size(input.sym.Up, 1) LΛ = push!(input.LΛ, ones(Float64, n_node)) UΛ = push!(input.UΛ, ones(Float64, n_node)) - return SymbolicIntervalGradient(sym, LΛ, UΛ) + r = push!(input.r, ones(Float64, n_node)) + return SymbolicIntervalGradient(sym, LΛ, UΛ, r) end From 21d96157bf46d4af76fdc8edc7441acc840f54eb Mon Sep 17 00:00:00 2001 From: Tianhao Date: Tue, 14 Jul 2020 23:25:10 -0400 Subject: [PATCH 27/66] remove inclusion check for optimal solution, this check can fail due to precision problems. --- src/adversarial/neurify.jl | 14 +++----------- 1 file changed, 3 insertions(+), 11 deletions(-) diff --git a/src/adversarial/neurify.jl b/src/adversarial/neurify.jl index 526a52c2..7bffd5dc 100644 --- a/src/adversarial/neurify.jl +++ b/src/adversarial/neurify.jl @@ -121,15 +121,7 @@ function check_inclusion(solver, reach::SymbolicInterval{HPolytope{N}}, output:: if termination_status(model) == MOI.OPTIMAL y = compute_output(nnet, value(x)) if !∈(y, output) - if ∈(value(x), reach.interval) - return CounterExampleResult(:violated, value(x)), nothing - else - println("OPTIMAL, but x not in the input set") - println("This is usually caused by precision problem, you can omit this") - println("x = ", value(x)) - println("A * x = ", obj * [value(x); [1]]) - println("b = ", reach_lc[i].b) - end + return CounterExampleResult(:violated, value(x)), nothing end if objective_value(model) > output_lc[i].b if objective_value(model) - output_lc[i].b > max_violation @@ -140,8 +132,8 @@ function check_inclusion(solver, reach::SymbolicInterval{HPolytope{N}}, output:: else if ∈(value(x), reach.interval) println("Not OPTIMAL, but x in the input set") - println("This is usually caused by open shape input set.") - println("Check your input constraints.") + println("This is usually caused by open input set.") + println("Please check your input constraints.") exit() end println("No solution, please check the problem definition.") From 8c9de52eefcf038023caf0816b00ccc36c0efab7 Mon Sep 17 00:00:00 2001 From: Tianhao Date: Tue, 21 Jul 2020 22:37:10 -0400 Subject: [PATCH 28/66] add slope check --- src/adversarial/neurify.jl | 27 +++++++++++++++++++++------ 1 file changed, 21 insertions(+), 6 deletions(-) diff --git a/src/adversarial/neurify.jl b/src/adversarial/neurify.jl index 7bffd5dc..ff0beedc 100644 --- a/src/adversarial/neurify.jl +++ b/src/adversarial/neurify.jl @@ -91,7 +91,7 @@ function solve(solver::Neurify, problem::Problem) return BasicResult(:unknown) end -function check_inclusion(solver, reach::SymbolicInterval{HPolytope{N}}, output::AbstractPolytope, nnet::Network) where N +function check_inclusion(solver, reach::SymbolicInterval{<:HPolytope}, output::AbstractPolytope, nnet::Network) where N # The output constraint is in the form A*x < b # We try to maximize output constraint to find a violated case, or to verify the inclusion. # Suppose the output is [1, 0, -1] * x < 2, Then we are maximizing reach.Up[1] * 1 + reach.Low[3] * (-1) @@ -249,11 +249,26 @@ function forward_act(input::SymbolicIntervalGradient, layer::Layer{ReLU}) up_low = lower_bound(input.sym.Up[i, :], input.sym.interval) low_up = upper_bound(input.sym.Low[i, :], input.sym.interval) low_low = lower_bound(input.sym.Low[i, :], input.sym.interval) - up_slop = up_up / (up_up - up_low) - low_slop = low_up / (low_up - low_low) - output_Low[i, :] = low_slop * output_Low[i, :] - output_Up[i, end] -= up_low - output_Up[i, :] = up_slop * output_Up[i, :] + if abs(up_up - up_low) < 1e-6 + up_slop = 0 + output_Up[i, :] = zeros(n_input) + output_Up[i, end] -= up_low + else + up_slop = up_up / (up_up - up_low) + # the order of the following two lines are important + output_Up[i, end] -= up_low + output_Up[i, :] = up_slop * output_Up[i, :] + end + + if abs(low_up - low_low) < 1e-6 + low_slop = 0 + output_Low[i, :] = zeros(n_input) + output_Low[i, end] -= low_low + else + low_slop = low_up / (low_up - low_low) + output_Low[i, :] = low_slop * output_Low[i, :] + end + mask_lower[i], mask_upper[i] = low_slop, up_slop interval_width[i] = up_up - low_low end From 919a8688e6284abcde1a1f9d8834859313b2c212 Mon Sep 17 00:00:00 2001 From: Tianhao Date: Tue, 21 Jul 2020 23:43:30 -0400 Subject: [PATCH 29/66] very slow after merging master --- src/adversarial/neurify.jl | 10 ++++++---- src/adversarial/reluVal.jl | 4 ++-- test/MNIST_1000.jld2 | Bin 0 -> 995243 bytes test/mnist_1000.jl | 4 +++- 4 files changed, 11 insertions(+), 7 deletions(-) create mode 100644 test/MNIST_1000.jld2 diff --git a/src/adversarial/neurify.jl b/src/adversarial/neurify.jl index e948cb38..a63f10bf 100644 --- a/src/adversarial/neurify.jl +++ b/src/adversarial/neurify.jl @@ -26,7 +26,7 @@ Sound but not complete. """ @with_kw struct Neurify - max_iter::Int64 = 10 + max_iter::Int64 = 15 tree_search::Symbol = :DFS # only :DFS/:BFS allowed? If so, we should assert this. # Becuase of over-approximation, a split may not bisect the input set. @@ -67,7 +67,7 @@ function solve(solver::Neurify, problem::Problem) n = size(reach_lc, 1) m = size(reach_lc[1].a, 1) - model = Model(Ipopt.Optimizer) + model = Model(with_optimizer(GLPK.Optimizer)) @variable(model, x[1:m], base_name="x") @constraint(model, [i in 1:n], reach_lc[i].a' * x <= reach_lc[i].b) @@ -145,7 +145,7 @@ function check_inclusion(solver, reach::SymbolicInterval{<:HPolytope}, output::A return BasicResult(:holds), nothing end -function constraint_refinement(solver::Neurify, nnet::Network, reach::SymbolicIntervalGradient, max_violation_con::Vector{Float64}) +function constraint_refinement(solver::Neurify, nnet::Network, reach::SymbolicIntervalGradient, max_violation_con::AbstractVector{Float64}) i, j, influence = get_nodewise_influence(solver, nnet, reach, max_violation_con) # We can generate three more constraints # Symbolic representation of node i j is Low[i][j,:] and Up[i][j,:] @@ -164,7 +164,7 @@ function constraint_refinement(solver::Neurify, nnet::Network, reach::SymbolicIn return intervals end -function get_nodewise_influence(solver::Neurify, nnet::Network, reach::SymbolicIntervalGradient, max_violation_con::Vector{Float64}) +function get_nodewise_influence(solver::Neurify, nnet::Network, reach::SymbolicIntervalGradient, max_violation_con::AbstractVector{Float64}) n_output = size(nnet.layers[end].weights, 1) n_length = length(nnet.layers) # We want to find the node with the largest influence @@ -229,11 +229,13 @@ end # Symbolic forward_act function forward_act(input::SymbolicIntervalGradient, layer::Layer{ReLU}) + println("forward") n_node, n_input = size(input.sym.Up) output_Low, output_Up = input.sym.Low[:, :], input.sym.Up[:, :] mask_lower, mask_upper = zeros(Float64, n_node), ones(Float64, n_node) interval_width = zeros(Float64, n_node) for i in 1:n_node + println(i) if upper_bound(input.sym.Up[i, :], input.sym.interval) <= 0.0 # Update to zero mask_lower[i], mask_upper[i] = 0, 0 diff --git a/src/adversarial/reluVal.jl b/src/adversarial/reluVal.jl index d51b8d1f..4b208fc9 100644 --- a/src/adversarial/reluVal.jl +++ b/src/adversarial/reluVal.jl @@ -75,7 +75,7 @@ function pick_out!(reach_list, tree_search) return reach end -function symbol_to_concrete(reach::SymbolicInterval{Hyperrectangle{N}}) where N +function symbol_to_concrete(reach::SymbolicInterval{<:Hyperrectangle{N}}) where N n_output = size(reach.Low, 1) upper = zeros(n_output) lower = zeros(n_output) @@ -86,7 +86,7 @@ function symbol_to_concrete(reach::SymbolicInterval{Hyperrectangle{N}}) where N return Hyperrectangle(low = lower, high = upper) end -function check_inclusion(reach::SymbolicInterval{Hyperrectangle{N}}, output::AbstractPolytope, nnet::Network) where N +function check_inclusion(reach::SymbolicInterval{<:Hyperrectangle{N}}, output::AbstractPolytope, nnet::Network) where N reachable = symbol_to_concrete(reach) # println("reluval reachable") # println(reachable) diff --git a/test/MNIST_1000.jld2 b/test/MNIST_1000.jld2 new file mode 100644 index 0000000000000000000000000000000000000000..98fb05bc337da38e6cc18a07aa651a7c9246a6e6 GIT binary patch literal 995243 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

_ftZ?!ZfV~> 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 z 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 P7qa}@agG0pe)+!u_iTaP literal 0 HcmV?d00001 diff --git a/test/mnist_1000.jl b/test/mnist_1000.jl index 93e2d2ce..1fa2cf3d 100644 --- a/test/mnist_1000.jl +++ b/test/mnist_1000.jl @@ -21,8 +21,10 @@ function test_solver(solver, test_selected) net_file = "$(@__DIR__)/../examples/networks/mnist_1000.nnet" mnist_net = read_nnet(net_file, last_layer_activation = Id()) + @save "MNIST_1000.jld2" train_x train_y mnist_net + for i = test_idx - + println(i) input_center = reshape(train_x[:,:,i], 28*28) label = train_y[i] A = zeros(Float64, 10, 10) From 6b559ca1352a51a4ca6ab180cb3eae2eae81aecd Mon Sep 17 00:00:00 2001 From: Tianhao Date: Wed, 22 Jul 2020 22:38:33 -0400 Subject: [PATCH 30/66] fix 2 bugs: 1.low_slop can be negative if low_up is less than 0; 2.each branch should have its own 'splits' set, there was only one 'splits'set --- src/adversarial/neurify.jl | 104 ++++++++++++++++--------------------- test/mnist_1000.jl | 11 ++-- 2 files changed, 49 insertions(+), 66 deletions(-) diff --git a/src/adversarial/neurify.jl b/src/adversarial/neurify.jl index a63f10bf..412b76cd 100644 --- a/src/adversarial/neurify.jl +++ b/src/adversarial/neurify.jl @@ -26,19 +26,8 @@ Sound but not complete. """ @with_kw struct Neurify - max_iter::Int64 = 15 + max_iter::Int64 = 100 tree_search::Symbol = :DFS # only :DFS/:BFS allowed? If so, we should assert this. - - # Becuase of over-approximation, a split may not bisect the input set. - # Therefore, the gradient remains unchanged (since input didn't change). - # And this node will be chosen to split forever. - # To prevent this, we split each node only once if the gradient of this node doesn't change. - # Each element in splits is a tuple (gradient_of_the_node, layer_index, node_index). - - splits = Set() # To prevent infinity loop. - - # But in some cases (which I don't have an example, just a sense), - # it can happen that a node indeed needs to be split twice with the same gradient. end struct SymbolicInterval{F<:AbstractPolytope} @@ -59,7 +48,6 @@ end function solve(solver::Neurify, problem::Problem) - while !isempty(solver.splits) pop!(solver.splits) end problem = Problem(problem.network, convert(HPolytope, problem.input), convert(HPolytope, problem.output)) reach_lc = problem.input.constraints @@ -75,17 +63,26 @@ function solve(solver::Neurify, problem::Problem) result, max_violation_con = check_inclusion(solver, reach.sym, problem.output, problem.network) # This calls the check_inclusion function in ReluVal, because the constraints are Hyperrectangle result.status == :unknown || return result - reach_list = [(reach, max_violation_con)] + reach_list=Array{Any,1}() + push!(reach_list, (reach, max_violation_con, Vector())) + + # Becuase of over-approximation, a split may not bisect the input set. + # Therefore, the gradient remains unchanged (since input didn't change). + # And this node will be chosen to split forever. + # To prevent this, we split each node only once if the gradient of this node hasn't change. + # Each element in splits is a tuple (gradient_of_the_node, layer_index, node_index). + splits = Set() # To prevent infinity loop. for i in 2:solver.max_iter length(reach_list) > 0 || return BasicResult(:holds) - reach, max_violation_con = pick_out!(reach_list, solver.tree_search) - intervals = constraint_refinement(solver, problem.network, reach, max_violation_con) + reach, max_violation_con, splits = pick_out!(reach_list, solver.tree_search) + intervals = constraint_refinement(solver, problem.network, reach, max_violation_con, splits) for interval in intervals + isempty(interval) && continue reach = forward_network(solver, problem.network, interval) result, max_violation_con = check_inclusion(solver, reach.sym, problem.output, problem.network) result.status == :violated && return result - result.status == :holds || (push!(reach_list, (reach, max_violation_con))) + result.status == :holds || (push!(reach_list, (reach, max_violation_con, copy(splits)))) end end return BasicResult(:unknown) @@ -145,8 +142,8 @@ function check_inclusion(solver, reach::SymbolicInterval{<:HPolytope}, output::A return BasicResult(:holds), nothing end -function constraint_refinement(solver::Neurify, nnet::Network, reach::SymbolicIntervalGradient, max_violation_con::AbstractVector{Float64}) - i, j, influence = get_nodewise_influence(solver, nnet, reach, max_violation_con) +function constraint_refinement(solver::Neurify, nnet::Network, reach::SymbolicIntervalGradient, max_violation_con::AbstractVector{Float64}, splits::Vector) + i, j, influence = get_nodewise_influence(solver, nnet, reach, max_violation_con, splits) # We can generate three more constraints # Symbolic representation of node i j is Low[i][j,:] and Up[i][j,:] nnet_new = Network(nnet.layers[1:i]) @@ -156,7 +153,7 @@ function constraint_refinement(solver::Neurify, nnet::Network, reach::SymbolicIn l_off = reach_new.sym.Low[[j], end] u_sym = reach_new.sym.Up[[j], 1:end-1] u_off = reach_new.sym.Up[[j], end] - intervals = Vector{HPolytope{Float64}}(undef, 3) + intervals = Vector(undef, 3) intervals[1] = HPolytope([C; l_sym; u_sym], [d; -l_off; -u_off]) intervals[2] = HPolytope([C; l_sym; -u_sym], [d; -l_off; u_off]) intervals[3] = HPolytope([C; -l_sym; -u_sym], [d; l_off; u_off]) @@ -164,7 +161,7 @@ function constraint_refinement(solver::Neurify, nnet::Network, reach::SymbolicIn return intervals end -function get_nodewise_influence(solver::Neurify, nnet::Network, reach::SymbolicIntervalGradient, max_violation_con::AbstractVector{Float64}) +function get_nodewise_influence(solver::Neurify, nnet::Network, reach::SymbolicIntervalGradient, max_violation_con::AbstractVector{Float64}, splits::Vector) n_output = size(nnet.layers[end].weights, 1) n_length = length(nnet.layers) # We want to find the node with the largest influence @@ -172,17 +169,17 @@ function get_nodewise_influence(solver::Neurify, nnet::Network, reach::SymbolicI # The gradient is with respect to a loss defined by the most violated constraint. LG = transpose(copy(max_violation_con)) UG = transpose(copy(max_violation_con)) - max_tuple = (0, 0, 0.0) + max_tuple = (0, 0, -1e9) for (k, layer) in enumerate(reverse(nnet.layers)) i = n_length - k + 1 if layer.activation != Id() # Only split Relu nodes # A split over id node may not reduce over-approximation (the input set may not bisected). for j in 1:size(layer.bias,1) - if (0 < reach.LΛ[i][j] < 1) && (0 < reach.UΛ[i][j] < 1) + if (0 < reach.LΛ[i][j] < 1) || (0 < reach.UΛ[i][j] < 1) max_gradient = max(abs(LG[j]), abs(UG[j])) - influence = max_gradient * reach.r[i][j] - if in((i,j, influence), solver.splits) # To prevent infinity loop + influence = max_gradient * reach.r[i][j] * k + if in((i,j, influence), splits) # To prevent infinity loop continue end # If we use > here, in the case that largest gradient is 0, this function will return (0, 0 ,0) @@ -192,13 +189,16 @@ function get_nodewise_influence(solver::Neurify, nnet::Network, reach::SymbolicI end end end - i >= 1 || break LG_hat = max.(LG, 0.0) * Diagonal(reach.LΛ[i]) + min.(LG, 0.0) * Diagonal(reach.UΛ[i]) UG_hat = min.(UG, 0.0) * Diagonal(reach.LΛ[i]) + max.(UG, 0.0) * Diagonal(reach.UΛ[i]) LG, UG = interval_map_right(layer.weights, LG_hat, UG_hat) end - push!(solver.splits, max_tuple) + if max_tuple[1] == 0 && max_tuple[2] == 0 + println("Can not find valid node to split") + exit() + end + push!(splits, max_tuple) return max_tuple end @@ -229,51 +229,37 @@ end # Symbolic forward_act function forward_act(input::SymbolicIntervalGradient, layer::Layer{ReLU}) - println("forward") n_node, n_input = size(input.sym.Up) output_Low, output_Up = input.sym.Low[:, :], input.sym.Up[:, :] mask_lower, mask_upper = zeros(Float64, n_node), ones(Float64, n_node) interval_width = zeros(Float64, n_node) for i in 1:n_node - println(i) - if upper_bound(input.sym.Up[i, :], input.sym.interval) <= 0.0 + # Symbolic linear relaxation + # This is different from ReluVal + up_up = upper_bound(input.sym.Up[i, :], input.sym.interval) + up_low = lower_bound(input.sym.Up[i, :], input.sym.interval) + low_up = upper_bound(input.sym.Low[i, :], input.sym.interval) + low_low = lower_bound(input.sym.Low[i, :], input.sym.interval) + interval_width[i] = up_up - low_low + if up_up <= 0.0 # Update to zero mask_lower[i], mask_upper[i] = 0, 0 output_Up[i, :] = zeros(n_input) output_Low[i, :] = zeros(n_input) - elseif lower_bound(input.sym.Low[i, :], input.sym.interval) >= 0 + elseif low_low >= 0 # Keep dependency mask_lower[i], mask_upper[i] = 1, 1 else - # Symbolic linear relaxation - # This is different from ReluVal - up_up = upper_bound(input.sym.Up[i, :], input.sym.interval) - up_low = lower_bound(input.sym.Up[i, :], input.sym.interval) - low_up = upper_bound(input.sym.Low[i, :], input.sym.interval) - low_low = lower_bound(input.sym.Low[i, :], input.sym.interval) - - if abs(up_up - up_low) < 1e-6 - up_slop = 0 - output_Up[i, :] = zeros(n_input) - output_Up[i, end] -= up_low - else - up_slop = up_up / (up_up - up_low) - # the order of the following two lines are important - output_Up[i, end] -= up_low - output_Up[i, :] = up_slop * output_Up[i, :] - end - - if abs(low_up - low_low) < 1e-6 - low_slop = 0 - output_Low[i, :] = zeros(n_input) - output_Low[i, end] -= low_low - else - low_slop = low_up / (low_up - low_low) - output_Low[i, :] = low_slop * output_Low[i, :] - end + # up_up must be greater than 0, if up_up-up_low < 1e-6. The slope should be 1. + up_slop = (abs(up_up - up_low) > 1e-6) ? ((up_up - max(up_low, 0)) / (up_up - up_low)) : 1 + output_Up[i, :] = up_slop * output_Up[i, :] + output_Up[i, end] += up_slop * max(-up_low, 0) + # low_low must be less than 0, if low_up - low_low < 1e-6, the slope should be 0. + low_slop = (abs(low_up - low_low) > 1e-6) ? (max(low_up, 0) / (low_up - low_low)) : 0 + output_Low[i, :] = low_slop * output_Low[i, :] + mask_lower[i], mask_upper[i] = low_slop, up_slop - interval_width[i] = up_up - low_low end end sym = SymbolicInterval(output_Low, output_Up, input.sym.interval) @@ -292,7 +278,6 @@ function forward_act(input::SymbolicIntervalGradient, layer::Layer{Id}) return SymbolicIntervalGradient(sym, LΛ, UΛ, r) end - function upper_bound(map::Vector{Float64}, input::HPolytope) n = size(input.constraints, 1) m = size(input.constraints[1].a, 1) @@ -304,7 +289,6 @@ function upper_bound(map::Vector{Float64}, input::HPolytope) return objective_value(model) end - function lower_bound(map::Vector{Float64}, input::HPolytope) n = size(input.constraints, 1) m = size(input.constraints[1].a, 1) diff --git a/test/mnist_1000.jl b/test/mnist_1000.jl index 1fa2cf3d..4b110962 100644 --- a/test/mnist_1000.jl +++ b/test/mnist_1000.jl @@ -16,15 +16,14 @@ function test_solver(solver, test_selected) test_idx = 1:1000 end - @load "MNIST_1000_data.jld2" train_x train_y + # @load "MNIST_1000_data.jld2" train_x train_y + # net_file = "$(@__DIR__)/../examples/networks/mnist_1000.nnet" + # mnist_net = read_nnet(net_file, last_layer_activation = Id()) + # @save "MNIST_1000.jld2" train_x train_y mnist_net - net_file = "$(@__DIR__)/../examples/networks/mnist_1000.nnet" - mnist_net = read_nnet(net_file, last_layer_activation = Id()) + @load "MNIST_1000.jld2" train_x train_y mnist_net - @save "MNIST_1000.jld2" train_x train_y mnist_net - for i = test_idx - println(i) input_center = reshape(train_x[:,:,i], 28*28) label = train_y[i] A = zeros(Float64, 10, 10) From 3e34ab3fa5f322ed37b15ac0d0b07d6986ec77a6 Mon Sep 17 00:00:00 2001 From: Tianhao Date: Wed, 22 Jul 2020 23:19:31 -0400 Subject: [PATCH 31/66] add fully split test --- test/fully_split.jl | 45 ++++++++++++++++++++++++++++++++++++++++++ test/fully_split.jld2 | Bin 0 -> 8747 bytes test/runtests.jl | 1 + 3 files changed, 46 insertions(+) create mode 100644 test/fully_split.jl create mode 100644 test/fully_split.jld2 diff --git a/test/fully_split.jl b/test/fully_split.jl new file mode 100644 index 00000000..1fdd9b1a --- /dev/null +++ b/test/fully_split.jl @@ -0,0 +1,45 @@ +using LazySets, Test, LinearAlgebra, GLPKMathProgInterface +using NeuralVerification +using JLD2, FileIO + +# The following two test is based on a 4 layer network, node number of each layer: +# 1, 6, 4, 3, 1. + +# We can consider this network is in the form of y=f(x), where x and y are 1d variables. +# The graph of this function looks like \/\/\/\/ + +# To get a precise rechable set, the verification algorithm needs to fully split +# the input set to reduce all over-approximation. + +# Please make sure 'max_iter' of the solver is large enough to get a fully split. + +function test_holds(solver, eps) + @load "fully_split.jld2" x_min x_max y_min y_max w_nnet + inputSet = Hyperrectangle(low = [x_min], high = [x_max]) + outputSet = Hyperrectangle(low = [y_min - eps], high = [y_max + eps]) + problem = Problem(w_nnet, inputSet, outputSet); + result = solve(solver, problem) + @test result.status == :holds +end + +function test_violated(solver, eps) + @load "fully_split.jld2" x_min x_max y_min y_max w_nnet + inputSet = Hyperrectangle(low = [x_min], high = [x_max]) + outputSet = Hyperrectangle(low = [y_min + eps], high = [y_max - eps]) + problem = Problem(w_nnet, inputSet, outputSet); + result = solve(solver, problem) + @test result.status == :violated +end + +@testset "Fully split, ReluVal" begin + eps = 1e-1 + test_holds(ReluVal(max_iter=1000), eps) + test_violated(ReluVal(max_iter=1000), eps) +end + +@testset "Fully split, Neurify" begin + eps = 1e-1 + test_holds(Neurify(max_iter=100), eps) + test_violated(Neurify(max_iter=100), eps) +end + diff --git a/test/fully_split.jld2 b/test/fully_split.jld2 new file mode 100644 index 0000000000000000000000000000000000000000..87b53be2f65d8a47b8e51be291bb9feb398088ac GIT binary patch literal 8747 zcmeHMYitx%6u!ID$9B7vEw5G{I>8zq;@aYNp&H7TF15wFRRpvlT4w1K2KVK5mUhJ- zA_>L^iP1=6q9$U57>p7VB#}fm1cM4On$!sVRs5%EG)5yvJa^8y?ap+z-No?3WNxy1 z=bn3>-?{hB%$ZHuxTeU1imu2*T3nTvcSpKfSFDovs+nOem6V$Us{_qUUcSlTYY8+5 zTIEpiu9&9Fy&G3Br~S_ncmeV~%e&C)_IMa`V=&jL-MJLU>D#cs`t^bNech4GZWgKp zR;k8SfiluO=4z4GGf)97%!0KncwJ)5<72FXsEm!Te_&*3`adY>4|jiZUb`U$k^Mc# ze(Km5PW-STcS8ygfkF?Sm)co41USermsAoeV{P>==7&);{9Nz@1Xxu+6t{3p{P8YoRgASX9ksl=wC^qYY_06&<#IAgbyksmzneAld2L zngqU%cpO+NXug*88TKB@C1NQ)%UC7N!-_DPG0%P3rervwisnUxUC73&iC$0R3AxnJ zhLo&hnKI+X<88jIa1$$N=ziYJ;)#8kswR!j4Z#qISf zIW^-WK1vHq%|n5|=3_srL_KxH*HGNvX0>-Kn@xNsoV(&FMGpnJsNdpGJq56X`uY<6 znL~UOhTZz<83cQCE%w$e!2pCk95L1{7OEgPy@P;*fP;X8fP;X8fP;X8fP;X8fP;X8 zKuHK-kwcLhp+*7k)Vwki=kKG#WmX?}eLz$npw=;^J#lp9TC}ywQWNqrNpfGJ_jXYU zT0rlw-kzQ9C>ED)$1)0kL*C1a0irq*OAY3jM~up@l|cPzO6&UY^808uXy@&|IVjJ|=}w{BbCGh3(2cCArCq3IbFpp-pLr+PgAn=Yn)EpaY@Ez*M}* z6pt~#04f_}jpDi_Z+NLdcvCsW7pPK2c)7?AYskljG&Mdrz{|zFQZ+o0D>u}e1mG=m zZIl4%k56B^j!{MIz<-0pJWU*Y*{B-`x2iyVok#-p-wfMT}caBRGZE(Ks95hkAF3dH`Aq}1~l}Lno;T>l)t=m z^ROt~EnYJW#^~hX=@IJnrBmt`Br%6l;<3(%Ti*2%GWnfBX7QCT&NcI zgQ;pO_8iyuD;*@TFkON!Qu`5A+AiHxa7#w2*fsX;${S( z32$L&YD*aVVBS35622O`@4GS*m8S%0i&4>mxj&vj@wd&1n(z<#im&KF?&l8TDwcp^ zbP{7MJaJ`z5&nMhTMwb5Q8SR@k)h~Hf=DYEZDiJthMwJ?H|#*))_CqBD!!>_C4XEf zJS+K=%A3cpdC|1((~R}5!yj72SxGksBM9-g<7DsyRA+m*ou!nE!|ejyELPo$3ckG- zcn`(JQl-O9AS@2K(vTJ@pX}@IPW_Dr+RZ7PQ866rliz@w^1CyEE2wDPZ2%#@HjCcN zk!Drkzsv9PG-GQKcv|SI#S4aoevf#Rx6p&);nYHJ6^}d?dPqFSS?FuT-Nr&+D-vaV z=M~ANe(dM|$1wC0(}oVq4MMLR9Y|=&W|FO%Br2m%S%^8#`SDbuGWwe!0@R?hYGfdp ZRP_k0z$&5|pPh%Zw3h5#uiiDU?Oz_^FLeL_ literal 0 HcmV?d00001 diff --git a/test/runtests.jl b/test/runtests.jl index a6206ec2..785f8d6f 100644 --- a/test/runtests.jl +++ b/test/runtests.jl @@ -7,4 +7,5 @@ end include("complements.jl") include("splitting.jl") include("mnist_1000.jl") +include("fully_split.jl") include("write_nnet_test.jl") From 93a86a6ce8dbd40adffa0c29ccf70bdc526bc853 Mon Sep 17 00:00:00 2001 From: tomerarnon Date: Thu, 23 Jul 2020 14:24:11 +0300 Subject: [PATCH 32/66] Delete 4 visualverification-checkpoint.ipynb --- .../4 visualverification-checkpoint.ipynb | 5655 ----------------- 1 file changed, 5655 deletions(-) delete mode 100644 examples/cars_workshop/.ipynb_checkpoints/4 visualverification-checkpoint.ipynb diff --git a/examples/cars_workshop/.ipynb_checkpoints/4 visualverification-checkpoint.ipynb b/examples/cars_workshop/.ipynb_checkpoints/4 visualverification-checkpoint.ipynb deleted file mode 100644 index 38bfeaa1..00000000 --- a/examples/cars_workshop/.ipynb_checkpoints/4 visualverification-checkpoint.ipynb +++ /dev/null @@ -1,5655 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Two Dimensional Verification Example\n", - "\n", - "In this notebook, we use the `Network` and `Layer` API of NeuralVerification.jl to construct a neural network that maps two dimensional inputs to two dimensional outputs. We demonstrate how to define and verify a property on this network, and plot the output of the network at interesting moments throughout the problem." - ] - }, - { - "cell_type": "code", - "execution_count": 73, - "metadata": {}, - "outputs": [], - "source": [ - "using NeuralVerification, LazySets, LinearAlgebra\n", - "# We also import several functions and types so we can \n", - "# avoid e.g. the verbose NeuralVerification.ReLU(), etc.\n", - "import NeuralVerification: Network, Layer, ReLU, Id, affine_map, forward_partition\n", - "\n", - "# Set up some plotting stuff for later.\n", - "using Plots, LaTeXStrings\n", - "default(size = (300,300), legend = :none)\n", - "function Plots.plot(V::Vector{<:AbstractPolytope}, args...)\n", - " p = plot()\n", - " for s in V\n", - " plot!(p, s, args...)\n", - " end\n", - " return p\n", - "end" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Layers\n", - "\n", - "Let's begin by constructing our network. A layer is defined by a set of weights $\\mathbf{W}$, a bias, $\\mathbf{b}$, and a nonlinear activation function, usually denoted $\\sigma$.\n", - "Here we define the input layer $L_1$ to be a ReLU layer expecting a 2D input. " - ] - }, - { - "cell_type": "code", - "execution_count": 74, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "Layer{ReLU,Float64}([1.0 0.5; 0.5 1.0], [0.0, -0.5], ReLU())" - ] - }, - "execution_count": 74, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "W = [1.0 0.5;\n", - " 0.5 1.0]\n", - "\n", - "b = [0, -0.5]\n", - "\n", - "L₁ = Layer(W, b, ReLU())" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We can apply our layer to an input $x$ by performing $\\sigma (Wx + b)$" - ] - }, - { - "cell_type": "code", - "execution_count": 102, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "x: [2, -1] ⟶ ẑ: [1.5, -0.5] ⟶ z: [1.5, 0.0]\n" - ] - } - ], - "source": [ - "let x = [2,-1], σ = L₁.activation\n", - " \n", - " ẑ = affine_map(L₁, x) # affine_map performs W*x + b\n", - " z = σ(ẑ)\n", - "\n", - " println(\"x: $x ⟶ ẑ: $ẑ ⟶ z: $z\")\n", - "end" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Networks \n", - "\n", - "A Network consists of a vector of these layers. Here we construct a network using $L_1$ and 6 more layers. The layers were initally created with random weights and biases, and then hard-coded here for repeatability. Note that the last layer is an identity layer." - ] - }, - { - "cell_type": "code", - "execution_count": 76, - "metadata": {}, - "outputs": [], - "source": [ - "layers = [\n", - " L₁,\n", - " Layer([1.14327 0.1497; 0.0938726 1.02164], [0.427767, -0.441637], ReLU()), \n", - " Layer([1.03721 0.083906; 0.174684 1.13746], [-0.664744, 0.4121], ReLU()), \n", - " Layer([1.07418 0.155875; 0.147354 1.09946], [-1.20265, -0.566685], ReLU()), \n", - " Layer([1.08786 0.159884; 0.0990573 1.00572], [-0.559988, -0.301343], ReLU()),\n", - " Layer([1.18447 0.177153; 0.00392835 1.18098], [0.422727, 1.04569], ReLU()),\n", - " Layer([1.14041 0.182869; 0.186956 1.18623], [1.51287, 0.497855], Id()),\n", - " ]\n", - "\n", - "net = Network(layers);" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Sets\n", - "\n", - "Now we can consider an input/output property of interest. Normally, the inputs an outputs of the network would have some semantic meaning (controls, labels, etc.) which would inform these properties. In this case, since we don't have anything like that, we will choose our input and output sets to be two arbitrary hyperrectangles.\n", - "\n", - "$X = \\left\\{ x_1, x_2 \\mid 0 \\leq x_i \\leq 1 \\right\\}$\n", - "\n", - "$Y = \\left\\{ y_1, y_2 \\mid 2 \\leq y_i \\leq 4 \\right\\}$\n", - "\n", - "The verification problem consists of determining whether $f(X) \\subseteq Y$. Note that not all algorithms support all types of sets. The documentation contains a [table](https://sisl.github.io/NeuralVerification.jl/latest/problem/) listing input and output sets by algorithm." - ] - }, - { - "cell_type": "code", - "execution_count": 77, - "metadata": {}, - "outputs": [ - { - "data": { - "image/svg+xml": [ - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "0\n", - "\n", - "\n", - "1\n", - "\n", - "\n", - "2\n", - "\n", - "\n", - "3\n", - "\n", - "\n", - "4\n", - "\n", - "\n", - "0\n", - "\n", - "\n", - "1\n", - "\n", - "\n", - "2\n", - "\n", - "\n", - "3\n", - "\n", - "\n", - "4\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "X\n", - "\n", - "\n", - "\n", - "\n", - "Y\n", - "\n", - "\n" - ] - }, - "execution_count": 77, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "X = Hyperrectangle(low = [0, 0], high = [1, 1])\n", - "Y = Hyperrectangle(low = [2, 2], high = [4, 4]);\n", - "\n", - "plot(X, label = \"X\", legend = true)\n", - "plot!(Y, label = \"Y\")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Reachability\n", - "\n", - "We can transform the input set according to each layer by applying the same transformation introduced earlier. However, the nonlinearity in the ReLU requires that the set be partitioned along the $x=0$ and $y=0$ axes and that each subset is treated independently. If the subset lies in the positive quadrant, it is unchanged. In the negative quadrants, the ReLU operation projects the set onto the axis (by setting the negative componets of points in the set to $0$).\n", - "\n", - "This is demonstrated in the cell below. We transform the set $X$ subject to $L_1$ (we use `affine_map` again as before, but this time must call `forward_partition` to perform the ReLU on a set)." - ] - }, - { - "cell_type": "code", - "execution_count": 68, - "metadata": {}, - "outputs": [ - { - "data": { - "image/svg+xml": [ - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "0.0\n", - "\n", - "\n", - "0.5\n", - "\n", - "\n", - "1.0\n", - "\n", - "\n", - "1.5\n", - "\n", - "\n", - "-0.5\n", - "\n", - "\n", - "0.0\n", - "\n", - "\n", - "0.5\n", - "\n", - "\n", - "1.0\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "0.0\n", - "\n", - "\n", - "0.5\n", - "\n", - "\n", - "1.0\n", - "\n", - "\n", - "1.5\n", - "\n", - "\n", - "-0.5\n", - "\n", - "\n", - "0.0\n", - "\n", - "\n", - "0.5\n", - "\n", - "\n", - "1.0\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "0.0\n", - "\n", - "\n", - "0.5\n", - "\n", - "\n", - "1.0\n", - "\n", - "\n", - "1.5\n", - "\n", - "\n", - "-0.5\n", - "\n", - "\n", - "0.0\n", - "\n", - "\n", - "0.5\n", - "\n", - "\n", - "1.0\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n" - ] - }, - "execution_count": 68, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "Ẑ = affine_map(L₁, X)\n", - "Z = forward_partition(L₁.activation, Ẑ)\n", - "\n", - "\n", - "#### Just plotting stuff:\n", - "t1 = L\"\\mathcal{X}\"\n", - "t2 = L\"\\mathcal{X} \\mathrm{\\ and\\ } \\hat{\\mathcal{Z}}_1\"\n", - "t3 = L\"\\mathcal{X},\\ \\hat{\\mathcal{Z}}_1 \\mathrm{\\ and\\ } \\mathcal{Z}_1\"\n", - "\n", - "p1 = plot(X, fill = 0.7, xlim = (-0.3, 1.6), ylim = (-0.9 ,1.3), title = t1)\n", - "\n", - "p2 = deepcopy(p1)\n", - "plot!(p2, Ẑ, fill = 0.7, title = t2)\n", - "\n", - "p3 = deepcopy(p2)\n", - "hline!(p3, [0], line = (2, :black, :dash), fill = 0.7)\n", - "vline!(p3, [0], line = (2, :black, :dash), fill = 0.7)\n", - "plot!(p3, Z, line = (:green, 5), fill = (:green, 0.7), title = t3)\n", - "\n", - "plot(p1, p2, p3, size = (800, 250), layout = (1,3))" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Solving a Problem\n", - "\n", - "Now that the network and property are both defined, we can construct a `Problem` object out of them. We use `ExactReach` to verify the property, which employs exact reachability techniques to calculate the true output set $f(X)$ and compare it to the desired output set $Y$. Since our network is small and simple, we can afford to do this, but in general, exact reachability is a computationaly expensive approach that scales poorly.\n", - "\n", - "\n", - "### ExactReach" - ] - }, - { - "cell_type": "code", - "execution_count": 78, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - ":violated" - ] - }, - "execution_count": 78, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "prob = Problem(net, X, Y)\n", - "res = solve(ExactReach(), prob)\n", - "\n", - "# check the result\n", - "res.status" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We find that the property is violated. The full printout of `res` is avoided above because, in the case of a violated input-output relation, ExactReach returns the computed output set, which is quite long in this case. We plot the output set, as well as $\\mathcal Y$ below, to understand why the property does not hold." - ] - }, - { - "cell_type": "code", - "execution_count": 72, - "metadata": {}, - "outputs": [ - { - "data": { - "image/svg+xml": [ - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "0\n", - "\n", - "\n", - "1\n", - "\n", - "\n", - "2\n", - "\n", - "\n", - "3\n", - "\n", - "\n", - "0\n", - "\n", - "\n", - "1\n", - "\n", - "\n", - "2\n", - "\n", - "\n", - "3\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "0\n", - "\n", - "\n", - "1\n", - "\n", - "\n", - "2\n", - "\n", - "\n", - "3\n", - "\n", - "\n", - "4\n", - "\n", - "\n", - "0\n", - "\n", - "\n", - "1\n", - "\n", - "\n", - "2\n", - "\n", - "\n", - "3\n", - "\n", - "\n", - "4\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n" - ] - }, - "execution_count": 72, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "p1 = plot(X, title = L\"\\mathcal{X}\\mathrm{\\ and\\ }f(\\mathcal{X})\")\n", - "plot!(p1, res.reachable, line = (1, :black), fill = (0.7, :green))\n", - "\n", - "p2 = plot(X, title = L\"f(\\mathcal{X}) \\not\\subseteq \\mathcal{Y}\")\n", - "plot!(p2, Y)\n", - "plot!(p2, res.reachable, fill = (0.7, :green))\n", - "\n", - "plot(p1, p2, size = (600, 250))" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### MaxSens\n", - "\n", - "We see that the desired output set does not contain the true output set, which is the definition of a violated property. However, we took a computationally expensive approach to reach this conclusion, as mentioned earlier. We have other reachability (and non-reachability) algorithms at our disposal as well, which trade off over-approximation with computational efficiency. Next, we will try the same thing again using the `MaxSens` algorithm, which first partitions the set into hyperrectangles at a specified resolution, and then propagates each of those through the network in a fast but approximate way. We can solve the problem with a number of different resolutions to observe the effect on accuracy." - ] - }, - { - "cell_type": "code", - "execution_count": 89, - "metadata": {}, - "outputs": [], - "source": [ - "maxsens_results = [solve(MaxSens(resolution = r), prob) for r in reverse(0.1:0.1:0.9)];" - ] - }, - { - "cell_type": "code", - "execution_count": 90, - "metadata": {}, - "outputs": [ - { - "data": { - "image/svg+xml": [ - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "0\n", - "\n", - "\n", - "2\n", - "\n", - "\n", - "4\n", - "\n", - "\n", - "6\n", - "\n", - "\n", - "8\n", - "\n", - "\n", - "0\n", - "\n", - "\n", - "2\n", - "\n", - "\n", - "4\n", - "\n", - "\n", - "6\n", - "\n", - "\n", - "8\n", - "\n", - "\n", - "resolution = 0.9\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "0\n", - "\n", - "\n", - "2\n", - "\n", - "\n", - "4\n", - "\n", - "\n", - "6\n", - "\n", - "\n", - "0\n", - "\n", - "\n", - "2\n", - "\n", - "\n", - "4\n", - "\n", - "\n", - "6\n", - "\n", - "\n", - "resolution = 0.8\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "0\n", - "\n", - "\n", - "1\n", - "\n", - "\n", - "2\n", - "\n", - "\n", - "3\n", - "\n", - "\n", - "4\n", - "\n", - "\n", - "5\n", - "\n", - "\n", - "6\n", - "\n", - "\n", - "0\n", - "\n", - "\n", - "1\n", - "\n", - "\n", - "2\n", - "\n", - "\n", - "3\n", - "\n", - "\n", - "4\n", - "\n", - "\n", - "5\n", - "\n", - "\n", - "6\n", - "\n", - "\n", - "resolution = 0.7\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "0\n", - "\n", - "\n", - "1\n", - "\n", - "\n", - "2\n", - "\n", - "\n", - "3\n", - "\n", - "\n", - "4\n", - "\n", - "\n", - "5\n", - "\n", - "\n", - "0\n", - "\n", - "\n", - "1\n", - "\n", - "\n", - "2\n", - "\n", - "\n", - "3\n", - "\n", - "\n", - "4\n", - "\n", - "\n", - "5\n", - "\n", - "\n", - "resolution = 0.6\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "0\n", - "\n", - "\n", - "1\n", - "\n", - "\n", - "2\n", - "\n", - "\n", - "3\n", - "\n", - "\n", - "4\n", - "\n", - "\n", - "0\n", - "\n", - "\n", - "1\n", - "\n", - "\n", - "2\n", - "\n", - "\n", - "3\n", - "\n", - "\n", - "4\n", - "\n", - "\n", - "resolution = 0.5\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "0\n", - "\n", - "\n", - "1\n", - "\n", - "\n", - "2\n", - "\n", - "\n", - "3\n", - "\n", - "\n", - "4\n", - "\n", - "\n", - "5\n", - "\n", - "\n", - "0\n", - "\n", - "\n", - "1\n", - "\n", - "\n", - "2\n", - "\n", - "\n", - "3\n", - "\n", - "\n", - "4\n", - "\n", - "\n", - "5\n", - "\n", - "\n", - "resolution = 0.4\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "0\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "1\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "2\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "3\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "4\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "5\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "0\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "1\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "2\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "3\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "4\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "5\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "resolution = 0.3\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "0\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "1\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "2\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "3\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "4\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "0\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "1\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "2\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "3\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "4\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "resolution = 0.2\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "0\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "1\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "2\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "3\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "4\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "0\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "1\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "2\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "3\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "4\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "resolution = 0.1\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", - " \n", - " \n", - "\n", - "\n" - ] - }, - "execution_count": 90, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "p = []\n", - "\n", - "p1 = plot(X)\n", - "for i in 1:length(maxsens_results)\n", - " p2 = deepcopy(p1)\n", - " plot!(p2, Y)\n", - " plot!(p2, maxsens_results[i].reachable, line = (1, :black), \n", - " fill = (0.7, :green), titlefontsize = 12, \n", - " title = \"resolution = $(round(1.0 - 0.1*i, digits = 2))\")\n", - " push!(p, p2)\n", - "end\n", - "\n", - "plot(p..., size = (700,600))" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "metadata": { - "@webio": { - "lastCommId": null, - "lastKernelId": null - }, - "kernelspec": { - "display_name": "Julia 1.0.5", - "language": "julia", - "name": "julia-1.0" - }, - "language_info": { - "file_extension": ".jl", - "mimetype": "application/julia", - "name": "julia", - "version": "1.0.1" - } - }, - "nbformat": 4, - "nbformat_minor": 2 -} From 4844ad0959a0959b12f6ba1051b1aa28c5acc71a Mon Sep 17 00:00:00 2001 From: tomer arnon Date: Thu, 23 Jul 2020 15:59:36 +0300 Subject: [PATCH 33/66] update fully_split test for style --- examples/networks/spiky_nnet.nnet | 36 +++++++++ test/fully_split.jl | 51 ++++++------- test/fully_split.jld2 | Bin 8747 -> 0 bytes test/sanity_old.jl | 119 ------------------------------ 4 files changed, 59 insertions(+), 147 deletions(-) create mode 100644 examples/networks/spiky_nnet.nnet delete mode 100644 test/fully_split.jld2 delete mode 100644 test/sanity_old.jl diff --git a/examples/networks/spiky_nnet.nnet b/examples/networks/spiky_nnet.nnet new file mode 100644 index 00000000..4ab56bde --- /dev/null +++ b/examples/networks/spiky_nnet.nnet @@ -0,0 +1,36 @@ +//Neural Network File Format by Kyle Julian, Stanford 2016 +4, 1, 1, 6, +1, 6, 4, 3, 1, +This line extraneous +-6.55e4, +6.55e4, +0.0,0.0, +1.0,1.0, +2.0, +-2.0, +4.0, +-4.0, +4.0, +-4.0, +-100.0, +100.0, +-100.0, +100.0, +-300.0, +300.0, +-2.0, -2.0, 0.0, 0.0, 0.0, 0.0, +1.0, 1.0, 0.0, 0.0, 0.0, 0.0, +0.0, 0.0, -1.0, -1.0, 0.0, 0.0, +0.0, 0.0, 0.0, 0.0, -1.0, -1.0, +80.0, +-20.0, +80.0, +80.0, +1.0, 1.0, 0.0, 0.0, +0.0, 0.0, 2.0, 0.0, +0.0, 0.0, 0.0, 2.0, +30.0, +-110.0, +-110.0, +1.0, 1.0, 1.0, +-10.0, diff --git a/test/fully_split.jl b/test/fully_split.jl index 1fdd9b1a..44673d6a 100644 --- a/test/fully_split.jl +++ b/test/fully_split.jl @@ -1,45 +1,40 @@ using LazySets, Test, LinearAlgebra, GLPKMathProgInterface using NeuralVerification -using JLD2, FileIO - -# The following two test is based on a 4 layer network, node number of each layer: -# 1, 6, 4, 3, 1. +# The following two test is based on a 4 layer network. # We can consider this network is in the form of y=f(x), where x and y are 1d variables. # The graph of this function looks like \/\/\/\/ - # To get a precise rechable set, the verification algorithm needs to fully split # the input set to reduce all over-approximation. -# Please make sure 'max_iter' of the solver is large enough to get a fully split. +w_nnet = read_nnet("$(@__DIR__)/../examples/networks/spiky_nnet.nnet", last_layer_activation = NeuralVerification.Id()) -function test_holds(solver, eps) - @load "fully_split.jld2" x_min x_max y_min y_max w_nnet - inputSet = Hyperrectangle(low = [x_min], high = [x_max]) - outputSet = Hyperrectangle(low = [y_min - eps], high = [y_max + eps]) - problem = Problem(w_nnet, inputSet, outputSet); - result = solve(solver, problem) - @test result.status == :holds -end +ϵ = 1e-1 -function test_violated(solver, eps) - @load "fully_split.jld2" x_min x_max y_min y_max w_nnet - inputSet = Hyperrectangle(low = [x_min], high = [x_max]) - outputSet = Hyperrectangle(low = [y_min + eps], high = [y_max - eps]) - problem = Problem(w_nnet, inputSet, outputSet); - result = solve(solver, problem) - @test result.status == :violated -end +x_min = 1.0 +x_max = 100.0 +y_min = 42.51485148514851 +y_max = 100.0 + + +problem_holds = Problem(w_nnet, + Hyperrectangle(low = [x_min], high = [x_max]), + Hyperrectangle(low = [y_min - ϵ], high = [y_max + ϵ])); + +problem_violated = Problem(w_nnet, + Hyperrectangle(low = [x_min], high = [x_max]), + Hyperrectangle(low = [y_min + ϵ], high = [y_max - ϵ])); +# NOTE: 'max_iter' of the solver must be large enough to fully split. @testset "Fully split, ReluVal" begin - eps = 1e-1 - test_holds(ReluVal(max_iter=1000), eps) - test_violated(ReluVal(max_iter=1000), eps) + solver = ReluVal(max_iter = 1000) + @test solve(solver, problem_holds).status == :holds + @test solve(solver, problem_violated).status == :violated end @testset "Fully split, Neurify" begin - eps = 1e-1 - test_holds(Neurify(max_iter=100), eps) - test_violated(Neurify(max_iter=100), eps) + solver = Neurify(max_iter = 1000) + @test solve(solver, problem_holds).status == :holds + @test solve(solver, problem_violated).status == :violated end diff --git a/test/fully_split.jld2 b/test/fully_split.jld2 deleted file mode 100644 index 87b53be2f65d8a47b8e51be291bb9feb398088ac..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8747 zcmeHMYitx%6u!ID$9B7vEw5G{I>8zq;@aYNp&H7TF15wFRRpvlT4w1K2KVK5mUhJ- zA_>L^iP1=6q9$U57>p7VB#}fm1cM4On$!sVRs5%EG)5yvJa^8y?ap+z-No?3WNxy1 z=bn3>-?{hB%$ZHuxTeU1imu2*T3nTvcSpKfSFDovs+nOem6V$Us{_qUUcSlTYY8+5 zTIEpiu9&9Fy&G3Br~S_ncmeV~%e&C)_IMa`V=&jL-MJLU>D#cs`t^bNech4GZWgKp zR;k8SfiluO=4z4GGf)97%!0KncwJ)5<72FXsEm!Te_&*3`adY>4|jiZUb`U$k^Mc# ze(Km5PW-STcS8ygfkF?Sm)co41USermsAoeV{P>==7&);{9Nz@1Xxu+6t{3p{P8YoRgASX9ksl=wC^qYY_06&<#IAgbyksmzneAld2L zngqU%cpO+NXug*88TKB@C1NQ)%UC7N!-_DPG0%P3rervwisnUxUC73&iC$0R3AxnJ zhLo&hnKI+X<88jIa1$$N=ziYJ;)#8kswR!j4Z#qISf zIW^-WK1vHq%|n5|=3_srL_KxH*HGNvX0>-Kn@xNsoV(&FMGpnJsNdpGJq56X`uY<6 znL~UOhTZz<83cQCE%w$e!2pCk95L1{7OEgPy@P;*fP;X8fP;X8fP;X8fP;X8fP;X8 zKuHK-kwcLhp+*7k)Vwki=kKG#WmX?}eLz$npw=;^J#lp9TC}ywQWNqrNpfGJ_jXYU zT0rlw-kzQ9C>ED)$1)0kL*C1a0irq*OAY3jM~up@l|cPzO6&UY^808uXy@&|IVjJ|=}w{BbCGh3(2cCArCq3IbFpp-pLr+PgAn=Yn)EpaY@Ez*M}* z6pt~#04f_}jpDi_Z+NLdcvCsW7pPK2c)7?AYskljG&Mdrz{|zFQZ+o0D>u}e1mG=m zZIl4%k56B^j!{MIz<-0pJWU*Y*{B-`x2iyVok#-p-wfMT}caBRGZE(Ks95hkAF3dH`Aq}1~l}Lno;T>l)t=m z^ROt~EnYJW#^~hX=@IJnrBmt`Br%6l;<3(%Ti*2%GWnfBX7QCT&NcI zgQ;pO_8iyuD;*@TFkON!Qu`5A+AiHxa7#w2*fsX;${S( z32$L&YD*aVVBS35622O`@4GS*m8S%0i&4>mxj&vj@wd&1n(z<#im&KF?&l8TDwcp^ zbP{7MJaJ`z5&nMhTMwb5Q8SR@k)h~Hf=DYEZDiJthMwJ?H|#*))_CqBD!!>_C4XEf zJS+K=%A3cpdC|1((~R}5!yj72SxGksBM9-g<7DsyRA+m*ou!nE!|ejyELPo$3ckG- zcn`(JQl-O9AS@2K(vTJ@pX}@IPW_Dr+RZ7PQ866rliz@w^1CyEE2wDPZ2%#@HjCcN zk!Drkzsv9PG-GQKcv|SI#S4aoevf#Rx6p&);nYHJ6^}d?dPqFSS?FuT-Nr&+D-vaV z=M~ANe(dM|$1wC0(}oVq4MMLR9Y|=&W|FO%Br2m%S%^8#`SDbuGWwe!0@R?hYGfdp ZRP_k0z$&5|pPh%Zw3h5#uiiDU?Oz_^FLeL_ diff --git a/test/sanity_old.jl b/test/sanity_old.jl deleted file mode 100644 index 4b0e78ae..00000000 --- a/test/sanity_old.jl +++ /dev/null @@ -1,119 +0,0 @@ -using NeuralVerification -using Test - -macro no_error(ex) - quote - try $(esc(ex)) - true - catch - false - end - end -end - - -at = @__DIR__ - -small_nnet = read_nnet("$at/../examples/networks/small_nnet.txt") -A = Matrix{Float64}(undef, 2,1) -A[1:2] = [1, -1] - -# TODO can we unify all of the reachability test conditions? -### reverify -inputSet = HPolytope(A, [1.0, 1.0]) -outputSet = HPolytope(A, [1.0, 1.0]) -problem_reverify = Problem(small_nnet, inputSet, outputSet) -solver_reverify = NSVerify(GLPKSolverMIP(), 1000.0) - -### maxSens -inputSet = HPolytope(A, [1.0, 1.0]) -outputSet = HPolytope(A, [100.0, 1.0]) -problem_maxSens = Problem(small_nnet, inputSet, outputSet) -solver_maxSens = MaxSens(0.3) - -### exactReach -inputSet = HPolytope(A, [0.0, 2.0]) -outputSet = HPolytope(zeros(2, 1), [100.0, 1.0]) -problem_exactReach = Problem(small_nnet, inputSet, outputSet) -solver_exactReach = ExactReach() - -#reluVal -inputSet = Hyperrectangle(low = [-1.0], high = [1.0]) -outputSet = Hyperrectangle(low = [-1.0], high = [50.0]) -problem_reluVal = Problem(small_nnet, inputSet, outputSet) -solver_reluVal = ReluVal(2) - -### Ai2 -input = HPolytope(A, [0.0, 0.0]) -output = HPolytope(A, [100.0, 0.0]) -problem_ai2 = Problem(small_nnet, input, output) -solver_ai2 = Ai2() - -### BaB -#inputSet = Hyperrectangle([-1.0], [0.5]) -#outputSet = HPolytope(ones(1,1), [18.5]) -#problem_bab = Problem(small_nnet, inputSet, outputSet) -#solver_bab = BaB(0.1, GLPKSolverMIP()) - -### Certify -inputSet = Hyperrectangle([1.0], [1.0]) -outputSet = HPolytope(ones(1,1), [2.1]) -problem_certify = Problem(small_nnet, inputSet, outputSet) -solver_certify = Certify(SCSSolver()) - -### ConvDual -inputSet = Hyperrectangle([0.0], [1.0]) -outputSet = HPolytope(-ones(1,1), [1.0]) -problem_convdual = Problem(small_nnet, inputSet, outputSet) -solver_convdual = ConvDual() - -### Duality -inputSet = Hyperrectangle([1.0], [1.0]) -outputSet = HPolytope(ones(1,1), [120.0]) -problem_duality = Problem(small_nnet, inputSet, outputSet) -solver_duality = Duality(GLPKSolverMIP()) - -### iLP -inputSet = Hyperrectangle([-2.0], [.5]) -outputSet = HPolytope(ones(1,1),[72.5]) -problem_ilp = Problem(small_nnet, inputSet, outputSet) -solver_ilp = ILP(GLPKSolverMIP(), 1) - -### MIPVerify -inputSet = Hyperrectangle([0.0], [.5]) -outputSet = HPolytope(ones(1,1), [102.5]) -problem_mipverify = Problem(small_nnet, inputSet, outputSet) -solver_mipverify = MIPVerify(GLPKSolverMIP()) - -### Planet -inputSet = Hyperrectangle([-1.0], [0.5]) -outputSet = HPolytope(ones(1,1), [2.5]) -problem_planet = Problem(small_nnet, inputSet, outputSet) -solver_planet = Planet(GLPKSolverMIP()) - -### Reluplex -inputSet = Hyperrectangle([1.0],[.2]) -outputSet = Hyperrectangle([2.0,], [100.0]) -problem_reluplex = Problem(small_nnet, inputSet, outputSet) -solver_reluplex = Reluplex() - -### Sherlock -inputSet = Hyperrectangle([2.0], [.5]) -outputSet = Hyperrectangle([10.0], [10.0]) -problem_sherlock = Problem(small_nnet, inputSet, outputSet) -solver_sherlock = Sherlock(GLPKSolverMIP(), 0.1) - -#@test @no_error solve(solver_reverify, problem_reverify) -#@test @no_error solve(solver_maxSens, problem_maxSens) -@test @no_error solve(solver_exactReach, problem_exactReach) -@test @no_error solve(solver_reluVal, problem_reluVal) -@test @no_error solve(solver_ai2, problem_ai2) -@test @no_error solve(solver_bab, problem_bab) -@test @no_error solve(solver_certify, problem_certify) -@test @no_error solve(solver_convdual, problem_convdual) -@test @no_error solve(solver_duality, problem_duality) -@test @no_error solve(solver_ilp, problem_ilp) -@test @no_error solve(solver_mipverify, problem_mipverify) -@test @no_error solve(solver_planet, problem_planet) -@test @no_error solve(solver_reluplex, problem_reluplex) -@test @no_error solve(solver_sherlock, problem_sherlock) \ No newline at end of file From 23a6a81d95e35b277b9efb9cb4c15325e1bf4db4 Mon Sep 17 00:00:00 2001 From: Tianhao Date: Thu, 23 Jul 2020 18:31:58 -0400 Subject: [PATCH 34/66] fix LazySets compatability problem --- src/adversarial/neurify.jl | 28 ++++++++++++++++++++-------- test/fully_split.jl | 12 ++++++------ test/mnist_1000.jl | 1 + 3 files changed, 27 insertions(+), 14 deletions(-) diff --git a/src/adversarial/neurify.jl b/src/adversarial/neurify.jl index 412b76cd..d908f2da 100644 --- a/src/adversarial/neurify.jl +++ b/src/adversarial/neurify.jl @@ -55,7 +55,7 @@ function solve(solver::Neurify, problem::Problem) n = size(reach_lc, 1) m = size(reach_lc[1].a, 1) - model = Model(with_optimizer(GLPK.Optimizer)) + model = Model(GLPK.Optimizer) @variable(model, x[1:m], base_name="x") @constraint(model, [i in 1:n], reach_lc[i].a' * x <= reach_lc[i].b) @@ -98,7 +98,7 @@ function check_inclusion(solver, reach::SymbolicInterval{<:HPolytope}, output::A output_lc = output.constraints n = size(reach_lc, 1) m = size(reach_lc[1].a, 1) - model =Model(with_optimizer(GLPK.Optimizer)) + model =Model(GLPK.Optimizer) @variable(model, x[1:m]) @constraint(model, [i in 1:n], reach_lc[i].a' * x <= reach_lc[i].b) max_violation = -1e9 @@ -154,13 +154,25 @@ function constraint_refinement(solver::Neurify, nnet::Network, reach::SymbolicIn u_sym = reach_new.sym.Up[[j], 1:end-1] u_off = reach_new.sym.Up[[j], end] intervals = Vector(undef, 3) - intervals[1] = HPolytope([C; l_sym; u_sym], [d; -l_off; -u_off]) - intervals[2] = HPolytope([C; l_sym; -u_sym], [d; -l_off; u_off]) - intervals[3] = HPolytope([C; -l_sym; -u_sym], [d; l_off; u_off]) + # remove zero constraints and construct new intervals + intervals[1] = construct_interval([C; l_sym; u_sym], [d; -l_off; -u_off]) + intervals[2] = construct_interval([C; l_sym; -u_sym], [d; -l_off; u_off]) + intervals[3] = construct_interval([C; -l_sym; -u_sym], [d; l_off; u_off]) # intervals[4] = HPolytope([C; -l_sym; u_sym], [d; l_off; -u_off]) lower bound can not be greater than upper bound return intervals end +function construct_interval(A::AbstractMatrix{N}, b::AbstractVector{N}) where {N<:Real} + m = size(A, 1) + zero_idx = [] + for i in 1:m + iszero(A[i,:]) && push!(zero_idx, i) + end + A = A[setdiff(1:end, zero_idx), :] + b = b[setdiff(1:end, zero_idx)] + return HPolytope(A, b) +end + function get_nodewise_influence(solver::Neurify, nnet::Network, reach::SymbolicIntervalGradient, max_violation_con::AbstractVector{Float64}, splits::Vector) n_output = size(nnet.layers[end].weights, 1) n_length = length(nnet.layers) @@ -178,7 +190,7 @@ function get_nodewise_influence(solver::Neurify, nnet::Network, reach::SymbolicI for j in 1:size(layer.bias,1) if (0 < reach.LΛ[i][j] < 1) || (0 < reach.UΛ[i][j] < 1) max_gradient = max(abs(LG[j]), abs(UG[j])) - influence = max_gradient * reach.r[i][j] * k + influence = max_gradient * reach.r[i][j] * k # This k is different from original paper, but can improve the split efficiency. if in((i,j, influence), splits) # To prevent infinity loop continue end @@ -281,7 +293,7 @@ end function upper_bound(map::Vector{Float64}, input::HPolytope) n = size(input.constraints, 1) m = size(input.constraints[1].a, 1) - model =Model(with_optimizer(GLPK.Optimizer)) + model =Model(GLPK.Optimizer) @variable(model, x[1:m]) @constraint(model, [i in 1:n], input.constraints[i].a' * x <= input.constraints[i].b) @objective(model, Max, map' * [x; [1]]) @@ -292,7 +304,7 @@ end function lower_bound(map::Vector{Float64}, input::HPolytope) n = size(input.constraints, 1) m = size(input.constraints[1].a, 1) - model =Model(with_optimizer(GLPK.Optimizer)) + model =Model(GLPK.Optimizer) @variable(model, x[1:m]) @constraint(model, [i in 1:n], input.constraints[i].a' * x <= input.constraints[i].b) @objective(model, Min, map' * [x; [1]]) diff --git a/test/fully_split.jl b/test/fully_split.jl index 44673d6a..f60de58c 100644 --- a/test/fully_split.jl +++ b/test/fully_split.jl @@ -26,15 +26,15 @@ problem_violated = Problem(w_nnet, Hyperrectangle(low = [y_min + ϵ], high = [y_max - ϵ])); # NOTE: 'max_iter' of the solver must be large enough to fully split. -@testset "Fully split, ReluVal" begin - solver = ReluVal(max_iter = 1000) - @test solve(solver, problem_holds).status == :holds - @test solve(solver, problem_violated).status == :violated -end +# @testset "Fully split, ReluVal" begin +# solver = ReluVal(max_iter = 1000) +# @test solve(solver, problem_holds).status == :holds +# @test solve(solver, problem_violated).status == :violated +# end @testset "Fully split, Neurify" begin solver = Neurify(max_iter = 1000) @test solve(solver, problem_holds).status == :holds - @test solve(solver, problem_violated).status == :violated + # @test solve(solver, problem_violated).status == :violated end diff --git a/test/mnist_1000.jl b/test/mnist_1000.jl index 4b110962..2c419799 100644 --- a/test/mnist_1000.jl +++ b/test/mnist_1000.jl @@ -24,6 +24,7 @@ function test_solver(solver, test_selected) @load "MNIST_1000.jld2" train_x train_y mnist_net for i = test_idx + println(i) input_center = reshape(train_x[:,:,i], 28*28) label = train_y[i] A = zeros(Float64, 10, 10) From d3c4b71a654f962a6e1deb2e2967ad6d29a9edb9 Mon Sep 17 00:00:00 2001 From: Tianhao Date: Mon, 27 Jul 2020 22:41:22 -0400 Subject: [PATCH 35/66] rewrite relaxation slop calculation logic as in the paper --- src/adversarial/neurify.jl | 38 +++++++++++++++++--------------------- test/fully_split.jl | 12 ++++++------ test/mnist_1000.jl | 2 +- 3 files changed, 24 insertions(+), 28 deletions(-) diff --git a/src/adversarial/neurify.jl b/src/adversarial/neurify.jl index d908f2da..134fdb44 100644 --- a/src/adversarial/neurify.jl +++ b/src/adversarial/neurify.jl @@ -190,7 +190,8 @@ function get_nodewise_influence(solver::Neurify, nnet::Network, reach::SymbolicI for j in 1:size(layer.bias,1) if (0 < reach.LΛ[i][j] < 1) || (0 < reach.UΛ[i][j] < 1) max_gradient = max(abs(LG[j]), abs(UG[j])) - influence = max_gradient * reach.r[i][j] * k # This k is different from original paper, but can improve the split efficiency. + # influence = max_gradient * reach.r[i][j] * k # This k is different from original paper, but can improve the split efficiency. + influence = max_gradient * reach.r[i][j] if in((i,j, influence), splits) # To prevent infinity loop continue end @@ -238,7 +239,11 @@ function forward_linear(solver::Neurify, input::SymbolicIntervalGradient, layer: sym = SymbolicInterval(output_Low, output_Up, input.sym.interval) return SymbolicIntervalGradient(sym, input.LΛ, input.UΛ, input.r) end - +function calc_slop(up::Float64, low::Float64) + (up <= 0) && return 0 + (low >= 0) && return 1 + return up / (up - low) +end # Symbolic forward_act function forward_act(input::SymbolicIntervalGradient, layer::Layer{ReLU}) n_node, n_input = size(input.sym.Up) @@ -248,31 +253,22 @@ function forward_act(input::SymbolicIntervalGradient, layer::Layer{ReLU}) for i in 1:n_node # Symbolic linear relaxation # This is different from ReluVal + mask_lower[i] up_up = upper_bound(input.sym.Up[i, :], input.sym.interval) up_low = lower_bound(input.sym.Up[i, :], input.sym.interval) low_up = upper_bound(input.sym.Low[i, :], input.sym.interval) low_low = lower_bound(input.sym.Low[i, :], input.sym.interval) interval_width[i] = up_up - low_low - if up_up <= 0.0 - # Update to zero - mask_lower[i], mask_upper[i] = 0, 0 - output_Up[i, :] = zeros(n_input) - output_Low[i, :] = zeros(n_input) - elseif low_low >= 0 - # Keep dependency - mask_lower[i], mask_upper[i] = 1, 1 - else - # up_up must be greater than 0, if up_up-up_low < 1e-6. The slope should be 1. - up_slop = (abs(up_up - up_low) > 1e-6) ? ((up_up - max(up_low, 0)) / (up_up - up_low)) : 1 - output_Up[i, :] = up_slop * output_Up[i, :] - output_Up[i, end] += up_slop * max(-up_low, 0) - - # low_low must be less than 0, if low_up - low_low < 1e-6, the slope should be 0. - low_slop = (abs(low_up - low_low) > 1e-6) ? (max(low_up, 0) / (low_up - low_low)) : 0 - output_Low[i, :] = low_slop * output_Low[i, :] - mask_lower[i], mask_upper[i] = low_slop, up_slop - end + up_slop = calc_slop(up_up, up_low) + low_slop = calc_slop(low_up, low_low) + + output_Up[i, :] = up_slop * output_Up[i, :] + output_Up[i, end] += up_slop * max(-up_low, 0) + + output_Low[i, :] = low_slop * output_Low[i, :] + + mask_lower[i], mask_upper[i] = low_slop, up_slop end sym = SymbolicInterval(output_Low, output_Up, input.sym.interval) LΛ = push!(input.LΛ, mask_lower) diff --git a/test/fully_split.jl b/test/fully_split.jl index f60de58c..44673d6a 100644 --- a/test/fully_split.jl +++ b/test/fully_split.jl @@ -26,15 +26,15 @@ problem_violated = Problem(w_nnet, Hyperrectangle(low = [y_min + ϵ], high = [y_max - ϵ])); # NOTE: 'max_iter' of the solver must be large enough to fully split. -# @testset "Fully split, ReluVal" begin -# solver = ReluVal(max_iter = 1000) -# @test solve(solver, problem_holds).status == :holds -# @test solve(solver, problem_violated).status == :violated -# end +@testset "Fully split, ReluVal" begin + solver = ReluVal(max_iter = 1000) + @test solve(solver, problem_holds).status == :holds + @test solve(solver, problem_violated).status == :violated +end @testset "Fully split, Neurify" begin solver = Neurify(max_iter = 1000) @test solve(solver, problem_holds).status == :holds - # @test solve(solver, problem_violated).status == :violated + @test solve(solver, problem_violated).status == :violated end diff --git a/test/mnist_1000.jl b/test/mnist_1000.jl index 2c419799..5971115d 100644 --- a/test/mnist_1000.jl +++ b/test/mnist_1000.jl @@ -24,7 +24,7 @@ function test_solver(solver, test_selected) @load "MNIST_1000.jld2" train_x train_y mnist_net for i = test_idx - println(i) + # println(i) input_center = reshape(train_x[:,:,i], 28*28) label = train_y[i] A = zeros(Float64, 10, 10) From ae78ffa57aa0a0c1d2eb5aa2fa8ad22299bc11a8 Mon Sep 17 00:00:00 2001 From: tomer arnon Date: Tue, 4 Aug 2020 20:25:22 +0300 Subject: [PATCH 36/66] start edit --- src/adversarial/neurify.jl | 123 ++++++++++++++++++++++--------------- 1 file changed, 72 insertions(+), 51 deletions(-) diff --git a/src/adversarial/neurify.jl b/src/adversarial/neurify.jl index 134fdb44..0af4f42a 100644 --- a/src/adversarial/neurify.jl +++ b/src/adversarial/neurify.jl @@ -48,28 +48,25 @@ end function solve(solver::Neurify, problem::Problem) + # TODO get rid of problem = Problem(problem.network, convert(HPolytope, problem.input), convert(HPolytope, problem.output)) - reach_lc = problem.input.constraints - output_lc = problem.output.constraints - - n = size(reach_lc, 1) - m = size(reach_lc[1].a, 1) + A, b = tosimplehrep(problem.input) model = Model(GLPK.Optimizer) - @variable(model, x[1:m], base_name="x") - @constraint(model, [i in 1:n], reach_lc[i].a' * x <= reach_lc[i].b) - - reach = forward_network(solver, problem.network, problem.input) + + @variable(model, x[1:dim(input)], A*x .<= b) + + reach = forward_network(solver, problem.network, problem.input) result, max_violation_con = check_inclusion(solver, reach.sym, problem.output, problem.network) # This calls the check_inclusion function in ReluVal, because the constraints are Hyperrectangle result.status == :unknown || return result - reach_list=Array{Any,1}() + reach_list = [] push!(reach_list, (reach, max_violation_con, Vector())) - # Becuase of over-approximation, a split may not bisect the input set. + # Becuase of over-approximation, a split may not bisect the input set. # Therefore, the gradient remains unchanged (since input didn't change). # And this node will be chosen to split forever. - # To prevent this, we split each node only once if the gradient of this node hasn't change. + # To prevent this, we split each node only once if the gradient of this node hasn't change. # Each element in splits is a tuple (gradient_of_the_node, layer_index, node_index). splits = Set() # To prevent infinity loop. @@ -91,8 +88,8 @@ end function check_inclusion(solver, reach::SymbolicInterval{<:HPolytope}, output::AbstractPolytope, nnet::Network) where N # The output constraint is in the form A*x < b # We try to maximize output constraint to find a violated case, or to verify the inclusion. - # Suppose the output is [1, 0, -1] * x < 2, Then we are maximizing reach.Up[1] * 1 + reach.Low[3] * (-1) - + # Suppose the output is [1, 0, -1] * x < 2, Then we are maximizing reach.Up[1] * 1 + reach.Low[3] * (-1) + # return a result and the most violated constraint. reach_lc = reach.interval.constraints output_lc = output.constraints @@ -136,7 +133,7 @@ function check_inclusion(solver, reach::SymbolicInterval{<:HPolytope}, output::A println("No solution, please check the problem definition.") exit() end - + end max_violation > 0 && return BasicResult(:unknown), max_violation_con return BasicResult(:holds), nothing @@ -162,6 +159,7 @@ function constraint_refinement(solver::Neurify, nnet::Network, reach::SymbolicIn return intervals end +# NOTE: What effect do 0-intervals have? function construct_interval(A::AbstractMatrix{N}, b::AbstractVector{N}) where {N<:Real} m = size(A, 1) zero_idx = [] @@ -176,35 +174,38 @@ end function get_nodewise_influence(solver::Neurify, nnet::Network, reach::SymbolicIntervalGradient, max_violation_con::AbstractVector{Float64}, splits::Vector) n_output = size(nnet.layers[end].weights, 1) n_length = length(nnet.layers) + + LΛ, UΛ = reach.LΛ, reach.UΛ # We want to find the node with the largest influence # Influence is defined as gradient * interval width # The gradient is with respect to a loss defined by the most violated constraint. - LG = transpose(copy(max_violation_con)) - UG = transpose(copy(max_violation_con)) + LG = copy(transpose(max_violation_con)) + UG = copy(transpose(max_violation_con)) max_tuple = (0, 0, -1e9) for (k, layer) in enumerate(reverse(nnet.layers)) - i = n_length - k + 1 - if layer.activation != Id() - # Only split Relu nodes - # A split over id node may not reduce over-approximation (the input set may not bisected). - for j in 1:size(layer.bias,1) - if (0 < reach.LΛ[i][j] < 1) || (0 < reach.UΛ[i][j] < 1) + # Only split Relu nodes + if layer.activation isa ReLU + i = n_length - k + 1 + for j in 1:n_nodes(layer) + if (0 < LΛ[i][j] < 1) || (0 < UΛ[i][j] < 1) max_gradient = max(abs(LG[j]), abs(UG[j])) # influence = max_gradient * reach.r[i][j] * k # This k is different from original paper, but can improve the split efficiency. influence = max_gradient * reach.r[i][j] - if in((i,j, influence), splits) # To prevent infinity loop + if (i,j, influence) in splits # To prevent infinity loop continue end # If we use > here, in the case that largest gradient is 0, this function will return (0, 0 ,0) - if influence >= max_tuple[3] + if influence >= max_tuple[3] max_tuple = (i, j, influence) end end end end - i >= 1 || break - LG_hat = max.(LG, 0.0) * Diagonal(reach.LΛ[i]) + min.(LG, 0.0) * Diagonal(reach.UΛ[i]) - UG_hat = min.(UG, 0.0) * Diagonal(reach.LΛ[i]) + max.(UG, 0.0) * Diagonal(reach.UΛ[i]) + # i >= 1 || break # NOTE doesn't do anything? + + LG_hat = max.(LG, 0.0) * Diagonal(LΛ[i]) + min.(LG, 0.0) * Diagonal(UΛ[i]) + UG_hat = min.(UG, 0.0) * Diagonal(LΛ[i]) + max.(UG, 0.0) * Diagonal(UΛ[i]) + LG, UG = interval_map_right(layer.weights, LG_hat, UG_hat) end if max_tuple[1] == 0 && max_tuple[2] == 0 @@ -247,17 +248,16 @@ end # Symbolic forward_act function forward_act(input::SymbolicIntervalGradient, layer::Layer{ReLU}) n_node, n_input = size(input.sym.Up) - output_Low, output_Up = input.sym.Low[:, :], input.sym.Up[:, :] + output_Low, output_Up = copy(input.sym.Low), copy(input.sym.Up) mask_lower, mask_upper = zeros(Float64, n_node), ones(Float64, n_node) interval_width = zeros(Float64, n_node) for i in 1:n_node # Symbolic linear relaxation # This is different from ReluVal - mask_lower[i] - up_up = upper_bound(input.sym.Up[i, :], input.sym.interval) - up_low = lower_bound(input.sym.Up[i, :], input.sym.interval) - low_up = upper_bound(input.sym.Low[i, :], input.sym.interval) - low_low = lower_bound(input.sym.Low[i, :], input.sym.interval) + + up_low, up_up = bounds(input.sym.Up[i, :], input.sym.interval) + low_low, low_up = bounds(input.sym.Low[i, :], input.sym.interval) + interval_width[i] = up_up - low_low up_slop = calc_slop(up_up, up_low) @@ -286,24 +286,45 @@ function forward_act(input::SymbolicIntervalGradient, layer::Layer{Id}) return SymbolicIntervalGradient(sym, LΛ, UΛ, r) end -function upper_bound(map::Vector{Float64}, input::HPolytope) - n = size(input.constraints, 1) - m = size(input.constraints[1].a, 1) - model =Model(GLPK.Optimizer) - @variable(model, x[1:m]) - @constraint(model, [i in 1:n], input.constraints[i].a' * x <= input.constraints[i].b) - @objective(model, Max, map' * [x; [1]]) +function bounds(a, input) + A, b = tosimplehrep(input) + + model = Model(GLPK.Optimizer) + x = @variable(model, [1:dim(input)]) + @constraint(model, A * x .<= b) + + obj = a' * [x; 1] + + @objective(model, Max, obj) optimize!(model) - return objective_value(model) -end + upper_bound = objective_value(model) -function lower_bound(map::Vector{Float64}, input::HPolytope) - n = size(input.constraints, 1) - m = size(input.constraints[1].a, 1) - model =Model(GLPK.Optimizer) - @variable(model, x[1:m]) - @constraint(model, [i in 1:n], input.constraints[i].a' * x <= input.constraints[i].b) - @objective(model, Min, map' * [x; [1]]) + @objective(model, Min, obj) optimize!(model) - return objective_value(model) + lower_bound = objective_value(model) + + return (lower_bound, upper_bound) end + + +# function upper_bound(map::Vector{Float64}, input::HPolytope) +# n = size(input.constraints, 1) +# m = size(input.constraints[1].a, 1) +# model =Model(GLPK.Optimizer) +# @variable(model, x[1:m]) +# @constraint(model, [i in 1:n], input.constraints[i].a' * x <= input.constraints[i].b) +# @objective(model, Max, map' * [x; [1]]) +# optimize!(model) +# return objective_value(model) +# end + +# function lower_bound(map::Vector{Float64}, input::HPolytope) +# n = size(input.constraints, 1) +# m = size(input.constraints[1].a, 1) +# model =Model(GLPK.Optimizer) +# @variable(model, x[1:m]) +# @constraint(model, [i in 1:n], input.constraints[i].a' * x <= input.constraints[i].b) +# @objective(model, Min, map' * [x; [1]]) +# optimize!(model) +# return objective_value(model) +# end From e9be91f6f8e9ed14e15e6d1d30e5a802009e92c9 Mon Sep 17 00:00:00 2001 From: tomer arnon Date: Thu, 6 Aug 2020 23:35:46 +0300 Subject: [PATCH 37/66] some simplifications --- src/adversarial/neurify.jl | 89 +++++++++++++++++++++++++------------- src/utils/util.jl | 8 +--- 2 files changed, 59 insertions(+), 38 deletions(-) diff --git a/src/adversarial/neurify.jl b/src/adversarial/neurify.jl index 0af4f42a..b2053975 100644 --- a/src/adversarial/neurify.jl +++ b/src/adversarial/neurify.jl @@ -95,7 +95,7 @@ function check_inclusion(solver, reach::SymbolicInterval{<:HPolytope}, output::A output_lc = output.constraints n = size(reach_lc, 1) m = size(reach_lc[1].a, 1) - model =Model(GLPK.Optimizer) + model = Model(GLPK.Optimizer) @variable(model, x[1:m]) @constraint(model, [i in 1:n], reach_lc[i].a' * x <= reach_lc[i].b) max_violation = -1e9 @@ -139,39 +139,66 @@ function check_inclusion(solver, reach::SymbolicInterval{<:HPolytope}, output::A return BasicResult(:holds), nothing end -function constraint_refinement(solver::Neurify, nnet::Network, reach::SymbolicIntervalGradient, max_violation_con::AbstractVector{Float64}, splits::Vector) +function constraint_refinement(solver::Neurify, + nnet::Network, + reach::SymbolicIntervalGradient, + max_violation_con::AbstractVector{Float64}, + splits::Vector) + i, j, influence = get_nodewise_influence(solver, nnet, reach, max_violation_con, splits) # We can generate three more constraints # Symbolic representation of node i j is Low[i][j,:] and Up[i][j,:] - nnet_new = Network(nnet.layers[1:i]) - reach_new = forward_network(solver, nnet_new, reach.sym.interval) - C, d = tosimplehrep(reach.sym.interval) - l_sym = reach_new.sym.Low[[j], 1:end-1] - l_off = reach_new.sym.Low[[j], end] - u_sym = reach_new.sym.Up[[j], 1:end-1] - u_off = reach_new.sym.Up[[j], end] - intervals = Vector(undef, 3) - # remove zero constraints and construct new intervals - intervals[1] = construct_interval([C; l_sym; u_sym], [d; -l_off; -u_off]) - intervals[2] = construct_interval([C; l_sym; -u_sym], [d; -l_off; u_off]) - intervals[3] = construct_interval([C; -l_sym; -u_sym], [d; l_off; u_off]) + reach_new = forward_network(solver, Network(nnet.layers[1:i]), reach.sym.interval) + + inter = reach.sym.interval + L = reach_new.sym.Low + U = reach_new.sym.Up + + # maybe filter rows of L and U that are all zeros first. + # NOTE: but j determines the row, so how can it ever be 0? + + WL, bL = L[j, 1:end-1], L[j, end] + WU, bU = U[j, 1:end-1], U[j, end] + + I1 = inter ∩ HPolyhedron(WL, -bL) ∩ HPolyhedron(WU, -bU) + I2 = inter ∩ HPolyhedron(WL, -bL) ∩ HPolyhedron(-WU, bU) + I3 = inter ∩ HPolyhedron(-WL, bL) ∩ HPolyhedron(-WU, bU) + + intervals = [I1, I2, I3] + + + # C, d = tosimplehrep(reach.sym.interval) + # l_sym = reach_new.sym.Low[[j], 1:end-1] + # l_off = reach_new.sym.Low[[j], end] + # u_sym = reach_new.sym.Up[[j], 1:end-1] + # u_off = reach_new.sym.Up[[j], end] + # intervals = Vector(undef, 3) + # # remove zero constraints and construct new intervals + # intervals[1] = construct_interval([C; l_sym; u_sym], [d; -l_off; -u_off]) + # intervals[2] = construct_interval([C; l_sym; -u_sym], [d; -l_off; u_off]) + # intervals[3] = construct_interval([C; -l_sym; -u_sym], [d; l_off; u_off]) # intervals[4] = HPolytope([C; -l_sym; u_sym], [d; l_off; -u_off]) lower bound can not be greater than upper bound return intervals end -# NOTE: What effect do 0-intervals have? -function construct_interval(A::AbstractMatrix{N}, b::AbstractVector{N}) where {N<:Real} - m = size(A, 1) - zero_idx = [] - for i in 1:m - iszero(A[i,:]) && push!(zero_idx, i) - end - A = A[setdiff(1:end, zero_idx), :] - b = b[setdiff(1:end, zero_idx)] - return HPolytope(A, b) -end +# # NOTE: What effect do 0-intervals have? +# function construct_interval(A::AbstractMatrix{N}, b::AbstractVector{N}) where {N<:Real} +# m = size(A, 1) +# zero_idx = [] +# for i in 1:m +# iszero(A[i,:]) && push!(zero_idx, i) +# end +# A = A[setdiff(1:end, zero_idx), :] +# b = b[setdiff(1:end, zero_idx)] +# return HPolytope(A, b) +# end + +function get_nodewise_influence(solver::Neurify, + nnet::Network, + reach::SymbolicIntervalGradient, + max_violation_con::AbstractVector{Float64}, + splits::Vector) -function get_nodewise_influence(solver::Neurify, nnet::Network, reach::SymbolicIntervalGradient, max_violation_con::AbstractVector{Float64}, splits::Vector) n_output = size(nnet.layers[end].weights, 1) n_length = length(nnet.layers) @@ -179,8 +206,8 @@ function get_nodewise_influence(solver::Neurify, nnet::Network, reach::SymbolicI # We want to find the node with the largest influence # Influence is defined as gradient * interval width # The gradient is with respect to a loss defined by the most violated constraint. - LG = copy(transpose(max_violation_con)) - UG = copy(transpose(max_violation_con)) + LG = copy(max_violation_con) + UG = copy(max_violation_con) max_tuple = (0, 0, -1e9) for (k, layer) in enumerate(reverse(nnet.layers)) # Only split Relu nodes @@ -203,10 +230,10 @@ function get_nodewise_influence(solver::Neurify, nnet::Network, reach::SymbolicI end # i >= 1 || break # NOTE doesn't do anything? - LG_hat = max.(LG, 0.0) * Diagonal(LΛ[i]) + min.(LG, 0.0) * Diagonal(UΛ[i]) - UG_hat = min.(UG, 0.0) * Diagonal(LΛ[i]) + max.(UG, 0.0) * Diagonal(UΛ[i]) + LG_hat = max.(LG, 0.0) .* LΛ[i] .+ min.(LG, 0.0) .* UΛ[i] + UG_hat = min.(UG, 0.0) .* LΛ[i] .+ max.(UG, 0.0) .* UΛ[i] - LG, UG = interval_map_right(layer.weights, LG_hat, UG_hat) + LG, UG = interval_map(layer.weights', LG_hat, UG_hat) end if max_tuple[1] == 0 && max_tuple[2] == 0 println("Can not find valid node to split") diff --git a/src/utils/util.jl b/src/utils/util.jl index 575f3e7a..f1525834 100644 --- a/src/utils/util.jl +++ b/src/utils/util.jl @@ -329,17 +329,11 @@ function interval_map(W::AbstractMatrix{N}, l::AbstractVecOrMat, u::AbstractVecO return (l_new, u_new) end -function interval_map_right(W::AbstractMatrix{N}, l::AbstractVecOrMat, u::AbstractVecOrMat) where N - l_new = l * max.(W, zero(N)) + u * min.(W, zero(N)) - u_new = u * max.(W, zero(N)) + l * min.(W, zero(N)) - return (l_new, u_new) -end - """ get_bounds(problem::Problem) get_bounds(nnet::Network, input::Hyperrectangle, [true]) -Computes node-wise bounds given a input set. The optional last +Computes node-wise bounds given a input set. The optional last argument determines whether the bounds are pre- or post-activation. Return: From 22f93a2b69567d895bb93675a760df06b25ca438 Mon Sep 17 00:00:00 2001 From: tomer arnon Date: Tue, 11 Aug 2020 01:51:37 +0300 Subject: [PATCH 38/66] slight style changes to reluval --- src/adversarial/reluVal.jl | 59 +++++++++++++++----------------------- 1 file changed, 23 insertions(+), 36 deletions(-) diff --git a/src/adversarial/reluVal.jl b/src/adversarial/reluVal.jl index 4b208fc9..a1e8dad6 100644 --- a/src/adversarial/reluVal.jl +++ b/src/adversarial/reluVal.jl @@ -65,38 +65,29 @@ end function pick_out!(reach_list, tree_search) if tree_search == :BFS - reach = reach_list[1] - deleteat!(reach_list, 1) + reach = popfirst!(reach_list) else - n = length(reach_list) - reach = reach_list[n] - deleteat!(reach_list, n) + reach = pop!(reach_list) end return reach end -function symbol_to_concrete(reach::SymbolicInterval{<:Hyperrectangle{N}}) where N - n_output = size(reach.Low, 1) - upper = zeros(n_output) - lower = zeros(n_output) - for i in 1:n_output - lower[i] = lower_bound(reach.Low[i, :], reach.interval) - upper[i] = upper_bound(reach.Up[i, :], reach.interval) - end +function symbol_to_concrete(reach::SymbolicInterval{<:Hyperrectangle}) + lower = [lower_bound(l, reach.interval) for l in eachrow(reach.Low)] + upper = [upper_bound(u, reach.interval) for u in eachrow(reach.Up)] + return Hyperrectangle(low = lower, high = upper) end -function check_inclusion(reach::SymbolicInterval{<:Hyperrectangle{N}}, output::AbstractPolytope, nnet::Network) where N +function check_inclusion(reach::SymbolicInterval{<:Hyperrectangle}, output::AbstractPolytope, nnet::Network) reachable = symbol_to_concrete(reach) - # println("reluval reachable") - # println(reachable) + issubset(reachable, output) && return BasicResult(:holds) - # is_intersection_empty(reachable, output) && return BasicResult(:violated) # Sample the middle point - middle_point = (high(reach.interval) + low(reach.interval))./2 + middle_point = center(reach.interval) y = compute_output(nnet, middle_point) - ∈(y, output) || return CounterExampleResult(:violated, middle_point) + y ∈ output || return CounterExampleResult(:violated, middle_point) return BasicResult(:unknown) end @@ -180,28 +171,24 @@ function get_smear_index(nnet::Network, input::Hyperrectangle, LG::Matrix, UG::M return feature, monotone end -# Get upper bound in concretization -function upper_bound(map::Vector{Float64}, input::Hyperrectangle) - bound = map[dim(input)+1] - input_upper = high(input) - input_lower = low(input) - for i in 1:dim(input) - bound += ifelse( map[i]>0, map[i]*input_upper[i], map[i]*input_lower[i]) - end - return bound -end +function _bound(map::AbstractVector, input::Hyperrectangle, which_bound::Symbol) + a, b = map[1:end-1], map[end] -# Get lower bound in concretization -function lower_bound(map::Vector{Float64}, input::Hyperrectangle) - bound = map[dim(input)+1] - input_upper = high(input) - input_lower = low(input) - for i in 1:dim(input) - bound += ifelse(map[i]>0, map[i]*input_lower[i], map[i]*input_upper[i]) + if which_bound === :lower + bound = max.(a, 0)' * low(input) + + min.(a, 0)' * high(input) + b + elseif which_bound === :upper + bound = max.(a, 0)' * high(input) + + min.(a, 0)' * low(input) + b end + return bound end +upper_bound(map, input) = _bound(map, input, :upper) +lower_bound(map, input) = _bound(map, input, :lower) + + # Concrete forward_linear # function forward_linear_concrete(input::Hyperrectangle, W::Matrix{Float64}, b::Vector{Float64}) # n_output = size(W, 1) From 935d8706f8efab9cf10be62022465cf91238b8cd Mon Sep 17 00:00:00 2001 From: tomer arnon Date: Tue, 11 Aug 2020 01:52:37 +0300 Subject: [PATCH 39/66] neurify more simplifications --- src/adversarial/neurify.jl | 239 +++++++++++++++---------------------- 1 file changed, 96 insertions(+), 143 deletions(-) diff --git a/src/adversarial/neurify.jl b/src/adversarial/neurify.jl index b2053975..fae169f1 100644 --- a/src/adversarial/neurify.jl +++ b/src/adversarial/neurify.jl @@ -30,14 +30,13 @@ Sound but not complete. tree_search::Symbol = :DFS # only :DFS/:BFS allowed? If so, we should assert this. end +# Why can "interval" be an AbstractPolytope? struct SymbolicInterval{F<:AbstractPolytope} Low::Matrix{Float64} Up::Matrix{Float64} interval::F end -SymbolicInterval(x::Matrix{Float64}, y::Matrix{Float64}) = SymbolicInterval(x, y, Hyperrectangle([0],[0])) - # Data to be passed during forward_layer struct SymbolicIntervalGradient sym::SymbolicInterval @@ -51,10 +50,10 @@ function solve(solver::Neurify, problem::Problem) # TODO get rid of problem = Problem(problem.network, convert(HPolytope, problem.input), convert(HPolytope, problem.output)) - A, b = tosimplehrep(problem.input) - model = Model(GLPK.Optimizer) - @variable(model, x[1:dim(input)], A*x .<= b) + model = Model(GLPK.Optimizer) + x = @variable(model, [1:dim(problem.input)]) + add_set_constraint!(model, problem.input, x) reach = forward_network(solver, problem.network, problem.input) result, max_violation_con = check_inclusion(solver, reach.sym, problem.output, problem.network) # This calls the check_inclusion function in ReluVal, because the constraints are Hyperrectangle @@ -71,72 +70,77 @@ function solve(solver::Neurify, problem::Problem) splits = Set() # To prevent infinity loop. for i in 2:solver.max_iter - length(reach_list) > 0 || return BasicResult(:holds) + isempty(reach_list) && return BasicResult(:holds) + reach, max_violation_con, splits = pick_out!(reach_list, solver.tree_search) + intervals = constraint_refinement(solver, problem.network, reach, max_violation_con, splits) + for interval in intervals - isempty(interval) && continue reach = forward_network(solver, problem.network, interval) result, max_violation_con = check_inclusion(solver, reach.sym, problem.output, problem.network) - result.status == :violated && return result - result.status == :holds || (push!(reach_list, (reach, max_violation_con, copy(splits)))) + if result.status == :violated + return result + elseif result.status == :unknown + push!(reach_list, (reach, max_violation_con, copy(splits))) + end end end return BasicResult(:unknown) end -function check_inclusion(solver, reach::SymbolicInterval{<:HPolytope}, output::AbstractPolytope, nnet::Network) where N +function check_inclusion(solver::Neurify, reach::SymbolicInterval{<:HPolytope}, + output::AbstractPolytope, nnet::Network) # The output constraint is in the form A*x < b # We try to maximize output constraint to find a violated case, or to verify the inclusion. # Suppose the output is [1, 0, -1] * x < 2, Then we are maximizing reach.Up[1] * 1 + reach.Low[3] * (-1) - # return a result and the most violated constraint. - reach_lc = reach.interval.constraints - output_lc = output.constraints - n = size(reach_lc, 1) - m = size(reach_lc[1].a, 1) model = Model(GLPK.Optimizer) - @variable(model, x[1:m]) - @constraint(model, [i in 1:n], reach_lc[i].a' * x <= reach_lc[i].b) - max_violation = -1e9 - max_violation_con = nothing - for i in 1:size(output_lc, 1) - obj = zeros(size(reach.Low, 2)) - for j in 1:size(reach.Low, 1) - if output_lc[i].a[j] > 0 - obj += output_lc[i].a[j] * reach.Up[j,:] - else - obj += output_lc[i].a[j] * reach.Low[j,:] - end - end - obj = transpose(obj) - @objective(model, Max, obj * [x; [1]]) + x = @variable(model, [1:dim(reach.interval)]) + add_set_constraint!(model, reach.interval, x) + + output_constraints = constraints_list(output) + + max_violation = 0.0 + max_con_ind = 0 + # max_violation_con = nothing + for (i, cons) in enumerate(output_constraints) + # NOTE can be taken out of the loop, but maybe there's no advantage + # NOTE max.(M, 0) * U + ... is a common operation, and maybe should get a name. It's also an "interval map". + a, b = cons.a, cons.b + obj = max.(a, 0)'*reach.Up + min.(a, 0)'*reach.Low + + @objective(model, Max, obj * [x; 1] - b) optimize!(model) - if termination_status(model) == MOI.OPTIMAL - y = compute_output(nnet, value(x)) - if !∈(y, output) + + if termination_status(model) == OPTIMAL + if compute_output(nnet, value(x)) ∉ output return CounterExampleResult(:violated, value(x)), nothing end - if objective_value(model) > output_lc[i].b - if objective_value(model) - output_lc[i].b > max_violation - max_violation = objective_value(model) - output_lc[i].b - max_violation_con = output_lc[i].a - end + + viol = objective_value(model) + if viol > max_violation + max_violation = viol + max_con_ind = i end else - if ∈(value(x), reach.interval) - println("Not OPTIMAL, but x in the input set") - println("This is usually caused by open input set.") - println("Please check your input constraints.") - exit() + # NOTE Is this even valid if the problem isn't solved optimally? + if value(x) ∈ reach.interval + error("Not OPTIMAL, but x in the input set.\n + This is usually caused by open input set.\n + Please check your input constraints.") end - println("No solution, please check the problem definition.") - exit() + # TODO can we be more descriptive? + error("No solution, please check the problem definition.") end end - max_violation > 0 && return BasicResult(:unknown), max_violation_con - return BasicResult(:holds), nothing + + if max_violation > 0.0 + return CounterExampleResult(:unknown), output_constraints[max_con_ind].a + else + return CounterExampleResult(:holds), nothing + end end function constraint_refinement(solver::Neurify, @@ -145,102 +149,76 @@ function constraint_refinement(solver::Neurify, max_violation_con::AbstractVector{Float64}, splits::Vector) - i, j, influence = get_nodewise_influence(solver, nnet, reach, max_violation_con, splits) + i, j, influence = get_max_nodewise_influence(solver, nnet, reach, max_violation_con, splits) # We can generate three more constraints # Symbolic representation of node i j is Low[i][j,:] and Up[i][j,:] reach_new = forward_network(solver, Network(nnet.layers[1:i]), reach.sym.interval) - inter = reach.sym.interval - L = reach_new.sym.Low - U = reach_new.sym.Up + aL, bL = reach_new.sym.Low[j, 1:end-1], reach_new.sym.Low[j, end] + aU, bU = reach_new.sym.Up[j, 1:end-1], reach_new.sym.Up[j, end] - # maybe filter rows of L and U that are all zeros first. - # NOTE: but j determines the row, so how can it ever be 0? + ∩ = LazySets.intersection - WL, bL = L[j, 1:end-1], L[j, end] - WU, bU = U[j, 1:end-1], U[j, end] + intervals = [reach.sym.interval] - I1 = inter ∩ HPolyhedron(WL, -bL) ∩ HPolyhedron(WU, -bU) - I2 = inter ∩ HPolyhedron(WL, -bL) ∩ HPolyhedron(-WU, bU) - I3 = inter ∩ HPolyhedron(-WL, bL) ∩ HPolyhedron(-WU, bU) + # If either of the normal vectors is the 0-vector, we must skip it. + # It cannot be used to create a halfspace constraint. + # NOTE: how can this come about, and does it mean anything? + if !iszero(aL) + intervals = intervals .∩ [HalfSpace(aL, -bL), HalfSpace(aL, -bL), HalfSpace(-aL, bL)] + end + if !iszero(aU) + intervals = intervals .∩ [HalfSpace(aU, -bL), HalfSpace(aU, -bL), HalfSpace(-aU, bL)] + end + return filter(!isempty, intervals) +end - intervals = [I1, I2, I3] +function get_max_nodewise_influence(solver::Neurify, + nnet::Network, + reach::SymbolicIntervalGradient, + max_violation_con::AbstractVector{Float64}, + splits::Vector) - # C, d = tosimplehrep(reach.sym.interval) - # l_sym = reach_new.sym.Low[[j], 1:end-1] - # l_off = reach_new.sym.Low[[j], end] - # u_sym = reach_new.sym.Up[[j], 1:end-1] - # u_off = reach_new.sym.Up[[j], end] - # intervals = Vector(undef, 3) - # # remove zero constraints and construct new intervals - # intervals[1] = construct_interval([C; l_sym; u_sym], [d; -l_off; -u_off]) - # intervals[2] = construct_interval([C; l_sym; -u_sym], [d; -l_off; u_off]) - # intervals[3] = construct_interval([C; -l_sym; -u_sym], [d; l_off; u_off]) - # intervals[4] = HPolytope([C; -l_sym; u_sym], [d; l_off; -u_off]) lower bound can not be greater than upper bound - return intervals -end + LΛ, UΛ, radii = reach.LΛ, reach.UΛ, reach.r + is_ambiguous_activation(i, j) = (0 < LΛ[i][j] < 1) || (0 < UΛ[i][j] < 1) -# # NOTE: What effect do 0-intervals have? -# function construct_interval(A::AbstractMatrix{N}, b::AbstractVector{N}) where {N<:Real} -# m = size(A, 1) -# zero_idx = [] -# for i in 1:m -# iszero(A[i,:]) && push!(zero_idx, i) -# end -# A = A[setdiff(1:end, zero_idx), :] -# b = b[setdiff(1:end, zero_idx)] -# return HPolytope(A, b) -# end - -function get_nodewise_influence(solver::Neurify, - nnet::Network, - reach::SymbolicIntervalGradient, - max_violation_con::AbstractVector{Float64}, - splits::Vector) - - n_output = size(nnet.layers[end].weights, 1) - n_length = length(nnet.layers) - - LΛ, UΛ = reach.LΛ, reach.UΛ # We want to find the node with the largest influence # Influence is defined as gradient * interval width # The gradient is with respect to a loss defined by the most violated constraint. LG = copy(max_violation_con) UG = copy(max_violation_con) - max_tuple = (0, 0, -1e9) - for (k, layer) in enumerate(reverse(nnet.layers)) - # Only split Relu nodes + + i_max, j_max, influence_max = 0, 0, -Inf + + for i in reverse(1:length(nnet.layers)) + layer = nnet.layers[i] if layer.activation isa ReLU - i = n_length - k + 1 for j in 1:n_nodes(layer) - if (0 < LΛ[i][j] < 1) || (0 < UΛ[i][j] < 1) - max_gradient = max(abs(LG[j]), abs(UG[j])) - # influence = max_gradient * reach.r[i][j] * k # This k is different from original paper, but can improve the split efficiency. - influence = max_gradient * reach.r[i][j] - if (i,j, influence) in splits # To prevent infinity loop - continue - end - # If we use > here, in the case that largest gradient is 0, this function will return (0, 0 ,0) - if influence >= max_tuple[3] - max_tuple = (i, j, influence) + if is_ambiguous_activation(i, j) + # taking `influence = max_gradient * reach.r[i][j]*k` would be + # different from original paper, but can improve the split efficiency. + # where `k = n-i+1`, i.e. counts up from 1 as you go back in layers. + influence = max(abs(LG[j]), abs(UG[j])) * radii[i][j] + if influence >= influence_max && (i, j, influence) ∉ splits + i_max, j_max, influence_max = i, j, influence end end end end - # i >= 1 || break # NOTE doesn't do anything? LG_hat = max.(LG, 0.0) .* LΛ[i] .+ min.(LG, 0.0) .* UΛ[i] UG_hat = min.(UG, 0.0) .* LΛ[i] .+ max.(UG, 0.0) .* UΛ[i] LG, UG = interval_map(layer.weights', LG_hat, UG_hat) end - if max_tuple[1] == 0 && max_tuple[2] == 0 - println("Can not find valid node to split") - exit() - end - push!(splits, max_tuple) - return max_tuple + + # NOTE can omit this line in the paper version + i_max == 0 || j_max == 0 && error("Can not find valid node to split") + + push!(splits, (i_max, j_max, influence_max)) + + return (i_max, j_max, influence_max) end function forward_layer(solver::Neurify, layer::Layer, input) @@ -313,14 +291,12 @@ function forward_act(input::SymbolicIntervalGradient, layer::Layer{Id}) return SymbolicIntervalGradient(sym, LΛ, UΛ, r) end -function bounds(a, input) - A, b = tosimplehrep(input) - +function bounds(v, input) model = Model(GLPK.Optimizer) x = @variable(model, [1:dim(input)]) - @constraint(model, A * x .<= b) + add_set_constraint!(model, input, x) - obj = a' * [x; 1] + obj = v' * [x; 1] @objective(model, Max, obj) optimize!(model) @@ -332,26 +308,3 @@ function bounds(a, input) return (lower_bound, upper_bound) end - - -# function upper_bound(map::Vector{Float64}, input::HPolytope) -# n = size(input.constraints, 1) -# m = size(input.constraints[1].a, 1) -# model =Model(GLPK.Optimizer) -# @variable(model, x[1:m]) -# @constraint(model, [i in 1:n], input.constraints[i].a' * x <= input.constraints[i].b) -# @objective(model, Max, map' * [x; [1]]) -# optimize!(model) -# return objective_value(model) -# end - -# function lower_bound(map::Vector{Float64}, input::HPolytope) -# n = size(input.constraints, 1) -# m = size(input.constraints[1].a, 1) -# model =Model(GLPK.Optimizer) -# @variable(model, x[1:m]) -# @constraint(model, [i in 1:n], input.constraints[i].a' * x <= input.constraints[i].b) -# @objective(model, Min, map' * [x; [1]]) -# optimize!(model) -# return objective_value(model) -# end From 56007cd9a7c1ac5959e3f17f47d926da8c6994fd Mon Sep 17 00:00:00 2001 From: changliu Date: Sun, 2 Aug 2020 10:16:17 -0400 Subject: [PATCH 40/66] bring in get_activation commits --- src/adversarial/neurify.jl | 10 ++---- src/optimization/convDual.jl | 59 +++++++++++++++++------------------- src/utils/util.jl | 21 ++++++++++++- 3 files changed, 50 insertions(+), 40 deletions(-) diff --git a/src/adversarial/neurify.jl b/src/adversarial/neurify.jl index fae169f1..7a1364c9 100644 --- a/src/adversarial/neurify.jl +++ b/src/adversarial/neurify.jl @@ -245,11 +245,7 @@ function forward_linear(solver::Neurify, input::SymbolicIntervalGradient, layer: sym = SymbolicInterval(output_Low, output_Up, input.sym.interval) return SymbolicIntervalGradient(sym, input.LΛ, input.UΛ, input.r) end -function calc_slop(up::Float64, low::Float64) - (up <= 0) && return 0 - (low >= 0) && return 1 - return up / (up - low) -end + # Symbolic forward_act function forward_act(input::SymbolicIntervalGradient, layer::Layer{ReLU}) n_node, n_input = size(input.sym.Up) @@ -265,8 +261,8 @@ function forward_act(input::SymbolicIntervalGradient, layer::Layer{ReLU}) interval_width[i] = up_up - low_low - up_slop = calc_slop(up_up, up_low) - low_slop = calc_slop(low_up, low_low) + up_slop = act_gradient(up_low, up_up) + low_slop = act_gradient(low_low, low_up) output_Up[i, :] = up_slop * output_Up[i, :] output_Up[i, end] += up_slop * max(-up_low, 0) diff --git a/src/optimization/convDual.jl b/src/optimization/convDual.jl index 0c85bacf..bb0f1dff 100644 --- a/src/optimization/convDual.jl +++ b/src/optimization/convDual.jl @@ -63,7 +63,7 @@ modifies v and returns o function backprop!(v::Vector{Float64}, u::Vector{Float64}, l::Vector{Float64}) o = 0.0 for j in 1:length(v) - val = relaxed_ReLU(l[j], u[j]) + val = act_gradient(l[j], u[j]) if val < 1.0 # if val is 1, it means ReLU result is identity so do not update (NOTE is that the right reasoning?) v[j] = v[j] * val o += v[j] * l[j] @@ -76,43 +76,45 @@ end # This step is similar to reachability method function get_bounds(nnet::Network, input::Vector{Float64}, ϵ::Float64) layers = nnet.layers - n_layer = length(layers) - l = Vector{Vector{Float64}}() - u = Vector{Vector{Float64}}() - γ = Vector{Vector{Float64}}() - μ = Vector{Vector{Vector{Float64}}}() + l = Vector{Vector{Float64}}() # Lower bound + u = Vector{Vector{Float64}}() # Upper bound + b = Vector{Vector{Float64}}() # bias + μ = Vector{Vector{Vector{Float64}}}() # Dual variables + input_ReLU = Vector{Vector{Float64}}() v1 = layers[1].weights' - push!(γ, layers[1].bias) + push!(b, layers[1].bias) # Bounds for the first layer l1, u1 = input_layer_bounds(layers[1], input, ϵ) push!(l, l1) push!(u, u1) - for i in 2:n_layer + for i in 2:length(layers) n_input = length(layers[i-1].bias) n_output = length(layers[i].bias) - input_ReLU = relaxed_ReLU.(last(l), last(u)) - D = Diagonal(input_ReLU) # a matrix whose diagonal values are the relaxed_ReLU values (maybe should be sparse?) + last_input_ReLU = act_gradient.(last(l), last(u)) + push!(input_ReLU, last_input_ReLU) + D = Diagonal(last_input_ReLU) # a matrix whose diagonal values are the relaxed_ReLU values (maybe should be sparse?) - # Propagate existing terms + # Propagate existing terms by right multiplication of D*W' or left multiplication of W*D WD = layers[i].weights*D - v1 = v1 * WD' # TODO CHECK - map!(g -> WD*g, γ, γ) - for M in μ - map!(m -> WD*m, M, M) + v1 = v1 * WD' # propagate V_1^{i-1} to V_1^{i} + map!(g -> WD*g, b, b) # propagate bias + for V in μ + map!(m -> WD*m, V, V) # Updating ν_j for all previous layers end + # New terms - push!(γ, layers[i].bias) - push!(μ, new_μ(n_input, n_output, input_ReLU, WD)) + push!(b, layers[i].bias) + push!(μ, new_μ(n_input, n_output, last_input_ReLU, WD)) # Compute bounds - ψ = v1' * input + sum(γ) + ψ = v1' * input + sum(b) eps_v1_sum = ϵ * vec(sum(abs, v1, dims = 1)) - neg, pos = all_neg_pos_sums(input_ReLU, l, μ, n_output) - push!(l, ψ - eps_v1_sum + neg ) + neg, pos = residual(input_ReLU, l, μ, n_output) + push!(l, ψ - eps_v1_sum - neg ) push!(u, ψ + eps_v1_sum - pos ) end @@ -120,17 +122,17 @@ function get_bounds(nnet::Network, input::Vector{Float64}, ϵ::Float64) end # TODO rename function and inputs -function all_neg_pos_sums(slopes, l, μ, n_output) +function residual(slopes, l, μ, n_output) # n_output = length(last(l)) neg = zeros(n_output) pos = zeros(n_output) # Need to debug for (i, ℓ) in enumerate(l) # ℓ::Vector{Float64} - for (j, M) in enumerate(μ[i]) # M::Vector{Float64} - if 0 < slopes[j] < 1 # if in the triangle region of relaxed ReLU + for (j, V) in enumerate(μ[i]) # M::Vector{Float64} + if 0 < slopes[i][j] < 1 # if in the triangle region of relaxed ReLU #posind = M .> 0 - neg .+= ℓ[j] * min.(M, 0) #-M .* !posind # multiply by boolean to set the undesired values to 0.0 - pos .+= ℓ[j] * max.(M, 0) #M .* posind + neg .+= ℓ[j] * min.(V, 0) #-M .* !posind # multiply by boolean to set the undesired values to 0.0 + pos .+= ℓ[j] * max.(V, 0) #M .* posind end end end @@ -148,7 +150,6 @@ function input_layer_bounds(input_layer, input, ϵ) return l, u end - function new_μ(n_input, n_output, input_ReLU, WD) sub_μ = Vector{Vector{Float64}}(undef, n_input) for j in 1:n_input @@ -160,9 +161,3 @@ function new_μ(n_input, n_output, input_ReLU, WD) end return sub_μ end - -function relaxed_ReLU(l::Float64, u::Float64) - u <= 0.0 && return 0.0 - l >= 0.0 && return 1.0 - return u / (u - l) -end diff --git a/src/utils/util.jl b/src/utils/util.jl index f1525834..8a904907 100644 --- a/src/utils/util.jl +++ b/src/utils/util.jl @@ -229,6 +229,25 @@ Currently only support ReLU and Id. act_gradient(act::ReLU, z_hat::Vector) = z_hat .>= 0.0 act_gradient(act::Id, z_hat::Vector) = trues(length(z_hat)) +""" + act_gradient(act::ReLU, l::Float64, u::Float64) + +Returns the slope of a ReLU activation based on its lower and upper bounds + +Inputs: +- `l::Float64`: lower bound +- `u::Float64`: upper bound +Return: +- `slop::Float64`: 0 if u<0; 1 if l>0; u/(u-l) otherwise +""" +function act_gradient(act::ReLU, l::Float64, u::Float64) + u <= 0.0 && return 0.0 + l >= 0.0 && return 1.0 + return u / (u - l) +end + +act_gradient(l::Float64, u::Float64) = act_gradient(ReLU(), l, u) + """ get_gradient(nnet::Network, input::AbstractPolytope) @@ -417,4 +436,4 @@ function split_interval(dom::Hyperrectangle, i::Int64) input_upper[i] = dom.center[i] + dom.radius[i] input_split_right = Hyperrectangle(low = input_lower, high = input_upper) return (input_split_left, input_split_right) -end +end \ No newline at end of file From c79241ac6e6878794d335f2ee3c1680b32d531a8 Mon Sep 17 00:00:00 2001 From: tomer arnon Date: Tue, 11 Aug 2020 22:10:50 +0300 Subject: [PATCH 41/66] simplify smear --- src/adversarial/reluVal.jl | 23 +++++++++-------------- 1 file changed, 9 insertions(+), 14 deletions(-) diff --git a/src/adversarial/reluVal.jl b/src/adversarial/reluVal.jl index a1e8dad6..194e3721 100644 --- a/src/adversarial/reluVal.jl +++ b/src/adversarial/reluVal.jl @@ -59,7 +59,7 @@ end function interval_refinement(nnet::Network, reach::SymbolicIntervalMask) LG, UG = get_gradient(nnet, reach.LΛ, reach.UΛ) - feature, monotone = get_smear_index(nnet, reach.sym.interval, LG, UG) #monotonicity not used in this implementation. + feature, monotone = get_max_smear_index(nnet, reach.sym.interval, LG, UG) #monotonicity not used in this implementation. return split_interval(reach.sym.interval, feature) end @@ -156,19 +156,14 @@ function forward_act(input::SymbolicIntervalMask, layer::Layer{Id}) end # Return the splited intervals -function get_smear_index(nnet::Network, input::Hyperrectangle, LG::Matrix, UG::Matrix) - largest_smear = - Inf - feature = 0 - r = input.radius - for i in 1:dim(input) - smear = sum(max.(abs.(UG[:, i]), abs.(LG[:, i]))) * r[i] - if smear > largest_smear - largest_smear = smear - feature = i - end - end - monotone = all((LG[:, feature] .* UG[:, feature]) .> 0) - return feature, monotone +function get_max_smear_index(nnet::Network, input::Hyperrectangle, LG::Matrix, UG::Matrix) + + smear(lg, ug, r) = sum(max.(abs.(lg), abs.(ug))) * r + + ind = argmax(smear.(eachcol(LG), eachcol(UG), input.radius)) + monotone = all(>(0), LG[:, ind] .* UG[:, ind]) # NOTE should it be >= 0 instead? + + return ind, monotone end function _bound(map::AbstractVector, input::Hyperrectangle, which_bound::Symbol) From 08dc94617721061d7cbd8f97e71a0b1860c603d8 Mon Sep 17 00:00:00 2001 From: tomer arnon Date: Fri, 14 Aug 2020 23:48:30 +0300 Subject: [PATCH 42/66] rename get_gradient to get_gradient_bounds --- src/adversarial/reluVal.jl | 2 +- src/utils/util.jl | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/adversarial/reluVal.jl b/src/adversarial/reluVal.jl index 194e3721..786061d7 100644 --- a/src/adversarial/reluVal.jl +++ b/src/adversarial/reluVal.jl @@ -58,7 +58,7 @@ function solve(solver::ReluVal, problem::Problem) end function interval_refinement(nnet::Network, reach::SymbolicIntervalMask) - LG, UG = get_gradient(nnet, reach.LΛ, reach.UΛ) + LG, UG = get_gradient_bounds(nnet, reach.LΛ, reach.UΛ) feature, monotone = get_max_smear_index(nnet, reach.sym.interval, LG, UG) #monotonicity not used in this implementation. return split_interval(reach.sym.interval, feature) end diff --git a/src/utils/util.jl b/src/utils/util.jl index 96807b6c..aa327e48 100644 --- a/src/utils/util.jl +++ b/src/utils/util.jl @@ -287,7 +287,7 @@ function act_gradient_bounds(nnet::Network, input::AbstractPolytope) end """ - get_gradient(nnet::Network, LΛ::Vector{Matrix}, UΛ::Vector{Matrix}) + get_gradient_bounds(nnet::Network, LΛ::Vector{Matrix}, UΛ::Vector{Matrix}) Get lower and upper bounds on network gradient for given gradient bounds on activations Inputs: @@ -297,7 +297,7 @@ Return: - `LG::Vector{Matrix}`: lower bounds - `UG::Vector{Matrix}`: upper bounds """ -function get_gradient(nnet::Network, LΛ::Vector{Matrix}, UΛ::Vector{Matrix}) +function get_gradient_bounds(nnet::Network, LΛ::Vector{Matrix}, UΛ::Vector{Matrix}) n_input = size(nnet.layers[1].weights, 2) LG = Matrix(1.0I, n_input, n_input) UG = Matrix(1.0I, n_input, n_input) @@ -310,7 +310,7 @@ function get_gradient(nnet::Network, LΛ::Vector{Matrix}, UΛ::Vector{Matrix}) end """ - get_gradient(nnet::Network, LΛ::Vector{Vector{N}}, UΛ::Vector{Vector{N}}) where N + get_gradient_bounds(nnet::Network, LΛ::Vector{Vector{N}}, UΛ::Vector{Vector{N}}) where N Get lower and upper bounds on network gradient for given gradient bounds on activations Inputs: @@ -319,7 +319,7 @@ Inputs: Return: - `(LG, UG)` lower and upper bounds """ -function get_gradient(nnet::Network, LΛ::Vector{Vector{N}}, UΛ::Vector{Vector{N}}) where N +function get_gradient_bounds(nnet::Network, LΛ::Vector{Vector{N}}, UΛ::Vector{Vector{N}}) where N n_input = size(nnet.layers[1].weights, 2) LG = Matrix(1.0I, n_input, n_input) UG = Matrix(1.0I, n_input, n_input) From fae66f4f6df9ac27301673e080cf6a985af4711f Mon Sep 17 00:00:00 2001 From: tomer arnon Date: Sat, 15 Aug 2020 16:30:36 +0300 Subject: [PATCH 43/66] rename and simplify bounds-related util functions --- src/adversarial/fastLip.jl | 2 +- src/utils/util.jl | 67 +++++++++++++------------------------- 2 files changed, 23 insertions(+), 46 deletions(-) diff --git a/src/adversarial/fastLip.jl b/src/adversarial/fastLip.jl index 447a0081..30e3ad9d 100644 --- a/src/adversarial/fastLip.jl +++ b/src/adversarial/fastLip.jl @@ -44,7 +44,7 @@ function solve(solver::FastLip, problem::Problem) result = solve(FastLin(solver), problem) result.status == :violated && return result ϵ_fastLin = result.max_disturbance - LG, UG = get_gradient(problem.network, problem.input) + LG, UG = get_gradient_bounds(problem.network, problem.input) # C = problem.network.layers[1].weights # L = zeros(size(C)) diff --git a/src/utils/util.jl b/src/utils/util.jl index aa327e48..1ab3ab00 100644 --- a/src/utils/util.jl +++ b/src/utils/util.jl @@ -238,7 +238,7 @@ Inputs: - `l::Float64`: lower bound - `u::Float64`: upper bound Return: -- `slop::Float64`: 0 if u<0; 1 if l>0; u/(u-l) otherwise +- 0 if u<0; 1 if l>0; u/(u-l) otherwise """ function act_gradient(act::ReLU, l::Float64, u::Float64) u <= 0.0 && return 0.0 @@ -249,17 +249,19 @@ end act_gradient(l::Float64, u::Float64) = act_gradient(ReLU(), l, u) """ - get_gradient(nnet::Network, input::AbstractPolytope) + get_gradient_bounds(nnet::Network, input::AbstractPolytope) Get lower and upper bounds on network gradient for a given input set. Return: - `LG::Vector{Matrix}`: lower bounds - `UG::Vector{Matrix}`: upper bounds """ -function get_gradient(nnet::Network, input::AbstractPolytope) +function get_gradient_bounds(nnet::Network, input::AbstractPolytope) LΛ, UΛ = act_gradient_bounds(nnet, input) - return get_gradient(nnet, LΛ, UΛ) + return get_gradient_bounds(nnet, LΛ, UΛ) end +get_gradient_bounds(problem::Problem, args...) = get_gradient_bounds(problem.network, problem.input, args...) + """ act_gradient_bounds(nnet::Network, input::AbstractPolytope) @@ -271,46 +273,23 @@ Return: - `UΛ::Vector{Matrix}`: upper bounds """ function act_gradient_bounds(nnet::Network, input::AbstractPolytope) - bounds = get_bounds(nnet, input) - LΛ = Vector{Matrix}(undef, 0) - UΛ = Vector{Matrix}(undef, 0) - for (i, layer) in enumerate(nnet.layers) - before_act_bound = approximate_affine_map(layer, bounds[i]) - lower = low(before_act_bound) - upper = high(before_act_bound) - l = act_gradient(layer.activation, lower) - u = act_gradient(layer.activation, upper) - push!(LΛ, Diagonal(l)) - push!(UΛ, Diagonal(u)) - end - return (LΛ, UΛ) -end + # get the pre-activation bounds, and get rid of the input set + bounds = get_bounds(nnet, input, false) + popfirst!(bounds) -""" - get_gradient_bounds(nnet::Network, LΛ::Vector{Matrix}, UΛ::Vector{Matrix}) - -Get lower and upper bounds on network gradient for given gradient bounds on activations -Inputs: -- `LΛ::Vector{Matrix}`: lower bounds on activation gradients -- `UΛ::Vector{Matrix}`: upper bounds on activation gradients -Return: -- `LG::Vector{Matrix}`: lower bounds -- `UG::Vector{Matrix}`: upper bounds -""" -function get_gradient_bounds(nnet::Network, LΛ::Vector{Matrix}, UΛ::Vector{Matrix}) - n_input = size(nnet.layers[1].weights, 2) - LG = Matrix(1.0I, n_input, n_input) - UG = Matrix(1.0I, n_input, n_input) + LΛ = Vector{BitVector}(undef, 0) + UΛ = Vector{BitVector}(undef, 0) for (i, layer) in enumerate(nnet.layers) - LG_hat, UG_hat = interval_map(layer.weights, LG, UG) - LG = LΛ[i] * max.(LG_hat, 0) + UΛ[i] * min.(LG_hat, 0) - UG = LΛ[i] * min.(UG_hat, 0) + UΛ[i] * max.(UG_hat, 0) + l = act_gradient(layer.activation, low(bounds[i])) + u = act_gradient(layer.activation, high(bounds[i])) + push!(LΛ, l) + push!(UΛ, u) end - return (LG, UG) + return (LΛ, UΛ) end """ - get_gradient_bounds(nnet::Network, LΛ::Vector{Vector{N}}, UΛ::Vector{Vector{N}}) where N + get_gradient_bounds(nnet::Network, LΛ::Vector{AbstractVector}, UΛ::Vector{AbstractVector}) Get lower and upper bounds on network gradient for given gradient bounds on activations Inputs: @@ -319,7 +298,7 @@ Inputs: Return: - `(LG, UG)` lower and upper bounds """ -function get_gradient_bounds(nnet::Network, LΛ::Vector{Vector{N}}, UΛ::Vector{Vector{N}}) where N +function get_gradient_bounds(nnet::Network, LΛ::Vector{<:AbstractVector}, UΛ::Vector{<:AbstractVector}) n_input = size(nnet.layers[1].weights, 2) LG = Matrix(1.0I, n_input, n_input) UG = Matrix(1.0I, n_input, n_input) @@ -332,13 +311,11 @@ function get_gradient_bounds(nnet::Network, LΛ::Vector{Vector{N}}, UΛ::Vector{ end """ - interval_map(W::Matrix, l, u) + interval_map(W::Matrix, l::AbstractVecOrMat, u::AbstractVecOrMat) + +Simple linear mapping on intervals. +`L, U := ([W]₊*l + [W]₋*u), ([W]₊*u + [W]₋*l)` -Simple linear mapping on intervals -Inputs: -- `W::Matrix{N}`: linear mapping (left) -- `l::Vector{N}`: lower bound -- `u::Vector{N}`: upper bound Outputs: - `(lbound, ubound)` (after the mapping) """ From b868705d917eb2eac2bf1ddb4adb991298aab97e Mon Sep 17 00:00:00 2001 From: tomer arnon Date: Sat, 15 Aug 2020 18:33:53 +0300 Subject: [PATCH 44/66] generalize forward_network --- src/reachability/utils/reachability.jl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/reachability/utils/reachability.jl b/src/reachability/utils/reachability.jl index e3ae3622..a88b40d2 100644 --- a/src/reachability/utils/reachability.jl +++ b/src/reachability/utils/reachability.jl @@ -3,7 +3,7 @@ # Performs layer-by-layer propagation # It is called by all solvers under reachability # TODO: also called by ReluVal and FastLin, so move to general utils (or to network.jl) -function forward_network(solver, nnet::Network, input::AbstractPolytope) +function forward_network(solver, nnet::Network, input) reach = input for layer in nnet.layers reach = forward_layer(solver, layer, reach) From dabee9f34d5cbf0960cd3c3b2517b8eb5b323012 Mon Sep 17 00:00:00 2001 From: tomer arnon Date: Sun, 16 Aug 2020 01:03:08 +0300 Subject: [PATCH 45/66] edit reluval --- src/adversarial/reluVal.jl | 133 ++++++++++++++++++++++--------------- 1 file changed, 79 insertions(+), 54 deletions(-) diff --git a/src/adversarial/reluVal.jl b/src/adversarial/reluVal.jl index 786061d7..a4693529 100644 --- a/src/adversarial/reluVal.jl +++ b/src/adversarial/reluVal.jl @@ -34,40 +34,63 @@ end # Data to be passed during forward_layer struct SymbolicIntervalMask sym::SymbolicInterval - LΛ::Vector{Vector{Int64}} - UΛ::Vector{Vector{Int64}} + LΛ::Vector{Vector{Bool}} + UΛ::Vector{Vector{Bool}} +end + +function init_symbolic_mask(interval) + n = dim(interval) + I = Matrix{Float64}(LinearAlgebra.I(n)) + Z = zeros(n) + symbolic_input = SymbolicInterval([I Z], [I Z], interval) + symbolic_mask = SymbolicIntervalMask(symbolic_input, + Vector{Vector{Bool}}(), + Vector{Vector{Bool}}()) end function solve(solver::ReluVal, problem::Problem) - reach = forward_network(solver, problem.network, problem.input) + + reach = forward_network(solver, problem.network, init_symbolic_mask(problem.input)) result = check_inclusion(reach.sym, problem.output, problem.network) - result.status == :unknown || return result - reach_list = SymbolicIntervalMask[reach] + result.status === :unknown || return result + + reach_list = [reach] + for i in 2:solver.max_iter - length(reach_list) > 0 || return BasicResult(:holds) - reach = pick_out!(reach_list, solver.tree_search) - intervals = interval_refinement(problem.network, reach) + + isempty(reach_list) && return BasicResult(:holds) + + reach = select!(reach_list, solver.tree_search) + + intervals = bisect_interval_by_max_smear(problem.network, reach) + for interval in intervals - reach = forward_network(solver, problem.network, interval) + reach = forward_network(solver, problem.network, init_symbolic_mask(interval)) result = check_inclusion(reach.sym, problem.output, problem.network) - result.status == :violated && return result - result.status == :holds || (push!(reach_list, reach)) + + if result === :violated + return result + elseif result === :unknown + push!(reach_list, reach) + end end end return BasicResult(:unknown) end -function interval_refinement(nnet::Network, reach::SymbolicIntervalMask) +function bisect_interval_by_max_smear(nnet::Network, reach::SymbolicIntervalMask) LG, UG = get_gradient_bounds(nnet, reach.LΛ, reach.UΛ) feature, monotone = get_max_smear_index(nnet, reach.sym.interval, LG, UG) #monotonicity not used in this implementation. return split_interval(reach.sym.interval, feature) end -function pick_out!(reach_list, tree_search) +function select!(reach_list, tree_search) if tree_search == :BFS reach = popfirst!(reach_list) - else + elseif tree_search == :DFS reach = pop!(reach_list) + else + throw(ArgumentError(":$tree_search is not a valid tree search strategy")) end return reach end @@ -75,11 +98,10 @@ end function symbol_to_concrete(reach::SymbolicInterval{<:Hyperrectangle}) lower = [lower_bound(l, reach.interval) for l in eachrow(reach.Low)] upper = [upper_bound(u, reach.interval) for u in eachrow(reach.Up)] - return Hyperrectangle(low = lower, high = upper) end -function check_inclusion(reach::SymbolicInterval{<:Hyperrectangle}, output::AbstractPolytope, nnet::Network) +function check_inclusion(reach::SymbolicInterval{<:Hyperrectangle}, output, nnet::Network) reachable = symbol_to_concrete(reach) issubset(reachable, output) && return BasicResult(:holds) @@ -93,23 +115,13 @@ function check_inclusion(reach::SymbolicInterval{<:Hyperrectangle}, output::Abst end function forward_layer(solver::ReluVal, layer::Layer, input) - return forward_act(forward_linear(input, layer), layer) -end - -# Symbolic forward_linear for the first layer -function forward_linear(input::Hyperrectangle, layer::Layer) - (W, b) = (layer.weights, layer.bias) - sym = SymbolicInterval(hcat(W, b), hcat(W, b), input) - LΛ = Vector{Vector{Int64}}(undef, 0) - UΛ = Vector{Vector{Int64}}(undef, 0) - return SymbolicIntervalMask(sym, LΛ, UΛ) + return forward_act(solver, forward_linear(input, layer), layer) end # Symbolic forward_linear function forward_linear(input::SymbolicIntervalMask, layer::Layer) (W, b) = (layer.weights, layer.bias) - output_Up = max.(W, 0) * input.sym.Up + min.(W, 0) * input.sym.Low - output_Low = max.(W, 0) * input.sym.Low + min.(W, 0) * input.sym.Up + output_Low, output_Up = interval_map(W, input.sym.Low, input.sym.Up) output_Up[:, end] += b output_Low[:, end] += b sym = SymbolicInterval(output_Low, output_Up, input.sym.interval) @@ -117,45 +129,58 @@ function forward_linear(input::SymbolicIntervalMask, layer::Layer) end # Symbolic forward_act -function forward_act(input::SymbolicIntervalMask, layer::Layer{ReLU}) - n_node, n_input = size(input.sym.Up) - output_Low, output_Up = input.sym.Low[:, :], input.sym.Up[:, :] - mask_lower, mask_upper = zeros(Int, n_node), ones(Int, n_node) - for i in 1:n_node - if upper_bound(input.sym.Up[i, :], input.sym.interval) <= 0.0 - # Update to zero - mask_lower[i], mask_upper[i] = 0, 0 - output_Up[i, :] = zeros(n_input) - output_Low[i, :] = zeros(n_input) - elseif lower_bound(input.sym.Low[i, :], input.sym.interval) >= 0 - # Keep dependency - mask_lower[i], mask_upper[i] = 1, 1 +function forward_act(::ReluVal, input::SymbolicIntervalMask, layer::Layer{ReLU}) + + interval = input.sym.interval + Low, Up = input.sym.Low, input.sym.Up + + n_node, n_input = size(Up) + output_Low, output_Up = copy(Low), copy(Up) + LΛᵢ, UΛᵢ = falses(n_node), trues(n_node) + + for j in 1:n_node + # Loop-local variable bindings for notational convenience. + # These are direct views into the rows of the parent arrays. + lowᵢⱼ, upᵢⱼ, out_lowᵢⱼ, out_upᵢⱼ = @views Low[j, :], Up[j, :], output_Low[j, :], output_Up[j, :] + + # If the upper bound is negative, set the gradient mask to 0 + # and zero out future layer dependency + if upper_bound(upᵢⱼ, interval) <= 0 + LΛᵢ[j], UΛᵢ[j] = 0, 0 + out_lowᵢⱼ .= 0 + out_upᵢⱼ .= 0 + + # If the lower bound is positive, the gradient mask should be 1 + elseif lower_bound(lowᵢⱼ, interval) >= 0 + LΛᵢ[j], UΛᵢ[j] = 1, 1 + + # if the activation bounds overlap 0, concretize by setting + # the generators to 0, except the bias term. else - # Concretization - mask_lower[i], mask_upper[i] = 0, 1 - output_Low[i, :] = zeros(n_input) - if lower_bound(input.sym.Up[i, :], input.sym.interval) < 0 - output_Up[i, :] = zeros(n_input) - output_Up[i, end] = upper_bound(input.sym.Up[i, :], input.sym.interval) + LΛᵢ[j], UΛᵢ[j] = 0, 1 + out_lowᵢⱼ .= 0 + if lower_bound(upᵢⱼ, interval) < 0 + out_upᵢⱼ .= 0 + out_upᵢⱼ[end] = upper_bound(upᵢⱼ, interval) end end end - sym = SymbolicInterval(output_Low, output_Up, input.sym.interval) - LΛ = push!(input.LΛ, mask_lower) - UΛ = push!(input.UΛ, mask_upper) + + sym = SymbolicInterval(output_Low, output_Up, interval) + LΛ = push!(copy(input.LΛ), LΛᵢ) + UΛ = push!(copy(input.UΛ), UΛᵢ) return SymbolicIntervalMask(sym, LΛ, UΛ) end # Symbolic forward_act -function forward_act(input::SymbolicIntervalMask, layer::Layer{Id}) +function forward_act(::ReluVal, input::SymbolicIntervalMask, layer::Layer{Id}) sym = input.sym n_node = size(input.sym.Up, 1) - LΛ = push!(input.LΛ, ones(Int, n_node)) - UΛ = push!(input.UΛ, ones(Int, n_node)) + LΛ = push!(input.LΛ, trues(n_node)) + UΛ = push!(input.UΛ, trues(n_node)) return SymbolicIntervalMask(sym, LΛ, UΛ) end -# Return the splited intervals function get_max_smear_index(nnet::Network, input::Hyperrectangle, LG::Matrix, UG::Matrix) smear(lg, ug, r) = sum(max.(abs.(lg), abs.(ug))) * r From 53afb1695c813246748f2c51fd15c642532eaf3c Mon Sep 17 00:00:00 2001 From: tomer arnon Date: Sun, 16 Aug 2020 19:23:25 +0300 Subject: [PATCH 46/66] bug fix result.status and use lazysets support function for bounds --- src/adversarial/reluVal.jl | 20 +++++--------------- 1 file changed, 5 insertions(+), 15 deletions(-) diff --git a/src/adversarial/reluVal.jl b/src/adversarial/reluVal.jl index a4693529..6db9ee79 100644 --- a/src/adversarial/reluVal.jl +++ b/src/adversarial/reluVal.jl @@ -68,9 +68,9 @@ function solve(solver::ReluVal, problem::Problem) reach = forward_network(solver, problem.network, init_symbolic_mask(interval)) result = check_inclusion(reach.sym, problem.output, problem.network) - if result === :violated + if result.status === :violated return result - elseif result === :unknown + elseif result.status === :unknown push!(reach_list, reach) end end @@ -191,22 +191,12 @@ function get_max_smear_index(nnet::Network, input::Hyperrectangle, LG::Matrix, U return ind, monotone end -function _bound(map::AbstractVector, input::Hyperrectangle, which_bound::Symbol) - a, b = map[1:end-1], map[end] +upper_bound(v, domain) = ρ(v[1:end-1], domain) + v[end] +lower_bound(v, domain) = -ρ(-v[1:end-1], domain) + v[end] +bounds(v, domain) = (lower_bound(v, domain), upper_bound(v, domain)) - if which_bound === :lower - bound = max.(a, 0)' * low(input) + - min.(a, 0)' * high(input) + b - elseif which_bound === :upper - bound = max.(a, 0)' * high(input) + - min.(a, 0)' * low(input) + b - end - return bound -end -upper_bound(map, input) = _bound(map, input, :upper) -lower_bound(map, input) = _bound(map, input, :lower) # Concrete forward_linear From 86e60f2b38eaef3f28c453c0b17b320e7b341ef4 Mon Sep 17 00:00:00 2001 From: tomer arnon Date: Sun, 16 Aug 2020 23:04:30 +0300 Subject: [PATCH 47/66] simplify get_gradient_bounds docstring and methods --- src/utils/util.jl | 31 +++++++++---------------------- 1 file changed, 9 insertions(+), 22 deletions(-) diff --git a/src/utils/util.jl b/src/utils/util.jl index 1ab3ab00..5e2db647 100644 --- a/src/utils/util.jl +++ b/src/utils/util.jl @@ -248,29 +248,14 @@ end act_gradient(l::Float64, u::Float64) = act_gradient(ReLU(), l, u) -""" - get_gradient_bounds(nnet::Network, input::AbstractPolytope) - -Get lower and upper bounds on network gradient for a given input set. -Return: -- `LG::Vector{Matrix}`: lower bounds -- `UG::Vector{Matrix}`: upper bounds -""" -function get_gradient_bounds(nnet::Network, input::AbstractPolytope) - LΛ, UΛ = act_gradient_bounds(nnet, input) - return get_gradient_bounds(nnet, LΛ, UΛ) -end -get_gradient_bounds(problem::Problem, args...) = get_gradient_bounds(problem.network, problem.input, args...) - """ act_gradient_bounds(nnet::Network, input::AbstractPolytope) -Computing the bounds on the gradient of all activation functions given an input set. +Compute the bounds on the gradient of all activation functions given an input set. Currently only support ReLU. Return: -- `LΛ::Vector{Matrix}`: lower bounds -- `UΛ::Vector{Matrix}`: upper bounds +- `LΛ, UΛ::NTuple{2, Vector{BitVector}}`: lower and upper bounds on activation """ function act_gradient_bounds(nnet::Network, input::AbstractPolytope) # get the pre-activation bounds, and get rid of the input set @@ -290,14 +275,16 @@ end """ get_gradient_bounds(nnet::Network, LΛ::Vector{AbstractVector}, UΛ::Vector{AbstractVector}) + get_gradient_bounds(nnet::Network, input::AbstractPolytope) -Get lower and upper bounds on network gradient for given gradient bounds on activations -Inputs: -- `LΛ::Vector{Vector{N}}`: lower bounds on activation gradients -- `UΛ::Vector{Vector{N}}`: upper bounds on activation gradients +Get lower and upper bounds on network gradient for given gradient bounds on activations, or given an input set. Return: -- `(LG, UG)` lower and upper bounds +- `(LG, UG)::NTuple{2, Matrix{Float64}` lower and upper bounds. """ +function get_gradient_bounds(nnet::Network, input::AbstractPolytope) + LΛ, UΛ = act_gradient_bounds(nnet, input) + return get_gradient_bounds(nnet, LΛ, UΛ) +end function get_gradient_bounds(nnet::Network, LΛ::Vector{<:AbstractVector}, UΛ::Vector{<:AbstractVector}) n_input = size(nnet.layers[1].weights, 2) LG = Matrix(1.0I, n_input, n_input) From 5a6450990766fff103a9216b041ef5b3fbb9a3ec Mon Sep 17 00:00:00 2001 From: tomer arnon Date: Sun, 16 Aug 2020 23:06:49 +0300 Subject: [PATCH 48/66] remove unecessary file --- test/MNIST_1000_data.jld2 | Bin 797444 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 test/MNIST_1000_data.jld2 diff --git a/test/MNIST_1000_data.jld2 b/test/MNIST_1000_data.jld2 deleted file mode 100644 index d98063548f954024a979c07b46beddcb63f259b0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 797444 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∋fVu~saf89<9OG{g+fgK1_auptCX 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 From f727d60ec3be94d0730afca340f75b32e5c9b1ec Mon Sep 17 00:00:00 2001 From: tomer arnon Date: Sun, 16 Aug 2020 23:11:19 +0300 Subject: [PATCH 49/66] update mnist test file --- test/mnist_1000.jl | 48 ++++++++++++++++------------------------------ 1 file changed, 17 insertions(+), 31 deletions(-) diff --git a/test/mnist_1000.jl b/test/mnist_1000.jl index 5971115d..8f834f48 100644 --- a/test/mnist_1000.jl +++ b/test/mnist_1000.jl @@ -1,4 +1,4 @@ -using LazySets, Test, LinearAlgebra, GLPKMathProgInterface +using LazySets, Test, LinearAlgebra using NeuralVerification import NeuralVerification: ReLU, Id using JLD2 @@ -16,15 +16,9 @@ function test_solver(solver, test_selected) test_idx = 1:1000 end - # @load "MNIST_1000_data.jld2" train_x train_y - # net_file = "$(@__DIR__)/../examples/networks/mnist_1000.nnet" - # mnist_net = read_nnet(net_file, last_layer_activation = Id()) - # @save "MNIST_1000.jld2" train_x train_y mnist_net - @load "MNIST_1000.jld2" train_x train_y mnist_net - + for i = test_idx - # println(i) input_center = reshape(train_x[:,:,i], 28*28) label = train_y[i] A = zeros(Float64, 10, 10) @@ -36,7 +30,7 @@ function test_solver(solver, test_selected) Y = HPolytope(A, b) pred = argmax(NeuralVerification.compute_output(mnist_net, input_center))-1 - + if pred != label continue end @@ -47,41 +41,33 @@ function test_solver(solver, test_selected) clamp!(upper, 0.0, 1.0) clamp!(lower, 0.0, 1.0) X = Hyperrectangle(low=lower, high=upper) - + problem_mnist = Problem(mnist_net, X, Y) result = solve(solver, problem_mnist) - - if result.status == :violated + + if result.status == :violated @test i ∈ violation_idx noisy = argmax(NeuralVerification.compute_output(mnist_net, result.counter_example))-1 @test noisy != pred elseif result.status == :holds @test !(i ∈ violation_idx) - else #result.status == :unknown - end end end -# if test_selected = true, only test selected index. Otherwise, test all 1000 images. -test_selected = true +let + # if test_selected = true, only test selected index. Otherwise, test all 1000 images. + test_selected = true + testname = join(["MNIST ", (test_selected ? "selected" : "1000")]) -# Please note the number of tests maybe different for different solvers. -# Because the test cases depends on the result. - -if test_selected - @testset "MNIST selected, ReluVal" begin - test_solver(ReluVal(), test_selected) - end - @testset "MNIST selected, Neurify" begin - test_solver(Neurify(), test_selected) + # NOTE the number of tests maybe different for different solvers. + # Because the test cases depends on the result. + @testset "$testname, ReluVal" begin + test_solver(ReluVal(max_iter = 10), test_selected) end -else - @testset "MNIST 1000, ReluVal" begin - test_solver(ReluVal(), test_selected) - end - @testset "MNIST 1000, Neurify" begin - test_solver(Neurify(), test_selected) + @testset "$testname, Neurify" begin + test_solver(Neurify(max_iter = 10), test_selected) end + end \ No newline at end of file From c32a99dc92b751ef8b37d6803e474ee93c8940e8 Mon Sep 17 00:00:00 2001 From: tomer arnon Date: Mon, 17 Aug 2020 00:19:31 +0300 Subject: [PATCH 50/66] consolidate main loop --- src/adversarial/reluVal.jl | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/src/adversarial/reluVal.jl b/src/adversarial/reluVal.jl index 6db9ee79..9b4cc7fa 100644 --- a/src/adversarial/reluVal.jl +++ b/src/adversarial/reluVal.jl @@ -49,20 +49,18 @@ function init_symbolic_mask(interval) end function solve(solver::ReluVal, problem::Problem) - - reach = forward_network(solver, problem.network, init_symbolic_mask(problem.input)) - result = check_inclusion(reach.sym, problem.output, problem.network) - result.status === :unknown || return result - - reach_list = [reach] - - for i in 2:solver.max_iter + reach_list = [init_symbolic_mask(problem.input)] + for i in 1:solver.max_iter isempty(reach_list) && return BasicResult(:holds) reach = select!(reach_list, solver.tree_search) - intervals = bisect_interval_by_max_smear(problem.network, reach) + if i == 1 + intervals = [reach.sym.interval] + else + intervals = bisect_interval_by_max_smear(problem.network, reach) + end for interval in intervals reach = forward_network(solver, problem.network, init_symbolic_mask(interval)) @@ -81,7 +79,7 @@ end function bisect_interval_by_max_smear(nnet::Network, reach::SymbolicIntervalMask) LG, UG = get_gradient_bounds(nnet, reach.LΛ, reach.UΛ) feature, monotone = get_max_smear_index(nnet, reach.sym.interval, LG, UG) #monotonicity not used in this implementation. - return split_interval(reach.sym.interval, feature) + return collect(split_interval(reach.sym.interval, feature)) end function select!(reach_list, tree_search) @@ -143,19 +141,21 @@ function forward_act(::ReluVal, input::SymbolicIntervalMask, layer::Layer{ReLU}) # These are direct views into the rows of the parent arrays. lowᵢⱼ, upᵢⱼ, out_lowᵢⱼ, out_upᵢⱼ = @views Low[j, :], Up[j, :], output_Low[j, :], output_Up[j, :] - # If the upper bound is negative, set the gradient mask to 0 - # and zero out future layer dependency + # If the upper bound of the upper bound is negative, set + # the gradient mask to 0 and zero out future layer dependency if upper_bound(upᵢⱼ, interval) <= 0 LΛᵢ[j], UΛᵢ[j] = 0, 0 out_lowᵢⱼ .= 0 out_upᵢⱼ .= 0 - # If the lower bound is positive, the gradient mask should be 1 + # If the lower bound of the lower bound is positive, + # the gradient mask should be 1 elseif lower_bound(lowᵢⱼ, interval) >= 0 LΛᵢ[j], UΛᵢ[j] = 1, 1 - # if the activation bounds overlap 0, concretize by setting - # the generators to 0, except the bias term. + # if the bounds overlap 0, concretize by setting + # the generators to 0, and setting the new upper bound + # center to be the current upper-upper bound. else LΛᵢ[j], UΛᵢ[j] = 0, 1 out_lowᵢⱼ .= 0 From a80136e524f7f07720781586a1c7deeef6607e15 Mon Sep 17 00:00:00 2001 From: tomer arnon Date: Mon, 17 Aug 2020 00:51:52 +0300 Subject: [PATCH 51/66] consolidate further --- src/adversarial/reluVal.jl | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/src/adversarial/reluVal.jl b/src/adversarial/reluVal.jl index 9b4cc7fa..e4fa7d38 100644 --- a/src/adversarial/reluVal.jl +++ b/src/adversarial/reluVal.jl @@ -49,16 +49,12 @@ function init_symbolic_mask(interval) end function solve(solver::ReluVal, problem::Problem) - reach_list = [init_symbolic_mask(problem.input)] + reach_list = SymbolicIntervalMask[] for i in 1:solver.max_iter - - isempty(reach_list) && return BasicResult(:holds) - - reach = select!(reach_list, solver.tree_search) - if i == 1 - intervals = [reach.sym.interval] + intervals = [problem.input] else + reach = select!(reach_list, solver.tree_search) intervals = bisect_interval_by_max_smear(problem.network, reach) end @@ -72,6 +68,8 @@ function solve(solver::ReluVal, problem::Problem) push!(reach_list, reach) end end + + isempty(reach_list) && return BasicResult(:holds) end return BasicResult(:unknown) end From 8f1914758d4459be5196f02ae03a1b9bdad3059f Mon Sep 17 00:00:00 2001 From: tomer arnon Date: Mon, 17 Aug 2020 00:52:18 +0300 Subject: [PATCH 52/66] delete old commented code --- src/adversarial/reluVal.jl | 56 -------------------------------------- 1 file changed, 56 deletions(-) diff --git a/src/adversarial/reluVal.jl b/src/adversarial/reluVal.jl index e4fa7d38..e4d19018 100644 --- a/src/adversarial/reluVal.jl +++ b/src/adversarial/reluVal.jl @@ -192,59 +192,3 @@ end upper_bound(v, domain) = ρ(v[1:end-1], domain) + v[end] lower_bound(v, domain) = -ρ(-v[1:end-1], domain) + v[end] bounds(v, domain) = (lower_bound(v, domain), upper_bound(v, domain)) - - - - - -# Concrete forward_linear -# function forward_linear_concrete(input::Hyperrectangle, W::Matrix{Float64}, b::Vector{Float64}) -# n_output = size(W, 1) -# output_upper = zeros(n_output) -# output_lower = zeros(n_output) -# for j in 1:n_output -# output_upper[j] = upper_bound(W[j, :], input) + b[j] -# output_lower[j] = lower_bound(W[j, :], input) + b[j] -# end -# output = Hyperrectangle(low = output_lower, high = output_upper) -# return output -# end - -# Concrete forward_act -# function forward_act(input::Hyperrectangle) -# input_upper = high(input) -# input_lower = low(input) -# output_upper = zeros(dim(input)) -# output_lower = zeros(dim(input)) -# mask_upper = ones(Int, dim(input)) -# mask_lower = zeros(Int, dim(input)) -# for i in 1:dim(input) -# if input_upper[i] <= 0 -# mask_upper[i] = mask_lower[i] = 0 -# output_upper[i] = output_lower[i] = 0.0 -# elseif input_lower[i] >= 0 -# mask_upper[i] = mask_lower[i] = 1 -# else -# output_lower[i] = 0.0 -# end -# end -# return (output_lower, output_upper, mask_lower, mask_upper) -# end - -# This function is similar to forward_linear -# function backward_linear(Low::Matrix{Float64}, Up::Matrix{Float64}, W::Matrix{Float64}) -# n_output, n_input = size(W) -# n_symbol = size(Low, 2) - 1 - -# output_Low = zeros(n_output, n_symbol + 1) -# output_Up = zeros(n_output, n_symbol + 1) -# for k in 1:n_symbol + 1 -# for j in 1:n_output -# for i in 1:n_input -# output_Up[j, k] += ifelse(W[j, i]>0, W[j, i] * Up[i, k], W[j, i] * Low[i, k]) -# output_Low[j, k] += ifelse(W[j, i]>0, W[j, i] * Low[i, k], W[j, i] * Up[i, k]) -# end -# end -# end -# return (output_Low, output_Up) -# end \ No newline at end of file From 525d11db89c29082deb9aaa61979b61306f3bd30 Mon Sep 17 00:00:00 2001 From: tomer arnon Date: Mon, 17 Aug 2020 02:19:04 +0300 Subject: [PATCH 53/66] minor chnages to neurify. adopt bounds using lazysets in reluval --- src/adversarial/neurify.jl | 85 +++++++++++++++++--------------------- 1 file changed, 38 insertions(+), 47 deletions(-) diff --git a/src/adversarial/neurify.jl b/src/adversarial/neurify.jl index 7a1364c9..eae6541f 100644 --- a/src/adversarial/neurify.jl +++ b/src/adversarial/neurify.jl @@ -25,12 +25,12 @@ Sound but not complete. [https://github.com/tcwangshiqi-columbia/Neurify](https://github.com/tcwangshiqi-columbia/Neurify) """ -@with_kw struct Neurify +@with_kw struct Neurify <: Solver max_iter::Int64 = 100 tree_search::Symbol = :DFS # only :DFS/:BFS allowed? If so, we should assert this. + optimizer = GLPK.Optimizer end -# Why can "interval" be an AbstractPolytope? struct SymbolicInterval{F<:AbstractPolytope} Low::Matrix{Float64} Up::Matrix{Float64} @@ -48,10 +48,16 @@ end function solve(solver::Neurify, problem::Problem) # TODO get rid of - problem = Problem(problem.network, convert(HPolytope, problem.input), convert(HPolytope, problem.output)) + function to_float_hrep(set) + VF = Vector{HalfSpace{Float64, Vector{Float64}}} + HPolytope(VF(constraints_list(set))) + end + problem = Problem(problem.network, to_float_hrep(problem.input), to_float_hrep(problem.output)) + + model = Model(solver) + set_silent(model) - model = Model(GLPK.Optimizer) x = @variable(model, [1:dim(problem.input)]) add_set_constraint!(model, problem.input, x) @@ -59,20 +65,19 @@ function solve(solver::Neurify, problem::Problem) result, max_violation_con = check_inclusion(solver, reach.sym, problem.output, problem.network) # This calls the check_inclusion function in ReluVal, because the constraints are Hyperrectangle result.status == :unknown || return result - reach_list = [] - push!(reach_list, (reach, max_violation_con, Vector())) + reach_list = [(reach, max_violation_con, Set())] # Becuase of over-approximation, a split may not bisect the input set. # Therefore, the gradient remains unchanged (since input didn't change). # And this node will be chosen to split forever. # To prevent this, we split each node only once if the gradient of this node hasn't change. # Each element in splits is a tuple (gradient_of_the_node, layer_index, node_index). - splits = Set() # To prevent infinity loop. + # splits = Set() # To prevent infinity loop. for i in 2:solver.max_iter isempty(reach_list) && return BasicResult(:holds) - reach, max_violation_con, splits = pick_out!(reach_list, solver.tree_search) + reach, max_violation_con, splits = select!(reach_list, solver.tree_search) intervals = constraint_refinement(solver, problem.network, reach, max_violation_con, splits) @@ -95,7 +100,9 @@ function check_inclusion(solver::Neurify, reach::SymbolicInterval{<:HPolytope}, # We try to maximize output constraint to find a violated case, or to verify the inclusion. # Suppose the output is [1, 0, -1] * x < 2, Then we are maximizing reach.Up[1] * 1 + reach.Low[3] * (-1) - model = Model(GLPK.Optimizer) + model = Model(solver) + set_silent(model) + x = @variable(model, [1:dim(reach.interval)]) add_set_constraint!(model, reach.interval, x) @@ -123,6 +130,8 @@ function check_inclusion(solver::Neurify, reach::SymbolicInterval{<:HPolytope}, max_violation = viol max_con_ind = i end + + # NOTE This entire else branch should be eliminated for the paper version else # NOTE Is this even valid if the problem isn't solved optimally? if value(x) ∈ reach.interval @@ -147,7 +156,7 @@ function constraint_refinement(solver::Neurify, nnet::Network, reach::SymbolicIntervalGradient, max_violation_con::AbstractVector{Float64}, - splits::Vector) + splits) i, j, influence = get_max_nodewise_influence(solver, nnet, reach, max_violation_con, splits) # We can generate three more constraints @@ -157,20 +166,21 @@ function constraint_refinement(solver::Neurify, aL, bL = reach_new.sym.Low[j, 1:end-1], reach_new.sym.Low[j, end] aU, bU = reach_new.sym.Up[j, 1:end-1], reach_new.sym.Up[j, end] - ∩ = LazySets.intersection + # custom intersection function that doesn't do constraint pruning + ∩ = (set, lc) -> HPolytope([constraints_list(set); lc]) - intervals = [reach.sym.interval] + subsets = [reach.sym.interval] # If either of the normal vectors is the 0-vector, we must skip it. # It cannot be used to create a halfspace constraint. # NOTE: how can this come about, and does it mean anything? if !iszero(aL) - intervals = intervals .∩ [HalfSpace(aL, -bL), HalfSpace(aL, -bL), HalfSpace(-aL, bL)] + subsets = subsets .∩ [HalfSpace(aL, -bL), HalfSpace(aL, -bL), HalfSpace(-aL, bL)] end if !iszero(aU) - intervals = intervals .∩ [HalfSpace(aU, -bL), HalfSpace(aU, -bL), HalfSpace(-aU, bL)] + subsets = subsets .∩ [HalfSpace(aU, -bU), HalfSpace(-aU, bU), HalfSpace(-aU, bU)] end - return filter(!isempty, intervals) + return filter(!isempty, subsets) end @@ -178,7 +188,7 @@ function get_max_nodewise_influence(solver::Neurify, nnet::Network, reach::SymbolicIntervalGradient, max_violation_con::AbstractVector{Float64}, - splits::Vector) + splits) LΛ, UΛ, radii = reach.LΛ, reach.UΛ, reach.r is_ambiguous_activation(i, j) = (0 < LΛ[i][j] < 1) || (0 < UΛ[i][j] < 1) @@ -186,11 +196,10 @@ function get_max_nodewise_influence(solver::Neurify, # We want to find the node with the largest influence # Influence is defined as gradient * interval width # The gradient is with respect to a loss defined by the most violated constraint. - LG = copy(max_violation_con) - UG = copy(max_violation_con) - + LG = UG = max_violation_con i_max, j_max, influence_max = 0, 0, -Inf + # Backpropagation to calculate the node-wise gradient for i in reverse(1:length(nnet.layers)) layer = nnet.layers[i] if layer.activation isa ReLU @@ -214,7 +223,7 @@ function get_max_nodewise_influence(solver::Neurify, end # NOTE can omit this line in the paper version - i_max == 0 || j_max == 0 && error("Can not find valid node to split") + (i_max == 0 || j_max == 0) && error("Can not find valid node to split") push!(splits, (i_max, j_max, influence_max)) @@ -222,7 +231,7 @@ function get_max_nodewise_influence(solver::Neurify, end function forward_layer(solver::Neurify, layer::Layer, input) - return forward_act(forward_linear(solver, input, layer), layer) + return forward_act(solver, forward_linear(solver, input, layer), layer) end # Symbolic forward_linear for the first layer @@ -247,7 +256,7 @@ function forward_linear(solver::Neurify, input::SymbolicIntervalGradient, layer: end # Symbolic forward_act -function forward_act(input::SymbolicIntervalGradient, layer::Layer{ReLU}) +function forward_act(solver::Neurify, input::SymbolicIntervalGradient, layer::Layer{ReLU}) n_node, n_input = size(input.sym.Up) output_Low, output_Up = copy(input.sym.Low), copy(input.sym.Up) mask_lower, mask_upper = zeros(Float64, n_node), ones(Float64, n_node) @@ -261,15 +270,15 @@ function forward_act(input::SymbolicIntervalGradient, layer::Layer{ReLU}) interval_width[i] = up_up - low_low - up_slop = act_gradient(up_low, up_up) - low_slop = act_gradient(low_low, low_up) + up_slope = act_gradient(up_low, up_up) + low_slope = act_gradient(low_low, low_up) - output_Up[i, :] = up_slop * output_Up[i, :] - output_Up[i, end] += up_slop * max(-up_low, 0) + output_Up[i, :] = up_slope * output_Up[i, :] + output_Up[i, end] += up_slope * max(-up_low, 0) - output_Low[i, :] = low_slop * output_Low[i, :] + output_Low[i, :] = low_slope * output_Low[i, :] - mask_lower[i], mask_upper[i] = low_slop, up_slop + mask_lower[i], mask_upper[i] = low_slope, up_slope end sym = SymbolicInterval(output_Low, output_Up, input.sym.interval) LΛ = push!(input.LΛ, mask_lower) @@ -278,7 +287,7 @@ function forward_act(input::SymbolicIntervalGradient, layer::Layer{ReLU}) return SymbolicIntervalGradient(sym, LΛ, UΛ, r) end -function forward_act(input::SymbolicIntervalGradient, layer::Layer{Id}) +function forward_act(solver::Neurify, input::SymbolicIntervalGradient, layer::Layer{Id}) sym = input.sym n_node = size(input.sym.Up, 1) LΛ = push!(input.LΛ, ones(Float64, n_node)) @@ -286,21 +295,3 @@ function forward_act(input::SymbolicIntervalGradient, layer::Layer{Id}) r = push!(input.r, ones(Float64, n_node)) return SymbolicIntervalGradient(sym, LΛ, UΛ, r) end - -function bounds(v, input) - model = Model(GLPK.Optimizer) - x = @variable(model, [1:dim(input)]) - add_set_constraint!(model, input, x) - - obj = v' * [x; 1] - - @objective(model, Max, obj) - optimize!(model) - upper_bound = objective_value(model) - - @objective(model, Min, obj) - optimize!(model) - lower_bound = objective_value(model) - - return (lower_bound, upper_bound) -end From 7345c7bcc256d59437b4bad5845556c49a18e137 Mon Sep 17 00:00:00 2001 From: tomer arnon Date: Mon, 17 Aug 2020 02:20:22 +0300 Subject: [PATCH 54/66] attempt to allow travis to take longer --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 5291e193..9160b218 100644 --- a/.travis.yml +++ b/.travis.yml @@ -34,7 +34,7 @@ before_install: # - if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then sudo apt-get install -y --no-install-recommends texlive-fonts-recommended texlive-latex-extra texlive-fonts-extra dvipng texlive-latex-recommended; fi # - if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then export GKSwstype=svg; fi -script: +script: travis_wait 15 - julia --project --check-bounds=yes -e 'import Pkg; Pkg.build(); Pkg.test("NeuralVerification"; coverage=true)' # After successful build submit coverage report and deploy updated documentation From bf64fb74a2d15281e0527b2460028bafc1d76b73 Mon Sep 17 00:00:00 2001 From: tomer arnon Date: Mon, 17 Aug 2020 02:44:45 +0300 Subject: [PATCH 55/66] nevermind travis --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 9160b218..5291e193 100644 --- a/.travis.yml +++ b/.travis.yml @@ -34,7 +34,7 @@ before_install: # - if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then sudo apt-get install -y --no-install-recommends texlive-fonts-recommended texlive-latex-extra texlive-fonts-extra dvipng texlive-latex-recommended; fi # - if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then export GKSwstype=svg; fi -script: travis_wait 15 +script: - julia --project --check-bounds=yes -e 'import Pkg; Pkg.build(); Pkg.test("NeuralVerification"; coverage=true)' # After successful build submit coverage report and deploy updated documentation From a13dbbb8b5822d538c5be4dfc0cf0c5c036e59d2 Mon Sep 17 00:00:00 2001 From: tomer arnon Date: Tue, 18 Aug 2020 18:05:42 +0300 Subject: [PATCH 56/66] adopt reluval changes in neurify --- src/adversarial/neurify.jl | 101 +++++++++++++++++++------------------ src/adversarial/reluVal.jl | 9 ++-- 2 files changed, 58 insertions(+), 52 deletions(-) diff --git a/src/adversarial/neurify.jl b/src/adversarial/neurify.jl index eae6541f..09d478b4 100644 --- a/src/adversarial/neurify.jl +++ b/src/adversarial/neurify.jl @@ -45,29 +45,37 @@ struct SymbolicIntervalGradient r::Vector{Vector{Float64}} # range of a input interval (upper_bound - lower_bound) end -function solve(solver::Neurify, problem::Problem) +function init_symbolic_grad(domain) + # with hyperrectangles, we might as well deal with the directly + # if !(domain isa Hyperrectangle) + VF = Vector{HalfSpace{Float64, Vector{Float64}}} + domain = HPolytope(VF(constraints_list(domain))) + # end + n = dim(domain) + I = Matrix{Float64}(LinearAlgebra.I(n)) + Z = zeros(n) + symbolic_input = SymbolicInterval([I Z], [I Z], domain) + symbolic_mask = SymbolicIntervalGradient(symbolic_input, + Vector{Vector{Float64}}(), + Vector{Vector{Float64}}(), + Vector{Vector{Float64}}()) +end - # TODO get rid of - function to_float_hrep(set) - VF = Vector{HalfSpace{Float64, Vector{Float64}}} - HPolytope(VF(constraints_list(set))) - end - problem = Problem(problem.network, to_float_hrep(problem.input), to_float_hrep(problem.output)) +function solve(solver::Neurify, problem::Problem) - model = Model(solver) - set_silent(model) + model = Model(solver); set_silent(model) x = @variable(model, [1:dim(problem.input)]) add_set_constraint!(model, problem.input, x) - reach = forward_network(solver, problem.network, problem.input) - result, max_violation_con = check_inclusion(solver, reach.sym, problem.output, problem.network) # This calls the check_inclusion function in ReluVal, because the constraints are Hyperrectangle + reach = forward_network(solver, problem.network, init_symbolic_grad(problem.input)) + result, max_violation_con = check_inclusion(solver, reach.sym, problem.output, problem.network) result.status == :unknown || return result reach_list = [(reach, max_violation_con, Set())] - # Becuase of over-approximation, a split may not bisect the input set. + # Because of over-approximation, a split may not bisect the input set. # Therefore, the gradient remains unchanged (since input didn't change). # And this node will be chosen to split forever. # To prevent this, we split each node only once if the gradient of this node hasn't change. @@ -82,7 +90,7 @@ function solve(solver::Neurify, problem::Problem) intervals = constraint_refinement(solver, problem.network, reach, max_violation_con, splits) for interval in intervals - reach = forward_network(solver, problem.network, interval) + reach = forward_network(solver, problem.network, init_symbolic_grad(interval)) result, max_violation_con = check_inclusion(solver, reach.sym, problem.output, problem.network) if result.status == :violated return result @@ -94,7 +102,7 @@ function solve(solver::Neurify, problem::Problem) return BasicResult(:unknown) end -function check_inclusion(solver::Neurify, reach::SymbolicInterval{<:HPolytope}, +function check_inclusion(solver::Neurify, reach::SymbolicInterval, output::AbstractPolytope, nnet::Network) # The output constraint is in the form A*x < b # We try to maximize output constraint to find a violated case, or to verify the inclusion. @@ -161,7 +169,7 @@ function constraint_refinement(solver::Neurify, i, j, influence = get_max_nodewise_influence(solver, nnet, reach, max_violation_con, splits) # We can generate three more constraints # Symbolic representation of node i j is Low[i][j,:] and Up[i][j,:] - reach_new = forward_network(solver, Network(nnet.layers[1:i]), reach.sym.interval) + reach_new = forward_network(solver, Network(nnet.layers[1:i]), init_symbolic_grad(reach.sym.interval)) aL, bL = reach_new.sym.Low[j, 1:end-1], reach_new.sym.Low[j, end] aU, bU = reach_new.sym.Up[j, 1:end-1], reach_new.sym.Up[j, end] @@ -234,21 +242,10 @@ function forward_layer(solver::Neurify, layer::Layer, input) return forward_act(solver, forward_linear(solver, input, layer), layer) end -# Symbolic forward_linear for the first layer -function forward_linear(solver::Neurify, input::AbstractPolytope, layer::Layer) - (W, b) = (layer.weights, layer.bias) - sym = SymbolicInterval(hcat(W, b), hcat(W, b), input) - LΛ = Vector{Vector{Int64}}(undef, 0) - UΛ = Vector{Vector{Int64}}(undef, 0) - r = Vector{Vector{Int64}}(undef, 0) - return SymbolicIntervalGradient(sym, LΛ, UΛ, r) -end - # Symbolic forward_linear function forward_linear(solver::Neurify, input::SymbolicIntervalGradient, layer::Layer) (W, b) = (layer.weights, layer.bias) - output_Up = max.(W, 0) * input.sym.Up + min.(W, 0) * input.sym.Low - output_Low = max.(W, 0) * input.sym.Low + min.(W, 0) * input.sym.Up + output_Low, output_Up = interval_map(W, input.sym.Low, input.sym.Up) output_Up[:, end] += b output_Low[:, end] += b sym = SymbolicInterval(output_Low, output_Up, input.sym.interval) @@ -257,41 +254,49 @@ end # Symbolic forward_act function forward_act(solver::Neurify, input::SymbolicIntervalGradient, layer::Layer{ReLU}) - n_node, n_input = size(input.sym.Up) - output_Low, output_Up = copy(input.sym.Low), copy(input.sym.Up) - mask_lower, mask_upper = zeros(Float64, n_node), ones(Float64, n_node) - interval_width = zeros(Float64, n_node) - for i in 1:n_node - # Symbolic linear relaxation - # This is different from ReluVal - up_low, up_up = bounds(input.sym.Up[i, :], input.sym.interval) - low_low, low_up = bounds(input.sym.Low[i, :], input.sym.interval) + interval = input.sym.interval + Low, Up = input.sym.Low, input.sym.Up + n_node = n_nodes(layer) + + output_Low, output_Up = copy(Low), copy(Up) + LΛᵢ, UΛᵢ = zeros(n_node), ones(n_node) + interval_width = zeros(n_node) - interval_width[i] = up_up - low_low + # Symbolic linear relaxation + # This is different from ReluVal + for j in 1:n_node + # Loop-local variable bindings for notational convenience. + # These are direct views into the rows of the parent arrays. + lowᵢⱼ, upᵢⱼ, out_lowᵢⱼ, out_upᵢⱼ = @views Low[j, :], Up[j, :], output_Low[j, :], output_Up[j, :] + + up_low, up_up = bounds(upᵢⱼ, interval) + low_low, low_up = bounds(lowᵢⱼ, interval) + + interval_width[j] = up_up - low_low up_slope = act_gradient(up_low, up_up) low_slope = act_gradient(low_low, low_up) - output_Up[i, :] = up_slope * output_Up[i, :] - output_Up[i, end] += up_slope * max(-up_low, 0) + out_upᵢⱼ .*= up_slope + out_upᵢⱼ[end] += up_slope * max(-up_low, 0) - output_Low[i, :] = low_slope * output_Low[i, :] + out_lowᵢⱼ .*= low_slope - mask_lower[i], mask_upper[i] = low_slope, up_slope + LΛᵢ[j], UΛᵢ[j] = low_slope, up_slope end - sym = SymbolicInterval(output_Low, output_Up, input.sym.interval) - LΛ = push!(input.LΛ, mask_lower) - UΛ = push!(input.UΛ, mask_upper) + sym = SymbolicInterval(output_Low, output_Up, interval) + LΛ = push!(input.LΛ, LΛᵢ) + UΛ = push!(input.UΛ, UΛᵢ) r = push!(input.r, interval_width) return SymbolicIntervalGradient(sym, LΛ, UΛ, r) end function forward_act(solver::Neurify, input::SymbolicIntervalGradient, layer::Layer{Id}) sym = input.sym - n_node = size(input.sym.Up, 1) - LΛ = push!(input.LΛ, ones(Float64, n_node)) - UΛ = push!(input.UΛ, ones(Float64, n_node)) - r = push!(input.r, ones(Float64, n_node)) + n_node = n_nodes(layer) + LΛ = push!(input.LΛ, ones(n_node)) + UΛ = push!(input.UΛ, ones(n_node)) + r = push!(input.r, ones(n_node)) return SymbolicIntervalGradient(sym, LΛ, UΛ, r) end diff --git a/src/adversarial/reluVal.jl b/src/adversarial/reluVal.jl index e4d19018..7317dee9 100644 --- a/src/adversarial/reluVal.jl +++ b/src/adversarial/reluVal.jl @@ -130,7 +130,7 @@ function forward_act(::ReluVal, input::SymbolicIntervalMask, layer::Layer{ReLU}) interval = input.sym.interval Low, Up = input.sym.Low, input.sym.Up - n_node, n_input = size(Up) + n_node = n_nodes(layer) output_Low, output_Up = copy(Low), copy(Up) LΛᵢ, UΛᵢ = falses(n_node), trues(n_node) @@ -140,7 +140,8 @@ function forward_act(::ReluVal, input::SymbolicIntervalMask, layer::Layer{ReLU}) lowᵢⱼ, upᵢⱼ, out_lowᵢⱼ, out_upᵢⱼ = @views Low[j, :], Up[j, :], output_Low[j, :], output_Up[j, :] # If the upper bound of the upper bound is negative, set - # the gradient mask to 0 and zero out future layer dependency + # the generators and centers of both bounds to 0, and + # the gradient mask to 0 if upper_bound(upᵢⱼ, interval) <= 0 LΛᵢ[j], UΛᵢ[j] = 0, 0 out_lowᵢⱼ .= 0 @@ -165,8 +166,8 @@ function forward_act(::ReluVal, input::SymbolicIntervalMask, layer::Layer{ReLU}) end sym = SymbolicInterval(output_Low, output_Up, interval) - LΛ = push!(copy(input.LΛ), LΛᵢ) - UΛ = push!(copy(input.UΛ), UΛᵢ) + LΛ = push!(input.LΛ, LΛᵢ) + UΛ = push!(input.UΛ, UΛᵢ) return SymbolicIntervalMask(sym, LΛ, UΛ) end From c726a4f293ed7b6ec456128659b9aeaefa716243 Mon Sep 17 00:00:00 2001 From: tomer arnon Date: Wed, 19 Aug 2020 16:33:46 +0300 Subject: [PATCH 57/66] make neurifys fowrard_network return all the intermediate bounds --- src/adversarial/neurify.jl | 27 ++++++++++++++++++--------- 1 file changed, 18 insertions(+), 9 deletions(-) diff --git a/src/adversarial/neurify.jl b/src/adversarial/neurify.jl index 09d478b4..857c45cf 100644 --- a/src/adversarial/neurify.jl +++ b/src/adversarial/neurify.jl @@ -70,7 +70,7 @@ function solve(solver::Neurify, problem::Problem) add_set_constraint!(model, problem.input, x) reach = forward_network(solver, problem.network, init_symbolic_grad(problem.input)) - result, max_violation_con = check_inclusion(solver, reach.sym, problem.output, problem.network) + result, max_violation_con = check_inclusion(solver, last(reach).sym, problem.output, problem.network) result.status == :unknown || return result reach_list = [(reach, max_violation_con, Set())] @@ -91,7 +91,7 @@ function solve(solver::Neurify, problem::Problem) for interval in intervals reach = forward_network(solver, problem.network, init_symbolic_grad(interval)) - result, max_violation_con = check_inclusion(solver, reach.sym, problem.output, problem.network) + result, max_violation_con = check_inclusion(solver, last(reach).sym, problem.output, problem.network) if result.status == :violated return result elseif result.status == :unknown @@ -162,22 +162,20 @@ end function constraint_refinement(solver::Neurify, nnet::Network, - reach::SymbolicIntervalGradient, + reach::Vector{<:SymbolicIntervalGradient}, max_violation_con::AbstractVector{Float64}, splits) - i, j, influence = get_max_nodewise_influence(solver, nnet, reach, max_violation_con, splits) + i, j, influence = get_max_nodewise_influence(solver, nnet, last(reach), max_violation_con, splits) # We can generate three more constraints # Symbolic representation of node i j is Low[i][j,:] and Up[i][j,:] - reach_new = forward_network(solver, Network(nnet.layers[1:i]), init_symbolic_grad(reach.sym.interval)) - - aL, bL = reach_new.sym.Low[j, 1:end-1], reach_new.sym.Low[j, end] - aU, bU = reach_new.sym.Up[j, 1:end-1], reach_new.sym.Up[j, end] + aL, bL = reach[i].sym.Low[j, 1:end-1], reach[i].sym.Low[j, end] + aU, bU = reach[i].sym.Up[j, 1:end-1], reach[i].sym.Up[j, end] # custom intersection function that doesn't do constraint pruning ∩ = (set, lc) -> HPolytope([constraints_list(set); lc]) - subsets = [reach.sym.interval] + subsets = [reach[1].sym.interval] # all the reaches have the same domain # If either of the normal vectors is the 0-vector, we must skip it. # It cannot be used to create a halfspace constraint. @@ -238,6 +236,17 @@ function get_max_nodewise_influence(solver::Neurify, return (i_max, j_max, influence_max) end + + +function forward_network(solver::Neurify, network::Network, input) + forward_network(solver, network, init_symbolic_grad(input)) +end +function forward_network(solver::Neurify, network::Network, input::SymbolicIntervalGradient) + reachable = [input = forward_layer(solver, L, input) for L in network.layers] + return reachable +end + + function forward_layer(solver::Neurify, layer::Layer, input) return forward_act(solver, forward_linear(solver, input, layer), layer) end From f487a01d47b0352b415b7e74121947ab97b35c90 Mon Sep 17 00:00:00 2001 From: tomer arnon Date: Wed, 19 Aug 2020 17:11:30 +0300 Subject: [PATCH 58/66] remove radius field from SymbolicIntervalGradient --- src/adversarial/neurify.jl | 48 +++++++++++++++++++++----------------- 1 file changed, 26 insertions(+), 22 deletions(-) diff --git a/src/adversarial/neurify.jl b/src/adversarial/neurify.jl index 857c45cf..01993d5d 100644 --- a/src/adversarial/neurify.jl +++ b/src/adversarial/neurify.jl @@ -42,7 +42,16 @@ struct SymbolicIntervalGradient sym::SymbolicInterval LΛ::Vector{Vector{Float64}} # mask for computing gradient. UΛ::Vector{Vector{Float64}} - r::Vector{Vector{Float64}} # range of a input interval (upper_bound - lower_bound) +end + +# radius of the symbolic interval in the direction of the +# jth generating vector. This is not the axis aligned radius, +# or the bounding radius, but rather a radius with respect to +# a node in the network. Equivalent to the upper-upper +# bound minus the lower-lower bound +function radius(sym::SymbolicInterval, j::Int) + upper_bound(@view(sym.Up[:, j]), sym.interval) - + lower_bound(@view(sym.Low[:, j]), sym.interval) end function init_symbolic_grad(domain) @@ -56,7 +65,6 @@ function init_symbolic_grad(domain) Z = zeros(n) symbolic_input = SymbolicInterval([I Z], [I Z], domain) symbolic_mask = SymbolicIntervalGradient(symbolic_input, - Vector{Vector{Float64}}(), Vector{Vector{Float64}}(), Vector{Vector{Float64}}()) end @@ -69,7 +77,7 @@ function solve(solver::Neurify, problem::Problem) x = @variable(model, [1:dim(problem.input)]) add_set_constraint!(model, problem.input, x) - reach = forward_network(solver, problem.network, init_symbolic_grad(problem.input)) + reach = forward_network(solver, problem.network, problem.input) result, max_violation_con = check_inclusion(solver, last(reach).sym, problem.output, problem.network) result.status == :unknown || return result @@ -80,7 +88,6 @@ function solve(solver::Neurify, problem::Problem) # And this node will be chosen to split forever. # To prevent this, we split each node only once if the gradient of this node hasn't change. # Each element in splits is a tuple (gradient_of_the_node, layer_index, node_index). - # splits = Set() # To prevent infinity loop. for i in 2:solver.max_iter isempty(reach_list) && return BasicResult(:holds) @@ -90,7 +97,7 @@ function solve(solver::Neurify, problem::Problem) intervals = constraint_refinement(solver, problem.network, reach, max_violation_con, splits) for interval in intervals - reach = forward_network(solver, problem.network, init_symbolic_grad(interval)) + reach = forward_network(solver, problem.network, interval) result, max_violation_con = check_inclusion(solver, last(reach).sym, problem.output, problem.network) if result.status == :violated return result @@ -166,7 +173,7 @@ function constraint_refinement(solver::Neurify, max_violation_con::AbstractVector{Float64}, splits) - i, j, influence = get_max_nodewise_influence(solver, nnet, last(reach), max_violation_con, splits) + i, j, influence = get_max_nodewise_influence(solver, nnet, reach, max_violation_con, splits) # We can generate three more constraints # Symbolic representation of node i j is Low[i][j,:] and Up[i][j,:] aL, bL = reach[i].sym.Low[j, 1:end-1], reach[i].sym.Low[j, end] @@ -192,11 +199,11 @@ end function get_max_nodewise_influence(solver::Neurify, nnet::Network, - reach::SymbolicIntervalGradient, + reach::Vector{<:SymbolicIntervalGradient}, max_violation_con::AbstractVector{Float64}, splits) - LΛ, UΛ, radii = reach.LΛ, reach.UΛ, reach.r + LΛ, UΛ = reach.LΛ, reach.UΛ is_ambiguous_activation(i, j) = (0 < LΛ[i][j] < 1) || (0 < UΛ[i][j] < 1) # We want to find the node with the largest influence @@ -208,13 +215,17 @@ function get_max_nodewise_influence(solver::Neurify, # Backpropagation to calculate the node-wise gradient for i in reverse(1:length(nnet.layers)) layer = nnet.layers[i] + sym = reach[i] if layer.activation isa ReLU for j in 1:n_nodes(layer) if is_ambiguous_activation(i, j) # taking `influence = max_gradient * reach.r[i][j]*k` would be # different from original paper, but can improve the split efficiency. # where `k = n-i+1`, i.e. counts up from 1 as you go back in layers. - influence = max(abs(LG[j]), abs(UG[j])) * radii[i][j] + + # radius wrt to the jth node/hidden dimension + r = radius(sym, j) + influence = max(abs(LG[j]), abs(UG[j])) * r if influence >= influence_max && (i, j, influence) ∉ splits i_max, j_max, influence_max = i, j, influence end @@ -253,12 +264,11 @@ end # Symbolic forward_linear function forward_linear(solver::Neurify, input::SymbolicIntervalGradient, layer::Layer) - (W, b) = (layer.weights, layer.bias) - output_Low, output_Up = interval_map(W, input.sym.Low, input.sym.Up) - output_Up[:, end] += b - output_Low[:, end] += b + output_Low, output_Up = interval_map(layer.weights, input.sym.Low, input.sym.Up) + output_Up[:, end] += layer.bias + output_Low[:, end] += layer.bias sym = SymbolicInterval(output_Low, output_Up, input.sym.interval) - return SymbolicIntervalGradient(sym, input.LΛ, input.UΛ, input.r) + return SymbolicIntervalGradient(sym, input.LΛ, input.UΛ) end # Symbolic forward_act @@ -270,7 +280,6 @@ function forward_act(solver::Neurify, input::SymbolicIntervalGradient, layer::La output_Low, output_Up = copy(Low), copy(Up) LΛᵢ, UΛᵢ = zeros(n_node), ones(n_node) - interval_width = zeros(n_node) # Symbolic linear relaxation # This is different from ReluVal @@ -282,8 +291,6 @@ function forward_act(solver::Neurify, input::SymbolicIntervalGradient, layer::La up_low, up_up = bounds(upᵢⱼ, interval) low_low, low_up = bounds(lowᵢⱼ, interval) - interval_width[j] = up_up - low_low - up_slope = act_gradient(up_low, up_up) low_slope = act_gradient(low_low, low_up) @@ -297,15 +304,12 @@ function forward_act(solver::Neurify, input::SymbolicIntervalGradient, layer::La sym = SymbolicInterval(output_Low, output_Up, interval) LΛ = push!(input.LΛ, LΛᵢ) UΛ = push!(input.UΛ, UΛᵢ) - r = push!(input.r, interval_width) - return SymbolicIntervalGradient(sym, LΛ, UΛ, r) + return SymbolicIntervalGradient(sym, LΛ, UΛ) end function forward_act(solver::Neurify, input::SymbolicIntervalGradient, layer::Layer{Id}) - sym = input.sym n_node = n_nodes(layer) LΛ = push!(input.LΛ, ones(n_node)) UΛ = push!(input.UΛ, ones(n_node)) - r = push!(input.r, ones(n_node)) - return SymbolicIntervalGradient(sym, LΛ, UΛ, r) + return SymbolicIntervalGradient(input.sym, LΛ, UΛ) end From d913403b70e0eaca67437de4ccf8e781993fec4f Mon Sep 17 00:00:00 2001 From: tomer arnon Date: Wed, 19 Aug 2020 18:09:29 +0300 Subject: [PATCH 59/66] adopt SymbolicIntervalGradient in ReluVal --- src/adversarial/neurify.jl | 24 ++++++++++++------------ src/adversarial/reluVal.jl | 22 +++++++++------------- 2 files changed, 21 insertions(+), 25 deletions(-) diff --git a/src/adversarial/neurify.jl b/src/adversarial/neurify.jl index 01993d5d..e74d0013 100644 --- a/src/adversarial/neurify.jl +++ b/src/adversarial/neurify.jl @@ -37,11 +37,13 @@ struct SymbolicInterval{F<:AbstractPolytope} interval::F end + + # Data to be passed during forward_layer -struct SymbolicIntervalGradient - sym::SymbolicInterval - LΛ::Vector{Vector{Float64}} # mask for computing gradient. - UΛ::Vector{Vector{Float64}} +struct SymbolicIntervalGradient{F<:AbstractPolytope, N<:Real} + sym::SymbolicInterval{F} + LΛ::Vector{Vector{N}} # mask for computing gradient. + UΛ::Vector{Vector{N}} end # radius of the symbolic interval in the direction of the @@ -49,7 +51,7 @@ end # or the bounding radius, but rather a radius with respect to # a node in the network. Equivalent to the upper-upper # bound minus the lower-lower bound -function radius(sym::SymbolicInterval, j::Int) +function radius(sym::SymbolicInterval, j::Integer) upper_bound(@view(sym.Up[:, j]), sym.interval) - lower_bound(@view(sym.Low[:, j]), sym.interval) end @@ -121,12 +123,10 @@ function check_inclusion(solver::Neurify, reach::SymbolicInterval, x = @variable(model, [1:dim(reach.interval)]) add_set_constraint!(model, reach.interval, x) - output_constraints = constraints_list(output) - max_violation = 0.0 - max_con_ind = 0 + max_con = 0 # max_violation_con = nothing - for (i, cons) in enumerate(output_constraints) + for (i, cons) in enumerate(constraints_list(output)) # NOTE can be taken out of the loop, but maybe there's no advantage # NOTE max.(M, 0) * U + ... is a common operation, and maybe should get a name. It's also an "interval map". a, b = cons.a, cons.b @@ -143,7 +143,7 @@ function check_inclusion(solver::Neurify, reach::SymbolicInterval, viol = objective_value(model) if viol > max_violation max_violation = viol - max_con_ind = i + max_con = a end # NOTE This entire else branch should be eliminated for the paper version @@ -161,9 +161,9 @@ function check_inclusion(solver::Neurify, reach::SymbolicInterval, end if max_violation > 0.0 - return CounterExampleResult(:unknown), output_constraints[max_con_ind].a + return CounterExampleResult(:unknown), max_con else - return CounterExampleResult(:holds), nothing + return CounterExampleResult(:holds), nothing end end diff --git a/src/adversarial/reluVal.jl b/src/adversarial/reluVal.jl index 7317dee9..1760f98e 100644 --- a/src/adversarial/reluVal.jl +++ b/src/adversarial/reluVal.jl @@ -32,20 +32,16 @@ Sound but not complete. end # Data to be passed during forward_layer -struct SymbolicIntervalMask - sym::SymbolicInterval - LΛ::Vector{Vector{Bool}} - UΛ::Vector{Vector{Bool}} -end +const SymbolicIntervalMask = SymbolicIntervalGradient{<:Hyperrectangle, Bool} function init_symbolic_mask(interval) n = dim(interval) I = Matrix{Float64}(LinearAlgebra.I(n)) Z = zeros(n) symbolic_input = SymbolicInterval([I Z], [I Z], interval) - symbolic_mask = SymbolicIntervalMask(symbolic_input, - Vector{Vector{Bool}}(), - Vector{Vector{Bool}}()) + symbolic_mask = SymbolicIntervalGradient(symbolic_input, + Vector{Vector{Bool}}(), + Vector{Vector{Bool}}()) end function solve(solver::ReluVal, problem::Problem) @@ -111,17 +107,17 @@ function check_inclusion(reach::SymbolicInterval{<:Hyperrectangle}, output, nnet end function forward_layer(solver::ReluVal, layer::Layer, input) - return forward_act(solver, forward_linear(input, layer), layer) + return forward_act(solver, forward_linear(solver, input, layer), layer) end # Symbolic forward_linear -function forward_linear(input::SymbolicIntervalMask, layer::Layer) +function forward_linear(solver::ReluVal, input::SymbolicIntervalMask, layer::Layer) (W, b) = (layer.weights, layer.bias) output_Low, output_Up = interval_map(W, input.sym.Low, input.sym.Up) output_Up[:, end] += b output_Low[:, end] += b sym = SymbolicInterval(output_Low, output_Up, input.sym.interval) - return SymbolicIntervalMask(sym, input.LΛ, input.UΛ) + return SymbolicIntervalGradient(sym, input.LΛ, input.UΛ) end # Symbolic forward_act @@ -168,7 +164,7 @@ function forward_act(::ReluVal, input::SymbolicIntervalMask, layer::Layer{ReLU}) sym = SymbolicInterval(output_Low, output_Up, interval) LΛ = push!(input.LΛ, LΛᵢ) UΛ = push!(input.UΛ, UΛᵢ) - return SymbolicIntervalMask(sym, LΛ, UΛ) + return SymbolicIntervalGradient(sym, LΛ, UΛ) end # Symbolic forward_act @@ -177,7 +173,7 @@ function forward_act(::ReluVal, input::SymbolicIntervalMask, layer::Layer{Id}) n_node = size(input.sym.Up, 1) LΛ = push!(input.LΛ, trues(n_node)) UΛ = push!(input.UΛ, trues(n_node)) - return SymbolicIntervalMask(sym, LΛ, UΛ) + return SymbolicIntervalGradient(sym, LΛ, UΛ) end function get_max_smear_index(nnet::Network, input::Hyperrectangle, LG::Matrix, UG::Matrix) From c67a19c2c015c1f1ae6c42a61c10f9aea96e5ba5 Mon Sep 17 00:00:00 2001 From: tomer arnon Date: Wed, 19 Aug 2020 18:17:53 +0300 Subject: [PATCH 60/66] consolidate shared methods in reluval --- src/NeuralVerification.jl | 2 +- src/adversarial/neurify.jl | 40 -------------------------------------- src/adversarial/reluVal.jl | 39 ++++++++++++++++++++++++++++++++----- 3 files changed, 35 insertions(+), 46 deletions(-) diff --git a/src/NeuralVerification.jl b/src/NeuralVerification.jl index 2d893dc7..7c8cd651 100644 --- a/src/NeuralVerification.jl +++ b/src/NeuralVerification.jl @@ -84,8 +84,8 @@ export BaB, Sherlock, Reluplex include("satisfiability/planet.jl") export Planet -include("adversarial/neurify.jl") include("adversarial/reluVal.jl") +include("adversarial/neurify.jl") include("adversarial/fastLin.jl") include("adversarial/fastLip.jl") include("adversarial/dlv.jl") diff --git a/src/adversarial/neurify.jl b/src/adversarial/neurify.jl index e74d0013..f61f0ee6 100644 --- a/src/adversarial/neurify.jl +++ b/src/adversarial/neurify.jl @@ -31,46 +31,6 @@ Sound but not complete. optimizer = GLPK.Optimizer end -struct SymbolicInterval{F<:AbstractPolytope} - Low::Matrix{Float64} - Up::Matrix{Float64} - interval::F -end - - - -# Data to be passed during forward_layer -struct SymbolicIntervalGradient{F<:AbstractPolytope, N<:Real} - sym::SymbolicInterval{F} - LΛ::Vector{Vector{N}} # mask for computing gradient. - UΛ::Vector{Vector{N}} -end - -# radius of the symbolic interval in the direction of the -# jth generating vector. This is not the axis aligned radius, -# or the bounding radius, but rather a radius with respect to -# a node in the network. Equivalent to the upper-upper -# bound minus the lower-lower bound -function radius(sym::SymbolicInterval, j::Integer) - upper_bound(@view(sym.Up[:, j]), sym.interval) - - lower_bound(@view(sym.Low[:, j]), sym.interval) -end - -function init_symbolic_grad(domain) - # with hyperrectangles, we might as well deal with the directly - # if !(domain isa Hyperrectangle) - VF = Vector{HalfSpace{Float64, Vector{Float64}}} - domain = HPolytope(VF(constraints_list(domain))) - # end - n = dim(domain) - I = Matrix{Float64}(LinearAlgebra.I(n)) - Z = zeros(n) - symbolic_input = SymbolicInterval([I Z], [I Z], domain) - symbolic_mask = SymbolicIntervalGradient(symbolic_input, - Vector{Vector{Float64}}(), - Vector{Vector{Float64}}()) -end - function solve(solver::Neurify, problem::Problem) diff --git a/src/adversarial/reluVal.jl b/src/adversarial/reluVal.jl index 1760f98e..1c035eea 100644 --- a/src/adversarial/reluVal.jl +++ b/src/adversarial/reluVal.jl @@ -31,17 +31,37 @@ Sound but not complete. tree_search::Symbol = :DFS # only :DFS/:BFS allowed? If so, we should assert this. end + +struct SymbolicInterval{F<:AbstractPolytope} + Low::Matrix{Float64} + Up::Matrix{Float64} + interval::F +end +# Data to be passed during forward_layer +struct SymbolicIntervalGradient{F<:AbstractPolytope, N<:Real} + sym::SymbolicInterval{F} + LΛ::Vector{Vector{N}} + UΛ::Vector{Vector{N}} +end # Data to be passed during forward_layer const SymbolicIntervalMask = SymbolicIntervalGradient{<:Hyperrectangle, Bool} -function init_symbolic_mask(interval) - n = dim(interval) +function _init_symbolic_grad_general(domain, N) + n = dim(domain) I = Matrix{Float64}(LinearAlgebra.I(n)) Z = zeros(n) - symbolic_input = SymbolicInterval([I Z], [I Z], interval) + symbolic_input = SymbolicInterval([I Z], [I Z], domain) symbolic_mask = SymbolicIntervalGradient(symbolic_input, - Vector{Vector{Bool}}(), - Vector{Vector{Bool}}()) + Vector{Vector{N}}(), + Vector{Vector{N}}()) +end +function init_symbolic_grad(domain) + VF = Vector{HalfSpace{Float64, Vector{Float64}}} + domain = HPolytope(VF(constraints_list(domain))) + _init_symbolic_grad_general(domain, Float64) +end +function init_symbolic_mask(interval) + _init_symbolic_grad_general(interval, Bool) end function solve(solver::ReluVal, problem::Problem) @@ -189,3 +209,12 @@ end upper_bound(v, domain) = ρ(v[1:end-1], domain) + v[end] lower_bound(v, domain) = -ρ(-v[1:end-1], domain) + v[end] bounds(v, domain) = (lower_bound(v, domain), upper_bound(v, domain)) +# radius of the symbolic interval in the direction of the +# jth generating vector. This is not the axis aligned radius, +# or the bounding radius, but rather a radius with respect to +# a node in the network. Equivalent to the upper-upper +# bound minus the lower-lower bound +function radius(sym::SymbolicInterval, j::Integer) + upper_bound(@view(sym.Up[:, j]), sym.interval) - + lower_bound(@view(sym.Low[:, j]), sym.interval) +end From 1a5dc02494f3b03c5f0a6cd0148b8d5cf8aaea7e Mon Sep 17 00:00:00 2001 From: tomer arnon Date: Wed, 19 Aug 2020 18:29:44 +0300 Subject: [PATCH 61/66] bug fixes --- src/adversarial/neurify.jl | 4 ++-- src/adversarial/reluVal.jl | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/adversarial/neurify.jl b/src/adversarial/neurify.jl index f61f0ee6..ab632287 100644 --- a/src/adversarial/neurify.jl +++ b/src/adversarial/neurify.jl @@ -163,7 +163,7 @@ function get_max_nodewise_influence(solver::Neurify, max_violation_con::AbstractVector{Float64}, splits) - LΛ, UΛ = reach.LΛ, reach.UΛ + LΛ, UΛ = reach[end].LΛ, reach[end].UΛ is_ambiguous_activation(i, j) = (0 < LΛ[i][j] < 1) || (0 < UΛ[i][j] < 1) # We want to find the node with the largest influence @@ -175,7 +175,7 @@ function get_max_nodewise_influence(solver::Neurify, # Backpropagation to calculate the node-wise gradient for i in reverse(1:length(nnet.layers)) layer = nnet.layers[i] - sym = reach[i] + sym = reach[i].sym if layer.activation isa ReLU for j in 1:n_nodes(layer) if is_ambiguous_activation(i, j) diff --git a/src/adversarial/reluVal.jl b/src/adversarial/reluVal.jl index 1c035eea..a7c37af4 100644 --- a/src/adversarial/reluVal.jl +++ b/src/adversarial/reluVal.jl @@ -215,6 +215,6 @@ bounds(v, domain) = (lower_bound(v, domain), upper_bound(v, domain)) # a node in the network. Equivalent to the upper-upper # bound minus the lower-lower bound function radius(sym::SymbolicInterval, j::Integer) - upper_bound(@view(sym.Up[:, j]), sym.interval) - - lower_bound(@view(sym.Low[:, j]), sym.interval) + upper_bound(@view(sym.Up[j, :]), sym.interval) - + lower_bound(@view(sym.Low[j, :]), sym.interval) end From eb7b7427a182d792021339f508ec67bccfd9ea53 Mon Sep 17 00:00:00 2001 From: tomer arnon Date: Wed, 19 Aug 2020 19:30:06 +0300 Subject: [PATCH 62/66] added boundedness check --- src/adversarial/neurify.jl | 8 ++++---- src/adversarial/reluVal.jl | 2 ++ 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src/adversarial/neurify.jl b/src/adversarial/neurify.jl index ab632287..c3827101 100644 --- a/src/adversarial/neurify.jl +++ b/src/adversarial/neurify.jl @@ -33,6 +33,7 @@ end function solve(solver::Neurify, problem::Problem) + isbounded(problem.input) || throw(UnboundedInputError("Neurify can only handle bounded input sets.")) model = Model(solver); set_silent(model) @@ -84,8 +85,7 @@ function check_inclusion(solver::Neurify, reach::SymbolicInterval, add_set_constraint!(model, reach.interval, x) max_violation = 0.0 - max_con = 0 - # max_violation_con = nothing + max_violation_con = nothing for (i, cons) in enumerate(constraints_list(output)) # NOTE can be taken out of the loop, but maybe there's no advantage # NOTE max.(M, 0) * U + ... is a common operation, and maybe should get a name. It's also an "interval map". @@ -103,7 +103,7 @@ function check_inclusion(solver::Neurify, reach::SymbolicInterval, viol = objective_value(model) if viol > max_violation max_violation = viol - max_con = a + max_violation_con = a end # NOTE This entire else branch should be eliminated for the paper version @@ -121,7 +121,7 @@ function check_inclusion(solver::Neurify, reach::SymbolicInterval, end if max_violation > 0.0 - return CounterExampleResult(:unknown), max_con + return CounterExampleResult(:unknown), max_violation_con else return CounterExampleResult(:holds), nothing end diff --git a/src/adversarial/reluVal.jl b/src/adversarial/reluVal.jl index a7c37af4..4179ed85 100644 --- a/src/adversarial/reluVal.jl +++ b/src/adversarial/reluVal.jl @@ -65,6 +65,8 @@ function init_symbolic_mask(interval) end function solve(solver::ReluVal, problem::Problem) + isbounded(problem.input) || throw(UnboundedInputError("ReluVal can only handle bounded input sets.")) + reach_list = SymbolicIntervalMask[] for i in 1:solver.max_iter if i == 1 From b2e4dd389057438e3f71bcc1fe5a8a4e4f530bbe Mon Sep 17 00:00:00 2001 From: tomer arnon Date: Wed, 19 Aug 2020 19:32:00 +0300 Subject: [PATCH 63/66] dead code --- src/adversarial/neurify.jl | 5 ----- 1 file changed, 5 deletions(-) diff --git a/src/adversarial/neurify.jl b/src/adversarial/neurify.jl index c3827101..01be5c80 100644 --- a/src/adversarial/neurify.jl +++ b/src/adversarial/neurify.jl @@ -35,11 +35,6 @@ end function solve(solver::Neurify, problem::Problem) isbounded(problem.input) || throw(UnboundedInputError("Neurify can only handle bounded input sets.")) - model = Model(solver); set_silent(model) - - x = @variable(model, [1:dim(problem.input)]) - add_set_constraint!(model, problem.input, x) - reach = forward_network(solver, problem.network, problem.input) result, max_violation_con = check_inclusion(solver, last(reach).sym, problem.output, problem.network) result.status == :unknown || return result From 1e9fa30fff9df92661e242ca4ffcdbfa8ee313a5 Mon Sep 17 00:00:00 2001 From: tomer arnon Date: Wed, 19 Aug 2020 19:33:10 +0300 Subject: [PATCH 64/66] neurify should return same output type always --- src/adversarial/neurify.jl | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/adversarial/neurify.jl b/src/adversarial/neurify.jl index 01be5c80..9924e5a2 100644 --- a/src/adversarial/neurify.jl +++ b/src/adversarial/neurify.jl @@ -48,7 +48,7 @@ function solve(solver::Neurify, problem::Problem) # Each element in splits is a tuple (gradient_of_the_node, layer_index, node_index). for i in 2:solver.max_iter - isempty(reach_list) && return BasicResult(:holds) + isempty(reach_list) && return CounterExampleResult(:holds) reach, max_violation_con, splits = select!(reach_list, solver.tree_search) @@ -64,7 +64,7 @@ function solve(solver::Neurify, problem::Problem) end end end - return BasicResult(:unknown) + return CounterExampleResult(:unknown) end function check_inclusion(solver::Neurify, reach::SymbolicInterval, From a702b1ff2fc7a0930e0b93b8488c998e5d5dfbd7 Mon Sep 17 00:00:00 2001 From: tomer arnon Date: Wed, 19 Aug 2020 19:33:53 +0300 Subject: [PATCH 65/66] reluval should return counterexampleresult --- src/adversarial/reluVal.jl | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/adversarial/reluVal.jl b/src/adversarial/reluVal.jl index 4179ed85..c5444788 100644 --- a/src/adversarial/reluVal.jl +++ b/src/adversarial/reluVal.jl @@ -87,9 +87,9 @@ function solve(solver::ReluVal, problem::Problem) end end - isempty(reach_list) && return BasicResult(:holds) + isempty(reach_list) && return CounterExampleResult(:holds) end - return BasicResult(:unknown) + return CounterExampleResult(:unknown) end function bisect_interval_by_max_smear(nnet::Network, reach::SymbolicIntervalMask) @@ -118,14 +118,14 @@ end function check_inclusion(reach::SymbolicInterval{<:Hyperrectangle}, output, nnet::Network) reachable = symbol_to_concrete(reach) - issubset(reachable, output) && return BasicResult(:holds) + issubset(reachable, output) && return CounterExampleResult(:holds) # Sample the middle point middle_point = center(reach.interval) y = compute_output(nnet, middle_point) y ∈ output || return CounterExampleResult(:violated, middle_point) - return BasicResult(:unknown) + return CounterExampleResult(:unknown) end function forward_layer(solver::ReluVal, layer::Layer, input) From 706c42d4d98515b23da5c40888dcc81d230763d4 Mon Sep 17 00:00:00 2001 From: tomer arnon Date: Wed, 19 Aug 2020 19:47:45 +0300 Subject: [PATCH 66/66] rename interval -> domain --- src/adversarial/neurify.jl | 24 ++++++++++++------------ src/adversarial/reluVal.jl | 20 ++++++++++---------- 2 files changed, 22 insertions(+), 22 deletions(-) diff --git a/src/adversarial/neurify.jl b/src/adversarial/neurify.jl index 9924e5a2..a68eeb01 100644 --- a/src/adversarial/neurify.jl +++ b/src/adversarial/neurify.jl @@ -52,10 +52,10 @@ function solve(solver::Neurify, problem::Problem) reach, max_violation_con, splits = select!(reach_list, solver.tree_search) - intervals = constraint_refinement(solver, problem.network, reach, max_violation_con, splits) + subdomains = constraint_refinement(solver, problem.network, reach, max_violation_con, splits) - for interval in intervals - reach = forward_network(solver, problem.network, interval) + for domain in subdomains + reach = forward_network(solver, problem.network, domain) result, max_violation_con = check_inclusion(solver, last(reach).sym, problem.output, problem.network) if result.status == :violated return result @@ -76,8 +76,8 @@ function check_inclusion(solver::Neurify, reach::SymbolicInterval, model = Model(solver) set_silent(model) - x = @variable(model, [1:dim(reach.interval)]) - add_set_constraint!(model, reach.interval, x) + x = @variable(model, [1:dim(reach.domain)]) + add_set_constraint!(model, reach.domain, x) max_violation = 0.0 max_violation_con = nothing @@ -104,7 +104,7 @@ function check_inclusion(solver::Neurify, reach::SymbolicInterval, # NOTE This entire else branch should be eliminated for the paper version else # NOTE Is this even valid if the problem isn't solved optimally? - if value(x) ∈ reach.interval + if value(x) ∈ reach.domain error("Not OPTIMAL, but x in the input set.\n This is usually caused by open input set.\n Please check your input constraints.") @@ -137,7 +137,7 @@ function constraint_refinement(solver::Neurify, # custom intersection function that doesn't do constraint pruning ∩ = (set, lc) -> HPolytope([constraints_list(set); lc]) - subsets = [reach[1].sym.interval] # all the reaches have the same domain + subsets = [reach[1].sym.domain] # all the reaches have the same domain # If either of the normal vectors is the 0-vector, we must skip it. # It cannot be used to create a halfspace constraint. @@ -222,14 +222,14 @@ function forward_linear(solver::Neurify, input::SymbolicIntervalGradient, layer: output_Low, output_Up = interval_map(layer.weights, input.sym.Low, input.sym.Up) output_Up[:, end] += layer.bias output_Low[:, end] += layer.bias - sym = SymbolicInterval(output_Low, output_Up, input.sym.interval) + sym = SymbolicInterval(output_Low, output_Up, input.sym.domain) return SymbolicIntervalGradient(sym, input.LΛ, input.UΛ) end # Symbolic forward_act function forward_act(solver::Neurify, input::SymbolicIntervalGradient, layer::Layer{ReLU}) - interval = input.sym.interval + domain = input.sym.domain Low, Up = input.sym.Low, input.sym.Up n_node = n_nodes(layer) @@ -243,8 +243,8 @@ function forward_act(solver::Neurify, input::SymbolicIntervalGradient, layer::La # These are direct views into the rows of the parent arrays. lowᵢⱼ, upᵢⱼ, out_lowᵢⱼ, out_upᵢⱼ = @views Low[j, :], Up[j, :], output_Low[j, :], output_Up[j, :] - up_low, up_up = bounds(upᵢⱼ, interval) - low_low, low_up = bounds(lowᵢⱼ, interval) + up_low, up_up = bounds(upᵢⱼ, domain) + low_low, low_up = bounds(lowᵢⱼ, domain) up_slope = act_gradient(up_low, up_up) low_slope = act_gradient(low_low, low_up) @@ -256,7 +256,7 @@ function forward_act(solver::Neurify, input::SymbolicIntervalGradient, layer::La LΛᵢ[j], UΛᵢ[j] = low_slope, up_slope end - sym = SymbolicInterval(output_Low, output_Up, interval) + sym = SymbolicInterval(output_Low, output_Up, domain) LΛ = push!(input.LΛ, LΛᵢ) UΛ = push!(input.UΛ, UΛᵢ) return SymbolicIntervalGradient(sym, LΛ, UΛ) diff --git a/src/adversarial/reluVal.jl b/src/adversarial/reluVal.jl index c5444788..b83c7f32 100644 --- a/src/adversarial/reluVal.jl +++ b/src/adversarial/reluVal.jl @@ -35,7 +35,7 @@ end struct SymbolicInterval{F<:AbstractPolytope} Low::Matrix{Float64} Up::Matrix{Float64} - interval::F + domain::F end # Data to be passed during forward_layer struct SymbolicIntervalGradient{F<:AbstractPolytope, N<:Real} @@ -94,8 +94,8 @@ end function bisect_interval_by_max_smear(nnet::Network, reach::SymbolicIntervalMask) LG, UG = get_gradient_bounds(nnet, reach.LΛ, reach.UΛ) - feature, monotone = get_max_smear_index(nnet, reach.sym.interval, LG, UG) #monotonicity not used in this implementation. - return collect(split_interval(reach.sym.interval, feature)) + feature, monotone = get_max_smear_index(nnet, reach.sym.domain, LG, UG) #monotonicity not used in this implementation. + return collect(split_interval(reach.sym.domain, feature)) end function select!(reach_list, tree_search) @@ -110,8 +110,8 @@ function select!(reach_list, tree_search) end function symbol_to_concrete(reach::SymbolicInterval{<:Hyperrectangle}) - lower = [lower_bound(l, reach.interval) for l in eachrow(reach.Low)] - upper = [upper_bound(u, reach.interval) for u in eachrow(reach.Up)] + lower = [lower_bound(l, reach.domain) for l in eachrow(reach.Low)] + upper = [upper_bound(u, reach.domain) for u in eachrow(reach.Up)] return Hyperrectangle(low = lower, high = upper) end @@ -121,7 +121,7 @@ function check_inclusion(reach::SymbolicInterval{<:Hyperrectangle}, output, nnet issubset(reachable, output) && return CounterExampleResult(:holds) # Sample the middle point - middle_point = center(reach.interval) + middle_point = center(reach.domain) y = compute_output(nnet, middle_point) y ∈ output || return CounterExampleResult(:violated, middle_point) @@ -138,14 +138,14 @@ function forward_linear(solver::ReluVal, input::SymbolicIntervalMask, layer::Lay output_Low, output_Up = interval_map(W, input.sym.Low, input.sym.Up) output_Up[:, end] += b output_Low[:, end] += b - sym = SymbolicInterval(output_Low, output_Up, input.sym.interval) + sym = SymbolicInterval(output_Low, output_Up, input.sym.domain) return SymbolicIntervalGradient(sym, input.LΛ, input.UΛ) end # Symbolic forward_act function forward_act(::ReluVal, input::SymbolicIntervalMask, layer::Layer{ReLU}) - interval = input.sym.interval + interval = input.sym.domain Low, Up = input.sym.Low, input.sym.Up n_node = n_nodes(layer) @@ -217,6 +217,6 @@ bounds(v, domain) = (lower_bound(v, domain), upper_bound(v, domain)) # a node in the network. Equivalent to the upper-upper # bound minus the lower-lower bound function radius(sym::SymbolicInterval, j::Integer) - upper_bound(@view(sym.Up[j, :]), sym.interval) - - lower_bound(@view(sym.Low[j, :]), sym.interval) + upper_bound(@view(sym.Up[j, :]), sym.domain) - + lower_bound(@view(sym.Low[j, :]), sym.domain) end

fn`Z@HU9KTIo`Rf96y1 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�UDeFln_`8>gh>LLpUG{z1!CKII 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