text:
#############################################################################
# ECOS.jl
# Wrapper around the ECOS solver https://github.com/ifa-ethz/ecos
# See http://github.com/JuliaOpt/ECOS.jl
#############################################################################
# test/options.jl
# Test passing options to the ECOS solver. Based on test/direct.jl
#############################################################################

import ECOS
using Test

println(ECOS.ver())

n = 223
m = 220
p = 114
l = 201
ncones = 6

c = [0.0, 0.0, 0.0, 0.5, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]

h = [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]

q = [3, 3, 3, 3, 3, 4]

Gjc = [0, 0, 0, 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, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220]

Gir = [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, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219]

Gpr = [-1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000]

Ajc = [0, 111, 222, 322, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 539, 540, 541, 564, 565, 566, 589, 590, 591, 618, 619, 620, 632, 633, 634, 635, 636, 637, 638]

Air = [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, 101, 102, 103, 104, 105, 106, 107, 108, 109, 111, 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, 101, 102, 103, 104, 105, 106, 107, 108, 109, 112, 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, 110, 113, 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, 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, 3, 9, 15, 27, 53, 54, 57, 66, 67, 71, 74, 87, 92, 96, 98, 100, 101, 2, 8, 12, 19, 29, 30, 34, 37, 39, 42, 43, 44, 47, 50, 51, 56, 59, 70, 73, 79, 82, 85, 94, 102, 103, 0, 4, 7, 13, 14, 16, 17, 21, 23, 28, 31, 33, 36, 38, 60, 64, 78, 81, 88, 90, 91, 95, 99, 104, 105, 1, 6, 10, 20, 22, 26, 32, 35, 41, 46, 48, 49, 52, 55, 58, 65, 68, 69, 75, 76, 77, 80, 83, 84, 86, 93, 97, 106, 107, 5, 11, 18, 24, 25, 40, 45, 61, 62, 63, 72, 89, 108, 109, 110, 111, 112, 113]

Apr = [-6.748099080141577400e-001, 9.587587238674218900e-001, -3.380262965696901900e-001, -6.289006455522118100e-001, 1.458932368908371500e+000, 8.103505672584934100e-001, -8.308676110497204000e-002, 2.638152658681099300e+000, 1.000625209233638700e+000, 1.443285740856571400e-001, 1.198960671699122800e+000, 8.042866751960948700e-001, -2.146877760548437900e-002, 1.252109754253975600e+000, 1.681372772953815700e+000, 1.160558110039982400e+000, 8.971595941547876300e-001, 9.934462168535226300e-001, 4.030425643552826300e-003, 4.520907269135507900e-001, 1.957531681292445900e+000, 8.367513704018149100e-001, -8.919073879004054700e-001, 1.364968014685880000e-001, -5.391443069926015200e-001, 1.218605709809697200e+000, 1.379628849398701500e+000, 7.705722581573115600e-002, -9.721580354507602900e-001, 1.341091680254979900e+000, 1.416856131617781900e+000, 1.367782802004573000e+000, 9.310015370881947700e-001, 1.025960903569425500e+000, 4.418055920652105800e-001, 1.797608571927105100e-001, -1.566236421056189400e+000, -1.293790728779894400e-001, -2.548793507296202000e-001, -1.327158583802827700e+000, 8.378869252146687900e-001, 9.208088134425553900e-001, 8.954835779157467300e-001, 1.872488747783192400e+000, 1.607749082930002300e-001, 1.703097419135647200e+000, 1.485966470102646500e+000, 1.950727391193988900e+000, 1.261282074772785800e+000, 2.116080672704367100e+000, 4.418819171779880300e-001, -6.070414095655145600e-001, 2.236741804227308500e-001, -1.390565074056968600e+000, -3.689063294445240100e-001, 6.275925564016111600e-001, 9.419119351808997700e-001, 2.051844704916749900e-002, -2.055013180419911200e+000, -8.138411920140069500e-001, -1.670986440999406000e+000, -4.312826132928389000e-001, -1.317178055102502500e-001, 4.129877571668971700e-002, -1.178000809237306800e-001, -5.094809536848188300e-002, 4.887140456297478000e-001, -6.048920026011540600e-001, -1.622657687025348600e+000, 9.468924561461561400e-002, -1.076752006167445400e+000, -4.544402225817885700e-001, -1.138681599263542200e+000, 6.297099350763062400e-001, 7.161553122227841700e-001, -2.326213079050594200e-001, -2.421425730439526200e-001, -3.527400894253913700e-001, -5.991000491511071500e-001, -4.501982881436522000e-001, -1.073527618321097300e+000, -1.837831580649836900e+000, -1.093506922417250900e+000, 3.123080272148109900e-002, 4.764624397863112500e-001, -9.744593174286131400e-001, -5.475935551016516400e-001, -1.185577848308040100e+000, -1.512429413719079500e+000, -8.503358079552569800e-001, -1.048119449917124500e+000, -2.950353712891531400e-001, 4.436355670528358600e-001, -1.976143927829304500e+000, -1.154872945269262400e-001, -8.267783537066453200e-001, -2.524533500828647400e-001, -2.934013148063512300e-001, -9.559308197633347200e-001, -5.099545278978906400e-001, 7.104569782287112300e-001, 2.586151051423653000e-001, 9.670875274511733200e-001, -1.580472136196336100e-001, 4.036019169202506600e-001, -4.419329075671284400e-001, 1.335760493316310000e-001, -2.443367984060260100e-001, 5.346171843774407700e-001, 9.240837092450902800e-002, 1.000000000000000000e+000, -7.627629774659758300e+000, -8.317906940770274800e+000, -7.063111046330970300e+000, -8.991213209598194900e+000, -7.132056801314573300e+000, -6.933147988332642300e+000, -8.002850393982971200e+000, -7.763929473153173600e+000, -7.316196508551362500e+000, -6.857489440772187800e+000, -6.933435917031895100e+000, -8.453055934420948600e+000, -7.746956878849250200e+000, -6.987480243537588000e+000, -6.898256465718047200e+000, -7.035033952525910900e+000, -7.332300809407010800e+000, -8.868148466875196000e+000, -7.895445920224761800e+000, -8.477688226774738200e+000, -6.724790281248850500e+000, -8.026080227654171400e+000, -8.247796522362861500e+000, -7.893131787368933100e+000, -7.953077643849715300e+000, -7.085517647070380700e+000, -7.757918623860442500e+000, -9.404980440162075800e+000, -9.111021916635516900e+000, -6.753547752596220200e+000, -6.208328120779675900e+000, -7.460712402671073400e+000, -8.051154905293161700e+000, -6.979795864345947000e+000, -7.285373299414776400e+000, -7.935549231771511300e+000, -7.333663096710840700e+000, -7.549354579130950400e+000, -7.125439770244579300e+000, -8.444455837718113100e+000, -7.607705936847165300e+000, -6.947711222611268100e+000, -7.559561213742542300e+000, -6.633232534378238100e+000, -7.285067573640397100e+000, -7.198034090285221800e+000, -8.301173708858458500e+000, -7.740676955875905200e+000, -8.389317110487786200e+000, -7.030503781850090800e+000, 7.483837125022816400e-001, 9.972172897309477000e-001, 8.635272324715717000e-001, 3.437357445286000600e-001, 1.356057545748600200e+000, 7.747994541454063000e-001, -5.029337660688439900e-001, 7.320209587792132500e-001, 9.007328043370961300e-001, 1.839182838430090300e+000, -1.352604803382542600e+000, 1.440339792882617200e+000, 5.409160633286138600e-001, -9.096356667070149000e-002, 2.145906552675194100e-001, 1.749366326171780000e+000, 1.710862586429138200e+000, 5.617170924142114200e-001, 8.075937970441778900e-001, 5.294053117812258500e-001, 8.007328881544743000e-001, 6.824506852180559600e-001, -4.466422007073587200e-001, 4.125165857556476500e-001, 1.264599468598445900e+000, 1.195482116831558800e+000, 5.815701470999368200e-001, 1.480145121963046200e+000, 1.228974130124139900e+000, -9.887375252743877400e-001, 4.957232610676656800e-001, 2.201242074660017000e-001, -8.949779589135298300e-002, 4.463714750361750200e-001, 1.104458211701637000e+000, 1.146057798756675600e+000, 1.607064328082671100e+000, -3.342540671866551800e-001, -3.733869343080511400e-001, 1.376984209826379600e+000, 1.134842638638303900e+000, 1.578816025652644900e+000, 8.631161307174450800e-003, 6.628552272325566300e-001, -4.235551988694613600e-001, -5.931434773175525700e-002, 1.107744286910284700e+000, 1.308043758809049000e+000, 1.474220016986390400e+000, 6.094036504382410700e-001, 2.586151051423653000e-001, 7.690092056142631100e-001, -1.580472136196336100e-001, 2.410499789745967300e-001, -4.419329075671284400e-001, 6.725262868347948700e-001, -2.443367984060260100e-001, 9.310955439202097700e-001, 9.240837092450902800e-002, 9.816510048711224500e-001, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -5.000000000000000000e-001, -5.000000000000000000e-001, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, 1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, 1.000000000000000000e+000]

