diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..9bc64e8 --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "external/ThirdParty-Mumps"] + path = external/ThirdParty-Mumps + url = git@github.com:coin-or-tools/ThirdParty-Mumps.git diff --git a/Makefile b/Makefile index b8337ec..62097aa 100644 --- a/Makefile +++ b/Makefile @@ -36,10 +36,26 @@ include make.mk ## -all: bin src examples +ifeq ($(DEF_SOLVER), SOLVER_MUMPS) +EXTERNAL = mumps +else +EXTERNAL = +endif + +all: $(EXTERNAL) bin src examples #src_aw testing -src: +ifeq ($(DEF_SOLVER), SOLVER_MUMPS) +mumps: + @echo $(QPOASESROOT) + @cd external/ThirdParty-Mumps; \ + if [ -d "MUMPS" ]; then \ + echo "Found MUMPS source code."; \ + else get.Mumps; ./configure --prefix=$(PWD)/external/mumps_installation; fi; \ + make && make install +endif + +src: $(EXTERNAL) @cd $@; ${MAKE} -s bin: @@ -64,6 +80,11 @@ debugging: @cd $@; ${MAKE} -s clean: +ifeq ($(DEF_SOLVER), SOLVER_MUMPS) + @echo Cleaning up \(mumps\) + @cd external/ThirdParty-Mumps && ${MAKE} -s clean + @cd external && ${RM} -rf mumps_installation +endif @cd src && ${MAKE} -s clean @cd examples && ${MAKE} -s clean @cd bin && ${RM} -f *.* *{EXE} diff --git a/examples/generate_sparse_qp/main.py b/examples/generate_sparse_qp/main.py new file mode 100644 index 0000000..729eb83 --- /dev/null +++ b/examples/generate_sparse_qp/main.py @@ -0,0 +1,58 @@ +import numpy as np +import scipy as sp +from scipy.sparse import csc_matrix, coo_matrix, csr_matrix, lil_matrix, random +from jinja2 import Environment +from jinja2.loaders import FileSystemLoader +import os + +seed = 42 +density = 0.1 +gamma = 0.01 + +out_file_name = 'qp_data.hpp' +in_file_name = 'qp_data.in.hpp' + +NV = 100 +NC = 10 + +H = csc_matrix((NV, NV)) +A = csc_matrix((NV, NV)) + +myinf = 1e10 + +for i in range(NV): + H[i,i] = 1.0 + +# H = H + gamma*random(NV, NV, density=density, format='csc', random_state=seed) +# H = H.T*H + +for i in range(NC): + A[i,i] = 1.0 + +H_ri = H.indices +H_cp = H.indptr +H_val = H.data +H_nnz = H.nnz + +A_ri = A.indices +A_cp = A.indptr +A_val = A.data +A_nnz = A.nnz + +g = np.ones((NV,1)) + +lb = -myinf*np.ones((NV, 1)) +ub = myinf*np.ones((NV, 1)) + +lbA = -np.ones((NC, 1)) +ubA = np.ones((NC, 1)) + +print('rendering templated C++ code...') +env = Environment(loader=FileSystemLoader(os.path.dirname(os.path.abspath(__file__)))) +tmpl = env.get_template(in_file_name) + +code = tmpl.render(NV = NV, NC = NC, H_cp = H_cp, H_ri = H_ri, H_val = H_val, H_nnz = H_nnz, \ + A_cp = A_cp, A_ri = A_ri, A_val = A_val, A_nnz = A_nnz, g = g, lb = lb, ub = ub, lbA = lbA, ubA = ubA) + +with open(out_file_name, "w+") as f: + f.write(code.replace('inf', 'Inf')) diff --git a/examples/generate_sparse_qp/qp_data.in.hpp b/examples/generate_sparse_qp/qp_data.in.hpp new file mode 100644 index 0000000..c78b071 --- /dev/null +++ b/examples/generate_sparse_qp/qp_data.in.hpp @@ -0,0 +1,108 @@ +/* + * This file is part of qpOASES. + * + * qpOASES -- An Implementation of the Online Active Set Strategy. + * Copyright (C) 2007-2017 by Hans Joachim Ferreau, Andreas Potschka, + * Christian Kirches et al. All rights reserved. + * + * qpOASES is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * qpOASES is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + * See the GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with qpOASES; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + */ + + +/** + * \author Andrea Zanelli + * \version 3.2 + * \date 2022 + * + * QP data generated by a Python script for testing purposes. + */ + + +USING_NAMESPACE_QPOASES + +#define NV {{NV}} +#define NC {{NC}} + +const real_t Inf = INFTY; + +sparse_int_t H_ri[] = { + {% for d in H_ri %} + {{ d }}, + {%- endfor %} +}; + +sparse_int_t H_cp[] = { + {% for d in H_cp %} + {{ d }}, + {%- endfor %} +}; + +real_t H_val[] = { + {% for d in H_val %} + {{ d }}, + {%- endfor %} +}; + +sparse_int_t A_ri[] = { + {% for d in A_ri %} + {{ d }}, + {%- endfor %} +}; + +sparse_int_t A_cp[] = { + {% for d in A_cp %} + {{ d }}, + {%- endfor %} +}; + +real_t A_val[] = { + {% for d in A_val %} + {{ d }}, + {%- endfor %} +}; + +real_t g[] = { + {% for d in g %} + {{ d[0] }}, + {%- endfor %} +}; + +real_t lb[] = { + {% for d in lb %} + {{ d[0] }}, + {%- endfor %} +}; + +real_t ub[] = { + {% for d in ub %} + {{ d[0] }}, + {%- endfor %} +}; + +real_t lbA[] = { + {% for d in lbA %} + {{ d[0] }}, + {%- endfor %} +}; + +real_t ubA[] = { + {% for d in ubA %} + {{ d[0] }}, + {%- endfor %} + }; + +long H_nnz = {{ H_nnz }}; +long A_nnz = {{ A_nnz }}; diff --git a/examples/generate_sparse_qp/simple_qp_data.hpp b/examples/generate_sparse_qp/simple_qp_data.hpp new file mode 100644 index 0000000..944a234 --- /dev/null +++ b/examples/generate_sparse_qp/simple_qp_data.hpp @@ -0,0 +1,14376 @@ +/* + * This file is part of qpOASES. + * + * qpOASES -- An Implementation of the Online Active Set Strategy. + * Copyright (C) 2007-2017 by Hans Joachim Ferreau, Andreas Potschka, + * Christian Kirches et al. All rights reserved. + * + * qpOASES is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * qpOASES is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + * See the GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with qpOASES; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + */ + + +/** + * \author Andrea Zanelli + * \version 3.2 + * \date 2022 + * + * QP data generated by a Python script for testing purposes. + */ + + +USING_NAMESPACE_QPOASES + +#define NV 100 +#define NC 10 + +const real_t Inf = INFTY; + +sparse_int_t H_ri[] = { + + 96, + 24, + 78, + 71, + 52, + 50, + 27, + 95, + 88, + 70, + 65, + 21, + 90, + 69, + 39, + 13, + 4, + 83, + 76, + 36, + 56, + 89, + 60, + 22, + 7, + 97, + 79, + 47, + 46, + 32, + 17, + 86, + 35, + 20, + 73, + 53, + 41, + 30, + 28, + 25, + 23, + 11, + 6, + 92, + 82, + 74, + 58, + 45, + 44, + 33, + 26, + 98, + 93, + 77, + 68, + 64, + 29, + 16, + 14, + 12, + 8, + 87, + 84, + 81, + 72, + 66, + 59, + 57, + 55, + 54, + 40, + 37, + 18, + 3, + 1, + 94, + 91, + 85, + 80, + 75, + 63, + 62, + 61, + 51, + 49, + 34, + 31, + 5, + 0, + 42, + 38, + 27, + 96, + 89, + 74, + 71, + 51, + 44, + 23, + 82, + 62, + 47, + 46, + 32, + 17, + 99, + 88, + 50, + 19, + 98, + 93, + 77, + 68, + 64, + 14, + 12, + 8, + 79, + 75, + 21, + 11, + 7, + 94, + 69, + 56, + 53, + 52, + 30, + 29, + 16, + 6, + 87, + 84, + 81, + 66, + 59, + 57, + 55, + 54, + 49, + 40, + 37, + 18, + 3, + 0, + 97, + 90, + 85, + 80, + 78, + 76, + 73, + 72, + 65, + 60, + 48, + 35, + 31, + 15, + 1, + 87, + 77, + 16, + 66, + 50, + 10, + 36, + 95, + 85, + 80, + 74, + 84, + 82, + 40, + 37, + 3, + 99, + 97, + 89, + 83, + 67, + 34, + 7, + 90, + 86, + 63, + 61, + 49, + 19, + 5, + 81, + 59, + 55, + 54, + 53, + 79, + 65, + 9, + 70, + 69, + 51, + 47, + 32, + 22, + 18, + 75, + 56, + 48, + 94, + 60, + 31, + 30, + 25, + 21, + 20, + 11, + 92, + 91, + 68, + 62, + 58, + 57, + 52, + 45, + 43, + 42, + 41, + 28, + 26, + 17, + 2, + 53, + 67, + 2, + 9, + 77, + 63, + 61, + 50, + 88, + 71, + 36, + 93, + 82, + 56, + 35, + 98, + 97, + 92, + 58, + 33, + 7, + 99, + 90, + 68, + 48, + 46, + 41, + 31, + 17, + 89, + 52, + 43, + 39, + 21, + 6, + 86, + 85, + 76, + 69, + 28, + 20, + 14, + 5, + 75, + 70, + 65, + 62, + 42, + 25, + 16, + 96, + 95, + 91, + 80, + 74, + 73, + 30, + 26, + 22, + 15, + 13, + 94, + 79, + 78, + 11, + 83, + 60, + 47, + 45, + 34, + 32, + 23, + 4, + 87, + 84, + 81, + 72, + 66, + 59, + 57, + 55, + 54, + 49, + 40, + 37, + 18, + 3, + 1, + 0, + 81, + 31, + 97, + 86, + 73, + 51, + 91, + 89, + 61, + 58, + 7, + 98, + 87, + 74, + 57, + 38, + 78, + 68, + 66, + 52, + 50, + 35, + 33, + 27, + 8, + 95, + 88, + 55, + 49, + 12, + 11, + 6, + 90, + 84, + 82, + 69, + 41, + 39, + 30, + 22, + 13, + 0, + 75, + 70, + 65, + 62, + 25, + 16, + 15, + 71, + 64, + 59, + 42, + 29, + 21, + 10, + 5, + 83, + 72, + 60, + 47, + 45, + 37, + 34, + 32, + 23, + 4, + 3, + 92, + 74, + 39, + 24, + 66, + 65, + 48, + 41, + 11, + 36, + 25, + 78, + 50, + 7, + 77, + 44, + 73, + 88, + 47, + 15, + 6, + 84, + 54, + 40, + 37, + 90, + 19, + 2, + 96, + 87, + 68, + 67, + 43, + 79, + 70, + 32, + 30, + 22, + 17, + 9, + 86, + 76, + 69, + 57, + 28, + 20, + 18, + 16, + 14, + 3, + 83, + 71, + 64, + 59, + 42, + 29, + 23, + 21, + 10, + 4, + 82, + 72, + 60, + 58, + 56, + 55, + 52, + 33, + 94, + 91, + 85, + 80, + 75, + 63, + 62, + 61, + 51, + 49, + 34, + 31, + 5, + 0, + 97, + 86, + 82, + 98, + 34, + 26, + 79, + 68, + 59, + 17, + 15, + 10, + 5, + 96, + 83, + 71, + 95, + 88, + 84, + 70, + 65, + 49, + 13, + 4, + 85, + 81, + 38, + 33, + 27, + 58, + 24, + 12, + 91, + 80, + 73, + 51, + 44, + 41, + 31, + 28, + 25, + 23, + 0, + 89, + 78, + 66, + 60, + 55, + 54, + 47, + 45, + 43, + 39, + 21, + 11, + 3, + 94, + 87, + 69, + 56, + 53, + 52, + 37, + 30, + 29, + 16, + 6, + 1, + 39, + 95, + 94, + 86, + 31, + 28, + 55, + 54, + 50, + 5, + 67, + 19, + 9, + 2, + 99, + 88, + 87, + 74, + 34, + 26, + 91, + 65, + 61, + 12, + 4, + 76, + 64, + 49, + 47, + 44, + 42, + 38, + 93, + 82, + 72, + 57, + 56, + 35, + 97, + 92, + 89, + 73, + 60, + 58, + 33, + 18, + 3, + 0, + 98, + 84, + 83, + 77, + 62, + 48, + 46, + 45, + 43, + 41, + 29, + 22, + 17, + 15, + 14, + 13, + 81, + 79, + 78, + 75, + 30, + 21, + 11, + 7, + 1, + 99, + 89, + 86, + 72, + 70, + 58, + 46, + 38, + 13, + 56, + 51, + 48, + 11, + 10, + 78, + 71, + 65, + 55, + 52, + 50, + 35, + 33, + 27, + 4, + 98, + 93, + 87, + 77, + 68, + 66, + 64, + 59, + 49, + 29, + 16, + 14, + 12, + 8, + 1, + 0, + 93, + 80, + 49, + 74, + 71, + 47, + 37, + 27, + 10, + 77, + 68, + 59, + 51, + 41, + 35, + 89, + 67, + 34, + 21, + 19, + 7, + 98, + 86, + 82, + 60, + 31, + 13, + 3, + 83, + 58, + 40, + 24, + 23, + 16, + 65, + 62, + 52, + 2, + 85, + 79, + 70, + 32, + 30, + 22, + 17, + 5, + 99, + 97, + 87, + 81, + 64, + 56, + 53, + 33, + 26, + 15, + 9, + 90, + 67, + 65, + 41, + 2, + 95, + 91, + 66, + 38, + 33, + 31, + 22, + 84, + 76, + 60, + 52, + 46, + 24, + 16, + 82, + 81, + 78, + 75, + 98, + 87, + 74, + 40, + 37, + 27, + 9, + 88, + 79, + 69, + 47, + 28, + 15, + 6, + 56, + 51, + 48, + 11, + 8, + 68, + 58, + 50, + 35, + 26, + 17, + 83, + 71, + 64, + 59, + 42, + 34, + 29, + 23, + 21, + 10, + 5, + 4, + 67, + 5, + 74, + 26, + 97, + 82, + 59, + 99, + 92, + 85, + 17, + 56, + 10, + 8, + 96, + 83, + 71, + 90, + 77, + 63, + 61, + 50, + 40, + 22, + 95, + 88, + 84, + 70, + 65, + 49, + 13, + 4, + 20, + 2, + 91, + 80, + 73, + 53, + 51, + 44, + 37, + 31, + 28, + 25, + 23, + 16, + 0, + 89, + 66, + 60, + 55, + 54, + 52, + 43, + 6, + 93, + 86, + 48, + 47, + 41, + 39, + 34, + 33, + 24, + 15, + 12, + 94, + 45, + 3, + 81, + 79, + 78, + 75, + 30, + 21, + 11, + 7, + 1, + 91, + 89, + 83, + 72, + 62, + 61, + 7, + 90, + 54, + 31, + 22, + 97, + 76, + 67, + 56, + 53, + 50, + 27, + 95, + 88, + 84, + 55, + 30, + 13, + 4, + 58, + 21, + 6, + 92, + 85, + 74, + 70, + 65, + 42, + 38, + 17, + 94, + 86, + 48, + 47, + 41, + 39, + 34, + 33, + 24, + 15, + 11, + 98, + 93, + 87, + 77, + 68, + 66, + 64, + 59, + 49, + 29, + 16, + 14, + 12, + 8, + 1, + 0, + 93, + 97, + 59, + 51, + 87, + 34, + 24, + 89, + 78, + 72, + 64, + 58, + 52, + 38, + 8, + 86, + 23, + 9, + 71, + 33, + 28, + 16, + 88, + 70, + 65, + 55, + 49, + 47, + 21, + 12, + 11, + 6, + 82, + 75, + 69, + 60, + 39, + 4, + 0, + 99, + 90, + 79, + 68, + 66, + 31, + 96, + 95, + 91, + 80, + 74, + 73, + 30, + 26, + 3, + 98, + 84, + 83, + 77, + 62, + 48, + 46, + 45, + 43, + 41, + 29, + 22, + 17, + 15, + 14, + 13, + 7, + 51, + 40, + 24, + 88, + 31, + 99, + 89, + 78, + 72, + 70, + 55, + 52, + 38, + 97, + 67, + 56, + 53, + 50, + 27, + 86, + 85, + 76, + 69, + 57, + 28, + 20, + 18, + 5, + 3, + 94, + 92, + 82, + 75, + 74, + 58, + 54, + 44, + 33, + 26, + 84, + 83, + 62, + 48, + 46, + 45, + 43, + 41, + 22, + 17, + 15, + 13, + 7, + 98, + 93, + 87, + 77, + 68, + 66, + 64, + 59, + 49, + 29, + 16, + 14, + 12, + 8, + 1, + 0, + 49, + 82, + 92, + 44, + 20, + 71, + 52, + 38, + 27, + 88, + 79, + 69, + 68, + 59, + 28, + 21, + 10, + 6, + 5, + 50, + 36, + 18, + 58, + 40, + 75, + 70, + 42, + 25, + 23, + 16, + 4, + 96, + 95, + 91, + 74, + 30, + 3, + 98, + 84, + 83, + 77, + 62, + 46, + 45, + 43, + 29, + 22, + 17, + 14, + 13, + 7, + 94, + 93, + 86, + 47, + 41, + 39, + 34, + 24, + 12, + 11, + 99, + 87, + 81, + 64, + 56, + 53, + 33, + 26, + 9, + 97, + 90, + 85, + 80, + 78, + 76, + 73, + 72, + 65, + 60, + 48, + 35, + 31, + 15, + 1, + 39, + 2, + 84, + 21, + 10, + 99, + 89, + 48, + 82, + 60, + 22, + 81, + 58, + 40, + 9, + 96, + 83, + 13, + 78, + 71, + 55, + 50, + 35, + 27, + 97, + 79, + 46, + 32, + 91, + 80, + 73, + 51, + 44, + 41, + 31, + 11, + 86, + 76, + 57, + 28, + 20, + 18, + 5, + 92, + 85, + 74, + 38, + 33, + 24, + 17, + 75, + 72, + 70, + 65, + 62, + 47, + 45, + 42, + 25, + 23, + 15, + 4, + 3, + 98, + 93, + 77, + 68, + 66, + 64, + 59, + 49, + 14, + 12, + 8, + 0, + 94, + 87, + 69, + 56, + 53, + 52, + 37, + 30, + 29, + 16, + 6, + 1, + 95, + 76, + 78, + 75, + 44, + 20, + 11, + 88, + 69, + 59, + 21, + 6, + 86, + 82, + 60, + 81, + 40, + 23, + 9, + 5, + 97, + 87, + 72, + 53, + 47, + 32, + 1, + 0, + 99, + 90, + 79, + 66, + 31, + 30, + 3, + 50, + 35, + 10, + 94, + 93, + 85, + 74, + 70, + 65, + 38, + 33, + 24, + 16, + 12, + 98, + 84, + 83, + 77, + 48, + 46, + 29, + 22, + 15, + 14, + 13, + 7, + 92, + 91, + 68, + 62, + 58, + 57, + 52, + 45, + 43, + 42, + 41, + 28, + 26, + 17, + 2, + 91, + 77, + 99, + 88, + 74, + 64, + 34, + 26, + 83, + 62, + 50, + 43, + 36, + 15, + 70, + 51, + 48, + 47, + 41, + 32, + 31, + 2, + 93, + 82, + 75, + 56, + 35, + 98, + 97, + 92, + 89, + 73, + 60, + 58, + 33, + 30, + 22, + 7, + 86, + 85, + 76, + 69, + 28, + 20, + 16, + 14, + 5, + 87, + 84, + 81, + 72, + 66, + 59, + 57, + 55, + 54, + 49, + 40, + 37, + 18, + 3, + 1, + 0, + 97, + 89, + 67, + 65, + 56, + 34, + 21, + 9, + 7, + 90, + 86, + 63, + 61, + 5, + 2, + 83, + 78, + 57, + 41, + 99, + 88, + 81, + 50, + 49, + 48, + 35, + 30, + 19, + 1, + 98, + 59, + 51, + 50, + 48, + 38, + 92, + 47, + 44, + 17, + 15, + 84, + 82, + 67, + 54, + 43, + 40, + 37, + 60, + 45, + 31, + 30, + 21, + 11, + 2, + 75, + 63, + 49, + 35, + 29, + 0, + 78, + 66, + 46, + 25, + 99, + 94, + 87, + 80, + 74, + 72, + 61, + 26, + 24, + 86, + 85, + 76, + 69, + 57, + 28, + 20, + 18, + 16, + 14, + 5, + 3, + 62, + 82, + 76, + 46, + 16, + 69, + 68, + 28, + 17, + 15, + 99, + 97, + 67, + 56, + 19, + 9, + 91, + 90, + 77, + 63, + 61, + 50, + 40, + 22, + 95, + 88, + 84, + 70, + 65, + 49, + 13, + 0, + 94, + 31, + 25, + 20, + 2, + 58, + 24, + 12, + 89, + 66, + 60, + 55, + 54, + 52, + 47, + 45, + 43, + 39, + 6, + 3, + 83, + 71, + 64, + 59, + 42, + 34, + 29, + 23, + 10, + 5, + 4, + 81, + 79, + 78, + 75, + 30, + 21, + 11, + 7, + 1, + 87, + 81, + 78, + 66, + 38, + 37, + 10, + 57, + 86, + 23, + 16, + 67, + 54, + 12, + 65, + 52, + 51, + 47, + 2, + 88, + 63, + 61, + 50, + 49, + 40, + 21, + 11, + 90, + 82, + 69, + 39, + 4, + 76, + 36, + 97, + 92, + 89, + 60, + 33, + 18, + 0, + 85, + 79, + 70, + 32, + 9, + 5, + 75, + 58, + 31, + 25, + 96, + 95, + 91, + 80, + 74, + 73, + 30, + 26, + 3, + 98, + 84, + 83, + 77, + 62, + 48, + 46, + 45, + 43, + 41, + 29, + 22, + 17, + 15, + 14, + 13, + 7, + 92, + 39, + 98, + 86, + 82, + 22, + 13, + 81, + 58, + 24, + 17, + 9, + 96, + 89, + 77, + 74, + 55, + 1, + 93, + 76, + 69, + 63, + 54, + 46, + 40, + 91, + 80, + 73, + 66, + 53, + 51, + 44, + 41, + 31, + 30, + 28, + 11, + 6, + 0, + 75, + 70, + 65, + 62, + 25, + 16, + 15, + 71, + 64, + 59, + 42, + 29, + 21, + 10, + 5, + 83, + 72, + 60, + 47, + 45, + 37, + 34, + 32, + 23, + 4, + 3, + 59, + 57, + 51, + 50, + 43, + 14, + 62, + 25, + 5, + 0, + 84, + 82, + 60, + 52, + 46, + 10, + 98, + 73, + 29, + 13, + 83, + 81, + 40, + 23, + 9, + 58, + 21, + 6, + 99, + 87, + 80, + 76, + 72, + 61, + 28, + 26, + 20, + 92, + 85, + 74, + 70, + 65, + 42, + 38, + 17, + 16, + 94, + 93, + 86, + 48, + 47, + 41, + 39, + 34, + 33, + 24, + 15, + 12, + 11, + 92, + 74, + 39, + 24, + 86, + 57, + 43, + 36, + 5, + 94, + 60, + 21, + 2, + 88, + 81, + 68, + 52, + 38, + 34, + 33, + 78, + 46, + 20, + 91, + 80, + 73, + 66, + 53, + 51, + 44, + 37, + 30, + 28, + 11, + 6, + 0, + 58, + 48, + 41, + 31, + 29, + 22, + 75, + 72, + 70, + 65, + 62, + 47, + 45, + 42, + 25, + 23, + 16, + 15, + 4, + 3, + 90, + 11, + 78, + 98, + 47, + 39, + 6, + 34, + 18, + 7, + 88, + 77, + 67, + 60, + 55, + 48, + 27, + 50, + 35, + 29, + 10, + 85, + 76, + 72, + 61, + 24, + 20, + 96, + 95, + 80, + 73, + 30, + 22, + 13, + 3, + 94, + 82, + 75, + 74, + 54, + 44, + 14, + 0, + 99, + 97, + 87, + 81, + 64, + 56, + 53, + 33, + 15, + 9, + 92, + 91, + 68, + 62, + 58, + 57, + 52, + 45, + 43, + 42, + 41, + 28, + 26, + 17, + 2, + 98, + 87, + 74, + 47, + 40, + 10, + 9, + 80, + 69, + 42, + 15, + 1, + 97, + 76, + 58, + 53, + 14, + 12, + 78, + 71, + 68, + 66, + 65, + 52, + 50, + 35, + 16, + 8, + 4, + 0, + 85, + 43, + 39, + 38, + 37, + 33, + 6, + 88, + 81, + 77, + 67, + 60, + 56, + 55, + 48, + 29, + 27, + 26, + 50, + 7, + 84, + 60, + 46, + 40, + 82, + 88, + 79, + 47, + 21, + 15, + 10, + 96, + 71, + 55, + 49, + 33, + 13, + 98, + 83, + 78, + 77, + 67, + 64, + 63, + 59, + 73, + 66, + 53, + 51, + 44, + 37, + 31, + 30, + 25, + 23, + 11, + 6, + 0, + 99, + 94, + 87, + 80, + 74, + 72, + 61, + 24, + 86, + 85, + 76, + 69, + 20, + 18, + 16, + 14, + 5, + 3, + 92, + 91, + 68, + 62, + 58, + 57, + 52, + 45, + 43, + 42, + 41, + 28, + 26, + 17, + 2, + 73, + 47, + 39, + 24, + 86, + 63, + 20, + 88, + 81, + 67, + 60, + 55, + 27, + 50, + 35, + 26, + 75, + 58, + 31, + 25, + 84, + 62, + 48, + 46, + 45, + 43, + 41, + 22, + 17, + 15, + 13, + 7, + 83, + 71, + 42, + 34, + 23, + 21, + 10, + 5, + 4, + 98, + 93, + 77, + 68, + 66, + 64, + 59, + 49, + 14, + 12, + 8, + 0, + 94, + 87, + 69, + 56, + 53, + 52, + 37, + 30, + 29, + 16, + 6, + 1, + 76, + 57, + 43, + 86, + 77, + 59, + 83, + 72, + 62, + 61, + 65, + 55, + 47, + 12, + 45, + 20, + 2, + 84, + 82, + 39, + 4, + 98, + 97, + 92, + 89, + 60, + 58, + 33, + 18, + 85, + 70, + 32, + 9, + 5, + 90, + 68, + 46, + 17, + 66, + 51, + 44, + 41, + 31, + 28, + 25, + 23, + 0, + 99, + 88, + 50, + 49, + 48, + 35, + 19, + 96, + 95, + 91, + 80, + 74, + 73, + 26, + 22, + 15, + 13, + 3, + 81, + 79, + 78, + 75, + 21, + 11, + 7, + 94, + 87, + 69, + 56, + 53, + 52, + 37, + 30, + 29, + 16, + 6, + 1, + 88, + 57, + 50, + 14, + 7, + 95, + 81, + 38, + 10, + 4, + 98, + 86, + 83, + 9, + 74, + 67, + 54, + 12, + 70, + 69, + 18, + 45, + 21, + 20, + 2, + 87, + 47, + 32, + 99, + 79, + 68, + 46, + 17, + 13, + 3, + 66, + 53, + 44, + 37, + 30, + 28, + 23, + 16, + 11, + 6, + 41, + 29, + 25, + 22, + 82, + 58, + 56, + 55, + 52, + 33, + 97, + 90, + 78, + 76, + 73, + 72, + 65, + 60, + 48, + 35, + 15, + 1, + 94, + 91, + 85, + 80, + 75, + 63, + 62, + 61, + 51, + 49, + 34, + 31, + 5, + 0, + 82, + 33, + 98, + 57, + 49, + 69, + 58, + 51, + 48, + 41, + 18, + 2, + 92, + 90, + 81, + 74, + 59, + 44, + 43, + 40, + 38, + 85, + 70, + 30, + 22, + 9, + 5, + 97, + 87, + 79, + 66, + 62, + 53, + 46, + 31, + 17, + 16, + 1, + 0, + 83, + 72, + 60, + 47, + 45, + 37, + 34, + 32, + 23, + 4, + 3, + 90, + 80, + 95, + 10, + 59, + 51, + 79, + 32, + 96, + 83, + 49, + 28, + 13, + 78, + 71, + 50, + 35, + 8, + 4, + 43, + 37, + 27, + 6, + 91, + 88, + 68, + 66, + 25, + 98, + 89, + 73, + 30, + 22, + 18, + 7, + 3, + 85, + 70, + 65, + 42, + 38, + 17, + 16, + 92, + 75, + 74, + 54, + 45, + 44, + 14, + 0, + 94, + 93, + 86, + 48, + 47, + 41, + 39, + 34, + 24, + 12, + 11, + 99, + 97, + 87, + 81, + 64, + 53, + 26, + 15, + 9, + 82, + 72, + 60, + 58, + 56, + 55, + 52, + 33, + 31, + 5, + 78, + 50, + 98, + 73, + 13, + 6, + 97, + 89, + 67, + 65, + 56, + 19, + 9, + 2, + 99, + 87, + 82, + 74, + 57, + 26, + 18, + 7, + 88, + 81, + 68, + 66, + 52, + 38, + 25, + 93, + 86, + 48, + 41, + 39, + 33, + 24, + 15, + 12, + 11, + 71, + 64, + 59, + 42, + 29, + 21, + 10, + 83, + 72, + 60, + 47, + 45, + 37, + 32, + 23, + 4, + 3, + 94, + 91, + 85, + 80, + 75, + 63, + 62, + 61, + 51, + 49, + 34, + 31, + 5, + 0, + 69, + 95, + 94, + 46, + 43, + 77, + 70, + 59, + 51, + 9, + 71, + 66, + 55, + 52, + 33, + 27, + 16, + 8, + 4, + 83, + 41, + 93, + 82, + 57, + 56, + 18, + 7, + 3, + 87, + 86, + 75, + 63, + 20, + 0, + 68, + 58, + 29, + 26, + 17, + 10, + 99, + 88, + 81, + 50, + 49, + 30, + 19, + 97, + 90, + 85, + 80, + 78, + 76, + 73, + 72, + 65, + 60, + 48, + 35, + 31, + 15, + 1, + 86, + 70, + 57, + 25, + 5, + 2, + 93, + 87, + 72, + 62, + 60, + 56, + 50, + 43, + 18, + 15, + 89, + 88, + 84, + 81, + 71, + 66, + 46, + 3, + 83, + 76, + 74, + 36, + 22, + 0, + 90, + 75, + 65, + 50, + 48, + 95, + 78, + 22, + 98, + 74, + 71, + 10, + 9, + 82, + 67, + 20, + 5, + 2, + 85, + 43, + 39, + 38, + 33, + 27, + 91, + 80, + 73, + 51, + 44, + 41, + 31, + 28, + 25, + 11, + 94, + 69, + 56, + 53, + 52, + 30, + 29, + 16, + 6, + 83, + 60, + 47, + 45, + 34, + 32, + 23, + 4, + 87, + 84, + 81, + 72, + 66, + 59, + 57, + 55, + 54, + 49, + 40, + 37, + 18, + 3, + 1, + 0, + 51, + 50, + 20, + 95, + 31, + 22, + 10, + 99, + 89, + 86, + 78, + 72, + 58, + 48, + 14, + 13, + 8, + 80, + 71, + 69, + 15, + 1, + 98, + 87, + 57, + 4, + 83, + 77, + 76, + 64, + 49, + 7, + 90, + 79, + 59, + 46, + 44, + 40, + 32, + 55, + 43, + 39, + 37, + 27, + 6, + 91, + 88, + 81, + 68, + 66, + 52, + 47, + 34, + 25, + 94, + 93, + 92, + 85, + 74, + 70, + 65, + 42, + 38, + 33, + 24, + 17, + 16, + 12, + 99, + 65, + 7, + 92, + 74, + 62, + 25, + 23, + 16, + 5, + 98, + 87, + 73, + 29, + 26, + 90, + 84, + 82, + 75, + 69, + 30, + 22, + 13, + 4, + 0, + 85, + 81, + 38, + 37, + 27, + 89, + 78, + 66, + 60, + 55, + 54, + 52, + 45, + 43, + 21, + 6, + 3, + 94, + 93, + 86, + 48, + 47, + 41, + 39, + 34, + 33, + 24, + 15, + 12, + 11, + 51, + 48, + 14, + 52, + 28, + 53, + 80, + 60, + 98, + 71, + 47, + 27, + 10, + 82, + 67, + 20, + 5, + 2, + 83, + 70, + 58, + 24, + 17, + 16, + 15, + 9, + 91, + 88, + 77, + 61, + 50, + 22, + 21, + 11, + 93, + 76, + 69, + 63, + 45, + 41, + 23, + 92, + 90, + 79, + 74, + 46, + 44, + 43, + 38, + 32, + 87, + 84, + 81, + 72, + 66, + 59, + 57, + 55, + 54, + 49, + 40, + 37, + 18, + 3, + 1, + 0, + 88, + 87, + 67, + 65, + 50, + 10, + 5, + 85, + 74, + 9, + 70, + 32, + 18, + 78, + 35, + 19, + 76, + 63, + 59, + 54, + 40, + 82, + 69, + 60, + 4, + 99, + 90, + 79, + 3, + 80, + 73, + 66, + 53, + 51, + 44, + 37, + 30, + 23, + 16, + 6, + 0, + 75, + 31, + 25, + 98, + 84, + 83, + 77, + 46, + 29, + 22, + 14, + 13, + 7, + 94, + 93, + 86, + 48, + 47, + 39, + 34, + 33, + 24, + 15, + 12, + 11, + 92, + 91, + 68, + 62, + 58, + 57, + 52, + 45, + 43, + 42, + 41, + 28, + 26, + 17, + 2, + 80, + 69, + 27, + 1, + 81, + 79, + 77, + 76, + 49, + 44, + 7, + 94, + 93, + 85, + 74, + 38, + 33, + 24, + 12, + 75, + 72, + 70, + 65, + 47, + 25, + 16, + 15, + 3, + 83, + 71, + 64, + 59, + 34, + 29, + 23, + 21, + 10, + 5, + 4, + 92, + 91, + 68, + 62, + 58, + 57, + 52, + 45, + 43, + 42, + 41, + 28, + 26, + 17, + 2, + 51, + 24, + 97, + 95, + 94, + 76, + 65, + 35, + 30, + 86, + 70, + 25, + 88, + 53, + 69, + 20, + 93, + 72, + 56, + 50, + 36, + 18, + 96, + 87, + 82, + 67, + 5, + 90, + 79, + 74, + 59, + 44, + 40, + 32, + 85, + 81, + 38, + 37, + 33, + 27, + 89, + 78, + 66, + 60, + 55, + 54, + 47, + 39, + 21, + 11, + 6, + 3, + 98, + 84, + 83, + 77, + 48, + 46, + 29, + 22, + 15, + 14, + 13, + 7, + 92, + 91, + 68, + 62, + 58, + 57, + 52, + 45, + 43, + 42, + 41, + 28, + 26, + 17, + 2, + 70, + 69, + 60, + 5, + 99, + 85, + 20, + 17, + 15, + 96, + 89, + 71, + 55, + 1, + 83, + 77, + 76, + 64, + 49, + 47, + 42, + 7, + 90, + 81, + 79, + 59, + 46, + 43, + 40, + 38, + 32, + 91, + 80, + 73, + 66, + 53, + 51, + 41, + 37, + 31, + 30, + 28, + 25, + 23, + 16, + 11, + 6, + 94, + 92, + 87, + 82, + 75, + 74, + 58, + 54, + 45, + 44, + 33, + 26, + 14, + 0, + 99, + 85, + 31, + 30, + 20, + 93, + 76, + 69, + 63, + 59, + 40, + 89, + 66, + 55, + 39, + 21, + 6, + 70, + 65, + 25, + 16, + 87, + 82, + 75, + 74, + 54, + 44, + 33, + 0, + 98, + 84, + 77, + 48, + 46, + 29, + 22, + 15, + 14, + 13, + 7, + 94, + 79, + 78, + 11, + 83, + 72, + 60, + 47, + 37, + 34, + 32, + 23, + 4, + 3, + 92, + 91, + 68, + 62, + 58, + 57, + 52, + 45, + 43, + 42, + 41, + 28, + 26, + 17, + 2, + 95, + 94, + 65, + 57, + 35, + 82, + 60, + 28, + 24, + 21, + 10, + 86, + 70, + 64, + 58, + 55, + 52, + 8, + 89, + 88, + 71, + 36, + 93, + 76, + 69, + 63, + 54, + 23, + 92, + 81, + 74, + 59, + 44, + 40, + 38, + 97, + 87, + 72, + 53, + 47, + 32, + 16, + 1, + 0, + 99, + 90, + 79, + 68, + 31, + 30, + 3, + 78, + 66, + 25, + 20, + 98, + 84, + 83, + 77, + 62, + 48, + 46, + 45, + 43, + 41, + 29, + 22, + 17, + 15, + 14, + 13, + 7, + 99, + 92, + 85, + 20, + 73, + 29, + 26, + 98, + 74, + 71, + 40, + 27, + 9, + 59, + 28, + 10, + 5, + 69, + 58, + 51, + 22, + 18, + 2, + 95, + 84, + 30, + 13, + 77, + 76, + 64, + 49, + 44, + 7, + 91, + 88, + 81, + 68, + 38, + 97, + 87, + 79, + 53, + 46, + 31, + 17, + 1, + 0, + 89, + 78, + 66, + 55, + 54, + 52, + 43, + 21, + 6, + 75, + 70, + 65, + 62, + 42, + 25, + 16, + 94, + 93, + 86, + 48, + 41, + 39, + 33, + 24, + 15, + 12, + 11, + 83, + 72, + 60, + 47, + 45, + 37, + 34, + 32, + 23, + 4, + 3, + 59, + 40, + 20, + 87, + 37, + 5, + 82, + 89, + 64, + 52, + 38, + 16, + 10, + 8, + 70, + 69, + 51, + 32, + 18, + 91, + 57, + 2, + 79, + 68, + 66, + 3, + 67, + 56, + 55, + 27, + 26, + 75, + 58, + 25, + 99, + 88, + 81, + 50, + 49, + 30, + 19, + 98, + 84, + 83, + 77, + 62, + 46, + 45, + 43, + 29, + 22, + 17, + 14, + 13, + 7, + 94, + 93, + 86, + 47, + 41, + 39, + 34, + 33, + 24, + 12, + 11, + 97, + 90, + 85, + 80, + 78, + 76, + 73, + 72, + 65, + 60, + 48, + 35, + 31, + 15, + 1, + 15, + 9, + 97, + 82, + 73, + 2, + 74, + 32, + 96, + 71, + 33, + 28, + 90, + 22, + 95, + 70, + 65, + 21, + 13, + 11, + 6, + 4, + 83, + 79, + 76, + 47, + 44, + 42, + 38, + 7, + 86, + 20, + 99, + 88, + 50, + 48, + 35, + 30, + 19, + 98, + 93, + 77, + 68, + 64, + 29, + 16, + 14, + 12, + 8, + 87, + 84, + 81, + 72, + 66, + 59, + 57, + 55, + 54, + 40, + 37, + 18, + 3, + 1, + 94, + 91, + 85, + 80, + 75, + 63, + 62, + 61, + 51, + 49, + 34, + 31, + 5, + 0, + 98, + 59, + 51, + 38, + 24, + 20, + 94, + 86, + 57, + 31, + 28, + 75, + 41, + 37, + 2, + 82, + 64, + 34, + 7, + 5, + 93, + 87, + 83, + 72, + 62, + 60, + 43, + 36, + 18, + 15, + 97, + 76, + 67, + 56, + 53, + 14, + 12, + 78, + 71, + 66, + 65, + 55, + 52, + 33, + 27, + 16, + 8, + 4, + 0, + 91, + 90, + 77, + 63, + 61, + 40, + 22, + 21, + 11, + 3, + 68, + 58, + 29, + 26, + 17, + 10, + 99, + 88, + 81, + 50, + 49, + 48, + 35, + 30, + 19, + 1, + 57, + 50, + 43, + 40, + 38, + 24, + 20, + 14, + 90, + 97, + 82, + 33, + 13, + 4, + 86, + 68, + 60, + 35, + 9, + 56, + 10, + 8, + 70, + 69, + 58, + 48, + 47, + 32, + 22, + 18, + 2, + 96, + 89, + 76, + 74, + 71, + 55, + 1, + 98, + 87, + 83, + 78, + 77, + 72, + 67, + 64, + 59, + 73, + 66, + 53, + 44, + 41, + 37, + 30, + 28, + 25, + 23, + 16, + 11, + 6, + 94, + 91, + 85, + 80, + 75, + 63, + 62, + 61, + 51, + 49, + 34, + 31, + 5, + 0, + 84, + 83, + 76, + 40, + 24, + 10, + 86, + 77, + 70, + 64, + 48, + 46, + 14, + 13, + 80, + 15, + 99, + 79, + 22, + 9, + 71, + 65, + 50, + 35, + 27, + 8, + 4, + 0, + 88, + 81, + 38, + 34, + 25, + 89, + 78, + 66, + 54, + 47, + 39, + 21, + 11, + 3, + 94, + 87, + 69, + 53, + 37, + 30, + 29, + 16, + 6, + 1, + 82, + 72, + 60, + 56, + 55, + 33, + 31, + 5, + 92, + 91, + 68, + 62, + 58, + 57, + 52, + 45, + 43, + 42, + 41, + 28, + 26, + 17, + 2, + 88, + 84, + 43, + 40, + 3, + 59, + 55, + 54, + 2, + 77, + 76, + 67, + 58, + 50, + 27, + 14, + 12, + 79, + 72, + 62, + 47, + 46, + 32, + 17, + 91, + 80, + 73, + 66, + 51, + 44, + 41, + 31, + 28, + 25, + 23, + 11, + 0, + 99, + 97, + 81, + 64, + 33, + 26, + 15, + 9, + 94, + 87, + 69, + 56, + 53, + 52, + 37, + 30, + 29, + 16, + 6, + 1, + 99, + 91, + 62, + 7, + 88, + 20, + 5, + 53, + 2, + 90, + 67, + 31, + 22, + 12, + 93, + 76, + 69, + 63, + 46, + 41, + 23, + 89, + 78, + 60, + 52, + 47, + 43, + 39, + 21, + 11, + 6, + 94, + 92, + 82, + 75, + 74, + 58, + 45, + 44, + 33, + 26, + 14, + 87, + 84, + 81, + 72, + 66, + 59, + 57, + 55, + 54, + 49, + 40, + 37, + 18, + 3, + 1, + 0, + 62, + 7, + 99, + 86, + 64, + 46, + 14, + 53, + 2, + 91, + 83, + 28, + 68, + 50, + 35, + 16, + 8, + 95, + 70, + 65, + 30, + 13, + 12, + 4, + 96, + 76, + 74, + 71, + 51, + 44, + 23, + 85, + 38, + 88, + 77, + 67, + 48, + 29, + 27, + 26, + 89, + 78, + 47, + 45, + 43, + 39, + 21, + 11, + 6, + 82, + 60, + 58, + 56, + 52, + 33, + 31, + 5, + 87, + 84, + 81, + 72, + 66, + 59, + 57, + 55, + 54, + 49, + 40, + 37, + 18, + 3, + 1, + 0, + 95, + 86, + 85, + 80, + 74, + 89, + 65, + 34, + 21, + 19, + 83, + 62, + 43, + 36, + 51, + 11, + 10, + 8, + 76, + 50, + 14, + 12, + 91, + 2, + 93, + 75, + 57, + 35, + 18, + 7, + 3, + 0, + 88, + 77, + 67, + 48, + 27, + 99, + 97, + 81, + 64, + 26, + 15, + 9, + 94, + 87, + 69, + 53, + 37, + 30, + 29, + 16, + 6, + 1, + 82, + 72, + 60, + 58, + 56, + 55, + 52, + 33, + 31, + 5, + 51, + 24, + 95, + 65, + 46, + 30, + 94, + 50, + 31, + 70, + 36, + 25, + 22, + 79, + 99, + 88, + 64, + 34, + 98, + 74, + 38, + 32, + 4, + 48, + 83, + 78, + 19, + 93, + 82, + 75, + 56, + 35, + 7, + 86, + 85, + 76, + 69, + 20, + 16, + 14, + 5, + 87, + 84, + 81, + 72, + 66, + 59, + 55, + 54, + 49, + 40, + 37, + 18, + 3, + 1, + 0, + 92, + 91, + 68, + 62, + 58, + 57, + 52, + 45, + 43, + 42, + 41, + 28, + 26, + 17, + 2, + 90, + 85, + 66, + 99, + 86, + 78, + 64, + 46, + 38, + 13, + 8, + 65, + 61, + 4, + 83, + 81, + 40, + 23, + 16, + 15, + 9, + 77, + 76, + 67, + 53, + 27, + 70, + 69, + 51, + 47, + 32, + 98, + 97, + 89, + 73, + 30, + 18, + 7, + 3, + 50, + 35, + 10, + 24, + 21, + 12, + 6, + 48, + 29, + 25, + 22, + 94, + 87, + 75, + 74, + 54, + 44, + 14, + 0, + 82, + 72, + 60, + 56, + 55, + 33, + 31, + 5, + 92, + 91, + 68, + 62, + 58, + 57, + 52, + 45, + 43, + 42, + 41, + 28, + 26, + 17, + 2, + 50, + 48, + 24, + 20, + 97, + 82, + 73, + 33, + 13, + 11, + 86, + 70, + 60, + 35, + 30, + 9, + 88, + 47, + 17, + 15, + 6, + 53, + 2, + 76, + 69, + 45, + 41, + 92, + 90, + 79, + 74, + 46, + 44, + 43, + 38, + 32, + 78, + 67, + 63, + 51, + 28, + 83, + 71, + 42, + 34, + 23, + 21, + 10, + 5, + 4, + 98, + 93, + 77, + 68, + 64, + 29, + 16, + 14, + 12, + 8, + 87, + 84, + 81, + 72, + 66, + 59, + 57, + 55, + 54, + 49, + 40, + 37, + 18, + 3, + 1, + 0, + 74, + 46, + 28, + 24, + 10, + 40, + 44, + 70, + 68, + 59, + 51, + 93, + 87, + 62, + 50, + 36, + 86, + 17, + 16, + 9, + 94, + 25, + 20, + 2, + 84, + 75, + 69, + 41, + 13, + 98, + 92, + 30, + 22, + 18, + 7, + 0, + 88, + 81, + 77, + 67, + 29, + 27, + 26, + 89, + 66, + 54, + 43, + 39, + 21, + 11, + 6, + 82, + 58, + 56, + 55, + 52, + 33, + 5, + 83, + 47, + 45, + 37, + 34, + 32, + 23, + 4, + 3, + 97, + 90, + 85, + 80, + 78, + 76, + 73, + 72, + 65, + 60, + 48, + 35, + 31, + 15, + 1, + 82, + 73, + 86, + 19, + 2, + 89, + 83, + 65, + 58, + 30, + 12, + 7, + 4, + 90, + 88, + 77, + 50, + 40, + 22, + 21, + 11, + 3, + 99, + 87, + 76, + 74, + 72, + 28, + 26, + 24, + 20, + 94, + 91, + 85, + 80, + 75, + 63, + 62, + 61, + 51, + 49, + 34, + 31, + 5, + 0, + 74, + 39, + 24, + 67, + 55, + 54, + 21, + 99, + 93, + 60, + 56, + 50, + 36, + 18, + 89, + 30, + 12, + 9, + 97, + 87, + 79, + 66, + 53, + 32, + 1, + 72, + 70, + 65, + 47, + 25, + 23, + 16, + 4, + 3, + 98, + 84, + 83, + 77, + 48, + 46, + 29, + 22, + 15, + 14, + 13, + 7, + 92, + 68, + 58, + 57, + 52, + 45, + 43, + 42, + 41, + 28, + 26, + 17, + 2, + 94, + 91, + 85, + 80, + 75, + 63, + 62, + 61, + 51, + 49, + 34, + 31, + 5, + 0, + 19, + 2, + 90, + 88, + 50, + 22, + 21, + 11, + 3, + 93, + 76, + 69, + 54, + 46, + 45, + 41, + 40, + 23, + 86, + 35, + 29, + 20, + 98, + 87, + 83, + 78, + 77, + 72, + 67, + 64, + 59, + 28, + 94, + 91, + 85, + 80, + 75, + 63, + 62, + 61, + 51, + 49, + 34, + 31, + 5, + 0, + 96, + 90, + 73, + 50, + 89, + 86, + 70, + 58, + 55, + 52, + 48, + 46, + 13, + 88, + 82, + 74, + 57, + 18, + 79, + 76, + 47, + 44, + 38, + 7, + 78, + 72, + 67, + 63, + 51, + 28, + 83, + 71, + 42, + 34, + 23, + 21, + 10, + 5, + 4, + 99, + 97, + 81, + 56, + 53, + 33, + 26, + 15, + 9, + 98, + 93, + 87, + 77, + 68, + 66, + 64, + 59, + 49, + 29, + 16, + 14, + 12, + 8, + 1, + 0, + 87, + 86, + 39, + 57, + 46, + 43, + 41, + 37, + 10, + 5, + 99, + 67, + 56, + 34, + 19, + 91, + 89, + 83, + 61, + 58, + 7, + 79, + 22, + 9, + 2, + 71, + 68, + 66, + 52, + 50, + 27, + 8, + 95, + 88, + 84, + 55, + 49, + 30, + 21, + 13, + 11, + 6, + 0, + 94, + 93, + 92, + 74, + 38, + 33, + 24, + 17, + 12, + 75, + 70, + 62, + 47, + 45, + 42, + 25, + 23, + 16, + 4, + 3, + 97, + 90, + 85, + 80, + 78, + 76, + 73, + 72, + 65, + 60, + 48, + 35, + 31, + 15, + 1, + 75, + 67, + 5, + 2, + 95, + 22, + 10, + 94, + 85, + 74, + 58, + 65, + 50, + 35, + 27, + 4, + 76, + 71, + 36, + 88, + 38, + 34, + 33, + 97, + 62, + 32, + 99, + 90, + 79, + 48, + 17, + 13, + 46, + 20, + 91, + 80, + 73, + 53, + 51, + 44, + 41, + 31, + 30, + 28, + 25, + 23, + 89, + 78, + 60, + 52, + 47, + 45, + 43, + 39, + 21, + 11, + 6, + 98, + 93, + 77, + 68, + 64, + 29, + 16, + 14, + 12, + 8, + 87, + 84, + 81, + 72, + 66, + 59, + 57, + 55, + 54, + 49, + 40, + 37, + 18, + 3, + 1, + 0, + 75, + 66, + 41, + 11, + 10, + 91, + 62, + 84, + 69, + 40, + 37, + 20, + 3, + 99, + 89, + 65, + 34, + 21, + 19, + 9, + 7, + 2, + 90, + 74, + 54, + 31, + 22, + 97, + 76, + 58, + 53, + 50, + 14, + 12, + 96, + 82, + 68, + 43, + 5, + 98, + 87, + 83, + 78, + 72, + 64, + 63, + 59, + 51, + 28, + 88, + 81, + 77, + 67, + 60, + 56, + 55, + 48, + 29, + 27, + 26, + 97, + 86, + 70, + 60, + 51, + 9, + 69, + 21, + 15, + 6, + 78, + 71, + 65, + 55, + 27, + 4, + 96, + 82, + 67, + 5, + 88, + 81, + 47, + 38, + 34, + 33, + 25, + 99, + 90, + 79, + 48, + 46, + 31, + 30, + 13, + 3, + 50, + 35, + 10, + 98, + 93, + 87, + 77, + 66, + 64, + 59, + 49, + 29, + 16, + 14, + 12, + 8, + 1, + 0, + 92, + 91, + 68, + 62, + 58, + 57, + 52, + 45, + 43, + 42, + 41, + 28, + 26, + 17, + 2, + 97, + 35, + 77, + 73, + 44, + 80, + 71, + 42, + 38, + 27, + 88, + 79, + 68, + 21, + 17, + 15, + 10, + 67, + 43, + 70, + 58, + 51, + 48, + 47, + 32, + 31, + 2, + 93, + 63, + 59, + 54, + 46, + 45, + 40, + 23, + 90, + 84, + 82, + 75, + 60, + 41, + 39, + 22, + 13, + 4, + 0, + 86, + 85, + 76, + 57, + 28, + 20, + 18, + 14, + 5, + 3, + 94, + 87, + 69, + 56, + 53, + 52, + 37, + 30, + 29, + 16, + 6, + 1, + 98, + 80, + 57, + 43, + 36, + 73, + 44, + 99, + 89, + 78, + 64, + 52, + 46, + 14, + 8, + 86, + 77, + 68, + 60, + 59, + 35, + 83, + 81, + 40, + 69, + 58, + 51, + 48, + 41, + 31, + 18, + 2, + 95, + 88, + 84, + 55, + 49, + 21, + 13, + 11, + 6, + 0, + 79, + 32, + 30, + 22, + 9, + 5, + 94, + 93, + 92, + 85, + 74, + 38, + 33, + 24, + 17, + 12, + 75, + 72, + 70, + 65, + 62, + 47, + 45, + 42, + 25, + 23, + 16, + 15, + 4, + 3, + 98, + 87, + 47, + 40, + 37, + 9, + 80, + 69, + 38, + 15, + 91, + 49, + 28, + 13, + 11, + 6, + 78, + 68, + 65, + 52, + 50, + 35, + 33, + 27, + 16, + 8, + 0, + 88, + 84, + 81, + 66, + 46, + 36, + 3, + 96, + 89, + 77, + 76, + 74, + 55, + 51, + 44, + 1, + 83, + 71, + 64, + 59, + 42, + 34, + 29, + 23, + 21, + 10, + 5, + 4, + 86, + 38, + 14, + 13, + 8, + 50, + 43, + 36, + 91, + 89, + 30, + 12, + 93, + 7, + 79, + 53, + 46, + 17, + 98, + 77, + 67, + 64, + 63, + 51, + 99, + 94, + 74, + 61, + 28, + 26, + 24, + 20, + 75, + 70, + 62, + 42, + 25, + 16, + 82, + 58, + 56, + 52, + 33, + 5, + 83, + 47, + 45, + 34, + 32, + 23, + 4, + 87, + 84, + 81, + 66, + 59, + 57, + 55, + 54, + 49, + 40, + 37, + 18, + 3, + 0, + 97, + 90, + 85, + 80, + 78, + 76, + 73, + 72, + 65, + 60, + 48, + 35, + 31, + 15, + 1, + 99, + 64, + 88, + 86, + 83, + 59, + 49, + 4, + 77, + 70, + 69, + 82, + 61, + 5, + 87, + 47, + 39, + 34, + 29, + 24, + 98, + 92, + 89, + 58, + 33, + 18, + 7, + 66, + 53, + 51, + 44, + 41, + 37, + 28, + 25, + 23, + 16, + 11, + 6, + 0, + 96, + 95, + 91, + 74, + 30, + 26, + 22, + 13, + 3, + 97, + 90, + 85, + 80, + 78, + 76, + 73, + 72, + 65, + 60, + 48, + 35, + 31, + 15, + 1, + 62, + 39, + 25, + 5, + 11, + 78, + 66, + 60, + 41, + 86, + 56, + 2, + 47, + 37, + 27, + 10, + 9, + 88, + 64, + 34, + 18, + 7, + 98, + 57, + 49, + 4, + 67, + 31, + 89, + 77, + 71, + 55, + 51, + 23, + 1, + 90, + 81, + 79, + 59, + 46, + 43, + 40, + 32, + 83, + 36, + 99, + 76, + 72, + 61, + 28, + 20, + 93, + 85, + 70, + 65, + 42, + 38, + 24, + 17, + 16, + 12, + 96, + 95, + 91, + 80, + 73, + 30, + 22, + 15, + 13, + 3, + 94, + 92, + 87, + 82, + 75, + 74, + 58, + 54, + 45, + 44, + 33, + 26, + 14, + 0, + 67, + 66, + 50, + 37, + 10, + 99, + 17, + 2, + 90, + 84, + 69, + 60, + 39, + 13, + 93, + 57, + 56, + 18, + 86, + 35, + 20, + 48, + 41, + 29, + 22, + 72, + 70, + 65, + 47, + 42, + 25, + 23, + 16, + 15, + 4, + 3, + 92, + 87, + 82, + 74, + 58, + 54, + 45, + 44, + 33, + 26, + 14, + 81, + 79, + 78, + 30, + 21, + 11, + 7, + 1, + 94, + 91, + 85, + 80, + 75, + 63, + 62, + 61, + 51, + 49, + 34, + 31, + 5, + 0, + 95, + 43, + 30, + 17, + 52, + 21, + 10, + 91, + 82, + 67, + 58, + 56, + 53, + 50, + 27, + 12, + 88, + 84, + 66, + 96, + 89, + 71, + 55, + 51, + 81, + 79, + 77, + 64, + 49, + 47, + 44, + 42, + 38, + 7, + 93, + 63, + 59, + 54, + 46, + 45, + 41, + 40, + 23, + 83, + 36, + 22, + 0, + 99, + 94, + 87, + 74, + 61, + 26, + 24, + 86, + 69, + 57, + 28, + 20, + 18, + 16, + 14, + 5, + 3, + 97, + 90, + 85, + 80, + 78, + 76, + 73, + 72, + 65, + 60, + 48, + 35, + 31, + 15, + 1, + 18, + 2, + 73, + 69, + 5, + 99, + 52, + 86, + 70, + 35, + 30, + 9, + 97, + 58, + 53, + 91, + 90, + 61, + 50, + 40, + 21, + 11, + 3, + 96, + 89, + 74, + 71, + 23, + 79, + 76, + 47, + 44, + 42, + 38, + 78, + 72, + 63, + 51, + 28, + 88, + 81, + 67, + 60, + 56, + 55, + 27, + 26, + 84, + 83, + 62, + 48, + 46, + 45, + 43, + 41, + 22, + 17, + 15, + 13, + 7, + 98, + 93, + 87, + 77, + 68, + 66, + 64, + 59, + 49, + 29, + 16, + 14, + 12, + 8, + 1, + 0, + 96, + 88, + 17, + 95, + 91, + 74, + 37, + 22, + 34, + 5, + 82, + 26, + 10, + 99, + 86, + 70, + 58, + 38, + 14, + 13, + 71, + 68, + 50, + 33, + 27, + 16, + 8, + 4, + 0, + 57, + 41, + 19, + 98, + 87, + 83, + 77, + 67, + 64, + 63, + 59, + 51, + 28, + 46, + 25, + 20, + 89, + 66, + 55, + 54, + 52, + 47, + 43, + 39, + 6, + 94, + 45, + 3, + 81, + 79, + 75, + 30, + 21, + 11, + 7, + 97, + 90, + 85, + 80, + 78, + 76, + 73, + 72, + 65, + 60, + 48, + 35, + 31, + 15, + 1, + 82, + 33, + 88, + 69, + 28, + 15, + 10, + 6, + 57, + 65, + 52, + 2, + 83, + 77, + 76, + 64, + 49, + 42, + 92, + 74, + 59, + 44, + 43, + 40, + 38, + 85, + 70, + 22, + 9, + 5, + 97, + 87, + 72, + 62, + 53, + 47, + 32, + 16, + 0, + 99, + 90, + 68, + 66, + 48, + 46, + 41, + 31, + 17, + 13, + 94, + 45, + 3, + 81, + 79, + 78, + 75, + 30, + 21, + 11, + 7, + 1, + 98, + 93, + 70, + 33, + 9, + 40, + 82, + 86, + 81, + 56, + 2, + 71, + 69, + 52, + 42, + 38, + 27, + 66, + 53, + 44, + 41, + 37, + 25, + 23, + 16, + 11, + 6, + 99, + 87, + 28, + 24, + 20, + 96, + 95, + 74, + 30, + 26, + 22, + 13, + 3, + 97, + 90, + 78, + 76, + 73, + 72, + 65, + 60, + 48, + 35, + 15, + 1, + 94, + 91, + 85, + 80, + 75, + 63, + 62, + 61, + 51, + 49, + 34, + 31, + 5, + 0, + 31, + 22, + 4, + 82, + 10, + 95, + 86, + 80, + 2, + 70, + 58, + 24, + 23, + 17, + 16, + 89, + 71, + 36, + 83, + 76, + 42, + 92, + 90, + 74, + 46, + 44, + 32, + 85, + 43, + 39, + 6, + 91, + 68, + 52, + 47, + 38, + 34, + 25, + 77, + 67, + 60, + 29, + 27, + 88, + 50, + 48, + 35, + 19, + 99, + 97, + 64, + 56, + 53, + 33, + 26, + 15, + 9, + 79, + 78, + 75, + 30, + 21, + 11, + 7, + 87, + 84, + 81, + 72, + 66, + 59, + 57, + 55, + 54, + 49, + 40, + 37, + 18, + 3, + 1, + 0, + 46, + 24, + 21, + 97, + 59, + 51, + 49, + 11, + 6, + 50, + 79, + 48, + 32, + 81, + 78, + 15, + 10, + 91, + 80, + 76, + 73, + 61, + 28, + 40, + 37, + 20, + 2, + 99, + 88, + 64, + 34, + 98, + 86, + 83, + 23, + 17, + 16, + 9, + 96, + 68, + 67, + 43, + 90, + 84, + 69, + 41, + 39, + 30, + 22, + 13, + 4, + 93, + 57, + 35, + 18, + 7, + 3, + 1, + 94, + 92, + 87, + 75, + 74, + 54, + 45, + 44, + 26, + 14, + 0, + 82, + 72, + 60, + 58, + 56, + 55, + 52, + 33, + 31, + 5, + 52, + 73, + 99, + 97, + 2, + 93, + 56, + 50, + 18, + 89, + 65, + 61, + 30, + 12, + 86, + 82, + 31, + 70, + 58, + 40, + 24, + 9, + 96, + 91, + 55, + 33, + 16, + 11, + 6, + 81, + 79, + 49, + 44, + 38, + 57, + 35, + 19, + 76, + 74, + 36, + 0, + 87, + 78, + 67, + 63, + 51, + 28, + 98, + 84, + 77, + 62, + 48, + 46, + 43, + 41, + 22, + 17, + 15, + 14, + 13, + 7, + 71, + 64, + 59, + 42, + 29, + 21, + 10, + 5, + 83, + 72, + 60, + 47, + 45, + 37, + 34, + 32, + 23, + 4, + 3, + 52, + 28, + 24, + 16, + 10, + 53, + 67, + 20, + 5, + 2, + 95, + 70, + 65, + 47, + 21, + 12, + 11, + 6, + 89, + 88, + 76, + 71, + 36, + 90, + 82, + 75, + 69, + 60, + 39, + 30, + 4, + 98, + 83, + 77, + 62, + 48, + 46, + 45, + 43, + 41, + 29, + 22, + 17, + 15, + 14, + 13, + 7, + 87, + 84, + 81, + 72, + 66, + 59, + 57, + 55, + 54, + 49, + 40, + 37, + 18, + 3, + 1, + 0, + 66, + 58, + 41, + 47, + 45, + 44, + 11, + 95, + 56, + 2, + 81, + 55, + 43, + 39, + 37, + 27, + 6, + 79, + 32, + 30, + 22, + 9, + 99, + 87, + 26, + 86, + 69, + 57, + 28, + 20, + 18, + 14, + 3, + 93, + 92, + 74, + 70, + 42, + 38, + 33, + 24, + 17, + 16, + 12, + 97, + 90, + 78, + 76, + 73, + 72, + 65, + 60, + 48, + 35, + 15, + 1, + 94, + 91, + 85, + 80, + 75, + 63, + 62, + 61, + 51, + 49, + 34, + 31, + 5, + 0, + 65, + 88, + 50, + 7, + 43, + 36, + 25, + 97, + 73, + 6, + 4, + 95, + 81, + 80, + 74, + 56, + 99, + 89, + 78, + 72, + 64, + 58, + 55, + 52, + 46, + 38, + 8, + 77, + 70, + 68, + 59, + 51, + 30, + 90, + 61, + 19, + 2, + 98, + 83, + 82, + 60, + 31, + 23, + 22, + 17, + 13, + 9, + 87, + 75, + 63, + 49, + 35, + 29, + 0, + 85, + 76, + 69, + 57, + 28, + 20, + 18, + 16, + 14, + 5, + 3, + 94, + 93, + 86, + 48, + 47, + 41, + 39, + 34, + 33, + 24, + 15, + 12, + 11, + 65, + 41, + 48, + 2, + 95, + 91, + 22, + 73, + 39, + 13, + 71, + 27, + 10, + 88, + 34, + 7, + 60, + 50, + 36, + 38, + 4, + 96, + 43, + 5, + 79, + 62, + 47, + 46, + 32, + 31, + 17, + 86, + 35, + 83, + 78, + 67, + 63, + 51, + 85, + 80, + 76, + 61, + 28, + 24, + 20, + 92, + 82, + 75, + 74, + 58, + 45, + 44, + 99, + 97, + 33, + 26, + 15, + 9, + 98, + 93, + 77, + 68, + 64, + 14, + 12, + 8, + 94, + 69, + 56, + 53, + 52, + 30, + 29, + 16, + 6, + 87, + 84, + 81, + 72, + 66, + 59, + 57, + 55, + 54, + 49, + 40, + 37, + 18, + 3, + 1, + 0, + 97, + 94, + 86, + 78, + 41, + 31, + 14, + 73, + 54, + 53, + 43, + 79, + 69, + 59, + 28, + 17, + 15, + 10, + 5, + 87, + 82, + 74, + 64, + 57, + 18, + 7, + 90, + 63, + 61, + 40, + 22, + 95, + 70, + 65, + 21, + 13, + 12, + 11, + 6, + 4, + 0, + 89, + 84, + 76, + 71, + 46, + 36, + 3, + 91, + 68, + 66, + 52, + 47, + 38, + 34, + 33, + 25, + 77, + 67, + 60, + 56, + 55, + 29, + 27, + 26, + 99, + 88, + 81, + 50, + 49, + 48, + 35, + 30, + 19, + 1, + 86, + 70, + 64, + 48, + 38, + 16, + 14, + 13, + 8, + 99, + 67, + 56, + 34, + 19, + 9, + 2, + 91, + 83, + 72, + 65, + 62, + 61, + 12, + 4, + 88, + 84, + 81, + 46, + 36, + 96, + 77, + 76, + 74, + 71, + 51, + 44, + 23, + 1, + 98, + 97, + 92, + 73, + 58, + 33, + 30, + 22, + 18, + 7, + 0, + 89, + 78, + 66, + 60, + 55, + 54, + 52, + 47, + 45, + 43, + 39, + 21, + 11, + 6, + 3, + 98, + 96, + 64, + 51, + 33, + 37, + 10, + 26, + 94, + 58, + 86, + 19, + 5, + 2, + 67, + 54, + 12, + 91, + 88, + 77, + 63, + 61, + 50, + 49, + 21, + 11, + 84, + 82, + 75, + 69, + 39, + 22, + 4, + 0, + 92, + 81, + 74, + 59, + 44, + 43, + 40, + 38, + 32, + 99, + 79, + 68, + 66, + 46, + 41, + 30, + 17, + 13, + 3, + 97, + 90, + 85, + 80, + 78, + 76, + 73, + 72, + 65, + 60, + 48, + 35, + 31, + 15, + 1, + 97, + 18, + 99, + 67, + 54, + 87, + 78, + 10, + 82, + 76, + 89, + 72, + 65, + 12, + 7, + 4, + 83, + 71, + 55, + 90, + 77, + 50, + 40, + 21, + 56, + 48, + 88, + 81, + 47, + 38, + 33, + 66, + 53, + 44, + 37, + 25, + 23, + 16, + 11, + 6, + 96, + 95, + 74, + 73, + 30, + 22, + 15, + 13, + 3, + 92, + 68, + 58, + 57, + 52, + 45, + 43, + 42, + 41, + 28, + 26, + 17, + 2, + 94, + 91, + 85, + 80, + 75, + 63, + 62, + 61, + 51, + 49, + 34, + 31, + 5, + 0, + 39, + 25, + 23, + 5, + 99, + 47, + 20, + 15, + 11, + 90, + 81, + 79, + 59, + 46, + 40, + 32, + 98, + 97, + 89, + 73, + 60, + 30, + 22, + 18, + 7, + 3, + 93, + 85, + 70, + 65, + 38, + 24, + 16, + 12, + 94, + 87, + 82, + 75, + 74, + 54, + 44, + 33, + 14, + 0, + 92, + 91, + 68, + 62, + 58, + 57, + 52, + 45, + 43, + 42, + 41, + 28, + 26, + 17, + 2, + 99, + 80, + 13, + 9, + 83, + 62, + 60, + 50, + 43, + 36, + 76, + 69, + 63, + 54, + 46, + 45, + 40, + 23, + 82, + 75, + 72, + 57, + 56, + 35, + 18, + 7, + 3, + 92, + 85, + 74, + 70, + 65, + 42, + 38, + 17, + 94, + 86, + 48, + 47, + 41, + 39, + 34, + 33, + 24, + 15, + 11, + 98, + 93, + 87, + 77, + 68, + 66, + 64, + 59, + 49, + 29, + 16, + 14, + 12, + 8, + 1, + 0, + 95, + 46, + 43, + 35, + 88, + 57, + 50, + 7, + 90, + 66, + 60, + 25, + 21, + 2, + 99, + 76, + 72, + 28, + 20, + 70, + 65, + 42, + 38, + 17, + 92, + 82, + 74, + 58, + 54, + 44, + 26, + 14, + 93, + 86, + 48, + 47, + 41, + 39, + 33, + 24, + 15, + 12, + 79, + 78, + 45, + 11, + 3, + 87, + 69, + 56, + 53, + 52, + 37, + 30, + 29, + 16, + 6, + 1, + 94, + 91, + 85, + 80, + 75, + 63, + 62, + 61, + 51, + 49, + 34, + 31, + 5, + 0, + 94, + 76, + 57, + 46, + 43, + 35, + 17, + 7, + 87, + 78, + 66, + 38, + 37, + 33, + 31, + 10, + 86, + 85, + 81, + 56, + 2, + 88, + 84, + 70, + 65, + 55, + 49, + 47, + 21, + 12, + 11, + 6, + 4, + 0, + 96, + 95, + 91, + 80, + 74, + 73, + 30, + 26, + 22, + 15, + 13, + 3, + 98, + 90, + 78, + 64, + 0, + 83, + 49, + 33, + 28, + 16, + 11, + 6, + 89, + 77, + 76, + 71, + 55, + 51, + 44, + 23, + 1, + 87, + 82, + 68, + 67, + 43, + 5, + 96, + 95, + 91, + 80, + 74, + 73, + 30, + 26, + 22, + 15, + 13, + 3, + 88, + 69, + 68, + 43, + 91, + 86, + 82, + 59, + 51, + 49, + 13, + 11, + 6, + 4, + 83, + 34, + 21, + 19, + 2, + 77, + 67, + 50, + 27, + 14, + 12, + 98, + 92, + 89, + 58, + 30, + 22, + 18, + 7, + 3, + 79, + 66, + 62, + 47, + 46, + 32, + 17, + 16, + 0, + 99, + 87, + 81, + 64, + 56, + 53, + 33, + 26, + 9, + 97, + 90, + 85, + 80, + 78, + 76, + 73, + 72, + 65, + 60, + 48, + 35, + 31, + 15, + 1, + 50, + 20, + 96, + 90, + 99, + 80, + 70, + 39, + 34, + 26, + 24, + 6, + 71, + 47, + 40, + 37, + 27, + 10, + 86, + 82, + 31, + 23, + 9, + 74, + 57, + 38, + 32, + 4, + 97, + 92, + 89, + 73, + 60, + 58, + 33, + 30, + 18, + 3, + 78, + 72, + 67, + 63, + 51, + 28, + 84, + 83, + 62, + 48, + 46, + 45, + 43, + 41, + 22, + 17, + 15, + 13, + 7, + 98, + 93, + 87, + 77, + 68, + 66, + 64, + 59, + 49, + 29, + 16, + 14, + 12, + 8, + 1, + 0, + 73, + 39, + 98, + 93, + 91, + 54, + 92, + 75, + 47, + 45, + 44, + 11, + 86, + 78, + 77, + 70, + 58, + 55, + 38, + 16, + 14, + 8, + 62, + 52, + 89, + 83, + 67, + 65, + 21, + 2, + 82, + 57, + 34, + 18, + 7, + 90, + 79, + 68, + 66, + 46, + 41, + 31, + 17, + 13, + 3, + 94, + 85, + 80, + 76, + 74, + 72, + 61, + 28, + 24, + 20, + 88, + 50, + 49, + 48, + 35, + 30, + 19, + 1, + 99, + 97, + 87, + 81, + 64, + 56, + 53, + 33, + 26, + 15, + 9, +}; + +sparse_int_t H_cp[] = { + + 0, + 89, + 160, + 231, + 320, + 388, + 470, + 538, + 611, + 651, + 708, + 768, + 846, + 909, + 980, + 1048, + 1133, + 1220, + 1296, + 1359, + 1388, + 1444, + 1516, + 1593, + 1658, + 1717, + 1773, + 1841, + 1889, + 1962, + 2027, + 2111, + 2192, + 2242, + 2323, + 2393, + 2455, + 2485, + 2552, + 2620, + 2675, + 2741, + 2822, + 2876, + 2955, + 3016, + 3085, + 3157, + 3242, + 3323, + 3400, + 3475, + 3549, + 3624, + 3681, + 3739, + 3812, + 3876, + 3947, + 4028, + 4104, + 4186, + 4231, + 4304, + 4350, + 4414, + 4492, + 4575, + 4635, + 4704, + 4772, + 4844, + 4899, + 4979, + 5043, + 5128, + 5197, + 5276, + 5352, + 5431, + 5492, + 5558, + 5638, + 5717, + 5797, + 5860, + 5930, + 6008, + 6099, + 6174, + 6238, + 6306, + 6382, + 6441, + 6503, + 6575, + 6621, + 6660, + 6727, + 6800, + 6874, +}; + +real_t H_val[] = { + + 0.0036400623550257604, + 4.3451375820987274e-05, + 2.8154529321024527e-05, + 1.058349284017026e-06, + 1.5817505577012435e-06, + 0.00036269699602366277, + 1.5939223154984972e-06, + 1.9905781613356547e-05, + 0.006617942237573037, + 1.4703237898637284e-05, + 2.532220139804081e-05, + 2.0400045701197958e-05, + 9.786425522897559e-05, + 8.733381168004906e-06, + 0.008630783726605808, + 7.365929642574257e-05, + 5.8718839345831116e-05, + 1.1663596453736771e-05, + 0.007160597590819221, + 0.007847234151793583, + 4.799118855640533e-06, + 2.1017098271407778e-05, + 3.2854142780819036e-05, + 0.00012032027402574883, + 4.695908205301601e-05, + 3.391891618363114e-05, + 6.865839426972015e-08, + 0.00450565985570487, + 5.923465003761426e-07, + 1.6407079694044695e-06, + 1.1026494536511072e-06, + 2.0999175882370937e-06, + 0.0011110333225029594, + 1.8656782760597722e-05, + 0.00016463726515054288, + 1.9764588428937462e-05, + 7.048804349060899e-05, + 0.00016526594818091914, + 1.5739800122089514e-05, + 8.544810389600539e-05, + 0.0044510452107628835, + 0.00010202137810034909, + 3.076454718646216e-05, + 0.007042734309568557, + 0.00010528753431476505, + 0.00016056771047132448, + 3.89090190295633e-05, + 8.310218795996274e-05, + 2.6534495447257202e-05, + 0.005896520474143277, + 0.00010760530953880158, + 4.262629380572652e-05, + 3.7686390290702356e-05, + 1.0482807165536582e-05, + 8.2936366790311e-06, + 9.142508566084441e-05, + 0.0063393024704901345, + 4.2655792352873584e-05, + 0.009014740192242751, + 9.478196456125603e-05, + 0.00972144003206556, + 0.0001277688390982566, + 7.472068481635205e-05, + 1.8734155484644436e-06, + 1.5242491587519319e-05, + 7.71081508500837e-05, + 0.00010322667475459351, + 1.7857945324176098e-05, + 2.2088685428722426e-05, + 9.081164422170525e-05, + 7.412144330241568e-06, + 5.321768311467811e-05, + 8.54482043585373e-06, + 0.0019207585976825402, + 0.00011036718862435829, + 0.005713878505717975, + 0.008965663068428692, + 0.0029512563984702782, + 0.009287224138628118, + 0.008239347700691868, + 0.006329999010846514, + 0.005794533630906074, + 0.00574581527221644, + 0.0015286668560874448, + 0.0034194658432815557, + 0.007546820998713696, + 0.0020986143266744518, + 0.00848804115945128, + 1.0174228790450237, + 3.6211453017926045e-05, + 2.4723271872059743e-05, + 3.655322791892029e-05, + 1.1858073903861733e-05, + 8.138762190459502e-06, + 8.27067019911165e-06, + 8.098320768821391e-05, + 2.244436982658596e-06, + 0.0023922321366585796, + 1.6888929301382213e-05, + 4.8878825131751535e-05, + 3.366232988367765e-05, + 5.6550313371836705e-05, + 2.6958770302895138e-05, + 7.467161408604157e-05, + 5.018358904242168e-05, + 4.6357147705395986e-05, + 4.772181923265292e-06, + 4.1637468351522585e-05, + 0.005018402425556384, + 2.3102054619062538e-05, + 8.287239270239654e-05, + 1.6206885535492838e-05, + 5.422057846185583e-06, + 6.623595464622124e-05, + 7.419416670917138e-05, + 5.3873092159245e-05, + 0.009613346311948063, + 5.408312218936873e-05, + 5.264850636123655e-05, + 6.222207450410723e-05, + 2.5283835845936842e-05, + 0.00674617791236786, + 3.9709134277977404e-05, + 0.00842634005475897, + 5.0148776047508897e-05, + 6.522745373782873e-05, + 9.160651790060595e-05, + 0.00010183618537375991, + 0.0001204369410194575, + 9.45527466148835e-05, + 0.005131700163305644, + 0.00010653288579349231, + 7.014458098379015e-06, + 5.8729422882028494e-05, + 9.399386408590776e-05, + 0.0001129253805894384, + 7.645574527309935e-05, + 5.312082381498302e-05, + 2.8651042860903155e-05, + 0.00012261209406726128, + 5.263317597042702e-06, + 5.524170723711119e-05, + 5.386498799229628e-05, + 0.003258991502252713, + 0.00011036718862435829, + 0.008788743162951177, + 0.0009830902887607762, + 0.007315470196481674, + 0.006357808687633092, + 0.0027643037349795144, + 0.006085598405466598, + 0.0033801536148952, + 0.009060445131141749, + 0.009882759593724188, + 0.0006949372352616699, + 0.004220681095862514, + 0.012006271154335118, + 0.012813625909626442, + 0.00589213577782564, + 1.0096901756319723, + 1.972049328233557e-06, + 2.2433062721085766e-06, + 2.132797269703622e-06, + 1.933607075234137e-05, + 1.5324605124138993e-05, + 2.7934513576924285e-05, + 2.1276079051268394e-05, + 9.514188887823765e-06, + 6.627270386680282e-07, + 2.691506463774306e-06, + 0.0010612541856490243, + 1.1862578488334266e-06, + 1.656838550283511e-06, + 1.990227659369478e-06, + 4.558479926457905e-05, + 3.1492717831146598e-06, + 3.9331586555146806e-05, + 9.849916266201628e-06, + 1.440955553962265e-05, + 4.442344954711435e-05, + 0.0004195966818797722, + 7.092098892430295e-05, + 5.351529579156392e-05, + 0.004634066879474433, + 0.00788135828673028, + 0.0011035844870068423, + 9.108396625983994e-06, + 4.5744979932388834e-06, + 3.658505363849941e-05, + 0.00011449612249317954, + 5.367080479121616e-05, + 0.007536101314779872, + 7.932889293692498e-06, + 6.040915927635078e-05, + 3.0345710219469527e-05, + 1.5765266083114732e-05, + 0.007496747275018019, + 5.477360401773848e-05, + 0.00010740660096765256, + 4.7298225712617244e-05, + 0.007636030670880136, + 3.86650835506941e-05, + 7.339128572956441e-05, + 4.892233214493144e-05, + 8.031746833525979e-06, + 9.500151198094398e-05, + 7.891320233959729e-05, + 0.008774287957556134, + 5.454227235294692e-05, + 7.310290289575026e-06, + 0.00012240969635691026, + 7.473978611656519e-06, + 8.749361914559068e-05, + 6.094138202063724e-05, + 1.0786968122519265e-05, + 3.9008191727962326e-05, + 0.007720895238812851, + 0.009630677550983137, + 0.0008094970202235607, + 0.007513842671876183, + 0.004367331740704896, + 0.009041327173160378, + 0.009395193044154506, + 0.007106771127311314, + 0.0025027531135822763, + 0.001505445880622247, + 0.00032154997618342605, + 0.004275057037133662, + 0.0030972922175133, + 0.0019747358368568304, + 1.000396397501358, + 1.0443226802502651e-05, + 0.009743049631104774, + 3.1492717831146598e-06, + 5.433155133322079e-06, + 1.3878170459442497e-05, + 6.205293339025682e-06, + 5.326649168148768e-05, + 1.984736516522655e-05, + 0.008550548609811963, + 3.1527067534437825e-05, + 4.7248459417462044e-06, + 2.9408081782277706e-06, + 0.00010938912433855871, + 2.4213688635566925e-06, + 0.0005275661483209082, + 4.634868129524442e-05, + 4.3275702448087675e-05, + 6.787198893609816e-05, + 3.0274665047374855e-05, + 0.007790053939240377, + 5.8670941981003886e-05, + 6.37028078542803e-05, + 9.79414383924028e-05, + 1.833190249544069e-05, + 5.616434308975793e-05, + 0.004432264135737421, + 5.393172876158273e-05, + 6.101829323367727e-05, + 6.442624923415236e-05, + 7.583882756894263e-05, + 2.8292786126268883e-06, + 0.00012382073634337326, + 3.194862700383684e-06, + 0.0012815068139153654, + 9.262511050021996e-06, + 5.124321109448016e-05, + 7.419336729443077e-07, + 0.005738400102416387, + 2.6463650851974373e-05, + 3.749231695173124e-05, + 0.00011307173467956233, + 5.276511670132932e-05, + 0.00010015603807410011, + 6.944150722416447e-05, + 3.819063871128943e-06, + 2.6087163904935546e-05, + 6.771638314171035e-05, + 5.4053340630327065e-05, + 2.3321140638181313e-05, + 0.008315295754634805, + 7.755706793911599e-05, + 7.216524130910202e-05, + 0.00010527569821340091, + 6.648775300564829e-05, + 0.00013430194690215467, + 0.00019408068036398684, + 0.006586798633828459, + 6.965275646704858e-05, + 0.00016966285388558808, + 0.007973859332807587, + 9.513935743872953e-05, + 1.1173546844994064e-05, + 4.5523933983688476e-05, + 1.9266161726239038e-05, + 0.0020350525021958785, + 0.00014087934069183532, + 0.00694616003156225, + 0.00010411803164345695, + 0.00011889205758591477, + 3.8513269850336475e-05, + 6.807367336737874e-05, + 0.00013379945568627112, + 0.008665013304399156, + 0.0023031022140271094, + 0.002235762253920633, + 0.004679745180711632, + 0.008164860638231877, + 0.009496872318820002, + 0.007281113407364993, + 0.006620078112091664, + 0.009902295270012016, + 0.00890671898717624, + 0.005873673790252434, + 0.0017204913863231868, + 0.00629538472814543, + 0.007908396123318565, + 1.005946206360871, + 0.003258991502252713, + 0.0019207585976825402, + 2.162203723537085e-05, + 1.8853793968401794e-05, + 4.573845607783466e-06, + 8.17597435056736e-06, + 4.654126826922435e-07, + 8.645709649879834e-07, + 1.3866946691552715e-05, + 8.760010546227632e-06, + 0.0020676055741927837, + 1.66515736182694e-05, + 1.0116095375722495e-05, + 1.3460548600472357e-05, + 0.008441282349888507, + 8.565419016550504e-05, + 0.002284715759170237, + 2.983059461560402e-05, + 8.218202439742403e-05, + 3.453785158693196e-05, + 4.628791292582566e-05, + 1.9429607794752888e-05, + 0.004455228636882102, + 3.5838112986402865e-05, + 8.780755167910766e-05, + 1.9579120926910124e-05, + 2.3726769872314397e-05, + 9.364696675739478e-05, + 5.905432437917108e-05, + 3.191452729950644e-05, + 5.7954976624182934e-05, + 7.705892301173354e-05, + 2.1432104694935766e-05, + 3.1968056060833624e-05, + 2.058697160405831e-05, + 6.841599600088951e-05, + 1.2827787409715243e-05, + 3.2874580211676028e-06, + 2.134225602766022e-05, + 0.003224498097106496, + 9.73683053803303e-05, + 3.398949873757143e-05, + 4.5865172442288695e-05, + 5.8718839345831116e-05, + 5.646706491604017e-05, + 2.3104780332391485e-05, + 5.109858086914298e-05, + 3.781020879821394e-05, + 8.714215975638049e-06, + 0.003131018813857472, + 2.534535230410747e-05, + 7.044948047777424e-05, + 2.0879152531223147e-05, + 4.611385404600837e-05, + 7.846915829260045e-05, + 2.6713893738560452e-06, + 6.289543888777127e-05, + 0.006843301367477539, + 2.8884471967897036e-05, + 0.009827093921226878, + 0.0002095266612916967, + 0.004449428258901354, + 0.015334495722877418, + 0.0067128941927253345, + 0.005189010470211977, + 0.004507380604466488, + 0.00790089919579962, + 0.0034911392760475354, + 1.0002111134045482, + 0.008665013304399156, + 0.0037464921901482874, + 1.9459193714956095e-05, + 3.4937391624894854e-05, + 2.3477716972446635e-05, + 3.1326321629322294e-05, + 3.3405059603801925e-05, + 1.7541023247471673e-05, + 2.2413973752318735e-05, + 4.9736078040864996e-05, + 2.302150539269388e-05, + 5.2465533659413894e-05, + 2.8838670323751205e-05, + 5.2996539510238614e-05, + 8.971261774095474e-05, + 0.008978981047742522, + 4.700870048947649e-05, + 9.822974678059222e-05, + 5.425778203040552e-05, + 1.9888207898990585e-05, + 5.988673040886737e-05, + 1.3264134839712206e-05, + 2.306744948090414e-05, + 2.2085715213219096e-05, + 3.8701093554956196e-05, + 9.824640203003823e-05, + 0.007560260915174101, + 4.783186967344497e-06, + 0.00011449612249317954, + 2.7597202625547482e-05, + 2.799583849796062e-05, + 0.007388783088336085, + 0.006358011194064177, + 0.004193107812289965, + 7.929394171683288e-05, + 0.00016616202787009891, + 0.009362403878072032, + 5.5021419861820435e-05, + 2.6194607769450517e-05, + 4.88493666609293e-05, + 3.8313342227535594e-05, + 0.008601017543635006, + 0.00481031758485341, + 3.3583569172584694e-05, + 3.469139439790145e-05, + 2.1816080408894437e-05, + 5.0340873321860937e-05, + 0.001682110924335416, + 3.120558757653484e-05, + 1.2767150636099418e-05, + 0.00010015603807410011, + 5.311863651417748e-05, + 3.5510223520742805e-05, + 0.00011032302460473533, + 8.058865452382106e-05, + 3.6018542032361736e-05, + 1.6512283763228777e-06, + 7.128019767737525e-05, + 4.413969271119868e-05, + 0.004272437696748578, + 2.8884471967897036e-05, + 0.010279256328935539, + 0.005184694759674665, + 0.0008344352091233543, + 0.009543969020334744, + 0.004544223191595411, + 0.001842198992963593, + 0.006026699609445051, + 0.006615910659592654, + 4.679176487596852e-05, + 0.00012730643180779922, + 9.682822996583617e-05, + 8.369797878943574e-05, + 0.00012168058179273745, + 0.009918597864277588, + 6.717291162328866e-05, + 0.00016112846705804528, + 1.2083727420730855e-05, + 6.798716119619028e-05, + 0.0001841780532802329, + 0.006124314870517229, + 1.0007289097506258, + 0.00848804115945128, + 1.692812113220369e-05, + 3.025985047345458e-05, + 2.7396178308899984e-05, + 2.411402431329091e-05, + 7.91477008687552e-07, + 4.8643705562024125e-05, + 8.844973558735425e-06, + 0.0017964531586413168, + 2.80291057979106e-05, + 2.4093961985278423e-06, + 1.4570802453701416e-05, + 4.348502496106574e-07, + 1.3264134839712206e-05, + 5.066528936150447e-07, + 0.003405796470211449, + 7.01836851398739e-07, + 1.9466631885063608e-05, + 5.237202499739881e-05, + 3.717180985853054e-05, + 1.4378863651314058e-05, + 2.4633857595563536e-05, + 3.711164678999354e-05, + 3.272912969732364e-05, + 3.1968056060833624e-05, + 5.801413329136704e-05, + 4.3330251548595315e-05, + 3.061178252104105e-05, + 5.44501718787695e-05, + 7.50989203964441e-05, + 5.030491643952388e-05, + 0.00710973449326894, + 8.85326354907516e-05, + 2.0442660856813986e-05, + 2.0262792069064637e-05, + 0.0050024275339864265, + 2.6320072321074858e-05, + 6.948461639102615e-06, + 8.017101377762257e-06, + 1.0976407265594007e-05, + 4.990940581764883e-06, + 1.736187378464362e-05, + 0.0025523243434428344, + 3.076454718646216e-05, + 7.045607431884256e-05, + 6.305125415772337e-05, + 2.2346628787836468e-05, + 2.350896238431244e-05, + 0.00022920125990033514, + 6.570378455831617e-05, + 0.004427875840624922, + 6.060744515201521e-05, + 0.00012431712551823294, + 0.00011067717192639689, + 0.0074307455469537894, + 9.413567699746329e-05, + 9.262511050021996e-06, + 0.007738007485690339, + 0.0014518138740913999, + 0.0073028517638831615, + 0.0015313480060440388, + 0.0094797029371434, + 0.005788183044113987, + 0.014410087504995148, + 0.0024285342700700054, + 0.008170787291719226, + 0.003847059050273734, + 1.0002261925286142, + 0.005131700163305644, + 3.0438108375714784e-05, + 0.00961631256625307, + 0.004912962484832755, + 9.915672087837691e-05, + 4.968771746824327e-06, + 2.6361602054917756e-07, + 5.292434468074637e-06, + 1.2001044159749209e-05, + 3.746600959227912e-05, + 8.971261774095474e-05, + 5.356863279872683e-05, + 3.4603896728465273e-05, + 2.9001661252149522e-05, + 5.351529579156392e-05, + 0.0077918063111136705, + 4.0955284985322874e-05, + 7.076122568641112e-05, + 3.6412947427721105e-05, + 0.00019557453083133506, + 1.484422174725565e-05, + 1.6002638384314436e-05, + 0.007245395472591905, + 0.004990979010645134, + 4.2537623301663954e-05, + 1.0116095375722495e-05, + 4.419183138808709e-05, + 0.005248188198912619, + 7.256143633448298e-05, + 5.70986654635919e-05, + 1.7466550890309995e-05, + 0.00821078361998241, + 2.2283096906311314e-05, + 2.8118112264122915e-05, + 0.009180813294514662, + 2.3261520739724016e-05, + 0.00014086511687519626, + 7.199308136705757e-05, + 0.00509972235949859, + 4.9384061889323554e-05, + 6.264312554818843e-05, + 0.0012873218666964255, + 9.519664087722381e-05, + 1.8264595375149003e-05, + 6.813742258479065e-05, + 0.007255851338711169, + 5.314382935454645e-05, + 5.8670941981003886e-05, + 4.695908205301601e-05, + 6.162322138123376e-05, + 4.5873095412197237e-07, + 0.0002192081488419424, + 5.742437076531531e-05, + 4.014318685652859e-05, + 3.8142605394287925e-05, + 6.518935957422784e-05, + 8.167398243961086e-06, + 5.6797153003323836e-05, + 6.278689984787101e-05, + 4.713844281200795e-05, + 6.85314599261555e-05, + 0.000114720592022372, + 0.00011241173024402446, + 6.934688987924458e-05, + 0.007029917261468195, + 0.0039026607996137945, + 0.007621533699389588, + 0.0006133619759453804, + 0.0047020195291187054, + 0.008526010875557077, + 0.00930010985615086, + 0.003773876249747763, + 1.000556336660357, + 0.00674617791236786, + 2.9297849743894987e-05, + 3.447538930700454e-05, + 1.4517033957637429e-05, + 0.0036591943541357543, + 5.375142952456956e-06, + 3.4815135325005485e-05, + 3.084836036525695e-05, + 8.464235497657132e-06, + 4.948738034557916e-06, + 0.009283357720056219, + 5.763283032282485e-05, + 6.509424345376619e-05, + 7.083136365453295e-05, + 7.492454513155434e-06, + 4.036930180264357e-05, + 1.5593738377884085e-05, + 1.9541155247926564e-06, + 4.425405285903667e-05, + 5.7314371833237866e-05, + 0.005343984402739459, + 4.2987315002756274e-05, + 3.903353172128735e-05, + 2.348488155839762e-05, + 2.3726769872314397e-05, + 0.0024031231029667446, + 0.003277712058412189, + 0.0018293532128421254, + 0.0010902598840878482, + 0.000605441247258067, + 0.0024404954301714054, + 0.00689029288331709, + 0.009295057053681489, + 0.007342720305307154, + 0.00817565329544597, + 0.0002642212429301426, + 0.007719854747045573, + 0.005603989538199428, + 1.0001280303623055, + 0.009613346311948063, + 0.00972144003206556, + 0.004346782317554877, + 1.8428138804039813e-05, + 2.7871435289212096e-06, + 5.424328468668677e-05, + 0.006068265635885829, + 4.4092287379431386e-05, + 1.7494555237466507e-05, + 1.1148407990794493e-06, + 2.4756254396915698e-05, + 2.026619213012e-06, + 2.3765530992957984e-06, + 6.843153149414602e-07, + 1.9833815079607923e-06, + 3.4857573364954245e-06, + 9.286554580186971e-07, + 7.809001938097258e-06, + 2.813328553469004e-05, + 3.843436658672674e-05, + 4.97397276280948e-06, + 1.953667039460254e-05, + 2.9001661252149522e-05, + 4.0027338875076087e-05, + 3.3563580092853017e-06, + 5.6874060280116495e-06, + 0.0007922004510952769, + 4.2994741473518604e-08, + 2.2427517869522524e-05, + 5.433155133322079e-06, + 4.4844266449640813e-05, + 0.0033616025774451984, + 4.7368254369153736e-05, + 2.452345987381312e-05, + 3.085198020461461e-05, + 1.6112585805222823e-05, + 0.004060612310993983, + 4.73731084926689e-05, + 0.006076959034976081, + 5.477360401773848e-05, + 3.155285473097504e-05, + 4.2474491256049146e-05, + 0.0004400256081269027, + 0.004092254801917959, + 2.7418689915131593e-05, + 2.7100601453882536e-05, + 2.562502621448758e-05, + 3.8313342227535594e-05, + 0.008111144119919436, + 0.001357161489069189, + 0.0008191279921094674, + 0.008272674602401412, + 0.009532371787812329, + 0.004090065904547754, + 0.0012857957851166912, + 0.009640569433551922, + 0.004073822791191404, + 0.008813855862781005, + 1.00013773783821, + 0.006037442885632564, + 5.800260442591195e-05, + 2.6905188075855888e-05, + 1.8052719752213758e-05, + 2.7934513576924285e-05, + 6.684710209514219e-06, + 1.7917148373883355e-05, + 2.6281148204999713e-05, + 2.6075990744894606e-06, + 5.636155674345554e-06, + 1.9600997227302497e-06, + 3.082805406460417e-06, + 0.00640193868537032, + 5.49233249363574e-05, + 4.35156286886779e-05, + 2.8591836887176645e-06, + 1.437187119899864e-06, + 4.5311896319640864e-05, + 4.5190161299316886e-05, + 6.757292987282388e-05, + 9.782597090310911e-05, + 0.009832220847402985, + 5.66267224832227e-05, + 1.2987571936806203e-05, + 0.0009155504675766507, + 1.78718978296062e-05, + 4.334605723171568e-05, + 7.63198582473916e-05, + 7.494947992189717e-07, + 2.4756254396915698e-05, + 1.778782434313251e-06, + 1.1918029804950755e-06, + 3.9338609163468106e-07, + 3.0294756990803786e-05, + 4.412902333975753e-05, + 5.669926894785835e-05, + 4.348502496106574e-07, + 0.0008070845419398598, + 5.010532596552045e-06, + 1.7419893057828467e-05, + 4.62165565302197e-05, + 7.492454513155434e-06, + 0.00025118900478544144, + 2.1078685517739725e-05, + 2.9901307237916217e-05, + 1.5200482383733676e-05, + 0.002681107746571281, + 1.959416426729882e-05, + 0.0003744931963655796, + 0.012483629336950668, + 0.0030543276608787084, + 0.006164328751618406, + 0.00852430417569119, + 0.007254780340154869, + 0.00041322251086869325, + 0.009116386897353035, + 0.004851393663705584, + 1.0001992453416453, + 0.004272437696748578, + 0.006843301367477539, + 6.374362258410816e-05, + 4.9736078040864996e-05, + 5.1116032814248954e-05, + 3.4306264474122114e-05, + 3.557441043217354e-05, + 5.757301024859485e-05, + 3.101156235952684e-05, + 5.951938020031008e-06, + 6.782242961139645e-05, + 2.2621518051178686e-05, + 3.3820810315839816e-05, + 0.007629929362896941, + 4.62165565302197e-05, + 7.083136365453295e-05, + 1.6867752071647554e-06, + 0.007158975274909028, + 2.3365918073951653e-06, + 0.006691148114714365, + 1.8160182746121535e-05, + 8.119893134280176e-06, + 1.951610783233207e-05, + 4.794687006752578e-05, + 7.097168045875709e-05, + 2.529100990073698e-05, + 1.0025578146460832e-05, + 0.006330940003646736, + 1.914398375550642e-05, + 7.405308840517132e-06, + 4.2254995780583525e-05, + 0.0031233784413476104, + 1.992624250485789e-05, + 2.1432104694935766e-05, + 7.142381266046672e-05, + 3.9008191727962326e-05, + 0.00010016745206491854, + 0.009083110322041153, + 9.155010186532908e-05, + 4.351836384074313e-05, + 0.00014331101054724154, + 9.297493441906668e-05, + 0.0001581423678117155, + 5.128940535339805e-05, + 1.2029221063479777e-05, + 7.861658049290633e-05, + 0.009849147660169047, + 4.2143961054239465e-05, + 0.00010202137810034909, + 4.5377225727068476e-05, + 0.00010429519486518364, + 4.324578616775226e-05, + 0.0005189204241672527, + 4.231651410967184e-05, + 1.0605426200807425e-05, + 4.5049929939845996e-05, + 9.413567699746329e-05, + 1.380184495252424e-07, + 6.865750563308246e-05, + 5.7243482353636986e-05, + 0.002314784955476499, + 5.392157334207365e-05, + 2.47563889274485e-05, + 2.467467834180957e-06, + 1.5766822889265075e-05, + 1.590347727310638e-06, + 2.2944254966470916e-05, + 0.0014219585134118678, + 0.005835945780210611, + 0.005215496332165455, + 0.0020350525021958785, + 1.4573046498807523e-05, + 0.005903640664409296, + 0.0044026206126353655, + 0.007118970625743312, + 0.0001406914175397761, + 0.004809264790915783, + 1.0180586134528515, + 0.003773876249747763, + 2.5283835845936842e-05, + 8.181167154527567e-06, + 3.683536136168756e-05, + 5.0087594202736606e-05, + 2.8684972057005484e-06, + 5.259205737729365e-05, + 0.008694167441570979, + 4.2537623301663954e-05, + 5.6189019332360594e-06, + 0.0024160246204003987, + 2.398559145833957e-05, + 7.358615837206509e-06, + 3.269166597623609e-05, + 1.8323805044617538e-05, + 5.168247156296229e-05, + 4.279874378483436e-05, + 0.006810501117304453, + 6.547496387070687e-05, + 4.862023104542222e-05, + 4.0123999081499147e-05, + 8.073755821739811e-05, + 7.661734569325919e-05, + 4.548301416806034e-06, + 0.00013666632960500865, + 3.1424659084850304e-05, + 7.705892301173354e-05, + 0.0001423670210546449, + 0.00010264068062069862, + 8.85326354907516e-05, + 4.837751437608723e-05, + 2.1516653637500003e-05, + 5.7681226031826427e-05, + 5.950574219013195e-05, + 0.0001055661057078594, + 3.293840406858189e-05, + 3.0768169071865856e-05, + 0.005221264934321769, + 0.003566473707317041, + 0.003614653284985154, + 0.007559658489312481, + 0.015694012931671365, + 0.00224369175698486, + 0.009118215936367427, + 0.0017603968215497067, + 0.003501122986141881, + 0.008105714809448456, + 0.006834344870539171, + 0.0014219585134118678, + 1.3467076728030982e-05, + 0.00015990344757346706, + 1.0251676266438782e-05, + 5.597548049290373e-05, + 3.160726188317129e-06, + 1.3433271666820882e-05, + 3.8611487076955e-05, + 5.208940248579786e-05, + 0.00010829417935510544, + 4.581627553562489e-05, + 3.7911742073489405e-05, + 5.09326705826915e-05, + 1.0003144202198913, + 0.005603989538199428, + 5.3873092159245e-05, + 9.478196456125603e-05, + 0.003514649711063711, + 5.52110992687459e-06, + 4.812960853350476e-06, + 1.0436275612713423e-06, + 1.5202867029995339e-05, + 3.9574365777364284e-07, + 1.719028176153091e-05, + 1.274185590414587e-05, + 1.6007448693199368e-06, + 0.0013524119124650137, + 1.083030484391954e-07, + 1.286742358858376e-05, + 1.2569418638884622e-05, + 3.1283205561362908e-06, + 4.948738034557916e-06, + 4.64572228654459e-05, + 7.236902666097318e-05, + 2.2427517869522524e-05, + 4.1328595096240814e-05, + 6.343447748240056e-05, + 1.5676400112376638e-05, + 1.7404626310910644e-05, + 3.122237635000989e-05, + 4.413367626682505e-05, + 1.9635237808574706e-05, + 0.00855284750328267, + 5.6265324282509934e-05, + 0.003516730555426826, + 1.5901806361230987e-05, + 3.1424659084850304e-05, + 1.992624250485789e-05, + 3.272912969732364e-05, + 8.61084221273961e-05, + 6.511645296408814e-05, + 6.911311528819053e-06, + 0.009151840802452679, + 0.006803726876170835, + 4.5865172442288695e-05, + 7.365929642574257e-05, + 5.966011299312112e-05, + 6.304818718883307e-05, + 2.1655730003934487e-05, + 1.1621207799905132e-05, + 2.7073737897301418e-05, + 3.8941321970515616e-05, + 3.689614821820535e-05, + 2.2086846522067662e-05, + 4.129705794276378e-05, + 1.9452907879640914e-05, + 3.709196423785288e-05, + 0.0025021376078974, + 0.004193048518656666, + 2.6451525648099112e-05, + 9.513935743872953e-05, + 0.007525119344665386, + 0.00012090014934069268, + 0.00571553669088225, + 5.7475994530403656e-05, + 0.0013346887928212846, + 0.005471422643999203, + 0.007214311791655111, + 0.0011618057425408913, + 0.007812569537828521, + 0.0029778643265331926, + 0.006714025703901893, + 0.0011608902738247868, + 0.004095080169476463, + 0.006021015435910667, + 0.004094639868977095, + 1.0002535656443527, + 0.007029917261468195, + 6.526940843802335e-05, + 3.3864510266791785e-05, + 7.474339543658002e-05, + 2.7642468420145466e-05, + 8.453434392048e-06, + 4.431658039795528e-06, + 5.214824211776975e-06, + 7.623227138481154e-05, + 0.000553497892180952, + 8.130561009949154e-07, + 1.5070953927305015e-06, + 5.144251287968885e-06, + 1.3780010086691152e-05, + 5.414460890939888e-06, + 8.159669202728204e-06, + 7.088415884733152e-06, + 0.0011279691886657696, + 3.5019940290114174e-05, + 8.052582566310962e-06, + 0.00011214618521792638, + 8.100221253346378e-07, + 4.4724072133743586e-05, + 1.103134707835397e-06, + 0.00015054319828436234, + 3.20055874953058e-05, + 0.00012069185503087766, + 0.007589957624907277, + 1.2767150636099418e-05, + 5.276511670132932e-05, + 0.015956462186832294, + 0.006532895409013626, + 0.00795786731176502, + 0.0009234583894543225, + 0.007715697260558262, + 0.0018410580341127881, + 0.008406326448191252, + 0.0016311467511667876, + 0.006740073564627112, + 0.008032634006271282, + 2.6714321060972634e-07, + 1.817098185835928e-05, + 5.464070852933514e-06, + 3.108609273131704e-05, + 3.3996998096963766e-05, + 0.009300587252411117, + 4.146895381538172e-05, + 8.40175663732779e-05, + 4.488390245325977e-06, + 9.936512573515954e-05, + 2.1595110644548335e-05, + 0.004094639868977095, + 6.934688987924458e-05, + 0.008467305956396259, + 2.5296822458611236e-05, + 0.007255646153887324, + 1.858511569018207e-05, + 4.352960566006824e-06, + 1.8500337692731853e-05, + 5.322016823308476e-05, + 0.00014935807139830338, + 5.666986257986792e-05, + 9.054949682981293e-05, + 7.16441690773409e-05, + 1.000275395407536, + 5.09326705826915e-05, + 0.007719854747045573, + 7.419416670917138e-05, + 0.009014740192242751, + 4.8084221300370924e-06, + 1.843783095389692e-05, + 1.8221410812353872e-05, + 1.777519615716201e-05, + 1.877302672780624e-05, + 4.107847715552589e-05, + 3.63114731874677e-05, + 1.4482501638671528e-05, + 2.141230278799636e-05, + 8.572392299435928e-05, + 3.9934496549270716e-05, + 0.004934645058048987, + 0.00813513284380525, + 5.9923237944393764e-05, + 8.294525405860026e-06, + 2.6203882320019604e-05, + 5.669926894785835e-05, + 1.4570802453701416e-05, + 5.988673040886737e-05, + 1.839517068585072e-05, + 1.0439763834962318e-05, + 1.1519857580317528e-05, + 0.0012684392689259717, + 1.2510973873916954e-05, + 0.0019700424201241754, + 7.582184626453817e-05, + 7.501128852404918e-05, + 2.321148905500842e-05, + 5.887316971243261e-05, + 0.008222564658297488, + 2.534535230410747e-05, + 0.009809863027986832, + 0.009127873853865254, + 0.008073456212003685, + 0.008334515044103877, + 0.00883762015458032, + 0.007973859332807587, + 6.783584304793724e-05, + 3.4421275378160735e-07, + 4.485651296957946e-05, + 2.8032026778863344e-07, + 0.0019337748315410668, + 3.779260422389367e-05, + 5.31320982239297e-05, + 6.381972097879172e-05, + 3.537073978440055e-05, + 0.005804125652252279, + 4.280316431475197e-05, + 2.1595110644548335e-05, + 0.006021015435910667, + 0.00011241173024402446, + 3.627360518329618e-05, + 0.007507237381039352, + 9.10611133788154e-05, + 0.0001035434114937968, + 3.0625251536410894e-05, + 0.00010091988110382644, + 1.2031158987471699e-05, + 1.7007876674383676e-05, + 0.006834344870539171, + 2.2944254966470916e-05, + 0.009864768684482637, + 8.688208808112132e-05, + 0.00013652022364646203, + 8.366686264344738e-05, + 4.279985052176947e-05, + 1.1285596254064168e-05, + 0.00022212792443789914, + 0.0030008506551227453, + 0.008813855862781005, + 0.003047843274389201, + 5.699201280114511e-06, + 4.848704502905711e-05, + 0.0064067636604403086, + 0.0055860723141447684, + 3.5152894511271435e-05, + 0.007505476440510395, + 8.319739106311735e-05, + 0.00010981446149796692, + 4.7269354886358105e-06, + 0.00010448432381559467, + 2.2821029286700005e-05, + 2.5786673808607915e-05, + 1.000543071106035, + 0.00589213577782564, + 4.1662899268953135e-05, + 2.132797269703622e-06, + 0.007058824446817216, + 5.481084580463887e-05, + 4.5190161299316886e-05, + 7.190953694790406e-05, + 8.461744813480758e-05, + 0.00013449665841190302, + 7.395084545201742e-05, + 7.642218699679069e-05, + 1.594467635630258e-07, + 8.574514082806994e-05, + 0.004871900036639932, + 8.44689701773998e-05, + 1.6112585805222823e-05, + 6.324948152687383e-08, + 0.004448178781097971, + 1.7404626310910644e-05, + 7.490029829638944e-05, + 2.7897221652101157e-05, + 0.00010372821586498543, + 0.009530370211735932, + 7.666284096464855e-05, + 4.18825353448943e-05, + 0.00010345871344829712, + 3.2669094648244773e-06, + 0.00010548489137167106, + 7.806830397465771e-05, + 0.007404914265770819, + 8.805908936468158e-06, + 5.803857831012882e-06, + 1.4148013360018128e-05, + 3.019698382825305e-06, + 3.4841133653436712e-06, + 0.008750829676035217, + 4.2143961054239465e-05, + 0.0001088050593768327, + 0.00010779998862338913, + 8.445107658541375e-05, + 8.543183096335565e-05, + 6.936458064177405e-05, + 0.008659453264464056, + 3.120558757653484e-05, + 0.004533179197600133, + 3.004152528081633e-05, + 7.860681144132016e-05, + 6.242079514647868e-05, + 0.00011293821770791351, + 0.00015398277994120403, + 0.007125817969637223, + 0.0082645365245498, + 0.01169005897156178, + 0.0005409447801154472, + 0.0032229912057087124, + 0.00826115681055757, + 0.0034405225796962364, + 0.005204560921393831, + 0.0065922905508567185, + 0.0028683464195861283, + 0.007219324060662954, + 0.008222564658297488, + 0.003131018813857472, + 0.008315295754634805, + 5.841394323541241e-07, + 5.88847363590114e-05, + 8.651694171316354e-05, + 7.398325825980472e-05, + 0.0001284645428770314, + 1.9635793154361086e-06, + 2.058832098831185e-05, + 6.6127942078603766e-06, + 7.16441690773409e-05, + 3.7911742073489405e-05, + 0.0002642212429301426, + 4.2655792352873584e-05, + 4.119423434434955e-05, + 0.00013392696754589646, + 2.9204211939985304e-05, + 5.8641039681199165e-06, + 5.855432409621465e-05, + 0.0001502896301746381, + 3.689155146280462e-05, + 1.8660644278303113e-05, + 3.2699517481831474e-05, + 1.0005539499928202, + 0.003847059050273734, + 9.45527466148835e-05, + 0.00391967740274463, + 1.1461727965227623e-05, + 9.075276578589366e-05, + 0.0047951923711135385, + 4.498148682255461e-05, + 4.750657303075888e-05, + 3.3820810315839816e-05, + 4.918019805390054e-05, + 2.1796536959262597e-06, + 9.908776278140068e-06, + 4.333016980302816e-06, + 2.4093961985278423e-06, + 0.00011464695819708957, + 3.9953097404302765e-05, + 0.005562525093049638, + 9.862047675441458e-06, + 1.2380803640812112e-05, + 5.314728789067926e-05, + 2.562502621448758e-05, + 4.88493666609293e-05, + 5.5854783266968745e-05, + 6.77279581052288e-05, + 8.557631805263534e-06, + 1.1931230595413092e-05, + 6.619848851781917e-05, + 0.004213442564747276, + 5.018358904242168e-05, + 1.1026494536511072e-06, + 4.3880021412216516e-05, + 2.436312083575389e-05, + 4.928443982842512e-05, + 6.735818788402423e-05, + 0.006047231430546131, + 0.00408344249254145, + 6.442624923415236e-05, + 4.9810654609521915e-05, + 6.373008761573134e-05, + 1.959416426729882e-05, + 0.01165854614591907, + 0.0082483715939574, + 0.005454660455186017, + 0.00784335809733372, + 0.005760547974782387, + 0.008434198729491096, + 0.005892857278628511, + 0.0054098623552808365, + 0.005825670528245169, + 0.007125817969637223, + 0.005221264934321769, + 5.9320029439863275e-05, + 2.628279587583401e-07, + 7.454297128879022e-05, + 2.1404205094684842e-07, + 5.6973288496865745e-05, + 9.20890698185028e-05, + 8.76974162781124e-05, + 3.926594144929374e-05, + 4.280316431475197e-05, + 9.936512573515954e-05, + 0.004095080169476463, + 0.000114720592022372, + 0.009326835203001295, + 1.8417197291495864e-05, + 0.0013789509831549367, + 4.4290465341956033e-05, + 0.0013262776517449749, + 7.964997756107978e-05, + 1.0572160482083514e-05, + 1.5799611749605832e-05, + 3.7121389807687816e-05, + 0.006311483244382031, + 0.00014456637776158663, + 1.0352222185209052e-05, + 0.0072258859519244495, + 1.0003156453417406, + 0.0019747358368568304, + 0.00793893361762072, + 6.176049961778198e-05, + 4.005987306107562e-05, + 8.943649925289279e-06, + 3.369506848055413e-05, + 0.004710837294839253, + 3.9686777895044975e-05, + 1.3736242288739475e-05, + 5.458421368513962e-05, + 0.006195682247786596, + 6.129640226876825e-05, + 3.539059879489178e-05, + 3.47873892853305e-05, + 1.1519857580317528e-05, + 6.956014306610032e-06, + 0.0007520202876280246, + 7.868933400378229e-05, + 3.807858887188459e-06, + 4.543184892775909e-06, + 7.227804363621828e-06, + 7.000542902825968e-06, + 8.031746833525979e-06, + 5.5480085827694036e-05, + 4.7380954835658765e-05, + 1.2695145626776906e-05, + 4.909709825223077e-05, + 0.005511413361947338, + 2.4324983724006634e-07, + 1.4090856331832103e-06, + 1.649098475312688e-06, + 6.861453876372358e-07, + 7.863280354198881e-07, + 2.8074432059582885e-06, + 2.2152551541613593e-06, + 0.00018927640511463451, + 8.895582859343049e-07, + 3.5530845401021354e-06, + 5.314382935454645e-05, + 0.003988215269240574, + 0.00010672287848834117, + 0.005492684933484426, + 0.00014991626842961953, + 0.00415774313581574, + 0.008064959461052453, + 0.008659453264464056, + 0.007589957624907277, + 0.001682110924335416, + 9.067980198600438e-05, + 2.052195184514316e-06, + 5.267454634504788e-05, + 3.996606173962012e-05, + 8.942891187852903e-06, + 6.895434020954211e-06, + 0.009874079931003811, + 9.369045968381743e-06, + 8.382334225368937e-06, + 3.3215104390041955e-06, + 1.5398702046158918e-06, + 5.880937526079813e-06, + 1.0001554837903515, + 0.007908396123318565, + 5.386498799229628e-05, + 8.54482043585373e-06, + 6.360723619574272e-06, + 9.317462688392536e-06, + 3.356777733560644e-05, + 0.004828100933283703, + 3.2901582192803755e-05, + 4.585871273468841e-05, + 5.934792435440277e-06, + 1.953667039460254e-05, + 3.4603896728465273e-05, + 3.16864353202332e-06, + 4.154972671783279e-06, + 0.00048644854934731753, + 4.014886379571267e-06, + 4.783186967344497e-06, + 3.658505363849941e-05, + 3.232509725475268e-05, + 4.156106397999411e-06, + 9.853135724398703e-08, + 0.0004915262872471038, + 0.009262863782751712, + 0.0009509364771072949, + 0.0058645951237479765, + 0.00829695684417064, + 0.008106382247233694, + 0.009276745414995192, + 0.0077722776138475, + 0.006597636404530838, + 1.0000237879905225, + 0.005018402425556384, + 0.00706549802282827, + 6.51473398838025e-05, + 5.478106217644566e-05, + 4.202569748398294e-06, + 3.990835206191733e-06, + 1.049107635947085e-05, + 9.526712031344487e-05, + 4.552346662069953e-05, + 9.293417333806772e-05, + 4.750657303075888e-05, + 1.877302672780624e-05, + 2.147224746167066e-05, + 2.9990147075282934e-05, + 0.005850778163732161, + 2.055840385903111e-05, + 6.0060345185960196e-05, + 6.444748122258493e-05, + 2.4771419462574535e-05, + 1.3621500339103099e-06, + 0.0013096420345198375, + 9.563744905355311e-06, + 1.3926506083939243e-06, + 9.64519742464365e-06, + 7.142381266046672e-05, + 1.0786968122519265e-05, + 0.009924221952596258, + 1.6298167845171424e-06, + 1.9067817376664148e-05, + 2.9750955246120755e-05, + 0.00298039332094451, + 1.8656782760597722e-05, + 1.1752268666632123e-05, + 3.8907724284033985e-05, + 8.884186737477239e-06, + 0.006037553521700404, + 0.0008118108024197676, + 0.0017900443001192285, + 0.003607489004396031, + 0.0007179782566983814, + 0.009983239643101386, + 0.007382232899732989, + 0.006850510061810733, + 0.0027436258125378976, + 0.008189686869970838, + 3.316459337939621e-05, + 0.0017614905000378658, + 0.00215782461676853, + 1.6457045280624036e-05, + 0.00012218969694670703, + 0.0037919118349826818, + 1.0177223023903816, + 0.008064959461052453, + 6.936458064177405e-05, + 0.00012069185503087766, + 5.0340873321860937e-05, + 0.00011307173467956233, + 1.5169365522255912e-06, + 4.2505389300810915e-05, + 6.661613518538756e-05, + 1.7431546902319922e-06, + 5.481084580463887e-05, + 5.2504102984330765e-06, + 0.003230710684057512, + 5.652742040649498e-05, + 4.333016980302816e-06, + 2.6203882320019604e-05, + 1.6709407581142358e-05, + 1.6194195528969006e-06, + 1.8504975325063464e-05, + 8.37663585323914e-06, + 5.934792435440277e-06, + 4.97397276280948e-06, + 3.9045702490191184e-05, + 4.170074180386796e-05, + 4.953655337972678e-05, + 2.2149089869145255e-05, + 5.3235186612166245e-05, + 7.084291599007136e-05, + 9.830265710848967e-05, + 6.89877122653197e-05, + 2.0303929538564436e-05, + 8.257332596159574e-05, + 0.0078036394547676404, + 1.4997326509518679e-05, + 0.001254912207654518, + 0.008480512053198986, + 1.5901806361230987e-05, + 2.0400045701197958e-05, + 5.913696972297344e-05, + 5.5649786206448084e-05, + 7.238555613669371e-05, + 9.64519742464365e-06, + 6.094138202063724e-05, + 6.301974197764083e-05, + 0.008918644968355796, + 0.00010264068062069862, + 0.012865204471301449, + 0.00040951532149479774, + 0.003262568127085023, + 0.007320563611416953, + 0.008980663561578098, + 0.002246202067281234, + 0.005543813403275388, + 0.01574616148972817, + 0.009526728664990757, + 0.002532528169657162, + 0.0074307455469537894, + 0.0012815068139153654, + 8.163737875101414e-05, + 4.0346791468329965e-05, + 1.4663526011589675e-05, + 5.345428422257456e-05, + 4.0924344042050054e-05, + 4.6504964415883905e-05, + 1.8761291921232777e-06, + 4.376687482265514e-05, + 0.004851393663705584, + 4.413969271119868e-05, + 6.289543888777127e-05, + 3.586343427183496e-05, + 8.654641647049102e-05, + 0.008592458769033464, + 4.356112667058918e-05, + 0.00013146806430429055, + 1.0004190150021024, + 0.004809264790915783, + 0.00930010985615086, + 6.222207450410723e-05, + 0.003520165825018783, + 9.03558246672859e-06, + 2.1787544078622775e-05, + 4.221448294680072e-06, + 1.0481439960144256e-05, + 2.7583452473090147e-05, + 3.082805406460417e-06, + 4.470429515463049e-06, + 0.0021123970544425484, + 4.445366420884142e-05, + 1.594467635630258e-07, + 3.0453043375824447e-06, + 0.0030457536628856843, + 7.358615837206509e-06, + 7.288720745849373e-06, + 0.0031276072742181596, + 0.0025955043327308257, + 1.3142350549209993e-05, + 4.892233214493144e-05, + 1.7393470899108238e-05, + 2.1430325576489996e-05, + 5.15076415312748e-05, + 6.85439791623251e-05, + 0.008172434288961817, + 5.545703057791173e-05, + 6.89877122653197e-05, + 2.529100990073698e-05, + 5.6017542851683475e-05, + 4.266113161881524e-05, + 1.7160912740953665e-05, + 0.001344901064955023, + 3.398949873757143e-05, + 4.6518092916010685e-05, + 0.007620250945392171, + 4.699549064728338e-05, + 7.370596526041767e-05, + 3.066706376961309e-05, + 0.0056379696535372795, + 0.008482307511236168, + 3.5530845401021354e-06, + 0.00012032027402574883, + 6.902350664223597e-06, + 1.6306202238306393e-05, + 4.100952759170509e-05, + 0.0009201478342575923, + 2.7100601453882536e-05, + 2.6194607769450517e-05, + 0.0033159955720434213, + 0.005102547594472177, + 0.003043158741887113, + 0.007275297032222334, + 5.688094456474576e-05, + 7.979623164228452e-05, + 6.0430188781166103e-05, + 3.667290377192227e-05, + 0.00010056316074184729, + 7.807000346171727e-05, + 0.00010504777710321347, + 1.71528140695156e-05, + 0.00016966285388558808, + 4.8675343537910945e-05, + 5.233154862039399e-06, + 6.841527427324271e-05, + 4.798729591851256e-05, + 2.5844655406679966e-05, + 0.009360155982221886, + 7.854924150935622e-06, + 1.2737606264021523e-06, + 1.4874198614900185e-05, + 0.00557935728804668, + 0.008832053506273614, + 1.0003077707693604, + 3.926594144929374e-05, + 0.005804125652252279, + 4.488390245325977e-06, + 0.0011608902738247868, + 6.85314599261555e-05, + 0.008744145541964786, + 8.154231257388808e-05, + 4.1856189126207785e-05, + 2.7089114924897626e-05, + 5.706019083774347e-05, + 4.445366420884142e-05, + 7.236902666097318e-05, + 5.747989602628534e-05, + 0.007316043405194684, + 0.00010816771859609541, + 5.314728789067926e-05, + 3.085198020461461e-05, + 3.499529266183106e-05, + 2.401893992812954e-05, + 1.7230684945129012e-05, + 6.982511354897124e-05, + 6.226152553836605e-05, + 1.6888929301382213e-05, + 3.745663236051577e-05, + 7.431313644927198e-05, + 5.079816090900735e-06, + 3.117548029508032e-06, + 3.0856925473438306e-05, + 2.2756773597648387e-05, + 0.005638980724112857, + 0.007773325140821933, + 0.007938956551945167, + 0.003242508738519706, + 0.0075773494450229375, + 0.004418490344777326, + 0.009065125655137866, + 0.009782309454680381, + 0.0031757414411978605, + 0.004300984806407466, + 0.008664274028987562, + 0.0011313593767402364, + 0.009849147660169047, + 0.0025523243434428344, + 0.0044510452107628835, + 4.988319262381871e-05, + 4.055292891554118e-05, + 1.9073452472447576e-05, + 9.490674478102146e-05, + 0.006889523406357306, + 0.007219324060662954, + 5.887316971243261e-05, + 0.00010865683469747918, + 2.78444326678576e-05, + 7.564088304664701e-05, + 0.00011723158728588356, + 3.5625642103399774e-06, + 4.376687482265514e-05, + 0.009116386897353035, + 7.128019767737525e-05, + 0.00013616695276437934, + 1.6958464549274786e-05, + 0.007944636963792108, + 5.002017546540117e-05, + 0.00010459660272650717, + 0.009636119219212608, + 8.13393389642432e-05, + 2.6870034435190565e-05, + 1.0004047736401767, + 0.0034911392760475354, + 0.00013379945568627112, + 8.186621732546018e-05, + 5.403445097854669e-05, + 6.883962337457583e-05, + 5.281082680604117e-06, + 1.0003977443525997e-05, + 7.474339543658002e-05, + 3.2533800384630557e-05, + 5.023417761546015e-05, + 2.3477716972446635e-05, + 4.3451375820987274e-05, + 0.0070778397836248255, + 3.8744548382065554e-05, + 4.810990280897296e-05, + 3.1610493407164625e-06, + 1.5889218365970699e-06, + 4.5311896319640864e-05, + 0.008911991690964146, + 0.0068864505226439, + 2.3781942172827e-05, + 1.719028176153091e-05, + 9.548755468020766e-05, + 5.731589450935227e-05, + 0.000145030445193013, + 0.00010816771859609541, + 2.452345987381312e-05, + 0.014405048700368052, + 0.008918644968355796, + 0.00710973449326894, + 6.4177551223725635e-06, + 7.060536541393035e-05, + 5.73502575314267e-06, + 7.760430092050088e-05, + 5.896737874814423e-05, + 5.472011340191899e-05, + 7.853535375098192e-05, + 8.901347096340515e-05, + 0.008189686869970838, + 0.0063204791660593125, + 3.7779296004229136e-05, + 0.00015788936748717885, + 7.092654206774545e-05, + 4.89366368790601e-05, + 3.669353473460797e-05, + 4.7459302796212956e-05, + 0.005825670528245169, + 0.00015398277994120403, + 2.7271073892822847e-05, + 4.808848753479633e-05, + 4.101264839737831e-06, + 1.3592364534603364e-05, + 2.279851190786204e-05, + 2.545741842614761e-06, + 0.00013713865786819753, + 3.089131374698755e-06, + 3.5406938460700636e-05, + 1.0003688756664544, + 1.7007876674383676e-05, + 0.008105714809448456, + 1.590347727310638e-06, + 0.008016194859820336, + 4.163593054971914e-05, + 7.475390977604764e-05, + 5.023417761546015e-05, + 0.0026360543980688145, + 5.629750213349031e-06, + 7.944851687717692e-06, + 7.131101283954011e-06, + 5.2465533659413894e-05, + 7.627186117384875e-05, + 1.0222702906452622e-05, + 7.238555613669371e-05, + 8.749361914559068e-05, + 1.2511572762084668e-05, + 1.2234782130969098e-05, + 9.324987802129278e-06, + 2.1402630556665295e-05, + 1.2594651748272449e-05, + 0.002518284793421295, + 7.44429777262454e-06, + 0.0019505472223636333, + 0.0014745260047490116, + 0.006037553521700404, + 7.710549309795944e-05, + 5.400377972758566e-05, + 2.2056768611094835e-05, + 0.00652056301061857, + 3.005623947511771e-05, + 6.161934999922442e-05, + 1.851882951395248e-05, + 6.542968016277152e-05, + 6.938926754019389e-05, + 7.695933612238808e-06, + 7.861658049290633e-05, + 1.736187378464362e-05, + 8.544810389600539e-05, + 3.681826033099115e-05, + 6.785098793438811e-05, + 6.172582231664433e-05, + 0.0001226963844664554, + 6.415363463656095e-05, + 0.007275297032222334, + 4.735984999341235e-05, + 7.6171374432633975e-06, + 1.3632792315744896e-05, + 8.927093181596704e-06, + 6.478983772859016e-05, + 2.1376951580614815e-05, + 0.009676960075387354, + 1.849718928212902e-05, + 1.0002779240850257, + 0.006889523406357306, + 0.0028683464195861283, + 2.321148905500842e-05, + 8.714215975638049e-06, + 2.3321140638181313e-05, + 3.52533981816771e-05, + 3.4306264474122114e-05, + 0.001232839274524128, + 4.706223389482264e-05, + 2.1638565938509677e-05, + 9.671370476470335e-05, + 4.8643705562024125e-05, + 2.6109734895727233e-05, + 1.3736242288739475e-05, + 1.484422174725565e-05, + 0.005453446633799271, + 2.3242003711048557e-05, + 1.741084018960257e-05, + 8.738491375979277e-06, + 1.9299368127396475e-05, + 1.6946522582387045e-05, + 0.002988631887868677, + 0.0037110609109953898, + 0.005695212786820327, + 0.008459663950100319, + 0.002681107746571281, + 4.662078208548067e-06, + 5.699395700018925e-06, + 1.990714084779318e-05, + 1.847328180131288e-05, + 8.901347096340515e-05, + 0.0027436258125378976, + 2.9019803498547727e-05, + 2.700232458322728e-05, + 2.0646085382212123e-05, + 0.009813729259187031, + 2.614368819921816e-05, + 1.71528140695156e-05, + 2.6451525648099112e-05, + 6.965275646704858e-05, + 6.607100977039375e-05, + 7.923441900497486e-05, + 9.019246741974433e-06, + 0.0001783375337444304, + 6.752494369555874e-05, + 1.310240486264126e-05, + 0.008032634006271282, + 0.00010760530953880158, + 5.987655235048369e-05, + 5.50711807066434e-06, + 0.00013417932789838304, + 6.479496401931944e-05, + 0.002954714475054873, + 3.2475583311200885e-05, + 5.238104174226221e-06, + 9.334297135713388e-05, + 0.0030008506551227453, + 0.004073822791191404, + 7.639022655726693e-05, + 5.2769736697683524e-05, + 0.0034227338913006555, + 2.3174984669763992e-05, + 0.007925813749040412, + 3.750389361508163e-05, + 1.6582000373062033e-05, + 7.528097178324361e-05, + 7.669424770295681e-06, + 4.662805809938742e-06, + 8.102003010137707e-07, + 2.3376055606366328e-05, + 1.0002503655015804, + 0.0072258859519244495, + 0.0030972922175133, + 5.848653372189761e-07, + 1.7920640048420202e-06, + 4.762214563038365e-07, + 1.3348925708514831e-06, + 4.302624219575653e-07, + 7.494947992189717e-07, + 1.1148407990794493e-06, + 1.1992982759795414e-05, + 0.004357343568433076, + 1.8808918578478595e-05, + 2.141230278799636e-05, + 3.655322791892029e-05, + 3.426856622257189e-05, + 1.920766372314651e-05, + 2.410980125288674e-05, + 0.00713900933396598, + 8.052582566310962e-06, + 4.862023104542222e-05, + 2.973840254558375e-05, + 0.0002330089418659586, + 3.4185747076641285e-05, + 3.5817131940039534e-05, + 1.6125188709193586e-06, + 5.142917252934526e-05, + 0.004478441911544396, + 3.5472752645703684e-05, + 4.18825353448943e-05, + 2.348488155839762e-05, + 1.9579120926910124e-05, + 1.5939223154984972e-06, + 7.667920282896653e-05, + 7.186162010213901e-05, + 5.621054680408905e-05, + 5.330234599939667e-05, + 0.009963497689544864, + 9.795274955841379e-05, + 7.50989203964441e-05, + 0.0020341300219831504, + 0.00648503653023617, + 0.00782914362550076, + 0.00587733230650688, + 0.002923910238477404, + 0.00537362751138068, + 0.006523181202208075, + 0.005670327835012276, + 0.006685049011509828, + 1.0001886258980548, + 0.002988631887868677, + 1.2456287254784247e-07, + 2.6361602054917756e-07, + 0.006854405223712914, + 4.65911604680687e-05, + 1.538762457161008e-06, + 3.617988384313475e-05, + 3.942136473014121e-05, + 7.694523948548027e-06, + 5.035059539802786e-06, + 2.7545876117955095e-06, + 5.652742040649498e-05, + 8.294525405860026e-06, + 4.412902333975753e-05, + 6.401808159144565e-06, + 8.868053332557463e-06, + 0.0018340534860973967, + 5.732217749423728e-06, + 1.0291812167812526e-05, + 1.5676400112376638e-05, + 0.006243726979236103, + 0.0007991026022771701, + 0.0019808005861819576, + 0.009439959067106114, + 0.0013354308950555116, + 0.003925877503611112, + 0.005796324582018182, + 0.006162464895893152, + 1.106115656959078e-05, + 8.572705345464126e-06, + 4.998900482600028e-06, + 0.005005735433951281, + 3.0800189049306255e-06, + 1.0882148447506776e-05, + 4.920404084443367e-06, + 9.802407665341985e-06, + 7.695933612238808e-06, + 0.0011313593767402364, + 1.2029221063479777e-05, + 4.990940581764883e-06, + 1.5739800122089514e-05, + 2.9679459951328885e-06, + 6.0329364738038516e-05, + 0.00983724045435927, + 1.6037235818269438e-05, + 3.687809075046072e-05, + 0.009742433538967666, + 3.555021927781079e-05, + 7.853535375098192e-05, + 1.7099755476563073e-05, + 6.830114907139503e-06, + 0.0016040258767245185, + 2.266246567558815e-06, + 0.0037919118349826818, + 0.00415774313581574, + 8.543183096335565e-05, + 3.20055874953058e-05, + 2.1816080408894437e-05, + 3.749231695173124e-05, + 3.3007267523658666e-05, + 6.668280050031122e-05, + 0.001026103455904006, + 3.1987418151162497e-05, + 1.8606361438029243e-05, + 7.92758331939025e-05, + 2.5948670913940536e-05, + 8.43286912301128e-07, + 1.05857717104082e-05, + 6.43586700597802e-06, + 5.140845459602858e-06, + 1.0001044156480565, + 2.3376055606366328e-05, + 1.0352222185209052e-05, + 0.004275057037133662, + 0.0034534397792633023, + 7.66947463026765e-06, + 3.4278764461559064e-05, + 2.3781942172827e-05, + 0.00033545871412157813, + 0.0005468462075336555, + 0.00298039332094451, + 1.3598258892740924e-05, + 4.296992740599398e-05, + 3.8945017106828324e-05, + 1.9546483249476834e-05, + 4.31693251840473e-05, + 0.006685049011509828, + 3.1195312461147066e-05, + 0.01003009867110116, + 0.008459663950100319, + 0.005765427248372032, + 0.00011108092659027222, + 2.6302692348604317e-05, + 6.415363463656095e-05, + 4.3755520141460105e-07, + 8.949628991663872e-06, + 0.00015665184080786005, + 4.804107451422301e-05, + 7.790378110650544e-06, + 5.238644335009593e-05, + 6.842886526534604e-05, + 0.008832053506273614, + 8.76974162781124e-05, + 3.537073978440055e-05, + 0.006714025703901893, + 4.713844281200795e-05, + 2.988522877189406e-05, + 3.284174067021099e-06, + 3.331186062669915e-06, + 3.382565471615017e-06, + 3.5625642103399774e-06, + 1.8761291921232777e-06, + 0.00041322251086869325, + 1.6512283763228777e-06, + 2.6713893738560452e-06, + 8.629260269443107e-05, + 2.6797437391880606e-05, + 6.116235985298115e-05, + 3.336172852818558e-05, + 1.959778315481159e-05, + 5.752384109440578e-05, + 7.840140364717967e-05, + 0.006457783551165847, + 9.054949682981293e-05, + 4.581627553562489e-05, + 0.00817565329544597, + 0.0063393024704901345, + 6.309220182886564e-05, + 0.006382219318046553, + 5.9520335109750265e-05, + 4.810896760486375e-05, + 7.720124525653074e-05, + 4.7059955452611104e-05, + 5.583329608951207e-05, + 1.9269813166188358e-05, + 1.0003835897306816, + 3.2699517481831474e-05, + 0.008170787291719226, + 0.0001204369410194575, + 5.105886593647359e-06, + 1.4344908058887058e-05, + 3.4053751828548573e-07, + 1.78710524516326e-05, + 5.518628161876147e-05, + 1.8634392412703953e-05, + 3.2394319262609834e-05, + 1.8552101725878217e-06, + 3.401408920663357e-05, + 0.005622981904158817, + 7.174147412406096e-05, + 4.967058051043821e-06, + 0.009915476597542466, + 0.00013666632960500865, + 0.0010816938755075934, + 1.3926506083939243e-06, + 7.473978611656519e-06, + 0.0001087401656131354, + 3.8048334218202605e-05, + 0.006531871891578125, + 9.73683053803303e-05, + 6.039959268436595e-06, + 2.610848019012817e-05, + 4.0947561295588445e-05, + 4.0860568906730575e-05, + 7.511646879857002e-05, + 6.354986925006403e-05, + 0.004714008058034636, + 8.895582859343049e-07, + 4.5312749216232344e-05, + 0.009658027123380798, + 0.005894124979405421, + 2.7418689915131593e-05, + 5.5021419861820435e-05, + 0.0048535845820513075, + 0.0028935743279264107, + 0.00934538949869626, + 0.00408344249254145, + 0.006655999042995089, + 0.00013249423111395283, + 2.3587666620726074e-05, + 0.008487759100771796, + 0.009403452575118026, + 9.802407665341985e-06, + 6.938926754019389e-05, + 0.008664274028987562, + 0.00016526594818091914, + 0.009891145193876386, + 9.717628586914298e-05, + 5.4740304521921515e-05, + 0.00012679733007272525, + 0.00877995928880234, + 8.6638070301256e-05, + 0.006597636404530838, + 8.669584320980875e-05, + 0.0018705960191203576, + 0.00014399155572362174, + 0.0001246807859027139, + 7.30700720386402e-05, + 0.00011304389453428674, + 2.614368819921816e-05, + 0.00010504777710321347, + 0.00883762015458032, + 0.004193048518656666, + 0.006586798633828459, + 7.131459924188185e-05, + 0.011055507216417616, + 4.5797633600523134e-06, + 0.00010236722183861859, + 0.00013146806430429055, + 0.0001406914175397761, + 0.008526010875557077, + 3.224942461389203e-05, + 3.3593084677221634e-06, + 2.3911820891969514e-05, + 3.6191356626329917e-06, + 6.0660365159832946e-05, + 1.3640677423618407e-05, + 9.952230383561446e-05, + 1.0006292240898653, + 1.9269813166188358e-05, + 1.8660644278303113e-05, + 0.0024285342700700054, + 0.00010183618537375991, + 3.3857206954811586e-06, + 3.035721643280287e-06, + 2.3478257525078564e-06, + 8.453434392048e-06, + 4.968771746824327e-06, + 1.70842049509094e-05, + 5.744975875099374e-06, + 6.664276479027353e-06, + 1.9600997227302497e-06, + 1.8853793968401794e-05, + 2.875512039779854e-07, + 9.945503597024794e-06, + 5.068234755661218e-07, + 4.2994741473518604e-08, + 8.747730094430352e-05, + 9.92624527811888e-06, + 0.009927709865127338, + 2.398559145833957e-05, + 8.610593246983417e-05, + 5.663119294446125e-05, + 7.000542902825968e-06, + 0.007428312764656902, + 5.5649786206448084e-05, + 9.563744905355311e-06, + 0.00012240969635691026, + 0.011109083184725779, + 0.0068070609766084575, + 0.009015583601663752, + 9.19925473013565e-05, + 0.00042286073353053205, + 2.647290542189767e-05, + 0.0033100343649935427, + 0.006047231430546131, + 3.8941321970515616e-05, + 6.101829323367727e-05, + 0.004924228234314472, + 0.002007918983284649, + 1.1707850048249682e-05, + 5.890353781510846e-05, + 0.009403452575118026, + 4.920404084443367e-06, + 0.004300984806407466, + 0.008750829676035217, + 5.128940535339805e-05, + 1.0976407265594007e-05, + 0.0001730131989390535, + 2.6302692348604317e-05, + 0.0001226963844664554, + 0.003043158741887113, + 2.843055287948848e-06, + 9.171185102672263e-05, + 2.7758845583371817e-05, + 1.1253258306963982e-05, + 3.681470226756574e-05, + 5.481835722109314e-05, + 0.009349294168833915, + 7.245178783852634e-05, + 3.527685498118427e-05, + 2.6724663523493806e-05, + 2.8841903361718384e-05, + 0.0014978319467007927, + 4.35561991898656e-05, + 7.028971907680665e-05, + 0.00020232834080867164, + 1.2133601264377871e-05, + 2.5786673808607915e-05, + 0.012813625909626442, + 0.0010867090112958687, + 5.315905599966685e-05, + 3.7744090451044085e-05, + 7.774943916630372e-05, + 2.4967263474904864e-05, + 1.1796041331419004e-05, + 0.00403467118712389, + 1.0623499542258326e-05, + 0.00935065634121103, + 6.0942507176717e-06, + 1.4071215559756605e-05, + 1.0004218519602772, + 0.006124314870517229, + 0.0020986143266744518, + 1.4425087088570349e-05, + 7.582968560795405e-06, + 5.5673337197063254e-05, + 0.00944967063640076, + 3.2010750229393997e-05, + 5.8469634307341134e-05, + 1.8910845561383668e-05, + 0.009611182680216403, + 0.00010507947812848234, + 5.8064098366541744e-05, + 7.227804363621828e-06, + 7.339128572956441e-05, + 4.712760169925774e-06, + 6.279997697755538e-05, + 2.0880117819139736e-05, + 0.00011036325907642369, + 8.7581123233078e-06, + 7.37269460960388e-05, + 4.036902259548693e-05, + 8.2327661535784e-05, + 0.008398373248306222, + 0.007710383702448548, + 0.00814747827758538, + 0.005894124979405421, + 0.0009201478342575923, + 0.004092254801917959, + 0.009362403878072032, + 8.311017407393698e-05, + 0.00015183555325760058, + 0.007699851554496911, + 4.3088882703026115e-05, + 3.5918105428542704e-05, + 1.7753298709646568e-05, + 7.23500655525631e-05, + 0.009015583601663752, + 0.004213442564747276, + 7.806830397465771e-05, + 7.467161408604157e-05, + 1.6407079694044695e-06, + 7.007217650806319e-05, + 1.4313504055806974e-05, + 3.5011884286798186e-05, + 0.00017742194051728995, + 5.2766472087971785e-05, + 4.0365730413813014e-05, + 3.512428669001458e-05, + 1.0004028442802682, + 2.6870034435190565e-05, + 0.00790089919579962, + 6.807367336737874e-05, + 1.5309273798143577e-06, + 1.7199603304863812e-05, + 4.912466317868146e-05, + 5.636155674345554e-06, + 4.960478974867715e-06, + 8.569855998237978e-05, + 0.0024985379607832957, + 7.582968560795405e-06, + 0.009964003685006098, + 0.0011979513772529824, + 2.1511734531140814e-05, + 1.0291812167812526e-05, + 6.343447748240056e-05, + 0.0001594947964237924, + 4.852011383706507e-05, + 0.007329413538344493, + 5.895822008701363e-05, + 3.903353172128735e-05, + 8.780755167910766e-05, + 4.7595573412324026e-05, + 0.006649128264608228, + 9.795274955841379e-05, + 5.44501718787695e-05, + 6.124403934534732e-05, + 1.4892552717406243e-05, + 6.791867953427332e-05, + 8.085035701929519e-05, + 7.44429777262454e-06, + 0.0013328777498254356, + 0.003625097313221236, + 0.004318123334226994, + 0.004714008058034636, + 0.008482307511236168, + 0.00018927640511463451, + 0.007255851338711169, + 0.007790053939240377, + 7.308022435673637e-05, + 6.63684483593648e-05, + 7.144392268361971e-05, + 3.412817285756006e-05, + 9.283171180278325e-05, + 0.0054098623552808365, + 0.00011293821770791351, + 0.008806804007942875, + 6.224177478794206e-06, + 0.00018398308294319499, + 5.665925866907958e-05, + 6.265458442021338e-05, + 1.0994049097566663e-05, + 0.006740073564627112, + 0.005896520474143277, + 7.276064269692673e-05, + 0.00410196302462687, + 8.081471592653644e-05, + 4.9006522974493814e-05, + 3.7046042910373765e-05, + 7.792064738492659e-06, + 0.00010268918814354037, + 0.003003633597689924, + 3.5406938460700636e-05, + 0.003501122986141881, + 1.5766822889265075e-05, + 0.008643936765229692, + 0.005573949689002543, + 0.006554729173032643, + 0.00014836819241966453, + 0.00015854687935395274, + 1.2373222472231526e-05, + 9.334297135713388e-05, + 0.00022212792443789914, + 0.009640569433551922, + 9.175661661202585e-05, + 3.41674962668119e-05, + 0.0025456088283974092, + 0.003961812646855485, + 6.91575555913188e-05, + 0.0056954290527608375, + 9.731186228103503e-05, + 1.0005973513724646, + 5.481835722109314e-05, + 0.006615910659592654, + 2.7198580063679282e-05, + 2.656716793804512e-05, + 7.657450367907001e-07, + 0.0001585354537356698, + 3.9574365777364284e-07, + 7.91477008687552e-07, + 1.2513410853218346e-05, + 1.83301846932302e-05, + 6.603767343972547e-05, + 0.009498292054863657, + 6.472707200050332e-05, + 4.585871273468841e-05, + 3.843436658672674e-05, + 7.092098892430295e-05, + 0.00012167373322091522, + 1.2505689816741404e-05, + 0.009295247913139942, + 6.025817506004486e-05, + 2.8207005358445007e-05, + 2.6109734895727233e-05, + 3.9686777895044975e-05, + 0.00019557453083133506, + 0.005053902503785076, + 0.004926455754866431, + 0.0037547983552217367, + 0.0046012907750768986, + 0.008617980389554532, + 0.005071360807378818, + 0.002518284793421295, + 1.7334319453500232e-07, + 6.3632241538920716e-06, + 1.3307998776586948e-05, + 3.949787837533425e-06, + 1.7625297649508442e-05, + 0.003003633597689924, + 3.089131374698755e-06, + 1.2031158987471699e-05, + 0.0017603968215497067, + 2.467467834180957e-06, + 6.096919802748503e-05, + 0.008538605385254245, + 4.470787698074131e-05, + 6.18419543473045e-05, + 3.382565471615017e-06, + 4.6504964415883905e-05, + 0.007254780340154869, + 0.00014728026048875834, + 1.999352945584506e-05, + 1.9808276545164153e-05, + 0.004811970719232071, + 2.9853088250532845e-05, + 2.2837261326316132e-05, + 3.512428669001458e-05, + 8.13393389642432e-05, + 0.004507380604466488, + 3.8513269850336475e-05, + 4.816330275016268e-05, + 0.009821730370983375, + 2.1903716683254796e-05, + 6.244920472937696e-05, + 6.0194675001078164e-05, + 4.695475624562457e-05, + 4.27333714582164e-05, + 4.2287392648719884e-05, + 1.0820437241554723e-05, + 2.425848205412946e-05, + 1.01439085131741, + 1.4071215559756605e-05, + 0.0001841780532802329, + 0.007546820998713696, + 5.689189388216512e-06, + 0.005768832749769458, + 1.7916668586350402e-05, + 8.89251286687329e-06, + 1.035275889637705e-05, + 1.5211346445822785e-05, + 0.0026401284607189303, + 5.136316317798199e-06, + 1.4886813989585618e-05, + 9.286554580186971e-07, + 2.3553570961174583e-05, + 6.556057476266936e-05, + 5.179424309578726e-05, + 3.520187008799863e-05, + 5.895822008701363e-05, + 3.5472752645703684e-05, + 7.666284096464855e-05, + 4.2987315002756274e-05, + 3.5838112986402865e-05, + 3.503912963572349e-06, + 0.0005045514329730584, + 0.005574292792643197, + 0.005304731871977922, + 0.006044533045230626, + 0.004589697180653488, + 0.005511413361947338, + 0.00509972235949859, + 0.0005275661483209082, + 6.323381054764368e-05, + 8.274536257263668e-06, + 0.002360689141632851, + 5.458741613905111e-06, + 2.9750955246120755e-05, + 0.0011110333225029594, + 0.0001185655905667058, + 4.497861352315392e-05, + 0.01003009867110116, + 0.005695212786820327, + 6.373008761573134e-05, + 1.5200482383733676e-05, + 7.17937085081615e-05, + 3.652138838893042e-05, + 4.5579882391700233e-05, + 0.00815744384912862, + 0.0001268512726099513, + 8.6638070301256e-05, + 0.0077722776138475, + 0.0023218250123088584, + 2.6816888588111612e-06, + 1.9955252480012823e-05, + 1.7279945498281717e-05, + 6.600953573744792e-05, + 3.3409698001656547e-05, + 9.220435186640806e-06, + 0.0005756933364419036, + 6.052485692047022e-05, + 1.5696421917549157e-05, + 8.348550647548584e-05, + 1.0003106846527967, + 1.2133601264377871e-05, + 2.2821029286700005e-05, + 0.012006271154335118, + 0.0027052178017184657, + 1.2649299473656828e-05, + 5.7774606273442145e-06, + 7.131101283954011e-06, + 2.302150539269388e-05, + 2.1276079051268394e-05, + 2.243657506251215e-05, + 2.5151047401374303e-05, + 2.6479781054830162e-05, + 0.005614779437366768, + 2.108479944985597e-06, + 2.1569779244003335e-05, + 5.5549294698932425e-05, + 4.0225705652420965e-05, + 3.47873892853305e-05, + 1.0439763834962318e-05, + 8.7746997810561e-06, + 4.87111811559589e-06, + 6.052271248082022e-06, + 6.901220565399228e-06, + 7.794108624284254e-06, + 3.8655259029171693e-07, + 0.001080774936663883, + 4.7248459417462044e-06, + 0.0015357985919753874, + 0.006116514527944604, + 0.00028570917724010436, + 1.0000400120259487, + 0.007620250945392171, + 0.007847234151793583, + 0.009556394617234216, + 6.942689596137118e-05, + 4.258700237407619e-05, + 3.165157237555567e-05, + 2.2362468666237055e-05, + 5.981155540148864e-05, + 4.849876254314921e-05, + 2.7583452473090147e-05, + 9.177955235317567e-06, + 7.276203856300719e-05, + 0.002882958045542563, + 7.63198582473916e-05, + 1.7494555237466507e-05, + 2.170212323715844e-05, + 0.004325677183490168, + 2.4771419462574535e-05, + 9.824640203003823e-05, + 4.558479926457905e-05, + 0.007696421638836545, + 0.00725057399154552, + 0.005641947917987453, + 0.0040844313409666155, + 0.006649128264608228, + 0.009963497689544864, + 0.00011225674094685073, + 7.636203446290959e-05, + 3.1188552603485446e-05, + 8.713054812012184e-05, + 2.6185861521000763e-05, + 5.878795178602236e-05, + 5.890353781510846e-05, + 1.0882148447506776e-05, + 6.542968016277152e-05, + 0.0001581423678117155, + 5.298779824764253e-05, + 6.104874933017689e-05, + 1.0486260105233297e-05, + 0.00010733714305272089, + 3.952316376324563e-05, + 9.952230383561446e-05, + 5.583329608951207e-05, + 3.689155146280462e-05, + 0.014410087504995148, + 4.5559832168017325e-05, + 2.2764179043432686e-05, + 6.543058866391555e-05, + 3.430793407922378e-05, + 2.2837261326316132e-05, + 4.0365730413813014e-05, + 0.009636119219212608, + 0.005189010470211977, + 0.007887920773598681, + 2.8923941111746002e-05, + 0.0057750436745369355, + 5.1312749912381697e-05, + 0.0001805488747476753, + 4.497641852423167e-05, + 4.045190920950058e-05, + 0.003804170827353817, + 6.955184983029764e-05, + 2.1665009509667407e-05, + 4.2864901433654665e-05, + 1.0003829763539198, + 5.880937526079813e-06, + 0.00629538472814543, + 5.524170723711119e-05, + 5.321768311467811e-05, + 1.151237528350908e-05, + 8.831803944007171e-07, + 1.049107635947085e-05, + 2.2727801295909092e-05, + 6.664276479027353e-06, + 1.0481439960144256e-05, + 2.6075990744894606e-06, + 1.8520492490083216e-05, + 2.1793448813973866e-05, + 9.176872048322657e-06, + 2.116693775127853e-05, + 0.002313141822622935, + 2.200821759837018e-05, + 1.805138943886443e-05, + 1.3780010086691152e-05, + 3.1283205561362908e-06, + 8.464235497657132e-06, + 8.111616680886158e-06, + 2.4636259992210228e-05, + 0.0029471484685646876, + 1.4482501638671528e-05, + 2.4723271872059743e-05, + 0.0014970770754504084, + 0.0029935243072698762, + 0.0020874736505889233, + 2.983059461560402e-05, + 2.2622216737783084e-05, + 2.627011625477693e-05, + 5.312316031361682e-06, + 2.225316986181994e-05, + 3.102418440017793e-05, + 2.2283096906311314e-05, + 0.007495164151567807, + 0.008963041275584496, + 0.0010589697528595465, + 0.005221329997523486, + 0.008805068794976455, + 0.00983176233371314, + 0.008398373248306222, + 2.149929346326834e-05, + 0.0048489996336509, + 2.2912513589703315e-05, + 0.0040844313409666155, + 5.330234599939667e-05, + 3.061178252104105e-05, + 5.3005380202982966e-05, + 2.519599844706269e-05, + 0.0025612490314566227, + 1.877880444362138e-05, + 2.6583074685513483e-05, + 8.637677701681919e-05, + 4.268506539575916e-05, + 0.005071360807378818, + 1.2594651748272449e-05, + 9.64121073613786e-06, + 4.860647658428452e-05, + 0.0006170670814896797, + 5.5540199060968216e-05, + 0.005621853829576654, + 3.710823378319444e-05, + 4.957894886944058e-05, + 0.0027637787011062917, + 1.0001133734472036, + 9.283171180278325e-05, + 4.7459302796212956e-05, + 0.005892857278628511, + 6.242079514647868e-05, + 3.0768169071865856e-05, + 0.003949451860214621, + 1.0730957657725968e-05, + 3.0438108375714784e-05, + 0.00932536085802224, + 4.843570844089803e-05, + 4.8413826881802706e-05, + 7.475390977604764e-05, + 8.154231257388808e-05, + 4.1662899268953135e-05, + 3.4937391624894854e-05, + 4.794364658652151e-05, + 8.949778834480208e-05, + 0.009959454332578336, + 3.4278764461559064e-05, + 9.671370476470335e-05, + 0.006384550706521437, + 0.003837912559068474, + 0.0016826044433800413, + 0.009605685363234352, + 0.0010195254958027743, + 0.006531871891578125, + 0.001344901064955023, + 0.006803726876170835, + 0.003224498097106496, + 0.008630783726605808, + 4.3422810041187425e-05, + 3.2432119128314313e-05, + 2.2912513589703315e-05, + 0.005641947917987453, + 5.621054680408905e-05, + 2.430199355672523e-05, + 2.174789309648852e-05, + 1.0371090875917845e-06, + 0.0018398040804846942, + 3.9616146869272896e-05, + 2.2662814589453177e-05, + 5.679787494029275e-06, + 2.0904964629571314e-05, + 6.482136076334683e-05, + 0.002532528169657162, + 0.00011067717192639689, + 3.194862700383684e-06, + 3.244198568147392e-05, + 8.978547674713963e-07, + 5.9772051130068166e-05, + 6.893059851074438e-05, + 8.47381590041747e-05, + 0.006639242346381749, + 1.0003224726853233, + 1.7625297649508442e-05, + 0.00010268918814354037, + 0.00013713865786819753, + 0.00010091988110382644, + 0.009118215936367427, + 2.47563889274485e-05, + 3.118964717770214e-05, + 2.272185625473179e-06, + 3.3864510266791785e-05, + 2.357371016367183e-06, + 3.617988384313475e-05, + 1.4998249072389926e-05, + 0.005641913561175485, + 5.2689843753786996e-05, + 0.004030203448740924, + 0.002341990597880902, + 1.70170076060978e-05, + 4.302624219575653e-07, + 4.334605723171568e-05, + 6.045509972018361e-05, + 0.006157260534451727, + 6.444748122258493e-05, + 3.8701093554956196e-05, + 1.990227659369478e-06, + 8.886247607167789e-05, + 5.0907829920540994e-05, + 0.009863281735601262, + 0.000145030445193013, + 1.2380803640812112e-05, + 8.44689701773998e-05, + 1.2510973873916954e-05, + 4.7368254369153736e-05, + 7.174832499906487e-06, + 4.904713082344558e-05, + 3.982086179258424e-05, + 4.279407556548083e-05, + 5.9341106802033e-05, + 5.545703057791173e-05, + 9.830265710848967e-05, + 7.097168045875709e-05, + 0.006728550378096911, + 0.0018061101135306693, + 0.0009286021346292216, + 0.0005778280391964555, + 0.009043811346655235, + 0.006223166372485518, + 0.005638980724112857, + 5.5266816322073946e-06, + 0.0001071678049589081, + 8.80187196272973e-05, + 6.0474015681588885e-05, + 0.004140227199330784, + 8.646002429487938e-05, + 0.00014266893334484952, + 0.00983176233371314, + 8.2327661535784e-05, + 2.657005871295784e-05, + 0.005316713458998503, + 0.005263923874568061, + 1.3166789154235854e-05, + 2.8191053266072524e-05, + 0.003554991012200417, + 3.5073730595340513e-05, + 1.600133368842961e-05, + 0.00559334195236974, + 0.00679557347143215, + 1.0003877656218436, + 4.2864901433654665e-05, + 1.5398702046158918e-06, + 0.0017204913863231868, + 5.263317597042702e-06, + 7.412144330241568e-06, + 2.8897167742560854e-05, + 1.2642191068013989e-05, + 2.8726589223701957e-05, + 1.3325165197173029e-05, + 2.9942269848555094e-05, + 1.8052719752213758e-05, + 2.2413973752318735e-05, + 0.009339513385827183, + 2.956871823131433e-05, + 3.4857573364954245e-06, + 0.009965742385508356, + 5.8064098366541744e-05, + 4.543184892775909e-06, + 0.008534519561254493, + 0.0005045514329730584, + 0.0004915262872471038, + 1.0957915206616842e-05, + 3.485116857707309e-06, + 4.103470307486917e-05, + 3.449505512877965e-05, + 0.006223166372485518, + 1.1136795167012167e-05, + 4.917905109956431e-05, + 0.0001391716422599186, + 2.134225602766022e-05, + 8.181076850756026e-05, + 0.003107753790333846, + 4.3871349822661094e-05, + 5.393172876158273e-05, + 2.4937042062898712e-05, + 1.0185038332521287e-05, + 0.00017606248522604556, + 1.3878912028461374e-05, + 0.006125638375565562, + 8.551342755536584e-06, + 5.878795178602236e-05, + 0.008487759100771796, + 0.0031757414411978605, + 3.4841133653436712e-06, + 8.017101377762257e-06, + 7.048804349060899e-05, + 0.00010363848198497155, + 0.0001730131989390535, + 6.172582231664433e-05, + 2.160030838240172e-05, + 2.5591472821463486e-05, + 0.007337281118937193, + 5.7250640224978076e-05, + 0.00012396204296597862, + 6.842886526534604e-05, + 0.00557935728804668, + 8.40175663732779e-05, + 0.0029778643265331926, + 6.278689984787101e-05, + 0.008723263430352006, + 4.2093820849666625e-05, + 0.00010989645420088088, + 0.00021230858415933394, + 4.543103795564365e-05, + 0.006639242346381749, + 3.949787837533425e-06, + 7.792064738492659e-06, + 2.545741842614761e-06, + 3.0625251536410894e-05, + 0.00224369175698486, + 5.392157334207365e-05, + 2.0196582070012896e-06, + 3.511630656969946e-05, + 9.071001496701286e-05, + 5.826260311688797e-06, + 8.051282580337352e-05, + 0.00022871279642392865, + 1.400441455646313e-06, + 5.970059231580564e-05, + 2.3294854918457073e-05, + 3.9379968694698984e-07, + 1.0005122858742035, + 5.140845459602858e-06, + 8.102003010137707e-07, + 0.00014456637776158663, + 0.00032154997618342605, + 1.188084764263294e-05, + 0.004316602141437835, + 1.8808918578478595e-05, + 3.6211453017926045e-05, + 0.005005808894482987, + 0.00188385009334873, + 0.006948275793281259, + 0.0019574602954816533, + 0.008837333888313868, + 0.002127269661302731, + 0.00821078361998241, + 1.0321254222034239e-05, + 5.203493787178862e-05, + 2.5997154839160077e-05, + 4.9454216424904526e-05, + 0.0027637787011062917, + 3.412817285756006e-05, + 3.669353473460797e-05, + 3.293840406858189e-05, + 5.411376477769995e-05, + 1.765487079884287e-05, + 3.9117221191864173e-05, + 7.376706734812109e-05, + 0.006976247125852938, + 1.849718928212902e-05, + 0.0065922905508567185, + 7.501128852404918e-05, + 5.4053340630327065e-05, + 0.008338421645317543, + 0.0001077222898127599, + 0.0081575359016717, + 5.253136891324345e-05, + 6.18419543473045e-05, + 3.331186062669915e-06, + 0.00011723158728588356, + 4.0924344042050054e-05, + 0.00852430417569119, + 3.6018542032361736e-05, + 7.846915829260045e-05, + 7.007475291609435e-05, + 1.4040406457210514e-05, + 1.2186539544715434e-06, + 6.497358014457847e-05, + 6.552162915475501e-06, + 1.3483569982537823e-05, + 3.9956313402664994e-05, + 3.4374901122417665e-05, + 3.7277412385885987e-06, + 1.0001762329550616, + 3.9379968694698984e-07, + 6.43586700597802e-06, + 4.662805809938742e-06, + 0.006311483244382031, + 0.001505445880622247, + 8.735938285280393e-06, + 1.0003977443525997e-05, + 0.004015417380052825, + 0.0001950264761052023, + 6.057074090214067e-07, + 5.702868336995201e-07, + 1.034996127455612e-06, + 1.035275889637705e-05, + 3.4053751828548573e-07, + 0.003013917957663592, + 1.4092747286854697e-05, + 7.944851687717692e-06, + 8.241318856450491e-05, + 2.0365071098452272e-05, + 3.320383246689815e-05, + 6.0060345185960196e-05, + 2.282562280992101e-05, + 2.6938937550086616e-05, + 2.1943796847118125e-05, + 5.718269734234039e-05, + 4.0225705652420965e-05, + 3.539059879489178e-05, + 0.006712215563463177, + 0.006834759289973527, + 0.004525181008797196, + 0.0090398684568361, + 0.004193107812289965, + 3.611195890619833e-05, + 4.315960899625176e-05, + 2.6676388625680194e-05, + 1.5425238648487882e-05, + 4.239530929527569e-05, + 0.00014266893334484952, + 4.036902259548693e-05, + 5.551330944747475e-05, + 0.00706018696690996, + 0.0048489996336509, + 0.00725057399154552, + 4.7595573412324026e-05, + 7.186162010213901e-05, + 9.141793619796793e-05, + 8.181005804706189e-05, + 2.1441172414522936e-05, + 3.2648313100976816e-05, + 9.658299046784831e-05, + 0.00013607125408058739, + 8.960823855955737e-06, + 6.482136076334683e-05, + 0.009526728664990757, + 4.5049929939845996e-05, + 0.00012431712551823294, + 0.00012382073634337326, + 0.0011849502227732189, + 4.985196467268206e-05, + 8.500073672303659e-05, + 4.1517316058143174e-07, + 4.302550318241803e-05, + 8.133660879343081e-05, + 5.238644335009593e-05, + 1.4874198614900185e-05, + 6.381972097879172e-05, + 4.146895381538172e-05, + 0.007812569537828521, + 5.6797153003323836e-05, + 2.1828240989408474e-05, + 2.3093786328915213e-05, + 0.0013164853450756745, + 0.005741093990493656, + 1.0777056264245487e-05, + 3.7073972839090896e-05, + 3.4622617627696845e-05, + 8.820430628239255e-05, + 1.0004204390472344, + 3.7277412385885987e-06, + 2.3294854918457073e-05, + 1.05857717104082e-05, + 7.669424770295681e-06, + 3.7121389807687816e-05, + 0.0025027531135822763, + 2.9691546746360525e-05, + 2.8683298392619073e-06, + 1.9556388210223286e-05, + 4.700870048947649e-05, + 7.916043971640084e-06, + 3.0086491323618898e-05, + 9.293417333806772e-05, + 4.498148682255461e-05, + 1.777519615716201e-05, + 0.004956907702287139, + 0.003402162384553347, + 0.004538686199959361, + 0.008819032847634595, + 0.0023922321366585796, + 1.773236913896812e-05, + 0.007690836904536741, + 0.00914181407893777, + 1.7297893003350107e-05, + 1.879939226741259e-05, + 5.7897047412305844e-05, + 0.002127269661302731, + 1.7466550890309995e-05, + 6.595216521287041e-05, + 3.25768819028559e-05, + 8.283092032568344e-05, + 9.197717876650045e-06, + 4.577243436511334e-05, + 4.239530929527569e-05, + 8.646002429487938e-05, + 0.008805068794976455, + 7.37269460960388e-05, + 2.1162142534132394e-05, + 2.1613058386334702e-05, + 5.243876354047514e-05, + 2.062861723670921e-05, + 1.2028922085198997e-05, + 0.0009628796387270497, + 8.551342755536584e-06, + 2.6185861521000763e-05, + 1.1707850048249682e-05, + 2.3587666620726074e-05, + 3.0800189049306255e-06, + 1.851882951395248e-05, + 0.009782309454680381, + 3.019698382825305e-06, + 9.297493441906668e-05, + 6.948461639102615e-06, + 7.16707002124421e-05, + 0.00010580887260818803, + 1.1792268179702386e-05, + 1.298044941180189e-05, + 0.009382044831691094, + 0.0035186077058957845, + 2.9882322235776724e-06, + 1.3711952075214602e-05, + 3.615448220528084e-05, + 1.0002074290941974, + 1.0994049097566663e-05, + 1.310240486264126e-05, + 0.0016311467511667876, + 2.6534495447257202e-05, + 1.8884198800659427e-06, + 7.177313382859093e-06, + 0.007428312764656902, + 0.0010816938755075934, + 0.0013096420345198375, + 6.085174025597421e-05, + 1.592458114561165e-05, + 8.252627901419628e-06, + 5.064743170214215e-06, + 3.161582560257577e-05, + 0.009043811346655235, + 7.921050259260159e-05, + 3.3803783166902323e-06, + 6.029281872575666e-05, + 2.0904964629571314e-05, + 0.01574616148972817, + 6.060744515201521e-05, + 2.407729671365154e-06, + 1.6446658316063207e-05, + 0.009676960075387354, + 0.005204560921393831, + 6.720359856629058e-05, + 7.397498922067364e-05, + 0.0022893814596128765, + 7.172381736447735e-05, + 0.00020214142289124118, + 3.615448220528084e-05, + 6.265458442021338e-05, + 8.310218795996274e-05, + 8.657135190825022e-06, + 7.581259308717127e-08, + 6.174032240952402e-08, + 6.303672765175599e-06, + 4.529426116266005e-05, + 7.790378110650544e-06, + 1.2737606264021523e-06, + 5.31320982239297e-05, + 0.009300587252411117, + 0.0011618057425408913, + 8.167398243961086e-06, + 0.00800148732862001, + 2.2852157316310878e-05, + 8.784487795116046e-05, + 0.005215496332165455, + 6.471299638717376e-05, + 1.537618440707853e-05, + 0.0011141911866881654, + 9.379407508341833e-05, + 3.430793407922378e-05, + 2.9853088250532845e-05, + 5.2766472087971785e-05, + 0.00010459660272650717, + 0.0067128941927253345, + 0.00011889205758591477, + 8.377027048123183e-05, + 1.839704114108649e-06, + 1.5967932983625997e-07, + 4.571840485343565e-05, + 1.7888324242610096e-05, + 1.7667422410700649e-06, + 1.9568895044000717e-05, + 1.0003300690091148, + 8.820430628239255e-05, + 3.4374901122417665e-05, + 5.970059231580564e-05, + 8.43286912301128e-07, + 7.528097178324361e-05, + 1.5799611749605832e-05, + 0.007106771127311314, + 0.0015414752433633417, + 4.7874678062921025e-06, + 8.180534967924788e-06, + 1.2663767548591473e-05, + 8.89251286687329e-06, + 1.2288862401220086e-06, + 1.5259333259623386e-06, + 1.538762457161008e-06, + 1.5889218365970699e-06, + 1.7431546902319922e-06, + 1.437187119899864e-06, + 3.3445602506082165e-05, + 1.2383720746665643e-05, + 6.751158464193462e-07, + 8.021012974644137e-05, + 2.2954687209557798e-05, + 7.845275276930699e-05, + 3.084836036525695e-05, + 0.00819832382907284, + 0.004509471864731448, + 0.007211592682138772, + 0.001080774936663883, + 2.7505844109233254e-05, + 0.006896939223886141, + 3.7303041062276185e-06, + 2.2893352845326236e-06, + 2.2659425801912526e-05, + 2.2756773597648387e-05, + 2.9258570574108967e-06, + 0.00639840042891731, + 2.880137609004941e-05, + 1.9728161055912034e-05, + 4.577243436511334e-05, + 0.004140227199330784, + 0.005221329997523486, + 3.000535237006113e-05, + 2.858263139481979e-05, + 0.008434966654025614, + 6.409491851623345e-06, + 2.1784560596789215e-05, + 7.23500655525631e-05, + 0.00010548489137167106, + 2.6958770302895138e-05, + 5.923465003761426e-07, + 0.00015933951733862196, + 8.394452031494062e-05, + 9.705123470081156e-05, + 2.6429175994417655e-05, + 0.0033100343649935427, + 0.00934538949869626, + 0.004432264135737421, + 1.2854505722798077e-05, + 0.00044431236058949623, + 0.0014745260047490116, + 8.884186737477239e-06, + 5.3386122069419955e-05, + 0.0058248967139245935, + 3.390535436114262e-05, + 2.7398964806537252e-05, + 2.2529968517451576e-05, + 0.00018257796352744485, + 1.0002684437688334, + 4.529426116266005e-05, + 8.133660879343081e-05, + 0.00012396204296597862, + 4.804107451422301e-05, + 7.854924150935622e-06, + 9.20890698185028e-05, + 3.779260422389367e-05, + 3.3996998096963766e-05, + 0.007214311791655111, + 6.518935957422784e-05, + 3.87764533289644e-06, + 4.4185831029026516e-05, + 1.473775828964842e-05, + 4.552346662069953e-05, + 0.0022208218820898985, + 7.66947463026765e-06, + 2.1638565938509677e-05, + 3.3858432172866734e-05, + 1.8834701174318686e-05, + 0.0072660443733186895, + 1.70170076060978e-05, + 1.3348925708514831e-06, + 4.4092287379431386e-05, + 1.9900331944692724e-05, + 2.7545876117955095e-06, + 3.0294756990803786e-05, + 1.9888207898990585e-05, + 3.5181354807464185e-05, + 9.962891593689917e-06, + 0.005063505532808123, + 1.3142350549209993e-05, + 3.807858887188459e-06, + 3.86650835506941e-05, + 0.004483194454930572, + 0.008560723438005933, + 0.009915476597542466, + 0.003516730555426826, + 4.831905131488414e-05, + 1.3612387774774914e-05, + 5.654731790071036e-05, + 0.007563873760525239, + 5.7897047412305844e-05, + 5.70986654635919e-05, + 4.580812393541896e-05, + 0.00906453844049525, + 5.794297254880646e-05, + 0.002711227563482645, + 4.268506539575916e-05, + 6.294100436684671e-05, + 0.000144358736576273, + 2.8887654452486578e-05, + 1.3444929746094877e-05, + 2.1784560596789215e-05, + 0.0068070609766084575, + 6.619848851781917e-05, + 5.6550313371836705e-05, + 0.00450565985570487, + 9.025925841730478e-06, + 8.077315543870918e-06, + 5.4622505552109676e-05, + 0.000515067873673531, + 8.417123614646206e-06, + 4.257501182633146e-05, + 8.960823855955737e-06, + 0.005543813403275388, + 0.004427875840624922, + 0.004622968368555527, + 0.0033598743762273376, + 0.005683899652143301, + 5.493834356565433e-05, + 0.006976247125852938, + 2.1376951580614815e-05, + 0.0034405225796962364, + 5.2530022158616034e-05, + 6.513160904765917e-07, + 2.3909045231668042e-05, + 9.080223448683296e-05, + 4.543103795564365e-05, + 8.47381590041747e-05, + 3.7046042910373765e-05, + 2.279851190786204e-05, + 0.0001035434114937968, + 0.015694012931671365, + 0.002314784955476499, + 0.0001351869158332422, + 2.0501915098524828e-05, + 4.159463451217095e-05, + 1.0148477207275832, + 9.379407508341833e-05, + 6.543058866391555e-05, + 0.004811970719232071, + 0.00017742194051728995, + 5.002017546540117e-05, + 0.015334495722877418, + 0.00010411803164345695, + 5.208047344244813e-06, + 2.272185625473179e-06, + 3.990835206191733e-06, + 6.256499749409017e-05, + 2.2362468666237055e-05, + 1.7541023247471673e-05, + 4.328259607237442e-05, + 7.010848482190836e-05, + 5.959071178316483e-07, + 6.915969718176827e-05, + 1.805138943886443e-05, + 0.00013449665841190302, + 1.7419893057828467e-05, + 6.509424345376619e-05, + 8.546051687200953e-05, + 4.901761593493149e-05, + 0.008087170381398456, + 0.00010507947812848234, + 7.868933400378229e-05, + 0.00951396970838286, + 0.007820308463700465, + 0.008774287957556134, + 0.00915211765251319, + 2.451747705959345e-05, + 6.689722171556712e-05, + 5.616434308975793e-05, + 5.551480015170474e-05, + 0.006489894070843838, + 5.687817152330025e-05, + 0.005670327835012276, + 1.6946522582387045e-05, + 0.0071044223349299536, + 0.00013392222673275266, + 6.785098793438811e-05, + 0.00023047033185757222, + 2.035577968764197e-05, + 0.00015039691379098406, + 8.505517007946614e-05, + 7.51821387975411e-05, + 0.00877995928880234, + 0.009276745414995192, + 0.0006052639682745074, + 3.5405275164337536e-07, + 2.408253652537229e-05, + 0.00013940450826643473, + 7.241693757591757e-06, + 0.00018257796352744485, + 6.303672765175599e-06, + 4.302550318241803e-05, + 0.00015665184080786005, + 0.009360155982221886, + 5.6973288496865745e-05, + 3.108609273131704e-05, + 0.005471422643999203, + 3.8142605394287925e-05, + 2.6896745391710108e-05, + 7.443863429482305e-07, + 5.6847103838554745e-05, + 9.080223448683296e-05, + 0.00021230858415933394, + 6.893059851074438e-05, + 1.3307998776586948e-05, + 4.9006522974493814e-05, + 1.3592364534603364e-05, + 0.007559658489312481, + 5.7243482353636986e-05, + 3.6438697281287586e-05, + 0.002385822926232189, + 3.0255537649567676e-05, + 2.619931980962859e-05, + 2.0225316812531166e-05, + 2.5078590911148673e-05, + 1.3979739129546218e-05, + 0.007478559973594072, + 5.130159250113782e-05, + 1.945367154999441e-05, + 1.000693637634093, + 8.348550647548584e-05, + 0.00020232834080867164, + 0.00010448432381559467, + 0.004220681095862514, + 4.8084221300370924e-06, + 2.7871435289212096e-06, + 5.961322642576858e-06, + 9.647701407466116e-06, + 6.06595718656155e-07, + 4.5744979932388834e-06, + 2.863731908220287e-05, + 3.2010750229393997e-05, + 1.0909411956329585e-05, + 1.5112175287129863e-05, + 2.1511734531140814e-05, + 5.732217749423728e-06, + 0.004967052543479441, + 0.008172434288961817, + 3.315445346260335e-05, + 3.0110710713604018e-05, + 4.195497660194445e-05, + 0.008480512053198986, + 5.6265324282509934e-05, + 0.0031233784413476104, + 3.711164678999354e-05, + 5.7954976624182934e-05, + 0.0013023827143545978, + 1.6648212270453975e-05, + 1.7298730204288893e-05, + 0.007563873760525239, + 1.879939226741259e-05, + 0.008837333888313868, + 3.102418440017793e-05, + 7.256143633448298e-05, + 4.832756745625646e-05, + 1.9067817376664148e-05, + 7.641123007827406e-05, + 0.0022039957819478574, + 0.008459447326873511, + 7.51821387975411e-05, + 0.0001268512726099513, + 0.00012679733007272525, + 0.008106382247233694, + 4.00526336990222e-05, + 0.0006679276000648783, + 0.005937531341288544, + 4.1413939487704946e-06, + 0.00012245212128581448, + 0.006457783551165847, + 6.6127942078603766e-06, + 5.666986257986792e-05, + 0.00010829417935510544, + 0.007342720305307154, + 8.804415323161467e-05, + 7.08690593428671e-05, + 9.546069637881966e-05, + 2.840085319715022e-05, + 5.054622426696256e-05, + 9.885006688172613e-05, + 0.0034103459841710953, + 0.003163709767952356, + 3.087999998307821e-05, + 0.00679557347143215, + 2.1665009509667407e-05, + 3.3215104390041955e-06, + 0.005873673790252434, + 0.00012261209406726128, + 1.8146882092870154e-05, + 0.001098848492576027, + 9.486510994712678e-06, + 2.9776421787722422e-05, + 6.276963263902074e-05, + 0.006806823890020743, + 1.8507845222880758e-05, + 0.006358998048098247, + 5.813175701629659e-06, + 1.000951998583775, + 2.425848205412946e-05, + 6.0942507176717e-06, + 6.798716119619028e-05, + 0.0034194658432815557, + 0.0005948016310838955, + 5.484361314441554e-06, + 4.611686965275673e-06, + 8.831803944007171e-07, + 5.281082680604117e-06, + 4.202569748398294e-06, + 0.002307342766061188, + 2.2130008087780147e-05, + 1.050353687539633e-05, + 2.3478257525078564e-06, + 1.2456287254784247e-07, + 2.4062175400161237e-05, + 2.9942269848555094e-05, + 3.165157237555567e-05, + 1.5324605124138993e-05, + 0.0028681574720703117, + 2.8449049102145023e-05, + 2.656716793804512e-05, + 3.746600959227912e-05, + 5.2996539510238614e-05, + 3.9533904636675386e-05, + 4.7675626079801785e-05, + 0.00010228567311313031, + 5.2572209354611396e-05, + 0.009893406378396238, + 3.7152036280563222e-06, + 5.718269734234039e-05, + 5.5549294698932425e-05, + 6.129640226876825e-05, + 1.839517068585072e-05, + 4.6148138070912694e-05, + 2.5866209626581253e-05, + 0.00010136556747827229, + 9.842205408662057e-05, + 0.009613824701437153, + 3.5019940290114174e-05, + 6.547496387070687e-05, + 0.006796385353731588, + 0.0029280711260348193, + 0.008164029212026792, + 0.0003816885689634088, + 0.006438821015870284, + 0.004376133859150393, + 0.007329413538344493, + 0.004478441911544396, + 0.009530370211735932, + 0.005343984402739459, + 0.004455228636882102, + 0.00036269699602366277, + 1.8017238244775715e-05, + 0.0033535155434166993, + 0.00011970197773206852, + 2.2006625594661942e-05, + 5.2892774698968354e-05, + 5.9341106802033e-05, + 6.85439791623251e-05, + 7.084291599007136e-05, + 4.794687006752578e-05, + 1.984736516522655e-05, + 0.007791658840435856, + 6.177626701645455e-05, + 3.1195312461147066e-05, + 0.0037110609109953898, + 4.9810654609521915e-05, + 2.9901307237916217e-05, + 7.664256895218439e-05, + 3.3428408975038574e-05, + 4.865829265027054e-05, + 1.0038200792272656, + 0.008459447326873511, + 8.505517007946614e-05, + 0.00815744384912862, + 5.4740304521921515e-05, + 0.00829695684417064, + 4.1637468351522585e-05, + 4.7185395178301896e-05, + 4.611686965275673e-06, + 8.735938285280393e-06, + 3.118964717770214e-05, + 1.151237528350908e-05, + 6.883962337457583e-05, + 5.478106217644566e-05, + 6.526940843802335e-05, + 1.3190033228713383e-06, + 4.673612943620091e-06, + 1.9953765773175086e-05, + 8.569855998237978e-05, + 1.0436275612713423e-06, + 8.645709649879834e-07, + 1.8874859837226256e-05, + 3.809734129067859e-05, + 2.9475059591468917e-05, + 1.4886813989585618e-05, + 1.9833815079607923e-06, + 0.006208188035058918, + 5.010532596552045e-06, + 5.763283032282485e-05, + 0.014888439801268014, + 0.006083500465316787, + 0.0019675877767165563, + 0.008087170381398456, + 0.005063505532808123, + 0.009611182680216403, + 0.0025955043327308257, + 0.0007520202876280246, + 0.007636030670880136, + 0.008572476068270435, + 3.191972451121407e-06, + 8.573114353939069e-06, + 3.243705960449583e-06, + 4.25828037495546e-06, + 8.274181744819948e-06, + 2.244436982658596e-06, + 0.007812326963274855, + 4.907519256652523e-05, + 0.0009434926438126656, + 7.040445704723166e-05, + 8.193477229159464e-05, + 4.853197343199784e-05, + 6.671127692826823e-06, + 7.717911239137264e-05, + 0.00011728024289987551, + 0.00010792890575392393, + 6.86394345037373e-05, + 4.0024903276032146e-05, + 0.0009628796387270497, + 0.006125638375565562, + 8.713054812012184e-05, + 0.00013249423111395283, + 0.005005735433951281, + 6.161934999922442e-05, + 0.009065125655137866, + 1.4148013360018128e-05, + 0.00014331101054724154, + 2.6320072321074858e-05, + 8.09437286214573e-06, + 8.315043882107788e-05, + 4.231435282329788e-06, + 8.39792052135796e-05, + 1.1628614234344098e-05, + 3.802634538910261e-05, + 8.255379593155514e-06, + 8.169223873696375e-06, + 1.000314224235949, + 5.813175701629659e-06, + 1.0820437241554723e-05, + 0.00935065634121103, + 1.2083727420730855e-05, + 0.0015286668560874448, + 0.0004466121637889875, + 4.18806829585507e-06, + 3.831561999862129e-06, + 2.357371016367183e-06, + 3.1610493407164625e-06, + 2.8591836887176645e-06, + 3.6872163354419606e-05, + 2.9786294750743373e-05, + 1.3652454735223686e-05, + 7.442826532368355e-07, + 6.915969718176827e-05, + 7.845275276930699e-05, + 5.144251287968885e-06, + 1.2569418638884622e-05, + 2.0337974678940336e-05, + 3.63114731874677e-05, + 7.48601038810743e-05, + 0.003910368997623035, + 0.0031276072742181596, + 0.006076959034976081, + 7.45391906916999e-05, + 0.0023320464877719343, + 0.004376133859150393, + 3.520187008799863e-05, + 5.142917252934526e-05, + 5.7314371833237866e-05, + 1.9429607794752888e-05, + 1.5817505577012435e-06, + 4.281663812917758e-05, + 4.186941554450491e-05, + 8.637677701681919e-05, + 0.008617980389554532, + 2.1402630556665295e-05, + 0.00010908601690073171, + 5.977129380080876e-05, + 0.0033216559080485038, + 2.006953745216285e-05, + 4.257501182633146e-05, + 5.679787494029275e-06, + 0.002246202067281234, + 1.0605426200807425e-05, + 2.8292786126268883e-06, + 4.466158367344553e-05, + 8.20396676808335e-06, + 0.007431416098998833, + 5.464906557027554e-05, + 3.952316376324563e-05, + 1.3640677423618407e-05, + 4.7059955452611104e-05, + 0.0001502896301746381, + 0.005788183044113987, + 9.160651790060595e-05, + 4.862973927123171e-06, + 0.009325200209838529, + 1.5043418041883717e-05, + 3.622517432977772e-05, + 8.087032305166897e-05, + 9.731186228103503e-05, + 3.681470226756574e-05, + 0.006026699609445051, + 4.13354242155286e-05, + 0.00013284441629376648, + 7.017012962279487e-05, + 0.007838582074793548, + 0.0001692474180237501, + 5.344940792856073e-05, + 1.0003473717192444, + 1.9568895044000717e-05, + 3.4622617627696845e-05, + 3.9956313402664994e-05, + 1.400441455646313e-06, + 2.5948670913940536e-05, + 1.6582000373062033e-05, + 1.0572160482083514e-05, + 0.009395193044154506, + 1.958894495909591e-05, + 6.9481289418868506e-06, + 2.0365071098452272e-05, + 1.4998249072389926e-05, + 1.0443226802502651e-05, + 0.004026712082539978, + 4.238725016304624e-06, + 3.981529552547065e-05, + 3.0345710219469527e-05, + 0.007331530231065854, + 0.0026905222874216293, + 0.007233946888549284, + 0.003377191445622171, + 0.009613824701437153, + 0.00713900933396598, + 0.0011279691886657696, + 0.006810501117304453, + 7.429189137403037e-07, + 2.8372766896015674e-06, + 8.003274135724149e-06, + 1.3444929746094877e-05, + 6.409491851623345e-06, + 1.7753298709646568e-05, + 1.1931230595413092e-05, + 3.434636208153656e-05, + 3.5078202872376415e-05, + 1.4326993554005429e-05, + 5.039565961946691e-05, + 4.0024903276032146e-05, + 1.2028922085198997e-05, + 1.3878912028461374e-05, + 0.002007918983284649, + 4.998900482600028e-06, + 3.005623947511771e-05, + 0.004418490344777326, + 4.351836384074313e-05, + 1.9764588428937462e-05, + 1.0388433136278484e-05, + 0.004820441889805756, + 0.0029571873238747764, + 1.2256683466934352e-05, + 1.2373222472231526e-05, + 5.238104174226221e-06, + 1.1285596254064168e-05, + 0.0012857957851166912, + 7.326674752573379e-05, + 3.207616483694981e-05, + 6.911886475228355e-05, + 0.006303951277465212, + 1.000139489888943, + 5.464906557027554e-05, + 0.00010733714305272089, + 6.0660365159832946e-05, + 7.720124525653074e-05, + 5.855432409621465e-05, + 0.0094797029371434, + 6.522745373782873e-05, + 3.0658884688565634e-05, + 9.023068062958051e-05, + 4.544248644969524e-06, + 1.2001044159749209e-05, + 1.8785954384074086e-05, + 2.055840385903111e-05, + 2.2085715213219096e-05, + 3.981529552547065e-05, + 6.040915927635078e-05, + 0.0023256807425682856, + 0.0045434752542678775, + 0.009927709865127338, + 0.0030457536628856843, + 0.0024160246204003987, + 3.729640223912626e-05, + 9.760272777704633e-06, + 1.4237690377161014e-05, + 3.104211937400289e-06, + 2.2659425801912526e-05, + 3.449505512877965e-05, + 3.0856925473438306e-05, + 0.009872411943305133, + 7.684621219798062e-05, + 2.8652478623502918e-05, + 2.006953745216285e-05, + 8.417123614646206e-06, + 0.00013607125408058739, + 2.2662814589453177e-05, + 0.008980663561578098, + 4.231651410967184e-05, + 6.570378455831617e-05, + 6.429821139034277e-05, + 5.4917651460058454e-05, + 8.490755068004092e-05, + 7.762892683073968e-06, + 0.006997835355462587, + 1.5400242532702548e-05, + 0.00020214142289124118, + 1.3711952075214602e-05, + 5.665925866907958e-05, + 6.752494369555874e-05, + 0.008406326448191252, + 8.105068432626227e-05, + 3.8638061642113294e-05, + 0.002859745735827901, + 7.167385084465495e-05, + 9.382078897977693e-05, + 0.00794874308179511, + 5.765771555038821e-05, + 0.00020298304343537954, + 1.0004371964060472, + 3.087999998307821e-05, + 0.00559334195236974, + 6.955184983029764e-05, + 8.382334225368937e-06, + 0.00890671898717624, + 2.8651042860903155e-05, + 9.081164422170525e-05, + 2.0040038050023106e-06, + 5.292434468074637e-06, + 3.5321432741907855e-05, + 1.0802323681468716e-05, + 2.180501874404649e-07, + 2.2954687209557798e-05, + 1.5070953927305015e-06, + 4.238725016304624e-06, + 7.932889293692498e-06, + 0.004191427400667957, + 0.009546401607162315, + 0.0018340534860973967, + 4.991506895964298e-05, + 0.006438821015870284, + 5.179424309578726e-05, + 0.00010372821586498543, + 4.425405285903667e-05, + 2.245811070471092e-06, + 5.658566875586513e-06, + 5.196399985490808e-06, + 4.967058051043821e-06, + 0.00855284750328267, + 4.548301416806034e-06, + 3.191452729950644e-05, + 0.003534239376464677, + 8.058523579155135e-05, + 3.049006450511041e-05, + 0.004894035966285886, + 8.274181744819948e-06, + 0.008819032847634595, + 6.226152553836605e-05, + 2.880816747198646e-05, + 2.149929346326834e-05, + 1.7654607315174462e-05, + 8.046991690297857e-05, + 5.077626632758732e-05, + 5.687817152330025e-05, + 4.31693251840473e-05, + 0.006523181202208075, + 1.9299368127396475e-05, + 0.004441591003607541, + 0.00010936821654083165, + 0.000515067873673531, + 6.029281872575666e-05, + 9.658299046784831e-05, + 3.9616146869272896e-05, + 0.007320563611416953, + 0.0005189204241672527, + 0.00022920125990033514, + 7.391753503787828e-07, + 4.3743752451769124e-05, + 4.348830887366919e-05, + 4.2782354320608835e-05, + 8.087032305166897e-05, + 0.0056954290527608375, + 1.1253258306963982e-05, + 0.001842198992963593, + 2.266465386200731e-05, + 2.5613491124066854e-05, + 7.991859104992195e-05, + 0.0028124813517910368, + 0.0001482169747593478, + 0.0011243045085116564, + 6.444479221415082e-05, + 1.0003563067916093, + 0.00020298304343537954, + 0.003163709767952356, + 1.600133368842961e-05, + 0.003804170827353817, + 9.369045968381743e-06, + 0.009902295270012016, + 5.312082381498302e-05, + 2.2088685428722426e-05, + 6.182638644992776e-05, + 4.6149482328255726e-05, + 4.30662229714024e-06, + 1.7490310600702375e-05, + 0.0068963851965890615, + 1.3151090432536203e-05, + 0.00681460115425272, + 6.472707200050332e-05, + 8.37663585323914e-06, + 3.2901582192803755e-05, + 7.438842701197541e-05, + 0.003841607579534625, + 2.1943796847118125e-05, + 2.1569779244003335e-05, + 0.006208188035058918, + 0.007629929362896941, + 0.0008070845419398598, + 0.009283357720056219, + 1.6907856271275485e-05, + 9.842205408662057e-05, + 7.088415884733152e-06, + 4.279874378483436e-05, + 8.545533305049899e-07, + 7.891320233959729e-05, + 4.0935322624666356e-05, + 2.7372743738309747e-05, + 4.61354304564752e-05, + 0.004589697180653488, + 4.909709825223077e-05, + 7.199308136705757e-05, + 2.4213688635566925e-06, + 4.799118855640533e-06, + 1.0839399538239977e-05, + 8.751376430531743e-05, + 0.00012388258501309837, + 0.006489894070843838, + 0.00537362751138068, + 6.871895392907351e-05, + 4.463507283417051e-05, + 0.00010310363765821542, + 3.872517421314511e-05, + 3.2475583311200885e-05, + 4.279985052176947e-05, + 0.004090065904547754, + 1.1849582333965748e-05, + 2.2472137285700316e-05, + 1.1178736689857231e-05, + 0.006303951277465212, + 1.0486260105233297e-05, + 3.6191356626329917e-06, + 4.810896760486375e-05, + 5.8641039681199165e-06, + 0.0015313480060440388, + 5.0148776047508897e-05, + 2.6170465216380154e-05, + 4.411509974638011e-05, + 2.0662887478761327e-05, + 6.459296738261779e-05, + 1.000242876722117, + 4.2782354320608835e-05, + 3.622517432977772e-05, + 6.91575555913188e-05, + 2.7758845583371817e-05, + 0.004544223191595411, + 4.7185395178301896e-05, + 5.403445097854669e-05, + 0.00821535577889686, + 4.3598497940565115e-05, + 1.2663767548591473e-05, + 1.4344908058887058e-05, + 0.003008892442669965, + 1.050353687539633e-05, + 3.035721643280287e-06, + 9.986170939792048e-06, + 5.7774606273442145e-06, + 5.629750213349031e-06, + 4.470429515463049e-06, + 4.962050411035719e-06, + 2.8704814649242224e-05, + 2.9134358931703176e-05, + 0.0033481834471345106, + 2.8207005358445007e-05, + 0.011977395320336965, + 0.006793715977169662, + 0.0020874736505889233, + 0.00944967063640076, + 0.002284715759170237, + 0.007820308463700465, + 1.468252114735999e-06, + 2.883557709799689e-05, + 9.853135724398703e-08, + 3.3429279893770895e-05, + 4.470866250334624e-05, + 6.897424097163955e-05, + 4.61354304564752e-05, + 0.006044533045230626, + 0.00014086511687519626, + 0.0022034474410589774, + 1.0479176239748488e-06, + 7.795590519058728e-05, + 1.42711447725146e-06, + 0.00012218969694670703, + 8.445107658541375e-05, + 0.00015054319828436234, + 3.469139439790145e-05, + 0.0077137338986100305, + 1.4115982854095151e-05, + 6.897019142137336e-06, + 5.633371613685428e-05, + 0.0017554784915360983, + 0.00010354443959710574, + 6.444479221415082e-05, + 5.765771555038821e-05, + 0.0034103459841710953, + 3.5073730595340513e-05, + 4.045190920950058e-05, + 0.009874079931003811, + 0.006620078112091664, + 7.645574527309935e-05, + 1.7857945324176098e-05, + 6.915242362438579e-05, + 8.633795911073606e-05, + 7.250283695571141e-06, + 6.857877591054047e-05, + 3.8981566327742296e-05, + 1.0004484710811958, + 5.344940792856073e-05, + 1.7667422410700649e-06, + 3.7073972839090896e-05, + 1.3483569982537823e-05, + 0.00022871279642392865, + 7.92758331939025e-05, + 3.750389361508163e-05, + 7.964997756107978e-05, + 0.009041327173160378, + 1.5943467644657593e-05, + 0.004215542482180343, + 3.832907709147249e-05, + 7.617858133867746e-05, + 3.774635551090802e-05, + 1.1261487041142267e-05, + 7.61928649524494e-07, + 8.021012974644137e-05, + 2.200821759837018e-05, + 1.286742358858376e-05, + 3.4815135325005485e-05, + 1.026479569747631e-05, + 0.008215388579910384, + 1.66515736182694e-05, + 0.004038422827637369, + 0.007856691498778193, + 0.009863281735601262, + 0.007316043405194684, + 0.004871900036639932, + 0.0012684392689259717, + 0.0033616025774451984, + 5.5252471143096764e-05, + 9.086408853336123e-06, + 2.4430423550093762e-05, + 0.003377191445622171, + 2.410980125288674e-05, + 0.005193523917210944, + 1.1969821155206793e-05, + 0.0019675877767165563, + 9.962891593689917e-06, + 1.8910845561383668e-05, + 4.994533857957476e-06, + 3.780064200939412e-05, + 0.00013853609608595324, + 1.614530164100325e-05, + 6.354986925006403e-05, + 2.2152551541613593e-06, + 6.813742258479065e-05, + 3.0274665047374855e-05, + 6.177626701645455e-05, + 4.497861352315392e-05, + 2.1078685517739725e-05, + 0.014405048700368052, + 6.301974197764083e-05, + 0.0001423670210546449, + 5.030491643952388e-05, + 0.00013392222673275266, + 0.00011108092659027222, + 3.681826033099115e-05, + 0.005102547594472177, + 2.77877047137349e-05, + 1.3244196667398672e-05, + 1.8420403038691553e-05, + 2.74813477149931e-05, + 1.5400242532702548e-05, + 2.9882322235776724e-06, + 0.0018410580341127881, + 3.89090190295633e-05, + 1.8408154591897332e-05, + 0.00956642620888577, + 5.147977149152313e-05, + 6.459296738261779e-05, + 4.348830887366919e-05, + 0.003961812646855485, + 9.171185102672263e-05, + 0.009543969020334744, + 7.943201654792854e-05, + 4.832204262125161e-05, + 3.053482229077703e-05, + 8.226129661953519e-05, + 1.0004567971543645, + 3.8981566327742296e-05, + 0.0001692474180237501, + 1.7888324242610096e-05, + 1.0777056264245487e-05, + 6.552162915475501e-06, + 8.051282580337352e-05, + 1.8606361438029243e-05, + 0.007925813749040412, + 0.0013262776517449749, + 0.004367331740704896, + 5.484361314441554e-06, + 5.208047344244813e-06, + 8.186621732546018e-05, + 6.51473398838025e-05, + 2.155358575807791e-05, + 3.4881950218393824e-05, + 2.193189938950662e-06, + 4.960478974867715e-06, + 4.812960853350476e-06, + 3.101156235952684e-05, + 4.2157943183771885e-05, + 0.001945479696999113, + 1.0169619211581902e-05, + 5.136316317798199e-06, + 1.8634392412703953e-05, + 6.843153149414602e-07, + 5.429085810404545e-05, + 1.9900331944692724e-05, + 9.908776278140068e-06, + 5.9923237944393764e-05, + 2.80291057979106e-05, + 0.004026712082539978, + 0.007536101314779872, + 6.155588174262378e-06, + 1.5196701226806156e-05, + 3.161582560257577e-05, + 4.103470307486917e-05, + 5.879348156754798e-07, + 7.834536780450026e-06, + 4.573898088787692e-05, + 5.787477450346718e-06, + 1.9728161055912034e-05, + 9.197717876650045e-06, + 1.5425238648487882e-05, + 0.0010589697528595465, + 8.7581123233078e-06, + 1.2188625738568068e-05, + 8.219456431663026e-06, + 3.76336116087435e-05, + 0.00011728024289987551, + 0.006162464895893152, + 0.004340989890632332, + 5.179000999773563e-05, + 5.253136891324345e-05, + 4.470787698074131e-05, + 7.564088304664701e-05, + 5.345428422257456e-05, + 0.006164328751618406, + 8.058865452382106e-05, + 4.611385404600837e-05, + 0.009281254762723639, + 5.3988536601202625e-05, + 7.933617991373189e-05, + 0.007406400889151284, + 0.00010702878044929721, + 7.840140364717967e-05, + 2.058832098831185e-05, + 0.00014935807139830338, + 5.208940248579786e-05, + 0.009295057053681489, + 9.414993358493272e-05, + 1.5694842719006986e-05, + 0.006161186192549629, + 0.00011875593959169661, + 9.067481939191294e-05, + 1.0003904807244115, + 0.00010354443959710574, + 0.0011243045085116564, + 0.00794874308179511, + 9.885006688172613e-05, + 0.003554991012200417, + 4.497641852423167e-05, + 6.895434020954211e-06, + 0.007281113407364993, + 0.0001129253805894384, + 0.00010322667475459351, + 2.5507526232547014e-05, + 1.5259333259623386e-06, + 4.65911604680687e-05, + 4.810990280897296e-05, + 4.35156286886779e-05, + 5.2689843753786996e-05, + 1.9556388210223286e-05, + 0.005248491323114544, + 3.5317987962918195e-05, + 1.0169619211581902e-05, + 2.9475059591468917e-05, + 1.5005851203904687e-06, + 1.6821322945941589e-06, + 0.00037552320060045606, + 3.7152036280563222e-06, + 2.108479944985597e-06, + 0.0034308146917214903, + 0.005562525093049638, + 7.642218699679069e-05, + 0.0007922004510952769, + 3.467896560878684e-05, + 1.0222702906452622e-05, + 1.3621500339103099e-06, + 7.310290289575026e-06, + 0.006804287846315139, + 1.7594688486085036e-05, + 3.913977044227693e-06, + 0.0001391716422599186, + 0.009151840802452679, + 0.005289247804570505, + 2.213282547714912e-05, + 7.511646879857002e-05, + 0.0056379696535372795, + 2.8074432059582885e-06, + 1.8264595375149003e-05, + 3.2854142780819036e-05, + 5.947613597670801e-06, + 1.879420935773223e-05, + 0.0037882592550023573, + 1.7033791982717998e-05, + 1.9546483249476834e-05, + 0.002923910238477404, + 8.738491375979277e-06, + 3.993375566796682e-05, + 7.456582558012644e-05, + 2.8652478623502918e-05, + 3.2648313100976816e-05, + 0.0018398040804846942, + 0.003262568127085023, + 4.324578616775226e-05, + 2.350896238431244e-05, + 0.0072466957647136405, + 5.147977149152313e-05, + 2.0662887478761327e-05, + 4.3743752451769124e-05, + 1.5043418041883717e-05, + 0.0025456088283974092, + 0.0008344352091233543, + 0.009423377551926036, + 4.159463451217095e-05, + 0.0011141911866881654, + 2.2764179043432686e-05, + 1.9808276545164153e-05, + 3.5011884286798186e-05, + 0.007944636963792108, + 0.004449428258901354, + 0.00694616003156225, + 2.01100155359697e-05, + 4.2842658647721135e-05, + 0.008061790939854345, + 0.0030345791284893233, + 2.9396639749410458e-05, + 6.24900923096088e-05, + 4.399702131495049e-05, + 1.3007037389759159e-05, + 6.804885467463613e-06, + 1.001620013315965, + 1.945367154999441e-05, + 1.5696421917549157e-05, + 7.028971907680665e-05, + 4.7269354886358105e-06, + 0.0006949372352616699, + 8.484749056658531e-06, + 3.3014866340073654e-05, + 7.073516401505625e-05, + 4.014886379571267e-06, + 9.108396625983994e-06, + 0.004321927299556481, + 0.0058768241372289, + 0.001274567154347896, + 0.008215388579910384, + 0.005622981904158817, + 0.008694167441570979, + 0.004990979010645134, + 0.0020676055741927837, + 8.507831038245505e-05, + 1.3421878168480512e-05, + 3.698500719033811e-05, + 5.2892774698968354e-05, + 4.279407556548083e-05, + 5.15076415312748e-05, + 5.3235186612166245e-05, + 1.951610783233207e-05, + 5.326649168148768e-05, + 5.409762971466342e-06, + 2.416269384841492e-05, + 0.006778124499406896, + 6.72187870424122e-05, + 0.0003862692349598243, + 3.555021927781079e-05, + 1.847328180131288e-05, + 5.472011340191899e-05, + 0.006850510061810733, + 4.319694231074623e-05, + 0.0010627994318390286, + 2.817754802475255e-05, + 7.164637249194579e-05, + 4.5445832281131216e-05, + 0.00833339346667911, + 0.006202938017977235, + 1.0203266725336442, + 8.169223873696375e-06, + 0.006358998048098247, + 4.2287392648719884e-05, + 1.0623499542258326e-05, + 0.00016112846705804528, + 0.00574581527221644, + 2.696520810397456e-05, + 4.8413826881802706e-05, + 3.2533800384630557e-05, + 1.4154750529256727e-06, + 2.0040038050023106e-06, + 4.544248644969524e-06, + 1.5169365522255912e-06, + 1.5813697966072556e-06, + 0.0039959851162086795, + 0.00037552320060045606, + 0.003841607579534625, + 0.009893406378396238, + 0.005614779437366768, + 0.006195682247786596, + 0.0004904804093198068, + 3.401408920663357e-05, + 5.259205737729365e-05, + 4.73731084926689e-05, + 3.746647411616235e-05, + 0.004515126381855252, + 3.46151188786036e-05, + 0.0009421147252950182, + 8.003274135724149e-06, + 3.5918105428542704e-05, + 3.366232988367765e-05, + 0.004745979425066099, + 3.7947580282532233e-06, + 5.1798205991187264e-05, + 5.493834356565433e-05, + 6.478983772859016e-05, + 9.490674478102146e-05, + 0.00826115681055757, + 3.781020879821394e-05, + 6.771638314171035e-05, + 9.945364267061394e-06, + 8.709392167994599e-08, + 0.008851514555513171, + 7.092762014150933e-08, + 7.241693757591757e-06, + 2.2529968517451576e-05, + 8.949628991663872e-06, + 2.5844655406679966e-05, + 0.0019337748315410668, + 5.464070852933514e-06, + 0.0013346887928212846, + 4.014318685652859e-05, + 0.005249400737137344, + 6.056929639322962e-06, + 8.226129661953519e-05, + 6.857877591054047e-05, + 0.007838582074793548, + 4.571840485343565e-05, + 0.005741093990493656, + 6.497358014457847e-05, + 5.826260311688797e-06, + 3.1987418151162497e-05, + 2.3174984669763992e-05, + 4.4290465341956033e-05, + 0.007513842671876183, + 3.19672703161189e-05, + 0.00013016863433750942, + 1.671129286964195e-05, + 4.764519943351331e-05, + 0.00011371720186554668, + 3.582381449643013e-05, + 1.0002999647818855, + 0.006202938017977235, + 8.255379593155514e-06, + 1.8507845222880758e-05, + 4.27333714582164e-05, + 0.00403467118712389, + 6.717291162328866e-05, + 0.005794533630906074, + 0.00048644854934731753, + 0.0011035844870068423, + 0.006548836331007934, + 5.5843212860730985e-06, + 2.2006625594661942e-05, + 2.1430325576489996e-05, + 2.2149089869145255e-05, + 8.119893134280176e-06, + 6.205293339025682e-06, + 3.7681435698580956e-06, + 9.861034013834767e-07, + 5.110303605181262e-07, + 3.104211937400289e-06, + 2.2893352845326236e-06, + 5.064743170214215e-06, + 3.485116857707309e-06, + 0.0005778280391964555, + 3.117548029508032e-06, + 0.008570542520500277, + 5.458741613905111e-06, + 0.0005468462075336555, + 1.6298167845171424e-06, + 3.619066817315635e-05, + 6.040661971505374e-05, + 4.157804352074367e-06, + 1.1478516439581388e-05, + 7.01050892693061e-05, + 5.631224140776579e-05, + 7.740590924596806e-06, + 2.2755660280173264e-05, + 3.76336116087435e-05, + 0.005796324582018182, + 3.5125133690867506e-05, + 5.803877605658419e-05, + 1.836210569087713e-05, + 5.235179554840961e-05, + 5.359866281977652e-05, + 1.0034658106515606, + 3.582381449643013e-05, + 0.00833339346667911, + 3.802634538910261e-05, + 0.006806823890020743, + 4.695475624562457e-05, + 1.1796041331419004e-05, + 0.009918597864277588, + 0.006329999010846514, + 0.006765004772106684, + 1.041461905701894e-06, + 6.165144402688587e-05, + 2.8449049102145023e-05, + 7.544933136494426e-07, + 3.177050433723157e-07, + 1.176349128772483e-07, + 7.61928649524494e-07, + 2.180501874404649e-07, + 7.442826532368355e-07, + 5.959071178316483e-07, + 6.751158464193462e-07, + 1.083030484391954e-07, + 0.0018985266027096914, + 0.013780337834186657, + 0.007152670825092443, + 0.0033481834471345106, + 0.004710837294839253, + 1.5318526814856903e-05, + 1.5917088164935347e-05, + 5.654731790071036e-05, + 1.7297893003350107e-05, + 2.225316986181994e-05, + 0.005248188198912619, + 8.477351939698314e-05, + 0.00013867448984484528, + 5.242738108525685e-06, + 2.2755660280173264e-05, + 7.717911239137264e-05, + 0.003925877503611112, + 0.00012386310278921677, + 2.5668579786795284e-05, + 0.0081575359016717, + 0.008538605385254245, + 2.78444326678576e-05, + 1.4663526011589675e-05, + 0.0030543276608787084, + 0.00011032302460473533, + 2.0879152531223147e-05, + 0.00858142603278076, + 1.2886151317740457e-05, + 0.00011931118425226127, + 3.872517421314511e-05, + 1.2256683466934352e-05, + 0.00015854687935395274, + 0.002954714475054873, + 8.366686264344738e-05, + 0.009532371787812329, + 6.303360450230218e-05, + 2.2583435590428477e-05, + 0.0014282378997911738, + 0.0001012477669236068, + 3.88605346505195e-06, + 1.6515955131066794e-05, + 1.0003730467323628, + 0.00010702878044929721, + 0.00012245212128581448, + 5.752384109440578e-05, + 1.9635793154361086e-06, + 5.322016823308476e-05, + 3.8611487076955e-05, + 0.00689029288331709, + 6.623595464622124e-05, + 9.142508566084441e-05, + 1.9982365220095112e-05, + 1.844624633903237e-05, + 1.0730957657725968e-05, + 4.3598497940565115e-05, + 8.180534967924788e-06, + 1.034996127455612e-06, + 1.3325165197173029e-05, + 4.258700237407619e-05, + 2.6905188075855888e-05, + 3.3405059603801925e-05, + 0.007984668065463083, + 0.006995397184540966, + 0.00681460115425272, + 0.009498292054863657, + 0.004828100933283703, + 1.3509640250550743e-05, + 0.001935240152718257, + 0.005956877741835263, + 0.001274567154347896, + 1.026479569747631e-05, + 0.007245395472591905, + 9.09074558996317e-06, + 7.288720745849373e-06, + 0.004060612310993983, + 0.007496747275018019, + 1.0706972202517327e-06, + 2.844506535959634e-06, + 2.16038287937511e-05, + 0.0023320464877719343, + 0.0003816885689634088, + 1.6125188709193586e-06, + 1.9541155247926564e-06, + 0.005332022790581705, + 5.8749181656967195e-05, + 4.787322589202522e-05, + 5.196399985490808e-06, + 4.195497660194445e-05, + 7.174147412406096e-05, + 0.001254912207654518, + 1.9635237808574706e-05, + 4.2254995780583525e-05, + 2.4633857595563536e-05, + 2.532220139804081e-05, + 3.0247199102358532e-05, + 6.939682639117589e-05, + 7.795414495027033e-05, + 6.595502583296869e-05, + 4.957894886944058e-05, + 7.144392268361971e-05, + 4.89366368790601e-05, + 0.008434198729491096, + 0.0001055661057078594, + 5.849183962449663e-05, + 6.810953124830916e-05, + 5.1798205991187264e-05, + 0.005683899652143301, + 1.6446658316063207e-05, + 7.376706734812109e-05, + 8.927093181596704e-06, + 1.9073452472447576e-05, + 0.0032229912057087124, + 5.109858086914298e-05, + 2.6087163904935546e-05, + 0.001402735417636479, + 0.004466014513292503, + 0.00010630503753370316, + 6.203012046578658e-05, + 2.9507190624179216e-05, + 7.489498443709168e-05, + 5.6129781407169457e-05, + 9.723714884303621e-05, + 1.0002718330049372, + 6.804885467463613e-06, + 5.130159250113782e-05, + 6.052485692047022e-05, + 4.35561991898656e-05, + 0.00010981446149796692, + 0.009882759593724188, + 3.0360842724742417e-05, + 4.01489884515465e-05, + 3.1326321629322294e-05, + 1.933607075234137e-05, + 9.153726814948286e-06, + 4.221448294680072e-06, + 2.6281148204999713e-05, + 2.9711268059919924e-05, + 0.009092323764615015, + 3.877812615061973e-05, + 3.832907709147249e-05, + 2.16038287937511e-05, + 0.008164029212026792, + 6.556057476266936e-05, + 3.5817131940039534e-05, + 4.628791292582566e-05, + 2.461900532024616e-06, + 2.636155130685005e-05, + 3.8655259029171693e-07, + 4.134393643718326e-05, + 2.6583074685513483e-05, + 0.0046012907750768986, + 8.085035701929519e-05, + 4.494637145322238e-05, + 0.0009421147252950182, + 4.3088882703026115e-05, + 0.00020211630792040222, + 0.004245174591239174, + 0.002965796072866161, + 6.689722171556712e-05, + 6.735818788402423e-05, + 2.7073737897301418e-05, + 0.00044431236058949623, + 3.8907724284033985e-05, + 0.00011641156866472645, + 6.015624802294293e-05, + 2.4569621790304322e-05, + 5.039565961946691e-05, + 6.86394345037373e-05, + 2.062861723670921e-05, + 0.00017606248522604556, + 0.004924228234314472, + 0.006655999042995089, + 8.572705345464126e-06, + 0.00652056301061857, + 0.0075773494450229375, + 6.833509523082159e-06, + 7.849728077354606e-05, + 7.456582558012644e-05, + 0.0033216559080485038, + 5.4622505552109676e-05, + 3.3803783166902323e-06, + 2.1441172414522936e-05, + 1.0371090875917845e-06, + 0.00040951532149479774, + 0.00010429519486518364, + 2.2346628787836468e-05, + 5.760504239152818e-06, + 7.85697336266132e-06, + 2.5853406633669654e-06, + 0.00010021526772651202, + 1.6515955131066794e-05, + 1.959778315481159e-05, + 0.0001284645428770314, + 1.8500337692731853e-05, + 1.3433271666820882e-05, + 0.0024404954301714054, + 0.001268052671563556, + 2.8342207263042518e-05, + 0.002554135913483182, + 8.335327060635427e-05, + 1.000455544525457, + 9.067481939191294e-05, + 0.0017554784915360983, + 0.0001482169747593478, + 9.382078897977693e-05, + 5.054622426696256e-05, + 2.8191053266072524e-05, + 0.0001805488747476753, + 8.942891187852903e-06, + 0.009496872318820002, + 9.399386408590776e-05, + 7.71081508500837e-05, + 6.979561412464874e-05, + 4.01489884515465e-05, + 2.8726589223701957e-05, + 6.374362258410816e-05, + 5.800260442591195e-05, + 5.464438004534413e-05, + 1.4154750529256727e-06, + 0.0036699814726822077, + 0.002612451324535824, + 0.006157260534451727, + 0.004325677183490168, + 0.005850778163732161, + 0.009743049631104774, + 4.617323056512292e-05, + 0.003061799067835776, + 0.006995397184540966, + 6.603767343972547e-05, + 1.8504975325063464e-05, + 3.356777733560644e-05, + 2.813328553469004e-05, + 5.356863279872683e-05, + 0.0004195966818797722, + 0.009609472854344313, + 6.9319518972996804e-06, + 0.0045434752542678775, + 9.92624527811888e-06, + 3.0453043375824447e-06, + 4.3883882401521954e-05, + 1.94630953296662e-05, + 2.4430423550093762e-05, + 0.007233946888549284, + 0.00010136556747827229, + 8.159669202728204e-06, + 5.168247156296229e-05, + 9.073084147842132e-07, + 0.005126444542508474, + 1.7327129637714894e-07, + 0.0090398684568361, + 0.006358011194064177, + 8.338065908363515e-06, + 1.4039561271931087e-05, + 4.232256890170172e-05, + 2.6445664430825162e-06, + 1.2973929579280214e-05, + 5.242738108525685e-06, + 7.740590924596806e-06, + 8.219456431663026e-06, + 6.671127692826823e-06, + 0.0013354308950555116, + 1.185020908107824e-05, + 3.744616336372351e-05, + 0.00011094755414201958, + 1.0002389983320283, + 1.7033791982717998e-05, + 0.00012388258501309837, + 5.077626632758732e-05, + 5.551480015170474e-05, + 3.8945017106828324e-05, + 0.00587733230650688, + 1.741084018960257e-05, + 0.008126126390881718, + 1.260606554655423e-05, + 0.006756440638648885, + 3.5317987962918195e-05, + 3.809734129067859e-05, + 2.3765530992957984e-06, + 0.0016452738524017194, + 0.003230710684057512, + 0.00813513284380525, + 0.0017964531586413168, + 5.245897082846726e-05, + 2.2699011482774208e-05, + 2.844506535959634e-06, + 4.991506895964298e-05, + 3.4185747076641285e-05, + 3.453785158693196e-05, + 8.604060923538484e-06, + 5.742099408205895e-06, + 1.7327129637714894e-07, + 0.007388783088336085, + 0.0074382588194354445, + 1.824223373856259e-05, + 0.002711227563482645, + 1.877880444362138e-05, + 0.0037547983552217367, + 6.791867953427332e-05, + 9.324987802129278e-06, + 2.7808250649402162e-05, + 1.3612134800845368e-05, + 0.004938488230247744, + 2.451747705959345e-05, + 2.6429175994417655e-05, + 2.647290542189767e-05, + 0.0028935743279264107, + 1.1621207799905132e-05, + 1.833190249544069e-05, + 0.007791658840435856, + 0.0001185655905667058, + 0.00025118900478544144, + 1.3553940587364827e-06, + 1.8486741044336282e-06, + 9.760124850673267e-06, + 3.9536170159753443e-05, + 0.00010021526772651202, + 3.88605346505195e-06, + 0.007406400889151284, + 4.1413939487704946e-06, + 3.336172852818558e-05, + 7.398325825980472e-05, + 4.352960566006824e-06, + 3.160726188317129e-06, + 0.000605441247258067, + 5.422057846185583e-06, + 8.2936366790311e-06, + 6.25004168927728e-06, + 4.367459088655561e-05, + 1.0002082081931074, + 6.056929639322962e-06, + 3.053482229077703e-05, + 7.250283695571141e-06, + 7.017012962279487e-05, + 1.5967932983625997e-07, + 0.0013164853450756745, + 1.2186539544715434e-06, + 9.071001496701286e-05, + 0.001026103455904006, + 0.0034227338913006555, + 0.0013789509831549367, + 0.0008094970202235607, + 0.0024756450814178467, + 5.689189388216512e-06, + 0.0005478704792354883, + 4.5637951432835935e-06, + 2.8683298392619073e-06, + 0.002752361059311225, + 0.008359354900165079, + 0.004316602141437835, + 0.0029471484685646876, + 0.004357343568433076, + 3.3602864974098526e-05, + 8.001581192602237e-06, + 0.0016452738524017194, + 5.2504102984330765e-06, + 2.1796536959262597e-06, + 0.004934645058048987, + 3.9338609163468106e-07, + 0.002612451324535824, + 3.320383246689815e-05, + 5.937810771779099e-05, + 1.1969821155206793e-05, + 0.006083500465316787, + 4.901761593493149e-05, + 3.5181354807464185e-05, + 5.8469634307341134e-05, + 5.663119294446125e-05, + 4.7298225712617244e-05, + 6.139913854674415e-06, + 5.110303605181262e-07, + 1.5196701226806156e-05, + 1.4237690377161014e-05, + 3.7303041062276185e-06, + 8.252627901419628e-06, + 0.0009286021346292216, + 5.079816090900735e-06, + 6.509212224544221e-06, + 1.3500497663962548e-05, + 1.5106463096119683e-05, + 9.793241132476954e-06, + 3.913977044227693e-06, + 4.917905109956431e-05, + 0.0010195254958027743, + 1.7160912740953665e-05, + 6.911311528819053e-06, + 3.2874580211676028e-06, + 8.733381168004906e-06, + 5.796526019303194e-07, + 1.5511247519254373e-08, + 2.4050974985867775e-06, + 1.42711447725146e-06, + 2.266246567558815e-06, + 1.6457045280624036e-05, + 0.00014991626842961953, + 1.103134707835397e-06, + 3.3583569172584694e-05, + 2.6463650851974373e-05, + 5.648693036805958e-05, + 1.0376186007173165e-05, + 1.0001080862476222, + 1.1178736689857231e-05, + 6.911886475228355e-05, + 0.007431416098998833, + 6.104874933017689e-05, + 2.3911820891969514e-05, + 5.9520335109750265e-05, + 2.9204211939985304e-05, + 0.0073028517638831615, + 0.00842634005475897, + 3.335370314286377e-05, + 3.716813088547636e-05, + 9.986170939792048e-06, + 1.4092747286854697e-05, + 1.2649299473656828e-05, + 4.724217381934257e-05, + 2.9691546746360525e-05, + 3.283564120768238e-05, + 1.3839749949607112e-05, + 1.7386720499088466e-06, + 1.176349128772483e-07, + 1.3652454735223686e-05, + 1.2383720746665643e-05, + 8.130561009949154e-07, + 5.375142952456956e-06, + 0.00654750217444128, + 0.011437588139071007, + 0.006756440638648885, + 0.005248491323114544, + 0.001945479696999113, + 0.0026401284607189303, + 2.059942267026535e-05, + 4.05511193210967e-05, + 5.0907829920540994e-05, + 5.937810771779099e-05, + 0.005193523917210944, + 0.014888439801268014, + 8.546051687200953e-05, + 0.009965742385508356, + 8.610593246983417e-05, + 6.956014306610032e-06, + 0.00010740660096765256, + 1.4633962622208773e-05, + 2.9446476827046725e-05, + 2.7943759314982804e-05, + 5.658566875586513e-06, + 3.0110710713604018e-05, + 1.4997326509518679e-05, + 4.413367626682505e-05, + 7.405308840517132e-06, + 1.4378863651314058e-05, + 1.4703237898637284e-05, + 3.6960655441931726e-05, + 0.00814747827758538, + 0.009658027123380798, + 4.100952759170509e-05, + 0.0004400256081269027, + 0.00016616202787009891, + 9.35929561527854e-06, + 0.008814308982101544, + 5.30035956401809e-05, + 8.570889656902395e-05, + 0.00012252356756068845, + 3.710823378319444e-05, + 6.63684483593648e-05, + 7.092654206774545e-05, + 0.005760547974782387, + 5.950574219013195e-05, + 3.823333055521334e-06, + 0.0014701890195581973, + 1.0003536160802096, + 6.810953124830916e-05, + 3.7947580282532233e-06, + 0.0033598743762273376, + 2.407729671365154e-06, + 3.9117221191864173e-05, + 1.3632792315744896e-05, + 4.055292891554118e-05, + 0.0005409447801154472, + 7.582184626453817e-05, + 2.3104780332391485e-05, + 3.819063871128943e-06, + 0.003183520221360109, + 0.009754505241349513, + 0.0072660443733186895, + 0.002341990597880902, + 0.002882958045542563, + 0.006068265635885829, + 2.3007962908176834e-05, + 0.008359354900165079, + 2.4636259992210228e-05, + 4.107847715552589e-05, + 2.0074075568947277e-05, + 1.5112175287129863e-05, + 8.868053332557463e-06, + 4.1328595096240814e-05, + 2.3365918073951653e-06, + 7.01836851398739e-07, + 1.974601693940481e-05, + 2.2699011482774208e-05, + 1.0706972202517327e-06, + 7.45391906916999e-05, + 0.0029280711260348193, + 2.3553570961174583e-05, + 4.852011383706507e-05, + 0.0002330089418659586, + 2.7897221652101157e-05, + 1.5593738377884085e-05, + 1.058349284017026e-06, + 3.250308511474092e-05, + 4.038446263170618e-05, + 4.6049172717572536e-05, + 2.636155130685005e-05, + 0.007211592682138772, + 7.794108624284254e-06, + 3.1527067534437825e-05, + 3.937530357228339e-05, + 7.399152158740839e-05, + 1.1077299584837934e-05, + 9.111253699030105e-05, + 0.002607844948965233, + 0.004894035966285886, + 4.25828037495546e-06, + 0.004538686199959361, + 8.098320768821391e-05, + 4.880167751546794e-05, + 1.0002450362935638, + 2.5668579786795284e-05, + 5.179000999773563e-05, + 0.0001077222898127599, + 6.096919802748503e-05, + 3.284174067021099e-06, + 0.00010865683469747918, + 4.0346791468329965e-05, + 0.012483629336950668, + 3.5510223520742805e-05, + 7.044948047777424e-05, + 0.003967276004683859, + 0.002313141822622935, + 0.000553497892180952, + 0.0013524119124650137, + 0.0036591943541357543, + 5.2572209354611396e-05, + 2.6938937550086616e-05, + 2.6479781054830162e-05, + 3.167044894012793e-07, + 0.009423005118956355, + 1.8552101725878217e-06, + 2.8684972057005484e-06, + 2.1917380980842736e-05, + 2.3261520739724016e-05, + 5.328558922832335e-07, + 2.8372766896015674e-06, + 0.008434966654025614, + 8.557631805263534e-06, + 6.065882887747172e-05, + 0.003296579722968024, + 1.2973929579280214e-05, + 0.00013867448984484528, + 5.631224140776579e-05, + 4.853197343199784e-05, + 0.00801246907316579, + 1.2460811952974336e-05, + 7.243617434429084e-05, + 0.0003862692349598243, + 0.009742433538967666, + 1.990714084779318e-05, + 5.896737874814423e-05, + 0.007382232899732989, + 2.3553444460228956e-05, + 0.0014701890195581973, + 0.004745979425066099, + 1.765487079884287e-05, + 7.6171374432633975e-06, + 0.01169005897156178, + 0.002066966424496967, + 0.00956642620888577, + 4.411509974638011e-05, + 0.009325200209838529, + 3.41674962668119e-05, + 0.005184694759674665, + 6.311322749339541e-05, + 2.0501915098524828e-05, + 1.537618440707853e-05, + 1.999352945584506e-05, + 1.4313504055806974e-05, + 1.6958464549274786e-05, + 0.0002095266612916967, + 0.0001739067643966113, + 1.754746680391694e-05, + 8.573630025876962e-06, + 8.335327060635427e-05, + 0.00011875593959169661, + 5.633371613685428e-05, + 0.0028124813517910368, + 7.167385084465495e-05, + 2.840085319715022e-05, + 1.3166789154235854e-05, + 5.1312749912381697e-05, + 3.996606173962012e-05, + 0.008164860638231877, + 1.5242491587519319e-05, + 9.110823057042535e-05, + 8.783274600292875e-06, + 7.790316917247569e-05, + 6.180610405893971e-05, + 0.0012335807356279886, + 6.951085703673046e-05, + 3.0199481909460294e-05, + 1.000357354602237, + 9.723714884303621e-05, + 1.3007037389759159e-05, + 0.007478559973594072, + 0.0005756933364419036, + 0.0014978319467007927, + 8.319739106311735e-05, + 0.009060445131141749, + 0.008476403295092551, + 6.165144402688587e-05, + 0.00888209193214149, + 6.204363681200837e-05, + 0.0005059685367658173, + 2.193189938950662e-06, + 6.06595718656155e-07, + 4.654126826922435e-07, + 0.008330062152010861, + 4.724217381934257e-05, + 4.5637951432835935e-06, + 2.3463588718664166e-05, + 3.3014866340073654e-05, + 9.822974678059222e-05, + 0.006152628018747152, + 0.0022208218820898985, + 0.009959454332578336, + 0.0001585354537356698, + 0.0034534397792633023, + 0.0068864505226439, + 0.004865248238712459, + 3.6195734375041716e-05, + 1.5060068616501702e-05, + 1.614530164100325e-05, + 0.004318123334226994, + 7.863280354198881e-07, + 9.519664087722381e-05, + 2.4569621790304322e-05, + 1.4326993554005429e-05, + 0.00010792890575392393, + 5.243876354047514e-05, + 1.0185038332521287e-05, + 3.1188552603485446e-05, + 1.106115656959078e-05, + 2.2056768611094835e-05, + 0.003242508738519706, + 5.803857831012882e-06, + 9.155010186532908e-05, + 0.0050024275339864265, + 0.00016463726515054288, + 0.009248274563630471, + 6.757392944389293e-05, + 0.00011849937708924003, + 0.0001332272819942979, + 0.00011304389453428674, + 0.009813729259187031, + 7.807000346171727e-05, + 0.0025021376078974, + 0.00019408068036398684, + 5.4768435409716286e-05, + 6.224525801469073e-05, + 2.4500541892901417e-05, + 0.00010797040109734197, + 7.405061225080043e-05, + 0.004901352788596833, + 1.000421730166304, + 3.0199481909460294e-05, + 5.6129781407169457e-05, + 4.399702131495049e-05, + 1.3979739129546218e-05, + 9.220435186640806e-06, + 2.8841903361718384e-05, + 0.007505476440510395, + 0.0033801536148952, + 2.696520810397456e-05, + 4.843570844089803e-05, + 4.163593054971914e-05, + 1.9459193714956095e-05, + 5.1116032814248954e-05, + 5.157027738322318e-05, + 3.877812615061973e-05, + 2.5507526232547014e-05, + 2.956871823131433e-05, + 0.00669183652199143, + 0.0068963851965890615, + 0.0010612541856490243, + 1.8834701174318686e-05, + 7.276203856300719e-05, + 4.762214563038365e-07, + 1.78718978296062e-05, + 5.424328468668677e-05, + 0.008121860669464572, + 0.007152670825092443, + 6.025817506004486e-05, + 3.369506848055413e-05, + 3.6412947427721105e-05, + 8.198454746167677e-05, + 0.006793715977169662, + 2.863731908220287e-05, + 8.565419016550504e-05, + 6.9319518972996804e-06, + 8.747730094430352e-05, + 1.1762304592131597e-05, + 8.43803120629424e-06, + 0.002607844948965233, + 3.049006450511041e-05, + 3.243705960449583e-06, + 6.982511354897124e-05, + 8.27067019911165e-06, + 0.00012212415535175345, + 0.005161235266164338, + 4.959806571644058e-05, + 5.787477450346718e-06, + 2.880137609004941e-05, + 2.6676388625680194e-05, + 6.0474015681588885e-05, + 0.00011036325907642369, + 4.246587373330859e-07, + 0.00028570917724010436, + 9.009488664252652e-05, + 5.4075447940124195e-05, + 7.243617434429084e-05, + 6.72187870424122e-05, + 3.687809075046072e-05, + 0.009983239643101386, + 0.008961675208398875, + 0.003839725262471517, + 0.00012252356756068845, + 6.595502583296869e-05, + 4.9454216424904526e-05, + 0.005621853829576654, + 0.00015788936748717885, + 0.00784335809733372, + 7.860681144132016e-05, + 5.7681226031826427e-05, + 9.824617476956339e-05, + 0.009104111949848063, + 7.854359390138303e-05, + 0.0026332132949579883, + 0.0001332272819942979, + 7.30700720386402e-05, + 0.00010056316074184729, + 0.008334515044103877, + 3.709196423785288e-05, + 0.00013430194690215467, + 9.903821108325084e-05, + 0.005320131680220553, + 0.00851023050101972, + 8.894990992311741e-05, + 7.12512536575226e-06, + 1.0007327698873956, + 2.74813477149931e-05, + 0.006997835355462587, + 7.172381736447735e-05, + 0.0035186077058957845, + 0.00018398308294319499, + 0.0001783375337444304, + 0.007715697260558262, + 0.00016056771047132448, + 6.979561412464874e-05, + 3.0360842724742417e-05, + 2.4062175400161237e-05, + 6.942689596137118e-05, + 5.66267224832227e-05, + 0.0008438794789498705, + 0.0047951923711135385, + 9.500151198094398e-05, + 0.0073262954486466875, + 3.686578049401734e-05, + 9.793241132476954e-06, + 1.7594688486085036e-05, + 0.009605685363234352, + 6.511645296408814e-05, + 1.2839983888251582e-05, + 6.897424097163955e-05, + 2.7372743738309747e-05, + 1.2695145626776906e-05, + 1.9242846360984317e-06, + 0.002360689141632851, + 0.009924221952596258, + 0.0071044223349299536, + 0.00010363848198497155, + 0.005765427248372032, + 0.0033159955720434213, + 2.3553444460228956e-05, + 3.823333055521334e-06, + 5.849183962449663e-05, + 0.004622968368555527, + 5.411376477769995e-05, + 4.735984999341235e-05, + 4.988319262381871e-05, + 0.0082645365245498, + 0.0019700424201241754, + 5.646706491604017e-05, + 6.944150722416447e-05, + 0.009622053112821669, + 4.301334828362342e-05, + 4.003025947351584e-05, + 7.12512536575226e-06, + 1.8420403038691553e-05, + 7.762892683073968e-06, + 0.0022893814596128765, + 0.009382044831691094, + 6.224177478794206e-06, + 9.019246741974433e-06, + 0.0009234583894543225, + 3.0746562325406976e-05, + 3.567549464296331e-05, + 0.00130153079327133, + 0.00010236722183861859, + 4.356112667058918e-05, + 0.007118970625743312, + 0.0047020195291187054, + 5.264850636123655e-05, + 0.006362434526919624, + 9.34511827892779e-05, + 0.0032308706257639114, + 6.711352737675126e-05, + 1.000401498616877, + 5.359866281977652e-05, + 0.00011371720186554668, + 4.5445832281131216e-05, + 1.1628614234344098e-05, + 6.276963263902074e-05, + 6.0194675001078164e-05, + 2.4967263474904864e-05, + 0.00012168058179273745, + 0.008239347700691868, + 0.0029241508388424798, + 5.702868336995201e-07, + 5.105886593647359e-06, + 1.1461727965227623e-05, + 3.831561999862129e-06, + 6.661613518538756e-05, + 5.49233249363574e-05, + 0.006868664937349099, + 0.0013013807746215947, + 1.94630953296662e-05, + 9.086408853336123e-06, + 1.6907856271275485e-05, + 0.0026905222874216293, + 2.5866209626581253e-05, + 1.920766372314651e-05, + 1.8323805044617538e-05, + 3.559764352524221e-05, + 0.008617716809513676, + 2.461900532024616e-06, + 4.529448782957032e-05, + 8.697263095435295e-05, + 9.111253699030105e-05, + 8.058523579155135e-05, + 8.573114353939069e-06, + 5.375160122425016e-05, + 3.6875617603695455e-06, + 5.562833465377535e-05, + 1.5917088164935347e-05, + 1.7298730204288893e-05, + 1.3612387774774914e-05, + 0.00914181407893777, + 0.0019574602954816533, + 5.312316031361682e-06, + 4.419183138808709e-05, + 1.184780867061854e-05, + 9.861034013834767e-07, + 6.155588174262378e-06, + 9.760272777704633e-06, + 0.006896939223886141, + 1.592458114561165e-05, + 1.0957915206616842e-05, + 0.0018061101135306693, + 7.431313644927198e-05, + 0.00010584745468589411, + 0.006116514527944604, + 4.6518092916010685e-05, + 0.007160597590819221, + 1.669025577009584e-06, + 1.2649259146947333e-05, + 7.454698894418567e-06, + 5.4075447940124195e-05, + 0.006778124499406896, + 5.699395700018925e-06, + 7.760430092050088e-05, + 2.1906009920850237e-05, + 2.4050974985867775e-06, + 7.795590519058728e-05, + 0.0016040258767245185, + 0.00215782461676853, + 0.005492684933484426, + 0.00010779998862338913, + 4.4724072133743586e-05, + 0.00481031758485341, + 0.005738400102416387, + 6.52507212958729e-05, + 5.906509606247966e-06, + 4.812969575941697e-05, + 0.002946774207824383, + 1.658640530590938e-05, + 1.0003355129147409, + 0.004901352788596833, + 6.951085703673046e-05, + 7.489498443709168e-05, + 6.24900923096088e-05, + 2.5078590911148673e-05, + 3.3409698001656547e-05, + 2.6724663523493806e-05, + 3.5152894511271435e-05, + 0.006085598405466598, + 6.176049961778198e-05, + 2.2433062721085766e-06, + 0.008330062152010861, + 0.0005478704792354883, + 0.008978981047742522, + 2.5660230268410952e-05, + 2.9786294750743373e-05, + 2.3464494097835496e-05, + 0.011437588139071007, + 1.5211346445822785e-05, + 5.518628161876147e-05, + 2.026619213012e-06, + 3.554312579674117e-05, + 5.5252471143096764e-05, + 0.007331530231065854, + 0.007785646161814149, + 2.8971481713675734e-05, + 3.698500719033811e-05, + 0.00011970197773206852, + 3.982086179258424e-05, + 4.953655337972678e-05, + 1.8160182746121535e-05, + 1.3878170459442497e-05, + 1.2098027758146606e-05, + 3.8498380768415485e-05, + 8.43803120629424e-06, + 1.1077299584837934e-05, + 1.7230684945129012e-05, + 1.3089510001785621e-05, + 5.562833465377535e-05, + 4.831905131488414e-05, + 0.007690836904536741, + 0.006948275793281259, + 2.627011625477693e-05, + 2.2487394622544145e-05, + 0.003296579722968024, + 7.01050892693061e-05, + 8.193477229159464e-05, + 0.009439959067106114, + 2.830839327894561e-05, + 0.00013540300672868085, + 0.00011094755414201958, + 0.0037882592550023573, + 8.751376430531743e-05, + 8.046991690297857e-05, + 0.00782914362550076, + 2.3242003711048557e-05, + 3.4677134824006374e-09, + 6.492634734915772e-05, + 7.092762014150933e-08, + 0.00013940450826643473, + 2.7398964806537252e-05, + 6.174032240952402e-08, + 4.1517316058143174e-07, + 5.7250640224978076e-05, + 4.798729591851256e-05, + 2.1404205094684842e-07, + 2.8032026778863344e-07, + 5.7475994530403656e-05, + 5.742437076531531e-05, + 6.192835638460486e-05, + 3.5351194579500076e-06, + 0.0001479121002112239, + 1.0003971464594963, + 3.9536170159753443e-05, + 2.5853406633669654e-06, + 0.0001012477669236068, + 7.933617991373189e-05, + 0.005937531341288544, + 6.116235985298115e-05, + 8.651694171316354e-05, + 1.858511569018207e-05, + 5.597548049290373e-05, + 0.0010902598840878482, + 1.6206885535492838e-05, + 1.0482807165536582e-05, + 0.007111014770507566, + 3.026971897764431e-05, + 9.075276578589366e-05, + 4.7243792305993805e-05, + 8.759244847284295e-06, + 5.157027738322318e-05, + 4.849876254314921e-05, + 2.1787544078622775e-05, + 2.7198580063679282e-05, + 2.8838670323751205e-05, + 0.006256769866490425, + 0.001232839274524128, + 0.009832220847402985, + 9.476836787913726e-06, + 9.194877552631466e-05, + 1.7386720499088466e-06, + 1.1261487041142267e-05, + 2.116693775127853e-05, + 7.623227138481154e-05, + 1.6007448693199368e-06, + 1.974601693940481e-05, + 5.245897082846726e-05, + 0.006796385353731588, + 0.0001594947964237924, + 2.973840254558375e-05, + 7.490029829638944e-05, + 4.036930180264357e-05, + 8.218202439742403e-05, + 2.8154529321024527e-05, + 2.883557709799689e-05, + 0.008534519561254493, + 4.156106397999411e-06, + 3.54518836652093e-05, + 0.006222048667824248, + 7.883599940851821e-05, + 2.2487394622544145e-05, + 2.6445664430825162e-06, + 8.477351939698314e-05, + 1.1478516439581388e-05, + 1.2188625738568068e-05, + 7.040445704723166e-05, + 0.0019808005861819576, + 1.2854505722798077e-05, + 0.0019505472223636333, + 1.1752268666632123e-05, + 9.355601373532127e-05, + 7.849728077354606e-05, + 0.00010936821654083165, + 7.684621219798062e-05, + 5.977129380080876e-05, + 8.077315543870918e-06, + 8.181005804706189e-05, + 2.174789309648852e-05, + 6.305125415772337e-05, + 0.009122020485873628, + 8.784487795116046e-05, + 1.9266161726239038e-05, + 0.009744246327290896, + 2.9295282855615235e-05, + 0.00130153079327133, + 4.5797633600523134e-06, + 0.008592458769033464, + 0.0044026206126353655, + 0.0006133619759453804, + 2.3827168497977226e-05, + 3.783818615351871e-06, + 2.001031923930151e-05, + 1.732762971576925e-05, + 1.0004064404683561, + 1.658640530590938e-05, + 7.405061225080043e-05, + 0.0012335807356279886, + 2.9507190624179216e-05, + 2.9396639749410458e-05, + 2.0225316812531166e-05, + 6.600953573744792e-05, + 3.527685498118427e-05, + 0.0055860723141447684, + 0.0027643037349795144, + 0.004752970738232557, + 0.0024985379607832957, + 3.61809234611927e-05, + 8.001581192602237e-06, + 5.035059539802786e-06, + 3.9934496549270716e-05, + 1.1918029804950755e-06, + 8.844973558735425e-06, + 4.962050411035719e-06, + 9.09074558996317e-06, + 0.003910368997623035, + 1.5765266083114732e-05, + 1.5703286642692057e-05, + 1.3089510001785621e-05, + 3.6875617603695455e-06, + 1.5318526814856903e-05, + 1.6648212270453975e-05, + 0.00188385009334873, + 5.038538789141869e-06, + 4.959806571644058e-05, + 4.573898088787692e-05, + 8.283092032568344e-05, + 4.315960899625176e-05, + 8.80187196272973e-05, + 0.008963041275584496, + 3.5363666992940155e-05, + 3.6960655441931726e-05, + 1.6306202238306393e-05, + 4.2474491256049146e-05, + 7.929394171683288e-05, + 3.4778956437108256e-06, + 3.312989228982466e-06, + 5.328558922832335e-07, + 3.46151188786036e-05, + 7.429189137403037e-07, + 2.8887654452486578e-05, + 0.007699851554496911, + 3.2669094648244773e-06, + 6.865839426972015e-08, + 5.2222019800368575e-05, + 9.250690181223868e-05, + 0.004938488230247744, + 0.002965796072866161, + 0.00915211765251319, + 9.705123470081156e-05, + 4.3871349822661094e-05, + 0.00042286073353053205, + 4.928443982842512e-05, + 2.1655730003934487e-05, + 3.3352789969766985e-05, + 2.2852157316310878e-05, + 4.5523933983688476e-05, + 6.112496302509246e-05, + 1.000272566936319, + 2.9295282855615235e-05, + 3.567549464296331e-05, + 0.011055507216417616, + 8.654641647049102e-05, + 0.005903640664409296, + 0.007621533699389588, + 5.408312218936873e-05, + 1.619573616404499e-05, + 0.004257099225473964, + 3.716813088547636e-05, + 1.7199603304863812e-05, + 1.8428138804039813e-05, + 0.005641913561175485, + 3.6468725047509243e-06, + 1.697154319579523e-05, + 1.300046522527695e-05, + 1.7490310600702375e-05, + 2.691506463774306e-06, + 2.3007962908176834e-05, + 0.002752361059311225, + 2.0337974678940336e-05, + 1.188084764263294e-05, + 8.111616680886158e-06, + 1.1992982759795414e-05, + 6.015624802294293e-05, + 3.5078202872376415e-05, + 2.1613058386334702e-05, + 2.4937042062898712e-05, + 7.636203446290959e-05, + 5.400377972758566e-05, + 0.007938956551945167, + 8.805908936468158e-06, + 0.009083110322041153, + 2.0262792069064637e-05, + 1.0800165987017764e-05, + 2.5324083389253696e-06, + 1.6037235818269438e-05, + 5.73502575314267e-06, + 0.0007179782566983814, + 6.204465674665756e-05, + 8.04680136256436e-05, + 0.0026332132949579883, + 0.0001246807859027139, + 2.0646085382212123e-05, + 3.667290377192227e-05, + 1.9452907879640914e-05, + 6.648775300564829e-05, + 5.467452991247206e-05, + 6.170463670825358e-06, + 1.732762971576925e-05, + 0.002946774207824383, + 0.00010797040109734197, + 6.180610405893971e-05, + 6.203012046578658e-05, + 0.0030345791284893233, + 2.619931980962859e-05, + 1.7279945498281717e-05, + 0.0064067636604403086, + 0.006357808687633092, + 4.7927871872026924e-05, + 0.0002062465091986742, + 7.31414159273588e-05, + 1.017183487279046, + 6.711352737675126e-05, + 5.235179554840961e-05, + 4.764519943351331e-05, + 7.164637249194579e-05, + 8.39792052135796e-05, + 2.9776421787722422e-05, + 6.244920472937696e-05, + 7.774943916630372e-05, + 8.369797878943574e-05, + 0.009287224138628118, + 5.744975875099374e-06, + 9.03558246672859e-06, + 2.162203723537085e-05, + 3.219552204844843e-05, + 9.782597090310911e-05, + 6.554788593807364e-05, + 3.4302692151672156e-05, + 1.300046522527695e-05, + 5.367080479121616e-05, + 4.05511193210967e-05, + 0.007856691498778193, + 5.731589450935227e-05, + 5.747989602628534e-05, + 9.862047675441458e-06, + 8.574514082806994e-05, + 5.184270392431239e-05, + 4.6049172717572536e-05, + 6.901220565399228e-06, + 7.308391734018726e-05, + 5.375160122425016e-05, + 0.005005808894482987, + 1.4016888306636507e-06, + 1.867823167771344e-05, + 0.005161235266164338, + 0.00639840042891731, + 3.25768819028559e-05, + 2.0880117819139736e-05, + 4.744312810238377e-05, + 0.00706018696690996, + 3.2432119128314313e-05, + 4.3330251548595315e-05, + 0.006559693924237348, + 1.824223373856259e-05, + 4.186941554450491e-05, + 5.794297254880646e-05, + 0.0025612490314566227, + 0.004926455754866431, + 1.2234782130969098e-05, + 0.00013540300672868085, + 3.744616336372351e-05, + 1.879420935773223e-05, + 4.296992740599398e-05, + 0.00648503653023617, + 0.006811594638544919, + 4.865829265027054e-05, + 0.00015039691379098406, + 4.5579882391700233e-05, + 0.0058645951237479765, + 0.00012079849373020242, + 1.1440732422000322e-05, + 0.00011931118425226127, + 0.00010310363765821542, + 0.0029571873238747764, + 0.00014836819241966453, + 6.479496401931944e-05, + 0.00013652022364646203, + 0.008272674602401412, + 6.112496302509246e-05, + 0.009744246327290896, + 3.0746562325406976e-05, + 7.131459924188185e-05, + 3.586343427183496e-05, + 1.4573046498807523e-05, + 0.0039026607996137945, + 0.0026200093998360965, + 0.00242858334084194, + 1.0058255821628395, + 8.573630025876962e-06, + 0.002554135913483182, + 0.006161186192549629, + 6.897019142137336e-06, + 7.991859104992195e-05, + 0.002859745735827901, + 9.546069637881966e-05, + 0.005263923874568061, + 0.0057750436745369355, + 5.267454634504788e-05, + 0.004679745180711632, + 5.8729422882028494e-05, + 1.8734155484644436e-06, + 1.2288862401220086e-06, + 3.8744548382065554e-05, + 4.2505389300810915e-05, + 4.001426304671741e-05, + 3.4881950218393824e-05, + 1.9953765773175086e-05, + 9.647701407466116e-06, + 5.757301024859485e-05, + 2.7396178308899984e-05, + 0.0028681574720703117, + 0.004752970738232557, + 4.328259607237442e-05, + 1.4425087088570349e-05, + 3.219552204844843e-05, + 0.006256769866490425, + 1.843783095389692e-05, + 6.757292987282388e-05, + 8.616175865337904e-06, + 3.6468725047509243e-06, + 0.0013013807746215947, + 2.3463588718664166e-05, + 8.484749056658531e-06, + 3.942136473014121e-05, + 6.045509972018361e-05, + 2.170212323715844e-05, + 2.9990147075282934e-05, + 1.656838550283511e-06, + 3.275334088345922e-05, + 7.312414951957388e-06, + 0.013780337834186657, + 0.009295247913139942, + 4.276492816919655e-05, + 9.614526501090822e-05, + 0.013438832548117487, + 5.706019083774347e-05, + 3.9953097404302765e-05, + 7.395084545201742e-05, + 5.6874060280116495e-06, + 0.0014860797174881262, + 5.742099408205895e-06, + 0.005126444542508474, + 0.004525181008797196, + 1.0966824173649002e-05, + 0.00549933348301436, + 1.5106463096119683e-05, + 1.1136795167012167e-05, + 0.0016826044433800413, + 3.8048334218202605e-05, + 4.266113161881524e-05, + 8.61084221273961e-05, + 1.2827787409715243e-05, + 2.957012864087119e-05, + 4.470866250334624e-05, + 0.005304731871977922, + 4.7380954835658765e-05, + 0.009180813294514662, + 0.00010938912433855871, + 4.8878825131751535e-05, + 6.086804239422096e-05, + 5.198791482656931e-05, + 9.330886000894899e-05, + 4.003025947351584e-05, + 8.894990992311741e-05, + 8.490755068004092e-05, + 7.397498922067364e-05, + 1.298044941180189e-05, + 7.923441900497486e-05, + 0.00795786731176502, + 0.00010528753431476505, + 1.0003394409324793, + 0.002066966424496967, + 0.0072466957647136405, + 1.8408154591897332e-05, + 2.6170465216380154e-05, + 7.391753503787828e-07, + 4.862973927123171e-06, + 9.175661661202585e-05, + 2.843055287948848e-06, + 0.010279256328935539, + 4.18806829585507e-06, + 0.0005059685367658173, + 3.133972759601782e-05, + 0.004980246622128062, + 4.442344954711435e-05, + 3.5204792102386216e-05, + 7.438842701197541e-05, + 0.00010228567311313031, + 5.458421368513962e-05, + 3.6380520404962396e-05, + 0.005956877741835263, + 0.0058768241372289, + 3.2394319262609834e-05, + 5.0087594202736606e-05, + 0.0089202536935198, + 0.013438832548117487, + 5.068234755661218e-07, + 2.059942267026535e-05, + 0.004038422827637369, + 8.886247607167789e-05, + 9.548755468020766e-05, + 4.4844266449640813e-05, + 3.3321946258636567e-05, + 4.51632447994695e-05, + 0.009546401607162315, + 0.0011979513772529824, + 0.004448178781097971, + 0.007158975274909028, + 0.003405796470211449, + 7.308391734018726e-05, + 1.5703286642692057e-05, + 0.0013023827143545978, + 1.773236913896812e-05, + 2.2622216737783084e-05, + 1.468252114735999e-06, + 3.503912963572349e-06, + 3.232509725475268e-05, + 0.00010584745468589411, + 4.246587373330859e-07, + 0.0015357985919753874, + 1.1663596453736771e-05, + 4.6510875847825296e-05, + 7.883599940851821e-05, + 4.232256890170172e-05, + 4.157804352074367e-06, + 0.0009434926438126656, + 0.0007991026022771701, + 8.673170287506496e-05, + 0.009377706183599573, + 6.492634734915772e-05, + 0.008851514555513171, + 2.408253652537229e-05, + 3.390535436114262e-05, + 8.500073672303659e-05, + 0.007337281118937193, + 6.841527427324271e-05, + 7.454297128879022e-05, + 4.485651296957946e-05, + 1.817098185835928e-05, + 0.00571553669088225, + 0.0002192081488419424, + 4.880167751546794e-05, + 0.00012386310278921677, + 0.004340989890632332, + 0.008338421645317543, + 2.988522877189406e-05, + 8.163737875101414e-05, + 0.0003744931963655796, + 5.311863651417748e-05, + 1.0006811004413325, + 6.311322749339541e-05, + 0.009423377551926036, + 0.0001351869158332422, + 6.471299638717376e-05, + 4.5559832168017325e-05, + 0.00014728026048875834, + 7.007217650806319e-05, + 0.00013616695276437934, + 0.009827093921226878, + 0.00014087934069183532, + 0.0004466121637889875, + 0.006854405223712914, + 0.0070778397836248255, + 0.007058824446817216, + 0.00640193868537032, + 6.9481289418868506e-06, + 0.0036699814726822077, + 2.147224746167066e-05, + 2.306744948090414e-05, + 1.1862578488334266e-06, + 3.783128411679979e-05, + 2.7943759314982804e-05, + 4.787322589202522e-05, + 0.008560723438005933, + 0.0078036394547676404, + 7.661734569325919e-05, + 1.914398375550642e-05, + 3.717180985853054e-05, + 4.5465306232506115e-05, + 0.00011739049928613754, + 0.008617716809513676, + 4.038446263170618e-05, + 6.052271248082022e-06, + 2.450334734056812e-05, + 0.00549933348301436, + 3.686578049401734e-05, + 1.3500497663962548e-05, + 0.006804287846315139, + 0.003837912559068474, + 0.0001087401656131354, + 6.841599600088951e-05, + 4.862375713081473e-07, + 0.009377706183599573, + 3.4677134824006374e-09, + 8.709392167994599e-08, + 3.5405275164337536e-07, + 0.0058248967139245935, + 7.581259308717127e-08, + 4.985196467268206e-05, + 2.5591472821463486e-05, + 4.3755520141460105e-07, + 5.233154862039399e-06, + 2.628279587583401e-07, + 3.4421275378160735e-07, + 2.6714321060972634e-07, + 0.00012090014934069268, + 4.5873095412197237e-07, + 4.9644642230663515e-06, + 1.000142157056739, + 0.00242858334084194, + 1.754746680391694e-05, + 2.8342207263042518e-05, + 1.5694842719006986e-05, + 1.4115982854095151e-05, + 2.5613491124066854e-05, + 3.8638061642113294e-05, + 7.08690593428671e-05, + 0.005316713458998503, + 2.8923941111746002e-05, + 2.052195184514316e-06, + 0.002235762253920633, + 7.014458098379015e-06, + 7.472068481635205e-05, + 0.009092323764615015, + 0.004215542482180343, + 0.009339513385827183, + 1.473775828964842e-05, + 7.177313382859093e-06, + 3.0086491323618898e-05, + 2.2621518051178686e-05, + 5.598447718045988e-06, + 4.30662229714024e-06, + 6.627270386680282e-07, + 4.744312810238377e-05, + 2.880816747198646e-05, + 5.551330944747475e-05, + 4.3422810041187425e-05, + 0.007696421638836545, + 7.667920282896653e-05, + 5.801413329136704e-05, + 3.5363666992940155e-05, + 0.007710383702448548, + 4.5312749216232344e-05, + 6.902350664223597e-06, + 3.155285473097504e-05, + 4.071855624915881e-06, + 6.0979077600877525e-06, + 4.662078208548067e-06, + 4.604520513321305e-06, + 1.5511247519254373e-08, + 1.0479176239748488e-06, + 6.830114907139503e-06, + 0.0017614905000378658, + 0.00010672287848834117, + 8.100221253346378e-07, + 7.419336729443077e-07, + 3.3991256312993264e-05, + 6.902447524591277e-05, + 0.003839725262471517, + 8.570889656902395e-05, + 2.5997154839160077e-05, + 5.5540199060968216e-05, + 7.308022435673637e-05, + 3.7779296004229136e-05, + 0.005454660455186017, + 3.004152528081633e-05, + 2.1516653637500003e-05, + 6.313932232818006e-05, + 0.003789193622807026, + 2.001031923930151e-05, + 4.812969575941697e-05, + 2.4500541892901417e-05, + 7.790316917247569e-05, + 0.00010630503753370316, + 0.008061790939854345, + 3.0255537649567676e-05, + 1.9955252480012823e-05, + 4.848704502905711e-05, + 0.007315470196481674, + 0.0033140161641720288, + 2.5780883983877218e-05, + 1.0002108841077482, + 7.31414159273588e-05, + 0.0032308706257639114, + 1.836210569087713e-05, + 1.671129286964195e-05, + 2.817754802475255e-05, + 4.231435282329788e-06, + 9.486510994712678e-06, + 2.1903716683254796e-05, + 3.7744090451044085e-05, + 9.682822996583617e-05, + 0.0029512563984702782, + 1.844624633903237e-05, + 3.191294170529035e-05, + 2.2130008087780147e-05, + 9.915672087837691e-05, + 0.003013917957663592, + 0.0027052178017184657, + 0.0026360543980688145, + 4.419688041692284e-05, + 6.204363681200837e-05, + 3.025985047345458e-05, + 8.17597435056736e-06, + 5.9992598886879715e-05, + 3.4302692151672156e-05, + 1.697154319579523e-05, + 0.00669183652199143, + 4.6149482328255726e-05, + 0.006820772970732364, + 3.7378004968560184e-05, + 9.194877552631466e-05, + 0.003967276004683859, + 3.177050433723157e-07, + 3.774635551090802e-05, + 1.0802323681468716e-05, + 3.6872163354419606e-05, + 3.3445602506082165e-05, + 9.176872048322657e-06, + 1.4517033957637429e-05, + 2.3464494097835496e-05, + 0.00654750217444128, + 1.260606554655423e-05, + 4.2157943183771885e-05, + 1.8874859837226256e-05, + 1.78710524516326e-05, + 5.5825868717821875e-05, + 7.073516401505625e-05, + 4.154972671783279e-06, + 0.00788135828673028, + 1.805825071175295e-05, + 0.0089202536935198, + 9.614526501090822e-05, + 0.0034308146917214903, + 9.945503597024794e-06, + 2.7089114924897626e-05, + 0.0021123970544425484, + 0.00011464695819708957, + 4.64572228654459e-05, + 3.3563580092853017e-06, + 6.601542168847671e-05, + 1.9242846360984317e-06, + 0.008570542520500277, + 4.832756745625646e-05, + 8.274536257263668e-06, + 0.00033545871412157813, + 2.0999175882370937e-06, + 4.604520513321305e-06, + 2.1906009920850237e-05, + 5.796526019303194e-07, + 0.0022034474410589774, + 1.7099755476563073e-05, + 3.316459337939621e-05, + 0.003988215269240574, + 0.0001088050593768327, + 0.00011214618521792638, + 0.008601017543635006, + 5.124321109448016e-05, + 0.009603983607945473, + 3.5592858376339366e-07, + 1.0003950600403508, + 5.6847103838554745e-05, + 2.3909045231668042e-05, + 0.00010989645420088088, + 5.9772051130068166e-05, + 6.3632241538920716e-06, + 8.081471592653644e-05, + 4.101264839737831e-06, + 9.10611133788154e-05, + 0.003614653284985154, + 6.865750563308246e-05, + 1.9982365220095112e-05, + 1.2642191068013989e-05, + 6.256499749409017e-05, + 1.972049328233557e-06, + 0.007633076152122106, + 0.008253979436132665, + 0.003520165825018783, + 0.006152628018747152, + 8.949778834480208e-05, + 1.5202867029995339e-05, + 0.009754505241349513, + 1.7920640048420202e-06, + 0.0009155504675766507, + 7.444172154719142e-06, + 1.2505689816741404e-05, + 7.076122568641112e-05, + 1.6821322945941589e-06, + 4.7675626079801785e-05, + 2.5151047401374303e-05, + 0.0029935243072698762, + 0.008441282349888507, + 4.5704631119594805e-05, + 0.006834759289973527, + 2.799583849796062e-05, + 3.312989228982466e-06, + 0.004515126381855252, + 0.000144358736576273, + 2.858263139481979e-05, + 0.00015183555325760058, + 0.011109083184725779, + 6.77279581052288e-05, + 6.601542168847671e-05, + 6.323381054764368e-05, + 4.6510875847825296e-05, + 0.006222048667824248, + 1.4039561271931087e-05, + 6.040661971505374e-05, + 4.907519256652523e-05, + 6.0979077600877525e-06, + 2.5324083389253696e-06, + 7.454698894418567e-06, + 2.416269384841492e-05, + 0.00983724045435927, + 7.060536541393035e-05, + 0.003607489004396031, + 4.722913778170408e-05, + 9.330886000894899e-05, + 4.301334828362342e-05, + 0.00851023050101972, + 1.3244196667398672e-05, + 6.720359856629058e-05, + 1.1792268179702386e-05, + 0.007374988275636387, + 8.391767317401229e-05, + 0.006554729173032643, + 0.00013417932789838304, + 8.688208808112132e-05, + 0.0008191279921094674, + 0.0001715093884257497, + 2.3895854276530894e-05, + 0.0001479121002112239, + 9.760124850673267e-06, + 0.0014282378997911738, + 0.007255646153887324, + 1.0251676266438782e-05, + 0.0018293532128421254, + 0.0015280277596831245, + 1.0376186007173165e-05, + 2.2472137285700316e-05, + 3.207616483694981e-05, + 8.20396676808335e-06, + 3.3593084677221634e-06, + 0.006382219318046553, + 0.00013392696754589646, + 0.0014518138740913999, + 1.0006541024900906, + 4.9644642230663515e-06, + 0.0026200093998360965, + 0.0001739067643966113, + 0.001268052671563556, + 9.414993358493272e-05, + 0.0077137338986100305, + 2.266465386200731e-05, + 8.105068432626227e-05, + 8.804415323161467e-05, + 2.657005871295784e-05, + 0.007887920773598681, + 9.067980198600438e-05, + 0.0023031022140271094, + 0.00010653288579349231, + 0.0001277688390982566, + 0.008749394056026713, + 0.003332199800398498, + 3.191294170529035e-05, + 3.026971897764431e-05, + 2.8897167742560854e-05, + 3.3857206954811586e-06, + 2.7642468420145466e-05, + 0.00888209193214149, + 1.8785954384074086e-05, + 1.958894495909591e-05, + 8.241318856450491e-05, + 3.61809234611927e-05, + 3.3602864974098526e-05, + 5.429085810404545e-05, + 7.694523948548027e-06, + 4.918019805390054e-05, + 8.572392299435928e-05, + 1.778782434313251e-06, + 5.425778203040552e-05, + 7.444172154719142e-06, + 7.312414951957388e-06, + 0.008121860669464572, + 0.0018985266027096914, + 2.9134358931703176e-05, + 8.943649925289279e-06, + 4.0955284985322874e-05, + 0.006488736813887829, + 5.5843212860730985e-06, + 1.3421878168480512e-05, + 4.904713082344558e-05, + 1.7393470899108238e-05, + 0.001604134906301068, + 2.9446476827046725e-05, + 5.8749181656967195e-05, + 8.257332596159574e-05, + 3.122237635000989e-05, + 8.073755821739811e-05, + 0.006330940003646736, + 5.237202499739881e-05, + 5.905432437917108e-05, + 0.006617942237573037, + 3.659235809869866e-05, + 0.00011739049928613754, + 3.559764352524221e-05, + 3.250308511474092e-05, + 0.004509471864731448, + 4.87111811559589e-06, + 0.008550548609811963, + 5.0719985763207966e-05, + 0.0074382588194354445, + 4.134393643718326e-05, + 4.281663812917758e-05, + 0.00906453844049525, + 2.519599844706269e-05, + 0.005053902503785076, + 1.4892552717406243e-05, + 1.2511572762084668e-05, + 2.830839327894561e-05, + 1.185020908107824e-05, + 5.947613597670801e-06, + 1.0839399538239977e-05, + 1.7654607315174462e-05, + 1.3598258892740924e-05, + 0.0020341300219831504, + 0.005453446633799271, + 2.492884242619572e-05, + 1.0003279959391775, + 0.006811594638544919, + 3.3428408975038574e-05, + 0.0022039957819478574, + 2.035577968764197e-05, + 3.652138838893042e-05, + 9.717628586914298e-05, + 0.0009509364771072949, + 4.772181923265292e-06, + 3.7378004968560184e-05, + 1.3839749949607112e-05, + 7.544933136494426e-07, + 7.010848482190836e-05, + 2.1793448813973866e-05, + 8.461744813480758e-05, + 5.214824211776975e-06, + 1.274185590414587e-05, + 3.447538930700454e-05, + 0.0032183609103764335, + 0.003061799067835776, + 1.3151090432536203e-05, + 1.83301846932302e-05, + 9.317462688392536e-06, + 7.809001938097258e-06, + 1.440955553962265e-05, + 0.009223941671165107, + 3.6380520404962396e-05, + 0.009423005118956355, + 0.001935240152718257, + 0.0004904804093198068, + 0.004321927299556481, + 3.683536136168756e-05, + 8.760010546227632e-06, + 3.659235809869866e-05, + 4.5465306232506115e-05, + 5.184270392431239e-05, + 0.00819832382907284, + 8.7746997810561e-06, + 1.6864204928424063e-05, + 3.8498380768415485e-05, + 8.697263095435295e-05, + 1.1762304592131597e-05, + 7.399152158740839e-05, + 3.191972451121407e-06, + 0.003402162384553347, + 2.401893992812954e-05, + 8.138762190459502e-06, + 4.658818043835977e-06, + 2.2680768964021368e-05, + 3.158419269677393e-05, + 1.5060068616501702e-05, + 0.00013853609608595324, + 0.003625097313221236, + 4.0860568906730575e-05, + 3.066706376961309e-05, + 6.861453876372358e-07, + 0.0012873218666964255, + 2.1017098271407778e-05, + 1.000293516157589, + 9.355601373532127e-05, + 6.833509523082159e-06, + 3.993375566796682e-05, + 0.004441591003607541, + 0.009872411943305133, + 0.00010908601690073171, + 9.025925841730478e-06, + 7.921050259260159e-05, + 9.141793619796793e-05, + 2.430199355672523e-05, + 0.012865204471301449, + 4.5377225727068476e-05, + 7.045607431884256e-05, + 7.583882756894263e-05, + 5.032455958925542e-07, + 0.00015500191455285152, + 1.041461905701894e-06, + 1.3190033228713383e-06, + 1.5309273798143577e-06, + 0.009556394617234216, + 0.006037442885632564, + 3.52533981816771e-05, + 1.2358780250946126e-05, + 1.5943467644657593e-05, + 5.5825868717821875e-05, + 3.16864353202332e-06, + 0.007560260915174101, + 0.004634066879474433, + 0.009609472854344313, + 0.0023256807425682856, + 5.6189019332360594e-06, + 0.002767609432052601, + 0.006488736813887829, + 2.8971481713675734e-05, + 0.006548836331007934, + 8.507831038245505e-05, + 0.0033535155434166993, + 0.004967052543479441, + 4.170074180386796e-05, + 0.006691148114714365, + 2.450334734056812e-05, + 1.0966824173649002e-05, + 0.0073262954486466875, + 6.509212224544221e-06, + 0.006384550706521437, + 5.6017542851683475e-05, + 2.058697160405831e-05, + 9.786425522897559e-05, + 4.215782068752736e-06, + 1.867823167771344e-05, + 0.00012212415535175345, + 7.834536780450026e-06, + 6.595216521287041e-05, + 3.611195890619833e-05, + 0.0001071678049589081, + 0.007495164151567807, + 6.279997697755538e-05, + 4.7301757573742176e-05, + 9.250690181223868e-05, + 1.3612134800845368e-05, + 0.004245174591239174, + 8.394452031494062e-05, + 0.003107753790333846, + 0.0048535845820513075, + 2.436312083575389e-05, + 6.304818718883307e-05, + 9.79414383924028e-05, + 8.484984963731137e-06, + 1.000249718175502, + 0.003789193622807026, + 6.170463670825358e-06, + 3.783818615351871e-06, + 5.906509606247966e-06, + 6.224525801469073e-05, + 8.783274600292875e-06, + 0.004466014513292503, + 4.2842658647721135e-05, + 0.002385822926232189, + 2.6816888588111612e-06, + 7.245178783852634e-05, + 5.699201280114511e-06, + 0.0009830902887607762, + 4.504480980288661e-05, + 0.00793893361762072, + 2.888365587897267e-05, + 5.464438004534413e-05, + 9.023068062958051e-05, + 0.008253979436132665, + 8.759244847284295e-06, + 1.7917148373883355e-05, + 8.616175865337904e-06, + 0.006868664937349099, + 0.009223941671165107, + 3.167044894012793e-07, + 1.3509640250550743e-05, + 8.181167154527567e-06, + 1.6002638384314436e-05, + 1.3866946691552715e-05, + 4.51632447994695e-05, + 2.0074075568947277e-05, + 0.004191427400667957, + 0.002767609432052601, + 0.007785646161814149, + 1.8017238244775715e-05, + 7.174832499906487e-06, + 3.9045702490191184e-05, + 8.545533305049899e-07, + 0.00951396970838286, + 5.0719985763207966e-05, + 0.006559693924237348, + 4.580812393541896e-05, + 5.3005380202982966e-05, + 6.124403934534732e-05, + 0.00011641156866472645, + 3.434636208153656e-05, + 2.1162142534132394e-05, + 0.00011225674094685073, + 7.710549309795944e-05, + 0.007773325140821933, + 0.007404914265770819, + 0.00010016745206491854, + 2.0442660856813986e-05, + 9.369088524743714e-05, + 8.449591102227881e-05, + 7.854359390138303e-05, + 0.00011849937708924003, + 0.00014399155572362174, + 6.0430188781166103e-05, + 0.008073456212003685, + 4.129705794276378e-05, + 0.00010527569821340091, + 7.200823939394418e-05, + 4.367459088655561e-05, + 4.832204262125161e-05, + 8.633795911073606e-05, + 0.00013284441629376648, + 1.839704114108649e-06, + 2.3093786328915213e-05, + 1.4040406457210514e-05, + 3.511630656969946e-05, + 6.668280050031122e-05, + 5.2769736697683524e-05, + 1.8417197291495864e-05, + 0.009630677550983137, + 4.931662042727166e-05, + 1.000545246656902, + 2.5780883983877218e-05, + 0.0002062465091986742, + 9.34511827892779e-05, + 5.803877605658419e-05, + 0.00013016863433750942, + 0.0010627994318390286, + 8.315043882107788e-05, + 0.001098848492576027, + 0.009821730370983375, + 5.315905599966685e-05, + 0.00012730643180779922, + 0.008965663068428692, + 0.00932536085802224, + 0.008016194859820336, + 0.008744145541964786, + 0.0037464921901482874, + 8.114762162992688e-06, + 4.4185831029026516e-05, + 9.526712031344487e-05, + 1.8221410812353872e-05, + 6.782242961139645e-05, + 4.215782068752736e-06, + 1.4016888306636507e-06, + 5.038538789141869e-06, + 5.879348156754798e-07, + 2.9258570574108967e-06, + 5.5266816322073946e-06, + 4.712760169925774e-06, + 1.1197116341924697e-05, + 4.840093735853481e-05, + 3.158419269677393e-05, + 3.6195734375041716e-05, + 2.213282547714912e-05, + 4.0947561295588445e-05, + 7.370596526041767e-05, + 1.649098475312688e-06, + 6.264312554818843e-05, + 6.787198893609816e-05, + 7.642510395190615e-05, + 6.902447524591277e-05, + 5.30035956401809e-05, + 7.795414495027033e-05, + 0.0006170670814896797, + 0.0063204791660593125, + 0.004533179197600133, + 4.837751437608723e-05, + 0.00012580821005702604, + 4.722913778170408e-05, + 5.198791482656931e-05, + 0.009622053112821669, + 0.005320131680220553, + 5.4917651460058454e-05, + 0.00010580887260818803, + 0.008806804007942875, + 0.006532895409013626, + 0.007042734309568557, + 1.0003568344545164, + 7.200823939394418e-05, + 6.25004168927728e-06, + 0.005249400737137344, + 7.943201654792854e-05, + 6.915242362438579e-05, + 4.13354242155286e-05, + 8.377027048123183e-05, + 2.1828240989408474e-05, + 7.007475291609435e-05, + 2.0196582070012896e-06, + 3.3007267523658666e-05, + 7.639022655726693e-05, + 0.009326835203001295, + 0.007720895238812851, + 0.0024137781207065954, + 0.004257099225473964, + 0.003514649711063711, + 0.004346782317554877, + 3.5204792102386216e-05, + 0.0039959851162086795, + 1.5005851203904687e-06, + 3.9533904636675386e-05, + 2.282562280992101e-05, + 2.243657506251215e-05, + 1.184780867061854e-05, + 6.139913854674415e-06, + 3.7681435698580956e-06, + 3.729640223912626e-05, + 2.7505844109233254e-05, + 6.085174025597421e-05, + 0.006728550378096911, + 3.745663236051577e-05, + 2.957012864087119e-05, + 1.2839983888251582e-05, + 2.1917380980842736e-05, + 3.3429279893770895e-05, + 4.0935322624666356e-05, + 0.005574292792643197, + 5.5480085827694036e-05, + 2.8118112264122915e-05, + 2.9408081782277706e-06, + 7.642510395190615e-05, + 3.3991256312993264e-05, + 0.008961675208398875, + 0.008814308982101544, + 6.939682639117589e-05, + 5.203493787178862e-05, + 4.860647658428452e-05, + 0.0082483715939574, + 1.384537377720797e-05, + 3.5592858376339366e-07, + 7.443863429482305e-07, + 6.513160904765917e-07, + 4.2093820849666625e-05, + 8.978547674713963e-07, + 1.7334319453500232e-07, + 0.00410196302462687, + 4.808848753479633e-05, + 0.007507237381039352, + 1.380184495252424e-07, + 0.0038280856297285516, + 1.004324795871614, + 2.3895854276530894e-05, + 3.5351194579500076e-06, + 1.8486741044336282e-06, + 7.85697336266132e-06, + 2.2583435590428477e-05, + 5.3988536601202625e-05, + 0.0006679276000648783, + 2.6797437391880606e-05, + 5.88847363590114e-05, + 2.5296822458611236e-05, + 0.00015990344757346706, + 0.003277712058412189, + 8.287239270239654e-05, + 3.7686390290702356e-05, + 0.0031057701555078734, + 4.7874678062921025e-06, + 6.057074090214067e-07, + 1.7916668586350402e-05, + 0.003332199800398498, + 0.003008892442669965, + 0.002307342766061188, + 0.004912962484832755, + 1.2358780250946126e-05, + 2.9711268059919924e-05, + 3.467896560878684e-05, + 7.627186117384875e-05, + 5.913696972297344e-05, + 5.454227235294692e-05, + 6.681348932005854e-06, + 1.2649259146947333e-05, + 1.2460811952974336e-05, + 6.0329364738038516e-05, + 0.0017900443001192285, + 9.35929561527854e-06, + 3.0247199102358532e-05, + 1.0321254222034239e-05, + 9.64121073613786e-06, + 0.01165854614591907, + 0.00012580821005702604, + 6.086804239422096e-05, + 9.903821108325084e-05, + 2.77877047137349e-05, + 6.429821139034277e-05, + 7.16707002124421e-05, + 6.607100977039375e-05, + 0.015956462186832294, + 1.384537377720797e-05, + 0.009603983607945473, + 2.6896745391710108e-05, + 5.2530022158616034e-05, + 0.008723263430352006, + 3.244198568147392e-05, + 7.276064269692673e-05, + 2.7271073892822847e-05, + 3.627360518329618e-05, + 0.003566473707317041, + 3.3352789969766985e-05, + 0.009122020485873628, + 0.00800148732862001, + 0.005835945780210611, + 1.1173546844994064e-05, + 0.0015280277596831245, + 5.648693036805958e-05, + 1.1849582333965748e-05, + 7.326674752573379e-05, + 4.466158367344553e-05, + 5.298779824764253e-05, + 3.224942461389203e-05, + 6.309220182886564e-05, + 4.119423434434955e-05, + 0.007738007485690339, + 3.9709134277977404e-05, + 1.0003232118112266, + 4.931662042727166e-05, + 0.0033140161641720288, + 4.7927871872026924e-05, + 0.006362434526919624, + 3.5125133690867506e-05, + 3.19672703161189e-05, + 4.319694231074623e-05, + 8.09437286214573e-06, + 1.8146882092870154e-05, + 4.816330275016268e-05, + 0.0010867090112958687, + 4.679176487596852e-05, + 0.005713878505717975, + 0.0031057701555078734, + 0.0029241508388424798, + 0.00821535577889686, + 0.0015414752433633417, + 0.0001950264761052023, + 0.005768832749769458, + 0.00391967740274463, + 0.00961631256625307, + 0.007633076152122106, + 4.7243792305993805e-05, + 9.153726814948286e-06, + 2.2727801295909092e-05, + 5.981155540148864e-05, + 4.912466317868146e-05, + 1.70842049509094e-05, + 6.684710209514219e-06, + 5.9992598886879715e-05, + 5.598447718045988e-06, + 6.554788593807364e-05, + 6.182638644992776e-05, + 9.514188887823765e-06, + 0.001604134906301068, + 3.783128411679979e-05, + 1.4633962622208773e-05, + 0.005332022790581705, + 2.245811070471092e-06, + 3.315445346260335e-05, + 0.004483194454930572, + 2.0303929538564436e-05, + 4.0123999081499147e-05, + 1.0025578146460832e-05, + 1.9466631885063608e-05, + 9.364696675739478e-05, + 1.9905781613356547e-05, + 8.954319224316044e-05, + 1.0002417659140435, + 8.449591102227881e-05, + 8.04680136256436e-05, + 0.009104111949848063, + 6.757392944389293e-05, + 0.0018705960191203576, + 2.700232458322728e-05, + 7.979623164228452e-05, + 0.009127873853865254, + 2.2086846522067662e-05, + 7.216524130910202e-05, + 0.0032689230773739766, + 0.00015500191455285152, + 0.007111014770507566, + 0.006765004772106684, + 0.0036400623550257604, + 3.3321946258636567e-05, + 1.0909411956329585e-05, + 0.009964003685006098, + 6.401808159144565e-06, + 6.324948152687383e-08, + 1.6867752071647554e-06, + 5.066528936150447e-07, + 1.6864204928424063e-05, + 1.2098027758146606e-05, + 4.529448782957032e-05, + 3.937530357228339e-05, + 0.003534239376464677, + 0.008572476068270435, + 0.004956907702287139, + 3.499529266183106e-05, + 1.1858073903861733e-05, + 4.5704631119594805e-05, + 0.0014860797174881262, + 8.604060923538484e-06, + 9.073084147842132e-07, + 0.006712215563463177, + 2.7597202625547482e-05, + 1.00702110158417, + 8.954319224316044e-05, + 9.369088524743714e-05, + 6.204465674665756e-05, + 9.824617476956339e-05, + 0.009248274563630471, + 8.669584320980875e-05, + 2.9019803498547727e-05, + 5.688094456474576e-05, + 0.009809863027986832, + 3.689614821820535e-05, + 7.755706793911599e-05, + 0.008749394056026713, + 0.0024756450814178467, + 0.008126126390881718, + 0.004015417380052825, + 4.504480980288661e-05, + 4.419688041692284e-05, + 4.001426304671741e-05, + 2.155358575807791e-05, + 4.673612943620091e-06, + 5.961322642576858e-06, + 5.52110992687459e-06, + 3.557441043217354e-05, + 1.692812113220369e-05, + 4.573845607783466e-06, + 0.004980246622128062, + 1.2513410853218346e-05, + 1.6194195528969006e-06, + 6.360723619574272e-06, + 9.849916266201628e-06, + 3.554312579674117e-05, + 4.3883882401521954e-05, + 4.6148138070912694e-05, + 3.426856622257189e-05, + 5.414460890939888e-06, + 3.269166597623609e-05, + 7.139367545954369e-06, + 4.840093735853481e-05, + 2.2680768964021368e-05, + 3.780064200939412e-05, + 2.610848019012817e-05, + 4.699549064728338e-05, + 1.4090856331832103e-06, + 4.9384061889323554e-05, + 4.3275702448087675e-05, + 3.4778956437108256e-06, + 4.494637145322238e-05, + 3.746647411616235e-05, + 6.294100436684671e-05, + 3.000535237006113e-05, + 8.311017407393698e-05, + 5.5854783266968745e-05, + 0.00010345871344829712, + 3.391891618363114e-05, + 1.7861680053057874e-05, + 8.391767317401229e-05, + 1.1440732422000322e-05, + 1.2886151317740457e-05, + 4.463507283417051e-05, + 0.004820441889805756, + 0.005573949689002543, + 5.50711807066434e-06, + 0.001357161489069189, + 1.0002440682359617, + 8.484984963731137e-06, + 6.313932232818006e-05, + 5.467452991247206e-05, + 2.3827168497977226e-05, + 6.52507212958729e-05, + 5.4768435409716286e-05, + 9.110823057042535e-05, + 0.001402735417636479, + 2.01100155359697e-05, + 3.6438697281287586e-05, + 0.0023218250123088584, + 0.009349294168833915, + 0.003047843274389201, + 0.008788743162951177, + 0.0005948016310838955, + 0.00706549802282827, + 0.0032689230773739766, + 5.032455958925542e-07, + 9.182993285094491e-06, + 1.619573616404499e-05, + 3.335370314286377e-05, + 4.794364658652151e-05, + 7.657450367907001e-07, + 4.706223389482264e-05, + 0.008911991690964146, + 2.411402431329091e-05, + 0.003183520221360109, + 3.3858432172866734e-05, + 0.004030203448740924, + 9.177955235317567e-06, + 5.848653372189761e-07, + 1.2987571936806203e-05, + 1.805825071175295e-05, + 4.276492816919655e-05, + 2.875512039779854e-07, + 4.1856189126207785e-05, + 4.0027338875076087e-05, + 8.198454746167677e-05, + 0.011977395320336965, + 0.0014970770754504084, + 5.5673337197063254e-05, + 1.3460548600472357e-05, + 7.139367545954369e-06, + 1.1197116341924697e-05, + 4.658818043835977e-06, + 0.004865248238712459, + 0.005289247804570505, + 4.994533857957476e-06, + 0.0013328777498254356, + 6.039959268436595e-06, + 2.4324983724006634e-07, + 4.634868129524442e-05, + 3.54518836652093e-05, + 6.065882887747172e-05, + 8.338065908363515e-06, + 3.619066817315635e-05, + 0.007812326963274855, + 0.006243726979236103, + 4.862375713081473e-07, + 8.673170287506496e-05, + 9.945364267061394e-06, + 0.0006052639682745074, + 5.3386122069419955e-05, + 8.657135190825022e-06, + 0.0011849502227732189, + 2.160030838240172e-05, + 4.8675343537910945e-05, + 5.9320029439863275e-05, + 6.783584304793724e-05, + 0.007525119344665386, + 6.162322138123376e-05, + 1.000223159397379, + 0.0038280856297285516, + 0.0001715093884257497, + 6.192835638460486e-05, + 1.3553940587364827e-06, + 5.760504239152818e-06, + 6.303360450230218e-05, + 0.009281254762723639, + 4.00526336990222e-05, + 8.629260269443107e-05, + 5.841394323541241e-07, + 0.008467305956396259, + 1.3467076728030982e-05, + 0.0024031231029667446, + 2.3102054619062538e-05, + 4.262629380572652e-05, + 0.008476403295092551, + 0.003949451860214621, + 9.182993285094491e-06, + 0.0024137781207065954, + 2.888365587897267e-05, + 3.0658884688565634e-05, + 8.114762162992688e-06, + 0.0008438794789498705, + 3.87764533289644e-06, + 1.8884198800659427e-06, + 7.916043971640084e-06, + 5.951938020031008e-06, + 0.006820772970732364, + 9.476836787913726e-06, + 2.5660230268410952e-05, + 3.283564120768238e-05, + 7.617858133867746e-05, + 3.5321432741907855e-05, + 1.8520492490083216e-05, + 7.190953694790406e-05, + 4.431658039795528e-06, + 2.9297849743894987e-05, + 1.5813697966072556e-06, + 7.48601038810743e-05, + 0.0032183609103764335, + 3.133972759601782e-05, + 4.617323056512292e-05, + 0.007984668065463083, + 1.6709407581142358e-05, + 3.9331586555146806e-05, + 3.275334088345922e-05, + 2.8704814649242224e-05, + 0.00012167373322091522, + 4.005987306107562e-05, + 0.0077918063111136705, + 4.7301757573742176e-05, + 5.2222019800368575e-05, + 2.7808250649402162e-05, + 0.00020211630792040222, + 0.00015933951733862196, + 8.181076850756026e-05, + 9.19925473013565e-05, + 4.3880021412216516e-05, + 5.966011299312112e-05, + 6.37028078542803e-05, + 6.681348932005854e-06, + 4.071855624915881e-06, + 1.0800165987017764e-05, + 1.669025577009584e-06, + 9.009488664252652e-05, + 0.00801246907316579, + 5.409762971466342e-06, + 2.9679459951328885e-06, + 6.4177551223725635e-06, + 0.0008118108024197676, + 2.492884242619572e-05, + 7.664256895218439e-05, + 7.641123007827406e-05, + 0.00023047033185757222, + 7.17937085081615e-05, + 0.009891145193876386, + 0.009262863782751712, + 4.6357147705395986e-05, + 1.000428389132395, + 1.7861680053057874e-05, + 0.007374988275636387, + 0.00012079849373020242, + 0.00858142603278076, + 6.871895392907351e-05, + 1.0388433136278484e-05, + 0.008643936765229692, + 5.987655235048369e-05, + 0.009864768684482637, + 0.008111144119919436, +}; + +sparse_int_t A_ri[] = { + + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, +}; + +sparse_int_t A_cp[] = { + + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 10, +}; + +real_t A_val[] = { + + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, +}; + +real_t g[] = { + + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, +}; + +real_t lb[] = { + + -10000000000.0, + -10000000000.0, + -10000000000.0, + -10000000000.0, + -10000000000.0, + -10000000000.0, + -10000000000.0, + -10000000000.0, + -10000000000.0, + -10000000000.0, + -10000000000.0, + -10000000000.0, + -10000000000.0, + -10000000000.0, + -10000000000.0, + -10000000000.0, + -10000000000.0, + -10000000000.0, + -10000000000.0, + -10000000000.0, + -10000000000.0, + -10000000000.0, + -10000000000.0, + -10000000000.0, + -10000000000.0, + -10000000000.0, + -10000000000.0, + -10000000000.0, + -10000000000.0, + -10000000000.0, + -10000000000.0, + -10000000000.0, + -10000000000.0, + -10000000000.0, + -10000000000.0, + -10000000000.0, + -10000000000.0, + -10000000000.0, + -10000000000.0, + -10000000000.0, + -10000000000.0, + -10000000000.0, + -10000000000.0, + -10000000000.0, + -10000000000.0, + -10000000000.0, + -10000000000.0, + -10000000000.0, + -10000000000.0, + -10000000000.0, + -10000000000.0, + -10000000000.0, + -10000000000.0, + -10000000000.0, + -10000000000.0, + -10000000000.0, + -10000000000.0, + -10000000000.0, + -10000000000.0, + -10000000000.0, + -10000000000.0, + -10000000000.0, + -10000000000.0, + -10000000000.0, + -10000000000.0, + -10000000000.0, + -10000000000.0, + -10000000000.0, + -10000000000.0, + -10000000000.0, + -10000000000.0, + -10000000000.0, + -10000000000.0, + -10000000000.0, + -10000000000.0, + -10000000000.0, + -10000000000.0, + -10000000000.0, + -10000000000.0, + -10000000000.0, + -10000000000.0, + -10000000000.0, + -10000000000.0, + -10000000000.0, + -10000000000.0, + -10000000000.0, + -10000000000.0, + -10000000000.0, + -10000000000.0, + -10000000000.0, + -10000000000.0, + -10000000000.0, + -10000000000.0, + -10000000000.0, + -10000000000.0, + -10000000000.0, + -10000000000.0, + -10000000000.0, + -10000000000.0, + -10000000000.0, +}; + +real_t ub[] = { + + 10000000000.0, + 10000000000.0, + 10000000000.0, + 10000000000.0, + 10000000000.0, + 10000000000.0, + 10000000000.0, + 10000000000.0, + 10000000000.0, + 10000000000.0, + 10000000000.0, + 10000000000.0, + 10000000000.0, + 10000000000.0, + 10000000000.0, + 10000000000.0, + 10000000000.0, + 10000000000.0, + 10000000000.0, + 10000000000.0, + 10000000000.0, + 10000000000.0, + 10000000000.0, + 10000000000.0, + 10000000000.0, + 10000000000.0, + 10000000000.0, + 10000000000.0, + 10000000000.0, + 10000000000.0, + 10000000000.0, + 10000000000.0, + 10000000000.0, + 10000000000.0, + 10000000000.0, + 10000000000.0, + 10000000000.0, + 10000000000.0, + 10000000000.0, + 10000000000.0, + 10000000000.0, + 10000000000.0, + 10000000000.0, + 10000000000.0, + 10000000000.0, + 10000000000.0, + 10000000000.0, + 10000000000.0, + 10000000000.0, + 10000000000.0, + 10000000000.0, + 10000000000.0, + 10000000000.0, + 10000000000.0, + 10000000000.0, + 10000000000.0, + 10000000000.0, + 10000000000.0, + 10000000000.0, + 10000000000.0, + 10000000000.0, + 10000000000.0, + 10000000000.0, + 10000000000.0, + 10000000000.0, + 10000000000.0, + 10000000000.0, + 10000000000.0, + 10000000000.0, + 10000000000.0, + 10000000000.0, + 10000000000.0, + 10000000000.0, + 10000000000.0, + 10000000000.0, + 10000000000.0, + 10000000000.0, + 10000000000.0, + 10000000000.0, + 10000000000.0, + 10000000000.0, + 10000000000.0, + 10000000000.0, + 10000000000.0, + 10000000000.0, + 10000000000.0, + 10000000000.0, + 10000000000.0, + 10000000000.0, + 10000000000.0, + 10000000000.0, + 10000000000.0, + 10000000000.0, + 10000000000.0, + 10000000000.0, + 10000000000.0, + 10000000000.0, + 10000000000.0, + 10000000000.0, + 10000000000.0, +}; + +real_t lbA[] = { + + -1.0, + -1.0, + -1.0, + -1.0, + -1.0, + -1.0, + -1.0, + -1.0, + -1.0, + -1.0, +}; + +real_t ubA[] = { + + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + }; + +long H_nnz = 6874; +long A_nnz = 10; \ No newline at end of file diff --git a/examples/generate_sparse_qp/trivial_qp_data.hpp b/examples/generate_sparse_qp/trivial_qp_data.hpp new file mode 100644 index 0000000..738981b --- /dev/null +++ b/examples/generate_sparse_qp/trivial_qp_data.hpp @@ -0,0 +1,828 @@ +/* + * This file is part of qpOASES. + * + * qpOASES -- An Implementation of the Online Active Set Strategy. + * Copyright (C) 2007-2017 by Hans Joachim Ferreau, Andreas Potschka, + * Christian Kirches et al. All rights reserved. + * + * qpOASES is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * qpOASES is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + * See the GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with qpOASES; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + */ + + +/** + * \author Andrea Zanelli + * \version 3.2 + * \date 2022 + * + * QP data generated by a Python script for testing purposes. + */ + + +USING_NAMESPACE_QPOASES + +#define NV 100 +#define NC 10 + +const real_t Inf = INFTY; + +sparse_int_t H_ri[] = { + + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69, + 70, + 71, + 72, + 73, + 74, + 75, + 76, + 77, + 78, + 79, + 80, + 81, + 82, + 83, + 84, + 85, + 86, + 87, + 88, + 89, + 90, + 91, + 92, + 93, + 94, + 95, + 96, + 97, + 98, + 99, +}; + +sparse_int_t H_cp[] = { + + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69, + 70, + 71, + 72, + 73, + 74, + 75, + 76, + 77, + 78, + 79, + 80, + 81, + 82, + 83, + 84, + 85, + 86, + 87, + 88, + 89, + 90, + 91, + 92, + 93, + 94, + 95, + 96, + 97, + 98, + 99, + 100, +}; + +real_t H_val[] = { + + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, +}; + +sparse_int_t A_ri[] = { + + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, +}; + +sparse_int_t A_cp[] = { + + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 10, +}; + +real_t A_val[] = { + + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, +}; + +real_t g[] = { + + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, +}; + +real_t lb[] = { + + -10000000000.0, + -10000000000.0, + -10000000000.0, + -10000000000.0, + -10000000000.0, + -10000000000.0, + -10000000000.0, + -10000000000.0, + -10000000000.0, + -10000000000.0, + -10000000000.0, + -10000000000.0, + -10000000000.0, + -10000000000.0, + -10000000000.0, + -10000000000.0, + -10000000000.0, + -10000000000.0, + -10000000000.0, + -10000000000.0, + -10000000000.0, + -10000000000.0, + -10000000000.0, + -10000000000.0, + -10000000000.0, + -10000000000.0, + -10000000000.0, + -10000000000.0, + -10000000000.0, + -10000000000.0, + -10000000000.0, + -10000000000.0, + -10000000000.0, + -10000000000.0, + -10000000000.0, + -10000000000.0, + -10000000000.0, + -10000000000.0, + -10000000000.0, + -10000000000.0, + -10000000000.0, + -10000000000.0, + -10000000000.0, + -10000000000.0, + -10000000000.0, + -10000000000.0, + -10000000000.0, + -10000000000.0, + -10000000000.0, + -10000000000.0, + -10000000000.0, + -10000000000.0, + -10000000000.0, + -10000000000.0, + -10000000000.0, + -10000000000.0, + -10000000000.0, + -10000000000.0, + -10000000000.0, + -10000000000.0, + -10000000000.0, + -10000000000.0, + -10000000000.0, + -10000000000.0, + -10000000000.0, + -10000000000.0, + -10000000000.0, + -10000000000.0, + -10000000000.0, + -10000000000.0, + -10000000000.0, + -10000000000.0, + -10000000000.0, + -10000000000.0, + -10000000000.0, + -10000000000.0, + -10000000000.0, + -10000000000.0, + -10000000000.0, + -10000000000.0, + -10000000000.0, + -10000000000.0, + -10000000000.0, + -10000000000.0, + -10000000000.0, + -10000000000.0, + -10000000000.0, + -10000000000.0, + -10000000000.0, + -10000000000.0, + -10000000000.0, + -10000000000.0, + -10000000000.0, + -10000000000.0, + -10000000000.0, + -10000000000.0, + -10000000000.0, + -10000000000.0, + -10000000000.0, + -10000000000.0, +}; + +real_t ub[] = { + + 10000000000.0, + 10000000000.0, + 10000000000.0, + 10000000000.0, + 10000000000.0, + 10000000000.0, + 10000000000.0, + 10000000000.0, + 10000000000.0, + 10000000000.0, + 10000000000.0, + 10000000000.0, + 10000000000.0, + 10000000000.0, + 10000000000.0, + 10000000000.0, + 10000000000.0, + 10000000000.0, + 10000000000.0, + 10000000000.0, + 10000000000.0, + 10000000000.0, + 10000000000.0, + 10000000000.0, + 10000000000.0, + 10000000000.0, + 10000000000.0, + 10000000000.0, + 10000000000.0, + 10000000000.0, + 10000000000.0, + 10000000000.0, + 10000000000.0, + 10000000000.0, + 10000000000.0, + 10000000000.0, + 10000000000.0, + 10000000000.0, + 10000000000.0, + 10000000000.0, + 10000000000.0, + 10000000000.0, + 10000000000.0, + 10000000000.0, + 10000000000.0, + 10000000000.0, + 10000000000.0, + 10000000000.0, + 10000000000.0, + 10000000000.0, + 10000000000.0, + 10000000000.0, + 10000000000.0, + 10000000000.0, + 10000000000.0, + 10000000000.0, + 10000000000.0, + 10000000000.0, + 10000000000.0, + 10000000000.0, + 10000000000.0, + 10000000000.0, + 10000000000.0, + 10000000000.0, + 10000000000.0, + 10000000000.0, + 10000000000.0, + 10000000000.0, + 10000000000.0, + 10000000000.0, + 10000000000.0, + 10000000000.0, + 10000000000.0, + 10000000000.0, + 10000000000.0, + 10000000000.0, + 10000000000.0, + 10000000000.0, + 10000000000.0, + 10000000000.0, + 10000000000.0, + 10000000000.0, + 10000000000.0, + 10000000000.0, + 10000000000.0, + 10000000000.0, + 10000000000.0, + 10000000000.0, + 10000000000.0, + 10000000000.0, + 10000000000.0, + 10000000000.0, + 10000000000.0, + 10000000000.0, + 10000000000.0, + 10000000000.0, + 10000000000.0, + 10000000000.0, + 10000000000.0, + 10000000000.0, +}; + +real_t lbA[] = { + + -1.0, + -1.0, + -1.0, + -1.0, + -1.0, + -1.0, + -1.0, + -1.0, + -1.0, + -1.0, +}; + +real_t ubA[] = { + + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + }; + +long H_nnz = 100; +long A_nnz = 10; \ No newline at end of file diff --git a/examples/qrecipe.cpp b/examples/qrecipe.cpp index f4df476..9327ee1 100644 --- a/examples/qrecipe.cpp +++ b/examples/qrecipe.cpp @@ -52,8 +52,8 @@ int main( ) real_t *y2 = new real_t[271]; /* create sparse matrices */ - SymSparseMat *H = new SymSparseMat(180, 180, H_ir, H_jc, H_val); - SparseMatrix *A = new SparseMatrix(91, 180, A_ir, A_jc, A_val); + SymSparseMat *H = new SymSparseMat(180, 180, H_ri, H_cp, H_val); + SparseMatrix *A = new SparseMatrix(91, 180, A_ri, A_cp, A_val); H->createDiagInfo(); diff --git a/examples/qrecipeSchur.cpp b/examples/qrecipeSchur.cpp index 5345c9e..d63b29c 100644 --- a/examples/qrecipeSchur.cpp +++ b/examples/qrecipeSchur.cpp @@ -34,12 +34,11 @@ */ - #include - #include "qrecipe_data.hpp" - - +// #include "generate_sparse_qp/qp_data.hpp" +// #include "generate_sparse_qp/simple_qp_data.hpp" +// #include "generate_sparse_qp/trivial_qp_data.hpp" int main( ) { @@ -48,28 +47,31 @@ int main( ) long i; int_t nWSR; real_t errP1, errP2, errP3, errD1, errD2, errD3, tic, toc; - real_t *x1 = new real_t[180]; - real_t *y1 = new real_t[271]; - real_t *x2 = new real_t[180]; - real_t *y2 = new real_t[271]; - real_t *x3 = new real_t[180]; - real_t *y3 = new real_t[271]; + real_t *x1 = new real_t[NV]; + real_t *y1 = new real_t[NV+NC]; + real_t *x2 = new real_t[NV]; + real_t *y2 = new real_t[NV+NC]; + real_t *x3 = new real_t[NV]; + real_t *y3 = new real_t[NV+NC]; /* create sparse matrices */ - SymSparseMat *H = new SymSparseMat(180, 180, H_ir, H_jc, H_val); - SparseMatrix *A = new SparseMatrix(91, 180, A_ir, A_jc, A_val); + SymSparseMat *H = new SymSparseMat(NV, NV, H_ri, H_cp, H_val); + SparseMatrix *A = new SparseMatrix(NC, NV, A_ri, A_cp, A_val); H->createDiagInfo(); real_t* H_full = H->full(); + for (int i = 0; i < NV; i++) + for (int j = 0; j < NV; j++) + printf("H[%i,%i] = %f\n", i, j, H_full[i*NV+j]); real_t* A_full = A->full(); - SymDenseMat *Hd = new SymDenseMat(180,180,180,H_full); - DenseMatrix *Ad = new DenseMatrix(91,180,180,A_full); + SymDenseMat *Hd = new SymDenseMat(NV, NV, NV, H_full); + DenseMatrix *Ad = new DenseMatrix(NC, NV, NV, A_full); /* solve with dense matrices */ nWSR = 1000; - QProblem qrecipeD(180, 91); + QProblem qrecipeD(NV, NC); tic = getCPUtime(); qrecipeD.init(Hd, g, Ad, lb, ub, lbA, ubA, nWSR, 0); toc = getCPUtime(); @@ -80,7 +82,7 @@ int main( ) /* solve with sparse matrices (nullspace factorization) */ nWSR = 1000; - QProblem qrecipeS(180, 91); + QProblem qrecipeS(NV, NC); tic = getCPUtime(); qrecipeS.init(H, g, A, lb, ub, lbA, ubA, nWSR, 0); toc = getCPUtime(); @@ -91,27 +93,30 @@ int main( ) /* solve with sparse matrices (Schur complement) */ nWSR = 1000; - SQProblemSchur qrecipeSchur(180, 91); + SQProblemSchur qrecipeSchur(NV, NC); tic = getCPUtime(); qrecipeSchur.init(H, g, A, lb, ub, lbA, ubA, nWSR, 0); toc = getCPUtime(); qrecipeSchur.getPrimalSolution(x3); qrecipeSchur.getDualSolution(y3); - fprintf(stdFile, "Solved sparse problem (Schur complement approach) in %d iterations, %.3f seconds.\n", (int)nWSR, toc-tic); + fprintf(stdFile, "Solved sparse problem (Schur complement approach) in %d iterations, %.3f seconds.\n", (int)nWSR, toc-tic); /* check distance of solutions */ errP1 = 0.0; errP2 = 0.0; errP3 = 0.0; #ifndef SOLVER_NONE - for (i = 0; i < 180; i++) + for (i = 0; i < NV; i++) + { + fprintf(stdFile, "x3[%i]=%f\n", i, x3[i]); if (getAbs(x1[i] - x2[i]) > errP1) errP1 = getAbs(x1[i] - x2[i]); - for (i = 0; i < 180; i++) + } + for (i = 0; i < NV; i++) if (getAbs(x1[i] - x3[i]) > errP2) errP2 = getAbs(x1[i] - x3[i]); - for (i = 0; i < 180; i++) + for (i = 0; i < NV; i++) if (getAbs(x2[i] - x3[i]) > errP3) errP3 = getAbs(x2[i] - x3[i]); #endif /* SOLVER_NONE */ @@ -122,14 +127,14 @@ int main( ) errD1 = 0.0; errD2 = 0.0; errD3 = 0.0; - for (i = 0; i < 271; i++) + for (i = 0; i < NV+NC; i++) if (getAbs(y1[i] - y2[i]) > errD1) errD1 = getAbs(y1[i] - y2[i]); #ifndef SOLVER_NONE - for (i = 0; i < 271; i++) + for (i = 0; i < NV+NC; i++) if (getAbs(y1[i] - y3[i]) > errD2) errD2 = getAbs(y1[i] - y3[i]); - for (i = 0; i < 271; i++) + for (i = 0; i < NV+NC; i++) if (getAbs(y2[i] - y3[i]) > errD3) errD3 = getAbs(y2[i] - y3[i]); #endif /* SOLVER_NONE */ diff --git a/examples/qrecipe_data.hpp b/examples/qrecipe_data.hpp index ffc6246..21a7aaf 100644 --- a/examples/qrecipe_data.hpp +++ b/examples/qrecipe_data.hpp @@ -35,10 +35,13 @@ USING_NAMESPACE_QPOASES +#define NV 180 +#define NC 91 + const real_t Inf = INFTY; -sparse_int_t H_jc[] = { 0, 4, 8, 12, 16, 20, 20, 20, 20, 20, 20, +sparse_int_t H_cp[] = { 0, 4, 8, 12, 16, 20, 20, 20, 20, 20, 20, 24, 28, 32, 36, 40, 40, 40, 40, 40, 40, 44, 48, 52, 56, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 64, 68, 72, 76, 80, 80, 80, 80, 80, 80, @@ -57,7 +60,7 @@ sparse_int_t H_jc[] = { 0, 4, 8, 12, 16, 20, 20, 20, 20, 20, 20, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80 }; -sparse_int_t H_ir[] = { +sparse_int_t H_ri[] = { 0, 10, 20, 34, 1, 11, 21, 35, 2, 12, 22, 36, 3, 13, 23, 37, 4, 14, 24, 38, 0, 10, 20, 34, 1, 11, 21, 35, 2, 12, 22, 36, 3, 13, 23, 37, 4, 14, 24, 38, 0, 10, 20, 34, 1, 11, 21, 35, 2, 12, 22, 36, 3, 13, 23, 37, 4, 14, 24, 38, @@ -68,7 +71,7 @@ real_t H_val[] = {10, 1, 1, 1, 10, 1, 1, 1, 10, 1, 1, 1, 10, 1, 1, 1, 10, 1, 1, 10, 1, 1, 1, 10, 1, 1, 1, 10, 1, 1, 1, 10, 1, 1, 1, 10, 1, 1, 1, 1, 10, 1, 1, 1, 10, 1, 1, 1, 10, 1, 1, 1, 10, 1, 1, 1, 10}; -sparse_int_t A_jc[] = { +sparse_int_t A_cp[] = { 0, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100, 110, 120, 130, 140, 150, 160, 170, 180, 190, 200, 210, 220, 230, 240, 250, 260, 270, 280, 290, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, @@ -83,7 +86,7 @@ sparse_int_t A_jc[] = { 610, 611, 612, 613, 614, 615, 616, 617, 618, 628, 638, 648, 650, 653, 655, 658, 660, 663}; -sparse_int_t A_ir[] = {0, 14, 35, 36, 71, 72, 85, 86, 87, 88, 1, 14, 35, 36, 71, 72, 85, +sparse_int_t A_ri[] = {0, 14, 35, 36, 71, 72, 85, 86, 87, 88, 1, 14, 35, 36, 71, 72, 85, 86, 87, 88, 2, 14, 35, 36, 71, 72, 85, 86, 87, 88, 3, 14, 35, 36, 71, 72, 85, 86, 87, 88, 4, 14, 35, 36, 71, 72, 85, 86, 87, 88, 5, 14, 35, 36, 71, 72, 85, 86, 87, 88, 6, 14, 35, 36, 71, 72, 85, 86, 87, 88, 7, 14, 35, 36, diff --git a/external/ThirdParty-Mumps b/external/ThirdParty-Mumps new file mode 160000 index 0000000..ca03953 --- /dev/null +++ b/external/ThirdParty-Mumps @@ -0,0 +1 @@ +Subproject commit ca039531d0884dd9d0a32a01fce859908c2ae4f2 diff --git a/include/qpOASES/SparseSolver.hpp b/include/qpOASES/SparseSolver.hpp index 4d07490..689f425 100644 --- a/include/qpOASES/SparseSolver.hpp +++ b/include/qpOASES/SparseSolver.hpp @@ -34,6 +34,8 @@ #ifndef QPOASES_SPARSESOLVER_HPP #define QPOASES_SPARSESOLVER_HPP +#include +#include #include @@ -349,6 +351,181 @@ class Ma57SparseSolver: public SparseSolver #endif /* SOLVER_MA57 */ +#ifdef SOLVER_MUMPS + +/** + * \brief Implementation of the linear solver interface using MUMPS. + * + * \author Andrea Zanelli + * \version 3.2 + * \date 2022 + */ +class MumpsSparseSolver: public SparseSolver +{ + /* + * PUBLIC MEMBER FUNCTIONS + */ + public: + /** Default constructor. */ + MumpsSparseSolver( ); + + /** Copy constructor (deep copy). */ + MumpsSparseSolver( const MumpsSparseSolver& rhs /**< Rhs object. */ + ); + + /** Destructor. */ + virtual ~MumpsSparseSolver( ); + + /** Assignment operator (deep copy). */ + virtual MumpsSparseSolver& operator=( const SparseSolver& rhs /**< Rhs object. */ + ); + + /** Set new matrix data. The matrix is to be provided + in the Harwell-Boeing format. Only the lower + triangular part should be set. */ + virtual returnValue setMatrixData( int_t dim, /**< Dimension of the linear system. */ + int_t numNonzeros, /**< Number of nonzeros in the matrix. */ + const int_t* const airn, /**< Row indices for each matrix entry. */ + const int_t* const acjn, /**< Column indices for each matrix entry. */ + const real_t* const avals /**< Values for each matrix entry. */ + ); + + /** Compute factorization of current matrix. This method must be called before solve.*/ + virtual returnValue factorize( ); + + /** Solve linear system with most recently set matrix data. */ + virtual returnValue solve( int_t dim, /**< Dimension of the linear system. */ + const real_t* const rhs, /**< Values for the right hand side. */ + real_t* const sol /**< Solution of the linear system. */ + ); + + /** Clears all data structures. */ + virtual returnValue reset( ); + + /** Return the number of negative eigenvalues. */ + virtual int_t getNegativeEigenvalues( ); + + /** Return the rank after a factorization */ + virtual int_t getRank( ); + + /** Returns the zero pivots in case the matrix is rank deficient */ + virtual returnValue getZeroPivots( int_t* &zeroPivots /**< ... */ + ); + /* + * PROTECTED MEMBER FUNCTIONS + */ + protected: + /** Frees all allocated memory. + * \return SUCCESSFUL_RETURN */ + returnValue clear( ); + + /** Copies all members from given rhs object. + * \return SUCCESSFUL_RETURN */ + returnValue copy( const MumpsSparseSolver& rhs /**< Rhs object. */ + ); + + /* + * PRIVATE MEMBER FUNCTIONS + */ + private: + /* + * PRIVATE MEMBER VARIABLES + */ + private: + + + void* mumps_ptr_; /** Primary MUMPS data structure */ + + int dim; /**< Dimension of the current linear system. */ + + int numNonzeros; /**< Number of nonzeros in the current linear system. */ + + double* a_mumps; /**< matrix for MUMPS (A in MUMPS) */ + + int* irn_mumps; /**< Row entries of matrix (IRN in MUMPS) */ + + int* jcn_mumps; /**< Column entries of matrix (JCN in MUMPS) */ + + bool have_factorization; /**< flag indicating whether factorization for current matrix has already been computed */ + + int negevals_; /**< number of negative eigenvalues */ + + int mumps_pivot_order_; /* pivot order*/ + + bool initialized_; + /** Flag indicating if the matrix has to be refactorized because + * the pivot tolerance has been changed. + */ + bool pivtol_changed_; + /** Flag that is true if we just requested the values of the + * matrix again (SYMSOLVER_CALL_AGAIN) and have to factorize + * again. + */ + bool refactorize_; + ///@} + + /** @name Solver specific data/options */ + ///@{ + /** Pivot tolerance */ + double pivtol_; + + /** Maximal pivot tolerance */ + double pivtolmax_; + + /** Percent increase in memory */ + int mem_percent_; + + /** Permutation and scaling method in MUMPS */ + int mumps_permuting_scaling_; + + /** Scaling in MUMPS */ + int mumps_scaling_; + + /** Threshold in MUMPS to state that a constraint is linearly dependent */ + double mumps_dep_tol_; + + /** Flag indicating whether the TNLP with identical structure has + * already been solved before. + */ + bool warm_start_same_structure_; + ///@} + + /** Flag indicating if symbolic factorization has already been called */ + bool have_symbolic_factorization_; +}; + +template +inline void ComputeMemIncrease( + T& len, ///< current length on input, new length on output + double recommended, ///< recommended size + T min, ///< minimal size that should ensured + const char* context ///< context from where this function is called - used to setup message for exception +) +{ + if( recommended >= std::numeric_limits::max() ) + { + // increase len to the maximum possible, if that is still an increase + if( len < std::numeric_limits::max() ) + { + len = std::numeric_limits::max(); + } + else + { + std::stringstream what; + what << "Cannot allocate more than " << std::numeric_limits::max()*sizeof(T) << " bytes for " << context << " due to limitation on integer type"; + throw std::overflow_error(what.str()); + } + } + else + { + len = std::max(min, (T) recommended); + } +} + +#endif /* SOLVER_MUMPS */ + + + #ifdef SOLVER_NONE /** diff --git a/include/qpOASES/Types.hpp b/include/qpOASES/Types.hpp index d47e4d5..9d52cee 100644 --- a/include/qpOASES/Types.hpp +++ b/include/qpOASES/Types.hpp @@ -147,8 +147,8 @@ #define TT( I,J ) T[(I)*sizeT+(J)] -/* If neither MA57 nor MA27 are selected, activate the dummy solver */ -#if !defined(SOLVER_MA27) && !defined(SOLVER_MA57) && !defined(SOLVER_NONE) +/* If neither MA57 nor MA27 nor MUMPS are selected, activate the dummy solver */ +#if !defined(SOLVER_MA27) && !defined(SOLVER_MA57) && !defined(SOLVER_MUMPS) && !defined(SOLVER_NONE) #define SOLVER_NONE #endif diff --git a/make_linux.mk b/make_linux.mk index a15b52e..4820cff 100644 --- a/make_linux.mk +++ b/make_linux.mk @@ -36,11 +36,12 @@ IDIR = ${TOP}/include SRCDIR = ${TOP}/src BINDIR = ${TOP}/bin +MKFILE_PATH := $(abspath $(lastword $(MAKEFILE_LIST))) +MKFILE_DIR := $(dir $(MKFILE_PATH)) +EXT_IDIR = # Matlab include directory (ADAPT TO YOUR LOCAL SETTINGS!) #MATLAB_IDIR = ${HOME}/Programs/matlab/extern/include/ -MATLAB_IDIR = /usr/local/matlab/extern/include/ -MATLAB_LIBDIR = /usr/local/matlab/bin/glnxa64/ # system or replacement BLAS/LAPACK REPLACE_LINALG = 1 @@ -49,8 +50,6 @@ ifeq ($(REPLACE_LINALG), 1) LIB_BLAS = ${SRCDIR}/BLASReplacement.o LIB_LAPACK = ${SRCDIR}/LAPACKReplacement.o else - LIB_BLAS = /usr/lib/libblas.so.3gf - LIB_LAPACK = /usr/lib/liblapack.so.3gf # LIB_BLAS = ${MATLAB_LIBDIR}/libmwblas.so # LIB_LAPACK = ${MATLAB_LIBDIR}/libmwlapack.so endif @@ -58,7 +57,8 @@ endif # choice of sparse solver: NONE, MA27, or MA57 # If choice is not 'NONE', BLAS and LAPACK replacements must not be used USE_SOLVER = NONE -#USE_SOLVER = MA57 +# USE_SOLVER = MUMPS + ifeq ($(USE_SOLVER), MA57) LIB_SOLVER = ${MATLAB_LIBDIR}/libmwma57.so @@ -68,6 +68,11 @@ else ifeq ($(USE_SOLVER), MA27) LIB_SOLVER = /usr/local/lib/libhsl_ma27.a DEF_SOLVER = SOLVER_MA27 LINKHSL = +else ifeq ($(USE_SOLVER), MUMPS) + LIB_SOLVER = $(MKFILE_DIR)external/mumps_installation/lib/libcoinmumps.so + DEF_SOLVER = SOLVER_MUMPS + LINKHSL = + EXT_IDIR += -I$(MKFILE_DIR)external/mumps_installation/include/coin-or/mumps/ else LIB_SOLVER = DEF_SOLVER = SOLVER_NONE @@ -106,11 +111,12 @@ else endif -CPPFLAGS = -Wall -pedantic -Wshadow -Wfloat-equal -O3 -Wconversion -Wsign-conversion -fPIC -DLINUX -D__USE_LONG_INTEGERS__ -D__USE_LONG_FINTS__ -D${DEF_SOLVER} -D__NO_COPYRIGHT__ +# CPPFLAGS = -Wall $(EXT_IDIR) -pedantic -Wshadow -Wfloat-equal -O3 -Wconversion -Wsign-conversion -fPIC -DLINUX -D__USE_LONG_INTEGERS__ -D__USE_LONG_FINTS__ -D${DEF_SOLVER} -D__NO_COPYRIGHT__ +CPPFLAGS = -Wall $(EXT_IDIR) -pedantic -Wshadow -Wfloat-equal -O3 -Wconversion -Wsign-conversion -fPIC -DLINUX -D${DEF_SOLVER} -D__NO_COPYRIGHT__ # -g -D__DEBUG__ -D__NO_COPYRIGHT__ -D__SUPPRESSANYOUTPUT__ -D__USE_SINGLE_PRECISION__ # libraries to link against when building qpOASES .so files -LINK_LIBRARIES = ${LIB_LAPACK} ${LIB_BLAS} -lm ${LIB_SOLVER} +LINK_LIBRARIES = ${LIB_LAPACK} ${LIB_BLAS} -lm ${LIB_SOLVER} -ldl LINK_LIBRARIES_WRAPPER = -lm ${LIB_SOLVER} -lstdc++ # how to link against the qpOASES shared library diff --git a/src/Matrices.cpp b/src/Matrices.cpp index c894ded..d16e2a1 100644 --- a/src/Matrices.cpp +++ b/src/Matrices.cpp @@ -687,7 +687,7 @@ SparseMatrix::SparseMatrix( int_t nr, int_t nc, int_t ld, const real_t* const v { jc[j] = nnz; for (i = 0; i < nRows; i++) - if ( ( isZero( v[i*ld+j],0.0 ) == BT_FALSE ) || ( i == j ) ) /* also include zero diagonal elemets! */ + if ( ( isZero( v[i*ld+j],0.0 ) == BT_FALSE ) || ( i == j ) ) /* also include zero diagonal elements! */ { ir[nnz] = i; val[nnz++] = v[i*ld+j]; diff --git a/src/SQProblemSchur.cpp b/src/SQProblemSchur.cpp index 5ffca3d..ba3b843 100644 --- a/src/SQProblemSchur.cpp +++ b/src/SQProblemSchur.cpp @@ -72,8 +72,10 @@ SQProblemSchur::SQProblemSchur( ) : SQProblem( ) sparseSolver = new Ma57SparseSolver(); #elif defined SOLVER_MA27 sparseSolver = new Ma27SparseSolver(); +#elif defined SOLVER_MUMPS + sparseSolver = new MumpsSparseSolver(); #elif defined SOLVER_NONE - sparseSolver = new DummySparseSolver(); + sparseSolver = new DummySparseSolver(); #endif nSmax = 0; @@ -106,6 +108,8 @@ SQProblemSchur::SQProblemSchur( int_t _nV, int_t _nC, HessianType _hessianType, sparseSolver = new Ma57SparseSolver(); #elif defined SOLVER_MA27 sparseSolver = new Ma27SparseSolver(); +#elif defined SOLVER_MUMPS + sparseSolver = new MumpsSparseSolver(); #elif defined SOLVER_NONE sparseSolver = new DummySparseSolver(); #endif @@ -153,6 +157,8 @@ SQProblemSchur::SQProblemSchur( const SQProblemSchur& rhs ) : SQProblem( rhs ) sparseSolver = new Ma57SparseSolver(); #elif defined SOLVER_MA27 sparseSolver = new Ma27SparseSolver(); +#elif defined SOLVER_MUMPS + sparseSolver = new MumpsSparseSolver(); #elif defined SOLVER_NONE sparseSolver = new DummySparseSolver(); #endif @@ -2630,6 +2636,10 @@ returnValue SQProblemSchur::stepCalcBacksolveSchur( int_t nFR, int_t nFX, int_t computeMTimes(-1.0, p, 1.0, rhs); retval = sparseSolver->solve(dim, rhs, sol); + + // for (int i = 0; i < dim; i++) + // printf("sol[%i] = %f\n", i, sol[i]); + if (retval != SUCCESSFUL_RETURN) { MyPrintf( "sparseSolver->solve (second time) failed.\n"); diff --git a/src/SparseSolver.cpp b/src/SparseSolver.cpp index 39b30c0..c3b996a 100644 --- a/src/SparseSolver.cpp +++ b/src/SparseSolver.cpp @@ -43,6 +43,25 @@ void MyPrintf(const char* pformat, ... ); # define MyPrintf mexPrintf #endif +#if SOLVER_MUMPS + +#define USE_COMM_WORLD -987654 + +#include "mumps_compat.h" + + +#ifdef USE_MPI_H +#include "mpi.h" +#else +#include "mumps_mpi.h" +#endif /* USE_MPI_H */ + +#include "dmumps_c.h" +#define MUMPS_STRUC_C DMUMPS_STRUC_C +#define mumps_c dmumps_c + +#endif /* SOLVER_MUMPS */ + BEGIN_NAMESPACE_QPOASES /***************************************************************************** @@ -494,15 +513,15 @@ returnValue Ma27SparseSolver::copy( const Ma27SparseSolver& rhs la_ma27 = rhs.la_ma27; if ( rhs.a_ma27 != 0 ) { - if (rhs.have_factorization) - { - a_ma27 = new double[la_ma27]; - memcpy( a_ma27,rhs.a_ma27,la_ma27*sizeof(double) ); + if (rhs.have_factorization) + { + a_ma27 = new double[la_ma27]; + memcpy( a_ma27,rhs.a_ma27,la_ma27*sizeof(double) ); } - else + else { - a_ma27 = new double[numNonzeros]; - memcpy( a_ma27,rhs.a_ma27,numNonzeros*sizeof(double) ); + a_ma27 = new double[numNonzeros]; + memcpy( a_ma27,rhs.a_ma27,numNonzeros*sizeof(double) ); } } else @@ -872,18 +891,23 @@ returnValue Ma57SparseSolver::solve( int_t dim_, real_t* const sol ) { + // printf("in solve (MA57)\n"); /* consistency check */ if ( dim_ != dim ) return THROWERROR( RET_INVALID_ARGUMENTS ); if ( !have_factorization ) { - MyPrintf("Factorization not called before solve in Ma57SparseSolver::solve.\n"); - return THROWERROR( RET_INVALID_ARGUMENTS ); + MyPrintf("Factorization not called before solve in Ma57SparseSolver::solve.\n"); + return THROWERROR( RET_INVALID_ARGUMENTS ); } if ( dim == 0 ) + { + printf("dim=0\n"); return SUCCESSFUL_RETURN; + } + /* Call MA57CD to solve the system */ fint_t job_ma57 = 1; @@ -1070,6 +1094,489 @@ returnValue Ma57SparseSolver::copy( const Ma57SparseSolver& rhs #endif /* SOLVER_MA57 */ +#ifdef SOLVER_MUMPS + +/***************************************************************************** + ***************************************************************************** + ***************************************************************************** + * M U M P S S P A R E S E S O L V E R * + ***************************************************************************** + ***************************************************************************** + *****************************************************************************/ + +#ifdef USE_MPI_H +// initialize MPI when library is loaded; finalize MPI when library is unloaded +__attribute__((constructor)) +static void MPIinit(void) +{ + int mpi_initialized; + MPI_Initialized(&mpi_initialized); + if( !mpi_initialized ) + { + int argc = 1; + char** argv = NULL; + MPI_Init(&argc, &argv); + } +} + +__attribute__((destructor)) +static void MPIfini(void) +{ + int mpi_finalized; + MPI_Finalize(&mpi_finalized); + if(!mpi_finalized) + MPI_Finalize(); +} +#endif /* !USE_MPI_H */ + + +/***************************************************************************** + * P U B L I C * + ****************************************************************************/ + + +/* + * M u m p s S p a r s e S o l v e r + */ + +MumpsSparseSolver::MumpsSparseSolver( ) : SparseSolver() +{ + + a_mumps = 0; + irn_mumps = 0; + jcn_mumps = 0; + clear( ); + + //initialize mumps + MUMPS_STRUC_C* mumps_ = static_cast(calloc(1, sizeof(MUMPS_STRUC_C))); + mumps_->job = -1; //initialize mumps + mumps_->par = 1; //working host for sequential version + mumps_->sym = 2; //general symmetric matrix + mumps_->comm_fortran = USE_COMM_WORLD; + +// #ifndef IPOPT_MUMPS_NOMUTEX +// const std::lock_guard lock(mumps_call_mutex); +// #endif + + mumps_c(mumps_); + mumps_->icntl[1] = 0; + mumps_->icntl[2] = 0; //QUIETLY! + mumps_->icntl[3] = 0; + + + // these values are just copied from Ipopt: better values might exist + mem_percent_ = 1000; + mumps_permuting_scaling_ = 7; + mumps_pivot_order_ = 7; + mumps_scaling_ = 77; + mumps_dep_tol_ = 0.0; + + pivtol_ = 0.000001; + // pivtol_ = 1.0; + // pivtol_ = 0.1; + // pivtol_ = 0.0; + pivtolmax_ = 0.1; // actually unused atm + + // Reset all private data + initialized_ = false; + pivtol_changed_ = false; + refactorize_ = false; + have_symbolic_factorization_ = false; + mumps_ptr_ = (void*) mumps_; + +} + + +/* + * M u m p s S p a r s e S o l v e r + */ +MumpsSparseSolver::MumpsSparseSolver( const MumpsSparseSolver& rhs ) +{ + copy( rhs ); +} + + +/* + * ~ M u m p s S p a r s e S o l v e r + */ +MumpsSparseSolver::~MumpsSparseSolver( ) +{ + +// #ifndef IPOPT_MUMPS_NOMUTEX +// const std::lock_guard lock(mumps_call_mutex); +// #endif + + MUMPS_STRUC_C* mumps_ = static_cast(mumps_ptr_); + mumps_->job = -2; //terminate mumps + mumps_c(mumps_); + delete[] mumps_->a; + free(mumps_); +} + + +/* + * o p e r a t o r = + */ +MumpsSparseSolver& MumpsSparseSolver::operator=( const SparseSolver& rhs ) +{ + const MumpsSparseSolver* mumps_rhs = dynamic_cast(&rhs); + if (!mumps_rhs) + { + fprintf(getGlobalMessageHandler()->getOutputFile(),"Error in MumpsSparseSolver& MumpsSparseSolver::operator=( const SparseSolver& rhs )\n"); + throw; /* TODO: More elegant exit? */ + } + if ( this != mumps_rhs ) + { + clear( ); + SparseSolver::operator=( rhs ); + copy( *mumps_rhs ); + } + + return *this; +} + +/* + * s e t M a t r i x D a t a + */ +returnValue MumpsSparseSolver::setMatrixData( int_t dim_, + int_t numNonzeros_, + const int_t* const irn, + const int_t* const jcn, + const real_t* const avals + ) +{ + reset( ); + dim = dim_; + numNonzeros = numNonzeros_; + + if ( numNonzeros_ > 0 ) + { + a_mumps = new double[numNonzeros_]; + irn_mumps = new fint_t[numNonzeros_]; + jcn_mumps = new fint_t[numNonzeros_]; + + numNonzeros=0; + for (int_t i=0; i(mumps_ptr_); + + MUMPS_STRUC_C* mumps_ = static_cast(mumps_ptr_); + mumps_data->n = dim; + mumps_data->nz = numNonzeros; + delete[] mumps_data->a; + mumps_data->a = NULL; + + mumps_data->a = new double[numNonzeros]; + mumps_data->irn = const_cast(irn_mumps); + mumps_data->jcn = const_cast(jcn_mumps); + + // make sure we do the symbolic factorization before a real + // factorization + have_symbolic_factorization_ = false; + +// #ifndef IPOPT_MUMPS_NOMUTEX +// const std::lock_guard lock(mumps_call_mutex); +// #endif + + mumps_data->job = 1; //symbolic ordering pass + + //mumps_data->icntl[1] = 6; + //mumps_data->icntl[2] = 6;//QUIETLY! + //mumps_data->icntl[3] = 4; + + mumps_data->icntl[5] = mumps_permuting_scaling_; + mumps_data->icntl[6] = mumps_pivot_order_; + mumps_data->icntl[7] = mumps_scaling_; + mumps_data->icntl[9] = 0; //no iterative refinement iterations + + mumps_data->icntl[12] = 1; //avoid lapack bug, ensures proper inertia; mentioned to be very expensive in mumps manual + mumps_data->icntl[13] = mem_percent_; //% memory to allocate over expected + mumps_data->cntl[0] = pivtol_; // Set pivot tolerance + + // dump_matrix(mumps_data); + + // MyPrintf("Calling MUMPS-1 for symbolic factorization.\n"); + mumps_c(mumps_data); + // MyPrintf("Done with MUMPS-1 for symbolic factorization.\n"); + int error = mumps_data->info[0]; + const int& mumps_permuting_scaling_used = mumps_data->infog[22]; + const int& mumps_pivot_order_used = mumps_data->infog[6]; + + //return appropriate value + if( error == -6 ) //system is singular + { + MyPrintf("MUMPS returned INFO(1) = %i matrix is singular.\n", error); + return RET_MATRIX_FACTORISATION_FAILED; + } + if( error < 0 ) + { + printf("nnz = %i\n",numNonzeros); + MyPrintf("Error=%i returned from MUMPS in Factorization.\n", error); + MyPrintf("MUMPS returned INFO(2) = %i.\n", mumps_data->info[1]); + return RET_MATRIX_FACTORISATION_FAILED; + } + + //// IPOPT-MUMPS (ACTUAL FACTORIZATION) + // MUMPS_STRUC_C* mumps_data = static_cast(mumps_ptr_); + + mumps_data->job = 2; //numerical factorization + + // dump_matrix(mumps_data); + // MyPrintf("Calling MUMPS-2 for numerical factorization.\n"); + mumps_c(mumps_data); + // MyPrintf("Done with MUMPS-2 for numerical factorization.\n"); + error = mumps_data->info[0]; + + //Check for errors + if( error == -8 || error == -9 ) //not enough memory + { + const int trycount_max = 20; + for( int trycount = 0; trycount < trycount_max; trycount++ ) + { + MyPrintf("MUMPS returned INFO(1) = %i and requires more memory, reallocating. Attempt %d\n", error, trycount + 1); + MUMPS_INT old_mem_percent = mumps_data->icntl[13]; + ComputeMemIncrease(mumps_data->icntl[13], 2.0 * (double)old_mem_percent, MUMPS_INT(0), "percent extra working space for MUMPS"); + MyPrintf("Increasing icntl[13] from % to % .\n", old_mem_percent, mumps_data->icntl[13]); + + // dump_matrix(mumps_data); + MyPrintf("Calling MUMPS-2 (repeated) for numerical factorization.\n"); + mumps_c(mumps_data); + MyPrintf("Done with MUMPS-2 (repeated) for numerical factorization.\n"); + error = mumps_data->info[0]; + if( error != -8 && error != -9 ) + { + break; + } + } + if( error == -8 || error == -9 ) + { + MyPrintf("MUMPS was not able to obtain enough memory.\n"); + return RET_MATRIX_FACTORISATION_FAILED; + } + } + + // MyPrintf("Number of doubles for MUMPS to hold factorization (INFO(9)) = %i\n", mumps_data->info[8]); + // MyPrintf("Number of integers for MUMPS to hold factorization (INFO(10)) = %i\n", mumps_data->info[9]); + + if( error == -10 ) //system is singular + { + MyPrintf("MUMPS returned INFO(1) = %i matrix is singular.\n", error); + return RET_MATRIX_FACTORISATION_FAILED; + } + + negevals_ = mumps_data->infog[11]; + + if( error == -13 ) + { + MyPrintf("MUMPS returned INFO(1) =%i - out of memory when trying to allocate % %s.\nIn some cases it helps to decrease the value of the option \"mumps_mem_percent\".\n", + error, mumps_data->info[1] < 0 ? -mumps_data->info[1] : mumps_data->info[1], + mumps_data->info[1] < 0 ? "MB" : "bytes"); + return RET_MATRIX_FACTORISATION_FAILED; + } + if( error < 0 ) //some other error + { + MyPrintf("MUMPS returned INFO(1) =%i MUMPS failure.\n", error); + return RET_MATRIX_FACTORISATION_FAILED; + } + + + have_factorization = true; + + return SUCCESSFUL_RETURN; +} + + +/* + * s o l v e + */ +returnValue MumpsSparseSolver::solve( int_t dim_, + const real_t* const rhs, + real_t* const sol + ) +{ + + // printf("in solve (MUMPS)\n"); + /* consistency check */ + if ( dim_ != dim ) + return THROWERROR( RET_INVALID_ARGUMENTS ); + + if ( !have_factorization ) + { + MyPrintf("Factorization not called before solve in MumpsSparseSolver::solve.\n"); + return THROWERROR( RET_INVALID_ARGUMENTS ); + } + + if ( dim == 0 ) + { + return SUCCESSFUL_RETURN; + } + + // MUMPS overwrites the rhs, copy rhs to sol and pass that to the solver + for (int_t i=0; i(mumps_ptr_); + + mumps_data->rhs = sol; + mumps_data->job = 3; //solve + // MyPrintf("Calling MUMPS-3 for solve.\n"); + mumps_c(mumps_data); + // MyPrintf("Done with MUMPS-3 for solve.\n"); + int error = mumps_data->info[0]; + if( error < 0 ) + { + MyPrintf("Error=%i returned from MUMPS in Solve.\n", error); + return THROWERROR(RET_MATRIX_FACTORISATION_FAILED); + } + + return SUCCESSFUL_RETURN; +} + +/* + * r e s e t + */ +returnValue MumpsSparseSolver::reset( ) +{ + /* AW: We probably want to avoid resetting factorization in QProblem */ + if ( SparseSolver::reset( ) != SUCCESSFUL_RETURN ) + return THROWERROR( RET_RESET_FAILED ); + + clear( ); + return SUCCESSFUL_RETURN; +} + +/* + * g e t N e g a t i v e E i g e n v a l u e s */ +int_t MumpsSparseSolver::getNegativeEigenvalues( ) +{ + if( !have_factorization ) + return -1; + else + return negevals_; +} + + +// TODO(andrea: not implemented yet, default behavior) + +/* + * g e t R a n k + */ +int_t MumpsSparseSolver::getRank( ) +{ + return -1; +} +/* + * g e t Z e r o P i v o t s + */ +returnValue MumpsSparseSolver::getZeroPivots( int_t *&zeroPivots ) +{ + if ( zeroPivots ) delete[] zeroPivots; + zeroPivots = 0; + return SUCCESSFUL_RETURN; +} + + +/***************************************************************************** + * P R O T E C T E D * + *****************************************************************************/ + +/* + * c l e a r + */ +returnValue MumpsSparseSolver::clear( ) +{ + delete [] a_mumps; + delete [] irn_mumps; + delete [] jcn_mumps; + + dim = -1; + numNonzeros = -1; + negevals_ = -1; + mumps_pivot_order_ = 0; + + a_mumps = 0; + irn_mumps = 0; + jcn_mumps = 0; + + have_factorization = false; + return SUCCESSFUL_RETURN; +} + + +/* + * c o p y + */ +returnValue MumpsSparseSolver::copy( const MumpsSparseSolver& rhs + ) +{ + dim = rhs.dim; + numNonzeros = rhs.numNonzeros; + negevals_ = rhs.negevals_; + have_factorization = rhs.have_factorization; + + if ( rhs.a_mumps != 0 ) + { + a_mumps = new double[numNonzeros]; + memcpy( a_mumps,rhs.a_mumps,numNonzeros*sizeof(double) ); + } + else + a_mumps = 0; + + if ( rhs.irn_mumps != 0 ) + { + irn_mumps = new fint_t[numNonzeros]; + memcpy( irn_mumps,rhs.irn_mumps,numNonzeros*sizeof(fint_t) ); + } + else + irn_mumps = 0; + + if ( rhs.jcn_mumps != 0 ) + { + jcn_mumps = new fint_t[numNonzeros]; + memcpy( jcn_mumps,rhs.jcn_mumps,numNonzeros*sizeof(fint_t) ); + } + else + jcn_mumps = 0; + + return SUCCESSFUL_RETURN; +} + +#endif /* SOLVER_MUMPS */ + #ifdef SOLVER_NONE returnValue DummySparseSolver::setMatrixData( int_t dim, /**< Dimension of the linear system. */ diff --git a/testing/cpp/test_qrecipeSchur.cpp b/testing/cpp/test_qrecipeSchur.cpp index 5a03e43..3f07baa 100644 --- a/testing/cpp/test_qrecipeSchur.cpp +++ b/testing/cpp/test_qrecipeSchur.cpp @@ -87,6 +87,10 @@ int main( ) /* solve with sparse matrices (nullspace factorization) */ nWSR = 1000; QProblem qrecipeS(180, 91); + /* for some reason this is necessary to pass the test when using MUMPS */ +#if USE_SOLVER == MUMPS + options.enableEqualities = BT_FALSE; +#endif qrecipeS.setOptions(options); tic = getCPUtime(); qrecipeS.init(H, g, A, lb, ub, lbA, ubA, nWSR, 0); diff --git a/testing/cpp/test_smallSchur.cpp b/testing/cpp/test_smallSchur.cpp index 7a6f140..de4c8f5 100644 --- a/testing/cpp/test_smallSchur.cpp +++ b/testing/cpp/test_smallSchur.cpp @@ -70,6 +70,7 @@ int main( ) options.setToDefault(); options.printLevel = PL_TABULAR; options.initialStatusBounds = ST_UPPER; + /* options.enableEqualities = BT_FALSE; */ /* create sparse matrices */ SymSparseMat *H = new SymSparseMat(n, n, H_ir, H_jc, H_val); @@ -91,9 +92,9 @@ int main( ) /* solve with sparse matrices (Schur complement) */ #ifndef SOLVER_NONE - nWSR = 1000; + nWSR = 10000; SQProblemSchur qp(n, m); - qp.setOptions(options); + // qp.setOptions(options); tic = getCPUtime(); qp.init(H, g, A, lb, ub, lbA, ubA, nWSR, 0); toc = getCPUtime();