pxfm/bessel/
y0f_coeffs.rs

1/*
2 * // Copyright (c) Radzivon Bartoshyk 7/2025. All rights reserved.
3 * //
4 * // Redistribution and use in source and binary forms, with or without modification,
5 * // are permitted provided that the following conditions are met:
6 * //
7 * // 1.  Redistributions of source code must retain the above copyright notice, this
8 * // list of conditions and the following disclaimer.
9 * //
10 * // 2.  Redistributions in binary form must reproduce the above copyright notice,
11 * // this list of conditions and the following disclaimer in the documentation
12 * // and/or other materials provided with the distribution.
13 * //
14 * // 3.  Neither the name of the copyright holder nor the names of its
15 * // contributors may be used to endorse or promote products derived from
16 * // this software without specific prior written permission.
17 * //
18 * // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
19 * // AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
20 * // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
21 * // DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
22 * // FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
23 * // DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
24 * // SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
25 * // CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
26 * // OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
27 * // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
28 */
29
30/**
31Y0 zeros and extremums.
32Generated by SageMath:
33```python
34R120 = RealField(120)
35
36zeros = []
37
38mp.prec = 150
39
40step = mpf("0.1")
41epsilon = mpf("1e-35")
42x = mpf("1.25")
43
44previous_zero = R120(0)
45y0_zeros = []
46
47while x < mpf("76.0"):
48    f1 = bessely(0, x)
49    f2 = bessely(0, x + step)
50    if f1 * f2 < 0:
51        zero = findroot(lambda t: bessely(0, t), (x, x + step), solver='secant', tol=mp.mpf("1e-41"))
52        previous_zero = zero
53        y0_zeros.append(zero)
54    if previous_zero is not None and abs(x - mpf(f'{round(x)}')) < epsilon:
55        zeros.append(previous_zero)
56    x += step
57
58y0_extrema = []
59
60x = mpf("1.25")
61while x < mpf("76.0"):
62    d1 = mp.diff(lambda t: bessely(0, t), x)
63    d2 = mp.diff(lambda t: bessely(0, t), x + step)
64    if d1 * d2 < 0:
65        extremum = findroot(lambda t: mp.diff(lambda u: bessely(0, u), t), (x, x + step), solver='secant', tol=mp.mpf("1e-41"))
66        y0_extrema.append(extremum)
67    x += step
68
69# Print results
70for i, z in enumerate(j0_zeros):
71    print(f"Zero {i+1}: x ≈ {z}")
72
73print("Extrema (peaks/valleys) of Y0(x):")
74for e in y0_extrema:
75    print(f"nExtrema: {e}")
76
77y0_zeros.extend(y0_extrema)
78
79y0_zeros = sorted(y0_zeros)
80
81# Print results
82for i, z in enumerate(y0_zeros):
83    print(f"Peak or zero {i+1}: x ≈ {z}")
84
85print("")
86
87print("pub(crate) static Y0_ZEROS: [(u64, u64); 48] = [")
88print(f"(0x0, 0x0),")
89for z in y0_zeros:
90    k = split_double_double(z)
91    hi = double_to_hex(k[1])
92    lo = double_to_hex(k[0])
93    print(f"({lo}, {hi}),")
94
95print("];")
96```
97**/
98pub(crate) static Y0_ZEROS: [(u64, u64); 48] = [
99    (0x0, 0x0), // not really used, just a stab to avoid messing with indices
100    (0xbc8bd1e50d219bfd, 0x400193bed4dff243),
101    (0xbc9f06ae7804384e, 0x400fa9534d98569c),
102    (0x3cbdfe7bac228e8c, 0x4015b7fe4e87b02e),
103    (0xbc99774a495f56cf, 0x401c581dc4e72103),
104    (0x3cb479cc068d9046, 0x40213127ae6169b4),
105    (0xbcccb49ff791c495, 0x402471d735a47d58),
106    (0x3c80fc786ce06080, 0x40277f9138d43206),
107    (0xbcc7df81de86f24d, 0x402ab8e1c4a1e74a),
108    (0xbcc5e091a50f8e05, 0x402dcb7d88de848b),
109    (0x3cd25a237d12159b, 0x4030803c74003214),
110    (0xbcda1ee4c5487ede, 0x40320b1c695f1e3b),
111    (0xbcd8bf92d51fbaeb, 0x4033a42cdf5febd7),
112    (0x3cd391b14410528f, 0x40353025492188cd),
113    (0x3cdca75080cf53a8, 0x4036c832fd77ac07),
114    (0x3cb52f75f025b205, 0x403854fa303820ca),
115    (0xbcb03e052bd9c0af, 0x4039ec46f3e80146),
116    (0xbcbcf130fbea3b24, 0x403b79acee8cfb7d),
117    (0x3cd0aab17eca74b9, 0x403d106449616c4f),
118    (0xbc9e7a77047d6166, 0x403e9e480605283c),
119    (0x3ced2f18aa8a8f2f, 0x40401a4420e4abee),
120    (0xbce96beabef7ecf4, 0x4040e16907f8fb56),
121    (0xbca9dd1578036d11, 0x4041ac588c944279),
122    (0x3cd2481e87adfe57, 0x404273a7b35a7aff),
123    (0xbce9c3dd43e59158, 0x40433e6ecf5cb221),
124    (0x3cda8ffacaac8461, 0x404405e18393afb5),
125    (0xbce753b7fcd5250c, 0x4044d0867ec213f3),
126    (0x3cbfe463face2c1c, 0x4045981787d668db),
127    (0x3cec2eb6ee3e4c70, 0x4046629f4e1e0321),
128    (0xbce26390f25f01cb, 0x40472a4a85cc317e),
129    (0xbcaafdee84ced526, 0x4047f4b904dc9a53),
130    (0xbcdcc667e557a177, 0x4048bc7b10ed3960),
131    (0x3cebbca9a96dc1aa, 0x404986d378522b70),
132    (0x3cb377717d2f36f7, 0x404a4ea9997b5eaa),
133    (0xbcedf185c89a4066, 0x404b18ee87b4e700),
134    (0xbcc68a841a2af000, 0x404be0d6766d13de),
135    (0x3ced8a878e90eda4, 0x404cab0a1968b221),
136    (0x3cddcc8dd083c434, 0x404d7301ec2bf16e),
137    (0xbceb5c58b22794af, 0x404e3d2619226875),
138    (0xbce5919b54336657, 0x404f052c3146d1da),
139    (0xbc87b54cc765fd11, 0x404fcf4276983013),
140    (0xbcf389f975d9dfa2, 0x40504baab8e42f8f),
141    (0xbce195534d06b08a, 0x4050b0af92483bf5),
142    (0xbcd4e0ffa0b9d2e9, 0x405114bee8d0f4bd),
143    (0xbcf1c076cb371565, 0x405179be0c18f0e1),
144    (0x3cf5d0de43102daa, 0x4051ddd2b7398636),
145    (0xbce8a4f19e47d0be, 0x405242cca44048f8),
146    (0x3ceb379dbe48b8f5, 0x4052a6e6306f1d08),
147];
148
149/**
150Zeros and extremums solved values for Y0
151
152Generated by MPFR:
153```text
154let mut arr = vec![];
155for zeros in Y0_ZEROS.iter() {
156    if zeros.1 == 0 {
157        arr.push(0);
158    } else {
159        let mpfr = Float::with_val(107, f64::from_bits(zeros.1)).y0();
160        arr.push(mpfr.to_f64().to_bits());
161    }
162}
163println!(
164    "arr: [{}]",
165    arr.iter()
166        .map(|x| format!("0x{:016x}", x))
167        .collect::<Vec<_>>()
168        .join(", ")
169);
170```
171**/
172pub(crate) static Y0_ZEROS_VALUES: [u64; 48] = [
173    0x0000000000000000,
174    0x3fe0aa48442f014b,
175    0xbc88fa8956b4b481,
176    0xbfd5c7c556f0c19a,
177    0x3c7e91b198d39ce2,
178    0x3fd15f993fceab5c,
179    0xbcacabd7c823bf21,
180    0xbfcdc14ea14e89f9,
181    0x3ca4d9fe48a91cef,
182    0x3fca7022be084d99,
183    0x3cacd827f6c074a2,
184    0xbfc80781c32422e7,
185    0x3cb1d336c8b0a153,
186    0x3fc62d94d97e859c,
187    0x3cb3296749aaf800,
188    0xbfc4b2a38f1ab9b4,
189    0x3c845d52c7c075b2,
190    0x3fc37aaceac987b9,
191    0x3ca3bc249963d4c1,
192    0xbfc2740819f1caaa,
193    0xbcc069eacea8ff0b,
194    0x3fc192f2627a74e3,
195    0xbc7bc4fd81e2b2c5,
196    0xbfc0cf3ee98f769b,
197    0x3cba82b3a8997d82,
198    0x3fc0230ba90f2871,
199    0xbcb71414f52d813b,
200    0xbfbf13fb0c0e6fcd,
201    0xbcbae2d399eafcc6,
202    0x3fbe018dac1c17e3,
203    0xbc78e44442565953,
204    0xbfbd09b21e36c0bd,
205    0xbcb8c779e4075b10,
206    0x3fbc2861347b1b39,
207    0xbcb9f6a4816aab2e,
208    0xbfbb5a622198a72c,
209    0xbcb8e727b71a083d,
210    0x3fba9d183bc04545,
211    0xbcb67533047d83fb,
212    0xbfb9ee5eee1a97c6,
213    0x3c52f9257b962770,
214    0x3fb94c6f5898708b,
215    0xbcab7916830bd3b8,
216    0xbfb8b5ccb03d459b,
217    0x3cbb1b180f8e9062,
218    0x3fb829356c2fb67c,
219    0xbcb267f22477b55d,
220    0xbfb7a597eb76a5e3,
221];
222
223/**
224Taylor series at different zeros and extremums for Y0
225Generated by SageMath:
226```python
227def compute_intervals(zeros):
228    intervals = []
229    for i in range(0, len(zeros)):
230        if i == 0:
231            a = 2 - zeros[i]
232            b = (zeros[i] + zeros[i + 1]) / 2 + 0.05 - zeros[i]
233            intervals.append((RealField(18)(a), RealField(18)(b), RealField(110)(zeros[i])))
234        elif i + 1 > len(zeros) - 1:
235            a = (zeros[i - 1] + zeros[i]) / 2 - 0.05 - zeros[i]
236            b = (zeros[i]) + 0.83 + 0.05 - zeros[i]
237            intervals.append((RealField(18)(a), RealField(18)(b), RealField(110)(zeros[i])))
238        else:
239            a = (zeros[i - 1] + zeros[i]) / 2 - zeros[i] - 0.05
240            b = (zeros[i] + zeros[i + 1]) / 2 + 0.05  - zeros[i]
241            intervals.append((RealField(18)(a), RealField(18)(b), RealField(110)(zeros[i])))
242    return intervals
243
244intervals = compute_intervals(y0_zeros)
245print(intervals)
246
247def build_sollya_script(a, b, zero, deg):
248    return f"""
249prec = 500;
250bessel_y0 = library("./notes/bessel_sollya/cmake-build-release/libbessel_sollya.dylib");
251f = bessel_y0(x + {zero});
252d = [{a}, {b}];
253pf = remez(f, {deg}, d);
254for i from 0 to degree(pf) do {{
255    write(coeff(pf, i)) >> "coefficients.txt";
256    write("\\n") >> "coefficients.txt";
257}};
258"""
259
260def load_coefficients(filename):
261    with open(filename, "r") as f:
262        return [RR(line.strip()) for line in f if line.strip()]
263
264def call_sollya_on_interval(a, b, zero, degree=12):
265    sollya_script = build_sollya_script(a, b, zero, degree)
266    with open("tmp_interval.sollya", "w") as f:
267        f.write(sollya_script)
268    import subprocess
269    if os.path.exists("coefficients.txt"):
270        os.remove("coefficients.txt")
271    try:
272        result = subprocess.run(
273            ["sollya", "tmp_interval.sollya"],
274            check=True,
275            capture_output=True,
276            text=True
277        )
278    except subprocess.CalledProcessError as e:
279        return
280
281degree = 17
282
283print(f"pub(crate) static Y0F_COEFFS: [[u64;{degree + 1}]; {len(intervals)}] = [")
284for i in range(0, len(intervals)):
285    interval = intervals[i]
286    call_sollya_on_interval(interval[0], interval[1], interval[2], degree)
287    coeffs = load_coefficients(f"coefficients.txt")
288    print("[")
289    for c in coeffs:
290        print(double_to_hex(c) + ",")
291    print("],")
292print("];")
293```
294**/
295pub(crate) static Y0F_COEFFS: [[u64; 18]; 47] = [
296    [
297        0x3fe0aa48442f014b,
298        0xbc009e915c2e5f95,
299        0xbfd0aa48442f0143,
300        0x3fa439fac165257c,
301        0x3f80d2af4e929791,
302        0x3f4f71646c0dc646,
303        0xbf5444bda7f2ee4c,
304        0x3f384c21f1d0de42,
305        0xbf217ab4d69ab0db,
306        0x3f0dafc989c8ea40,
307        0xbef8bbefbac0d893,
308        0x3ee48ac7a622784f,
309        0xbed1245593770ad0,
310        0x3ebc28878607b687,
311        0xbea585c089718cc9,
312        0x3e8b7ad75bd333d8,
313        0xbe68a20d8d3d57a5,
314        0x3e362c70b36d12a4,
315    ],
316    [
317        0x3bf75cf88f1b7237,
318        0xbfd9c34256a12a0c,
319        0x3faa09c9290367ec,
320        0x3fadf6d59bf50e4b,
321        0xbf7c116fdc597e2f,
322        0xbf61e32bc4eef0b0,
323        0x3f29982765136b27,
324        0x3f0ab2c1fd5871c0,
325        0xbed486371d6e71eb,
326        0xbe93b212b9208b3e,
327        0xbe577700c20e01fd,
328        0x3e545234fb052f6a,
329        0xbe2f6a5f736d8c82,
330        0x3e0a8134a3ddd47f,
331        0xbde9666a74f1504a,
332        0x3dc63b75b90c0da3,
333        0xbdaa991122c61028,
334        0x3d930f1a31e30006,
335    ],
336    [
337        0xbfd5c7c556f0c19a,
338        0xbbc44b457ab6a440,
339        0x3fc5c7c556f0c19a,
340        0xbf8564d4b1ed0d7e,
341        0xbf8a15d92dfe3e28,
342        0x3f4b438430469f6e,
343        0x3f37a8924cc2fcab,
344        0xbef5f69b4a89930d,
345        0xbed85b940ebd0c07,
346        0x3e955ac0f4e7f8ab,
347        0x3e6d563e284b0072,
348        0xbe23eac267e6cf3c,
349        0xbe00077161c32b55,
350        0x3dc04d965b688847,
351        0xbd45e4f4886f7d51,
352        0x3d5501605dba787a,
353        0xbd363e6119f047ec,
354        0x3d096861e7e8004b,
355    ],
356    [
357        0xbb236a0ad5bec7c3,
358        0x3fd334cca0697a5b,
359        0xbf95aef611fc4d57,
360        0xbfa8969c64cbf452,
361        0x3f6b2f14a95527cb,
362        0x3f61d35e85fde2a4,
363        0xbf226dd71e391c65,
364        0xbf08177e4fe524db,
365        0x3ec6a9227352b13b,
366        0x3ea34aa757412911,
367        0xbe60a2814d2e238a,
368        0xbe3442a3d67717ae,
369        0x3defa6c448c9759c,
370        0x3dbf14eacd6e3a21,
371        0xbd771434b676ae83,
372        0xbd406a106470261f,
373        0x3cf2c5324aed291b,
374        0x3cc47f208256e17f,
375    ],
376    [
377        0x3fd15f993fceab5c,
378        0xbb597aaa5d4472ea,
379        0xbfc15f993fceab5c,
380        0x3f758ef6efbed797,
381        0x3f86395dfe49fcd4,
382        0xbf3fb15104a41c03,
383        0xbf35f88a11d55641,
384        0x3eef37d226a827fd,
385        0x3ed6f7bab104d878,
386        0xbe8f0c45a3868f32,
387        0xbe6dfe11ded99f62,
388        0x3e2311adc6046d1a,
389        0x3dfad34dd085ee0f,
390        0xbdafdc85833041dc,
391        0xbd819463fb6a5c22,
392        0x3d33a4c369438250,
393        0x3d014560b8776112,
394        0xbcb2ae15d3a41e47,
395    ],
396    [
397        0x3b12ba7db6ce5807,
398        0xbfcff635cc72b9f1,
399        0x3f89036451ff57c5,
400        0x3fa4e667a71556af,
401        0xbf60325ee41e910c,
402        0xbf5fe23914fb9128,
403        0x3f17f84d7c50e49e,
404        0x3f06afdd57be1e75,
405        0xbec04053abf415e2,
406        0xbea2aea9ec4954d7,
407        0x3e593eb9f19579b5,
408        0x3e3428a3a4917f21,
409        0xbde99d8be9e4cd5a,
410        0xbdbec9815ee61f19,
411        0x3d7260f619cb637c,
412        0x3d418f963ce687db,
413        0xbcf38a6e7195daa0,
414        0xbcbf332d386dfb1b,
415    ],
416    [
417        0xbfcdc14ea14e89f9,
418        0x3b52ef4e10970973,
419        0x3fbdc14ea14e89f9,
420        0xbf6b037fe9cf2a52,
421        0xbf8367d7d608e4ba,
422        0x3f34abef5636e4f9,
423        0x3f33d8a66122924a,
424        0xbee5cfe92a1a2ead,
425        0xbed571814a1a8669,
426        0x3e87414e33ccd6d7,
427        0x3e6ca7069e37c5b4,
428        0xbe1e0b3a74e3f35e,
429        0xbdfa15dd188a976e,
430        0x3daa33983e3b34b5,
431        0x3d8141656fbf9e02,
432        0xbd3089bd5153b08a,
433        0xbd01345e91fc8d5c,
434        0x3cb05566655c2807,
435    ],
436    [
437        0xbb10bed1f7905ee9,
438        0x3fcbf32a27594007,
439        0xbf80bc2d84e65214,
440        0xbfa26cab38a8b368,
441        0x3f55f03e47165d72,
442        0x3f5caaa76e34992d,
443        0xbf10c5f18c46d00f,
444        0xbf04f0af7d46cd82,
445        0x3eb7d1e28094a46b,
446        0x3ea1ad073122cd33,
447        0xbe536021c88affe4,
448        0xbe3371ae6cd96849,
449        0x3de46ce028e7c109,
450        0x3dbe235dc856ef66,
451        0xbd6e401d592ca47a,
452        0xbd415f37788a98a4,
453        0x3cf078a1b34fa822,
454        0x3cbefbc3ca8cda9f,
455    ],
456    [
457        0x3fca7022be084d99,
458        0xbb4ddca3665cb95a,
459        0xbfba7022be084d99,
460        0x3f62ee079d020b12,
461        0x3f8163191c30aa62,
462        0xbf2d7806ea72fc7a,
463        0xbf320f95702b1d3e,
464        0x3ee006108822968d,
465        0x3ed3e398cbc455aa,
466        0xbe81bbe181c8bfbe,
467        0xbe6b0f89b78908bf,
468        0x3e17c3f85c062f0a,
469        0x3df902361639d835,
470        0xbda56494e7b59641,
471        0xbd80bde23236fbba,
472        0x3d2bbbd3bb25cf30,
473        0x3d00d7f96ac5af92,
474        0xbcabe3861f527a48,
475    ],
476    [
477        0x3b0d39acdbc38af2,
478        0xbfc925c35988ee29,
479        0x3f7862549367591e,
480        0x3fa0a4512039d6a2,
481        0xbf5013b38cfb9292,
482        0xbf5a24a1215f6684,
483        0x3f08f91421377f72,
484        0x3f035d17cec01753,
485        0xbeb2283a93110ac0,
486        0xbea099e713932038,
487        0x3e4e5de01dbe7d10,
488        0x3e3288585522eec4,
489        0xbde0730be51a22c7,
490        0xbdbd174416e1daeb,
491        0x3d68f810d9b70d7c,
492        0x3d40f177553ea68b,
493        0xbcebc58c79d9f1a6,
494        0xbcbe6305e9d630f0,
495    ],
496    [
497        0xbfc80781c32422e7,
498        0x3b483f69e003254a,
499        0x3fb80781c32422e7,
500        0xbf5c6923374d561f,
501        0xbf7fbe6df840847f,
502        0x3f264f4711a85f1d,
503        0x3f309ff42b0d7a58,
504        0xbed8a60685a59ae7,
505        0xbed282d26a74a669,
506        0x3e7bdb57a88d9298,
507        0x3e697d9c12695952,
508        0xbe131aa86bece7b9,
509        0xbdf7d486a4891297,
510        0x3da197f4a31bb9d7,
511        0x3d801da2d1e74508,
512        0xbd2749f32e6b29e4,
513        0xbd005a3044bf379a,
514        0x3ca7cdb1346a2761,
515    ],
516    [
517        0xbb095b0f9cce8be6,
518        0x3fc70c4f66cab47f,
519        0xbf72c6731071e936,
520        0xbf9e924b85a17361,
521        0x3f48d6c364d92082,
522        0x3f58247b02d6b0f6,
523        0xbf037612593855eb,
524        0xbf0206da232a2b7e,
525        0x3eacaf84db86b79e,
526        0x3e9f367117733794,
527        0xbe48654affaeff8a,
528        0xbe3199ec88cf0125,
529        0x3ddaeb1a0e170f3e,
530        0x3dbbe67c38767c0a,
531        0xbd64cda59f058a2d,
532        0xbd406490f1401c35,
533        0x3ce7873ddbd2ecb8,
534        0x3cbd9254c745332c,
535    ],
536    [
537        0x3fc62d94d97e859c,
538        0xbb4423d84fd9daf1,
539        0xbfb62d94d97e859c,
540        0x3f565481b55eaefb,
541        0x3f7d5f857a2a6107,
542        0xbf21a015a2ccb791,
543        0xbf2eeb4eafd8612c,
544        0x3ed3a7b79e4d8384,
545        0x3ed154ed4598b648,
546        0xbe767f762ea5d48d,
547        0xbe680ec1e0075865,
548        0x3e0f52965769de53,
549        0x3df6ad7b894b88a3,
550        0xbd9d4e5bf81e66fd,
551        0xbd7eeb07104d446e,
552        0x3d23b37b411dc13d,
553        0x3cff991c92fdc4d8,
554        0xbca4681dcbe602f7,
555    ],
556    [
557        0x3b0608e1eb7299ca,
558        0xbfc5664d37c37d7b,
559        0x3f6e0ee8ec84659a,
560        0x3f9c6c415c971b4b,
561        0xbf43ec49cb941f55,
562        0xbf56853b2d047885,
563        0x3eff632a9396fcf6,
564        0x3f00e6afa01af56c,
565        0xbea7541247ac8e20,
566        0xbe9d735e8beba89d,
567        0x3e440e6a7c5b76f7,
568        0x3e30b9cfae36d52a,
569        0xbdd66808178f0472,
570        0xbdbab498e9ad024c,
571        0x3d618b0d40031fb2,
572        0x3d3f99bd1527877f,
573        0xbce4186fe1076e16,
574        0xbcbca6e4a9f85609,
575    ],
576    [
577        0xbfc4b2a38f1ab9b4,
578        0x3b4106370f2ef866,
579        0x3fb4b2a38f1ab9b4,
580        0xbf5225a5c73f2233,
581        0xbf7b750d89a9b35f,
582        0x3f1cbdb4f1d5dbc0,
583        0x3f2cfe933fc6d09a,
584        0xbed01ef10d839ddf,
585        0xbed05375a5888b31,
586        0x3e729afe7eaa78e7,
587        0x3e66c8fe01244a3c,
588        0xbe0a2a01eba23e6a,
589        0xbdf59b32be188f85,
590        0x3d98c0a83d3ee202,
591        0x3d7da2dd5a1ff0d5,
592        0xbd20d5047e87a8a0,
593        0xbcfe76ab94a96cf5,
594        0x3ca19e4f3f768bb8,
595    ],
596    [
597        0xbb033ddc20ef994b,
598        0x3fc40f8ffdf09a5f,
599        0xbf68c37a29c4586f,
600        0xbf9aab099314b209,
601        0x3f406f735cc0f6a6,
602        0x3f552d29a06802e0,
603        0xbef9fc04c675c0a0,
604        0xbeffe48825ed3c99,
605        0x3ea36bd2d58fad6c,
606        0x3e9be87e2cad35c1,
607        0xbe40d1fded7d33ea,
608        0xbe2fdbeb107f2787,
609        0x3dd2f44ca7722117,
610        0x3db992136419242c,
611        0xbd5df6388aabd242,
612        0xbd3e6bd4176ef817,
613        0x3ce15380b88a0004,
614        0x3cbbb4210e2ade39,
615    ],
616    [
617        0x3fc37aaceac987b9,
618        0xbb3d355a175fbb67,
619        0xbfb37aaceac987b9,
620        0x3f4e3fdbfd65014a,
621        0x3f79de7a33bc3a97,
622        0xbf1801d911fbd06f,
623        0xbf2b605a5ade3a62,
624        0x3ecb0a2608144de7,
625        0x3eceeceb341aa1c8,
626        0xbe6f623fc7c35376,
627        0xbe65a9ca94685dee,
628        0x3e0638ba32c100f7,
629        0x3df4a1b3dc97031d,
630        0xbd9530c9cb91ec68,
631        0xbd7c6deff6c29a1e,
632        0x3d1d10f27ed0d91c,
633        0x3cfd5b5110a971f2,
634        0xbc9eac069b193638,
635    ],
636    [
637        0x3b00e83df01ac491,
638        0xbfc2f206e49909c7,
639        0x3f64dbf6a9fb80d7,
640        0x3f99336443318ed1,
641        0xbf3bb6aa3d4e9e78,
642        0xbf540aaa5d94bd8d,
643        0x3ef5f61b66612962,
644        0x3efe4158391f2c2d,
645        0xbea07a7a0745b8f1,
646        0xbe9a8ea97b66fe4d,
647        0x3e3cb10b3a7e93b8,
648        0x3e2e6d788791546c,
649        0xbdd044442a2af39d,
650        0xbdb8850c7d8525ad,
651        0x3d59e48a6e2fcf83,
652        0x3d3d4af5e70dabe3,
653        0xbcde2a65241d7e39,
654        0xbcbac578a90cdb0d,
655    ],
656    [
657        0xbfc2740819f1caaa,
658        0x3b395de3b03fa760,
659        0x3fb2740819f1caaa,
660        0xbf49b6f37d0a00f9,
661        0xbf78868d7401bf2e,
662        0x3f1470a7cbcb436d,
663        0x3f29fe94ce3d3e66,
664        0xbec71660e61f123b,
665        0xbecd6dfcdb022b53,
666        0x3e6ae79c35d4303c,
667        0x3e64ac50be35d108,
668        0xbe0325840c0fab26,
669        0xbdf3c09642eaf47d,
670        0x3d925d87f4bac822,
671        0x3d7b50337a12ad98,
672        0xbd195a5cf071931d,
673        0xbcfc4e3bdd8deb9e,
674        0x3c9aec36c7cd8057,
675    ],
676    [
677        0xbafde3378387cd4f,
678        0x3fc1ff5ebddd3c3a,
679        0xbf61e2035324643c,
680        0xbf97f3506d4a1231,
681        0x3f37c65c9302c53a,
682        0x3f53117816335151,
683        0xbef2df9afa521258,
684        0xbefcd5d4a9d78a10,
685        0x3e9c672d4d6f090d,
686        0x3e995e4b10218b56,
687        0xbe38d22635a19a7c,
688        0xbe2d24fc943fc6e5,
689        0x3dcc462d12216cc2,
690        0x3db78eaf8cc86453,
691        0xbd569efa1b265a8d,
692        0xbd3c3c11b66258b3,
693        0x3cda808e4f387067,
694        0x3cb9e0f8deb75911,
695    ],
696    [
697        0x3fc192f2627a74e3,
698        0xbb3645a3987074b0,
699        0xbfb192f2627a74e3,
700        0x3f4635b38affe698,
701        0x3f775eceaabf7f86,
702        0xbf11ac9e0164f7c3,
703        0xbf28cc464a35b093,
704        0x3ec4014d9bf38c8d,
705        0x3ecc1f05a2d81e1e,
706        0xbe6761d18ebe9900,
707        0xbe63cb9af0ceb4cf,
708        0x3e00b3cb584e2702,
709        0x3df2f5c722e3bf8d,
710        0xbd9017792eaec1aa,
711        0xbd7a4a02574df6fb,
712        0x3d1652dad940d7a4,
713        0x3cfb525fce2f20bd,
714        0xbc97d2bda2bb98bd,
715    ],
716    [
717        0x3afa988afe4c49f9,
718        0xbfc12dd55d4be2b3,
719        0x3f5f1aee31818d19,
720        0x3f96de64242a8310,
721        0xbf34afdf89fca61a,
722        0xbf5238cfc13ac771,
723        0x3ef0719d13e00e1d,
724        0x3efb974781a526ac,
725        0xbe98cc82a70d12de,
726        0xbe9850ae878c16d4,
727        0x3e35bba73dc2363a,
728        0x3e2bfe1396c7d24f,
729        0xbdc8d7db68570364,
730        0xbdb6adfbad375234,
731        0x3d53f4c573239e3d,
732        0x3d3b40924b9cec60,
733        0xbcd77b88ddf3cd06,
734        0xbcb909671eb81963,
735    ],
736    [
737        0xbfc0cf3ee98f769b,
738        0x3b33bcff5c943527,
739        0x3fb0cf3ee98f769b,
740        0xbf436f451f6e14fb,
741        0xbf765d05948a946a,
742        0x3f0ef55c5a0d16d1,
743        0x3f27bfec9d15d01e,
744        0xbec18c549f28e7a1,
745        0xbecaf7544eea95a1,
746        0x3e648e81edf6b6c0,
747        0x3e630341e759775f,
748        0xbdfd73d2cdd0aab5,
749        0xbdf23ec233be72a4,
750        0x3d8c78e7f536eeff,
751        0x3d795a1608a24a32,
752        0xbd13d34748616c7a,
753        0xbcfa685ede39fb91,
754        0x3c953d75ba0ff04b,
755    ],
756    [
757        0xbaf7d336e374344e,
758        0x3fc0768257dad56a,
759        0xbf5b602a7beaaa48,
760        0xbf95ebc22efd092c,
761        0x3f3236a604142e61,
762        0x3f517a482faa8d85,
763        0xbeecfc008907874e,
764        0xbefa7d7b128ac52d,
765        0x3e95e419f1b51819,
766        0x3e97603cea233f99,
767        0xbe333a0b43111627,
768        0xbe2af464175ecac5,
769        0x3dc609ac1d6253eb,
770        0x3db5e11b59984046,
771        0xbd51c2262e85ed55,
772        0xbd3a58213539aed8,
773        0x3cd4f80a679b93ee,
774        0x3cb83fa375444bd0,
775    ],
776    [
777        0x3fc0230ba90f2871,
778        0xbb31a4207958473d,
779        0xbfb0230ba90f2871,
780        0x3f413164a0864cde,
781        0x3f7579c1bdbcfc99,
782        0xbf0b67e1913c668f,
783        0xbf26d26de4fd8c43,
784        0x3ebf1b520b063cbf,
785        0x3ec9f01e7c18d94a,
786        0xbe624071b17c353c,
787        0xbe624f8e936aca3d,
788        0x3dfa356639a676b4,
789        0x3df19911d0412ad5,
790        0xbd89677525aa079f,
791        0xbd787e875d392b57,
792        0x3d11be245f9c21d5,
793        0x3cf98faabb17d8d4,
794        0xbc93119ed524d1f5,
795    ],
796    [
797        0x3af57b2a92bacca4,
798        0xbfbfa8b3f9ae4375,
799        0x3f5856073b7fa2cd,
800        0x3f9514e652eb2e96,
801        0xbf3032298718ea1a,
802        0xbf50d1153fde431b,
803        0x3ee9cb455c29d651,
804        0x3ef982167b1c52b5,
805        0xbe938191ef689b27,
806        0xbe968865345b1bd6,
807        0x3e31296000bb210d,
808        0x3e2a0403677632fc,
809        0xbdc3b67c5c27ec16,
810        0xbdb526035aeb726c,
811        0x3d4fd977f75a677c,
812        0x3d398199969ac0ac,
813        0xbcd2db2724a8c540,
814        0xbcb7838b8a136198,
815    ],
816    [
817        0xbfbf13fb0c0e6fcd,
818        0x3b2fb8a657120d32,
819        0x3faf13fb0c0e6fcd,
820        0xbf3eb3e6fcc47c00,
821        0xbf74af74cbd77bef,
822        0x3f087bb1ebeaec78,
823        0x3f25fe62920314f5,
824        0xbebbd0f2a6556264,
825        0xbec9040de83035a2,
826        0x3e6057f7a76c1f7c,
827        0x3e61ad6dd4dfaab9,
828        0xbdf782a6f91b13a7,
829        0xbdf1027d851ec0eb,
830        0x3d86d65e028f8e8e,
831        0x3d77b54a61df8d64,
832        0xbd0ffa6793d8746b,
833        0xbcf8c72862ef4d7d,
834        0x3c913a3849824cc1,
835    ],
836    [
837        0xbaf37825e4b1711a,
838        0x3fbe8727c572a2c2,
839        0xbf55d1ef092ab395,
840        0xbf9454e7a7395636,
841        0x3f2d0cc3a7fa6d3d,
842        0x3f50398d2cbd02df,
843        0xbee725b0909f9c17,
844        0xbef8a022f5fee439,
845        0x3e9185b1ea975d21,
846        0x3e95c5711673ea6a,
847        0xbe2edff650b86504,
848        0xbe29298da3993db9,
849        0x3dc1c346aaab062e,
850        0x3db47ab8b9f6e94a,
851        0xbd4cc1c87cd4af9d,
852        0xbd38bb86b43ec34d,
853        0x3cd1104df3fa9e99,
854        0x3cb6d47888429c17,
855    ],
856    [
857        0x3fbe018dac1c17e3,
858        0xbb2cbf68b5ed7271,
859        0xbfae018dac1c17e3,
860        0x3f3ba21bd15d02a4,
861        0x3f73f9e0db07e7ef,
862        0xbf060b77c5e27625,
863        0xbf253f9b1a5d2273,
864        0x3eb910b38812c5ec,
865        0x3ec82ee6dfdfc034,
866        0xbe5d7cc2a9aa9fae,
867        0xbe611a57d834f490,
868        0x3df53d401868b2b6,
869        0x3df07915b5d7b1b9,
870        0xbd84aabf5e11aa97,
871        0xbd76fc66f73ce419,
872        0x3d0cff2a096a9861,
873        0x3cf80d87c580ea09,
874        0xbc8f4ef03ad4ec66,
875    ],
876    [
877        0x3af1bbdf10c72747,
878        0xbfbd82939ab62339,
879        0x3f53b5a54845670f,
880        0x3f93a7ff1622def8,
881        0xbf2a3ebc476a606d,
882        0xbf4f61adde3a8c61,
883        0x3ee4ec45da047869,
884        0x3ef7d3b28159f22c,
885        0xbe8fb3f21bccfc28,
886        0xbe95145a876d09d8,
887        0x3e2bf64cdef37a7c,
888        0x3e2862204a96b8ac,
889        0xbdc01c0cf54f6b8d,
890        0xbdb3dd6c7e6818d8,
891        0x3d4a1faa7e189d99,
892        0x3d3804640c4d999d,
893        0xbccf0f5eda690a07,
894        0xbcb63189b3dc27d0,
895    ],
896    [
897        0xbfbd09b21e36c0bd,
898        0x3b2a335791a61ca6,
899        0x3fad09b21e36c0bd,
900        0xbf390b0e6a475e45,
901        0xbf7355b904fbf7ee,
902        0x3f03fc459d1e25a7,
903        0x3f2492cc61d19de6,
904        0xbeb6bcf110a02e19,
905        0xbec76d44f6a8089e,
906        0x3e5ac61efcb7f75f,
907        0x3e609436fc7c1966,
908        0xbdf34eb60c63b887,
909        0xbdeff662240b32ed,
910        0x3d82d05e647447d5,
911        0x3d76520ffbea05d6,
912        0xbd0a70b3d6b77e3f,
913        0xbcf7617161d2567e,
914        0x3c8c991bfcf38c32,
915    ],
916    [
917        0xbaf03b145709e9fb,
918        0x3fbc96700031f601,
919        0xbf51eb2a07d0f09e,
920        0xbf930b36eddaa234,
921        0x3f27dd2dde84b73c,
922        0x3f4e696553e0b8a5,
923        0xbee3085aa35a1606,
924        0xbef7199f24bccad0,
925        0x3e8cdbab6a75e8e1,
926        0x3e9472a7cffbdf8d,
927        0xbe2979f5209f2f88,
928        0xbe27ab4b017a68c3,
929        0x3dbd638fb5c45254,
930        0x3db34c83c71aa648,
931        0xbd47dc91892a3240,
932        0xbd375abc2b119f77,
933        0x3ccc6a16f48d942f,
934        0x3cb599c2db65d50c,
935    ],
936    [
937        0x3fbc2861347b1b39,
938        0xbb27f93aa95d7811,
939        0xbfac2861347b1b39,
940        0x3f36d57bffb37fd5,
941        0x3f72c060ef553f18,
942        0xbf023a407b722d31,
943        0xbf23f55581ec6826,
944        0x3eb4bfb4daa30262,
945        0x3ec6bc69099ac792,
946        0xbe587334098baabf,
947        0xbe601951f000356a,
948        0x3df1a61752a7a337,
949        0x3def0ec9ee45cf6f,
950        0xbd8137cd564b9118,
951        0xbd75b4aa3b6c601b,
952        0x3d083b040a6d9f05,
953        0x3cf6c19bd64bc967,
954        0xbc8a3eded96f75bf,
955    ],
956    [
957        0x3aedd70a3afed493,
958        0xbfbbbf246019c0d4,
959        0x3f506224199140d8,
960        0x3f927c3416c09898,
961        0xbf25d279dc87cf68,
962        0xbf4d86a5f5adbdac,
963        0x3ee169041634c20c,
964        0x3ef66f5bd1bedad0,
965        0xbe8a69b2c7176656,
966        0xbe93de4eab455284,
967        0x3e2755eabb6b4563,
968        0x3e2702fe7b7aa32d,
969        0xbdbaf1fff2894365,
970        0xbdb2c697124bdb4b,
971        0x3d45e717125b6112,
972        0x3d36bd366d374341,
973        0xbcca1d9ce8759323,
974        0xbcb50c32fba6f689,
975    ],
976    [
977        0xbfbb5a622198a72c,
978        0x3b261140492792be,
979        0x3fab5a622198a72c,
980        0xbf34ee71cf67c243,
981        0xbf7237c02b462f6f,
982        0x3f00b67b6fdfec64,
983        0x3f2365167d8bc319,
984        0xbeb3086b7a29712d,
985        0xbec61a141425984e,
986        0x3e56712b239ca861,
987        0x3e5f507367e2287b,
988        0xbdf0366d05430f3b,
989        0xbdee38f952d755dd,
990        0x3d7faa412f355ab7,
991        0x3d7522cbd2af359c,
992        0xbd064e7a6cf56505,
993        0xbcf62cd7c73270a1,
994        0x3c883112ff8933cd,
995    ],
996    [
997        0xbaeb8a30d224cee7,
998        0x3fbaf9cb42cd08a7,
999        0xbf4e1c66d7616e37,
1000        0xbf91f90fd1013589,
1001        0x3f240e3eb09b7d6d,
1002        0x3f4cb682ff471274,
1003        0xbee0016819a61da0,
1004        0xbef5d2d1c420645b,
1005        0x3e884b0fe8a7ecd7,
1006        0x3e93559d96bedaf4,
1007        0xbe257a0be6df375d,
1008        0xbe26677c8f23f9e7,
1009        0x3db8d1ada000f3d8,
1010        0x3db24a6de676e9f8,
1011        0xbd4431a53c25281e,
1012        0xbd362a9b74747797,
1013        0x3cc81ad277664852,
1014        0x3cb487f213f494c1,
1015    ],
1016    [
1017        0x3fba9d183bc04545,
1018        0xbb24612b590e8e50,
1019        0xbfaa9d183bc04545,
1020        0x3f334779874010dc,
1021        0x3f71ba2299ab88a8,
1022        0xbefecb19f5bdc64d,
1023        0xbf22e052707cc843,
1024        0x3eb18a5da77ee010,
1025        0x3ec5846b622f2fd0,
1026        0xbe54b17e97b8ccc9,
1027        0xbe5e7f7666f84ced,
1028        0x3dedeb50538393d5,
1029        0x3ded72e1f6ccd5a2,
1030        0xbd7d3e0b2d7b598f,
1031        0xbd749b384c86d390,
1032        0x3d049ebe7a682354,
1033        0x3cf5a2123b57dec6,
1034        0xbc8662ce26072b62,
1035    ],
1036    [
1037        0x3ae97c92b0497970,
1038        0xbfba4407dac72297,
1039        0x3f4bcba4dec1da44,
1040        0x3f91803c65cafdfb,
1041        0xbf2283df2b3e4a6d,
1042        0xbf4bf695e89259cd,
1043        0x3edd8f3759122cea,
1044        0x3ef54246c8e04206,
1045        0xbe867111bc8e08a2,
1046        0xbe92d72a1f62d131,
1047        0x3e23d9ca3e4f40f9,
1048        0x3e25d74a6df26826,
1049        0xbdb6f4b3a86a00b8,
1050        0xbdb1d6f951aed310,
1051        0x3d42b1828de6ffa0,
1052        0x3d35a1d54468858d,
1053        0xbcc655ad620318bd,
1054        0xbcb40c27591e7a1a,
1055    ],
1056    [
1057        0xbfb9ee5eee1a97c6,
1058        0x3b22e5c966133b1c,
1059        0x3fa9ee5eee1a97c6,
1060        0xbf31d55d93e59bd7,
1061        0xbf7146219394a99c,
1062        0x3efc7d32bb646e2e,
1063        0x3f226599aed4f1b4,
1064        0xbeb03ba58ec85e6f,
1065        0xbec4f9e3961b9170,
1066        0x3e5328d4dc364807,
1067        0x3e5dbda7ac1d3f8b,
1068        0xbdebb7c2f5dfce50,
1069        0xbdecbac1e6849bc9,
1070        0x3d7b1c39328db702,
1071        0x3d741cdba002ff38,
1072        0xbd0321f9e5a1aec7,
1073        0xbcf520545c68186a,
1074        0x3c84ca30f2d8fe34,
1075    ],
1076    [
1077        0xbae7aaec85700fa6,
1078        0x3fb99be73fa3efcc,
1079        0xbf49c3248da75775,
1080        0xbf91107147eda800,
1081        0x3f212980be9d8520,
1082        0x3f4b44e1221e6051,
1083        0xbedb67b78c1dd966,
1084        0xbef4bc49e9b5bceb,
1085        0x3e84d02ffb8b7772,
1086        0x3e9261c31456c932,
1087        0xbe226b4006e91d9d,
1088        0xbe25512519fb5144,
1089        0x3db5500f2545f2d3,
1090        0x3db16b4e5f84ad48,
1091        0xbd415e211f9e7a0f,
1092        0xbd3521ed4cbd2b27,
1093        0x3cc4c4800c50a30c,
1094        0x3cb39810921b4be9,
1095    ],
1096    [
1097        0x3fb94c6f5898708b,
1098        0xbb219499b2c197ca,
1099        0xbfa94c6f5898708b,
1100        0x3f308f4f1b8fb0dc,
1101        0x3f70da931c776c71,
1102        0xbefa7550d2940f2e,
1103        0xbf21f3b978a47cde,
1104        0x3eae28ea0247325a,
1105        0x3ec47930aec7652a,
1106        0xbe51ce32c4f61fb7,
1107        0xbe5d0950e94a9be9,
1108        0x3de9c5a164496f38,
1109        0x3dec0f17151563cb,
1110        0xbd79390150c5d3eb,
1111        0xbd73a6c5157c0de8,
1112        0x3d01d041a270134c,
1113        0x3cf4a6c2b9e9b4e9,
1114        0xbc835f05ebdf3e12,
1115    ],
1116    [
1117        0x3ae60bdc6a36e0e5,
1118        0xbfb8ffc9b9a131f6,
1119        0x3f47f724314bb99d,
1120        0x3f90a89c5d1074ba,
1121        0xbf1feeaeb33465e7,
1122        0xbf4a9fba36a7a08e,
1123        0x3ed980034770f358,
1124        0x3ef43fa4bb8cba45,
1125        0xbe835f40f3a33db9,
1126        0xbe91f465ba2910f8,
1127        0x3e212688f6f9e1b4,
1128        0x3e24d3f7e3ce0c1a,
1129        0xbdb3daee33c4651d,
1130        0xbdb106a0ff5e7529,
1131        0x3d40309d2f92ac42,
1132        0x3d34aa09772c258a,
1133        0xbcc35f72aaef208c,
1134        0xbcb32afd4e360d62,
1135    ],
1136    [
1137        0xbfb8b5ccb03d459b,
1138        0x3b206ac337f71f68,
1139        0x3fa8b5ccb03d459b,
1140        0xbf2edc98b92fedf3,
1141        0xbf70767d524cea88,
1142        0x3ef8a85a847c89c6,
1143        0x3f2189afaa2bffb7,
1144        0xbeac1d231a69bf1e,
1145        0xbec40139bdbc767b,
1146        0x3e509a6859cb8509,
1147        0x3e5c60fc5f4b173c,
1148        0xbde80ad395bd719c,
1149        0xbdeb6e94ec333a76,
1150        0x3d778adf7d6d4ffb,
1151        0x3d7338227f2ea5d9,
1152        0xbd00a328a2899a4a,
1153        0xbcf4349a4535eb0d,
1154        0x3c821ac1fe027675,
1155    ],
1156    [
1157        0xbae4990a795d52df,
1158        0x3fb86e51bb2ee24d,
1159        0xbf465e3bad214eb8,
1160        0xbf9047d6ed159c31,
1161        0x3f1dce4a381ce24d,
1162        0x3f4a05b93842da9a,
1163        0xbed7ce3df60b0e4e,
1164        0xbef3cb50138cce39,
1165        0x3e8216e84a5d9f52,
1166        0x3e918e354c013832,
1167        0xbe2005492fe9c63e,
1168        0xbe245ed4a343a749,
1169        0x3db28e2e71c56d3c,
1170        0x3db0a83f8589bb9d,
1171        0xbd3e46baa33f452c,
1172        0xbd3439690ccae646,
1173        0x3cc2201c8a30e9e6,
1174        0x3cb2c44f88828341,
1175    ],
1176    [
1177        0x3fb829356c2fb67c,
1178        0xbb1ebe6fec859455,
1179        0xbfa829356c2fb67c,
1180        0x3f2cd964e5e4caa0,
1181        0x3f70190ce66b97c3,
1182        0xbef70d5fd8bad7b8,
1183        0xbf2126a150469af1,
1184        0x3eaa49ea858153dd,
1185        0x3ec3910f5c157962,
1186        0xbe4f0f4bdbe6f9e5,
1187        0xbe5bc36977db17fb,
1188        0x3de67f295d55fdea,
1189        0x3dead81ba8b0c52f,
1190        0xbd760a13803ef42a,
1191        0xbd72d03bf820c54e,
1192        0x3cff2ad7c1434050,
1193        0x3cf3c92e07a03306,
1194        0xbc80f7d055471199,
1195    ],
1196    [
1197        0x3ae34bfa6ed120b4,
1198        0xbfb7e656ed57a0d1,
1199        0x3f44f0cfc62eb61c,
1200        0x3f8fdaba63e9c655,
1201        0xbf1be7bad1c50546,
1202        0xbf4975ac0770c98d,
1203        0x3ed64a6af83ba812,
1204        0x3ef35e6b41b6d769,
1205        0xbe80f12d050da9bf,
1206        0xbe912e744222d16c,
1207        0x3e1e04a8c0124324,
1208        0x3e23f0ed5e3ac1ab,
1209        0xbdb163fd1599c398,
1210        0xbdb04f8ecba977f7,
1211        0x3d3c639575076eb9,
1212        0x3d33cf61a84aa254,
1213        0xbcc101368b088743,
1214        0xbcb26377b4c35c24,
1215    ],
1216    [
1217        0xbfb7a597eb76a5e3,
1218        0x3b53aefe167f1294,
1219        0x3fa7a597eb76a5e3,
1220        0xbf2b0bd9eb615315,
1221        0xbf6f831b9629acd2,
1222        0x3ef59d1c40c95bc4,
1223        0x3f20c9d35d4be179,
1224        0xbea8a711bec6b4b0,
1225        0xbec327e42f38db9e,
1226        0x3e4d225aa909ad2f,
1227        0x3e5b2f83a8f0f85c,
1228        0xbde51bef24cad6b5,
1229        0xbdea4ab13337518e,
1230        0x3d74b0547a699854,
1231        0x3d726e6cf385d626,
1232        0xbcfd56db39ddf26a,
1233        0xbcf362be01af446b,
1234        0x3c82edb1a6e2242c,
1235    ],
1236];