K0jc = [0, 112, 224, 325, 329, 332, 335, 338, 341, 344, 347, 350, 353, 356, 359, 362, 365, 368, 371, 374, 377, 380, 383, 386, 389, 392, 395, 398, 401, 404, 407, 410, 413, 416, 419, 422, 425, 428, 431, 434, 437, 440, 443, 446, 449, 452, 455, 458, 461, 464, 467, 470, 473, 476, 479, 482, 485, 488, 491, 494, 497, 500, 503, 506, 509, 512, 515, 518, 521, 524, 527, 530, 533, 536, 539, 542, 545, 548, 551, 554, 557, 560, 563, 566, 569, 572, 575, 578, 581, 584, 587, 590, 593, 596, 599, 602, 605, 608, 611, 614, 617, 620, 623, 626, 629, 632, 635, 638, 641, 644, 647, 650, 653, 656, 659, 662, 665, 668, 671, 674, 677, 680, 683, 686, 689, 692, 695, 698, 701, 704, 707, 710, 713, 716, 719, 722, 725, 728, 731, 734, 737, 740, 743, 746, 749, 752, 755, 758, 761, 764, 767, 770, 773, 776, 779, 782, 785, 788, 791, 794, 797, 800, 803, 806, 809, 812, 815, 818, 821, 824, 827, 830, 833, 836, 839, 842, 845, 848, 851, 854, 857, 860, 863, 866, 869, 872, 875, 878, 881, 884, 887, 890, 893, 896, 899, 902, 905, 908, 911, 914, 917, 920, 923, 926, 929, 946, 949, 952, 977, 980, 983, 1008, 1011, 1014, 1043, 1046, 1049, 1063, 1066, 1069, 1072, 1075, 1078, 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1120, 1121, 1122, 1123, 1124, 1125, 1126, 1127, 1128, 1129, 1130, 1131, 1132, 1133, 1134, 1135, 1136, 1137, 1138, 1139, 1140, 1141, 1142, 1143, 1144, 1145, 1146, 1147, 1148, 1149, 1150, 1151, 1152, 1153, 1154, 1155, 1156, 1157, 1158, 1159, 1160, 1161, 1162, 1163, 1164, 1165, 1166, 1167, 1168, 1169, 1170, 1171, 1172, 1173, 1174, 1175, 1176, 1177, 1178, 1179, 1180, 1181, 1182, 1183, 1184, 1185, 1186, 1187, 1188, 1189, 1190, 1191, 1192, 1193, 1194, 1195, 1196, 1197, 1198, 1199, 1200, 1201, 1202, 1203, 1204, 1205, 1206, 1207, 1208, 1209, 1210, 1211, 1212, 1213, 1214, 1215, 1216, 1217, 1218, 1219, 1220, 1221, 1222, 1223, 1224, 1225, 1226, 1227, 1228, 1229, 1230, 1231, 1232, 1233, 1234, 1235, 1236, 1237, 1238, 1239, 1240, 1241, 1242, 1243, 1244, 1245, 1246, 1247, 1248, 1249, 1250, 1251, 1252, 1253, 1254, 1255, 1256, 1257, 1258, 1259, 1260, 1261, 1262, 1263, 1264, 1265, 1266, 1267, 1268, 1269, 1270, 1271, 1272, 1273, 1274, 1275, 1276, 1277, 1278, 1279, 1280, 1281, 1282, 1283, 1284, 1285, 1286, 1287, 1288, 1289, 1290, 1291, 1292, 1293, 1294, 1295, 1296, 1297, 1298, 1299, 1300, 1301, 1302, 1303, 1304, 1305, 1306, 1307, 1308, 1309, 1310, 1311, 1312, 1313, 1314, 1315, 1316, 1317, 1318, 1319, 1320, 1321, 1322, 1323, 1324, 1325, 1326, 1327, 1328, 1329, 1330, 1331, 1332, 1333, 1334, 1335, 1336, 1337, 1338, 1339, 1340, 1341, 1342, 1343, 1344, 1345, 1346, 1347, 1348, 1349, 1350, 1351, 1352, 1353, 1354, 1355, 1356, 1357, 1358, 1359, 1360, 1361, 1362, 1363, 1364, 1365, 1366, 1367, 1368, 1369, 1370, 1371, 1372, 1373, 1374, 1375, 1376, 1377, 1378, 1379, 1380, 1381, 1382, 1383, 1384, 1385, 1386, 1387, 1388, 1389, 1390, 1391, 1392, 1393, 1394, 1395, 1396, 1397, 1398, 1399, 1400, 1401, 1402, 1403, 1404, 1405, 1406, 1407, 1408, 1409, 1410, 1411, 1412, 1413, 1414, 1414]

K0ir = [0, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 334, 1, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 335, 2, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 3, 333, 336, 337, 4, 223, 338, 5, 224, 339, 6, 225, 340, 7, 226, 341, 8, 227, 342, 9, 228, 343, 10, 229, 344, 11, 230, 345, 12, 231, 346, 13, 232, 347, 14, 233, 348, 15, 234, 349, 16, 235, 350, 17, 236, 351, 18, 237, 352, 19, 238, 353, 20, 239, 354, 21, 240, 355, 22, 241, 356, 23, 242, 357, 24, 243, 358, 25, 244, 359, 26, 245, 360, 27, 246, 361, 28, 247, 362, 29, 248, 363, 30, 249, 364, 31, 250, 365, 32, 251, 366, 33, 252, 367, 34, 253, 368, 35, 254, 369, 36, 255, 370, 37, 256, 371, 38, 257, 372, 39, 258, 373, 40, 259, 374, 41, 260, 375, 42, 261, 376, 43, 262, 377, 44, 263, 378, 45, 264, 379, 46, 265, 380, 47, 266, 381, 48, 267, 382, 49, 268, 383, 50, 269, 384, 51, 270, 385, 52, 271, 386, 53, 272, 387, 54, 273, 388, 55, 274, 389, 56, 275, 390, 57, 276, 391, 58, 277, 392, 59, 278, 393, 60, 279, 394, 61, 280, 395, 62, 281, 396, 63, 282, 397, 64, 283, 398, 65, 284, 399, 66, 285, 400, 67, 286, 401, 68, 287, 402, 69, 288, 403, 70, 289, 404, 71, 290, 405, 72, 291, 406, 73, 292, 407, 74, 293, 408, 75, 294, 409, 76, 295, 410, 77, 296, 411, 78, 297, 412, 79, 298, 413, 80, 299, 414, 81, 300, 415, 82, 301, 416, 83, 302, 417, 84, 303, 418, 85, 304, 419, 86, 305, 420, 87, 306, 421, 88, 307, 422, 89, 308, 423, 90, 309, 424, 91, 310, 425, 92, 311, 426, 93, 312, 427, 94, 313, 428, 95, 314, 429, 96, 315, 430, 97, 316, 431, 98, 317, 432, 99, 318, 433, 100, 319, 434, 101, 320, 435, 102, 321, 436, 103, 322, 437, 104, 223, 438, 105, 224, 439, 106, 225, 440, 107, 226, 441, 108, 227, 442, 109, 228, 443, 110, 229, 444, 111, 230, 445, 112, 231, 446, 113, 232, 447, 114, 233, 448, 115, 234, 449, 116, 235, 450, 117, 236, 451, 118, 237, 452, 119, 238, 453, 120, 239, 454, 121, 240, 455, 122, 241, 456, 123, 242, 457, 124, 243, 458, 125, 244, 459, 126, 245, 460, 127, 246, 461, 128, 247, 462, 129, 248, 463, 130, 249, 464, 131, 250, 465, 132, 251, 466, 133, 252, 467, 134, 253, 468, 135, 254, 469, 136, 255, 470, 137, 256, 471, 138, 257, 472, 139, 258, 473, 140, 259, 474, 141, 260, 475, 142, 261, 476, 143, 262, 477, 144, 263, 478, 145, 264, 479, 146, 265, 480, 147, 266, 481, 148, 267, 482, 149, 268, 483, 150, 269, 484, 151, 270, 485, 152, 271, 486, 153, 272, 487, 154, 273, 488, 155, 274, 489, 156, 275, 490, 157, 276, 491, 158, 277, 492, 159, 278, 493, 160, 279, 494, 161, 280, 495, 162, 281, 496, 163, 282, 497, 164, 283, 498, 165, 284, 499, 166, 285, 500, 167, 286, 501, 168, 287, 502, 169, 288, 503, 170, 289, 504, 171, 290, 505, 172, 291, 506, 173, 292, 507, 174, 293, 508, 175, 294, 509, 176, 295, 510, 177, 296, 511, 178, 297, 512, 179, 298, 513, 180, 299, 514, 181, 300, 515, 182, 301, 516, 183, 302, 517, 184, 303, 518, 185, 304, 519, 186, 305, 520, 187, 306, 521, 188, 307, 522, 189, 308, 523, 190, 309, 524, 191, 310, 525, 192, 311, 526, 193, 312, 527, 194, 313, 528, 195, 314, 529, 196, 315, 530, 197, 316, 531, 198, 317, 532, 199, 318, 533, 200, 319, 534, 201, 320, 535, 202, 321, 536, 203, 322, 537, 204, 226, 232, 238, 250, 276, 277, 280, 289, 290, 294, 297, 310, 315, 319, 321, 538, 205, 323, 539, 206, 324, 540, 207, 225, 231, 235, 242, 252, 253, 257, 260, 262, 265, 266, 267, 270, 273, 274, 279, 282, 293, 296, 302, 305, 308, 317, 541, 208, 325, 542, 209, 326, 543, 210, 223, 227, 230, 236, 237, 239, 240, 244, 246, 251, 254, 256, 259, 261, 283, 287, 301, 304, 311, 313, 314, 318, 322, 544, 211, 327, 545, 212, 328, 546, 213, 224, 229, 233, 243, 245, 249, 255, 258, 264, 269, 271, 272, 275, 278, 281, 288, 291, 292, 298, 299, 300, 303, 306, 307, 309, 316, 320, 547, 214, 329, 548, 215, 330, 549, 216, 228, 234, 241, 247, 248, 263, 268, 284, 285, 286, 295, 312, 550, 217, 331, 551, 218, 332, 552, 219, 333, 553, 220, 334, 554, 221, 335, 555, 222, 336, 556, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556]

K0pr = [9.999999999999999500e-008, -6.748099080141577400e-001, 9.587587238674218900e-001, -3.380262965696901900e-001, -6.289006455522118100e-001, 1.458932368908371500e+000, 8.103505672584934100e-001, -8.308676110497204000e-002, 2.638152658681099300e+000, 1.000625209233638700e+000, 1.443285740856571400e-001, 1.198960671699122800e+000, 8.042866751960948700e-001, -2.146877760548437900e-002, 1.252109754253975600e+000, 1.681372772953815700e+000, 1.160558110039982400e+000, 8.971595941547876300e-001, 9.934462168535226300e-001, 4.030425643552826300e-003, 4.520907269135507900e-001, 1.957531681292445900e+000, 8.367513704018149100e-001, -8.919073879004054700e-001, 1.364968014685880000e-001, -5.391443069926015200e-001, 1.218605709809697200e+000, 1.379628849398701500e+000, 7.705722581573115600e-002, -9.721580354507602900e-001, 1.341091680254979900e+000, 1.416856131617781900e+000, 1.367782802004573000e+000, 9.310015370881947700e-001, 1.025960903569425500e+000, 4.418055920652105800e-001, 1.797608571927105100e-001, -1.566236421056189400e+000, -1.293790728779894400e-001, -2.548793507296202000e-001, -1.327158583802827700e+000, 8.378869252146687900e-001, 9.208088134425553900e-001, 8.954835779157467300e-001, 1.872488747783192400e+000, 1.607749082930002300e-001, 1.703097419135647200e+000, 1.485966470102646500e+000, 1.950727391193988900e+000, 1.261282074772785800e+000, 2.116080672704367100e+000, 4.418819171779880300e-001, -6.070414095655145600e-001, 2.236741804227308500e-001, -1.390565074056968600e+000, -3.689063294445240100e-001, 6.275925564016111600e-001, 9.419119351808997700e-001, 2.051844704916749900e-002, -2.055013180419911200e+000, -8.138411920140069500e-001, -1.670986440999406000e+000, -4.312826132928389000e-001, -1.317178055102502500e-001, 4.129877571668971700e-002, -1.178000809237306800e-001, -5.094809536848188300e-002, 4.887140456297478000e-001, -6.048920026011540600e-001, -1.622657687025348600e+000, 9.468924561461561400e-002, -1.076752006167445400e+000, -4.544402225817885700e-001, -1.138681599263542200e+000, 6.297099350763062400e-001, 7.161553122227841700e-001, -2.326213079050594200e-001, -2.421425730439526200e-001, -3.527400894253913700e-001, -5.991000491511071500e-001, -4.501982881436522000e-001, -1.073527618321097300e+000, -1.837831580649836900e+000, -1.093506922417250900e+000, 3.123080272148109900e-002, 4.764624397863112500e-001, -9.744593174286131400e-001, -5.475935551016516400e-001, -1.185577848308040100e+000, -1.512429413719079500e+000, -8.503358079552569800e-001, -1.048119449917124500e+000, -2.950353712891531400e-001, 4.436355670528358600e-001, -1.976143927829304500e+000, -1.154872945269262400e-001, -8.267783537066453200e-001, -2.524533500828647400e-001, -2.934013148063512300e-001, -9.559308197633347200e-001, -5.099545278978906400e-001, 7.104569782287112300e-001, 2.586151051423653000e-001, 9.670875274511733200e-001, -1.580472136196336100e-001, 4.036019169202506600e-001, -4.419329075671284400e-001, 1.335760493316310000e-001, -2.443367984060260100e-001, 5.346171843774407700e-001, 9.240837092450902800e-002, 1.000000000000000000e+000, 9.999999999999999500e-008, -7.627629774659758300e+000, -8.317906940770274800e+000, -7.063111046330970300e+000, -8.991213209598194900e+000, -7.132056801314573300e+000, -6.933147988332642300e+000, -8.002850393982971200e+000, -7.763929473153173600e+000, -7.316196508551362500e+000, -6.857489440772187800e+000, -6.933435917031895100e+000, -8.453055934420948600e+000, -7.746956878849250200e+000, -6.987480243537588000e+000, -6.898256465718047200e+000, -7.035033952525910900e+000, -7.332300809407010800e+000, -8.868148466875196000e+000, -7.895445920224761800e+000, -8.477688226774738200e+000, -6.724790281248850500e+000, -8.026080227654171400e+000, -8.247796522362861500e+000, -7.893131787368933100e+000, -7.953077643849715300e+000, -7.085517647070380700e+000, -7.757918623860442500e+000, -9.404980440162075800e+000, -9.111021916635516900e+000, -6.753547752596220200e+000, -6.208328120779675900e+000, -7.460712402671073400e+000, -8.051154905293161700e+000, -6.979795864345947000e+000, -7.285373299414776400e+000, -7.935549231771511300e+000, -7.333663096710840700e+000, -7.549354579130950400e+000, -7.125439770244579300e+000, -8.444455837718113100e+000, -7.607705936847165300e+000, -6.947711222611268100e+000, -7.559561213742542300e+000, -6.633232534378238100e+000, -7.285067573640397100e+000, -7.198034090285221800e+000, -8.301173708858458500e+000, -7.740676955875905200e+000, -8.389317110487786200e+000, -7.030503781850090800e+000, 7.483837125022816400e-001, 9.972172897309477000e-001, 8.635272324715717000e-001, 3.437357445286000600e-001, 1.356057545748600200e+000, 7.747994541454063000e-001, -5.029337660688439900e-001, 7.320209587792132500e-001, 9.007328043370961300e-001, 1.839182838430090300e+000, -1.352604803382542600e+000, 1.440339792882617200e+000, 5.409160633286138600e-001, -9.096356667070149000e-002, 2.145906552675194100e-001, 1.749366326171780000e+000, 1.710862586429138200e+000, 5.617170924142114200e-001, 8.075937970441778900e-001, 5.294053117812258500e-001, 8.007328881544743000e-001, 6.824506852180559600e-001, -4.466422007073587200e-001, 4.125165857556476500e-001, 1.264599468598445900e+000, 1.195482116831558800e+000, 5.815701470999368200e-001, 1.480145121963046200e+000, 1.228974130124139900e+000, -9.887375252743877400e-001, 4.957232610676656800e-001, 2.201242074660017000e-001, -8.949779589135298300e-002, 4.463714750361750200e-001, 1.104458211701637000e+000, 1.146057798756675600e+000, 1.607064328082671100e+000, -3.342540671866551800e-001, -3.733869343080511400e-001, 1.376984209826379600e+000, 1.134842638638303900e+000, 1.578816025652644900e+000, 8.631161307174450800e-003, 6.628552272325566300e-001, -4.235551988694613600e-001, -5.931434773175525700e-002, 1.107744286910284700e+000, 1.308043758809049000e+000, 1.474220016986390400e+000, 6.094036504382410700e-001, 2.586151051423653000e-001, 7.690092056142631100e-001, -1.580472136196336100e-001, 2.410499789745967300e-001, -4.419329075671284400e-001, 6.725262868347948700e-001, -2.443367984060260100e-001, 9.310955439202097700e-001, 9.240837092450902800e-002, 9.816510048711224500e-001, 1.000000000000000000e+000, 9.999999999999999500e-008, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, -5.000000000000000000e-001, -5.000000000000000000e-001, -1.000000000000000000e+000, 9.999999999999999500e-008, -1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, -1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, -1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, -1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, -1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, -1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, -1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, -1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, -1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, -1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, -1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, -1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, -1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, -1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, -1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, -1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, -1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, -1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, -1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, -1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, -1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, -1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, -1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, -1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, -1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, -1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, -1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, -1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, -1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, -1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, -1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, -1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, -1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, -1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, -1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, -1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, -1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, -1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, -1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, -1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, -1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, -1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, -1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, -1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, -1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, -1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, -1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, -1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, -1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, -1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, -1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, -1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, -1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, -1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, -1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, -1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, -1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, -1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, -1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, -1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, -1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, -1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, -1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, -1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, -1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, -1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, -1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, -1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, -1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, -1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, -1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, -1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, -1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, -1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, -1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, -1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, -1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, -1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, -1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, -1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, -1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, -1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, -1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, -1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, -1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, -1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, -1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, -1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, -1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, -1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, -1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, -1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, -1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, -1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, -1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, -1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, -1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, -1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, -1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, -1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, 1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, 1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, 1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, 1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, 1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, 1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, 1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, 1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, 1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, 1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, 1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, 1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, 1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, 1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, 1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, 1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, 1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, 1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, 1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, 1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, 1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, 1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, 1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, 1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, 1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, 1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, 1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, 1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, 1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, 1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, 1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, 1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, 1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, 1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, 1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, 1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, 1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, 1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, 1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, 1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, 1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, 1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, 1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, 1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, 1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, 1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, 1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, 1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, 1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, 1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, 1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, 1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, 1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, 1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, 1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, 1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, 1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, 1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, 1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, 1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, 1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, 1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, 1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, 1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, 1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, 1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, 1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, 1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, 1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, 1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, 1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, 1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, 1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, 1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, 1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, 1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, 1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, 1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, 1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, 1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, 1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, 1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, 1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, 1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, 1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, 1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, 1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, 1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, 1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, 1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, 1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, 1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, 1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, 1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, 1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, 1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, 1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, 1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, 1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, 1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, -1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, -1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, -1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, -1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, -1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, -1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, -1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, -1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, 1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, -1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, -1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, 1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, -1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, -1.000000000000000000e+000, -1.000000000000000000e+000, 9.999999999999999500e-008, 1.000000000000000000e+000, -1.000000000000000000e+000, -9.999999999999999500e-008, -9.999999999999999500e-008, -9.999999999999999500e-008, -9.999999999999999500e-008, -9.999999999999999500e-008, -9.999999999999999500e-008, -9.999999999999999500e-008, -9.999999999999999500e-008, -9.999999999999999500e-008, -9.999999999999999500e-008, -9.999999999999999500e-008, -9.999999999999999500e-008, -9.999999999999999500e-008, -9.999999999999999500e-008, -9.999999999999999500e-008, -9.999999999999999500e-008, -9.999999999999999500e-008, -9.999999999999999500e-008, -9.999999999999999500e-008, -9.999999999999999500e-008, -9.999999999999999500e-008, -9.999999999999999500e-008, -9.999999999999999500e-008, -9.999999999999999500e-008, -9.999999999999999500e-008, -9.999999999999999500e-008, -9.999999999999999500e-008, -9.999999999999999500e-008, -9.999999999999999500e-008, -9.999999999999999500e-008, -9.999999999999999500e-008, -9.999999999999999500e-008, -9.999999999999999500e-008, -9.999999999999999500e-008, -9.999999999999999500e-008, -9.999999999999999500e-008, -9.999999999999999500e-008, -9.999999999999999500e-008, -9.999999999999999500e-008, -9.999999999999999500e-008, -9.999999999999999500e-008, -9.999999999999999500e-008, -9.999999999999999500e-008, -9.999999999999999500e-008, -9.999999999999999500e-008, -9.999999999999999500e-008, -9.999999999999999500e-008, -9.999999999999999500e-008, -9.999999999999999500e-008, -9.999999999999999500e-008, -9.999999999999999500e-008, -9.999999999999999500e-008, -9.999999999999999500e-008, -9.999999999999999500e-008, -9.999999999999999500e-008, -9.999999999999999500e-008, -9.999999999999999500e-008, -9.999999999999999500e-008, -9.999999999999999500e-008, -9.999999999999999500e-008, -9.999999999999999500e-008, -9.999999999999999500e-008, -9.999999999999999500e-008, -9.999999999999999500e-008, -9.999999999999999500e-008, -9.999999999999999500e-008, -9.999999999999999500e-008, -9.999999999999999500e-008, -9.999999999999999500e-008, -9.999999999999999500e-008, -9.999999999999999500e-008, -9.999999999999999500e-008, -9.999999999999999500e-008, -9.999999999999999500e-008, -9.999999999999999500e-008, -9.999999999999999500e-008, -9.999999999999999500e-008, -9.999999999999999500e-008, -9.999999999999999500e-008, -9.999999999999999500e-008, -9.999999999999999500e-008, -9.999999999999999500e-008, -9.999999999999999500e-008, -9.999999999999999500e-008, -9.999999999999999500e-008, -9.999999999999999500e-008, -9.999999999999999500e-008, -9.999999999999999500e-008, -9.999999999999999500e-008, -9.999999999999999500e-008, -9.999999999999999500e-008, -9.999999999999999500e-008, -9.999999999999999500e-008, -9.999999999999999500e-008, -9.999999999999999500e-008, -9.999999999999999500e-008, -9.999999999999999500e-008, -9.999999999999999500e-008, -9.999999999999999500e-008, -9.999999999999999500e-008, -9.999999999999999500e-008, -9.999999999999999500e-008, -9.999999999999999500e-008, -9.999999999999999500e-008, -9.999999999999999500e-008, -9.999999999999999500e-008, -9.999999999999999500e-008, -9.999999999999999500e-008, -9.999999999999999500e-008, -9.999999999999999500e-008, -9.999999999999999500e-008, -9.999999999999999500e-008, -9.999999999999999500e-008, -9.999999999999999500e-008, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000, -1.000000000000000000e+000]

b = [-1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5, 0.0, 0.0, -0.5]

G = ECOS.ECOSMatrix(Gpr, Gjc, Gir)
A = ECOS.ECOSMatrix(Apr, Ajc, Air)
mywork = ECOS.setup(n, m, p, l, ncones, q, 0, G, A, c, h, b; maxit=1)

exitflag = ECOS.solve(mywork)
@test exitflag == ECOS.ECOS_MAXIT

# Call after comparing values with correct values
ECOS.cleanup(mywork, 0)


text:
import Pkg; Pkg.activate("../../")  # Cytof5

# See 4.1.1 of http://www.stat.columbia.edu/~gelman/research/published/nuts.pdf
include("HMC.jl")
import LinearAlgebra
using Distributions, Random
using Flux
using Flux.Tracker

using RCall
@rimport graphics as rgraphics
@rimport rcommon

eye(T, n::Int) = Matrix{T}(LinearAlgebra.I, n, n)
eye(n::Int) = Matrix{Float64}(LinearAlgebra.I, n, n)
prettymat(X) = begin show(stdout, "text/plain", X); println(); end

struct MX
  x
end

MX(K::Int) = MX(param(randn(K)))

### MAIN ###
Random.seed!(0)

# easy = true  # bivariate normal
easy = false  # 250-variate normal

if easy
  K = 3
  S = eye(K)
  S[1,2] = S[2,1] = -0.8
  S[1,3] = S[3,1] = 0.5
else
  # Sensitive to eps and num_leapfrog_steps
  # Needs to be tuned. But works.
  K = 250
  S = rand(InverseWishart(K, 10 * eye(K)))
end
inv_S = inv(S)
log_prob(s::MX) = -s.x' * inv_S * s.x / 2.0
mvn = MvNormal(S)

function simulate(init; nburn, nsamps, eps, num_leapfrog_steps,
                  kappa=nothing, momentum_sd=1.0)
  state = deepcopy(init)

  samps = [state for i in 1:nsamps]
  log_prob_hist = zeros(nsamps)

  for i in 1:(nburn + nsamps)
    print("\rProgress: $i / $(nburn + nsamps)")
    eta = (kappa == nothing ? eps : eps * i ^ -kappa)
    state, curr_log_prob = HMC.hmc_update(state, log_prob,
                                          num_leapfrog_steps, eta,
                                          momentum_sd=momentum_sd)
    if i > nburn
      samps[i - nburn] = state
      log_prob_hist[i - nburn] = curr_log_prob
    end
  end
  println()

  return Dict(:samps => samps, :log_prob => log_prob_hist)
end

# initial state
state = MX(param(zeros(K)))

# Compile
_ = simulate(state, nburn=1, nsamps=1, num_leapfrog_steps=1, eps=.1, kappa=.7)

# Simulate
@time if easy
  out = simulate(state, nburn=1000, nsamps=10000,
                 num_leapfrog_steps=2^5, eps=.05)
  # out = simulate(state, nburn=10000, nsamps=10000,
  #                num_leapfrog_steps=2^2, eps=.05)
else
  out = simulate(state, nburn=50, nsamps=100,
                 num_leapfrog_steps=2^11, eps=.1)
end
samps = out[:samps]
log_prob_hist = out[:log_prob]
# NOTE: From BDA3 (p.303-304), we want the acceptance rate
# to be around 65%. If the acceptance rate is much greater than 65% (too
# cautious), then increase eps and decrease L (so that product of eps and L
# is still 1.) Otherwise, if the acceptance rate is much less than 65%
# (too aggressive), then decrease eps and increase L.
acceptance_rate = (length(unique(log_prob_hist)) - 1) / length(log_prob_hist)
println("acceptance rate: $(acceptance_rate)")

# Plot
begin
  post_x = Matrix(hcat([Tracker.data(s.x) for s in samps]...)')
  Ksub = clamp(K, 0, 5)
  println("TRUE cov:")
  prettymat(cov(mvn)[1:Ksub, 1:Ksub])
  println("EST. cov:")
  prettymat(cov(post_x)[1:Ksub, 1:Ksub])
  println()

  # println("TRUE cor:")
  # prettymat(cor(mvn)[1:Ksub, 1:Ksub])
  # println("EST. cor:")
  # prettymat(cor(post_x)[1:Ksub, 1:Ksub])

  # rgraphics.plot(log_prob_hist, xlab="iteration", ylab="log pdf",
  #                main="trace", typ="l");
  # rcommon.plotPosts(post_x[:, 1:Ksub]);

  nothing
end

ext: jl


text:
struct PlotGrid{G<:Grid}
    grid::G
end

Gridap.Geometry.get_grid(pg::PlotGrid) = pg.grid

setup_color(color::Union{Symbol, Makie.Colorant}, ::Grid) = color

function setup_color(color::AbstractArray, grid::Grid)
    color = if length(color) == num_nodes(grid)
                to_dg_node_values(grid, color)
            elseif length(color) == num_cells(grid)
                to_dg_cell_values(grid, color)
            else
                @unreachable
            end
end

setup_face_color(color::Union{Symbol, Makie.Colorant}, ::Grid, ::Any) = color

function setup_face_color(color::AbstractArray, grid::Grid, face_to_cell)
    color = if length(color) == num_nodes(grid)
                color
            elseif length(color) == num_cells(grid)
                color[face_to_cell]
            else
                @unreachable
            end
end

mesh_theme = Makie.Theme(
        color      = :pink,
        colormap   = :bluesreds,
        shading    = false,
        cycle      = nothing
)

# By merging the default theme for the Mesh type and some attributes whose values we want to impose from mesh_theme
# (in this case: color, colormap, etc.), we may override the current default theme and use our settings.
# Note: Makie.Theme() returns an Attributes type.
function Makie.default_theme(scene,::Type{<:Makie.Mesh{<:Tuple{PlotGrid}}})
    merge!(
        mesh_theme,
        Makie.default_theme(scene, Makie.Mesh)
    )
end

# The lift function is necessary when dealing with reactive attributes or Observables.
function Makie.plot!(plot::Makie.Mesh{<:Tuple{PlotGrid}})
    grid = Makie.lift(get_grid, plot[1])
    D = num_cell_dims(grid[])
    if D in (0,1,2)
      color = Makie.lift(setup_color, plot[:color], grid)
      mesh = Makie.lift(to_plot_dg_mesh, grid)
    elseif D == 3
      face_grid_and_map = Makie.lift(to_face_grid_with_map, grid)
      face_grid = Makie.lift(first, face_grid_and_map)
      face_to_cell = Makie.lift(i->i[2], face_grid_and_map)
      face_color = Makie.lift(setup_face_color, plot[:color], grid, face_to_cell)
      mesh = Makie.lift(m->m|>to_plot_dg_mesh|>GeometryBasics.normal_mesh, face_grid)
      color = Makie.lift(setup_color, face_color, face_grid)
    else
      @unreachable
    end

    # plot.attributes.attributes returns a Dict{Symbol, Observable} to be called by any function.
    # plot.attributes returns an Attributes type.
    if D in (2,3)
        Makie.mesh!(plot, mesh;
            plot.attributes.attributes...,
            color = color,
        )
    elseif D == 1
        Makie.linesegments!(plot, mesh;
            plot.attributes.attributes...,
            color = color,
        )
    elseif D == 0
        Makie.scatter!(plot, mesh;
            plot.attributes.attributes...,
            color = color,
        )
    else
        @unreachable
    end
end

# No need to create discontinuous meshes for wireframe and scatter.
function Makie.convert_arguments(::Type{<:Makie.Wireframe}, pg::PlotGrid)
    grid = get_grid(pg)
    mesh = to_plot_mesh(grid)
    (mesh, )
end

function Makie.convert_arguments(::Type{<:Makie.Scatter}, pg::PlotGrid)
    grid = get_grid(pg)
    node_coords = get_node_coordinates(grid)
    x = map(to_point, node_coords)
    (x, )
end

function Makie.convert_arguments(::Type{<:Makie.Mesh}, trian::Triangulation)
    grid = to_grid(trian)
    (PlotGrid(grid), )
end

function Makie.convert_arguments(t::Type{<:Union{Makie.Wireframe, Makie.Scatter}}, trian::Triangulation)
    grid = to_grid(trian)
    Makie.convert_arguments(t, PlotGrid(grid))
end

# Set default plottype as mesh if argument is type Triangulation, i.e., mesh(Ω) == plot(Ω).
Makie.plottype(::Triangulation) = Makie.Mesh

@Makie.recipe(MeshField) do scene
    merge!(
        mesh_theme,
        Makie.default_theme(scene, Makie.Mesh)
    )
end

# We explicitly set the colorrange property of p to (min, max) of the color provided. Here, when we use mesh(),
# Makie fills the attribute plots of p (p.plots) with the given attributes. Hence, p.plots[1] inherits the colorrange
# of p (this is just to draw colorbars). Another way would be using $ Colorbar(fig[1,2], plt.plots[1]), but quite less
# appealing from the point of view of the user.
function Makie.plot!(p::MeshField{<:Tuple{Triangulation, Any}})
    trian, uh = p[1:2]
    grid_and_data = Makie.lift(to_grid, trian, uh)
    pg = Makie.lift(i->PlotGrid(i[1]), grid_and_data)
    p[:color] = Makie.lift(i->i[2], grid_and_data)
    if p[:colorrange][] === Makie.automatic
        p[:colorrange] = Makie.lift(extrema, p[:color])
    end
    Makie.mesh!(p, pg;
        p.attributes.attributes...
    )
end

Makie.plottype(::Triangulation, ::Any) = MeshField

function Makie.plot!(p::MeshField{<:Tuple{CellField}})
    uh = p[1]
    trian = Makie.lift(get_triangulation, uh)
    grid_and_data = Makie.lift(to_grid, trian, uh)
    pg = Makie.lift(i->PlotGrid(i[1]), grid_and_data)
    p[:color] = Makie.lift(i->i[2], grid_and_data)
    if p[:colorrange][] === Makie.automatic
        p[:colorrange] = Makie.lift(extrema, p[:color])
    end
    Makie.mesh!(p, pg;
        p.attributes.attributes...
    )
end

Makie.plottype(::CellField) = MeshField


text:
function grabzonalstates(file; ghost = 3, startind = 1)
    # ghost should be 3 WENO
    zonalstatistics = jldopen(file)
    tkeys = keys(zonalstatistics["timeseries"]["t"])[1:1]
    t = [zonalstatistics["timeseries"]["t"][tkey] for tkey in tkeys]
    yC = zonalstatistics["grid"]["yC"][ghost+1:end-ghost]
    zC = zonalstatistics["grid"]["zC"][ghost+1:end-ghost]
    yF = zonalstatistics["grid"]["yF"][ghost+1:end-ghost]
    zF = zonalstatistics["grid"]["zF"][ghost+1:end-ghost]
    fields = [:u, :v, :w, :b, :vb, :vv, :wb, :ww]
    for field in fields
        label = string(field)
        @eval $field = mean([zonalstatistics["timeseries"][$label][tkeys[i]][1,:,:] for i in $startind:length(tkeys)])
    end
    close(zonalstatistics)

    vpbp =  average1(vb) - average1(v) .* b
    uz = Δ2(u) ./ reshape((zC[2:end] - zC[1:end-1]), (1, length(zC)-1))
    bz = Δ2(b) ./ reshape((zC[2:end] - zC[1:end-1]), (1, length(zC)-1))
    by = Δ1(b) ./ reshape((yC[2:end] - yC[1:end-1]), (length(yC)-1, 1))
    coriolis = -1e-4 .+ 1e-11 * reshape(yC, (length(yC), 1))
    κ =  -average1(vpbp) ./ by
    ν = coriolis .* average2(vpbp) ./ bz ./ uz

    #bz = sum(bz, dims = 1) ./ size(bz)[1]
    zCA = (zC[2:end] + zC[1:end-1])/2

    states = [eval(field) for field in fields]
    statenames = [string(field) for field in fields]
    units = ["[m/s]", "[m/s]", "[m/s]", "[m/s²]", "[m²/s³]", "[m²/s²]", "[m²/s³]", "[m²/s²]"]
    # bz
    push!(states, bz)
    push!(statenames, "∂ᶻb")
    push!(units, "[1/s²]")

    # by
    push!(states, by)
    push!(statenames, "∂ʸb")
    push!(units, "[1/s²]")

    # v'b'
    push!(states, vpbp)
    push!(statenames, "v'b'")
    push!(units, "[m²/s³]")
    # κ
    push!(states, κ)
    push!(statenames, "κ ≈  v'b' / ∂ʸb")
    push!(units, "[m²/s]")
    # ν
    push!(states, ν)
    push!(statenames, "ν ≈  f v'b' / ∂ᶻb / ∂ᶻu")
    push!(units, "[m²/s]")
    domain = [yF, zF]
    return states, statenames, units, domain
end

max_stars_repo_name: sandreza/Mesoscale

max_issues_repo_name: sandreza/Mesoscale

max_forks_repo_name: sandreza/Mesoscale


text:
# test 3: dest_name, metavar, range_tester, alternative
#         actions

using ArgParse
using Base.Test

function ap_test3(args)

    s = ArgParseSettings("Test 3 for ArgParse.jl")

    @add_arg_table s begin
        "--opt1"
            action = :append_const   # appends 'constant' to 'dest_name'
            arg_type = String
            constant = "O1"
            dest_name = "O_stack"    # this changes the destination
            help = "append O1"
        "--opt2"
            action = :append_const
            arg_type = String
            constant = "O2"
            dest_name = "O_stack"    # same dest_name as opt1, different constant
            help = "append O2"
        "-k"
            action = :store_const    # stores constant if given, default otherwise
            default = 0
            constant = 42
            help = "provide the answer"
        "--awkward-option"
            nargs = '+'                         # eats up as many argument as found (at least 1)
            action = :append_arg                # argument chunks are appended when the option is
                                                # called repeatedly
            dest_name = "awk"
            range_tester = (x->x=="X"||x=="Y")  # each argument must be either "X" or "Y"
            metavar = "XY"
            help = "either X or Y; all XY's are " *
                   "stored in chunks"
    end

    s.exc_handler = (settings, err)->error(err.text)

    parsed_args = parse_args(args, s)
end

@test ap_test3([]) == (String=>Any)["O_stack"=>String[], "k"=>0, "awk"=>Vector{Any}[]]
@test ap_test3(["--opt1", "--awk", "X", "X", "--opt2", "--opt2", "-k", "--awkward-option=Y", "X", "--opt1"]) ==
    (String=>Any)["O_stack"=>String["O1", "O2", "O2", "O1"], "k"=>42, "awk"=>{{"X", "X"}, {"Y", "X"}}]
@test_throws ap_test3(["X"])
@test_throws ap_test3(["--awk", "Z"])